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���initdatanatbasicdatalistbasicalgebrachar_zeroalgebraorder_functions�wAexport_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}traversedeclintinhabitedinhabitedintinhabitedmkintzero�PInfo�	prt�VMR�VMC�	intzerodecl�equations_eqn_1eq�eqrefl	�PInfo�	ATTR_refl_lemma���EqnL�SEqnL�ATTRinstance���class����decl�default_eq_zerodefault	has_zerozero�has_zerorfl�PInfo�ATTR����ATTRsimp���decl�has_to_formathas_to_formatid_rhshas_to_formatmkzintrec_on_xformatknatcoe(#coe_to_lift(#coe_base(#nat_to_format&k(has_appendappend#formathas_append<)string#,=#/=#string_to_format
Str-(6G
Str+1)�PInfo�prt�VMR�VMC�)�intcases_onformatof_nat)charof_nat1�+�stringemptystringstr��formatof_string�(�-�����formatcompose�ATTR����class����decl�has_reflecthas_reflectVidV_v�cases_on�reflected&&a_0(reflectedsubst(a(�of_nat&
Quoteereflect(&natreflect&a_1(d�neg_succ_of_nat&
Quoteso
�PInfo�prt�VMR�_rec_1VMR�_rec_2VMR�VMC�fnexprbooltt_fresh)��	(exprcases_on
 *4>HR\�_mainreflecteexprapp��e���e���e���e���e���eexprsubst��e���e���e�VMC�f���_fresh)��M(�
 *4>HR\��s���s���s���s���s���s���s���s���s���s�VMC���e�s�ATTR����class����ATTR���intcoe_nat_addATTR���intcoe_nat_mulATTR���intcoe_nat_zeroATTR���intcoe_nat_oneATTR���intcoe_nat_succATTR���intof_nat_eq_coedecl�add_defabintadd&has_addadd�has_add�&����PInfo�ATTR����ATTR����decl�mul_defabintmul�&has_mulmul�has_mul�&����PInfo�ATTR����ATTR����decl�coe_nat_mul_neg_succm(n(�*-0inthas_coe�s&has_negneg�has_neg��natsucc&��(�(��PInfo�ATTR����ATTR����decl�neg_succ_mul_coe_natm(n(�s��&�������	(�
(��PInfo�ATTR����ATTR����decl�neg_succ_mul_neg_succm(n(�����(�
(��PInfo�ATTR����ATTR����decl�coe_nat_lem(n(iffhas_leleinthas_le���(nathas_le�&�(�(�coe_nat_le_coe_nat_iff�&�PInfo�ATTR����ATTRelim_cast���unitstardecl�coe_nat_ltm(n(�has_ltlt�has_lt���(�has_lt�&�(�(�coe_nat_lt_coe_nat_iff�&�PInfo� ATTR����ATTR�����decl�coe_nat_inj'm(n(���(�&�%(�&(intcoe_nat_eq_coe_nat_iff�&�PInfo�$!ATTR����$ATTR����$�decl�coe_nat_posn(����(nathas_zero&�*(eqmpr�������id��eqrec_a�"�������&��+�!��eqsymm�intcoe_nat_zero������ �"��D�&�!�_a�!�"����+�&�+�5��propext���coe_nat_lt�&iffrefl��PInfo�)#ATTR����)decl�coe_nat_eq_zeron(���&��=(��k��f��j� �"�k�p�(_a�"������&�w�5�k��>��p��j�j� �"�p���I�n_a�!�"����w�O�w�5�p�j�W�n�j�coe_nat_inj'&��a�j�PInfo�<&ATTR����<decl�coe_nat_ne_zeron(�ne���(&��B(not_congr�g�j�coe_nat_eq_zero&�PInfo�A)ATTR����Adecl�coe_nat_nonnegn(���G(�mpr�����&�coe_nat_le�&natzero_le&�PInfo�F,decl�coe_nat_ne_zero_iff_posn(����M(�intro���h��natpos_of_ne_zero��mp��������coe_nat_ne_zero�&h�nesymm��ne_of_ltpartial_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_comm_ringto_linear_ordered_ringdecidable_linear_ordered_comm_ringto_linear_ordered_comm_ring�decidable_linear_ordered_comm_ring�����K�+�[�&�PInfo�L.decl�coe_nat_succ_posn(���j(���
��intcoe_nat_pos��succ_pos&�PInfo�i2decl�coe_nat_absn(abs�decidable_linear_ordered_comm_group���o(abs_of_nonneg���coe_nat_nonneg&�PInfo�n4ATTR����nATTR����n�decl�succa�u�&has_oneone�has_one�PInfo�t:VMR�tVMC�t:�u�oneintadddoc�tImmediate successor of an integer: `succ n = n + 1`decl�tequations_eqn_1�u�t&�,�u�/�PInfo�}:ATTR����}EqnL�}SEqnL�tdecl�pred�&ahas_subsub�has_sub&�+
�PInfo�~=VMR�~VMC�~=��y�comm_ringcomm_ringto_ringringto_add_comm_groupadd_comm_groupto_add_groupalgebrasubdoc�~Immediate predecessor of an integer: `pred n = n - 1`decl�~equations_eqn_1��~&�;��3�>�PInfo��=ATTR�����EqnL��SEqnL�~decl�nat_succ_eq_int_succn(��.���(��PInfo��?ATTR�����decl�pred_succa�=�/&��add_sub_cancel�����ring&�+�PInfo��Adecl�succ_preda�.�>&��sub_add_cancel�V&�+�PInfo��Cdecl�neg_succa��/�=�&��neg_add�U&�+�PInfo��Edecl�succ_neg_succa�.�e�g����s�.�h�g� �"�s�x�'�e_a�"�.��.����0���5�s�h�neg_succ&��x�g�g� �"�x���'�v_a�"�.�=����&���5�x�g�succ_pred�g�3�g�PInfo��Gdecl�neg_preda��>�.�g��������add_groupto_has_neg�V�=��g� �"�����'��_a�"��=��.����&�5����eq_neg_of_eq_neg�V�����:��������g��������>� �"�����'����&_a�"�����=��������5��&neg_neg�V&�3���PInfo��Jdecl�pred_neg_preda�=���g�����=���g� �"���'��_a�"�=�����?���5����neg_pred&����� �"����'�_a�"�=�������5��g�pred_succ�g���PInfo��Mdecl�pred_nat_succn(�=����(�+��PInfo��Pdecl�neg_nat_succn(���=����(����PInfo��Rdecl�succ_neg_nat_succn(�.�9�;��(�succ_neg_succ��PInfo��Tdecl�lt_succ_selfa�.�/��lt_add_of_pos_right��&�+zero_lt_onelinear_ordered_ringto_linear_ordered_semiring���PInfo��Vdecl�pred_self_lta��>&��sub_lt_selfordered_ringto_ordered_comm_group��&�+�T�PInfo��Ydecl�add_one_le_iffab����+&��&����iffrfl�f�PInfo��\decl�lt_add_one_iffab��h�,��&����add_le_add_iff_right���&�+�PInfo��^decl�sub_one_lt_iffab���9��+&�t�����trans�preorderto_has_lt������ordered_comm_groupto_ordered_cancel_comm_monoid�^�7add_group_has_sub�Qordered_comm_groupto_add_comm_group�^��+&����add_semigroupto_has_addadd_monoidto_add_semigroupadd_groupto_add_monoid��&�+�tsub_lt_iff_lt_add�^�&�+�lt_add_one_iff�&�PInfo��adecl�le_sub_one_iffab��s�;�i����le_sub_iff_add_le�^��+&�PInfo��ddecl�induction_onpa�!ihz�hpi(������+hni(�����;�9���+�����������������������rec����&��(natrec��(e&��i_n(i_ih�����&&��(n(��n(�;������zerotrue� �"����eqtrans�!����������e_1�&congr_arg�!�	&��������to_has_zero���Vchas_nega��e_2�
������&�������_inst_1has_lift_t(a(��(e_2��(�����&�����nat_zero_eq_zero�=neg_zero�V�W���iff_true_intro���trivialn_n(n_ih������^���+��� �"�`�e�������
�&�_�d��_������������+���add_comm_semigroupto_add_semigroup�add_comm_semigroup�b���r���+��y�/����������+���add_comm�}��+neg_add_rev�V�+������beqmp�^���^���o������7���V���+�u���x��sub_eq_add_neg�V���+����&�(nathas_add&�((nathas_one���PInfo��g&prt��ATTRelab_strategy����decl�induction_on'_proof_1u_1C���zb�������u���&&������ ���'�_a�������&��������:����a�&�PInfo�udecl�_proof_2���������ue��&��u&����� ��'e�_a�������u&�����of_nat_zero�PInfo�udecl�_proof_3���������&����� � �'������add_monoid��$&_a������&���&zero_add�$&�PInfo�udecl�_proof_4�����n(����ue����u����+������!(� �I�'�?_a�����ue���������B�E�of_nat_succ&�PInfo� udecl�_proof_5������!(���H�����add_semigroup���f�+������!(� �l�'�f�g�+�_a�����u�e��+������H�jadd_assoc�d���+��PInfo�$udecl�_proof_6������!(���k��g����+�����!(� ���'���_a�����f�u�h�����&���k�����+��PInfo�(udecl�_proof_7������!(������f�g��+�����!(� ���'�g�f��+_a����������+���������:��������+�PInfo�*udecl�_proof_8��!(�preorderto_has_le��ordered_cancel_comm_monoidto_partial_order��������add_comm_monoidto_add_monoid�/to_add_comm_monoid�������!(le_add_of_nonneg_left������of_nat_nonneg&�PInfo�,udecl�_proof_9���������us��&��u�����+&����� ���'��_a��������������neg_succ_of_nat_eq���PInfo�6udecl�_proof_10�����������u�����+&����� ��'��_a��������u��,��������:�����of_nat_eq_coe���PInfo�9udecl�_proof_11����������u���+&����� �9�_a������"�����PInfo�<udecl�_proof_12��������8��u�b&����� �N�'�*�+_a����6���u�g����8�+�9�+�PInfo�>udecl�_proof_13��������M���&�+����� �i�'�u�x&_a����K��0���M�gneg_add_eq_sub�U�+&�PInfo�@udecl�_proof_14������&&�le_refl��&�PInfo�Cudecl�_proof_15�����n(����us����u�9�9�+������F(� ���'��_a�����us���U�������neg_succ_of_nat_coe'��PInfo�Eudecl�_proof_16������F(������u�9�����+������F(� ���&(�_a(�����u�9�_�+����u�9�;�+�������natsucc_eq_add_one&�PInfo�Iudecl�_proof_17������F(������u�9��+������F(� ���'��_a�����u�9��������+����u�;�������:����neg_succ_of_nat_coe&�PInfo�Mudecl�_proof_18������F(��������u���+�����F(� ��'�u����+�_a�����u�9��+��������sub_add_eq_add_sub�U��+��PInfo�Pudecl�_proof_19��F(��������F(�le_of_lt�&�add_lt_of_neg_of_le������neg_succ_lt_zero&����PInfo�Sudecl����������0��k����&����������+��kH�&����������9��+���������H0�0Hs�DHp�M�.�N���u�����������������rec_x�����a(natrec�_(���u�����U�����������������U�q�������������!(ih�j�U�^�P���^�x��� ��^����U���^���h���$��^����U���^�������+�(��^����U���^�f�����+�*��^��������u���,���&&�_(�g�_(�������U�������������6������U��������9������U�����6���<������U�����K���>������U�����W�+�@���������C�����F(ih���U�^�����^�����E��^����U���^�����I��^����U��^����M��^����U�
�^���u����+�P��^�����������S���&&�9�����PInfo�uprt�VMR�_rec_1VMR�_rec_2VMR�VMC�dun(�_fresh8����_fresh8����_fresh8����_fresh8����dintof_nat�{VMC�eu�f(�_fresh8����l�o�r
�eintneg_succ_of_nat�{VMC�u�\�[�Z���������������d�edecl�equations_eqn_1��������Q����&�8�������Q�A�PInfo�{uATTR����{EqnL�{SEqnL�ATTR����nat_absATTR����nat_abs_of_natATTR����nat_abs_zeroATTR����nat_abs_onedecl�nat_abs_add_leab��nat_abs����M��M&���������M�'����R�P���(�W����M�v&���M�u�R�b(���M�v���e�M����M�����&� �"�p�vchas_le(��(��(e_2���(��(e_3�congr(�!������������8��(�!��������&��l�s�_�_e_1�
�(���M&�k�rchas_add����e_2�
����e_3�
�}�������������&��������&��u��+�����+&�o�u����(��(��(e_2���(��(e_3��~(�������������8��((��������&���d��(�d�M�����u����}��n&���n�M�&���������&��(��(��(��(��(natordered_semiring�sb(���M�v��e�M���M������� �"�	�	���	�	���	�	��	������������3�����	�	���	��nat_absequations_eqn_2&a(b(�sub_nat_nat_elim��m(n(i��������P�������i(n(e�i�����	A��(��Me��������������Me�������	A����	\�������(�{(��add_comm_semigroup��	A��� �"�	b�	o���	i�	A�_a(�"�	R�������������	R������5�	b�	k��(�	f�	A���	o�	\����	d��add_semigroup��	��	A��� �"�	o�	����	��	��	A��_a(�"�	R����	i���	w���	R��5�	o�	���(�	���	A��natle_add_right���	���9(��	A&��(��(�����������	M�succ_le_succ���������	��	������� �"�	��	�����_a(�"���������	��	�&�5�	��	��	��	�����succ_inj�	���&��	��	��	��	����� �"�	��	����	��	��_a(�"�	��	��	����	�&�5�	��	��	��	��	��	������	��	��	j�	�� �"�	��
���	i�	��_a(�"�	��	��	�����
�5�	��
�	��	���	��	�(��&��(�W����M��&���M��R���(���M�
C���
H�n��M�
C���u� �"�
R�
X���
O�
U���
N�
T�����3�������
Q�
W���
Q���&�
W���
G��	8��n&��natsucc_add�&��
X�
V��	i&�� �"�
X�
����	i�&_a(�"��M�s����	���
���5�
X�
��	��&�
;&���(���M�
C��
H�	�
���	� �"�
��
����
��
�(�
��
��
����
��
m��
��
t�	��	9�
z��	�
��PInfo���decl�nat_abs_neg_of_natn(��M�neg_of_nat&&��(�cases_on��(�
�&�
��M�
�����(�
��M�
���PInfo���decl�nat_abs_mulab��M��(�has_mul�P�R�����W����M�&��
��R�P���(�W����M��u&�
��d�R���(���M�
����
��n��� �"�������mul�&���a(��(e_1���(��(e_2���������������&������Me������&�mulequations_eqn_1�&��equations_eqn_1���chas_mul(��(��(e_2���(��(e_3����
������9�������9��&�
��d��1��n&�1&�W���eq_self_iff_true(��[��(���M�
���
��	��� �"�f����f��
��m���"�c�m���c�M�
��m�m���b�u��equations_eqn_2�&�nat_abs_neg_of_nat�m�e�m�O�	��	9�W�o���Y�m�[��(�W����M�&�
��
G�R���(���M������n��� �"����������&�����"���������M�
�������������equations_eqn_3�&���������K�
G��
s�n&�R�W�����Y���[��(���M����	��� �"����������������"���������Me�����������equations_eqn_4�&�1���������	��	9�W�����Y���[�PInfo���decl�nat_abs_mul_self'a���R��
�&������
��R�� �"���'�
_a�"���P������ �5���:��
intcoe_nat_mul�R�R����� �"��5�'�_a�"��
��P� �#�5���nat_abs_mul_self&�3��PInfo�˞ATTR�����decl�neg_succ_of_nat_eq'm(�����(��P��� �"�P����P�+�+���W�b�b�Y�W�c�;�`�]����e_1�
����e_2�
���!���������������&��`���u����x���;�{�����~�{����+���
&�/��������+������;�b���`����;�+�u�;�x�����;�+���W���add_right_cancel_semigroupto_add_semigroup�/to_add_right_cancel_semigroup���b�;���]add_right_inj���;�b�b�W�x�x�Yneg_inj'�V�+�+�W�Y���X�+�[�PInfo�ҡdecl�nat_abs_ne_zero_of_ne_zerozhz��&���P�������h��P��inteq_zero_of_nat_abs_eq_zero�&�PInfo�ۤdecl�nat_abs_eq_zeroa���R�������������&h��eqsubst_x����:�&�
7�M�PInfo��ATTR�����decl�of_nat_divm(n(ehas_divdiv(nathas_div�&�
�has_div�u����(��(�
�PInfo��ATTR�����ATTR�����decl�coe_nat_divm(n(��
�
����(��(�
�PInfo��ATTR�����ATTR�����ATTRmove_cast�����decl��reversed��(��(�
�
��(��(�:�
�
�
�&�PInfo��ATTRpush_cast�����decl�neg_succ_of_nat_divm(bH�&�
�
�����
����+��(�����
(_a_aExists(n(�	�Existsdcases_on#(��(�����
7�
?�
s������
�����+&w(h�
>eqdcases_on#��t_1��h&H_1��	A�H_2heq����	w���
X���
s
�����
��
`���+�&���O���'e�	M������
T��
W�	�
Y&�	��3��
b����
f��+��
u��	M��
We�	A�
T&�
��
��3�
���
s�

�
YAnnotinnaccessibleAnnot��
��
���&��3�heqrefl���&��eq_succ_of_zero_lt�&�PInfo���decl�div_negab�
��g��
�&��
�W��
&����
����(�
��(�
������
��&�W�
�
���g��
�&��
(�
��
(�
������
���&�
�e�
������
�
this�
�&��
����� �"�
��
����
�_a(�
����;�5�
��natdiv_zero���3�Annotshow�
(�
��
�����
(Annot�
��Annot�&�(�
��Annot����
(�
��
���(�(�(�W�
�
�O�g��1&��
(�
��
(�
�
u�
���:��&�
�e�
�����D
��I&��I�
�� �"�I�
����D�(�"e�
�	M����S�
��5�I����
Annot��
(�
��
�
���j�j�
(�
��
�����'�����x�:�{�x���x�(�W�
�
��g���&��
(�
��
(�
)�
���
)��&�
���������
(�
��
)������
(�
����'�����PInfo��prt�ATTR����decl�div_of_neg_of_posabHa�hHb���
������
�9����+��+��������_a_a_a�
7n(�
=�_a�
A�
<�(�h���
7���
�������
�9����+���+���(����
Q��t_1��
X&H_1s���H_2�
W�^s���������
��^���
�9���+�^�+�&�����'�
���������
W�	��&�
{�
}�
��^���
�9�
��+�^�+��
��
���
W����&��3���
<��(�����
7� �
C�^���
�9��
B�+�^�+��w_1(h_1��
Q�t_1�!�
`&H_1�
VH_2�
W�
Y���5���
b
���
�9��
a�+�<�+�&���
s��
v��!�
w�$�
~�
����B��+�!�
��$�
��
��
��
Y���
�9��
��+�
Y�+� �c��Z���
�9����+�+�
Y�+�Z���
�f�
Y�+� �"�p�w�'���u�f�+�+_a�"�
b�������
�9��
e�+�+���+�����
����+�5�p�f�W�f�+�3�Y�
`&��
��
���&��&��
c�
��f�&����eq_neg_succ_of_lt_zero����
��&�PInfo��decl�div_nonnegabHa���Hb�������(�)�*���+��_a_a_a�
7n(�
=�_a���
<�/(�h��.�
7���������(�����t_1���H_1����H_2�
W���������������&���u���'�	Z�,������3�
W�	��&�
{�
}���	��	Z�
,�3�
W�	P��&��	P�3�	P�
<�/(����0�
7����
e���^��w_1(h_1��1t_1�5�3H_1��H_2�
W�5�����9����
e�
`�<�&��������-�5���8����!��5��8��
�����
����coe_zero_le�3�
`&��3��
����&��&��B�
��f�&����eq_coe_of_zero_le����a�&�PInfo�'�prt�'decl�div_nonposabHa��Hb�s����<�=�>���?�lnonpos_of_neg_nonneg�^����������to_partial_order�^��������������
�� �"�����'���_a�"������&�5�����:����intdiv_neg���intdiv_nonneg���
��neg_nonneg_of_nonpos�^�&�PInfo�;�prt�;decl�div_neg'abHa��Hb������I�J�K���L��_a_a_a��_a�
A���O��������(�����t_1���H_1��H_2������&�R���M���S���	���S��!�P�"��#��w_1(h_1��1t_1�U�3H_1�
VH_2�;��=�&���O�
v�N�U�
w�X�
~��
�U�
��X�
��
��s�2�	w�4���
`&��
�����&��
c����������PInfo�H�decl�zero_divb�&&�Z�W�Z�
&�Z(�
��Z(�&��&�
��&���Z(�
��&����Z(�
��&��)�)�PInfo�Y�prt�YATTR����Ydecl�div_zeroa�
��\�W�\�4&�\(�
��\(�
�&��\(�
��
��A�A�\(�
��
��L�L�PInfo�[�prt�[ATTR����[decl�div_onea�
��+&�^�W�^�W&�^(�
��^(�
��+��&�
��&�+�b�b�^(�
�e�
���e��9�j�enatdiv_one��^(�
�s�
&����9�|&s�s&�PInfo�]�prt�]ATTR����]decl�div_eq_zero_of_ltabH1��H2������b�c�d���e��_a_a_a��_a�
A_a�����
<�/(�f��h�
7���
�������(����
Q��t_1���&H_1��H_2�
W�����������
�
`��&���������f�j�.������m�
W�
=�
F&�
=��3����
`�j��	Z����	�m�
We����&�����3���
<��(�2��i�
7���
e���
`��w_1(h_1���
Q�jt_1�o�5&H_1�
VH_2�
W�
Y�������
e�j�&���
s�j�
v�g�j�e�&�o�
x�r�
W�
=��&�����
e�4���j�e�^�
u�o�
��r�
We�	w�
Y&���3��
�e�
�j����9��enatdiv_eq_of_lt�j���lt_of_coe_nat_lt_coe_nat�j����4&����
��
��j�&��&����B�
��
X�&����c��lt_of_le_of_lt������&&�PInfo�a�decl�div_eq_zero_of_lt_absabH1��H2�������x�y�z���{�`_a_a_a���_a�����W�|�~�
�������a_1(�~�
���n�
Q��t_1�~�f&H_1��	Q�H_2�
W����M���������
�<���d&��e�d���'e�	[�}���j&�~�	�x���
W�
=��M�&�����
�������
`���~e�	Q�t���
We�w�x&�����3���
���
F�div_eq_zero_of_lt�<�
F�j���&����3���
��h��&a_1(�~�
���	�rt_1�~�sH_1��M���H_2�
W����M�����|���
B��
G&��e�
G���'e�M�
��}����~�	�����
W�
=��M�
B&������s��������~e�������
We����&���3��
���neg_inj�V�����������%�� �"���'���_a�"���������5���:�����<�
B���%�j���&����3���
��h��&�����abs_eq_nat_abs�&�PInfo�w�decl�add_mul_div_rightabcH���
����������������������
�k(n(a�
�'��
��
���
��
��

�abc���
(�d
_aor�����linear_orderto_partial_order�bto_linear_order�����y�
�����ordcases_on�����y�h�������y�����
������������
������&h���
����
��������������������� �"�����'���_a�"���
��^�����������
�^���������5�����:����������������u��������� �"�����'���u����_a�"���������&�5�����m����������u������� �"�����'���_a�"���u�������������5�����:��������������
���mul_zero_classto_has_mulsemiringto_mul_zero_classringto_semiring�T����������� �"���(�'� ����_a�"���u������
��&���2�5���#�:�#�.neg_mul_neg�T�������������neg_pos_of_neg�^��&h�����f�������y�]�_����&���]�
��dabsurd�
X�d&�����_�h���^����&lt_trichotomy�~��AnnotcheckpointAnnothaveabcH�
(_a_a�
:_a�
<��(�
�����
7���
����������������(����rt_1��sH_1�
VH_2�
W���
Y���|��
��4���^�^��
�4�^���&���
s���
v����
w���
~�
��������������
����
��W���
���
�e���������&��a_1(�
��
���������������<��&�4a_1(�
��
�9�4�������9���
���&eq_sub_of_add_eq�V�������u������
���������� �"�����'����_a�"�u�
�9�<���������������5�����:����������������� �"����'�u���4����_a�"�
��������
�����5���4�a�4���3��Annot���&��
��
��h�&��
��Annot��Annot��k(n(a_a�W���
�'����
Y�
Y��
��
Y��&a_1(�
�e�
���
����	w�	we���{�	w���9�q�venatadd_mul_div_right&���	w���a_1(�
��
�9��n��
Y�9����u��
���&�����(�	�z(��linear_order&�nge(��(��&�n_x�y�����
�9��
���������9������
����lt_or_ge(��&�nh������
��6(nathas_sub�������� �"�����'��_a�"�
�9��
������
����9�
F����
������,���5�����:����intcoe_nat_sub���&�������������� �"�����'�����_a�"�
������	M�����&�5�����:��������������������natdiv_lt_iff_lt_mul��������&�9�
������e���$����
���
�semigroupto_has_mul(comm_semigroupto_semigroup(��comm_semigroup���������� �"�)�:���2����_a(�"��
�������������
��&�	M���G�5�)�4mul_comm(�/������:������ �"�:�`���
���
��������_a(�"��
���2�����	M���G�i�G�5�:��natmul_sub_div��������f��@� �"�������4_a(�"���
�������&�5���@�X����&�
���h��� ����
�������������+�
��������+����� �"�����'���u��+_a�"�
����
,�+���������+�,���5�����:����sub_sub�U����+��������������+� �"�����'���u���+_a�"�
�������
,�+������&�5�����:�����������+����
����������+����� �"����'��_a�"�������
F���+�
�g����5���
�:�
��neg_sub�V�����������������+� �"��7�'��_a�"�
�������
,���+����D�g�5��4�:�4���*������7�
�����������+���6� �"�7�`�'�9���_a�"�D���������
F�+�
�����+���l�5�7�Y�:�Y�f�����&��`�_������������+� �"�`���'�9����_a�"�
�����������+���l���p�5�`���:���������������������natle_div_iff_mul_le������&����
s�X����� �"�����'�9��Y�+_a�"��������������+�,���5�����:�������X�����s��� �"�����'�9����+_a�"�
s��������&�5�����:���������9�
�X����s��������
�W�4����� �"��
�A_a(�"��
��������
��&�����5��4�Z��
������ �"�
�$���
�W�f��_a(�"��
���m�����i���5�
��natsub_mul_div��������f���@�� �"�?�B��_a(�"�����&��5�?�@��&�
���Annot�&�PInfo���prt��decl�add_mul_div_leftabcH����^��������������y��~�
�Z��+�-�comm_semigroup����}� �"�~���'����_a�"�
��������������
��&�����5�~���V��������}�}� �"�����'�
�Z���_a�"�
���������������5���}intadd_mul_div_right����&�3�}�PInfo���prt��decl�mul_div_cancelabH���
�\���������������3����'�*�_a�"�
����3����&�5����9�������&�����'��_a�"����&������'���5��intzero_div����
�3�\������'�*�\_a�"�
�3�����
����5��\�9�\����&�PInfo���prt��ATTR�����decl�mul_div_cancel_leftabH�y��������y��:�
����� �"�:�B��_a�"������
�����5�:������B�
{� �"�B�
{�'�
���_a�"�
���������5�B�intmul_div_cancel��&�
}�PInfo��prt�ATTR����decl�div_selfaH���
���+�
������
��+���+�y�'���monoidto_semigroup�monoid�)�to_has_one���_a�"�
�|���+�#�+�5���one_mul����k�+�&�PInfo��prt�ATTR����decl�of_nat_modm(n(has_modmod�has_mod��e��(��has_mod�&�(�(���PInfo�� ATTR����decl�coe_nat_modm(n(������(�(���PInfo��"ATTR����ATTR����decl�neg_succ_of_nat_modm(bbpos�
(���
���9�����
,�� (�!�"�
(��������u�+��� �"�����'�����+��_a�"������9�I�������&�5��������+��������������+� �"�����'����_a�"�������������&�5��������_a_a�
:�
@�&�
A���
B��������
F��+&��(��
>�
Rt_1��
SH_1�
VH_2�
_���
a�����������
e���+�&���
t�
v�%��
w�)�
~���������+��
��)�
��
����
��
��8�8��&��
��
���
��PInfo��$decl�mod_negab����g�T&�+�,�W�+��&���[���+(�
�i(���M���c�P�9�d�P�c�nat_abs_neg��+(�
�i(�sub_nat_nat&����d�w�P�k�w�n�PInfo�*�)ATTR����*decl�mod_absab�T�&�W�2�3abs_by_cases�i���&���&�W�mod_neg�&�PInfo�1�-ATTR����1decl�zero_modb��&�8�9����R�enatzero_mod�R�PInfo�7�0ATTR����7decl�mod_zeroa�[&�<�W�<��&�<(�
�e��&����9��&enatmod_zero&�<(�
�s�����s���PInfo�;�3ATTR����;decl�mod_onea�[�+�@�W�@��&�@(�
�e������9���enatmod_one&�@(�
��9�+����
���&��������� �"��������_a(�"������������5������3��Annot��PInfo�?�7ATTR����?decl�mod_eq_of_ltabH1��H2����������E�F�G���H��_a_a_a��_a��_a�����K�������������(�����t_1���H_1��H_2�����
`��
`�&�������I�M������P����
`���M����	�P���
<�/(�2��L�
7�1�����
`����w_1(h_1�0��t_1�R��H_1��H_2�
W������������������&�����j���J�M���R���U�����������M��	Z�R�	�U���
�e���j�����9�W�jenatmod_eq_of_lt�j�������4&����B�
��.�&��&����B�C����c�ele_trans�������+���&&�PInfo�D�;decl�mod_nonnegab���������Z�[�����W�Z���[��a_1(�
�������M��7��a_1(�
�����������sub_nonneg_of_le�^�����coe_nat_le_coe_nat_of_le����natmod_lt&���nat_abs_pos_of_ne_zero���PInfo�Y�Adecl�mod_lt_of_posabH�
(�����d�e�f�
(_a_a_a�
:�W�g�����a_1(���i������u�������(����rt_1��sH_1�
VH_2����4�^�^�&�����
v�h��
w�m�
~��4����
��m�
��
��������M�
��
Y�coe_nat_lt_coe_nat_of_lt���	w����������&��
��Ma_1(���i�������������(����rt_1��sH_1�
VH_2��������^�^�&�����
v�h��
w�r�
~������
��r�
��
�����z���
Y�����
Y�_�
Y�/����.�����&��
��M���
��PInfo�c�Fdecl�mod_ltabH�����_�t�u�v����T����_�_� �"�T�[�'��_a�"���P�.�P�5�T�Y�:�Y���mod_abs���mod_lt_of_pos��_abs_pos_of_ne_zero��&�PInfo�s�Ldecl�mod_add_div_auxm(n(�9�9�����+����
���|(�}(�������������� �"�����'���u���_a�"�9�e�����+���
-���
����
��5�����:������������������� �"�����'�_a�"����������
���&�5����������������u�������� �"�����'��������_a�"�����	����f����5������������������������������� �"�����'��_a�"��������u������&�5�����*����������� �"����'��_a�"�����5����sub_sub_self�U����������������+� �"��7�'���3�+��_a�"����5��6add_right_comm�}���+���9��������
����
��i(���	��W�natmod_add_div����PInfo�{�Odecl�mod_add_divab��W�
��
�������W����^��
�&���(�
���(�������[�
���&�W�������&�
��
������(�
���(���������
���&�
�e���������
����
������9����e�]������(�
�e�����M��
����
������9����e������(�
��������)������(�W������O&�
��4�O���(�
���(����
u�����=�
u&�
�e����������C���O�9���e�]�����(�
�e�����	M�����R���
u�9���	Me�]�	M����(�
�����v�������
�����v
��&������������ ������ �"��!�'� �������_a�"�������������
�������-&���5���D����9�������	�
��	��	��e�]���	Annot���(�W����&�
�������(�
���(����������
�&�
���������w�
C�t�� �"�w�|�'�p_a�"����r�
)�
��'���
��5�w��mod_zero���|�
C�r�� �"�|���'�s_a�"�
����
��
��r&�
��5�|intdiv_zero��3����(�
��9�9������+����
-���
��mod_add_div_aux����(�
��9�������+����
��������PInfo���Wdecl�mod_defab�W���l�������W��l�mod_add_div�&�PInfo���adecl�add_mul_mod_selfabc���?�&��������dite���decidable_eq&��cz������]������Z�[�� �"����_a�"����������������&&�&�5�&�����Z��to_has_zero��semiring�� �"��6�'���/��1_a�"������������E�5��1mul_zero�/���6��� �"�6�[�'�'���)_a�"�����1�E���E�5�6��add_zero�$���3���not����9�]��_�� ����'�_a�����%���mod_def�]�������9����a� �"�����'�_a�"�9���[������&�5���������������c��� �"�����'�__a�"���2�[������[&���5���c����&�����distribto_has_add�distrib���to_has_mul����a������ �"�����'�����a�_a�"���[���������&���5����mul_add����a�����9������� �"��� ��_a�"���������� �����9��� ���5�������� ��������� �"� � &�'���u�����u����_a�"�9��� �������5� � $add_sub_add_right_eq_sub�V�������3� $�PInfo���dATTR�����decl�add_mul_mod_self_leftabc������������� U���?��&����� �"� U� `�'��&_a�"������Z&���5� U� [���&�� `����� �"� `� }�'���?�
��_a�"����������5� `���add_mul_mod_self�&��3���PInfo���iATTR�����decl�add_mod_selfab���&�W����������
��+&�W� ��'��&��_a�"���?��+������?&����5� �&mul_one��&�add_mul_mod_self_left�&�+�PInfo���lATTR�����decl�add_mod_self_leftab� ���^������ �����&���^� �"� �� ��'��&_a�"���?���T���� ��5� �� ����&�� ��^�^� �"� �� ��'���X�_a�"������� ���� ��5� ��^�add_mod_self&��3�^�PInfo���oATTR�����decl�mod_add_modmnk�����&�� ����������!�����������&��!����&��'�!�!"_a�"��������������[�����!5� ���5�!(��������!����!�!"��!(�'���! &�!"_a�"�!5����!2�!7��!5���5�!O�!%�J��&�!"�:�!N�!� ��!��!!�PInfo���rATTR�����decl�add_mod_modmnk���?�W&� �&��������!x�����W�&�!w� �"�!x�!��'���W_a�"���Z������Z��� ��!��5�!x�!~����W��!�����&�!w� �"�!��!��'���k�&_a�"���! ����!����!��5�!��!��mod_add_mod�&���!������&�!w� �"�!��!��'� �_a�"���?����!��!��5�!��!�� ���3�!��PInfo���vATTR�����decl�add_mod_eq_add_mod_rightmnkiH�� ��������� ��������������!���!�����������!�� �"�!��!��'�!�_a�"���������!������"�5�!��!��:�!��!��!��������!��!������������ �"�!��"�'�!�_a�"��������"�"#&�5�!��"�:�"�!��!�������"�"�"� �"�"�"8�'�!�_a�"�"#������������'����"B�5�"�"&�3�"�PInfo���ydecl�add_mod_eq_add_mod_leftmnkiH�!���������!��������������!���"a����������"`� �"�"a�"m�'����_a�"���?�����!����[���"x�5�"a�"i� �����"m�!��"`� �"�"m�"��!�_a�"����������"x���"x�5�"m�!��add_mod_eq_add_mod_right������&��"��!���"`� �"�"��"��'�!�_a�"�"�"x�"}�5�"�� ��!���3�"��PInfo���}decl�mod_add_cancel_rightmnki�� n� ���!������������"��!�H�"����!����� ������"��"�'�u�u�����_a�"�����!��
�����"{�5�"��add_neg_cancel_right�V��������!������"��"��'�u�u����"�_a�"����!��
����"��"|�"��5�"����"�����"��!���� ���&�"�����&�PInfo����decl�mod_add_cancel_leftmnki������ ���!�����������#)�������&��#&�!�� �"�#)�#6�'� ���_a�"��"a�"���[���"`�"��5�#)�#0��&����#6��#3��� ���!�� �"�#6�#U�'� �_a�"��"m�"���"l�#@�"��5�#6� ��#K���#U��!��!�� �"�#U�#m�I�"�_a�!�"��"l�!����"��O�"��5�#U�!��W�"��!��mod_add_cancel_right����&�a�!��PInfo����decl�mod_sub_cancel_rightmnki�����&�����&��!����������#�����Q�Scomm_ringto_ring��&�PInfo����decl�mod_eq_mod_iff_mod_sub_eq_zeromnk�� |�^���H&�������#��#����:&��#��symm�#��#��mod_sub_cancel_right��&&���#��#���� �"�#�����#�����"�����#���a�!��!e_1�"�&b�!��!e_2�#��}�!�!����������!��!�!�������&�#��#��x�#��#�chas_moda�e_2�
����e_3�
���������#��������#���&���#��#����&���
}�#���#����!��$�#��!��f&����!��&&add_right_neg�V&���
}�7��#��#��$�3�W�#���iff_self�#��[�PInfo���decl�mul_mod_leftab���&����$N���*�&� �"�$N�$V�'�_a�"���\�� ��5�$N�$R�:�$R��9���$V���)&� �"�$V�$s�'����)�&_a�"�������5�$V�$q� ��)�&��$s� �"�$s�$��'��_a�"�$p����5�$s�$1&�$:�PInfo���ATTR����decl�mul_mod_rightab�$K�����$���� [�� �"�$��$�� f_a�"�$\�� ��5�$�� [� w��$��$�� �"�$��$��'���
��_a�"��������5�$��mul_mod_left&��$:�PInfo���ATTR����decl�mod_selfa�[&������|&&�$��'��&_a�"���}��$a�5�$�&��&�$��+&�PInfo���ATTR����decl�mod_modab���W&�W�!�"��%�%�%� �"�%�%�&���e_2��&��������e_3���&�}���!�����%������������!�����%��&�%�%�3�%�W�%��W���m&�%��_a�#��3�W�m�:�m���� �%6�%��%6�%�%�'�%6_a���!/�&�3�%6�%� ��W&�
�� �%�%0�%0�PInfo� ��ATTR���� decl�mod_mod_of_dvdnmkhhas_dvddvdcomm_semiring_has_dvd�comm_semiring�&������)�*�+�,�%k��%o�%n�������� �"�%o�%y�%-�%m�%m�3�%m��%x���%x�%x�'��_a�"��#@�3��%v�:�%v�������� �%x�%x�3�%x�
;c�
=���comm_semiringto_semiring�%g��&�,�%i���������������&trfl�%��'�%�����+������&������%��
��
��&�������%�������%���%����%����%����%�����semigroup���%���%���� �"�%��%��'�%��%���%�_a�"���%��%����������%���%��%��%����%����%�&���5�%��%�mul_assoc�%�����%���%��%��%�� �"�%��&�'���%�����%���_a�"�%����%��%����%���%����%�&�5�%��%�� ��%����%��3�%����:���%�&�PInfo�(��ATTR����(decl�mul_div_mul_of_posabcH��������!!�<�=�>�?�&>
�m(k(b�
��
�&�&G��
��_a_a�
:_a_a�
7n(�y�	��	�;�
<��(�h��D�
7�&Y�
�&�^�&�������(��&X��t_1���H_1�
VH_2�
W���
Y������
���<�&k������&���
s���
v�C��
w�J�
~�
�[�<�[���&q��
��J�
��
<�G(�y������;�F�
7�&��
����<�&����&q��w_1(h_1�&�����������L�y�&��&��
�e������&���
���&�L�&��1t_1�L�3H_1���H_2�
W�5�
F���9��
�e��j�&��<�
�&��<�
,&�����'�	P�E�L�����O�
W�	�
F&�
{�
}�&��&���&���L�	�O���
��
����
`�&��
F�
�&��
F���
`���&��
`&��3�
,�
����
,&�L�&��1t_1�L�3H_1����H_2�
W�5��
F���9��&���
,&���
����'�
����E�L���&��R�
W�	�&�&�
{�
}�&��L�'
����R�
W�
����&�&�'�'�3�'�
��&��&��&��&��&���'&�&���� �&��
F�'%� �"�'&�'.�'�')���
F_a�"�
���&��&��'7�����&��';�'9&�'?�5�'&�'+�:�'+�'4neg_mul_eq_mul_neg�T�&��
F��'.��&��'*�'%� �"�'.�'Z�'�&���'*_a�"�'9��� �'6�':�'?���'?�5�'.�'X���&��'*��'Z�'Y��&�� �"�'Z�'w�'�'%_a�"��'9�'c�'?�'&�5�'Z�'v���&��
F�%�'W�&���&��
`&��3�'�
����'&��&��
��
��f�&���
������eq_coe_or_neg�m(k(b_a_a(�W�[�
���&�'���&M�a_1(�
�e�
�e&�e�e�{��9�'��'�enatmul_div_mul��&��a_1(�
��\(�
�����'�������
��
�'���'���K���'��'��'��L� �"�'��'��'�_a�"�'��'������'��'�&���5�'��=��'��'��1�L� �"�'��(�'�<���1_a�"�'��'��s�'�&�s�5�'��1�T����(�$��L� �"�(�(4�'�'�_a�"�'��1�s���s�5�(���'���(4�$�� �"�(4�$��'�L_a�"�$��s�$�&�5�(4����$:n(�
�s�
����������s�
��9�(h�(ks
���(h�(k&natdiv_eq_of_lt_le�(e�(g�(k��(�	
�
��(k�(g�(c�(e�����	
�(|�(c�(��
��
�(c�(g�(g�(c� �"�(��(����(k_a(�"�(��
�����
��&���(���(��
�&�(��(��5�(��(��	��(��(k�'��������natdiv_mul_le_self�(c�(g�	��(c��� ��(e�
���(k�(g������(��(��l�2�(��� �"�(��(����(��l�_a(�"��(��	M�
���(��(��(�&�5�(��(�mul_left_comm(�/�(����natmul_le_mul_left��(�������(k�(���(����(���natlt_succ_self�(kAnnot�&�Annotsuffices�PInfo�;��ATTR����;decl�mul_div_mul_of_pos_leftabcH�������a�s�t�u�v����)�_���a� �"�)�)�'�����_a�"�
�&���[�����
��)!���5�)���������)�_���a� �"�)�)7�'��_a�"�
�)���)!���)>&���5�)��� v���)7�a�a� �"�)7�)R�'�
�)!�\_a�"�)>�)�������5�)7�a�mul_div_mul_of_pos����&�3�a�PInfo�r��ATTR����rdecl�mul_mod_mul_of_posabcH�&>�����&?�����|�}�~��&>��)y�9����&?�&@�)x� �"�)y�)��'�)v_a�"���)�&^�&����)��5�)y�)������&?��)��)����H�!"� �"�)��)��`_a�"�9�)��&^�) �&^�)��)��&&�5�)��)�������)��)�)��!!�)�� �"�)��)��'�&@_a�"�)��&���!7�)��)�&�)��5�)��!!�)e����&��)��)���� ����)��!"� �"�)��)��'�)����!"_a�"�)��)����)��)�&�5�)��)�mul_sub_left_distrib�T����!"��)��)�%����%��!!�)�� �"�)��*�'�%��)���!!_a�"�)���� �����*
�!7�)�&�*�5�)��)��&����!!�3�)��PInfo�{��ATTR����{decl�lt_div_add_one_mul_selfabH�
(�����!!�+��������
(��*.�������!!����+�� �"�*.�*9�'�����!!�+�_a�"����|�+���&�5�*.�*8add_mul���!!�+���*9���*5�� �"�*9�*Z��_a�"����������*6����*a&�5�*9�����*Z�������!!�� �"�*Z�*u�'���!!�_a�"���*a�����&��5�*Z�*r���!!�lt_add_of_sub_left_lt�^��*r���,����*r��,���� �"�*��*��'�)�_a�"�,����������,&��5�*����:���)��)��u�&�PInfo����decl�abs_div_le_absab���
��_
�an(���
���_ab_a_a�&W�
<�G(�y���
=�;���
7�*��������&��(��*����
���
�����y�*��*����%������&��*��rt_1��sH_1�&�H_2�
W���
F���|������^��
`�
,&������&�����&����&�������*���	�����
������
F���
`�����&��&��
��h�
,&��*��rt_1��sH_1�&�H_2�
W���&����|��*��'&���'���'����'���'�*���'���'!�
������&��+��+*����*��+� �"�+*�+0�'�+'_a�"�����';�*�����*��5�+*�+-����
F��+0�+� �"�+0�+�'�����Qdecidable_linear_ordered_comm_groupto_add_comm_group��*�_a�"������':�*��E�*��5�+0�*�abs_neg��*��+��&��'��
��h�'&&�'�&an(��*����M�*��_� �"�*��+��'�*�_a�"�����P�E�P�5�*��+��R�*���+��+��� �"�+��+��'�__a�"���M�+��P�+�&�5�+���R����+��P_a_a(�W����M�&M�R�a_1(�
���'�&natdiv_le_self&�a_1(�
���(��M�'��
G��
����	���	n_1(�
����
�natadd&����	��+���+���+��&Annot�q�PInfo����decl�div_le_selfabHa����!!�����������������xdecidable_linear_ordered_comm_groupto_ordered_comm_group��!!�P�+���'�P_a�"�+�������,&�5�+��� �&���+��!!��!!�Ple_abs_self��!!�abs_div_le_abs���PInfo����decl�mul_div_cancel_of_mod_eq_zeroabH���!"��������,%���3�!"��,'�'�*�!"_a�"�3�!7�������5�,-�!"�9�!"���!/��,-�`_a�"�!1�!7���'�!7���5�,A&�!H�PInfo����decl�div_mul_cancel_of_mod_eq_zeroabH�,%��!!���������,%��,[�*r�� �"�,[�,a�*|_a�"�������,6�5�,[�*r�*���,a��� �"�,a���'�!"_a�"�*����,6�5�,a��mul_div_cancel_of_mod_eq_zero��&���PInfo����decl�mod_two_eq_zero_or_onen�y�[bit0��+�,��+��
h��,��,�

h₁���T�,�
_a�W��_a�.�,�_a���y�
=�
=�+&�_(�
��_(������,������u�y���+&�
�_x��,�_x����y��,��+���,����,�orinl�,��,���_(�
��_(����?�,������O�y�
��
��+&�
�_x�����,�_x���,��y�,��,��+���,����,�orinr�,��,��,��_(�
�h����,�����,�_x����t�,��y����,��,��+���,����,��i��,��,��,��of_as_true�}�,�notdecidable�,��decidable_lt�,��,��[�_(�
�_x���,�h₁����y���+���-���-�i���
��-&�-�}�-!�-�-!�decidable_le�
��[���,��&Annot��Annot��intmod_nonneg��,��-���,��Cdecidableab���&�,��[Annot��Annot����_x��W&��,��,�� �,�
����,�&�-�-Z�-)�,��[Annot�intmod_lt&�-V�-���-V�-H�-V�[�PInfo����decl�coe_nat_dvdm(n(��%i���%c(�%e(��comm_semiring�&��(��(���-s�-{_x�-s_a�%i�
,��%��2���%���&���%i���
,�-y����&����-��
��-y����orelim��gt(�����-��`eq_zero_or_pos��m0�-���-y������� �"�-�����-�����,(�(�%�(�-w���-��-y���-�chas_dvd(��(��(e_2���(��(e_3���-u�����-��������-���&�-x���&������
F�%��':��-���-��-��-��x�
F�
F�3�
F�-���-��%���1���7��e_2�
����e_3�
��������-��������-���&�%��':��':��C���&�=����zero_mul�/��W�-��-�������W�-y�-���-�zero_dvd_iff(�-w��W�-�����Y��[m0l�-��
<�/(�
��_x_1�
7�./�-y�����enonneg_of_mul_nonneg_left�S�':�����������linear_ordered_semiringto_ordered_semiring�S�-��^to_semiring�.=���.F�':��.I�
F� �"�.N�.P���{����e_2�
����e_3�
�e������.V�����n�.V��&�.A�.H�.H�3�.H�.M�
F�:�
F�-���[�����.@�.H�':���� �"�.z�.|�W��':�.|������-��������	
����W�-��.�����.�gt_iff_lt(�	
���&k(e�..�'�aae��^�%��f&�-y�
`������%��.����intro(�2(���
��(�-��
`&�intcoe_nat_inj�^�.���&���:���&��&_x�-{_a�-y���
<�2(����.���&��-y����%i����&��(��.��
��%i�
F��dvdintro�%g�
F�����%��
F����.���.����� �"�.��.�����_a(�"�-��
,�
F�/��5�.��.�&��.��.���
F�� �"�.��/�'����_a�"�/��.�����/&�5�.��/�,����3�.�&�PInfo����ATTR������decl�coe_nat_dvd_leftn(z��-r&�-z�R�(����������a_2�y�/=�/@��-���.��P�nat_abs_eq&eq�/=��/G��-���.��M�� �"�/G�/R��_a�"��-���.�����-�&�.��R�5�/G�&��/R��� �"�/R����/R��/F�/F���#��/N�/F�W�/N�/F�coe_nat_dvd��P�/Q�/F�-����
���/P�P���P�W�/p���$@�/F�[eq�/@�/M��-����.��M�/�� �/T�/��/d�/�&��/���� �"�/�����/��/p���#��/��/F��%d�%fcomm_ringto_comm_semiring�#��
,�#���/���/F�W�/��/�dvd_neg�#��
,��/z�/��/F�/��/��P���/��/P�P�m��/��/��[�PInfo���decl�coe_nat_dvd_rightn(z��%i&��-y�R��(��/Aa_3�/C��%j�
,�-y�P��/Keq�/=��/���%i��
,�-y�/P�� �"�/��/���_a�"��%����-y������/����/����5�/��&��/���� �"�/�����/���/��/����#��/��/��W�/��/��/w�P��/��/��-��/P�P�/����/��W�0���$@�/��[eq�/@�/���%i�/��
,�-y�/��� �/��01�0�/�&��01��� �"�01����01�0���#��0-�/���/��/��
,�/���
,�/��W�0D�0Gneg_dvd�#���
,�0�00�/��-��/��P�/����/��0$�[�PInfo���decl�dvd_antisymmabH1��H2�����%i������0h���f���&�'�(���)����0m���%i�,����0h�*������� �"�0m�0z�%�_a�"���%i�������0���
X�����/������0��
=���5�0m�,�:�,��� �����0z���0s�P���0s�*��0w�*�� �"�0z�0��'�_a�"���%i�*������0�0v�*������0�&���%j�0v�0���5�0z�P�:�P��,��0����%i��M���P���0s��M����M���*�� �"�0��0��'�,_a�"���0��,���0��0v�0��0v���/��,���0���
=�0v�5�0��0��R����0����0������0��0��0��0�� �"�0��0��,_a�"���%i�0��,���0��0���M���0v���0�&���%j�0��0���5�0����S��0����-y�0����0�� �"�0��1
�I�0�_a�!�"���0��0����0��0��0��0���&�1�5�0��1	�W�0��1	�/w�0�����1
���1	���1�0��0�� �"�1
�1(�I�%i���0�_a�!�"���-y�0��0��1���11����1�5�1
�/��0��W�1.�1;�/w���0���1(���1	���1&��0��0�� �"�1(�1I�I�0���_a�!�"���11���10�0��1���11���1Q��5�1(��0����W�1O�1]���0���natdvd_antisymm�0����PInfo�%��decl�dvd_of_mod_eq_zeroabH�$a�%��4�5�6�$a�.��%��
���:�[�1z��,���&�PInfo�3�decl�mod_eq_zero_of_dvdab���%k� ��8�9���%k�%����%��"&a_wa_h�%��
Rt_1�;�
SH_1�%������H_2�
W�
X�%��������
]������^�%�&���������'�����9�;���1��>�
W�	�1�&�
{�
}���^�;�1��%��>�
W������1�&�1��1��3�1��
����������mul_mod_right������&��3�%��
��
��%�&�PInfo�7�decl�dvd_iff_mod_eq_zeroab��%k�$a�A�B���%k�$a�mod_eq_zero_of_dvd�&�dvd_of_mod_eq_zero�&�PInfo�@�	decl�nat_abs_dvdab��/�&�%k�F�G�-��	��	�/��1��/J�e�1����1-��%���%��%�� �"�2�2�'��_a�"��0���0i��/���0i�5�2��:���&�a�%�e�1��2��/��#�����%�� �2�2'�I�/����_a�!�2�O�0i�2�2%�9�!�2%�2,�W�2%�2,neg_dvd_iff_dvd�#������2'��/����%�� �"�2'�2G�'���_a�"��/��#��0���0i��/�&��0i�5�2'��2�2L&�a�2E�PInfo�E�decl�dvd_nat_absab��%j��%k�O�P�-��/=�/@�2l�/Ke�/=���%���%��2� �"�2u�2�'�_a�"��0h���0i��0h&�0i�5�2u����&�2e�/@�2v��2D�/��%�� �2x�2��I�2D�_a�!�2�2.�2��2��24�2��2��W�2��2�dvd_neg_iff_dvd�#�����2��2G� �"�2��2G�'�/�_a�"��/����2#�0i��2�&�0i�5�2�����/�&�2c�PInfo�N�decl�decidable_dvd_proof_1an��$a�%k�Y�Z�#��%k�$a�dvd_iff_mod_eq_zero�&�PInfo�X�	decl�Wdecidable_rel�%i�Y�Zdecidable_of_decidable_of_iff�$a�%k���^�X�&�PInfo�W�	prt�WVMR�WVMC�W
�	�Z�Y��mod_mainintdecidable_eqdecidable_of_decidable_of_iffdecl�Wequations_eqn_1�2��W�2��2��2��PInfo�d�	ATTR����dEqnL�dSEqnL�WATTR����Wclassdecidable�W��decl�div_mul_cancelabH�/���,[�g�h�i�2��div_mul_cancel_of_mod_eq_zero���1��&�PInfo�f�prt�fdecl�mul_div_cancel'abH�%k�1|��l�m�n�%k��2����1z��� �"�2��3�'���1z_a�"�������d�5�2��3���1z��3�
{� �"�3�
{�'��1z�_a�"���3	����d�5�3�intdiv_mul_cancel��&�
}�PInfo�k�prt�kdecl�mul_div_assocabc���2�������!!�t�u�v���2��%��2�
��%��&���%j��) ��&��&a_wa_h�3A�rt_1�x�sH_1�%����H_2�
W���1������|��
�&k�^���&k�����%��&���������'�1���u�x���3L�{�
W�	�3O&�
{�
}�
�&k����&k����x�3h�%���{�
W�1����3L&�3�3~�3�3~�
��
��^

�3OAnnot�Annot����3��
�3������j�����3�cz�j��
�&k�1������&k�
�3������ �"�3�����3��$����x�3���3��chas_div��e_2�
����e_3�
���
�����3��������3���&�
	�3���3��&k�1�-�����3��3�������r���1�3���&�����3���.
���T���&���3���3��3��1�3��3���3���3��3��3���&�3��3��W�$������[�|�}�j�3��
������������3�� �3��4�'�4�4
��_a�"�
��
`�%��^���^�4�
�4�^�
��^�4$�5�3��4�(����������4�4�3�� �"�4�4:�'�
���4��_a�"�
���^���
`���^�4$���4$�5�4�4����4&��4:�49�&k��� �"�4:�4\�'�
�3���_a�"�4E�4$�4d�4&�5�4:���4T��&�3�4��&��3�3a�
��h�3a&�PInfo�s�prt�sdecl�div_dvd_divabcH1�%�H2�%��%i����������������%����%��%��2�h�%�&���0��%i���������H1_wH1_h�4���t_1����H_1�4���H_2�
W���%����������%i���
`���
`�1��&���1�����'���������/������	�4����
W�
=�%��
`��&�����%i���j���j���%i�4�������^���4����
W�����4�&�4��4��3�4��%��2���%���j��&���%i��
`���^�%i�
�4��j�4��H2_wH2_h�4��
Q�
`t_1���.&H_1�%��������H_2�
W�<�%�����
`�����4����%i�
��j�5���5�%���4���&����5��
`�'���<�^��������4����
W�	�5&�
{�
}�5��5���5!�%��5����
W��4����4�&�55�54�3�54�
��%i�


�%����
`Annot�Annot����


�%��5?��Annot�Annot������������5Jaz�5M��%i�
�%��5�j�5�
�%��5T���5��� �"�5\����5\�$��-�%����5b�%i�5e���-�����e_2�
����e_3�
�e�%d�����5m�����n�5m��&�%h�5V��5V��3��5T��5T�-��j�1�-��5&�j�j�3�j�.
�j�5&�3��5[��5[��3��5Y��5Y�-����1�-��5T�5������3��3��5&�3��W�%i�5d�5e�.�%g�4�[���}�5M�5]�%i�j�5[� �5_�5��'�
��5�j�5_a�"�%i�
�%��4�5��
�%��5����5��/��5��5�5\�j�4S�5�j&��5��5��
�%��5�%��j���5� �"�5��5��'�%��5��j��_a�"�%i�4�5��5��
��5��5�5��5��&�5�j����5��5��5�� �"�5��6
�'�
�5��5��5_a�"�5��
�%��5��%��4���5��5�&�5�5��5��5��5�&dvd_mul_right�%g�j���j&��3�5�
��2�5&��&����3�4��
��f�4�&�PInfo���decl�eq_mul_of_div_eq_rightabcH1�3DH2����h�����������3D���6^��6_�h����� �"�6_�6g�0�_a�"�f�)�f�)��5�6_���:���&��6g�h��� �"�6g�6|�'�6f_a�"�f�&���s�5�6g��intmul_div_cancel'������3���PInfo���$prt��decl�div_eq_of_eq_mul_rightabcH1�yH2�
��\������������y���6���6��I� �"�6��I�'��_a�"�����
������5�6���&��I��� �J���'�G_a�"�) �����,6�5�I��4S�������PInfo���(prt��decl�div_eq_iff_eq_mul_rightabcH�yH'�%�����6��6_���������y���6����6��6_inteq_mul_of_div_eq_right�����&intdiv_eq_of_eq_mul_right�������PInfo���,prt��decl�div_eq_iff_eq_mul_leftabcH�yH'�6��6��h�)!���������y���6���6��6��h�)� �"�6��6��'��_a�"��6��f�����6��s�5�6��)����intdiv_eq_iff_eq_mul_right������&�PInfo���0prt��decl�eq_mul_of_div_eq_leftabcH1�3DH2�6^�6����������3D���6^��6��6�� �"�6��6��6�_a�"�6��s�5�6��)�7��6����)� �"�6��7-�6�_a�"�f���������73�5�6����6��&�3���PInfo���4prt��decl�div_eq_of_eq_mul_leftabcH1�yH2�
����6����������y���7J�6��6e�h��� �6i�7P�)_a�6m�s�6r���)0��7P�)!��� �"�7P�7^�6�_a�"�f�)=���)=�5�7P�)!&�3�)!�PInfo���8prt��decl�neg_div_of_dvdabH�2��
�
����!!�������2��3C���3D�
�����&H_wH_h�3A�rt_1���sH_1�3NH_2�3T�
��^����3Y�3a&���3g�3i�����3j���3o�7x����3t���3}���3��
��
��3�����3��3��7�bz�j��
��3�����3���� �"�7�����7��$����x�7���7���3��7���7���!�/�3���3��5��1�-���&�����3��3��N��&�3��7���7���!�/�3��3��3��7���&�3��N�4�[���4�7��
� ���"���7�� �7��7��'���7���_a�"�
��4�^��4#�4(�7��5�7��7��'O������7��"�7�� �"�7��8�'�
���"��_a�"�
� �^���^�7����7��5�7��"�4T�"&��8�8��� �"�8�8)�4c_a�"���7��8.�g�5�8���4p�3�"��&��4��4��PInfo���<decl�add_div_of_dvdabc���2���3D�
���������������h1�2h2�3D���,�����8Wh3�,���
�!�������������
��5d������
�5d����� �"�8i�8t�'��_a�"�
���������*����
�'������6����5�8i�5d���5h���f�5d�I�5���_a�!�"�5h��&�5�8��8��W�8��8��5������0h���8��%�_a�"�0���4��5�8�&���8t�
�8k�5d���8r�8q� �"�8t�8��6�_a�"�
�8k������8p�����
�8k&���8��6��5�8t�5d���5h���h�5d�I�5���_a�!�"�8�&�5�8��8��W�8��8��5������0j�8��%�_a�"�0��/����5�0j&���8��8���8p�8�� �"�8��9�%�_a�"�8����8��8��8�&��8p&�9�5�8�&�3�8����}�,�eq_of_mul_eq_mul_rightlinear_ordered_comm_ringto_integral_domain�����8d�8h&��no_zero_divisorsto_has_mulintegral_domainto_no_zero_divisors�9$�8d���90�8h���93�����8f��������� �"�96�9>�'�����8f����_a�"�90�8}���90�8����9J&�5�96�9=�*Q�8f������9>�8b�9=� �"�9>�9^�'��8d��_a�"�9J�����*������������9k�5�9>�8b�3+�8b��dvd_add�%g����������9^�9]�����9<� �"�9^�9��'��8f��_a�"�8{�9k�9��*��9j�5�9^���3+�������9��9]�9���� �"�9��9��'�����_a�"�9������9j�9��9�&�5�9����3+������3�8b�PInfo���@decl�div_signab�
��sign&��9������W����9��[�9�&��(�
���(���9������9�&�
���9��[�9���9���� �"�9�����9��$����x�9���9���3������9��signequations_eqn_1����9���9��	�1�3������9��9��U�4�[��(�
����9������:��:���+���+� �"�:�:�x�:�:�3������3���:�+��equations_eqn_2&�:�:�3������:&�:�+�:+��:��� �"�:����:�
������x�:���]���:��� ����W�:?�������[��(�
���9���[�:Z��:^��� �"�:^����:^�����:e�
��
����x�:[�
���:[���+�
��:n��b�:p�9��:Z�b��equations_eqn_3&����+�/�:o��:D��:]�
���:]��� ��+�
��:��[�b�:��:�:Z�b�:ymul_neg_eq_neg_mul_symm�T��+�/�:��� ���W����:��������W��������[�PInfo���Ldecl�sign_mulab�9����9���9����W��9��
���9��:���(�
��(�9������9��9��&�W��9����&��9����9���(�
��(�9��:����:��9�&�
��9��:��:��9���:���� �"�:�����:��$����x�:���:��9��_�_e_1�
�'�9�&�:��T���sign_zero�:���:��:��1�3��:��:��3�:��9��;�T�:��4�[�(�
��9��r�?��9��9��?��;%��� �"�;%����;%�$����x�; ��; �9��:��;�.
�?�;�;$��;$�r�;#�1�3��9��;�;#�;#�3�;#�.
�;#�4�[�(�
��9��r��;"�:Z��;Z��� �"�;Z����;Z�$����x�;W��;W�9��:��;V�.
��;�;Y��;Y�r�:Z�1�;C�:Z�:Z�3�:Z�.
�:Z�4�[�(�W��9���O&��9��O�9���(�
��(�9���
u����9��
u�9�&�
��9��;��;��9���;���� �"�;�����;��$����x�;���;��9��:��;��T�O�;�;���;��;��1�3��;��;��3�;��9��;�T�;��4�[�(�
��9����,����;��;��(�
��9���v��;��;��(�W��9�����9���9���(�
��(�9���
�����9��
��9�&�
��9���;��9���<��� �"�<����<�$����x�<��<�9��:��;��T��;�<��<�;��1�3��;��;��3�;��9��;�T�;��4�[�(�
��9��;���<2�<2�(�
��9���<<�<<�PInfo��QATTR����decl�sign_eq_div_absa�9��
����	��<Jaz����:��
��_��� �"�<O����<O�$����x�:���:��9��:��&�;�<N��<N��3��&�_��_�����+P_inst_1decidable_linear_ordered_comm_group����e_2�
�'���&��&abs_zero��3��4�[�
�~�:�<N�:�intdiv_eq_of_eq_mul_left��_�:�mt�_�	�<req_zero_of_abs_eq_zero��&�:�:��_��sign_mul_abs��PInfo��Yprt�decl�mul_signi�
��9����W��<�&�(�
��(���9��p&�
��<�1�1�T�(�
�������� ���(�
�� ����)����to_monoid�T���mul_neg_one�T��PInfo��^decl�le_of_dvdabbpos�
(H�%���������
(��%�_a_a_a�
:_a�%��W�� �0��s����a_1(� �%i�����
<��(�f���
7�<���	Z������(��<���t_1���H_1�
VH_2�
W���
Y������e���
`�&���
s���
v�� �%i�&��
x�$������� �%i���
u��
��$��
���.���������natle_of_dvd��������%i�.����.2���/w�������&����
��
��
X�&a_1(� �%i����<���<���
�������(��<���t_1���H_1�
VH_2�<��s���
`�&���=�
v�� �%i�
B&��
x�*���s�^��� �%i���
u��
��*��
����=E�����=E���+�=E�4���7����&����
��=6&������&�PInfo��cdecl�eq_one_of_dvd_oneaH��&H'�%j�+�,��,�-�=��.�=�_a_a�
7�/(�&R_a�=��.0�0�.1�
��+���(��..�rt_1��sH_1��H_2�
W�������|����+�&���������/�1�/��+����4���=��1�%i�	Z�+��	�4���
��-��,��9�����nateq_one_of_dvd_one�����.��,��-����/w�������&����B�
��h�&��e�&�PInfo�+�kdecl�eq_one_of_mul_eq_one_rightabH��H'�\�+�=��8�9�:���;�=��eq_one_of_dvd_one����1x�2�X�%�&��:���+&�PInfo�7�qdecl�eq_one_of_mul_eq_one_leftabH�=�H'�=��,��>�?�@�=��A�=��eq_one_of_mul_eq_one_right������7]�+�)�+� �"�=��=��6�_a�"�6��+���+�5�=��)�7��=��Y� �"�=��Y�'��_a�"�73�+�>�5�=��+&�3�+�PInfo�=�tdecl�of_nat_dvd_of_dvd_nat_absa(zhaz�/9�/D�F(�G�H�/9�W�G�H�/^�.����G(�H�.��n�
��.�����>/�-���/w���&�G(�H�.��	�
��.��� �>=dvd_neg_of_dvd�#��������.����-����>4��&&�PInfo�E�wdecl�dvd_nat_abs_of_of_nat_dvda(zhaz�/7�/F�K(�L�M�/7�W�L�M�/\�-��P��L(�M�-����
��-��d���.����>_�>4�d���>a�.��uintdvd_nat_abs���u&�L(�M�-���
��-��
G
haz'�>E
���.�����-����=���&Annot��Annot��dvd_of_dvd_neg�#�����&&�PInfo�J��decl�pow_dvd_of_le_of_pow_dvdp(m(n(khmn�	��hdiv�%i�has_powpow((�has_pow�����%i��>�������S(�T(�U(�V�W�>��X�>����V�X�%i��>�����&�%i��>�������V(�X�>������>���-y�>���/w�>��natpow_dvd_of_le_of_pow_dvd������������%i��>�����-y�>���/w�>��&�V(�X�>��� �>���>B�>������>����>����>����>��������>����>����>����>��>���&�&�PInfo�R��decl�dvd_of_pow_dvdp(k(mhk����hpk�%i��>������.���_(�`(�a�b�>��c�>���?�%i��>����� �"�?�?
�.�_a(�"�.����%i����5�?�?�	��?��natpow_one���pow_dvd_of_le_of_pow_dvd��������&�PInfo�^��decl�div_mul_leabH����,Y��i�j�k��le_of_sub_nonneg�^��,Y���*��,Y��*�� �"�?9�?;�*|_a�"��*��,g��*�&�5�?9�*r�*���?;���� �"�?;�?O�*�_a�"��*����5�?;���*��-<��&�PInfo�h��prt�hdecl�div_le_of_le_mulabcH�
(H'�<��\������p�q�r�s�
(�t�?hle_of_mul_le_mul_right�S��������.K������.K���intdiv_mul_le���ne_of_gt����&��PInfo�o��prt�odecl�mul_lt_of_lt_divabcH�
(H3���!!��&^���z�{�|�}�
(�~�?�lt_of_not_ge�~�&^���<��������&^���m��intdiv_le_of_le_mul������not_le_of_gt������&�PInfo�y��prt�ydecl�mul_le_of_le_divabcH1�
(H2�<��!!��&^�����������
(���?����&^����.D�������mul_le_mul_of_nonneg_right�������&�+�-�?����?}����?��PInfo����prt��decl�le_div_of_mul_leabcH1�
(H2��&?���������������
(���?��le_of_lt_add_one����lt_of_mul_lt_mul_right�S���*C��R�.K������.K�*C�&�lt_div_add_one_mul_self�����+�.H���PInfo����prt��decl�le_div_iff_mul_leabcH�
(��?��?����������
(���?��?�intmul_le_of_le_div����&intle_div_of_mul_le����&�PInfo����prt��decl�div_le_divabcH�
(H'�<��?i�����������
(���<��@�����������������?�&�PInfo����prt��decl�div_lt_of_lt_mulabcH�
(H'���\��������������
(���@9�?������<��?�����������@�����?�����&�PInfo����prt��decl�lt_mul_of_div_ltabcH1�
(H2��a���������������
(���@X�?������<��?������<����@�����?�����&�PInfo����prt��decl�div_lt_iff_lt_mulabcH�
(��@X�@9���������
(���@X�@9intlt_mul_of_div_lt����&intdiv_lt_of_lt_mul����&�PInfo����prt��decl�le_mul_of_div_leabcH1��H2�6�H3��������6��������������6����@���@��������6�� �"�@��@��8y_a�"����&���E�@��5�@��@��:�@����9�����?�������&��PInfo����prt��decl�lt_div_of_mul_ltabcH1��H2�%�H3��)�����4��������������%����@��?����4��<��?����4��<������intle_mul_of_div_le���������@k�@�&�PInfo����prt��decl�lt_div_iff_mul_ltabcH�
(H'�3D��@Y���?����������
(���3D���@��?�intmul_lt_of_lt_div������intlt_div_of_mul_lt������+��&�PInfo����prt��decl�div_pos_of_pos_of_dvdabH1��H2��H3�6�������������������6��@������&���r������1��� �"�A�A�'�<�1��_a�"��r�����.���5�A�1�.
����PInfo����decl�div_eq_div_of_mul_eq_mulabcdH1�6�H2�3DH3����H4����H5�1����3Y�%��������������6����3D���A1���A3���A5�6��^���A7�������A7���
����� �"�AG�AK�'�AF_a�"���3�������&�5�AG�AJ�:�AJ�AFintmul_div_assoc���������A\�^�<������^��:�3�����&�PInfo����decl�eq_mul_div_of_mul_eq_mul_of_dvd_leftabcdhb���hd�yhbc�0�h�@����)��������������������A~���y���0����A��%��2�
X�1�&���%i��������%������khk�A��'�4������&k�
`�
����.��
��
`�^���3����A�����2��
�4������2�&}� �"�A��A��'�3q�_a�"�.��
�4����
`�^�.�
��^�5�A���4S����eq_of_mul_eq_mul_left�9$��
`�&�������A���A����A��%���A��'�%��A����_a�"�4�j��A��^�A�&�5�A��A��&����&���:���A�&��PInfo����decl�of_nat_add_neg_succ_of_nat_of_ltm(n(h����	Z�s�W���(��(���B� �B��s���B��� �"�B����B��B�B���B �B�B�B"�x�B�B��B�sub_nat_nat_match_1����B�B�B+�B.�����B0�sub_nat_natequations_eqn_1��m(��(e_1�n(��(e_2�_a(�(e_3��~�B,�^���B,�������~�(�B=�B@�����8��(�BE�^���B,����&���/����
���B4�B/��succ_sub����le_of_lt_succ��&��equations_eqn_2���B�B�B�3�B�inj_eq�B�B�W�B"���Y�B�[�PInfo����decl�of_nat_add_neg_succ_of_nat_of_gem(n(h����Be����	(�
(��B�� �B���B�B���� �"�B�����B���B��B����B���B��B��B��B)�B��B+�B��B��B+�B.��B��B6�B��B:�Be���sub_eq_zero_of_le��&��equations_eqn_1���+�B��B��B��B��W�B��B����B��B��W�B����Y�B��[�PInfo���decl�neg_add_negm(n(�
�s�
W�(�(�
��PInfo���ATTR����ATTR����decl�to_nat_eq_maxa��to_nat&maxdecidable_linear_ordered_semiringto_decidable_linear_orderdecidable_linear_ordered_comm_ringto_decidable_linear_ordered_semiring��&��W��B�&�(�
��f�B���:�B��max_eq_left�B���7&�(�
��$��B���:�Cmax_eq_right�B���+��5�PInfo���decl�to_nat_of_nonnegah�=���B������=���C�B���� �"�C�C!�'�C_a�"��B����d�5�C�C�to_nat_eq_max���C!�
{� �"�C!�
{�'�C_a�"�B����d�5�C!��B��&�
}�PInfo���ATTR����decl�to_nat_sub_of_leabh�E���B��?���CS�#�$�%�CRintto_nat_of_nonneg�CS����&�PInfo�"��ATTR����"decl�to_nat_coe_natn(��B��&�)(�
7�Cd�PInfo�(��ATTR����(ATTR����(decl�le_to_nata�E�B��+��Cj�E�B�� �"�Cj�Cm�'�B�_a�"�s�C�t�5�Cj�B��C2&le_max_left�B�&�PInfo�*��decl�to_nat_lean(���C&�s��/�0(��C����C��C�� �"�C��C��I�C�_a�!�"���C'��<��O�C��5�C��C��W�C��C��#��C��C���C&��C����C��C�� �"�C��C��C&_a�"���C(��C���E��C��5�C��C�C3��C��and�����latticesemilattice_infto_partial_order�4latticeto_semilattice_inf�4lattice_of_decidable_linear_order�B����C���C�� �"�C��C��I�C��C�_a�!�"���C>��C��C��5�C��C��W�C��C�max_le_iff�B���and_iff_left�C��C��B��PInfo�.�ATTR����.decl�lt_to_natn(a���B��&�>(�?�������B����?�&������B����&le_iff_le_iff_lt_iff_lt(���~�B��&��to_nat_le&��PInfo�=�ATTR����=decl�to_nat_le_to_natabh�t�C��C�C�D�E�t��D,�<�C� �"�D,�D1�I�D,_a�!�"��B����C'&�5�D,�D1�W�D,�D1�D&��C�����C&�le_to_nat��PInfo�B�decl�to_nat_lt_to_natabhb�
(���C'�C���I�J�K�
(���DU��h�DU�W�I�L��B��D7�h�����I(�L��B����D7����B�������lt_to_nat���&�I(�L��B���D7lt_trans������neg_succ_of_nat_lt_zero���&h�����D7�C'���D7�� �"�D��D��I�D�_a�!�"��Dg�D7&�5�D��D��W�D��D��Dl�D7��W�I�P�.����C�����I(�P�,���&�I(�P�-����&�PInfo�H�decl�lt_of_to_nat_ltabh��C�B����S�T�U�D����DU���to_nat_lt_to_nat������C���Dl���P(�	
��C'�C���C'&&�PInfo�R�decl�to_nat'_main��option(��Z���D�&��(�D�(&��(�D�(�PInfo�X�VMR�XVMC�X	����decl�Xequations_eqn_1n(�D��X��D��\(�D�id_delta�D��D��PInfo�[�ATTR����[EqnL�[decl�Xequations_eqn_2n(�D��D���D��`(�D��D��D��PInfo�_�ATTR����_EqnL�_decl�to_nat'�D��D��PInfo�a�VMR�aVMC�a��Xdecl�aequations_eqn_1�\(�D��a��D��Xequations_eqn_1�PInfo�c�ATTR����cEqnL�cdecl�aequations_eqn_2�`(�D��D���D��Xequations_eqn_2�PInfo�g�ATTR����gEqnL�gdecl�a_sunfold�D��D��PInfo�j�decl�mem_to_nat'an(�has_memmem(�D�optionhas_mem(&�D���&R�l�m(�W�l��E��D�&�����l(�
���D��D��D���f����E"�i��E$optionsome_inj(&��#��E$�E(����l(�
���E�E�O����E8�E:h�E8�
P�D��D��t_1�D��t�D��D��
�&H_1�D��D����H_2�
W�E���D������D��EI���
B�':�D��&���D��EX�D��Yno_confusion(�w�
W�E���EB��EC�EB�D��EB�����D����D�&�D��EX�
��E��E@&�t�E:�
Q�t_1�t�&H_1�&�H_2�
W���
F���E{���E���D��
B�
,&�����no_confusion�{�
W������3�
��E���D����	P�
�&�&��
����
,&�PInfo�k�decl�units_nat_absuunits����M)�E�,�E�/�E�unitshas_coe��&���~�E����E�(natmonoidunitsmk(�E��E��M�E�has_invinv�E���has_inv��&���
��,��(�E��E��E�����(�E���M��E��E��E�� �"�E��E����
��E��E�_a(�"��E��M�E���M�E��E���E��i�E��5�E��E��	��E��E��nat_abs_mul�E��E���E���M���E�� �"�E��F�'���E��E�_a�"��M��E��E��E����E��5�E���unitsmul_inv��&�
��F���E��E��E��E���M��E��E��E�� �"�F(�F.���
��E��E�_a(�"��E��E��E��E��E��5�F(�F,�	��F,�F4�E��E��E���F.�F� �"�F.�F�'���E��E�_a�"��M��E��E��E��F�5�F.��unitsinv_mul��&�F!�(�E���has_one(�E��)�E�(,�E�(/�E�(�E�(�E��Ff�Fy�Flunitsext_iff(�E��Ff�Flnatunits_eq_one�Ff�PInfo�}�ATTR����}decl�units_eq_one_oru�E��y�E�&�(�E��Fi���F���E�unitshas_neg�T�F����E���F��y�E��+�F��b� �"�F��F�a�!���!e_1�#�b�!���!e_2�#��#��y���y�����#��y��&�F��F���F��F��E��F��F��W�F��F��F��&�F��x�E��E��3�E��F��+��coe_one���F��F���F��F��E��F��F��W�F��F��F��F��F��F��b�)�E��<�,�F�/�F��E��<���F��F��F����F��F��b��coe_neg�T�F��/�F��+�F����y�F���E��F���F��F��F��G�F��F��F��+��F��4�+�G���+�4�G�,��G�C�E����}&�������=�+�+�>�`�G�F��F��G�b�/�F��+�G%�/J�E��PInfo���!decl�units_inv_eq_selfu�E��F��E�&���E��-��F��F��G7�units_eq_one_or&h�F����E�_x�E��G7�F���9�E���F�&�E��E��F�h�F��GA�F���GE�F�&�GI�E��F��PInfo���$decl�bodd_zerobool�bodd�GZ�G]�PInfo���)ATTR�����ATTR�����decl�bodd_one�G[�G\�+�Ga�Gc�PInfo���*ATTR�����ATTR�����decl�bodd_two�G[�G\�,��G_�Ga�Gg�PInfo���+ATTR�����ATTR�����decl�bodd_sub_nat_natm(n(�G[�G\�s�&bxor�`bodd��Gp&��(��(�	?&m(n(i�G[�G\&�Go�Gp��Gqi(n_1(��G[�G\�u�Go�Gp�	��Gs��� �"�G�����G��G[�Gq�Gq�����GZ���GZe_1�G[�&���GZ���GZe_2�G��}�GZ�!�G[���G[������GZ���GZ�!�����G[��&�G��Gqintboddequations_eqn_1��G��Gq��GZ�G��Go�G_�Gq�Gq�G��Gr�G_�G��G��Gr�Go�Gs�Gs�G��G��Go�Gt�Gs�G���GZ��GZe_1�G���GZ��GZe_2�G��G��GZ�Go���Go�����G�a�GZ�GZ�����Go��&�G��Gt�G��G��Gp�u�Gtn(��(e_1��8�GZ���Gp&�	��u�	�&�natbodd_add�&�Gs�Gs�GZ�Gsboolbxor_assoc�Gq�Gs�Gs�G��Gq�Gq�G��Gq�G��G_bxor_self�Gs��bxor_comm�Gq�G_ff_bxor�Gq�W�G����X�GZ�Gq�[i(m_1(��G[�G\��G��Gp�	���� �"�H$����H$�G[bnot�Gq�H,���G��H �H,��equations_eqn_2��H#�H,�G��H#�Go�Gq�H,�H8�Gr�H:�H8�Gr�G��H+�Gs�H=�H8�G��Gr�H@�HB�G��Gs�Gs�G��H"�HE�G��H"�Gr�Gp���HE�HN�Gp�����HP�G��	��HS���	��
��	i��&�HS�HY�HZ�u�H\�HY���u���H_���	��u�G������
����	��u��add_left_comm(�	f���&�����
���H[���	���&�G����H�HO�H@�G��HO�H9�Gs�H@�H��G��H��H��G��Gp���H��G�&���HK�H��G��Gp���H+�G_�H��H+�Gp��H���bodd_succ���GZ��GZe_1�G��G��GZ���H+&�H��G_��bodd_zero��bnot_false�H
�Gstt_bxor�Gs��bxor_left_comm�Gs�Gq�H@�H�HA��bxor_bnot_right�Gs�H�H��Gq�W�H.���H�H,�[�PInfo���-ATTR�����decl�bodd_neg_of_natn(�G[�G\�
��Gs��(�
���(�H�&��G[�G\�
��Gp���G[�G\�
���G_� �"�H��H��G��H��H�a��e_1�
��GZ���G\&�
��H��_(�_(e_1��;�
�&����F�H��G_�G��H��H��G_�G�����F�H��G��H���(��G[�G\�
��Gp��I!�H@� �"�I#�I%�G��I �I �G��I �I"�H@�H�&�I,�PInfo���1ATTR�����decl�bodd_negn�G[�G\�g�Gy���W���I:&��(��G[�G\�
��G\����� �"�IB����IB�G[�Gs�Gs���G��I?�Gs�G��I?�H��Gs�I�
��
��negequations_eqn_1&��&�IA�Gs�G�&�W�IJ���H�Gs�[��(��G[�G\�'�G\���� �"�In����In�G[�H@�H@���G��Ik�H@�G��Ik�I"�H@�I{�G\�?�I"�I�'�?�intneg���?��equations_eqn_2&intcoe_nat_eq��G���I0�Im�H@�H3&�W�Iv���H�H@�[�PInfo���4ATTR�����decl�bodd_addmn�G[�G\��Go�G\��Gy�����W���G[�G\�X�Go�Gy�I��m(�W���G[�G\�a�Go�G��Gy�n(��G[�G\�k�I��IA�G[�G\��u���I�� �"�I��I��5�I���I���� �"�I�����I��G[�Gt�Gt���G��I��Gt�G��I��G��Gt�I��G\e�u�G��I�I��I��addequations_eqn_1�&�G��u�G��I��Gt�G��G��Gq�G��IA�Gs�I^�W�I����H�Gt�[n(��G[�G\�	�I��Im�G[�G\�I���J� �"�J�J
�5�J
��J
��� �"�J
����J
�G[�HE�HE���G��J�HE�G��J�Gr�I"�HE�J�G\�Gk��J�I�J�J"��equations_eqn_2�&�����H�I"�H@�I0�J�HE�I��Im�H@�I��W�J���H�HE�[m(�W���G[�G\�
D�Go�H �Gy���(��G[�G\�
N�JM�IA�G[�G\�����JU� �"�JV�J\�5�J\��J\��� �"�J\����J\�G[�G��H,�Jj���G��JZ�Jj�G��JZ�G��Gp��Jj�Jq�G\�t��Js�I�JY�Jv��equations_eqn_3�&�J-&��HK�Jr�H,�H���JU�Jj�G��JU�Go�H,�Gs�Jj�G��H �H,�H4�IA�Gs�I^�H
�H,�Gs�W�Jl���H�Jj�[��(��G[�G\�
��JM�Im�G[�G\�JX��J�� �"�J��J��5�J���J���� �"�J�����J��I����G��J��Gt�G��J��H+�H+�Gt�Gt�J��H+�Gp�
W�J��J��G\�B��J��I�J��B���equations_eqn_4�&�H3�
W�H��J��J��G��J��H+�G��J��H��u�H��G��Gt�G�bnot_bnot�Gt�J��Gt�G��J��J��H@�Gt�J��Im�H@�I���bxor_bnot_bnot�Gq�Gs�I��[�PInfo���7ATTR�����decl�bodd_mulmn�G[�G\�band�I��Gy�����W���G[�G\�
��K	�Gy�I��m(�W���G[�G\�
��K	�G��Gy�n(��G[�G\��K�IA�G[�G\��u���K!� �"�K"�K(�5�K(��K(��� �"�K(����K(�G[�K	�Gq�Gs�K7���G��K&�K7�G��K&�Gp�
��&�K7�K>�G\e�K@�KA�I�K%�KD�.�G��K@��bodd_mul�&�K!�K7��GZ��GZe_1�G���GZ��GZe_2�G��G��K	���K	�����G��K	��&�G��Gq�G��IA�Gs�I^�W�K9���H�K7�[n(��G[�G\�b�K�Im�G[�G\�K$��K{� �"�K|�K��5�K���K���� �"�K�����K��G[�K6�H@�K����G��K�K��G��K�K6�I"�K��K��Gp�K?��K��K��G\�
��K��K��I�K~�K��}�IX�K��KP��Ke�Gq�Gq�H�I"�H@�I0�K{�K��Kh�Im�H@�I��W�K����H�K��[m(�W���G[�G\���K	�H �Gy���(��G[�G\���K��IA�G[�G\�����K�� �"�K��K��5�K���K���� �"�K�����K��G[�K	�Gs�H,�K����G��K��K��G��K��K	�H,�Gs�K��K��K	�Jr�Gs�K��K��Gp�
��&�K��K��G\�
��K��K��I�K��K����IX�K��KO�&�Ke�Jr�H,�J��Gs�Gs�G���band_comm�H,�Gs�K��K��G��K��K��K��Ke�H �H,�H4�IA�Gs�I^�L�W�K����H�K��[�	(��G[�G\��K��Im�G[�G\�K���L5� �"�L6�L;�5�L;��L;��� �"�L;����L;�G[�K��H@�LI���G��L9�LI�G��L9�K��I"�LI�LP�Gp�K���LQ�LP�G\e�LT�LU�I�L8�LX���G��LT�L��L�I"�H@�I0�L5�LI�L �Im�H@�I��W�LK���H�LI�[�PInfo���:ATTR�����decl�bodd_add_div2n�cond�Gy�+��,��div2&&�	�W�	�L�&�	(�
���L��G\��+�L��L�����L����L�(�L�����L��� �"�L��L��'�L�_a�"��L��G\��+�L��L����'�L���5�L��L�
��L��L�&boolcases_on_x�GZ�L�&�+��L�&����L��3�L��G_�+�3�L��+Annot��9���L��Gs����
��,�(������div2&&e�`bodd_add_div2&�	(�
���L��Im�+�L��L�����L�s�L��� �L��M�L�_x�GZ��L��H+&�+�L��L��s���L��L��L���Gs� ��L��H��+�L�s���L��G_����L�� ���L�s�L�s����L��s�L��M+�M/�M.� �"�M0�M2�����	d��(��add_monoid��(�M8�L�_a(�"s�Ms�M)�M�MC��5�M0�L��7(�M8�L��3�M.� ��L��H+�+�L�s���L�����L���3�M&s�����L��M&�Mm� �"�Mn�Mq�'�*�M&_a�"�3�L�s�Ms�Mk�M���M}�5�Mn�M&�9�M&��Mq�Mps�	i�L���� �"�Mq�M����HZ�L�_a(�"�My�M}�M���5�Mq�M��H��L��3�M&�L�s�L��PInfo�	�=decl�div2_valn�L��
��,��	�W�	�M�&�	(�
�e�L�e�{�L��9�L��M�e�`div2_val&�	(�
��M%s�M��M�s�M��PInfo�	�Hdecl�bit0_valn�,�&�L�&�	�:�<�,�����to_distrib�.�)����to_monoid�.&��M�&&two_mul�.&�PInfo�	�Ldecl�bit1_valnbit1�*�&��M��+�	�%�M��M�
_x�,Annotinfix_fn�bit0_val&�PInfo�	�Ndecl�bit_valb�GZn�bit�&�M��L���+�	!�GZ�	"�L��	!�GZ�N&���L���L����M��M��'�M��)�M��:�N�M��r�M��bit1_val&�PInfo�	 �Pdecl�bit_decompn�N�Gy�L�&�	&��N)��L��L�&�bit_val�Gy�L�����L��L����L��L�&���L��L��bodd_add_div2&�PInfo�	%�Sdecl�bit_cases_on_proof_1uC��un��	+�NE���N)�	,�NF�	.� �NK�'&_a�NH���0�'�NE��N)�:�N)&�bit_decomp&�PInfo�	*�Vdecl�	)�	-�	,�NF�	.hb�GZn���N���	,�NF�	.�	1�Nd�.%����N�I��L���	*�	+��&�I��Nk
�PInfo�	)�VVMR�	)VMC�	)�V�	1�	.�	,��div2_main��bodd_maindecl�	)equations_eqn_1�	-�	,�NF�	.�	1�Nd�%���	)�	-��&�Nu�	,�NF�	.�	1�Nd�%���N~�PInfo�	9�VATTR����	9EqnL�	9SEqnL�	)decl�bit_zero�N�G_�N��PInfo�	:�YATTR����	:ATTR����	:decl�bit_coe_natb�GZn(�N��natbit�&�	<�GZ�	=(��N���L���N�N�� �"�N��N��'�N�_a�"�N����N������N��5�N��N��N2����N��N�����L�&�L������ �"�N��N����N�_a(�"��L���L���+�N��N���5�N��N�natbit_val�&�L��	<�GZ�N��L�����L���L���3�N��L��3�N��L��PInfo�	;�[ATTR����	;decl�bit_neg_succb�GZn(�N�s�N��H+�&�	E�GZ�	F(��N���L���N�N�� �"�N��N��'�N�_a�"�N��s�N��H+�����O�5�N��N��N����N��N�s�N��L��N����� �"�N��O���N�_a(�"��L���N��O�O%��5�N��O�N��N�&�L��	E�GZ�O#�L�s�N��L��M�����3�N��L��3�N��L��PInfo�	D�^ATTR����	Ddecl�bodd_bitb�GZn�G[�G\�N��	J�GZ�	K��OK�G[�G\�N	�� �"�OK�OQ�'�N_a�"�G[�G\�N����Gz��5�OK�N	�N�&��OQ�G[�G\�N�� �"�OQ�Oj�G��OO�Oh�G��OO�G��Oh�Oh�Oq�Go�Oh�G_�Or�Oq�Ou�G\�M��Ov�Oq�G\��N�M��Oz�I�N	�O~���M��N���N�M��G��Oh�Oh�G��Oh�Oy�G_�G��Oy�K	�G_�Gy�G_�O��K	�Gg�Gy�O����,�&�Ke�Gg�G_���Gy�Gy�G��Gyff_band�Gy�H
�Oh�G_�H�Oh���G���L��	J�GZ�G[�G\�L�&��L�_x�GZ�G[�G\�L��G_�Gy�G��O��O��L�_x�GZ�G[�G\�L��Gy�G��O��O��PInfo�	I�aATTR����	Idecl�div2_bitb�GZn�L��N&�	Q�GZ�	R��O��L��N	&� �"�O��O��OV_a�"�L��OW��M���5�O��N	�Oc��O��
�N	�,�&� �"�O��O��'�O�_a�"�L��N�N������5�O��O��div2_val�N	��O��
���N�M��,�&� �"�O��P�'���M��N_a�"�
�P�,���M���5�O��P�O���P��
�N�,�&&� �"�P�P5�'�
�O~�,�_a�"�
���N��N�,���P�5�P�P3intadd_mul_div_left�N�,�&�-L��P5�3&&� �"�P5�PU�'�P1_a�"��
�N��,����X��5�P5�L��	Q�GZ�
�L��,���-�
�L��,����Pr�[�-�
�L��,����P|�[��PU��&� �"�PU�P��,_a�"�3���P�5�PU&�:�3&�PInfo�	P�dATTR����	Pdecl�test_bit_zerob�GZn�G[�test_bit�N���	]�GZ�	^�W�	^�G[�P��N�&��&�	^(�
��G[�P��N������P��G[�P���N�&��� �"�P��P��'�P�_a�"�G[�P��N�������G[�P�&����5�P��P��bit_coe_nat�&nattest_bit_zero�&�	^(�
��G[�P��N������P��G[�P�s�O&��� �"�P��P��'�P�_a�"�G[�P��P������P��5�P��P��bit_neg_succ�&� �P���G[�H+��test_bit�P����G[�H+�O�� �"�Q
�Q�&�GZ�Q
_a�GZ�"�G[�H+�Q�N��H+�������G[�M���5�Q
�O�P��O&�L��	]�GZ�G[�H+�M&��G��H+�H��G��H+�MZ�PInfo�	\�jATTR����	\decl�test_bit_succm(b�GZn�G[�P��	M�P���	i(�	j�GZ�	k�W�	k�G[�P��	A�P���&�	k(�
��G[�P��	A�P������QT�G[�P��	A�QS� �"�QT�QY�P�_a�"�G[�P��	w�P�����G[�P��	w�Qa�5�QT�P��P�nattest_bit_succ���&�	k(�
��G[�P��	A�P������Q|�G[�P��	A�Q{� �"�Q|�Q��P�_a�"�G[�P��	w�P�����Qe�Q��5�Q|�P��Q� �Q���G[�H+�Q	�	A�H+�Q&���G[�Q��Q�� �"�Q��Q��Q�Q�_a�GZ�"�G[�H+�Q�	w�H+�Q����Q!�Q��5�Q��Q��Qq�O&�G��Q��PInfo�	h�oATTR����	hprvbitwise_tac_private����obitwise_tacdecl�	ttacticunit�Q�has_bindand_then�Q��Q��Q�monadto_has_bind�Q�interaction_monadmonadtactic_state�Q��Q��Q�has_bindseq�Q��Q��Q��Q�tacticsave_infoposmk�L��L��M�(�����L��Q��Q��Q��L��Q����L��	�step�Q��	�interactivefunextlistconsnamenamemk_string
Strmnameanonymouslistnil�Q��Q��Q��Q��Q��Q��L��Q��Q��Q��Q�
Strn�Q��Q�has_andthenandthen�Q��Q��Q�Fandthen_seq�R�Q��Q��Q��L��Q��Q��L��Q��	�interactivecasesprodmk�D��Q�pexpr�D��Q�
Quotem�	�_�{�Q��Q��Q��R�R
Quoten�	��	��}�R�R�Q��	�interactivetry�Q��Q��Q��R�L��Q��L��Q��L��Q��Q��Q��R�Q��R7�Q�tacticinteractiverefl�Q��R�L��L��L��Q��Q��R�Q��Q��Q��R5�Q��Q��Q��Q��R�L��Q��	�interactiveall_goals�Q��Q��Q��Q��Q��RX�RD�Q�has_orelseorelse�Q�alternativeto_has_orelse�Q�tacticalternative�Q��Q��Q��Q��L��L��L��Q��Q��L��L��Q��	�interactiveapply
Quotecongr_arg�	��	���of_nat�	��	����Q��Rq
Quotecongr_arg�	��	���neg_succ_of_nat�	��	����Q��Q��Q��Rj�R5�Q��Q��Q��Q��R��Rm�Q��R4�Q��Q��Q��R��L��Rm�Q��Q��Q��R��Q��Rm�Q��	�interactivedsimp�G_�Q��	�simp_arg_type�	�expr
Quotenatland�	��	����R��R�
Quotenatldiff�	��	����R��R�
Quotenatlor�	��	����Q��R��Q�interactivelocns�Q��R�R�Q��Rtacticdsimp_configmktactictransparencyreduciblesimpdefault_max_steps�G_�G_�Q��R��L��RM�Q��R��Q��L��RL�Q��Q��L��Q��Ri�R5�Q��Q��Q��R��Rm�Q��R4�Q��Q��Q��R��R��Q��Q��Q��R��R��Q��	�interactiverw�	�interactiverw_rules_tmk�Q��	�rw_rule�	�mk�Q��Q��R��Q��G_
Quote
�
eqAnnotfrozen_namenatbitwise�	��	���a�	���b�	���
�K	Annot�	��bnot�	��	���&n�	��	���m�	��	���natbitwise�	��	���a�	���b�	����R�&bnot�	��	����m�	��	���n�	��	���&congr_fun�	��	���congr_fun�	��	���
natbitwise_swap�	��	���Annot@a�	���b�	����Sbnot�	��	����rfl�	��	���n�
�	���m�
�	���Annot��Q��R��D�pos�Q��Q��L��Q��Rh�L��L��Q��R��R�tacticrewrite_cfgmk�	�apply_cfgmk�R��	�new_goalsnon_dep_first�G_occurrencesall�Q��SG�L��Q��SH�Q��SG�Q��SI�Q��Q��L��Q��SD�R5�Q��Q��Q��Q��Q��Ss�Rm�Q��Rq
Quotecongr_arg�
�	���f�	���natbitwise�
�	���&m�
�	���n�
�	����Q��Q��Q��Sq�R5�Q��Q��Q��S��Rm�Q��Q��Q��Q�
Stra�Q��Q��Q��Q��L��L��L��L��L��L��L��Q��Q��R5�Q��Q��Q��Q��S��Rm�Q��Q��Q��Q�
Strb�Q��Q��Q��Q��Q��S��R5�Q��R�R�Q��Q��S��Rm�Q��R�R
Quotea�
�	����Q��Q��R�R
Quoteb�
�	����Q��RA�Q��Q��L��Q��S��Q��Q��S��L��Q��Q��Q��Q��S��L��Q��R\�Q��Q��Q��S��RD�Q��Q��Q��S��Q��Q��	�interactiveunfold�Q��Q�
Strland�Q�
Strnat�Q��Q��Q�
Strldiff�S��Q��Q�
Strlor�S��Q��R��	�unfold_configmktacticsimp_configmk�R��G_�G_�G_�G_�G_�G_�G_�G_�G_�Q��S��RN�Q��S��R��PInfo�	t�sVMR�	t_lambda_1VMR�	t_lambda_2VMR�	tVMC�
$�sαVMC�
%�ss�Q�t₂t₁β�%
α�%
	VMC�	t�	�s�
'�Q�nameanonymousm���namemk_string�	�interactivefunextFstep�tFsave_info�
%�
$has_bindseq	3�
-n����
/�
1�
2�u�
3�
%�
$�
58	9��v/�
3�v0�
3�	�interactiverefl�
2�v+�
3�
%�
$�
5�
%�
$�
5�v*�
3�
%�
$�
5�
%�
$�
5�	�try�
2�
-n����
/�
-n����
/�R+�	�cases�
2�
-m����
/�
-m����
/�R!�
9�
2�v�
3�
%�
$�
5Fseq�
:�	��4���
3���
3�
7�
2�S��
9�
2�S��
9�
2���
3�
%�
$�
5�
:�
:�
%�
$�
5���
3�
-b����
/�
1�
2���
3�
%�
$�
5�
%�
$�
5�
%�
$�
5���
3�
-a����
/�
1�
2��
3�
%�
$�
5�
%�
$�
5��
3�S��	�apply�
2�~�
3�
%�
$�
5�
%�
$�
5�
%�
$�
5�
%�
$�
5�~�
3�}M�
3�}N�
3�{�S;�}L�	�rw�
2�z	�
3�
%�
$�
5�
%�
$�
5�z�
3�
%�
$�
5�
%�
$�
5�
8�
2�z�
3�
%�
$�
5�
%�
$�
5�z�
3�y-�
3�y.�
3simpdefault_max_steps�R��R��R��
6dsimp�
2�y	�
3�
%�
$�
5�
%�
$�
5�y�
3�
%�
$�
5�
%�
$�
5�
8�
2�y�
3�
%�
$�
5�
%�
$�
5�
%�
$�
5�y�
3�R��
;�
2�Rv�
;�
2�x�
3�
%�
$�
5interaction_monad_orelse�
%�
$�
5�w�
3�
%�
$�
5�
%�
$�
5�
%�
$�
5�
%�
$�
5�	�all_goals�
2�w�
3�
%�
$�
5�9	�:���.�
3��/�
3�
>�
-t�a�n������
/d�n�a�l�������
/�
-t�a�n������
/f�f�i�d�l��������
/�
-t�a�n������
/r�o�l������
/�
0unfold�
2��
�
3�
%�
$�
5�
%�
$�
5���
3�
%�
$�
5�
%�
$�
5�
A�
2���
3�
%�
$�
5decl�bitwise_or���&�bitwisebor�lorfunextx�&�T3�T5m�T8�
H�T3&�T5&n�W�
I�T?��TA��m(�W�
J�T3�u&�T5�u&�n(�3�TJ��n(�9natbitwisex�GZy�GZ�H+x�GZy�GZ�T2��M�&�&natldiff&�s� ��Tc�Tg���TW�
P�GZ�
Q�GZ�H+�TY�&�TWa�GZb�GZ�K	��M&��Ts�TW�	��GZ�	��GZ�K	&�N��&� �"�T{�T����Tz_a(�"��Tp���Tx���T�&�5�T{�T�
���Tz�T�&�	�(x((�Ty�
K(�T�&��T��
Y(���Tx�
M(�T�natbitwise_swap�T��Ga�T��G_�G_&�Annot�����GZ�G�(�To�T��
�T��TW&���T7�GZ�
H�GZ�
Q�GZ�GZ�To�T�a�GZ�T��
H�GZ�GZ�Tn�Tb�GZ�L��
\�GZ�G[�H+�T2&�N��Tu��L��
]�GZ�G[�H+�T2�G_�M�T}�H�&�G��H+�T��H��G��H+�T��MZ�L��
]�GZ�G[�H+�T2�M�T}�MZ&�G��H+�T��H��G��H+�T��MZm(�W�
J�T3�&�T5�&��
L(�9�TW�
P�GZ�
Q�GZ�H+x�GZy�GZ�T2�N�&�&�&�Te�&s� ��U�U�T��
P�GZ�
Q�GZ�H+�U�Tw�T��T��U#�Tw�
\�GZ�T��U"�Tv�
]�GZ�L��
\�GZ�G[�H+�T2�M��T~��L��
]�GZ�G[�H+�T2�H�&�O��M&�G��H+�U3�G_�G��H+�U3�L��
]�GZ�G[�H+�T2�MZ&�K	�M&�G��H+�UE�G_�G��H+�UE�
M(�9�TW�
P�GZ�
Q�GZ�H+x�GZy�GZ�U
�M�&�&natland�&s� ��Uk�Uo�T��
P�GZ�
Q�GZ�H+�Ua�K	�T��T��Uw�K	�
\�GZ�T��Uv�T}�
]�GZ�L��
\�GZ�G[�H+�U+�N��T}���L��
]�GZ�G[�H+�U3�M�O�&&�G��H+�U3�H��G��H+�U3�MZ�L��
]�GZ�G[�H+�UE�M�UI&&�G��H+�UE�H��G��H+�UE�MZ�PInfo�
C��decl�bitwise_and�T0�T1�K	�land�T:�U��U�m�T>�U�&�U�&n�W�
g�U���U���m(�W�
h�U��u&�U��u&�n(�3�U���n(�3�U��m(�W�
h�U��&�U��&��
j(�9�TW�
_�GZ�
`�GZ�K	�N�&�&�Tge� ��U��Tg���TW�
_�GZ�K	�M�&�Tz�U��T�� �"�U��U��T�_a(�"��U����T��V&�5�U��T��T��T��U��T��T��T��
H�GZ�G��U��T�a�GZ�T��U��Tb�GZ�L��
n�GZ�G[�U���Tu��L��
o�GZ�G[�K	�H�&�T�&�G��V�G_�G��V�L��
o�GZ�G[�K	�MZ&�T�&�G��V+�G_�G��V+�
k(�9�TW�
P�GZ�
Q�GZ�H+�
a�GZ�
b�GZ�U��M�&�&natlor�&s� ��VM�VQ�T��
P�GZ�
Q�GZ�H+�VC�T2�T��T��VY�T2�
n�GZ�T��VX�T��
o�GZ�L��
n�GZ�G[�H+�U��N��T����L��
o�GZ�G[�H+�V�M�T�&&�G��H+�V�H��G��H+�V�MZ�L��
o�GZ�G[�H+�V+�M�T�&&�G��H+�V+�H��G��H+�V+�MZ�PInfo�
e��decl�bitwise_diff�T0�T1�Tw�ldiff�T:�V��V�m�T>�V�&�V�&n�W�
t�V���V���m(�W�
u�V��u&�V��u&�n(�3�V���n(�9�TW�
R�GZ�
S�GZ�Tw��M�&�Uoe� ��V��Uo�T��
R�GZ�
S�GZ�Tt�Q.�K	�T��T��V��K	a�GZ�T��V��T}b�GZ�L��
y�GZ�G[�T}�H+�N��U���L��
z�GZ�G[�O��Q.�U�&�G��O��Q4�G��O��Q7�L��
z�GZ�G[�UI�Q.�U�&�G��UI�Q4�G��UI�Q7m(�W�
u�V��&�V��&��
w(�9�TW�
P�GZ�
Q�GZ�H+�
_�GZ�
`�GZ�Tw�N�&�&�&�VQs� ��W�VQ�V��
x(�9�TW�
a�GZ�
b�GZ�W�M�&�Tge� ��W�Tg���TW�
a�GZ�
b�GZ�U��Q.�&�Tz�W,�T�� �"�W-�W/�T�_a(�"��W)���T��W6&�5�W-�T��T��T��W(�T��T��T��W(�T��
y�GZ�T��W'�T�
z�GZ�L��
y�GZ�G[�U��V��Tu��L��
z�GZ�G[�V�Q.�T�&�G��V�Q4�G��V�Q7�L��
z�GZ�G[�V+�Q.�T�&�G��V+�Q4�G��V+�Q7�PInfo�
r��decl�bitwise_xor�T0�T1�Go�lxor�T:�Wz�W|m�T>�Wz&�W|&n�W�
�W���W���m(�W�
��Wz�u&�W|�u&�n(�3�W���n(�9�TW�
P�GZ�
Q�GZ�H+�
R�GZ�
S�GZ�Go��M�&�&natlxor�&s� ��W��W��T��
P�GZ�
Q�GZ�H+�W��Go�T��T��W��Goa�GZ�T��W��Go&b�GZ�L��
��GZ�G[�H+�W��N��W����L��
��GZ�G[�H+�G��M�G�&&�G��H+�G��H��G��H+�G��MZ�L��
��GZ�G[�H+�H9�M�H9&&�G��H+�H9�H��G��H+�H9�MZm(�W�
��Wz�&�W|�&��
�(�9�TW�
P�GZ�
Q�GZ�H+�
_�GZ�
`�GZ�Go�N�&�&�&�W�s� ��X�W��T��
P�GZ�
Q�GZ�H+�W��Go�T��T��X
�Go�
��GZ�T��X	�W��
��GZ�L��
��GZ�G[�H+�Go�M��W���L��
��GZ�G[�H+�Go�H�&�W�&�G��H+�X�G_�G��H+�X�L��
��GZ�G[�H+�Go�MZ&�W�&�G��H+�X+�G_�G��H+�X+�
�(�9�TW�
a�GZ�
b�GZ�W��M�&�W�e�T��XG�Go�T��T��XG�Go�
��GZ�T��XF�W��
��GZ�L��
��GZ�G[�X�N��W���L��
��GZ�G[�X�M�W�&�G��X�H��G��X�MZ�L��
��GZ�G[�X+�M�W�&�G��X+�H��G��X+�MZ�PInfo�
}��decl�bitwise_bitf�T�a�GZmb�GZn�T1���P���N�N����X��&�
��T��
��GZ�
��
��GZ�
��W�
��T1���N��&�OW�N�N��X�&��m(�W�
��T1���N���u�P�&�N�������X��u&�n(��X��P����X��X����X��X���X��X��X����� �"�X��X��'�u_a�"�T1���N���	Z�X��u�N�������X��	Z�u�X��X�&�X��X��X�&�u�5�X���:��u�I����X��X��P���X��X��� �"�X��X��'��_a�"�X��X��
,�X��X��X��
,�u�X��X��X��X�&�5�X���:����I�&��X��X���N�����X��X�� �"�X��Y�'�X�_a�"�X��X���X��X���X��Y�Y#�5�X��Y�P������Y�Y��N���&�X�� �"�Y�Y:�'�X�_a�"�X���N�����Y�Y#�YC&�Y#�5�Y�Y7�P���&��Y:�L����G_�G_s�TW�
P�GZ�
Q�GZ�H+�^�&�Y�Y6��TW���Y�Y6�X��YYs�Y_�&��Yd�&� �"�Y:�Ys�x�Y8�Yh��Y8�nat_bitwise���Y�Y6�Yh��bitwiseequations_eqn_1���Y�Y6��nat_bitwiseequations_eqn_1���Y�Y6�X��Yrb�GZ�
��GZe_1�G�����e_2�
���X��X����G��&�����N��&�X��X��G��X��X��Yq��X��Y|�&�Yq�Y��&�Y��&_x�GZh�G[���G_�G_&boolrec�
��GZ�
��G[��G_�G_&�Ns�TW�
P�GZ�
Q�GZ�H+�4�&�N�����N�������TW�
`�Y��Y��N�+���Ns�Y�������Y������
��G[�^�G_�G_�G_��L�s�TW�
P�GZ�
Q�GZ�H+�j�&�N��^���Y@����TW��Y��Y��N��^���L�s�Y�������Y������Y��Y��Z� �"�Z�Z�x�Y��Y�condequations_eqn_1�Y��Y��Z�Z�Y��Y��Y��G��Y��Z�Z�Z�Y��Z��Z��N��Y��Y��Z� �"�Z�Z&���Y�_a(�"�Y��Y��Y��f�Z-�5�Z�Z#natbitwise_bit���Y��G_�Z9� �"�Z9�Z9�5�Z9�Z:�G[�G_�G_� �Z<�ZC�Q�Y�_a�GZ�"�G[�
`�G_�G_�G_�G[&�G_�Z?�G_&�G��G_�^��������Z&�Z%�Z$� �"�Z&�Zc�'�Z_a�"��N��Y��Y��Z-�Zl&�5�Z&�Z$�P��Y��Y��3�Z$�
��Y���L��Y��Y��Y��L��Y��Z�Y��Y��Y�� �"�Z��Z��x�Z��Y��
�equations_eqn_2�Y��Y��Z��Z��Z�Z��Y��Z��Y��Z��Z�s�N��H+�Y��Y��Z�� �"�Z��Z����Y�_a(�"�Y��Y��Y��O�Z��5�Z��Z��Z7�Y���G[�H+�Y��G_�Z�� �"�Z��Z��5�Z��Z��G[�MZ�G_� �Z��Z��ZG_a�GZ�"�G[�H+�ZI�G_�Q!�G_�Z�&�G��MZ�^��������Z��Z��Z�� �"�Z��Z��'�Z�_a�"s�N��H+�Y��Y��Z��Z�&�5�Z��Z��Q�Y��Y��3�Z��&�YX�Ga�YXn(��X��P���X��X���X��[�X��X��� �"�[�[�X�_a�"�X��X���X��X���X��[ �X��X���5�[��X���[�Y�[�[� �"�[�[8�Y_a�"�X��[ �X��X���X��[ �[@�5�[�Y�Y0��[8�Ys�Q&�[� �"�[8�[T�'�[_a�"�YC�[ �[@�YI�[@�5�[8�[Q�Q��&��[T�L��YWs�TW�
P�GZ�
Q�GZ�H+�YZ�M�Y�[P��TW�
R�GZ�
S�GZ�[m�Y�[P�X��[ls�[q�&��[x�&� �"�[T�[��x�[R�[|��[R�L��[w�G_�G_s�TW�
P�GZ�
Q�GZ�H+�
R�GZ�
S�GZ�
`��M�&�Y�[P�[{�[|�[��Y{�[w�Y�[P�[��
�equations_eqn_2���Y�[P�Y��[w�Y�[P��GZ��GZe_1�G�����e_2�
����e_3�
���L��^���L����������&�[��[������G��T/�^���L�����&�YW�H��[k���GZ���GZe_1�G����GZ���GZe_2�G��G��4���4�����G��4��&�G_�G_�ZW�H�bnotequations_eqn_1�[t�[t�3�[t�[{�[{�3�[{�[�[��Y��[�[���[�[�s�[��&�[��[��[��[��&�[��[��&�[��&�[��[��[��3�[��[��[��3�[�_x�GZh�G[�Y�&�Y��
��GZ�
��G[�Y�&�Ns�TW�
P�GZ�
Q�GZ�H+�Y��M�Y��N��H+������TW�
R�GZ�
S�GZ�\ �Y��\(�Y��Ns�\$������\.�����
��G[�Y��G_��L�s�TW�
P�GZ�
Q�GZ�H+�Y��M�Y��N��H+������TW�
R�GZ�
S�GZ�\D�Y��\L�Y��L�s�\H������\R�����\U�Y��\^� �"�\a�\e�x�\V�\U�Z�\N�\U�\`�\d�Z�\_�\^�Z�\Z�\^��\e��N��Y��H+�\J�\]�\d� �"�\e�\����\T_a(�"�\1�Y��\:�f�\��5�\e�\}�Z7�\Q��G[�Y��H��G_�\�G_� �"�\��\��G��\��\���GZ���GZ�
��G����GZ���GZ�
��G��G������������G�����&�G_�G_�ZW�H��[��G_�G_�ZW��\��ZC� �"�\��ZC�Q�\_a�GZ�"�G[�ZH�G_�ZN�5�\��G_&�ZW�^���\J����\��\��Z"�\]� �"�\��\��'�\d_a�"��N��+�H+�\&�\9�\��\�&�5�\��\��Zv�\]��\��\��\�� �"�\��\��Q�\z_a�GZ�"�\���Zi�\9��N��+&�\9�\��5�\����J����3�\��
��\B��L��\N�\U�Y��L��\Z�\^�\N�Y��\Z� �"�]�] �x�]�\N�Z��\N�\U�]�]�Z�]�\Z�Z��\Z�\^��] s�N��H+�\{�\Y�]� �"�] �]:���\M_a(�"�\*�Y��\6�O�]A�5�] �]7�Z7�\G��G[�H+�\��G_�G[�H+�\�G_� �"�]N�]R�G��]L�]P�H��\��\�\��G_�G_�ZW��]R�Z�� �"�]R�Z��\�_a�GZ�"�G[�H+�\��G_�Z��5�]R&�Z��^���\J����]:�]9s�Z��\Y� �"�]:�]��'�]_a�"s�N��H+�\��\5�]A�]�&�5�]:�]��Z��\Y��]��]��]�� �"�]��]��\�_a�GZ�"�]�s�Z��\5s�N��H+�\��\5�]��5�]����]
�3�]��&�[k�Ga�[km(�W�
��X��X���X��X��X��&��
�(��]��X��X��]����]��X��X��]��� �"�]��]��X�_a�"�X��X��
��X��X��X��
��u�]��X��X��]�&�5�]���Y��]��]��Y7�]�� �"�]��]��Y?_a�"�]��Y�X��]���]�&�^�5�]��Y7�YR��]��X�s�N��H+����Y7�]�� �"�]��^�'�]�_a�"�]���N�����^�X��^$�^�5�]��^�Q�����^�L����G_s�TW�
P�GZ�
Q�GZ�H+�^�N�&�^�Y6��TW�
_�GZ�
`�GZ�^<�^�Y6�X��^:s�^@�&��^G�&� �"�^�^V�x�^�^K��^�L��^F�G_�G_s�TW�
P�GZ�
Q�GZ�H+�
_�GZ�
`�GZ�
`�N�&�&�^�Y6�^J�^K�^]�Y{�^F�^�Y6�^o�
�equations_eqn_3���^�Y6�Y��^F�^�Y6�[����H��G_�^9�[��H��[��G_�G_�ZW�^C�^C�3�^C�^J�^J�3�^J�]��^U�Y��]��^T��]��^`s�^j�&�^S�^T�^��^r�&�^��^x�&�^|�&�^��^O�^O�3�^O�^S�^S�3�^S_x�GZh�G[���G_&�Y��
��GZ�
��G[��G_&�Ns�TW�
P�GZ�
Q�GZ�H+�4�N�&�N��H+����Y���TW�
_�GZ�
`�GZ�^��^��Y��Y��Ns�^�������^������
��G[�^�G_�G_��L�s�TW�
P�GZ�
Q�GZ�H+�j�N�&�N��H+�^���Y���TW�
_�GZ�
`�GZ�^��^��Y��Y��L�s�^�������^������^��Y��_� �"�_�_
�x�^��^��Z�^��^��_�_	�Z�_�_�Z�^��_��_
��N���H+�^����_�_	� �"�_
�_&���^�_a(�"�^��Y��^��f�_-�5�_
�_#�Z7�^���G[��H��G_�G_�^��G_� �"�_;�_=�G��_9�^��\��H��[��G_�G_�ZW�G_�G_�ZW��_=�ZC� �"�_=�ZC�Q�^�_a�GZ�"�G[�
`�G_�G_�ZN�5�_=�G_&�ZW�^���������_&�_%��Z"�_� �"�_&�_q�'�_	_a�"��N��
`�H+�^����^��_-�_}&�5�_&�_p�Zv�_��_q�_p�_p� �"�_q�_��Q�__a�GZ�"�_}��Zi�^���N��
`&���^��_��5�_q�^�J��^�3�_p�
��^���L��^��^��Y��L��^��_�^��Y��^�� �"�_��_��x�_��^��Z��^��^��_��_��Z�_��^��Z��^��_��_�s�N��H+�_!�^��_�� �"�_��_����^�_a(�"�^��Y��^��O�_��5�_��_��Z7�^���G[�H+�_9�G_�G[�H+�^��G_� �"�_��_��G��_��_��H��_9�^��_I�G_�G_�ZW��_��Z�� �"�_��Z��_U_a�GZ�"�G[�H+�_W�G_�Z��5�_�&�Z��^���������_��_�s�Z��^�� �"�_��`�'�_�_a�"s�N��H+�_y�^��_��`%&�5�_��`�Z��^���`�`�`� �"�`�`5�_�_a�GZ�"�`%s�Z��^�s�N��H+�_��^��`;�5�`�^�_��3�`�&�^9�Ga�^9�
�(��]��[�X��]���^�[�`d� �"�`e�`i�^!_a�"�]��[ �X��]���[D�`q�5�`e�^�^3��`i�^�[Q�`d� �"�`i�`��[Y_a�"�X�s�\K��[ �`q�`�&�`q�5�`i�[Q�[f��`��L��^8s�TW�
P�GZ�
Q�GZ�H+�^;�M�^�[P��TW�
a�GZ�
b�GZ�`��^�[P�X��`�s�`��&��`��&� �"�`��`��x�`�`���`�L��`��G_�G_s�TW�
P�GZ�
Q�GZ�H+�
a�GZ�
b�GZ�^a�M�&�^�[P�`��`��`��Y{�`��^�[P�`��
�equations_eqn_4���^�[P�Y��`��^�[P�[��^��H��`��^��H��[��`��`��3�`��`��`��3�`��`d�`��Y��`c�`���`c�`�s�`��&�`��`��`��`��&�`��`��&�`��&�`��`��`��3�`��`��`��3�`�_x�GZh�G[�^�&�Y��
��GZ�
��G[�^�&�Ns�TW�
P�GZ�
Q�GZ�H+�^��M�^��\(��TW�
a�GZ�
b�GZ�a�^��\(�Y��Ns�a������a&�����
��G[�^��G_��L�s�TW�
P�GZ�
Q�GZ�H+�^��M�^��\L��TW�
a�GZ�
b�GZ�a<�^��\L�Y��L�s�a@������aG�����aJ�Y��aS� �"�aV�aZ�x�aK�aJ�Z�aC�aJ�aU�aY�Z�aT�aS�Z�aO�aS��aZ��N��_ �\z�aR�aY� �"�aZ�at���aI_a(�"�a)�Y��a2�f�a{�5�aZ�aq�Z7�aF��G[�_8�H��G_�a�G_� �"�a��a��G��a��a�_F�H��[��G_�G_�ZW��a��ZC� �"�a��ZC�Q�a_a�GZ�"�G[�_V�G_�ZN�5�a��G_&�ZW�^����\J����at�as��Z"�aR� �"�at�a��'�aY_a�"��N��_x�\��a1�a{�a�&�5�at�a��Zv�aR��a���\|�aR�a�� �"�a��a��_�_a�GZ�"�a���Zi�a1��N��_��\��a1�a��5�a��^�_���a��a��a�� �"�a��a��\�_a�GZ�"��\��a1�a���\��a1�a��5�a����]
�3�a��
��a:��L��aC�aJ�Y��L��aO�aS�aC�Y��aO� �"�b�b�x�b�aC�Z��aC�aJ�b�b�Z�b�aO�Z��aO�aS��bs�N��H+�ao�aN�b� �"�b�b4���aB_a(�"�a"�Y��a.�O�b;�5�b�b1�Z7�a?��G[�H+�a��G_�G[�H+�a�G_� �"�bH�bL�G��bF�bJ�H��a��a�a��G_�G_�ZW��bL�Z�� �"�bL�Z��a�_a�GZ�"�G[�H+�a��G_�Z��5�bL&�Z��^����\J����b4�b3s�Z��aN� �"�b4�b{�'�b_a�"s�N��H+�a��a-�b;�b�&�5�b4�bz�Z��aN��b{s�]6�aN�bz� �"�b{�b��_�_a�GZ�"�b�s�Z��a-s�N��H+�a��a-�b��5�b{�^�_���b��bz�bz� �"�b��b��\�_a�GZ�"s�]��a-�b�s�]��a-�b��5�b����]
�3�bz�&�`��Ga�`��PInfo�
���ATTR����
�decl�lor_bita�GZmb�GZn�T5�X��N�N�T2����T5�&�
��GZ�
��
��GZ�
���b��T3�X��N�b��T3�&� �"�b��b��&�T/�T5_a�T/�"�T5�X����OW�N�T2����T5���&�b��OW�c&����5�b��T3�9�T/�T3�T5�bitwise_or��b��b��b�� �"�b��c"�'�b�_a�"�T3�b��OW�c�T3������c-�5�b��b��bitwise_bit�T2����&�3�b��PInfo�
���ATTR����
�decl�land_bita�GZmb�GZn�U��X��N�N�K	����U��&�
��GZ�
��
��GZ�
���cP�U��X��N�cL�U��&� �"�cP�c\�b��U�_a�T/�"�U��b��OW�N�KX��U�����c
�cf�c�5�cP�U��c�U��U��bitwise_and��c\�c[�c[� �"�c\�c}�'�cW_a�"�U��b��OW�cf�U�������c��5�c\�c[�c7�K	����&�3�c[�PInfo�
���ATTR����
�decl�ldiff_bita�GZmb�GZn�V��X��N�N�cJ�N��V��&�
��GZ�
��
��GZ�
���c��V��X��N�c��V��&� �"�c��c��b��V�_a�T/�"�V��b��OW�N�KX�O�V�����c
�c��c�5�c��V��c�V��V��bitwise_diff��c��c��c�� �"�c��c��'�c�_a�"�V��b��OW�c��V�������c��5�c��c��c7�Tw����&�3�c��PInfo�
���ATTR����
�decl�lxor_bita�GZmb�GZn�W|�X��N�N�Go����W|�&��GZ���GZ���d�Wz�X��N�c��Wz�&� �"�d�d�b��W|_a�T/�"�W|�b��OW�N�G���W|����c
�d�c�5�d�Wz�c�Wz�W|�bitwise_xor��d�d�d� �"�d�d0�'�d
_a�"�Wz�b��OW�d�Wz������d;�5�d�d�c7�Go����&�3�d�PInfo���ATTR����decl�lnot_bitb�GZn�lnot�N�N�N��dT&�
�GZ��W��dT�P��N�O�dX&�(�
��dT�P��d_�dT���di��� �"�di����di��P��P����dps�P��du�dr�x�de�du��de�dT�P��du����e_1�
�'�dT&�P��P��P���lnotequations_eqn_1�P��dh�du��dhs�N��Q&�du�d��d_��d��Y��O�O�G��O�dg��d�&�Q�O&�_(�_(e_1��;s&�d��P�b�GZ��GZe_1�G�a(�(e_2����Y�^"���G��������N���&�Q��J��&&�
�&�B}�P��P��W�dr���Y�P��[�(�
��dT�P��d_�dT���d���� �"�d�����d���P��P����d���P��d��d��x�d��d���d��dT�P��d��d��P��P��Q�equations_eqn_2�P��d��d���d��d_��d��d��d���d�&�P��O&�W�d��d����P��P��W�d����Y�P��[�PInfo�	��ATTR����	decl�test_bit_bitwisef�T�mnk(�G[�P��T1����&���P��&�P��&��T����(���(���G[�P��X��&����e(��QD���bit_cases_on��G[�P��X�&������P����e(���a�GZm'�e=��G[�P��T1�^�OW&���^�P��OW���eC�b�GZn'��G[�P��T1��X��N����P��X����P����G[�P��N�����eY�&���ec� �"�ed�eo�'�e[_a�"�G[�P��T1�
`�b��OW���
`�P��b����eR�G[�eC�e~�5�ed�ek�c7�����&��eo��� �"�eo����eo�G[�eg�eg���G��em�eg�G��em�el��eg����e_1�
��(��(e_2��~�GZ�P����P��������(�GZ�����P���&�ek�ek�3�ek����F�	\�eg�ej�ec�eg�\��e`���G��e`�e_����e��X��X��3�X�����F�e�����eb��G��eb�P���e��N�N�3�N����F�e��&�W�e����H�eg�[k(IH�e:���e=��G[�P��eK&��	w�^�Qd�e(�	w���GZ��e=��G[�P��eu�OW&���
`�eQ���P����� �GZ�!��G[�P��T1�j�X��N�&��j�e_�&��P��&��G[�P��N�j����f�&�&��f� �"�f�f*�'�f_a�"�G[�P��T1�4�b��OW��^�4�e{�f4�eQ�f4�G[�P��f4�f:�5�f�f&�c7�j����&��f*��� �"�f*����f*�G[�j�e%���P����fW���G��f(�fW�G��f(�P��f%���fW�	h���f"�f%���&�f�fW���GZ���GZe_1�G����GZ���GZe_2�G��G��5����5������G��5���&�f�fT�fd����f�fV�fd�&�W�fY���H�fW�[&���PInfo���ATTR����decl�test_bit_lormnk(�G[�P��b��&�T2�e&�e)�+�,�-(��f��G[�P��b��&�f�� �"�f��f��b�_a�T/�"�G[�P��c���T2�P�����e%��G[�P��c���f��5�f��T3�c��f��G[�f��f�� �"�f��f��Q�f�_a�GZ�"�G[�P��c+���f��ZM�f��5�f��f��test_bit_bitwise�T2��&�G��f��PInfo�*��ATTR����*decl�test_bit_landmnk(�G[�P��cM�&�K	�e&�e)�2�3�4(��f��G[�P��cY�&�f�� �"�f��g�ca_a�T/�"�G[�P��cg���K	�f��f��f��g�5�f��U��cw��g�G[�f��f�� �"�g�g�Q�g_a�GZ�"�G[�P��c����g�ZM�g�5�g�f��f��K	��&�G��f��PInfo�1��ATTR����1decl�test_bit_ldiffmnk(�G[�P��c��&�f��H+�e)�8�9�:(��gC�G[�P��c��&�gB� �"�gC�gL�c�_a�T/�"�G[�P��c����g
�H+�f��f��gV�5�gC�V��c���gL�G[�gB�gB� �"�gL�ge�Q�gJ_a�GZ�"�G[�P��c����gV�ZM�gV�5�gL�gB�f��Tw��&�G��gB�PInfo�7��ATTR����7decl�test_bit_lxormnk(�G[�P��d�&�Go�e&�e)�>�?�@(��g��G[�P��d�&�g�� �"�g��g��d_a�T/�"�G[�P��d���Go�f��f��f��g��5�g��Wz�d*��g��G[�g��g�� �"�g��g��Q�g�_a�GZ�"�G[�P��d9���g��ZM�g��5�g��g��f��Go��&�G��g��PInfo�=��ATTR����=decl�test_bit_lnotnk(�G[�P��dT�&�gA�D�E(�W�D�G[�P��dX��H+�P����D(�
��G[�P��dg��H+�QR���g���� �"�g�����g��G[�H+�Q���g����G��g��g��G��g��Qz��g��e��dg��d����H|��test_bitequations_eqn_2&��g��g��H��g��g��Fequations_eqn_1&��W�g����H�g��[�D(�
��G[�P��d���H+�g���h��� �"�h����h�G[�g��g����G��h�g��G��h�g��g��e��d���e���H|�h�h�g��G��h�H+�g��g��H��g��g��g��J��g��W�h$���H�g��[�PInfo�C��ATTR����Cdecl�shiftl_addmn(k�shiftl���&�hP�hQ�&�L�M(�N�W�L�hP&����hP�h\�
,���L(�W�N�hP�u���&�hP�hg��&��N(�
�e��shiftl��	D&e�hs�ht��&�9�hv�h{enatshiftl_add���&�N(�
�n(k(i�hP��&�natshiftr�hs��������s����	>����h�i(n(�9�hs����h��h��	�&����h��h��h��h����	�&� �"�h��h����h�_a(�"��h��h��h��	���h�&�5�h��h��	��h��h�natshiftl_sub���	�&�	�&���h��h��h�� �"�h��h����h�_a(�"�h��h����	���h��h�&�5�h��natadd_sub_cancel_left&��
��h�i(n(�9�h�����h��h�&�	�����h��h��h��h��	�&�	���� �"�h��h����	��h����_a(�"��h����	M�h��h�����	����i	�i&�5�h��h��	�&�����h��h��h��h�&�h�� �"�h��i#���h����h�_a(�"�i	�i�	��	����i	&�5�h��i"natshiftr_add�h�&�h���i#�h��h��h��J&�h�� �"�i#�iC���i _a(�"�i	�h��i��i+�i	�h�&�i+�5�i#�i@�	��i@�i �h�&&�	&��iC�h��h��h���h�� �"�iC�ie���i?_a(�"�i	�h��h��W��i+�i	�h��h��i+�5�iC�natsub_self&�
��h��L(�W�N�hP��hi�hP�i���&��N(�
�s��shiftl'��hus�i��i���&�9�i��i�snatshiftl'_add���&�N(�
�n(k(i�hP��&s�h��i���������h��h��i�i(n(�9�i�����h��i��	�&s���i��i��i��i��h�� �"�i��i����i�_a(�"��i��h��i��	���i�&�5�i��i��	��i��i�natshiftl'_sub���	�&�h���i��i��i�� �"�i��i��h�_a(�"�i��i��h��i��i�&�5�i���h��
��i�i(n(�h��h��i�&�	�s��h��j�h��j�h�� �"�j�j�i_a(�"�i	�h��i���i
�i	�j&�5�j�h��i��j�h��h��j&�h�� �"�j�j'���j�i(_a(�"�i	�j�i,�i0�5�j�j&�i7�j&�h���j'�h��h��i��i?�h�� �"�j'�jA���j$_a(�"�i	�h��j��i+�iP�5�j'�j>�	��j>�j$�i�&&�i[��jA�h��h��i���h�� �"�jA�j_�ij_a(�"�i	�h��i��ik�i+�i	�h��i��i+�5�jA��i{�i�PInfo�K��decl�shiftl_submn(k�hQ�e&�shiftr�hU&�}�~(��shiftl_add���#��PInfo�|��decl�shiftl_negmn�hP��g�j��&�����j��PInfo����ATTR�����ATTR�����decl�shiftr_negmn�j��g�j�&������j��j����j�� �"�j��j��'�j�_a�"�j�����hQ����j��5�j��j��:�j��j��shiftl_neg��g��j��j��j�� �"�j��j���_a�"�hQ���j��hQ&�j��5�j�&���3�j��PInfo����ATTR�����decl�shiftl_coe_natm(n(�hP����ht&��(��(�j��PInfo����ATTR�����ATTR�����decl�shiftr_coe_natm(n(�j�����h��&��(��(�
���(�j��
,���h��&&�3�j�����(�3�j���PInfo����ATTR�����decl�shiftl_neg_succm(n(�i��s�i�&��(��(�k	�PInfo����ATTR�����ATTR�����decl�shiftr_neg_succm(n(�j���s�j���(��(�
���(�j��
��s�j�&�3�k����(�3�k��PInfo����ATTR�����decl�shiftr_addmn(k(�j��r�j��j�������(��(�W���j�&����j��k4�
,����(�
��j���k5�j��k?�
,���kE�kA�j���iN��� �"�kE�kL�'�kB_a�"�j��hh�
,�j��j����
,�kT�k8�5�kE�kI�shiftr_coe_nat&���kL�kA��h��kH�� �"�kL�kk�'�kK_a�"�kT�j���j����
,�kT&�5�kL�kj�ka�kH���kk�k?��
��kj� �"�kk�k��'�k5_a�"�kT��h��kq��j�&�k��5�kk�k��:�k��k5intcoe_nat_add����k���iN�
��kj� �"�k��k��'�k�_a�"�j���	D��k����k��5�k��k��kb�
���k��kj�kj� �"�k��k����k�_a(�"��j��k��k��f�k��5�k��ki�i7&���3�kj��(�
��j���k5�j��k��
,���k��k��j�s�kH�� �"�k��k��'�k�_a�"�k�kR�j��k���
,�k��k8�5�k��k��shiftr_neg_succ&���k��k�s�ki� �"�k��l
�'�k�_a�"�k��j�s�kq�
,�k�&�5�k��l	�l�kH���l
�k��k��l	� �"�l
�l$�k�_a�"�k�s�k��k&�l)�5�l
�k��k���l$s�k��l	� �"�l$�l;�'�l"_a�"�k�k��l)���l)�5�l$�l9�l�
���l;�l	�l	� �"�l;�lR�k�_a(�"s�k��l)�O�l)�5�l;�ki�k��3�l	�PInfo����decl�shiftl_eq_mul_powmn(�j�����>��L�&����(�W���h\��
���ls����(�
���hs&���(��l|�9�l��l��natshiftl_eq_mul_pow&���(�
�i(�;���i�&����l��
����l|�9�l��l��l�natshiftl'_tt_eq_mul_pow&��PInfo����decl�shiftr_eq_div_powmn(�j���
��lu����(�W���k4��
��l}���(�
��k?��
��l}��l���iN��l�� �"�l��l��'�l�_a�"�j��
,�
��ls����l��5�l��l��kb��9�l��{�l|�natshiftr_eq_div_pow&���(�
��k���K�l}��l�s�l��l�� �"�l��l��'�l�_a�"�k�
,���l����l��5�l��l��l���l��l����l��+� �"�l��m
�'�l�_a�"s�j���l��m&�5�l��m	�neg_succ_of_nat_div&�l}�6�l|natpos_pow_of_pos�L���-��L��decidable_lt��L��[��m
s�l��m	� �"�m
�m3���l�_a(�"�m���l��+�O�m;�5�m
�l��l��3�m1�PInfo����decl�one_shiftln(�hP�+��lu��(�9�hs��&�lt�natone_shiftl&�PInfo����decl�zero_shiftln�hP&���W���mb&��(�
���hs�&��9�mh��natzero_shiftl&��(�
���h�����9�mw��natzero_shiftr��PInfo����ATTR�����decl�zero_shiftrn�j�&���zero_shiftl�g�PInfo����ATTR�����decl�exists_least_of_bddP��HPdecidable_pred&Hbdd�
6bz�����<�Hinh�m�z���m�lb�C���&z�����m��������m����m����m�_a�m����m��%���������&�m����m��m��m����C��m�������&�m�&����m��
��m����C��m������^&�m�
EX�
7n(���?�
�1x���C��m������&�m��?�natfind��(�^�Z�a(���m�&andintro���m������m������m���(�
`�!����(��m���natfind_spec�m��m�&zh�m�_a_a�
7n(�8z��_a�Y��
<��(��������
7�m������m���(�������(�<�m��������(h_1�m��
Q�m��t_1����
`�
,&H_1�
X�H_2�
W���������n�����<��m���(�&�������(�&��n�j�^��&���h����'��
`�
,�����5&���n����
W�n�
F�&�n4�n3�3�n3��n��m���(������(�&��n>�4�������n/����j����j�����
W�n��4��&�n�n�3�n�
������<�n �n_�
Fadd_le_add_left���n �
F����n �
F��n�����n��natfind_min'�n�n�j����<���:���n/&����6��
��n��&��ledest������&&Annot��Annot��_a�m����m��%����m����m��n��
7��(����&����m��
�_a�
7��(�m���
7��(�j�m��n�_a���m�_a�Y��m����m��
7�m����(��m��nt_1��nH_1�n
H_2�n�
7�n��&���n-�n0�����n1��n2���n;�
7�n@���nO��nU���n^�
��n��.��n������n�����6��n���n�&����PInfo����decl�exists_greatest_of_bddP��HP�m�Hbdd�m�bz�����s�Hinh�m��m�ub�m�z�����n��������m����n����m�
Hbdd'�m�bz�����g�m�

Hinh'�m�z�o
_a�m����C�����g&������^�g&�m��%����C��o�������g&�m���m��o!�m����m������m��n�&����o ��dcases_on�o�������
`�g&�<����C��o-�o4�m����C��_������j&�n�&h_left�^��h_right������j�g&�?���
��m����C��o9�����4&�n��1x�oN���m��
`�������o9�s���zh�o9�������������o[��Mle_neg�^�����o]��4��o]�Y�� �"�ok�Y��'���"�_a�"�<�����<&�5�ok����&�exists_least_of_bdd����g���o�&Annot��Annot��_a�m�z���%���m��
�m��o��m��o&����m��
��m��o�1x�o����������� �"�o��o��or_a�"�^��
��m��5�o���o~&�Annot��Annot��_a�m����n��%��������m��n���m��o��m������o�m�&����o��
��m������o�m��1x�o���zh�o���o[�o]���o[�����neg_le�^������&��PInfo���
decl�nat_cast_eq_coe_natn(���natcast_coe�*�&��(�brec_on�(�p&�(_F�below�p	&�(��p�
��(��p�p�����p
���
��p��p�p�(��p
��
��M��p�M���%�p��M�pprodfst�p	�+�����rec�f(�%
punit�e(ih�%
pprod� �p	�&�p0�p*��p3�p+�p<�p0&&�&�PInfo��ATTR����decl�cast_mainu_1α�#_inst_1has_neg+&_inst_2has_zero+�_inst_3has_one+�_inst_4has_add+�������$�pS�%�pU�'�pW�)�pY�+�p[���,����&��(�,��coe,(��coe_to_lift,(���,(��natcast_coe+�������&��(�pg�+�����+����py�w+�����PInfo�"�&VMR�"VMC�"�&���+�)�'�%�$�
�/cast_main�2decl�"equations_eqn_1�#�$�pS�%�pU�'�pW�)�pY�+�p[n(�����"�#����������pi���pl���po���pq������&�$�pS�%�pU�'�pW�)�pY�+�p[�5(�����],���p��PInfo�4�&ATTR����4EqnL�4decl�"equations_eqn_2�#�$�pS�%�pU�'�pW�)�pY�+�p[n(�p��p���p}�����p�����p��p�����$�pS�%�pU�'�pW�)�pY�+�p[�8(�p��p��p��PInfo�7�&ATTR����7EqnL�7decl�cast�#�pa�$�pS�%�pU�'�pW�)�pY�+�p[�p�������&�PInfo�9�&prt�9VMR�9VMC�9�&�+�)�'�%�$�"doc�9Canonical homomorphism from the integers to any ring(-like) structure `α`decl�9equations_eqn_1�#�$�pS�%�pU�'�pW�)�pY�+�p[�5(�p��9�#����������p��$�pS�%�pU�'�pW�)�pY�+�p[�"equations_eqn_1.������&�PInfo�;�&ATTR����;EqnL�;decl�9equations_eqn_2�#�$�pS�%�pU�'�pW�)�pY�+�p[�8(�p��p���p��$�pS�%�pU�'�pW�)�pY�+�p[�"equations_eqn_2.������&�PInfo�?�&ATTR����?EqnL�?decl�9_sunfold�#�pa�p��PInfo�B�&decl�cast_coe�#�$�pS�%�pU�'�pW�)�pY�+�p[has_coe,���$�pS�%�pU�'�pW�)�pY�+�p[has_coemk,���p�������&�PInfo�C�*prt�CVMR�CVMC�C�*�+�)�'�%�$�"decl�Cequations_eqn_1�#�$�pS�%�pU�'�pW�)�pY�+�p[�,�q�C�#������&�q�$�pS�%�pU�'�pW�)�pY�+�p[�/�q�q'�PInfo�H�*ATTR����HEqnL�HSEqnL�CATTR�
�Cclass�D�C
decl�cast_zero�#�$�pS�%�pU�'�pW�)�pY�+�p[�����ph���pk���pn���q'�+����$�pS�%�pU�'�pW�)�pY�+�p[rfl,���qA�PInfo�I�,ATTR����IATTR����IATTRsquash_cast���I�decl�cast_of_nat�#�$�pS�%�pU�'�pW�)�pY�+�p[n(�p��q8���q:���q<���q"�����������p��$�pS�%�pU�'�pW�)�pY�+�p[�M(�qL���q_�PInfo�L�.ATTR����LATTR����Ldecl�cast_coe_nat�#�$�pS�%�pU�'�pW�)�pY�+�p[n(�p��q^��p��$�pS�%�pU�'�pW�)�pY�+�p[�O(�qh�qp�PInfo�N�/ATTR����NATTR����NATTR�K���N�decl�cast_coe_nat'�#�$�pS�%�pU�'�pW�)�pY�+�p[n(�p��q^�p�p��$�pS�%�pU�'�pW�)�pY�+�p[�Q(��q���� �"�q�����q��p��p��p�����������e_1�����&���^���e_2���
`�&��,�j�!���j���q�������,,�j���j�!�����q���&�q��p���,���q��qp�p�����,������e_2�
��,����q8���&�q]�p��&�N+��������&�p��p��p��p��W�q���eq_self_iff_true,���p��[�PInfo�P�0ATTR����Pdecl�cast_neg_succ_of_nat�#�$�pS�%�pU�'�pW�)�pY�+�p[n(�p��q^��p��$�pS�%�pU�'�pW�)�pY�+�p[�W(�qh�q��PInfo�V�4ATTR����VATTR����VATTR�����V�decl�Vreversed�#�$�pS�%�pU�'�pW�)�pY�+�p[�W(�p��p��q��$�pS�%�pU�'�pW�)�pY�+�p[�W(eqsymm,���q��p��q���������&�PInfo�X�4ATTR�����V�decl�cast_one�#�$�pS_inst_1add_monoid+&_inst_2�pX�_inst_3�pT������q8���q:���q<���q"��&��+������+����+����+�p�����$�pS�\�r�^�r�_�rnatcast_one+�����PInfo�[�8ATTR����[ATTR�K���[�decl�cast_sub_nat_nat�#�$�pS_inst_1add_group+&_inst_2�rm(n(�q7�q9�q;�q=�q#��to_has_neg+�����r"����+������r'���r)���rK�Gl��+����+�����pi���pl���po���pq���rL��rR��rh&�$�pS�c�rC�e�r�f(�g(��rm�q7�rV�B,�&�J��rl� �"�rm�rz��������e_1�����&�������^e_2����&�q��
`�!�q����q������q��
`���
`�!�����q���&�rW�rx���q���a�ke_2�
�q��^���q8�^��&�rU�Gl�rw�B8�&�rl�rl�����rl_x(e�B!&�
��m(�n�������&���^�r��q:�^�q<�^�q"�^�rD�^���r"�^�rI�^�����r'�^�r)�^�r��B,������rY�^�r[�^���pi�^�pl�^�po�^�pq�^�r����r����r�����n���������q��q8���q:���q<���q"���rD�����r"���rI�������r'���r)���r��B,�������rY���r[�����pi���pl���po���pq���r����s���s����� �"�s����s�q��s�s���s#�q��p����s�s�p}���r��s�s.�s%�������^�i�r����
`���j�j���4�&�q��<�!���<���s8�����q��<���<�!�����s8��&�s	�s.�q����s	�s�s.�sQ�s�����s�sQ�s��sT�sU���q����k�k�l�
�q��j���q8�j��&�s�s�sX��se�sT�sX�sk�s��sl�B]�����
��������
�������F�B������+�sT�q����r��r����s�sT�/cast_sub+�������������	������T�s�natle_of_sub_eq_zero����&trueintro�+�����s�s�s�s.�s��W�q��s(�r���+��add_groupto_right_cancel_add_semigroup+�����s�s-�s��s%��+���s��s-�s�s�W�s%���q����s�[n_1(�n�r����r��r��r���r��r��r���r�� �"�s��s��'�s�_a�"�r��q��q:��q<��q"��rD��^�r"��rI��^���r'��r)��s��B,�����	M�rY��r[��^�pi��pl��po��pq��s����s����t���r��s�&�t�5�s���Br�������s��r��p}�^�r��p��^�r��r���p��^���r�� �"�s��t&�1+�^�s�_a�^�"�r��s��
��t�r�&�t�5�s��t$�cast_neg_succ_of_nat+�^�r��r����r����t&�r��t�r���r�� �"�t&�tH�t,�t#_a�^�"�r��p}��s��p���s��t��p�����t�r��tO&�t�5�t&�tE�r�^�tE�t#natcast_succ+�^�r����r����tH�r��t�r������r�� �"�tH�tv���_a(�"�r��tO�t�	M�t�r��tO�t&�t�5�tH�tr�	��tr�&��tv�r��t�r��r��r��r�� �"�tv�t��t,�ts_a�^�"�r��tO�t�E���t�t]�5�tv�t��s��^��������le_of_lt(�	
����natlt_of_sub_eq_succ�����&��t��r��r��r�� �"�t��t��t,�t�_a�^�"�r��tO�s��t�t�t�t3�5�t��r�neg_sub+�^���r��r����^�r�&�rv�
7�rv�PInfo�b�:ATTR����bATTR�����b�decl�breversed�#�$�pS�c�rC�e�r�f(�g(�q7�rl�rW�$�pS�c�rC�e�r�f(�g(�r���rW�rl�t�������&�PInfo���:ATTR�����b�decl�cast_neg_of_nat�#�$�pS_inst_1�rC_inst_2�rn(�r�r�r�r�r �rD����r#�rI�����r(�r*�u�
��p}���u�pi���pl���po���pq���u	��u
&�$�pS���rC���r��(�
���(�q7�rV�
��p}���rF�rk&�
��r�qC���u	�u�u1�r���u3�u1neg_zero+�����(�
��q7�rV�
���u@�qM�u@�PInfo���BATTR�����ATTR�������decl��reversed�#�$�pS���rC���r��(�r�u!�u�$�pS���rC���r��(�u6�u�u!�uK����&�PInfo���BATTR�������decl�cast_add�#�$�pS_inst_1�rC_inst_2�rmn�q7�rV��p����rR�rV��rV&�$�pS���rC���r�����W���p��qT�qU�qV�qW�rD�����r"���rI�������r'���r)���up�X�p��uw�u{&�u{����(�W���r�q8���q:���q<���q"���rD�����r"���rI�������r'���r)���u��a�p��u��u��u�u�&���(�
��r�pj�pm�pp�pr�u����u��u�u��u���u�&natcast_add+���u����&��(�
��r�u��J"�rY���r[�����u��u���cast_sub_nat_nat+����������(�W���r�u��
D�u��u���u����(�
��r�u��Jv�u��u���q����u��u��u��u���u��u�&�sub_eq_of_eq_add+�����u��u��u�
��r�u��u��u��p~�u��u��p����u��u�&��u��u��u��u��u��u�� �"�u��v�t+���u�_a���"�q��s��s)�s)�s,�s)�s��p������v	�v�v
&�5�u��vadd_assoc+���u��u��u��u���v�u��u��u��u��u��u�� �"�v�v,�v�u�_a���"�v
�v�s)�v	�v�v
�s)�s,&�v2&�5�v�u��r���u��u��tg���u����u����v,�u��v)�u����� �"�v,�vR�v�v*_a���"�v
�s)�s,�s�	M�v2�vX�v
�vZ&�5�v,�vP�vB�vP�v*�u�&���vR�u��v)�u��	i�&� �"�vR�vt���
��_a(�"�v
�vZ�s���	M�v
�vZ�s&�5�vR�vq�G����vt�u��v)�u��u��u�� �"�vt�v��v�u��
n_a���"�v
�vZ�s�	i�	M��v`�5�vt�v��u��&��v��u��u��u��u��u�� �"�v��v��v�u�_a���"�v
�vZ�s)�vX�v	�v
�v8�s)&�v	�5�v��u��vI��v��u��u�� �"�v��v��v�v�_a���"�v
�v�s)�v�v	�v�5�v��u�neg_add_cancel_left+�����u��u������u�Annot���(�
��r�u��u����Hc���u��u��u��u�
��v�&��v��v��u��u��v��u�� �"�v��v��v�v�_a���"�q��s,�s�����
������v�s,�v2�v�w
&�5�v��v��vB�v��v�neg_add_rev+�����v��u���v��v��u��u��u����u�� �"�v��w'�v�v�_a���"�w
�s,�s)�w�v�w
�s,�v��v�5�v��w#�vB�w#�v�natcast_add_one+���u����u�&��w'�v��u��w$�u���� �"�w'�wK�v1_a���"�w
�s,�s)�s���v�w
�s,�wQ&�5�w'�wH�vB�wH�u��wA���wK�v��u��u�������� �"�wK�wk�v�wI_a���"�w
�s,�wQ�s���w
�v7�5�wK�wi�vB�wi�wI�u������q�(���v��whx(�s,�v����v��wh��� �"�w�����w������w�������L��w��w��"�v��w����v��
��HZ���w��w��HZ�HS�w��w����HS���w����Hc�HS���	i�u���H\�HS�w��H_�H\�Ho�Hw�H������Hk�	��HS���Hv���H}�w��w����HZ�
����
��HZ���w��Hu&���p(�M8�w��wh�w����	i���
����
��w����w��Ht������H}�w��w����w��w��w��w��w��w��	������w��w��W����	d��(��(�	��w��w��w���(�w��w����W�w����Y��[Annot��PInfo���FATTR�����ATTR�������decl��reversed�#�$�pS���rC���r�����q7�ud�u]�$�pS���rC���r�����t��u]�ud�x"������&�PInfo���FATTR�������decl�cast_neg�#�$�pS_inst_1�rC_inst_2�rn�r�u�g�u�u&�$�pS���rC���r���W���q7�rV�g�u*�uc&��(�
��u,�cast_neg_of_nat+�����&��(�
��q7�rV�'�u*�u*�xP�t��xS�xPneg_neg+�����xP�PInfo���QATTR�����ATTR�������decl��reversed�#�$�pS���rC���r���r�x:�x7�$�pS���rC���r���u6�x7�x:�xc����&�PInfo���QATTR�������decl�cast_sub�#�$�pS_inst_1�rC_inst_2�rmn�q7�rV�#��r^�ua�uc�$�pS���rC���r������xy��� �"�xy����xy�q7�ua�ua���x��q7�ub�xB�x��x��r��xu�x��q����xu�ub�rV���x��x��rV�u����x��r��#��x����&��+�����������pZ��������e_2�q����^���e_3�q���,,�j�j�p��j�����x�������,,�j���j�4�����x���&�rR�ua�ua�r��ua�x��xB��+�����&�xx�x��s������ua�uc�W�q7�u_�rO�s����s������ua�xB�x��x��s����x��xB�ua�ua�W�x����q����ua�[�PInfo���UATTR�������decl��reversed�#�$�pS���rC���r�����q7�xx�xu�$�pS���rC���r�����t��xu�xx�x�������&�PInfo���UATTR�������decl�cast_eq_zero�#�$�pS_inst_1�rC_inst_2�r_inst_3char_zero+��rI��&n��q7�uc�qD�rL���$�pS���rC���r���y�����y��h�y�W�����r�u��qC���u��	���(���r�u����y'�Q�����v
�qC���r��wnatcast_eq_zero+���r������&��(���r�u���y'�no_confusion�������q��s��y4����I�yN_a�!�"�r��r��	M�qC�^�r�&�5�yN�yQ�W�yN�yQ�y<����q��w�y4�yN�t+���w_a���"�r��t�r���t"�yW�r�&�yW�5�yg�yL�r���yL�w�tg���r����s����q��w�y4�yg�I�y�_a�!�"�r��t�yn�yW&�5�y��yg�W�y��ygneg_eq_zero+�����w���q��s��y4�y��yj�y�_a���"�r��r��
��yW�ys�5�y��w�t:���r��r����s�&&h����p��u��qC���uq�p��u{�y�� �"�y��y���_a�"�r�u���y'�y(�5�y�&��y��p��y��y�� �"�y��y��t+���y�_a���"�r�u��y'�r&�y'�5�y��y��cast_zero+���ul�uq���uw�p��y��PInfo���XATTR�����decl�cast_inj�#�$�pS_inst_1�rC_inst_2�r_inst_3�ymn��y��u�
�$�pS���rC���r���y������z��p��rY���r[�����u��u�y��
� �"�z�z�I�z_a�!�"��y��u���
=��O�z�5�z�z�24�z�z�W�z�zsub_eq_zero+�����u��u��z��p��u{�#��y��
� �"�z�z:�y��z_a���"��r�u��y��z�y'�z��y��z�5�z�z6�r�z6�z�cast_sub+�������&��z:��#��
� �"�z:�z_�I�z8_a�!�"��r�u��H��y'�z�z �5�z:�z]�W�z8�z]�cast_eq_zero+��������#���z_��
�
� �"�z_�z��I���!_a�!�"��ze�z�z �5�z_�
�W�z��
���V�&�a�
�PInfo���_ATTR�����ATTR������decl�cast_injective�#�$�pS_inst_1�rC_inst_2�r_inst_3�yfunctioninjective,���u�$�pS���rC���r���ya₁a₂�
�a�z�z���z�
�cast_inj+��������&�PInfo���bdecl�cast_ne_zero�#�$�pS_inst_1�rC_inst_2�r_inst_3�yn��C,���uc�y���$�pS���rC���r���y�����y���zt������&�PInfo���eATTR�����decl�cast_mul�#�$�pS_inst_1ring+&mn�r�r�r�r�r �u��+����+�����+����+����+����+���+�����+����to_distrib+�����+����+���z��{��{&�$�pS���z������W���q7�q9�q;�q=�q#�rE�z����z������z����z����z������z����z������z����z������
��{���{���{�{+&�{+����(�W���p��qT�qU�qV�qW�uk�z����z������z����z����z������z����z������z����z������
��{���{���{D�{S�u�{S&���(�
��p��p��p��p��p��{E�{G�	+���{C�{L�	+���{C�K@�{Y�{o��{o&natcast_mul+���{C�&��(�
��p��qT�qU�qV�{?�un�uo�{=�{J�ut�uu�{��K��{Y�{S��{S��q��{��p��{>�p��p��p��p��{��{J�{��K��{��xH���{=�{J�K�
��p��{��p��p��p��{b�{J�{O�K?���{Y�{���{��p��{O�{�&�p��{J&��{��p��{��{s�{o���{�� �"�{��{��y��{o�{�_a���"�r�p~�u��z����z������pj�pm�pp�pr�z����z����z������z����z������z����z������
�����{���{���{��{���{��p��{��{���p��{��r�{�&�{��5�{��{��{{����{��p��{��{s�{��{�� �"�{��|�y��{���_a���"�r�{��{��pj�pm�pp�{��{��{c���{��{��{h���{���|���{��r�{��|&�{��5�{��{��w=���{E�{J�{O&��|�p��{s�{��{�� �"�|�|1�y��|_a���"�r�{��|�{��{��y��{��5�|�|/neg_mul_eq_mul_neg+�����{r�{��p��|/Annot���(�W���p��{S���{Y�{S��{\���(�
��p��{��K��|Z�{S��q��|`�{��{��K��|c�{��K�
��p��{��{��
���&�{Y�{��{��{��{��{�&��|w�p��{��{Y�{o���{t�|v� �"�|w�|�y��{o�|n_a���"�r�{��{��
�����{��{��{��{��{��{��{��|��5�|w�||�{z��&��|�p��{��{Y�|s�{t�|v� �"�|�|��y��{���_a���"�r�{��{��|���|��|��r�{��{�&�|��|��5�|�|s�|)���|��p��|u�{t�|v� �"�|��|��y��|�_a���"�r�{��{��|��|��|��y��|��5�|��|�neg_mul_eq_neg_mul+�����|s�{t�p��|�Annot���(�
��p��{��|m���|u�{�
��|�&��|��p��|{�{��|�� �"�|��|��y��{o�|�_a���"�r�{��|����|��{��y��|��5�|��|��|�����|��p��|��{��|�� �"�|��}�|�_a���"�r�|��|�|��r�|��|�|��5�|��|s�|���}�p��|��{��|�� �"�}�}&�|_a���"�r�|��|�|��r�|�&�|��5�}�{��|*��}&�}%�}$� �"�}&�}<�y��|�_a���"�r�|��{��|��}C&�5�}&�}$neg_mul_neg+�����|s�{��p��}$Annot��PInfo���hATTR�����ATTR�������decl��reversed�#�$�pS���z������r�{�{�$�pS���z������u6�{�{�}d����&�PInfo���hATTR�������decl�castis_ring_hom�#�$�pS_inst_1�z�is_ring_hom+��T&�p���rD��z���z��&�z���z���z��&�z���z��&�z���z��&�$�pS���z�is_ring_hommk+��T&�}��cast_one+��rI��}��}��}��cast_mul+�&�x���}��}�
�PInfo���s	prt��nspace��VMR��VMC�����$decl��equations_eqn_1�#�$�pS���z���}����#�&�}��$�pS���z���}��}��PInfo�
�s	ATTR����
EqnL�
SEqnL��ATTR�����class������decl�coeis_ring_hom�#�$�pS_inst_1�z��}z�q8��q:��q<��q"��}��}��}��}��$�pS�
�z��}��PInfo�
�w	prt�
nspace�
VMR�
VMC�
�
�$decl�
equations_eqn_1�#�$�pS�
�z��}��}��
�#�&�}��$�pS�
�z��}��}��}��PInfo�
�w	ATTR����
EqnL�
SEqnL�
ATTR����
classis_ring_hom�
��decl�mul_cast_comm�#�$�pS_inst_1�z�a�n�r�{��{�{�{��$�pS�
�z��
��

�W�

�q7�{1��{2�{3�&�

(��q7�}��{+���{1�}����� �"�}�����}��q7�{1�r_�r`�ra�rb�{�{"�{'&��}����r��}��}��x��}��}��}��{1�r_�r`�ra�}��{�{c���{�{$�{h���{&�����+��������e_2�q����^���e_3�q��x��{�j�����~�����x��~��&�{0���r���}��}��x��}��{+��}��r��{*������q����{�{�{"�{'&natmul_cast_comm+���{�&�}��}��~-�}��}��~C���~0�W�~���x��}��[�

(��q7�}��{+��{1�~a���� �"�~f����~f�q7�����~l�q7�u)�{��~r�~n�~l�q7�u_�{'�~r�~q�{.��+���{&�}���~��~t�r��~b�~��x��~b�~w�~|��~q�p����{"�~��~q�}��~��~��}��~w�~��~��~��~1�~a�~��x��~a�u_�rO�rP�rJ�{�~��~��u_�rO�+��add_comm_monoidto_add_comm_semigroup+����to_add_comm_monoid+���{�~��~��~��~q�~w�~��}��~��~��~q�~w�}��~��~��t:���{�{�{"�{'&���pT����������e_2�q��x��^�^���t��&�{�~��~��+���~��}��~��w���{�~��}��~��~��~�left_distrib+���{&��~��~��x��{'�~��~r�x��}��~��~q�}��~��~r�+������~��~��~��mul_one+���{!��~��~�x��}��~��~q�~�~�~��}��~��~�~~�~J�~e�~��x��~|�~a��~w�~|�~���~|�~���~���~|�~����~,�~{�~a�~��~����~0right_distrib+���{&�~��~���~���~r�x��{1�~���~q�{1�~���~rneg_mul_eq_neg_mul_symm+�����~���~��:�one_mul+���{!���~�@�}���W�q7�u_�rO�x��x��{�~r�~�Z�~t�x��U�~�~r�~r�W�~t�~n��+���{���W�~n���x���[�PInfo�
�ydecl�coe_nat_bit0n(��L�&�,���
(������&���� �"�����x����C�~��bit0equations_eqn_1(��&�������������� �"��������i&�����f������������x�����k�&&�����3���W��������������W������&�W�����Y&�[�PInfo�
�|(ATTR����
ATTR�K���
�ATTR�����
�decl�
reversed�
(����
(�:�����&�PInfo�
 �|(ATTR�����
�decl�coe_nat_bit1n(��Q�&�M���
"(�������~������+� �"�����x�����C����bit1equations_eqn_1(����&�������*����������������+� �"�����x�����C�������~���������Hk����
���������+�+�>������ �"��������Y����,������/�Y�x����/���������������6������7��6�������=�C����@���	i�����
��H[��@��H�HZ����I�	������w�&��&&�d��H[���H����������3��������������&���Hr�}��+���
��/�����+�W���+�����Y�����+�+���[�PInfo�
!�~(ATTR����
!ATTR�K���
!�ATTR�����
!�decl�
!reversed�
"(�����
"(�:�������&�PInfo�
&�~(ATTR�����
!�decl�cast_bit0�#�$�pS_inst_1�z�n����q8��q:��q<��q"��rD��z���z����z���z���z����z���z����z���z����M�bit0+�������&�$�pS�
(�z��
)�x��������&&�PInfo�
'��(ATTR����
'ATTR�K���
'�ATTR�����
'�decl�
'reversed�#�$�pS�
(�z��
)����������$�pS�
(�z��
)�r������������&�PInfo�
+��(ATTR�����
'�decl�cast_bit1�#�$�pS_inst_1�z�n�������M�bit1+�����������$�pS�
-�z��
.������������M��+���� �"�������'�M�_a�"�r�{�M��������z��z��{	�r�{����5��������&��������p���r'��r)��y����������������r"���
������M����+���� �"������t+������_a��"�r�{��,���+����r&����5���������M��+���������p��������� �"����<�� ��_a��"�r�p����r(�r*�u�z��r�r�r�z��r#��C�z���E��#��M�+����r��O&����5����9�}����
���������<�����
�����9���� �"��<��i�� ���_a��"�r��O�r3�z�����r��F&��o����5��<����cast_bit0+��&�����g�PInfo�
,��(ATTR����
,ATTR�K���
,�ATTR�����
,�decl�
,reversed�#�$�pS�
-�z��
.����������$�pS�
-�z��
.��������������&�PInfo�
5��(ATTR�����
,�decl�cast_two�#�$�pS_inst_1�z�����}��,������}��p���}��$�pS�
7�z�������� �"��������������������������e_1�r�&��������e_2�r��q����!�q����q������q��������!�����q���&�������q���������}��+�����~�&�+s�pZ��������e_2�q7�&�x��������������&�}��������}��������������W������q������[�PInfo�
6��decl�cast_nonneg�#�$�pS_inst_1linear_ordered_ring+&n��+���to_has_le+��Y+��[+��]+��_+��a+��c+���qC���to_has_zero+�domainto_no_zero_divisors+�linear_ordered_ringto_domain+������������������������
Bto_ring+�����zero_ne_one_classto_has_one+��
Bto_zero_ne_one_class+�����������$&�=��$�pS�
=����
?�W�
?����������������������������
��������u0��������������r�r�r�r �u�z��z���"����Q��S��*����,����Q�z��z���W&�=�&�
?(�
����U��g������r��� �"��r�����r��������#���p�����p��U�u�u�u�u��S��`��c&������+����������e_2�r��������^e_3�r��r�����
`������������r������&��L��T��T������T��o����q�����Z��S��`��c&�W��>��?��@��A��B��C��+����+����u0�z��z��+������u�u�u�u����z��{c������z��{h�����&��α�pS_inst_1��+&n(�T�������������	���������������������pi��pl��po��pq��������{c��������{h����&�/cast_nonneg+��&�����&�����5���W��{��true_iff���[�
?(�
����U��g�������has_ltlt+��preorderto_has_lt+����@linear_orderto_partial_order+����+����u��Z����r3��`� �"����-���������@��A��Bordered_comm_groupto_ordered_cancel_comm_monoid+����+����F��*��B�r(�r*�u�z���+����7��,��T��-��2��(��B��c��)��,��*��T��I��2�}��U��O��Q��2���Tfalse��U�#�����T�������O�q�������B�r(�r*�u��Y��*��M��B�r(�~����~����Zto_add_comm_monoid+����I��M��*��b��)��L��,�����h��b��)��L�����,��x�t:����Z��S��`��c&���pT����������e_2�r��x��������s+��&��Z��|��w�~�����o�����,�w����Y��,��������*��M����Y�W�����Yiff_false_intro����?���5�W��Z��Uiff_false��T�W�}��>��?��&��T��O��Qnot_le+����$��T��O�W��=��F�u�u��B��,��*��T��Ineg_add_lt_iff_lt_add+����7��*��,��Tchas_lt+����������e_2�r��������^e_3�r��r����
`������������r������&��'��*��*�����*��H��,add_zero+����c��,
�������K��*��,&lt_of_le_of_lt+����K��*�����,���M��*������ �"�������>��?��;�������u0�r#��C����������W����neg_nonpos+����7������[zero_lt_one+�����Annot��PInfo�
<��decl�cast_le�#�$�pS_inst_1���mn���M��g���h�t�$�pS�
i����
j�
k���?����rY���r[����B��h��;�t� �"��?��M�I����;��h_a�!�"����������������������������
���������q9�q;�q=�q#�rE�{�{��"������������������g��*����,����g�{$�{%��h���|��m��O�m��5��?��K�24��K��S�W��K��Ssub_nonneg+����7��h��;���M����r�r�r��[�r#��c��`��e�:��t� �"��M����t+����E��F��Y���&����_a���"���U��V��W��X��Y��3����5����]�qD�rH�rJ�{��?������rZ�r\�������}�m�����&�m��5��M����u6�������zQ����Y��`&������������t� �"�������I��U��g���_a�!�"�����q9�q;�q=��l�rH�rJ��j��u�rO�rP�������m�����5�������W�������cast_nonneg+������������o`&�t� �"������I�o[�~��&�_a�!�"�������m�����5�����
�W����
�
m�^&��a��
�PInfo�
h��ATTR����
hATTR����
h�decl�cast_lt�#�$�pS_inst_1���mn�����;��h�i�$�pS�
s����
t�
u���7���(��;��h�i� �"��7��@�5��@����}��M��h��;�}�CR��?���&�#���J��>�W�}�����h��;��>�����h��;��L��P�W�}�D���P�
^�~&�����I�CR�cast_le+���&��PInfo�
r��ATTR����
rATTR����
r�decl�cast_nonpos�#�$�pS_inst_1���n�����7�� �E�$�pS�
x����
y���~���z��6��}� �"��~����� �� _a��"���<��T�l���<&�l�5��~����������� �y����'����/��2�������}��}� �"�������I���_a�!�"���<��g�l�O�l�5�����}�W�����}��n��&�a��}�PInfo�
w��ATTR����
wdecl�cast_pos�#�$�pS_inst_1���n����������� ��7�
(�$�pS�
}����
~�������������7�
(� �"���������_a��"�����T��;�����&��;���5���������������
(�
(� �"�������I���_a�!�"��������;���O���5����
(�W����
(�cast_lt+��&�a�
(�PInfo�
|��ATTR����
|decl�cast_lt_zero�#�$�pS_inst_1���n������7�� �.�$�pS�
�����
������������� �"�������_a��"���4��T�����4&���5����������������� �"����5�I��_a�!�"���4������O���5�����W������&�a���PInfo�
���ATTR����
�decl�eq_cast�#�$�pS_inst_1�rC_inst_2�rf����H1�r&�+�r4Haddxy�r����u��n���n�r���u��$�pS�
��rC�
��r�
���T�
���W�
���^�
��W�
��q��m��s&&�
�(nateq_cast'+������n(�����x(y(����&�
�(eq_neg_of_add_eq_zero+��������s)�v��v��q��s)�������y4����s�� �"�������yj�y4_a���"�r��t����t#�yW���&�5�������yz����y4natcast_zero+���r����s����������� �"�������yj���_a���"����r������5�������yz��������z����������� �"�������(_a�"������������5����=����������	��� �"�������(_a�"���������5�������:���
����&neg_add_self�V��Annot���������������� �"�������yj���_a���"������
C������5��������������������� �"������yj���_a���"����������������&�5������
��q�������&��z��Annot���������PInfo�
���decl�eq_cast'�#�$�pS_inst_1�z�f���_inst_2�}w��T�&�q ������p����z��z��z��z��$�pS�
��z��
���<�
���@funext,�
H�����Hinteq_cast+���z��z��is_ring_hommap_one+���T��&_x_xis_ring_hommap_add+���T������&�PInfo�
���decl�cast_idn),/�C��*�&&�
��:X&��s��u��w��y��� �*�t&�eq_cast�V�*�������+_x_x����&�PInfo�
���ATTR����
�ATTR�K���
��decl�cast_min�#�$�pS_inst_1decidable_linear_ordered_comm_ring+&ab�r�r�r�r�r �u�z��z���V��P�e+���g+�����N��O�����]��^����z��z����min�B��&min+���+���+����������&�$�pS�
�����
��
����t�-(�&���h�t��q7�q9�q;�q=�q#�rE�{�{��e��f��������������m��n�����r��s����{$�{%������������������������������������ �"����������������q7���������r��������r������������ite���2�������{decidable_linear_orderto_linear_order�B�����has_leledecidable�B����T�m�&�����������!����)minequations_eqn_1�B���if_simp_congr5������!������$���
}if_true5��%���������x����ite+���2���U��V��W�� ���
�+��������������
�+���������������U��V��W��X��Y��Z��[��\����������m�����n���������$�������������Q��R��]��d����������}�
�+������������
�6����]����d��������������x�r�����r�����
�6����y�������W�q7�q9�q;�q=����rH�rJ�������rO�rP����������z���������linear_ordered_semiringto_char_zero+�������������:��[�
��}�t��������
{�����q7�������
{��
�����
�������Y����Y��!����m�&�����1�����7��;��Y��!����������
}if_false5�������������Q��R��Y��^��Y��d��q��Y��v����������������������������Y��d����������������������
�6������������W�q7�������
{������W�
{������[�PInfo�
���ATTR����
�ATTR�����
��decl�
�reversed�#�$�pS�
�����
��
��r�������$�pS�
�����
��
��u6��������-����&�PInfo�
���ATTR�����
��decl�cast_max�#�$�pS_inst_1���ab�r����C&max+������������$�pS�
�����
��
������Gh�t��q7����C=���B�������������� �"��T�����T�
{����Z����
{�r���N�������M����M��'�����c��.����emaxequations_eqn_1�B�����=������$�
}����I����S����x���S��{�������������������������
�+����������������������������x�������������������#�[�
������V��Y��Z������Z������_�����a���c��������j�����p�����������
}���������S��������������������������������������������������������������:��[�PInfo�
���ATTR����
�ATTR�����
��decl�
�reversed�#�$�pS�
�����
��
��r��F��@�$�pS�
�����
��
��u6��@��F�������&�PInfo�
���ATTR�����
��decl�cast_abs�#�$�pS_inst_1���q��������������������������#��������������������+��-��������������abs+��fto_decidable_linear_ordered_comm_group+����	&�$�pS�
�����
������� �"������������B�������������p}��������$��%��������+��������������e_1�����������e_2�q��q��^�!�r����r������q��^���^�!�����r���&��
��(�q����
��$��	�+R&��(��O��	�B���to_decidable_linear_order�&��P��R���q������e_2�
�q������u���&������Zabsequations_eqn_1�&�
�+��&��P_inst_1decidable_linear_order+�a���
���e_2�p��&b���
���e_3�r��&�x�����B�������������x���
���
`���������&��"�����������Q��'�x�������&����1�
�+������W��)��(���q����(�[�PInfo�
���ATTR����
�ATTR�����
��decl�
�reversed�#�$�pS�
�����
��������
�$�pS�
�����
������
�������&�PInfo�
���ATTR�����
��decl�rangemnlist�
��
�listmap(r(�m�listrange�B����
�PInfo�
���VMR�
�_lambda_1VMR�
�VMC�
���"�
�(�_fresh:�M��t�{VMC�
����
��
������������to_nat_mainlistrange�
��
�map_maindecl�
�equations_eqn_1�
��
�����
��&����
��
��������PInfo�
���ATTR����
�EqnL�
�SEqnL�
�decl�mem_range_iffmnr��E
����
�has_mem&������C��=�.��
��
��
���������H���_a�
7a(�C��E���(���(&����B������n���
<�(�C��������B��2���n�����
7���C��@�������&��(���
�o,��������B��9�����8z�����C�����!�C�������@���&h_left��h_right���
,���
�_x�C���&�.�^������5������&�m���^��9���9��le_add_of_nonneg_right���^���[add_lt_of_lt_sub_left�^�^����_a_a���������B��W��	�������Q�,�.����_(�	��S����Dd�
���.����������^�I��a_a�!�"��^�&�5��a��^�24��^��a�W��^��a�Z�������`�B����a����x_a(�"��e�B��
,��e&�5��y��to_nat_coe_nat�������������x��y�I���_a�!�"����^�����}&�5�����y�W�����ylistmem_range����x&�_(�	��S����Dtfalsedcases_on�	�������B���,�.��
�&&�9���^�����������
�(�n�����B��H����listmem_map(�������&_x���_a�C��o2�h��o,�?��������C�������������������&left���right���
����������
�(�����������
7�(�C��������B��9��������������������.����B��2���m������	���8z���	���������	�������	������������ �"�����I��_a�!�"��B��������&�5�����24�����W�����Z��	��������������� �"����=�'��B���;_a�"����$�����.��G�5����;�C[��;����������=��<������� �"��=��\�'��B���[_a�"���Z����G��e&�5��=��[�C[��[�������+�����R�������&sub_lt_sub_right�^����&��
���&����8z��;��� �"�������D_a�"����E����&���5����;��U�����6|� �"����6|�'�u���W��_a�"����d�������5�����add_sub_cancel'_right�U�����6�Annot�&�PInfo�
���decl�decidable_le_lt_proof_1P��mn�rH�����r���=���������!���"�#������������ �"�������#�������forall_congr_eq�$����$����$�a�����a��������imp_congr_eq�����������W�������mem_range_iff��&�5���W������and_imp�=������������5����a����PInfo� ��	decl��!��_inst_1�m��"�#decidable�&���=������fh�!���-�m��"�#decidable_of_iff���$�%����>� ���&listdecidable_ball�$�m���������PInfo���	prt�VMR�VMC���	�#�"�-�!���
��1�bdecl�equations_eqn_1�!���-�m��"�#�������&��1�!���-�m��"�#����;�PInfo�3��	ATTR����3EqnL�3SEqnL�ATTR����class�.���decl�decidable_le_le_proof_1P��mn�rH�������d��r���=���n�����6���7�8���P���O��O� �"��P��V�#���K��O����9��J�9��N�9��(��I���)����CR����N�����I����c�����I����.�d��c�W��I��m����d&���!���!e_1�#����!���!e_2�#��#��C����C������#��C���&�=�=�5�=��l�CR�W��l�CR��&�����W��d��N���CR����O��O�5��O�a��O�PInfo�5��	decl�4�6��_inst_1�m��7�8���;���=���n��fh�6���>�m��7�8�� ����9�:��I�>�5���&��/����,�PInfo�4��	prt�4VMR�4VMC�4��	�8�7�>�6���y�{�
��1�bdecl�4equations_eqn_1�6���>�m��7�8����4����&����6���>�m��7�8�������PInfo�@��	ATTR����@EqnL�@SEqnL�4ATTR����4classdecidable�4��decl�decidable_lt_ltP��_inst_1�m�mn��r����&���C���D�m��E�F��8��.�d&�PInfo�B��	prt�BVMR�BVMC�B��	�F�E�D�C���y�{�decl�Bequations_eqn_1�C���D�m��E�F����B����&����C���D�m��E�F�������PInfo�I��	ATTR����IEqnL�ISEqnL�BATTR����Bclassdecidable�B��decl�decidable_lt_leP��_inst_1�m�mn��r���������L���M�m��N�O�����.�d&�PInfo�K��	prt�KVMR�KVMC�K��	�O�N�M�L���y�{�4decl�Kequations_eqn_1�L���M�m��N�O����K����&����L���M�m��N�O������PInfo�R��	ATTR����REqnL�RSEqnL�KATTR����Kclassdecidable�K��declis_ring_hommap_int_castu_1u_2α�pSβ�W_inst_1�z��_inst_2ring7�f������_inst_3is_ring_hom�V7������&n�	�8����u��u��u��u��u��{��{����{��{��{����{��{����{��{���&�-8���.8���8���C7���h7����7����7������7����7����7�����7���7������7����7����&�X�pS�Y���Z���[���]���^���`inteq_cast7����H��Zn���r��r��r��r��r��z����z������z����z����z������z����z������z����z�����&���!����+�w7����Z��� �"�����������!����������������e_1�� ���&���^���e_2�� �
`�&��8�j�!�� �j�����������88�j�q����������&��������8�����2�+��p���+�����������e_1��~��98��^����&�������}����u���#��+��$is_ring_hommap_one97�����������������8������W������U7������[��
��
�����c���q��s��s��s��s��z���z�����z���z���z�����z���z�����z���z����&��7����7����7����7����C����E���������&��� �"��.���x�
��
��� �^�c���q8�
`�q:�
`�q<�
`�q"�
`�rD�
`�z��
`�z��
`�^�z��
`�z��
`�z��
`�^�z��
`�z��
`�^�z��
`�z��
`�^&����^���^���^���^��C�^��E�^����V���V&&�
�������nx�
���o&��o����
���-��r�
�����
���,�
����
����,������r��r��r��r��r��z��^�z��^���z��^�z��^�z��^���z��^�z��^���z��^�z��^����������~�������\����^������������&�������������^�d�� ��&���
`���j�e�� �4�&����<�!�� �<�������������<�s@���������&�������������������t�r��r��r����������������^����f�q�����j�
`����&�������x��^�������&is_ring_hommap_add97�^������������������+������������W���������7���u7����#�������������7���������������W��������������Wa��o��oforall_const��o	�W�m������ ��	�[&�PInfo�U��declring_hommap_int_cast�V�W�X�pS�Y���Z���[��fring_hom97����z����O�&n�� ��coe_fn9797��;�����{B����O����rhas_coe_to_fun97������G��J��qT�qU�qV�qW�uk�{:�{;���{@�{A��G�{G�{H���{L�{M��&��7����:����=����?����A����C����E�����K����M����J��U����W�����\����^���&�X�pS�Y���Z���[���q��B�sis_ring_hommap_int_cast97���������Sring_homis_ring_hom97��������&�PInfo�p��EndFile