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�"&�[initlogicbasicdatabooldataoptiondefstacticbasic���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}traversedecloptionsome_ne_noneu_1α�xneoption�some�none��heq	optionno_confusionfalse�PInfo�decl�get_mem��ohcoe_sortboolcoe_sort_bool�is_somehas_memmemoptionhas_memoptionget��"�+�cases_on�.�'(,B0B3B�'(eqdcases_on$?>t_1$�eq$(BBH_1ZboolttH_2heq'(d>Zg,o0o3ooBv`aaboolffboolno_confusion�c']^]�refl$],�0�3���`��`heqrefl'W��'?>id_rhsDB�rflD��PInfo�
ATTRsimp���decl�get_of_mem��aoh'Q�,>>0>BH>��������Dt_1D��>H_1dd�H_2ctd�>q�3�d�o�>���eqrec��B���'e���c,��0�o���	3�>��'(���,d�0d���c�od��(�(�q�(���
�oAnnotinnaccessible�6���6>�D��G>�PInfo�decl�not_mem_none��anot,0��h�Z�PInfo�ATTR����decl�some_get��x"h+.6��"�+=�.�A��J�SXt_1$�_H_1bH_2n��'xv`���������`���������H�������PInfo�ATTR����decl�get_some��xh')	4���������PInfo�ATTR_refl_lemma���ATTR����decl�mem_unique��o"abha�hbG>�>��"��������optionsomeinj�>�trans��>B�eqsymm�B���PInfo�decl�injective_someu_1αfunctioninjective�
"�_x_xiffmp�d���some_inj	�PInfo�decl�injective_map�u_2�β�f�Hffunctioninjective���optionoptionmap>����������a₁�a₂Daeq��B���B>��<d�������d��od���
>��������d�Bf�<o�q�����o���od�������v�.��
� � ��� �o��"��2�
�������o�'t_1�=��������
���FH_1�����F���F��P>H_2c�����P���P�F�[�^�[B>�a
�k�k��A�����=optionsome�o�none��no_confusion��c�L�I�F�L�K�
�D�K�P�P�U�~��������=�z��}�B�z�d����'�	<�����}�A�x�A�F��>>����2�!�>��t_1�=��E�I��H_1�O�S��H_2c�Z�^�b��`>���m�pd�n�B��}���o���c���K�����������TB�������>���B����B������A�x�����eqmpr�����idY����F>_a�F����T���T����o>optionsomeinj���������PInfo�"doc�`option.map f` is injective if `f` is injective.decl�ext��o₁"o₂�a���B���"����G<>����B�A��P>�>��>�AG\�\<B��D����A�$f�c�f��B�A�P��o���������B����e�c���$f�mpr����{���{�>��B�A�P��S<������d�At�'>�����>����A�c��d����f���f�����$����f���������d�����'�������q������t>������>�q���PInfo�&ATTRext���prodmk$prodlistext_param_type����name���������������listnil������������listcons��������namemk_string
Strthunknameanonymous��
Strfunext��������
Strulift����
Strext�	������
Strarray����������
Strplift����������
Strprod���� ����namemk_numeralunsignedof_nat'has_oneonenatnathas_one����
Strpropext�������%�&has_zerozero�(nathas_zero�������ATTR������`����������
Stroption�����?decl�eq_none_iff_forall_not_mem��o"�Aa�T2��"�intro�V�[e�Vah�C�\t_1D�$�sH_1��>H_2ctBveqmp�gd�h�qd_aq���o�p��kv�>�v��j����\�D>�*D��B�����\�&�\��'c����j�����B�*���$>�������>�t�������G������h�[�ext���D�BV��T�I��
�����forall_congr_eq�������eqtrans����A����a��0�e_1�b��2�e_2��congr���A��ABcongr_arg��2���B�A>�C��propext�C���mem_def>��������iff_false_intro�Z�>������iff_false���PInfo�+decl�none_bindu_1αβf� �;monadto_has_bind�monad�<�=�>�'��2�PInfo�:/ATTR����:ATTR����:decl�some_bindu_1αβaf�.�d�.>����D�E�F�G�=�.�B�PInfo�B1ATTR����BATTR����Bdecl�none_bind'������f������O�bind�������I�Prfl�O�V�PInfo�H3ATTR����HATTR����Hdecl�some_bind'������af��������R>�@�������M�N�c�]���h�PInfo�L5ATTR����LATTR����Ldecl�bind_some��x"�.�bind_pure�,optionis_lawful_monad�PInfo�O7ATTR����Odecl�bind_eq_someu_1αβxf�=b�A�H�.B>�Exists�UBaBand�����V�W�X�Y�=�Z�b�XD�A��.�B�����\������>����A�H��\����\B���s����true�
����������A�����������HV�a��_De_1�Va��aqe_2��4�%��&��&B�5�%�a�%��B�&>��V�:B>�����eq_false_intro��_h��B\����������\BpaB��e�f��e_1��fd��5�fo����o���funextBxB�xB���jB�\B��������a��k�e_1��b��m�e_2���������B����>������_h��df�{����������)false_and�����α�
��aexists_falseB������iff_selftrivial�XB��A���������\�����{�������
��{�����{�A���������s���_D�_��`���aq�a��b�&����������B�����a����B��>�q���B�B�����z�����z���\���d��a����e��e�
�g����f�������y�����i���j��x�j����\��;�v���someinj_eqd������������v����vd�B�d��exists_eq_left'����������g���m�PInfo�T:ATTR����Tdecl�bind_eq_some'������xf�cb�A����>�RB>�~>��aB�������~B�����{�|�c�}�b�{D�A���R�B����~�������~���A��\����~B������
��5�����5�������0���0���>������e_1�����e_2�}�4�D��E��EB�5�D��D��B�E>�.�A�HB>���������C_h�C��B��B��4���4���3��"�jB�2�%�~B���2�(��F���������N��a�i�m�{B��A���������~��w�%���
����������A��������������������=���E�J�N��O��OB�S�N��N��B�O>�����L�B�����������������~����%�v��%���������j����j����~����%�%��%�����v����vd����~d>�������������g��m�PInfo�z=ATTR����zdecl�bind_eq_none'������of�c�A�d�f��baB��S�T�����>���������c��(�A� xB����T��"�$����B�1�
��(�7����3���� �T�>��>�x� >�����B���T�B������F�eq_none_iff_forall_not_mem��-� �E� �2� ���E��B�Tx����I�%��B�����I�T�K���b�T��ha����e_1������T�D����D�����D��mem_def>������bind_eq_some'B>���T����B�f�hnot_existsB��B���B��B�T���B�1��B�����1not_and����'�6�]���&���5������B�%��B�1��Bimp_congr_eq�S�T�B���B�����T����S����>�{����������B��iffrefl�3�PInfo��@ATTR�����decl�bind_eq_noneu_1αβof�=�A�d�?baB��S�T���"���������=�bind_eq_none'��>�PInfo��DATTR�����decl�bind_commu_1u_2u_3αβ��γ��f��optiona�b���	>optionbind���>x�optionbind���B���	B>yB�	
dBxd�����������	���	������������	�	B�	��d�	d����	����	
o���o��B�����	)�	f��d�	,���	����	3v�	7eqrefl�	�	�����	�������B�	P�	(�	A��d�	,��������	?�����	�	��	3����o�	od�	5�	,��d�	
�d�2���d�	Z�	����d�	,��d������	P�	e�	g��o�	i�~o�	5�PInfo��Hdecl�bind_assoc��u_3����γ�	x.f�>�g�>�	�		�	��	y��	���������	��.���	����	�������	)�	�Rd��	*��d�	,���	Q�	������	Z�	�	����PInfo��Ldecl�map_noneu_1αβf��functormap��!applicativeto_functor!!�?to_applicative!!�,���������8�	��PInfo��OATTR�����ATTR�����decl�map_someu_1αβaf��d�	�>�@�����������	��I�	��PInfo��QATTR�����ATTR�����decl�map_none'������f���Q���X���������^�	��PInfo��SATTR�����ATTR�����decl�map_some'������af�	��d���@�~�����������	��o�
�PInfo��UATTR�����ATTR�����decl�map_eq_someu_1αβxf�	�b�A�H�	���"�	��
�	��
�,B>���aB��������������	����b��D�A��
�B��������������A�H�
\�����B���
���
��
@�����
@�������
;���
;�����
9V����B>������
?���
?���
>��"�jB�
=�%��B���
=�(�
�F�
�
��
���
f�N�
�a�i�m��B��A��
+���������w�
1���
��
������
��A�
�
�����
��
���
�������
���
�
���"�B������B���
��
���
���������
1�v��
1���
��
����j��
��j��
�������
1�
1��
1�����v����vd����>�
����
����
����g�
�m�PInfo��WATTR�����decl�map_eq_some'������xf�	�b�A���B>���aB����B�����������	����b��D�A�������������������A��
�\�����B���
����
��	�����	�����������C�b��A��B>���m�x���������"�jB��%��B����(�
��F�
��
���
����/�N�
��a�i�m��B��A���
����������w�
����
��O�����O�A�
��
������J�
����J�������
����H�]���B�����someinj_eqB���N�
����N��������
��v��
����M�x���j��L�j��w������
��
���
������v����vd��d��>�|���{���W���g�
��m�PInfo��ZATTR�����decl�map_id'��o"optionmapid��"��map_id�PInfo��]ATTR�����decl�seq_someu_1αβaf�	��dhas_seqseq��#��to_has_seq##�	�>a>>�@�	����������	��I���PInfo��_ATTR�����ATTR�����decl�some_orelse'��ax�d�orelse������I���PInfo��aATTR�����ATTR�����decl�some_orelse��ax�dhas_orelseorelsealternativeto_has_orelse�alternative������I���PInfo��cATTR�����ATTR�����decl�none_orelse'��x"�����"<���d��������.�����PInfo��eATTR�����decl�none_orelse��x"�����"�none_orelse'�PInfo��hATTR�����decl�orelse_none'��x"�����"�����d�����������PInfo��jATTR�����decl�orelse_none��x"���"�orelse_none'�PInfo��mATTR�����decl�is_some_none��Z(��rfl$�:�PInfo�oATTR����ATTR����decl�is_some_some��aZ��`���?���PInfo�qATTR����ATTR����decl�is_some_iff_exists��x"�A+��a�d����"����A�����H���A')�J��d�����
��c�����c�������]��has_coe_to_sortS$&�]'�_inst_1�	$a$�$e_2Z��$�o>%>&�\��is_someequations_eqn_1boolcoe_sort_ff�b���b�J��e�f��e�f�e_1��f>���
����a����i��j�`�j����`_h�`>V�@�����_�i�m���A'Q���S��H�@����
����������A�������������q��'`������`�equations_eqn_2�coe_sort_tt���������S�����e���e�����
�����������i��j���j>���>�������qa'iff_true_intro�Jexists_eq'�������g���m�PInfo�sdecl�is_none_none��Z�is_none�9`��?�
0�PInfo�vATTR����ATTR����decl�is_none_some��aZ�
.	����?�
7�PInfo�xATTR����ATTR����decl�not_is_some��a"�AZ*�Z�
6`�� "��� �AZ��Z�
.`��AZ�\�Z�
6`���
��
Y�����
Y�������
T�����
TZ�����$�$e_1�y�$�$e_2�y��$�Z�ZB�z�$��BZ>�\���������
f��eq_self_iff_true$��
X�����
Xa`���
~�
V`�``����
����
�`�
%�m� ��AZ���Z�
K��`���
��
������
��������
����
���
~��`����
����_h��`��
����
��
e`�
~�
���``����
�_h�
��
��`�i�m�PInfo�zATTR����decl�eq_some_iff_get_eq��o"a�A�L�['Qh�
��
3>��'"�(=�'.�A�H�@�
�A�)A�J��A�`�
�S�)S�
�
�V���
��������������`������h'Sh'��H\p�q�f���T�
�
��*��exists_prop_of_falseS�+S����TS��ifftrans�A�T��not_congrS��pSA�p�A���S�qS�s��R��
���not_false_ifftrueintro�i�m�'��A�H��@�
���)�������
��x�����x�A�
�������q���
�w�����w�s�)���+���������M�A�p�A'[�������q��������`�
�>���e�e�f���e�f���e_1Y�f'�������f'e�d���
����v���h��i���j��u�j����)��_B�_�e_1���ao�a�e_2����F��F���B���F�a�F��B��>���B�B���s�+��+����>��exists_prop_of_true������������g���m�PInfo�&}decl�not_is_some_iff_eq_none��o"�A�T+�V��<"���<�A�T��d��A�T�]���
��%�����%�������!�����!�F���{�]�u���
������F���b�$�����$���#�
%�m�<��A�T���d�����
��R�����R�������N���N�T���{���������
������^not_true�Q���Q_h�Q���@V�i�m�PInfo�;�decl�ne_none_iff_is_some��o"�A+��@"���@�A.���A�]���
����������������������^���T�$�^nedef�{�$���F�k�]�7�i�m�@��A���������
������������������������F�����T�Q�F��.���{�Q�u�<�����e�
%�m�PInfo�?�decl�bex_ne_none��p�"��A��x�
���H���Jx����D���_����_x��_a��.�E.�
��V�F���"Existsdcases_on��E��
�D\�F��J�I�������GBB��w�h��K���F���M�
�����d�Gdd��h_w�h_h����Goo�9�Jintro&o� u>��q>v'(o>�ne_none_iff_is_someo>�d�'�4d>�
��7�9�n�6_aq�o�2�B���B� '(�B�/�Bo��7>�some_geto>�3_x��_a�S�G���>�G>>��U��>�q��D�ED�
����F�w��L>�M�p�����E��
��f�F��d�#������P�����F������some_ne_none��PInfo�C�decl�ball_ne_none��p���AxH����x����X���_����h��x���>h��x.hx���j>�I����\'[�/B�"�D��e_1���5q�d���WB�����PInfo�W�decl�iget_mem��_inst_1inhabitedo���optioniget>��c���e���O�e��'[����B��U]t_1$�Z��H_1bH_2c'�+v>Z������o� � `����jc'����������$��d�ff`�����e>�'[�o�������v���PInfo�b�decl�iget_of_mem��_inst_1��ao.������B>��l���m�n.��5�t_1D��H_1��BH_2ct�B>�B���d��p��V����n���$B�qc�F��/��d��>���qc�\�C�D�C���C�o��od
�'�Annot��|�o�|�G�V�G�PInfo�k�decl�guard_eq_some��p�0_inst_1decidable_predab>�A��guardB>aB���o�����"��s�0�t���v�w>dite�"����h�"��A����B�y���������B���
����������A������������������������_��_�e_1�a�a��a�%e_2������������B�����a����B��>��������ite��decidable_of_decidable_of_iff����>�
�����������������������guardequations_eqn_1�B��if_simp_congr(���������������������if_true(��������������������������������;����������������������,��and_true���������g���m�{�T�"���������������s��������������
���������]�����������X���if_false(��Y��������!���P_h�P�A�����+���3�5�X����and_false���i�m�PInfo�r�ATTR����rdecl�guard_eq_some'p�_inst_1decidableuunit�AY���guard�����some�������������punitcases_on�����A����>��>��A����unitstar����h��A����>���
�����������������������Y�������������������_���_��e_1���a���a��e_2������������B�����a����B��>����������������>p�������>���
>has_purepure��applicativeto_has_pure����to_applicative��������_inst_2alternative��������e_2��_inst_3��eqdrec�>������B����d������������B>��>�>��>���guard_true����������,����inj_eq�������������
�����>����
%�m���T���T��failure���������
���l���A�k�l���k���i��������
>�i�>�{guard_false�����|�����K>�{���q�l��k�
�l�a�koptionno_confusion���i���PInfo���ATTR�����decl�lift_or_get_choice��f��habor�
����o₁.o₂�����lift_or_getB>�������������.����b��D������B���b��D���������������\\\��orinl���������B�������������orinr�����v����B����������d��{�{�������������������	�v�������������{����������y��
����k��k�e_1���m��m�e_2���������B����>���������{����qe_1����%���e_2�����[��>��AB���>��>��B�A>��7�lift_or_getequations_eqn_4d��{�{�t�{���������8����^�����t���d�J�PInfo���EndFile