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��@��initdatalistbasiclogicrelation�A$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}traversePInfolistperm
induuα�Calist�e_1listnil
e_2xl₁l₂���ih
listcons
e_3xyl(
*)e_4l₁l₂'l₃�
�
ih_a8ih_a	
�'�4n5
����nil�	Z�skip����
�
d�swap����^_n
po�trans����^�_
�b

����&�3�J����&�3�J��4��9
�rec�>8
����&�3�J����
����&�3�J�'�4���;�>

�A>8�
�decl�drec�����h
�����
����!�
����'0�
���'�4�7�;�=�@C�
�'�4�LN������������'�4�L�8�8�>�AA
_9	8��8���A���_h
�'
_
�/�2
�

�8�>��#_�$��D
�F�E8
������#��$
��*�_h�0�/�_h�]_�

�PInfo�
ATTRreducibility���auxrec�prt�decl�drec_on������^�a�	������4�����8
>A��
�A
�����8>��
�����>
���������
��V����'�/��]
�����^�a�������������_� �8����#��&��._�68
�;�8�>��#_�L
������#��V��*��\��d_�h8�n�p�PInfo�
ATTR����auxrec�prt�decl�dcases_on������^�a������4����8��
�	�>
���������������V��
��'
�������^�a����������$���8����#��&��._�6����������#��V��*��\��d_�h���PInfo�
ATTR����auxrec�prt�decl�rec_on�����^�a������4����������������������������V��������������^�a�����P��S��Z�
�PInfo�
ATTR����auxrec�prt�decl�cases_on�����^�a������4�����
��S������������V�������^�a�����x��S��}�e�8����#��&��

�8�>��#�������#��V��*�����/��
�PInfo�
ATTR����auxrec�prt�gind�����prt�recnspace�doc�`perm l₁ l₂` or `l₁ ~ l₂` asserts that `l₁` and `l₂` are permutations
 of each other. This is defined by induction using pairwise swaps.NOTA�perm~ ~ 2��decl�permrefl��l���listbrec_on����_F�below
�^_�����listcases_on�'����45K����'	id_rhs��	���l_hdl_tl4�����9��98
���8
pprodfst����rec8n�punithd8tl�ih�pprod����(���	�����PInfo�prt�ATTRrefl���REL�decl�permsymm��l₁l₂p�`
������permrec_on_x_x��
�xl₁l₂'p₁��r₁K
��
xyl'�
l₁l₂l₃'p₁��
p₂7r₁9r₂��A�PInfo�prt�ATTRsymm���REL�decl�permswap'��xyl₁^l₂pb�p
�r�q����^���o��t�r�q
�w�
����v��
�PInfo�$ATTRtrans���permtransREL�decl�permeqvu_1α�equivalence
�	�perm	���mk_equivalence	�����permrefl	�permsymm	�permtrans	�PInfo�*decl�is_setoidu_1�setoid������setoidmk
�����permeqv�PInfo��-	prt��VMR��_lambda_1VMR��VMC�-	��VMC��-	�decl��equations_eqn_1����eq
����������eqrefl�����PInfo�	-	ATTR_refl_lemma���	EqnL�	SEqnL��ATTRinstance����class�����decl�perm_subset��l₁l₂p�has_subsetsubsetlisthas_subset
�����a�7_x_x'ahas_memmem4listhas_mem
�����
h������xl₁'l₂4p₁Lr₁���8���8
��>���>
i����orelimeqAlistmemA��A�#��A��ax�eqmpr����
����Dtrueideq��eqtrans�or����'�(����+�,�'�*��3chas_mem��
a�'�6�/e_2���]�6�e�6e_3��congr���H�I�N
congr_arg�H�6�I�N�����
�propext�6�3�mem_cons_iff�a�=e_1�!b�?e_2�}�9�(�(
�:�?�(�1��q�1�eq_self_iff_true��+�+��+�q�,�true_or�+trivialal₁�orinr�/��
xyl4ayxl����
����8
�8��������ay��������
���!����&���(��>���������
�����������4�9>��6A�6��7���'�6�/�6�]�8���?�G�A���@�A��
�U�@�6�A���������l����q�����t>�
��������������&���)��
��.�(���/�0�q���5�"
���3��q�3���>�/�/���/�q�0����/�q���or_true����axl�������>
��ax�`��
������!�i��&�i�)�(����o�(�p�s���v�o�s�h�|�4�9A�#�6��6�'�7���/�6���6�?�8���A�G�C���B�C��
�U�B�6�C����h�h�l�#�h�q��|�tA�����y��q�y���A�{�u�q�{�u���q�v����u��al�d����������l₁l₂'l₃4p₁7p₂;r₁����
r₂����ainl₁����PInfo�0decl�mem_of_perm��al₁l₂^haiff��
����Y�Z�[^�\aiffintro����m���perm_subset
m���

�symm
�PInfo�X=decl�perm_app_left��l₁l₂t₁^p|bhas_appendappend�)has_append�'
��e�f�g^�h|��_x_x'���#4�%�5
�permrefl�'��xl₁'l₂4p₁Lr₁9�#��%8
�J��)append>�S
xyl4�
�Rl₁l₂'l₃4p₁7p₂;r₁��#��%>�nr₂��#�#�%A�w��#�
�%�8��8��8�PInfo�d@decl�perm_app_right��t₁t₂l^�|b�'��
������������^�|��������6�6��_F����'���5�#��%���������9����>�����>8�$��A��>��A���#��������
��(�A�0�#���%�/�'����(�#�'�%�'���A
����A���#��$A>��	A����
l_hdAl_tl�
�����'������0�'��^�#���%�]�/���'�'���0�1
�R�/�'�����/
��
��������^�/�'�f�#�?�%�e�]��/��/�������/�������	���A��B�@�e�H�#�I�%�H�B�+�@���	��;�

�PInfo��Gdecl�perm_app��l₁l₂t₁^t₂p₁b
p₂
���5�5
�������^�����b���d��f�h�i�perm_app_left�perm_app_right
�PInfo��Kdecl�perm_app_cons��ah₁h₂^t₁t₂p₁
p₂�W5������
�������^�����������W�perm_app�����
�PInfo��Ndecl�perm_middle��al₁l₂^_�#�%qp������������^�������#'�%�r�r����_F������'���6(���6��'��4�������8��������w��>������>����������#���
�(���������$���DA����
����������#�$��������	>����w����
��BA�l₁_hd>l₁_tl�#�������
�����0���1�'����J���(�
�����������"������'��'
�!�,�����������^���]�/�5����'�������'�������	���?���A�$�#�C�%�B�B�@�I�G���	�>�[���'�
�+
�PInfo��RATTRsimp����decl�perm_cons_app��al��#^�%

	
�������eqmp�����������^�e_1���'�4e_2����G�99
�U���9�����l^�������
�e_1���'�4e_2���9������
�:8������l
���append_nil
�perm_middle
���PInfo��VATTR������decl�perm_app_comm��l₁l₂�������������
��^��b���'��^_F��������������'��4������������n�n��8�������������#�$�������{
��������������w�����n�
�n
���	2�
��!�	2�	5����#e_1���
������e_2�����G�?�f�f
�U�?��?�f�	.
�nil_append�>
�	1
��>
�B>
l₁_hd8l₁_tl��������#���
�(���������$�F�����F��	u�F���	x��
�	t�	|�����
�����0�������
�����������	�������?�@�#�A�%�@�	����	�	��	�����	x�	}���

�PInfo��YATTR������decl�concat_perm��la��concat
���������	����!�	���&�	�����	����	�����	��	�listconcat_eq_append
�	��	����	��q�	�������iff_true_intro����

���PInfo��]decl�perm_length��l₁l₂p�� nat�length
�
���������8_x_x�

�
�

rfl�
	�
	xl₁l₂'p�Cr�

�

�
&��

�
8���
+��
���!�
1��&�
1�

has_oneone�
	nathas_one�
;��
7�

has_addadd�
	nathas_add�
;�
+
�
F�
=a�
	���
	e_1�

��
	��
	e_2�
L�~�
	�

�


���
	��
	�

�
-�
F�%�
	�
-�
C�
E�
;�
Aadd_semigroupto_has_add�
	add_comm_semigroupto_add_semigroup�
	natadd_comm_semigroup�
;�
E�
g�
C�
+�
;�
i�)lengthequations_eqn_28chas_add�
	a�
	���
	e_2�
L�6�
	�6�
	e_3�
L�
M�
	�
A�
�
�
U�6�
	�
	�
��
B�
v�
E�
;�
;���
	�
;add_comm�
	�
o�
E�
;�
0�
F�
f�
0�
i�
t�
}
�
��q�

�
A�
ladd_right_cancel_semigroupto_add_semigroup�
	ordered_cancel_comm_monoidto_add_right_cancel_semigroup�
	ordered_semiringto_ordered_cancel_comm_monoid�
	��ordered_semiring�
;�
E�
��
=add_right_inj�
	�
��
E�
;�
;�q�
=��A�
	�
;��xyl'��

�
,�
�/���!�
���&�
��
=��
��

�
D�
D�
��
��
=�
c�
��
��
f�
��
C�
��
;�
s�
��
��
C�
�+�
;�
��
{+�
��
��
��
f�
��
C�
��
;�
s�
��
�
��
��
;�
;�
;�
��
��
��
;�
��
��
f�
��
��
���
C�
�.�
;�
��
.�
��"�
��
f�"�	����
;�
;�
���q�

�
��
��:�
=�
��
��
;�
;�
���l₁l₂l₃'p₁�Wp₂7r₁�

�
+�
vr₂�

�
>�P�
f�
A�U�U�PInfo��`decl�eq_nil_of_perm_nil��l₁p��
��^��������k�eq_nil_of_length_eq_zero
eqsymm�
	�

���w�perm_length
���PInfo��gdecl�perm_nil��l₁����
��
��������p���eq_nil_of_perm_nil
�
��e��eqsubst^_x^{���B
�PInfo��jdecl�not_perm_nil_cons��xlnot���������6�����no_confusion_typefalsep�
"�no_confusion�����
"�����PInfo�mdecl�eq_singleton_of_perm��abp����	���
��
����������
o�
"���q������mem_singleton
�	p�
"��
�������
��!�����q������
�l
�PInfo�pdecl�eq_singleton_of_perm_inv��alp������������_a_a�
<�
_a�r�����4��
<�
&�9������
��8�
��
<�
����5��	�eqdcases_on�
	�
;t_1�
	��
<H_1�

�U��H_2heq�
<�
�	��
<
����	�'���3�
+���

natzero�succ�?�no_confusion��(�
<�P�
�
=�
����#�������?�B�
��<heqrefl�
<�<�����
<�
+�����������#��
<�)�D��(�5������1
�	�/
��
<�U������$���*�g�*�#t_1�
	��$H_1�

�
�]�4	�]H_2�(�
<�
�e�e8	�e�/���@>	�@���e���
�'�l�3��

�Anatadd���3�?�B�&�(�
<�
�/�p�s
�
=�
����	=���5�����������!����eqrec�]�/_a�]�!�������]�������������eq_singleton_of_perm�]�/
�l�����
����X�
<��tl_hdAtl_tl�
��
<���l���0�t�p��#t_1�
	��$H_1�

�
�@����H_2�(�
<�
�B�HA�H�/���I�H��
�
�B	�H�����4
��

�A�����
�?�B�D�1�(�
<������
�
=�
��������A�����
�?�B��

�A�����?�?�D�1�(�
<���
=�
��D���I	�B�A�����?�?�
��
�X�
<�

this�
<�
�|��Annotshow�PInfo�sdecl�reverse_perm��l���reverse���5���5��
t
�5_F���5^_�
t�5�7���5�
t���5'�7���545�
t5�
��7���5'���
t����l_hdl_tl4�7���5�9�
t8����9�
�������
�9�J�
��������!�
��
�����
�_a��!��
t>�
�
���
���
��
��reverse_cons�8
�8�
����
����	�8
�
����
����5���
���8������	�5�
�(�
t�'���	�
��
���PInfo�4xATTR�����4decl�perm_cons_app_cons��ll₁l₂^ap�a�,�p���
��=�>�?^�@�A�
����
���������
�PInfo�<}decl�perm_repeat��an�
	l^��_�repeat
���6��C�D�
	�E^��8�;p�8��symm�3
�]mpr���Hand�

�
bH��'��
���eq_repeat
andintro�P�\���O��H�P�
c�N�N�
��N�h
�length_repeat
�v�h�N�|�Hbm�W�eq_of_mem_repeat�	�3���
h�;��_x�3�H�C�H�PInfo�B�ATTR�����Bdecl�perm_erase��_inst_1decidable_eqal^h���nc
listeraseab
��W���Y�Z^�[��_aExistsl₁��'l₂'�M�����M��4�6(�����^�_�^8�_>>��Existsdcases_on'�b'��4�c4�M�����M���������^�_8�^>�_AA���`����������^�_w'h_1�����c��M����
�M����K�����8�^8�_>�^A�_���K�g����2����!��h_1_w�h_1_h�1�Ndcases_on�����M��r�����>�^>�_A�^��_�'�'�r�i�M�A�X���8��A�%8h_1_h_left�Ah_1_h_right�M�K�x�]
�K�^�^A�_��^�'�_�/�/8�x
�>�	:8���D>�	:����^��_�'�^�/�_�]�]8>���l�M����(>�A���'�o>Ah_1_h_right_left�h_1_h_right_right�2���^�'�_�/�^�]�_�e�e>A����_x���^��4�'���/�^�/�_�]�^�e�_�@�@A������������C��������_x���^����8���1�A��A�����/��exists_erase_eq��
�PInfo�V�decl�perm_induction_on��Pl₁l₂^pah₁��h₂xl₁4l₂��������h₃xyl₁�l₂��������l�l�
h₄l₁�l₂�l₃������V������������s�t�u^�va�w���x���|����
P_refll�8
�7>_x�_x�#��x>yAl�
��B�'AnnotcheckpointAnnothavel�listrec_on>_x�>x>xs�#ihA
�*�PInfo�r�ATTRelab_strategy���rdecl�perm_filter_map�vv�β��f�optionl₁^l₂p�o��filter_map
�_����V���Y��^�����o�drec��'��4��L�Z�\8
�o��[�_���x�[listnil�}��!�z������e_1�
��������8e_2����>�9 ��A�ZA��
�:  ��������x�}��filter_map_nil�x�}����}xl₂4l₂'�p�IH�Z8�\>8
����Z>�\A>8���������)filter_map_match_1>����<����
��<��!���������������������'����/�������]�����e�Z�e��
��������������)filter_mapequations_eqn_2A>8�����
optioncases_on>_x�W>����A�\�A>����<�������none>���&���!�*��&�*���������'����equations_eqn_1>�����)���8�����q�2��	��2��a>������someA��N���!�R��&�R��listconsA��[�������������������������������@�Z�@�k
���h��h�k�O�\��equations_eqn_2A���Q�^�����q�_���V�������
��Z�	��[�Y
���
A���J������	���trueintro��xyl₂���l�o�`���o���a�l�����o���A�����������A��!�����������������������d�����Z�/��
��������������2 �������o���������8��_f_1������e_1��_f_2������e_2�d_a�W�/���W�]e_3���W�e�9  �W�@�h���@8�
��h������B���:  �h���h���W�B���H8������
�����@����� �W�������������o�a�Q�A���?�a�<�Q����Q���[�A�A�I�A�_x�H����8�i�����lM�i�kM�q�A�h_x�H���i�k�%8�z�n�y����l�����%�������l������!�������������������<�����7���������������I��������������b����|�L8�i�k�����y���Y8������!���������������������������������Z�]��
������������������������������������������������������������'����B8��
���)�����%�������W�H��8���z���78�����z��������G�W8����8�������������i�����y��������&�����&�y�y��y�������8��a�8_x��������L>�K�����P�JM�����������!�Y���������>�����'�C��8����M�I�����i�l�J���!�p��&�p���Y>�w���y�x�����j�{�����j���z�z�i�{�����������������������������������'����(���H8��
��(�������%�(���(���W����8���K�z��>�����K�z���i�i�G��i���z�z�o�~���o���}�}�J�~���l�}���l�}���J�J���J���}�}�q����V������	����Y��
�����
>����l₂'m₂4r₂�p₁;p₂�IH₁������IH₂���trans��\�'�A��
�PInfo���ATTRcongr����decl�perm_map�������Vf�l₁^l₂p�o�[�map
�3����V���/��^�����o��7�[�^functioncomp#�W�L
�G��!�7�K�*"#a'���3_a�Q�!�Z�0�W
�T
���7�Geqsymm$�Q�G�3�filter_map_eq_map�perm_filter_map�F
�PInfo�ԠATTR������decl�perm_pmap�������Vp�fa
�l₁l₂pH₁aH����H₂�������	�l�pmap8��8������V�����������������������j8�������������������'�����'�"�����'�����/�����/�J�Z�'���/�'���/�'A������8�����8����>������������A>��A�9�������|>����!�����������pmapequations_eqn_1A>����������>��x8l₂�l₂'�#p�&IH���������/�����]�����]�l�����]�/���]�/�������/�����4�l�����]�����e�?���e����������e�]���e�]�'��!����!�(��&�(���Y�]�'��pmap_main_proof_1�e��!��_proof_2�e��/�0�4�!�=�������e_1���h����(e_2���������Z���W
��������W�$�A��equations_eqn_2�e�]��'�'�K�t�q�B�8�J����]�7�@�J�J���@�J��	���
�?�I����x8y>l₂�#������������"�����'�����2�1
�J��������5�������!����&�����Y�'A�1�/���5��A��
�:�/���5��
��
����������������
��������
������������������h��������(�Z�H��
���(��(�����������������5�����o�/�'��A�5��'��/e_1���]�����he_2�����(�Y�H�
�%�H��(��������G�'������
��������������������2���*�����-���<���

���q������������'��������l₂�m₂�r₂�#p₁�Vp₂�*IH₁�����/�����l�����]��������!�9IH₂���h�����e�������@�������@�e���@�e�/�{�����e���r�������@�������B����@���B�@���B�@�]8��a�Bm�M���H8
�	��>8����
��
�PInfo��decl�perm_filter��p�_inst_1decidable_predl₁^l₂s�o�filtera
����
������^���o�����filter_mapoptionguard��
����!��������'4��_a���!�������
���]�_�������C�������filter_map_eq_filter���perm_filter_map��
�PInfo��decl�exists_perm_sublist��l₁l₂l₂'^s�sublist
p~��l₁''�a��H�!�����^���!~�k�'�4�!L����>���#�"�#� �$
�#�5��'�'�����dintro��"�� ��
�#�I�0���$5��#�T�8�����_x��I��eq_nil_of_sublist_nil�B�nil_sublist�xl₂4l₂'�p�IH����A���
�"�
� �
�#�u��/��#����D�sublistdcases_on�'t_1��t_2�����]H_1��
H_2����A>
H_3�(��B�H�A��
���I�"�I� ��8�#��������]�'��1�2�3�����s�������48�2����>8���3�(��@
���������-slnil�@���C�"�C� �'�#��������/���w�s�1�2�	=�������e�3�(��e�����������e���A�"�A� �$�
>�#����H�
�'A����
��
�ss_l₁��s_l₂��s_a�]s��
�1�����C�5�C�8���2�������'���3�(��>���/8��
���-cons��
���"�.� ��#�3��5�B�e�8���2�
����
�����3�(��8��L��&��8�����"�X� �-A�#�\��0�0�@�]��hd_eq�����/�����]�7��tl_eq���.�]�3�(�^��a�eA�u�`8�&�0�8���5�"��� �/�#��������B�;���X�/���.�]�6�.�8�u�3�(�6�'�9�@����9�&�5�'�B�����"��� ���]�#��������H�8��-A�]�3�y�w��e�@_a���"�����#�����B�����"�����#�����H�<���������"��� ���e�#������-���f��h���e���e�#����
���=� ���������"��� �B�#������5�-h_w��h_h���������"�
� ���H�#������0�G�
��R���B�#� ����&�����0�/�'l₁��s_l₂��s_a�]s��1�����H
��C���F�2��3�(�!����"�#�-cons2���/�"�.� �2�#�f�;����U���2�J�K�3�(�����t��_���Y�"�X� �[�-8�#���c���:�o�q�B�������8���e�]�;���0�e8�3�(�6�8
A������>�_�5A>
���"��� �����'�#�����������;�t�����e�A���C�6A�3�(������H����B�����_����H���"��� �����/�#�����C�^>�e�3�(�6�9A��
�����@�B_a���"��� ���'�#���������"��� ���/�#�������E���������"��� �����]�#��������0���f���=�������]�#���
���=� ����"�
� �
��@�#��h_w�h_h��������"�� ���B�#���!���5�G��*��R��/��#�2�������5�@�_���-�5�]�8
�C�C�U�l���o���X�8��xyl₂�����1�����At_1�#t_2�
��8H_1�o
H_2�	=����
H_3�(��������
���"�A� ��8�#�������
A�{���M�K�����
�*��
��7�l���N�o�p���s�O�(��
�����������]���?�"�?� �	��#��������>����*�g���N�2���3���/�O�(�������s���/�����"��� �f���#��������8���s
�C�

�*s_l₁�#s_l₂�
s_a�'s�w
�M�	=���?�P�?�S���N�D����>�H�O�(��>�
��8��
�
�&�H
����"�� ����#��������]�/�S���N������8�����B�O�(��8��2��&�B8���"�I� ��A�#�>�������/�'���:���BA���H��R�H�;����O�(����@��A�T��8�'�8�/�"�.� �2�/�#�b�7�9�8�@�e�;�
��������Q��S�T�O�(���'����/��u��&�-�'�]�����"��� �5�]�#���������B�@�S��A���O�X�V�]���/���-t_1�.t_2���S�7H_1�����e
H_2������
H_3�(���B����
���"��� �����#��������0�-�'�v�V�r�'	�-��	�0����S�6�:�W�����@	���X�(��
����	�����������"��� ���#���������-���S�^���b�W�����:	�5�����X�(�����������������"��� ��	���#�����������������/�C���/��
s_l₁�.s_l₂��s_a�5s��
�V���@�����B�Y���\���W���
�����X�(�����>��
���&��
����"�,� �!�0�#�0� �2���5�����\���W�������������X�(������8�K��'����"�� ��-�#�V�#�%�$���5����:�����0�����5�[���;���,�0�X�(�"�0�&��m�$8�&�!�08���2�"�{� !���#���"�����������;����-���,�0�Z�,�\�m�X�(�3�5�6���'���6�&�2�5�����}�"��� �����#���#�����������\��-�0�X�p�n�v�5���G�{���5�R�2�5�5�#����}���}���������B�2�5���8��������l₁�.s_l₂��s_a�5s��V������
����S����W��X�(�!����"�#�?�-�"�,� �/�#��:�S�������W�I�J�X�(��������_����"�� ��8�#�(�[����:�g�i�_���S��8��;���!�58�X�(�3�5
A���=�;>�_�2A>
���"��� �����'�#�L���S�����;�l���7�5�^�7�`�3A�X�(����������_���_�}��������"�m� �����/�#�r�$�t��w�����`�">�5�X�(�3�6A��
���E�����G���"��� �����'�#�����^�R�~�^�^�#���������B�}�^�h�����&�}�����8
�B�C���B���l�.�'���v�X�u�vl₁�#s_l₂�
s_a�'s���M���4����
��?����,�N��O�(�����
��_�H��"�� ��#�� ��������N�0�1�O�(�������_�B���"�I� ����8�#��C���:�O�Q�c�H�����8���'���;����8�O�(����
A�w�2�0>�_�-A>
���"��� ���8�'�#�A������
��;�S���X���b�X�d���O�(�^�`�e��R�b�T�R�_�0��e���"��� �����/�#�c�������H�B�d����O�(���A�w
�t�:�v�]���0t_1��t_2���d��H_1���]
H_2������
H_3�(���@����
��"�
� �
���H�#������5�0��b�g������������a������������d���h�����i�(������	����������"�
� �
���#������6�d���d�:�d���h���������i�(�����������������"��� ����	���#���������'�C���'��
s_l₁��s_l₂��s_a���\���g���e�����@�j���\���h������i�(����>�
��&�
���7�"�7� ���7�-�#������\���h��������i�(���H�8����&�H�-�"�,� �/�X���#�$�:����:�����5������l��;�9�i�(�3�-����5�58���-8���"��� �����5�#�C���;�k�[�k�7�\�5�i�(���0�`�'�O�d���0���n�"�m� �p�����#�[�|�\�"���5�i�8�6�=�������G���0�R�~�m�m�#�p���B�����m���m�����g�0�����]��s_l₂��s_a���`���g��������
�a������������d��h�j����i�(�"�&�"�$8���_�!8�|�"�{� ����#����������������d������h������i�(���������_���"�7� ��7�5>�#���	����:��������!���n�!��3�7�5>�7���d����A�`�;���m��A�i�(�����'����������_���'�>���t�"� � %� 
�� 
�]�#� �&� �2� �!���"�X�%8�X�&�d�3�6>���;������>���m���m�m�`���'�i�(�u�x�/�x��� 7�x�_�t�/���� 
�"� E� � � � �e�#� K�'� M�}� P�2�!�`������i�(�����'��
� b� �����G� �"� � � � � 
�!�]�#� n� �x�y�/�R�t� u�y� 6�#� z�� 
� k� �]� k� ����t����/� ?� t�z�� @����A8
�@�C���@��8�l���� ��b�X�u�b8
�C�?���������X�q��l₂'m₂4r₂�p₁;p₂�IH₁��#��������"��� �0
�#� ���IH₂��
��������"��� ��
�#� ��������w_a���"��� ��
�#�!��>���?�"�?� ���#�!
��A�v���!���"�A� ���#�!��A�f�?�=�!���$�#�! ���=� �! �!#���"�I� ���#�!'���'h_w�! h_h�!"��_a��"���#���/�Y�"�X� �[8�#�!6�_�]�y�!5���X�"�X� �[�#�!C�!8�y�Y�!G�/�"�.� �2>�#�!J�7�e�f�X�=�!F���1�#�!U�6
�e�=� �!U�!Y���"��� ����#�!]��h_w�!Uh_h�!X�����G�����R����#�!k���B���8��!?��
�PInfo��decl�perm_comp_perm����acrelationcompYYY�funext)x�!��!�Yafunext)���!�������c�q�!�^^^�����!��_x�!�_a�!�__
��b�M�����!�bb
���f�=�!��>���B�=�M�!��!�5h_left�!�h_right6�����
�h��G���M�ab

�e{
|�B
�PInfo�|�decl�perm_comp_forall₂�������Vr���l^uv��hlu�dhuv�forall₂
��������"�Z
����V���"��^�����"���d���"!�j����������������"�A>
�""�������"�'�A�Z��������"8�listforall₂dcases_on>8t_1�t_2�����";H_1�4
H_2�b
H_3�(�"�]�/�'���"_
�""�?�����"�e�]�/��������������
���*���|A�������"C�3���(�"�/�'��s�"��|�'��nil�/�'��""�������"_����
���";�*�"����(�"��|��"��"��'�A�$�������M�"`���|�/�"��e�"����"��"��"��permnil�'��+���"�
huv_a>huv_b>huv_l₁�
huv_l₂��huv_a_1�
huv_a_2�"_
�����������@���e8�Y�e���(�"�B�@�e�
>>8�"��H�Y�@��cons�B�@�e
�""�I���"�H�B�@�Z�B�
A�������G���X�">8�hlu_xhlu_l₁�hlu_l₂�hlu_a�hlu_ih�������"C
�""�������"����������"��1���"_�4���g���������"��"�>���"��H>���'>8�����(���"�����HA�""�.�����"�-�����W�'�"T�����Ht_1�Xt_2�����"�0�-��H_1���8�e�/
H_2�����5�
H_3�(�"�����5���B�e�'�#c
�""�������#o�"�������Z�����H�B�/���'A
�����#�	�����-������8�|�����(�#V�`�]�'>�#V���|�-�"��0�-���""�����0�#��"�5�0�-�Z�0�#Y�]A���/���huv_a��b��huv_l₁��v�#�hab�0
huv'�#c
�����#x�@���������������]�Y�����(�"�����������H�eA�#����Y���"�������
�""������#��"�������Z�����-���@�����B���:���������������������;�j����������H�Y�>���(�"�2�!��5���0���]�$�5>�Y�!A8�"��2�!�A>8
�""�����2�$%�"�}�2�!�Z�2���������������;�����������,���"�!����������!���$���(�$*�$.�5���e�$*�$.
�Y�2�>�"��}�2�!���
>�""�m���}�$]�"���}�2�Z�}�������-���"����������$�"��$B�$���$B���$G���(�$b�$f���$x�Y�}�'A�"����}�2���'��A�""�������$��"�����}�Z��������
���$�$���(�$G�$O�$��$V�5>
�e,�$]���$]�M�$����$��a_0�$e��A�$��Y���/��]Al₂�$]�=�$��>�"�t�������Z���'�=�M�$��$��""� E���t�$��"� 
�t���Z�t� 
�����Y�t�e�/h₁₂�$�h₂₃�$�
�/�"���� 
���$��M�"� M� � 
� P�!��Z� �Y� �B�e�Y� 
�@�e�"� � 
�t� ����$��Z� 
�$��$��]�"�� � 
�t��@��>��� 
�@�]���"��$B���$�]�l�X�#��G���X�#B�#�

hlu_xhlu_y8hlu_l��������";�D�	w���"C���
���"��#+�3
���"_�#/����"m���"�"T�@�e�]t_1�At_2�hh₂₃�"�H_1������A>
H_2�R>
H_3�(�#J�#����'�A�#J
�""�����-�%��#V�Z�-�`�/�#����8�������%����1���O�|�@���(�"��
A�
>8
�"��
�|�B�"��H�B�@�""��(�(�"���H�B���%q�%p>8�#:�H8�
>h₂₃_a�@b₁�@h₂₃_l₁�Il₂�(h₁�H
hr_₂₃�#J
�����#��%��'�`���5�����#��'�Y�0���(�"���5�0���@���e�]�/8�%����Y�5�"����5�0
�""�������%��#c�Z�����@�#e�]�#Y�8�]�/�8�:���5�e�����@�������5�;�����B�@���#��@�#�>���(�#��#������H�B�'�#��>�#�A8�#�A>8
�#������#����H���0�@�;���%��e��&�������"���������������B�&%���(�#��#��&/���H�/�#��#�
�Y���>�"��������-�
>�""�,�����&a�$q�Z����-��0�������#t�&���&�"��&E�&%l₂�&E���&K���(�$q�&h�&g���&y�Y���'A�"�������0�'�&wA�""�7�$�$�$?�Z��$�0�$�5�-
���&�&%���(�&K�&S�&��&Z�&I>
�"T�����t_1�,t_2�$���$H_1� /�����5
H_2���$]�]
H_3�(�$��������e8�$�
�""� �����&��$��$��w���w�����Y���H�@�&wA���j�&w	����!���$��|����(�$�5�5�0�'�$	�2�|�!�"��2�!��$-�&��$F�$M�e�/�&��-	�!hr_₂₃_a�b₂�hr_₂₃_l₁�{l₂�$%h₂�2
h₁₂�$�
����� �&����w��� 
�����$��B�$����(�$�� �����H��$�� �$��%
�""� M��� �' �$��$�� P��$����$��-��� 
����� 
�:��� 
����� ����� ��� 
�;��(��������'=�-�Y�'=>���(�"*)�'=�'I�}�2�0�e�'M�'N>�Y�'KA8�"��'I�'K�'=A>8
�""+���'I�'j�"�'g�'I�'K�Z�'I�'g���'s���}�Y�'I���5���t���;���'�����'>����'>���"�'K�'=� M�������'K�0�'Z���(�'o�'t�}�5�@�'o�'t
�'y�>�"��'g�'I�'K���
>�"",���'g�'��"�'��'g�'I�Z�'g�'����'��t���Y�'g�������"�'=� M� ����'H�"��'��'Z���'����'����'��'��'����'����(�"-�'��'g�'��t��
�'��Y�'��/��"��'��'��'g�t�/����"".���'��'��"�'��'��'��Z�'��'�� 
�'�� �t�Y�'������'Q�'Z���'o�'u�'��'z�'����(�'��'��'��'A�(
�"��'��'g�'I���'��A�"����'����(�M�'��'��'��'��'��]�'�'��'�����e�'��'��'�� 
���(*�Z�'��(*�((�'��'��(-�()�'�� 
����������'����/��0�"��'��0�'Z�e�/�l�,�&w�G�&aA�X�$q�&wA�B�"��&E�B�&%�'�l�A�%��G���X�"�@�e�]�%�hlu_l₁�hlu_l₂�hlu_l₃�hlu_a��hlu_a_1�Vhlu_ih_a�������"��"�hlu_ih_a_1�������"d�"o�������"m���	�8�����h���"�>�%�����#?���#P����'����������#V�/�#��e���#V�'�����]�/�����#]���#c�e�#w�B�$��%����%��M�#t�B�#v�a_1�%��@A�#w�H�A
lb₂�%��=�(��>�&B�H�Z���'�=�M�(��(��""�
�&E�&E�#��Z�����/hab₂�(�h₂₃�(�
�/�$��#����#��M�$q�0�&ea_2�#��-�&f�0�e�!>lb₁�#��=�)�>�$?�5�&��=�M�)�)�""�{�$B�$B�$�Z�!���Bhab₁�)h₁₂�)
�"��$%���$%�M�$b���$d���e�$*���$,�H��2�H

�PInfo���decl�forall₂_comp_perm_eq_perm_comp_forall₂�������V���"���}^�~���""^�����"
�Z��^^����)}����V���"funext^��^�)u�)��)�l₁^funext3�������""�����"
�Z
�)���_�)�l₃���q�""�"�"�"
���)��"b�)���)��)�h�)��$��������M�"�T
���""'�����"�[
�)�44�����"
l₂��h_h�)��>�"(�"*���M�)��)��)�����9�"Qh₁₂�)�h₂₃�l
�������M�forall₂>Aflip23A>8�a_3�������)�8>�)�>8��)��#�#����"A>8�perm_comp_forall₂8>�*	�permsymm8�forall₂flip8>a8bA�9l'��=�)��>�)�A��)��A>�%8�=�M�*<�*>�)��������(�"C>8h₁�*<h₂�)>�G�������M���"_A�e�0A�"�>��/A��flip�/�'�>_x�)�_a�)�''���)�
��4��4�M5�"(���)��",�f4�=�*��>���"Q�=�M�*��*��""������#��h_left�*�h_right�#
���""�#�����*����A>8�PInfo���decl�rel_perm_imp�������V���"hrrelatorright_unique
�lift_fun9��a����)��8;99���)�implies_�)�����V���"��*�ab�"h₁�)�c4d��h₂�*�h�

�2�����#���)��#���*�*

�2���������*����
���)��
���";�";��
_a�*��������*��������)������"C�"C�"E�$��������M�*��������)������"_�"_>�"���*��������*��������)������"��"���8��>�f��h_1�+�>�*����?���)��?���"m�"mA����M�+@�+C���8h_1_left�+@h_1_right��
8���C���C�M�)��I��"��/�"���*��h�C�h�)��C�h�"��"��'�"��/Ah_1_left_w�Ch_1_left_h�+X�>�)���(�%��]�%���M�+p�+s�Z���e�'h_1_left_h_left�+ph_1_left_h_right�#B
��_x���%��]�@
�2�#��@
��%���%��#��e8�BAnnot��Annot���right_unique_forall₂�-�����H�@Annot��Annot�����*��""�
�����";���*��*�}���~���+�_a�+��!�+
�"F���+��*���?�+��*��+�relationcomp_assoc���
�����*��";�����*��)��
�
���$�";�+��*?�}�
�+��+�_a�+��!�+
�*F�+
���+��+���A�+��+��+��forall₂_comp_perm_eq_perm_comp_forall₂�A>Annot��Annot���G�#���#�M�*��+��e�*��*
�,���#�M�$�";�e��*
�PInfo��decl�rel_perm�������V���"hr�bi_unique
�*��*���_�)�����V���"��,:ab�"hab�*�c4d��hcd�*���*����rel_perm_imp>8andright�left_unique>8�*�>8
�rel_perm_imp8>�*	a8bAc��left_unique_flip�'�A�'left�,L�'�A�*��'�A>
�*.
�*.
�PInfo��decl�subperm��l₁l₂��1�2��^l^� ��
H�,��
�PInfo�0�VMR�0VMC�0�2�1�doc�0`subperm l₁ l₂`, denoted `l₁ <+~ l₂`, means that `l₁` is a sublist of
 a permutation of `l₂`. This is an analogue of `l₁ ⊆ l₂` which respects
 multiplicities of elements, and is used for the `≤` relation on multisets.decl�0equations_eqn_1���1�2�!�0�
�,���1�2���,��PInfo�6�ATTR�
���6EqnL�6SEqnL�0TK<+~2NOTA�subperm<+~ <+~ 2��decl�nil_subperm��l�,�
��;�G�3� �����4�,��

�R�j
�4�,��
�����
���!�,���q�,��αl�	��,��i���PInfo�:�decl�permsubperm_left��ll₁l₂^pa���,�
�,���@�A�B^�Ca
�2l₁l₂'��C��,�
�,�8
��,��,�
�]
�_�l₁l₂'p�C_x�,�_a�,��)��3�� �)�>�4�-���J�,�>8�,�A>�f��=�-���%A�4�-�7
�=� �-�-�,��'�h_w�-h_h�-��_a� ��"��� ���#�-"� �>�,��]�/8�exists_perm_sublist�/8�M�-(�����"��� ���#�-7��A�M���-<�,��e�]>�f���=�-;���	��#�-F��
��=� �-F�-J�,��B�@�h_w�-Fh_h�-I�����3�I� ���H�4�-T���]�G�I�-Y�R�'�B�4�-`���/��H8�B�-3Annotsuffices�PInfo�?�decl�permsubperm_right��l₁l₂l^p|���,��,�
��T�U�V^�W|��,��-�_x�,�_a�,��*�34� ���4�-��V�Y�,��,��f4�=�-�����4�-��0
�=� �-��-��-h_w�-�h_h�-����3�3�#� �4>�4�-��8>�,�-��R�8�4�-���8�\>8_x�-�_a�,�
�*�34� ���4�-��-��]�-��,��f4�=�-�����4�-��-��=� �-��-��-h_w�-�h_h�-����3�3�#� �4A�4�-��-��,�-��R�-�>�4�-��-��-�8>�A>8�PInfo�S�decl�subperm_of_sublist��l₁l₂s�,��,�
��a�b�c�.�"�3� �"�4�.!�
�R�"
�4�"
�,�
�"�PInfo�`�decl�subperm_of_perm��l₁l₂p��.��e�f�g��.)�R�2�4�2�,�

�
�sublistrefl�PInfo�d�decl�subpermrefl��l�,���l�subperm_of_perm�B�PInfo�k�nspace�jdecl�subpermtrans��l₁l₂l₃^��.��-��,���p�q�r^��.��-����3'� ���4�.b�%��-��-�a_w'a_h�.e��K�4�.k�V
�t� �.k�.o�,�a_h_w�.ka_h_h�.n��_a�-�-�J�.w�-�subperm_left>8�w�.w���#�3�#�-��4�-��8�w�-�,��A8�f�#�=�.����(��4�.����=� �.��.��,��/�'Ah_w�.�h_h�.������3��� ���]�4�.����/�G���.��R�^�/�4�.����'� trans�]8��.��PInfo�o�!decl�length_le_of_subperm��l₁l₂��,�has_lele�
	nathas_le�

�
��}�~��,����.(��.�.���
a_wa_h�.'���4�.��D
��� �.��.��.��
��
�a_h_w�.�a_h_h�.���_x�
	�.��
+�
&��
	�.��
&�.��|�length_le_of_sublist�PInfo�|�%decl�subpermperm_of_length_le��l₁l₂��,���.��
�

�b�������,���/�!��3� ���4�/�D��,���a_wa_h�/#���B�4�/)�#
��� �/)�/-�!�a_h_w�/)a_h_h�/,��_x��8
�2����������>8
�eq_of_sublist_of_length_le8�.�_x�
	�.��P�
