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��}inittacticbasicdatanatbasicdatanatprimealgebragroup_power��Oexport_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}traversedeclpnatsubtypenatnhas_ltltnathas_lthas_zerozeronathas_zero�PInfo�
VMR�VMC�doc�`ℕ+` is the type of positive natural numbers. It is defined as a subtype,
 and the VM representation of `ℕ+` is the same as `ℕ` because the proof
 is not stored.decl�equations_eqn_1eq�eqrefl�PInfo�
ATTR_refl_lemma���EqnL�SEqnL�TKℕ+�NOTAℕ+ℕ+��declcoe_pnat_nathas_coehas_coemksubtypeval�PInfo�	prt�VMR�VMC�	c��ltnatzero
decl�equations_eqn_1��"�+�PInfo�	ATTR����EqnL�SEqnL�ATTRinstance���class����declpnathas_reprhas_reprhas_reprmknreprnathas_repr!
�PInfo�	prt�nspace�VMR�VMC�	�natreprdecl�equations_eqn_1)2�<.2>�PInfo�	ATTR����EqnL�SEqnL�ATTR����class����declnatto_pnatnhauto_paramnamemk_string
Strexact_dec_trivialE
Strtacticnameanonymous��Msubtypemk
�PInfo�VMR�VMC���doc�Convert a natural number to a positive natural number. The
 positivity assumption is inferred by `dec_trivial`.decl�equations_eqn_1��M)�S
U��M.[�PInfo�ATTR����EqnL�SEqnL�decl�succ_pnatn�R�succ
�succ_pos
�PInfo�VMR�VMC��natsuccdoc�Write a successor as an element of `ℕ+`.decl�equations_eqn_1�X�
j�`m�PInfo�ATTR����EqnL�SEqnL�decl�succ_pnat_coen)coecoe_to_liftcoe_base+mf�rfl��PInfo�ATTR����ATTRsimp���decl�succ_pnat_injnmaXlSmsS��h�	h'sl��congr_arg��
natsucc_inj�
�PInfo�decl�to_pnat'dnl�pred
�PInfo�#VMR�VMC�#��pred_main�doc�Convert a natural number to a pnat. `n+1` is mapped to itself,
 and `0` becomes `1`.decl�equations_eqn_1�X�
��`��PInfo�#ATTR����EqnL�SEqnL�decl�to_pnat'_coens�ite�decidable_lt

has_oneonenathas_one��cases_on��
id_rhss������s�has_addaddnathas_add
�������eqmpr���id)��eqrec�f�f��_a�s��S��������
.���if_pos��i��.��PInfo�%ATTR����decl�primescoe_pnat_proof_1pnatprimes p�prime

���pos�!�property�
�PInfo�+	decl�����Rt�w�z�natprimescoe_nat
�

