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".
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_statetacticreadtshas_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_posYscope_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 tacticpatterntacticpexpr_to_pattern$pat�simp_lemmassimp_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��$�$ tacticfailstringstringhas_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