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��F~�initdataoptiondefs���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_assocPInfotacticmllistindluma�αCn~�e_1~nile_2�prodoption


~cons�~����������
����
�����
���decl~rec_on�����0�	
��<
����0�F�L~rec�G
�PInfo�ATTRreducibility���auxrec�prt�decl~cases_on�S����0�F�LX�GG=
�PInfo�ATTR����auxrec�prt�decl~no_confusion_type���Pv10v2����0����y�
�<�<uG�d�f�a_eqeq�G�GGG�PInfo�ATTR����prt�decl~no_confusion�����0�h12���G
����0���eqrec	d
adh1a����Gh11�d

��G��������������eqrefl����PInfo�ATTR����no_conf�prt�decl�inj�����	�true����trueintro�PInfo�decl�inj_arrowl�����P�����������inj�
�PInfo�decl�inj_eq��������propext��iffintro��h��
a��0�PInfo�decl�inj����.�
0��
�'�<
���.��$��+~no_confusion�.
��.�PInfo�decl�inj_arrowl����.��$��+P���f
���.��$��+���G�inj��G
�PInfo�decl�inj_eq����.��$�
�+����.a_1�$��+�`��+�`h�+�O
a_2�`�<�fe_1�congr_arg��
��
�PInfo�decl~below�����0����0��
���punit����PInfo�ATTR����prt�decl~ibelow������	�0�	������0��
��	����PInfo�ATTR����prt�decl~brec_on�����0F�f~below�

����0���pprodfst������pprod ��Gpprodmk
	����punitstar���<��K��J�����PInfo�ATTR����auxrec�prt�decl~binduction_on�������0F�f~ibelow�
����������0���andelim_left������and ��Gandintro��������<�K������PInfo�ATTR����auxrec�prt�gind~��prt~recnspace~decl}mllistfix_main�αm_inst_1alternativef�

��������id_rhs��&has_orelseorelsealternativeto_has_orelse
b�functormapapplicativeto_functor�to_applicative
�)aprodmk�GG
�RecFn�G
=�to_has_pure�1�)�6a��:D�PInfo�	VMR�_lambda_1VMR�VMC�
�_fresh��?�_fresh��>�_fresh��=�_fresh��<�VMC�$	�����

�



decl�fix����������
�PInfo�	VMR�VMC�	�����decl�fixl_with_main����_inst_2monadf�Glist�G��lGc��������j��p�G��qlistcases_on���l���� �rH��#G�%G��r Gmonadto_has_bindG��}����_p��_a��l�prodcases_on	�l������������fst��snd�l��� _a�l
����������{����l��������� ���I���K����to_applicative������6������
�zRecFn�����������
listnil��hd��tl�l��� ��
�����I���K�����������6�����:���������������IG�KG��G���6��r���	G�a_hd�a_tl��� ���v��I��K����G���6�(��:��������G�PInfo�	VMR�_rec_1VMR�_lambda_1VMR�VMC�(	n�_fresh
���_fresh
���_fresh
���_fresh
���_fresh
��listcases_on�

�

VMC�"��_fresh
�ɀ�_fresh
���_fresh
��~�_fresh
��}�VMC�8	���������"#

�

	�

decl�fixl_with��z�������j��p��G
�PInfo�/	VMR�/VMC�/	�������decl�fixl��������jf�psG�8�������j�1�p�2G� �8�fixl_with�G
��G�PInfo�0)	VMR�0VMC�0
)	�2�1������decl�uncons_main����iα�/���o�6��p���r

� �u�J�L��
�t���s��"�r� �������~��_p��_a:c��a��8b����k�G�a���� ��������������return���_p�_a�optioncases_on"��;�(��������� �������
�yRecFn�5�����
val�� ����������coe""����coe_to_lift""����coe_option���6�����PInfo�5+	VMR�5_lambda_1VMR�5_lambda_2VMR�5VMC�B.�:�_fresh���_fresh����_fresh���	�5

VMC�C-�7�I�L�B


VMC�5+	��6��	


�C
decl�uncons������j�6��q�����j�6�5��PInfo�M+	VMR�MVMC�M+	�6����5decl�empty������jαxs��uliftbool�����j�O�P��� �
�+�-��
���functioncomp""����uliftup�optionis_some���uncons
�PInfo�N1	VMR�NVMC�N1	�P�O����5optionis_some_main


decl�of_list_main����o�l�r���o�_��4�{��l�~� �rDa_hda_tl�l
� ��H��
����69����9��9��
�8RecFn�^G�PInfo�^4	VMR�^VMC�^4	��_���"�^

decl�of_list������j�_��4�������j�_�^��PInfo�b4	VMR�bVMC�b4	�_����^decl�m_of_list_main����o�l
�r���o�e��r�{����l���~�@a_hd��a_tl�l
�C�D�+G�-G�E9��x9�P��
�vRecFn�d�G��9�:�PInfo�d8	VMR�d_lambda_1VMR�d_lambda_2VMR�dVMC�i:�h�_fresh
���_fresh
���_fresh
���dVMC�j8	�>VMC�d!8	��e���"�j


�i


decl�m_of_list������j�e��l �������j�e�d��PInfo�t8	VMR�tVMC�t8	�e����ddecl�force_main����o�p�:���o�w��p�|��r�B� �����:������ �����B_p��_a�����y����q�a���� ��}���}�I��K������_p�_a����{�(����� ����
��RecFn�v�����
�>�� ���+���-������������_y��listcons�����������PInfo�v<	VMR�v_lambda_1VMR�v_lambda_2VMR�v_lambda_3VMR�vVMC�A�|�_fresh
�TVMC��@�z�_fresh
�R�_fresh
�L�_fresh
�K	�v�v�


VMC��?�x������


VMC�v<	��w��	


��
decl�force������j�w����:�����j�w�v��PInfo��<	VMR��VMC��<	�w����vdecl�take_main����o�p�nat�����o����p���z
��~G�l���I�K��B��
a_1��natcases_on"����m� ��G������ �,������G���m_p��_a������������������������������������(�����������(_p�(_a��������������� ����
�RecFn��������
has_addadd�nathas_add�has_oneone�nathas_one�>��� �V�+���-������������_y�������\��������PInfo��C	VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��VMC��I���_fresh
�[VMC��H���_fresh
�Y�_fresh
�V��_fresh
�Q�_fresh
�P	natadd������


VMC��G�����������


VMC��$C	�������	




"��
decl�take������j�������G�B�����j������PInfo��C	VMR��VMC��C	�������decl�map_main����oαβf���~c
���o����������~�zG����� ���
�G��� ����;:��_p��_a�>�@���A����F�����G� �������P���6����+�-���Zmonad���
��RecFn����������PInfo��K	VMR��_lambda_1VMR��VMC��M���_fresh
� L�_fresh
� I�_fresh
� H�Zmap��

VMC��K	���������	��
decl�map������j������������
�����j�����������G
�PInfo��K	VMR��VMC��K	�����������decl�mmap_main����oαβf������o���������~�����������_p��_a�>������G���K����traverse���N���b����)����,�
�RecFn�����������PInfo��O	VMR��_lambda_1VMR��_lambda_2VMR��VMC��T
���_fresh
�$x�_fresh
�$s�_fresh
�$p�_fresh
�$o��

VMC��R
����������
optiontraverse_main
VMC��O	���������	��
decl�mmap������j�������G�������j�������?���G
�PInfo��O	VMR��VMC��O	�����������decl�filter_main����oαp��	_inst_3decidable_pred��~�����o�����R���U��~��������C����� �����;��_p��_a�>�@���A����G����G� ���)���L�k�������(_p�(_a���T���U��������� ���U�����������}�6�U�|����
�[RecFn�����������
�>��� �w�������v���uite�������:�����������������PInfo��V	VMR��_lambda_1VMR��_lambda_2VMR��VMC��*Z
���_fresh
���_fresh
���_fresh
���_fresh
���_fresh
��	��

	��

VMC��Y
�����������


VMC��V	���������	��
decl�filter������j�����R���U����������j�����R���U���G
�PInfo�V	VMR�VMC�V	�����������decl�mfilter_main����o_inst_3�αβp�?�����o������	�?����z�������	������ ���v�������b����_p��_a��G�?������������� ��������������(����(_p�(_a���T�
�U��������� ���{�t��������
��
��RecFn������������
�>��� ��#���%�����has_bindand_then�����������������������������������������������������-�.���>�PInfo�]	VMR�_lambda_1VMR�_lambda_2VMR�_lambda_3VMR�VMC�]	_x�_fresh
�+T�_fresh
�+R�_fresh
�+M�_fresh
�+J�_fresh
�+I�_fresh
�+H�

VMC�=a
�����"�%	�

�

�

VMC�`
�
���"�%�


VMC�]	��	�����	�
decl�mfilter������j��
���	�����������j��a���	�c���
�PInfo�&]	VMR�&VMC�&]	�	�������decl�filter_map_main����oαβf��!�����o�)�*�+�{��~�����������_p��_a�>������G���L���r_p�(_a���T�/�U�� �������������6��������
��RecFn�(���������
�>��� ���_a�U�����0����������-�C�������������>��� �����������6�����:��������������G���PInfo�(d	VMR�(_lambda_1VMR�(_lambda_2VMR�(VMC�19h
�.�_fresh
�.��_fresh
�.��_fresh
�.��_fresh
�.�	�(

	&�(

7�(

VMC�2g
�,�8�;�>�1


VMC�(d	��+�*�)��	�2
decl�filter_map������j�)�*�+�{�������j�)�*�+�{�(�G
�PInfo�?d	VMR�?VMC�?d	�+�*�)����(decl�mfilter_map_main����o_inst_3���B���o�B��αβf�?���������d� ����
���� �d�v��:�d_p��_a�����G�������������� ����������_p�(_a���T�I�U���{���� �����t����������
��RecFn�A�����������
�>��� �
�!������(�����b�������������+����������������,��������������������PInfo�An	VMR�A_lambda_1VMR�A_lambda_2VMR�A_lambda_3VMR�AVMC�Ks�J�_fresh
�2:�_fresh
�25�_fresh
�22�_fresh
�21�_fresh
�20�A

VMC�L<r
�H�P�S�V�Y�\	�A

�A

�K

VMC�Mq
�F�S�V�Y�\�L


VMC�An	��E�D�C�B��	�M
decl�mfilter_map������j�B�a�C�D�E�c����
�����j�B�a�C�D�E�c�A��
�PInfo�]n	VMR�]VMC�]n	�E�D�C�B����Adecl�append_main����o�p��r�~���o�`��p��r���~��� �~a_1�*�C�D��������_p��_a��������c�>��A������ �g������f���G
�~RecFn�_����G�PInfo�_u	VMR�__lambda_1VMR�_VMC�dx
�b�_fresh
�5I�_fresh
�5F�_fresh
�5E�_

VMC�_u	���`��	�d
decl�append������j�`�������������j�`�_��PInfo�nu	VMR�nVMC�nu	�`����_decl�join_main����oα�/�p�r���o�q����{�r��r�~�@��r����
���~�~��_p��_a��c����������s������>�������� �������A����_p��_a�G�����u���������m�p�k�,�����
��RecFn�p�����
�>��� _a���~�v���z�����v�|�w���������������~�������������v�v_p�v_a��������������x���	���	�������	 � ���	&�����	&�	�	+�6�	'�	*���	&�	���	&�	*�	/�	*�	)�	*�6�	9�	;���	*�	9���	*�	9���	*���PInfo�p{	VMR�p_lambda_1VMR�p_rec_1VMR�p_lambda_2VMR�p_lambda_3VMR�pVMC�y��w�_fresh��F�_fresh��E�_fresh��D
_c_1
�p
VMC�z{	��_fresh����_fresh����_fresh���	�p

�y
VMC�{�t�_fresh��S�_fresh��M�_fresh��L	�p

�zVMC�|~
�r�����{


VMC�p{	��q��	�|
decl�join������j�q����������j�q�p��PInfo��{	VMR��VMC��{	�q����pdecl�squash������jαt���������j�����	�� ��}mllistjoin
}mllistm_of_list
���������	��PInfo���	VMR��VMC���	��������d�pdecl�enum_from_main����o���r��
���o������r���~c�	�� �	����	�a_1�*� �	�H�	����	��	�_p��_a�������>��	����	������� ���	���F�	������������	����_p�_a�(�����������	������	�� ���	������	����	��6�	��	����	�
�	�RecFn���������
�>��� �	����	��6�	��	��?�	��	��@3�	��	����	��������	��������d���i�PInfo���	VMR��_lambda_1VMR��_lambda_2VMR��VMC��&�
���_fresh���_fresh����_fresh���_fresh�	��

����

VMC���
�����������


VMC���	�������	��
decl�enum_from������j�������c�	������j������PInfo���	VMR��VMC���	�������decl�enum������j���	������j��� �
7�enum_from
has_zerozero�nathas_zero�PInfo���	VMR��VMC���	�������decl�rangem��
L_inst_3alternative}mllist����
M���
O��
R}mllistfix�n�
�
�
��d�i�
E�PInfo���	VMR��_lambda_1VMR��VMC��
�M����_fresh
���_fresh
���
M��

VMC��	�	�����
M���decl�concat������j����������j���������	�G
}mllistof_listG�������
}�
{
��
�&�����PInfo�Γ	VMR��VMC���	��������^�^�pdecl�bind__main������jαβ�����
���������j���������
�����a_1����������G����_p��_a����������������(������(_p�(_a����������
�
�RecFn������������
��>���$�+����>�append����������
�������������PInfo�Ӗ	VMR��_lambda_1VMR��_lambda_2VMR��VMC��,�
���_fresh���_fresh���_fresh���_fresh���_fresh��	��

���_

VMC���
������������


VMC���	���������	��
decl�bind_��
������j�������
�PInfo��	VMR��VMC���	���������decl�monad_lift������jαx �������j���� �	���"���T�!�
�flip�!���
��6�!�����:�PInfo��	VMR��_lambda_1VMR��VMC���Kx�_fresh��VMC���	���������


decl�head������j_inst_3�aαL�>�����j���a������ �>���qc�'G
_p�_a�}�����d���&�� �failure��>�&����>�6��Gval_fstval_snd�FG� ����o���PInfo���	VMR��_lambda_1VMR��VMC�����_fresh
�Q��_fresh
�Q��_fresh
�Q�	


VMC���	�����������5
decl�mfirst������j_inst_3�aαβL�f�
�
�U�����j��a��
����V� �U}mllisthead�G
}mllistmfilter_map�G
�PInfo�
�	VMR�
VMC�
�	���
������A��EndFile