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�~z�inittacticbasiclogicfunction��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}traversePInfounits
indluα�_inst_1monoidCn���e_1valinvval_inveqhas_mulmul
semigroupto_has_mul
monoidto_semigroup
has_oneone
�to_has_one
inv_val"""

""

�mk"
�

���������
�

�
 "
���	�>��
�#*0�3333"
33"

�nspace�prt�recdecl�sizeof���α_insthas_sizeofx
nat�����rec�
x���
��!�1has_addadd�nathas_add�����nathas_onesizeof3
�
�fl
sdefault_has_sizeof��fl
s���PInfo�
ATTRreducibility���prt�decl�has_sizeof_inst�����������has_sizeofmk��
�PInfo�
ATTRinstance���class����prt�decl�sizeof_spec������
��!�1eq��3"
9������
��!�1eqrefl���PInfo�
ATTR_refl_lemma���EqnL�prt�gind��decl�val���c
���
Proj����
�rec�
���
��!�1�PInfo�
ATTR����proj��decl�inv�����
Proj����
��
��!�1
�PInfo�
ATTR����proj��decl�val_inv����



�	
�	


���
Proj������	
��IO�
�

V�
��!�1�PInfo�
ATTR����proj��decl�inv_val������������
Proj�����7���IO�$� V�
��!�1�PInfo�
ATTR����proj��decl�rec_on�����	�����
�e�t"23

���	����V�rec��

�PInfo�
ATTR����auxrec�prt�auxrec�rec_ondecl�cases_on���\�g�PInfo�
ATTR����auxrec�decl�no_confusion_type����Pv1�v2@������@���
�
�
�"�fms��K�K�K�K3
�K�K3�m�K����K
����	�
�����������������������
������aval_eq�Kinv_eq
�K�����PInfo�
ATTR����prt�decl�no_confusion��������@h12�q���"

������@���eqrec�\
a\h1a3"���K3"
h11\

�3"������3��K����������K�����K�����������
������������������
��PInfo�
ATTR����no_conf�prt�decl�inj�����
�W�Z�"�3��x��������
������2�����K3"
�9
and����
���K����
�W�Z�"�3��1��4��C�no_confusion�����J2�������K3"�[

��F�����
andintro����3����"�PInfo�
decl�inj_arrowl�����
�W�Z�"�3��1��4��CP������"��n
����
�W�Z�"�3��1��4��C����andelim_left�k�n�inj������������K3"

andelim_right�k�n���PInfo�
decl�inj_eq�����
�W�Z�"�3��1��4��C�D��K�3
����
�W�Zval_1"inv_13val_inv_1�1inv_val_1�4propext�C��iffintro�C��h�C���������K3"

a��anddcases_on�F�I��J����2���������K3��"

a_left�Fa_right�h�������e_2��e_3�������3"
����3�����K"
���K������
�K������,�,�,��
�K�,�,�����e_2��e_3��J�J�J3"
�J�J3��Z�Z�Z�K3�Z�Z�Keqdrec �K��k�!��"��2�r����3
�w"��r����r#��������3��������3��r��������"
����r����3������r��������
"
�l
��k��o"�|�x����r����
��������r������r����
����������k��2�k���K
��k�K��k�o�n�n�n��"�n�n����
��k�o������
��k
�K���K����k�o��"������k�o������
���K�
3"�������K3"
����3��"��
�K�PInfo�
declunitshas_coe�α_inst_1has_coe��has_coemk��PInfo�	prt�VMR�VMC�	���
decl�equations_eqn_1�����V���^����V�e�PInfo�	ATTR����EqnL�SEqnL�ATTR����class����decl�ext���functioninjectivecoecoe_to_liftcoe_base�e��a₁a₂�aI�r@�u@�x@�c
���
��q�#�r\"�u\"�x\"�c"
��
��
a₁_val
a₁_inv"a₁_val_inv�wa₁_inv_val������r�����u�����x�����c���K2���K
��"��������6����r�������u�����x�����c�����["

������3"
3a₂_val��a₂_inv��a₂_val_inv������a₂_inv_val����������
����������r�������u�����x�����c����2�������K3"����
id_rhs����2���������K3�

ide���r����u����x����c������'�����2�����������K�0"

����
�����v'��vi₂����������"������iv₂����������3����������2�������������c
�K�	������������
�������
�A�G"���N���������e_2�
����,e_3�<��>�>�>�>3"
�>�>3��?�?�?�?�K"
�?�?�K��A�@�@�@��
�K�@�@����D�D�D�D��
�K�D�D����E��F��Je_2�[��k��ne_3�r���������3"
����3�$�������K3�����K�j%�K����
&��'��2������3
��"��������(��������3��������3���������"
��������3�����������
"
��
������"������������
�����������������
��%���>�����2�����K
����K�������������"�������X
������_���f
���
�K�s�K�Y������_"�f�j������`���f
�t�K�x
3"�������K3"
�������������3eqmp�P�V�W�����W�V�����P��3a�����e_1��a���e_2�-congr�<����"��

congr_arg�<��<��"
������eqtrans�����V�]����chas_mul��a�����e_2������,e_3����>�>��3"��

��>��>�?"
���U���]��������one_mul��������3�����W�]3�	33��3���]��mul_one����3mul_assoc���T3��������"
�PInfo�ATTRext���prodmkboolprodlistext_param_type�Z�[name�[�Z�_�_boolff�W�]�elistnil�\�W�`�d�l�_listcons�c�W�_�_namemk_string
Strthunknameanonymous�w
Strfunext�z�t�v�w
Strulift�z�w
Strext���t�v�w
Strarray�z�����t�v�w
Strplift�z�����t�v�w
Strprod�z�����t�vnamemk_numeralunsignedof_nat'��z�w
Strpropext�z�t�v����has_zerozero�nathas_zero�z��l�cATTR�!����g�)tt�n�p�s�_�w
Strunits�z�q��decl�ext_iff���ab�iff@�����=�>��?symm�����eq_iff@���ext
�PInfo�<decl�decidable_eq_main���_inst_2decidable_eq������E��a�b@�decidable��decidable_of_iff'���r�q
�u�q
�x�q
�c
���ext_iff

����PInfo�D!	VMR�DVMC�D!	�H�G�E��

decidable_of_decidable_of_iffdecl�Dequations_eqn_1����E��a�b@����D�

����E���O��P@���id_delta����PInfo�N!	ATTR����NEqnL�Ndecl�decidable_eq������E���
�PInfo�R!	prt�RVMR�RVMC�R!	�E���Ddecl�Requations_eqn_1����E���O��P@��R�

����E���Dequations_eqn_1
�PInfo�T!	ATTR����TEqnL�Tdecl�R_sunfold�����PInfo�W!	ATTR����Rclassdecidable�R��decl�mul_proof_1���u₁u₂�IOO�� �;�#V���[�\�
thisIO�F�%�IV
eqmpr�

�Y�

�`
 �[�\�d ����g�m�
�"e_1f��K���e_2���������"��

���������"
���e�k�-
�Z�\�d  �
 ���[�i�a�c �m�����k��
���[���c�k�����c���
�"�3e_2�x������e_3����������3"��

���������"
���Z�Z���Z���j���\�a�c  ��AnnotcheckpointAnnothave�W�VIO�FV�IV����V����%_a�����[�c ����VVunitsval_inv
�W��I�F�IV������	����_a���[ �c �c �����E�&
�E�W�	IVV����	�	%���	_a���[�c  ���	V���V�PInfo�Z$decl�Y_proof_2����[�\�IO�J�GV���[�\�
�]IO�;O�I�E� V
�W�d�] �b�c�] ����	W�	]���	U�	[���a�c�]  �����b�	Y�Z�\ �	]���	p�	[���	p�b�	m�\�	[�	d�	m�\���a�a���a�	y�	Z���c�Z�\  ��Annot�dAnnot�e�W�	SIO�;V� V����	S�	����	N_a���	r�b�\ ���	SV�ginv_val
�W�	��>����	��>���	�_a���b �\ �	�\ ���	��$�	�$�W�>�	%����>�	%���<_a���b�\ �	0���>V�	��	<�PInfo�k$decl�Y����[�\�@���[�\�2
�G�J�Z�
�k�
�PInfo�Y$prt�YVMR�YVMC�Y$�\�[��





decl�Yequations_eqn_1����[�\����Y�
�	����[�\��@�
�PInfo�q$ATTR����qEqnL�qSEqnL�Ydecl�inv'���u����s2
���	�
��
�PInfo�r-prt�rVMR�rVMC�r-�s��

decl�requations_eqn_1����s��r�
�
���s���
'�PInfo�u-ATTR����uEqnL�uSEqnL�rdecl�has_mul��������mk�
�PInfo�v0	prt�vVMR�vVMC�v0	���Ydecl�vequations_eqn_1����
2�v��
9����
2�
?�PInfo�y0	ATTR����yEqnL�ySEqnL�vATTR����vclasshas_mul�v��decl�has_one_proof_1����
R�
R���&�
R�PInfo�|1	decl�{_proof_2��
X����
R�PInfo�}1	decl�{���has_one��has_onemk2�
R�
R�|��}��PInfo�{1	prt�{VMR�{VMC�{1	��

decl�{equations_eqn_1����
d�{��
u����
d�
{�PInfo��1	ATTR�����EqnL��SEqnL�{ATTR����{class�~�{��decl�has_inv���has_inv��has_invmk�
$�PInfo��2	prt��VMR��VMC��2	���rdecl��equations_eqn_1����
�����
�����
��
��PInfo��2	ATTR�����EqnL��SEqnL��ATTR�����class������decl�coe_mul���ab�I��@�
=
O�����������rfl�
��PInfo��5ATTR�����ATTRsimp����decl�coe_one����
H�}�
{�
R���
��
��PInfo��6ATTR�����ATTR������decl�val_coe�������r�
�u�
�x�
�c
������
�
�
��PInfo��7ATTR�����decl�coe_inv�������
�has_invinv��
�
������
��
��PInfo��8ATTR�����decl�inv_mul��������
��
�������
�PInfo��9ATTR������decl�mul_inv��������
��
�������
�PInfo��:ATTR������decl�mul_inv_cancel_left���ab
I�
�O���
�@�
�
������
�W�IO�
��
������
���
�_a����
���
��q�
�

�	/����eqsymmu��
��-M���
��W�
IOV����
�6���_a�����	���
V�mul_inv
�W�6I����6�T���4_a�� ����6�
�	;�PInfo��<ATTR������decl�inv_mul_cancel_left���ab
I�
��
�������
�W�vIO�
�������v�����t_a��������v�~�&�~�t�*�
����W���6������6���|_a�����D����V�inv_mul
�l�PInfo��?ATTR������decl�mul_inv_cancel_right���ab�IOP�����
���������W��IPO���������������_a��
�����
�	/
�������*�����W��IPV�����������_a��������
��
����V�M�W��I����������_a���� 
�������	�	;�PInfo��BATTR������decl�inv_mul_cancel_right���ab�IOP������������W�#IPO��������#�-���!_a��������
�����#�+�������W�-������-�����*_a��������
�����-V����PInfo��EATTR������decl�group_proof_1���ab�c@���q�
5�q�`�
=
�f
�g�f���������@��
�j�n�W���j���n���������|�����y������d�d
���������������coe_mul
����������
������������{��������d��������������������~������PInfo��H	decl��_proof_2���a�
#��
=
��
g����
y
������
���W��
����
��
��
���������
�e_1�"�3e_2����������"��

���������"
�����
���
�
��������
��
��
��
����
��
��
�����
��
e_2#�3��Ke_3���������3"�
$

���������"
�
$��
��coe_one
�
��
��
�
��
�
��
��
��
E�
E�PInfo��H	decl��_proof_3���a�
#�����������
Y�W��
��
Y�
�������
c���
�
a�
��
�
��
X���
���
��
m�
��
�
n�
���
;�
��
��
E�
��
@�&
�
��
��
��
E�
E�PInfo��H	decl��_proof_4���a�
#���
��
���
��one��mk��������@���q��"
\�
5\�
��
="
�
�
�
��
��W#���
����
�#)��)�����
�����
��
��"�3����������������������"��

���������"
���
��
���"���
��
�
)�
��
����
��
�)���
����
���"
�
����"�3��K���
!������������������3"�
�

���������"
�
�(�
��
��
�
�����"���-"'���
����
��
��
����
��
��
�����
��
����������"�
��
���
���������
�@�
g@�=�
y
�WI���E��I��������J�M��
���
�3��K���
!�������"�

���������"
��H�������
��A�3�����oO���A���p��
�A����
�"���s��K������u��������3"��

���������"
��N�sV�
>
�����	;���f����������������
��C�WI�������M������M�h�����k�����A��V�������s���y�A���������sV���	�����������������
����W��
��
��
��������������
����
�
����
��
���
�
���
����
@�
D��PInfo��H	decl�����group��groupmk�
?����
��������
��
�����PInfo��H	prt��VMR��VMC��
H	���Y

�rdecl��equations_eqn_1��������&�����,�PInfo��H	ATTR�����EqnL��SEqnL��ATTR�����class������decl�inhabited���inhabited��inhabitedmk/�
��PInfo��M	prt��VMR��VMC��M	��

decl��equations_eqn_1����a�6����;���j�6�A�PInfo��M	ATTR�����EqnL��SEqnL��ATTR�����class������decl�comm_group_proof_1u_1�_inst_2comm_monoid1��units1comm_monoidto_monoid1���M
�O
���M�O
eq1�M
�O
has_mulmul1�_has_mulmk1�_��mul1�_unitsgroup1
�^�l
�m�l���J���L��mul_assoc1�R�g�Q�PInfo��O	decl��_proof_2�����J���L���R�[�V�a�V�1�V�mk1�V�e�V�g
�U�{�V��has_oneone1�Vhas_onemk1�V��one1�V�����J���L��one_mul1�R�~�PInfo��O	decl��_proof_3�����J���L���R���������J���L��mul_one1�R�~�PInfo��O	decl��_proof_4�����J���L���R�������1�V��1�V���������V�����V��has_invinv1�Vhas_invmk1�V��inv1�V�����1�V�����J���L��mul_left_inv1�R�~�PInfo��O	decl��_proof_5�����J���Lu₁�Ru₂�V�[�Zunitsmul1�Y�����J���L���R���V�ext1�Y����mul_comm1��to_comm_semigroup1
�gval1�Y���PInfo��O	decl�������J���Lcomm_group1�R���J���Lcomm_groupmk1�R�e�R�~�������R�~�����������R�~���������PInfo��O	prt��VMR��VMC��O	�������Y

���rdecl��equations_eqn_1�����J���L�[������$���J���L�1��*�PInfo��O	ATTR�����EqnL��SEqnL��ATTR�����class������decl�has_repr���_inst_2has_repr�4�����5has_reprmk�functioncomp�
stringrepr
�
�PInfo��R	prt��VMR��VMC��R	x���
decl��equations_eqn_1�����5�6���
�F����5��6�N�PInfo�
R	ATTR����
EqnL�
SEqnL��ATTR�����class�����decl�mul_left_inj���ab
c�����������

����[��h�[��#)���
�\�
�"
)��
�k�m#
�
��o
�inv_mul_cancel_left"

�r�}��""�n�q�k��

�

�m�PInfo�TATTR�����decl�mul_right_inj���ab
c����	�������
�������h����#
_x"l�r��3�u��3�x��3�c3"�
����
�3"
Annotinfix_fn)
�l��*�l�v�
���
�mul_inv_cancel_right"

���������������
)�l�PInfo�WATTR�����decl�eq_mul_inv_iff_mul_eq���ca
b�����	�������
�������h���W#��#)*�j�l��������"
_a"��f���

f����
�������W���
����������_a"��fl�����
f
�����inv_mul_cancel_right"
�h���W�u���u)���j����2�6��_a"��f��<�����2���%"���W�6�u
����6�N���5_a"���<l����<���6
���
�PInfo�Zdecl�eq_inv_mul_iff_mul_eq�����a
c������Y�����%
�&���m�oh�m�W#�n#�m�k����y�~��_a"��fl��
f��
���y�{�W�~�����~����|_a"��f��l��

����~�mul_inv_cancel_left"
�-h�o�W�u�{�u�o��������;_a"���<���<�������n�F�n�W���N������N���o_a"���<�����X����
�~�b�PInfo�$]decl�inv_mul_eq_iff_eq_mul�����b
c������Z�����/
�0������h���W�u�q�u�m�k
��������;_a"���<��
�<���������F���W���N������N����_a"���<�����X����
��
�bh���W#��#�r����"�%��_a"��f�
f��
���"�q�W�%�����%����r_a"��f����
����%���-�PInfo�.`decl�mul_inv_eq_iff_eq_mul�����a
c������������8
�9���V�Xh�V�W�u���u)���j�l����a�f�;_a"���<����<����a�c�F�c�W�f�N����f�N���e_a"���<l������X���f
�'
�bh�X�W#�c#)���j���������_a"��f��
f��
�������W�������������_a"��fl�k��
��������-�PInfo�7cdeclnatunits_eq_oneuunits�natmonoid�������{����B��unitsext�����nateq_one_of_dvd_one����������������Existsintro�c���has_mulmul�mul_zero_classto_has_mul�semiringto_mul_zero_class�comm_semiringto_semiring��Dcomm_semiring���Cinv����symm��������������������Cval_inv����PInfo�Ahdeclunitsmk_of_mul_eq_one_proof_1��_inst_1comm_monoidab
habIJKL��
ST�,comm_semigroupto_semigroup
��

�*
��\�)�^�_
�`�5���?�=
�Dmul_comm
�:
�PInfo�[kdecl�Z���\�)�^�_
�`�5�p�B��\�)�^�_
�`�52
�B
�[�

�PInfo�ZkVMR�ZVMC�Zk�`�_�^�\�decl�Zequations_eqn_1���\�)�^�_
�`�5�\�Z�

�m��\�)�^�_
�`�5��\�y�PInfo�ekATTR����eEqnL�eSEqnL�Zdeclunitscoe_mk_of_mul_eq_one��_inst_1�)ab
h�5�r�\
�u�\
�x�\
���B�y
��h�)�i�j
�k�5�
�
���PInfo�gnATTR����gATTR�����gdecldivp��_inst_1au���m�n�o���PInfo�lwVMR�lVMC�lw�o�n�m��r

doc�lPartial division. It is defined when the
   second argument is invertible, and unlike the division operator
   in `division_ring` it is not totalized at zero.decl�lequations_eqn_1���m�n�o�I�l�
���m�n�o��	;���PInfo�qwATTR����qEqnL�qSEqnL�lTK/ₚFNOTAdivp/ₚ /ₚ F��decldivp_self���mu���
�
����m�v�K
�PInfo�u{ATTR�����udecldivp_one���ma�������m�x�
��PInfo�w}ATTR�����wdecldivp_assoc���mab
u@��
��������m�z�{
�|@��
����PInfo�y
decldivp_inv���mau�I��������m�~���
����PInfo�}�ATTR����}ATTR�����}decldivp_mul_cancel���mau�IO������m������k�!�+�@�Z�PInfo���ATTR������declmul_divp_cancel���mau�I������m������k��������PInfo���ATTR������decldivp_right_inj���mua
b����
��
����m����
��unitsmul_right_inj
��PInfo���ATTR������decldivp_divp_eq_divp_mul���mxu₁�u₂@����
�4�d��m�������@�W�<���J���D����<�F���7�D���7�4���D�M���3�N�n
�n"e_1�s�o�K3�o��e_2�7������������"�\

���o����"
�\�5�3�q

��q�u�3�������;�D���;������:�D�v�:��

��
���C�������d�����C_inst_1has_lift_t(I�q
a\����e_2�V������
��������mul_inv_rev�q�*
���������D�PInfo���
decldivp_eq_iff_mul_eq���mxu�y���5�	��
��m��������?trans���5�������������+�5�W��������
������������
��_a
����#)��"

��*��#����#��������
divp_mul_cancel

�������%

�����
�PInfo���
decldivp_eq_one_iff_eq���mau�����V�����m��������!���p�#���*�!�)
��V�W���*�#����p�#����7�;����_a�������Z���������	/�A�D���7�	
�W�;���#�#����;�Y���p_a�������A�D�����D���;����iffrefl�#�PInfo���
declone_divp���mu�����
���m���
J�
��PInfo���ATTR������decldivp_eq_divp_iff��_inst_1�)xy
ux?�,uy�\��#���*"
��
#$%&���r[��"�u��"�x��"������
������)����
�������\�W����#��������������������_a������f��3�*3"

��fghi��
�r����3�u��3�x��3��������
����������������divp_eq_iff_mul_eq"�����W����#$%�6"�8"
���������������������_a"����f������
�����
���������P"�������W����#������
��������#�����_a"����fgh�63�83"����
���
������F��(divp_assoc"����
�W�#�����������#�L���!_a������f������
�������#�J���!�J����W�L�K����
����L�m����
��_a"�������S���v�����L�k�
���o�J�PInfo���decldivp_mul_divp�����)xy
ux��uy�\#����������
���
�������)����
�������\�W�������������������_a"��f�������������
=3��
���������F����divp_divp_eq_divp_mul"�����W���������������������_a"��������
����
�������A
�W��������������������_a"����������
������������W��������������������_a"�������/��

�������
�A���W�#����
�����)��������_a"���������1����'�������'�PInfo���EndFile