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�xP�initcategorybasic���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_assocPInfoold_conv_resultindlαCn}~e_1valrhsexprboolttproofoption	}mk�}���	�����	��nspace}prt}recgind}�decl}valc�
Proj}��}rec���	��PInfo�ATTRreducibility���proj��decl}rhs�	�
Proj}��	0�1	��	��PInfo�ATTR����proj��decl}proof��
Proj}��0�1��	��PInfo�ATTR����proj��decl}rec_on~��1���	�
��1�\}rec~�PInfo�ATTR����auxrec�prt�auxrec}rec_ondecl}cases_on~aj�PInfo�ATTR����auxrec�decl}no_confusion_type~Pv11v2��1��~���	�o�t�t�	�aval_eqeq	Trhs_eqz	Tproof_eqzT{�PInfo�ATTR����prt�decl}no_confusion~��1�h12z�~��1���eqreca�h1azT�tTh11z��T����T�	���z���
eqrefl{�	��PInfo�ATTR����no_conf�prt�decl�inj��	���	��zv
tT�andzt�����	���	���}no_confusion��
�tT����t��tandintroz�{t��T������PInfo�decl�inj_arrowl��	���	���P����������	���	������3andelim_left|�T��0��inj{��tT�>�0�andelim_right�@�C�M�R�0��U�PInfo�decl�inj_eq��	���	�z��ztT����	�val_1rhs_1	proof_1propext��siffintro��sh��E�tTa�sanddcases_on����z�
��tT��a_left�a_right������0���Cz�
�{����tTa_right_left�0a_right_right����e_1z
�	�	e_2��e_3�congr
���T�����	�����Tcongr_arg���	�����t��{t�T�PInfo�declold_convαid_rhs�name�	tactic�PInfo�	VMR�VMC��nspaceold_convdecl�lhsold_conv	�r�e	�	���	return�interaction_monadmonadtactic_state�
		�PInfo�	VMR�VMC�	s��	��decl�changenew_ppexpr�	unit��"�r�e	��#���	 �monadto_has_bind��	�&Finfer_typee_type	�2Fto_exprexprsubstboolff�9
Quote_x_1_��_x_2���
TyEto_pexpr
	exprhas_to_pexpr�A�"pexprhas_to_pexprnew_e	�0�#�&FunifyFtransparencysemireducible�8_x�#��&
�#unitstar��PInfo�	VMR�VMC�9	s��	����"tacticinfer_type	3�to_pexpr���>exprsubst�tacticto_expr	,tacticunify	%	*	
1decl�pure�	��ar�e	�����	�
��PInfo�prt�VMR�VMC����	����prvjoin_proofs_private���Ajoin_proofsdecl�r�o₁o₂����
��_a�~�_aoptioncases_on	������~�val	�����	������val_1	���0environmentFget_envenv��_a
��������~��?failformatformathas_to_formathas_appendappend��formathas_append��to_fmtstringstringhas_to_format
Strconverter failed, relation '���namehas_to_format���
Str' is not transitive�����1Fmk_applistcons	��listnil	�Vpr	��	�trans_for��PInfo� VMR�VMC��4 a���
��	
		�2�	�,environmenttrans_for	�ocharof_nat_c_1n�2	_c_2v�2
_c_3e�2_c_4r�2_c_5t�2
_c_6 �2_c_7a�2_c_8i�2_c_9l�2_c_10'�2_c_11s�2_c_12

	

	stringemptystringstr�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�Bstringhas_to_formatto_fmt�&�E	
,�2d�2f�2

	c�2�@�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�D�Eformatcompose�G���*tacticmk_app	��$	
�)	
�1decl�seqαβc₁�	�c₂�	���K�L�M���N���r�e	���O��P	�0�TT�_p��_a�tt�
����R��������	���{�0����t_p��_a������T��������	����0���Tpr�
�!��PInfo�J,prt�JVMR�JVMC�J8,���P	�O��N�M�L�K	2
	+
�	$	)0
	decl�failαβ_inst_1has_to_formatmsg�	�W�X�Y�F�[�r�e	���\��]	����PInfo�V3prt�VVMR�VVMC�V3�]	�\��[�Y�X�W�decl�failedα�	�_�r�e	��`��a	tacticfailed�PInfo�^6prt�^VMR�^VMC�^6�a	�`��_?faileddecl�orelseαc₁�[c₂�k���f�g�[�h�k��r�e	has_orelseorelse�alternativeto_has_orelse�tacticalternative���]�PInfo�e9prt�eVMR�eVMC�e9�j	�i��h�g�finteraction_monad_orelsedecl�mapαβf��c�����s�t�u���v����r�e	�0���r_p�_av����z�����	��	��
{��PInfo�r<prt�rVMR�rVMC�r<���x	�w��v�u�t�s		
	decl�bindαβc₁�kc₂������|�}�~�k�����r�e	���_x�_av�����	��	�0���t_x�_a������������	��� pr�#�$�PInfo�{Aprt�{VMR�{VMC�{8A����	�����~�}�|	2
		+
�	$)0
	decl�monadmonad�	����mk�	applicativemk�	functormk�	old_convmapαβfunctioncompa���[����functionconsthas_puremk�	old_convpurehas_seqmk�	αβf��x��old_convbinda
_x����Annotinfix_fnhas_seq_leftmk�	αβa�kb�k����a��has_seq_rightmk�	αβa�kb�k�������idhas_bindmk�	���PInfo��Mprt��VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��_lambda_4VMR��_lambda_5VMR��_lambda_6VMR��_lambda_7VMR��_lambda_8VMR��_lambda_9VMR��VMC��M�VMC��Mx����functionconst�rVMC��M��_fresh
�q��rVMC��M�����������{VMC��M����_fresh
�q��rVMC��
M�������������r�{VMC��MaVMC��M����_fresh
�q��rVMC��M���������������r�{VMC��M�r����������{ATTRinstance����class������decl�alternativealternative�	��.�mmk�	��to_applicative�	old_convmonadhas_orelsemk�	old_convorelseold_convfailed�PInfo��Rprt��VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��_lambda_4VMR��_lambda_5VMR��_lambda_6VMR��_lambda_7VMR��_lambda_8VMR��_lambda_9VMR��VMC��R�VMC��R���������rVMC��R����_fresh
�tM�rVMC��R�����������{VMC��R����_fresh
�tR�rVMC��
R�������������r�{VMC��R��VMC��R����_fresh
�tW�rVMC��R���������������r�{VMC��R�r����������e�^ATTR������class������decl�whnfmdopt_param�I�$���C�*r�e	�2tacticwhnfn	�Z�]��PInfo��W	VMR��VMC��W	����	������Ctacticwhnf	decl�dsimp�$�*r�e	�0simp_lemmas�&simp_lemmasmk_defaults�S�2��dsimplify���tacticdsimp_configmk�Bsimpdefault_max_steps�8�8�M�PInfo��Z	VMR��VMC��+Z	����	���simp_lemmasmk_default	%�simp_lemmasdsimplify	#decl�traceα_inst_1has_to_tactic_formata�$��	�t��*r�e	has_bindand_then�#�&��/tactictrace�L�PInfo�]	VMR�VMC�]	���
	����	�Ftrace	decl�trace_lhs�$��$�+�	�-�	�4	�#�lhs�trace	exprhas_to_tactic_format�PInfo�`	VMR�VMC�`	����{decl�apply_lemmas_cores�Sprove��#�$��S����*r�e	�0prod		�&simp_lemmasrewrite�B_p��_a��prodcases_on
		�!���'fst	snd	��'�Z�^���PInfo�c	VMR�VMC�c	���	�������Ssimp_lemmasrewrite	decl�apply_lemmass�S�$�)�S���apply_lemmas_core�`�#�PInfo�(h	VMR�(VMC�(h	�)�S�d�decl�apply_propext_lemmas_core��s�Sprove���*r�e	�Rguard��mz�namemk_string
Streqnameanonymousnamehas_decidable_eq��_x�#������
Striff���B_p��_a�����$	�%	���2����
Strpropext�������Vnew_pr	�Z�]���PInfo�+l	VMR�+VMC�+l	���/	�.��-���,�Snameanonymousq�2e�2�@�B�Bnamemk_stringnamehas_decidable_eq	interaction_monadfailed	y�<f�2f�2i�2�@�B�B�B�>�'	3r
�<t�2x�2e�2p�2o�2r�2p�2�@�B�B�B�B�B�B�B�>�I	bk	p
w	decl�apply_propext_lemmas��s�S���apply_propext_lemmas_core���PInfo�Cs	VMR�CVMC�Cs	�D�S�d�+prvmk_refl_proof�	���H�mk_refl_proofdecl�Hr�e	�	�I��J	����	��env��_a�����L������	������������
Str' is not reflexive����1	�����Vpr	�	environmentrefl_for�PInfo�HvVMR�HVMC�H�v���J	�I��	�environmentrefl_for	�o�2_c_1n�2_c_2v�2_c_3e�2_c_4r�2	_c_5t�2
_c_6 �2_c_7f�2_c_8a�2
_c_9i�2_c_10l�2_c_11'�2_c_12x�2	
s�2�@�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�D�E�&�E

	,�2d�2
	
	c�2�@�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�D�E�G�G����I	���decl�to_tacticc�$���	����_�$�r�e	�*�`��a	�0�&���r_p�&_a�&���#�c�&�*��#�	��_a�*�d���8��*�1���H�tp	���prodmk		�	�=�I�PInfo�^}	VMR�^VMC�^,}	���a	�`��_�$	&	�H		
	
$	decl�lift_tacticαt��k�i�j�`��pr�e	�0a����PInfo�h�	VMR�hVMC�h�	���l	�k��j�i	decl�apply_simp_setattr_name��$�o������S�#�lift_tactic�Stacticget_user_simp_lemmas�apply_lemmas�PInfo�n�	VMR�nVMC�n	�	�o��(�r�h�{decl�apply_propext_simp_set�sattr_name����{�apply_propext_lemmas�PInfo�t�	VMR�tVMC�t	�	�u��C�r�h�{decl�skip�$����	�4�#�\�PInfo�w�	VMR�wVMC�w�	�decl�repeat_main��$�$��$���	���o�&�1�&�r_p�&_a�&�4�{�&�'��#�	����R��notzboolexpralpha_eqvTnedecidable��a��b��booldecidable_eq��_x�#��
��RecFn�y��_p�&_a�&����#�	�����&���tpr�Z���L�PInfo�y�	VMR�y_lambda_1VMR�y_lambda_2VMR�yVMC��N�	����_fresh�U*	��_fresh�U)���_fresh�U(�$	Hexpralpha_eqv��_main��	�B	A
�y	#:�	+38?
F	
VMC���	����	VMC�y
�	�	����$�����qdecl�repeat���y�PInfo���	VMR��VMC���	�ydecl�first_mainα�list�[�k�����listcases_on�k����k����k�<a_hd�ka_tl������G�i�	�k�	��
��RecFn���PInfo���	VMR��VMC���	�.��	�����listcases_on	�^���edecl�first�������PInfo���	VMR��VMC���	����decl�match_patternptacticpattern�$�����*r�e	�x����level��	�&��/tacticmatch_pattern�B�L�PInfo���	VMR��VMC���	����	�������tacticmatch_pattern	decl�mk_match_exprp�"��$���"���0���$��pexpr_to_patternnew_p����$��PInfo���	VMR��_lambda_1VMR��VMC�����e	r���_fresh
�������	VMC���	�����"��	
��decl�match_exprp�"�$���"�*r�e	��&�
new_p�������B�`�PInfo���	VMR��VMC���	����	������"��	��	
decl�funextc�$�$���$�r�lhs	�'�����	��_x�#�2�_p	_a	exprcases_on
��	�'anat��
match_failed�&�interaction_monadmonad_fail�Annotdo_failure_eq�����8���a_1���8���a_1�a_2	�8���a_1�a_2binder_infoa_3	�8��	a_1	�8���a_1�Da_2	a_3	��	aux_type	exprpiexprconst��
Strtrue�������0���&	�&Fsolve_aux�&�2Fintro1x	������instantiate_varc_result�&	rhs	exprlamtT�abstractold_conv_resultrhs�#�����'���`�	��	aux_pr	�k{���o�2����
Strfunext����������Vnew_pr	�Z�]����proof�#_p�\_a�\���&	���\�'�$�&�%	���Z���a_1�Da_2	�E���a_1	����macro_defa_1���8�PInfo���	VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��_lambda_4VMR��_lambda_5	VMR��_rec_1VMR��VMC���	αVMC��;�	����_fresh�c"	��_fresh�c	��_fresh�c	�<t�2x�2e�2n�2u�2f�2�@�B�B�B�B�B�B�>�I	,5VMC���	�.���	��_fresh�c�&��_fresh�c	��_fresh�c	��_fresh�c�D��_fresh�c��	
	
exprabstractexprlam
��	
��VMC��2�	����_fresh�c	�
	�
�D���	��_fresh�c���_fresh�c�$��	,	exprinstantiate_var	%

��
��	

��*
	
VMC��	�		����_fresh�c	�	�
	�
�D���	����$����	
	
	
VMC����	�.�n	��_fresh�a�	��_fresh�a����_fresh�a��$exprcases_on
&/8fox����match_failed�����/�����/�����/�����/�����/�<e�2u�2r�2t�2�@�B�B�B�B�>exprconstexprpi
��	
�������/�����/�����/VMC��(�	����	������$�<q�2e�2�@�B�B�>�@	�B	"��decl�congr_corec_f�$c_a�$�$�5�$�6�$�(r�lhs	��_x�#�*_p	_a	�I��	a_1	���2��3e	�F�Vf_type	�R��coe_sort

��coe_sort_boolexpris_arrow����_x�#��mtry�	���#��_p�&_a�&����#�	�punitcases_on

��#�'����������_p�&_a�&����#�	������2�coe_fn

	exprhas_coe_to_funtrhs	_a_a���O�'�����Z����	���2����
Strcongr_arg������T�����Vpr	�Z�]���t���	�����2����
Strcongr_fun������������Vpr	��val_1	���2����
Strcongr����������t�����V�R	�Z�]T��t���������PInfo�4�	VMR�4_lambda_1VMR�4_rec_1VMR�4VMC�T�	��VMC�U���	�.��#	��_fresh�W����_fresh�W��$��_fresh�W��$�.
&/�|���������T�/���T�/���T�/���T�/���T�/�	3:��?		@�uexpris_arrow��	EK�BN	O�n
���Tmtry	[�g
���T�a	k�`	q�	s}exprapp��<g�2r�2a�2_�2r�2g�2n�2o�2c�2�@�B�B�B�B�B�B�B�B�B�>�I	���c��^	���<n�2u�2f�2_�2r�2g�2n�2o�2c�2�@�B�B�B�B�B�B�B�B�B�>�I	���c��]�<r�2g�2n�2o�2c�2�@�B�B�B�B�B�>�I	�K�W�c�\�e�l
�s	
�z	���T�/���T�/���T�/���T�/VMC�4(�	���8	�7��6�$�5�$�<q�2e�2�@�B�B�>�@	�B	"�Udecl�congr�%c�$���congr_core�PInfo�d�	VMR�dVMC�d�	�e�$�4decl�bottom_up�%c�$�*r�e	�Ws�S�0���#���&�qext_simplify_core�#�\�qsimp_configmk�_�8�8�8�8u�#��#a�#s�Sr�pe	�`�{������a�#s�Sr�pe	�1����_p�&_a�&�4�{�&�����#�	��������D�#���\�E���D��_p�|_a�|���#���}�|�'�$�#�%�����%���'snd_fst	snd_snd	���PInfo�g�	VMR�g_lambda_1VMR�g_lambda_2VMR�g_lambda_3VMR�gVMC������o�#VMC����t	�s�r��q�S�p�#�dVMC������y	�x�w��v�S�u�#��_fresh�`��$	
	VMC�g:�	���j	�i��h�$�	4�������tacticext_simplify_core	 -	
2decl�top_down�%c�$�*r�e	�Ws�S�~���������PInfo���	VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��VMC�����u�#VMC�����e	pr�s�Sa�#��_fresh
�`��$	
	VMC���e	pr�s�Sa�#�dVMC��:�	����	������$�	4���������	 -	
2decl�find�%c�$�*r�e	�Ws�S�~��a�#s�Sr�pe	�o����_p�&_a�&����#�	������������8��������������PInfo���	VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��_lambda_4VMR��_lambda_5VMR��VMC�����u�#VMC���	����_fresh
�i
	��_fresh
�i���_fresh
�h��$	VMC��
�	����	VMC��
���	��������S���#���$�����qVMC���e	pr�s�Sa�#�dVMC��:�	����	������$�	4���������	 -	
2decl�find_patternpat���%����c�$�*r�e	�Ws�S�~��a�#s�Sr�pe	�0�����o��������/��{�B����!�8matched��ite
��������{��������������PInfo���	VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��_lambda_4VMR��_lambda_5VMR��VMC�����u�#VMC���	����_fresh�v�	��_fresh�v�����	VMC���	��VMC��9�����	��������S���#��_fresh�v��$���������q		3��	
	1		,

1
	
VMC���e	pr�s�Sa�#�dVMC��;�	����	������$�����	5���������	!.
3	decl�findp��"���p�"c�$�)���"���$r�e	��
pat���find_pattern�PInfo���
	VMR��VMC���
	����	������$���"��	��decl�conversionc�$�����$����0������#�o�atactictarget_lhs_rhs���a����
Strconversion failed, target is not of the form 'lhs R rhs'_p�a_a�a��������a���$��%�����%����snd_fst	snd_snd	�_���#�to_tactict_p��_a�����������$	�%	�_�Q�#�o�#�S�V�8�0���#tacticpp	��new_lhs_fmt������Trhs_fmt�����#��������������
Strconversion failed, expectedformatindentbit0�0nathas_add��has_oneone�0nathas_oneformatlinecoe����coe_to_lift����coe_base����string_to_format
Strprovided����_x�#Fexact�V�PInfo���	VMR��_lambda_1VMR��VMC���	����_fresh��	��_fresh��	���	����	�c�2_c_1o�2_c_2n�2	_c_3v�2
_c_4e�2_c_5r�2_c_6i�2
_c_7 �2_c_8d�2_c_9p�2_c_10formatindent

�@�B�B�B�B�B�B�B�Bformatof_stringformatline�t�2x�2,�2l�2
a�2f�2	
s�2
	�@�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�D�E�G�G�G�G���VMC���V�	�����$'�2s�2h�2r�2 �2R�2 �2s�2h�2l�2'�2 �2m�2r�2o�2f�2 �2e�2h�2t�2 �2f�2o�2 �2t�2o�2n�2 �2s�2i�2 �2t�2e�2g�2r�2a�2t�2 �2,�2d�2e�2l�2i�2a�2f�2 �2n�2o�2i�2s�2r�2e�2v�2n�2o�2c�2�@�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�D����q	�#�P�^	�-�I	
�
��q	�<�B
tacticexact�G
�N	
EndFile