�PInfo�+	prt�VMR�VMC�+	��decl�equations_eqn_1)�-��@.�-�B�PInfo�+	ATTR����EqnL�SEqnL�ATTR����classhas_coe���decl�coe_pnat_natp�s�0�2�4�B
�:����N�PInfo��,ATTR�����decl�coe_pnat_injp�q��X�LS�M)��S����h�Vsubtypeeqx��Seqmps�9��T�e�9S��f_a�s�9��L��n
��g�i�coe_pnat_natS�cs�p�f�g��p_a�s�L��ps
�p���d�z���o�T!
�PInfo�.declpnatdecidable_eqdecidable_eqabsubtypedecidable_eqxab�decidable_eqS
S
�PInfo�B	prt�VMR�VMC�B	��natdecidable_eq�doc�We now define a long list of structures on ℕ+ induced by
similar structures on ℕ. Most of these behave in a completely
obvious way, but there are a few things to be said about
subtraction, division and powers.decl�equations_eqn_1)�����.�����PInfo�B	ATTR����EqnL�SEqnL�ATTR����classdecidable���decl�
decidable_linear_orderdecidable_linear_ordersubtypedecidable_linear_orderdecidable_linear_ordered_semiringto_decidable_linear_ordernatdecidable_linear_ordered_semiring	�PInfo�D	prt�VMR�VMC�D	�$�"subtypedecidable_linear_orderdecl�equations_eqn_1)�����.�����PInfo�(D	ATTR����(EqnL�(SEqnL�ATTR����class����decl�
posn
�*�'
�PInfo�)GATTR����)decl�
eqmn�sS��X�S�,�-�^S
�PInfo�+Idecl�
mk_coenhstwzcoe_subtypeUS�/�0����PInfo�.KATTR����.ATTR����.decl�
add_comm_semigroup_proof_1abpreorderto_has_ltpartial_orderto_preorderordered_cancel_comm_monoidto_partial_orderordered_semiringto_ordered_cancel_comm_monoid�#ordered_semiring	add_monoidto_has_zeroadd_comm_monoidto_add_monoid�:to_add_comm_monoid���add_semigroupto_has_add�?to_add_semigroup�������4�5add_pos�������posS�
�PInfo�3M	decl�2_proof_2abc)���
�has_addmk�4�5R�������)�S
�*�)S
�J�K�L�^���-�1add_assoc�#add_semigroup������PInfo�IM	decl�2_proof_3ab���add_semigroupmk�'�DS
�K
S�R�S�6�M�Padd_comm�#add_comm_semigroup�����PInfo�QM	decl�2add_comm_semigroupadd_comm_semigroupmk�4�5�$�3S
�I�Q�PInfo�2M	prt�2VMR�2VMC�2M	�5�4natadddecl�2equations_eqn_1)�`�2�m.�`�o�PInfo�^M	ATTR����^EqnL�^SEqnL�2ATTR����2class�X�2��decl�
add_coemns��E�Yto_add_semigroup�oS
�#�`�a��{�PInfo�_RATTR����_ATTR����_decl�
coe_add_homis_add_hom�w�is_add_hommk�w��
add_coe�PInfo�cS	prt�cVMR�cVMC�cdecl�cequations_eqn_1����c��������PInfo�iS	ATTR����iEqnL�iSEqnL�cATTR����cclass�d�c��decl�
add_left_cancel_semigroup_proof_1abchX��E�G�Xadd�o�Xadd_assoc�o�S��
���l�m�n�o���
eq�Siffmps��add_left_cancel_semigroupto_add_semigroup�:to_add_left_cancel_semigroup����=����s�=��add_left_inj�����=���cs����=���S��������x�S_a�s����������
��������S�cs�����������_a�s����������������������
�PInfo�kU	decl�jadd_left_cancel_semigroupadd_left_cancel_semigroupmk�����k�PInfo�jU	prt�jVMR�jVMC�jU	�5�4�\decl�jequations_eqn_1)��j�.���PInfo�U	ATTR����EqnL�SEqnL�jATTR����jclass�{�j��decl�
add_right_cancel_semigroup_proof_1abch����
SX�S���������!���S��s��add_right_cancel_semigroupto_add_semigroup�:to_add_right_cancel_semigroup�����=�1���=s����add_right_inj�.�=�����c����S����"�=��y�_a����������F�H��S��c���E�F��_a����O���O��\�����D
�PInfo��\	decl��add_right_cancel_semigroupadd_right_cancel_semigroupmk�������PInfo��\	prt��VMR��VMC��\	�5�4�\decl��equations_eqn_1)�v���|.�v�~�PInfo��\	ATTR�����EqnL��SEqnL��ATTR�����class������decl�
ne_zeronne����ne_of_gt��ordered_comm_monoidto_partial_orderordered_cancel_comm_monoidto_ordered_comm_monoid�������PInfo��cATTR�����decl�
to_pnat'_coen�s�SS���#succ_pred_eq_of_pos
�PInfo��eATTR�����decl�
coe_to_pnat'nX���
������
�
to_pnat'_coe����PInfo��gATTR�����decl�
comm_monoid_proof_1mngt��has_mulmulmul_zero_classto_has_mulsemiringto_mul_zero_class�<to_semiring��!S9	��to_has_zero������mul_pos����9��S���PInfo��i	decl��_proof_2abc���has_mulmk����R���has_mul��9�����S
����S
�������6����mul_assoc�#semigroup!���9�PInfo��i	decl��_proof_3a���semigroupto_has_mul��mk�����has_onemkl