+�
v�|8�8Annot�Q�PInfo���(decl�subpermantisymm��l₁l₂h₁�,�h₂�.
�b��������,����/o�7perm_of_length_le
�length_le_of_subperm
�PInfo���-decl�subset_of_subperm��l₁l₂��,����������,��.���.����
a_wa_h�.'�.����.���4��a_h_w�.�a_h_h�.���������subsettrans�	��subset_of_sublist�PInfo���0decl�exists_perm_append_of_sublist��l₁l₂��.��l}�(��������.��������.#����45��
��_F������'��E�4����X�.��'��E
��������K�������#���
���� ������.���
���t_1�
t_2����xH_1�	=
H_2��
H_3�(��8��
�����C�#>�*A
���	:�*�����3������!���������(�
���������A�$8�F��7�3�����s���������������e���?���A��������I���#��%��
������(���
>
�04�
>���B�����I���0(	�������]�������?��������C�-_�*
��������(�������������C�'

�
AnnotinnaccessibleAnnot���*�0Y�G�C�0^�
>�B�B�
>�C�����C���3
a_l₁�
a_l₂��a_a�/a_a_1���������A8���A���0#���
>�
���(���A>��
���R
�Y���X�Z�'�#�.�%�-�/���/����D8�H���I�0����I��0����������X���.��^�������!j�#���%��
���(���/
�0���8�~�/8���������#���%�5�e���A�0�������������X������������0�
�0����(���'���0��'�'��_a�/���.�1>�#���%�0�]��������

�8>AAnnot��Annot���0�
�eAnnot�������.����������������#���%��
8��-��.����-�������	�������������������#�
�%��
�8��	�1�13��/���0�����������A�0������1B��������

��A�Annot��Annot���0�
�@Annot���f���=�1A����������

����'Annot��Annot���1
�BAnnot���!g�1\�1E�!q�1F�1E�0��@�1K�1`���A��1d����1c�1`�1e����A�@�1<>�C�I>�0�8a_l₁�
a_l₂��a_a�/a_a_1�0����0����0���
���A��0#8���0����(�0�A���0��0��z�Y���X�0��0�����1����0��0����I���0�����0�8���(���0�>
�1��0��9>8�������0��0��0�������H���I�������/���.�1�0�
�0���1����(�1��0��1��`8��_a�/���.�0��0�A�������1�0�

�1�Annot��Annot���14�18
>���1��1?�����1@�0�������2�������1I�0�

�1E�'Annot��Annot���f���=�1����������1W�1

�1S�/Annot��Annot���!g�2�1k�R���'�1�>�1�8�C�A8�1��m�m
�X��


�PInfo���5decl�perm_countp��p��_inst_1��l₁^l₂s�o�

�countp��
�2_�����������^�����o��2c�

�
���2b��!�2c�2m�*�
	�2`_a�
	�!�

�2\���2w
�

�2z���2c�2k�countp_eq_length_filter��
��2m�2l�
����!�2m�2��2s�2b_a�
	�!�

�
����2z�2����2m�2��2��|�����perm_filter��
�PInfo���>decl�countp_le_of_subperm��p��_inst_1��l₁^l₂��,��.��2`�2b�����������^����2����3'� ���4�2��$��,�
�.��2x�2za_w'a_h�2���K�4�2��.m��� �2��2��.��2\8���2�a_h_w�2�a_h_h�2���_x�
	�.��2\A>���2\>8�>��.��2��2��2��perm_countp>8�2��countp_le_of_sublist>8�2��PInfo���Cdecl�perm_count��_inst_1��l₁l₂^paa�

�count�^�_���3
���������^��a���2���a�
�PInfo���Gdecl�count_le_of_subperm��_inst_1��l₁l₂^s�/na�.��3�3���������^���30���countp_le_of_subperm�3!�3%
�PInfo���Kdecl�foldl_eq_of_perm�������Vf��

l₁^l₂rcommright_commutative
p�db���foldl�3Q����V���3G��^�����3K���d�perm_induction_on_x4_x�����8�3M8>
�3d
brfl�3Q�xt₁�t₂�p�"8r��>��A�3MA�>�3z
bA�?xyt₁�t₂�p�r��A����3M��'A�3�
b�����'�3M�'�/��#+�p�3��p�#,�3��3����3���3���!�3��3����'���/e_1��6�e�6�@e_2���B���H���H�3�
���H�6�H�3��3��3����'�3��3��3��3��3���foldl_cons�'�/��3��3��3��3��3��3��3��3��3��#,�3��3��#,�3��3���3��3��3��3���!�3��3��"��'�3�_a�'�!���/�3M�/�]�'�'�J�3��'�J�3��3��4
���3��3���3�t₁4t₂�t₃�p₁�p₂��r₁��A�3��3��3�r₂����3��3��3�b�'���/�4
�4
�4�����PInfo���Odecl�foldr_eq_of_perm�������Vf��
l₁^l₂lcommleft_commutative
p�db�3L�foldr�4S����V�	�4J�
^���4N��d�3__x4_x���3`�4O>8
�4c
b�3q�4S�xt₁�t₂�p�"8r�>�3v�4O�A>�4v
bA��3��4O�'�A�l�4��3�A�4�4��4��!�4��4�������'e_1�3��6�]�6�ee_2���@���B�3��3�
���B�6�B�3��4��4���foldr_cons�'�A�4��4��4���4��3��4��4���!�4��4��"���4�_a��!�3���4O�/�'��4��4��3��4��4����4��4����G��4�xyt₁�t₂�p�r�A�3��4��4
b���3��4��3��4��3��3��7�4��4��4��7�4���!�4��4��3��4��4��3��4��7�4��3��4��4��/�'��3���/��]e_1���e��e��@e_2�3���H�H�B�B
�:���6�H���B�l�/�5�4��5	�4��4��3��4��4��4��#,�4��5/�#,�5'�5*�57�4��5
��4��3��4��7�4��4���!�4��5M�3��4�_a�'�!�3��0�'�4O�]�/�'�5S�0�5W�3��5^���4��5K���4���5M�3��4��4���!�5M�5p�3��4�_a�'�!�3��5S�0�5X�5^�3��5S�0�5^���5M�4����-�4�t₁4t₂�t₃�p₁�p₂��r₁�A�3��4�4�r₂���3��4��4�a�'�41�5V�5��5������PInfo��Wdecl�rec_heq_of_perm�u_1�β��2fal^�����b��ll'hlf_congral�l'�b��b'����$
�heqE��
�"��5��'�p�4��'�3��4�
f_swapaa'8l�b�9�5�A�%Z>�	w>
A�F�%Y�5��5��5��5���listrecE8�!>�5���3�5��4�5��7�5��8�9�:�;�5��B�5����8��9��:��5���5��A8>
���6heqreflE��5��hl_x8hl_l₁�hl_l₂�#hl_a�&hl_ih�5����5��'�>A
�"�6�N�0
�O�5����5��]�/��'�/�6$�N�	B�O�5��e�5��@�e�/�]�e�61A8�5��B�@�]�e�6>hl_x8hl_y>hl_l�#��
�6hl_l₁�hl_l₂�hl_l₃�#hl_a�Vhl_a_1�*hl_ih_a�5����5��/�'A��+�6_hl_ih_a_1�6*�V�#3�X�5��e�61�6,�62�W�$�Y�5��B8�5��H�B�e�@8�B�6r�V��A>�X�5�����5������B�H���A�6�A�W�Z�A�Y�5��-�'�5��0�-�����'�-��6��heqtransE�0�]�0�/�0�'�5��5�0���-�]�6��/�6��'



�PInfo�1�_decl�fold_op_eq_of_perm��op��4I_inst_1is_associative_inst_2is_commutative
l₁l₂ah�W���foldl�6�
��]�6��^�6��`�6��b�c�d�e�W�foldl_eq_of_perm
right_commis_commutativecommab8��is_associativeassoc�6��PInfo�\�qdecl�prod_eq_of_perm��_inst_1comm_monoidl₁l₂^ha���prodsemigroupto_has_mulmonoidto_semigroupcomm_monoidto_monoid�xto_has_one�7
�7��p�7�r�s^�ta�j�r�s'�t�C�6��7�7
�7�7�7�7&
�7,����7���75���!�77��&�77��has_oneone�7�7@�����e_1�Y�6�68e_2���GA�p�
�UA�6A��75�7@��prod_nil�7�75�7@�7b�q�7B����7@��h_xh_l₁'h_l₂4h_aLh_ih���78�7
8�78�78�78�7v
�7|����7>�7
>�7>�7>8�7>�7����7���
���!�7���&�7���has_mulmul>�7��7�
�7����>��A��/�6�'�6�/���>�G�e�5
�5

�U�e�6�e�5
�7��7��2>�7��7��7��7���prod_cons>�7�chas_mul>�6A�6�e_2���6�/�6�]e_3�5���@�@�7��@�7�
���@�6�@�B�7��7��l>�7��7��7��7��7�
�q�7���B�7���h_xh_yh_l4��6��7,���7,�������!�8��&�8�6��7��7(
�8�7,�8�����8��7G�6A�6������G�/����
�U�/�6�/���8�8�7��8�8�8�8�8�7#comm_semigroupto_semigroup�zto_comm_semigroup
�8?�8�84�8�7,���86�7��7&�����7��68�6>����6��6�'�������]�]�7��]�8T
���]�6�]�e�8T�7(�l�8E�85�8J
mul_left_comm�8<
�8�8�8�83�8�8�7,���8�8J��
�8k

�8n
�8��8�8s�q�8����8��h_l₁h_l₂'h_l₃4h_a7h_a_1;h_ih_a���7��7�h_ih_a_1��7A�7
A�7A�7A>�7A�8��8���/�7��7
��7��7�A�7��8��8����!�8���&�8��/�8��8��������'����6�]�6�e�����@�G�B�M�M
���4��M�8��8��7���8��8��8��8��8��l��8��q�8�����8���
�PInfo�o�zATTRto_additive���oto_additivevalue_typemknameanonymousoptionnonestringATTRto_additive_aux���onamemk_string
Strsum_eq_of_perm�9
Strlist�9decllistsum_eq_of_perm���padd_comm_monoid�r�s^�ta��listsumadd_semigroupto_has_addadd_monoidto_add_semigroupadd_comm_monoidto_add_monoidadd_monoidto_has_zero�9%
�9,��p�9�r�s^�ta�7!�r�s'�t�C�6��9�9�9!�9#�9)�9:
�9@����9,���9I���!�9K��&�9K��has_zerozero�9+�9T��7]�9I�9Tlistsum_nil�9%�9I�9T�9]�q�9V��7j�9T������'��4��L�����98�98�9!8�9#8�9)8�9p
�9v����9>�9>�9!>�9#>8�9)>�9���9��7����!�9���&�9���has_addadd>�9��9�
�9���7��9��9��7��9��9��9��9�listsum_cons>�9��has_add>�6A�6������6�/�6�]���5�7��9��@�9�
�7��9��9��7��9��9��9��9��9�
�q�9���B�9���������4��6��9@���9@�8���!�9���&�9��6��9��9<
�9��9@�9���80�9��9��83�9��9��9��9��9��97add_comm_semigroupto_add_semigroupadd_comm_monoidto_add_comm_semigroup
�9��9��9��9��9@���9��9��9:�����9��68�6>���8P�6��6�'�����8R�9��]�:
�8_�:�9<�8o�:�9��:
add_left_comm�9�
�9��9��9��83�9��9��9@���9��:��
�:

�8��:4�9��:$�q�9���8��9�������'��4��7��;�����9��9�����9A�9A�9!A�9#A>�9)A�:X�:^��/�9��9��9!��9#�A�9)��:g�:m���!�:q��&�:q�/�:p�:p��8��:n�:p�8��:n�:m�:p�:p�:p�8��:p�q�:y����:p��
�PInfo���zdecl�prod_reverse���p�7l��
�7
�7

�7
�7
�7
�:��
|�:���p�7���prod_eq_of_perm
�
|�reverse_perm
�PInfo���~ATTR�������9ATTR�������9
Strsum_reverse�9decllistsum_reverse���p�9���:��9
�9
�9!
�9#
�9)
�:��
|�:���p�9��listsum_eq_of_perm
�
|�:��PInfo���~decl�perm_inv_core��al₁l₂^r₁r₂���r��
�����i�5�������^����s₁'e₁���h��
s₂�e₂��J�
p�Z�3^A_x�#_x�
���������������?�����	������D�F�I�'�*�*

l₁�#l₂�
r₁��r₂��e₁�	=���5��e₂�������notelim�q�e���	��	��	�
�not_mem_nil�@�e��;#�;"�;%����!�;#�;3�0���_a�A�!���@�
>�;9���;#�;2�22�;2����;3���!�;3��&�;3�(�;"���;N�;P�;"�;1�;Q�q�;3�;U�mem_append�@�e�;1���;O�;O���;O�;T��&�;T�)�;"��;g�(�8��e�e�;h�;i�q�;T�;o�t�@�e�e���;m��q�;m����@�e�;h�;h���;h�q�;i����;h�q�;Q��V�;O��xAt₁�
t₂��p�0IH�������?���A���C���
�*�
	����0(���H��#�X�%���;�
���?���A���C���I���;���8�����;�������>���-���.�����0��`�-�`�A���0��0����r�0���������A>���0���������0��8�0�8�'A���0����0������0����;��;�>������0����;��;��;��;������;��;�������;����5���/�'���1���<
�����<�<listconsinj_arrow�����]�'�<h_1�������]h_2���/�<����>�@�e
���#���%����>�<,8h_3�#����@h_4�A�@�h���������j�����3�B���8�$��/�q�������2�!
�~�#���%�}	�}�e�<H�]��������A�<R�@���j�<7�'�<7�H�����!�����{�]���{����������m���$���� ��� E����� �#�<a�%� � � 
���'��#�'�%� M� P� ���'=�#�'>�%�'=�<x
�����$������B�<�
� w�#� �%�t	�t�H�<��B�����]�����������m���$���� ����� E�#� E�%� 
� 
�t�����<j��� M�<n�<n
�������}�@�<����$��@���$����&��w���B�<���� �������<a���'���'>���'K�����'I�#�<��%�'I�'N�'K�������'h�#�'h�%�'g�'s�'I�'��#�'��%�'��<�
�<��<n	� M�-�<������<��<��@�<���� w�H�B����� E���<a���'���'>�����<��#�<��%�'K�'K�'=�5���<��5�'g�<��<�
�08
���H�B�H
z�0l₂�������0����<�<
�������1��
�������]�'���#���%����8�=L��
�����=@�1�=D�=H������=M����8���e�]�<.�<+��8�����=]�=a�<#�<+����8�@�]�=gh_1�#��@h_2��1!����>�e�<������H�B
��#��%��	����=���Ah_3�/���Hh_4�j�'�H��8���!�����{�5>�#�{�%�28�5�!�/������� /���2�e���-�������}
�o�#�$��%��	���B�=����'��@���8�$8�#�7�%�!�<<�'�=��H���=��=��]�=��������}�2A�����}�������<����=���<��=��0���&��<��H�w��� �<�	� 
���<�� 

�/�H�����<��#�m�%��A�<��e�<��-���<��<��5��� �H��� ��� �������<a���'���'>���<����<����<���<����'��<p�-�<p
�<u�<x	�'=�0�<x�'=� M�@�-���<��5����� E���<a���'���'>���=���<����=���<b�<g���>���'�<n�e�<p�����'���'?�>	�<x�@�>	�-�>	���'K�5�����<����'h���'����'������'��#�'��%�'��'��'�������/�#�>9�%�>8�>8�'�0�#�>E�%�>E�>J
�=�<�	�'g���<��<��������'��<p�>!�>d���<u�0�>%�����<����<����'h���'������>-�#�>-�%�'��'��'������>6�>1�0�>3���>8�>=�>=
��'I���<��H�<��5�<��<��H�5���'I�'K�H�5��A
���0�-�
��y�-l₁�������0��8�;��;���������������1�=D�=H���=L��8�=L�����;��=;�=>������<
�=D�=H�>��=M�����=D�=H������>��=]�=a���<+��>�</�����>��=L�=]�=a�<$8�@�]�>�h_1�<3h_2�>�e�=~�=��<R��H�B
��=�����=�Ah_3�/�Hh_4�j�#�,�%��<W�H������!���=��=��=���� /����<FA�=��=����=��'
�o�=����/�'�B�=��@���8�=��<<�H���=��5A�=�>�=��=������=���2�=��������<��=��=��'�<��=�� w�<��=��/�H�<������<��=���<��<��0�<��?B���$���� w�5����� E���<a���'���'>���<��>���<b�<g�<e�e�>�<g
�<��<n�<p�@�-�<����o�?B�0����� ��� E���<a���'���'?�<x�>	�<x�B�>	�0���<����'I�<��<�
���<��<��<��]�<����?����<a�����<a���'��> �<p���<u�?u�����<����<����'h���'����>q�>l�0�>n�����>6�>}�?x�<��<������<�	�'I�5���<b�<g���?����<��<n�@�>�������'>���<����<����'h�����'��<��'��'g�<��-�?������>q���'��>1�>1
��'K�<��<��H�5�?��<��5�<�	�'K�0��'K�?��?����'K�'=�H�5��>
�5�-���'�C���'�}��
�������������=L���=\�=`�/����E�<+���=o���@�]���1!��A�1!�
>���E���<+�=o�@�����@!�=yA���B�@�?�=���A����@�1!�@/�@3�=~�=��<S�H�@�@8h_1�/�Hh_2�j�?�<8�B�<�!>�=�8�<=����
�.�=��$>8�/�=����'h_3�<[>��h_4�=��?:�����}8���}������>�=�8�=����-���<��?)�?B���5�����t�]
� �<�� 
�e�]���<�� 
�'��H��� /��8�<F�=��]�@����������'�?O�@f�0�������/A���t�]���t���<�� 
�<���<��H�@������<b� �@�?^� ���<��<n� P�B�@�-�<n� P
�/�����&��w�]�<�A�<��@��5���<��@v�?��@v���?��?^���<a���<��������'>���<����<����'h���?����>q�2�?����<��<����?��@�
�?x�<��'N�������<��@��@�5��� G�?^�������'���'>���<����<����<��<����<������?��!�'��>l�>l
���'?�>�H�?u�@����<��<��e�<��0���<����<��@��<��@�>��@����=�@������'����>-���'����>9�����>G�>J�>E�>8�>J���A�����1�#�A
�%�A�A�>E2�#�A�%�A�A
�@��>l�'��5�0���>l�A+�������<��@��@��A9���?x�<����<����@������'h���'����>-���'����>C�>=���>@�����A�>J�0�A���A�A�A
��'��0�R�'��-���AX�H���-�H����rfl�'��?��Ad�<��H�?�����A
�����5�
�0xAy�t₁��t₂��p�^IH���?���A���C���I���;����;��Z�0��1�
���A���C���I������;���8�;����r�0��;��;���>�;��������;��8��;����;��0����;��`A�;����5���������0��<�<
���'A���<�=W�����;��;��;��A�>������;��A��A��A��<
�����A��A�����>����/�=H���>��=M���>��A��<�����e���]�'�A�h_1�������eh_2�E���e�/�<����>�@�@2�e
���1!��>�B8h_3�e���@h_4��A���H�@�2�������8�<<��$�$���B���?�5���9���	� /�]��
�����=�	���e�B4�]���j�<7A�<7��H�@���?5�B'�?6�	�=��/�=����@d�2��}����]�@k�����<��<��e�<��@p�-���<��w
�<��5� �=��H�=��B�� /�/�=��������<��]�<��<������<��<��<��0�=��BS��� ���<��<��<��<���� G�<e	� �Bq�H���&��<��BS�By��� E�<��5��� E���<b�<g�<g�<g���<��<��<p���<����<��<��B}�B��� � 
�����5�B�C� E�B�B}
�B�C� �B�BS�-
��
u�5l₂_tl�������1���=C�=G�A������������E�<+�G�=n�@�B�B�1!�8�����=L�����=\�=`�B����E�<+�G���B��B��B�1!���8���E�G�B��B������B�=z���@�B��?�=��"�=�>����=z�B��=~�<R>�H���B�e�B�h_1�/�Hh_2�B?�BA�@N�����B�.�=��&��'�=��$�&��h_3�<\��h_4�=��'�H�<�}�2�]�-���0���~�<K�<F��>�<G�/h_5�=��-h_6���e���5�-�����������&��w�'�<��@�w�w���0���<��@�� 
��� 
����<b��� 
���<��<��<n� P�e�<������<�����BM�CR���5�-���<��C9�C4�5��<��H� 
�/���'9� 
�� �
�'��<p��� P������'=� M���<��<��B�<��-�Ci�<�
�����<��>��'U�'N�H���=�>X���<��'s���>W�5�
�<b�<g�H�B����� M� � ���'?�>�@�>	���C��>	�����<��@��<��Ci�����<��Cs���<����<��<��<��Cx��<��<�	�'��<��'����C������<��<��Cs�C����'h�����'h�
�?��?��?�����>i�'��-�>o�C��>n�!�?��>1	�'��'��0�}�>1�C��C�
�
�<��<����C����?��C��C��C���'��-�2�R�'�	�'��!��5�C�'h�5��A
�5�C�<��5�Cs��
��v��l₂������1!����=y8�@2�B��]������=��"��
�C�B �C��?�&���?�&�
A�����"�D�=��C�D����j�D�<8�B@����B�C�=��C�$����<9�D3�@N�D5�=��B$���B(�D:h_1�<[��h_2�=��5�=��=��'�B+�H�C�<F�=��/�-���C&�<F�C'���/h_3�=��-h_4���=��Bb���<�����@�5�����0�o�?.�=��CR��8�eh_5�@����5h_6�&��B�w���5��� 
�/�� 
���<b� �]� ��<eA�C�� � �������?�� P��� P����'?�-�>
���>*�?��<��Ci�<��]�/�-���<��C]� 
A�<�>�<��B�C]�C>�5���?��D��D~����'����CH�����'=�/��'=��<��D��<��/�Cj�<�������'I�'K���<��Cx�'s�@�<��e�<��5�Cx�'s
�����?��Ah�'��C��!�@��>l�C����>l�C��'��H�B����'?�>�/�<x�'�C��D�������'K�'=�]���<��Cr�'N�e�<��]�<��0�Cr�D������<��<����D��C����'��D����'����>i�>n�D��C��2�?��C��>1�C��'����H�����?��?��D��'��B�D����'��'���'���>.�'��>1�H�>3���E�2���>:�>?�5�>?�>=���>@���E�E�}���A�A�A�����A
�E�AI�A	�A�A���t�A�E'�A�-����>i�>n�>l�B�>n���C����>.�C��>3�E�C��>3�2���>:�>@�E���EC���>G�>J���A����>G��AI�t����A��3��4��5����6�#�ET�%�ES�ES�EQ�'K����7�#�Ea�%�E`�E`�ES8�#�Em�%�Em�Er
����EN�EM�A�#�EN�%�EM�5�E��!�E�
�����EP�EO���E��EM�#�EP�%�EO���E��2�E��E��EQ�#�ER�%�EQ	�EQ�EQ���'=�E��E��E��EO���}��>F���EI����A
���A���EN���EP�����ER�E��E��'=���E^�EX���E[���E`�Ee�Ee
����A�A�A�A�0�E���E����E�E����E��E���EO��� M�R�EO�E����2��EO� M�E��E����EO�EM���2���/�}�2
�H
���C�'����D���
��y�0l₁_tl�����==�A��=>������������=L�=P�@�B�@���<+�=c8�<+>�����1�=@���=D�A��B��������E�<+�B��B����1!����>�1!88�����=M�B��B�����E�<,�B��B��FY�B���E�B��B������FW�=z�B���=��=��=�A�=�>����FU�=z�B��=>�H�C�Fth_1�=�h_2�jA�BA�@N8�=����$���H
�.�=��=��&��'�C�h_3�<[8��h_4�?�5�-���C �0���~�<F��A�<G�]�<H�/h_5�=��0h_6�C.�-�C2��������&��C5�C;���<�� 
�]�@��CA��?��CE� �C��<u�<x�>�B�>�-�>�����BN�<��CV���&��w�/�<��C9�BS��C=�Bm� ��� � 
� 
��� M���� M���'?�>�>$�>���>	���>*�<��<��?��0�?��-���'��D��> �D��B��'������'>��<��<��<������<��'N��<��F��<����=�<��'s�!�>W
�>X�5��'?�F��F����<��<����F��F��C��F������<����C��<��F����<��<��'��2�C��!�C����<��<��F��G��'g�!�R�'g�>W������0�C��0�F���-�C�'>�-��
�@�C� M�@��
��

�
��l₂_tl������1!�D
�D�D�����"����j�?�D!�B>�D1�BA�F��=��D5������=��D�=��C�D����j�?�D!�&��B>�GO�F��=��D5�&�����j�D!�B>�GO����8�F��=��B'�F����=��=��&��/�=��DI�&��'���8�=��=��Gn�<�2�DK�-�DO�Gwh_1�<A�-h_2� /�DS���-���<���}�]�0�����=�����B3�e�=����B3�]h_3�=��0h_4�<��e�-�<�t�/�<����Dz� w�<��F��<��B�<��w>�<��@h_5�@s�/��h_6�C=� 
�����<� � 
������� G�<e� �e�Bp���<e�D�Bp�Hh_7�F���h_8�D����D���'=���<��D��Cj�D��F������<��'N���>��F��'N���(�D��D���)���'��'g�@��>l�'��0�C����>l�D��C������'?�D��C��D��F������<��<��H�@��F��D����(�Cq�D����)���'g�'I�@���'��2��'����>i�'��>n���'��}�D��2�?��>1�'��C����>1�D��C������?��F��Ah�F��E�!���>-�2���>-�(�>.�>3�D��}���>:�>?���>A�H�>?�����>F�>J�A�t	�>E
�>J�A�-�H���(�>i�>n�2�G����>.�'����>3�}�H/�H���>9�}���>9�$�A�A�H�����A�A�0�A�H;�A� 
���A�A�E�� 	�A� 
�A�E��5�HC
�$�>:�>@�}�H�}���A�H#�A���H#�H9���A�>E��A���E��E��E�� 
�H\�HH� 
�$�E�E�� 
�E�� 
���E��E����E�� �Hh�E�
� �E��E��E��E��'=�E��E����E�� M���A�A�A�t�A�H;�t�$�E��E��t�H����E�E����Hc�H����EO�EM�
�EO�(�E��E��'=�E��'=���EU�E[�E[�'K�E[�EZ�'K���Eb�Eg
�Eh�'K�H��En�Er�Em�E`	�Em�'g�Er�H��H��'I�(�E��E�� M�H����E��E��H��H����EU�E[�E[�'=�H���E`�ES�R�E`	�E`�'I�H��'K�'=��8
� 
�]
���C�>9���}��/���C�>-���2
�-�C�'��-�2
��>8
�����,���8�=��D5�q�B$�F��B(����=��=��DI�;�DK�F��DO�F��<F�DY��
�/���=��DI�;�=��DK�I ���� /�F��@��G��C#�G��=��G��J�]��� /�F��@��I2�G��J�=��Bb�5���0���I8h_1�=��5h_2�<����=��BM�CV�G��<��C5���0�G��<��G��w�@h_3�@s��h_4�<��<��D��5�G��e�?���� �����G��<e�D� 8�Hh_5�F��e��h_6�?�� P�����<�'=� M�-�����F��<x�D��>A>��h_7�Cg��h_8�<��0�����'I�e��'I���<��D��'s�/�<��'�D��'s�F����?��'��-�Ah�F��'��!�0�>i�G��'�
�2�1���'��'��>w�>=�>?��	�>8���>=�H�>?�B�@�����<��D��'N�'�<���D��D��F����<��'s���D��F��D���0�D��H
�1���'��'��H���'�����'����>:�>?�>@���H�>F�>J�A�H���>J�H#�A�H�B�����>.�H/�>t�H3�H5�����>9�0�H8�H#�����A�H>�A�H>�H��A�HE
�A�HH�E�������0�>:�>@���H���A�H�A���H�I��H[�
�A���E��H\�I��A���E��H\�HB�t�0�E�E�� �He� ���E��E��'=�H��J�Hl� M�E��E��E��'K�E��'=�E��Hp�E��5�0�}���A�A�A���A�H�A���A�H?�0�E��H]�H]���E�E�� M�J�J&�H��'=��EO�,�E��H��E��0�E��}�J
� M���EU�E[�H��EX�5�E��E[�EZ�'I�'=�E��Ee�Eg�'g�H��'I�Ee�Eh�H������,�E��J�E��-�E��J� ���E��E��J
�J,�E��J/���ET�J2��ET��E��'I����Eo��9��:��;����<�#�J^�%�J]�J]�J[�>8����=�#�Jk�%�Jj�Jj�J]>�#�Jw�%�Jw�J|
�,���JX�JW�'��#�JX�%�JW���J��Em� 
�J�
�����JZ�JY�JW�J��'��#�JZ�%�JY���J�� �J��J��J[�#�J\�%�J[�J[�>8	�J[�'��J��J��JY�J���� M��ES�'K�J2����Ea���Eo���JX���JZ�����J\�J��J��'����Jh�Jb���Je�'=�Jj�Jo�Jo
�,���Eo�H��'��Er���H��t�J����J��J��J��J���JY�J��'��J��J��J�� �J��J��J���� ��JY�'��'��J��J��'��J��J����JY�JW��� ��JY�JW�'��J��'=�@� M� �0�C�EO�0�'=�e�@
�0���H�����
�5�C�'��5��
�!>8
z��l₁�����E�<+�=c���=o�B
�@�������
�����=��C�D��?����?AA����B�D�D������=��C�D�Kq�DA�����C�D����j�Ko�<8�D3�.�=��=��$�'�F����j�Kk�Kl�?�<8�D3�C���B(�K�h_1�<\��h_2�C�DO�CA���<F�@��-�C#
�~�<F�F��K��]�F�h_3�=�A�-h_4����8�=��=��C0�Df>�=�8�<����0�o�=��=���>8�@�=��eh_5�@�>��h_6�&��<�>�<��5�D|�t�� 
���C��D����'�� P�@� P�/�<n�'�> �D��8�'?�>�]�<x�/�>$�D��9�D��e�?x�<��G��'N�@�e�5�?��0���<��D��<��D����<b�G�� �'�<e��?��D��<g���8�'��K��B��9�Cf�]� M���'K����'K���<��'N�K��<��e�>��F��=�<��'s�'s�B�@���F����<��F��<��e�<��]�@��F��F����<����F��<��<��F��'��H�B���C����G���'g�'I�3�'g�8�?��'��<��B�Ah�?��!���>i�G��'��>l�H�G��G��H,�?��>1�H/�'�
�����C��H/�2�8�<��<��<��@�D��<�����?��F��?��L$�F��L'�H�L+��>-��?��2����>9���>G���A
���A���E�E��E����E��E��E�� �E��E��E�
�8�A�A�>J�-�AF�A
���A�H>�A�A�0�A��H>�A�A�A�HB�E��5�!�A�HC�I���@��L+�!����'����>9���>G���A
���E��A�E��A�5�E��!���LO� 
�EO�E��E�
�8�>:�>@�>=���I��L����A�H�Ld�L���A� 
�R�A�A�0�����A�A�Lh��Lj����A�Lj�L����A�>E�0��28����B�C�'g�B�'I
�0�G>�H�C�'K�H��
��

�
��l₂_tl����j�?��B>�GO���!�;�7���=��=��$�DK�I �K��<F���/���8�=��$
�&��B$�I����=��=��$�&��DK�I �K��<F�M�<G�/���=��$�DK�I ���� /�K��@��I2���=��G��K��e�=����B3�]��� /�F��K��I2�G��Bb�5�IE�M.h_1�=��5h_2�BN�CV�G����@���0� w�<��F��wA>�B�<��w�<��@h_3�@s����h_4�<��B�5�Ie�K����Ii� G�<e�G��K�����<e� >�Bp�Hh_5�Ith_6�K��Iv�Ix�]�K������<u�<x�F��K��/�-�<x�>��>��h_7�K���h_8�<��L���I��/��'I���<��'s�]�D��I����?��I��L�L$�I��A�>i�'����L+�I��B�I����>w�>=�I��>?�-�����>=�>?�H�I������<��'N�/�D��M��F����<��I��L�L?�F��Mv��A�?��Mz�'��e�!�B�I����@�I���'����>:�I��M��L��H�M����>F�>J�I��A�0�-���>J�A���H�����>.�H/�'����>1���>t�H/�'��B�}�H6���>9�=�H:���A�A���A�M��H?�A�A�HB�E����5�!�A�E��-�HC
�=�HT���A�M��HU�M��H9�H[��A���E��H\�M��L��H\�M�� 
�=�Hg���E��E��5�Hi�M��Hm�E��E��Hp�E��������E��E����E�� M���A�A�A�5�Lj�A�M��t�=�H����E�E��0�Hc�M��H��5�3�EO�A�E��H��E����E����M��'=���EU�E[�H��EX���E[���E[�EZ���'K�E��Ee�Eh�H����t�Ee�Eg���H��'K�A�E��M��E����E��}�M�� M���E��E��M��N�E��N�JS�N��ET��E��'K����Eo���JX���JZ���J\���Jh���Ju�>8�J��A�J��J����J���J�� �N9
���J��J��J����J��!�J�� M�J��NA�J��J��J��J���2�'=�J��NK�J��'���J��N�'=����Ea���Eo���JX���JZ���J��J��2�J��'=���Jh�'��J��A�J��H����Er���H�� 
�Nl���J��J��N=�No�J��J��NA�R�JY�!� M�NA�J��Nt�J��NA	�JY�'��J����JW�Nt�J����Nx�Nr�N{�'��J��J��NB� M�ND�N���JY�ND�N��J��!� M�'K�'� M� ���K���5
� 
�'
���H�>��5�K2
�!>8
��!��{��� /�<F�M���DS�C"�G�������=��M*��
�Bb�C/�IE�K��=�����
�e�����M*�N��=��Bb�N�����<��K��<��CU�Dk�MG�<��MH�w�@���<��=��K��K��O�G��O�<��C5���C:�Oh_1�@s��h_2�<�� �<��D��D��G��<e�C������MZ�<e�M[� �Hh_3�F���h_4�'��<n�Ca���Ix�B�K����>�����Mk�<x�Ml�>8��h_5�Cf�B��h_6�<��L�<�����<�'I�@�K��!���K��<��M��'NA>�0h_7�D��@�!h_8�<��L?��G��e��'����>i�'��@�'��/�>l�'�E7�G��G��!���>.�'��5�M��H/�G��}�I�>:�M��>?
���J���>E�0�AI�A�A���M��0��A�M��A�B�@�����?��M��'��'�<���?����M��F�����>i�G��M�G��OY�2�I�>.�M��M��J���>8�-�H���>E�t��>E���A�A�M��H>�M��A�A�E��M��!�A�M��E��H�B����A�H�M��Lc�H�M����HZ�5�
�A���E��H\�O��A�B�E��I��I�E�E����E����E��2�J���E��J�E����N$�J�E��E��J
�M����E��Hp�E��-���}���A�M��Ov�A�@�J�M��H?�I�E��M��M�� 
���E�J%�O��J%�O�� �J)��EO�E�E��H��E����J+�J/���EU�EZ���H��EX�-�E��O��J7�E��Ee�J:�Eg�����t�Ee�O��H��0���E�E��J�E����E��JL���E��M��J
�O��M��J/�N.��ET��N0��N8�I�J��J��!�N<�P
���J��J��J��2�ND�J��P
�J��J��J��J��}�2�'=�J��P�J���� M��N\��Ng�I�J��H���Nk�P&���J��J��P	�P)���JZ�J����J���JZ�E�J��J��J����J�� M�J����J_�Jd���Jd�>E�Jb���J��P7�P8��J��Jo���Jr�'I
����Jy��?��@��A����B�#�PM�%�PL�PL�PJ�PQ� M�PT�>8����C�#�P]�%�P\�P\�PL8D�#�Pi�%�Pi�Pn
�PF�#�PG�%�PF�PF�EM�P� 
�t�'��P~�P��P���'g�E�J��J��P.�P����J��P�P3�P���J]�Jb�}�Je�'K�P:����Jk���Jy���PG���PI�����PK�#�PK�%�PJ�PJ�PH�P�� �P��'����PW�PQ�}�PT�'��P\�Pa�Pa
�swap'�Jw�t�A�J|���'g�J|���'I�����'g�'I�Ac�Jy�P��Jw�Jj�'g�P��P��P��'I�'��H
�'KA� M� 
���K���'=�/�]
��
���C�>E���t
�}>8
t₁�#t₂�
t₃��p₁�0
p₂�^
IH₁���?���A���C���I���;�8���;�8�A�IH₂���A���C���I������QL���A�8�1�0��0�
���C���I������X���A�A�����0��;�>���0��A��M���P���'�R���������������
�����@A�<R���j�K��<7�H�.�=��=�
���=L8�=L�P���Qg��R��������������������1!�=y�1!A�D���Ql�B��?�@J
�����1�=C�O���Q���]�S�������
������,���8�D?�<<�����=��=��=��~�DR�<F
���Q�8�1!>�Q���/�Q��S�����������
������Qq���Q��=��'�<<A���=��DJ
����s���t�
���B�D)�<Ra_4���Q��Q��mem_split�����e�	���FE�B��e����������������Q����!�Q���&�Q��(�Q�>���Q��Q��Q��B��Q��q�Q��Q��;Z����>�B����Q��Q����Q��Q���&�Q��)�Q���R�(�<2���R�R
�q�Q��R�t���������R��q�R��������R�R���R�q�R
����R�q�Q���V�Q���l₂���=�Q�����U��j�H�?
�<7�=��RD��?�'A�?�>r₂�e₂�RC�Z�Q��N�7�P���=��]�DK�R�������m���$���� ���<��<����D����<j�<��Q��
�=��e�<��/�S���$���� ��� E���<a���<s���?r�<x�-�>	���>*�<��<�
this���t� ���t��� �RU�B�<��H�@�P�.�=��/�B$�Q��R���{�������m���$����&��O�<��<��H�C5���<��D��<�� G�O �<e
�Q�~�DR�=��<F�]�=��'�S���m���$���� ��� E���<j�D��<g8���<s�<n���<p�H�<~�[�����$��������=��<���t�R��@�<�8�<��B�e�H8�@�Ac� �R��R��R��<�8�B�e�R��R��R��<��e���C�7���Q��	�!�R��������!�7���!��R����!�R���&�R��(�R��/���R��R��R��B$�R��q�R��S�;Z�!��/�B$���R��R����R��S��&�S�)�R����S�(�<]�S�S�q�S�S�t�!������<]��q�<]����!��S�S���S�q�S����S�q�R���V�R����'
A8�'>8���Ac����:��Ac'�:��PInfo����decl�perm_cons_inv��al₁l₂^�_��q~��]�^�_^�perm_inv_core
�
"�
"�PInfo�\��decl�perm_cons��al₁l₂^���S�a��b�c�d^��S�a�perm_cons_inv
�
�PInfo�a��decl�perm_app_left_iff��l₁l₂l^��_��
�S�|��g�h��g�h�i^���i��b����
�b�i_F���i���	�	���i'�j���i4��5���S��!����i��j���i�����	
8�	
�/4����	
8�	
�S��j���i���9�J�S��������9�J��S��S�iffrfl�S�l_hdl_tl��j���i�����	&>�	&8�����������
�RA>�T�T8���]trans�T��T�T
���perm_cons�A
�T�T
���i�#���$�	A�	>���A��#���A��
����	�i�����^���/�T)�'����	�T#�T:�
�PInfo�f��decl�perm_app_right_iff��l₁l₂l^��_��
��|��r�s�t^��T]|p�T]�]mp���b�perm_app_left_iff
����)���perm_app_comm�To�)�,���Tt
�w
�PInfo�q��decl�perm_option_to_list��o₁optiono₂�T�����{to_list
�T����T�
��z�T��|�T���T��T�p�T����z�T��~b�T��T�
���T�
�~_�T����T��T��|�T��~�T��T��T����T��T�
�~b�T��T��T��l�T��T�b�~�T��T����"�
��T��T�t_1�
	_x�

�
&�T��T�H_1�

�
+�T�8�T�8H_2�(�

�P�T�>�T�>�P�T��T�>�|>�T��T��T�
���T�A�T�A�T�A�
��T��T��|�T��U��

�A����?�?�D���(�T��
&�T��T�
�/�T��U�T��T��
��T����T�8�T�8�T��A���
&��?�?�
��U�X�

�T��U�U
a�~b�T��T��T��T��|�T��~���T��U
�T����T��U�~�T��T��T��"�
��UFt_1�
	_x�

�
&�T��ULH_1�

�
+�T��U$H_2�(�

�P�T��T��T��T��Ub�T��Ud
�T��T��T��T��U
�UF�T���@�U�D���(�U[�T��/�UY�T��U[�UZ�
��UZ�U#�T��U$�?�U,�
��T��X�

�UW�T��Uy��~�UG�T��U�Tf���UY���UJoptionhas_mem�UL��mem_to_list�UL�J�U��U��T��U�mem_of_perm�UY�U���U����!�U���&�U��6���U��UK�U��U��U��U��U��U��U��q�U��U��U��U��q�U��U���mem_def�U���inj_eq�q�U���8���e�T����T�_x�T�b�T��T�
�"
�T�
�PInfo�y��decl�subperm_cons��al₁l₂^���.��q�30�������^��V�30_x�V_a�,�eg���3'� �����4�V�$�����,��r�s�-��f'�=�V��K���4�V�.m�
�=� �V�V!�,�h_w�Vh_h�V ���-���>t_1�t_2�#s�-H_1�2
H_2�o�A
H_3�(��8�5���
�-?�/�'��������#��l�#p�4��>���8��>���V0�s���(���V3�����V<�������8������8���2�VN�3�����(���V/�����-)�'��V/�s�C�#��
s_l₁�s_l₂�#s_a�s'�-���o�0 8���������������/�����(����I�]8�-H�H�8
�,��H�@�e���V2�������'���"����(��A�V��V��V��&�@A�-N�e�]�V��V��:�;l���B�@���B�;�
�e���(���/�;��@A�V���8�R�/8�,����H�B�;�D�]�0��e���I���V����(���]�;��B��V��;��'�]���,��-���H�����'�e���V��V��V��@�H�7trans���H�]�B�J�V��]�V��;��H�.}���H�]�V��'�subperm_of_sublist���H�V��sublist_cons�����H�W�]�Bu�s_l₂�#s_a�s'�V~���V�1�0 �4
�����������/�����V����D�V��V����(���
	�e���
8�W7��8�,����B�@���^�W+�5�'�����V��V����V��1���(���V��V��WR�V���V��V��V��:�M�@�P�B���H�����(>�;��B�����YA�V��;�r�HA���(�^�`�'�;����Wp�Wn��\�'�>�,��5�-�����'�
	8�
	�@�����;�>�V��;���B>���H���.���^�'���(�6�;��/�;����W��;����/�0�,����0�-������H���(�^�;��'�Wq
�W��Wx���-�G���3��� ���0�4�W����0�/�R���/�-�4�W����]�-�S��5�0�/�-A8
8�0m8�W+���VE�X�0�VE_x�30_a�-��.g���-��-��V
���f'�=�.e�.p�=�.r�,��
�Vh_w�.kh_h�.n������3�� �)��V^�4�X
�-�V`�G��X��R��X��4�X�q�����8�_>8�PInfo����decl�cons_subperm_of_mem��al₁l₂^d₁�noduph₁����h₂�U
s�-��,��V�������^���X@���XA���XC���-���3�� ���4�XN�K���-��Xl�s_h�XR���"7�4�XY�q
��� �XY�X]�-�V^p�XYs�X\� drec����
�������/������/���?���X>�@�����;9���'
�WB�;����A�*�������X>�/�����Xi���f��
�
dcases_on���;#�-N�I�
>s_l₁�
s_l₂��s_a�/s_a_1�0�s_ih����]
���A���X>�B�������B����
�V��;����;"�1����C���X>�H��������������H���8
����>8�������0�����0�->�������X>���������������������Q�
�,����=n�]������������������5�1F�����/�'�����������������/�������X>���������������������H
�,��!�<<�H���Q����/�]ordcases_on�B�]�����
�������e���(�X��X��,����?���e�@���X����]�e�X��q�Y�X��t�����]�ee�X��<6b���,���<W�<:�-�3�� ��<W�4�Y�#�?6�<R�B�R��Y�?�4�Y!��<Y�<7�B�9���B��?�B�@���em�X��R>�3��Y�4�Y�#�Ha_5�X��@�Y��@�B���A>t��=�Y:���.�<=�4�YI�3
���=� �YI�YM�,��2�=��5�H��p'�YIs'�YL���3��� ���<��4�YY�����-�0�R�~�=��4�Yd�������-������

s_l₁�
s_l₂��s_a�/s_a_1�0�s_ih�X����X����C���X����X�����1�
���X����X������1����X����X����X������X��e>���Y�R>�T��-�U�,�8�/�=��$�Ba_6��Y��Y@�Q����e��	���X��B��e�mem_cons_self���e�Bt₁��=�Y����7�U�7�=��]�=�
�YS�=��Y��YUt₂�7rfl�Y������<F�����������X>�������R���� w�w�0��
bm��� 
� E��� 
�5�,�� �<g� �������X>�}�Y����������m�����}�=��Yg
���o�Y[�5�=��Y[���Rx�0�<��Y���� E�3� E� � H�<g�<e8�4�Y�� O��a_7�,�� 
�<��<����Y��<g�Y��Y��Y�Aorresolve_left�'6�t�5�� 
�t��8e�Z�H��� _x� ��� M�'��� M�-��� 
�C� � 
���	� �Y�����A���Y�� �����Z�nodup_of_sublist� 
�Z�Z� 
�5�� |�Z�ZA���!�ZD��&�ZD� |�Z@��q�ZD�ZL��append_sublist_append_left� 
�Z@�q�ZL��<al�	��,����W
� 
�5��mt�Y��t�Z�Zp�ZAx�Zq�/�� �Y��Z
�� �Y��Z
���!�Zy��&�Zy� �Z��q�Zy�Z��ZQ� �Z8�q�Z���Zc� ����� 

�S�� 
�5���Z�� 
�Z?���ZA�Z?�Z��� 
�5t� E�=�Z���<��<p�<n>�4�Z���'=
���=� �Z��Z��,��'=�>	�<xA�>��8�Z���p'�Z�s'�Z��G�<��3�<�� �?x�<��<��'�'N��A�4�Z���'g�'s����<����R�>*�Z��<��<���Z�>�4�Z���'I�Z��Z����?��Z��Z��<��Z�>�Z���'K���Z��?��Z��<��Z��Z��Z���'K�'=���Z��Z��'=�Z��Z��?��Z��Z��?����>�_�'K�����e�C���e�Y��]�/�	�}�Y��-�e���Y��}���-

8>�PInfo����decl�subperm_app_left��l₁l₂l^���.�S��S��.������������^�������,��S��S��,���_F�������,��S��S��,���'������4���,��S��S��,��S��������������-�S��S��.{���-�S��S��.{����������,��S��S��,�������,��S��S��[��S��[�l_hdl_tl�����������-�S��S��-8�������-�T�T�[��T�[��-�T�T
�[��subperm_cons�A
�T�T
�����#���.��T�T�.�>�T(�A��
����	�������-)�T*�T,�-*�'���	�[��[��
�PInfo����decl�subperm_app_right��l₁l₂l^���.�T[���.�������^�T�[��[m�.�\�[��S��[m�.}�T[���S��Ts�subperm_right�T[�S��S��\
�subperm_app_left
�PInfo����decl�subpermexists_of_length_lt��l₁l₂��,��has_ltlt�
	��has_lt�

�
��a�,��p�������,���\)�/%��,������-�(a_wa_h�/#�/.���/0�����,���a_h_w�/)a_h_h�/,����8a8��>�-��>8
�2��\'�
v�.���>a>�-�\K8�aimp>�\O�\Za>�Tf�\Y�\N�\A�\W�\L8��>�.�_x�
	�\'�U8�P8�Q�T�8�/Es�V�Xf>l�u�#��V,��\'��
�����/��/�-)�4h�\'�E�E��less_than_or_equaldcases_on�A�%t_1�
	��	�A�+H_1�

��H_2�(�\'���s�\��\��A�\�
���]��]�-?�����%��@�\��D�
�(�\'�+�+�\��\��	refl�\����'��'�.��1�s�s�?�\�h_b�
	h_a�\���@�A�D�
�\��\��A
�	step�\�
�\��?�\��
��%�X�\'�%�%l₁�l₂�#a�s�V~IH��\'����
�\���]�-?����\'�����W*�X��\%preorderto_has_lt�
	partial_orderto_preorder�
	ordered_comm_monoidto_partial_order�
	ordered_cancel_comm_monoidto_ordered_comm_monoid�
	�
������

�]�]_x�(�]�]	���@��@�-N�H�V�lt_or_eq_of_le�
	�\��]�]natle_of_lt_succ�]�]h�]�\]�@�]��@�]a�@s�]#�V��H�
8�W:�W�H�W:�W�H��h�]	�G�@�]���A_x�A�-N�WQ�V��eq_of_sublist_of_length_eq�@�subpermrefl�@�V�s_l₁�s_l₂�#b�s�V~IH�\���\'���W+�\��\]�e��e�,��@���]O�V���e�]`�]aa�es�]i�Tf�-N�V��H�V��-N�]l�WQ�V��\�B�]n�]r�V���B�J�]p�-N�]m�[��B�]mnatlt_of_succ_lt_succ�]�]Annot�Q�PInfo����decl�subperm_of_subset_nodup��l₁l₂d�X>
H���,���5�6�7�]��8����pairwisedrecne�5�7�X>�8�/��,�
�8�/���
�G'�3'� �����4�]��$���R�����4�]��D����ial₁''ha'H���]�8d�9�]�IH�8�����8
�-�8�����>���>�s8xAH���A_x�M�]��]��.��>�TfxAH�]��^�]��^�forall_mem_consAaA�]�>H₁�]�H₂�C��D������cons_subperm_of_mem�'A���?�'�@���]��]>�����&x�'�?�/�@��8�]��eAx�'�?�/�@�^+���5
A�^)forall_congr_eq�'�?�'�^$�?�'�@�^ ���<>�?�'imp_congr_eq�^ �]��/8�^ ����8���^ nedef�/8�qa'�'��^ �^C�^)��forall_mem_ne�'�-�PInfo�4��decl�perm_ext��l₁l₂d₁�]�d₂�X@���ba���V�V��V�W�X�]��Y�X@��b�^�p�ba�U�H�^��subpermantisymm�subperm_of_subset_nodup
a�Tf���^����^�a�J�^��^����PInfo�U��decl�perm_ext_sublist_nodup��l₁l₂l^d�X?s₁�.,s₂�.#
��������d�e�f^�g�^��h�^��i�^�����^�h���Xf�e��f��i�/��g�X>A�d�
�h���j�;��	=
�g�X>��d��h�1��j������
�	�
�*l₂�l�a>s₂�X[IH�g�X>�
�d���h�0�j�A���
�g�X>�'��d���h���4�j�f���@t_1�At_2�C�h��H_1�
H_2����A�
H_3�(������'��
��8�]
�#�r��
����
>�d�C�h��
8>�j����s�^��#��t�(���_
���������-���]�h�04�"�8�j�'�
A�s���>A�0=�����t�(���#��^�
�_8�#������r���/�^��#��c�
>
s₁_l₁�As₁_l₂�Cs₁_a�Hs₁�0��r�����u�.�x�0��s���8�/�]�?�t�(��A���]�e>����&��
����B�x�^��s���`�'�/�Wn�%��t�(�6>�_Z8�_{�_\��>��A�@�_Z�_\�:�&�/�&�]�w���;��t�(���'���@�B��_���8�&���'8�E�/���;���Q��@�v���x�_��t�(���/���B�H�'�_��_��&���/�B��]���x����@�t�_��_��_��B�@�e�,K���Q��B�H�X>���H���_��_��M�_��_��q�_��_���nodup_cons���B�H�]�/�l₁�As₁_l₂�Cs₁_a�Hs₁�_T�r�_U�Y���0�d�.�h�0��_w�j���e�s���_`�_e�t�(�����e�@
����8�`�_��8���H�h���_��_�j�1�Wn�]�s�_]���t�(���_d�_`
�` �_e�����`�B�_`�_e�:�����]�����e�|���h����>�_��j���K^A���;���A�t�(�����'������
�`B�`@��?�'�>�j�Kl�/�0�h���`8�`�j���_�>�H�;�E�H>���
���{�
�}���'�t�(�����/�`e�-�`g�`e���/���8�$�-�]�5�}������t�(���`C�'�`D�`��`K�����;!����,������-�j�`f�0�,f���`��X>��-���`��`h�M�`��`��q�`��`��_�����-�B�subset_of_subperm��`f�-�G�,�3�,� �/�`u�4�`��4�5�0�R��0�`f�4�`��"�5�0���`f�0�����Y�����/A8
�C�.�_��(�
�(��_�X���_l₂�l�a>s₂�^�IH�^��g�^��d���h�^��j�^��"��^�t_1�At_2�C�h�^�H_1�^�H_2�^�H_3�_�_�_v�]
�_���_�_�d�C�h�_�j�_�_3����_���_&�_'�`��h�_0�j�_1�_A���_6�_7���_?�_@�^��/�^��#��_N
s₁_l₁�As₁_l₂�Cs₁_a�Hs₁�_T���_V�_W���.���_X���_]���_m�_n�`�B���_u���_z�%����_��_��__�@�_Z�_\�:�_��_������;�_����_��_��_����;�_��_��������_����_��_����H�����_����_��;!�_��a5�,f�_��_��_��`����a4�H�G���3��� ���a;�4�aK�����/�R���/�a4�4�aT���]����B�Y����B��l₁�As₁_l₂�Cs₁_a�Hs₁�_T���_��_��d�.�h�_��j�_��_Y�e���_����`�`�_��H�h�`�j�`�`����_]�����`*�`+�a&�_`�_e�:�`4�`6�����h�`:�j�`<�a4�;�`?���`O�`Q�`e�0�h�`[�j�`]�a~�;�``�`b���
���`d���`s�`v�`t�5���`}���`���`��a��j�a��a���!�a��a����/_a�,�!�a��8�`t�a����a��0�H�,K�`��`��`��/�S�����/�0�(j�a�A8
�`��`��`��`�
h�^���!�5��!�!��a����_a��!���XN���!��e�PInfo�c��decl�erase_perm_erase��_inst_1��al₁^l₂p�o���3
�b���������^�����odite�U
�)decidable_mem�3
�bh₁�b#
h₂��
�S����6��b/����b1���b4�/��b7�perm_erase�6��b6�b:
�bAAnnot��Annot����
�����b#
h₂���b,
�5�b1�b4�*��b4��!�b\�b^�a���_a��!9�8�6���bf���b\�erase_of_not_mem�6���b^�*���!�b^�bz�a���_a��!���bf�����b^�bs
Annot��Annot���Zo�b,���J�b��b,�^�
�PInfo���decl�erase_subperm������al^�.���^�_���������^�"�3� �"���4�b��.$
�b��R_�b��b��4�b��,����"
�b��erase_sublist�b��PInfo���decl�erase_subperm_erase������l₁l₂^ah�-��,��b�b���������^�����-�_a�-��-����-��,��b/�b0�f4h_1�-��-����-��-�I���b�h_1_w�-�h_1_h�-����3�3�#� �4���M>�4�b��8��8�,�b��_�R��b��_8�4�c���b��b�8�erase_perm_eraseA�%8�erase_sublist_eraseA�%�PInfo���decl�perm_diff_left������l₁l₂^th~listdiff�3�c0
���������^����~listrec��'��4��������c.>��
�c@��'��4��L�9�c.8��
��cM����!�cS��&�cS;�����e_1����
���e_2�o�G���^�_
�U������^�cO
��diff_nil8��
�cR�cy�q;��	�;��t_hdt_tl4t_ih���������"8��c.A�%
�c������������$�c.��M
���c������!�c���&�c��$�c��b�
�c��b����
������c^�����?�������$�$
�U�C���$�c��c���diff_cons��M
�c��c��c��q�c�����
�������;��	��^�c.�]��
�c��B�c��c��J�$��
������������^�����o�	��b�c
��M
�J�V��	��V������
�PInfo��� decl�perm_diff_right������lt₁^t₂h�o��'�c1
�c2���������^�����o�k��'��4��L�����c@�d.
��'����c.����d;���!�d=��&�d=�����4���e_1��6��6�#e_2�	<�G���2�2
�U���6���2�d;�cw��d;�de�q�dE���4��h_xh_l₁4h_l₂�h_a�h_ih����K�c��dv
���#��	:�c����d|�����!�d���&�d��	:�c��b��d�����
�������c^�6���6�?�������D�D
�c��D�d}�d��7��
�c������d����d��c��d��d�d��d��q�d�����
�d���h_xh_yh_l�������d.���d.�	�e���!�d���&�d���c@�b��b�
�d��������#���	<�6���6�����	?�	A����
�	L���d��d��7���c?�Q���d��R�d�
�d��d��d��R
��d��c�>���
�e�d�_inst_1��>���#���
e_2����������e_3��eqdrec�A���A���D�
�c.�H8�e�e
���A���D�e�e�(��c.�@
���b��d��d��erase_comm>��
��d��d��d��d��d��d��d��e�d��R�d�
�e�e�e�d�
�q�d������d���h_l₁'h_l₂4h_l₃�h_a;h_a_1�h_ih_a���#�	:�d|�d|h_ih_a_1���
�2�c.�'�o�eu������o�c.�/���e}���!�e���&�e��o�e��e���������������6�A�6�C���
�G��^��
�U��6���e~�e��7����e~�e}�e������e��e��l���e��q�e�������e���
�PInfo���#decl�subperm_cons_diff������al₁^l₂�,��c.���5����e�����������������^��������'�-��d9�����d:��_F����'��4�,��c.�6������e���4����������������#�.��c��|�|�d|�����#�������
�����.��e|�����e}�-�et�����et�������#���
�-�et�����eu�����t�3�
� ��f�3�4�f#�x���e|�s�G�
�f+�}�� �$�}�c��}�*�4�f4�7�f���f�3���!�f;��&�f;�f5�4�f4�h'�f4��J�f4�f1�}�2r�f4A���(�f�f"iffrefl�f4�fG�c��}�}�m�}�f3�}�cw��M�}�B��}pa�f4�����fLe_1� ���0���e|���s�����^���c��fp��
� �ft�f:�fBfunext�f4���f4x�f4�f9���f4��4�f4�&�f9�f6�f�������e_1�	?��?��Ae_2�F�K����
�U�I�W���f�f�o�f�f8�f��'��/e_1�>��?��Ae_2�F���I�I�
�0�
���H��I��
AA�l�'A�f7�cw�'�o�q�f���<l�	��,��.F�'�f�q�f5���f4���fL��fdexists_prop_of_true�f4�fE�fc��l₂_hdAl₂_tl�
�������������-)�c������c�����.��fi�����f%����f��.��e|������
�f���!�f��g���f�_a���!�-)�fr�
���c��
�-)�g���f��g�c��/����
��g�g���e|�g
��!�g�g*���f�_a���!�-)�c����]���fp
�g�g6�����g�g(�g
�b!���
�'�
�g*heq�gG�b!���b%�]���g6���c��g1
h�gN��-?�c.�e�����e�����/�g`�g]�g_�-?�g]�g`�gh�gk��!�gl�gr�fI�gl_a�!�]`�e&�^�@�_�B�B���@�g{���]8�g�g|�g~8���gl�gr�q�gl�gr�\�e�ge�gp�gk��f�ge�gp���!�g���&�g��f�g]�gp���?��Ae_1�F��I��e_2���G�.�Z�Z
�U�.��.�Z�ge�g������e���A���Ce_2�e�������Xe_3�r�e�������������c.��8�g��g�
���������g��g�� ��c.�0
���gc�7��?�gc�g_�
_inst_1�g����A���Ce_2�e���������e_3���-�g��������g�������8�g��e�0
���0���&�g��g�� ����0
���ga�g���e��@���M��I�����g����.�.����
���-��.�����/�l�?�l�e��erase_cons_head��e���hB�gp�gp�hB�gp�q�f�g\�^�e�_�@�^�B�_�H�H�he�gn����������^����~�	��c6�perm_diff_leftJ
�e���gn�J�f�gn��fI�h�A���(��g�g��fQ�h���&�h��h��
�gh��g��hC�gn�h��h?�gh�gh�hB�gh�q�h��
�g^�hd��	��h��b>�e�����������?���A�-N�c.�B�h`�H�e�h��h���e��?����e��A����	���I����V��c.���^���_�-�-���H�h��h����	�h��h��
�gh�����gN�gm���gt��&�gl�-?�g��
�g���1�?�1�Ae_1�F�2�I�2�e_2�g��g��V��V�
�g��2�.�V��ge�g��hV�gk�h��h?�gj�g��g��gh�bp�e���J�����T�i$�����not_congr�i#��iff_false_intro�i#not_false_iff���hU�q�h����a�b�c�.�	��.�W
�e�g��h��J���g��h��αl₁l₂a
���	��.,c
�&
�e�g��g��J�iN�g���f��e�g������������gG��gZ���!�gZ��&�gZ�-)�c����gV
�gY��1���1�?����2�C�2�I���G�X�V��V�
�U�X�2�X�V��g5�i������]���?���A���F���I������g��e�.���.�������c.�58�i��i�
���.�����i��i����c.�-
���g3�i���erase_cons_tailJ�]���'�J�^!�'��fI�i�A���^,�/�fQ�i���&�i��i(��i����<�'�i(�^T�]�'a�e_1�}��
���i����q�i����i.�i��q�i(��i3��

��
�gY�gY���gY�q�i���	��i����������?�]`�g|�g�g�g|
��]�������]��?����	���C���I�WB�c.���^���_�������B�j-�j,�
��	�j!�jA��gV��

�PInfo���'decl�subset_cons_diff������al₁^l₂�/��e��e��������^��`��e��e��subperm_cons_diff��
�PInfo��4decl�perm_bag_inter_left������l₁l₂^th~listbag_inter�3�j�
�������^��~�k�'�4�L����j�>���j�
�'����j�����j�����!�j����4��e_1�dI����#e_2�	<�dK�(�(
�dV�(�j�����nil_bag_inter��j����j��B��xh_l₁4h_l₂�h_a�h_ih����j�A�%�j�
��#�b!��b%��M�$�j���M���j���h�j���(�j��'�o���j������!�j���&�j��(���j������j��j����������	?��?��A��F�K�'�'
�f��'�j��j���cons_bag_inter_of_pos�'�o�J����	��k���j��j��k�k!�q�j������^�a�	�h�
�'�j��j��J�(�j��j������	��0�j��/���kB�-�j������$���j��j��j��j��(�j��j���k�kX��cons_bag_inter_of_neg�'�o�J���k��T�ke�i(��i+�k���i.�k�i3���j��kZ�kb�ks�q�k[��kK��xyh_l����b!��
�N��j����j��d�h�k����j����j����{
��j��{�k��k���!�k��k���#��
��e
������������	��	�
�U�A��	��k��k�����A���
����e_2�c^�������?e_3���e�C���C�+�
��j���8�k��k�
���C�,�
�k��k��l�C�j��B
�%���k��A��e_1��������e_2�����A�A���V�
�7���A�C���lA���k��l

��
� ��k��k��k��k��k��l�k��k����k�� ���k��*���k��b!��b%A�%�k�xt�l+�b!�
�j�
�$�j���
�j����g
yt�l4��(�j����j����4����!�lH��&�lH�(�l���j��������l�lS��k�lC�lU�7����j������l�l_�����lU�k���J����	��ln���f��f��j��lO�lT�l^�lc�l{���l_���l{�lT�k&�l{�J�k�le��T�l��k��mem_erase_of_ne�'�o
�	��l����f��f��j����l{�lS�����'���������+�����A���C�,�e��e�����+�_U�r�j��-8�l��l�
����,���l��l��l��k�
�o�o�l��lR�e=�'�o�lG�lX�l^�l_�lE���l_�4��ld�lX�k�4��J�l���l����l��j��4��lP�lW�lj�lP�J�lm�l���T�l��ln��l�nesymm�'
�lr���q�lY�����^�	�v�
�'�lS���0���l4�lJ�lM�lN�(���j��lP�m-��l\�m-�lb�lc���l��l��ka���J���ln��T�m;�i(��i+�ln���i.�ln�i3���k&�l��lG�m-�l��m-�l��l��m,�m8�lP�J���lm�lP��T�mX�i(��i+�mW��h₂�m;�i.���g�Zo�mc�m`�mem_of_mem_erase�/���mI�i3���q�m/��k:�m,�m,�*�m,���/���l+�lA�0�l4�lJ�lM�lN�(�l�j��l{�m���l\�m��lh�m��lu�l}�m��kx�l{�J���k�l{��T�m��i(��i+�m����4���l��i.���ma�Zo�m��m��mj�J�m���T�m��i(��i+�l����i.�l��i3���i3���lG�m��l��l��l�l��le�kb�4��m��l��lt�q�m���k9�m��m��*�m����0�m+�lI�(�j��m���lK�m��l\�m��m4�l��mJ�kx�m��lG�m��m��m��m��mU�mI�*�m�h_l₁'h_l₂4h_l₃�h_a;h_a_1�ih_1��#�$�j��j�ih_2��
�(�j��j������/�kB�kD�kG����
�PInfo��7decl�perm_bag_inter_right������lt₁^t₂p�o�d$�j�
�j�������>�?^�@�A�o�c>�>'�?4�@��A���j�
�j��?'�@4�AL���j�8���
�nF���!�nJ��&�nJ����������e_1�c\�6�
�6��e_2�c^�c`���	=
�cj�	=�nG��j�8��
�nI��ng�q�nR�������al4IH�?��@��A�"8�K�j�
�j��?��@��A��b!�j�
�j�
�	:�j�
�j�h�n���2�j��j�
���!�n���&�n��M����n��M���2�j���
�n��n��n��2���n��n��n����������B�	?�6�?�6�A�C�F�K�
�

�f��
�n��n��l^�l_�����l_�l��n��k�l��l����l��j��lP�n��lP�n��c�'�o
�n��n��k
�J�k
��	��n��Tf�l��n��U��'
���consinj_eq�'�n��n��=�=e_1�}�?�?e_2�}���M�M
���M�n���q�n�����'�n���q�n�������n��q�n��and_self����G���n��n��n��n��2�j�
�o%��n��o%�n��n��o%�kc�m��m��m��m��i3��
�n��o%�kc
�J���n���T�o?�i(��i+�n����i.�n��Zo�n��l��l��n��n��i3���q�o'��o�o%��
�PInfo�=�Ddecl�cons_perm_iff_perm_erase������al₁^l₂��b�5��M��
�n��
������N�O^�P��os�o{h�os
�2�b"
�e�b,��

�S��o��r��
���o��b>�
Annot��Annot���
���Y�
_x�o{_a�M�o��c�b�>�b,�o��S�M�b,�o�5��left�b,right�b^��9��
��o���bf���bf�/X�o��b>8���PInfo�M�Ldecl�perm_iff_count������l₁l₂^��aa�

�3��
�o�������W�X^�a�o��perm_count�b�H�o��c=�W�X'�[�Y�

�3�6�
�o�7�X�[�Y�

�3����p�
�X4�[�Y�

�38����p��[�Y�

�o���p�e�bl₂��[�Y8�

�3>����p�e�D���ehas_zerozero�
	nathas_zero�A�p
���

�p*��p*�e�

�p(�p,�
c�p.�p(��count_eq_zero_of_not_mem>��
��J����
���T�p?�i(��i+�p>���a�i.����
�;,>
�i3���p0�p,��count_cons_self>��
�_al₁'IH�X4�[�Y�

�p
�p;�X��[�Y8�

�p���p�>�����b��Q�p}
�p}b>�b!��9�

�3A�%�p��_
h�p���

�3��M�p��b��

�p���pred�p���!�p��p��
c�p��p�_inst_1���a�'�l�/e_2�>a�?�n�Ae_3�F�e�H�l�H�m�m�

�3��8�p��e�I
�n�I�o��p��p��
��3�H
�M�m�p��p��
f�p��p��p��p��p����p��p��p��m�p���count_erase_self��M���

�p��^�p���p��p��&�p��

�A�p��A�p��p��
c�p��p��
f�p��p��^�A�p��p��^�^�m�^�p^��M�p��q�
f�p��p��A�p��p��q�q�p��p��q�p��p��p��m�p��q�p�n�
	�q�
	e_1�
L�
U�
	
�A�p��p��p�� inj_eq�p��p����p��p��p��2s�p�_a�
	�!�

�3�'�o
��qF�qJ���q?�p��o���M�p��b>��M�Tf�\'�p(�p��*�count_pos��M��q^�q]�q��!�q^�qi�2s�p�_a�
	�!�q]�qE�q]���q^�q�v�q�p�
��qi���!�qi��&�qi�q]�p��chas_lt�
	���
	���
	e_2�
L�6�
	�6�
	e_3�
L�
N�\%�q�
�
Y�q��\&�p(�p(�
��p(�q�p��q�q�q��n�
	�	��q]�Anatsucc_pos'�p������i���p��p��p��q>��p��q��p��p��
��p��p��q>��count_erase_of_ne��M�J�]����fI�q�A���]��'
�fQ�q���&�q��i(��q����7��i(�^T��i��q����q�q����i.�q��j���p��q��q�p���count_cons_of_ne��M�q��p��q>�
f�p��p��p��qB�r�p��q��q��/B�p~�b>>���Tf�q]�p���qb>����r$�q]�r"����!�r$�r0�2s�r#�v�
	�!�q]�p�
�qs���r$�r/�v�r/�r#��r0���!�r0��&�r0�q]�A�r"��q��r/�rN�p`�q�rO��q��rM��
�PInfo�V�Qdecl�decidable_perm_main_meta_aux������l₁l₂^decidablea���������^����rt�"�r{���rtb����rt_�
"�
"�r��"
�
"l₂_hdl₂_tl�r��rt�]���r�h�r�����*�����r�l₁_hdl₁_tl�r��rt�r�
decidable_of_iff'�r��M�U
���b��cons_perm_iff_perm_erase�3
anddecidable�r��r��b'

�ryRecFn���b��PInfo���]	VMR��VMC��$�]	�������listcases_on	���)decidable_mem_main	�)erase_main��	decidable_of_decidable_of_iffdecl����ry���������^listbrec_on�����rt��_F��belowM����'�rt�C��'��4������r�8�������rt��M>������r�A���#���
�rt�.��rt�%
���r�>������#�rt�&��rzA���#�rt�$�*
�r��rt�V]���r��s���l₂_hdAl₂_tl�
�r��rt�(�3��r��s	���s	�������s���/��l₁_hd>l₁_tl�#���r�����
�����rt�;��J�r��rt�(�$�r��s#�M��
�.���
�r��'�o
�r��s(�s,�b%�'�o
�MM���������rt�A��M�'���M�M��'�����sD�MM�sI���?���A�rt�!�sG�s<�sI�s@�sW�sG�s+
�PInfo���]	VMR��VMC��$�]	���������	����	����	��decl��_proof_1�]��BZ�PInfo���]	decl��equations_eqn_1������� �rt�,����

�r��,������������szid_delta�sz�s��PInfo���]	ATTR�
����EqnL��decl��_proof_2��bl₂������������������PInfo���]	decl��equations_eqn_2����������^� �rt�r�t�s|
�
"t�r��s�������������^���s��s��s��s��PInfo���]	ATTR�
����EqnL��decl��_proof_3������al₁^l₂�ot�ow�n���^�_�3$
���������^���r���
�PInfo���]	decl��equations_eqn_3����������^��� �rt�os�s|�5��r��os�o{���
�r��ov�oz�b%��
�s��oy���������^�����s��s��s��s��PInfo���]	ATTR�
����EqnL��decl�decidable_perm��ry������s~�PInfo���]	prt��VMR��VMC���]	�����decl��equations_eqn_1�������s{���

�s��������equations_eqn_1S�PInfo���]	ATTR�
����EqnL��decl��equations_eqn_2����������^�s��s�
�
"t�s��������equations_eqn_2S�PInfo���]	ATTR�
����EqnL��decl��equations_eqn_3����������^���s��s��5��s��s��t�oy�������equations_eqn_3S�PInfo���]	ATTR�
����EqnL��decl��_sunfold��ry���������^�r������r��r��r��s��b�	�PInfo���]	ATTR�����class������decl�perm_erase_dup_of_perm������l₁l₂^pab�erase_dup��
�t7���������^��a�J�t;�Y�

