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�&x�zinitalgebragroupto_additivealgebragroupbasicalgebragrouphom�	�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}traversedeclwith_oneu_1�option�PInfo�VMR�VMC��decl�equations_eqn_1��eq���eqrefl	�PInfo�ATTR_refl_lemma���EqnL�SEqnL�ATTRto_additive���to_additivevalue_typemknameanonymousoptionnonestringATTRto_additive_aux���namemk_string
Strwith_zerodeclwith_zero��PInfo�VMR�VMC��decl�equations_eqn_1�����PInfo�nspacewith_onedecl�monadu_1monad�optionmonad�PInfo�	prt�VMR�VMC�	optionmonaddecl�equations_eqn_1�$��%
$'�PInfo�	ATTR����EqnL�SEqnL�ATTRinstance���class����ATTR����ATTR����
Strmonaddeclwith_zeromonad�#%�PInfo�	VMR�VMC�	�ATTR����classmonad���decl�equations_eqn_1�/�%
/1�PInfo�	decl�has_oneuα�has_one	with_one	�6has_onemk	9	�PInfo�	prt�VMR�VMC�	�decl�equations_eqn_1��6�	:��@�6�:E�PInfo�	ATTR����EqnL�SEqnL�ATTR����class����ATTR����ATTR����
Strhas_zerodeclwith_zerohas_zero��6has_zero	�	�6�mk	R?�PInfo�	VMR�VMC�	�ATTR����class����decl�equations_eqn_1��6BS�W�6IS[�PInfo�	decl�inhabited��6inhabited	9�6inhabitedmk
9has_oneone	9E�PInfo�	prt�VMR�VMC�	�decl�equations_eqn_1��6�
c��j�6�co�PInfo�	ATTR����EqnL�SEqnL�ATTR����class����ATTR����ATTR����
Strinhabiteddeclwith_zeroinhabited��6bR�6eRhas_zerozero	R[�PInfo�	VMR�VMC�	�ATTR����classinhabited���decl�equations_eqn_1��6lz���6sz��PInfo�	decl�has_coe_t��6has_coe_t
	9�6has_coe_tmk
9	�PInfo�	prt�VMR�VMC�	val�decl�equations_eqn_1��6l�����6s���PInfo�	ATTR����EqnL�SEqnL�ATTR����class����ATTR����ATTR����
Strhas_coe_tdeclwith_zerohas_coe_t��6�R�6�R��PInfo�	VMR�VMC�	��ATTR����classhas_coe_t���decl�equations_eqn_1��6l����6s���PInfo�	decl�one_ne_coe��6ane	8g�D�coe
��coe_to_lift
�����6�hB���optionno_confusion	falseg8�D�����������PInfo�ATTRsimp���ATTR����ATTR����
Strzero_ne_coedeclwith_zerozero_ne_coe��6��Q�}�Z��������6��B����}Q�Z���������PInfo�ATTR����decl�coe_ne_one��6a����6�h�������PInfo�#ATTR����ATTR����ATTR����
Strcoe_ne_zerodeclwith_zerocoe_ne_zero��6�����6���������PInfo�#ATTR����decl�ne_one_iff_exists��6x9iff��Exists
�a�B����6�9optioncases_on	��������#���B8���5�6��5�6��5id_rhs����$���%��'�intro�I�Nh�Ifalseelim�4���7g�6D�5�@rfl	��a�Nid�0��h�K�Existsdcases_on�5��5B8g�lD�k��k�l��k�l��k��#�5�{��a�5ha�z��g8��D�������������������H��0�'��4���7�?��@�Q����h���intro�5��5�m�x��y��]�6��h��with_onecoe_ne_one	�5��PInfo�'ATTR����ATTR����
Strne_zero_iff_existsdeclwith_zerone_zero_iff_exists��6�R����$��B����6�R�/�������4��BQ�5��9���;����5�H����$��������Q��������T�4����}��Z�5���]������d���������j��5BQ�k}��Z�k�r���t����k��}�����5����}Q��Z���������������H�������4����������Q�)�/��)����5��	��
��]���+��/with_zerocoe_ne_zero	�5��PInfo�'decl�coe_inj��6ab���%��'B���6���optionsome_inj	���PInfo�,ATTR����ATTR����
Strcoe_injdeclwith_zerocoe_inj��6����������N�Y�PInfo�,decl�cases_on��6Pa9x��
���
a�5�5�y�5��6�	�e�/�PInfo�0prt�ATTRelab_strategy���ATTR����ATTR����
Strcases_ondeclwith_zerocases_on��6�	�
R�d���
���
��5�5�
�i�6�	�u�o�PInfo�0ATTR�
���decl�has_mul��6_inst_1has_mul	����6���has_mulmk	�optionlift_or_get	�has_mulmul	��PInfo�5	prt�VMR�VMC�5	��optionlift_or_get_maindecl�equations_eqn_1��6���B��������6���I�����PInfo�5	ATTR����EqnL�SEqnL�ATTR����class����ATTR����ATTR����
Strhas_adddeclwith_zerohas_add��6�has_add	����6���� mk	���has_addadd	��PInfo�5	VMR�VMC�5	���ATTR����class� ���decl�equations_eqn_1��6���B�������6���I�����PInfo�%5	decl�mul_coe��6_inst_1��a�b��7���6���5����@�?���5���6�'���(��)������PInfo�&9ATTR����&ATTR����&ATTR����&ATTR����&
Stradd_coedeclwith_zeroadd_coe��6�'���(��)����������5��+�������5���6�'���(��)��:���PInfo�+9ATTR����+decl�coe_is_mul_hom��6_inst_1��is_mul_hom		������6�-��is_mul_hommk		�����a�b������PInfo�,<	prt�,VMR�,VMC�,�-�decl�,equations_eqn_1��6�-������,�����6�-�������PInfo�4<	ATTR����4EqnL�4SEqnL�,ATTR����,class�.�,��ATTR����,ATTR����,
Strcoe_is_add_homdeclwith_zerocoe_is_add_hom��6�-��is_add_hom		������6�-���7mk		������1��2��:���PInfo�6<	VMR�6VMC�6�-�ATTR����6class�7�6��decl�6equations_eqn_1��6�-������6���6�-�����$�PInfo�:<	decl�monoid_proof_1��6_inst_1semigroup	aoption	�b�/�c�/�5B�/�k���k���ksemigroupto_has_mul	�k�5�;���<�;��6�=�.is_associativeassoc	�0�����7�optionlift_or_get_assoc	��Nsemigroup_to_is_associative	��PInfo�<?	decl�;_proof_2��6�=�.a�0B�1�������7��>��6�=�.is_left_idleft_id	�0�O>�optionlift_or_get_is_left_id	��N�PInfo�J?	decl�;_proof_3��6�=�.a�0�[�a�b�6�=�.is_right_idright_id	�0�O�moptionlift_or_get_is_right_id	��N�PInfo�P?	decl�;��6�=�.monoid	��6�=�.monoidmk	�������M�<����J���P���PInfo�;?	prt�;VMR�;VMC�;?	�=��decl�;equations_eqn_1��6�=�.B���;�����6�=�.I�����PInfo�Z?	ATTR����ZEqnL�ZSEqnL�;ATTR����;class�V�;��ATTR����;
Stradd_monoidATTR����;��declwith_zeroadd_monoid_proof_1��6�=add_semigroup	�?�0�A�1�B�2�4�5���kadd_semigroupto_has_add	�k�5����������6�=���K��������R��add_semigroup_to_is_eq_associative	��PInfo�]?	decl�\_proof_3��6�=���Q�0�[�\��������b�6�=���}���m�����PInfo�b?	decl�\_proof_2��6�=���K�0�[���b�6�=���k���m�p���PInfo�c?	decl�\��6�=��add_monoid	��6�=���dmk	���������\_proof_1���\_proof_2��\_proof_3��PInfo�\?	VMR�\VMC�\?	�=��ATTR����\class�d�\��decl�\equations_eqn_1��6�=��B���\��	�6�=��I����PInfo�j?	decl�comm_monoid_proof_1��6_inst_1comm_semigroup	a�b�c�6�m���l���l�Wmul	�l���kcomm_semigroupto_semigroup	�k�5�%���&�%��6�m��Vmul_assoc	������PInfo�lG	decl�k_proof_2��6�m�a��%����7��Cmk	����������4��D�<��Wone	��D�6�m��Vone_mul	��8�PInfo�vG	decl�k_proof_3��6�m�a��%�K�Q�6�m��Vmul_one	��8�PInfo�{G	decl�k_proof_4��6�m�a�0b�1B�2���5���7�5��5���q��6�m�is_commutativecomm	�0�����L�7optionlift_or_get_comm	��comm_semigroup_to_is_commutative	��PInfo�~G	decl�k��6�m�comm_monoid	��6�m�comm_monoidmk	����8�l���M��8�v���{���~���PInfo�kG	prt�kVMR�kVMC�kG	�m��decl�kequations_eqn_1��6�m�B���k�����6�m�I�����PInfo��G	ATTR�����EqnL��SEqnL�kATTR����kclass���k��ATTR����k
Stradd_comm_monoidATTR����k��declwith_zeroadd_comm_monoid_proof_2��6�madd_comm_semigroup	�w���������add_semigroupmk	�add_monoidadd	��
�add_comm_semigroupto_add_semigroup	��add_monoidadd_assoc	����U�add_monoidzero	����6�m��add_monoidzero_add	������PInfo��G	decl��_proof_4��6�m����0���1�j�k�����5���5������6�m���}������������add_comm_semigroup_to_is_eq_commutative	��PInfo��G	decl��_proof_1��6�m���o��p��q����������������
�k���k�5�������6�m��������PInfo��G	decl��_proof_3��6�m���|��������6�m��add_monoidadd_zero	����PInfo��G	decl����6�m��add_comm_monoid	��6�m����mk	��������_proof_1��������_proof_2���_proof_3���_proof_4��PInfo��G	VMR��VMC��G	�m��ATTR�����class������decl��equations_eqn_1��6�m��B�+����E�6�m��I�+�K�PInfo��G	decl�lift�v�6�_inst_1has_one f�
���
�6�5�6���T���V���Wx�6optioncases_on!	�k_x�l�k� �5���PInfo��NVMR��VMC��	N���������	decl��equations_eqn_1����6���T���V���W�	!�X������5���g�6���T���V���W�"!�X�r�PInfo��NATTR�����EqnL��SEqnL��ATTR�����ATTR�����
Strliftdeclwith_zerolift����6���T��has_zero ���W�
���5�6���T�������W�����^�����khas_zerozero �5���PInfo��NVMR��VMC��	N���������	decl��equations_eqn_1����6���T�������W�l����$%�5�����6���T�������W�y�����PInfo��Ndecl�lift_coe����6β�T_inst_1monoid f�Wx�5eq �5�n�k�5�Wto_has_one �5���y��6���T�������W���5rfl'�5���PInfo��SATTR�����ATTR�����ATTR�����ATTR�����
Strlift_coedeclwith_zerolift_coe����6���T��add_monoid ���W���5�����k�5add_monoidto_has_zero �5���
���6���T�������W���5�����PInfo��SATTR�����decl�lift_one����6���T�������W����p�����W�b����6���T�������W������PInfo��VATTR�����ATTR�����ATTR�����ATTR�����
Strlift_zerodeclwith_zerolift_zero����6���T�������W����������������6���T�������W�����PInfo��VATTR�����decl�lift_unique����6���T����f�
��hf���W���l�
�l�k���functioncomp
	 �k�l�5��x�6���T����������funext	)�lx�l�k��x�lwith_onecases_on	��_x�������5�n�������k��'8�'���5��'�.��'�.��'�x�������5�8�PInfo��YATTR�����ATTR�����
Strlift_uniquedeclwith_zerolift_unique����6���T�������
�����������l�
���k�������5��	�6���T�������Q���T��������k��\����with_zerocases_on	������&���'�������k�-Q�'���5�2�o�4�o��'������A�5�w�PInfo��Ydecl�lift_is_monoid_hom����6ha�.���T�������
�5�hfis_mul_hom	 �k��9�D ��Wto_semigroup ��is_monoid_hom	 ���5�����k��n���5����6���.���T������������is_monoid_hommk	 ���5������0	 ���5�7����	�������5���5���x��y�.�"_x8�����'�n�'���'���k��8���7�������������� �'���'���'��������eqmpr�$�n�����+�5�����7�����������'g��D���������������k�������$���d��d��eqrecu��������	����_a���������g��D���������������!�+�d�one_mul	����������b���+��d���:�� ���_a��������!�B�����*��7�lift_one	 �����k�5���:���d��:�W�@�9_a����B���b�'�����B�*�:��� ���k�eqrefl)���x���"��_x�������n	�������'����8�z�7���������z����z����z����z��������������'�������������������������������������������d����������������_a����y����g��D�z�������y�����*����mul_one	���������������^�d������?�'�_a�'��y���������*���^�N���'���k���������d���������_a�'������b���~���*������ �'�����q�'��y��is_mul_hommap_mul	 �z���7�z�������k��N���5���PInfo��`	prt��VMR��VMC�������������decl��equations_eqn_1����6���.���T������������������������k�5���,�6���.���T����������������:�PInfo��`	ATTR�����EqnL��SEqnL��ATTR�����class������ATTR�����
Strlift_is_add_monoid_homATTR������Ldeclwith_zerolift_is_add_monoid_hom����6�������T����������is_add_hom	 �k���add_semigroupto_has_add �add_monoidto_add_semigroup ��is_add_monoid_hom	 ��5�
���k������5����6�������T�����������\�mk	 ��5�a��g�mk	 ��5����	��a�U�5�W�5��g������o�h����Q���������'���'���k��Q�������y���
�����has_addadd �'�U�'�W�'�����������$�������m�5���������y���
���'}��Z�������U���W���k�������$�����d������������add_monoidto_has_zero	���������������}��Z������������������*��zero_add	�����������������m���d������@��������������������*����with_zerolift_zero	 �����k�5���������d����	�@��������������'�������*�����
 ���k���r�������h�������y���z�������'����Q�z���	6�y�	6�
�z�����	6���	6��z������U���W���'�	5�	D�	5���������������������������	\�����	a�	c�d��	d�	g����	]��������������y�	5�	E}�	6Z�z�	P�	5�	t�y�	Q�	y�*�	d�	\add_zero	�����	\���	g�	f�	b�	�d��	g�	��������'��y�	O�	y�	��	P�*�	g�	�	���'���k���	��	f�	a�d��	��	����	����'��	��	P�����	3�	��*�	��	a� �'���	a��	a����is_add_hommap_add	 �z�����z���	M���k��	���5���PInfo�`	VMR�VMC������������ATTR����class����decl�equations_eqn_1����6�������T�����������\���h�/0���k�5���	��6�������T�����������\��h�	��PInfo�`	decl�map����6β�Tf�
���
�with_one ��6��T��	�optionmap	 ���PInfo�lVMR�VMC�l����mapdecl�equations_eqn_1����6��T��	��l�	��������
�6��T��	��y�	��
�PInfo�lATTR����EqnL�SEqnL�ATTR����ATTR����
Strmapdeclwith_zeromap����6��T��	��
�� ��
�PInfo�lVMR�VMC�l����decl�equations_eqn_1����6��T��	��l�
�12���
�6��T��	��y�
�
$�PInfo�!ldecl�map_eq����6β�Tf�	��

�n��	��� ���
  ���
0coe34��
0coe_to_lift34��
0� ��6�#�T�$�	�������	��
�
Ex��"�5x�6���	��5�
	�k�5����
P�
2�5�
5�k�5�
P�
9�5�
P�
<�5�
P�
?�5����	��
	�5���Wa�5���
P�
T�y�PInfo�"oATTR����"ATTR����"
Strmap_eqdeclwith_zeromap_eq����6�#�T�$�	��
%����
�with_zerohas_zero ��
7�
��
:�
��
=�
�with_zerohas_coe_t ��6�#�T�$�	�������
�
$�
��'��h�5�(�����
�5�
!�k�5����
��
��5�
[�
��
]�
��
_�
��
��5����
�
!�5�����)�5���
��
��
�PInfo�+odecl�map_is_monoid_hom����6_inst_1�.β�T_inst_2semigroup f��_inst_3��������
P���; �5��
	���5��6�1�.�2�T�3�
��5���6�
����
��
����
P�
X�
5���5�
P�
c��d��
��
���uva���	��k�
�_a�
�����.�
����'���
��k�5�
	�'�k��
��*�
��
��map_eq	 ���5��6�
P�
��
�is_mul_homcomp	  ���5�7���k����
P���
P���
P�
���
c�, �5��PInfo�0v	prt�0VMR�0VMC�0�6�5�3�2�1�decl�0equations_eqn_1����6�1�.�2�T�3�
��5���6�
����
��0������k�5����6�1�.�2�T�3�
��5���6�
���
��-�PInfo�?v	ATTR����?EqnL�?SEqnL�0ATTR����0classis_monoid_hom�0��ATTR����0
Strmap_is_add_monoid_homATTR����0�?declwith_zeromap_is_add_monoid_hom����6�1���2�T�3add_semigroup �5���6�T�V��^�
��awith_zeroadd_monoid �5��
!���5��6�1���2�T�3�E�5���6�H���R�N�d�
��
��
��
��
���d��R�`�
��9��
�k�Q�:�f��]�o�e�
�'���K�k�5�
!�'�k��p�*�R�_with_zeromap_eq	 ���5��	��
��M�^is_add_homcomp	  ���5�����k�~��
��U�
��W�
��M��
�with_zerocoe_is_add_hom �5���PInfo�Bv	VMR�BVMC�B�6�5�3�2�1�ATTR����Bclassis_add_monoid_hom�B��decl�Bequations_eqn_1����6�1���2�T�3�E�5���6�H���R�B:;���k�5�����6�1���2�T�3�E�5���6�H��R���PInfo�Nv	nspacewith_zerodecl�Ohas_one��6one77��6�Q��<��g��PInfo�P	prt�PVMR�PVMC�P	�Q�decl�Pequations_eqn_1��6�Q��B���P�����6�Q��I�����PInfo�S	ATTR����SEqnL�SSEqnL�PATTR����Pclasshas_one�P��decl�Ozero_ne_one_class_proof_1��6_inst_1��h��U�����no_confusion_type	�������g���6�W���X��������PInfo�V�	decl�U��6�W��zero_ne_one_class	��6�W��zero_ne_one_classmk	��g����V���PInfo�U�	prt�UVMR�UVMC�U�	�W�decl�Uequations_eqn_1��6�W��B���U�����6�W��I�����PInfo�^�	ATTR����^EqnL�^SEqnL�UATTR����Uclass�Z�U��decl�Ocoe_one��6_inst_1��������6�`���]����PInfo�_�ATTR����_decl�Omul_zero_class_proof_1��6_inst_1��a���������o₁�o₂��optionbind		�k�k�a�kwith_zeromap		����b�����'�������&�6�c���d����&�PInfo�b�	decl�a_proof_2��6�c��a��n������������e���f���������i����'�'�l�'�����'����U�����G�6�c���n��.��KI��$�b���n�I���C��5�G�PInfo�m�	decl�a��6�c��mul_zero_class	��6�c��mul_zero_classmk	��e��f���5�5��i�5��k�k�l�k�����k����b���m���PInfo�a�	prt�aVMR�a_lambda_1VMR�aVMC�r
��f�e_fresh��d	�VMC�a�	�c��rdecl�aequations_eqn_1��6�c��B�d�a�����6�c��I�d���PInfo�x�	ATTR����xEqnL�xSEqnL�aATTR����aclass�o�a��decl�Omul_coe��6_inst_1��a�b����0�pto_has_mul	�����5��+�������6�z���{��|��:���PInfo�y�ATTR����yATTR����ydecl�Osemigroup_match_1��6_inst_1�._a�_a�_a����e���f���'�'��i�'������l�������7����������������6���.�����������.�k����B��e��f�o�������i��������l�����z���������������H�����>�k����]������k�.�����B�o�e�o�f���������i����z�z�l�z��
�7���z���
��'���
�
���H���������>����
�]��
val_1���.�'���oB���e���f����z�z��i�z������l�����7�
'�����
4�����
5��
7�
4�
8��H���
�
�
>�'�
H�]�o�
Hval_2�'�HB�/���
5�7�7���'�
T���
5�
U�
T�congr_arg	B���
P�
X�
]�
5mul_assoc	���'���PInfo��	decl�equations_eqn_1��6���._x�_x������e���f���4�i���6�l�'�
\��
�>�5��
��
�����5��
���:�
��6���.��������
�id_delta�
��
��PInfo���	ATTR�����EqnL��decl�equations_eqn_2��6���.a�_x������
��
��Y��
��
��
��
��
��
��:�
��6���.��������
��
��
��
��PInfo���	ATTR�����EqnL��decl�equations_eqn_3��6���.a�b������
��
��Z�
��
��
��Z�
��
��Z�
��:�
��6���.��������
��
��
��
��PInfo���	ATTR�����EqnL��decl�equations_eqn_4��6���.a�b�c�5���������k��
���
��
����
��
��
��k�5�
��
��
��
a�k�3�:�:���
��:��
��
g�k�5���6���.���������5��
��
��
��
��PInfo���	ATTR�����EqnL��decl�Osemigroup_proof_1��6���.a�b�c�����6���.�����������
����PInfo���	decl����6���.�-��6���.�>��omul	����M�����PInfo���	prt��VMR��VMC��
�	�f�e���	�decl��equations_eqn_1��6���.B������&�6���.I��,�PInfo���	ATTR�����EqnL��SEqnL��ATTR�����classsemigroup����decl�Ocomm_semigroup_match_1��6_inst_1�_a�_a����0�7���>����mul	���*�5�n��mul_assoc	���:��B��6����������.�5����������7���>���7���*�k�!�=���S��Z���H�����pto_has_zero	�����o�0���f�heqsymm	���m�hmul_zero	���f��5������������7��>��7��*������k�=����
�������H��Z�
���������val_1�k�HB�/���
�n�����
����
a���������
mul_comm	���k��PInfo���	decl��equations_eqn_1��6���_x�������7��>��7��*��C�=����b���b������b�p���������^�C��d������t����6����������
������PInfo���	ATTR�����EqnL��decl��equations_eqn_2��6���a����������b���������b�����6����������
������PInfo���	ATTR�����EqnL��decl��equations_eqn_3��6���a�b������B�
��Z�B�Z�
����5��
��Z�
a�5�2�p��p��Y���5���6������������
����PInfo���	ATTR�����EqnL��decl�Ocomm_semigroup_proof_1��6����o��p��q����N�����T�3���4�3��6����=��+�7�PInfo���	decl��_proof_2��6���a�b��H�6������������PInfo���	decl����6������6����smk	��7��C���������PInfo���	prt��VMR��VMC��
�	�f�e���	�decl��equations_eqn_1��6���B�Q�����`�6���I�Q�f�PInfo���	ATTR�����EqnL��SEqnL��ATTR�����classcomm_semigroup����decl�Omonoid_match_1��6_inst_1��_a�����������g��������6���o����P������8�9���5�g�����5��5��H���z�b���������H�j�Y���l��g�5���Z����Y�.�5��PInfo�ģ	decl��equations_eqn_1��6���o����V�+����������m�m�����m����6���o����
������PInfo�ȣ	ATTR�����EqnL��decl��equations_eqn_2��6���oa������z�����������
a��1�]�^�q���w���.���6���o�������
������PInfo�ʣ	ATTR�����EqnL��decl��_match_2��6���o_a���������s���r�t<��Zone	�����w�6���o����P������0�5�6���>����<���������5���H�����b���������H�j�Y�����Z���Y���5��PInfo�̣	decl��equations_eqn_1��6���o�������7�����B���m������������m�����m��<�6���o��>�
��>�C�PInfo�У	ATTR�����EqnL��decl��equations_eqn_2��6���oa��������������@�����������������6���o�����R�
��R�V�PInfo�ң	ATTR�����EqnL��decl�Omonoid_proof_1��6���o�o��p��q����N�1�Q�R���k�5�q���r�q��6���o�2�PInfo�գ	decl��_proof_2��6���oa��}�6���o������PInfo�֣	decl��_proof_3��6���oa����6���o����U�PInfo�أ	decl����6���o����6���o����������9���������PInfo�ԣ	prt��VMR��_lambda_1VMR��_lambda_2VMR��VMC���.�l�s_fresh����s_fresh���
VMC��
��f�e��	���VMC���	�����
decl��equations_eqn_1��6���oB���������6���oI�����PInfo��	ATTR�����EqnL��SEqnL��ATTR�����classmonoid����decl�Ocomm_monoid_proof_1��6_inst_1���o��p��q����N�1������k��to_monoid	�k�5����������6�����4�������PInfo��	decl��_proof_2��6�����w������������������4����t���M����6�����Y����PInfo��	decl��_proof_3��6�����|��������6�����e����PInfo��	decl��_proof_4��6����a�b����0�5�6�smul	���d�5��to_comm_semigroup	�5��smul_assoc	��������6������mul_comm	��e����PInfo��	decl����6��������6����������������M����������������PInfo��	prt��VMR��_lambda_1VMR��_lambda_2VMR��VMC���.�l�s_fresh����s_fresh���
VMC��
��f�e��	���VMC���	�����
decl��equations_eqn_1��6����B������/�6����I��5�PInfo���	ATTR�����EqnL��SEqnL��ATTR�����classcomm_monoid����decl�Oinv��6_inst_1has_inv	x���6���?�� 		Qmonadto_has_bind		Q�	��a�return		Q�G�5has_invinv	�5��PInfo���VMR��VMC��
�����	decl��equations_eqn_1��6���?����������W�6���?���S�^�PInfo��ATTR����EqnL�SEqnL��decl�Ohas_inv��6_inst_1�?�>��6�
�?has_invmk	��[��PInfo�	�	prt�	VMR�	VMC�	�	�
���decl�	equations_eqn_1��6�
�?B�h�	���o�6�
�?I�h�u�PInfo��	ATTR����EqnL�SEqnL�	ATTR����	classhas_inv�	��decl�Oinv_coe��6_inst_1�?a����Q��s������Q���6��?�������PInfo��ATTR����ATTR����decl�Oinv_zero��6_inst_1�?��Q��u���6��?����PInfo��ATTR����ATTR����decl�Oinv_one��6_inst_1group	����tgroupto_has_inv	��������to_monoid	����6���
this���Q�������������true�d�����eqtrans+�d���������a���e_1���9���9�e_2���congr
+���d�
!���
!�k��congr_arg

+���9���d���k�
!�5�����
��������_inst_1has_lift_t
	��a��&�5e_2B�k��������5�����one_inv	��Ocoe_one	�������I���propext����eq_self_iff_true
���trivialAnnotshow�PInfo��ATTR����decl�Odiv��6���x�y����6����/��0��0�����l�����5���Q���s�5���5��PInfo�.�VMR�._lambda_1VMR�.VMC�1�.�l�s_fresh����s_fresh���
VMC�.��0�/��	����1�decl�.equations_eqn_1��6����/��0����.��5���+�6����/��0��X�4�PInfo�9�ATTR����9EqnL�9SEqnL�.decl�Ohas_div��6���has_div	��6���has_divmk	��0�	�PInfo�:�	prt�:VMR�:VMC�:�	���.decl�:equations_eqn_1��6���B�A�:���H�6���I�A�N�PInfo�?�	ATTR����?EqnL�?SEqnL�:ATTR����:class�;�:��decl�Ozero_div��6���a���has_divdiv	��L�����6����A����]�PInfo�@�ATTR����@ATTR����@decl�Odiv_zero��6���a����[���6����E��d�j����������^�p�����~����������d��~�����~���������e_1���9��9�oe_2�
!������dB�������k�������9���d���k���5�|�����|�v�����sc����9���9��e_2����9�o�9��e_3����"

�	6�	6���	6�'�����k���
a�	6�9�	6Q�����k���5�t�S�{��	��x���s���S�����������PInfo�D�ATTR����Ddecl�Odiv_coe��6���a�b����W���L�5��+���������R�'�6����L��M��:���PInfo�K�ATTR����Kdecl�Oone_div��6���x����[�t�u�v�p�z�6����O��.����p��PInfo�N�decl�Odiv_one��6���x����g��6����Q��P�Q�������������H���\��(���(�Q��H���"���)�!��
��3���3���d��3�����3��������������e_1���9�o�9��e_2�����	6�dB�	6���B�k�����	6�9�	6�d���k�B�5�1�������1�/�!���H����a���T�e_2���9���9��e_3�B������������'���e�k���
a���9��Q�
'���k�e�5�!�����X���0�!�	�5��������5�����������=��������Annot�-�PInfo�P�ATTR����Pdecl�Omul_right_inv��6���x�h�����#�)��!�6����X��Y���M�X���Y�������{�����������������k��Q��s�������k�g������������Y����
����H��N�������k�8�l���k�5��Q���s�k���k�5�g�����k��k���T������X�5�Y���
���H�����������������d���������������������oe_1���9���9�	6e_2B������m�dB�m����k�����m�9�m�d���k��5����������g�������$��n����Q������'�$����.�0�H����T�o�T��e_2���9�	6�9��e_3����Q�;���;�'���?�k���
a�;�9�;Q
���k�?�5����I�����3�	������y	������.�$������&�'�&��e_2B����
a�z�	6���	?�5��/�&mul_right_inv	���k������������[������������PInfo�W�ATTR����Wdecl�Omul_left_inv��6���x�h�����"����!�6����a��b���M�a���b�������������b���H���������T�����a�5�b���H����������������d������������� �����#���'������*�.��'�����3����X���3�c���\�h�.��}���&mul_left_inv	���k�������������PInfo�`�ATTR����`decl�Omul_inv_rev��6���x�y����)�#�"�*���6����e��f��M�e�����������������M�f�����������������H���)�"�����!�:�!�f�5�H������
�)���)�e�5���f��������������������H������
��@���@�f�k�H������������G�����N���d��N�����N����*�-�.�Y��� �I�Y�#�I��-�+�Y�`����a�cc�>��9�o�9��e_2�����	6���Q�	6�5���H�f�i�b�a�}�b�Xmul_inv_rev	���k��M�Y�#�M����V�3�Y�X�K���b���3�c�h�V�.��[�����Y��PInfo�d�ATTR����ddecl�Omul_div_cancel��6���a�b�hb������W���L�k�5�������6����k��l��m��
���������������d�������������������e_1���9���9��e_2�a�����d�����k�������9���d���k��5��������N�O�R�����������������������
g��������H�����T��T�oe_2���9���9�	6e_3����m�m���m�'����k���
a�m�9�m�;���k��5����I��������W	�k�5�iffmpr��������+�d�(A�d�����iffrefl�(�����(not����9�:����;nedef
����a�d�z�de_1���#++�d�d���:�>���>�iff_false_intro�>��;��not_false_ifftrueintro����������������������Annot�-�PInfo�j�ATTR����jdecl�Odiv_mul_cancel��6���a�b�hb������������6�������������
����������������d�������������������������������������������������`	�k�5��f�n����y�Annot�-�PInfo���ATTR�����decl�Odiv_eq_iff_mul_eq��6���a�b�c��hb�(����W��L���k�5��������5�6����������������(�Q����h���������o���o���'�7�'���'���'����5�k���d������������k�k����o���e_1���9�	6�9��e_2�9���;�dB�;�����k�����;�9�;�d���k���5���k���o�����W�o�L�'���k�5�5�k�H���o�T���T��e_2�a�9���9�me_3������H�H���H�'���$�k���
a�H�9�HQ���k�$�5�����p�o���5�5I�o�5��	�'���k�5�&��o�5}�oZ�'���,�UA�d�����k���5�U�����U�;���c�:���5�T�;�B�o�5�T�R�g���g��W�g��a�e�k�k�G�k�������o�k��������������d������������������������5�c�@�o�T���T��e_2�a�9���9�me_3� �"�W�H�'�����k���1���5��k���@���k�5�5�H�j	�'����5�|���G�����������PInfo���decl�Odiv_eq_div��6_inst_1comm_group	a�b�c��d��hb�0hd�P��T��
!�W���L��comm_groupto_group	���'���k���5��
!�������������
R����������������k�5�6���������������������0�����i��������	\���#���
����W���L���������'����k�5��������������������������'�5�(���keqmp�[��,�[_a�d���������*�[���[��One_zero_iff_exists	���k�b��rfl���	6�	D���	6���W���L�������z���Q�'����d�������������������O�����b�'�i�z��z������������������#�z�v���R�s��V�e�b�z�'�2��	6�k�	t�y�,��_a�d������}��Z���*���y����y�B�z�k�d�zrfl�u��m��
'�m��
'�m��
'����m����W�;�L�:���:�
'����:�;��:�;��:�k�������>���;���:�7�:���:���:�����������h�
'���m���������������������z�����m�����}�;Z�:�������������������5��W�m�L�
'���
'��}�mZ�
'���5�������
'�������������������d������������a�d���de_1�Hb�d���de_2�H�"++�d�d�����k���J���d�d���k��5�
����
���������:���Q�:���:������;��He_1B�-��9Q�9Qe_2BQ���Q�dB�N���Q�k�����N�9�N�d���k�Q�5�����@	�:�����	�=�Odiv_coe	�:�����>��6��W��,��:�<�
����
�3���5�k��f����zero_mul	�;��������f�:���k������������iff_self�����
'�h�:���;�B�H���L�G���G�:��G�H��G�H��G����������5���#���H���G�7�G���G���G��������������������������������������d�������������/������������6�:�k����f�����s�k�����k�������6��W��?��:��������������6�����f�����������t�;���������������:����������������1�B�G�l�G���,�7�,���,���,���,�G��Q�G���G�����l�G�D��K�5�7�d��8�V�,�����M���S_a�d���A�W�-�L�,�@��,�-��,�-��,��j�'�c�j��j�k�A���-���-���,�C�k�r�{�m�p����*�8�T��^�Twith_zerocoe_inj,�G�M�S���V�U�:�G�5�l�G�D�'�d��V���,����������_a�d��B�,�l�,���D�7�D���D���D���D�,�5�Q�,���,�@�'�l�,������k�����*�V��������������d���Q�:���G����L���R�:���5����H�������E�k������D�D�O���'�k���d�������,�_a�,�B�D������������������*�����2���E����������,�
_a�d������Q�D���D����������*�
�
��
�
mul_inv_eq_iff_eq_mul,�,�@��'���������;�<��,���,��to_comm_monoid	�,�G�9���k�'���d����?���9�:�'�k_a�,�������������������*���=mul_right_comm	�,�6���'�k���?���9��'���d��?�d�����k_a�,���������D���D�3�D�,�r����������r�����*�?�inv_mul_cancel_right	�,�@��k���d���9�'����d��d�����b_a�,����r������P�*�d�����,�6��'I�,���������
�
�d��
�
�*���
��9�b���d��
�����9�a���'_a�,����5�I���*�
���Y����'������9�����d�������_a�,����r������z��*������������9�����d���������_a�,����r�r�������*�����p�,�����������d�������D����_a�,����r������*���mul_inv_cancel_right	�,�@��k����'�p�m�'���'�p�	6�'�	D�PInfo���EndFile