���6�
one_mul�#monoid9�PInfo��i	decl��_proof_4a���
�
���6�
mul_one�9�PInfo��i	decl��_proof_5ab���S
�S�����6��!mul_comm�#comm_semigroup��9�PInfo��i	decl��comm_monoidcomm_monoidmk��������S
����������PInfo��i	prt��VMR��VMC��i	natmul�decl��equations_eqn_1)�1���C.�1�E�PInfo��i	ATTR�����EqnL��SEqnL��ATTR�����class������decl�
inhabitedinhabitedinhabitedmk��monoidto_has_one��to_monoid�E�PInfo��q	prt��VMR��VMC��q	�decl��equations_eqn_1)�K���U.�K�W�PInfo��q	ATTR�����EqnL��SEqnL��ATTR�����class������decl�
one_coes�T���\�PInfo��sATTR�����ATTR�����decl�
mul_coemns������to_semigroup�RS
������������g�PInfo��tATTR�����ATTR�����decl�
coe_mul_homis_monoid_hom�R�is_monoid_hommk�R�is_mul_hommk�c���`��
mul_coe�
one_coe
�PInfo��u	prt��VMR��VMC��decl��equations_eqn_1���v�������v���PInfo��u	ATTR�����EqnL��SEqnL��ATTR�����class������decl�
coe_bit0asbit0�E�*�~
�����������PInfo��xATTR�����ATTR�����decl�
coe_bit1asbit1�S��
������������PInfo��yATTR�����ATTR�����decl�
pow_coemnshas_powpowmonoidhas_pow�RS
���has_pow��
�����rec��s���
���=
���$nih���s���eS������������S�����������_a�s����e���������
�����natpow_succ��S���s�d���S�����������_a����������s��������pow_succ�R�S��s������������#���_a�s�d������������!�������#s����comm_semigroupto_semigroup�)� �������#�E��A��� _a�s�����*��0��#�C�*��� ��Es�A���������E�b�� _a�s�A�N���s�A
�����E��
��`
�PInfo��{ATTR�����decl�
left_cancel_semigroup_proof_1abchX��������mul�E��mul_assoc�E�S��
������������s��=�����natmul_left_inj���=�����������S
�PInfo�	decl�left_cancel_semigroupleft_cancel_semigroupmk������PInfo�	prt�VMR�VMC�	������decl�equations_eqn_1)�����.�����PInfo�	ATTR����EqnL�SEqnL�ATTR����class����decl�
right_cancel_semigroup_proof_1abch����
S�#�������)�����i�=�:natmul_right_inj�=����������S�
�PInfo��	decl�right_cancel_semigroupright_cancel_semigroupmk������PInfo��	prt�VMR�VMC��	������decl�equations_eqn_1)�����.�����PInfo��	ATTR����EqnL�SEqnL�ATTR����class����decl�
distrib_proof_1abcX���������!��S
����S��
�� �!������mul_add�#distrib�=�����PInfo��	decl�_proof_2abcX�����S
������S
�%�&�'���
�add_mul��=�����PInfo�$�	decl�distribdistribmk������$�PInfo��	prt�VMR�VMC��	���\decl�equations_eqn_1)�$��,.�$�.�PInfo�-�	ATTR����-EqnL�-SEqnL�ATTR����class�)���decl�
has_subhas_subhas_submkab�has_subsub�has_sub�����PInfo�.�	prt�.VMR�.VMC�.�	�3�2natsub�doc�.Subtraction a - b is defined in the obvious way when
 a > b, and by a - b = 1 if a ≤ b.decl�.equations_eqn_1)�4�.�@.�4�B�PInfo�:�	ATTR����:EqnL�:SEqnL�.ATTR����.class�/�.��decl�
sub_coeabs�7�BS
�����latticesemilattice_infto_partial_order�>latticeto_semilattice_inf�>lattice_of_decidable_linear_order��
Shas_ltltdecidable��
S�<��<�=��hdite���������s�=��������q�<�h�n�s��:�=����u�=������=�������������a�Ie_1sS
��e_2��congr�ss���S�������s�
����������������
�������natsub_pos_of_lt���=
�Hnot�n�������������if_neg����
�����������������_a�s��:���=������iffmprs��has_lele�has_le�=��natsub_eq_zero_iff_le�=��le_of_not_gt�#linear_order�=��
���PInfo�;�decl�
add_sub_of_ltab��[S
X��*to_has_add�.��I�S�\�]h����S�s���s��=������!�'��x��_a�s���H���=���=��!�%������'s�#��[�S�a�S�;�=������'�Q��$_a�s���2�=s��
�=��'�N�
sub_coeS���Qs�#�L�����Q�n��N_a�s����[���a�������=�^��Q�L��F�I
�L�natadd_sub_of_le�=��le_of_lt���=��
�PInfo�[�decl�
mod_div_aux_main���prod�������S���prodmk��a_1����R�iS�PInfo�h�VMR�hVMC�h������\decl�hequations_eqn_1kq)���hS
��S��o�p.��id_delta�����PInfo�n�ATTR����nEqnL�ndecl�hequations_eqn_2krq������
��R�hS
�t�u�v�������PInfo�s�ATTR����sEqnL�sdecl�
mod_div_aux�����PInfo�w�VMR�wVMC�w��hdoc�wWe define m % k and m / k in the same way as for nat
 except that when m = n * k we take m % k = k and
 m / k = n - 1.  This ensures that m % k is always positive
 and m = (m % k) + k * (m / k) in all cases.  Later we
 define a function div_exact which gives the usual m / k
 in the case where k divides m.decl�wequations_eqn_1�o�p���wS
