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�׷[�initalgebragroup_poweralgebraordered_fieldtacticwlogtacticlinarith�6oexport_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}traversedeclzero_gpowuK�_inst_1division_ringznatanehas_zerozeronathas_zeroeqhas_powpowmonoidhas_powringto_monoiddomainto_ringdivision_ringto_domain�no_zero_divisorsto_has_zero�to_no_zero_divisors)����natcases_on��
44444!4#4%4=+G+��zeroid_rhs
<<<<<<!<#<%<[eabsurdeqirfl���succS5has_mulmul4mul_zero_classto_has_mul4semiringto_mul_zero_class4ringto_semiring4>B�to_has_zero4�monoidpow4?Gnatadd+P�zero_mul4���PInfo�ATTRsimp���declfpow_main���a+�int���+���cases_on��<a_1�<_a_1�has_divdiv<division_ring_has_div'<has_oneone<zero_ne_one_classto_has_one<�to_zero_ne_one_class<[�has_addaddnathas_add�nathas_one�PInfo�VMR�VMC�#�����intcases_on����_mainnatadd����
algebradivdecl�equations_eqn_1����+n��+�of_nat +���+�eqreflid_delta��PInfo�ATTR_refl_lemma���EqnL�decl�equations_eqn_2����+n��neg_succ_of_nat����������+�����PInfo�ATTR����EqnL�decl������+�+�PInfo�VMR�VMC�����doc�The integer power of an element of a division ring (e.g., a field).decl�equations_eqn_1����+���+�����+�equations_eqn_1+�PInfo�ATTR����EqnL�decl�equations_eqn_2����+�������+�equations_eqn_2+�PInfo�ATTR����EqnL�decl�_sunfold����PInfo�decl�has_pow���has_pow+���has_powmk+��+�PInfo�	prt�VMR�VMC�	���decl�equations_eqn_1���eq�8��+�@���	�8�G�PInfo�	ATTR����EqnL�SEqnL�ATTRinstance���class����declfpow_of_nat���a+n��E+coe�coe_to_lift�coe_base�inthas_coe����+�rfl�d�PInfo�ATTR����ATTR����declfpow_neg_succ_of_nat���a+n�U�����+��l�r�PInfo�ATTR����declunit_pow���a+ha�!#%+nT�coeunits<]<coe_to_lift
��<�
��<unitshas_coe<]����groupto_monoid���group<]unitsmk0<+���+������+�����brec_on�5A����4?4����4����4��4?����������4?��4<�_F�below�
����������4<����������������������������������������������4<�����
�
�
�
�
�
�������
��
����
����
���
���������
����
���43�����

�?�?�?�?�?	�
�����?�J�?���Q�?���Q�?���?�J�Q�Q���Q���?�J���?�G�
��@�M+�\�j++����
�G�G�G�G�G�G�
������G���G�����G�����G���G�������������G�����G�
���PS�z��Gmonoidto_has_one��G��������has_one�G��eqsymm�G����unitscoe_one�G�����o{S�@�M�+��\�j��eqmpr���@~�?semigroupto_has_mul�?monoidto_semigroup�?�J�
�q���tidl����a�?�e_1
+a
�e_2
+congr��
��4��<+congr_arg�������4<������pow_succ�?�J�
+����eqtrans�?�����\�i�t����\~�Q���Q���Q�c�i�s�_inst_1has_lift_t�Q�?a�����������?�!������������e_2
������������+���������������+���K���[���!�
�Q�c�i+unitscoe_mul�?�J�i�schas_mul�?������e_2
��+������e_3��+��q~�q��4�u<+�C�q��q4<�u����
unitsmk0_val�?�G�
��t�t��?�t�����@������������eqrec�?�q_a�?��
��~�����������.�G�����.�G�����/�����/�����/�������.�/�/���/�����.�����?�G�
������������tpprodfst�����������recnpunitnih��pprod�5��k�����>�����?�����?�����?�������>�?�?���?�����>���������?+����/�����!������++�PInfo�!declfpow_eq_gpow���a+h��z�TU��E<��gpow���������7+�8���9���9�56��E4<���P�������9S��unit_pow4<�9S5�a����f����{5�4�4<�4�4�4=����z�����{����4�w_a4��������E��4<�+���P��������������{��fpow_neg_succ_of_nat4<��������has_invinv���to_has_inv������{�������������y_a������������4���������������������������gpowequations_eqn_2����������5��4division_ringto_has_inv4<���������������~division_ring_has_div4<<�����Eto_zero_ne_one_class4<��_a4�����������������z+���������one_div_eq_inv4<����������������������������has_inv4?��_a4������������4����)�����unitsinv_eq_inv4<�����5��������������?����_a4���)�'������'�F����<�r��4�=�PInfo�6%declfpow_inv���a+
��E+has_negneg�inthas_neg���Thas_one����+���Q+
this�e~�to_has_mul��������y�����z�����e���z�������������������������_a��~��'�������+���+��������one_mul���������e�z�z��������������_a��������������mul_one����zAnnotshow�PInfo�P)declfpow_ne_zero_of_ne_zero���a+ha��z��~<�Ne���_+�`���a��\�a��~4�bG�aS����Gpow_ne_zero4=�aS����Bzero_ne_one_classto_has_zero4��one_div_ne_zero4<�����PInfo�^,declfpow_zero���a+�e�k��Thas_zero�����g+pow_zero���PInfo�f0ATTR����fdeclfpow_add���a+ha��z1�z2�5�a���Thas_add+��4E�a+�b���k+�l���m��n����<5���f�3�8���f+�h�����<�K�4���e_1
�+��
��Ge_2�@+��������4��<+���������4<���4�Efpow_eq_gpow4<�3�;�J�%�i4�����e_2�+��G��?e_3��+�p����~����4�<+�C�������4<��7�9�H�r+�b�h�r���K�F��~���has_mul4?�G�g�����K������4��4?�H�h_a4���������1+~������%������������+�����K����4�����b4?�G�g��%��4�!���!��������e_2
�+�C���G+�����D��gpow_addu������+�PInfo�j3declone_fpow���i��e�j�������{��\�{��T���{S ����one_pow�{S� ���
�W�(���(true�����(�,����(������,��<e_15+�����e_2�y���G���z4�z<+���G��G��4<�z�&�7��&���7chas_diva<��4e_2��+����
e_3�z+�p�?�?��?��4�e<+�C�?��?��4<�e������%���div_self�iffmpr�~�"�
�5�,�,����A��iff���`�
<��<iffrefl���,�2��notfalse�,���������nedef���a������e_1��+�����+������propext��"������αs�iff_false_intro
+�+�+!+�
+one_ne_zero+�������,not_false_ifftrueintro������8�7�,eq_self_iff_true�7trivialAnnot�]�PInfo�z6ATTR����zdeclfpow_one���a+�e�k�r����+pow_one���PInfo��:ATTR�����declis_ring_hommap_fpowu_1u_2��_inst_1discrete_field+_inst_2discrete_field!+f�_inst_3is_ring_hom!<�<�<fieldto_division_ring<discrete_fieldto_field<�!�!��!��!+a4n��"��������$��&�4+�!����!���1���3��<+������������������:��4����\����;�<�=�
��@�
�$�
�&�
���L���O��1��3�4<��S�c<�d��
�to_monoid�
��
� �
�"�
�j�q�!���!��!��-��/��w�zis_semiring_hommap_pow!�
�����<is_ring_homis_semiring_hom!�
�����<��S�c<�m��{������,�������,�2���c�?!��F!��w����������!����z��,����
e_1�;�G+��?���e_2�;��+�!�����;��4��<+�##$�������4<�������#�����<������
�������<�?�
�F�
�j�	�	��
��Ge_1��?+�&#���?+����	�&�
��has_divdiv�
��
�jhas_oneone�
��
��
���	�	fpow_neg_succ_of_nat�
�jone_div_eq_inv�
�j�	is_ring_hommap_inv!�
���4<�	chas_inv!���
��Ge_2�;�?+�##����+�������	���������������!��!��w��!��!��!���������!��w�z��!��w���������,��#������PInfo��Adecl��map_fpow'u_1u_2K�L�_inst_1division_ring��+_inst_2division_ring��+f�_inst_3��!�#�.�0+a4ha�'���'���'���'���"��<n��c<�e�f���r�s4�z���������	����	�������	���4���	�����\����;�
4�=�G��@�G��L�
��O�
��4��S�	�4�	����G���G���G� �G�"�G��	����
���
���
�-�
�/�
���	����G�
�	��	�4���G�
�	��	�4<��S�	�4�	���	�����
�,�����
�,�2�
�	����
���
���
��
'�	��	����
�	��	���,��
��Ge_1�	U������e_2��+�������;��4�
9<+���������4<�
9�
�
)���
�
�
'4�	��	����G�	���
)�
R4�	
�G�	�G��
X�
Z��G��?e_1�	��+�	����+�
�
�
a�	$�G�
�	'�G�	)�G��	-�G�	/�G�	1�G�	��
X�
a�	:�G��	@�G��
Xis_ring_hommap_inv''(�G�
���4<�
Xmt�	�G�
X�	��G�	��G�	��G�	��
��
�pow_eq_zero'�G�	�����	Q�
��G��?e_2�;��+�	V����+�����
&�
Y�
(�
��
�
1�
Q�
�	m�
�	o�
���	s�
�	u�
�	w�
�	��
0�
1�	��
���	��	��
���
0���
*�
)�,�	��
�
)���PInfo��Fdeclzero_fpow�K_inst_1discrete_fieldz����!�Q�R����"$&�+������
������
��\�����
�5�]�^�
�4�
�4<BCD;�+�+����
���!S5789:��+�zero_gpow4�+��+rflm+��nh�#�����
���!r��;eqsymm+����
���!S5�~����������6���)�
�W�`���`5�YB����$������`�j����e�g�)_a4���������
����
���4���������w�������z!��#������������z�������~�����`�g��e�)���j5BCintegral_domainto_no_zero_divisors4discrete_fieldto_integral_domain4<<������j�����~�������������_a4�����~����������������������j��one_div_zero4<�V��Annot�]�PInfo��Udeclfpow_neg������
�a+n��+�o��������������
���+����\���T�I�J�
�<�
�<���������Z������3��5��o��Y��ST���o�!�����!����,������,�2�T���������,�<�4e_1�_����
e_2�a���?���@4�@<+���?��?��4<�@����<����c�6<��4���e_2�Ra����e_3l�+���������4�J<+�**�������4<�J���<��!neg_zero�add_comm_groupto_add_group��to_add_comm_group��Tring�f<���� �=������ ���\<�4���e_2�R��
��Ge_3�T�p���������4��<+�C�������4<���������e������y��<����������`����,����A�������XB��������,�2�����,�����������<�������������`��������<������������,��<������S5��o��
Annotinnaccessible
�Annot�����
�Annot�����k4����ST�<���1�c�r�����

�W�
���
�
�
�����
�
��<���<����� �
�
_a<��5�4��1�b+�r�Y�Y�
�
���
�
one_div_one_div<�
�e�
Annot�]�PInfo��Ydeclfpow_sub������
�a+ha�����������
��
�+z1�z2�5�has_subsub��Thas_sub+�U�+������
��+��
E�������
R5��/add_semigroupto_has_add�add_monoidto_add_semigroup�add_groupto_add_monoid��r+�madd_groupto_has_neg��r�
Q�����
R�
m����
Gadd_group_has_sub��r+_a����������w<�
I+�y�
|�
|+���
|�
����
R�
jsub_eq_add_neg��r+���
m5�[�
N��
i�
Q�����
m�
�����2�
i_a4�����
|�
c�
h+�
����
����
m�
�fpow_add4�+�
i���
�5�
��Y�
P�
Q�����
��
������_a4�������
��
|�
��
����
��
����
��
�fpow_neg4<���
�5���
N�
P�
Q�����
��
�������Eto_ring4��
N���
P_a4�����
��~�
��
��
����
��
����
��
�div_eq_mul_one_div4��
N�
P�V�
��PInfo�^declfpow_mul������
�a+i�j�T��has_mulmul��Thas_mul+����+�����
��+����diteT`ab��discrete_fieldhas_decidable_eq<�)�h�*����4���
{��
{�4�%�C�!�decidable_eq�!5��+��+hi�@�E���
{���6�
{�Ohj�@���P���E��
���
����!�#�%����]�<�_�g<�,�����o�,�2�o�P�������c�{�,����
e_1�a��?���e_2���������k4�k<+������4<�k�j�{���j�g�!�{���6����
��Ge_2�T������e_3�E�G�������4��<+�Q�������4<���^�f�f���f�i�!�1��i��!�!������Tsemiring�%�&�����e_2�E����e_3�E������4��<+������4<���<�!+�!mul_zero����!�v��]�f�n�{���n�_�{�!�{���l�{���l���{��<�!+���!�z��]�!���}�,����{���(���@�q�t������������������zero_mul������n�{���{��-�� ���'�'�V�(�@�q�t����������h�!����<�,<�!��<���n�{����{��fzero_fpow���<���
�<�!�,���gA�����
�4�!���g�,�2�g���,�t���C<�!�����<�!���x�����x�����x+�����!��� ���(�'�q�t�u�P�f�f�,���f�d�i����y��y���C���4�!��y��y��or�C�������linear_ordered_ringto_domain�linear_ordered_comm_ringto_linear_ordered_ring�decidable_linear_ordered_comm_ringto_linear_ordered_comm_ring�intdecidable_linear_ordered_comm_ring�C4�������������C��X���<��_a����������!������C�����!���������������w���C��������mul_eq_zero���<������y��yand����������������������_a���������������C�����������������������������not_or_distrib����andintro�y�����!���y�,ifftrans�y���,not_congr�x�����������%�,�+�%���,�/�$�����$�����n�f��g�f���-�d���
��!�,���SA�����g���S�,�2�S���,�^�%���}�!���$�����$���@���������,��f������%���*��5��G��+5�����%4����4����4���%�P�����%����G��������������_a4�����
|�6�
{�
|�����������o��G�����������+������������_a4�����������������������������P��������w<+�6�����4����������������������unitsne_zero4���+������������_a4�����
{������������������+������������+�������������_a������������������z�������������unitsmk0_coe4������C��4�����gpow_mulu������+�PInfo�adeclmul_fpow������
�a+bi�T��~<��<�'+�T���+�����
��S+�T�U��\�U�5��[�[�
P��US578comm_monoidto_monoid4comm_semiringto_comm_monoid4nonzero_comm_semiringto_comm_semiring4nonzero_comm_ringto_nonzero_comm_semiring4integral_domainto_nonzero_comm_ring4fieldto_integral_domain4�������������mul_pow4���US5�f��[���j�����5�Y�'�e���������������_a4�����
{��<�����
|���
{����������������e�������[�Y�'���������������_a4�����~�������������������������������Y�'�������������_a4�������~��<��������������������5�Y����������������������_a4�������~������������
����������6���X�X�*����������1���*���X���6��_a4�����~�����������q���s���u���w���y���{���v�����I<���N����V����0div_mul_div4<�X���X�����1��6�/�����1�l�������%����4�%�X_a4���V�������w�w������������44�}�}������V�}�����1�X��4�%�X�V��PInfo�Rmdeclfpow_nonneg_of_nonneg�K_inst_1discrete_linear_ordered_fielda+hahas_lelepreorderto_has_lepartial_orderto_preorderordered_comm_monoidto_partial_orderordered_cancel_comm_monoidto_ordered_comm_monoidordered_semiringto_ordered_cancel_comm_monoidordered_ringto_ordered_semiringlinear_ordered_ringto_ordered_ringlinear_ordered_fieldto_linear_ordered_ringdiscrete_linear_ordered_fieldto_linear_ordered_field+���������
=��to_field��z���<��<��<��<��<��<��<��<��<��<`abZ����<���I�J���k�l���n+�o������\�����4��4��4��4��4��4��4��4��4��4<BCD;���4��]�^���S�����������linear_ordered_semiringto_ordered_semiring4linear_ordered_ringto_linear_ordered_semiring4�B���zto_semiring4�$78��4�-pow_nonneg4�#��S��~���������789:��div_nonneg'4<�H�Ozero_le_one4�#�?��PInfo�jzdeclfpow_pos_of_pos��k�l��a+hahas_ltlt�rto_has_lt����z��f<�h<�������k�l����+���m����\����f4�h4�����S�y�z�(�0�8pow_pos4�#��S�}�Pdiv_pos4��H�Ozero_lt_one4�#����PInfo��~declfpow_le_of_le��k�l��x+hx����������a�b�h�q��;has_le+����������������������������������������4�����t������<��+�k�l����+���������������rec����������
���
���
���
���
���
���
���
���
���
����E�
�
��
���
����+��a������������������?���?���?���?���?���?���?���?���?���?�G�A��E�?�
��?���?��
��+b�������� ��+��B�C�D�E�F��
�0+�����)�4chas_le�?������e_2�m������e_3�o���q�����q��4�><+���q��q��4<�>���1����b�1���6�?�������e_2�m������e_3�E�G�q�q���4�b<+�Q�q����}4<�b��
�
���
��Y�Tof_nat_eq_coefpow_of_nat�?��
�(�3��(��
�3�}�'�
��+��+pow_le_pow�?�!�?��
+��;le_of_coe_nat_le_coe_nat+b�����k������ ���not_le_of_gt��u��w��y��{��}��������lt_of_lt_of_le������!��;neg_succ_lt_zero+�;of_nat_nonnega�������������������!������������(����?���?��0���(���������U��������d��?���?��?��?�+�������?��
��?����(�(���(le_trans�?����
�(inv_le_one�?���one_le_pow_of_one_le�?���
����-+�����������������0�������8�=�������<�+���=��;��one_div_le_one_div�?����;���?���
���?������?��!�?��?��?�+�?�Y����?�2�?�c�
���?������s���������������le_of_neg_le_neg�ordered_ringto_ordered_comm_group����b���b���PInfo���declpow_le_max_of_min_le��k�l��x+hx��a�b�c�h��min�decidable_linear_ordered_semiringto_decidable_linear_order�decidable_linear_ordered_comm_ringto_decidable_linear_ordered_semiring���+���������������������������������X�Y�Z�����4�o+max���������to_decidable_linear_ordered_comm_ring������o���o�k�l����+��������������������hle������ordrec��<��<+��������������4<�����������������������������������������?�I�E���
����������G�o4�����������������?�����o����������������+������+������������������������������������������������E���
��������2���o�
�������������������C���C���F�O�����S�U���9��������e_2
�q+��}�e_3
+�������c��4�g<+���c��c��4<�g�:�E�E����E�R�Omax_eq_left���M�O�Qfpow_le_of_le������������neg_le_neg���+���D�������D�����
�������������s�������ordered_comm_groupto_ordered_cancel_comm_monoid����m�
f�mordered_comm_groupto_add_comm_group����
�����
neg_le_neg_iff����
eqmp�����
�����������e_2�E����e_3�E��������4��<+������4<������min_eq_left���+�
�
�,�
4��������of_eq_true��2�a������4����������������������������������������������E���
���������?��������������������'�o��'�o<�,������9eq_of_heq����>���a'��e_0�m��������heq������������������������������������������������E���
��������S���o�G���iheqrefl���F+��=�����=�=is_commutativecomm��latticehas_supsup����semilattice_supto_has_sup����latticeto_semilattice_sup����lattice_of_decidable_linear_order�����sup_is_commutative�����������=�=����=�D���9�>imp_eq_of_eq_true_left�	�>�2�	������4�,�����_x���������<�����B�	�	��a'�e_0�E�
r����H�����?������r�����G��+44�,4���A�������a'�e_0�E������G���������q����+����D���������������has_infinf���semilattice_infto_has_inf���to_semilattice_inf��������inf_is_commutative����������,�eq_true_intro������	�8���������#���&�
���i�������������������f���f���i�$�����(�*���9�������q��
�}+��^��_��
�c+�������6��4�:<+���6��6��4<�:�[�h�h����h�'�$�����"�$�&�����������������`�g�������g�����G�����k�m�������G�����G���G�����G�m���G�G�,�G��+le_total��~to_linear_order����PInfo���declfpow_le_one_of_nonpos��k�l��p+hp��z�hz���!��+�H�k�l����+�����������trans_rel_left4����!�H�
��4<+�!Annotcalc
��5���H�,�������,�2��5�H�H�,�k���H�v4��H�H�V�H�����,��4�H��Annot��PInfo���declone_le_fpow_of_nonneg��k�l��p+hp��z�hz���!��H���k�l���+����������ge4�
���!+Annot����PInfo��declone_lt_powu_1K�_inst_1linear_ordered_semiring�	p+hp��.��.�u.�w.�y.�{.��.+�	-�to_has_one.����.�n���nathas_le��
4�4�4�4�4�4�4<�	-4� 4��4�#4�7�=4��4�C+�
���	�
+��*�
���	�
+��*���/�����/�
����������������	-�� �����#��\�>����h4++�_F�����/�
�
��
��
��
��
��
��
��	.� �
���#�
�~��������+��.+���/������/�
�����������������������	-��� �������#�����=���������?++3���/������/�
�����������������������	-��� �������#�����=����������++�
�����������������������	-��� �������#�����=������������.P������/����+P�less_than_or_equaldcases_on�t_1���H_1mP+H_2���<�
+�
�q��q��q��q��q��q��q���	-�q� �q���q�#�q��=�q���q�'��PP+��zP�no_confusion���
��refl�����PP�:a_ba_a�����<���
z�step�+�2P�M��P���+���.{����3���h������/�
�}��}��}��}��}��}��}�q�	-�}� �}���}�#�}�q�=�}���}�}��+��*�0�M��.�:������/�*�0+�:S�
�����������������������	-��� �������#�����=���������������������������chas_lt�	����q��}e_2�	�^+��_��ce_3�	�6+�/���
����4��<+�//�������4<���������/��������pow_one/�����������.z{���z�S�*�0�bit0������!has_mulmul/�q�/�q�/�q�'�)�)��������,/�q�)_a�q����������w�������/�q��)one_mul/�q�'�)mul_lt_mul/�q��)�)��monoidpow/�q�'�����P��le_of_lt/�q��)�C���*�C�*�>��������K�O����q��}��^� �	�_+��c��6�!�	��+�����
�[��4�_<+���[��[��4<�_� �)�)���q�)�C�N_inst_1�/�q��}��^e_2�W����e_3�4�/�[�;�[��4��<+�//�[��4<���'�����y���B�M�1�B�?��M��e_1����e_2�����4�<+���4<��^�A����A������@�������^�P�nat_zero_eq_zeronatadd_def�add_zeronatadd_monoid���������/�
�^��^��^��^��^��^��^�}�	-�^� �^���^�#�^���=�^���^���q+�?���P���3�4���������/�
�c��c��c��c��c��c��c�_�	-�c� �c���c�#�c��=�c���c�%�^++����#����;��natle_add_left�zero_lt_one/�q���G�ordered_cancel_comm_monoidto_partial_order/�q��	��qmul_zero_classto_has_zero/�qsemiringto_mul_zero_class/�q�&��lt_trans/�q�Q�Z�)���L��++++�PInfo��declone_lt_fpowu_1K�_inst_1discrete_linear_ordered_field�Bp+hp��
�����};�;��;��;+��	/�	1�"�$��;��z������;has_lt�!�0�1�2�3�4�5��4��4��4��4<�>�	/4�	14�"4�$4��4���G��@4��+�C��D���F+�G���H�����\�H�����U�V�W�X�Y�Z���������������c�	/��	1��"��B������?�A��4++�H����S�U�V�W�X�Y�Z�[��;����c�d�e�f��l�m�4+one_lt_pow;��4<+natsucc_le_of_lt+intlt_of_coe_nat_lt_coe_nat+�H����falsedcases_on������w�x�y�z�{�|���
���
���
���
��	.�	0�	2���g���
�/�e�f�;�����PInfo�A�declnatfpow_pos_of_posu_1K�_inst_1��ph���has_ltn��
<�<�<�<�<�<��<��<��<��<�	�<�	�<�	�<�#�%��<�b�=<��@<�q��S<�=<�=<natcast_coe<<�t�	/<�	1<�rdistribto_has_add<<�to_distrib<<�!�r�T��U���V�W�W�Y�fpow_pos_of_pos<<�����v���V���������2���k���������<�4���e_2�	�+��
��Ge_3�	�������
����4��<+�����^4<���j�u���)<���u�Zcast_zero<<�t����������<�����X�Y�Z�[�\�]�<�<�c�~�������T<�V<�#<��� <��<�����to_distrib<<�������Zcast_lt<<��+�PInfo�R�declnatfpow_ne_zero_of_pos�S�T��U��ph�Wn��	�<���u�T��U���g�h�W�i�ne_of_gt<<�i���unatfpow_pos_of_pos<<+�PInfo�f�declfpow_strict_mono�S�T��U��x+hx��strict_mono<����������������n��{�T��U���n+�o��m�n�h��+
�W�
���������������������������������4�=����@���$�������[<�n+���r�Q�R�S�N���_�o�q�����r�{���{���y�	���<to_has_mul<���V���#���^�	-���	/���	1���	��k�o���n�
J�o�{���������
e_2�
�+��?���e_3�	��+�������
����4��<+������4<���x���o�-������� �����o���q�	$�������X<���	����q�����H<���k�q��������
�����q���	
���	���k�o�o�����������o���%�&u_1������
e_2����?���e_3���==�����	����4��<+�=>�������4<���������������n�
h����n�
d�����<�������
e_2��������e_3�E������=�����4� <+���������4<� �l<<����<����
�fpow_add<���k<���	�<�	��	����,���IA�����	��4�	���	���	�������I�,�2�I���,�]���	��<�H����=��<�H���b�����b�����bnotintro�b��blt_irrefl<����T�����<��������f��has_negneg<�add_groupto_has_neg>���>���<���<���44�O�T��V��z���T�����w�x���� �����4_a����8�v�
���
���
���2�~�
���
���
���
���
�1�����	��
�T�
�V�
���8�������Tnorm_numsubst_into_sum<�����4tacticringhorner<��[<��]<��_<��a<����������>�����4��T����4��T�Tnorm_numsubst_into_neg<���4����tacticringhorner_atom<���4tacticringhorner_neg<�nonzero_comm_ringto_comm_ring<�����4��T���Tnorm_nummk_cong<������������norm_numneg_zero_helper<����T� �T��tacticringhorner_add_horner_eq<�����4��T���T�T�T�T�����������T� � 
norm_numneg_add_pos_helper2<��������T�����T���T��� 
� norm_numbin_add_zero<�add_groupto_add_monoid<��������T�T�T�T�T� � norm_numbin_zero_add<�� >�Ttacticringzero_horner<���4��Tlinarithlt_of_lt_of_eq<�����4neg_neg_of_pos<���4lt_of_not_ge<���<����T4����ge<��s<��Wlinear_orderto_partial_order<�� i�T4�� x�r�
�6���	��
�	��
�<���w�x�y�N�
�3��add_semigroupto_has_add<�
add_monoidto_add_semigroup<�
add_comm_monoidto_add_monoid<�
ordered_cancel_comm_monoidto_add_comm_monoid<�
�3� �has_subsub<�
add_group_has_sub<�
���?�������?����to_has_zero<�
� �� �� �� ���
�������
���<� �� ���� �_a�
���
�G��G��G�N�G��G���G���G���G���G�
�v�G� ��G� ��G� ��G� ��G� �� �� ��G� ��G���G���G���G� ��
y�
z�
{�	��$�G���G� ����~�G���G� �� ��
�� ��G� �� �� ���� �� ����
� �� �� ��?���������
� ��?� �� �� ������
���
���
���
���
�:�!����?�!�?���� ��?tacticringunfold_sub<�
�!�?���!� ��?�!���?�!� ��!���
�?���
�!���!�!,���
�!�����
���
�!�?���� ��!� �� �
�!�?�?�!0� �
�!� ��!/� �tacticringconst_add_horner<�
�!�?�!���� ��?�!(� ��?� ��?�!0�!N� :�
� <�
�!�?�!9� �
�!�!����?�?� �� ��?�?� ��!�?�!�?� ��!I�!0� -�
�!�?�?� ��!g�!g� R�
�!����?�!3�?�?�!�!0�!I�!(�!�?�!� ��!0�!Inorm_numpos_add_neg_helper<�
�!�?�!� ��!�add_neg<�
�3� �� �add_neg_of_neg_of_nonpos<�
�3� ���sub_neg_of_lt<�
���?��4
�W�q<�
� o�
�6��� �Annot�]� a�
���?�J�
��
�0����+�����q�q�:�q������f�g�h�&��discrete_linear_ordered_fieldto_discrete_field<��4<���	'���	)���!��������	��!��!���fpow_neg<���!�<�	@���k�o�o�o�:�omul_assoc>�����q���o�!�����inv_mul_cancel>���k�o���	��o�	��d<�����,���"+A�����M���O�"'���������"+�,�2�"+���,�">���`�o�"*���g�o�"*���"B�����"A�H�����"K����b�o�H����4<� e��� g���\�H<����� m��� o���S� q���"X�H<��"d�u���U�V�W�N����w� ��� ��� ��� �����"t� ��� ������44�����O� ���"q�"k�T�"��������"z4�"~������ �� �� ����"��T���"��"~�����T���"z4���������!"�����4�"�� 3��4�����"�� 
� �!S�������4��T��� A��� �����T�T����� C� A� V����������� 
� � 3�������T� 
� �!���������T� B�!�����"|�"~�!�����"z4�!������4<
�W�!��� p��4�TAnnot�]� c���J������mul_one>�����qmul_lt_mul_of_pos_right<���^�����oone_lt_fpow<��4<��lt_of_not_ge����!�������������������!����#0������!����preorderto_has_lt�����to_partial_order����/�
[�
]���������#G�
G�
t���1�r�
}���r��to_has_zero��#D�#>�!�#X�
r�1�1�#M�#O�#R_a����#>�#G�#G�#I�1<�r�
I<�#R�#X�#>�#X���#Y�!����0�#_�#R�r�s�!�#z�#M�#Otacticringhorner��Tcomm_semiring�r��#��s��r�#���#���!�rtacticringunfold_sub��r�#K�#��#z�#K���#��r�#��!�#��#z�r�#��!�r�#�tacticringhorner_atom��#��,�rtacticringhorner_add_const��#��r��!�r�r�#z�!�r�!�r�r�,�!�#�����Tadd_monoid�rnorm_numsubst_into_neg��n�#��#��#�tacticringhorner_neg��Tcomm_ring�r��!�s�!����o�r�r�#�����r�!�#��#��r�#��#�tacticringconst_add_horner��#��r�s��!�r�#z�r�!�r�!�r�#��#�����#��r�#��#��#z���#��#��!�#��#��#��#��$�#��#���!�s�!�#��#��#��#��s��!�#�����#��#�tacticringhorner_add_horner_eq��#��r��#��s�#��!�r�r�#��s�r�s�!�#��#�����q�r�s�!����q�r�r�!�$�$/�s��r�r�!�!�r�r�#z�s�r�s�r�!�#��#��$K�$tacticringzero_horner��#���r�$d��r�#��r�r�s�#��#��$Madd_neg_of_nonpos_of_neg����#P�#Radd_nonpos����#M�#O�����#M��#V�
_�����#Ksub_nonpos����#Kcast�����#K���$�+
�W���#O�!Annot�]������rzero_lt_one�������#Annot�]�PInfo�m�declfpow_lt_iff_lt�S�T��U��x+hx��m�n����������P�T��U����+�����������plt_iff_lt<�4�����q��nfpow_strict_mono<4<+�PInfo���ATTR�����declfpow_le_iff_le�S�T��U��x+hx��m�n����!�4� o4�����$����T��U���+��������ple_iff_le<�4�����$��$�+�PInfo���ATTR�����declinjective_fpow�S�T��U��x+h₀���	��	��	���h₁�	�+�	-�	/�	1�"�$���=functioninjective=�<�G�T��U���+��%	��%���%m�n�h�`�q�$�ordcases_on�U�V� t4������4���%'��4a_0���%)�%0��lt_trichotomy<�� i4��H�%)�pinjective<��
���6�q��	��	�� ��
]�
^� ���$��
��	�	
�;��one_lt_inv<�
�/��4���	�
�%I�%I���%[�B�%O�%a�%[�B�C�s�%h�����%e�%l� ��%O_a�
���
��%G<�%G�
��%C<�%w���%e�%g�)�
�%g�%Ofpow_inv<�
�;�����%l�%[�e�f�g�h�!��
�����s�%k�����%l�%�� ��%��%��s_a�
���
��%C�%C��s<�%��
��%����%l�%��%��%��%�fpow_mul<�
�%����s���%��%��%��%������%��%�� ��%�_a�
���
��	��	�� ��&�G�!��G�
��%�<�%��%����%��%��%��%��%��%����%��%[�%����comm_semigroupto_semigroup��Tcomm_semigroup�s�%������%��%��
r�%��s_a����%��%��%��
��%��%����%��%�mul_comm��%��s���%��%��%��%��s�����%��&�
r�%�_a����
��%��%�<�s�%��&�%����%��&�&���&�%[�%��%��s�&�����&�&-� ��%��5�s_a�
���&�%��%��%��&5���&�&+�%��s���&-�&,�%��%��s�����&-�&H� ��%��F�s_a�
���
��%��%�<�s�&5�&S���&-�&G�%��s���&H�%[�%��C�s�&G�����&H�&g� ��C_a�
���&S�%��%��s�
��%��s�&p���&H�&c+�!/�&eh_1�%0�%%�%[���?�w�x�y� q�
� g�
�0�?���#���&��&��wrfl�&���G� ���G��
�?��?��?��?��?��?���?���?���?���?�G�	��?�	��?�	��?�"�?�$�?���?�&���	���+�	-���	/���	1���"���$�����������?�
������@���$��������������&����C�
��� �� �� ���G��G� ��
��
��
�� �� ���	��?�	-�?�	/�?�	1�?�&��&��
�
e�=����@���&��&����'4k�����	/���	1���"���&��'��������'+��)�G�� ���4H�&��%>�G���&��q��=�?��@�?�&��
�$��G�
�<�PInfo��declfpow_inj�S�T��U��x+h₀�%	h₁�%m�n����%$�E�T��U���'+�(�%	�)�%�*��+�iffintro�%$�Eh�%$injective_fpow<���4<+congr_arg<���+�*����PInfo�&�ATTR����&declfpow_neg_mul_fpow_selfu_1K�_inst_1�nxh�%
�	��	��	��%�%�&�	<�	<��<�n�#�%�'�x�y�'�+�o�b�w��<��<�!�'�+�	-<�����'��3��4�'q�5�6�7�'}���'��'~�'��<����<��2<�'��	
<�	<�'��'��'��'�����<�'��<�4e_1�`+����
e_2�����?���	4�	<+���?�-4<�	�'��'��%��<�4���e_2����
��Ge_3�	�������	����4�'�<+������4<�'��'��'��'����'~�'��'��'~�	'<�	)<�'��'��'��'��'������'��'��<�'�_a<���	4�������&4<�o�Y�	
4�	4�(�H�I��4� 4���(�(�(���'��'��"<+�'����'��'~�'��'��'������'��(0�(�'��GA<�'��'��'��'�_a<���(�	'4�	)4�(�>�����(�(
�Y�(�(���'��(.�	@<�'��'����(0�'~�'��'������(0�(X�(�'�_a<���(�(�(E�(�(�(�(���(0�'�fpow_of_natA<�'�+���'��'��'����'��'��'����'��""<�'��'�pow_ne_zeroA<�'�+�PInfo�1�ATTR����1declcast_fpow�2�3��4�'q_inst_2char_zeroA+� <+��+��+� +�"+�$+�&+�	/+�	1+�(�qratn��'~�|�(�<��(�<���(�<ratcast_coeA<�'���(����(�ratdivision_ring+�'��(�+�3��4�'q�B�(��D�(��F�is_ring_hommap_fpowA�(�<�Idiscrete_fieldratcastA<�'�ratis_ring_hom_castA<�'�+�PInfo�A�ATTR����AATTRmove_cast���Aunitstardecl�Areversed�2�3��4�'q�B�(��D�(��F��'~�(��(��3��4�'q�B�(��D�(��F����(��(��(�<+�PInfo�U�ATTRpush_cast���A�(�declfpow_eq_zero�2�3��4�'qx+n�h�	�=��@�'x+�'|�'~�l�m�'��3��4�'q�X+�Y��Z�(��%��+�;decidable_le�!+�)hn�)��_xExistsy�Ccan_liftcoe�natcan_lift�a�	��	��	��	��h�!�4�]�)�_�C�cExistsdcases_on�_�)$<�]�)�)+�%+�O�P�Q���B�C���Yrfl�)*�
r�
�Y��Z�
��	��	�� ��%��
��
��
��
��	��):�\�)�
e�G�	����	����	����&��&��&���?�Z�%[�e�f�g�h����
��� }� ~���)V�\���'��
��?�&��&��&�?�G�
���	�'-�'.�)e�
�Y�&��&��&��)f�	�',���?���?� �?�)f�
�)q��?�)m_a�?���
e�'�'�)K�G�b<�)O�
e�)O���)r�)}�(k�?�)e�
+4<can_liftprf��)�\���)�%�(�	�4�	�4�	�4�(�$u_14<�)��)�hx�)��k���)���_x�)�_�)�5�)4�l�)�_�)$�5�))�_�)$��l�)�)��&��)_mhm�)����
���)C�
��
]�
^�):��)C�����)��)����)�_a�����	�
�)q���)��)����)��)����)��)�inv_eq_zeroB�G�
��
��)@�)�+���
��	��	��
S�	��)@�)�+�)C�
��)��
u�(5�G�):�):�
y�
z���G�):�+�)C�����*�*�&��)�_a�G���	�){�	
�?�	�?�)e�
�)q�	�){�)q���*�*inv_eq_one_divB�G�):����*�
��
u�
v�):�
y�
z�
{�)@�)��+�)C�����*�*<�&��)��*7�+_a�G���	�){�	'�?�(5�?�)e�)e�&��&����?�)e�
�)q�	�)q���*�*:one_div_powB�G�):�+���
��*7�)=�
�)C�*<�&��*f_a�G���	�*E�	)�?�)e�&��&��&��)f�)l�'��)q�	�*s�)q���*i�*9�(k�G�):�+���
��*7�)=�
h���)C�*i�
r�_a����	�*s�)l�
h��)q�	�*s�)l�)q���*��
���
����
��)=�
h�*��)C�*��&��)=�o�*�_a�G���	�)l�
h�*��)q�*V���*��*��"�G�
��*����
��)=���)C�*��
r��_a����	�)l��)q�	�*��)q���*��*����*���neg_neg��r��4�)���le_of_lt����$������$��!���#8���$��*����*��$�_a������<�!���*��*����*��*����*��*�neg_pos������������#8�#,�!push_negnot_le_eq����!+�PInfo�W�EndFile