�3�t5�3�3�tC
�perm_iff_count���t8�t:a�b!�^��b'�tIh�^���

�o��t5��tW�tY���!�t_��&�t_�
=��
c�t[�
;��count_eq_one_of_mem��tZ�J�X>�tX����<_inst_1��l�	��]��t5
�^
�_�!��nodup_erase_dup
����J���tq��T�t��t����mem_erase_dup��	��t����t^�
;�tm�t]�J�to�tp��t����J�t��t���T�t��t���t��	��t���
���
��������^��ta�td�te�p3�p(��th�p(�p8��tZ�J���t��tZ��T�t��i(��i+�t����t����t��i.�t��i3���t^�p(�t��t]�J���t��t]��T�t��i(��i+�t����t����t��i.�t��Zo�t��t��J�t��t��^�
�i3���q�t���
��p(���PInfo���ddecl�perm_insert������al₁^l₂p�oinsert'�)has_insert�3
�u ���������^�����o�b*�u$h�b#����u4�u��u1
�
��!�u5�u7�j��u2��insert_of_mem��b���	��b����u4
�uA
�J�b,��	��b,�bU�����bY�u6���o���
��u9�u\�u<�o���insert_of_not_mem��J���b���T�uf�i(��i+�b����i.�b��i3���u4�u[�ud
�J�bZ��T�bZ�i(��i+�b,���i.�b,�b��i3���
�PInfo���ldecl�perm_insert_swap������xy
lb�u�u��
�u��u��u����������
���b!�ov�s��u�xl�ov�b!�U
�b'
�u �u
�u��u#yl�u�����u1�u0
�u��u4�V
��!�u��u��j��u�
�7�4�u��u4
_inst_1has_insert4�6�68e_2�7G�6�#�6�
e_3�e
�������u�/���u�
���/�6�����u��u/�l�u�
�u@
�J��
��	��u����uL�uN�uO���u�
�u��u��u�
�u��u��u4
�v�u��j�
�����u��u���(
�v��u��v �u��v�u��u1�v�v�u��v�uc
�J���u���T�v+�i(��i+�u����i.�u��i3���uA�v�J���v��T�v>�(�X���vA�vD�b,�vE�t
or_congr�vC�b,�vC��fQ�vC�v�V�vC���u��v�v
�v�v�v:�j��v�����ov�u����u��u����u[�u[��u��vq�u��u[�u��u[�u��uy�u{�u~�u��u��i3���u��u[�v	�u��u[�u[�v�u[�v~�u��u[�J�u��u[��T�v��(�X���v��v��u��v��vK
�vP�v��u��v���fQ�v��u��V�v����j��u[���v�u����v%�v���u��v��u��v%�v;�u��v��v��b!�vC��v�xy�vC�5�u��u�6��v���5��!�v��v�����e_1���#��
e_2�e
�G���0�W
�U������0�v��7���v��v����u���68�6>���8P�6�
�6�����c^�������u�]���v�
�8[�6���?�v��v��l��u>�6��J����T�w�)�w��w �(�6��w!�w"�t�vP�w&�w!��w!�8��fQ�w!���w!���v��v��v��v��w�8n�v���8e_1�7G��#��
e_2�e
�u��#+�2
�u�������1�w�w>�e�����vC�v�5���v���v��ws�v��wp�ua�6��J������T�w}�i(��i+�w|���i.�w|�not_mem_cons_of_ne_of_not_mem
�i3���v��wr�wy�v��J���w�v���T�w��i(��i+�w����i.�w��w��m�i3���a�PInfo���rdecl�perm_union_left������l₁l₂^t₁h~has_unionunion'�)has_union�3�w�
���������^����~�k��'��4��L9�w���w�8��
�w���w����w���!�w��w��'�4e_1������e_2�c\�G�
�$�$
�U�
��
�$�w���nil_union�3�w��x�Bah_l₁4h_l₂�h_a�ih��w���w�>��
�x���w��#�w�A�%���x$����uA�#�uA�%�x$�x1�x$
��!�x*�x9�k��x&�x4��cons_unionA�%�x)�x8�xB
�perm_insertA�%�x3�x7h_xh_yh_l��9�w����w���9�u8��u8���xh
�w��xj�xi�xl��!�xb�xr�ct�x^�xn�7���w��w��)���xe�xf�)�x{���xn�x@8�������u�8��6>�6Ae_2�7��6���6��e_3�	?���?�?�u�e�?�x�
���e�6�?�A�x��xg�l8�w����xm�x�
�xa�xq�xy�x{���x�
�x{�a�xq�x��a
�x�

�x�
�w��a�xp�x��perm_insert_swap8��
�xlh_l₁'h_l₂4h_l₃�h_a;h_a_1�ih_1��x$�x3ih_2�$�w��
�w���M�x���w����w��'�o8�x�8�x�8
�PInfo���|decl�perm_union_right������lt₁^t₂h�o�w�
�w�������	�	^�	�	�o�c>�	'���w�4�w���y
��w�
�w����!�y&��&�y&�d��x�y$
�x
�w��x�q�d��	��d��l_hdl_tl4l_ih5�w���w��6��yE�9�w����yJ���!�yN��&�yN9�xj�w��xj�w���ct�yK�yV�x�
�yM�yX�y^
�q9�x��yU�x��w�����������^�����o�	��u$�xO
8��
�yU�w��J9�yU�w���	��y������PInfo�	��decl�perm_union������l₁l₂^t₁t₂p₁��p₂�W5�yD�yD
������	�	
^�	�	�	���	�W�b6�y��y��y��perm_union_left�6��perm_union_right�6�
�PInfo�	��decl�perm_inter_left������l₁l₂^t₁�~has_interinter'�)has_inter�3�y�
������	�	^�	�2�_x�Va�b&ab��
�PInfo�	��decl�perm_inter_right������lt₁^t₂p�o�d$�y�
�y�������	 �	!^�	"�	#�o��y�p���	$��e_1�!���_inst_1��8
�	&��>
���#���
e_3�e
�e����/
�y��*T�8#�	$�8#���]�z�	$�8#�	$���]e_1�!��7��	&���@
���C���Ie_3�i���T�����	$�z�	(�!����-�����08�z"�z���08�	$�z(���5�e�X
���X�	)�r�z&�z#�z/8�T�z(8�%:�����z�z�	$�z���-�z=�z

congr_funU���������z�z�9TU���/�u��z�z�z
�z=�	&�zt�v��zsubsingletonelimT�ztpisubsingletonU�/��/�rt��a�/decidablesubsingleton���z
�	�^��	�^�
�!�x�z��z�a��!�z��z��!�z��z���!�z��z��fI�z�_a�!�!�U��U��!�z����z��z��q�z��z��^�
���z��	�b%�	�z�
�l'�PInfo�	��decl�perm_inter������l₁l₂^t₁t₂p₁��p₂�W5�y���y��6��z�
������	6�	7^�	8�	9�	:���	;�W�[_x�9�y���y�8���z��z��perm_inter_right�6�
�perm_inter_left�6��PInfo�	5��decl�perm_pairwise��R���Ssymmetricl₁^l₂p�o���]�
�{��	@�{�	A�{
�2l₁^l₂��o��{�]�
l₁l₂p��{'�{&
�6S��
l₁^l₂p�od�{�]��	K4�	N�]��	L��	M��]�A>�	L4�	M�S��]�8�{K���!�{L�{N�
�_a��!�]�>8
�{U���{L���8�9nil8al₁�h�?8�@���5�d�{UIH�	L�#�	M�5��]��'��	L�
�	M�(�4������T�����U�������a_8� ��{�]��]�/
�Q��/�	�/�5��Y��/s₂��h_1�{~�!�U�?���	�
���	X���{��]��@�et₂�?rfl�{���;���	L�C�	M�'��this�X��'�]�����
�	M�$���{��	[����;�

�J�]����H�0(�+�{��+�{��pairwise_middle���H�B�'�J�{��M�?���@�����X�����;����]�{��{��pairwise_cons���H�'�{��e�{��{�b��m�{��J�	�-�0��/��-�/�{��S��-�]�/�{���-��{����{����-�]8�{��S����'��{�����+��{��{������'�c�{��	�B��A�Y��BA>
Annot�Q�PInfo�	?��decl�perm_nodup��l₁l₂�����X?
�X@��	a�	b�perm_pairwise
�]�
�m
�PInfo�	`��decl�perm_bind_left�������Vl₁l₂^f��"p~�[listbind�|]
����V�	e�	f^�	g�|Z�	h~�k�	e'�	f4�	hL�l�|[8
�|k��[�|]���|w���!�|y����|w�}�nil_bind�|w�}�|���al₁4l₂�p�IH���|[>8
�|�����|[A>���|�����has_appendappend���has_append>�|��|��|�
��!�|��|���|��|��cons_bindA>�|��|��|�
�perm_app_right>�|��|��|�abl���l�|k���|k���l�|����|��b��|���|k�|��|��|���!�|��|����|��|����|��|��|k���|��|�8��chas_append���6���6��e_2���6���6��e_3��������|����|�
�%���6�����|��|��b��b��G���b��|��|��|�
�|��|����|��|��|k�a�|��}�a�}���}��}"�|��|���|��l�|��|���|��|���!�|��};�"����|�_a���!���|����|�8�}D���|��}F�}E�|����}K���|��}9�"����}9�|��append_assoc�b���|���};�}:�|��|��b��|���!�};�}f�}@�|�_a���!���}D�}E���|��}K�}o���};�}e�}V�}e�|��}Z��b��|��perm_app_left�}7�}c�|��perm_app_comm�b��l₁'l₂4l₃�p₁;p₂�IH₁���|��|�IH₂���|[�A�}���|[�'�8�}�8�}�8
�PInfo�	d��decl�perm_bind_right�������Vlf�
��g�|Zha�[�����[�|^
�|_����V�	��	��}��	��|Z�	��}��c>�	�'�T�|[�}�
��[�|v
�|w���!�}�����}��}�|�
�|w�}�|���al4IH�"*�|[�}���l�|k���}��l�|��|o�|��|p��!�}��}����}��}��}�}��}��}��perm_app��}��|p�{/�PInfo�	���decl�perm_product_left�������Vl₁l₂^t₁��p~�prod�product�~#
����V�	��	�^�	����	�~�perm_bind_leftV�~
alistmap�~prodmk
�PInfo�	���decl�perm_product_right�������Vlt₁��t₂��p���~ �~$
�~%����V�	��	����	����	����perm_bind_right�~�	��~>�~@a�perm_mapX�~8�~=
�PInfo�	���decl�perm_product�������Vl₁l₂^t₁��t₂�"p₁��p₂�T
�~�~�~!�~o
����V�	��	�^�	����	��"�	����	��~j��~l�~q�~s�~t�perm_product_left�perm_product_right
�PInfo�	���ATTR�����	�decl�sublists_cons_perm_append��al^�sublists
���#^�%^�~��map^^���~���	��	���~��~�^���~�����foldr^�~�ys^r�~�g	^��sublists_aux
^�~��~��~��~��~��~��~���!�~��~���~���~�e_1���'�4e_2����G���~�
�U�~���~��~��~��~��7��~��~��~��~����~��~���sublistsequations_eqn_1
���^�e_1����~���~�e_2�~����~��~���
�����~������������~��~��sublists_aux_cons_cons
�~��~��~��~��~��~��~��~��~��	y�	z�~����~����~�e_2���~��n�~��n�~�e_3���~������#��?
����n��#�?�~��~��/��~��~��~��~��~��/�~�fa^�	��	�e_1���	�'�n�~��n�~�e_2�~���~����i
���	����n�~���i�����l�^���~��/�Z�)mapequations_eqn_2^^�����~��cons_append^���~��~��^���~��~��^�~��~��~��~��~������~����c=^_x�~��~��~��	��	��~�'���:�	�#�~��%�~�p��~��~��~��~��~��~��~��~��~��~���!�����~����~���foldr_nil^�~��~��~����~��~������~��~��W�~��~��l�~��~����~��	�equations_eqn_1^^����^�~��B^�~�b^l�~�IH�~��~��	��	��~�4����	�#�~��%�~�d�'�~�'�~��	�'�	��~������	'��
�#�~��%'�� �~�''�r�� �������s������%��.��)��!��,��8��~���~��	��~���~����	����G�G�
�
��C
�U��@���@��C��!��1�'�~�����
��+��7�7��~���+��&��5��7�	y�4�~����~����~��	��;�n��n�G�	�����@������n�#��n��r
����n�n��n����r��$�� �� �l�~��� ��*��5��''�r
��'
��5�'
��0��6�'��0��.��3��4��6����s��/����'��6�����'�s��4�~��^�~�����^���~��~��PInfo�	���decl�sublists_perm_sublists'��l�~��sublists'���	����	��~��~����
�	�_F���	�^���~�����	��	����	����~�������	�'�	����	�4��~��������������	����	�'4�~�����������������B4��l_hdl_tl4�	����	���~��~�8���8�����~���������	IH�~��������	����~�>���>��8������	�	��
���~��'����'���	��2��E����*��+�
��.�
��N�>�%���.
�~����	��T��!��P��[�����O_a��!�#�~�A�����A����e����P��Z�sublists'_cons�>
����M��S��+
��X��z��Z�sublists_cons_perm_appendZ>
�����z��T��|��Y�perm_mapZZ���	��z��T�PInfo�	���decl�revzip_sublists��ll₁l₂^���prod��������prodmk�revzip���
b�,��	������	��	�^������zip����
t��������!�����������������_a����!�	�^�	����������������������~��:��	�^�	�����
���������������
t�����revzipequations_eqn_1���listreverse_rec_on�	��	�^�	�����������
�
t��
���l₁l₂^h����������
"������������r�����!������'e_1������e_2�v��G�#��
�U�#��#��,���7��,�D�����	y�4�6'�64e_2���6��6�e_3�c\���
�
�~��F
���
�6�
����F�&
��andelim_left��
��������������
��	���������i�M��b��d�&��m�������g���������p��r��h�����v	�����w�4�9�������6���''�6���44e_2��������6������6�����e_3������#�#�G����
�
�����������
�U����6�����������g��g�l�����g��l��}�7������l��{��	������}�����	�~��������������~����~�e_1���~����~����~�e_2������G�������#�#���
���G���G��������i�����sublists_nil��k����7��~���k�����������~����~�e_1������~��~�
�
t���i��������reverse_singleton����zip_cons_cons����������������e_1�������������e_2������������������
����������������v��v�����v�����|��zip_nil_right���q��~��w�������g��v�q��w��pprodmkinj_iff
������andelim_right��b��d��T���������l���C��la
IH�	��	������������������''���''����
t'��|���5
l₁l₂'h����������������44���44���h�v���
t4����X��4a����b��M�������������������������+�
t�����M�v���	
����4�
�����

�����M��	
�����
�(������9�J
�J����������������������
�#���%����~�������prodmap����id�x��S�������������������������������������&����(����������������q������;Z��������������������&���4�
�����

�x����M������������������c8�
t�#�����������#�#�#�#����#�
�#�	�D8�*����#�#�������������a����M���������������������
t���B�����������������
���������
��7�q����[��mem_map����������������q��:�
����
����M�����������������������
��	&���������7prodexists���
�����Y��������e_1�!����:[��.
�3�
�����

������k��v�����z����!������������������
�����������
�!���.����w�
�t�������!������������������

��o������������������&�����k��������z�������������e_1������6��������6�������e_2����������G����?�?��������
�U����6�������������7������������p��u���prodmapequations_eqn_1������p��ufst��
�#e_1�	<snd���
 ��e_2�	?�x��������?�?��
���?�
 �?����A�A�����iddef[�������������z��z�l�����z�q��������J�����������&���4�
�����

��
���������"��(��#��/��������F��:�
�����H��I��M��P��N��W��R�q����\��b����������q��:�
����
�����j��k��o��u��p��z��R����
�����Z����
�����

������k��g�����z�����������|�������
������{�����������z�������

������y����&��y��k��������z��������w��������w�����u��p��������u��p�����������������"��z��z��.�q��������4���������������~����������������������_a���!��>��W�#����%����~���������Q��F��A�i��P��B��E���������������zip_map_left�����������������������������������������_a���!��������C�����E���������������������zip_map_right��������������������������������������~���_a�~��!��������C��D��������������C�����������C�~�������map_reverse�����������������#�~��%���������5������������;_a���!�����A�#�~��%���B�����B����E�������<���zip_append��������������

�
������X�����!��\��&��\�

has_powpow�
	�
	��has_powbit0�
	�
B�
;�
&��n��
c��Y��n��length_sublists��[��n�
f��[��Y��n��{��X�����Y��length_reverse�����length_map����������w�q��p��
���n���������8�����7��<�����_a�~��!�����E��D��D�����E�������:�reverse_append�����������������������������������_a�~��!�����A�������D��������A��D�������7�sublists_concat�
�������
��X�

��M����-���M���K��t�
��������o�n���l₁�h_h����.��

�#�M������������
�

����
�
�~��>�
t�
����M�	:
�	:��'�
8�3���$����>��&l₂'�#h_h_h��
�>�����������������������������5A�
t����"�M�2�2���>�3�
:�M��'��1�0��8����1A�sh��'h_h_h_right�M��8�o��
��:�>��>�	=�;�4���8�
<�M��G��M�f�A>��/���'��rfl��Grfl�����V>�0��
	�A�$�F��F�e�H�]�
>�0��;%���/���

�A�$�F8��g��	��	���m�	��]��l�	��	���u��l��y��!��z����0���v_a�A�!�$��o�F��f��g����g����z��~�22��~��v�append_assoc�@��l�w�@��|�]��l�5SA��
�������
��X�

�����M�K����s�K�
���������l₁'�h_h����.��

�#���M�	:��
��&�	:�
B�3�����l₂�#h_h_h�����(�M�2����-���
D��3�����<h��'h_h_h_right�M�o����:8�o
�>�	=����J>�	=8�
F�M��������Xrfl���rfl��>�0���u��l��i�0��

�A�$�F��o��f��g��	��	������y�	���u�	���l��y��!��	���0���_a�A�!�$����g�������	��
�����l��@��
��v��y�~�@����m�Ts�@��l���A��PInfo�	���decl�revzip_sublists'��ll₁l₂^����������
�����
K���V�
L�
M^���������Q�����Q�����!��V��`���������_a����!�
L^�
M��������������������V������������������c=�
K�
L^�
M������	��g
����}��l₁l₂^h����������
"����������"��=��B��_��e����h��	��g���������p�&�����w��p�����~��w��������}�����������}��������������������sublists'_nil������������������������������������<��E��Q����[�����`������f��jal^IH�
L�
M���y��{���
��~�������
O�
P'�
Q��������	�o��������X��4�
�����

��M��������.�����������D�4�
�����

�����M��E����
Q�(����������o�����������������������������������������������&���(��������������q������
������������&���4�
�����

��
����M�������f��������$�]��/����������:�
����M��?��A����D��-��I��O���W��*�q����9��b����������q��:�
����
����M��h�����k��q�D��z��*����
�����7����
�����

������k��E�����z�����������Z�������
������Y�����������X�������

��o�������������W����&��W��k��������z��������U��o�����U��������o���D��$������������z��z��.�q��q�����6�����
����&��
�4�
�����

��
���������"�]��#��/�����������:�
�����2��I��M���N��W����q��
�����b���������q��:�
����
�����D��k��o�D��p��z�������
����������
�����

������k��������z�������������������
��������������������������

���k�������&�����k����E��z�������������������������������D��p���E�E��E��������z��z��.�q��������4�E����������������������������_a���!�����������3��0��A�i���-��/�����������������������������������������������2_a���!��������.����/�� �������� ����5����	����������������������������5����L_a�~��!��������.��D���� ��������.�� ����P��1��(��1��L��-���������������5�������5��L�����P�����p_a���!�����A��B��-����B��T��/��K����q��O��S�����L�������

��X�����X��L���!�����&����

��l�
&�����
c��������length_sublists'�������
f��������������X����������������������q�����
�������������m�����l��q�����_a�~��!�����w��D��v�����w�������o��������������������o���������������_a�~��!�����A���o���D�������������l��q�
Q�������
��X�

��M���������K�]�
Q����������Dl₁�h_h����.��

�#�M����������8��������	:�e��
^�3�����|8l₂'�#h_h_h���>����!��8>��$����+�2���
`�M������7��Ah��h_h_h_right��A�o��
��H�	=��8�
b��O��,��S�g`�'rfl��Grfl���g`>��`�
O�A��c�h��]�0��g�
P�A��q��7��$��u��;�g��|�g�/���@�]��@�]��|�/���A��
Q�������
��X�

�����M�K�]����
Q�����m���l₁'�h_h��l�.��

�#���M�	:�|
����
f�3��y��l₂�#h_h_h��x���M�2������
h�������"h��h_h_h_right�M�o��8����>�	=��>����
j�M��������0rfl���rfl����0��g��9����
P�A�$�F�h�8��7��L�R�@�/���A��PInfo�
J��decl�perm_lookmap��f��T�l₁l₂^H�]�abcH���T��U�dH���U"�U�8�!>�M�`��p~�lookmap���
��
n����
o�
p^�
q����
x~	Fab�
{�
|cH���Md>H�	�T��U�A�5��M�/�/��
q�{%�
{�
|�
}8�
~���T�>�U�>���
A�
���T���U�����M����5������
q�{%�"6�
o��
p��
x�"8�
q�{A
�$����A��&
�
q�]���9���8���4� ��!��6� �ct��4���lookmap_nil8��4���@�B8�al₁�l₂�p�IH�
q�]��
�(����'���P
�
q�{q�_x�T��/h���T��]���T��e�
��T��e�
����T��@�e8�$����B�@�#:8��f�#;�
�����_�]�T��e��	�����@�e�%���v�%��	��%���v�%���v��!��|�����A��Ce_1�e�����Xe_2�g��G���1�1
�U������1��x����lookmap_cons_none�@�e8�J��c�T��@��fI���A�����T��B�@>�T��B�fQ�����&�����a�����������`�����e_1���T��H�6�T����6�T���e_2���T��-�G�T��0��������
�U����6��������b����������l��`����q��������`�������{�����������K8��~����,K�?�@�@��8�'A�{�A�Tf����w�M�����{��@A8val�e�
���c�T��@���k�$�]l8�]m��!��k����C��I�
��i���X��.�
����G�����0�
�U���������h���lookmap_cons_some�B�@>8��j�]m��A��B8�'�Ac��Y��Xab8l��
q��#�	q�T_x��h₁���T��'���T��/�
���Y�
���]�f����e�]��%g��m�%h�
�����Y��X�T��/_x��Zh₂��p�]�T��@�
���`�
�����@8�'����H�B�%��%�8����%��
���a�6e�����$��f�%��#;��f�%��$�%��#:��f�#:�%������!��������:�������7��C����%���j�������B�@8�#;�J��������fI����
�������B>�T��H�fQ�����&������������������������
�������6����6����
�����G�T��5��������
�U����6�������������������l�������q����������������B��He_1�m��X��.e_2��$�������8�?
���5������888�l�B8��j������>�J�����fI���A������BA����fQ�����&�������������������������������������������#:��f�%�������%���.��
>>��
>��6����������]z>8���d�@�
�����T��B�����'�]'����%��](��!�����W��I���
��g���.����
����G������
�U������������T��=�H�B>��������V�7��I����%�����%���V����H�BA�%��J����fI���
�������H��T����fQ����&�����������������������
�������6����6����
�����G�T�����������
�U����6������������������l�������q����������������H����
�������.����
���]�������_d��
�����������AA�l�HA����](��z8��HA8�Y�Ac��Z�Yc�/�
���\�T��]_x��_�
�����T��B�
�����
������������H�%����%s�
������S�'�%��0�8�0��%����Y����u���������%������������>����J�����fI����
�������HA����fQ�����&���������������������������������>>���>��!����xA8�������K�%����>8�
��B�
�����T��H������V��%��0��%r��!����e����X�
��g��������
����G������
�U�����������b��=���HA�%�����d�����%r�>�mA����a_9�M���������
�#��0����A�,f�?���@�{��#��e�'�{��/�%��Tf����%��M�������{��/A�%�8�orinl�m������>�Ac���rfl���rfl���
���-�'�
��-�
q�]��0�@�%��`�'�
�����0�T��5>������
�]�1E�%��
q�]��-�e�%x�%y�
�����-�/�T��08���5�
��5�
�����5�e�T��������&<���&<�
�����6�����B������%�>
�/A��|�Ac��_��|���Ac����l₁�l₂�l₃�p₁��p₂�VIH₁�
q��V�0����/�'��.IH₂�
q�]��/�^����]�/��8�
q�{�8��e��m��m��m���Tf�]��e>��I�|O�e>a�eb�@h�#c�Hh₁�X�����U����H
d��h₂���-����U��-���Jimp���0��^��^��^�C�0��k�b�


�PInfo�
m��decl�perm_erasep��f��_inst_1��l₁^l₂H�]�ab��������p�d���erasep�����
��
����
����
�^�
��
�����
��d	Fab�
��
���	�������
��]��
��
�8��������9���8������
��]����
���
���
���
���L
�(����'���'�3����
�
��{J������>8�2������p"���!�������	V������erasep_nil>8�2���������	d�a8l₁�l₂�#p�&IH�
��{q
�0����/�'�����
�
���4�3�b!�Y��X�^����]�/�����
h�Y��f����e�]��"������!����&���6+��g�����erasep_cons_of_pos�e�]��J��|��	���|������!��(�q�6+��	��6+���
����Y���f�����������B����>��erasep_cons_of_neg�e�]��J����|��T��M�i(��i+��|���i.��|�i3������A��K��[��e��=��@
�,K�?�e�@�r�68��H8�Tf��n�"�M��l��o�{��e8a8b>l�#�
�����H�b!�"����(�����������$h₁�"��b!�+�"��0����������h₂�+��^���^������
�^��^�������!�����������?e_1����C��Ie_2�i��i���
�i���X���������]�/����J����	������������������J�Y��	��Y���X�_x���f��"��,f�?�]�@�>�{����Tf�������M�������{��]��
����<��]�Ac�]�
����+����^�������������������7�����a�]�����^���
�������G�]�/����J������T���i(��i+�����i.���i3����]��ee_1�8���C��Ie_2�i����X�X�"��
������X�.���l�]��	����������������B�]����
����"�����
��+��������������Y�������
��
����
��
�����������J��<��T��<�i(��i+�Y���i.�Y�i3����?��B�������������Q���
�������^�^��
���
�^������������������������(��E�����d��s��������b�����t��{�������'��]���l₁�l₂�l₃�#p₁�Vp₂�*IH₁�
�����^����IH₂�
�����f��=��@�
���n��$����@�e�y���������Tf�{�>����|O�@>a�@b�Bh�#h₁�h]h₂����

�PInfo�
��decl�permutations_aux2_fst�������Vtts^r��ysf�'���	�fst4���permutations_aux2
�7����V�
��
�^�
�������V�
��
�^�
����
��
�������
�4�
�������������8�O�
�4_F���
���
���8����������>8�	
�
��� �
���
���#A�
����
��
�
�����'�o�����������/�'�A>��A���'�
����
����/�
����
�����]������?������e�]�/�'���'�	=�����������]�/�'�A���
�
����
����
�����/�	=��Z��`��d�3���o��5��:�s
��u�Ac����uys_hd�'ys_tl���
��0H�
����
���?�e������A������@�e�]�/�'�	��/��������I�permutations_aux2_match_1����e�]�/
��Ox�?�.����'o�~�?���������{��/�	�cases_on]^�C�h�
��~�C�h��
����I��;�e������(������H�B8�0(��@o_fst�Co_snd�������~:��(�{��@�]�X����X���~:�X��
t_1�X��r����.���~:�.��
H_1���0�8��H_2�(��������#��~:���#��0�>�����
��������#]������5�0��/�~:���#]�0����A�-�{��B����R���B
���R�-�H�
��.���������%��~:���%�����
��(�������������%��$�l����$�����������
����r��������
�{��H�
��(�������R�08�������D��C� ���C�����������5�0�-A�'�~:
��Annot��
�#�Annot��
�R�5>��Annot����\�Ac����\�%:��
�X�������
������
��?�
���A�@�D����C�h����B�@�e�]�/�G�]�h���e��A����	�
��I�
������������������H�B�@�;��B���	����������

�PInfo�
��decl�permutations_aux2_snd_nil�������Vtts^r��f������	�snd'�����
������V�
��
�^�
����
�����3p������PInfo�
��ATTR�
���
�ATTR�����
�decl�permutations_aux2_snd_cons�������Vtts^r��yys'f�4��������������Y�������������x�������V�
��
�^�
����
��
�'����o�~��������L��������~�����K����#���y������
������A>�Z���|�^8��o_fst�o_snd����	:����
���~:�
�����������������~:����
t_1����o��5�~:����
H_1�	=���H_2�(����I�~:�?���>�'��U
�e����A������@�e�]�>�~:�A���"�>�	��g���A�/��_��h��>��2�R�'>
���A�����	=��Z�~:������M��(����I��Q��W�������hB����e��_��d��f
��r��_�����o��5��G���
��A��(�	=��Z����R�]8���M�������������������?�����A8�~:
�?Annot��
��Annot��
�R�e>�'Annot������3p������o��{�X�2��D��{���permutations_aux2_fst���PInfo�
�� ATTR�����
�decl�permutations_aux2_append�������Vtts^r��ysf��������|����|����4�����|
���������V�
�^����
�����c=�
4��������|����������|������������|����|��������|�����������!��,��&��,�����������e_1�����6���6��e_2�������"[�b
�����6���b��'������'�� ��!�	y�|�����������e_2���6���6��e_3�d������|�����\
�%���6������\����%��!�
���!�G������+��z�q��4��A����ys_hdys_tl�ys_ih��� ��7�}D��������&�|8�����)���>����|�����#�����A>8���k��������k����!�����&����n������M��>�]�{�w
�����������
��#�h����n�������w������������������������6���6��������e�e
���e���������������|�������
����������|�����������	y�|�������������d�6���6����g��h�|��h���
�&�6�h�����|�������������w�w�]�k��������
�A>8��
�>�Ae_1�3�������e_2��������"��"�
�%�e����h�"��������#��
e_1�e
�5���'
������7��#���]�w�k������A8�k��l88�l8��S�����W
�������G�������k�	�>��������B�������G>���������������������������������%
��h��������k�����inj_eq>�������������o�����q�������>��������q�������������o���PInfo�	�(decl�mem_permutations_aux2��ttsys^ll'����'�~���'�	�snd'�~��permutations_aux2'��
����l₁'��l₂4�M�]����M������
������������^���c>�'�4������~����
�����~�����	��S��4�"�����#��M�]����M�VH�	��n�n�	0��'�����4�~���4���4�~����4	4���9���"4�4�#��M�]����M�nQ�N�/9�J�J�K�
���!��D��&��D�N4x�����J�$4���������#��M�������M�M�v����P���r�	
��S���M��J�����"4�4�#��M�����M�M�dH���f�/9�K�N�
�S���b��J������v��wa�%e_1�}b�'e_2�}������
������.���&��.��"��)���4�94�~��6��6�e_2�v��6�G�6��@e_3����n�G��z������z���
�v��6��z����� �l4��-��)�
�4��)�9�q������pR4��C��v���	/4�����e_1�!���������
�X��B��u�!�4��4��4��A��4��t�"4�����@��s��������?�����r�#��o��2��g�^T����>��q�o��5��k�q��5��k��nil_eq_append_iff8��=��p�nc�l���<��o�xy��<�K�J�N��9��o���J�K�����	y�4�������#e_2�	<�n���n��e_3�	?�x����
���x����I��:�����8
��9�����*����&

���
����n�xy���N�J��9��n��)��9��&�����?��m��8�q��{��wfalse_iff��v�q����x4��`��bnot_exists4����^=4�$4����t�$4��$4�&���4�0�x���R�M�M����P���r�	0��W�N��$�������$����������q��������l�����^=��$�����r��K�$��&���a��g������3��g���M��y��S���r�	0��S�����q������not_and��g��qimp_congr_ctx_eq��g����q��g�����g_h��g�&����i(��i�������&����M��������o������&�����y�����o��x��x����x��S���q��S���i.��S�q�����and_false��x������������q�����false_and����j�q����forall_true_iff��g�q�����forall_const��listinhabited�q��4�����4�����yys4ih��������~���������~����8�	��S�����"��X�#��M�]��#���M�K���K�w�w�����8��������������������>�8	��
�	
�X�"��3�#�#�M�]��
�*�M�	:����	:���������>����A��	
�n��
��C��I
��������b��!��c��t��`��L_a��!�����#�G���#����#�G���A�#>8	�#�����3�"�#�t�#�
�M�]����3�M�2�����2���������A����~�������c��q�permutations_aux2_snd_cons>�8��H
�	
���t����A��j��C��k�n�	
�	���b��!��t��������#��n_a����!����~�#���w����8��������#������������~����������������t���
�2�������n���funextbb�����#��n���x���K��m�w���������!�����&��������m����#���
e_1�e
�	/���	/��e_2������{�
�k�����m��m����m�����m��P������w�����m���A����	y�4�#���
�����-�c^�n���n�?�.�����C�C�D�� 
���C�n�C�I�� �v� �����l��P�����	��l��W���l	�l��>�	YA�q�������#��m��Annot�3�������(����i��A�����b��!�����i�fI���_a�!����~���������������������������g�q�����g�t���i������i����e�X�"��3�#�#��R�M�	:���V������������*��>��b��!��i����fI��f_a�!���(��.�����~��p���������������i����q��f������������bh����X�����3�"�#�t�#�
����M�dL�����������������3��A�I�������t�"�
� ��#���M�]����s�M�o����o8���������e��������������>��
�?�������������������z����/���'�	���	�� ��"�����#���M�]��?���M��8��{y���
���/� ��"�����#������M�����{y������/�?��
��������n�������������A�������n����'���A	���	k� ��"��� ��#���M�]������M�	=�9�	=������5���'�����/��6�'�G���"��� ��#����?�M���9��G��������6�'�3��V�#������M������s�o�����������������s������M������3�M������3���2��-��������3��*A���!�����&����n���o��{��&��{�i(����������3�i(�^T�����3�i������eq_false_intro���_h����s
���s�j�����&����n���o����&���n������n��dL�n�������������n������r��~���	Y�'���n��o�����q�����o�o�����&����2���������A�����n���-����	y�4�����������-���n�A�n�C�.�e������0&���
����n��X������o��,����l^��,������A������'���A�f����f���������A�������l^�����-����� �������*A��-��������#���������'��*��*�o��*AA�oA����'��*A���q�����o����o�o��������I������
�"�
� ��#������M�o����������������s���I�t��m� ��"��� ��#����?��X�	=>��]l₁�
h_h��l�{x�#����?�M��@�/���p�������������
�6�'�N� �������"�����#�?�M�]��A���M���	�����	��	���u���]l₂��h_h_h����>������M���;��A����������;�/�P�M���������"�A���#�C�M�]��I�
�M�G�+�
�/�*�*�*>�
	�@l0���h_h_h_right�M��>�;)����	��	��	���u������
�]�>�DA�F�D�'�F�F�F��o���
>�I�e�R�M���������"�I��#��M�]��X�#��M���������e�;��;��;���;��Hye���h_h_h_right_right����*�*�*������
�
	�@�r�0(�0(�0(�0(A���0=�;��B���?��X�����.�.���.����.�� ����-�.����	�.�]�0��/�"�.���#���M�]������M���@�;��g��0��0��0��;��-�/�"�.���#����6�M������8�g��0��0��0��]��=�-�?�������X�X���X�;��;��;�������#�8�;��H����X��^������X���H	�X�/�;��Y�"�X�/�#�.�M�]������M���0����0��0��0��0��/�a��A�;�8���0��0��1��;����O�;�8�>�X�?��.���������������������������0���-��	���;����"�����#���M�]������M���;����0��0��0��0��e�����'�<A�0�0��0��0��<�0���"�����#������M�����������0��0��������0�?��X����#�0��0��0��0��'����>�;�����&��,�0�>��.�/�"�.���#����6�M���1�>��8���0��0��0���M�9����;�>�-��@�G�.�"�.���#����6�M���9�����8����R��>���#�.��}�M���a�1�8�0��aA����0��0������!������e�]��.���M�r������0����r����0��0��������������B���!��B��&��B�n���o��9��&��9�n����O�M�g��e�e�r�������n���O��6��5��W���.�����E��]�	/���	/���F���G���E�E
�U���	/���E��5��5����5��8��5���-�e>�n��-�e����e����o��S��q��S����-�e��V��q��V����.����o��A��&��A�r���������;��{���������u�������7��.�������0������������������0�������������	y�4�.���������-��k�n���n���.�E���
�
�1���
���
�n�
�����0������������������7�����������>�����������<����������0����>��<����-�'���>����'�'����������������;�>����}��>��-��0e_1�&������e_2��^�������>��=c
��������
���e�e�l�-�e���>�	Y�->������������������������������~�������������������������������������0�����������}���������:��������:����0������������>��������>>��>��E�����|������@��������@��������_�����������>��������>��������$��*������/��3��Z�q�����������o���/�C�X�/���
�]�C��]����I��b�.�����I����(��V�����oh_w�#h_h�����E�W���X��u�(��p��F���"�����#�?����M����	�����	��	��������]�X� ��#�������i�����s�{x�#����?�M��������p����������6�'�X� �������l₂��h_h_h�������M���������������;�/�Z�������(�����u�	������]���"�A���#�C����M�
��������*�*������@l0���h_h_h_right�M���	���
����	��	���u������]�>�D���F�
>����F�F��o�
>����e�\�M�����(�������*�
	�F�@���"�I��#�����M���������;��;���d����Hye��rfl����*�*����
���@�r�0(�0(���0=���B���?��I�(�g�����0��;������/�"�.���#����6��:�g��0��0������=�-�?������a�;��;�����#���g�H��w�Y�"�X�/�#�.��}������0��0����������������(����U����;��;���H�Y�"�X�/�#�.��}�����^�0��0������������!��{��&��{�)�Y�"�X�/�#�.�M���������������;����������a��~�;��;��������m��&��m������;��{��H�������X���.�E��$�	/���	/���F���G�����`
�U���	/������U����7��X��U����;���g�H�������;������g�H����	y�4�X���.�����-��]�n���n���.��^����<)���
�����n���
����;���S��������Q��������g��g�%:��g�H�H�%:�H��������g�H������%:��������������H��l��������k��������k�����������i��g�����-�U��b�������V����������#��>�
����������������l����������;��#�
�	Y���H�H������q�������X�����z�����������g��+�!���������-
����y����!��X���X���X��x���X����"�X���g�������+�!���-�����g
����w����!��.���.���.��v���.����#�.�o��|����^T������u����o�������������t������������E��k�	/���	/���F����G�
��
�U�
�	/�
���]����7�����]����0�������������0�������������	y�4�����������-����n���n���.������=����
����n��,����0���[��������Y�/���0�/������� ��������� �������0�/���������/�/� ��/���������0�-8����s��������s����0��a��~������������0�����������������q��������q����0��a����������0������������������o��������o����0���������������������������a�;��������@����0��5�U�`2�������V�������FU�
������
����@�@�l�0�@���	Y�0������� ����������������������������������������������������������a�0������������������2��X��������X��~�0��������������������� ���c���������q������������]�����9�y'�'l₁���X���#������M������������������/�!�#�?����M���	��.
����	��	���u�������]�X���������Y�?h_h_h����>�]��C�
>�M��	�F�����F�F��o����;�e�a�M��������+�[���h_h_h_right�M�G�*�

����*�*�������
	
�@�>������]�0(�0(������Xp�B�b�M�������(�����l�Y�"�X�/�#�.��}������B��s�]����^����;��;�������;��H���0��0������8�;�����.�?��������������������������5���0�-	���@�;����"�����#���M�]������M���H�=W���1�1�1�=C�5�(��\��M�0��;����-���"�����#����$��(��)�1�1�1�1�@������,�5�?��.������0��0�����`>8�;����������e�;����"�����#������M���B������0��0�������<8�0����>��^�@>������]�M��u��x�(���0��0���M�8A>�;��-��<���"�����#����$��(���1�1��?���'��=C>�5��G�����v�0���T��{�&��������S��w��{����v�v� ��v���������>8�n��0�@�e>��w
rfl��urfl��7����&�H�_���?����������������=L�=L�=L�B���'�=\A���������������������	�����=L���"�����#���M�]��
���M��-�FZ��1!�1!�1!����]�=y�'���1!�1!�1"�=y���(���������=L�=\���������"�����#������������1!�1!�1!�������������?����������������1�1��?�������5�����������������5	���H�>����"�����#���M�]������M�E���@*�E�<+�<+�<+�H���/�=n����<+�<+�<+
�=n���Q��1�>�>���?�����������������;�������Q�����������	���FQ���"����#�
�M�]���=��M���D)���=��=��=�����e�<R�/���=��=��=�
�Q����(��<��4�<+�=n�������"����#�
��f��j��s�=��=��=���k��=��Q����?���������=L�=L������'������������=L�'A������"�����#������M��1!�]�'�����1!�1!������]�������������������=L�=\����������"�����#��������������G������'����#����/�M�E�<+�/������<�<+�<+�<+��4�����/��@��A�e�]���A���M������������=L�=L�=L��������'�����8�������!�����&����n���o�����q����������������&��������������=\�=LA��������������E����	/��	/�,�F�8�G�{�=��=�
�U�{�	/�{�=�������7����������=L��������������3�=L�����5����8�	y�4���������
�-���n�,�n�7�.�=��������<D��G
�����n���m��G�=K�����;��2�������=L��������;������B��������^�B�B�l���B��c��5�������'���������n����h��5����p��7����2��7���=L��4������t��4���������U�e����,�V�����{�{�DI�5
���2��{���5�����l�����������2�������=L���������g�'�������^�'�'��n�'�������s��A���������2�����8�������=��8��^�����;��2�����d��;��������d��^��������2�������=L����'�����h����'��p��������2������=M�'�����t���'�������'�	Y���'��������n�����j��w������|�������q��������o���H�C���H��N�
�@�`��@���/
�PInfo��,decl�mem_permutations_aux2'��ttsys^l�����~�������~����
�������l₁��l₂'�M�]�4���M������
�5����f�g�h^�i���s����U��W��]�D��r��!��s��~���d��^_a�d�!��������������'���j'���k4���������������������������������s�D
�2�e��^�D�����'��^�Da�z����Annot�3�mem_permutations_aux2
���PInfo�e�=decl�length_permutations_aux2�������Vtts^ysf����

�length�������}�
����V�p�q^�r�s����c>�r'�s����

��������"�
)�s�����

���������������!�����&����t���
c����p(�
f����������p(��������e_1���:���
	
���8��������v�����equations_eqn_1��p(�w�u��ys_hdys_tl4ys_ih�s���

������
+�s�� ��

����������
�P�
���!��"��&��"�
=���(�

�
D�P
��,�
=�
c����,�
f���
C��+�
;�
s��+��3�
C���������
����l�
;��5��3������D�	�	0��=��@���������u��������
	
��������H�������n�D�
��=��H��!>8���
�8�>e_1�3v������e_2���|��/�/
�%�]������/��\��F����#e_1�	<�5���
��[��E�d���[�D�n�
��E��>�
�>�Ae_1�7�������e_2�	?�x��"��

�x���?�A���7������D���
��=��=�#��=��8��F��=�
���>��+��;�
;�
;�
��
���+�
;��!��,�
f��!��5��7�
{>
����q�

�
���+����
=�
���+�
;�
;�
����PInfo�o�Bdecl�foldr_permutations_aux2��ttsr�~�L�~��~���yr�~���$��(���4��	listbindy�����������������~����~��c=���~��6����'���~����������
��%��''��'��$��*���
�l�~�����lL�~�ih����~�4�~���4���~�������N�#�~��%4��44��4����������~��~���~�������~���C��G��p��
��5������W�������!��N�~���������5��[��`
�����5�����
�����i��!��d��t���~����~�e_1����6�G�6��@e_2����������z��y
�U��z�����y��X��m�7��~���X��S
��U��m��[��~���S
c����~�������~�e_1������������G�G
���������
�����lt��8e_1�7Gts�#���
e_2�e
r��z����e_3���?�n�A�n�Ce_4�e��n����n�n�X�.e_5���n�.�����n����������������]�8����/A
�����n����������������������n���n�n�����������������8���������n���n�n������������������A���0���������n���n�n�������������]�/����'>�8n�w�����i

�w
�������l�n�������c��s�����c��5��r��g��s�	y�4�~����~����e_2��?�6��@�6��ne_3��y���������#�����8
������6��������8��4��a��-�	t��
��`�l�~�������q��g���t�~���s��s��!��t��i����m_a�~��!�9������B����
�����C��I��p��N��B����!��N��x�9�������t��s��(��s��m�permutations_aux2_append���i
�����[��s�PInfo���Fdecl�mem_foldr_permutations_aux2��ttsr�~�L�~�l'��������(���
��l₁'��l₂4�M����������������������~����~���
�2����a'�M��!
��l₁4�4l₂���h�M�
��4�/9��n��l₁'��l₂4�M����������������S�
�����"��;
�(��"����4�4����M����4��3�/9������"��@��B
��G�����!���������~����_a�~��!�������U�(����4����������M��@�	��	���n�	
������������������foldr_permutations_aux2
�������!�����&������������4�4�����h��������0���������0�&����(��/�����0��7�(��"��������9�q�����>�;Z4�������<��/�&��<��a4�M����4�j�����k���R�M��	����X��/��K����4� ��MH��M����u��Z�q��<��c��mem_bind44
��G�����4��]����M������"��N��Y�����4��t��4��X��4�&��t��]����M����j��X�k��M���������-��.�����S���X������M������e_1� ����@
������}
� �����s����f���M����M����M��r����M�������M�&��r����j��X�k���*��-��.�w��8����q��r����mem_permutations_aux2'8�������������������������j����������.e_1�!��w�����dS
� ��������!������������������k��o��)��~�^T�#���������o��,��,����,������������������P������w��8�������8��:��������W>8�q��]h��M�����Xexists_prop��M��W�q��Z��/������������q��9��0orcomm��/��������0����������%�����/��������.�����4�����4��-��4��������,��������������+����&��������h�����+�o����������������E���������������n��R�q��F��+andleft_comm�����g����q��2�iff_self��0��Annot��Annot���������_x���_a��Z�����M���������X������M�K
��������4����������X������M��}������f��=����>��@�X����3���#�M������*�M�0���V�����T�=�M�������3���#�t���
�M���2�3�M��)��8��������	kAh_left���h_right�3���#�t���
����M�dN�������\���
� ������M���o�s�M�o��������	�����t���� ������ ������M���	=���M������������9A��p���5�T,h_right_w�
h_right_h����{x��������M�/��/���p�/������� ���������������?�M�������M���A�A���A�	��'����	����	��]h_right_h_w��h_right_h_h����>�������M�0��������;������M���������A�����C�M���
�
�M���I�I���I����]����+�
	�*�@h_right_h_h_left��h_right_h_h_right�M��8�;)����;(���{��]�>�D>����������I�;�e���M��=��B�����I�����M�����#��M��a����@�������;���u�Hh_right_h_h_right_left��=h_right_h_h_right_right����*�
	�;�@�������Y���X�M���r���M��#�0��B�r�@��c�;���.���G���q��t�����I�M��a����@��������N�e���^��0=�M��������0(�e�������;��{��B�e���������_x���a�@����>_x���_a��/������������R����Q���4����������M��@�X����3���#����M�������f��=����)�������M��}�����.�������=�X����3���#�M���
��@���
�t���
� ���������M�������h_w�h_h����>���	;�*�M�������V����������M������ ������M���>� ������������M�������M�^�����������/h_h_left���h_h_right�M��)��
8���������
A�>�����>�����)�������M��,��2�������M���?������?������?�����A�M���D�
>�M�D
�M����G�I��a�eh_h_right_left��,h_h_right_right��p���5���'�������?�M����'�����A�����C���M�

�����*�G�?��g��e��9��m������?�����A��@�M�D�F>�M��G��j��{��j���?����M���	�8������������e���d����M����m��m�����l����/�e�������Ac�?��m�PInfo���Jdecl�length_foldr_permutations_aux2��ttsr�~�L�~��

�
���
C�sum�
	�
B�p'�map�
	������������~����~��������!�����&����

�����������

�
C�������������
c�������
f�������
r����������
C�����
��������������������~����~�e_1����:�~��
	
��X������
�length_append��
�
��������
f�����������dd�~��
	����������length_bind��_inst_1�
�_inst_2has_zero�
	�n��
	�n��$e_3� ��$����$�
	
����
B�p'������	��	��
	�	��	�'�
	e_1�!��	�4�
	���~����~�e_2����G�G��$����#�
	��B
�:de�	��#�
	���G��$��B����2e��9��x�
'��'���
functioncompequations_eqn_1dd�~��
	������!����
	����_����d���length_permutations_aux2'�����.�������
�����
�����������������q�

�
��������������
�����������q�����
�������PInfo���Udecl�length_foldr_permutations_aux2'��ttsr�~�L�~�n�
	Hl'H����

�
)
�

�
4����
Chas_mulmul�
	��has_mul���
�����������~����~����
	����������

�
C������4�
	�
�
��������!�������2s���_a�
	�!�

��X����
C���
��X��X�2}������������length_foldr_permutations_aux2
�����

��������!�������2s���_a�
	�!�

�
C��������
	�
&�������

�
C���������������c=4���~����������w�

�P�

��������
	�
+����
�����4����L����

����

��������������X������!��*��&��*�t���
c��&�p(�
f��&���listnil�
	�p&add_monoidto_has_zero�
	��add_monoid��6��%��7�	���
	�
&listsum_nil�
	��<��)�p(�
f��)����p(�p&mul_zero_classto_has_zero�
	semiringto_mul_zero_class�
	��semiring��has_mul�
	�6�
	�6�
	e_2�
L�6�
	�6�
	e_3�
L�
������]
�
���]���

�
�
��(�p(���mul_zero�
	��W
�u��l4L�~�ih�����������

�U�

��������
	�P����
����������}���
�

�)��

�����B�U�������
�#������!�����&����
O�����

�
C������
�������
c�������
f����
A�
l��to_add_semigroup�
	��<��������=���
������������
	��������6�������%��$�������U�������	��#�
	�U
��
	��
	e_1�
L���$���$e_2��'�~��$��$������
�
U���$��$�������]�Y��#
����������$���listsum_cons�
	��<����
��
�������l�#m������mem_cons_of_mem���������
f����
Adistribto_has_add�
	��distrib����to_has_mul�
	��&�
;��-��������#����
D�����1��o�������4�
f����
C����
;�
s����
{�#
�
�����
;mul_add�
	��&�
;����
���.mul_one�
	��monoid��0����
�����q�

�
������d����
�����q�����
���
�
�����PInfo���Ydecl�perm_of_mem_permutations_aux��tsisl^����~����permutations_aux
�n�(
��permutations_auxrecl₁l₂����is����^�~���^���
��`���
"
���!�����&�M��^��������
"�n�D
�������N��^�����^=���������^=��������&�������2��^G��������������&�������~����4�9^�~��6�6e_2�d$�6�~��6�~�e_3�;�G���>���
�U��6�������������~���permutations_aux_nil
�q������pR^��������	Y
�qh'���"��}�forall_prop_of_false���"���2�J�i(��i3���q������������������q���������9��ttsis^IH1����U���
g��sIH2��������
���B�:����'m�������V
�X��������V�4����������M����e���>���	�VH���)�(��a��p:�J�X����]��T��`����^���s�fI��_a�!��
�~���~�y�r���������#���8�V�	����������s�q����s�mem_foldr_permutations_aux2��`��}����]��y��permutations�������_a�~��!���������8�������������}��permutationsequations_eqn_1����]��^�V��������_a�~��!�������X������������permutations_aux_consm��a�
�
����V��u���8�)��p�������X����M���������A����*�K����)�������Z�n�Xl₁�m_h����.����#�M�������
8����8�*��R�	:�������>�7�3���w����VL8l₂�#m_h_h���>��)�����>����'>�3�M����3�V-�������A�9�M��#��-�0����Am��#m_h_h_right�M���
�s�V������
��>��<���	=8������5�'�;�M��C��J�f>��W-�'m_h_h_right_left��Ce��>������/�0��	���u���]��A���F�I�e�]��$��^�	��V��]�	����]�/�����\�V��]��$��\����|�V���F�e��K�e��|�/�X�����|�/�����|����@�/���:�(��}����$��o�]�����A�/�������q�������t�A��|�/���e��}�����$�]�]��!��������:����]�]�]�k��]�0d�]m������C_x�C�'����F�]�
>�]���B�]�'�����y����/�]����]�/��,�/�]A�22A��^�PInfo��bdecl�perm_of_mem_permutations��l₁l₂h������
|��B�C�D�������
���
����
"|�eq_or_mem_of_mem_cons
���e�����_x�!�
�Cm������+��
��_
�perm_of_mem_permutations_aux
���PInfo�A�rdecl�length_permutations_aux��tsis�

�
C�
^�����fact�w��%�
C�z��&��������-���

�
C�
���
��%�
��%�
C��:
��;���!��D��&�M��

�
C�� �����'��%�
C�x��&�N���������C����&��C�

��<��<��
c��=��<�
f��=�
C�p(��<��<�
���8�p(�
f��8��4	�p(�����~�e_1���~�����~��
	
�����7��o������<��<�
���<zero_add�
	��<��<��B��<��
	��
	e_1�
L�q-��%��A��;�
f��A��h��;��;�
���?�p(����;��;�
���;�����;�q��b��
���<��C��ttsis^IH1�

�
C�
���q��%�
q��%�
C�
���IH2�

�
C�����I����%�����%�
C�N�����

�
C��_��Q�V
��%�

��%�
C�
�V����

�
C��_����Q�s���
��������!���������~����_a�~��!�

�
C�����[��%�
���%�
C�
��V
����

�
C��������������������
�����

�
C�
C��������_�����_�����������!������2s���_a�
	�!�

�
C�����:��Y�X����������

����������������length_foldr_permutations_aux2'���������l'm�����%�/�perm_of_mem_permutations����

�
C�
C����_����S����������!����U������_a�~��!�

�
C�
C�����������%�����"�������

�
C�
C��[�����_������������M���
���U�

�
C�
C���
C��_��S�
;����������!��U����2s��N_a�
	�!�

�
C�
C��[�������Y����_�������

�
C�
C��[��_����������U��{�
{'
��S���������%�
C�
C�
�
;�����!�������2s���_a�
	�!�

�
C�
C��[�
C�������
;��_�����������%��������������
{�����

�
C�
C���������������!�������2s��{_a�
	�!�����%�
C�
C�.��
;�������������������

��{����

�
D��y�����!�������
c��{����
���y�
;�������
�������

��z��%�
����%�
C����������
c������
f����{�
s��y�
���y��y�
���y���
;�
f����%�p(�
;�������p(���|fact_zero�����������������
f�����p(����
��������
��������p(��add_zero�
	��<������������%�A��������!�����E�2s�
C�A������_a�
	�!�

�
C�
C��[�����_��������S��%�������Cnatsucc_add���������E��������C��%��B��!��E��h�2s��D_a�
	�!��S��%�A��������S����E��gnatfact_succ��B���h�������w�
	���
	��comm_semigroup��f��C��!��h����2s�����C��f_a�
	�!��S�����o��%��n��s����h���mul_comm�
	�����C��f��������
C���������A�����!�������2s�����f��C_a�
	�!��S��������o��s���������v���������

�����%�
�s��%�������

�������
c�������
������
����������
f��������������������������%����������������
f����A��)���������
;������
natadd_succ����p(�q2��)�����7�|factequations_eqn_2�������������������
f�����g��������D��g��������C�
f�����������C�
��������
���������������������������B��������

�
C�
r�������������!�����&�2s�
r�����_a�
	�!��S�
C��_�������A�����.��2�������"�
���������&�

�
A�
l��add_semigroup����D�����������!��&��J�2s��D��E������_a�
	�!�

�
C�
r��_��N�����2�2}��2����&��Hadd_assoc�
	��B�����������J��I����
C�����������!��J��o�2s���_a�
	�!�

��D��_��D��N�����2��y��.����J��mnatmul_succ���������o�

��E��D�����������n��!��o����2s���������_a�
	�!��y��.�
C��/�������

��u��D����������o�������������
�����PInfo�J�wdecl�length_permutations��l�

��4�����<��z�length_permutations_aux
�PInfo�y��decl�mem_permutations_of_perm_lemma��islH�����(�/�ts'� �"��H����d$���������
"��2��T
�����}�~����������2�(��a�����I����!�������^G�2������
�2�(��
������2�&������
�������4�9�~��6�6'e_2��$�6�~��6�~�e_3�����?��{��
��-�6�G������l��������
�q������t
����������(����� ��������8�����������^G�������2�����e_1����4��e_2�dI�G��*��
���������%���
�	Y
���������&���a��a�S��
"�����h�/����M������i��k���*����e_1�!��'������
�������r�!��������������������q���&����M�����i��q�q�������������i�o�����o�q�����o�perm_nil��i��i����i�q�/�����p������S���kexists_eq_left��j�
"��e_1����4��e_2�dI��J���
��R���%���
��c������������PInfo�|��decl�mem_permutations_aux_of_perm��tsisl^�����
�(��is'� �!�H�!�������T���
���������������������(�/����."���.!�������������
���!����&�M���^������
"�(����������!����6�������I��
������������������������������������&��������2��^G����(�,���^�,����,���a���������������������&��0�(������������.����&��.�,���^�M�,���a^�,����^���*�e_1�!���v�����w
����-��D�!�^��^��^��,��^��C��^�&��,�,����,���a��C���6�,����6�ne_1� �6�c���6�
� ��n��+��b�f��,����,����,���*���,���a���,���'e_1��$����e_2�v���&��.���
��1�K

��e
��)��_�q�,����,���a��C���,���B�q�,���^�M���.!��B��Hexists_eq_right'f^��G��������q��;���or_false����q��%�imp_self�����;��C��ttsis^IH1����"�'g
�(����'� ���X����������������IH2���������
�(����4� ���������/9�O��"���l'p���:��V
��(�4���� ��������VH�	
�X�����������!��������_a�~��!�(������� ������������V^���������������������������r�4����������M�����>��k��!����&�fI���_a�!�������������%�q�����%�������X��4���� ���V����=�VH�S���aa_10�(��C��a���(�������������X����M������A������b6���V���V��h��C������� ���VE����e�����8�������k�(�X���� �)����)������VL�(��@��d�VE�X����3���#�M��������8��R������>is'�h_h��j����X����������>��� �������(�t���
� �>������V����2�(�����>�V`�t���
� ������M��������/A����V����p'���e����0	���A�����(� ������ ���������^���W-�(������/��V/� ������������M��9������e�'����^������/�����T��� ��U�����7a_11� �����(� ������������������/����(����������� ������������������������Q��'��	�'�VN��'�VN��Y��'�>l₁���=����-6�U���/������=�����(�����?� ���/�����D��o�e�G��`�(��9�������e�/�V������?�����A�M���C�C���C�M����B�]�M����
>���F�K�el₂��e���0��:����A�����V��(�����I� ���@����=���;��H����V��(��"�.����H�@�W3�����I�����M��J������B�����@�;��������H���	��:��V����B���C���'�;����W3p���0(�@�(�Y���X� �[�H����k���0��0�>�;�����~�;����(��a�;��;��;�
�H������H�V��Y���X�/���.�M���������0����}��q��X
���$�0�
?�V����'�;�
�e�������� ��B������r�0��0�8�;�������c�;����(����0(��g�;��0=�B������B�V������Y���X�M��e����-�H�M��1������0���c�;�����t����� ���@��������;���z�;��#��H��z�V������!�������&����M�������������������������6������6��Be_1� �6�Z8�H���6�0���
� ����������f�����������������������������&�����������������������������z�;�����H����������H����%:���V�������;���-�H�V����#��H��)���H��2�H�������%:����q��	���A����q�������������������q������and_true���������g�0=�@��������M�����@�@�l��@a�Bl₂'�I������g�;��V��V������z����B���/���.� �2������l���0��0�A�;�����-�;��;��-�(��#�0�����;���
������-���;��H�/���.�������M����8����5����6��t�0��;���=�-�������������8�����.�M�����m�����}���0���m�;��`���0���m�������~�e��#�����~����M��1��~���r�������mem_permutations_of_perm_lemma�-�H����@����������!�����&����n���o�����&����i(�������r��~���i(�^T�.��~���i������������_h������0��������j�����&����r����;���}�0�
��������u����������������0�����������8�������88��8�������������;��0���~�������S��~�������������������|
�����������q�����������o���S��B�@�0
�]��B�I��<�0�I
�V���B��C��@���B�@
�22�:��0x���m��a����
��S�����H��R�PInfo����decl�mem_permutations��st������������������@
���
�mem_permutations_aux_of_perm
���PInfo����ATTR������EndFile