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�:���initdatanatcastalgebragroupalgebrafieldtacticwlog�J�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}traversePInfochar_zeroindlu_1α�_inst_1add_monoid_inst_2has_oneC�e_1cast_injectivefunctioninjectivenatcoe	coe_to_lift	coe_base	natcast_coeadd_monoidto_has_zeroadd_semigroupto_has_add�to_add_semigroupn��������mk����
 *�����)�
+++++++ +�nspace�prt�recgind��decl�cast_injective����c*(����m
Proj����(�rec�(�(�PInfo�ATTRreducibility���proj��decl�rec_on�������M��c�����M��rec��+�PInfo�ATTR����auxrec�prt�auxrec�rec_ondecl�cases_on�����PInfo�ATTR����auxrec�decl�drec������hm��(��+�.��������.��*�+�
������+� �+_*�+�PInfo�ATTR����auxrec�prt�decl�drec_on��������M��c��+������M�����_���PInfo�ATTR����auxrec�prt�decl�dcases_on�����PInfo�ATTR����auxrec�prt�doc�Typeclass for monoids with characteristic zero.
 (This is usually stated on fields but it makes sense for any additive monoid with 1.)ATTRclass���class�declchar_zero_of_inj_zerou_1α_inst_1_inst_2add_left_cancelabc+aeq��has_addadd
�����Hn	��+bhas_zerozero
+X�	�	nathas_zero.��������m	n	h�������+� ����	hleorhas_lele	nathas_le�"�drec�"�"���+�.��
�2�2�2�2�2	�2 �2�9�E+����+�	�	��#��
�P�P�P�P�P�P �P�W�cExistsdcases_on	k	�has_addadd	nathas_add+_xExists	�r�J+natledestk	e�qeqmpr�+����m+id�5����eqrec	�_a	�������eqrefl5����eqsymm	���������������������_a	�����m�����������W�P���������� �����������������������������������+���������������
����_a���������� ���������������������������������������������
����������������������������_a��������������#����&���������natcast_add
������+��������������?����_a	���������&�����&������?�>�������?�V����_a���������&�\���?��add_zero
��������V�>�������V�n����_a�����\�"�_���V��eqrefl���������+�����������k�	�	natadd_monoid+���	��_a	�������������+�	��+��	++��.��Iordcases_onnot��Z�Z�Z�Z�Z�Z�2�9�Z �Z�2�����this��������not_or_of_imp����classicalprop_decidable���	�	��O���������������P�W�� ���P���~�	��q���������P���"�������#���&������+���������������"��������� ���������������%�'������(�0�,���������"���������
������E����������%��(�L�,��O����C�;�C��3������+��E���"�
�����E�g�D�	����%���O��%�O���E���g�f������g�}��
�������&�O�����g��f�������}�f�"�����}������������K�����}�"����"������absurd��W�W�W�W�W�W�Z�2�W �W�Z���+�����������eqtrans
5������������rfl
5��iffto_eq����iffintro������W������������5����������������+��������������������������+����+�������le_total	�linear_order�PInfo�decladd_groupchar_zero_of_inj_zerou_1α_inst_1add_group�_inst_2Hn	��add_groupto_add_monoid!�@��A�K�@���<���Pchar_zero_of_inj_zero�@add_left_canceladd_groupto_left_cancel_add_semigroup�PInfo��declordered_cancel_comm_monoidchar_zero_of_inj_zerou_1α_inst_1ordered_cancel_comm_monoid�_inst_2Hn	��=add_comm_monoidto_add_monoidordered_comm_monoidto_add_comm_monoidordered_cancel_comm_monoidto_ordered_comm_monoid!�q�L�r�K�q���h�����X�q�\ordered_cancel_comm_monoidto_add_left_cancel_semigroup�PInfo�"decllinear_ordered_semiringto_char_zerou_1α_inst_1linear_ordered_semiring� *�i�k�mordered_semiringto_ordered_cancel_comm_monoidlinear_ordered_semiringto_ordered_semiringmonoidto_has_onesemiringto_monoid�$to_semiring���!�"��ordered_cancel_comm_monoidchar_zero_of_inj_zero����n	h�:;<=>�i�k�m������������BC�����nateq_zero_of_le_zero�mp�preorderto_has_lepartial_orderto_preorder�to_partial_order�n����mul_zero_classto_has_zero�*to_mul_zero_class����������distribto_has_add�*to_distrib������*�natcast_le�le_of_eq������PInfo�(	prt�VMR�VMC��"�!decl�equations_eqn_1� �!�"��eq���� ��!�"�������PInfo�C(	ATTR_refl_lemma���CEqnL�CSEqnL�ATTRinstanced�classchar_zero�ddeclnatcast_injectiveu_1α_inst_1_inst_2_inst_3m(�K�L�M�Nmchar_zerocast_injective�J�PInfo�I1decl�Hcast_inj�J�K�L�M�Nmm	n	������K�L�M�Nm�R	�S	functioninjectiveeq_iff	���Hcast_injective�+�PInfo�Q4ATTRsimp���QATTRelim_cast���Qunitstardecl�Hcast_eq_zero�J�K�L�M�Nmn	�3����K�L�M�Nm�]	��W�3�b��V�����W�a��+�_a+���3�5�����3�5����W�^�+�^��Hcast_zero+X^��a�3�V�V�����a����5�__a5���3�5����3����a�Vpropext�_�V�Hcast_inj+�iffrefl�V�PInfo�\7ATTR�X���\ATTR�Y���\�Sdecl�Hcast_ne_zero�J�K�L�M�Nmn	�3ne+���g	��K�L�M�Nm�f	not_congr��V�Hcast_eq_zero+�PInfo�e:ATTR�X���eATTR�Y���e�Sdecltwo_ne_zero'u_1α_inst_1_inst_2_inst_3m��bit0�k#has_oneone�L�l�m�n�om
this��'�p	�l�r	nathas_one��
eqmp���+^b����+�����������f��_a+�������������i������i������natcast_one+����b������fbnatsucc��_a+��������i���i�����natcast_succ+X^��AnnotcheckpointAnnothave�mpr�������natcast_ne_zero��of_as_true�7�gdecidable	a	b	�decidable_eq���trivial�PInfo�j?ATTRfield_simps���j�Sdecladd_self_eq_zerou_1α_inst_1domain��_inst_2���>add_comm_groupto_add_groupringto_add_comm_groupdomainto_ringzero_ne_one_classto_has_one��to_zero_ne_one_classa�3�=�����to_distrib�\�Lno_zero_divisorsto_has_zero��to_no_zero_divisors�=�{�����V���i������3����������a5��5e_1��b5��5e_2��congr

55�3��3+congr_arg

5��55�+�3�|����|�false������=���p������ringto_semiring�n�{������=has_mulmul�9to_has_mul�������{��a��+e_1�a���e_2��<��
�95��9���+��
�9���95�+���s����������������j��two_mul���{�{��{���=����to_has_mul�y���{��mul_eq_zero��a5��5e_1��b5��5e_2�������+����������=��!�?�X�Z�n���L�,���l�m�n�omiff_false_intro�=����two_ne_zero'�,������������false_or����M����PInfo��Fdeclbit0_eq_zero�������V���ia�3�=���{������V���i��add_self_eq_zero�PInfo��Ideclhalf_add_selfu_1α_inst_1division_ring��_inst_2���W�Y�[�]division_ringto_domain�d�f�ya�=has_divdivdivision_ring_has_div'�j���l�m�w�������c�e�������v����������=�����������������������������������������j��_a�����+��+����+�k+�\+�w+��+�����c+�e+�������������������mul_two������~������������division_ring_has_div��������division_ringto_ring��!�?�(�)�����_a�������+��+��+��+��������+�����+��+��������mul_div_cancel��<������PInfo��OATTR�X����decladd_halves'�������v����a�=�������=�����v��������A�������A�����?_a����������M�"���A�������?add_div����������������_a���"��half_add_self�5�PInfo��RATTR�X����declsub_half�������v����a�=has_subsubadd_group_has_sub���=�=�����v����������~�j��=�=������������_a5����|+�~+�X+�Z+���M�M������������sub_eq_iff_eq_add���=�=��������������K_a�����[\�>+���M�M������add_halves'�5�PInfo��Udeclhalf_sub�������v����a�=���=has_negneg�to_has_neg���=�����v����������=������������������_a������M��+��+���M�!��������������neg_sub���=����=�����������	
����_a�������������������=sub_half����PInfo��XEndFile