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�M��^initdatalistbasic�lexport_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}traversedecllistargmax₂u_1u_2α�β�_inst_1decidable_linear_orderfaaoptionb�����	�
optioncases_on_xcitehas_lelepreorderto_has_lepartial_orderto_preorderlatticesemilattice_infto_partial_order�latticeto_semilattice_inf�lattice_of_decidable_linear_order
has_leledecidable
24>�PInfo�VMR�VMC�������	
	doc�Auxiliary definition to define `argmax`decl�equations_eqn_1�������	�
eq���
D�����	�
eqreflS�PInfo�ATTR_refl_lemma���EqnL�SEqnL�decl�argmax�����fllist
�����f�foldlg
M

�PInfo�VMR�VMC�������listfoldl_maindoc�`argmax f l` returns `some a`, where `a` of `l` that maximises `f a`. If there are `a b` such that
 `f a = f b`, it returns whichever of `a` or `b` comes first in the list.
 `argmax f []` = none`decl�equations_eqn_1�������fKg���
x�����f\g��PInfo�ATTR����EqnL�SEqnL�decl�argmin��l���flf�order_dualorder_dualdecidable_linear_order�PInfo�%VMR�VMC�	%�������doc�`argmin f l` returns `some a`, where `a` of `l` that minimises `f a`. If there are `a b` such that
 `f a = f b`, it returns whichever of `a` or `b` comes first in the list.
 `argmin f []` = none`decl�equations_eqn_1�������f~���
������f���PInfo�%ATTR����EqnL�SEqnL�decl�argmax_two_self�����fa~s
coe
gcoe_to_lift
gcoe_option
�����if_pos "$&(*�7��le_refl��g���PInfo�(ATTRsimp���decl�argmax_nil�����fK	listnilu����rfl	��PInfo�+ATTR����ATTR����decl�argmin_nil�����f�����������PInfo�-ATTR����ATTR����decl�argmax_singleton�����fa~�listcons
�
�������g��PInfo�/ATTR����ATTR����decl�argmin_singleton�����fa~��������� �'�PInfo�1ATTR����ATTR����decl�foldl_argmax₂_eq_none�����flfogiffLmQuandKe�L�<�����f�glistreverse_rec_on_x�@�5KmM
u�?Ke��R�]eqmpr�5L�9�C�<�?�A�C�C�Gtrueideq�v�xeqtrans�|�v�5�G�G�xa�|��|e_1�}b�|��|e_2��congr�|�|�5�5
congr_arg�|��|�|
�5�p�Ga�e_1Ka�	e_2K
�u_1�|K����
�������|
���nlistfoldl_nilQ�<�<]�<�u�G���u�?�x�G�Ga�|��|e_1��b�|��|e_2�����?�?
���?�s�xpropext�s�xeq_self_iff_true�@�C�G�G��|�G�����Gtrue_and�G�����xiff_self�Gtrivialtl�@hd�m��5��m����M��
u���?Ke��������!�5K��m����M����has_appendappende���has_append��������u���?K�8�B�@�.�E��-not�.optionrec���������val�� ��"��$��&��(��*����7�����f�h�����q�6�E�z�}�P�}imp_congr_eq�-�5����7�$�:������'�!�?�%���'�+�-�R���S������������� ��"��$��&��(��*��7���������W�X��!��-�����5��false���������������K���������K��
�|K����
��������|
���������������'��������'�����������foldl_append��������foldl_cons�������'fa����������������e_1K��������������e_2���e���ee_3Ke�e� m�#� ���&��
��#��!�'�*
���#��0��#�e�0�:�����&��\����������������
��'�'\�$�'����������!�!\���!���������?���+�������������)�������)�%���'���������append_eq_nil�������(�(��(����eq_false_intro��_h��listno_confusion�����A�@������and_false�(�+�+��+���{��false_and�+������iff_false���cases_on��_x����5�.�E�?�H�@�M�R���S��������t���� ��"��$��&��(��*��������7��������������u����m��5���!�!�,�R�.�w�E�E�x�z�}���x������,�x�x�����R�����!�!�,�x�����5�x�,�,�����x�����x�����!�,�,��,����,true_iff�,����R���xa�|��|e_1�����|�R����������!_h�8�no_confusion�����X�E���*�xnot_false_iff����xforall_true_iff�,�val���m��5�.���E���R�����q���a���R��
���R���g�m�d���Y�t���z�}�^�o���X�R�.�w���E�c�R�.���E���X�R���c��5���������V�����V_h�V�:�����Y���������������false_iff�������cnot_and���M��}dite������linear_orderto_partial_order��� mk��decidable_linear_orderle���#lt���#le_refl���#le_trans���#lt_iff_le_not_le���#le_antisymm���#le_total���������oh���m��Ke������R��u���R����������������������*�z�}���������n���*����4�m�����m���Y��������������������K�����|K��
������|
��k�Y��e�g���Y�t����\������������:���������m���x�z�}���x��������x�x���*���x���G���?�x�M����+�R���������������t������tif_neg�e�g���Y�t�����)���U��U�.�����O�PInfo�3ATTR����prvle_of_foldl_argmax₂_private�=2Mle_of_foldl_argmax₂decl�0�����flfa
mo�has_memmem���$�has_mem���������optionhas_mem���5
�e
����1�2f�P
_xe
�3�4�5������8���������������m����M������
����
��_x
_x_xh���'absurd���@������@���not_mem_nil��tl��aih�3�4���5�����������
�����������m����M�������� ��"��$��&��(��*������
��a_1���4���5��h��e�������7���:�����
���ho����������m����M���������7e���:��������_x��hf��m����M��������������H��I�m��M�������� �"�$�&�(�*�����������I�m��M�������
��u��m �"�$�&�(�*����������f�i�i�z�}�j�mchas_le����� e_2��0��9�e_3�t��| �~��
��~��~�|
���e�g�i���� e_1K�0��9�0����zK���eqmp����������7��:�����������������������chas_mem���� ��0e_2K�9�e�x�e�ye_3Ke�~��e�|��������
��������|
��������\��������������������chas_append���!��>e_2Ke�9������e_3��������7���
�8�����e
�������andelim_left������u����9�(�?�&�)eqrec�|�+_a�|�}K�#�&M� ������u� ��+�.���+�.�foldl_argmax₂_eq_none������������hd��_� e_1��tl��a��e_2K���������~�[
�8�~�a����
�[���z����������������#�(������F������7�������#� �����t���y����~�t�������9mem_def��inj_eq������y�|�8������\��8_a��}��� �#��� ��� ��#�1�:����  � "� $� &� (� *� �����7� ������1�0����������������(���y�5�8��������_a��}���7�:����������\�������8�����y�6���������_a��}���8���� �����������5�����y�6�8������_a��}���8�:�� ���
���������5�8�������y�7������5_a��}���9�7�!�:� ���#����6������5��������\���listnil_append����������mem_singleton���
�i�i���i���d�i���I�9�~�z�G�3���������������������G�3���������#������ordcases_on���0�>���0��������0����0_xor���� �0"�0$�0&�0(�0*�0� ������iffmp���7�>�:�0�������mem_append�0������h��le_trans�0������������������������0���0���0� ���0� ���0� ���0� ���0� ���0� ���0� �����7�0� ����������h_1���m �9"�9$�9&�9(�9*�9�0� 
� ���	�	�	���9�#to_linear_order�9�0�	�	�z�}�	�	�J�r�9��x��y�L�t�~������M�t�}�| �	(�	,
���	(��	(�|
�	,�	�	
�	��x��y�NK�~�����~�x
����K�x�	� ���	
7�9�0�	V�	
�	T�x
�	`���	`��K�x
�����	g�	U�	a�	f�	k��	T��ye_1K�~�����e_2K�	$���	(�|K�	}�	�
���	}��	}�|
�	��	d�	a��	X�	]�	T�	a�	c�	f�	f\�	T�	f���x
���	�	�t�9�	��9�	
�	�v�R���	�x�z�	�x���	�	
�	�xiff_true_intro�	��z�	���ahas_ltlt�9�to_has_lt�9�	
�	
�	 �x"�x$�x&�x(�x*�x�9�0�0��h'�x�	��	��	����x�	�x�9�	��	�trueintro���	��{�x�	��	����	��	�x�	����	��	��	�	
�	�x�	��	��z�	����R�	�	�	�	���9���9�0���9�0���9�0���9�0���9�0���9�0���9�0�	V�	
�	����
�R�	�	
�	��4�
�
�	C�	V�	�	Q�����	h�	i�����	m�	U�	c�	f�
'�	��	c�Y�	X�	]�	T�	a�	c�	f�	f�	��	������	
�	
�	��	
���
�	�not_le�9�	�	�	
��	�����x��x �y"�y$�y���y�	�y�x�9�9���	�forall_prop_of_true�x�	��	�le_of_lt�9�	
�	
�	�h������h_1���m�	� ���	�x�z�}�
��x���	�
��	�	�	V�	�x�	C�
��	V�	Q�����z�	i���������x�����x����x����x�
����
��
��g�x�����	�	�	����
��x�	��
��z�
����
�
��
"�	V�	��	V�	
�	�	S�	l�	q�	���
��	
�	]�	T�	a�	c�	f�	f�	��	�����	��
��	�z�
��	�
��	�
����z�
����
��
����
��
��
����
��
��Q���x����y��~�SK�����e�	$�TKe�	(��e�|���
��
��
�
���
���
��|
�
��
�����\�x���
��
��_�x�_�y�`�	H�a���a��bK�
���
��
���	(�
�8�	(�a�
��
�
������
(�
,�
-�Y�
��	]�	T�	a�	c�	f�	f�	��
:�
��
�\���
����
��
��
����	�	�	��	����������1�b_a�|�}���1���0���0��1�:������0��������q�:�9�w����b�����b����� ���������b���#�:�e�#�}�i�lm�1�0M�0� ���������|�i�l���|����������������f�#�}�i�������i������\� �����:�����������g�#�}�i���������������#� �7�����%����$�h�#�}�i����������%���#� �7�:���
���@�%���?�i�#�}�i��������@�$���#� �7���#
m����M���������������PInfo�09prvfoldl_argmax₂_mem�.�t�osfoldl_argmax₂_memdecl�������flfa
m������YA�����������f��_x���������������������>�m��
����*�+�c�.�/�'�x�z�}�R�x��x
������=�?�'�B�C�@x
�����x�xforall_congr_eq
��
�Q��
���x��
�h���P���x�����P�KK���x���M�&�`����c�w�w���M�RA?�w���*A���Q��������e_2K��������e_3������������
������
���(\�LA���XA��������A�������u�w�������g�����weq_comm���{�ximp_self�w��a
�a�x�xforall_2_true_iff
��
�tl��hdih����������5�X�����
a��m���m������Y�7���:��
�
������	��
���q��������������������
�

�
�z�}�
�
(���
���
�
�
'�
1�Q��������������K�������������#�|���
>
��� ��#�|
�
>��\���
�
&�����
���
&���
&�
^�����
%���
`�
^���
%�
�
f���������Y
�
��������
%�������������e_1K��������������e_2�����!e_3K�>���:m�:�9���
���
��:���	T�
��
�
�8��:��x�	r��:����	r�����
�����\�����������
d�
&�\�������
%����\�������������
&��
1_x��hf���������������������
���������
�S�������������� ��"��$��&��(��*����������7�����
��
����
�������������7��:���������������u���m������������S��������
����� ��"��$��&��(��*����������7�����9�;���
��
�u���������
����7��:�����P������x�z�}�\�x���\��
7�x�ximp_congr_ctx_eq�K�#e���������
�7�j�:�����o����d�x���'�+���+�
��d���~�������+����_h�d���[��K��
�x�x�����O�U�P
�W�����O�Q�����Q���������e_2K� ��>��e_3K�������|���y����
���y����|
���M

\��
�Z���_���_�e_1���a�!�a�>e_2�������
��
�
�8�x�a����
�
����Y���U���a����e_2K�!��>��e_3��������7����
�8�������
���S����\����X������
�W�W��W�������jmem_cons_iff��
����|��|e_1����|��|e_2��������
��������������x�������O���x�x�?�A�O���B�����F����
�����8�@�@��@�E�x���E��
�x���E�X�g��

���X�x����
���B�xor_true�@�����x�m�����e�x�M�d�������
��
��z��
���
�����-�.�/���������������������������������������������������9���@����
��:���������
��h���m�������
����
�����
������������������z�}�������������Q�������� ������:��	T��K�	r���	s�|���~�	s��
���~��	s�|
����\�����������������m���K��������������
���z�}������������
���
�������������
�������)�������������
��$����:�!���8�����9�#���9�!�
��#���9�M�������8� � �� �L�"���L�"�g���a_1�classicalby_contradiction�a_2�R���� 
��� ���?�R�����?�R�p���R���������?�R��
���?�R����R���!��� 
������0�0����������y���~�����K�	xm�	x�M����~����� �"�$�&�(�*������d�����	(���
���K������e���������RK��m����M���
��	(��������h_1�RK�
�h_2�R��
h_3�R��e��������falserec��false_of_true_eq_false���xKm����M������������������eqsymm�|���xeq_true_intro��eq_false_of_not_eq_true�����R����K����������e����������x�������or_eq_of_eq_false_left�����������������������������
����������� ��� ��� ���� ���� ���� ���� ���� ���� �������`��c�����0���9��	Um�	T�xM�x�9�0� �	`��	`��K�y�����y����0���9���x���v���{��R��m�	r�yM�y�x�9�0�y����h�0���0�����0���9���	i���
���R�u���0�h�9���9����9�����9����������������������������autoclassicalimplies_iff_not_or�u��������orleft_comm�������8�����������������orcomm���������0���9��
��	T���x�r�|��y����0���9���x������	G�������~� �����0�������0�����9�������9�������
���u�������u���x�r������!�x���andleft�R�����?�R� ���R������%�)andright�"�*�0�%�)�3�����R�����������>���������?�R�?�?�R�A�R�D���G�J�R�E�Oautonot_or_eq�?�E���I�I��I�R�N�V�A�D���R�B���D�?�G�4�g�F���g�B�@�D�F�8�A�A��A�f�n���f�n���D�?���o�F���A�?�D���R�����������z�������������Y����������m���x�z�}���x������
���x�x�h������x�������(���������/��3������������x�x������������������������������p�����������"���Z�������r�����[�������!������8�������x������x�x�����������������������8�������x�����
�x������h����x��������x�m������x�m������x�M����
%����
%�PInfo��Odecl�argmax_mem�����flfm
�����
���������f��
listcases_on���@��)
��id_rhsa�V�Z�C�]�c�m�x�x�z�}�x�x���x������x���v�R�@���C�������v�V�<���Q������e_2K��������e_3�������|�$��
��������|
���T\�u�<�
������αaiff_false_intro����uoptionnot_mem_none������αa����e����������������xforall_prop_of_false����iffmpr�*�x�F�	��l_hdl_tl�`�t��<��
�����C�m�����?���������z�}������������z����������Q��������������K����������������|���.
������|
�.�;\����������!��M��!��Q���
���!�Y�O�>�`�!�f���"�����������!������"�����"����u�~����
�PInfo��\decl�argmin_mem�����flfm
��V�
�^������argmax_mem���PInfo��`decl�argmax_eq_none�����flf�5�vK����������f�m���x�z�}���x�����5�����x�����������?���x������~vv����~xv���g�e_1�f������e_2�������|����
��������|
���x�X
vv�v�������G
v������������x�����x��gv������and_true������������x�����PInfo��cATTR�����decl�argmin_eq_none�����flf�5�v���������f�argmax_eq_none
���PInfo��fATTR�����decl�le_argmax_of_mem�����fam
l�@���������
���������
���@�0
�]�PInfo��idecl�argmin_le_of_mem�����fam
l�@��G������
���L�J���������
���@�le_argmax_of_mem��
�PInfo��ldecl�argmax_concat�����fal��L�Z�7�@�:��C�Zc149��4?>����������m��L�8�<�����z�}��������_a�}�R�l�7�`�:���c_x���l��� "$&(*

7�����������R��������X
���m�����������z�}��������_a�}�R�Y�]�������������������m���x�z�}���x����L�S����������x����������8��C��%�8Q���C�'�%�8�����-��Q�<���Q���C��a���������e_1K�������e_2������je_3K�����P���P��
������O�R
�8�����#�����#�����PQQ\����Q�+��\
���C�C\�@�C������\�������x�����PInfo��odecl�argmin_concat�����fal��L��������c14��94��?��������
���argmax_concat�
�
�PInfo�
sdecl�argmax_cons�����fal��L�Z����c����?���������Q_x�@�R�l�����m�����������������������Z��hd�@tlih����������H����������J�����J���W
���m�.�����>
�B���U��B�����e�h�l�h����q�r�.��<�
�A�"�z�}�#�*���8�_a�8�}���������
�
�
�������4�8���������������B���������4�M��#�'eqsymm�8�'��cons_append��
�A�m�*�.���%�X����u�"�z�}�*�m�����(_a���}���4�
�5�7�M���M��*�k�������%�m�m�.�����!�X�j�"�z�}�m���r�g_a���}���=�4�t�t������M���=�t���M��m���m��������X�j��!�z�}�����r�_a���}���=�=�4��L�t���M������L�������_x��h��������� ���!���������������)���
�������8�;�����?�;�����
����D�
�����8���;�?���;���D�
��������������!����������
���m����_x������!������ ��"��$��&��(��*����������7�����$�&�������
����#���$�*�6�$���������4�@��1�x�z�}�H�x����������7�������N����4�X�x�����X�m���!����m�������
������������h�����������*���������j�*���������p�z�}�t����z�����������������������������������������������������������&�*���&���x�#���&�������g�}�7���:�����g��ham���m���
��������
������
��
����
���
��
����8�����?���������
��
��������
��
����
��
�����
����
������������������������z�}����������������������_a���}��S��"��������f������7���������~���
������
��������
��������f������	��"��~�����������������5�����������������z������������������������������htlm�L�m���������������5�`�-��z�}�a�d����
��
��
�������������������������������������������������������0����_a��}���"�
�"��)��S��{�)����F�������������#���������
�
����~
�������a�����0�����z�d�m�`������z�}�����i�__a��}���f���"�	���"��)������������Y�[�����
������������m�������z�}�����i����������_a��}��)�����������������\����&�R�L�b�`�-���z�f������Y���0������_�$�R�������������z���3�?���Y�����������z�3�N������htlm�L�m��4�5���c�z�}�F�I��_a��}�����������F����z�I�m�H��H��z�}�\�^��_a��}������c��\��Y����������*��G�����z�K�}�V���$�z�}�m�|�_�|���z�}�����i�
��
��
��j�	���������[�����_a��}������������Y���[not_le_of_gt��������lt_trans���������lt_of_not_ge����������������������������PInfo�wdecl�argmin_cons�����fal��L������c����?����2�3�4���argmax_cons�����PInfo�1�decl�index_of_argmax�����_inst_2decidable_eqf�l��m��*�ka�������e�L���natnathas_lelistindex_of��a��b����
�����8��:�����8��:��;���<���=����
���Abrec_on����;���<����&���������=����	��f������ �C� �D�0�
�<�;��_F�Abelow���;��<����
����������=������F�������0�C�0�D�9� 
�_�<����M�Q�=���T
��Y�;�>�<�9����x�9�0��=�y������"�~$�~&�~(�~*�~�y�9�9�F�K��;��<�	$����	(�	}���	(�	(�	$��~�=�
����� ��"��$��&��(��*���
��	$�	$�����C���D��
���f�	$�;�
��������
����
��F�K���;���<�����������������	(�=�����e������� ��"��$��&��(��*����������!�C���D" 
�������C���D�������������	$�	y���	$�	$����y��	$����
����	(
��	(�F�K�
��;�
��<����������������
��	$�=�������e������� ��"��$��&��(��*�������������C���D����
�F��
��t�����C���D���
�������[�]�m�b�x�z�}�b�x���b�{�has_zerozero�nathas_zero�ladd_monoidto_has_zero�add_comm_monoidto_add_monoid�ordered_comm_monoidto_add_comm_monoid�canonically_ordered_monoidto_ordered_comm_monoid�canonically_ordered_comm_semiringto_canonically_ordered_monoid�natcanonically_ordered_comm_semiring�x�i��n�n���J�K�����e_2�j����e_3������|���
������|
����^�n����V�C���D�������]�length���]�n�index_of_of_not_mem���Z�]�����R�����]�xifftrans���*�xnot_congr�����������F�	��Zequations_eqn_1���a�n�����]���n�����R���]�x�����*�x���������F�	������preorderto_has_le�partial_orderto_preorder��Pto_partial_order��|�n����le_zero_iff_eq��{�n���o�n�x���n�l_hd�	$l_tl�
���
��
����
����
��	(�	$����
��������F�K���;���<����+�������������
��=�������e������� ��"��$��&��(��*�������������C���D#��
�Q����t��������
�����f�m�k�����
�
���
��nnatsucc�c�n���
�
���
��n�w�i�z�}�k�����g�z�index_of_cons������
�j������
_x��hK�)�1
�����l���mK������������nK������������n�w������n��������������n�w�������mK����������u���m��nK��������������n�w�F���n��������������n�w�F���x�z�}���x�������x�����������n�����n�xdecidable_of_decidable_of_iff���x���1��A�|�5��iffrefl���x���������xa���r��e_1K���r�L�r$e_2K%��&�|K��
����r��|
�����\���������z�����������S���"�������������F������7�����@�B�:�����Ku���=���7�������������Q���U�V������_a���}K�:�S���"�:���L���� ��"��$��&��(��*����������7�����v�x�f�����������������K��d������_�R���4����������������_�������]�_�Q������������e_2K�L����e_3K���'�|��������
��������|
���������2���]�����������������_�������]����x��������n�w�n�nif_simp_congr����x���n���n��������nn��y�e_1������w���n������������n�����_inst_1���a���|��e_2���e��e�e_3Ke�eqdrec���|���}K(�j�)����
�/�&e����9�~Ke�)�2�0�	���
�E�����2��zK�5������R�_���a�_�;�������������E������R�8����x���w�*�x���v���������F�	�����if_true����n�����n�����������x���1��A�|�5������x������x�.�����z�������8��������������������Q���5������e_2���� ��!e_3�%���9�|���9��
����9�|
���7�����1�������_���_��e_1��ae�L�a� e_2K�!��"�"����
�8��a�"�9
����������n�������g������
����������n���n����x���n���n��� 	�
����n������n� ���W����� ��n������� 
�n���������m���=�zhm�d���K����n�����������n�w�Q����n�������������n�w�Q�������d�F�I�B�F�I�B�:�L� >����� P�mem������ha����e�����������������n��� ����� ����n�w��L�C�L�D���� ���n������������n�w� ����hahd� P���L�hd�L��K�� �L"�L$�L&�L(�L*�L����
��7�L��� �� ����� �
� ��0��n��9���9��n�w���C��D���9���n�� ��� ��n�w� �� ����K�L ��"��$��&��(��*���������7����� �� �� ��L�� �� �� ��� �� �� ����L���L���L�����L�����L�����L�����L�����L�����L��� ����� ��!��nK��0����0���n�w���C��D��L�0���n�!#��������n�w�!1���h_1�!���� m�ham �"�$�&�(�*�������0��nK���9� ��9��n�w�E�C���D�)����n�!W�9�9��9�9��n�w�!c�9���� �"�$�&�(�*��L��� �!�le_refl�����ordered_cancel_comm_monoidto_ordered_comm_monoid�ordered_semiringto_ordered_cancel_comm_monoid�natordered_semiring�n��0�0�L�0�0��n�w���C��D����0���9��K���!����!�7��L�!��!����� �!��!��9� ��9���!��!��!��!��!�������e_1K����)��-e_2K*��+�|K�!��!�
���!���!��|
�!��!��!���!��!����!��!��!��!�\���!����� �9����R�!�!E�!w���!����!G�!H�!I�������������������������������������!U��n��0�L�0��n�w�!����!��9�!���9�!��!��!��!��"9�!��!��Y�!��!����!��!��!��!��!��!��9���hatl� m��� z� }� �h_1� z�m��n�!$���!'����n�!4�n�!7���!:����n�!A���"l�z�}�"m�"o���"d�nif_pos�"^�"`���"^�"^��"^��n�!4�"l�"l�	�"l���"f�"h�"oh_2�"f�m���n� ���� �����n� ����z�}�"������n�n�
�"��n�"v�"��"����"��"���"���n� ����!y�!z�!{����������L����L����L����L����L����L����L�!������!��"���h_3�"��m�����z�}��������!��n���R�"��"����R�"f�"���� ��z�"��"��"�� ��,�"��"����R�"��"���"���n� ��"��"�h_3�"��m���!��"��z�}�"��"���"�natzero_le�!����"��#���R� z�"n��!4�"l�z�"q�#�"t�!4�"��"^�"`���R�"^�#��#��n�!4�"l�"l�"��"��#h_2�"f�m�� ��"��#'�n�z�}�#(�#*��� �� ��	� ��"��n�"��"��#*h_3�"��m��w�!��x���n�#=�z�}�#=�#=��#=���#=���R��x�������#I�R�x���4�#H�x���#H�#G�x�x�r��r���s�*�r�-�r�!��tK�!���,�|K�#[�#^
���#[�r�#[�|
�#^�x�x\��x���x�����!R�" ����7���" �#|������#��#��x����x���#����#��#��#���������K�!���!���!����!����#[�|K�#��#�
���#���#��|
�#��#��#���#}�#����#��#��#��#�\���#�������x�#��#���#��#�
���#S�x����x���#M��not_true�#J�#I��#I�#��#����"��#E�#F���!R���x�!U�����#��#��#|���J�r������e_2�t�)��-��!�e_3�t�!��}�#[�| �#[�#�
���#[�#f
�#��!Q�#��#��t��#��!U�#|�����e_1�#W���-�)��0�����!����$%��$%�$)���#������#��z�R�#����R�#}�$2�4�#}�#��$�" �#��$"�x�#��"$�x�#����#��#��$=�#��#��Y�#}�#����#��#��#��#��#��#��x�#��#|�#|�$�#|���R�"!�#|�$4��$4�#��#���#��$k�$k����"��#)�#'� ��z�#,�$w�#3� ��"��"��$wh_3�"��m�#<�!��$��z�}�$��$���$����$��#����"��$��$��x�z�$��x���$���#:�!��x���$��$�natsucc_le_succ_iff�#:�!����$��x�	��$��z�$�����#{�!U��!c�����!r��x��!c�y���!r�	����$���x�$��$����$���"-�!��x�$����$��#��x�$U�!U�!U�$�!U���#��x�	��#��$n���"-�#:�{���|���|�)�}K�-�e�!��e�!��~Ke�#[�&-�|�$��}K.�j�/����
�$��&e�$���$��~Ke�$��$��$��	��$�
�!��x�$S����\�"���!��!��	�!�����x��x���)�C�)�D�-���~��%�x��$��
l�$��	��$��$���$��%-�%-pprodfst�;�"�<������)�!����)�)�����=�-����!��$����!�� �!�"�!�$�!�&�!�(�!�*�!��-���%���#[�C�#[�D�$��!�
�%T����rec�n�"punit�_��a�9ih�%epprod���;e�-�<�!�����!��!����!��!��!��-���=�#[����$��$����$�� �$�"�$�$�$�&�$�(�$�*�$��#[�!��!���$��C�$��D0�$�
�%��%h�����%k�%a�%��%h���0������ A���:���u�:�}K�f�S���"�f� �������� �������� ��%��%�� �� ���� ���������������%��%��%����� >�������:�������������������&�%������Q�����:�����L�v�!#�������w�!����!��|�%0�&
���)��!��|
�&�%���\����&�������������������&���������������&I



