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��V`init�(�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_assocdecl_private��ϚOcollect_proofs_in_mainaexprbooltt�list�prodnametactic	���	prodcases_on�	a_fsta_sndid_rhs_a	gotac� 
monadto_has_bind
interaction_monadmonadtactic_state	tacticinfer_typetmcond
"	�is_prophas_orelseorelse
alternativeto_has_orelse
tacticalternative	�first	listmaph&'t'$unit	�is_def_eqFtransparencysemireducibleboolff_xA&�targetgC�changeexprreplaceannatiteeqexprhas_decidable_eqVXoption(_xAreturn
"	prodmkE9_a��fstsndC�generalize	VH_xA&�introEhruElistconsx_alistcases_on���snamemk_string
Str_xnameanonymouslistnilhdtl��Vru�EV��exprcases_onaR�ru��level��a_1���r�a_1a_2�
RecFn�vu(�a_1a_2binder_infoa_3���ux��a_1��nh	$		�Ev�Vv�a_1�a_2a_3�(nh	��
nh	&�mk_local'(�var�exprinstantiate_var��XV�a_1�a_2a_3�����nh	&��Evar��E�V�a_1a_2a_3�(nh	����nh	��?�1nh	��X�macro_defa_1��nh	2
"	x	e��VV(�PInfo�	prvcollect_proofs_in_main�VMR�_rec_1VMR�_lambda_1VMR�_lambda_2VMR�_lambda_3VMR�_lambda_4VMR�_lambda_5VMR�_lambda_6VMR�_lambda_7VMR�_lambda_8VMR�_lambda_9VMR�_lambda_10VMR�_lambda_11VMR�_lambda_12VMR�_lambda_13VMR�_lambda_14VMR�_lambda_15VMR�_lambda_16VMR�_lambda_17VMR�_rec_2VMR�_lambda_18VMR�_lambda_19VMR�_lambda_20VMR�_lambda_21VMR�_lambda_22VMR�VMC�	nlistcases_onnameanonymousxcharof_nat_�stringemptystringstr�namemk_stringVMC�	αVMC�	�R�_fresh
�|� _fresh
�oexprhas_decidable_eq	VMC�9s!�� _fresh
�y� _fresh
�r� _fresh
�q�&tacticinfer_type	3tacticis_def_eq	,	tactictarget	%�
exprreplacetacticchange	
#
*
1	
VMC�$	a!�/�2�&�tacticgeneralize		Fintro	
		
"VMC��	s!�/�2VMC�	�R�� _fresh
���&�(	VMC�9�)!�� _fresh
���/�2�&�4	3�6	,	�8	%�
�:�<	
#
*
1	
VMC�	�)!� _fresh
��� _fresh
���/�2� _fresh
�p�	�VMC�	�R�� _fresh
���&�(	VMC�9�)!�� _fresh
���/�2�&�4	3�6	,	�8	%�
�:�<	
#
*
1	
VMC�&	�)!� _fresh
��� _fresh
��� _fresh
���� _fresh
���/�2�P�	 	Fmk_local'	

exprinstantiate_var�
	
VMC�	�R�� _fresh
��&�(	VMC�9�)!�� _fresh
��/�2�&�4	3�6	,	�8	%�
�:�<	
#
*
1	
VMC�$	�)!� _fresh
�� _fresh
�� _fresh
��/�2�P�	�	
	�e�	
	VMC�		�R�� _fresh
�C�&�(	VMC�
9�)!�� _fresh
�A�/�2�&�4	3�6	,	�8	%�	
�:�<	
#
*
1	
VMC�2��	�P�VMC��T	�=!n� _fresh
�
�� _fresh
�
�� _fresh
�
�� _fresh
�
�exprcases_on
	AJS�����4	:��
_c_1	

�interaction_monad_orelse�listmap_mainFfirst_main��Fis_prop��mcond?	
�	��4	W�	��������������������	
�4	��	������
�������
�������
�	���c	��

	�e��
�
�4	��	������
�������
�������
�4	��M�
_c_2	�
�listmfoldl_main������
��������
����R	
VMC�
	�R�� _fresh
�l� _fresh
�b�(	VMC�9�)!�� _fresh
�j� _fresh
�g� _fresh
�f���4	3�6	,	�8	%�

�:�<	
#
*
1	
VMC�$	�=!��������?		�@	
		
"VMC�	�A!����VMC�2�)!��������4	,�����������������VMC�	�=!�	���prv�decl�	�PInfo	VMRVMC	�decl�generalize_proofsns
A���t$A�intros_dep_x�x�w�local_context0
"�is_proofhs%AMthas_bindand_then	A
#��V�skip
�PInfo��6	VMR��_lambda_1VMR��VMC��6	�VMC��A6	�)!��Fintros_dep_main	;tacticlocal_context	Fis_proof���listmfilter_main	4�8	-�	"&	tacticskip+	
29decl�interactivegeneralize_proofs�interactiveparsealistreflect��namereflect
Quoteleanparsermanyleanparser ��parser_state��alternative��typesident_�t�utacticgeneralize_proofs�PInfo��A	VMR��VMC��A	��doc��Generalize proofs in the goal, naming them with the provided list.EndFile