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���initdatanatgcddatapnatbasicdataintsqrtdataequivencodablealgebragroupalgebraordered_groupalgebragroup_poweralgebraordered_fieldtacticnorm_casttacticlift�5�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}traversePInforat.
indlCn��e_1numintdenomnatposhas_ltltnathas_lthas_zerozeronathas_zerocopnatcoprime�nat_abs�mk'���������"�����nspace�prt�recdecl�sizeofx�recx����has_addaddnathas_add===has_oneonenathas_onesizeof�has_sizeof_instCnathas_sizeof�
default_has_sizeofQPS[�PInfo�.
ATTRreducibility���prt�decl�has_sizeof_insthas_sizeofhas_sizeofmk��PInfo�.
ATTRinstance���class����prt�decl�sizeof_spec����eqjN����eqrefln�PInfo�.
ATTR_refl_lemma���EqnL�prt�gind��decl�numc�
Proj���7������PInfo�.
ATTR����proj��decl�denom��
Proj���7������PInfo�.
ATTR����proj��decl�pos�
��
Proj�����rec�������PInfo�.
ATTR����proj��decl�cop����
Proj������������PInfo�.
ATTR����proj��decl�rec_on�������������rec��PInfo�.
ATTR����auxrec�prt�auxrec�rec_ondecl�cases_on����PInfo�.
ATTR����auxrec�doc�`rat`, or `ℚ`, is the type of rational numbers. It is defined
 as the set of pairs ⟨n, d⟩ of integers such that `d` is positive and `n` and
 `d` are coprime. This representation is preferred to the quotient
 because without periodic reduction, the numerator and denominator can grow
 exponentially (for example, adding 1/2 to itself repeatedly).decl�no_confusion_type�Pv1v2���������������anum_eqldenom_eqm��PInfo�.
ATTR����prt�decl�no_confusion����h12l�������eqrecah1a���h11������������m
uv�PInfo�.
ATTR����no_conf�prt�decl�inj������������and������������!�no_confusion�'�#�����%�m�#andintro���m	��PInfo�.
decl�inj_arrowl����������!P����D���F����������!���Yandelim_left�B�F�inj��D�#���andelim_right�B�F�q�PInfo�.
decl�inj_eq��������l�!�"�m�����num_1denom_1pos_1cop_1propext�!��iffintro�!��h�!�h�#���a��anddcases_on�%���'��D�#���a_left�%a_right�?��e_1���e_2m�Q�Q�������e_1����e_2���Q��eqdrec����$������������D�����������m���������������D��Du�����v����������#�������D�#������D��#��PInfo�.
TKℚ�NOTAℚℚ��declratrepr_main�string����Ra_numa_denoma_posa_copid_rhs	�Rite	mA�decidable_eqA�Rreprinthas_reprhas_appendappend�Rstringhas_append�l�g
Str/�cnathas_repr�PInfo�7VMR�VMC�7�natdecidable_eq	natrepr/charof_natstringemptystringstrintrepr_mainstringappend��decl�equations_eqn_1nd_x_xl�R��v����u�Rid_delta	�R���PInfo�7ATTR����EqnL�decl�repr�S��PInfo�7prt�VMR�VMC�7�decl�equations_eqn_1�����~��v�equations_eqn_1�PInfo�7ATTR����EqnL�decl�_sunfold�S�}�PInfo�7decl�has_reprhas_reprhas_reprmk���PInfo�;	prt�VMR�VMC�;	�decl�equations_eqn_1l�����u�����PInfo�$;	ATTR����$EqnL�$SEqnL�ATTR����class� ���decl�has_to_stringhas_to_stringhas_to_stringmk���PInfo�%<	prt�%VMR�%VMC�%<	�decl�%equations_eqn_1l���%��u�����PInfo�*<	ATTR����*EqnL�*SEqnL�%ATTR����%class�&�%��decl�has_to_formathas_to_format�X��has_to_formatmkfunctioncomp

�Rformatcoe

�R��coe_to_lift

�R��coe_base

