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�
�hinittacticmonotonicityorderbasic�1�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}traversedeclapply_fun_nameepexprhnameMoptiontacticunit���id_rhshas_orelseorelsealternativeto_has_orelsetacticalternative monadto_has_bindinteraction_monadmonadtactic_stateexprboolttFget_localH!Finfer_typet_aexprcases_on�'anattacticskip�level3�a_1list63�a_1a_23�a_1a_2binder_infoa_33�a_1-�#47a_aa_a_1:3a_aa_a_1a_a_23a_aa_a_1a_a_2Ba_a_33a_aa_a_1-�#�13�63a_a_aa_a_a_1:3a_a_aa_a_a_1a_a_a_23a_a_aa_a_a_1a_a_a_2Ba_a_a_33a_a_aa_a_a_1-�#�13�63a_a_a_aa_a_a_a_1:iteeq#namemk_string
Streqnameanonymousnamehas_decidable_eq#{!&ltp!Fmk_mvarmv! Fto_exprexprsubstboolff���
Quote_x_1_��_x_2���_x_3���_x_4���congr_arg
a�#TyE'to_pexprexprhas_to_pexpr#�'�pexprhas_to_pexpr�Fnoteoptionnone_xFclear
3a_a_a_aa_a_a_a_1a_a_a_a_23a_a_a_aa_a_a_a_1a_a_a_a_2Ba_a_a_a_33a_a_a_aa_a_a_a_1-�#�13�63a_a_a_a_aa_a_a_a_a_1:svw
Strlew
Strhas_lez�+scoe_sortboolcoe_sort_bool�is_some�booldecidable_eq�!coecoe_to_lift�coe_base��opt_to_tac�tactici_to_exprHmonohas_bindand_then����
Quote_x_1��_x_2��#'������2Fget_unused_namew
Strmonoz�1n!���
Quote_x_1��&monotone'�Fassert'_x+9Fintro_lstlistconsw
Strxz�Hw
Stryz�Hw
Strhzlistnil_x�C+�has_bindseqtacticsave_infoposmkbit01nathas_add�j�j�j�jhas_oneone1nathas_one�j�j�jbit11�m�i�o�step�interactivedsimp��Utacticsimp_arg_type�Vinteractivelocns�G��U��tacticdsimp_configmktactictransparencyreduciblesimpdefault_max_steps���d�e�t�x�x�x�y���interactivemono�tacticinteractivemono_selectionboth�U�7mono_cfgmk�_x2Fswap_x!"Hmono�����
Quote_x_1��?_x_2��@����8��2_x�3a_a_a_a_aa_a_a_a_a_1a_a_a_a_a_23a_a_a_a_aa_a_a_a_a_1a_a_a_a_a_2Ba_a_a_a_a_33a_a_a_a_aa_a_a_a_a_13a_a_a_a_aa_a_a_a_a_1Ba_a_a_a_a_2����a_a_a_a_aa_a_a_a_a_1��a_a_a_a_amacro_defa_a_a_a_a_1�C3a_a_a_aa_a_a_a_1Ba_a_a_a_2��a_a_a_aa_a_a_a_1�a_a_a_a��a_a_a_a_1�C3a_a_aa_a_a_1Ba_a_a_2g�a_a_aa_a_a_1�a_a_a��a_a_a_1�C3a_aa_a_1Ba_a_2T�"a_aa_a_1� a_a��a_a_1�C3�a_1Ba_2C�0�a_1�.���a_1�C3'_x�try�����V����������coe_option�����decidableto_boolfalsedecidablefalse�Ntruedecidabletrue�?failstringstringhas_to_formathas_appendappend�istringhas_append�p�p
Strfailed to apply to_stringexprhas_to_string���
Str at �snamehas_to_string#�PInfo�	VMR�_lambda_1VMR�_lambda_2VMR�_lambda_3VMR�_rec_5VMR�_rec_4VMR�_rec_3VMR�_rec_2VMR�_rec_1VMR�_lambda_4VMR�VMC��	αVMC��	st₂t₁βα��	VMC��m	��nameanonymousxcharof_natstringemptystringstrnamemk_string��y����������h��������Fintro_lst_main	gsimpdefault_max_steps�'interactivedsimpFstep (Fsave_info����has_bindseq	BVtacticinteractivemono�� /��������[	\`�eVMC���1	an_fresh:��?��_fresh:��>��_fresh:��=��_fresh:��<exprcases_on

����!�%�)�-����e��l��_��s��a��h������������������e��l����������namehas_decidable_eq	:=��optionis_some_main�_main	C���o��n��o��m��������������tacticget_unused_name	^�	�to_pexpr�5exprsubsttacticto_expr	jp
�u
	v��=��interaction_monad_orelse	}�
tacticget_local	����������������	����	������
�
�	
��returnopt	��	�'i_to_expr�	
	��	�������������	��
��
	����
�	
	�	�	tacticclear�	
�������VMC���	������_fresh:����_fresh:��
��_fresh:����_fresh:����_fresh:��
��

jnr{������q��e������������	�htacticinfer_type	!c
�	$\���������	��������������	BJ
�O
	PU��Z
a
h	
��������VMC��0	������_fresh:����_fresh:�����_fresh:�����_fresh:�����_fresh:�����

 $(,�����������VMC��0	������_fresh:�����_fresh:�����_fresh:�����_fresh:�����

 $(,�����������VMC��/	������_fresh:�����_fresh:�����_fresh:�����_fresh:�����

#'+�����������VMC��C	����_fresh:�����_fresh:�����_fresh:�����	=��	6��	/	��decidableto_bool����p4	
;VMC�}	���a��_c_1l��_c_2 ��_c_3t��_c_4p��_c_5nameto_string����������exprto_stringy��o��d��e��i��f������������������������������������stringappend��stringhas_to_format�z����decltacticinteractiveapply_funqinteractiveparseaexprreflect�'interactivetypestexprlocs��interactiveloc�(��interactivelochas_reflect'�,locationlem���(optionhas_reflect��
Quote'optionalleanparserleanparseralternativehas_seq_rightseq_right��applicativeto_has_seq_right���to_applicative���;parser_stateleanparsertk
Strusing���%���.���5��
_a��#�G���0cases_on��'�EFlocal_contextctx�Clistmmap'happly_fun_name�local_pp_name'�'a9������l��_a��optioncases_on�R��'�#skipval��'��''#�PInfo�$3	VMR�$_lambda_1VMR�$_lambda_2VMR�$_lambda_3VMR�$VMC�W3	��VMC�X=�M��_fresh5�������_fresh5�����exprlocal_pp_name�VMC�Y8���Q���\���_��	�'interactiveskip�VMC�$'3	���5���.���%��	tacticlocal_context	�X��Wlistmmap'_main�Y��W�hdoc�$Apply a function to some local assumptions which are either equalities or
   inequalities. For instance, if the context contains `h : a = b` and
   some function `f` then `apply_fun f at h` turns `h` into `h : f a = f b`.
   When the assumption is an inequality `h : a ≤ b`, a side goal `monotone f`
   is created, unless this condition is provided using
   `apply_fun f at h using P` where `P : monotone f`, or the `mono` tactic can
   prove it.EndFile