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��E?�init��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_assocdecloptionhas_memu_1αhas_memoption�has_memmkabeq}some�PInfo~	prt~VMR~VMC~	�decl~equations_eqn_1�
~�eqrefl�PInfo�	ATTR_refl_lemma���EqnL�SEqnL~ATTRinstance��~class�~��decl}mem_def�abiffhas_memmem���iffrfl+�PInfo�ATTRsimp���decl}is_none_iff_eq_none�o$�booloptionis_none

}none���intro>Doptioneq_none_of_is_noneeDeqsubst_x89=B�symmXrfl79X�PInfo�decl}some_inj�ab$
���eqmprrtrueid6rxeqtrans{r$qqxa{�{e_1|b{�{e_2�congr{{$$congr_arg{�{{��$Qmq}someinj_equ_1qq�{qpropext�xiff_selfqtrivial�PInfo�decl}decidable_eq_none�odecidableD��decidable_of_decidable_of_iff>Dbooldecidable_eq;=}is_none_iff_eq_none�PInfo�	prt�VMR�VMC�
	��optionis_none_mainbooldecidable_eq_maindecidable_of_decidable_of_iffdecl�equations_eqn_1��6���������PInfo�	ATTR����EqnL�SEqnL�ATTR����class����decl}decidable_forall_mem_main�pa{_inst_1decidable_predo�aQH%����������optioncases_onQ�Q����%����id_rhs��Q��B���v�xz|�x�xQ����B��xQ��xxforall_congr_eqQ�Q��Qx�Q�a��afalse�ximp_congr_eq�Q�#�)��
����#���2���eq_false_intro�2_h�2optionno_confusion��#����)��$xfalse_implies_iff�)��Qxximplies_true_iffQ��Q�������D�dite�)�gh�)����%�n�n�n�no�e�wO_x�|�|Q�mp
�|�|Q��
�|Q}some_inj�|Q�not�)�zmt�z�H�zrfl�p�v�PInfo�	VMR�VMC�
	����		
decl�_proof_1�����)X���v��xz|��x����%Q�QBQQ��xx�����x���������#��x�'���#�����Xl�#������7X�=������?Q�#��Q������x�P����xx�Z��PInfo�	decl�equations_eqn_1�����6�����X����������id_delta���PInfo�	ATTR����EqnL�decl�_proof_2���a����Q���0�����������Q��,O��.Q��
��CQ�D
�Q���Q�PInfo�	decl�_proof_3������������Q��,�������P���R����R������+�PInfo�	decl�equations_eqn_2������6��Q���0��Q���i�k���h��k������C���Q����k���v��Q��������h�$�h�n�PInfo�	ATTR����EqnL�decl}decidable_forall_mem��������PInfo�	prt�VMR�VMC�	����decl�equations_eqn_1�������X�������equations_eqn_1�PInfo�	ATTR����EqnL�decl�equations_eqn_2�������i��Q�m��������equations_eqn_2�PInfo��	ATTR�����EqnL��decl�_sunfold����PInfo�	ATTR����classdecidable���decl}decidable_exists_mem_match_1�p�_aExistsa���H�����#������Existsdcases_on�	�����
����������#wh������
�����������#h_w��h_h����#eqdcases_on�pB�nt_1�ph��B�|H_1
���H_2heq%	�����nB���
�����#�uQ�
�p����?�|���%�|���|������� �����#����� �p�heqrefl�sQ���PInfo� 	decl�equations_eqn_1���a���_x��eq�#��Q�intro��	�����
������
�C�Q��������:����u������������#�+��.�+��@����Q��O� ���#�;� ��+�$�C������������#��#�K�PInfo� 	ATTR����EqnL�decl�_match_2���ah�P_a��Q�	Q���,�
�,��#����!�"�P�#������	�����;�
����#������#�
�h_1�����s�Q�
���n�$�������#h_1_w��h_1_h���������nt_1���%�����|H_1

���H_2��%�����n�����
�����#��Q�(�������?���)����������� �����#�����val_eq
����|eqrec�����
���%�����&���)��%
��������
������ �����#�%%�������������&�����)��%�������
��� �������[�����Q �����$%������Q���PInfo�  	decl� equations_eqn_1����!�"�Phn���5� �Q�:���A�B�+�
�R�E�[������!�"�P�/�������Y�PInfo�. 	ATTR����.EqnL�.decl�_main���_inst_1�o����	Q����
������1��2��2�����	�����
�������	Q����
�����_x��8�2Q�����	����d�
�d��l���"�)�����	����w�
�w�x�9����A��D�
�������D�"������_x���K�n��PInfo�0 	VMR�0VMC�0
 	�2�1��		
decl�0_proof_1����3���#����3���6�PInfo�5 	decl�0equations_eqn_1����1�6����0X�����5����1�����$�����PInfo�7 	ATTR����7EqnL�7decl�0_proof_2����!�"��������!�"���9Q���A�����
��Q������PInfo�8 	decl�0_proof_3����!�"�P�4���#����!�"�P�4���O�PInfo�9 	decl�0equations_eqn_2����1��!6����	Q���e�
�e���Q�m�q��"�k����	����t�
�t��8�Q�"������9�Q����1��!���$���PInfo�; 	ATTR����;EqnL�;decl}decidable_exists_mem�q����1����PInfo�< 	prt�<VMR�<VMC�< 	�1���0decl�<equations_eqn_1����1����<X������1��0equations_eqn_1�PInfo�> 	ATTR����>EqnL�>decl�<equations_eqn_2����1��!��/Q�m�����1��0equations_eqn_2�PInfo�B 	ATTR����BEqnL�Bdecl�<_sunfold�q���PInfo�E 	ATTR����<classdecidable�<��decl}iget_main�_inst_1inhabited���I�R���Q�default��[Q�PInfo�H)VMR�HVMC�H)��I�	decl�Hequations_eqn_1��I�R
�HC�]��I�R ��m�PInfo�M)ATTR����MEqnL�Mdecl�Hequations_eqn_2��I�Rxo�jl��I�R�P �u�}�PInfo�O)ATTR����OEqnL�Odecl}iget�U��I�R�l�PInfo�Q)VMR�QVMC�Q)�I��Hdoc�Qinhabited `get` function. Returns `a` if the input is `some a`,
 otherwise returns `default`.decl�Qequations_eqn_1��I�R�i�QC�p��I�R�Hequations_eqn_1�PInfo�S)ATTR����SEqnL�Sdecl�Qequations_eqn_2��I�R�Po��l��I�R�Hequations_eqn_2�PInfo�W)ATTR����WEqnL�Wdecl�Q_sunfold�U�h�PInfo�Z)ATTRreducibility���Qdecl}iget_some�_inst_1�Ra����]�R�^�����PInfo�\-ATTR����\ATTR����\decl}guard�p�_inst_1�a���`��a��bite�k����m���PInfo�_0VMR�_VMC�_	0�b�a�`�	doc�_`guard p a` returns `some a` if `p a` holds, otherwise `none`.decl�_equations_eqn_1��`��a��b
��_Q����`��a��b ����PInfo�e0ATTR����eEqnL�eSEqnL�_decl}filter�p�_inst_1�o���g��h��ioptionbindQQ��aQ�k�PInfo�f5VMR�fVMC�f5�i�h�g�	�_doc�f`filter p o` returns `some a` if `o` is `some a`
 and `p a` holds, otherwise `none`.decl�fequations_eqn_1��g��h��i���fQ����g��h��i�����PInfo�n5ATTR����nEqnL�nSEqnL�fdecl}to_list_main��list���V����[��listnil��[��listcons���PInfo�p8VMR�pVMC�p	8��	decl�pequations_eqn_1�
���pB��� ��u���PInfo�w8ATTR����wEqnL�wdecl�pequations_eqn_2�a
���������z ���u����PInfo�y8ATTR����yEqnL�ydecl}to_list����	�PInfo�{8VMR�{VMC�{8��pdecl�{equations_eqn_1���{�
�
��pequations_eqn_1�PInfo�}8ATTR����}EqnL�}decl�{equations_eqn_2��z��(����pequations_eqn_2�PInfo��8ATTR�����EqnL��decl�{_sunfold����PInfo��8decl}mem_to_list�ao$&��listhas_mem�(+��������$����Q�;Q�(Q��v$�>�?X*Xxz|�\x��\$�#�#x��Y�#��Y�>���#c��aQ���e_2�?�����n�����|e_3
�����u_1����{���x�n��|�� �����x{���|Q�<���X���}��j�#αaiff_false_intro%���;��listnot_mem_nil�[�#��[���#��[����X�=��_h��������dx��#���v$�M�N�m�R�mxz|��x���$
Q��x��������or���#�������M��Q�����M��Q������Q�I��������
�n���r���s��
�x�w����{����n�����������{���Q�K Q������Q�������mem_cons_iffQ��a{��{e_1�b{��{e_2�����������Q����������#����#��Q�����or_false��������������X���m���Z����^�7Q�m�Q��Z��eq_commQ���x�����PInfo��<ATTR�����decl}lift_or_get_main�f�������������VQ������[����Q�[��1a_1Q�V���������[��C��PInfo��?VMR��VMC��?�����	
		decl��equations_eqn_1�����@��CCC����� �u���PInfo��?ATTR�����EqnL��decl��equations_eqn_2�����b��Xll������� �u���PInfo��?ATTR�����EqnL��decl��equations_eqn_3�����a��lXl��������������PInfo��?ATTR�����EqnL��decl��equations_eqn_4�����ab����Q���m����������������u����PInfo��?ATTR�����EqnL��decl}lift_or_get����������PInfo��?VMR��VMC��?�����decl��equations_eqn_1�����@��CCC�������equations_eqn_1#�PInfo��?ATTR�����EqnL��decl��equations_eqn_2���������Xll�������equations_eqn_2#�PInfo��?ATTR�����EqnL��decl��equations_eqn_3���������lXl�������equations_eqn_3#�PInfo��?ATTR�����EqnL��decl��equations_eqn_4�������������Q���m���������equations_eqn_4#�PInfo��?ATTR�����EqnL��decl��_sunfold�����PInfo��?decl}lift_or_get_comm�f��his_commutative�����������!is_commutativemk��ab��G�����:�����,�*����:�,��-�v�.���Q���Axz|�Cx��C�/�xa����e_1���������e_2���w��{��������������{����Q�A����Q�A��l��Jxeq_self_iff_true������v�:�6�C�,�}�xz|��x����?x���:�}�}��������p�����������������w��{��������������{����Q�~�}�������}���������x�t������G��������n��u����v�:���~xz|��x�����x�����������}���~�}����������v����u������xz|��x��������x����u���	�	���p���������������������w�{����������{���Q���	���n����	� �p���u�-�	�	(val�n���|e_1
���  �������	1����comm�n����n������	x�t�n����PInfo��E	prt��VMR��VMC�������decl��equations_eqn_1��������!�4�#���	e��������!���#�	m�PInfo��E	ATTR�����EqnL��SEqnL��ATTR�����class������decl}lift_or_get_assoc�f��his_associative�	x����������	zis_associativemk��ab�c����������������������������	������������	����	��	�v�:�,�6���6�	�xz|�	�x��	��hx���	���	.��	��	��������n�|����n��|��e_1
��|�����������e_2�������e_3���&�	����	�����	��|��	���	��	��	����	;��	���	���	���	��	����|�	��nQ�� �	���	���j�����k�	��	���	��	��	���	����k�	���	��	���hx�t������v��	����	��	���xz|�
x��
��x�
#������
%�	#�
���	/�
�
�����	����	���
�����������������	�������
�	��	��	��	����	�����
;�|��
9�	��
<�
?���	;��	���	���	���	��
I���|�
;�nQ�� �	���	����j�n������!�����n��
���	/�
�
���
f�����!���
���
s�
s�	Q��
%x�	X�����G�n���p�����|�n�
������
��
���v����
���	�����xz|�
�x��
��
%x�
��
)�
%�	#�
����	/�
��
����
f�
���
s�����
}���n��
����	/�
��
���
~�
����
��
s�
��
�����nv���
����
��
��
�xz|�
�x��
����x�
�x�
������
��
��
���������e_1�P������e_2��w��{�������������{����Q�
��
��	.���
��
��
����	����
2��
�����������������
������	���
�	��	��	��	����	������|���
N�����	;��	���
I��	���
M�%���|��nQ�n�n �	��n�
������|�n�
��
���
��	&�|�n�
��
��	�
��
��
��
��B������
��
��Q�F�
���|�
��
���
�x�t�|�
������
����p���
��
��
��
��
����p���
��
����
��
�v����
������	�xz|��x����
%x���
)�
%�	#�����	/���
����
f�
����
������
}�
������	/���
����
f�����
n�	����
j�
��
��
�����nv�����
��
��
��
�xz|��x����
�x���
��
�����
��	���
��
��B�������|�n�
��
��K�Q���
��	���
��
��B����������
��F�Q�g�n����n�G�|�����������|������������v���
��
����
��
��
���xz|�x���
�x��
��
����
��	��
��
����
��B�
��
��Q��������
���
��	��
��
�����
����Q�g�n����|v���������@xz|�Ex��E�	8�|�|�Ox�K�����O�T�Q��������������������	��w�	�{�
6��
6����	���	�{���
6Q�A�T�	.���A���|�L�T�s�����t�@�w���
2�����
���������������	���	���	���
�	��	��
M�
M���
I������|����*�������	;��
I��%��
M��)�����|���nQ�|�| �
2�|���z�	&���|�@�@�4�@���t��������e_1
���	;�������v�O��assoc���|�n�D�T�r�D�����N�T�������4���C�������N����O�O��Qx�t���O��PInfo��I	prt��VMR��VMC�������decl��equations_eqn_1��������	z�4�	|���
	��������	z���	|�
�PInfo��I	ATTR�����EqnL��SEqnL��ATTR�����class������decl}lift_or_get_idem�f��his_idempotent�
����������
is_idempotentmk��a�GQ����.�?v���������xz|�
2x��
2������x������e_1�:���p����e_2�	
�w��{��������������{����Q�
0���jQ����������
:x�t������Qv�.�?�1�1�1xz|�
mx��
m
�x�
s�.�1�1�
v�g�
k�1�	.��
k�0�)�1�	&�Q������e_1���	;�|�����
���idempotent�Q�1�1�t�1����
vx�t���PInfo��M	prt��VMR��VMC�������decl��equations_eqn_1��������
�4�
 ���
���������
���
 �
��PInfo��M	ATTR�����EqnL��SEqnL��ATTR�����class������decl}lift_or_get_is_left_id�f��is_left_id��C�����is_left_idmk��Ca�H�����
/v��XXxz|�
�x��
���Xx�����e_1�.������pe_2���w��{��������������{����Q�
�X�jXX��X��
�x�tX���v���
/�m�mxz|�x���Yx��]�m��
U��m��Q�m�m���m�i��x�tQ��PInfo��Q	prt��VMR��VMC�����decl��equations_eqn_1������4�
����8��������
��>�PInfo��Q	ATTR�����EqnL��SEqnL��ATTR�����class������decl}lift_or_get_is_right_id�f��is_right_id��C�����is_right_idmk��Ca�H��������
��v����m���mxz|�\x��\�x�b���
U�Z�m��Q�m�m�&�)�0��PInfo��U	prt��VMR��VMC�����decl��equations_eqn_1������4�J���z��������J���PInfo�U	ATTR����EqnL�SEqnL��ATTR�����class������PInfo}relY
indu_2�β�r��{C��option+{e_1aQbQ���Q�v}some+�e_2�}none+Q������n���|�n���������������some���������	�������Q�s����none���������X���������������������	�����������������������decl�drec�������������h���Q{��Q�	Q��������n������/0�Q������
��������������������������
���rec/0���|�n�����������������������	�����_����������������Q_�����|�nB�����|��PInfo�Y
ATTR�[���auxrec�prt�decl�drec_on����������������Q�
�����n�	�n��
��n�������������|�������n���|�n���Q��������������3�
�5��D��K�
����	����_��Q_�#�Q�PInfo�Y
ATTR�[���auxrec�prt�decl�dcases_on��W�n�PInfo�Y
ATTR�[���auxrec�prt�decl�rec_on���������������3�
�5���n�	�n��
��:��G�M��������������3�
�5��q��G����Q�PInfo�Y
ATTR�[���auxrec�prt�decl�cases_on��z��������������3�
�5��q��G�{����	�������Q�PInfo�Y
ATTR�[���auxrec�prt�gind���prt�recnspace�decl}traverse_main_aux_param_0uvF��� _inst_1applicative13α�β��f���option5�option1�!���"���$���%���&������45Q���Q�n��Q�4��13�applicativeto_has_pure13����}none1�Q����functormap13�n�)to_functor13�n�Q��}some1Q�k�PInfo�]VMR�_lambda_1VMR�VMC�0]��VMC�]��&�%�$�"�!		
�0

decl�equations_eqn_1_aux_param_0�� �!���"���$���%���&���4�����3�� �Q}none7������Q�����!���"���$���%���&���4���4�����PInfo�2]ATTR����2EqnL�2decl�equations_eqn_2_aux_param_0�� �!���"���$���%���&��x��������Q}some�7Q��������������!���"���$���%���&���8����������PInfo�6]ATTR����6EqnL�6decl}traverse�� u_1�!���"���$�%���&������!���"���$�%���&����;89�Q�PInfo�:]prt�:VMR�:VMC�:]�&�%�$�"�!�decl�:equations_eqn_1�� �;�!���"���$�%���&�����:�� �;�QX���!���"���$�%���&���equations_eqn_1><=�Q�PInfo�=]ATTR����=EqnL�=decl�:equations_eqn_2�� �;�!���"���$�%���&���8���5��Q�m��!���"���$�%���&���equations_eqn_2><=�Q�PInfo�A]ATTR����AEqnL�Adecl�:_sunfold�� �;�)�!���"���$�%���&����9;Q���������PInfo�D]EndFile