�R��string_to_format���PInfo�+=prt�+VMR�+VMC�+=x�formatof_stringATTR����+class�,�+��decl�encodable_match_1_asigmansubtyped�"�;�T�;�������X��sigmamk��subtypemk�?���@Q[�PInfo�:?	decl�:_proof_1abcd�"Q[�E�F�G�H���PInfo�D?	decl�:equations_eqn_1�E�F�G�Hl���:�����D�E�F�G�Hu��������PInfo�J?	ATTR����JEqnL�Jdecl�9_match_2_a���L���@cases_on���L��fstsnd���Bcases_on�?���O���#snd_valsnd_property�"�
Z�R�"�*�,snd_property_left�*snd_property_right���X���PInfo�K?	decl�Kequations_eqn_1abcd��K���W�X�Y�Z�����D�PInfo�V?	ATTR����VEqnL�Vdecl�9_match_3_a�_x���C_x��\��\�Y�������S�U�arfl�a�PInfo�[?	decl�[equations_eqn_1abcd��b�[�g�b�c�d�e��p��p�s�PInfo�a?	ATTR����aEqnL�adecl�9_match_4_a����U�S�g���M���g�����N�O���P�#�O�%��U�S����snd_valsnd_property�"���*�,�i�/��U�S�����?�����snd_property_left�*snd_property_right�3�_��U�S��
Annotinnaccessible
��Annot�l���
Annot�l
�?����Annot�l�@

Annot�l
��Annot�l���e�����PInfo�f?	decl�fequations_eqn_1abcd�o��U�S�����f�������o�p�q�r�z���|�����PInfo�n?	ATTR����nEqnL�ndecl�encodable_proof_1_x�Y�u�r�PInfo�t?	decl�s_proof_2_x�����w�����PInfo�v?	decl�sencodableencodableof_equiv��encodablesigma���{inta�{subtype���{nataanddecidable���decidable_ltnatdecidable��equivmk���U�S�t�v�PInfo�s?	prt�sVMR�s_lambda_1VMR�s_lambda_2VMR�s_lambda_3VMR�s_lambda_4VMR�sVMC��?	��_freshD��natdecidable_lt	intnat_abs_main��	
VMC��?	�~�����VMC��@�^VMC��@"�]���=���?�"
CNatM0��VMC�s?	�������}�|�{of_equivdecl�sequations_eqn_1l���s�u���&�PInfo��?	ATTR�����EqnL��SEqnL�sATTR����sclass�x�s��decl�of_int_proof_1n��A��natcoprime_one_right���PInfo��Ddecl������Anatone_pos���PInfo��DVMR��VMC��D��doc��Embed an integer as a rational numberdecl��equations_eqn_1������7�����:�PInfo��DATTR�����EqnL��SEqnL��decl�has_zerohas_zerohas_zeromk�9	��has_zero�PInfo��G	prt��VMR��VMC��G	��zero��decl��equations_eqn_1l�A���Hu�A�J�PInfo��G	ATTR�����EqnL��SEqnL��ATTR�����class������decl�has_onehas_onehas_onemk�9>��has_one�PInfo��H	prt��VMR��VMC��H	��one��decl��equations_eqn_1l�P���Wu�P�Y�PInfo��H	ATTR�����EqnL��SEqnL��ATTR�����class������decl�inhabitedinhabitedinhabitedmk	�J�PInfo��I	prt��VMR��VMC��I	����decl��equations_eqn_1l�_���du�_�f�PInfo��I	ATTR�����EqnL��SEqnL��ATTR�����class������decl�mk_pnat_mainn�pnat����k� n��ka_vala_property�4	n'Y	g�gcdhas_divdiv��has_div�������inthas_coe�vnathas_diviffmprhas_lelenathas_lenatsucc���s��has_mulmul��has_mul����natle_div_iff_mul_le����natgcd_pos_of_pos_righteqmpr������id������chas_lea��e_2����e_3��congr��������congr_arg������������one_mulnatmonoid���
natle_of_dvd��natgcd_dvd_right����������������������_a���y������u������ordcases_on�������
has_negneg��has_neg�_xor��m����intnat_abs_eq�e����m�y�������������*���_a��m�y�����m�y�1�5���%v�(e��$m�y��%������,�O�A�J���Om��'������O�[���L_a��m�y������1�5m���5��O�Xintneg_div_of_dvd�%����has_dvddvdcomm_semiring_has_dvd��comm_semiring���%�t�v��comm_semiring��intcoe_nat_dvd��natgcd_dvd_left���[�*�����[�*���Y_a��m��y�a�1�5m�5��[�(��nat_abs_neg�'�Fnatcoprime_div_gcd_div_gcd���PInfo��LVMR��VMC��L��k������natgcd��intof_nat��div_mainnatdivdecl��_proof_1��ddpos�����s����������������������������������������������v�������PInfo�Ldecl��_proof_2�����y�������������������������������������y���sY���������������������m�	��Y��!������!m�y��Y�� �����!�,������m�y���s�������4m�8�5�:��!�'v�*����&m�y��'�� ���.�S�E�N���Sm��)� �����S�_���P����m�y������5�:�i�:��S�\�q�'����z��'���Y���Y��Y���_�,�����_�,���]���m��y�e�5�:���:��_�*���)�J�����PInfo�Ldecl��equations_eqn_1����������n	��	���u�2�������������K���PInfo�LATTR����EqnL�decl�mk_pnat�m�����PInfo�LVMR�VMC�L����doc�Form the quotient `n / d` where `n:ℤ` and `d:ℕ+` (not necessarily coprime)decl�equations_eqn_1��������������equations_eqn_1�PInfo�LATTR����EqnL�decl�_sunfold�m���PInfo�Ldecl�mk_natnd��dite���^d0���c�not������natpos_of_ne_zero�PInfo�\VMR�VMC�\���	������doc�Form the quotient `n / d` where `n:ℤ` and `d:ℕ`. In the case `d = 0`, we
 define `n / 0 = 0` by convention.decl�equations_eqn_1�������������PInfo�#\ATTR����#EqnL�#SEqnL�decl�mk_main�����cases_on�a_1�4��a_1�4����succ_pnat�PInfo�%`VMR�%VMC�%`��intcases_on�natsucc_pnatintneg��decl�%equations_eqn_1nd��%�����2�3���K��PInfo�1`ATTR����1EqnL�1decl�%equations_eqn_2nd���neg_succ_of_nat�����6�7���K��PInfo�5`ATTR����5EqnL�5decl�mk����PInfo�9`VMR�9VMC�9`�%doc�9Form the quotient `n / d` where `n d : ℤ`.decl�9equations_eqn_1�2�3��9�����%equations_eqn_1�PInfo�;`ATTR����;EqnL�;decl�9equations_eqn_2�6�7��(���%equations_eqn_2�PInfo�?`ATTR����?EqnL�?decl�9_sunfold���
�PInfo�B`decl_localized_decl�
���prodname�Rprodmk�6�Rnamemk_string
Strratnameanonymous�l
Strlocal 
Strinfix ` /. `:70 := rat.mk�VMR�DVMC�D�nameanonymoust�a�r��
���namemk_stringk�m�.�t�a�r� �=�:� �0�7�:�`� �.�/� �`� �x�i�f�n�i��
������������������������� �l�a�c�o�l��
�������ATTR_localized���Dunitstardecl�mk_pnat_eqndh���'���U�V�W���J���������^��O�c����O������true�����`�beqtrans���`�����������W�bifftrans�W��false�bnot_congr�O�niff_false_intro�One_of_gtpartial_orderto_preorderordered_comm_monoidto_partial_orderordered_cancel_comm_monoidto_ordered_comm_monoidordered_semiringto_ordered_cancel_comm_monoid��ordered_semiringnot_false_ifftrueintro�ba�me_1�����e_2�������������������������_��dif_neg�O�R���U�^�������beq_self_iff_true��trivial�PInfo�Tfdecl�mk_nat_eqnd���)�t�u�f���PInfo�siATTR����sdecl�mk_zeron��'�F�c�w�f���PInfo�vkATTR����vATTRsimp���vdecl�zero_mk_pnatn�k����F�c�z�k���n�z�k��n_valn_property��������c��F�������s�F�����F��chas_diva�e_2������e_3������������������������g���sa��e_1������e_2�����s��s��s��intnat_abs_zero��natgcd_zero_left���y�F������������9�������F���6�F�g�;�9���F�}����e_2������e_3�����w���Y������Y�x�F�F��F�:��_inst_1has_lift_ta��e_2�����|�����5��zero_div���c���������������g��	����	���u�9�������I����F�'�;�F�������6���K�c�c���c��������������������������*�-���4���9����?����9����K�����F�Q���S�F�t������������c���A��������Anatdiv_self��gtpreorderto_has_lt���b�l�	���bgt_iff_lt��iff_true_intro�*���������A�	�c�������	!�����	�'�F�F�s��A�	�����c�c�����	�PInfo�ymATTR�x���ydecl�zero_mk_natn����F�c��dite�����	Ah������	>�c�b�����	I�b�h�	I��c�c�b���	G�c���	G��m�^��	X�c����	X�c�	^���	X�b�����	V�	_��	`�������	b�	V�	>�	r��e_1����e_2����������`������F�F�s�#�Fhdecidable�	Xα'���	X���	Xe_3l��	X���	`���	`�e_4l��	`�����	X����	���l��	X�#�l�#�	Y�D�#��	�����	`���	���l��	`�#�	��	�u��	Y����	[�	^�	^u��	X�	^�	q�	afunext�	`x�	`x�	`�	p���	`�c��	`�y�	odif_pos�	X�	[�	i�	^�	a�c�c�����	Q�b���c�������	K�	N�	S�	U�	V�V��W�c�
	�k�q�t�v�����	V�V��W���\�

�	����	��O��'�����me_3l���������������e_4l����>�����E����
3��l�m��#��	���m��D�#��
@������
2���
K��l����
7�#�
C�
A�	����
2����R�U�Uu��O�U�
�
	�	��W���W���W�
���W�c��W�	��\���
�U�
	�c�c���
���PInfo��pATTR�x����decl�zero_mkn��'�F�c���&���
�������
��of_nat�c�b�����
��b�h�
��	Q�b���
��c���
��	?�c�
��
����	?��e_1����e_2���W�'��'�`����'�F�F�s�
���intof_nat_eq_coe�;�F���c�c���
��������
���c�b�����
��b�h�
��	Q�b���
��c���
�����c�
�����F��
��?�F����e_1����k��ke_2l�k���k������`�l����
��Fneg_zeroadd_comm_groupto_add_groupringto_add_comm_group��ring��u�k��	���c�c���
���PInfo��sATTR�x����prvgcd_abs_dvd_left_private���:7gcd_abs_dvd_leftdecl��ab�z���s������iffmp�9�����:intdvd_nat_abs�8���?���7�����7�������PInfo��vdecl�mk_eq_zeroabb0ne�F����H�c��F�������V���Z�\h�Z�
������V����
��c���Fb���T�
��F����
��
��cab�ke����c�����k����X�c��Fbh�������c�inj_arrow�z���s���������������������������������������������������v�������������������������������������������s������������������m���������"�������m�&�������������/����m�0���s��������m�8��������%v�������m�K�������������J����m������������	��������m�c�����i�������r�����z���%�������������������	�������	��������m�������������	���������������FA�3�5�F�
�Fe����Fh_1m��Ainteq_mul_of_div_eq_right����F�����Y�Z�����[�b�l�r�o�b�r�q�n�u�qmt�q��
��
��{�
�����eqmp����q�_��q�c��r��������c�������c���������q���������c�c������'��}�c����������������������1���
������}�1�
��
���	���c�c�������T��F����
���cneg_inj���F����add_groupto_has_neg�����F�b�������b�h����F�F�b�m�me_1������e_2���W���
�z�`���������F�o����������c����
�
�c���
�
�
���c�c�����F������b���F�����\���F������c����
��c�b�����
I�b�h�
I�	Q�b���
G�c���c�c���
��eqsymm�F�PInfo��yATTR�x����decl�mk_eqabcdhb�T�Fhd�T�F�W��
��'�����has_mul��
x
thisabcdhbQhd�*�W�����X�Y��
y�1�
|�������������
m���
o�
������V�W��'��
p��
x��
yb���n���W��
��o�
p�
��
y�o�W��V��W���#�\�
p�
��
y�������
��
�a������e_1��b������e_2�
��������W��W������������W�
��
����
��
����
�����
��
��
����
��
�����o���
��
���	���
p�
p���
p�
��
��
�
��
���
��
��
�chas_mul��e_2������e_3���X�
v����d��
w�����o���
����
��W��������k�q�t�v�{�O��o��z�
������
p�
������
��7�
��
��5���
��3���0�U�
��
p�
p�
��
��
���
��
������V�W����D���������
�b�l�P�o�b�r�
�n�u�
�{�
��
���z�
������
���
x�D�
���d���n���W�l�
���o�o�s�W�l�
���o���s��������
��z�����k�k���k�
��
��
��~���
�|����D�D���o���
��s�s��s�����W�l�3�����������
��������
��3�C������������W������������������_a�����W�����
��������
�b�l���o�b�r�
�n�u�
�{�
��
���z�
������
�����
x��1�
x�#�
��W���������������D��i�1iffrefl��d�������W�l�
�����o���s�W�l���������,succ_pos��������
������
����
����
��������&��-equations_eqn_1��������W��o����
x��r�������G���_a�����W������#���������
�����X���E����E�����i����G���E��o��@�sh�E��������O��������u�����:��has_add�������Dadd_monoidto_has_zero��to_add_monoid������{���h�{��}add_semigroupto_has_add��to_add_semigroup�����������������������
�x���Q��u����}��add_comm_semigroupto_add_semigroup��add_comm_semigroup����������������������������chas_neg����e_2���`���u���Q�u�}distribto_has_add��distrib�
v�to_has_mul�����U����1�������������������t���Q�t�����1���U�����������U�1�����s���Q�s��1�U���U�1intcoe_nat_succadd_comm���1�Uneg_add_rev��U�1�
����left_distrib�������chas_add��e_2������e_3���X�}���&�d�&�~�����Q�
vmul_zero_classto_has_mulsemiringto_mul_zero_classringto_semiring�������E�U��mul_neg_eq_neg_mul_symm���U���H�mul_one��monoid������O�1������8����neg_neg�������k��
����z����������z��eq_neg_iff_add_eq_zero������
�����Q�������������������������
����add_left_comm��������8���������
�����������������s�
x�M�
����h�������������
�����Q�������U���1�������������s���
��U�1�8����X�����������neg_mul_eq_neg_mul_symm��#�
��������q����������������������������h������������������������������������
�����Q������������������������������������
���������Q�����������������k�������������neg_add_eq_iff_eq_add����������
����neg_eq_iff_add_eq_zero������
���������������������u�����h�[�����^����^���
�u���`��������?�K�Vb�������W��
�
p�
��
y���W���
p�����������
��������
��6�
p�
p�
���������
������V�W�����D������
��q�
�������n���W���
��}���W���
��������������
����������������
��
��
�������������������W���3�����������
��������
��3�C������������W��
x�����
�������������������_a�����W����������������������������������������1�����������
����h����������������B��� ����#�������#�'�
�
������"�&�Q�� ����#���#���3���������M�5�3���M���=��� �A�Q� �����#���H��
��A�G�����K�M��#�#��#��P�Q������
������K�Z����
��]����a�Q���
��U��
���
�
��U��
��
�K����#���K�8�I�M�Q�D�#�������U�M�N�#�U�����#�W�#�L�����
���M���8�:���/�<�#�k�#���#����
x���1����'�
��������1���&�Q�����H�U�H�
��&�����a���W��a�q�|�U�
��8���#�������j�)���������������������A���������
�����Q�����������������l���A�Q������z���#���M������&�������&����#���
���M����� ���
������� �A�����������W���
����W����'�����(�,�
��%�*���
��6�'�'��'���,�W����@�C���'�����,�C���*_a�����W���S�W����K��,�A���*�A���������C���B�p��b�����a�b�h�a�W�����������s�o�b�
��A�o�
�>�j�Q�>�������U�y���j�x�������}���������@���Q�@����U�����
���U����U���8�z���Q�D���D�U���D�D�U�����D�U�����D�W�D�|�i�����@�n�Q�@������U���r�n���C���r������/�����Q����r�U��r��
�r�U���U�r�8����Q�D����U���D��U�����U������W����m���r�`�o�
�o�j�Q�o�����D��������j���o��������n��Q�n�������������	�������@��������
������D�����8�����Q���������N�D�U�����i�*����n�Q���������8��r�n�7�
����;�=������@�Q������r�����;�I����L����������r�
�;�������;�8�9��Q��������N��U���<�m�j�r���q�biff_self�o������������Q���*���
��W�"��z�����m������
������
����
��
����h�
�����������������������
�������
������inj_eq���������������
��
���
������
�h�������������6m��������4�-�"������
��
��
y���ha��hbm��������eq_of_mul_eq_mul_rightlinear_ordered_comm_ringto_integral_domaindecidable_linear_ordered_comm_ringto_linear_ordered_comm_ringintdecidable_linear_ordered_comm_ring�
x���s����������
x�������T��������F�S���coe_nat_ne_zero����mul_pos������������������
vno_zero_divisorsto_has_mulintegral_domainto_no_zero_divisors����6������
x�
��
�
x�������<�E�
�8�@�Q�
vsemigroupto_has_mulcomm_semigroupto_semigroup��comm_semigroup��S����S�#�U�>���@�X����Z�\�X�U�T���`mul_left_comm�P����������c�_�Q�c�Y�S���
�_�t�u��wmul_comm�P����i���#�
�W�v�Z����
�i��#�Z�W�[�?���
���;�D�Q�S��V�S��U�B���D����
�������U�������i�����q�����Q�����u������u���������������������������������C���������
x���������;�=comm_semiringto_semiring�����
x�
v�<�>���x����������E�
���@�Q���>����Y�S�
�����S����������>�������������
�Q�������L�N��comm_semigroup���
������}���intcoe_nat_mul���i���
���
�
��
����Q��U���Y�V���������i�
�#����D�Q���B�
����S���M�Q�S�
����O�M�
x�U���X����U��������(����i�U���������W�N�Q�W���u��N�u�u�U�w��U��������v�����i����X���������b�����
x�
b����inteq_mul_of_div_eq_left�����#dvd_mul_of_dvd_right�x����`����
b�#�y�������$����$������_a���V�
x���s�D�#�0�����V������
b����intmul_div_assoc�������\�#����`�#��z������nateq_mul_of_div_eq_left������������ab��������
a��������������������_a���>�������>�����������natmul_div_assoc������nateq_mul_of_div_eq_right�������#��-�
���m�����:��_x�"�'���"�������achm�������@m��s�#�����m���#�9���<nateq_of_mul_eq_mul_left�:�=�#���m���#�:�K�=m���K�9�N�����O�U���L_a��m���D���s�D�[��8����c��O�S���S�L��#�9���#���Um����#�9�N�����U�~����#_a��m���[�]�cm���]�c��U�z�#�#���~m���A�N�����~���������#�9_a��m����D�]�c�f��~����#�9���#����m���C�N�����������A_a��m�����D�]�cm���c����Cle_antisymm���A�Cacbhb��dhd��hm����������s�����������������������������������������������������������coprimedvd_of_dvd_mul_left����������coprimesymm���������Existsintrocm������s�����������%������m����������2�6��������������9�?���;�2_a���+�-���(�+��9�>���>�D������������?m���4���>�����?�b���5_a���+�����,��(���k��?�`���`�5��������^�<
_x���(Annotinfix_fn��m�^�<m�y��<������������_a��m�'�i���i������#�����m��������<�������������_a��m���&�i�������������������������m�������<�����������y�_a��m������%�im���%�i������#�����m�������<�������������_a��m�����%�i�����������m�����<�����������_a��m������%�i����������������m�����<������$�����_a��m���,�i�����"�#���v�"�#���M��#������2�#����m���<�N�������h����_a��m���#�a�c�f����f���f�����<������hm���]�<�N�����h������_a��m���a�cm���a�c��h�]����m�����<�N������������#_a��m�����D�a�c��������#�#����m�N�N�������������K�<_a��m����D�a�c�f����N�o�<���v�N�a������m�
�r�
x�
m����������m�me_1����e_2�������
��m����������r��intnat_abs_mul��r�����e_2������e_3�����������������v�����nat_abs_of_nat����������
����
�&����v���5��-��`����h₁�'h₂�����"��y�#���m�#����"��y�
x��sign�#�������V�����W�c�h�W�c�ca������e_1�
�b������e_2�
��
��"��"�
��"�R�a�
�P�_�p�#�]�Q�#�]�]���#_a���V�]�
b�]�#intsign_mul_nat_abs�#����]�]��]���p��������V�V��V�����c�c��c���c�"�`�y�
x�Y��%���V�������h�c�����z�a���
�_�_��_�����p����Q������/_a������
b������������������������V�V������������������"��[�y�\����V���������__a���"��y�
x�Y�D�������y�
x�Y��a��m�@�����"���	�������Z�\����z��\�����������������"�����&���V�������-����_a���"����y������	�"�6�	����*�����%�����z���%�������������%��@�+�V�X�[�����)�b�Z���
x����Y��Y���Z���
�_�Z�Q�_�[�U�Z�i�[�Y�
�j��sign_mul�#�
��Z�Z��Z�m�Uintsign_eq_one_of_pos�
���5has_lt���

���coe_nat_lt��W�Z�a���Q�a���U�������Y����q�������������U�{������
�����W�������Y�z�����%��Annotsuffices�PInfo�܆decl�div_mk_div_cancel_leftabcc0�V��'�
|�
x�
s���������V�	C�\�decidable_eq�F��b0�\�
A����'�
y�
x�
�����'���
x�F�
��F�b�������b�h���	Q�b�����c�������F�c�
�����������Fzero_mul�>��semiring�v�����c��
���
e�����\������6�
���
x�����*�mk_eq���*mul_ne_zero����4�b�����4�b�h�4����
|�L�b�
�1�L�Q�
v�M��semigroup�U�V�U�Lmul_assoc�S���\�K��3�L��L���N�b�
1�L���PInfo���ATTR�x����decl�num_denoma��'�������[����a_numa_denoma_posa_cop�_���
���������b�������b�h���"�b�b�b���"��[�������������Z�t�w�y�z���������A����A��div_one����������7�������Q���U�p���U�Q���F�U�U������U������A�����A��8���Fintcoe_nat_zero�U�U��Uzero_add��add_monoid�U��div_one���������������r�9���������������A��
�4A�����6�������������Q�6�2�U�p��5�U�Q�5���U�7�����7�������4A���������M���
����r����N�	����	��q��'�a�
����
!e_3l���
&���
*���
-�e_4l��
J������
7����g��l���
=�#��	���m��D�#��r����
N���|��l����
=�#�u�s�	����
7���������u��q���S�M�	��r���r���r�R���r�L��r���R	����	���t��������������������L�����'�6�J����
�(�������M��������z��b����b�
1���b�����b�	f�����band_self�b��Annotshow�PInfo���ATTR�x����decl�num_denom'ndhc��
r�1���������
a�'�����num_denom�PInfo���decl�of_int_eq_mkz�;���U���num_denom'A�3�6�PInfo���decl�num_denom_cases_on_mainuC���aHnd��������+�����0���a_numa_denoma_posa_cop��eqmpr�:������*�:�>��_a�A��;���*�:��$/�PInfo���VMR��VMC��
�������decl��_proof_1u���+ndhc�A����+�����������e�F���A��;��N��U�PInfo���decl��equations_eqn_1�����+��������H�������#���l������;�<�l��
��r��������+��������������l��l���PInfo���ATTR�����EqnL��decl�num_denom_cases_on���3���+���PInfo���VMR��VMC�������decl��equations_eqn_1�����+��������������������;�����+��equations_eqn_1�PInfo���ATTR�����EqnL��decl��_sunfold���3�b�PInfo���ATTRelab_strategy����decl�num_denom_cases_on'_proof_1dh��������PInfo���decl��uC�+aHnd���I����+��������_x�5n����c-���PInfo���VMR��_lambda_1VMR��VMC�������������_freshD�KVMC�������������decl��equations_eqn_1�����+������������������+������������PInfo���ATTR�����EqnL��SEqnL��ATTR������decl�num_dvdabb0�V�z��X�������V_xe��
s�[�����
q�z��ndhc����'�#��=�z����;�D�z���Dintnat_abs_dvd���D�=�����B���D���
�������������dvd_of_dvd_mul_right���������������b������b�h������bchas_dvd�m�me_2����e_3�����~���,���,�������>��&��m�o�r���#m��&��E���E�����D�r�&����v����.�H�&�9�#�G�D�G����'�D�#����D�G���k_a������'��D�
��
���k�n���k�n�6�D�#�r��w�y�{�}�ordered_ringto_ordered_semiringlinear_ordered_ringto_ordered_ringlinear_ordered_comm_ringto_linear_ordered_ring��r�F����F�r��intcoe_nat_pos���j�;�k�E�;_a���s���s������$���������bα'_inst_1�Dab�	�t�v���;�=��dvd_mul_right��������X�f�X�PInfo���decl�denom_dvdab�z����(���	C��F���F� b0� ���z����X�b����� 
�b�h� 
�z����c�F�b���*����e_2����e_3�����u��� �
� �y� � ��� 
� ��e_1�����X�c���X�H�F�c�
���F��F��� �D�to_has_zero���b�
'�����	�t�v	� Q�=��dvd_zero�x� ������ _xe���[�����z����ndhc����=�z����;�\� ��#�B� ��#��� ���� ����� ��������������&� ��H����� �� ����&_a����������� ��� ��H���H�&�b��� ��z�r���H����� �� ���� �_a����� ��
y�D�� �� ��
a��� �� ���� �� ����H��� �� ��G����� �� ���� �_a�����z�
���� ��� �� �� �� ��B�r�G��� �� ��D����� �� ����G_a��� �� �� ��� ��D�
b�D�G����� ��b����� ��b��� ����D�r�b�
'������	����dvd_mul_left�x�r�D���X���PInfo��decl�add_main�����T�a_numa_denoma_posa_cop�!;a_num_1a_denom_1a_pos_1a_cop_1�4����
��1�
|�������"���PInfo�'�VMR�'VMC�'���natmul�	intmul�	�3intadd��decl�'equations_eqn_1n₁d₁h₁c₁n₂d₂h₂c₂��'��!I�8�9�:�;�<�=�>�?���K�!Y�PInfo�7�ATTR����7EqnL�7decl�add�!9�!W�PInfo�@�prt�@VMR�@VMC�@��'decl�@equations_eqn_1�8�9�:�;�<�=�>�?��@��!I�'equations_eqn_1�PInfo�B�ATTR����BEqnL�Bdecl�@_sunfold�!9�!V�PInfo�E�decl�has_add�$�mk�!n�PInfo�F�	prt�FVMR�FVMC�F�	�@decl�Fequations_eqn_1l�!|�F�!u�!|�!��PInfo�I�	ATTR����IEqnL�ISEqnL�FATTR����Fclasshas_add�F��decl�lift_binop_eqf�!9f₁����af₂�!�fvn₁d₁h₁c₁n₂d₂h₂c₂����'�D����1�#����1f0n₁d₁n₂d₂d₁0�
md₂0�
o�T���Fabcdb0�
md0�
oHn₁d₁n₂d₂h₁��o�
|�#h₂��������
x����D�#�
x�!����D�#�!��������-�'����D���L�!9�M�!��N�!��O�!��X�!��_�`�a�b�c�
m�d�
o�e�!�xha��
���[�l�m�j��!����'�!���D�#�
��D�#�n₁d₁h₁c₁�m��'��xhc�"�[�r�s��'�!��!���6�'�!��!��"�"�!��!�n₂d₂h₂c₂�s��'�"�"������D�#�;�'�"�"�"�"1�"3�"��'�"/�����r�"7��"@�r�"<�����"=�"K�E�"-_a�������D���'�"'�"�"�"1�"3�"/�"�"�"1�"3��"b��"=�"I�"���D�#���"K��
x�"C�";�
x�"5�"H�6�"C�"H�"5�";�"��"@�r���"@�������"@
�����D���������r�����"�"�"1�"3�"�"�!��!��"@�r�=��'�"�"1�'��"@��
x�"�"@�
x��"1�6�"�"1��"@�"�"����"��"+�"��E�"+_a����'�"�"�"U�"���"��"��$���D�#��=��'�"3�"����
x�"3�r���"�6�"3�"�r�!��"����"��;�"���_a����'�"1�"3���"���"������"���f�#�!��f�!��PInfo�K�decl�add_defabcdb0�
md0�
o�:�!��
p�
s�'��
z�
}���|�}�~����
m���
o�lift_binop_eq�!n�|�}�~���
|�
x�|�}�~����P�Q�R�S�T�U�V�W�mk_pnat_eq�!A���!G�Y�Z�[�\�]�
m�^�
o�=��f�g�h�i�j�!��k�!��Q�
x�#)���#��
x�
x�"��#�
x�!�����
x��"��#�o����#f��
x�
x�
y��#�
x�!��#n�#p
����#e�#��b�����#��b�h�#�������
z�#��b�#����#��������#��#��
�#e�#��#f����#��#������#����#��#f�S��S�#(�#��#�#��#f�
x�#��#d�#���#)�#��8�
z�
z��
z�
}�#���#d�#d��#d�i�#���#���#��#��Q�#��Y�#����H�
z�H�#���#��#mul_add���#�
z�#��#���#��#��#��#��8�#}�#��Q�#}�Y���
z�#��Y�
z�#��
x�#��#�#���#{�#��Q�#{�#��S��#��#��#�����#��#��
x�#��#���#y�#����� B��#��i�����#��
z�l��#�#�V��#��#�i�#��
z�#��#��Q�#��#��S���#��$)�
x�$*���$-��!��$*�#��#�#n�$1���i�$*����$,�#��Q�$,�S�$*�Y�$G��$*�i�#����}��add_right_cancel_semigroupto_add_semigroupordered_cancel_comm_monoidto_add_right_cancel_semigroup���#��#��$b�#�add_right_inj�$]�#��#��#����#��b�
1�#���Annotcalc
����#��#p�$z�#~�#o�����${�$~���#g_a�����
x�
x�
��D�
x���D�
y���
x�
x�
x���D�
x���$��$���
x���D�$���${�#y���$~�$z�#������$~�$����!�_a���$��$��$��$��$����$���$~�!���#�Annot��
����#p�#w�b�����$��b�h�$���"������$��b�$����$����o���$��$��
�#p�$��8�#k�$��Q�#k�Y�"����S��Y���$��
x�$��#�$���#i�$��Q�S�#g�$��#��$��$��#��#g�$���#g�$�������$����l�#�#�V��$��#�$"����#o�$��Q�#o�#��S�!��$��%�#m�$1�%��!��!���!��#n�$1�$<�i�!�����%�$��Q�%�$G�!��S�D�$G��!��$P�D�#w�$��Q�#w�����"����%D���!��$��%C����%F�%I�%K�%C�$G�S�#s���D�%P�%C�
x�%T���%W��#u�%T�8�#r�#r��#r�#t�%S��D������
�i�%T�i�%V�%O�Q�%V�����#r�%v�%S�%O�%u�#��%T�%z��%T�#��#r�%S�8�%w�%F�Q�#��$��#�$��#��#�%F�$��#�%�%��%E�l�#�%y�%I�Q�#��#��D�#��#��D�%I�$�D���%��!��l�D�#��%F�%I�8�%G�$��Q�$G�$��%E�$��$G�%E�$��$P��%E�%�%��$��$Q�%J�$��Q�$G�#��!��#��%1�$��$P��!����%1�$��%;����$`�$��$��%��$��$i�$��$��$����$��b�
1�$���Annot���PInfo�{�ATTR�x���{decl�neg_main�!8��!;a_numa_denoma_posa_cop�4����%��b�����&�b�h�&[�bm��e_1��n��e_2�������������&Y������[�b�	[���PInfo���VMR��VMC�����/decl��_proof_1ndc��������������&:�b�����&:�b�h�&:�b�&�&8�������b�	���PInfo���decl��equations_eqn_1����h������%��������������K�&[�PInfo���ATTR�����EqnL��decl�neg�!8�&Z�PInfo���prt��VMR��VMC�����decl��equations_eqn_1������������&a��equations_eqn_1�PInfo���ATTR�����EqnL��decl��_sunfold�!8�&7�PInfo���decl�has_neg���	mk�&m�PInfo���"	prt��VMR��VMC���"	��decl��equations_eqn_1l�&v���&yu�&v�&{�PInfo���"	ATTR�����EqnL��SEqnL��ATTR�����classhas_neg����decl�neg_defab���&{���'������ �&�b0� �
A����&��
r�'�%�����&�� =�'��F��&��c�c�����&��&����&��&���&v����e_2����&��&{� =�c� H�&��c�����&��
b�F��� yxha���[��������&��'�
�n₁d₁h₁c₁��������&��;�'���#�������&��b�����&��b�h�&����b�&�&������
���&��b�	�&����&���'�&��r�&������&��&��E�&�_a��������&��b�����'�b�h�'���b�&�'���������'
�b�	�'
���'���D�"e�'!��&��&��$�&��&����&���
x�&��#���r�6�&��r���#�"�����'7���G�'A�����'7�'C�
�'4�'A���#�'6�'A�Q���r�����r�'A���r���D�G��=�k�n���"�����'A�X���PInfo���$ATTR�x����decl�mul_main�!9���!<a_numa_denoma_posa_cop�!=a_num_1a_denom_1a_pos_1a_cop_1�4���
��!H�PInfo���.VMR��VMC��
�.���1�3��decl��equations_eqn_1n₁d₁h₁c₁n₂d₂h₂c₂�����'z�������������������K�'��PInfo���.ATTR�����EqnL��decl�mul�!9�'��PInfo���.prt��VMR��VMC���.��decl��equations_eqn_1���������������������'z��equations_eqn_1�PInfo���.ATTR�����EqnL��decl��_sunfold�!9�'��PInfo���.decl�has_mul���mk�'��PInfo���1	prt��VMR��VMC���1	��decl��equations_eqn_1l�'����'�u�'��'��PInfo���1	ATTR�����EqnL��SEqnL��ATTR�����classhas_mul����decl�mul_defabcdb0�
md0�
o����'��
p�
s���������������
m���
o�#3�'������������#C�P�Q�R�S�T�U�V�W�#E�'x���!G�#[��f�g�h�i�j�!��k�!�of_eq_true��
x���#d�
x�"��D��eq_true_intro�'��
b�'��'��Q�'��"��$��'�is_associativeassoc�Usemigroup_to_is_associative�S��D���Q�'��#h�!��'��'��o���#g�'��'��#m�#g�'��(�(�(�U�U�D�#g�'��o�$��'�left_comm�
xis_commutativecomm�Scomm_semigroup_to_is_commutative�P�'���D�����"��%4�'��o�Q�(�"��$��'����%4�$��"��(�(�
b�(	�(�[�#g�'��D�#g���#g�#g�#m�
b�#g�#g��#g�(9�Q�'��'��'��(I�#h�!��'��(I�"����!��U�U��!��(I�"��o���(P�(I�o�"��(W�(Y���'��(\�o�(��(�D��(W���o�$��(O�"��Q�(m�o�%4�(O���$��%4�o�(�(h�
b�(U�(R�V�!��'��!����!��!��#h�Q�!��!��!��
b�!��!��%#�Q�(T�!��(R�V�!��(��(��!��
b�(��(��(��
b�'��'��Q�'��������'��Q�U�U��#d�(��U�#d�(��'���#d�Q�
y�
|�#d���
y�!��(��(��
y���!��(����(��(��
y�(��#�(���!����
y�S�#�(����Q�(��
y�Y�(����(��(��
y�(�#�(��#�Q�(����
|�#g�'��(��$0�#g�(��(��$0�#��(��(����
|�#��U�U�#�#��(��������(��(��#�������S��(����Q�)���(���(����)
�)���(��)��
b�(��(��(��#��'��#�#����#��#g�$0�Q�#��#y�#g�
b�#y�#��)��(@�#y�)&�#g�Q�(��'��'��)?�#h�$*�'��)?�"����$*�(T�$*�)?�"����
}�)F�)?���"��
}�)K���(��)N���(���(�#��
}�����(��)E�"��Q�)_���$J�)E���)^�$J���(��)Y�
b�)H�(R�V�$*�(��$*���$*�!��#h�
b�!��$*�(��(��PInfo���3ATTR�x����decl�inv_main�!8��%�a_numa_denoma_posa_cop�������������
���cases_on�����)�����
���zero�4�c�����
�����4��=A������)�������4�K�)����K�)����)��)��)������)��)��&�)��)�v�)��)���)��
����
��-�PInfo���<VMR��VMC���<��+	�����	natadd�	�/��decl��equations_eqn_1dhc�	������c�������)����K�)��PInfo���<ATTR�����EqnL��decl��_proof_1ndc�)���=A�������*��*
�PInfo���<decl��equations_eqn_2����h���*
��)���=A�1�*�������������*���K�*!�PInfo���<ATTR�����EqnL��decl��_proof_2ndc�����*�������*8��*9�*���*�*9�*A�����*B�*D�&�*�*v�*�*9��*9�������-�PInfo���<decl��equations_eqn_3����h���
��)������*������������*a���K�*f�PInfo���<ATTR�����EqnL��decl�inv�!8�)��PInfo��<prt�VMR�VMC��<��decl�equations_eqn_1�������)����)��c��equations_eqn_1�PInfo��<ATTR����EqnL�decl�equations_eqn_2���������*��*{�* �**��equations_eqn_2�PInfo��<ATTR����EqnL�decl�equations_eqn_3��������*a��*{�*e�*o��equations_eqn_3�PInfo��<ATTR����EqnL�decl�_sunfold�!8�)��PInfo��<decl�has_invhas_invhas_invmk�*{�PInfo��A	prt�VMR�VMC��A	�decl�equations_eqn_1l�*���*�u�*��*��PInfo��A	ATTR����EqnL�SEqnL�ATTR����class����decl�inv_defab�has_invinv�*��������	C���F���F�*�a0�*��
A���*����H����*��
��(�F��*��c�c�����*��*����*��*�c�*�����e_2��&��*��*��*��c�
T�*��c����*��
b�F����*��*���*��X�(b0�*��
A���*��
�������*��
r�F�
��*������*��*����*��*��*��*��c��*��c�
T�*��*���*�xha��-�[����!���*����ndhc��j���*��;�'�r�h��
�� �#� ��"�(�
��*{���'��n�#�)���"�'�o�
���$�#�)�����'�!��!��+/���#��*{�}�D�#�'���D�}�#�)����"
�'�)�����*{�)��#�n�#�)����+6�'�
���+7����*{�
��O�D�#�+A�+[����*{�*�D�#�+A�*��+@�*�Q�*&�D�+k�����+l�+v���+i�+t��D�#�+k�+k���+k���+v��+k�+k�����+v�+��E�+t_a����"@�*���*'��'�"@�*�"e�+���+v�+k�$�+@�*�Q�+s�+�� �#�)���"�'���
����*{�
���+&�
�����*�Q�*k��+������+��+����+��+�����+��+����+����+���'�+��*�+������+��+��E�+�_a������*���*l��'����"e�+���+��+��$�+��*�Q�+����+����s�;�s����_a����#���,��,��������+�+��
x�r��o�6�r�D��{�{�A�Fn0�{�
A� �#�	���'�!���(����!��F�#�	��"�
��
�=�,1�c��!��F���!������,1�
����,=���,0�,0���,0�,G�c�
T����
b��F���,�,�t�E���(���"���"��,�t�$��#�#�'��,&�'��,&�Q�,#�$��,%�,���r�$��(�r��Q�,��,��$��
b�,��,���,��=�,��,��$��6��D�r��"��,�
b�,%�$��Q�,%�$��$��(�D�
b�$��$���$��
s�f�
s�PInfo��CATTR�x���decl�add_zeroa��#$�c�+�num_denom_cases_on'_x�,�ndh������#$�I�c�I��,��
����I�����,��,��E�c_a����#$��c���,����,��,���,��c�
T�����,��b�����,��b�h�,���I�I�b���,��I���,��'�����
x�����I�,��'��,������-�-�{���F�����T���F�b�l�-���b�����A���W�����b�h���o�b�-#�W�onedefa���5��e_1�
��
������O�n���O�n�
���o�b�����-D�
��-�,��Q�-�-�F�,��8�,��,���,��-�F���add_zero���,��-�-��-�������-D�I�I���I���,��b���I���PInfo�*�Zprt�*decl�zero_add�+��#$�c�+�,�_x�-�ndh������-}�I�I��#$�,��I�I�����-��-��,�_a����-}����,�����-��,��,����-��b�����-��b�h�-��,��b���-��I���-��-�I�-��'��-�,��-�-�-�F�����-D�-D�
��-��,��Q�-����,��,��8�-�F�-T�,��,��-P���,��-�-�-_�-g�I�I�-l�-r���PInfo�8�^prt�8decl�add_comm�+b��#$�,��+�?�,�_x��-��-�n₁d₁h₁���,�_x�,��-�n₂d₂h₂������#$�t�I�,��t�b�����-��b�h�-���'��
����
��
x�
����.�b���-��.�-��
������T�
��F�b�l�.
��b����.A���W����.�b�h�.�o�b�.!���o�-)�-4�
�n���
�n���-?���-D�-��.���-��'��-��
��,��
��.�-
��
��-D�.6�
��.>�-��
�-��
��.@�.����
����.�b���.���PInfo�>�bprt�>decl�add_assoc�+�?c��#$�#$�.h�-��+�?�J�,�_x��#$�,��,��.in₁d₁h₁���,�_x��#$�,��,��,�n₂d₂h₂���,�_x��#$�#$���
��.��,��n₃d₃h₃������#$�#$����t�I�.��-��b�����.��b�h�.���'����.��
y�B�����B�
��B�.�.��b���.��.����.��'��
x�4�
y����.��
x�.����.��.��#$�'�.��.��I�.���!|����e_2�����e_3����##���.����!8��.��!��.��.��-�#���
����T��F�b�l�.����b�����.�A���W��#��.��b�h�.��o�b�.��
*�o�-)��-4�
)�n���
)�n�u�
)��-?���.6�I�I�-l�-�.��.������T�.��F�b���/A���W�T�
x�+7�
�F��/�b�h�/�o�b�/&����.��F�o�-(�.��F�-4�/*�n����6��
��D�9to_has_zero�4�n�
'_inst_1�;abh₁�S	�/7�2h₂�S	�/7�2�ul�����0��2�	��/7��/V�;����
��/
�.6�-?���-D�
��.��.��Q�.����.����.��.��.��/��/��.��.��/��/���/��.��/��8�.��/��Q�S�.������������/��.��/��/��S���.��/���.����#������.��8�/��.��Q�/��Y�
��Y�/��
��.��i���#�
��W�/��.�.Q�/��.��Q�/��)	��)	�/���.��/�����/��.��.P��.��.���.��
�/��.����.��.��.��8�.��.���.��/��.��
�.��.��.��.��Q�S�.����Q�/��.��/��/��.��/���.����/���
��r�/��.�.Q�.��.����.��'�.��
x�-���.��.��0�.��.�0	�.��.��.����.��-��.�.8�.��-��.�/
���T�.�F�b���0A���W�T�>�1�F��0�b�h�0�o�b�0)����.�F�o�/.�.�F�-4�0-�n����6�
����/:�n�/p�
����.6�-D�-?���
��0�.��/��0�.��Q�S�-��������
��0R�-��.��0Q�Q�-��0V��-���#���
��-��8�0S�.�������0U�.����
��.��.���.����.��b���.����PInfo�I�gprt�Idecl�add_left_neg�+��#$�&��c�+�,�_x�0�ndh������#$�&��I�I�c�b�����0��b�h�0��	Q�b���0��c���0��'���-�c�0��'��
x����,��-�0��0��#$�&����I�0��.��0��0������I�I�-l�-������-D�-D�
��0����Q�0����,��,����8�0��0������,��,��-Padd_left_neg��,��-�-�-_�
T�-�c�c���
���PInfo�b�mprt�bdecl�mul_one�+��'�>�Y�+�,�_x�0�ndh������'��I�0��I����1�'�U�U�I�b�����1
�b�h�1
�,��b���1�I���1�'���U�,��U�I�����U�U�-D���T�U�F�b���1#A���W�1#��1#�b�h�1#�o�b�1.����U�F�o�/.�U�F�-4�12�n����Szero_ne_one_classto_has_one��zero_ne_one_class�D�nto_has_zero�1=�n�
's�n�ul>�1;	�1Aone_ne_zero�1=�-?���
��1�W�1���W���I�I�-l�-r���PInfo�h�qprt�hdecl�one_mul�+��'��0��+�,�_x�1�ndh������1��I�I����'��1�I�I�b�����1��b�h�1��,��b���1��I���1��'�
x�U�1����I�1�U�U���1e�-D�
��1����V�1����1����I�I�-l�-r���PInfo�t�uprt�tdecl�mul_comm�+�?��'��0��+�?�,�_x��1��1�n₁d₁h₁���,�_x��'���0��n₂d₂h₂������'��t�I�1�t�b�����1��b�h�1���'�
z�.�1��b���1��1��1��
����.6�-D�1��1����1��'����.@�1��1��
��-D�.6�
��1��
z�$�.@�.�.Q���1��b���1����PInfo�y�yprt�ydecl�mul_assoc�+�?�J��'��'��2�1��+�?�J�,�_x��'��0��0��2n₁d₁h₁���,�_x��'��1��1��0�n₂d₂h₂���,�_x��'��'��.���25�1��n₃d₃h₃������'��'��.��t�I�2?�1��b�����2E�b�h�2E��'�#��.��2M�b���2B�2M���2B�'�
x����.��2M�2T�'��'�2U�.��I�2Y���'�����e_2�����e_3��.��'����2b�.��2b�'��2@�2]�1�#���
��/
�.6�I�I�-l�1�2U�.����/|�-D�
��2W�#��Q�S�2U�Y�#��#��2��#��2U�2���2U�$�#��W�#��
z�$�.��.��/��2D�2M���2D�2?�1��2M�2t�.��.��0�1��1��1��2x�
z�.�/
�0G���2O�b���2M���PInfo���~prt��decl�add_mul�+�?�J��'��.i�#$�2�1��+�?�J�,�_x��'��.r�#$�1��2n₁d₁h₁���,�_x��'��,��#$�1��2/n₂d₂h₂���,�_x��'��.��#$�25�1��n₃d₃h₃������'��.��I�#$�2?�I�1���'�.��.��'��
x�%E�.�
x�
z�.��
x�.��.�����2��3���2��3���2��'��.��I�3�2t�.��.��/�I�I�-l�1�.��.����/|�-D�2��3
���2��#$�'�%E�.��1��3
�.��2��3-�2x���/
�-D�1��1��1��-�%E�.��
z�.���T�.��F�b���3BA���W�T�/�1�F��3B�b�h�3B�o�b�3P����.��F�o�/.�.��F�-4�3T�n����/4���/:�n�/q���/
�-D�-?���0G���3�'�
x�3���
x�.����3
��3y�3�-c�3�.����-���-����3y�3
�b�����3��b�h�3���'������.�
y���.��B�-��-�3��b���3y�3��
��3u�3��Q�3u���/����-��/��
y����3��3��/���3��3��3��3��
x�3����3���3�3��Q�/����%v���%v�.��3��3��#��.��3��/��%����.��8�3��3��2��
��3��3��$�����������3����/��3��3��8�3��3��Q�/��Y�-��Y�/��-��3��/��-��W�3��3��Q�/��#��
��#��/��3��/��
��� B�/��.�.Q�3��3��Q�/��)	�3��)	�/��3��3��/��3���4�3��Q�/��#���#��/��3��3���3��/��.��/��3x�3��Q�3x�U��U�.���3��4�
x�.����4#��.��.��b��
��������3��4,�.���r�4"�3��b�
������3
�3��
��3	�3��8�3�3��b�#�.�3�3��b��.��3�3��Q�S�.��S�
����-��B�-�Q�4U�-�4X�4U�4T���4Z�i�.��
�����
��
���
��4_�4Y�4,�����i�
���-���3��b���3����PInfo����prt��decl�mul_add�+�?�J��2�-��#$�2�2��+�?�J���4���'��-��4������4��4��E�4�_a����'��.i�#$�4��4��"e�4���4��4�ratmul_comm�-����4���#$�1��2#�4������4��4��E�4�_a����2��4��4���4��4�ratadd_mul���4���4��2#�4������4��4��E�4�_a����#$�2�1��4���,��4��4���4��2�4����4���4��4������4��4��E�2#_a����4��4��4���4��4���4��2��4����4��PInfo����prt��decl�zero_ne_one�S�c�0��{�	P�0��12h�	P�1�=��1�1?�c�12�,B�U�1?�1V�1=��c�1�5%�PInfo����prt��decl�mul_inv_cancel�+��5�c��1��+�0��+�,�_x�54ndh��a0�5�I�c
n0�T�F
����'����*����0���
��0������5A�5E���5?�5C���5?�'���r�5M�5C�5L�5N�,"�5O�5L�5=�+�5S�2t���������5>�+��r�1�r�r���T�r�F�b�l�5i��b����5nA���W�.��5n�b�h�5n�o�b�5{�P�o�-)�-4�
�n���
�n�X�-?�����T�F�b���5�A���W�T��F��5��b�h�5��o�b�5����{�o�/.�F�-4�{�n���{�n�u�{�-?���
��5M�5M��5M�5R�5M��r�-c�r�5��0��0����0����5C�'�1��5��0����5D�5��b�����5��b�h�5��5D�5C�b���5C�5C���5C�5��5C�
��5��1��5��5����5��b���5C���-c�U�UAnnotcheckpointAnnothave�{��F���ce�6�
A�����5���
��c��+�c���5�
��r�c����
��
��c�b�����6�b�h�6�	Q�b���6�c�
T�
��c�c���
���
b�F�PInfo����prt��decl�inv_mul_cancel�+h�50��'��+�0��+���50���6<�51�0��4��+ratmul_inv_cancel�PInfo����prt��decl�decidable_eq_proof_1������������PInfo����	decl��_proof_2����w_denomw_posw_cop���������� ������������6V��6X���6]a_1�6\���#����#�nh_1�$�#h_2�>�absurd�E��n�PInfo����	decl��_proof_3����w_num��������������6�;��������������6����6�a_1�6����D�#����nh_1�Wh_2�F�6s����n�PInfo����	decl��decidable_eqid�6�_v�T��b�	������w�T���	������������decidableby_cases�$�	��6�a���*��#��6���D����� �	���"+�������6��E�	����D�#��6������Q�D��6��6���������!��	���!��!����6����"�����decidableis_true��!�����7���!���������6���is_false�6��"(������D�#�����6��7���;���D�#���PInfo����	prt��VMR��VMC����	����intdecidable_eq	
�	decl��equations_eqn_1l�6����7Ru�6��7T�PInfo����	ATTR�����EqnL��SEqnL��ATTR�����class������decl�discrete_field_proof_1��*{�c�7Y�f�7Y�PInfo����	decl��discrete_fielddiscrete_fieldmk�!nratadd_assoc�cratzero_addratadd_zero�&mratadd_left_negratadd_comm�'�ratmul_assoc�0�ratone_mulratmul_oneratmul_add�4��*{ratzero_ne_one�6Gratinv_mul_cancel�4��7T���PInfo����	prt��VMR��VMC����	�@���������������decl��equations_eqn_1l�7^���7�u�7^�7��PInfo����	ATTR�����EqnL��SEqnL��ATTR�����class������decl�fieldfield��to_field�7��PInfo����	prt��VMR��VMC����	����decl��equations_eqn_1l�7����7�u�7��7��PInfo����	ATTR�����EqnL��SEqnL��ATTR�����class������decl�division_ringdivision_ringfieldto_division_ring�7��PInfo����	prt��VMR��VMC����	����decl��equations_eqn_1l�7����7�u�7��7��PInfo����	ATTR�����EqnL��SEqnL��ATTR�����class������decl�integral_domain�/>fieldto_integral_domain�7��PInfo���	prt�VMR�VMC���	���decl�equations_eqn_1l�7���7�u�7��7��PInfo���	ATTR����EqnL�SEqnL�ATTR����classintegral_domain���decl�nonzero_comm_ringnonzero_comm_ringintegral_domainto_nonzero_comm_ring�7��PInfo���	prt�VMR�VMC���	��	decl�equations_eqn_1l�7���7�u�7��7��PInfo���	ATTR����EqnL�SEqnL�ATTR����class����decl�comm_ringcomm_ringnonzero_comm_ringto_comm_ring�7��PInfo���	prt�VMR�VMC���	��decl�equations_eqn_1l�7���7�u�7��7��PInfo���	ATTR����EqnL�SEqnL�ATTR����class�
���decl�comm_semiring��nonzero_comm_semiringto_comm_semiringnonzero_comm_ringto_nonzero_comm_semiring�7��PInfo���	prt�VMR�VMC���	���decl�equations_eqn_1l�7���7�u�7��7��PInfo���	ATTR����EqnL�SEqnL�ATTR����classcomm_semiring���decl�semiringsemiring�?domainto_ringdivision_ringto_domain�7��PInfo���	prt�VMR�VMC���	����ringto_semiringdecl�equations_eqn_1l�7���7�u�7��7��PInfo�#��	ATTR����#EqnL�#SEqnL�ATTR����class����decl�add_comm_groupadd_comm_group��7��PInfo�$��	prt�$VMR�$VMC�$��	������decl�$equations_eqn_1l�7��$�7�u�7��7��PInfo�'��	ATTR����'EqnL�'SEqnL�$ATTR����$class�%�$��decl�add_groupadd_group��7��PInfo�(��	prt�(VMR�(VMC�(��	�$��decl�(equations_eqn_1l�7��(�7�u�7��7��PInfo�+��	ATTR����+EqnL�+SEqnL�(ATTR����(class�)�(��decl�add_comm_monoidadd_comm_monoid�to_add_comm_monoid�7��PInfo�,��	prt�,VMR�,VMC�,��	��.decl�,equations_eqn_1l�7��,�7�u�7��7��PInfo�0��	ATTR����0EqnL�0SEqnL�,ATTR����,class�-�,��decl�add_monoidadd_monoid���7��PInfo�1��	prt�1VMR�1VMC�1��	�(�decl�1equations_eqn_1l�7��1�7�u�7��8�PInfo�4��	ATTR����4EqnL�4SEqnL�1ATTR����1class�2�1��decl�add_left_cancel_semigroupadd_left_cancel_semigroupadd_groupto_left_cancel_add_semigroup�7��PInfo�5��	prt�5VMR�5VMC�5��	�(�8decl�5equations_eqn_1l�8�5�8	u�8�8�PInfo�:��	ATTR����:EqnL�:SEqnL�5ATTR����5class�6�5��decl�add_right_cancel_semigroupadd_right_cancel_semigroupadd_groupto_right_cancel_add_semigroup�7��PInfo�;��	prt�;VMR�;VMC�;��	�(�>decl�;equations_eqn_1l�8�;�8u�8�8�PInfo�@��	ATTR����@EqnL�@SEqnL�;ATTR����;class�<�;��decl�add_comm_semigroupadd_comm_semigroupadd_comm_monoidto_add_comm_semigroup�7��PInfo�A��	prt�AVMR�AVMC�A��	�,�Ddecl�Aequations_eqn_1l�8�A�8u�8�8!�PInfo�F��	ATTR����FEqnL�FSEqnL�AATTR����Aclass�B�A��decl�add_semigroupadd_semigroup���8�PInfo�G��	prt�GVMR�GVMC�G��	�1�decl�Gequations_eqn_1l�8'�G�8)u�8'�8+�PInfo�J��	ATTR����JEqnL�JSEqnL�GATTR����Gclass�H�G��decl�comm_monoidcomm_monoid�Dto_comm_monoid�7��PInfo�K��	prt�KVMR�KVMC�K��	��Mdecl�Kequations_eqn_1l�81�K�84u�81�86�PInfo�O��	ATTR����OEqnL�OSEqnL�KATTR����Kclass�L�K��decl�monoidmonoid��to_monoid�7��PInfo�P��	prt�PVMR�PVMC�P��	�����Rdecl�Pequations_eqn_1l�8<�P�8?u�8<�8A�PInfo�T��	ATTR����TEqnL�TSEqnL�PATTR����Pclass�Q�P��decl�comm_semigroupcomm_semigroupcomm_ringto_comm_semigroup�7��PInfo�U��	prt�UVMR�UVMC�U��	��Xdecl�Uequations_eqn_1l�8G�U�8Ju�8G�8L�PInfo�Z��	ATTR����ZEqnL�ZSEqnL�UATTR����Uclass�V�U��decl�semigroupsemigroupmonoidto_semigroup�8A�PInfo�[��	prt�[VMR�[VMC�[��	�P�^decl�[equations_eqn_1l�8R�[�8Uu�8R�8W�PInfo�`��	ATTR����`EqnL�`SEqnL�[ATTR����[class�\�[��decl�sub_defabcdb0�
md0�
o�has_subsubadd_group_has_sub�7��
p�
s�'�8\��has_sub�
z�
}���b�c�d�e�f�
m�g�
o���8l�b�����8l�b�h�8l��'�#(��
}���8|�b���8c�8|���8c�'�#(�
x�%����8|�8��##���8(�7��
p�&��8��8��8��&����7��
s�8�sub_eq_add_neg�7��
p�
s�.��8��
p�
p�
��8��8��0��.�%��5��5��5��5��5��5��5��-?�����
m�b���
mA���W�5<��
m�b�h�
m�o�b�8��(�o�/.�F�-4�\�n���\�n�u�\�-?���
��8��8z�#��8��8y�������
�8k�8|�
��8i�8z�8���
z�
}�����
���8~�b���8|���PInfo�a��decl�denom_neg_eq_denomqm��0���o�[�o�9q_numq_denomq_posq_cop�_m��&��9
�e�9
�PInfo�n��ATTR�x���ndecl�num_neg_eq_neg_numq���0����u�[�u�9q_numq_denomq_posq_cop�_���9�9"�e�9"�PInfo�t��ATTR�x���tdecl�num_zero���c�F�9&�9/�PInfo�z��ATTR����zATTR�x���zdecl�zero_of_num_zeroqhq���F��c�|�}�94
����'��� {
����'������c�����9?�c���9?�
��9>�c�
��9;�F�9>�9>��9>�
T�9>Annot��Annot����99��PInfo�{��decl�zero_iff_num_zeroq�W�"e�c�94����9e�94_x�9e������F�b�����9l�b�h�9l���b�
���F�Q���9/�F��e_1�����c�z�F�F�s�
3���zero_of_num_zero�PInfo�~��decl�num_ne_zero_of_ne_zeroqh�50�T���F�����50���9l�9��PInfo����decl�num_one���0��U�9&�9��PInfo����ATTR�����ATTR�x����decl�denom_onem��0�A�9�9��PInfo����ATTR�����ATTR�x����decl�denom_ne_zeroq�������ratpos�PInfo����decl�eq_iff_mul_eq_mulpq�W���
x�����
x�� {�������9��W��99���9������9��9��
���9��h��9��9��E_a����"e���99�9a�����9��9��h�9��9��9��E_a����9?�9���9������������9��9���9��9��9���9��6��� {������T� {�F��m� z�����:�:�h�:���� {���:�:�:���:a��e_1��b��e_2�����5��5��`������T� {� {�� {�F���
b���F�����:�:ne_from_not_eq� {���-4�:
�:���:
�:��coe_nat_inj'� z���� z�:���:G�:�:3� z��denom_ne_zero���T���F��m������:W�:[�h�:W��������:[�:`�:V���:c�:%��������F���:.���:f�:c�:4�����-4�:b�:Z���:b�:Z�:>����9��:[���9��:[�:L��:Q�PInfo����decl�mk_num_ne_zero_of_ne_zeroqndhq�5�chqnd��X�5<���������:����:����6�����-���c��������-�c���-�*��c�
��F���+�PInfo����decl�mk_denom_ne_zero_of_ne_zeroqndhq�:�hqnd�:��
m���������:����:����\�:��:��:����c�:���F��PInfo����decl�mk_ne_zero_of_ne_zerondh�
ohd�
o�5�
s�c�������
o���
o�����c�=�+
�c�{�,B�PInfo����decl�mul_num_denomqr�1��'�9������� z�����
hq'�:

hr'�:

����'��'�����9?�'�
x�:��9;�����:��9=����'��'�
x��:�������:��;�;�
x���;�:������;�;���;�;���;�;
�;�
��;�;��;�;	�;�(�;�:�����'��'�;�;
�:��;
�;���;+�;�2t�;)��:���;
�;�;$���:��b�����:��b�h�:���:��
x�:��9>�;J�b���:��;J�1�:��:��9;�9>�:��;J�
��:��:���:��:��;I�(�:��9=���;L�b���;J��Annot��Annot��Annot���:�:
�:���:�F�:�/.� {�F�-4�;r�:���;r�:��coe_nat_eq_zero� z�:I�-)� z�:RAnnot��Annot���;��PInfo����decl�div_num_denomqr��vdivision_ring_has_div'�7��'�9��
x� {������	C�94����F�;�hr�94
hr'�95
����;��'�:��9>�;H�9;�b�����;��b�h�;��	Q�b���;��c���;��;��c�b�/7�2discrete_fieldto_integral_domain�7��7��}������e_2�����e_3��.��;����;��.��;��;����cdiv_zero�7��;��c���;��'�:�� �F�c�
��;��;���:��:���:��9>� ���9=� � 9�c�;��F�Q�;��;H�F�D� R���:��:���:��9;�F�Q�9;�9/�F�9��c�9�mul_zero��:���;��
��Annot��Annot���9������94���;��'��9?�'� {���'�
x�9;� {�
x�9>���</�<0�*��99�<3�</�2�+�<=
div_eq_mul_inv�7�Annot��
����<@�<=�b�����<K�b�h�<K�<J�<@�b���<@�<@���<@�<=�<@�2t�9?��<<�+�*��99�9`���<R�b���<@��Annot��
����<=�<3��<3�<3�����<s�<v�E�<<_a����:��*��9?�:��'�9>�9;��:��<���<s�<2�5_��� {���<3Annot��
�1�9;�9>� {�����T�9>�F��m�9=�����<��<��h�<�����9>�F�<��/.�9>�F�-4�<��<����<��<��;}�9=����9=�<��-)�9=�:QAnnot���PInfo���decl�num_denom_mkqndhn�
ohd�
oqdf���
sExistsc�"�
�����z���������������
o���
o���<�
hq�5��c

����'�<��<��
p

����
x����
����
�!���"�$����D�������D�0��#�@��
x�<��<��f�<�����#���<��������<��=���<�_a���$�
x�O�<��<�����<��intdiv_mul_cancel��<����z�<���z��!�������=�=�E�#_a���z�<��#�z��#��=�!�ratnum_dvd���inteq_mul_div_of_mul_eq_mul_of_dvd_left��<���=ratnum_ne_zero_of_ne_zero�#���T�=�F�b�����=G�b�h�=G�o�b�=M����=�F�o�/.�=�F�-4�=Q�n�h�=Qm�<��n���=Q�=\�;}�<����=\�n���u�:Z�:��#�-?���=6Annot��Annot���=��'�<��<��!��<��6�<��<������T�<��F�b�����=��b�h�=��o�b�=�����<��F�o�/.�<��F�-4�=��n�h�=�m�<��n���=��=��;}�<����=��n�=h��-?��Annot��Annot�����<����
p�����<��=��E�<�_a���=~�"e�!���<����Annot��Annot�����:��=�
q�c�V�,B��'��=��'��=����
p��c���
p�PInfo���
decl�mk_pnat_numnd�k���t�y���6���k���k���kcoe_pnat_nat�����k�����k�����������=�d_vald_property���X���PInfo���decl�mk_pnat_denomnd�km��t���=��=������k�����km��>�>�>d_vald_propertyv��>�PInfo���#decl�mul_numq₁q₂���1��y�:����s�:��:������[�����1��y�9������s�>5���� zq₁_numq₁_denomq₁_posq₁_cop�[�����'��;�y�
x������s�>G��� ��q₂_numq₂_denomq₂_posq₂_cop���'���PInfo���'decl�mul_denomq₁q₂m��1����:��>-�����[��m��1����>:�>;q₁_numq₁_denomq₁_posq₁_cop�[��m��>C���>L�>Mq₂_numq₂_denomq₂_posq₂_copv��>U�PInfo���+decl�mul_self_numq���0��9�������>���y�>����s�>��>9��>������>��>����>�_a�����1��9�����>���>��>��mul_num���>���>����s�����>��>������>��>����>�_a����y�>����s�>��:�� z�>���>����t�>��>���>��>�������>���>����>������>��>����>�_a����>����s�����>��>��>���>����>���>�Anatcoprimegcd_eq_one�>��>���coprimemul���>��mul_right�����cop�?�?���>���>��U�>������>��?
����_a����>����>���>��>���>��Uintcoe_nat_one���?
��>��>������?
�?&���?_a����>��U�>��>���?
�>����>���>��PInfo���/decl�mul_self_denomqm��>��>�����?Cm���>��>��>������?C�?I���?A_a��m��>��>����>���?C�?Gratmul_denom���?Im�?F�>��>������?I�?c�>�_a��m���>��>��>�m�?h�>��>���?I�>��>����?cm�?FA�>������?c�?|�>�_a��m�?h�>��>�m�?h�>���?cA�?���?|m�>��>������?|�?����?z_a��m�?hA�>��?S��?|�>����>�v�>��PInfo��3decl�add_num_denomqr�-��'��9��;��;����
�
hqd�:

hrd�:
����#$�'��;��;��;I��'�?��<5�:��;I�?������?��?�α'�m�me_2l����e_3�/R�����l���?�����������?��?��?����?��#$�:��?��E_a��#$�,����?��:���:��;8����?��?����?��?��9?�?��E_a��#$�;)�@���?��9?��9?�<]����@�?����@�?��?��E�@_a��@�:����@�?��-�:��:��9;�9>���?��?����?��?��?����?����?��b�����?��b�h�?��@,�b���?��?��@.�?��?��
��?��?��8�;��;���;��;��?���:��9;�;I�;I��;I���@,�b���?���Annot��Annot�����:
� zintcoe_nat_ne_zero_iff_pos� z�9�Annot��Annot���@n�PInfo��7decl�coe_int_eq_mkz���������cast_coe�&{�J�Y�!��!��
���@���_��{�}�natcast_coe�J�Y�!��'���U
���@��recn�@�����@��)��'���)��U�b�����@��b�h�@��	Q�b���@��c���@��@��c���x����e_2�����@��@��)��nat_zero_eq_zero�cast_zero�J�Y�!��@��c���@��
��U�c�
��@��F�Q�@����F���)��@����U�U���
T�U�
��nIH�@�����@���'�@�U�b�����@��b�h�@���'���U�@��b���@��@����@��'��1�1��U�A�@��@��#$�'���U�1�A�@��#$�@��0��A	�cast_succ�J�Y�!��.��A�A�0��1
����0��1�f�0�Annot���-���U�U�U�1e�1e�
��A���Q�A�����8�1���1n�A�U�W�U���A�U�A8�@��@��
��@�����U�U�����@��b���@���Annot����_��&��#$�@��0��'��U
���Ac�@�n�Ac���&��#$�@��0�nIH�Ac����&��#$�@��0��'���U����&��#$�A�0��As��##�8��8(�7��7��&��8��7��A�A��0��As�����Az�A��E�A��A�A�0�_a����&��#$�#$�@��0��0��'��O�U�"e�A���Az�A�neg_add�7��A�0����A���A�+��U�A��As�����A��A��E�&��A_a����A�A��A��A��A���A�A��A���A��A����A���'������U�As�����A��A����A��A����A��'��
x���U�
x���U�A�A��A��A��'���U�A��.��A~�A��A����A��A��A�
����&��0��A��f�A�Annot���-���U���U�1e�1e�
��A��A��8�A����W���A����Q�D���U���D�U�U�����U�U���B�U�A8�A�U�A8�As�As���As���A�Annot���PInfo��@decl�mk_eq_divnd����;��@��@��-�.� �B6d0� ���Y�;��@��B3�b�����B=�b�h�B=�	Q�b���X�c� I�B<�c���B<�B;�c�;��;��B:�B:���B:�B3�c���B3�@��F�c���w��e_2���`�@w�@��F��cast_zero�&{�J�Y�!��;��B:�
���/� y�B?�BB�BC�Y�X�b�BF�X���X�B<�X�BK�1�
x�1?�X�BK�'��;�=�7�division_ringto_ring�7��H�U�1�B��BK�B��*��2to_has_inv�7��(�U�B��BK�;��B��B��B��BO�B��coe_int_eq_mk�B3�B��B�division_def�7��B��B��2s�B��B��B����B��B��B��5_�U�1�1?�U�5%�1k�B��1����B}�b���X���PInfo�,�Jdecl�coe_int_eq_of_intz�@��:�8���@��!�:�B���:�!�of_int_eq_mk�PInfo�7�Pdecl�coe_int_numn���@��;���B����:�����B��B��E�@�_a�����B3�93��B��:�coe_int_eq_of_int��B��PInfo�:�SATTR�x���:ATTRelim_cast���:�Gdecl�coe_int_denomnm��@�A�@���Cm��:A�����C�C�B�_a��m��B3A�:YA��C�:�Cv�C�PInfo�?�VATTR�x���?ATTR�>���?�Gdecl�coe_int_num_of_denom_eq_oneqhq�C��@����C�D�C���C)�C(�98�������C)�C.�?��C'�C'���C'�C-���99�C-�9�_a����99�9a���9��C-���99�C-�C-��� z_a�9��9<�����99A����C-�C-���C-���C.��98�U�C-�����C.�Ca�E�C'_a����@��9;�9<���"e�Ci��C.�C_�B������C_�PInfo�B�Ydecl�can_lift_proof_1qhq�C�<�y�@��J�K�C�<��C}���coe_int_num_of_denom_eq_one�PInfo�I�\	decl�Hcan_liftcan_liftmk�@�q�C�I�PInfo�H�\	prt�HVMR�HVMC�H�\	�F��������cast_maindecl�Hequations_eqn_1l�C��H�C�u�C��C��PInfo�U�\	ATTR����UEqnL�USEqnL�HATTR����Hclass�N�H��decl�coe_nat_eq_mkn�@��W���@���@����@������@��C��E�@�_a����A�A�"e�A��@��C���C��@�intcast_coe_nat�&{�J�Y�!����C���@��@������C��C��E�C�_a����@����A�C���C��@��B������@��PInfo�V�_decl�coe_nat_numn���@����]���C����C��������C��C��C�_a�����A���93����C��C��C����C�����������C��C����C�_a�����C��������C����coe_int_num������PInfo�\�bATTR�x���\ATTR�>���\�Gdecl�coe_nat_denomnm��@�A�b���D
m��C�A�����D
�D�C�_a��m��AA�C��D
�C��C����DmAA�����D�D&���D_a��m��C�A��A��DA�coe_int_denom��vA�PInfo�a�eATTR�x���aATTR�>���a�Gdecl�inv_def'q��*��;��@���@���g���DF��*����DE�����DF�DK�?��D@�DI���D@�DI�DI�9�_a�+�D@���D@���9����DJ�DI���DI�DE�DE���DE�[�g�DKq_numq_denomq_posq_cop����*���;��@���@���b�����Dr�b�h�Dr��'�1�Dz�b���Dl�Dz�5_�1�Dq�Dz���;��A��@��'�
x��A�����D��
x����A���D��Dz�div_num_denom�A��D��
��D��1�Q�D��
x�1�U�1��D��1�\�D��U�Q�D����U�D������D��������D�A�D7�������W�1�D��Q�D��1���D��U�Q�D����U�D������D��������D�A�a�������D��D�1����D|�b���Dz���PInfo�f�jdecl�mul_own_denom_eq_numq��0��DB�DD�o���D���'����DB�DD�����D��D��h�D��D��D����D��D��2t���������9�_a������9������������DB�DB���DB�DD�DD���DD�����D��D���D����D��D����U���E#�E-�E�DD_a����'��99�@�� z�C'�E5�E&�E,�B�����E-��D��'���U�E,�����E-�EG�E�DB_a���E5�C_��E2�C_��E-�ED�coe_nat_eq_mk����EG��'�9����
x���1?�E,�����EG�Ed�E�D��EC�1?_a����E2�<1�U�C_�"e�C_��EG�Eb�1������1?�����F�����������F������E���h�E��}�E�������E��E����E�_inst_1has_lta�we_2��b�ye_3�����E~���E��:�E��E������:k�F���:.���E��E�gt_from_lt�E����������������9��5%���Ed��E_�S�U���E,�����Ed�E����S���U_a����'�9�� {�;��1?�C_��E��C_��Ed�E�����U���E���E,�E,�����E��E��E�E_�1���_a����E��E�� {�C_�Eq��E��E,�-c��U���E����E,�PInfo�n�mATTR�x���nEndFile