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�Ϯ+�init�N@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_assocdeclprodforallu_1u_2αβ�paprodiffxa
b

prodmk����introhab
h_x
_aprodcases_on!�!fst!snd!id_rhs!�PInfo~ATTRsimp��~declprodexists���p	Existsx
�
a
�
b
���R[_xR_aO,�,
Existsdcases_on.�.�O.iT!�!V!�!?w.hh/;!�;!�!T�{V{�{{
	w_fst;w_snd;�;{98T���V����~�intro��
�{�{{�_x[_aT�V�%��V�;!�T�O3�34����!�!!<
�n�O9;��;h_w!h_h�8O{9��9�����PInfo�ATTR����ATTR���prodmapdeclprodmap_fst�u_3u_4��γ�δ�f�
g�p3eq
prodfst	�map	;!

�fst;!�����������3w�y�!�!�
9!;
�9;p_fst;p_snd;8�;�;!�
{;9!��?rfl
;�?�PInfo�ATTR����decl�map_snd���������f�g�p3��snd	��snd;!�����������3w�y�Q�S!�*
�X9;p_fst;p_snd;8�Q!�S;!�>�urfl!�u�PInfo�ATTR����decl�map_fst'���������f�g��	a3functioncomp	3�	
�
�
!
�
3!�!����������funext
3x3�����map_fst	!
�PInfo�ATTR����decl�map_snd'���������f�g���3�	3��
�S
���3
�X!����������funext3�3�����map_snd	!
�PInfo�ATTR����decl�mkinj_iff���a₁a₂
b₁
b₂	�3##
and�!
�����
�
����prodmkinj!
a�of_eq_true_x�!����<!
�eq_true_intro�eqrec+���eq_of_heq+y�#
�#�!snd';e_0��9�{
�{heq+~��{�4�6heqrefl+�{�{9

���!
eq_true_of_and_eq_true_right��;�Q����V�Q��&��#��;fst'9e_0��{��
���2���~��n��>�{�4�C
��Veqtrans�V�Ztrueeqsymm,�Z�Vand_eq_of_eq_true_right�V�Q�]�\�PInfo�!ATTR����decl�ext_iff���pq	��,�����
����
�X
������eqmpr��	��
����������������������ideq,�����!,_a,��	��.
�����
�����X
��	����������������eqrefl,�����,���mketa
����	�����������������������������_a,��	����������������������	����#���'�������������	���������B�,�_a��	��������#���K�'���K	�S�����propext����mkinj_iff
��������iffrefl���PInfo�$decl�extu_1u_2αβpqh₁��h₂����
��
���������mpr�v��������
������
�ext_iff�
�!
andintro�����PInfo�	'decl�map_def���������f�g��	a3����p3�	��\����������funext01	3�3������p3�ext	�����;!
��;!
�PInfo�*decl�id_prod���p��������fst�sndid���funext@�����������_x��_a���

�%��

���������������
�8�������������rfl@���PInfo�-decl�swap�����
��p�
�X
�
�PInfo�'1VMR�'VMC�'1�(��

doc�'Swap the factors of a product. `swap (a, b) = (b, a)`decl�'equations_eqn_1������,�'FD�:����FDDF�,�A�PInfo�*1ATTR_refl_lemma���*EqnL�*SEqnL�'decl�swap_swap���x���swap
�?
���-/
�-���L
�?
x_fst
x_snd
8���L�?�jrfl.�j�PInfo�,3ATTR����,decl�fst_swap���p���fst
�Q�4���3rfl�|�PInfo�26ATTR�+���2ATTR����2decl�snd_swap���p��
�snd
�Q�8���7�
���PInfo�68ATTR�+���6ATTR����6decl�swap_prod_mk���ab��)
�]���/
���:�;rflV�����PInfo�9:ATTR�+���9ATTR����9decl�swap_swap_eq��������)�L�Aid��funexte������swap_swap�PInfo�=<ATTR����=decl�swap_left_inverse���functionleft_inverse���A�����swap_swap�PInfo�A?ATTR����Adecl�swap_right_inverse���functionright_inverse���A�������PInfo�EBATTR����Edecl�eq_iff_fst_eq_snd_eq�����pq/
�I,��p_fstp_snd1�J3	��y�
���T�����O�Z���[
q_fst!q_snd!8	�<
>����9�.���.>��;�k���k>���
�������
�����
	�����
���a�Oe_1��b�Qe_2�congrr	!	
congr_argrr�Q!	����^����a9;
�	�����^���iff_self�trivial�PInfo�HEdecl�lex_def���r��
s�^p,q.	prodlex!
or���������h�j
�������X�^�Y�^�Z,�[.�e�uh�eprodlexdcases_on;!t_1yt_2��_�_{9;!H_1���@!
H_2���4!
H_3��_�~�{9;!��
�g~��{��9������������X���{��9
h_a₁;h_b₁;h_a₂{h_b₂{h_h{�e���m9��!������!�Z���_�_
���~{�f���������!�g���_������
~������{9��;!�aleft��������{9;!�g���������������������X�������_�_���~���9�f������{�����!�����[���_���g���_�������������{�+�(9;�����������{9;!�g������=��~��?
�����=�D�F���X�=���C�N
�_�_���������9;���g�����������g�����*���0����e�g����*��0�������r�����r�g������9��{;��a�ne_1�b�pe_2�� �g!�g
�,�g�h���^���9��iff_true_intro��!�q�����^����true_or��P�������{���{��;h_a;h_b₁;h_b₂9h_h;�e��;�
�!�m���Z�m�_�9�f��;�g���\
��_�]!�aright�������9;!�g���������~�������������X������~�_����;�f����9���!����[��_�_�g��������;����������{9;!�g�f��
���j��n�
�_����!���g�����������g��������������(�*����������������5�����5�g�}{�������+�<���<�4�����4���������n�ne_1��p�pe_2�� ��!��
�,���.���^��{{��eq_self_iff_true��{�3���^��9;�����j!�^�I��and_self���^�>��or_true�<�P{��{��9��m9��!��y
����_;!
h�u_ay_a�_a�g;�{9�����f����!�X{9��/�{��@���g{�~���
����~����9�X~���
��
�������g���~������������{�X�~���/����������g�������
������������~�X���������\��fst_1��snd_1�����g���������������������X�������ordcases_on������!����
�����&�*�����%���)���g�+�4�&�(;!�(
h_1�+8�=�6;!
h_1�4�dcases_on����9���<����9��<�����N�S�_�=�������A9;�Ah_1_left�Nh_1_right���N�\�N�_8�_�=�����h�={9�n!��e���h��h�=�p�x�s�_�h�=���}�h�{��;!���v{!�i�}�c�}h�=�X�}���}~�����;�_���}�h�����~��9�����X�}�h������!�����}�h�=~�;;
�PInfo�WHdecl�lexdecidable_proof_1���r�^s�^p,q.	�u�e�����^���^��,��.�symm�e�u�lex_def!
�PInfo��Q	decl�����_inst_1decidable_eq_inst_2decidable_eq�������	_inst_3decidable_rel!_inst_4decidable_rel!decidable_rel��_9;
�������������	���	���	���	������decidable_of_decidable_of_iff�g!��{�	������	�	�X�{�	#�_�{!ordecidable�	�	(�	�	anddecidable�	 �	'9�	�	
�	$�	&����{!�PInfo��Q	prt��VMR��
VMC��
#Q	
������������������

_c_1
_c_2


��
��decidable_of_decidable_of_iffdecl��equations_eqn_1��������������	���	���	���	�x�	
���9;!
�	L�������������	���	���	���	��|�	
�	_�PInfo��Q	ATTR�+����EqnL��SEqnL��ATTRinstance����classdecidable����declfunctioninjective_prod���������f�g�hffunctioninjective
!hg��!��	���!p���;!�������������������	x���	|_x�_a������@a₂�4�eq����{���m��~�{��9���	���
����8_x�m_a����	����~��������~������	�������m����/���������	�������������������~����	��������%������8��	����������	��������������%�	����������9�(
���	��������!��Q��~~���;
����!�����	��
imp_congr_eq�	��	��	��
����!�����^�	��	��	��	��	��	��
�
�	�����	��	��	��
�^�
�
�a����!_x�
_a�������;��
�Q���	��	��J�����9���Q���
;�
=�����
H�
L�������=9left�
Hright�Q���
E�
G8�����}�!���h{���
^�
b���!��{�PInfo��ZEndFile