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���xinittacticsplit_ifsorderbasicalgebraorderalgebraordered_groupalgebraringdatanatcast�Ԇexport_decloptionnonenonesomesomeexport_declboolffffttttexport_declhas_andthenandthenandthenexport_declhas_powpowpowexport_declhas_appendappendappendexport_decldecidableis_trueis_trueis_falseis_falseto_boolto_boolexport_declhas_purepurepureexport_declhas_bindbindbindexport_declhas_monad_lift_tmonad_lift!monad_liftexport_declmonad_functor_tmonad_map$monad_mapexport_declmonad_runrun'runexport_decllistmmap*mmapmmap'*mmap'mfilter*mfiltermfoldl*mfoldlexport_declnativenat_map3rb_mapmkexport_declname_mapnativerb_mapmkexport_declexpr_mapnativerb_mapmkexport_decltacticinteraction_monadfailedfailexport_decltactic_resultinteraction_monadresultexport_decltacticFtransparencyreducibleGreduciblesemireducibleGsemireducibleexport_decltacticmk_simp_attrLmk_simp_attrexport_declmonad_exceptthrowOthrowcatchOcatchexport_declmonad_except_adapteradapt_exceptTadapt_exceptexport_declmonad_state_adapteradapt_stateWadapt_stateexport_declmonad_readerreadZreadexport_declmonad_reader_adapteradapt_reader]adapt_readerexport_declis_lawful_functormap_const_eq`map_const_eqid_map`id_mapcomp_map`comp_mapexport_declis_lawful_applicativeseq_left_eqgseq_left_eqseq_right_eqgseq_right_eqpure_seq_eq_mapgpure_seq_eq_mapmap_puregmap_pureseq_puregseq_pureseq_assocgseq_assocexport_declis_lawful_monadbind_pure_comp_eq_maptbind_pure_comp_eq_mapbind_map_eq_seqtbind_map_eq_seqpure_bindtpure_bindbind_assoctbind_assocexport_decltraversabletraverse}traversedeclmul_nonneg'uα�_inst_1ordered_semiringabahas_lelepreorderto_has_lepartial_orderto_preorderordered_comm_monoidto_partial_orderordered_cancel_comm_monoidto_ordered_comm_monoidordered_semiringto_ordered_cancel_comm_monoidhas_zerozeromul_zero_classto_has_zerosemiringto_mul_zero_class�to_semiring�	''
'''''''	>>
>>>'>>>>'has_mulmul>�to_has_mul>P����mul_nonneg�PInfo�
declmul_pos'��_inst_1abhahas_ltlt�to_has_lt$hbl'n'1;l>n>HR[�����s�ymul_pos>'�PInfo�declzero_lt_two��_inst_1linear_ordered_semiringln
linear_ordered_semiringto_ordered_semiring�bit0distribto_has_add�to_distrib�has_oneonemonoidto_has_one�to_monoid����eqmpr��has_addaddadd_semigroupto_has_addadd_monoidto_add_semigroupadd_comm_monoidto_add_monoid�to_add_comm_monoid���to_has_zero���ideq��eqrec�_a�ln
������������
eqrefl���eqsymm��zero_add�������������'��_a�����������3��
�<���&bit0equations_eqn_1��add_lt_add�����zero_lt_one�V�PInfo�doc�`0 < 2`: an alternative version of `two_pos` that only assumes `linear_ordered_semiring`.declmul_le_mul_left����abchtu*+,-�'4567�^iff?@ABCD�>'UWMN�m�x�s��������j�intro�|�h'�|le_of_mul_le_mul_left>'h'�mul_le_mul_of_nonneg_left�����>'le_of_lt����
�������������������PInfo�ATTRsimp���declmul_le_mul_right����abch�j�k�s�w�w���������j�����h'��le_of_mul_le_mul_right��>'h'�mul_le_mul_of_nonneg_right����'���PInfo�ATTR����declmul_lt_mul_left����abch�j�kz{�q�y�{����������j������lt_imp_lt_of_le_imp_le>>�to_linear_order>'�q�{�yh'?@Alinear_orderto_partial_order>����'��h'��mul_lt_mul_of_pos_left����'�PInfo� ATTR����declmul_lt_mul_right����abch�j�k����������������j���$�������h'�
��'��h'��mul_lt_mul_of_pos_right����'�PInfo�$ATTR����declmul_lt_mul''����abcd'h1��h2l��n����h3	�P�P
�P�P�P��P���P�P�P�P�X>h4	�i�i
�i�i�i��i�P�i�i�i�i�q>l	n����
����������iT��V���������P����>'��������'��I��O��h���orelim����������eq��������lt_or_eq_of_le��������b0��mul_lt_mul
������i�P��>'������
���������P>le_trans���������������i�����i��'b0���l��n����T��V�����i�P����>������������������P_a���ln��
�������T�V�������i��P�����!�����������P��������������6���_a���������!��!�����mul_zero�����i�������>lt_of_le_of_lt�������i��'�Z�P>�PInfo�(declle_mul_iff_one_le_left����abhbmo� �t�k()�bT'V'�f���'�'�'�e��������
this�k����������eqmp�k�s�w�>�>�>�t���s���k�s�����>Usemigroupto_has_mul>�to_semigroup>����_a>��k��	����T��V�����������������'����'�k���������one_mul>��mul_le_mul_right'��Annotsuffices�PInfo�/decllt_mul_iff_one_lt_left����abhb���k�d���d������!�"�#��
��k�d���������k�����������k�����
��_a>��k�M�����M��'�k�M�������mul_lt_mul_right'��Annot��PInfo� 3declle_mul_iff_one_le_right����abhb���k����������'�(�)��
��k���8���9�����k�s���������k���I��������_a>��k�������U'���k���X����Lmul_one>��mul_le_mul_left'��Annot��PInfo�&7decllt_mul_iff_one_lt_right����abhb���k���9������.�/�0��
��k�d�B�9�����k���G�I�
�k��I�
�T_a>��k�M�V�X��k��X�����imul_lt_mul_left'��Annot��PInfo�-;decllt_mul_of_one_lt_right'����abhb�����������4�5�6���mpr�|��lt_mul_iff_one_lt_right'�PInfo�3?declle_mul_of_one_le_right'����abhb
�x�~h���N����:�;�<���=��
��J���Y���X�����������������_a����^T�PV�P�d'��P��P��P�c��>�^����Y�f������>�m��Annot��PInfo�9Bdeclle_mul_of_one_le_left'����abhb��h��������@�A�B���C��
�����������������_a����^����'��>'��������������>�m��Annot��PInfo�?Fdeclmul_nonneg_iff_right_nonneg_of_pos����abh��k���h�9�<����F�G�H�;���=�?��=nonneg_of_mul_nonneg_right>'��?c>�m��>�qKL�u�PInfo�EJdeclbit1_pos����ah	���bit1���{���{����K�L�jlt_add_of_le_of_pos�u��p�~��uadd_nonneg�u�T�PInfo�JMdeclbit1_pos'����ah��x����Q�R��bit1_pos���x�~�PInfo�PPdecllt_add_one����a�
�-��	����U�}��	le_refl��T�PInfo�TSdecllt_one_add����a�
���	����X����
�-�.add_comm_semigroupto_add_semigroup�to_add_comm_semigroup�2�	����������	_a��z��u���������add_comm���	lt_add_one�PInfo�WVdeclone_lt_two��������������PInfo�_Ydeclone_lt_mul����abha����hb���������a�b�c��d�eqsubst>_x>�����������mul_lt_mul'>�m����zero_le_one>'lt_of_lt_of_le>�q�Y���T>'�PInfo�`[declmul_le_one����abha����hb'�?hb��������������l�m�n�5�o�?�p�6��8�7������8�B����_a����^����H��8�A����A���&��mul_le_mul����'�������>�PInfo�k^declone_lt_mul_of_le_of_lt�����abha�hb�trans_rel_right>����������
���>���r�w�����x�z���_a>���������������x���eqrefl>��Annotcalc
�,Annot�|�PInfo�sadeclone_lt_mul_of_lt_of_le����abha�z��hb�������~�����������
��>�m�����)��>�q�Y��� �W��Annot�|�PInfo�}edeclmul_le_of_le_one_right����abha��hb1�����s�����������������trans_rel_left>������?@Aordered_cancel_comm_monoidto_partial_order>�n
����Annot�|
�hAnnot�|�PInfo��ideclmul_le_of_le_one_left����abhb��ha1���������������������������
�Z>�m����>�q� Annot�|
��Annot�|�PInfo��mdeclmul_lt_one_of_nonneg_of_lt_one_left����abha0��ha�d��hb�6�M������������������
���6�W������'��
mul_le_of_le_one_right��>'Annot�|
Annot�|�PInfo��qdeclmul_lt_one_of_nonneg_of_lt_one_right����abha�5hb0�?hb��������������5���?���.���
mul_le_of_le_one_left��>'Annot�|
Annot�|�PInfo��vdeclmul_le_iff_le_one_left����abhb���k��������������������K��h�Kle_of_not_lt>����mtz{��������
lt_mul_iff_one_lt_left>'not_lt_of_ge>�q��h���W���Z�\���
�mp��
�h�m���PInfo��{declmul_lt_iff_lt_one_left����abhb���k�d���
����������������
h��lt_of_not_ge>�����Zge>�����������le_mul_iff_one_le_left>'not_le_of_gt>�q��h�
�����Z�������{�����������PInfo��declmul_le_iff_le_one_right����abhb���k���9�������������������h���Y�_�������
��>'�n�Ih���u�I�Z�w�I�
�{���
�����PInfo���declmul_lt_iff_lt_one_right����abhb���k�d�9�
����������������
h�������N���N��le_mul_iff_one_le_right>'���Ih�
���I�Z���I���{�N������PInfo���declnonpos_of_mul_nonneg_left����abh��TV�|hb���h�~�Y����������.���/le_of_not_gt>���Yhagt>�[�Yabsurd������false����������mul_neg_of_pos_of_neg����'�PInfo���declnonpos_of_mul_nonneg_right����abh�.ha��h���Y����������.���]�9�Yhb�>�Y�G�Kmul_neg_of_neg_of_pos����'�PInfo�ʎdeclneg_of_mul_pos_left����abh��-hb���h���Y����������z���{���Yha���Y�A�M�����E�k��������mul_nonpos_of_nonneg_of_nonpos����'�PInfo�ёdeclneg_of_mul_pos_right����abh�zha���h��Y����������z�������Yhb���Y����mul_nonpos_of_nonpos_of_nonneg����'�PInfo�ؔdecldecidablemul_le_mul_left��_inst_1decidable_linear_ordered_semiringabchtu*+,-�]decidable_linear_ordered_semiringto_linear_ordered_semiring'4567���k?@ABCD�l��>'UWMN������������������������k?@A�decidable_linear_orderto_linear_order>��to_decidable_linear_order>'�������kz{��������decidablele_iff_le_iff_lt_iff_lt>>����������>���PInfo���ATTR�����decldecidablemul_le_mul_right������abch���k��������������������������k���	�	���k���	�	�	�	�	�	�*>���PInfo��ATTR�����declabs_two��_inst_1decidable_linear_ordered_comm_ring��absdecidable_linear_ordered_comm_ringto_decidable_linear_ordered_comm_group��ringto_distribdomainto_ringintegral_domainto_domainlinear_ordered_comm_ringto_integral_domain��to_linear_ordered_comm_ring�zero_ne_one_classto_has_one��to_zero_ne_one_class�	Z�	f����	Fabs_of_pos�	L�	fzero_lt_twolinear_ordered_ringto_linear_ordered_semiringlinear_ordered_comm_ringto_linear_ordered_ring�	X�PInfo���ATTR�����decllinear_ordered_semiringto_no_top_orderu_1α�_inst_1linear_ordered_semiringno_top_order�������	|��	~no_top_ordermk�	�aExistsintro	a'has_ltltpreorderto_has_lt�	��	��	��	��	�has_addadd����	��monoidto_has_onesemiringto_monoid�	�lt_add_of_pos_right�	��	��	�zero_lt_one�PInfo�
�	prt�
VMR�
VMC�
��decl�
equations_eqn_1���	|��	~��	��
��	���	|��	~��	��	��PInfo�&�	ATTR_refl_lemma���&EqnL�&SEqnL�
ATTRinstanced�
class��
ddecllinear_ordered_semiringto_no_bot_orderu_1α�	|_inst_1linear_ordered_ring�+no_bot_order�	��	��	��	�ordered_ringto_ordered_semiringlinear_ordered_ringto_ordered_ring�,�	|�-�	�no_bot_ordermk�	�a�	�a'�	��	��	��	��	��	��	��	�has_subsubadd_group_has_subadd_comm_groupto_add_group��to_add_comm_groupordered_ringto_ring�	��	��	��	��	��	��	���	��	��	��	��	�ordered_comm_groupto_ordered_cancel_comm_monoid�>to_ordered_comm_group�
�
�
	�
ordered_comm_groupto_add_comm_group�
+�
�
1�	���add_groupto_add_monoid�
5�
sub_lt_iff_lt_add�
+�
�	��	��	��
�
�	��
�PInfo�*�	prt�*VMR�*VMC�*�-�,decl�*equations_eqn_1�+�,�	|�-�	��	��	��*�+�
^�,�	|�-�	��	��	��
d�PInfo�I�	ATTR�'���IEqnL�ISEqnL�*ATTR�(d�*class�/�*ddecllinear_ordered_ringto_domain��slinear_ordered_ringdomain��L�
n��mk�Madd�Madd_assoc�Mzero�Mzero_add�Madd_zero�Mneg�Madd_left_neg�Madd_comm�Mmul�Mmul_assoc�Mone�Mone_mul�Mmul_one�Mleft_distrib�Mright_distriblinear_ordered_ringeq_zero_or_eq_zero_of_mul_eq_zero�Mzero_ne_one�PInfo�K�	prt�KVMR�K_lambda_1VMR�K_lambda_2VMR�K_lambda_3VMR�KVMC�b�	a�e_fresh!��)
VMC�c�	�e�i
VMC�d�	�e�e�i
VMC�K�	�L��b
�c�d
decl�Kequations_eqn_1���L�
n���
p�K��
���L�
n���
p�
��PInfo�k�	ATTR�'���kEqnL�kSEqnL�KATTR�(d�Kclass�N�Kddeclmul_le_mul_left_of_neg��_inst_1�
nabchtu*+,-�1'�3'4no_zero_divisorsto_has_zero'��to_no_zero_divisors'�
�'�k?@ABCD�
�>�
�>'U�rto_has_mul>�
�>�
�>'�
��
���m�
n�n�o�p�q�
����
��
�le_imp_le_of_lt_imp_lt>>�
��2to_linear_order>'�
��
�h'z{A��mul_lt_mul_of_neg_left���
���>'h'�
�mul_le_mul_of_nonpos_left���'�����������
������zero_ne_one_classto_has_zero���>to_zero_ne_one_class����PInfo�l�ATTR����ldeclmul_le_mul_right_of_neg���m�
nabch�
��k�
��
��
��
���m�
n���������
����F�
���B�Eh'�mul_lt_mul_of_neg_right���'h'�
�mul_le_mul_of_nonpos_right���'�7�PInfo��ATTR����declmul_lt_mul_left_of_neg���m�
nabch�
��kz{�
��
��
��q��m�
n���������
�lt_iff_lt_of_le_iff_le>>���
��
�mul_le_mul_left_of_neg>'�PInfo���ATTR�����declmul_lt_mul_right_of_neg���m�
nabch�
��k�q�B�E�v��m�
n���������
����E�Bmul_le_mul_right_of_neg>'�PInfo���ATTR�����declsub_one_lt���m�
na�������
��
��9�:�<�=�	P�
���	_�	a����m�
n����������A�B���������D�������-�.�/�F����sub_lt_iff_lt_add�������	r�PInfo���declmul_self_pos���m�
nahane��
��
���mo�
��
��
��
��
��(�
����m�
n�����ordcases_onmo��� ���� �3� a_0�7�5�>�
��
����
�'�
�lt_trichotomy�/� h�5mul_pos_of_neg_of_neg'�
�h�>�,��'�
�tu*�'�'�
����7�\�f�qK�
�>�
��Ah�\��elim�oh�f��
��PInfo���declmul_self_le_mul_self_of_le_of_neg_le���m�
nxyh₁
�h₂()�
�has_negneg'�Eto_has_neg'��'��'�	P'�
��
��n�D��m�
n�������������,?@��l���l_x�7���������,���
����
����
���>''��le_total>��lh��mul_self_le_mul_self���('���������������ringto_semiring���	P����������������������'��������������''_a����Q�R�S�T�U�V�
��P�
��P�����
��P�
��P�
��P��>>��''���
������R����neg_mul_neg����''����neg_nonneg_of_nonpos�������'�PInfo���declnonneg_of_mul_nonpos_left���m�
nabh���%� hb�
��
��
��l��m�
n�������
,���
.�8��lha�=��l�A�������
������E�H�,�
=�
A�Q���'�PInfo���declnonneg_of_mul_nonpos_right���m�
nabh�
,ha�
��
��
/��m�
n�������
,���
Z�
8hb�
;�
E�
H�
L�PInfo���declpos_of_mul_neg_left���m�
nabh��
*� hb���
��m��m�
n�������
q���
s����lha�����l�A�J�K�,�
=�
A�E���,�
=�
Amul_nonneg_of_nonpos_of_nonpos���'�PInfo���declpos_of_mul_neg_right���m�
nabh�
qha���
��m��m�
n�������
q���
��
|hb�
�
��
��
��PInfo���declmul_self_add_mul_self_eq_zero���m�
nxy�k�8���r�	N�	P��&�$� and�:�8� ��m�
n�������
��
�h�
�andintro�\�Z�
����Z�G�
��\���
�_a���v�n�l��
��\propext�
��\mul_self_eq_zero'�
����Z�'�'�	N'���G�
��
��
��'�
��'�'��'���G4�'�
�_a'��v�>�>�	N>�	P>�
��n�l�l�v�l��
��Gadd_zero'�
��G���Z�
��E�
��
��
��!_a'��v�
���l�v�
�l��$�
�le_antisymm'�
��!�
�����!�
��:�"���;�=�
��
�_a'��
����l�C��;�"�'�"�
�le_add_of_nonneg_left'�
��!����67�
�mul_self_nonneg'�a���Z�!�
��
��
��o_a���v���l��o�
��
��o�
��
��g���
���dcases_on�\�
����
��\�
��*rfl�\rfl�v�l���
A�������P��P��P�	N�P�	P�P�����
�_�
��P��������������������������������	N�������
A�
A���
Atrue������eqtrans������
A�
A��a�����Pe_1���ia������e_2���congr�����>��'congr_arg�������>'�����
A���������
A�
A�
Achas_add��a�P���ie_2���������e_3����
�������>��'��������>'�������
A�L�������(�
A���
A�����������
A�
A�
A�����
A�
�����eq_self_iff_true���
Atrivial�R�
A'�R'�
A�PInfo���PInfononneg_ring�indlu_1α�	|Cn������e_1adda��add_assocabc'eq��>�	�>has_addmk>�Z�[�Zzerozero_adda'�U�V�
>>add_semigroupmk>has_zerozero>has_zeromk>add_zeroa>�T���	����
>���h��'�n���p��neg�����Padd_left_nega�P�T�i�	��i�
>�i�
@�iadd_monoidmk�i��>'has_negneg�ihas_negmk�i�n�i�to_has_zero�i��add_comma�ib���T���	����
>���h���i�P��mul���������mul_assoca��b�c���T��has_mulmul��has_mulmk��������one�one_mula������semigroupto_has_mul���)mk���	���has_onemk��mul_onea���T����������'�	�����left_distriba�bc�T���������P�	����W����������right_distriba��b��c���T�������i�	���W������zero_ne_onene���n���p�����	�������'nonneg����pos���pos_iffauto_parama�k�
��unot�����8�

�8�;mk�8�������������namemk_string
Strorder_laws_tacnameanonymouszero_nonneg�n�8���8�
B�8�Gadd_nonnegab�>����P�	��
>�b�
@�b�
B�b�

�b�=�b�_�^�8�3�����nonneg_antisymma�_�>������:��

��=��_�^�8�3��������T�b�n�b���b�smul_nonnega�ib���P��i����������������mk���b��i�_�^�8�3�������������mul_posa�b�b���������������������������b��i�_�^�8�3���������������mk�b�i�_�^�8�3������������������i�P��>'���N�u�������	|�	|�R���	|�������������T'�	�'�W'�!�"�!������
>'�h'�n'�p'��'�U�V�g�i'�o�q���>�������T�P�	��P�
>�P�
@�P���P��>'���P���P�n�P���P�R���P��i�T���	����
>���h���i�P�k����i����������� ���!��T�����������z�{�z�&���'�(��v�w���������	��������.�/����������'�����0�1���2��3���T�����������P�	����W�����������4�5��6���7���������i�������������8�$���n���p�����	�������'�:�����;�0�<�2�>��5�6�7���3�:�3�

�3�=�3��������������U�E�n�3���3�
B�3���F�G�8�H�^��`��a�P�	���
>��
@��
B������i�_�^�8�3������I�J�^��~������i�:�i�

�i�=�i�_�^�8�3��������T��n������K�L�_�M�i�����������������������������b��i�_�^�8�3��������������O�P�i�Q����������������������b��i�_�^�8�3�������������N����	|���Q���������'�����'�>�y�z�W���~��~�'��>�y�z�{�|���������I�J�K�h�P'�^�p�P����P�i���i�d�e�f�
@��������>'���������n����������������T��	���
>��h��i�P���������������� ���!����������������&���'�(���������������.�/��T��������������'�����0�1���2���3����
��P�����������4�5���6���7��T�3���3���3�i�	��3�W�3������8�$���n���p�����	�������'�:�1�;��3��<�2�>�8�5�6�7���^�:�^�

�^�=�^��������������U�E�n�^���^�
B�^�8�F�G�_�H�i��`��a�P�	����
>���
@���
B���

���=���i�_�^�8�3������I�J�i��~������b�:�b�g�h�_�^�8�3��������T���n�������Y�K�L��M�b�������������������b��i�_�^�8�3��������������O�P�b�Q�������������������������������b��i�_�^�8�3��������������i�_�^�8�3������������������i�P��>'�nspace��prt��recdecl��sizeof�����	|α_insthas_sizeofx�Nnat���	|�U����rec��x�������S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O��has_addadd��nathas_add�������������������������������������������������nathas_onesizeof���b������default_has_sizeof��i�a���b�������T���	����W�����
��
�b��_���b��^���b�s�J�K�h����i�u�p���_��2�8���b�s�*�-��=�3�����b����D����b�s�J�K�L������i�_�^�8���������3�u�v�P��_�����b����T���	����
>���h���b��m��u��������b� ���!���	������������������"����(�b�s�'�������������	���������������/�b�s����������1�b�2���3���	����
�����������5�b�6���7���	����
�����������$�b���p�b�^�	��b���b������i�a��b��b���P������2�>�b�k�P�
��i�7�i�T�:���N�O��i�_�^�8�3����U��>��P����'��G�b�H����������	����
>���
@���
B���

���=�������b��i�_�^�8��1��J�b�����������:���

���=���b��i�_�^�8�3��	�n�������
B���

���=�����b��i�_�^�8�3��^��L�b�M����������������������b��i�_�^�8�3������������~��P�b�Q����������y����PInfo�T�ATTRreducibility���Tprt�Tdecl��has_sizeof_inst�����	|�U���������	|�U��has_sizeofmk���T�PInfo�d�ATTR�(���dclass�V�d��prt�ddecl�Rsizeof_spec�����	|�U�����S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O��������b��������#�����	|�U�����S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O��������PInfo�g�ATTR�'���gEqnL�gprt�ggind���Rdecl��add�����	|c�O�S���	|�i�O
Proj���R�h���S��rec���i���{���S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O���i�PInfo�h�ATTR�c���hproj�h�Rdecl��add_assoc�����	|�i�O��������h'������	|�i�O
Proj���R�k���'�j�i������'�U�V�X�>�/�0�/���S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O���_�PInfo�k�ATTR�c���kproj�k�Rdecl��zero�����	|�i�O���	|�i�O
Proj���R�l�����i�����S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O���^�PInfo�l�ATTR�c���lproj�l�Rdecl��zero_add�����	|�i�O��T�	��
?�h��k�n�p�l���	|�i�O
Proj���R�m�����+�i����T�	��
>�h����n�p�����S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O���8�PInfo�m�ATTR�c���mproj�m�Rdecl��add_zero�����	|�i�O��|�������	|�i�O
Proj���R�n�����+�i������������S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O���3�PInfo�n�ATTR�c���nproj�n�Rdecl��neg�����	|�i�O����	|�i�O
Proj���R�o������i���R���S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O����PInfo�o�ATTR�c���oproj�o�Rdecl��add_left_neg�����	|�i�O��|�	��
?�
A��������m�n�����o�����"���	|�i�O
Proj���R�p���5�+�i����������
@���������������(�����B���S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O�����PInfo�p�ATTR�c���pproj�p�Rdecl��add_comm�����	|�i�O���������������y���	|�i�O
Proj���R�q�����+�i�������.�/���'�����S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O�����PInfo�q�ATTR�c���qproj�q�Rdecl��mul�������	|�i�O
Proj���R�r	���S�����S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O�����PInfo�r�ATTR�c���rproj�r�Rdecl��mul_assoc�����	|�i�O�� �!���'��'�r'���������	|�i�O
Proj���R�s
�����+�i���� �!'�U��>��>��>���������S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O����PInfo�s�ATTR�c���sproj�s�R	decl��one���\���	|�i�O
Proj���R�t���^���S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O�����PInfo�t�ATTR�c���tproj�t�R
decl��one_mul�����	|�i�O�(�|���������s�	����t���	|�i�O
Proj���R�u���H�+�i���(�����������8�	����?���S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O�����PInfo�u�ATTR�c���uproj�u�Rdecl��mul_one�����	|�i�O�/�|�=�C���	|�i�O
Proj���R�v
�����+�i���/���U�[���S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O����PInfo�v�ATTR�c���vproj�v�Rdecl��left_distrib�����	|�i�O�1�2�3����"��������	|�i�O
Proj���R�w�����+�i���1�2�3'�U���6�/�������S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O�����PInfo�w�ATTR�c���wproj�w�R
decl��right_distrib�����	|�i�O�5�6�7������������	|�i�O
Proj���R�x�����+�i���5�6�7'�U���1�/�������S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O�����PInfo�x�ATTR�c���xproj�x�Rdecl��zero_ne_one�����	|�i�O�$�n�p���	����?���	|�i�O
Proj���R�y����+�i���$�������	��>�@���S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O���i�PInfo�y�ATTR�c���yproj�y�Rdecl��nonneg�����	|�i�O�����	|�i�O
Proj���R�z���J�j�i�������S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O���P�PInfo�z�ATTR�c���zproj�z�Rdecl��pos���L���	|�i�O
Proj���R�{���J�Q���S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O�����PInfo�{�ATTR�c���{proj�{�Rdecl��pos_iff�����	|�i�O�2�>�k�{�
��z�7���&�:�
�=�������!�*�p�q�U���	|�i�O
Proj���R�|�����+�i���2�>�k���
����7���F�:�

�=�������>�A�I�����U���S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O��>�PInfo�|�ATTR�c���|proj�|�Rdecl��zero_nonneg�����	|�i�O������
B�

�=�������(�������	|�i�O
Proj���R�}����+�i�������1�
C�
���~���#�� �)�������S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O��'�PInfo�}�ATTR�c���}proj�}�Rdecl��add_nonneg�����	|�i�O�G�H������'��>'�V�g�
@>�
B>�

>�=>�,'��>'��>'�>'�>'�(>'��>'��>'���	|�i�O
Proj���R�~���x�+�i���G�H��M��P����'�z�{�
@���
B���

���=�����'����'����'���'���'�(��'����'����'���S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O���PInfo�~�ATTR�c���~proj�~�Rdecl��nonneg_antisymm�����	|�i�O�J�����K�F�������t�v���=�@�H������4��'�
B'�

'�='�����'�'�'�('��'��'���	|�i�O
Proj���R������+�i���J�����{��'�:'���������������������U�o��>�S�T�U�-�X�[�^�a�d�g�j���S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O���PInfo��ATTR�c���proj��Rdecl��mul_nonneg�����	|�i�O�L�M��L��O�Q����>��>��>��>�V�Y�\�_�b�e�h�k��'�8>'�?>'�u>'�v>'�w>'�x>'���	|�i�O
Proj���R�����z�+�i���L�M��|��~������������������������������������������'�8��'�?��'�`��'�d��'�h��'�l��'���S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O���PInfo���ATTR�c����proj���Rdecl��mul_pos�����	|�i�O�P�Q������'��>'�u���	|�i�O
Proj���R�������+�i���P�Q����������'�����S���f���x�������������������&��'���.���0�
�4�#�8�/�:�0�;�1�<�V�E�]�F�}�I���K���O���PInfo���ATTR�c����proj���Rdecl��pos_default�����	|�:�����O���	|�:���id�Ononneg_comm_grouppos_default�PInfo���decl��equations_eqn_1�����	|�:�����O��������	|�:�����O��PInfo���ATTR�'����EqnL��SEqnL��ATTR�c����decl��rec_on�������	|���Q���������{�����'����������������������&���'���.���0��4��8�*�:�1�;�+�<�B�E�I�F�c�I�|�K���O���b�����i�_�^�8�3������������������i�P��>'���	|���Q�������Q��rec�����PInfo���ATTR�c����auxrec��prt��auxrec��rec_ondecl��cases_on�����V�_�PInfo���ATTR�c����auxrec��decl��to_ring�����	|s�Oring���	|���O���������������8��`�d�h�l�PInfo���VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��VMC��������f_fresh%��(
VMC�������
VMC���������
VMC���������
����
ATTR�(d��class����ddecl��to_zero_ne_one_class�����	|s�Ozero_ne_one_class���	|���O�mk����zero_ne_one���PInfo���VMR��VMC�������

ATTR�(d��class����ddecl��to_nonneg_comm_group�����	|s�O�����	|���Ononneg_comm_groupmk����������������pos_iff%��zero_nonneg%��add_nonneg%��nonneg_antisymm%�PInfo���VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��VMC��������f_fresh%���
VMC�������
VMC����VMC���������
��ATTR�(d��class����ddoc��Extend `nonneg_comm_group` to support ordered rings
 specified by their nonnegative elementsdecl��no_confusion_type�������	|P�Pv1��v2��P���	|���P����������������N�P������'>����'�>����I�J�W�P�������>�����I�J�K���^�����P�������h�i'���p�i����i�������������
@��������>'���������n���������������v�	����
>���h���i�P���������������� ���!�������������&���'�(��������������.�/��������������'�+�,�0�1���2���3���	�
�P�
����<�:�:�4�5���6��7�3�T�8���8���8�i�	��8�W�8���Q�M�M�8�$��n��p����	�����'�:�+�;��8��<�2�>�^�5�6�7���_�:�_�

�_�=�_��������������U�E�n�_���_�
B�_�y�F�G�i�H���`��a�P�g�h�
@���
B���:�;�i�_�^�8�3������I�J���~����T���N�O�_�^�8�3��������f�n���������K�L�b�M���������������������b��i�_�^�8�3��������������O�P���Q�������������������������������b��i�_�^�8�3�������������������N���P��������������������������T�	����W��������������������
>���h���n���p�������T �	���
>��h�'�n��p�����!���+�T"�	��-�
>�-�
@�-���-��>'���-���-�n�-���-�7���-�#�T$�	��J�
>�J�h�J�i�P�R����I���J%���J� �[�!&�T'���_���_�d�e�d�&�[�'�(�^�`�a���_���_�	��_���_�.�/�_�T(������������'�	��������0�1���2)�3*�T+���������P�	����W�����������4�5���6���7���T,���������i�	����W�����������8�$���n���p�����	�������'�:�����;�����<�2�>-�5�6�7��.�:���

���=����������������U�E�n�������
B�����F�G/�H0��`��a�P�	�3�
>���
@���
B���

���=���i�_�^�8�3������I�J����~�����2�:��

��=��_�^�8�3��������T���n��������K�L1�M�����������5���+���+���+���+�b��i�_�^�8�3��������������O�P��Q������������6���K���K���K���K���b��i�_�^�8�3�������������add_eq�T������4�+���izero_eq�T�k���_neg_eq�T���+�K���8mul_eq�T���K��78���one_eq�T�x����nonneg_eq���y��J��pos_eq��9��J�������PInfo���ATTR�c����prt��decl��no_confusion�������	|���P�������h12�T��������'���	|���P������������)�N'a��h1a�T�N>����>'h11�T����)*>����������>����������P��i�d�e�W����������P���i�d�e�f�g���p��������������'���p���������v���
@��������>'���������n������� ����������	���
>��h��i�P� 5�������������� ���!��������� A� B� A�&���'�(���������������&�'�.�/����
������'�g�h�0�1��2�3�3�8�T�^���^���^�P�	��^�W�^��� q� m� m�4�5�3�6�8�7�^�T�_���_���_�i�	��_�W�_��� �� �� ��8�$�8�W�p�8���	��8���8'�:��^��;��_��<�2�>�i�5�6�7����������������������U�E�� ��� ��F�G�b�H����`��a�P�������i�_�^�8�3������I�J����~��������:���M�N�_�^�8�3��������T���n������� ��K�L���M�������������������������������b��i�_�^�8�3��������������O�P���Q����������������������������b��i�_�^�8�3����������������T�����������i�i���T���_�_���T������8�8���T������+�-�����T�+���������-����������I������I�*�����!,��!G���_�!G�!$�3�!I���!L�������i�!W�P�PInfo���ATTR�c����no_conf��prt��decl�Rinj�����	|������-���<��G��H��c��s��u����&���'���.���0���4���8���:���;�0�<���E���F��I�&�K�E�O�_������D�����b�������	�
��!��!��!���������	�
�
>���h���J�p������� ����h��'� ��p������������������
�
@��������>'��������������!��������!5�	��+�
>�+�h�+�i�P�!���!1���+� �-�!�I�K���J���J�!��!��!��&�-�'�(�I�K�!����J���J�	��J���J�.�/�J�T�[���[���[���['�	��[���[�0�1�[�2�^�3�_���������P�	����W�����"�"�"�4�5�^�6�_�7���T�����������i�	����W�����"�"�"�8�$�_�n�_�p�_���w�x'�:�����;�����<�2�>���5�6�7�����:���

���=����������������U�E�n�������
B���"D�F�G���H����`��a�P�	����
>���
@���
B���

���=���i�_�^�8�3������I�J����~��������:���

���=���_�^�8�3��������T���n�������"e�K�L���M��������������������������b��i�_�^�8�3��������������O�P���Q���������������������������������b��i�_�^�8�3��������������T�N�����������������������_�^�[�J�I�-�+��������������b��"��i�_�^�8�3������������������i�P��>'�
��T���*���������
��T�*���_�
��T���*����3�
��#�����
��#�^��
����*���i�#���P���	|������-���<��G��H��c��s��u����&���'���.���0���4���8���:���;�0�<���E���F��I�&�K�E�O�_���!����!������!���!���!���!���!���!1��!��&�-�'�!��.�"�0�"�4�",�8�"5�:�"6�;�"7�<�"N�E�"U�F�"o�I�"��K�"��O�"���"���no_confusion�*�#���*�������������������_�^�[�J�I�-�+��������������b�#U��i�_�^�8�3������������������i�P��>'���#���T����i���T�����k���^���T���k�t���3���T�+��������K��[�������x��[���
��T���y����:�x���
��T�y�+���
��T���y������
��#����i�
��#����^�
����_�����^����
��#��#�>�
��#��#�'�
��#��#��
��#��#��
��#��#��PInfo���decl�Rinj_arrowl�����	|������-���<��G��H��c��s��u����&���'���.���0���4���8���:���;�0�<���E���F��I�&�K�E�O�_���!����!������!���!���!���!���!���!1��!��&�-�'�!��.�"�0�"�4�",�8�"5�:�"6�;�"7�<�"N�E�"U�F�"o�I�"��K�"��O�"���"�P�P���T����#��*�b�� �����T�l���_��T���+���K�x���8��T�K���3��#��^���#��P���	|������-���<��G��H��c��s��u����&���'���.���0���4���8���:���;�0�<���E���F��I�&�K�E�O�_���!����!������!���!���!���!���!���!1��!��&�-�'�!��.�"�0�"�4�",�8�"5�:�"6�;�"7�<�"N�E�"U�F�"o�I�"��K�"��O�"���"����P��$)andelim_left�n����
��$�
��#��
��n����
�� �����
�������-���$k�+���Rinj������*�������������������_�^�[�J�I�-�+��������������b��i�_�^�8�3������������������i�P��>'�$^�$�$tandelim_right�$`�$u�$��$^�#��$s�$��$�$t�$��$^�$e�$r�$��#��$s�$��$^�$h�$q�$��$e�$r�$��$^�$m�$p�$��$h�$q�$��$��$m�$p�$��PInfo���ATTRclassd��class��PInfolinear_nonneg_ring�indlu_1α�	|Cn�����Pe_1���S���f���x�������������������&��'���.���0�
�4�#eq_zero_or_eq_zero_of_mul_eq_zeroa��b�������b�c��7����p�3����%�8� �!�"���&�'>�:�1�;�+�<�2�>�8�5�6�7�,�-�.�/�3�������������U�E�C�D�E�%)�F�G�_�H�i��`��a�P�J�K�L�M���I�J�i��~����d�e�r�t�u�v�%8mul_nonnega�b�b�����������u�����t/���O/�����b��i�_�^�8�3���������������nonneg_totala�b�7���P�T���N��to_add_comm_group/��������i�_�^�8�3����P��>'�b��mk.����i�_�^�8�3������������������i�P��>'���%�u����������	|������-���<��G��H��c��s��u����&���'���.���0���4�������������������!�"��7��b�c����%��8�%�&�'���+�,>�:�0�;�1�<�2�>�3�5�6�7�9�;�<�>�3�������������U�E�W�X�Y�%��F�G�^�H�_��`��a�P�c�d�e�f�g�h��i�_�^�8�3����I�J�_��~���������������%������i��������������%M���%O���%Q�����b��i�_�^�8�3���������������������%n�P�d�e�g�%o�b���b��i�_�^�8�3����P��>'�%�b���	|���%
���%����{�����'����������������������&���'���.���0��4�����������������%��7�I�W� ����I�&c�8�a�b�c���g�h>�:�+�;�l�<�2�>�^�5�6�7�m�n�o�p�3�������������U�E�������&z�F�G�i�H���`��a�P�g�h�����:�;��i�_�^�8�3����I�J���~����T���X�������&������b���������������%M���%O���%Q�����b��i�_�^�8�3����������������������%n�P�8�9�:�%o��������i�_�^�8�3����P��>'�b��i�_�^�8�3������������������i�P��>'�nspace��prt��recdecl��sizeof�����	|α_inst��x�%�����	|������rec��x�'�����S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%�����������������������������������������������������������������'������������� ���W�����'$�'%�'$��'0�i�����b�_�����f�m���p���i��'C�^�����f�q�'>��'M�8��������3�����f�g�h�������b��i�_�^�8�����8�����'_��'m���������	�
�!��!����b�'w��'���'������� ���!��� ��������3�'��'��'���'����'8���(���f���������������	�����������'�����/���f�'��'���'�����1���2���3��� ��'��'+�'$�'��'���'����5���6���7��� ��'��'&�'$�'��'���'���������������	���J�!���7� �� ��!��b� ��'���'�����$���-����'��i���������'��P�'�����2�>�������7�i�F�U��(
>��P�%H��('��G���H��������	����
>���
@���
B���

���=���������b��i�_�^��(4��J��������� �� ��W� �� �� ��'��(D�����������������%M���%O���%Q���������b��i�_�^�8�3��������������(h������7���i�8�9�:�&��&��b��i�_�^�8�3��i�P��>'��(��PInfo���ATTR�c����prt��decl��has_sizeof_inst�����	|�������'���	|�������'��0�PInfo���ATTR�(����class�V����prt��decl��sizeof_spec�����	|�������S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%����(����b�%������'9�'����	|�������S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%����(��PInfo���ATTR�'����EqnL��prt��gind����decl��add�����	|c�%	�S���	|���%	
Proj���������S��rec/�����'�{���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%���PInfo���ATTR�c����proj����decl��add_assoc�����	|���%	���������2'�)�)�)���	|���%	
Proj���������)$��2���'����'�U�V�X�)>�),�)-�),���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%��i�PInfo���ATTR�c����proj����decl��zero�����	|���%	���	|���%	
Proj���������(����'���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%��_�PInfo���ATTR�c����proj����decl��zero_add�����	|���%	��|�	��
?�}�)��2������2���	|���%	
Proj���������)��)(���'����������)�)~�����)����S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%��^�PInfo���ATTR�c����proj����decl��add_zero�����	|���%	��|�)��)����	|���%	
Proj���������)��)(���'����)��)����S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%��8�PInfo���ATTR�c����proj����decl��neg�����	|���%	����	|���%	
Proj����������(����'�R���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%��3�PInfo���ATTR�c����proj����decl��add_left_neg�����	|���%	��|�	��
?�
A��)|�)��)���2��2�&�'��2���1�*���	|���%	
Proj���������*)�)(���'��������8�9�)��)��)��*�*�F�G�*���P�*4���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%���PInfo���ATTR�c����proj����decl��add_comm�����	|���%	�����������)��)��*i���	|���%	
Proj���������*q�)(���'�����.�/�)�)~'�*z���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%����PInfo���ATTR�c����proj����decl��mul���(����	|���%	
Proj������	���S�(����S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%����PInfo���ATTR�c����proj����decl��mul_assoc�����	|���%	�� �!�������2'�*��*��*����	|���%	
Proj������
���*��)(���'�� �!'�U�����*�>�*��*��*����S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%����PInfo���ATTR�c����proj����	decl��one���)Z���	|���%	
Proj���������)\���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%���PInfo���ATTR�c����proj����
decl��one_mul�����	|���%	�(�|�2�3�4�*���2�	��>��2���	|���%	
Proj���������+4�)(���'�(���K�L�M�*��+%�V�W�++���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%����PInfo���ATTR�c����proj����decl��mul_one�����	|���%	�/�|�+*�+/���	|���%	
Proj������
���+l�)(���'�/���+>�+B���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%����PInfo���ATTR�c����proj����decl��left_distrib�����	|���%	�1�2�3��*��)�)�*��*����	|���%	
Proj���������+��)(���'�1�2�3'�U�*��)3�),�*��*����S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%���PInfo���ATTR�c����proj����
decl��right_distrib�����	|���%	�5�6�7��*��)�)�+��*����	|���%	
Proj���������+��)(���'�5�6�7'�U�*��).�),�+��*����S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%����PInfo���ATTR�c����proj����decl��eq_zero_or_eq_zero_of_mul_eq_zero�����	|���%	���������K���+7�����)��7���4�5�)�'��,
���	|���%	
Proj���������,�)(���'������������*��4�5�,�7��o�q�)�>�U�,"���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%����PInfo���ATTR�c����proj����decl��zero_ne_one�����	|���%	����)����++���	|���%	
Proj���������,T�)(���'�"�����)��	��>�+,���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%��i�PInfo���ATTR�c����proj����decl��nonneg�����	|���%	�J���	|���%	
Proj���������J��12���'�O���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%��P�PInfo���ATTR�c����proj����decl��pos���,����	|���%	
Proj���������J�,����S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%����PInfo���ATTR�c����proj����decl��pos_iff�����	|���%	�2�>�k��2�
���2�7�,��&���
���)|�)��)��*�*�*��2��2�U���	|���%	
Proj���������,��)(���'�2�>�k�,��
��,��7�,��F�������)��)��)��*0�*3�*9�,��,��U���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%�>�PInfo���ATTR�c����proj����decl��zero_nonneg�����	|���%	�,�����������)�)~�,L�*�*�*�,��,����	|���%	
Proj���������-A�)(���'�,����1�
C�
���){�)�,W�*�*�*�,��,����S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%�'�PInfo���ATTR�c����proj����decl��add_nonneg�����	|���%	�G�H��,���,�'�,�>'�V�g�R�S�T�U�))'�)~>'�,'�*>'�*>'�*>'�,�>'�,�>'���	|���%	
Proj���������-��)(���'�G�H��-{��-~�,���'�z�{���������)��'�)~��'�)���'�*��'�*��'�*��'�,���'�,���'���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%��PInfo���ATTR�c����proj����decl��nonneg_antisymm�����	|���%	�J��,���-y�F�������*d�*f�,�*/�*2�*8�,��,����4���������)�*v�,�*'�*'�*'�,�'�,�'���	|���%	
Proj���������.�)(���'�J��,���-���������*t�*w�,�.�.�.
�.
�.��o��S�T�U�)*�-��, �-��-��-��-��-����S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%��PInfo���ATTR�c����proj����decl��mul_nonneg�����	|���%	������-z��-}�-���%M>�%O>�%Q>�-��-��-��-��-��-��-��-��*�'�+%>'�++>'��2>'��2>'��2>'��2>'��2>'��2>'���	|���%	
Proj���������.��)(���'������-���-��-��}�%M���%O���%Q���-��-��-��-��-��-��-��-��*���'�+%��'�++��'�.x��'�.|��'�.���'�.���'�.���'�.���'���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%��PInfo���ATTR�c����proj����decl��nonneg_total�����	|���%	���7�,��,��&���
�%o���)|�)��)��*�*�*�,��,��,��,���2��2��2��2���	|���%	
Proj���������/�)(���'���7�,��,��F�����%o���)��)��)��*0�*3�*9�,��,��,��,��.��.��/�/���S���f���x�������������������&��'���.���0�
�4�#���%�8�% �:�1�;�+�<�%3�E�%7�F�%B�I�%L���%m���%��PInfo���ATTR�c����proj����decl��pos_default�����PInfo���decl��equations_eqn_1�����	|�:������������	|�:�����/W�PInfo���ATTR�'����EqnL��SEqnL��ATTR�c����decl��rec_on�������	|���%
���'�����{�����'����������������������&���'���.���0��4����&k�8�&q�:�+�;�l�<�&��E�&��F�&��I�&����&����&����%�����i�_�^�8�3������������������i�P��>'�R���	|���%
���'���/���rec�����PInfo���ATTR�c����auxrec��prt��auxrec��rec_ondecl��cases_on�����/��/��PInfo��ATTR�c���auxrec�decl��to_domain�����	|s�%	domain/���	|��%	�%Q�-(�-+�,L�-/�-2�-5�-8�-;�*��+%�,Q�.x�.|�.��.��.��.��PInfo��VMR�_lambda_1VMR�_lambda_2VMR�_lambda_3VMR�VMC�������f_fresh���
VMC�����	
VMC�������	
VMC������
��
ATTR�(d�class��ddecl��to_nonneg_comm_group�����	|s�%	�����	|��%	���-(�-+�,L�-/�-2�-5�-8�-;�-&�,��.��.��/�/�PInfo�
�VMR�
_lambda_1VMR�
_lambda_2VMR�
_lambda_3VMR�
VMC�������f_fresh��q
VMC�
����
VMC���VMC�
�����
�
ATTR�(d�
classnonneg_comm_group�
ddoc��Extend `nonneg_comm_group` to support linearly ordered rings
 specified by their nonnegative elementsdecl��no_confusion_type�������	|P�Pv1�'v2�%��P���	|��P��'��%��������%�P���������>�������������������&���'�*�.�7�0�H�4�`��������3���I�[�W� ���7� h�C�p�^��� h�/��8�$�3���%���	��3���3>�:�l�;� ��<�2�>�_�5�6�7��
���3�������������U�E�n�i���i�
B�i�0�F�G��H�b��`��a�P�
�!��
@���L�M�N��i�_�^�8�3����I�J�b��~����8�9���I�J�K�0-���������������������(K�(L�(M���b��i�_�^�8�3����������������������%n�P� �� ��M�%o��������i�_�^�8�3����P��>'�/�����%���P�b�������!����������������W��0}�0~�0}������������#�$����!5�!��!��!�'�n�+�p�+��!0���-�T�I�	��I�
>�I�
@�I���I��>'���I���I�n�I���I�0����I��J�!��	��[�
>�[�h�[�i�P�0�����J���[�^���[� �^�!�_�����"�0��0��0��&�^�'�(�_�������������.�/���"�"��������'�	��������0�1���2���3���������P�������0��0��0��4�5���6���7���T�����������i�	����W�����1�1�1�������������1�1�n���p����7�T�����p�����1%�1)�8�$���n���p�����	�������>�:�����;�����<�2�>���5�6�7�����:���"Z�"[�3�������������U�E�"��"��"Y�1I�F�G�*�H���`��a�P�	��+�
>�+�
@�+�
B�+�

�+�=�+��i�_�^�8�3����I�J���~������k�:�k�

�k�=�k�i�_�^�8�3������#��n�+���+�1g���������k�����������x�%M�x�%O�x�%Q�x���b��i�_�^�8�3��������������������k�%n�P���+�:�+�1\�%o�+���+��i�_�^�8�3����P��>'�add_eq�$�*�zero_eq�$���ineg_eq�T�z���^mul_eq�#����3one_eq�T�����nonneg_eq���#���[��pos_eq��;��[���1��+�PInfo��ATTR�c���prt�decl��no_confusion�������	|��P��'��%�h12�T�/������'���	|��P��'��%���2���%'a�2'h1a�T�%>�2��>'h11�T�2'�;<>��2*�2/����������P�� 
�� ����� .�� =�� ?�� M�&���'� Z�.� g�0� }�4� ������8���^��� ~� ����p�_��7�T�i�0�p�i���2D�2H�8�$�^�C�/����	��^���^>�:� ��;��i��<�2�>��5�6�7�d�e�g�h�3�������������U�E�����f�2c�F�G���H����`��a�P�(�(�(�(�(�( ��i�_�^�8�3����I�J����~��������:��� ��!)�n�������2{�������������������!�%M��%O��%Q����b��i�_�^�8�3����������������������%n�P�����:���(�%o��������i�_�^�8�3����P��>'���T�!H������i�i��T�,�^�^��T���+���-�I�3�3��.����!?����J������J�!G�����,�b�!G���i�!G�!,�8�2����2���������i�2��P�PInfo��ATTR�c���no_conf�prt�decl��inj�����	|������-���<��G��H��c��s��u����&���'���.���0���4�����%��8�%��:�0�;�1�<�%��E�%��F�&�I�&���&)���&A���������������� ���'"�3!�3"�3!�������� ����!�� ��!������!)�(�(�h��'�2��p����!$��������
@������>'�������#����3L�����+�.�/�0�h�-�i�P�3a��2����-� �I�!�J�!��!����[�3l�3m�3l�&�I�'�(�J�!��!��!��!��!��!��.�/�[�T�^���^���^���^'�	��^���^�0�1�^�2�_�3���"�"�"�P�"�"���3��3��3��4�5�_�6���7���T�����������i�	����W�����3��3��3��������������3��3�������7���"O�p�������3��8�$���n���p�����0��0�>�:�����;���<�2�>���5�6�7�����:���

���=���3�������������U�E�1 �����
B���3��F�G���H����`��a�P�	���
>��
@��
B�����i�_�^�8�3����I�J����~������*�:�*�

�*�=�*�i�_�^�8�3������#��n�����4���������*�����������k�%M�k�%O�k�%Q�k���b��i�_�^�8�3��������������������*�%n�P����%o������i�_�^�8�3����P��>'��T�%��%���*�������������������_�^�[�J�I�-�+��������������b�4`��i�_�^�8�3������������������i�P��>'�
��$_�b�
��$�i�
��#��8�
��$d���
��$g���
��$o�i�$k��P���	|������-���<��G��H��c��s��u����&���'���.���0���4�����%��8�%��:�0�;�1�<�%��E�%��F�&�I�&���&)���&A������3-�����38��3E��!$��3\��3i��2���3x�&�I�'�3��.�3��0�3��4�3����3��8�3��:�3��;���<�3��E�3��F�4�I�4&���4E���4]��4���no_confusion.���4��%�����*�������������������_�^�[�J�I�-�+��������������4��b��i�_�^�8�3������������������i�P��>'��4���q�*���u���_��|���8�����3��#�������^���
��T���#����1�<����
��T�#��x���
��T���#��1��k���
��5$�*��
��5(���_�
��1������1��_����
��5*�5?>�
��5/�5>'�
��52�5=�
��55�5<�
��58�5;�PInfo�#�decl��inj_arrowl�����	|������-���<��G��H��c��s��u����&���'���.���0���4�����%��8�%��:�0�;�1�<�%��E�%��F�&�I�&���&)���&A������3-�����38��3E��!$��3\��3i��2���3x�&�I�'�3��.�3��0�3��4�3����3��8�3��:�3��;���<�3��E�3��F�4�I�4&���4E���4]��4�P�P���#�������#���b��T�$���i��T���x�#����^��#��8����_���5;�P���	|������-���<��G��H��c��s��u����&���'���.���0���4�����%��8�%��:�0�;�1�<�%��E�%��F�&�I�&���&)���&A������3-�����38��3E��!$��3\��3i��2���3x�&�I�'�3��.�3��0�3��4�3����3��8�3��:�3��;���<�3��E�3��F�4�I�4&���4E���4]��4��'�P��5��$^�$�k���
��5��
��5�
��$�3�
��#����
����+��I���5��-����inj���+�k����*�������������������_�^�[�J�I�-�+��������������b��i�_�^�8�3������������������i�P��>'�$^�5��5��$��5��5��6)�$^�5�5��$��5��5��60�$^�5��5��$��5�5��67�$^�5��5��$��5��5��6>�$^�5��5��$��5��5��6E�$��5��5��6L�PInfo�%�ATTR��d��class��declnonneg_ringto_ordered_ring_proof_1��snonneg_ringa�e�f�����nonneg_comm_groupto_ordered_comm_group����,�6���������6��6��PInfo�+�	decl�*_proof_2���,�6�abca()*+,��'�6�'�6�'�5?@ABC��>�6�>�6�>'���������������6����6���>'��,�6����6��PInfo�1�	decl�*_proof_3���,�6�ab�kmo���6��6��
�
�6��7�6���,�6�lt_iff_le_not_le�6��PInfo�6�	decl�*_proof_4���,�6�ab�5�6��5�6��v��,�6��5�6��PInfo�:�	decl�*_proof_5���,�6�abh
���6�c'?@A���6���>�>�>ordered_cancel_comm_monoidto_add_comm_monoid>�6��7��,�6�add_le_add_left�6��PInfo�=�	decl�*_proof_6���,�6�abhmo�7c'z{�7�7 �7"��,�6�add_lt_add_left�6��PInfo�E�	decl�*_proof_7���,�6�ab�e
ordered_comm_groupto_partial_order�Nmk�-add�-add_assoc�-zero�-zero_add�-add_zero�-neg�-add_left_neg�-add_comm�6��6����6����6��6��6��5�6��7*�6��7=�6��/�|mk�7P�-one�-zero_ne_one�e()*�7B'�7D'�7F'�7J'�7N'�7R'�7V'�7Z'�7^'�7b'�6�tu�6���'�6���'�6��6�'�6��6�6��7*'�6��7='�6�4�/'�7'�7��7�'�7�'?@A�7B>�7D>�7F>'�7J>'�7N>'�7R>'�7V>'�7Z>'�7^>'�7b>'�6�z{�6����6����6��6�>�6��5>�6��7*>�6��7=>�6�K�/>�7>�7��7�>'�7�>'UWM��>ringmk>�7��7��7��7��7��7��7��7��-mul>'�-mul_assoc>'�8�-one_mul>'�-mul_one>'�-left_distrib>'�-right_distrib>'��,�6��L�M��88�e�/nonneg�6��e�8>'�6��8>>�6��85���88�8Iimp_congr_eq�7��e�7��7�����6��'�8
'�7��7��7��7��7��7��7��7��8'�8'�7��8 '�8$'�8('�8,'�8A�e�8@�8C�8s�
��6���������6��8A�symm�8A�8��/nonneg_def�6��8N�8P�7��(�)���8
�7H�7L�7P�7T�7X�7\�7`�7d�8�8�7��8 �8$�8(�8,�8x�8@�8��
��8��8x�8��8x�8��8��
��8��8��8��8��8��8��8��8��)mul_nonneg�PInfo�K�	decl�*_proof_8���,�6�ab�emo�7{�7��etu�7��7�z{�7��8
�85��,�6��j�k��8��e�/pos�6��e�8�'�6��8�>�6��85���8��8��8N�8��e�8��8��8s�8��e�8��8��8s�
��6��8��8��8��8��9
�/pos_def�6��8N�9�8��8��9�8��8��
��9	�9�8��9�9�9�
��9	�8��9�8��9�9%�9�8��)mul_pos�PInfo�i�	decl�*���,�6�ordered_ring��,�6��>mk�7F�7J�7N�7R�7V�7Z�7^�7b�8�8�7��8 �8$�8(�8,	�6����6��+��1��6��:��=��E��7��K��i��PInfo�*�	prt�*VMR�*_lambda_1VMR�*_lambda_2VMR�*_lambda_3VMR�*VMC�q�	�����f_fresh��W
VMC�r�	���v
VMC�s�	�����v
VMC�*�	�,��q
�r�s
decl�*equations_eqn_1���,�6����9<�*��9���,�6����9<�9��PInfo�x�	ATTR�'���xEqnL�xSEqnL�*ATTR�(d�*class�o�*ddecl�)to_linear_nonneg_ring_proof_1���,�6�nonneg_totala�7�)nonneg�9��������8�6�ab���Z���%'�8\4�
'�7��7��K�9�>�7��v�9���,�6��{�9��ab��9�'��vUWMN�
��9�>'K�8��>'�7�����0�9���>���9��~�'���9�>'�9���>��>��>�8>�6����vU�9�>�8�9��7�9����9����7N��>���:�Rna�9���������9����8��>�:�7���_�9��P�7N�P�����:&�����:�:
�7�:!�:$�:)�:$���:,�:6��:6��������������'�9���>�������8���6��9��7�����P���P���P�8�P�6��P���_�/�P�9��P���:)�:_���������������>�9��7�:!�:_�:b�8N�:N�7���:J�9��:�9��:p�7�9��:z���:N���:I�:n�9��:o������"�:G���:L�:�neg_mul_eq_neg_mul_symm���:h�9��9��*�9��
��:��:��:�neg_eq_zero���:G�:na����e_1�b����e_2�:������7>�7'�������>'�7�:x�9��
��:w�:��9��:��:��:z�:z��:z�:J
�ab��9���9�����:D�9��7��'�:_�:qab'na�9����9���>�:��:I����:D�9��:s'nb�:����������a�b���9��P���:_�7��'�x�/�i�9��i�P���;��������a���P�:f�P���:_�;���;
�;��;������:��:X�:_�;	�����i���i���i�8�i�6��i�P�;�;�8N�;%�:r���;"�:_�;�:s���;%���:X�;�:_�;�_��P���P�:V���P���ie_1���������e_2�����������>�;L'���������>'�;L�;#�;?mul_neg_eq_neg_mul_symm�P�;�:_�:_���P�:_�
��;@�;G�;H�:��P�:V�;�:��:q�:q��:q�;9�:b�
��;8�;G�:)�;G�;t'�;"abna�9�nb�9�z�:�classicalby_cases�9��P���:O�:P�:Q�@�P�7F�P���7J�P���:$�7R�P���7V�P���7Z�P���7^�P���7b�P��'�:�nna�;�orinl��>�;�;�)nonneg_antisymm�i�P>pa�7�;��;��9��i�P�;&�;'�;(�;��i�7F�i�P�7J�i�P�7N�i�P�7R�i�P�7V�i�P�7Z�i�P�7^�i�P�7b�i�P'�7�;��;nnb�;�orinr�������/���9����i��>�;��;����i>pb�7�;��A�����������
����9����i��>�;��7�;��;�ne_of_gt�����������<�<�;��{�8����6����i�<���������������6����<��������������8���<�<�9���<�<�91���i��>���{���i���
��9����i���7�<A���������<)�;����7F���i�7J���i�7N���i�7R���i�7V���i�7Z���i�7^���i�7b���i���)pos_iff���i���
��<B�<d'���<=>�
��<A>�7�<A�<a>�<i>�
��<t�<xAnnot��PInfo�z�decl�y���,�6��{�9�linear_nonneg_ring��,�6��{�9����7F�7J�7N�7R�7V�7Z�7^�7b�8�8�7��8 �8$�8(�8,�z��7��9��<;�<g�-zero_nonneg�-add_nonneg�;��8��PInfo�y�VMR�y_lambda_1VMR�y_lambda_2VMR�y_lambda_3VMR�y_lambda_4VMR�yVMC��������f_fresh���
VMC�������
VMC���������
VMC����VMC�y��{�,���
����
decl�yequations_eqn_1���,�6��{�9����<��y��<���,�6��{�9����<��<��PInfo���ATTR�'����EqnL��SEqnL�ydecllinear_nonneg_ringto_nonneg_ring_match_1��s�<�abpalinear_nonneg_ringpospb�<�'a1��>'_a�
��=��>�7�=�������;�������>����>����>����>����>����>����>����>�<��P�������a�;�8
�P�=
�P���=�P���=�P���=�P���=�P���=�P���="�P���=&�P����mul�P����mul_assoc�P����one�P����one_mul�P����mul_one�P����left_distrib�P����right_distrib�P��>'����<��������<����=���=���=0���=�P��'�7�=x�:O�:P�:Q�;��=5�=8�=;�=>�=A�=D�=G�=J'���
��=y�=��<��i�PT�iV�i�z���i�8
�i�=
�i�P�=�i�P�=�i�P�=�i�P�=�i�P�=�i�P�="�i�P�=&�i�P�=L�i�P�=P�i�P�=T�i�P�=X�i�P�=\�i�P�=`�i�P�=d�i�P��>left�=yright�7�=�i�P�;&�;'�;(�;��=��=��=��=��=��=��=��=�>id_rhs�<����i�����������8
���=
���i�=���i�=���i�=���i�=���i�=���i�="���i�=&���i�=L���i�=P���i�=T���i�=X���i�=\���i�=`���i�=d���i�P��
ab�=���i���
����
�������i�P��
���<����������������8
���=
�����=�����=�����=�����=�����=�����="�����=&�����=L�����=P�����=T�����=X�����=\�����=`�����=d�����i�P�
��=�����>V�7�>Z�������������;����>%�>(�>+�>.�>1�>4�>7�>:�>V��pos_iff�����>V�
��>[�>nhn�>m
�����
���
���>������i�<�
���>}
���������9����=��������>��E��eq_zero_or_eq_zero_of_mul_eq_zero��������<����
���������6����
������>��{�8����>���l��n���>��>�������������8���>����9���>����i�>����>��{�>����>����>����PAnnotcheckpointAnnothave��nonneg_antisymm����>�Annot��Annot����mul_nonneg���i�P���PInfo���,	decl��equations_eqn_1�����<��������<����=���=b1�=b2�=��	��=�����i�P��>'�
��=�>�=�
���=��=��
��i�
��i�>�i�P��>
���>�
��>�>�7�>�<D�<E�<)�<F�=��=��=��=��=��=��=��=��>�>q���i�>�
��?�? ���?
��������
����
����>�����i�P���
����?/
�������<�9���=������i�?>�E�>�������i�<��	�
�����6���>�������?>�{�8���?O�����?T�<���������8��?O���9��?O���P�?U�i�?>�{�?Y�i�?g�i�?k�i��Annot��Annot���>������?3Annot��Annot���>��i�P��>����<��������<����=���=���=���=��	��=�id_delta�=��?�PInfo���,	ATTR�'����EqnL��decl��_match_2�����<��������<����=_a�
��=�7�=�9��9��9��;�>�=
>'�=>'�=>'�=>'�=>'�=>'�=">'�=&>'�<���>���������8
���=�=�=�=�=�= �=$�=(�=L��>�=P��>�=T��>�=X��>�=\��>�=`��>�=d��>'����<��������<����=���?����='�7�=�=,'���
��?��?��=n���?����7�=x�=�>�=��=��>��{�=�>�
��>��=��>q�i�P>�PInfo���,	decl��equations_eqn_1�����<��������<����=���=a2�?��	��=n����P��>'�
��=x>�@�>��P��>'�{�=2'�=��>q�P��'����<��������<����=���=���?��	��=n�?��=n�@,�PInfo���,	ATTR�'����EqnL��decl��to_nonneg_ring_proof_1�����<��������<����=�<�>'UWM�8�8�?��?��?��?��?��?��?��?��=L>'�=P>'�=T>'�=X>'�=\>'�=`>'�=d>'����<��������<����=�@ >'�{�@T�?��>q>'�PInfo���,	decl�������<��6�����<��R�=
�=�=�=�=�=�="�=&�=L�=P�=T�=X�=\�=`�=d��zero_ne_one�=�<��>q��zero_nonneg��add_nonneg�>��>�����PInfo���,	prt��VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��_lambda_4VMR��VMC���,	�����f_fresh��2
VMC���,	����
VMC���,	������
VMC���,	�VMC���,	�����
����
decl��equations_eqn_1�����<����@�����@�����<����@��@��PInfo���,	ATTR�'����EqnL��SEqnL��ATTR�(d��classnonneg_ring��ddecl��to_linear_order_proof_1�����<��.�e�f�������9��@�����<��6������
��9��@��PInfo���9	decl��_proof_2�����<��2�3�4�5()*+,-�
��9�'�@�'�5?@ABCD�
��9��@�>'�������������'�:>�@���>'����<��6��A	�PInfo���9	decl��_proof_3�����<��7�8�kmo��9��@��
�
�AD�7�AK����<��6��A	�PInfo���9	decl��_proof_4�����<��;�<�5�AM�5�A�6�����<��7�A�PInfo���9	decl��_proof_5�����<�ab�7
�6��6��>��An����<��{a�7�8>�>��A|�9��9����9��A{�Av�/nonneg_total_iff�>���nonneg_total�PInfo���9	decl�������<�linear_order����<�linear_ordermk�9n�9o�A	���A	����������������PInfo���9	prt��VMR��VMC���9	���decl��equations_eqn_1�����<����A�����A�����<����A��A��PInfo���9	ATTR�'����EqnL��SEqnL��ATTR�(d��class����ddecl��to_linear_ordered_ring_proof_1��A�A�PInfo���D	decl��_proof_2��A8�A;�PInfo���D	decl��_proof_3��AW�AZ�PInfo���D	decl��_proof_4��Ab�Ae�PInfo���D	decl��_proof_5�����<��>�?�@
�7
�AA�A'?@A���A��7�7�7�7�A�A�����<��7+�A�PInfo���D	decl��_proof_6�����<��F�G�Hmo�A��I'z{�A��A��A�����<��7>�A�PInfo���D	decl��_proof_7�����<�ab�e
�7C�7E�=
�=�=�=�=�=�="�=&�AK�AF�7h�AD�7k�AD�7n�AD�7q�AC�7t�AA�7w�AA�7~�7��A��=T�@��e()*�7��7��=
'�='�='�='�='�='�="'�=&'�Atu�A�7��A�7��A�7��A�6�A�7��A�7��A4�7��7��B-�=T'�@�'?@A�7��7��?��?��?��?��?��?��?��?��A#z{�A!���A!���A!�7��A!�7��A �7��A�7��AK�8�8�?��@d�@�>'�@w����<���B�����e�8?�Ag�e�8B�>�'�8E�>�>'�@w���B��B�forall_congr_eq���B����B����B���B���B���8N�B%�e�B$�B[����6�8Q�8R�B'�B*�B-�B0�B3�B6�B9�B<�=L'�=P'�BT�=X'�=\'�=`'�=d'�B��e�B��B��B��
��An�8|�8}�8~�8��Ag�B��8��B��B��8��Ag�8N�B��B$�(�)�8��8��A��A��A��A��A��B�B�B�=L�=P�B�=X�=\�=`�=d�B��B��C�
��B��B��8��B��C�B��
��B��C�C�8��C�C�B��C�@��PInfo���D	decl��_proof_8�����<�ab�emo�B�B#�etu�BO�BZz{�Bv�B�@w����<���C3���e�8��Ag�e�8��B��8��B��@w���C3�C@�B���C2��C?��B���C1��C>��8N�C'�e�C&�C*�B��C8�e�C7�C9�B��
�mo�Al�B��C8�8��C8�CZ�9�Ag�8N�CN�C&�C�CS�C7�C�
��CY�CS�8��CS�Cj�C_�
��CY�C�Ch�8��Ch�Cs�C_�C�91�@��PInfo��D	decl��_proof_9�����<�ab�7
�-�A��C�����<����A��PInfo��D	decl��_proof_10�����<������A��@��@�����<����A��@��@�h�@��������8�6��@���
��
��>��	`�9��@��@������9��@���7�����;��=
�=�=�=�=�=�="�=&�>��C����=T�
���
s�C��C��C��C��C��C��C��C��=L�=P�=T�=X�=\�=`�=d�>��C��A��C��D�C��C����<�����'e_2�9���u����=�D�C����C�V����:f�@��D�9��9������D-�C��A��D�C��D9�D6�D2�C��D:�;d�D-�D�C�chas_neg����'e_2�D��������A��D=�D�D)�D1�D7�C��D6�D1�C��C��D�:��D-�C��C��DS�DZ�C��f��to_monoid�D-�C�neg_neg�A��C��>��D�D���C��������9��6��@���
��>�C��C��D�������A���7���A��C�_a��=�����8~�8��6��A>���>���	_�9��A>�D���D��Dzero_sub�A��C��D��D��PInfo��D	decl�������<��
m����<��2mk�@��@��@��@��@��@��@��@��@��@��@��@��@��@��@��A��A��������������������@�����������PInfo���D	prt��VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��VMC��D	�����f_fresh���
VMC��D	���
VMC��D	�����
VMC���D	����
��
decl��equations_eqn_1�����<����D�����E����<����D��E�PInfo��D	ATTR�'���EqnL�SEqnL��ATTR�(d��classlinear_ordered_ring��ddecl��to_decidable_linear_ordered_comm_ring_proof_1�����<�abc�Z�
�has_addmk'�
u'�E'�E�E�E����<��
z�E�PInfo��W	decl�_proof_2�����<�a���-�.add_semigroupmk�
u�E�
y�E.��9��
}�E.����<��
��E�PInfo�$�W	decl�_proof_3�����<�a�E)�E5�E:����<��
��E�PInfo�(�W	decl�_proof_4�����<�a�E)�-�.�/add_monoidmk�E/�E2�E8�
��E.�
��E.�9�has_negmk�
��E.��7�EY����<��
��E�PInfo�*�W	decl�_proof_5�����<�ab�8����E*�
u�E�
y�Et�E{����<��
��E�PInfo�0�W	decl�_proof_6�����<�abc�Z���9��
�'�E�E��E��E�����<��
��E�PInfo�3�W	decl�_proof_7�����<�a�E)�C���semigroupmk�
��E.�
��E.�has_onemk�
��E.����<��
��E�PInfo�7�W	decl�_proof_8�����<�a�E)�E��E�����<��
��E�PInfo�=�W	decl�_proof_9�����<�abc�Z�E��E�E�E��E�����<��
��E�PInfo�?�W	decl�_proof_10�����<�abc�Z�E��E�E�E��E�����<��
��E�PInfo�C�W	decl�_proof_11�����<�a�ehas_lemk�2le�E.����<��le_refl�E�PInfo�G�W	decl�_proof_12�����<�abc�e(�E�'�E�'�E�e?�E�>�E�>�E>'���E����E����E��>'����<��le_trans�E�PInfo�M�W	decl�_proof_13�����<��2ab�kmhas_ltmk�2lt�Et�
��E��E��Et�7�F#�U����<��lt_iff_le_not_le�E�PInfo�R�W	decl�_proof_14�����<�ab�e
preordermk�F!�F�E��Et�F�Et�F2�Et�e()�F7'�E��F'�E�E�'�E�F'�E�F2'�E�6�����<��le_antisymm�E�PInfo�Y�W	decl�_proof_15�����<�ab�e
partial_ordermk�F!�F�F<�F?�FB�F`�Etc'?@A�Fe>�E��F>�E��E�>�E��F>�E��F2>�E��F`>�E���7�7��>�9��?��
u>�E��
y>�E��
}>�E��
�>�E��
�>�E��
�>�E��
�>�E��
�>�E��F�����<��add_le_add_left�E�PInfo�_�W	decl�_proof_16�����<�ab�emo�Foc'z{�F��F��F�����<��add_lt_add_left�E�PInfo�f�W	decl�_proof_17�����<����9��
~�E��E��
��E����<��
��E�PInfo�k�W	decl�_proof_18�����<�����e
�7C�7E�Eu�Ex�
}�Et�
��Et�
��Et�
��Et�
��Et�
��Et�F!�F�F<�F?�FB�Fm�F��Et�F��Et�7~�7��F��
��Et�
��Et�e()*�7��7��E�
y'�E�
}'�E�
�'�E�
�'�E�
�'�E�
�'�E�
�'�E�E��FK�FN�FQ�FT�F`'�E�F�'�E�F�'�E4�7��7��G
�
�'�E�
�'�E?@A�7��7��F��F��F��F��F��F��F��F��E��Fw�Fz�F}�F��F��F�>�E��F�>�E�K�8�8�F��
�>�E��
�>�E�UWM�8�8�F��F��F��F��F��F��F��F��
�>�E��
�>�E��GU�
�>�E��
�>�E��
�>�E��
�>�E�����<��mul_nonneg�E�PInfo�l�W	decl�_proof_19�����<����emo�F��G�etu�G-�G8z{�GP�G[�G}����<��mul_pos�E�PInfo�n�W	decl�_proof_20�����<�ab�7�Fs�Fq����<��le_total�E�PInfo�p�W	decl�_proof_21�����<�����7B���9@�
v�E�E&�F��EB�EL�
��E�Em�E��
��E�E��F��E��E��E��E��E��E�F�E�E��F�F4�Fb�F��F��F��G��G��F��F�����<��zero_lt_one�E�PInfo�t�W	decl�_proof_22�����<�commis_commutativeT�
��C�ab�Z���C�
��>'�G�����<��w�G�is_commutativecomm�C��C��D��PInfo�v�W	decl�_proof_23��E��E��PInfo�}�W	decl�_proof_24��F�F�PInfo�~�W	decl�_proof_25��F1�F6�PInfo��W	decl�_proof_26��F_�Fd�PInfo���W	decl�_proof_27��G��G��PInfo���W	decl������<�_inst_1decidable_pred�@��w�G��G��	E����<����H�w�H��mk�Eu���F��$��(��F��*��0��
��Et�3��F��7��=��?��C��F!�F�G��M��R��Y��_��f��k��l��n��p��t��v�ab'��>��>�9��9��6��A����'decidable_eq_of_decidable_le>�A ��>����>���P���P�:Q�:R�:S�@��P������'decidable_lt_of_decidable_le>A��A�>�E��Fw�}�>'�~�>'��>'���>'���>'�H��PInfo��W	prt�VMR�_lambda_1VMR�_lambda_2VMR�_lambda_3VMR�_lambda_4VMR�VMC���W	�����f_fresh�
VMC���W	����
VMC���W	������
VMC���W	�����f_fresh����������<algebrasubVMC�+�W	�w�������
����
�������*�1�����_main����to_partial_order���_maindecl�equations_eqn_1�����<����H�w�H���H���H�����<����H�w�H���H�H��PInfo���W	ATTR�'����EqnL��SEqnL�ATTR�(P�classdecidable_linear_ordered_comm_ring�PPInfocanonically_ordered_comm_semiring�eindlu_1α�	|Cn�����Pe_1add�Sadd_assoc�fzerozero_add�xadd_zero��add_comma��b�P����������>�H�le�5�P�5�i�lt�5�i�5���le_refla��has_lele����has_lemk}��le_transa��b�c���5�H����H���>�5�H���H�����H����H����P'lt_iff_le_not_le�2a�b���k�	���has_ltmk}��'�
��H��7�H��Ule_antisymma��b���5�H��}��mk}���>'�5�H��I���I���P��>'��add_le_add_lefta��b���H��I�	����mk}���P��>'c���H����I���	����I/�����i�P��>'���
>���
@���}���mk}�������������IYlt_of_add_lt_add_lefta�b��c����	����	����IF�IX�If�	���	���	���I/������i�P��>bot��bot_lea���IHlatticehas_botbot}����has_botmk}��le_iff_exists_adda��b��k�H��3�I�3�	��3�	��3�mk}�3�����������������i�P��>'Exists}�3c�3�&f�N�
>�8�
@�8�IK�8�}�8�I��8������������������i�P��>�������3�8���3� �8�!�^� ~� � ��I��I��I��&�8�'�(�^� ~� ���_���_�	��_���_�.�/�_�2D���i���i���i'�	��i���i�0�1�i�2��3�b�s�'�����P�J�W����I��I��I��4�5��6�b�7���f�������i�g�W���b�J�J	�J	zero_mula�b�s�I��-�-mul_zeroa���f�J	�'>�'>mul_comma��b��� ����������������J+�8�$���'��	��������Pmul_eq_zero_iffa��b���k��� �� �� �comm_semiringto_semiring}����mk}�����������b���������i�P��>'��to_has_zero}�����������7���J]���J]����mk|���������b��i�_�^�8�3������������������i�P��>'���H��u����������	|������-�����<���G����>�����I�J�K����>�J����5���5�P����H������i�H����H�����������������5�H����H���>�5�H��H����H��H��P'���2��������k�	����H���'�
��J��7�J��U����������5�H��I���I����>'�5�H��I�I�P��>'��������������H��I�	���I/��P��>'�����H����I���	����I/�����i�P��>'���
>���
@���IK���IM�������������K(���������������	����	����K�K'�K5�Ib�Ic�I>�I?�����i�P��>����������K�I~���I��������������k�H���I��Im�	���I�������������������i�P��>'�I������%�
�
>�3�
@�3�IK�3�I��3�I�������������������i�P��>���������3���� �3�!�8� h� i� j�K��K��K��&�3�'�(�8� h� i���^���^�2U�2V�.�/�^� ~� �I��I�'�I��I��0�1�_�2�i�3������b���b�P�c�W�b��K��K��K��4�5�i�6��7�b�s�'�I��i�J�I��b�K��K��K���������K������_�K������b�s�K��u�+�i�K������������	���������������K��8�$�����'<��'��'��P�����������k�!)�������J;���J=�����������b���������i�P��>'�2��JV�����������7�!)�L�!)�L�H������	|���H����J����{������'�������������P���i�d�e�f�g��>�LH���H����5���5����������H���H����������������5�H��H�>�5�H��H����K
�H����P'���2���������k�	���H��'�
��L[�7�L[�U����������5�H��I�I��>'�5�K
�K�I���P��>'�������������K
�K�K�K�P��>'�����KP�KQ�Im�In���i�P��>'��
>��
@��IK��IM������������L�����������������Ik�Il�L��L��L��	��3�	��3�I��I/�3�����i�P��>�����������L��I~��I����������3�k�H��8�I�8�	��8�	��8�I������������������i�P��>'�I��8���8�/�� n�
>�^�
@�^�IK�^�I��^�I��^������������������i�P��>����3���8�^���8� �^�!�_�2D�I����i�M!�M"�M!�&�^�'�(�_�2D�I��I��I��I��I��.�/�i����������'�	������0�1��2�b�3���f���J�P�g�J
��MM�MK�MK�4�5�b�6���7���	����i�
��b�M]�M[�M[�������f�MJ���'<�_�Mn�������	�M[�J�!��i�Mv�����������!)���������������M��8�$��� ��!���	��������P�����������k��!�!�!�J;��J=����������b���������i�P��>'�#�JV���������7��M���M����������b��i�_�^�8�3������������������i�P��>'�nspace��prt��recdecl��sizeof�����	|α_inst��x�H������	|������rec��x�M������S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh�������������������������������������������������������������!H��!H���a��b��c��!5�!��W�+���N
�N�N
��N�����������a�������
�����������N,�b�a�����N%�N'��N7�������������������NA��NI�i���5���2����NP�_�NS�^������H����H����i��N`�8�������������5�H��+�H��+�b�5�H��-�H��-���H��I�H��I��'��N}�3��2���������k�	���H���i�
��H���H����7�N��U��N������������5�N��I��I���i�_�^�8�5�Ng�I�+�I�+�b��i�_�^�.��N��������������N��N��	���I/���i�_�^�8�3���+�Nm�I�-�	��-�I/�-���b��i�_�^�/�0�1�IK�-�IM�-������������N���N�����������������	��+�	��+�	��+�I/�+�b��i�_�^�8�!��!��
@�+�IK�+�IM�+�������������O�	��-�	��-�N���O���N�������NZ�I���	����I/���i�_�^�8�3��I~���I�������O;������������k�N��N��N��	���I�������������b��i�_�^�8�3����I������!5�!��!��O�O�I��+�I��+�������������b��i�_�^�8�3���Ow���N������ ���!��!5���+���+��O��O��O���O����N����(����� �������������	�����������O��i��/�����O��O���O��P��1���2���3��!5�O��N�N
�O��O���O�����5���6���7��!5�O��N�N
�O��O���O�>�������� ��������N'�N'��O�'��������O��N'�N'��O������������!�����������O���O���$���2��3?���	�����������P
����������k��!�!�!�M��M������������b����������i�P��>'�#�M��M�����7�M��P/�M��P/��P8�PInfo���eATTR�c����prt��decl��has_sizeof_inst�����	|�������M����	|�������M����PInfo���eATTR�(����class�V����prt��decl��sizeof_spec�����	|�������S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh���Pb�����J��������N�O&�O����	|�������S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh���Pj�PInfo���eATTR�'����EqnL��prt��gind����decl��add�����	|c�H��S���	|���H�
Proj���������S��rec~�����M��{���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh���PInfo���eATTR�c����proj����decl��add_assoc�����	|���H�������������'�P��P��P����	|���H�
Proj���������P�������M�������'�U�V�X�P�>�P��P��P����S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh���PInfo���eATTR�c����proj����decl��zero�����	|���H����	|���H�
Proj���������P����M����S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh���PInfo���eATTR�c����proj����decl��zero_add�����	|���H����|�	��
?�}�P��������������	|���H�
Proj���������QZ�P����M������������P��QK�����QQ���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh�b�PInfo���eATTR�c����proj����decl��add_zero�����	|���H����|�QP�QU���	|���H�
Proj���������Q��P����M������Qd�Qh���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh��PInfo���eATTR�c����proj����decl��add_comm�����	|���H��������������Q]�Q`�Q����	|���H�
Proj���������Q��P����M��������.�/�P��QK'�Q����S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh�i�PInfo���eATTR�c����proj����decl��le�����	|���H��5�O���	|���H�
Proj���������R��~����M��5�5����S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh�_�PInfo���eATTR�c����proj����decl��lt���R���	|���H�
Proj���������R�R
���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh�^�PInfo���eATTR�c����proj����decl��le_refl�����	|���H����H��H�������	|���H�
Proj������	���R[�P����M����H��H��RT���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh�8�PInfo���eATTR�c����proj����decl��le_trans�����	|���H��������5�H�'�H�'�RT'�5�H�>�H�>�RT>'�H����H����RT��>'���	|���H�
Proj������
���R��P����M�������'�5�R��R��R��5�R��R��R�'�H��P�H��P�RT�P>'���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh�3�PInfo���eATTR�c����proj����	decl��lt_iff_le_not_le�����	|���H��2�����k�	��H�����
��R^�R_�R`�7�R��U���	|���H�
Proj���������R��P����M��2�����k�	�'�H�'�R�'�
��R��R��R��7�S
�U���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh��PInfo���eATTR�c����proj����
decl��le_antisymm�����	|���H������5�R^�I�I�R��R�����������5�R��I'�I'�R��S�S?'�SC'�SG'�U���	|���H�
Proj��������Sf�P����M������5�R��SO�SP�S�S�ST�SW�SZ�5�R��I>�I>�R��R�>�S?>�SC>�SG>�y���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh���PInfo��eATTR�c���proj���decl��add_le_add_left�����	|���H�������R^�S;�	��I/�R��R��SA�SE�SI����'�R��Su�	�>�I/>�R��Sx'�S{'�S~'�S�'�S�>'�V�g�R�IK>�IM>�P�'�QK>'�QQ>'���>'���>'���>'�S����	|���H�
Proj�����
���S��P����M�������R��SO�	�'�I/'�S�S�Sk�Sm�So�S�'��>�R��I���	����I/���R��R���'�S?��'�SC��'�SG��'�S���'�z�{���IK���IM���P���'�QK��'�QQ��'�S���'�S���'�S���'�T4���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh���PInfo��eATTR�c���proj���decl��lt_of_add_lt_add_left�����	|���H���������R��	�'�S��S��R��SR�SU�SX�S[�S���.�
@'�IK'�IM'�P��Q��QQ'�S�'�S�'�S�'�T��	�>�	�>�S����	|���H�
Proj��������T��P����M�������'��T��T��S��S��R��Sy�S|�S�S��S��V�g�R�S��S��P��S��S��S��S��S��T��	����	����T���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh���PInfo��eATTR�c���proj���
decl��bot���Q#���	|���H�
Proj��������Q%���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh��PInfo��eATTR�c���proj���decl��bot_le�����	|���H����RR�I�
$�I/�RV�R��S?�SC�SG�S��I~�I������	|���H�
Proj��������U�P����M����R^�S;�	��S��Ra�R��S@�SD�SH�S��I~�I��U���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh���PInfo��eATTR�c���proj���decl��le_iff_exists_add�����	|���H������k�R^�S;�	��	��I��Q��Q��Qe�S��S��S��R��R��SA�SE�SI�S������I����,
��.�Tl�Tm�I�'�I�'�P��Tp�Ts�Tv�Ty�T|�R��SR�SU�SX�S[�Tg�Uq'�Uu'���	|���H�
Proj��������U��P����M������k�R��SO�S��	�'�U��Q��Q��Tr�Tu�Tx�T{�S�S�Sk�Sm�So�S��U��U��I�'��'�,%�V�g�R�S��I�>�I�>�P��T��T��T��T��T��R��Sy�S|�S�S��T��Uq>�Uu>���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh���PInfo��eATTR�c���proj���decl��mul���P����	|���H�
Proj��������S�P����S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh��PInfo��eATTR�c���proj���decl��mul_assoc�����	|���H��� �!�������'�V,�V-�V,���	|���H�
Proj��������V8�P����M��� �!'�U�����V(>�V>�V?�V>���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh���PInfo��eATTR�c���proj���decl��one���Q#���	|���H�
Proj��������Q%���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh���PInfo��eATTR�c���proj���decl��one_mul�����	|���H��(�|�2�3�4�V(���	��>�����	|���H�
Proj�����	���V��P����M��(���K�L�M�V(�V��V�W�V����S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh�i�PInfo�	�eATTR�c���	proj�	��decl��mul_one�����	|���H��/�|�V��V����	|���H�
Proj�����
���V��P����M��/���V��V����S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh�P�PInfo�
�eATTR�c���
proj�
��decl��left_distrib�����	|���H��1�2�3��V-�P��P��V.�V-���	|���H�
Proj��������W�P����M��1�2�3'�U�V?�P��P��V@�V?���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh���PInfo��eATTR�c���proj���decl��right_distrib�����	|���H��5�6�7��V,�P��P��W�V3���	|���H�
Proj��������WK�P����M��5�6�7'�U�V>�P��P��W�VE���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh>�PInfo��eATTR�c���proj���decl��zero_mul�����	|���H����|�2���V��QU�QU���	|���H�
Proj�����
���W��P����M������K�+��V��Qh�Qh���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh'�PInfo�
�eATTR�c���
proj�
��decl��mul_zero�����	|���H����|�W}�QU�QU���	|���H�
Proj��������W��P����M������W��Qh�Qh���S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh�PInfo��eATTR�c���proj���decl��mul_comm�����	|���H��������K�L�M�V��V��W����	|���H�
Proj��������W��P����M����������'��'�V)�V�'�W����S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh�PInfo��eATTR�c���proj���decl��zero_ne_one�����	|���H�����QQ���V����	|���H�
Proj��������X.�P����M��"�����QR�	��>�V����S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh�PInfo��eATTR�c���proj���decl��mul_eq_zero_iff�����	|���H������k���K�����J;�J=�Q��Q��U`�Uc�Uf�Ui�W��W��V��	��
������
��������JV���U`�Xi���7���X����X����	|���H�
Proj��������X��P����M������k�����'��'�J;'�J='�Q��Q��U��U��U��U��W��W��V�'�Xk'�Xo'�Xs'�Xw'�X{'�X'�X�'�4�JV'��'�U��X��X�'�7�,
�X���X����S���f�����x�������H����H����H����H����H����I���I-���Ia���I}�������I����I���I���I��&�8�'�I��.�I��0�J�4�J���J ���J%���J3�8�J:���Jh�PInfo��eATTR�c���proj���decl��lt_default�����	|���5�J�R���	|���Y��Rcanonically_ordered_monoidlt_default}�PInfo��edecl�equations_eqn_1�����	|���Y��R����Y���	|���Y��R�Y�PInfo��eATTR�'���EqnL�SEqnL�ATTR�c���decl��rec_on�������	|���H����M������{������'�����������LP���H����LR���LY���Lk���L~���L����L����L��������L����M��M��M-�&�^�'�M8�.�MH�0�MY�4�Ml���Ms���Mz���M��8�M����M����Ji���������b��i�_�^�8�3������������������i�P��>'�R���	|���H����M����YX��rec�����PInfo��eATTR�c���auxrec�prt�auxrec��rec_ondecl��cases_on�����Y\�Ye�PInfo��eATTR�c���auxrec�decl��to_canonically_ordered_monoid�����	|s�H��}���	|��H�canonically_ordered_monoidmk}�P��QK�X&�S��S��S��RT�R��S?�SC�SG�S��Uq�Uu�U��bot_le����le_iff_exists_add��PInfo��eVMR�_lambda_1VMR�_lambda_2VMR�VMC�#�ea�%�f_fresh�+v
VMC�$�e�5�5VMC��e����#

ATTR�(d�class��ddecl��to_comm_semiring�����	|s�H�comm_semiring}���	|�*�H��J=�Ym�Yp�X&�Yt�Yw�Yz�V(�V��X+�Xk�Xo�Xs�Xw�X{�X�X��PInfo�)�eVMR�)_lambda_1VMR�)_lambda_2VMR�)VMC�,�e�%�%�f_fresh�,
VMC�-�e�����0
VMC�)
�e�*���,
�-
ATTR�(d�)class�+�)ddecl��to_zero_ne_one_class�����	|s�H������	|�2�H����X&�X+�X��PInfo�1�eVMR�1VMC�1�e�2��

ATTR�(d�1classzero_ne_one_class�1ddecl��no_confusion_type�������	|P�Pv1�M�v2�J��P���	|�5�P�6�M��7�J�������6�H��P����������>�������������i��������������>�Y����LR���5���5��������J��J���������������5�H��H�>�5�K
�Lb���I<�H����P'���2��������k�	����H���'�
��Y��7�Y��U����������5�K
�K�L���>'�5�I<�I=�I���P��>'�������������I<�I=�I>�I?�P��>'����I��I��I��L����i�P��>'�
�Kj�Kk�Kl�IM�3�����������ZM���������������L��L��Z?�ZL�ZX�	��8�	��8�L��I/�8�����i�P��>����������ZA�I~�3�I��3�����3���8�k�H��^�I�^�	��^�	��^�M�����������������i�P��>'�I��^���^� ~� ��
>�_�
@�_�IK�_�I��_�I��_������������������i�P��>����8���^�_���^� �_�!�i��M9����Z��Z��Z��&�_�'�(�i��M9�M:�M;�MA�MB�.�/����K����b���b'�����0�1�b�2���3���	����P�
���Z��Z��Z��4�5���6���7��� ����'��i��'"�b�Z��Z��Z��������	�Z��J�!��_�Z�������� ��Z�� ��!��i�[������������� ��O��O������[�8�P�2��3?��P	�P
�P����������k�!5�O����+���+�J;�+�J=�+���������b���������i�P��>'�0��JV�+���+�����7�OZ�[?�!5�[?�Y���6�H���P�����!1�����+���-���I�K�L�W�J�[Q�[R�[Q���-�����I�K�L�M�N�n�J�p�J�����J�!��0��0��0�'�n�[�p�[�����[���^�`�	��_�
>�_�h�_��>�[~���5�^�5�_����5�_�"6�������H����H������������������5�H����H���>�5�H����H������H����H����P'���2���������k�	����H���'�
��[��7�[��U�����������5�[��I���I����>'�5�[��I���I���P��>'�T��������������[��[��	����I/���P��>'�����H����I���	����I/�����i�P��>'�"V�"W�"X�IK���IM�������������[�����������������	����	����[��[��\�	��*�	��*�	��*�I/�*�����i�P��>�����������[��I~���I������������*�k�H���I��	���	���I�������������������i�P��>'�I������ �������IK���I����I���������������������i�P��>��"����� ���!�k�#��,���+�\f�\g�\f�&���'�(�k�#��,���+���+�	��+���+�.�/�+�$�L���K���K'�	��K���K�0�1�K�2�x�3�y�1����������P�	����W����\��\��\��4�5�x�6�y�7���5(���#����#��i�	��#��W�#��b�\��\��\������y�1��\��n���p���_�\��������5(�\��n�#��p�#��i�\������#����1��T�5!���5!���5!���5!�����\��8�$�1��n�1��p�1���	��1����1��P�����5!��=�k�T>���\����\����\��J;�\��J=�\����������b���������i�P��>'�n�\��JV�\����\������7�\��]�\��]�add_eq�T�%�\��%�\�?����zero_eq�\��y��le_eq��5�]�5@��+�lt_eq��5�]$�5A��+�bot_eq�T�]*���mul_eq�T��B��CD����one_eq�T�]4�����]4�\��PInfo�4�eATTR�c���4prt�4decl��no_confusion�������	|�5�P�6�M��7�J�h12�T�Y��4����'���	|�5�P�6�M��7�J��@�]����H�'a�]�h1a�T�H�>�]���>'h11�T�]����>�6�]��]������������P��� 
��� ����������v�����>�]����5������5���;T�������H��H���������������5�I<�Y�>�5�KP�H�����I��H��3�P'���2���������k�Ib�H���'�
��]��7�]��U�����������5�KP�KQ�I���>'�5�I��I��I�3�P��>'�I�����������I��I��I��L��P��>'���8�Zv�Zw�Zx�I/�^���i�P��>'� n�L��L��L��IM�^�����������^��������3���8��	��^�	��^�^�^�^*�	��_�	��_�	��_�I/�_�����i�P��>���3�����8�^�I~�^�I��^�����^���_�k�H��i�I�i�	��i�	��i�I��i�����������������i�P��>'�I��i���i��������IK��I���I��������������������i�P��>����_���i����i� ��!�b�s�'�I��^��^��^��&��'�(�b�s�'���������.�/���f���'��'�'�'��'��0�1���2���3���!)�������P�(�W����^��^��^��4�5���6���7����� ��O��i�����b�^��^��^��������!)�^��2��3?�_�^����������^����i�^�����������!5�O����+���+�����^��8�$��#�$��	������P�����+���-�k�0����I���I���I�J;�I�J=�I���������b���������i�P��>'�0��JV�I���I�����7�0��_�0��_��8�T�%�-�%�I�J�����9�0������:��5�J�5�[����;��5�[�5�^����<�3����=�T���_�����������>���������!G�]���!G�I����5�I�2��i�_J�_�_F���_C���_F���PInfo�?�eATTR�c���?no_conf�?prt�?decl��inj�����	|������-�����<���G���J����J����H����J����J����J����J����K0���KH������KO���K���K���K��&�3�'�K��.�K��0�K��4�K����K����K����K��8�K����L%���!%��������������!5�!��N�_�_��_����������!5�!��!��!��0��0������+�.�/�0�3]'�C�p�-�����-���I�K�L�M�N��>�_����_I���_*�����[�H��^�H��^�����^���_�����5�[��[�>�5�H����H������H����H����P'���2���_�����k�	����H���'�
��_��7�_��U�����������5�_��I���I����>'�5�_��I���I���P��>'��������������_��_��	����I/���P��>'�����[��[��	����I/�����i�P��>'�1�
>���
@���IK���IM�������������` ����������������	����	����`�`�`-�	����	����[��[������i�P��>�����������`�I~���I��������������k�H����I���	����	����I��������������������i�P��>'�I��������"��"V�"W�"X�[��I����I���������������������i�P��>���������������� ���!�*�#��"�����`��`��`��&���'�(�*�#��"��������	������.�/�� �"���������'�	��������0�1���2�k�3�+�$�L���K�P�	��K�W�K��`��`��`��4�5�k�6�+�7�K��1����x�i�	��x�W�x�b�`��`��`������+�$�`��n�K�p�K�_�`������K��`��n�x�p�x�i�`������x���y�1��\��������������`��8�$�y�n�y�p�y��	��y���y�P���������#��k�T�1����1����1����1��J;�1��J=�1����������b���������i�P��>'�\��JV�1����1������7�a�a*�a�a*��T�H��#��Ji�#����y�x�K�+�k����*�������������������_�^�[�J�I�-�+��������a8�������b��i�_�^�8�3������������������i�P��>'�
��T�%�1��%�5!�\��#����
��a�y���
���5�1��5�5!��k�i�
��a����_�
��a�����
��aw�����a�_�����	|������-�����<���G���J����J����H����J����J����J����J����K0���KH������KO���K���K���K��&�3�'�K��.�K��0�K��4�K����K����K����K��8�K����L%���!%���_��������_����_����_����_I���_*���_����_����_����_����`(���`B�������`I���`���`���`��&���'�`��.�`��0�`��4�`����`����`����`��8�a���a5��at��no_confusion|�1��a��Ji�1��#����y�x�K�+�k����*�������������������_�^�[�J�I�-�+������a����������b��i�_�^�8�3������������������i�P��>'�8�ay�9�\������:��5�\��5�\���K�b�;��5�\��5�]��K�b�<�T�]���3�=�T���]$���]*�]3�����>�]0�����
��]8�]*�J�
��T�]3�]�-�
���5�]3�5�]4��1����
��b1�#����
��b+���_�
��]8���3�b+�������
��b-�bC>�
��b3�bB'�
��b6�bA�
��b9�b@�
��b<�b?�PInfo�D�edecl��inj_arrowl�����	|������-�����<���G���J����J����H����J����J����J����J����K0���KH������KO���K���K���K��&�3�'�K��.�K��0�K��4�K����K����K����K��8�K����L%���!%���_��������_����_����_����_I���_*���_����_����_����_����`(���`B�������`I���`���`���`��&���'�`��.�`��0�`��4�`����`����`����`��8�a���a5��atP�P���T�%�5!�%�\��\��1�����T�\��#�����b�x����]'�x����T�]$�*�8��T���]*���]3�]4�����b?�P���	|������-�����<���G���J����J����H����J����J����J����J����K0���KH������KO���K���K���K��&�3�'�K��.�K��0�K��4�K����K����K����K��8�K����L%���!%���_��������_����_����_����_I���_*���_����_����_����_����`(���`B�������`I���`���`���`��&���'�`��.�`��0�`��4�`����`����`����`��8�a���a5��at�H�P��b��$^�]�5!���
��b��
��b�
��b�+��
��b������
��]����b�������inj���\��5!�1��#����y�x�K�+�k����*�������������������_�^�[�J�I�-�+��������������b��i�_�^�8�3������������������i�P��>'�$^�b��c�$��b��c
�cK�$^�b�c�$��b��c�cR�$^�b��c
�$��b�c�cY�$^�c�c	�$��b��c
�c`�$^�c�c�$��c�c	�cg�$��c�c�cn�PInfo�F�eATTR��d��class��nspacecanonically_ordered_semiringdecl�Jmul_le_mul��_inst_1canonically_ordered_comm_semiringabcd'hab?@AB�to_ordered_comm_monoid>�>'hcd���������c����c���>�Q�R�S�T�c��P�c��P�������a���P�)�P��>�c�'��L�c��N�O�P�Q'�R�c��T�c��dcases_on�P���P�;���i��i��i��i��i���i�add�i�c��i�P�add_assoc�i�c��zero�i�c��zero_add�i�c��add_zero�i�c��add_comm�i�c��le�i�c��lt�i�c��le_refl�i�c��le_trans�i�c��lt_iff_le_not_le�i�c��le_antisymm�i�c��add_le_add_left�i�c��lt_of_add_lt_add_left�i�c���a_1����P�d5�j�k�l�m�c��i�c��=��=��z�c��i�c��i�P��'�dF>�{�Q�R�S�T�c��P�c��P�c��c��P�c��c��P�c��d�P�c��d�P�c��d	�P�c��d
�P�c��d�P�c��d�P�c��d�P�c��d�P�c��d!�P�c��d%�P�c��d)�P�c�>'�d9�le_iff_exists_add�P�c�>'b�Prfl�d4�������������������c����c����c����i�c����d��c����d��d���d��d���d��d	���d��d
���d��d���d��d���d��d���d��d���d��d!���d��d%���d��d)���d��P�O���R��	�������c����c������i�	��	�
�c���c��������c���c�������P�d����R��	�������c����d��P�d��c����������������������c���c���d��c���d��c���d��d��d��d��d��d	��d��d
��d��d��d��d��d��d��d��d��d��d!��d��d%��d��d)��d��Pa_2�d7���e/�d��d��e+�����{�d��d������c����c����d��c����d��c����d��d���d��d���d��d	���d��d
���d��d���d��d���d��d���d��d���d��d!���d��d%���d��d)���d���>�e2�d����d���>d��rfl�e.�������������������c����c����c�����c����e}�c����e}�d���e}�d���e}�d	���e}�d
���e}�d���e}�d���e}�d���e}�d���e}�d!���e}�d%���e}�d)���e}�i�Q���T��	����
���c����c��������	��
��c���c����T�V���c���c���������e������������c���c���e��c���e��c���e��d��e��d��e��d	��e��d
��e��d��e��d��e��d��e��d��e��d!��e��d%��e��d)��e������T��	���>��>��c����e}�i�e���e�T��V�����c����c���������f&���������������c����c����e��c����e��c����e��d���e��d���e��d	���e��d
���e��d���e��d���e��d���e��d���e��d!���e��d%���e��d)���e��>�f]���f)���������f#�f(�fj�f'�fj�f&>���fn���fd�fuchas_le���������e_2�����������e_3���3���8��8��>�f�'���8�l>'�f��e��f(�f(�����f(�fc�ft�����f�to_has_mul���fh�fj�>�fj�����f*���������f-�e��f(�f��fo�fm�fq�ft�f��fp�fk�f��f��f��f��f��fk�fl�fq�f��f��fj�f��fr�f��f��fj�f���f��f�>�f��f�add_mul���fh�>�f��������������e_2�f~�������e_3�f����8�8��8��>�f�'��8�M>'�f��fi�f��f�mul_add���fh����f��fr�f�>��add_left_comm���f��f��fo�fq�f��fo�fo�f��fo�f��f��f��f��f��f��fq�fl�f��g�g�f��g�����f��f��fq�g�fq�f(�fl�f��f(�f(�f��g�f��g�fq�fl�g�fo�f(�f��g)�f��fs�g3�fl�fq���f)�fk�fj�fm�fo�fq�fu�f��gD�ft�g)�gC�fs�f��f��gA�fq�f��fl�g�fo�fs�gN�g�gA�gQ�g�gA�fq�g"�fl�fo�f��fl�fl�f��fl�gP�fr�g,�fo���e��e��e��e��fX�f(�gD�d7����������e������e��e��gw�gw�e��e������g{�f
�e��d����e��f(�gD�����g��gCrfl���gD�P����P�e�>��������d��PInfo�K�odecl�Jzero_lt_one���L�c������c��c���/�1��	`�g���L�c�lt_of_le_of_ne�g��g��g�zero_le�g��g�zero_ne_one�g��PInfo�v�ydoc�vA version of `zero_lt_one : 0 < 1` for a `canonically_ordered_comm_semiring`.decl�Jmul_pos���L�c�ab�kmo�c��c��7~�g��(�)�c��c��
��g��g���L�c��{�|��g��k�
��7�9�g��7�
��g��h���g��ha��}�e_1�:�b���e_2�:��:��k>�k'�:��k�g��h���g��8|���g��g��7�7�g��h�h�h%�7�8�g��g��h(�h%��g��h"�h-�
��h$�h2zero_lt_iff_ne_zero�g��g�nedef�g��g�a����e_1�:��:���7�h,�h'�
��8�(�)�g�����add��add_assoc��zero��zero_add��add_zero��add_comm����one�	�
���
���7~�7��hY�hq��zero_ne_one�7�9�h��
��h�canonically_ordered_comm_semiringmul_eq_zero_iff�
��h(�hnot_or_distrib�g��h�g��h������e_1�:�������e_2�:��:��
�>�
�'�:��
��g��h���h#�h0�h"�h�
��h��h��h9�h>�g��g��h���h#�h0�h"�h�
��h��h��h9�h>�g�iffrefl�h�PInfo�z�{declnatcanonically_ordered_comm_semiring_match_1a��b��_aExists��k�������h�������������������������ordered_comm_monoidadd��infer_instance����������natordered_semiring��add_assoc���i��zero���i��zero_add���i��add_zero���i��add_comm���i��le���i��lt���i��le_refl���i��le_trans���i��lt_iff_le_not_le���i��le_antisymm���i��add_le_add_left���i��lt_of_add_lt_add_left���i�����������h��U��������������h��i^�h��������iO'w��h_1�i]�=��h�������'�iO>�����ineqsymm�����'
�PInfo����	decl��equations_eqn_1��������c��hc�h��	��if���ir�������iw�ir�ie�iv�iZ���������������h��	��if�?��if�i��PInfo����	ATTR�'����EqnL��decl��_match_2��������_a�h��������iO��������������iJ�����������i��iY�iS���iT�i�����h�iR�=�_x���i�>�f���i��ib�iv�i�natle_add_right'
�PInfo����	decl��equations_eqn_1��������c��hc�i��	��i����i��i������i�'�iP�iv�i��i����������������i��	��i��?��i��i��PInfo����	ATTR�'����EqnL��decl��_proof_1����������������has_addmk���i�j�j�j�i�PInfo����	decl��_proof_2���������h��mk���i�ihas_zerozero��has_zeromk���i�i!�PInfo����	decl��_proof_3�������j�j�i%�PInfo����	decl��_proof_4�����������j�j�i)�PInfo����	decl��_proof_5�����i������i-�i5�PInfo����	decl��_proof_6�������������5�j.�5�j3�j.'�i9�PInfo����	decl��_proof_7�2���������khas_ltlt�������i1�
��j.�7�j/�U�i=�PInfo����	decl��_proof_8���������5�i��i������i-�i1�i5�i9�i=�5�jX�ia�iA�PInfo����	decl��_proof_9����������i��i��i������i-�i1�i5�i9�i=�iA�����jj���h��i�i�����i�i�i�i!�i%�i)�jy�iE�PInfo����	decl��_proof_10��������������j<����jh�jx�j��j��iI�PInfo����	decl��_proof_11���������k�i��i������������j��i�h�j��i�natledest_x�i��i��PInfo����	decl��_proof_12�4���5���6����has_mulmul��has_mulmk���mul���i	linear_ordered_semiring��������decidable_linear_ordered_semiring�j��j��j���mul_assoc���j��PInfo����	decl��_proof_13�8�����j��9to_has_mul���:���j��j����<���one���j���one_mul���j��PInfo����	decl��_proof_14�>�����j��j���mul_one���j��PInfo����	decl��_proof_15�@���A���B�����j����i��add���j��j��j��j���left_distrib���j��PInfo����	decl��_proof_16�D���E���F�����j��j��j��j��j���right_distrib���j��PInfo����	decl��_proof_17a�����j��j�j�zero���j��k
��zero_mul���j��PInfo����	decl��_proof_18a�����j��k
�k
��mul_zero���j��PInfo����	decl��_proof_19�����������j��j��j���mul���i	comm_semiring����comm_semiring��mul_assoc���k$�k,��mul_comm���k$�PInfo����	decl��_proof_20ne���j�j�ne_of_lt���i��i��i�j�j�zero_lt_one���j��PInfo����	decl��_proof_21a��b���k���j����������������i�i�i�i!�i%�i)�j��j��j��j��j��j��k�k�k�k7�j���������i�j��kF�7�i��kn���kn���������ko�kunateq_zero_of_mul_eq_zero�a�ku���kb�kn�����k������k��
��������k��
���kq�k�a�kt�k��k��
��k��k�or_imp_distrib�kq�kt�ko�h��k������k���kq����imp_congr_ctx_eq�kq�ko�kq����kq_h�kq���k����j����kJ��semiring�k�����������e_1�i���������e_2�k��:������>�ij�:��������>'���k��k������k��kb�kn�k�chas_mul����������e_2�k���������e_3�k��k����j���>�k�'�k�������>'�k��ka�kn��zero_mul���k��kn�k����k��
��k��������k��
��k���forall_true_iff�kq�k������k���kt�����k��kt�ko�kt����kt_h�kt�k��k��k��k�k��k��k����k�mul_zero���k��kn�k��k��l�
��l���l�kt�
��k���and_self���7�PInfo����	decl��canonically_ordered_comm_semiring�������i���i�������i-�i1�������������jnathas_zeronatzero_le���j����j�������������������
�PInfo����	prt��VMR��_lambda_1VMR��VMC���	mnVMC����	nataddnatmuldecl��equations_eqn_1��lJ���l���lJ�l��PInfo�"��	ATTR�'���"EqnL�"SEqnL��ATTR�(����class�����declwith_topmul_zero_class_proof_1��_inst_1�c�_inst_2decidable_eqawith_top���l�ite�7�l��l��9��l��l���l�with_topadd_monoid�h �l��l��l�ordecidable�l��l�optiondecidable_eq����'�:�l��l��l��l��l��l�optionbind�l�a�l�''b'coe>option>coe_to_lift��>�l�coe_option>UWM�c�>�c�>'�l���&�c��'�l��)�l�if_pos��l��l��;��l��l��g��l��l��l��l��l��PInfo�%��	decl�$_proof_2���&�c��'�l�a�l��l��l��7�l��l��l��l��l��l��l��l��l��l��4�l��l�'�9��l��l���l��l�'�'�'�c�'�c�'�l��l���&�c��'�l��<�l��l��l��l��;��l��l��l��l��l��m
�PInfo�;��	decl�$���&�c��'�l�mul_zero_class�l���&�c��'�l��mk�l�m�l�n�l��l��7���l��m�m&�m�l��m(�m+�l�'��'��>�:��m�m4�m�l��m�l��4'�l�>>�5>�l����l����l����mB�l����������c����c���>�l���l��l��0�1�c��c��%��;��PInfo�$��	prt�$VMR�$_lambda_1VMR�$VMC�A,��	�@�?�f_fresh�Vl�f_fresh�Vk
�1_main	
�H		(		&

VMC�$��	�'�&��A
decl�$equations_eqn_1���&�c��'�l����m �$��mq��&�c��'�l����m �my�PInfo�J��	ATTR�'���JEqnL�JSEqnL�$ATTR�(���$class�=�$��decl�#has_one���&�c��'�l�has_one�l���&�c��'�l��E��l��l��l��l��l�with_tophas_coe_t����g��PInfo�K��	prt�KVMR�KVMC�K��	�'�&�
decl�Kequations_eqn_1���&�c��'�l����m��K��m���&�c��'�l����m��m��PInfo�P��	ATTR�'���PEqnL�PSEqnL�KATTR�(���Kclass�L�K��decl�#mul_def���&�c��'�l�a�l�b�l��m&T�l�V�l��mv'�m3�l��7�m'�l��l��m��m*�m��l��m��m��m5�m��m8�m��l��m��mV��&�c��'�l��R�l��S�l��g��l��m��PInfo�Q��ATTR�'���Qdecl�#top_ne_zero���&�c��'�l�_inst_3partial_order��l���has_toptop�l��Mhas_top�l��l��mv�l���&�c��'�l��U�m����l��m��m�eqdcases_on�l��m��l��m�'t_1�l������l�>�m��m��m�>H_1���l����m��m��mv��>�������P�aH_2heq���l��P�m��n�m��P�n�n�mv�P�����P���i���n
�E�m�����l�''4��m'optionno_confusion>�^�n�m��m��m��mv>'��>�����`�m��m����m��m��E�n$>K�>�7�>�c��n*>���l��m�heqrefl�m&�m��m��PInfo�T��ATTR����Tdecl�#zero_ne_top���&�c��'�l�_inst_3�m��m��m��m���&�c��'�l��e�m����l��m��m��m��m�t_1�l����m��n8H_1�m��m��m��m���H_2�n�n�n�n	�no�E�m���n#�n+�n(�n.�h�n�nh�m��nh�n8�n>�n8�E�nL�nJ�nQ�m��nT�m&�m��m��PInfo�d��ATTR����ddecl�#coe_eq_zero���&�c��'�l�_inst_3�m�a�k�m&�l�'�l��l�'�l��m�'�m��Z4�7��g�'��&�c��'�l��j�m��k���n��n�h�n�_a>_a�m��mA�m��mD�m��m����n�m��n�l��P�n�l��P�n�m��Pt_1�n�n���l��i�l��i�n��l��i�n��m��iH_1���l����n��n��mv���i���������H_2�n���l����l����n��l����n��m���'�n��n��mv�������������n���>�<�/��g�����n����l��P�n$�P�_�;C��P��P�c��o	�n-�i�q�n�n��n��n��mv�i�P���i�������n��n����n��n������;��g����i�n$�i�x��i�c��c��d;�o/����hW�i�P�d��hW���i�m���n�n��n��n��q�n���l���l���oD�l���oD�m���oD�oD�mv������������oN�oM���oD�oM���>��/���g�����n�n��l����n��l����n��m����o?�n��q�n�n��n��hW�����n��oz�oy���n��oy�=����<�?^�d��d��d��o��g���o����n�n�nT�n�n��nh�n��
_x>�n�K�8�g�>'�>�o��g��m��l��m��l��m��m�>�o��PInfo�i��ATTR����idecl�#zero_eq_coe���&�c��'�l�_inst_3�m�a�k�n��n��n���&�c��'�l��u�m��v��o��n����o��n��
��o�_a���k�nh�o��9��o��k�o���o��n��
��o��n�eq_comm�l��m��n���n��k�n��n����n��o��
��n�_a���k�m��o��n8�o��o���n��n��
��n��n��#coe_eq_zero'�m3�h��n��PInfo�t��ATTR����tdecl�#coe_zero���&�c��'�l�_inst_3�m��l��l��l��l��l��m��g��m���&�c��'�l��|�m��l��p�PInfo�{��ATTR�'���{ATTR����{decl�#mul_top���&�c��'�l�a�l�h�m��m��m&�m��m��m���&�c��'�l��~�l���p#�`cases_on'�~�l����m��n8�m�T�m�V�m��m��nl�nl���l��n+�m���m�T�m�V�m��n6�nL�m��m��m��nL�m����pG�pJ���m����m�e_1�n���n����n�e_2�n����oD��oE>�oE'���oD���oD�>'�oE�pE�nL���m��p@�pA�n2��>�����n�nL�m��l��Edecidable_of_decidable_of_iff�7�pI�n8�n9�E�l��py�n9�l�>�n5�nL�n8�p��m��n8ifftrans�p{�7�E�E�Eor_congr�py�n9�E�Eiff_false_intro�py��&�c��'�l��U�m��p��m��T>'�n5�c�or_self�E�m��n8�nL�nL�pv�l��7�pI�n/�n0�pq�m��p��l��p��p��p��pp�nL�p��p��m��p��m��p��m?�nLa>�l������nlb���n��o�n��o�l��P�c��p��#mul_def>'�n5�nL�m�if_simp_congrS�m��p{�E�p��n8�p��n8�nL�p��n�optionnone_bind'>>�p�if_false��m��p��n8�nL�m��m��n?�n>�nL�~'��p.�nC�n8��m��p4�n$���nl�nl�m��p������p��c��nl���q
�q���m����n���n����n����n����oE���l�������q>�q'���q���q�>'�q�q�q���m��p1�p2�m��������P�o�q�nl�pw�px�7�m��q�n�nm�n�E�l��qB�qD�l����m��q�n�qK�nl�n�p��qE�p��E�p��qB�qD�E�E�p��qB�p���>�m��c��p��m��n�q�q�q@�l��7�qA�m��m��q;�nm�ql�l��qm�qo�qJ�q:�q�ql�qt�nl�ql�m��ql�p��q�����l��P�P�n	���P�n��l��i�n��q��l��i�dF�qh�p���>�m��q�nl�p��m��qE�E�qQ�n�q��n�q�qc���m��n��some_bind'�����q��p��m��qd�n�q�nl�nl�q��nl�q��q�PInfo�}��ATTR����}decl�#top_mul���&�c��'�l�a�l�h�p#�m&�m��m��m���&�c��'�l����l����p#�p-���l����p0�m��p4�nl�nl���p?��m��pC�m��nL�m��m��m?�m���>�n*���m����q��q��pi�q��q��pl�ps�m��nL�pw�px�7�n9�py�E�l��n9�py�p��p��p��q��p��E�p��n9�py�E�E�p��p��p��m��n8�q��q��q��l��7�p��p��l��p��p��p��p��m��p��q���>�p��q��p��r�p��m��nL�p��q��E�q��n8�r�n8�q��q��n�a�l����mBe_1�o�����i�l����������l���e_2�������l��������l����r&�l���>�r0'��r&���r,�r+>'�r0�m��m��n?�r�q�funext>x>�mBx>�r��>�q���>�p������p��p��q��n8�q��m��m��n?�n>�q���'���q��m��q��q�nl�m��p������p��c��nl���rl�rt�q3�rj�rr�q6�q=�nl�q�pw�px�7�qD�qB�E�l��qD�qB�qP�qM�p��r�p��E�p��qD�qB�E�E�q`�q[�p��m��n�rr�rr�r}�l��7�qo�qm�l��qo�qm�qy�qv�m��ql�p������q��o	�q��r��q��nl�q�q��r�E�r��n�r��n�rr�r��q����mB���o�����q����r%���r'�����r,�������l����r+�l�����>�r�'��r+���r��r�>'�r��nl�nl�q��r��rq�rK�������o�����r������q������q��P�P�q��q��r��n�rr�nl�nl�q��q��rr�PInfo����ATTR�����decl�#top_mul_top���&�c��'�l����l�T�l�V�l��mx�����:�m��l��m��s�s��&�c��'�l��#top_mul�s�s�p��s��ma�PInfo����ATTR�����decl�#coe_mul���&�c��'�l�ab�m&�n�����6�c�'�c�'�m��n��n���&�c��'�l�����decidableby_cases�
��n��s2�R�n���s9��m��o��l��pC�o��o������sE�����sE�n����pi�s@�n8�pl�s@�o��p�_inst_1has_lift_t>�m�a�����Pe_2������n��on�o��s?�o���>�s?�l��o�KL�l���
>�������Pe_2����������e_3��������T����>�sq'����>'�sq�l��o����>�l��{>'�n5�c��sD�n8�pl�sD�pC�n8�o��n8��sl�m����m����ne_2�q���n����n�e_3�q���q�qT�q��>�s�'��q���q�l���>'�s��pB�sB�n8�pl�sB�o��p��sa�o��s��o��o��n>�o��s��m��n6�o��
��n����0�m��n8�7ha�7�s9�s8�o��sE�:�o���o���m��n��mO�p4�n��n������s������s��n�n���q3�s��n�q6�s��n����0�g���>�ql���sS���m����P���i��������n��n��n��s��t���s��s��t�����mM��sl�����P���i������������������f��>�t'��t�mN�*�t��mM�s���>�m��c��s��n�q6�s��s��n�n��sl�m����n���n����n����n����oD���q���s��s�T�s���>�tO'��s����s��l��>'�tO�p3�s��s��q��s��s��n�q6�s��t�ql�t�t�t>�L�m��m��s��
��s����0�m��n�7hb�7�o��s��s��p��s������q��n��5�P�q��n��q���s��t��s��s��q��s��s��t��q6�q=�s��s��pw�px�7�m��s��n�m��s��n�E�l��t��t��qK�s��n�qK�s��n�p��t��p��E�p��t��t��E�E�p��t��ql�9��t�E�o���>�m��c��p��t��p��t��ql�9��t�E�t��p��t��p��m��n�t��t��t��l��7�t��t��l��t��t��qt�s��ql�qt�s��ql�m��ql�t������t��q��t��q��s��s��q��t��E�t��n�t��n�t��t��q����mB�t��q��t��n�t��t��PInfo����decl�#mul_coe���&�c��'�l�bhb�h��g�a�l��m��pC�sB�m?a>�mH�mO��&�c��'�l������u���l��p,>���m��m��p4�s��p������p��rn'�=��m��l��q��m��sB�n8�q��u/�p��p��sB�n8�m��n8�m��m�
��u<��u<�����u<�����u<�n<���pi�u:�m��pl�u:�pw�px�u0�E�u6�p��u0�p��E�q��u/�E�E�p��p��u.�p����o��E�o�>'�n5�c��p��uV�p��m��n8�m��m��p��u0�E�u6�n8�m��n8�m��ud�n��n?�p��ue�n8�m��m��m��n?�
��n<���s��m��7Annotshow��>�=��m��p4�n��s��n��u
��u���m��u��u��#coe_mul��>�m�Annot���PInfo����prvcomm_private�G=_�commdecl�����&�c��'�l�a�l�b�l��m��m���&�c��'�l����l����l�dite�n#�m��m��u�ha�u���m��pC�pC�����u������u��n����pi�u��n8�pl�u��s��n8�s��n8�n>�s��u��n8�pl�u��u��n8�n8�s��u��n8�L�m��n6�s��7���7�u��u����l��n8�p��n8�u�hb�u���m��p4�p4�����u������u��s����q3�u��n�q6�u��u��n�n�tg�q��n�ty�u��n�q6�u��p4�n�n�tg�n�v
�s��m��m��t��7���7�u��u��v�v�m��p�y���q�'���P�q��v1�����v2�q����v�v6�q6�q=�pw�px�7�m��n�m��n�E�l��vC�vF�qK�n�qK�n�p��vG�p��E�p��vC�vF�E�E�p����mB�n�p��vZ�n�p��m��n�v6�v6�vA�l��7�vB�ql�vE�ql�l��vn�vp�qt�ql�qt�ql�m��ql�p������q��q��vk�q��q��vG�E�vQ�n�v��n�v6�vf�q����mB�v~x���v���P�5�i�om�r"�oo�r"�l����������c����c����i�v1�����v2x�P���i�5���n��r$�n��r$�l����������c����c������v6optionbind_comm�����������q��r��q������v2���P�q��dF�v5�r������v������v4�������o���q�e_1���r"���r'���r,e_2���r��������l���r��l�����>�v�'��r����v��v�>'�v�''�o�'�v��v3�rK�P���P�q��v��v3���P���sS�i�q���������e_2���sx�r+�l����r+�q��v��q�mul_comm�icomm_monoidto_comm_semigroup�i��to_comm_monoid�i�dB�q��vg�n�v6�u��v:�q6�q=�pw�px�7�vF�vC�E�l��vF�vC�vP�vM�p��w9�p��E�p��vF�vC�E�E�vc�v^�p��m��n�v:�v:�w7�l��7�vp�vn�l��vp�vn�vy�vv�m��ql�v:�wP�q��q��w9�E�w?�n�v:�n�v:�wK�q��t��v:�q��wL�n�v:�
��v7�v6���t��v6�7�PInfo����decl�#mul_eq_top_iff���&�c��'�l�a�l�b�l��k�m��m��7�
��p=�m��m*�m��
��m'�m��p=�m���&�c��'�l����l����l��p-���l��k�m��u�m��7�
��p0�m��m��
��m��m��p.�n8�p-���l��k�m��pD�m��7�
��p.�nL�n8�w��
��pJ�p0��k�m&�m��n+�n+�m��7�
��p?�m&�n+�m��
��w��p?�����w������w��k�������h�w������w��nU�m������l����m�e_1�m����n���n�e_2�tI���n���n�>�n�'���n����n��>'�n��w��m����l��w��q��m��m���sl�l����m����m�e_2�pP���n����n�e_3�pR���oD�oDT�oD��>�x'��oD���oD�q>'�x�m��n+�m��#none_eq_top�'�n+�m��x�s'�m3�m����p=�m��m����
��x(A��k�p.�m��n8�h��x(�����x(�7�E���x5�7�nV�x6�h=�l��m��m��hJ�nV�E�
��nU�l��m��m���'��>�m��E�p�'�m3+�l��
��x6��not_false_ifftrueintro�m��m��n��
��w����0�l��m��w������w��7�������:��w������w��k����h��p?�����p?�x6���xz�x9�x6�xz�x(�x9a�l����m�e_1�w�b�n���n�e_2�tI�w���n�>�x�'�w����n��>'�x��n+�m��x�m��m��nR�x>�xR�xX�w������w��w����w��n+�m��x�m��m��n��xi�lA�w������w��k����h��w����x��p?���x��lA�
��xp���p����
��w���iff_self���7��'��k�m��pD�q�m��7�w��m��q�m��w��q�k�m��q��o��m��7��o����x��x��h�x��x��pi�x��x��s��nL�m��x>�q�x��#some_eq_coe>�m��m��n?�x��x����x��p��x��x��:��x��E���x��k��E�E�h��w������w��x6���y
�7�n9�x6�y
�x-�y���m����m����pP���n����n����pR�pT��oD>�y'�p[���oD�>'�y�nL�m��x��n8�n8�n��h=�m��m��n8�hJ�n9�E�
��p��E�p��xX�x��E���x��m��x��m��E�pi�q�x��x��m��m��n?�
��yD�Eαa�p����l��l��yP�l��yP�m��m��yP�m��#coe_ne_top>�
��y�Eand_false���x��x����x��k��x��x��h��pJ�����pJ�n<���pi�nL�m��x��m��m��n?�u��q�x����q�7�yC�n8�x��y��p.�x��n8�y��y)�q�x��x��n8�n8�n��y1�x��n8�hJ�y��x��
��yC�p��x��u\�
��yv�x�true_and�x��
��y�x�false_or�x���x��x��x����x��y��
��x�_a���k�m��q��n��nl�7�:�t�y���x��x��
��x��x�x>���7���t�m��q��n��nlhx�y���nT�nV�n�n�n	�n��n	�����y������y��n
�n	�����n���n����tI���n����oD���tK���s�����s�>�y�'���s����s��>'�y��y��n	�s�P���n�n�����n�n��n���
��zA��k��n��n��o�h��z�����z�x6���z�7�o��x6�h=�n�n��n�hJ�o��E���o��n�n�n���P���i�n����_�:[�g��P���E�
��z,�z3�o��P���n�c��
��z3�E�p��z3�xX�x\�n	�n	�o��n	�
��y����0�n�n	�7hx�y�f�z3���n�T�n�V�n��o�m��n��m��i�n��zd�E���zh�n��o�zd�E���n����n����pR���oD���q���y����tW����tW>�zt'���tW���tW�>'�zt�zf�o���n��zf�ze�o�o��sl�n����n����n����q���q���s����zt���l����z�T�z���>�z�'��z����z��l���>'�z��z`�zd�zd�o$�zd�n��o�z��n��n��x�;�g��i�P�o�o�o���i�����n����w�n�a������e_2���sx�q�w�q�n��z��s��i�P�o�d<�L�n��o�zd�zd�zd�z��
��n��z��zd�E��&�c��'�l��e�m��p��nf�d�i�P�o�d<�h��x���'�u!���m��k�m��q�nl�7�
���m��q�n�m��nl�
��qA�nl�{�n��k�m��pC�q�nL�m��7�
��q�pJ�
��x��w��k�m��pC�x��m��m��x����{.�{5�h�{&�{3�pi�{$�{1�s��q�x��x��nL�m��x��m��m��n?�{-�x����{-�7�x��E�x��:��{)�x����{)�
��x����x��h��q�x��y��pJ���y��
��{T�x�and_true�x��{,�E���{,�
��E���E�h��x��E�yi�w����y>�
��{i�Efalse_and���
��{M�x�or_false�x���{5�{4�x����{5�{��y�_a���k�m��p4�y��nl�nl�y��{���{5�x��{��{��y����{��y���m��{1_a�m���{��y��k�{�y���{��x���>'�n5�x��m��{��>��k�m��q�q�nl�7�{�m��{��nl�{�{�{��n�����{������{��k�E�E���h�{��E���{��m��n��mQ�nl�E�q3�{��{��q6�{��{��n��{��tg�q�y��x����{��n��{��u��{��{��u��nl�nl�q��
��{��E�ye���mQ�{��E���{��p��E�:��{��E���{��
��y��E�E�h��{�y����{�7�m��y��n�y��|	�{�y��n�|���m����n���q���n����n����q�q��q>�|'�q%���q�>'�|�q�y��{��n�n�q��h=�m��y��n�hJ�|�y��
��|
�ql�y��t��{��E���{��n��nl�E�q3�{��n��{��nl�nl�q��
��|A�E�{��
��|�E�yn�y��{��E���{��{h�y��E�h��{�E���{�|
�nl�E�q3�q�y��{��nl�nl�q��
��|a�E�{��{��y����{��7�n��y��|s�{�n��n�|t�|'�{��n��{��n�n�q��|/�n��n�hJ�n��y��
��n��ql�y��t��
��|[�E�{u�y��
��p��E�p��
��{����x��E�7�PInfo����ATTR�����prvdistrib'����Ԁsdistrib'decl�����&�c��'�l�a�l�b�l�c�l��m��pC��m���m��,add_semigroup>�7�nG�|��u��u���&�c��'�l����l����l����l��u!���m��m��p4��m���m��|�������������c��|��u��u���m��|��nL�|��u��nL�u��nL�u��u��n8�p��n8�m��|��m��|��u��m��u��m�ha�|���m��|��nl�|��u��nl�u��nl�����|������|��m��|��|����q3�|��|��tg�|��q6�|��|��n�����m����n���n�e_2�tI���n����oDe_3�tK�tM��s���>�}'�t[�}�|��n�v���m��l����|��nl�nl�q��|��|��q6�|��}�|��|��}$�|��n�q6�|��v�nl�n�v�n�nl�nl�q��v%�nl�|��|��q��|��}/�|��
��}���t��|��7���7�|��|��}�}�nm�nl���}�nl�}��>�m��|����{�|��n���
��}jA��k�z	��n��n�|��P��P�o
'�n�h��}j�����}j�x6���}��7�m��|��n�x6�|/�|��n�hJ�}��E���m��|��|���m���m���m��c��m��,canonically_ordered_monoid���c��m���m��}��{h�vE�}��E�}��
��vB�}��}��}��
��}��}�add_eq_zero_iff�m��}��h��}��E�
��v\�E�v]�}��}���}��
��}��E�{u�}��xX�x\�|��nl�}9�|��nl�|��nl�}=�nl�}g���{�n���
��}�A��k�z	'�n�h��}������}��x6���}��7�vC�x6�|/�n�hJ�vC�E�}��xX�x\�|��|��}N�,top_add���c��|��
��}`���t��nl�7��>��m��|��{��|��u��{��u��{��u��y�'�t�m��|��n��|��u��n��u��n�hc�y���n�y��}w�n��}u�y�'�n��y��n������~.�����~.�no�n���z�~&�n���n�~&�~%�n�n��sl�n���n����n�e_2�pR���oD���qe_3�zq���tW�tWT�tW��>�~C'��tW���tW�z�>'�~C�y��}w�}w�o��}w�n��n�~:�n��n��z2�z+���sS�P�n���i����e_2�?*���oD�oG�n��z2�s��P���n�c��L�n�n�}w�~-�n�~:�~-�}u�n�n�n�����n���n����n����pR���oD���q���zq�~A��tW��>�~�'�~N�~��}t�~)�n�~:�~)�~(�n�n�~Z''�v��n��n�~}�~�'�~,�n�~:�~,�~+�n�n�~Z�o��n��n�~}�~���n�l��P�o
�n�
��~5���zU�n�7���y��~/�n�q��}w���P�t��v��}u�v2�~��v�~���~1�~��~8�~��#mul_coe�P���n�}w�~-�~��~��~��~�'�~,�~��~��p,�P���n�n��l��i�i��n���n��|��i�c��o2'���i�v��or�v���~��	�~�'�	'�~����n�n��~���n*�i�	��~���	�
�o��q��}u�n*�P�$�~����P�o$�~���o/�	���P�p,�i���n��n��l�������n���n��|����d��d��d��d��n$�������v��n��v�'�>�5�@�H�5�H'�o$�~���+��	���i�sV�r"���f�������v��d�����^�c�`�`�?�f����^�PInfo����prvmul_eq_zero������
mul_eq_zerodecl����&�c��'�l�a�l�b�l��k�m��m��m���&�c��'�l���l���l��p-��l��k�w��n8�7�w��n8�w��n8�p-��l��k�w��n8�pz����k�w��m��7�w��m����u��7�w��l��m��m����l������m4�n+�����k�m&�l������m0�n+�����l����n+����h����k�m��l��7�pI�n/�n0�n2���l������p��nL�����m����nL�����k�m��������������h�����pi�����l������m����nL�����n>���������falserec�������E�����p��E�:����E�����m����E�y��������y:���E��
�|���7�����k����������������nLif_negS�����m����nL����������������������������{����h���E��
���E���|��7�'��k�x��n8�pz�x��n8�u����x�������N�p����p��q���k�m��l���O��Q�����q���m����nL����Oh��O��k�m��l��7�m��q��m��m��m�'�qA��i�l���j��l�qJ'�q���i��q�q��i�m���i�q���i��m�k�m���i��i��m��������h��}����q3��{��i�l���m��w�m���i�q���i��i�q���i��m��m���m�������������������w����h������
�������t���i��m������m�p������:���j�E����j�nm��i�E�q3�q��nl�x����i��i����
��qo�E�q`��l������l������|d��i�v��q�t�ql����q�t�tval���
�Pe_1���[�?�t��y�����m�y�����p��y��y�����y�����m��n��mG��i�y��|d����{���i��i����|:�
�����y��y��y��{��t�t>��i��i�������
�������y����x��7�	�7��O����k��j��m�����������j����q�����m��w�m���i�q���i��i�����m��m�������������������{����h��j�E�����m�E����p��E����E����y��E����
��y��E�p��y���y����7��m�y��hJ��m�y�����|��|��7�'�u!��m��k�{�n�qC�{�n��k�{%�n8�7��J�py�u��7��N���l���N����U��R�k�m��l���p��s��[���m����nL����ph��p��k�m��l��7��l��j�l���l��j��v��s�m���i�q���i������������������h�������q3�����i�l��������m���i�q���i��i��������������������������������w�����������������xo�E���:���l��������������������������y�����7�y��E�y�����y������j�E����
�����y��{}�y�����t>��i��i��������j�E����
�������{}���x��7��7��p��������������������j����q����������m���i�q���i��i�������������������������������{�����8����E����p��E����E��@��B��C��D���7����y��hJ����y������j�E����|��|��7�>��k�{��n�qC�{��n�u�����{���i�����6�qL��i�qK�{���i�k�m��l���7��9��v��q�{���i�m���i�mR��i��7h��7��k�n�l��7�n�r��n�n�n>�n�o��Q�l���R��U�l��P>�r���Q��[�o��Q�n��Q�p��q��Q��V�k�n��Q��Q��V����k��p�h��i��n�z��g��Q�l���V��a�n��Q��f��Q��Q�o���Q��V��V���V���p������p������p�w����h��n���
���n���zU��Q��V������V�7�:)�z2�z3���:���R�������R�n�n��p���Q����z�r�����x��P��Q��Q����
��n�n��z+����z;��U�z3����U�n�����Q�z3�z�o��������Q��Q����z=�
������iff_true_intro�����������V�������x��7�
�7��7��l�k�n��f��Q��V���r�����u�����w��f����V��a�n��Q��f��Q��Q�����V��V����������������������{����h����E���n�n���e�z+�7�:)�_�:[�7�P�hW�P���ho�P���h��P���z.���E��
����e�z2���
�����!�z;��e�
��������a�c��hM�P�hO�P���hS�P�����h[�P���h_�P���hc�P���hg�P���hk�P�����hs�P���hw�P���h{�P���h�P���h��P���h��P���h��P�������h��P������E�p������7������7��V��i�hJ��V��������V�E����E�����u�|��7�PInfo���prvassoc�����qassocdecl����&�c��'�l�a�l�b�l�c�l��m��pC�u��u��|���&�c��'�l���l���l���l��u!��m��m��p4�u"�u"�u��u��m��pC�pD�pD�|�hb�u��u��vZ�n�qK�n�m��p4�p4�q�������hc�����n�y��y��$����~+���������������~5���z����n�~:����y��n�n�n�~Z����n�~:����y��n�n�~Z�$�n	�x�P�n�~��n	�n�~��n����n�~:�������n�������n�~:�������n�~��n�n�������~��7��7����������������������n����o��s��n�n����n������������n�����
������~��7��v0��������������������������n����n	����y��n	����~��z���z	�n���
���2A��k�z'�o�h���2������2�x6����?�7�n�n�x6�z�n�hJ��C�E�
��o�n�E�p���M�xX�x\�n�������n����������~��n�~��n�~�����~��7�������������y�������n	����y��n	��]��
�z���z	�n���
����A��k�z�o�h������������x6������7�n�n�x6�z�n�hJ����E�
��o�n�E�p�����xX�x\����n	����y�����n	�������o�����z������z	����n���
����A��k�z�za'�o�h������������x6������7�n����n�x6�z����n�hJ����E���n�y��y��z)�z+�p��E����7��B�z+����z+�p��
���������P���n�:�����E��R����E����|��xX�x\�zW�7�>�p,����m��n�y��y��o���y��~�m��p4�p4�{��q������ha�y��u������Z�n�n�n�y����$�����hc�����n��za�za�o7���-�za�������5������5�zl�o���z���0�o�z���0�za�o�o�o�z���.�o�z���.��B�zd�o�z��o7�o���q��o7�z��z���O�o/�z��z��
�i�
��e_1�~h�~i�r&�n$��z��x��i�z��z���zd�x�i�s��n��o�zd�o�z��o��4�o�z���4��C�o��g��3�o�z���3�z��o�z���zd��j�o�z���v�
���<���0�n��o�7��7�����7��:��>��@��A��B�o��r�o$��n��4�o��{��I�o��~�zd����ze�zd�������s�i�P�o��������
�������k��n�'�n��h������������x6������7�n��o�x6�h=�n��o�hJ����E�
��r��o�E�p�����xX�x\��o����7��y���,������7��:��>��@��A�z��o��F�zd��H�za�n��zd�zd��L�n���b��zd��j�}d�i�P�o�n����z���
��zA��k����os�n��h��z�����z�x6�����7�o�x6����n��o�hJ�o�E���n��z����z��E�
������o��i�P�o�d<�
����E�p����xX�x\�o�z���4�o��{����o�o�����3�o����z��n�����7������7��:��;�n��zd�zd����?�zd��A����zd��6��������4�zd��{����zd��A�zd�����3�
���P������zd�7����~���n�n��za��-�o/��-�za��r�u��z3�`�z2�n�y����o	�$���y�����$ha�z3�u����z��a�z��n���t���-��w�hb�����n�T�n�V�n��n�����?�?�n*�����������������������������n��n������n����n�e_1�q���q���s�e_2�z����z�����z�>���'���z����z��>'�������n����n��������n��m��n��m����n���sl�n����n����oDe_2�tK���s����tWe_3������z��z�T�z���>���'��z����z��l���>'����������n�����������n��n��������n����r"����os�o+�n��n��n����������oV����?�o+����
���
������w�n$���o+�x����o+�s����i�n��d�����n����������������������o+�����L�n��n��n��������x���s��n��n��������n�����������n�������n�����������n��������n���(��������2��7��-�
�������0�n��n��7��7����������������������������os�n�����]����6��]��������2��7����n���<����n���?�����A�����]��������D��]��b��������2�}d���i�n���]�������]�n����
�������k�x��n��n��h������������x6������7�n���]�n��x6�h=�n���]�n��hJ����E����������o+�E�
��������o����i�n��d��
�����E�p�����xX�x\��7��U�7��7�z3����������������������������������n��n������������n���(��,����������2��7����n���<����n��������n���K�����U�7���\����������n��������������������������]�����������������]��b��������2��������������n����
���A��k�x�T�n�V�n��n��n�����n��h����������x6�����7�n�����n��x6�������n��hJ���E���n�������������]���p��E��)�7�n���������p��
���(��/������i�n�����]�:���,�n��E����-�o,�E�
���-�o,����
��o,�E�p��o,����E����|��xX�x\��������<�����������������������������
������k�x��n��n��h����������x6����r�7��;�x6������n��hJ��;�E��K�xX�x\�
��������S����7��P��n���t�+��-��w�+���������������n��n��dF�q�������z��������z�����n��dF����������za�n�����n�����z���s����z���s����n���������r�����b��n��������u��i�P�o�+�����b����������������z�������mul_assoc�i���i��i�dC�������z��������n��q��������������z�����za����������z���r�������+�������������������������������q��
�������������7�PInfo���prvone_mul'�����one_mul'decl�(���&�c��'�l�a�l��l�T�l�V�l��m���l��m��l���&�c��'�l��)�l��p,�)�l��m&�m���l��m�'�m3�=��l���#�p���D��g��m��m�
���D���D������D������D�m��m������l����l�e_1�w����m����ne_2�q���n���n�>�n�'���n����n��>'�n���B�m��}d�l���@���m���@�m����
���oA��k�p=�n����	_'�n��m��h���o������o�x6������7�l���@�m��x6�h=�l���@�m��hJ����E������l��m��m�����'�n5�8��?�g��E�
��������o��l��g���?�
�����Eαs��p��	G��	`��g�one_ne_zero�g��xX�x\�m��m����l��m��
���M���0�l��m��7Annot���)�=��m&�m���v�n��n�
�����������������������n��n����w�����n��w�����n��s*��u�n���l��������u�'�m3��u���sS'�l���>����e_2�z.��i�n��n��n������'���s'�n��n��nQ�n��
�������xg�n��7Annot���PInfo�(��decl�#canonically_ordered_comm_semiring_proof_1��_inst_3�c����yP���l����l��m&��l��E�l��add�l�with_topadd_comm_monoid'�m��-��.��-��3�c�add_comm_monoidadd_assoc�yP��(��g��PInfo�2��	decl�1_proof_2���3�c����yP�s��l���l��E*�l���&�l���(�mb��<�l���I�m[�9��l��zero�l���I��3�c��7zero_add�yP��@�PInfo�9��	decl�1_proof_3���3�c����yP�s��P��V��3�c��7add_zero�yP��@�PInfo�<��	decl�1_proof_4���3�c����yP���l��l���l���l��E*�l���&�l���(�h��<�l���t��{��3�c��7add_comm�yP��@�PInfo�>��	decl�1_proof_5���3�c����yP�l��E��l��d
�l��}��m`��3�c��d�yP�}��g��PInfo�@��	decl�1_proof_6���3�c����yP���l����l��5�l��E��l��d
�l��}�'�l��5�m��E��m��d
�m��}�>�c��m��E��m��d
�m��}�'��3�c��d�yP����PInfo�A��	decl�1_proof_7���3�c��2���yP���l��kl�l��F�l��d�l��}��g��
��l��E��l��d
�l�����7����U��3�c��d�yP����PInfo�B��	decl�1_proof_8���3�c����yP���l��5���	�l��F7�l��������d�l�����d�l�����d�l�����5���	�l��F7�l�����d�l�����d�l�����d�l�����d�l�����m���3�c��d!�yP����PInfo�C��	decl�1_proof_9���3�c����yP���l���������l��Fe�l�����������������d!�l�������l����	�m��m��Fe�m�����d�m�����d�m�����d�m�����d�m�����d!�m�����|��|���m���m����m��c��m�����c��m�����c��m�����d�m�����d�m�����d	�m������W��3�c��d%�yP����PInfo�D��	decl�1_proof_10���3�c����yP���l����l��l�l�n�l��l��Fe�l��������������d!�l������$��l���l���l���?�l��c��l�����c��l�����c��l�����d�l�����d�l�����d	�l�������l�m�n�m���:��3�c��d)�yP����PInfo�E��	decl�1_proof_11���3�c����yP���	�l��l��Fe�l�����d�l�����d�l�����d�l�����d�l�����d!�l�������l����l��bot�l������3�c�canonically_ordered_monoidbot_le�yP����PInfo�F��	decl�1_proof_12���3�c����yP���l��k��������
�l��c��l��c��l�����c��l�����c��l�����d�l�����d�l�����d	�l��������������������� �d%�l�����d)�l�����d7�l����l��m'��$��u��v��w��l��c��l���z��}��������������������������p�d%�l�����d)�l������3�c��d��yP����PInfo�J��	decl�1_proof_13���3�c�_inst_4�l���l���l���l��m��ps�ps���ps��3�c��L�l���s�PInfo�K��	decl�1_proof_14���3�c��L�l��)�l��l��� ��!�����$��&�����3�c��L�l��(�s�PInfo�M��	decl�1_proof_15���3�c��L�l�a�l��l��� ���l��E��l��=mul�l��m���+�l���$�E��l���@��3�c��L�l��O�l����W�l���#��T����W��`��l���#��T_a�l���m&�m����l��E��l���G�l��m���+'�m3��2�E��l���v�m*���W��^�{��l���T���`�l�����`�����e��*_a�l���m&�m���w��|���`��>�l�����PInfo�N��	decl�1_proof_16���3�c��L�l�a�l�b�l�c�l��m��p@�9��m���G�m��n6�|��E�m���&�m���(>�nF�����������3�c��L�l��T�l��U�l��V�l������m��pC���������������{��u����_a�m���m��p1�9��m���G�m��m��|��E�m���&�m���(���|�����������{�����������{���������m��|��u��u������������{��pC�|�_a�m���m��p4������������������>'�n5�����m��|�����������������{���!_a�m���m��|��u��p5����m��|���%����������{�����m��������������=�{��ps_a�m���m��|��v@��%����m���E��������:�{��n>��;�PInfo�S��	decl�1_proof_17���3�c��L�l����l����l����l��m��ps�|��|���:��"��3�c��L�l����s�PInfo�[��	decl�1_proof_18���3�c��L�l����l��l��� �9��l���I�l��l��zero�l��m���|��3�c��L�l��=zero_mul�l��s	�PInfo�\��	decl�1_proof_19���3�c��L�l����l��l���w��|��|��3�c��L�l��=mul_zero�l��s	�PInfo�_��	decl�1_proof_20���3�c��L�l����l����l��m&�m��m��xF�����3�c��L�l��{��s�PInfo�a��	decl�1_proof_21���3�c�h�yQ�yP�9��yP��R�yP��@��yP�E��yP�yX�g��E��3�c��c����g��m�optionsomeinj��/�m��m��PInfo�b��	decl�1_proof_22���3�c��L�l���l���l��k����xH�7�m'�xH�m*�xH��3�c��L�l�����s�PInfo�g��	decl�1���&�c��'�l��3�c��L�l��c��l���&�c��'�l��3����L������l���'��)�l��l��l��2�'��R�l�����9�'�<�'�>�'����������������@�'�A�'�B�'�C�'�D�'�E�'����l�����F�'�J�'��k�m���'��>�:�K�'�n�����s�n��M�'�N�'�S�'�[�'�\�'�_�'�a�'�b�'�g�'	�PInfo�1��	prt�1VMR�1_lambda_1VMR�1_lambda_2VMR�1_lambda_3VMR�1VMC�h�b�f_fresh%�7��f_fresh%�7�
VMC�i
�Ao₂o₁�q	�hoptionmapVMC�j,��	�@�?�f_fresh%�7��q
�H	
�H		(		&

VMC�1��	�L�3�'�&��i

�j
decl�1equations_eqn_1���&�c��'�l��3����L���������1�'��b��&�c��'�l��3����L����������n�PInfo�z��	ATTR�'���zEqnL�zSEqnL�1ATTR�(���1classcanonically_ordered_comm_semiring�1��decl�#coe_nat���&�c��'�l�n���l��pcoe��coe_to_lift���coe_base���natcast_coe�g���>�r�s�g���~�l�����l�����l�����l��/�l��g��l���i�l��l���'��l���l��c��l��c��l������&�c��'�l���&�c��'�l��}��natbrec_on�}���m&�n���~'���'���'���'�n���t�
��'�s'��~�l�����l�����l�����l��/�l��g��l���k�m3�m3��5��l���l��c��l��c��l�����}��_F��below�}���m��o���~>���>���>���>�o��	_>�o���>�l���~�m�����m�����m�����m��/�m��g��m���i>'�n5'�n5�m�>'�n5��m���m��c��m��c��m����}��������}���n�n���~�P����P����P����P�z1�	_�P�z0����P�c���~�n����n����n����n�/�n�g��n��i�P���n���n�m��P���n��n��n�c��n�c��n��5��cases_on�}��������}���n��os��~������������������o*�	_���o)�b��~�n�����n�����n�����n��/�n��g��n���i���i�n��i�n��m����i�n���n���n��c��n��c��n���h�n��os��Z��{������}���n��n���~�i����i����i����i�z��	_�i�z���i��i�dC��~�n�����n�����n�����n��/�n��g��n���i�i�P�o�P�o�m��i�P�o��n���n��c��n��c��n������zero�=��n��n�����lf����g��n�����}��������succ�=��n��os��Z������{���
��n��os��Z����{��
��n��n���~������������������/���g������	_������������v��h�����~�n�����n�����n�����n��/�n��g��n���i�����n����n��m������n���n���n��c��n��c��n��������n��n�����������������d�������������������������%����������,���%���_a����oE�oL��~��������������n��	_��n������d��iZ����~�oD����oD����oD����oD�/�oD�g��oD��i����oV���oV�m�����oV��oD��oD�c��oD�c��oD��Q��C�oE�oL��e�����)natcast_add�������������,�n���n���n��|������n���&�n���(������,�����n���*_a�n���oE�oL�d��d��d��o���3��4��5��6�o���9����������e�oE��e���,����#coe_add�������&��(���������{��|��n��l�������������������n�������������������������������_a�n���oE��oD��oD�|������oL����oL�����e������������q�n�������������n������������������������n����_a�n�������������oD�l���o���G��H��I��J��oD�����W���������oE���������������pprodfst��}���oE�oL��B��dnatadd�����rec�n���punit�n��ih��pprod������}���y��l����s��l����s��m�����~������������������/���g������	_����0�fi��~�s�����s�����s�����s��/�s��g��s���i�����������������H�m�������H��s���s��c��s��c��s���K����������"����j�������n������������������z����n������_a�n���oE�����d������oE�����������w�o���xAnnot��Annot���g��n�����PInfo�|��ATTR����|decl�#nat_ne_top���&�c��'�l�n���m�����m���&�c��'�l����������m�����m�����������e���_a�l���p=����m��w��m����������l��������#coe_nat�l��y`����PInfo����ATTR�����decl�#top_ne_nat���&�c��'�l�n���m������&�c��'�l����������m���������������_a�l���x'����x'�����������#top_ne_coe����PInfo���ATTR�����decl�#nat_inductionP�with_top���a��h0�j���kf���1���1���l���������natdecidable_eq�l���hsucn����~�������������N��'�� ���htop�n��'��!'�X���Y���;�����������������'����0���������~n��natrecn������!n��IH��<�m1����������;�����P��!'��������G�n3�PInfo���ATTRelab_strategy����EndFile