���hequations_eqn_1�PInfo�y�ATTR����yEqnL�ydecl�wequations_eqn_2�t�u�v������
���hequations_eqn_2�PInfo�}�ATTR����}EqnL�}decl�w_sunfold�����PInfo���decl�
mod_div_aux_speckrqh��and����s��ifst����S��isnd����S����������������������s�������S�����������������s$����������,��s�����$S���1��4�$�9S������,�+�s�������I��falseelim�T
andintros�Z��]�������,sf�s����2��9��j�Q�9���t�s��8�9���ss�w�?�s���|������_a�s���������Q����s����
����|Snatpred_succS�����Q��?�8��������9��_a�s����������Q
�����natmul_succ�8S�����������������#add_monoid	������_a����Q�������
�����zero_add�������s���t�X�?�8������������8�?_a���������������Y�8�?���
���������f��s�����
Annotinnaccessible
�Annot��S��	
�Annot������	�	!��	!
�PInfo���decl�
mod_divmk��������
has_modmodnathas_mod����has_divdiv��has_div�����PInfo���VMR��VMC��	�����natdivnatmod�hdecl��equations_eqn_1��������S
�	?�������	D�PInfo���ATTR�����EqnL��SEqnL��decl�
modmk�������	D�PInfo���VMR��VMC���������
decl��equations_eqn_1����X��S
�	N����`�	S�PInfo���ATTR�����EqnL��SEqnL��decl�
divmk������	D�PInfo���VMR��VMC���������
decl��equations_eqn_1����s��S
�	]������	b�PInfo���ATTR�����EqnL��SEqnL��decl�
mod_add_divmk����	S�����	b����	h₀s��	7�	l�	>��natmod_add_div����eqsymm������	5�=���	<�=���i��	��=��trans�	���	}�i�	��=�
mod_div_aux_specS�	}�	������s�	}s�	�a�	���dcases_ons�	5���=s�	<���=�����	��	���
hr�	�hqs�	<�����V�	��ne_zero���	{	�����#semiring��cs�Q�	��s�	������	�_a��	��8���8��	��	����	��cs�Q�M��	�������	����	�_a�s�S�8s���8��	��	�mul_zero�	����cs�Q�M�	<�����	���	�_a�s�Q��	<�8��8s�Q�
�8��	�
�cs��	5����	���	���

_a�s��	5�8��	��8s��	��8��
S�
�PInfo���decl�
mod_coemks�	j�s�	7���	7���	7������
A�_xs����
�	������
��
�	7�s���	1$�	>��+��$��$�
Y�����
a�
c���*$�
\��$_a�s����$�	��
^��$�
s
��
a����
h�
\�$��$��
Xn�s����f�	���f��f��f�
�f���
��
���
�_a�s�������	��s�������=���
�
��
�f���f�
��succ_ne_zero
��f��
��PInfo���decl�
div_coemk�	c�
>��	>�	>������
��_xs��
F�
N��	��	��	7�s��
V�
^�
��	>�
��
����
��
���
k�
��	>_a�s��
p�
^�
��	��
�
��
��
��
��
��	>��
����s��
��
��
��	��
��	�������
�_a�s��
��
���	��	��	
���	��
��
��	���
��PInfo���decl�
mod_lemk����preorderto_has_le�Y�	SS�'
������+������	j���/�������
@���5�����3�9��	j_a������	Q�S�=�B������
�=�H����3�
@�
mod_coeS
�l�
9�
<�9h�
9�������	����	}���	}�=�c���������=�i�����g�ma����e_1�S
b����e_2�s�������������S�������������
�d�jchas_le����e_2������e_3�������1�������S�����
���b����	��^
���	}�=�=��=�f�l�����������m���i�	��l���m����=_a����������=����
����m�	��	{�	��=�	w�=��������i�Q�	��l��������	}_a�������	����=�	���������������
������i�	��l����������	�_a������Q����������	����	��l�	����	���h'�	��V��������lt_irrefl���c�u���u�	���	��=�	�_a��u��u
���	��	��=�c�u�����	�_a��u��	��u�
��7
�c�u��7�����_a��u�Q�;�,��K�������c�u���K��	�_a��u��	5�����;�u��;��^S�c�u���^���_a��u���,��u���	{�����	w���=�������	�	h'����e��natmul_le_mul_left���	��=natsucc_le_of_lt�	�natpos_of_ne_zero�	�
�X�����;�����c������;�����������N�_a����M���	��H�	���������
le_refl���������
9�h�����	}�=������o���������	}���	��^
���	}�=�=���f�����������X����natmod_le�=�����	}��natmod_lt�=����PInfo���decl�
has_dvdhas_dvdhas_dvdmkkmhas_dvddvdcomm_semiring_has_dvd�#comm_semiring�����PInfo���	prt��VMR��VMC���	decl��equations_eqn_1)�
���
.�
�
�PInfo��	ATTR����EqnL�SEqnL��ATTR�����class������decl�
dvd_iffkmiff�
	�
S
�
�	�
iffrefl�
�PInfo��decl�
dvd_iff'km�
 X�	Q
SS����
,��
�
�
+�
s�	5�����
+���
1�
8���
_a���
�
�=��X�	R���

�
D��
1�
6propext�
�
6natdvd_iff_mod_eq_zero�����intro�
6�
+h�
6���
B��s�
B�=s�s�	6�=���
b�=�
b�=���
`�
m��
^_a�s�?���������
`�
k�T���
m���=���
m�
���
k_a�s�s�	|�����
����
����
x��
m�=��
d�
g
�=�
b��h�
+�l�
d�
g�
dh'�
d
����
d�V�
�ne_of_lt���
����������c�
��
�����
���s�s�	������
����
���������
��
����
��
�
���
��c�
v�
���
t��s�	Q������
���
v�
��S����
s�S�PInfo��decl�
div_exact_proof_1mke�	b��h�	b�PInfo��decl���h�

S��� �Re�	`�S��S
�PInfo��VMR�VMC��� �����decl�equations_eqn_1��� �X��S
���� �`��PInfo�"�ATTR����"EqnL�"SEqnL�decl�
mul_div_exactmkh�X���*to_has_mul�.S���$�%�&����&��s�&�=s�i��=���0�5��e�_a�s�$����S���
x��0�3��S���5�s�i��=�S��A�i�
���T�Y��_a�s��e�	`�����b
��T�X�
mod_add_div�S��Y�S�"�W���Y�t��@_a��b��
�����_�b����}��YS���
�X�@S�
dvd_iff'S�
��ts��W���s���t����R_a��b�#�}������t�������
���s�����W�s����������W��_a�s��}�=����������Y�W������PInfo�#�decl�
dvd_iff''kn�
 ExistsmX�=
