CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

Try doing some basic maths questions in the Lean Theorem Prover. Functions, real numbers, equivalence relations and groups. Click on README.md and then on "Open in CoCalc with one click".

Project: Xena
Views: 18536
License: APACHE
oleanfile3.4.2, commit cbd2b6686ddb�,
jinitalgebragroup_poweralgebrafield_poweralgebrafloordatarattacticlinarith�="export_decloptionnonenonesomesomeexport_declboolffffttttexport_declhas_andthenandthenandthenexport_declhas_powpowpowexport_declhas_appendappendappendexport_decldecidableis_trueis_trueis_falseis_falseto_boolto_boolexport_declhas_purepurepureexport_declhas_bindbindbindexport_declhas_monad_lift_tmonad_lift!monad_liftexport_declmonad_functor_tmonad_map$monad_mapexport_declmonad_runrun'runexport_decllistmmap*mmapmmap'*mmap'mfilter*mfiltermfoldl*mfoldlexport_declnativenat_map3rb_mapmkexport_declname_mapnativerb_mapmkexport_declexpr_mapnativerb_mapmkexport_decltacticinteraction_monadfailedfailexport_decltactic_resultinteraction_monadresultexport_decltacticFtransparencyreducibleGreduciblesemireducibleGsemireducibleexport_decltacticmk_simp_attrLmk_simp_attrexport_declmonad_exceptthrowOthrowcatchOcatchexport_declmonad_except_adapteradapt_exceptTadapt_exceptexport_declmonad_state_adapteradapt_stateWadapt_stateexport_declmonad_readerreadZreadexport_declmonad_reader_adapteradapt_reader]adapt_readerexport_declis_lawful_functormap_const_eq`map_const_eqid_map`id_mapcomp_map`comp_mapexport_declis_lawful_applicativeseq_left_eqgseq_left_eqseq_right_eqgseq_right_eqpure_seq_eq_mapgpure_seq_eq_mapmap_puregmap_pureseq_puregseq_pureseq_assocgseq_assocexport_declis_lawful_monadbind_pure_comp_eq_maptbind_pure_comp_eq_mapbind_map_eq_seqtbind_map_eq_seqpure_bindtpure_bindbind_assoctbind_assocexport_decltraversabletraverse}traversePInfoarchimedeanindlu_2α�_inst_1ordered_comm_monoidC�e_1archxyahas_ltltpreorderto_has_ltpartial_orderto_preorderordered_comm_monoidto_partial_orderhas_zerozeroadd_monoidto_has_zeroadd_comm_monoidto_add_monoid�to_add_comm_monoidExistsnatn#has_lele�to_has_le&&&add_monoidsmul&&&,n�������mk����A��
$�#%,(,,,2,,,CA����B����,
,e,,m$�#%(���&2���&A�nspace�prt�recgind��decl�arch���cCA@����
Proj����@�rec�A@�@�PInfo�ATTRreducibility���proj��decl�rec_on������x�������x���rec��A�PInfo�ATTR����auxrec�prt�auxrec�rec_ondecl�cases_on�����PInfo�ATTR����auxrec�decl�drec�����h���@A���E�������E��C���,�&
&.&&7$�#%(����2����_C,A�PInfo�ATTR����auxrec�prt�decl�drec_on�������x����A�����x��
���_��AA�PInfo�ATTR����auxrec�prt�decl�dcases_on�����PInfo�ATTR����auxrec�prt�ATTRclass���class�declexists_nat_gtu_1α�_inst_1linear_ordered_semiring
_inst_2archimedean
Aordered_cancel_comm_monoidto_ordered_comm_monoid
Aordered_semiringto_ordered_cancel_comm_monoid
Alinear_ordered_semiringto_ordered_semiring
Ax$n#�
�
�
�
� �"�$Acoe#coe_to_lift#coe_base#natcast_coe
mul_zero_classto_has_zero
semiringto_mul_zero_class
�to_semiring
�5monoidto_has_one
�to_monoid
�Ndistribto_has_add
�to_distrib
�N������)�_a$�#�
�
�9A�
�
�
�7has_oneone
�WExistsdcases_on#�#�k,�m,�.,�0,� ,�",�$,�r,�t,�v,���|,�R,�T,�L,���$��$�#�*&�,&�.&�0&� &�"&�$&,�>&�A&�D&�F&�H&�J&�L&���R&�T&���Y&�[&��w#h��id_rhs$�#�*��,��.��0�� ��"��$�&�>��A��D��F��H��J��L����R��T����Y��[����intro#�has_addadd#nathas_addAhas_oneone#nathas_onelt_of_le_of_lt
&����A���eqmpr�k&�m&�����r&�t&�v&��A�|&��ideqK��+eqrec&���������
&�%��add_semigroupto_has_add
&�to_add_semigroup
&�%A_a&�/�k��m������JeqreflK��*eqsymm&�*�Dadd_monoidsmul_one
&�%��Aiffmpr�����#nathas_ltA�natcast_lt
&,A�natlt_succ_selfAarchimedeanarch
� �"�$A�|�R�T�L��zero_lt_one
�PInfo�declpow_unbounded_of_one_lt���_inst_1linear_ordered_ring
_inst_2��!�#ordered_ringto_ordered_semiring
Alinear_ordered_ringto_ordered_ring
Axyhy1�+�-�/�1�2�3�����}zero_ne_one_classto_has_one
domainto_zero_ne_one_class
linear_ordered_ringto_domain
$n#��������������&��&,has_powpow
&#monoidhas_pow
&ringto_monoid
&�to_ring
&��&,���������	�
���
hy0�*,�,,����������,��,�
,no_zero_divisorsto_has_zero
,�to_no_zero_divisors
,��,has_subsub
,add_group_has_sub
,add_comm_groupto_add_group
,�to_add_comm_group
,��,��A����,��,��

hy1'����has_negneg
&add_groupto_has_neg
&�&�&���(��&��&��
_a$�#�k��m��.��0�� ��"��������,�r��t��v��1������������������|��������D���#�k	�m�V�.�V�0�V� �V�"�V���V���V�&�r�V�t�V�v�V�b���V���V��V��V���V���V�,�|�V���V���V�u�)$��$�#�*
�,���.���0��� ���"�����������V�����#�����������������V&�#�����$�#�*�,���.���0��� ���"�����������������#����������������������Alt_of_lt_of_le
������
���Y���to_distrib
�����|���R���T���L���$��linear_ordered_ringto_linear_ordered_semiring
���V�r���'to_add_monoid
����������A����������&��������������A��������
Annotcalc
lt_one_add
�����Annot�/
one_add_sub_mul_le_pow
���V&AAnnot�/�������������&,����������������&�|��������2AAnnotcheckpointAnnothavele_trans
&���#�"neg_le_self
&ordered_ringto_ordered_comm_group
&���"zero_le_one
&��&,le_of_lt
&���"AAnnot�2Annot�3sub_pos_of_lt
,�N,��A��PInfo�declexists_nat_pow_near���������xyhx��Ahy���A$n#and�F�G�����(���#�������3�����y���	����������<�=�>�t�?�v
h$n#����
	n#natfind�C#�*��,��3,���#�������Ea#classicalprop_decidable�C#�*�V�,�V�d&���V#���V���V�v,
hn��

hnp�m�#nathas_zeroA

hnsp�.#�	natpred�

hltn�m��
��@#�w�k
�m���.���0��� ���"��������������#�������������������V���*���,������������andintro�k���m���.���0��� ���"����������������#���������������������V�*���,����V��	��le_of_not_lt
���to_linear_order
�����V�natfind_min�C#�����G#���C#�*�,�9�.�9�0�9� �9�"�9���9���9�������9#���9���9���9���9����,���+�'��-�/�+�e�#�)_a#�/�����	��,��6�S�+AAnnot�2Annot�3natpred_ltne_of_gt#�#�#�#�#natordered_semiring��AAnnot�2Annot�3natsucc_pred_eq_of_posAnnot�2Annot�3�f��ne#A��natpos_iff_ne_zeroAhn0��A��not_lt_of_gt
���/���V�������eqmp�����������3����_a���/���������S����pow_zero
����&���������k_a#�/�������S����A,Annot�2Annot�3natfind_spec���G#����AAnnot�2Annot�3pow_unbounded_of_one_lt
&,�PInfo�;'doc�; Every x greater than 1 is between two successive natural-number
powers of another y greater than one.declexists_int_gt���������x"intn���A�=��@��C�intcast_coe
����������������Z������������n_a$�#�+�-�/�1�2�3�4��A�?�B�E�G�I�K�M�/�S�U�7�Z�\�7���#����������������,�>,�A,�D,�F,�H,�J,���J�����X�Y,�[,�X�s$�i��p����&�	&�&�
&���&��&���!����&���#��h����p������	����
����5�������2�=������3�����#��#��#�inthas_coeA����}��������coe_trans#�&���{A�-�/�����4��_a&�/���������S�����X����coe_coe#�&���{Aexists_nat_gt
��A�PInfo�m2declexists_int_lt���������x�n����%A���������{_a��p�����A�%����p����,�,��,�	,�,�
,������_��,��}����|����~��������|���������&�inthas_negA����}�&����l�m�n�p�6��&��!�;�=�-A�-�/�*�:�4�6�&_a&�/�����%���S�*�8intcast_neg
&��!A�mp����������ordered_comm_groupto_ordered_cancel_comm_monoid
&�P���ordered_comm_groupto_add_comm_group
&�P�7�^�d�7neg_lt
&�P�7exists_int_gt
A���������PInfo�z5declexists_floor���������x�fl�z����inthas_leA������������������imp���ub��w�l�n���%Az������Afl�h��z��Rdcases_on��}�����{�������w���������{��AAh₁��h₂�����5���	����
����G�������D�O�Y�����E,��,�intro���5��,h���F�V�d��V�	�V��V�
�V��V�x���V���V�u���Y�V���V�v�,&�f�f����,intcast_le
�V�,intexists_greatest_of_bdd������G��������_a�(���p��������.�b�������������-�����������������:Az�h'���V�5��A�������A�F��3�?,�A�Z��3,�A�~_a�����|��������d�z���~����c�����������nA�\�}Aexists_int_lt
A�PInfo��8declexists_int_pow_near���_inst_1discrete_linear_ordered_field
_inst_2��!�#����linear_ordered_fieldto_linear_ordered_ring
Adiscrete_linear_ordered_fieldto_linear_ordered_field
Axyhx�+�-�/�1�2�3������������division_ringto_domain
fieldto_division_ring
��to_field
��Ahy������������������,��,������,��,��,��A�n��w�F�G���������#�$������&�|��ohas_pow
��������������������~has_add���~has_one����������������������_a$�#��has_invinv
�division_ringto_has_inv
����}�~��0�1�����#�����(�)�*�+�,�-��������������������	
,�������B�C�	��$�	)�����w�W�X�Y�Z�[�\�]�^���V���V�������V���V���V�	.,&�����	5&�	@���#��	(��_a$�#�������������������������V������������	S&�����w�k���m����������������������������������������	k�������	r��	}�����V�	/�&,
he�m��k���m���	Y����������������	R&�
��$�#�	������������	l����#�#�$�����	�
�����������V������	����$�	������w������������������������������������������	��V�������	����	����#��	���_a�ub��w����k�m�	��.�	��0�	�� �	��"�	����	����	����	����	��9���	�����	����	����	��	�����z������k�m�
�.�
�0�
� �
�"�
���
���
���
���
�	����
����
���
���
�
�����������w�
�*�	��,�	��	����
	���$����k�9�m�9�<�=�>�?�@�A���9���9���K����9���9���9�
I�����G����
��b�m���
����m�hm�
^le_of_not_lt��U�linear_ordered_comm_ringto_linear_ordered_ring�decidable_linear_ordered_comm_ringto_linear_ordered_comm_ring���decidable_linear_ordered_comm_ring��Ahlt�j�preorderto_has_lt����linear_orderto_partial_order��
t�
vAnot_lt_of_ge
�
�
"�
.�
.��fpow_le_of_le
�
�	����Z�
�
"�|�
���
���
���
�
+�����
�le_of_lt��
|��������������
s�
���
�
"�
����
�A
hb��
f
�������w�
3��������k�m�
��.�
��0�
�� �
��"�
����
����
����
����
��
���
�����
����
����
��
����9��������w�
���������k�m�
��.�
��0�
�� �
��"�
����
����
����
����
��
����
�����
����
����
��
��9�	������������w�
��*�
��,�
��
��9�
����������A��������k�m�-�.�-�0�-� �-�"�-���-���-���-���-�
����-����-���-���-�8�	��
����w�+�R�����w�N�*�-�,�-�?�
�K��h_left�
��
�A�9h_right��������k�m�g�.�g�0�g� �g�"�g���g���g���g���g�-���g����g���g���g�r�
�
����������w���*�g�,�g�y�
�����������A�K�
�[�K����Alt_of_not_ge
�-�/�-�9�
��hgege
�-�/�0linear_orderto_partial_order
�-���
��not_le_of_gt��
�����intlt_succA���$�

�G����
3Annot�2Annot�3�
������	S��&Annot�2Annot�3���	��%���Z�V�	5�	@��&��	F��&�	Fhas_divdiv
�Vdivision_ring_has_div'
�V�	:discrete_fieldto_field
�Vdiscrete_linear_ordered_fieldto_discrete_field
�V��|�}�~���V���	8�	9��,��&�-�/���
�3�V�	��_a�V�/�	[�	��%����	[��S���fpow_neg
�V��,����
�	F���V���V�	=�
&�-�/�
�1���division_ring_has_div
�V�	=�	=�|�}��to_zero_ne_one_class
�V�	=�
_a�V�/�	[���������	����������V�����������I�	��	��I&�����S�
�/one_div_eq_inv
�V�	=�
�V�	F�.&�������s�t�	/,A�	F�.�o&inv_lt
�V�	.&�olt_trans
�V�	5���V������	=�g�oinv_pos
�V�	.&����&��&,��&��&��&��&���PInfo��Mdoc�� Every positive x is between two successive integer powers of
another y greater than one. This is the same as `exists_int_pow_near'`,
but with ≤ and < the other way around.declexists_int_pow_near'���_inst_1��_inst_2��xyhx��hy���n��w������������������������������_a�����w�����	��������w�&�'�	�������	�	�	 ��������������w�	F�	A&�	7&�	H��������	7�	@A�g�h�	@��A����w���������w�	��	~��	t��	�h_left��h_right�	[���������	���	������������w�	����������������	���V���	��V�
��
hyp�	������������������	z�
������w�	��	����	����	��%����	��
�
.�V�
�
���
.����
2�	����������
�����������|���������������
@�
�
�
@����V�-�/�
2�
R�3���
N�
._a���/�	��	��%��,�����	����S�
2�
P�"���
>�����
R�	����������
�
O�V�-�/�
R�
w�
W�
:�6���
�
�
C�
D�;���
�
O_a���/�	����������	������������|���������������
��	��	��
��V�
[���
b�S�
R�
u�`���
�
O��
w�	��
t�V�
���-�/�
w�
��jK�	��
t�
��V_aK�/�	����������	��
����S�
w�
�propext�
��
��v���	��
��Vfpow_pos_of_pos
��������A��
7�
�
��������add_groupto_add_monoid�add_comm_groupto_add_group��#��~ring�#add_groupto_has_neg��
��
������-�/�
7�
��j��
��
���_a��/�
)�	����
\���
*�S�
7�
�neg_add��
�����
��
�
�
��-�/�
����
��
���_a��/�
)�	����
��
�,�
����
)�	��S�
��
�neg_add_cancel_right��
��
������
�
K�
N�-�/��>�
W�
N�%_a���/�
)�	��$�
)�S��=�
k��>�
�
t�<�-�/�>�V�
W�
��<_a���/�
)�
��
�,�I�S�>�U�
��<��V�
�
�
��-�/�V�n�
��
�
t�l_aK�/�
)�
��]�S�V�n�
��t�nle_inv
���	��V�l��
�Annot�2Annot�3�|���	r�
#��one
�����discrete_linear_ordered_fieldzero_lt_one
����,exists_int_pow_near
&,����&��A�PInfo��_doc�� Every positive x is between two successive integer powers of
another y greater than one. This is the same as `exists_int_pow_near`,
but with ≤ and < the other way around.declsub_floor_div_mul_nonneg���_inst_1linear_ordered_field
_inst_2floor_ring
A��xyhy�+�-�/�1�2�3�������������������������������������������������������has_mulmul
,�to_has_mul
,�����������������_�	��floor
,����,��,��AA���������������������mul_zero_classto_has_mul
,�Wringto_semiring
,��to_ring
,����6,����AA�
�-�/��,eqtransK��,�,chas_le
,a&�,�e_2��A�,�V�,��e_3�8��Acongr
��K�&,�BAcongr_arg
���,��K,�B�������,����+chas_sub
,a&�3�e_2�;�,�V�,��e_3�>�/��������&,�iA�0���,����,�i���)�),�)�)�3,_a,�8&�^�)�W,�)div_mul_cancel
,��Anesymm,��Ane_of_lt
,����A�-�8,�)�)�^�)�
�
�^�
�-�/�,�,�S�,��,������W������'�A�-�����������'A���A_a,�/����������������,��&�q�r��&����,��&��&��������&�&���&�&����&�6&��������&���l�m�n�o������������w���&������&��������������sub_mul
,���'�Amul_nonneg
,����A�f�����������W,�g�����5,��,��_,�6�����A�'��<��'sub_nonneg
,�6�'�floor_le
,���	�Z,�����V�W����A�PInfo�kdeclsub_floor_div_mul_lt���������xyhy���������A���������A�B�C���f�����:�G�
A�y��,�:,�<,�BA�
sub_lt_iff_lt_add
,�6A�
��������semigroupto_has_mul
,�to_semigroup
,��,��������A�
�-�/�����2������chas_lt
,�,&�,�e_2�;�,�V�,��e_3�>�A�#&,��A�N���x������chas_add
,�3&�3�e_2�;�,�V�,��e_3�>�g����&,��A�u����A����A������A_a,���^A������Aone_mul
,��A�-�������^���
�
���-�/�����S������y�)������A�
�-���	�2���	�	���)������^��-�/�	�	�S�	��	����to_has_mul
,���������A�-��)���$�#��A�#�A_a,�/�����������X�O������&�;�=�,��`�4��(��������;��(���(�2add_mul
,�����A�f���������������H������W���_�'A�i�&A�e�'�&mul_lt_mul_right
,�^�'�&A��r�q����add_comm_semigroupto_add_semigroup
,�to_add_comm_semigroup
,��������-�/�r���������_a,�/���������������U�����<�
�E����S�r��add_comm
,�����lt_floor_add_one
,���'�PInfo�@sdecl�archimedeanarchimedean#���#��n#m#m0�k�
z#�����#�#�#����#��#�#���#�������A���has_lehas_mulmul#nathas_mulA�-�/�����*�+#�,#�,#e_2���,#�,#e_3���/
#K��&,��A�0
#�,#K,�����R#����natsmul_eq_mulA������natsucc��������#mul_one#�\monoid�������natmul_le_mul_left�"A
�PInfo�\~	prt�\VMR�\VMC�\decl�\equations_eqn_1����\�@����C�PInfo�q~	ATTR_refl_lemma���qEqnL�qSEqnL�\ATTRinstance���\class�]�\��decl�oarchimedean����
�����
�n�m�m0�
y�
{�
��������������
���#������
�����T�oto_natle_trans��
����e�^�eAintle_to_nat��[�k�n���Y�
|ordered_cancel_comm_monoidto_partial_order��
��k���mul_zero_classto_has_mul�semiringto_mul_zero_class��~semiring�kA�-�/�t���*����,��,�e_2�.�A�,��,�e_3�����K��&,��A���,�K,���z�k�k�R��k�n���1��]�Q�to_add_comm_monoid����eA��������natcast_coe��~to_has_zero����������������eA��add_monoidsmul_eq_mul����eAchas_mul��,��,�e_2���,��,�e_3������}&,��A���,��,�������kintnat_cast_eq_coe_nat�eAA��A���{�}������
��k���V���
A�|����
�k���
�
���k����k�k�����zero_add��~add_monoid���*��~monoid�k�����mul_le_mul_of_nonneg_left��
��A�k�f���A�
y��has_lt�VAintadd_one_le_iff�VAintcoe_zero_le�e�PInfo�t�	prt�tVMR�tVMC�tdecl�tequations_eqn_1�A�J�t�P�F�J�R�PInfo���	ATTR�r����EqnL��SEqnL�tATTR�s���tclassarchimedean�t��declarchimedeanfloor_ring_proof_1u_1α�_inst_1��_inst_2��z�x����classicalsome�x�x��������exists_floor�����$A����������������classicalsome_spec����������g�dA�PInfo���ncomp��decl�����������������A�����������floor_ringmkAx�X������`A����A�PInfo���decl��equations_eqn_1��������������8������A��������������]�����PInfo���ATTR�r����EqnL��SEqnL��declarchimedean_iff_nat_lt���_inst_1������!�#������xA$n#�*�,�.�0����������A�>�A�D�F�����������������Y��������������������A��A��H���
� �"������Axyy0�����5�u�w����#�#���!�"�#����#�������������������
n#h��Z����������#�$��&�r��t��v��A����������������������&�����������1�:�;�0�����0�0A�*�� ��
����A�3��+�����G�����������Q�����G�����GA_a��/�����(�)�*�+�,�-�	�,������������	�	��>��A��D��F����s�L�M�r�����B�r�l�S�C�L�W��L�aadd_monoidsmul_eq_mul
��GA���)�������/�@�C�
���_aK�/�k�������q,���S���C�
����Cdiv_lt_iff
�&�@�	�PInfo���declarchimedean_iff_nat_le���������xA$n#�k�m��A���������trans������archimedean_iff_nat_lt
A������H��x����#�l�n��A�?�B�E�G���������Z������#��A��_x#�Z��A���H��x_a$������#���R�S�T�U��������$�$��#�	��#����$��#�*�?�������A���f�����������������������+�����+A�7��o�r��A�lt_add_one#decidable_linear_ordered_semiringto_linear_ordered_semiring#�\decidable_linear_ordered_semiringA��PInfo���declexists_rat_gt�������_inst_2��x"ratq�Y���=�Y�@�Y�C�Yratcast_coe
��������������_a$�#�+�-�/�1�2�3�4�-��A�?�B�E�G�I�K�M�p�S�U�x�Z�\�x���#�e�R�S�T�U�V�g�����f�_�`�f��$���Z���Y��[&�]&�_&�a&���#������Z���Y�*�[��]��_��a��/��Y�����Y���Y���Y���Yrathas_zero��has_one��has_addA��������&�-�/�����4��_a&�/�*�����*�S���&ratcast_coe_nat
&��A������A�PInfo�Лdeclarchimedean_iff_rat_lt���������xA�Zq�Y���[�]�_�a������������exists_rat_gt
AH���f�����$����Ax_a�j���Y���Y�o�[,�],�_,�a,�����Z����Y���!�"nat_ceil�Yratlinear_ordered_ringratfloor_ringA��&����A��(�����-������������Y��Y��Y�$�
�Y��Y�9���Y�+�Y��Y�9�(�2�/�*�6&�,��,�e_2�8�VA�,���,��e_3�8��A�?��K��&,�_A�I���,��K,�_���-�-�]&�-�Q�/���(�f�R���Y��has_leA�Pratcast_le
&,A�Ple_nat_ceil�Y�$�&A��PInfo�ߞdeclarchimedean_iff_rat_le���������xA�Zq�Y����������������archimedean_iff_rat_lt
A������H��x���Y���Y���g�i_x�Y��g�H��x_a�Z������Y�
����Z������Y���������Y��A��Y���Y���Y��Y��Y��linear_ordered_semiring�%�-�����f�	�-���j�Y��has_ltA��ratcast_lt
&,A���B�Y��A��PInfo��declexists_rat_lt�������_inst_2��x�Zq�Y���gA����������_a��|�����
�������������������Z��A���|��o����������������������_�	����0�Z��Y�	������/���Z��Y�)�����<����Y����Y����Y�r�Y��has_neg������A��	���P�	�A�-�/�T�X�4�R_a&�/�)���O�)�S�T�Vratcast_coe_int
&��A�~��A�PInfo���declexists_rat_btwn����������xyh���Zq�Y�w���3����������	�
������#�����������7_x$���Z��Y�w���:��,�^��,��,����An#nh�������������W�X�Y�Z�[�\�]�^�	,������������q�r�s�t���������}�~�����������V���V����	:�	;�&�>�V�A�V�D�V�F�V�����}�~�������s��_x����Z��Y�w������&�[�V�]�V�_�V�a�V������,�`��,�3�@z�zh������Y�w�����������������	P�V��[���]���_���a���	��	��V�
�&���Y���Y��division_ring�O������w�����+���-,�w�����������(���*���9,�-�/�2�>��-_a�V�/�w���'�O�
���
�H&�w��
&�S�2�9ratcast_div_of_ne_zero
�V���(�*��`
�V����denom�(����`����e�-�/�f�j�k�b_a#�/�_���>���A���D���F�����������L������w�������w�a�D�����y�p�����S�f�ratcoe_int_denom����j�`�|���e�-�/�j������������5�V���V�q�r�����:�V�<�V���_a�V�/�p������p���S�j��natcast_one
�V����one_ne_zero
�V���-�`��������������������num�*�eH�W���e�k���#��������������$�������	i�����������	w�	x�������������������
�����>���A���D���F���H���J���L�����R���T����Y���[�����������,�����������������	�������	������
�������������������������)�
��
��)�Y�������*���������0�
��	��	������>���A���D���F���/�F�
��
��E�7�8���En0��n0'�:�;�<�=�>�?�$�9���9�
G�����9�H�9�J�9�L�9�d�>�9�A�9�D�9�F�9�q�R�9�T�9�o�Y�9�[�9�ofalse��������������������������������~&��q�r�s�t�H���J���������������[���������������������	�
�	�������	������
��������������������������
D�
E���Y�������������������
F�
�
	���V�>���A���D���F�������
D�
E������������!�����"�������������$������������H���J���L�����J�K�L�M��R���T���
�7�[���
���less_than_or_equaldcases_on�!��t_1#�!�$�H_1����AH_2heq���"A����A����jzero�natno_confusion�(�'�"��$refl����3�n0_b#n0_a�#��4�!A�6�(�(�"�!�$step�A���3�F���heqrefl��A�
#�����8���q�r����������
��������y�|���������
��g�q�r�s�t�5�������|�:���<���~���_aK�/�<��������������
��������
�
�������������
������,�
���S�x�{�
����{natcast_eq_zero
���~�|linear_ordered_semiringto_char_zero
�������g����	���r�
����x����_a���/�<����	������,���<���S���v�W���v���������r���g�����F�������_a��/�<������,���<�����S���
�ratcoe_nat_numA�V����������natcast_pos
�����|��������������_���N���&�������V��f�����������W������}�����)�&sub_pos
���&�,�f��
��=��`���a�*�e�j�-�/�J�j�k�G_a#�/�p���a�F�����S�J�ratcoe_nat_denom����>�w���7�����g,�-�/�>�l��8_a�V�/�w��C�D���D��F�
�w&�w��u�
�~&�S�>�����V����l�w���5����������,�-�/�l����6_a�V�/�w��u���
��&�w��s���
��&�S�l���k�V���������������,���������H�V�J�V�L�V�$�V���V���R�V�T�V�����[�V���-�/�����
�������,_aK�/�w��s���
���
��&���S�����
��������V�,�����f�����Y�Z�[�\�����������V���V�����}�����+�,���o�p�q�_�V�N�V��,&�������f�����Y�Z�[�W�V���������!&,�3�V�,&������f������������lt_div_iff
�V�&�����5�V�
�A�������Y���V�/�V��������lt_iff_lt_of_le_iff_le
��V�
t�P��A�V�����B��-��
sA��������V����������������A�v�����-�/���|��v��_a�V�/�
�����������x&��Q���S���zintcast_add
�V����A����|���x�����-�/�|����y_a�V�/�
���������j�n��|���������
�����S�|��intcast_one
�V��������V�����o�����iordered_cancel_comm_monoidto_add_comm_monoid
�V��������add_le_add_right
�V���w���V��A����A��Ale_refl��
�A����������!��������-�/�����
��!�o�����"������_aK�/�
�������t���������������|���S�����cK�����
�����lt_sub_iff_add_lt'
�V����������������V����V���o�p��,&���-�/���,��'�%,���%&��_a�V�/�)������8�S���+�W�V�+�6�&�V��,&����,���5������-�/�,�T�
����������_aK�/�8�����������~����S�,�T��T�\�
��T�\div_lt_iff'
�V�������0��T������-�/�T������7�����|�}�<���_a�V�/�
�s����Q��S�T��a����PInfo��declexists_nat_one_div_lt����������εhε������$n#�o������$�������������X�Y������#�o���_x$��$�Z#�	��(�������V�����$��#�	A����������}��An#hn����Z#�)���9�7����;���Adiv_lt_of_mul_lt_of_pos
&,�����&���gt
&����ordered_comm_groupto_partial_order
&�4���zero_ne_one_classto_has_zero
&�;&�����������&�-�/���2�����	��_inst_1��&a��e�e_2�Yb���g��e_3�\�^���&,�(A�f�g��K,�(�����&�&��&�����y��
������$gt_iff_lt
&����add_pos_of_pos_of_nonneg
&���(�0�&��&��natcast_nonneg
&��A�V�	����	�����r&,����|&���k�&���	�&�true�-�/�����2��&��	���6�������������H�&�,��,�e_2�Y�,���,��e_3�\�^��&,��A�j����&�&�y�&���F�
����<�;�=����&��lt_add_iff_pos_left
&���&���
��������Mto_partial_order
&�����-�^��α�_inst_1�iff_true_intro�*A�,A�.A��A�'��A�HA�JA�LA�&�|A�RA�TA����A&��trivial�PInfo�W�declexists_pos_rat_lt����������xx0���Zq�Y�w�����Y���o�����������w�x�����Z��Y�w�o�����pa�YK�z�e_1�.�A��KA�Z��funext
�Yx�YKx�Y���Y���YaK��Ke_1�/AbK��Ke_2�-��KK�w,�wA�K��KK,�w���
���ratcast_pos
,���S�exists_rat_btwn
��A�PInfo�v�declratcast_floor����������x�Y���������A���"�Y�$�&������������Yle_antisymm��
��j�p��[�j�p�����Y���Y���Y���Y���Y�
��Y�
��Y�$�A�C�E�G�
��Y�
��Y�
��Y�I�;�B�K�j�-�/�|���
����j�p_aK�/�[��������fA�oA�S�|���
�����le_floor�Y�$�&�j������������-�/�����
�����_aK�/������A�S����������
����������������	��
���������������j���-�/�����3���O�j_a�/���f���������S�����k���j�U���h����[�p�j��������������������������� ����� ����� �p���-�/� � /�
����p�j_aK�/�[�����S� � /�
�� 5� /��
���h�p���� /�����O�p���-�/� /� P�����p_a�/�������� �S� /� N�W� N� U� �p�� P��� M�-�/� P� k�
�� P_aK�/���f�O�����S� P� k�
�� P� k��� Mfloor_le�Y�$�&�PInfo���ATTRsimp����declround���_inst_1��_inst_2����x���������� ����d����A��������������� ������ �������� �bit0
� �� ��PInfo���VMR��VMC��$��������������_c_1
_c_2����+�bit0algebradiv
doc��`round` rounds a number to the nearest integer. `round (1 / 2) = 1`decl��equations_eqn_1���������� ��������A� ���������� ������ ��PInfo���ATTR�r����EqnL��SEqnL��declabs_sub_round�������_inst_2� �x����������������� �abs
��to_decidable_linear_ordered_comm_group
��to_decidable_linear_ordered_comm_ring
��������� ������������ ������ �� �� �� �� ���������� ����� �� �� �� �� �� �� ��-�/� �� ��� �_a��/�l�n��� �� �� ����������A��
����!	���������Z��!� �A�������}�!� ��!�!#� ��!�!�!�!(�S� �� ���
A�� ��w����������decidable_linear_ordered_cancel_comm_monoidto_ordered_cancel_comm_monoid
decidable_linear_ordered_comm_groupdecidable_linear_ordered_cancel_comm_monoid
� �� �� ���decidable_linear_ordered_comm_groupto_add_comm_group
� �� �� ��!I�!O� �� ��-�/� ��!Y�
��!I� ��!Q� �_aK�/� ��!�!�!�������!A�!(�!(�S� ��!Y�
��!`�!Yabs_sub_le_iff
� �� �� ���!S�!Xle_of_not_gt
�/� ��!Q� ��-not��������!��!Q� ��,�!�lt_irrefl
�������+�-�/�����!d�:�<�u�����!�!e�������!'A�!��!#�!#�!e�!���
�������������!������!��Z��!��!h�!��}�!��!�!��!�!��!��!i�����!��!����!��3�!e�!��!�_a�/��������,������������,��������������_�	�!���������� �,�!����!������!��!�������������������!����!��_�	�!�����!��������!��!����"�!��!��!��!��!��������!����!����!��"���=�!��!��"2�S�!���norm_numsubst_into_sum
�!�!��!�tacticringhorner
nonzero_comm_semiringto_comm_semiring
nonzero_comm_ringto_nonzero_comm_semiring
integral_domainto_nonzero_comm_ring
fieldto_integral_domain
���!'A��"P���!
�!'�!���"T�!#�"VA��"Q�!i��!#��tacticringunfold_sub
�!	�!��!��"[�"?�!��"T�!��"S�!#�"X�"U�"[�"?�!��!��"S���!#�"nnorm_numsubst_into_prod
�!��!'A�!'�"P�!#A����"u�]�!'tacticringhorner_atom
�"OAtacticringhorner_const_mul
�"O�!'�!#A����!'���"|�!#�!'�!#�!'�"��"��!#mul_one
���!�!'�"|���!'�����"��"���mul_zero
�K�M���!'�"{�!#�!#�!#�!#�!#�"��"��"��"��!#tacticringhorner_add_const
�"O�!'A����!#�!#�"?���!#���!#�!#�"��"�norm_numbin_zero_add
���!	�!#norm_numsubst_into_neg
�!
�!��"Q�!���!'�"p�"?�!��!��"����!'�"��"|�!��!'�"�!�����"��"��"��!��"��!�����!'���"��"��"|�!��!'�!��!'�"��"��!��#�"��"��!�����!'�!'�"��!'���!'�!'�"��"��"��!'tacticringhorner_neg
nonzero_comm_ringto_comm_ring
�"M�!'�!���!'�"U�"Unorm_nummk_cong
�"T�!'�!'�"��#)�"��!#�"p�"Ztacticringconst_add_horner
�"O�!#�"U�!���"U�"Y�"?�!#�"U�!#�"U�"Y�"��#)norm_numpos_add_neg_helper
�!�!#�"U�"Ynorm_numneg_add_pos_helper1
�!�!'�!#�!#�#:�!#�!#�!#�!'�"��"�norm_numone_add_one
�!�!�"g�!��!��"b�"?�!��"T�!��!#�"^�"`���"b�"��"��!��"S�"V�!i����#h�"g�!��!��#p�"s�"T�!��"u�#o�#p�"��"��!��#g�#o�"|�!i�!'�"�!i����#g�"��"��!i�"��!i����!'���"��"��#�!i����"U���#)norm_numneg_zero_helper
�!	���"��"��#o�#ozero_add
�"��#o�#A��#o�"U�#g�#)�#�"U�!i����!'��norm_numneg_neg_helper
�!	�"U�!'�#)�#��#5A��#g�"a�#4�!'�!i����!#�#:���!#���!#�"��"�norm_numbin_add_zero
�"��!#tacticringhorner_add_horner_eq
�"O�!'A��"Z�"U�"a�������"?�!'�"U�!'�"U���"��#)�#C�!'�"U��norm_numneg_add_pos_helper2
�!�!'�!'���#����!'���!'�"��"��#��!'�#��"U�!���"Y�!'�!#�������"?�"U�!'�"U�!'���#)�"��#��"?�"Y�!#�"Y�!#���#&�!#�!#�"��"��#��!#�!#���#�tacticringzero_horner
�"O�!�����$&A���add_neg
���!��!������!���"��!'�!�!��_�N���!g�!d�!��!��!�����6to_zero_ne_one_class
�����!��$O�!��!��$8�K��!�!'�!�!g�!e�!��!�_a�/������W�����!�������?�g���"���"
�"�"���,�$K,�����$v�S�$P�!�linarithsub_substu_1�!�!'�!g�$]�!��!�linarithadd_subst�!�!'A�!(�!��!��"��!�linarithdiv_subst���!#�!'�!'�!#�!'�!��"��!���8�!"�!'�!'�!#���-�/�$����2�$��$��!#�!#���,�,,e_1��A�,��,�e_2�Y�?��K�g,�gA�I���,��K,�g�$��!#norm_numsubst_into_div
�!!�!'�!'�!'�!'�!#norm_numdiv_helper
���!'�!'�!#norm_numnonzero_of_pos_helper
�-���!'norm_numpos_bit0_helper
�$��!#���$��"��!'�!#�!'�!'�"��"�norm_nummul_bit0_helper
�!�!#�!#�!#�"��"��"��!#�!#�"�eq_true_intro�$��"�����$��!��!'�!'���-�/�%���2�%�$��!'�!'���$��%�!'�$��!'�!'�"��$��%
�"����$��!��!��!��!��"��!��"��!�linarithmul_neg
���$G�!'sub_neg_of_lt
�$>�!g�$F�����!g�����!'�����-�/�%>���$��������u�w���!%�!��!��%E�!#bit0_pos
���!#�$��������$;�$B�!(�!�!��!J�!A�!i�$O���!��$O�!��$Z�!�!(�!j_a�/���$e�$j�"������!J,� �,� �,�"+�$v�$z�S�%f�!��$��!(�!j�!��!��%�$�A�!i�!��!��$��"��!��%-�%c�!'�%2�!(�%b�%W�!��!V� ��-�!��!��!V� ��,�%��!����!��!��!�!��!��!��!�!��!��!��!��!��!e�%��%�_a�/�!��!��!��"�!��" �!��",�!��"2�"6�S�%����"?�%��%��"��"^�"Y�#n�"n���"g�!��!��%��"��"T�!��"��%��%��"��"��!��"n�%��"��#��!#�"U�"Y�#)�$�#
�%��%��#��%��#`�%��%��#c�"T�%��!#�#n�"u�%��"��"��%��"`�"^���%��"g�!��!��%��"?�!��"T�!��#g�%��%��#��"��!��"u�%��"��#����"U���#)�#��"��!i����%��%��#��%��#��%��"U�"u�#)�#�A����!'���#��#��#5�!i��"u�"n�#�A����!#�#��#��!���%��"U�"n�������$�$A��"Y�!'�!#�������$�$"�$.�$)add_neg_of_nonpos_of_neg
���%��%���� ��$;�$B�!��!g�$O� ��%��$O�!��$Z�!�!��!g_a�/�������$e�$j�"�"�$v�&_�$v�S�&U�%��$��!��!g�!��!��%$�%linarithmul_nonpos
���&R�!'�f�l�n�/�1�2�W�$>�&R�����"��$@�&��!��!gsub_nonpos
�$>�!��!g�U���!g�%W�����$;�%[�%`�!iA�$O���%��$O�!��$Z�%k�!�!iA_a�/���$e�%o�%x�"+�$v�$z�S�&��%��%��&��!��%��%�$��!iA�!��!��%��$��%-�&��!'�%��&��%W�PInfo���declexists_rat_near�������_inst_2��xεε0���Zq�Y������������������� �&� �&� �&,�����������������������������������&�_a�Z��Y�w�&�������`�O�&��&��&��&��<�;�=�"�#�&����Y�w���,�-�.�_��N����������������'"���:��<�� �!����Z�'1�Z��Y�	� ��� ��� ����>�?�@�A�B�o�	,�[��]��_��a��	��Y��'0���	�>�?�@�_��N��	,�'HA�	�']����:��<��8�9�	,��w�'^�'k�Z��Y�	[� ���� ���� ����V�����������L�	�������	�&h_left�'^h_right�	F���������	=�o�����i�j�	3,&���Z��Y�	�� ���� ���� ����������������
 ��[���]���_���a���	z����'��f�����������!?���!A���'s�'t�������!J���'s��'&�w�'��'�&�'��'��'��&abs_sub_lt_iff
���'s��'�&��'��'��V�����������#��	T��������'��&�'��'��'��'�&sub_lt
���'��&�'�A�f�'��'��'��&�'��'����������'�&������'��'�&��W,���$jA������������A�|,���(�(&�f�����������5�$f�(�(2���=�>�$hAsub_lt_self_iff
,�$fA�f���(&�����=�(!A��,��A�PInfo��decl��archimedean���Y��ordered_comm_monoid�f�([�����������Y��linear_ordered_field���Y�Z���Y���~����(eA���Y�Y���Y�Y���Y�Y���Y���Y���Y�(`archimedean_iff_rat_le�Y�(`q�Y���(���(k�(�(��-�/�(��(��j�Y�(n�(p�(r�(t�%_a�Y�/�(l�(~A�(l�S�(�ratcast_id���Y��preorder�PInfo�"�	prt�"VMR�"VMC�"decl�"equations_eqn_1�A�(]�"�(��F�(]�(��PInfo�,�	ATTR�r���,EqnL�,SEqnL�"ATTR�s���"classarchimedean�"��declratcast_round����������x�Y��� ��f� �A��������� �round�Y��discrete_linear_ordered_field�&����������0�Y
this�8�(����'�������Y���(�� ��(�� �
����!�����\�^�`�b��A�(�A���!b�(��!e�(��!(�(��-�/�(��(���(�_a��/��� �,��,���������(����)�S�(��(��!6�(��(���(��(��m�(_���Y�(��&���D�F�H���Y�(v�(x�)A�"�$�)���>�@�)�(��) �)'�-�/�(��).��(�_a��/���"�(��!��(��"�)�)8�S�(��)-���Y�(��&A��).���(��(����(��)-�-�/�).�)O�!��(�_a�/�)8�)�)!�)+���)4�)W�S�).�)L�W�)L�(���)O���o�)K�)-�-�/�)O�)m��)M_a��/���)4�(����(��)W�)�)W�S�)O�)kratcast_floor
���)K���)kAnnot�2Annot�3��(����-�/�(����2�(��.�Y���)��(��(��(��)��)��(��(������������ ��)��)�a�:e_1��A�,&�,�e_2�;�?�VK�W,�WA�I�V�,�VK,�W�(��)����(��(��(�has_invinv�Y���Y�%�(��)��)��(��(��)��)�_inst_1has_lift_t�Ya�Y�A�Ye_2�)�A�0�Y�A���(��(��)��L�M�Y�3�Y�3�Ye_2�)��,�Y�,�Ye_3�)����Y�Y��&,�)�A��Y�,�Y�Y,�)����R�Y�(��)�one_div_eq_inv�Y�%�(���cast_add
� ������ ��)��L���3�3,e_2�$��,��,�e_3�Y�e������&,�*'A�p���,����,�*'� ��(��(��]�(��)��)��)����������)��)���has_inv�(��)��*I�(��)���cast_inv
�)��*�(�chas_inv
�,�,,e_2�$��p��A���)��*O� ��)��(��(�� ��(��(�� ���cast_bit0
� ��*�(�s�*$�,�,,e_2�$��*^� ��� ��*k� ���cast_one
� ��(��)��*C� ��)��`� �� ��
��(�� ��:add_right_cancel_semigroupto_add_semigroup
�Mto_add_right_cancel_semigroup
� ��(��)��*��)�add_right_inj
�*��)��(��(��
��)��)���cast_inj
� ��*�
��)���eq_self_iff_true�Y���PInfo�/�ATTR�����/EndFile