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�oinittacticcoretacticconverterold_conv�5�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_assocdeclold_convsave_infopposold_convunitid_rhsrnamelhsexprbooltttacticold_conv_result��	 
monadto_has_bind
interaction_monadmonadtactic_statetacticreadtshas_bindand_then
tacticsave_info_thunk_x�format_exprreturn
old_conv_resultmkunitstar'	�PInfo~	VMR~_lambda_1VMR~VMC��_fresh�-��_fresh�-�	tactic_stateformat_exprVMC~	s�	��tacticsave_info_thunk	decl}stepαc�B�D'old_convmonadC.L4�PInfo�	VMR�_lambda_1VMR�VMC�	_x�pureVMC�	��B��binddecl}istepαBline0natcol0XlineXcolXc�B�X�X�X�X�Zrlhs	tsinteraction_monadresult��	��clamp_posYscope_tracecmY_x	MYS$)'�PInfo�	VMR�_lambda_1VMR�_lambda_2VMR�	VMC�	��VMC�	&��_fresh
���_fresh
��	�_fresh
���_fresh
����VMC�			��	���X�X�X�X�B�scope_traceinteraction_monadresultclamp_posdecl}executec
��}conversionC�PInfo�	VMR�VMC�	��conversionnspace}interactivedecl�itacticB�B�PInfo� 	VMR�VMC�decl�whnfGold_convwhnfI�PInfo�#	VMR�VMC�#	�whnfdecl�dsimpGold_convdsimp�PInfo�&	VMR�VMC�&	�dsimpdecl�trace_stateGold_convtrace_lhs�PInfo�)	VMR�VMC�)	�trace_lhsdecl�changepinteractiveparsepexpra�exprreflectboolffC�typestexpr��Gold_convchangeC�PInfo�,	VMR�VMC�,	���changedecl�findp�leanparserpexprstdprecmaxc�itactic����rlhs	tacticpatterntacticpexpr_to_pattern$pat�simp_lemmassimp_lemmasmk_defaults�prodbool�		tacticext_simplify_core��tacticsimp_configmksimpdefault_max_steps�������Cu�0�Cfound�s�rpoption	e	�����guard
tacticalternativenotcoe_sort�coe_sort_boolYnedecidable�a�b�booldecidable_eq'CY_x��has_orelseorelse
alternativeto_has_orelse
���listlevel�	�
tacticmatch_patternk'����matched����C�C_x�m$_p_a�cases_on�5
�Cvalrhs	proof��.0�prodmk���4	�'�4��C�Ca�s�rp�e	tacticfailed�$)_p�_a�prodcases_on���D�
Cfst�snd��b		�H�
Csnd_fst	snd_snd	
ite��$�$
tacticfailstringstringhas_to_format
Strfind converter failed, pattern was not found16	CC�PInfo�/	VMR�_lambda_1VMR�_lambda_2VMR�_lambda_3VMR�_lambda_4VMR�_lambda_5VMR�VMC�Q5s��VMC�R/	��_fresh��	�_fresh���tacticmatch_pattern	VMC�S/	�VVMC�T]6��	��������\��_fresh����(_main		
	interaction_monadfailed	W	�S�Rinteraction_monad_orelse	P
�b	#)�d,	-I
	5BGN
U
	
VMC�U<�@	�?��>�=��<�?failedVMC��1/	��	������pexpr_to_pattern	�+simp_lemmasmk_default	�$�U�T�Q�tacticext_simplify_core	%�	�b	-/4	134	5=

�fcharof_nat_c_1i�m_c_2n�m_c_3d�m_c_4 �m_c_5o�m_c_6e�m_c_7r�m_c_8t�m_c_9a�m_c_10
u�ms�mw�mp�m,�ml�mv�mc�mstringemptystringstr�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{�{stringhas_to_format?fail
�"	
�)	declconvreplace_lhstaca	
�conv����������convmonad���	��lhsC_p�_a��i�����C�G	�H	���update_lhs'CC�PInfo��G	VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��VMC��G	αVMC��
G	a�_fresh�v��convlhs��
VMC��H�������update_lhsVMC��G	������������
decl�discharge_eq_lhstac����������tacticlock_tactic_state			����Fmk_meta_varm	�	Fset_goalslistcons	Clistnil	_x��
)Fdone_xFinstantiate_mvars)pf	���congr_x���rhsthe_rhs	����C)_x���skip_x���PInfo��L	VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��_lambda_4VMR��_lambda_5VMR��_lambda_6VMR��_lambda_7VMR��VMC��L	��VMC��;L	��_fresh
��}���	tacticmk_meta_var
	5tacticset_goals	.	��!	"'tacticinstantiate_mvars,3VMC��U����skipVMC��
T����������
VMC��S����	�_fresh
���	������
VMC��R������	����rhs��
VMC��Q����	����congr��
VMC��L	�������������
decl�interactiveconvtconvinteractiveitactic����������tactictransitivitytactictransparencysemireducible_x���Fget_goals_p�_a�listcases_on	�����C��
match_failed��convmonad_failAnnotdo_failure_eqhd	tl���������'��_x��_x��Fall_goals��reflexivity��_x��$C
�PInfo��^prt��VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��_lambda_4VMR��_rec_1VMR��_lambda_5VMR��VMC��^��VMC��d���_fresh
��x���VMC��c���������������
VMC��b��������_fresh
��s������
VMC��^��n��_fresh
��*��listcases_on	����match_failed������
VMC��`�����_fresh
��~����tacticget_goals��
VMC��^������������
doc�� The `conv` tactic provides a `conv` within a `conv`. It allows the user to return to a
previous state of the outer conv block to continue editing an expression without having to
start a new conv block.decl��erwq�tacticinteractiverw_rules_t��-��has_reflectCtacticinteractiverw_rulescfgopt_paramtacticrewrite_cfg�mkFapply_cfgmk��Fnew_goalsnon_dep_first�occurrencesall�����4���F����rw'C�PInfo��f	VMR��VMC��f	���F���4convinteractiverwdecltacticinteractiveold_convc��������targett	�old_convto_tactic'namemk_string
StreqnameanonymousC_p�_a��i���C�G	�H	��replace_target'CC�PInfo�s	VMR�VMC�*s	���tactictarget	$nameanonymousq�me�m�y�{�{namemk_string�to_tactic	tacticreplace_target"decl�findp��O�'�c���old_convold_convinteractivefind'C�PInfo�&x	VMR�&VMC�&x	�(��'���decl�conv_lhsloc����zoptionhas_reflect�namereflectC
QuoteCoptionalleanparserleanparseralternativehas_seq_rightseq_right��applicativeto_has_seq_right���to_applicative���6parser_state�7tk
Strat�7identp�������|��
Quote�C��������
Strin�c����.���A���B����conv)'������convinteractiveto_lhsC�PInfo�-{	VMR�-_lambda_1VMR�-_lambda_2VMR�-_lambda_3VMR�-VMC�G{	��VMC�H{	��_fresh��z��VMC�I{	���L���H�to_lhs��
VMC�-{	�B���A���.���Itacticinteractiveconvdecl�conv_rhsloc�{��z��
QuoteC��p�������
Quote�C�����R���S��c�������convinteractiveto_rhsC�PInfo�Q�	VMR�Q_lambda_1VMR�Q_lambda_2VMR�Q_lambda_3VMR�QVMC�X�	��VMC�Y�	��_fresh�\���VMC�Z�	���]���Y�to_rhs��
VMC�Q�	�T���S���R���Z�PEndFile