S�0�1�
Y�
��h�
Existsintro�3X�$�
��S�
�
mul_div_exactS�
_x��_a�����5dcases_on�3X�$��
��9�����
���
wh����
���dvdintro�

������	�����d��S���	{������S����!

�PInfo�/��decl�
dvd_introknmh���
���@�A�B�C�����,���
dvd_iff''������S
�PInfo�?�decl�
dvd_reflm�
�F�
dvd_intro

�T��R
�PInfo�E�decl�
dvd_antisymmmn��
����"��I�Jhmn�
hnm���6��natdvd_antisymm ����R�S
�PInfo�H�	decl�
dvd_transkmn��
�S��_���P�Q�Rdvd_trans�

�=�����PInfo�O�decl�
one_dvdn�
�T
�U�A�T

�
�R
�PInfo�T�decl�
dvd_one_iffn�
��TX
�T�W�
Y�z�}h�z�
dvd_antisymmS�T
�
one_dvdSh�}eqsubst_x�z�TS�	zS�T
�
dvd_refl�T�PInfo�V�decl�
gcd_proof_1nmnatgcd�����b�cnatgcd_pos_of_pos_left������PInfo�a�decl�`�b�c�b�cR���aS
�PInfo�`�VMR�`VMC�`��c�bnatgcddecl�`equations_eqn_1�b�cX�`S
���b�c`���PInfo�k�ATTR����kEqnL�kSEqnL�`decl�
lcm_proof_1nm�unatlcm�����n�o	h�������������������#pos_of_dvd_of_pos���=��������comm_semiringto_semiring�

�����=���
����������c�������������A��������A����_a����������=�����=����
��������*�����c�����=�����������_a��������=���������	{����dgcd_mul_lcm�=��
�PInfo�m�decl�l���n�oR���mS
�PInfo�l�VMR�lVMC�l��o�nnatlcmdecl�lequations_eqn_1�n�oX�lS
�&�n�o`�+�PInfo�|�ATTR����|EqnL�|SEqnL�ldecl�
gcd_coenms�����~���3�PInfo�}�ATTR����}ATTR����}decl�
lcm_coenms�+��������;�PInfo���ATTR�����ATTR�����decl�
gcd_dvd_leftnm�
��S����natgcd_dvd_left�����PInfo���!decl�
gcd_dvd_rightnm�C
����natgcd_dvd_right�����PInfo���#decl�
dvd_gcdmnkhm��hn���^��������������T����natdvd_gcd�����=S
�PInfo���%decl�
dvd_lcm_leftnm�
�+����natdvd_lcm_left�����PInfo���(decl�
dvd_lcm_rightnm��+����natdvd_lcm_right�����PInfo���*decl�
lcm_dvdmnkhm�^
hn�_�
�)�������������x���_natlcm_dvd�����=S
�PInfo���,decl�
gcd_mul_lcmnmX�$���+�%
�����6����������PInfo���/decl�
primep�������PInfo���2VMR��VMC����decl��equations_eqn_1�����
��������PInfo���2ATTR�����EqnL��SEqnL��EndFile