�PInfo�7�decl�index_of_argmin�����_inst_2�f�l��m��*�
a����
��e���L�����������index_of_argmax
���C
�D2�PInfo���decl�mem_argmax_iff�����_inst_2�f�m
l�@�5�h��?�]�?aH����
��aH�&�������&������C���D����
�&������������
���@�intro�&��&�hm�&�andintro�o�?�������	�&��J�������&���e�J����
�
�����&��&��&�a��ha�&��x������
_x���&������C���D����
��&���dcases_on�o�&���?�o�&����
hml�oa_right�?�������
.���d��������'�����d�����C���D�����'(�'��������
���'�B�������'4����B�'�����C���D���5���'@���?�'8�'I���

ham�'8hma��������������#�N�&������C���D��X�����'_��_x��harg���/���������������������x�������Q��u���������Y���	���������'��'�����Q������� e_2�������e_3�X�����|���'�
������|
�'��������������zK�������'r�Y�'����'��'��;������������'��������n�����'r�
��m�'t�~�x�'��z�}�'��'������_a��}���������'���'����j���C��D� ������'��������index_of_inj��'�����������������le_antisymm��!��'��'��&��'��x�������������&������'������������'��m�'���'��'��z�}�'��($�1�'�_a�|�}���'���'��($���'��($���'�\��'���������(F�PInfo���decl�argmax_eq_some_iff�����_inst_2�f�m
l�@�5�R�&�A�&������������
���@�mem_argmax_iff
�C�D�����PInfo�շdecl�mem_argmin_iff�����_inst_2�f�m
l�@�5�h�&��&��?aH�&��&�aH�&���&��&������������
���@�(f�z�}�(k�PInfo�ۻdecl�argmin_eq_some_iff�����_inst_2�f�m
l�@�5�R�(wA�(������������
���@�mem_argmin_iff
�(k�PInfo���decl�maximum��_inst_2decidable_linear_orderl��with_bot����(������argmaxid�PInfo���VMR��_lambda_1VMR��VMC���0aVMC�����������doc�� `maximum l` returns an `with_bot α`, the largest element of `l` for nonempty lists, and `⊥` for
`[]`decl��equations_eqn_1�����(�����K�(�����(�����(�����\�(��(��PInfo���ATTR�����EqnL��SEqnL��decl�minimum�����(�l��with_top����(������argmin�(��PInfo���VMR��_lambda_1VMR��VMC���0��VMC�����������doc�� `minimum l` returns an `with_top α`, the smallest element of `l` for nonempty lists, and `⊤` for
`[]`decl��equations_eqn_1�����(�����K�(�����(�����(�����\�(��(��PInfo���ATTR�����EqnL��SEqnL��decl�maximum_nil�����(�K�(��(���latticehas_botbot�(�with_bothas_bot����(���(��(��PInfo���ATTR�����ATTR�����decl�minimum_nil�����(�K�(��(�����has_toptop�)with_tophas_top����(���)�)�PInfo��ATTR����ATTR����decl�maximum_singleton�����(�a�(��(�����(���(��has_coe_t����(����(��)�PInfo��ATTR����ATTR����decl�minimum_singleton�����(�a�(��(��)�)�(��)�(��has_coe_t����(����(��)+�PInfo�
�ATTR����
ATTR����
decl�maximum_mem�����(�l��m�K�(��(���)=��)=�)��
����
����(������argmax_mem�(��PInfo�
�decl�minimum_mem�����(�l��m�K�(��(��)C�)c�)E�)c�)/�)Q����(������argmin_mem�)[�PInfo��decl�maximum_eq_none�����(�l���5�(�uKe�)����(�����argmax_eq_none�(��PInfo��ATTR����decl�minimum_eq_none�����(�l���5�(��)��)�����(�����argmin_eq_none�(��PInfo��ATTR����decl�le_maximum_of_mem�����(�amlf��)O�K�(��(�
��)���)��)������
����(����f�le_argmax_of_mem

�(�
�PInfo��decl�minimum_le_of_mem�����(�amlf��)��K�(��(�
�)��)��)��)��)/�)�
����(��!�"�#f�argmin_le_of_mem

�)��PInfo� �decl�le_maximum_of_mem'�����(�al�)�ha��f���)��(�
�)��*�preorder
�)�
�)�
�)�
�)�
��*��*�)
�(�
����(��&�'�)��(�*��
_x�*_am�K�(���*'��*'�)�)����)����)����)����)����)���_a��*)�]�%
�'�)��(����)��*G�*	���*<����*G����*G�)���*_x�,
��)��<�)��)�h��*]�<�a�c����
�)��*'�)��*'�*	�)��*0
�]eqsubst�`_x�`�R���c�Y�`�c��*'�]��
m
hm�,��*(A�*1�*@_x��*��]�*E���*V�*T�*?with_botcoe_le_coe���*;��*G�
�,
�le_maximum_of_mem
��K�*�*v����maximum_eq_none
�PInfo�%�decl�le_minimum_of_mem'�����(�al�)�ha�*�)��(�
�)��*��preorder
�*�(�
��*���*��)/
����(��;�<�)��=�*�le_maximum_of_mem'order_dual
�
�PInfo�:�decl�maximum_concat�����(�al�)��)>�)@�7f�:��max�)=�decidable_linear_order�)@�)I����(��B�C�)��m�*��*��*��*��*��z�}�*��+���)=�*�_a�)=�}�*��*�7���:
���*��*�*�
�*�*�+��*��+max_comm�)=�*��*��*��m�+�)>�S�	g���)�
�)�
�*�\�|�+7�)��)�c�|decidable�
�+=�+?�+9�J�K
��e_2�x�r���r��e_3�)�����|�)����+T
�����r���|
�+T�+6�+=idequations_eqn_1
�+?�+og���(��)[�)��)=�)��)=�)��)=�!�)=�w�)=�*��*��+��+F�)=�*��*��+��)=�+��*��z�}�+�+���)=��*e_1�)���*'��*Ge_2K�(������(����|K�+��+�
���+���+��|
�+��*��+����)=�*��+/�+��+2��+@�+Jg��+z�+��+��+��*��+����*��argmax_concat�)[e_1�+/��R�gve_1K�<e_2������T����U��e_2K������rn��congr_fun""���V����S��������+�������e�V���+��+��+��8�+����T�,�V���)�+�
�+2�+2\	�+2���
�)��)��)��)��)��)�
�(��,/�+F
�,0�,2�+|funextxgx�+��Z�+{���H�|�H�|e_1��h�+Bαt�^e_4Ke�`
e_5K���|���H�|�[�}������������
�+<���+D�����&�^�_�x�,\�,W�,`��������,k�`�a�x�,\�,s�������+<���+D�������
�����+@�+9�+u�+Jg�����+z�+z��+z�+��+�+��+��+�+�+��+�_inst_1�(��)=a�*�c�)�e_2�*)b�*G�e�+�e_3�+���(����,��*��,��,�
�8�,��e�,��(���
�,��*��*��*�\�)=�*��*��+��+�maxequations_eqn_1�)=�*��*��+�_x	h~�(�

�)����j�k�R�(��(�K�*G���������)����)����)����)����)����)������+<�-�(����-�+D�+F�����-�-�-�J�+M���������JK���r���r���K�
����|�)���-(
����r��|
�-(�-
�-�+n���-�-B�����W�*H�*I�)��*G�+��*G�+��*G�*����*U�+F�*G�-W�*U�*G�*U�kL�(�
�,/�<�m�*(�S��>
���*?�+<�*>�(����-z�+D�+F���-{�-}�-x�J�+M���������J�)�r���r���K������|�)���-�
�5�r��|
�-��*=�-{�+n���-}�-������-�]�*j�*k�)��*'�+��*'�+��*'�*��*p�]�+F�*'�-��*p�]�*'�]�*p�-��*p�z�}�-��-����*'�-�_a�*'�}�-�-P�!�-]�!�-b�!�*G�!�*U�-���-��*p�Y�-��-�not_le_of_gt�*'�*m�*p�]with_botbot_lt_some�)�
�*'�]�*p\�*'�-���k�,�?�z�-�-P�>�-]�>�-b�>�*G�>�*U�m�.�-\�-�>�-a�-�>�*G�>�-�-�*@�+<�-|�-z�+D�-��.�*@�-��.�-����>�-�.���.�*@�.�some_le_some���*;�*G�>�-�z�}�.�.4��*G��+��O�,���,���,��PK�(������(����|K�.=�.@
���.=��.=�|
�.@�-��.%�s�.%�.�.3�x"�*G�.�*@�.�>�-�>�-�..�s�>�s�-�H�|�H�|e_1���\�,K�\�,K�]�^�^e_4�,N�`�`
e_5�,Q�������,��+<���+D������
�,���
�,���������
�+��`���.{�.��.��^�`�����.z�.�W"�]�^�`�.y�.~�$�+B���]�.��,��,��.x���$�\�.��.��,�subsingletonelim�.�decidablesubsingleton���.x��
�*@�*@��*@�.!�./�*G�>�>\�*G�>�-�-�.��-�+���+��PInfo�A�decl�minimum_concat�����(�al�)��)d�)f�*�min�)c�decidable_linear_order�)f�)m����(��y�z�)��m�.��.��.��.��.��z�}�.��.���)c��*�e_1�)���(���(���e_2K�(������(����|K�/�/
���/��/�|
�/�.��.�\�)c�.��.��.�min_comm�)c�.��.��.��maximum_concat�*��*��PInfo�x�decl�maximum_cons�����(�al�)��)>�)@�*��+����(������)��P_xf�*��*�+�+�*�*�m�)>�)@�*��+�)@��x�z�}�/X�x���/X�)>�*��*��x�+��/T�*���/W�*��+��/W�+�(��)=�(��*��,��/V�/o��max_eq_left�)=�*��*��/m��order_botto_has_bot�)=�order_bot�)��)��)�latticebot_le�)=�/��*����/`�x���)=�*��tlfhd
ih�)��)����*��)��*�
�)��)��m�*(�(���
�����*��*'�-��*p�/��/��*(�/����/����/��z�}�/��/����`�/�_a�`�}�-�(��������N�*��*G�-W�*U�/��/��-�/��/���/��/��*~�/��/��]
���m�/��*(�/��/��/��*0�/��z�}�/��/��-��/�_a�*'�}�-�/����/��N�/��-�/���/��/��/4�/��m�/��*(�/��/��/��/��/��z�}�/��0�-��/�_a�*'�}�-�/��/��/��*��/��-�/��*��/���/��0�m�0�0�/��/��0
�/��z�}�0�0,�-��/�_a�*'�}�-�/��/��/��*��/��06�/���0�0*�0�m�0,�*(�0+�0+�z�}�0,�0G�-��0
_a�*'�}�06�/��/��02�*��/��0O��0,�0+max_assoc�*'�-��*p�0
�/��-��0+�PInfo���decl�minimum_cons�����(�al�)��)d�)f�/A�.�����(������)��*u�)c_x�)cK�*��*��+�.��.��/0�maximum_cons�/5�/8�PInfo���decl�maximum_eq_coe_iff�����(�ml�)��5�)>�*��*��?�*aH�)O�,.����(������)��m�0��5�0��+2�0��z�}�0��0����0��0��+��*��*��,��*��*��+2��a�*�*�has_lift_tlift�)=�)Hhas_coe_tcoe�)=�)G�0�lift_t&�)=�)H�0��+��0��)I�0�coeequations_eqn_1&�)=�)H�0��0��0���equations_eqn_1&�)=�)H�0�coe_t'�)=�)G�0���equations_eqn_1'�)=�)G�0��0���0��m�0��5�0��?�0�aH�0���,.���C�D��eqdecidable����
�0��0��z�}�0��1���0��1���0��0��?aH�0��,.�,/�,0�����0���,1�1��0��C�D���C���D���0�����
�1�1�1
�)>�+��+2�1*�0��+��,��+2�+2�,!����+��+2�1*�argmax_eq_some_iff�C�D
�0�
�)[���*�*��*�1�����0���1�0��1���1�0��h���1���0������0��+7�+?�+=�0��+7��0��+k�+?�+t�+=�+p�1R�1�1X���1Q���1���1]��+@���C�D�0����1~�0���+9�1��1e���+@��
�C
�D�0��1��+9�1��+u��1��0��0��0��&��1�0��m��1�?�)���
�����)�
�x�z�}�1��x���1���1�x�x�h�1�0��1�x��1_h�1���1����x�x���1��x���1��x�	��1��$�1��?�1���
���1���*`�����C���D���0�����
�1�
�1��x��x
�������*>��
���x�x�i��
�1���
�x��
�����1��1���1��x�x�h�1��,.�1��x��1�_h�1����1��x�����&�
�	��-�$�������
.�)����)����)����)����)����)��������������2��2����'$�C���D���0����������2(��andelim_right���?�2�21
���]�x�	��2B�	����1��x�M�1�����
�x�xforall_true_iff
���1��x��x���1��x�M�1��m��0��1��1���0��1��z�}�2q�2s�h�0��1�0��1�0�_h�0����2p���1��1��1��1��1��1��1��1��1����1��2~�1����1��x�1��1���
�1��2_h�1��2	�����2
�2
�26�2
�2H�2Q�2[�1��1���1����2~�1���1��2�h�0�a
hal�1�hma�*`�m�1���1��1��z�}�1��2�����_a���}�����1�2���2��2���1�le_antisymm���*;�0�*w
�������	�)����)����)����)����)����)��������!��1��PInfo���decl�minimum_eq_coe_iff�����(�ml�)��5�)d�.��.��0�aH�0��0�����(������)��maximum_eq_coe_iff�/5�/8�PInfo���
EndFile