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�X��initlogicfunctionorderboolean_algebradataequivbasicdatalistbasicdatalistpermdatalistsortdataquotdatastringbasicalgebraorder_functionsalgebragroup_poweralgebraordered_groupcategorytraversablelemmastacticinteractivecategorytraversableinstancescategorybasic�ե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}traversedeclmultisetuα��quotientlistlistis_setoid�PInfo�VMR�VMC��doc�`multiset α` is the quotient of `list α` by list permutation. The result
 is a type of finite sets with duplicates allowed.decl�equations_eqn_1��eq��	�eqrefl�PInfo�ATTR_refl_lemma���EqnL�SEqnL�nspacemultisetdecl�has_coeu_1α�has_coelistmultiset�has_coemk	
quotmksetoidr��PInfo�	prt�VMR�VMC�	a�decl�equations_eqn_1���	��*��/�PInfo�	ATTR����EqnL�SEqnL�ATTRinstance���class����decl�quot_mk_to_coe��leqquotientmk8&8coe<9coe_to_lift<9coe_base<9.8��rfl9@�PInfo�ATTR����ATTRsimp���decl�quot_mk_to_coe'��l:"<has_equivequiv<setoid_has_equiv<>O��T`�PInfo�ATTR����ATTR����decl�quot_mk_to_coe''��l:X$<>O��Tk�PInfo�!ATTR����ATTR����decl�coe_eq_coe��l₁l₂<iff7BtuEwuHwu.t8�listpermt8���<quotienteqw&t8�PInfo�#ATTR����decl�has_decidable_eq_main��_inst_1decidable_eq�9���a9buid_rhs
_x_xdecidable788quotientrec_on_subsingleton₂��&���a�b�decidablesubsingleton�;�&�8�8l₁�l₂�decidable_of_iff'�Y�[��8���8�decidable_perm�����88	�PInfo�%	VMR�_lambda_1VMR�VMC�
&1��_fresh8�
>?�decidable_perm_maindecidable_of_decidable_of_iffVMC�%	�����is_setoid_c_1�quotientrec_on_subsingleton₂decl�_proof_1����<subsingleton
�v;w�8����<���PInfo�%	decl�_proof_2����<s7quotientw���Yw[w�8���<��PInfo�%	decl�equations_eqn_1����s₁9s₂u��7�8���t8����8��������8�����9�u��id_delta���PInfo�%	ATTR����EqnL�decl�has_decidable_eq������8
�PInfo�%	prt�VMR�VMC�%	���decl�equations_eqn_1�����9�u����t8�$����equations_eqn_18�PInfo�%	ATTR����EqnL�decl�_sunfold���	�PInfo�%	ATTR����class����decl�zero���BEH/listnil�PInfo�,prt�VMR�VMC�,�doc�`0 : multiset α` is the empty setdecl�equations_eqn_1��7���T���X�PInfo�,ATTR����EqnL�SEqnL�decl�has_zero��has_zero�has_zeromk�X�PInfo�.	prt�VMR�VMC�.	��decl�equations_eqn_1��7�a���e��\�a�i�PInfo�.	ATTR����EqnL�SEqnL�ATTR����class����decl�has_emptyc��has_emptyc�has_emptycmkhas_zerozero�i�PInfo�/	prt�VMR�VMC�/	��decl�equations_eqn_1��7�q���x��\�q�|�PInfo�/	ATTR����EqnL�SEqnL�ATTR����class����decl�inhabited��inhabited�inhabitedmk!�w�PInfo�0	prt�VMR�VMC�0	��decl�equations_eqn_1��,�������3�����PInfo�0	ATTR����EqnL�SEqnL�ATTR����class����decl�coe_nil_eq_zero���V�T�w�S�T�PInfo��2ATTR�����ATTR�����decl�empty_eq_zero���Vhas_emptycemptyc�|�w������PInfo�3ATTR����ATTR����decl�coe_eq_zero��ls:O�u9�h87<�R8��ifftrans���8�����coe_eq_coe8���perm_nil8�PInfo�5decl�cons_proof_1��al₁<l₂wp$��87quot�$�&�"���listcons��t����8���<�
w���quotsound#��������mpr��������t8�perm_cons��t8�PInfo�
<decl�	���s9u���9quotlift_on#wu$w�lwB��E��H��.����t�
�t8�PInfo�	<VMR�	_lambda_1VMR�	_lambda_2VMR�	VMC�<a�VMC�=��_fresh8�
A�VMC�		<�����quotlift_ondoc�	`cons a s` is the multiset which contains `s` plus one more
 instance of `a`.decl�	equations_eqn_1����9v�	�t8����9�\u��PInfo�#<ATTR����#EqnL�#SEqnL�	NOTA�cons8:: :: B��decl�has_insert��has_insert�has_insertmk��PInfo�'B	prt�'VMR�'VMC�'B	��	decl�'equations_eqn_1��7�)�'��/��\�)�3�PInfo�,B	ATTR����,EqnL�,SEqnL�'ATTR����'class�(�'��decl�insert_eq_cons��as9vinserttu�2t8���.�/9Su�@�PInfo�-DATTR����-ATTR����-decl�cons_coe��al<v�����t8��2�3<�F�K�PInfo�1GATTR����1ATTR����1decl�singleton_coe��a:�8��N��8����5T�[�PInfo�4JATTR����4decl�cons_inj_left��ab8sus���t�g87�t8��7�88�9u�intro�m�qquotinduction_on���_x�a7�����~t7���l�e�}�������
this��has_appendappend�listhas_append������R�8�������8
�eq_singleton_of_perm����mp�������������R�t�������t�������perm_app_right_iff�����tAnnotcheckpointAnnothavequotientexact����8��8congr_arg)��t8�7��~8�PInfo�6LATTR����6decl�cons_inj_right��as9tus��h8�i���O�P9�Qu�|�P�s���8�}88l₁��z����Q�s����"�$��8�����8l₂�eqmpr
s��������
trueid
�
��eqtrans
��s��8��a��Z�e_1�8b��\�e_2�#congr*��s�s�t8congr_arg*��\����s�������������?�B��E��H��.����N�A�B����e_178��	e_27
8�^*�7�f��i�t8�_++*�f��f����i����O�Y+������N8�O����e_17�V8��\��^e_2�c�^++�f�f��e����t8���e��f��������\��������8�1��8��Q������N�Q���
������propext�R�B������A���B�����8������������������
�����������8����iff_self�trivial�PInfo�NRATTR����Ndecl�induction��p��h₁��h₂ats������t8s����h��i��j��m����m��l��rec
��n��"��$��&��l_hd�l_tl��ih�"�V$�!&�V�t"�[$�*&�[8�PInfo�gU prt�gATTRrecursor���gUREC�gmultisetdecl�induction_on��p�s9h₁8�uu�hth₂a�s������t8�t��v��w9�x�B�y�Imultisetinduction�_x��8t�PInfo�uY(prt�uATTRelab_strategy���udecl�cons_swap��ab8su��h�l�k�i�����8��u�|_x��}�������l�quotientsound�������t�n���permswap�t��PInfo��]decl�rec_proof_1�u_4�C���C_0�C_consatm��	C_cons_heqa�a'�m�b�heq.���V���t8�����t8�����8������8l�l'�hY��[���8��l�!�V;�*�-tlistrec.�V���a�Vl�*b���]�];�_&�_�Vt��8t��8��8��������������������������listrec_heq_of_perm.�V�����t8a�Vl�*l'��b�]��b'�_;�e&�e8hl����t
�A7�
&��;��������
a_1����;&���������tof_eq_true������V;��&������V��������	�
�eq_true_intro�����m'e_078eqrec
t���!�� �a'8e_1���8�'t�������%���t�.�1��5�8��t���$�����%�8�E��
.�(t���(�4�6��3�6heqrefl.�'��.���� ���t8eq_of_heq.�(t88��
8��Annot�IAnnot�J����$������a�Va'�[l���t8���PInfo��hdecl���������������������m���������������������quotienthrec_on.��_x����������;����������������)��8��������t8�PInfo��hprt��VMR��_rec_1VMR��VMC��hn�_fresh8�
WX�_fresh8�
WW�_fresh8�
WVlistcases_on����mkVMC��h���������������hrec_ondoc�� Dependent recursor on multisets.

TODO: should be @[recursor 6], but then the definition of `multiset.pi` failes with a stack
overflow in `whnf`.decl��equations_eqn_1�����������������������.���������t8����������������������.����PInfo��hATTR�����EqnL��SEqnL��decl�rec_on��������m9C_0�BC_consa�m��GC_cons_heqa�a'�m�Ub����V��[���t8�������V����8���������������9���B����������t8��PInfo��tprt��VMR��VMC��t�������������decl��equations_eqn_1����������9���B��������������������t8���������9���B��������������PInfo��tATTR�����EqnL��SEqnL��ATTR�����decl�rec_on_0��������C_0�C_cons��C_cons_heq������u��h�����t8t����������������rfl.� �'�PInfo��~ATTR�����ATTR�����decl�rec_on_cons�������������������a�m�����C8����8��t�8�<��t����������������������quotientinduction_on���_x�U�������V��T������X���l���/���;�!�$�X�k����PInfo�߁ATTR�����decl�mem_proof_1��al₁<l₂we��8�l�has_memmem���Dhas_mem��t��8�����<��w���~�������mem_of_perm��t8�PInfo��decl������s9������9quotlift_on
w�����w������t���t8�PInfo��VMR��VMC�������doc��`a ∈ s` means that `a` has nonzero multiplicity in `s`.decl��equations_eqn_1������9����t8�������9�*����PInfo���ATTR�����EqnL��SEqnL��decl�has_mem��has_mem�has_memmk���PInfo���	prt��VMR��_lambda_1VMR��VMC���	����VMC���	�decl��equations_eqn_1��7���������\�����PInfo���	ATTR�����EqnL��SEqnL��ATTR�����class������decl�mem_coe��al<s�tu��t8���w��t8�����<iffrfl���PInfo���ATTR�����decl�decidable_mem_proof_1��aa<����"w�����<����PInfo��	decl���_inst_1��8su�������8����8�uquotrec_on_subsingleton���_x��������t���8listdecidable_mem������88�PInfo��	prt�VMR�_lambda_1VMR�VMC�
�	��VMC��	�����Ddecidable_mem_main�
� rec_on_subsingletondecl�equations_eqn_1�����8�u������t8�����8�u�*���&�PInfo��	ATTR����EqnL�SEqnL�ATTR����classdecidable���decl�mem_cons��ab8sus��t�lor�q�3���8�u�|_x�s�	����67��t�?l����?���PInfo��ATTR����decl�mem_cons_of_mem��ab8suh�8�?��8���8�u��8���U�E�?8�mem_cons��t8orinr�D�\�PInfo��decl�mem_cons_self��as9�����$�%9���o�67t88���_t88orinl�v�xSt8�PInfo�#�ATTR����#decl�exists_cons_of_mem��sa8���8Exists�t��}�����)�*8�zw��_xu�������,��t���8lwh��8_a���s����t�7�����8��Existsdcases_on��1������2��7�!����!���V8���V��0�������U�,�U�X�&����w�h_1�����!�2�!7�*����*���[t���[��6���!�����\�,�\7�^"��$��&�]���]�Vh_1_w�!h_1_h���
_x�����`�,�`�i"��$����8���]�eqsubstA�����������]����]�V8�eqsymmA�����3introA�^�,�^�a"��$�����������_����_�[t��_�[B���^E���^H���^.�]�8��������	�4�perm_middle�]�V�8listmem_split�t8�PInfo�(�decl�not_mem_zero��anot�89��8����C��^�PInfo�B�ATTR����Bdecl�eq_zero_of_forall_not_mem��s�x8�X��v8�A��F�z<i_x9��Gt�X��8�
�u��h�l<H�Gt�X�n"���8�	��|�t��{�R��t��������8_a���}��t��}�����������7�8��a��X�����t�@eq_nil_iff_forall_not_mem�8�\����PInfo�E�decl�eq_zero_iff_forall_not_mem��ss:��a8�e��O�w����h���u_xu�P��X�	8�A8�u8�A_xtnot_false�eq_zero_of_forall_not_mem8�PInfo�N�decl�exists_mem_of_ne_zero��s�ne9����tat�nt��W�m_x9���u�A����Y���tl<hl�����A_a��cases_on
��]�_a����
�u��h�����Y���V�W���V�&t��h������R������Y����U�������`�		falseelim
�	S�����hd�tl���_x���U���8�u�U�h����V�Y�V��[�\���[�/���t�e�	(��V�	3t�	��t�&��t8����	>���	>�6����!���Vt8��	D�6��tt�	J�	K�	D�	I�	<�	Q�	D�	:B�!�WE�!�WH�!�W.�V�	<�	Tc���V�Wa�[�g�]e_27�_8�g�f�g��e_37��8�d�������	n���	s�t8�p���g�	n����	s���tt�\�Vt�	=�	a���V�	<���	b�	T���Vt�	<���	T�	Qlistmem_cons_iff�Vtt8a��l�e_1�#b��n�e_2�#�&�6��6�t8�2�6��	O����	O�eq_self_iff_trueB�Vt�	J�	J���	J���	K�true_or�	J��8�PInfo�V�decl�zero_ne_cons��am9���A���s�t9hv�A�
�A�3�t
�not_mem_zero��Annot�IAnnot�J��_x��F���t���t���mem_cons_self�t8�PInfo�r�ATTR����rdecl�cons_ne_zero��am9����A��z�{9�Xsymmu�A��zero_ne_const8�PInfo�y�ATTR����ydecl�cons_eq_cons��ab8asubs�s�}�����6and�D�}8�
����t��cs��
��������8��u����w�
�
&eq�
dite
��classicaldec_eq����6�
����8�
������������
7�U��C��
?t�C�h�����������X��������6�
7�[�V87�\���
���[�V8�����\�
�����t������[���
?�
F��
Ft�	�6�
�����X���
���V�����W���W�
�
\���V�
[��
�����
����
��	Efalse��	��
~���
~�
����l��l�e_1�#�n��n�e_2�#�&�
��
�t8�2�
��
z����
z��	���
}���
}�X���a�W���\e_1��8�g�`�g�fe_27��8�d�	j��	k��	k�t8�p�	j�g�	j����	k�����
}eqmp
�
S�
Q��
}���
��
}�N�V������\�W����
���	��W����
��and_self��
��
���
��
�
��
����W�
��
��
��
��
���
��X��
���X�
z�nedef�V��a����e_1�#�.�t8�X�
z��
�����
�not_true�
��	p�g�W����g�\�e_1eq
�g�^�8�_E*�g�`��t8���
��funext
�Wx�W�x�W�
����W�
����W��
��
�
��
��
��
��
��
����\���^���c�g�f�g�����	m�	p7�	n��S�t8�p�	n�	{���S�����
]�
��
[�
���
���
]���n�
]�
��[�V��8�
��
��\�\�
��
��
����
����N�
��
��
����
�
�false_and�	���
��or_false����8���X�����U�,�U�
��
Qa_0�����6�
�
y��
}�
�
���
����W�
�
\����
��exists_cons_of_mem�t��
��	��
At��t����6�
��������67��������������_���t�	����
������
�iff_false_intro����������������false_or����U_x�U����
u��8�	����cs�Uhcs���	�6�
�
X��
]�
�
a������\�
�
d���
l�
\��8�����������	���
�����
\�
�8�
��
���
�����
����t�
]� �h��~������!�
���� �����
����
������X�
���D�X��E��[�V��"��
��*���E�not_false_iff���������\���ta�\�
8���1���3���2�88�7�r�t8���f�
�`�D�\���\����\����\�_���\�
��
�
���
�
l�^��
l���
jt�
k�^���^���`���i8�g���g�	j���S8�d��7�����t8�p��g����������8�
k�
k�\�^�
k�����^�
��]�[t�������\�
���^�a�V�&�^�dexists_eq_right'�\�c8���?�true_and���������
��l�
���������u��	���l�����������\��_a�\����
j��
j��t���������cons_swap�[�V�8�	������������
[88��
�
[���
	�
�
[�����

�g�k�����\�k��������[��]e_1�	i��f���e_2�	m���	n�	n�����
�t8������	n����
����\�[��������~�����
�

�s������

�
	�t88���
	��	��\8��h�
&ordcases_on�
8�
L���
M�
v�����
8anddcases_on
���
@t���
���
n�
S���eq₁��eq₂�
}�	�l�
����
w���
w�
����
}�
[�
�
�
~�
�
�
3�V�8���
�
�~�
���
��
~�
E�����
~��
T������
L�
l����������U�
�
|�������
�
��
��
sh�
�h_right�����\�
��������cs�\h_right_h��
l���%8�a��$�]8���
�
��
��i���_�[���Veq₁�
�eq₂�i�V�
�t�	�
�����e�]�
��_�[����
����
��
�����
��
��
���
��
��
��
��
��
��
��
��������	j�����g��g�����d�!�7�!��
��t8�p�!�g�!����
���
��
������
��
��
���
���������7��8����������!�!�� ���t8��� ��!�%�����e�e�\���e�]�8�����e�_��
��
��'�_�_�*�_�[�
����
��
��
����_�
��
����
��
��D�e�����
���	�������PInfo�~�decl�subset��st9������9at����	8t�PInfo���prt��VMR��VMC�������doc��`s ⊆ t` is the lift of the list subset relation. It means that any
 element with nonzero multiplicity in `s` has nonzero multiplicity in `t`,
 but it does not imply that the multiplicity of `a` in `s` is less or equal than in `t`;
 see `s ≤ t` for this relation.decl��equations_eqn_1������9����t8�t�����9���{�PInfo���ATTR�����EqnL��SEqnL��decl�has_subset��has_subset�has_subsetmk�x�PInfo���	prt��VMR��_lambda_1VMR��VMC���	����VMC���	�decl��equations_eqn_1��7���������\�����PInfo���	ATTR�����EqnL��SEqnL��ATTR�����class������decl�coe_subset��l₁l₂<shas_subsetsubsetu��t����w�jhas_subsett8�����<�����PInfo���ATTR�����decl�subsetrefl��s��9��8���a8h���PInfo���nspace��ATTR�����decl�subsettrans��st9uu�������t8�������t8�������t�����9��uh₁��h₂��a�m�	�t8�C�PInfo���decl�subset_iff��st9s��8xt�s�����9�����PInfo���decl�mem_of_subset��st9ath����q�������t������9��t����8�PInfo���decl�zero_subset��s�������a8notelim
���Rt���jnot_mem_nilt�PInfo���ATTR�����decl�cons_subset��as9tus�����
�8��8�����9��u�	��������s�x�a����8t�������<�����
x�x��>����	8�������������(��$x�����
�)�0�4�$�������t��;����A�subset_iff���forall_congr_eq�����@����
�>�B��������@��6�Q����Timp_congr_eq�?���Y�����?�Y�`�t�������Z�Tor_imp_distrib�Q����������
�+�2�4forall_and_distrib�����R�����
�����R�8��a�a�Q����	�8�����tforall_eq���t��������
��8�8���8�
����
��G8�����������PInfo���ATTR�����decl�eq_zero_of_subset_zero��sh�����h���������t8�PInfo���decl�subset_zero��ss�������w�����eq_zero_of_subset_zero8xeq����_xu���t�A8���subsetreflt�A�PInfo��decl�le_proof_1��v₁v₂<w₁ww₂�p₁Y�[����8p₂��8��subperm������t��	�
<�w���
�����������������t���permsubperm_left���t�subperm_right���t8�PInfo��decl���p�st9quotientlift_on₂J
ww���8��t��t�PInfo��prt�VMR�VMC����doc�`s ≤ t` means that `s` is a sublist of `t` (up to permutation).
 Equivalently, `s ≤ t` means that `count a s ≤ count a t` for all `a`.decl�equations_eqn_1����9���t8����9���$�PInfo��ATTR����EqnL�SEqnL�decl�partial_order_proof_1��a�9has_leleuhas_lemku�"���m�6l<�subpermreflt�PInfo��	decl�_proof_2��ab9cu�$�a�.��0��!�t�'�.��0��!��t�.�U�0�U�!�t�t��$�%9�&u�|�Ztl₁����%��'�N���'�U8��.�W�0�W�!�V�&��tl₂��z����&��'�U�t�8�'�j��8�.�\�0�\�!�[�/�ttl₃��subpermtrans�t8�PInfo�#�	decl�_proof_3��ab9shas_ltltuhas_ltmkupreorderlt_defaultu�"8����.�/9iffrefl���PInfo�-�	decl�_proof_4��ab9h₁�$h₂�!�8t��t��:�;9�<�$�=�����:��<�L��=�S�8�Xt��l₁��<�L�
��=���w�z�!�%�;�W�<�}�/��=�!�]8����a��t�l₂�!�<���/�=����8��������t�subpermantisymm�_�t888�PInfo�9�	decl���partial_order�partial_ordermk�!�������#��-��9��PInfo��	prt�VMR�_lambda_1VMR�VMC�E�	��VMC��	�decl�equations_eqn_1��7�����
��\����PInfo�G�	ATTR����GEqnL�GSEqnL�ATTR����class�B���decl�subset_of_le��st9��/�4to_has_leu�Cto_preorderu�
t8����I�J9quotientinduction_on₂Sww��_xu_x���C�����
�8��t88l₁wl₂��subset_of_subperm�8�PInfo�H��decl�mem_of_le��st9ath�.������
�t8����U�V9�Wt�X�J�mem_of_subset��t8�subset_of_le��t�PInfo�T�decl�coe_le��l₁l₂<s����8��\�]<���a�PInfo�[�ATTR����[decl�le_induction_on��C��9�s9tuh�H8Hl₁�l₂���jsublist�8��	`t�	`8��t��_�n�`9�au�b�p�c�{�#����_x�_x�U_a�f��W��W�
�V8��8�tl₁�l₂��_x���i8�j_a�{��\��\�
�[��t������l���+
��_�H���q�e8��m�.�^��^��^�
�];�������t�]�������5��h_1���4
��e8��o���q��t��p�������e;��&������h_1_w��h_1_h����_x�������V���V���������
�A�������~��V8Annotshow�[��8�PInfo�^�ATTR����^decl�zero_le��s�.9�9�9�
8����v�m_x9��Al<�subperm_of_sublistt���@nil_sublistt�PInfo�u�
decl�le_zero��ss�������|�w�#��h�#le_antisymmu�8�A�zero_let8le_of_eq9�
���PInfo�{�decl�lt_cons_self��sa8���4to_has_ltu�8�8�����8��_xu����>��F�l8lw
�A�
����	8�X�|�U�	����>��+��8���`�
���8�n8�X��8�g���c�m��c�
�-B��E��H��.�8�|�g�	�}��m�r�_�}���chas_lt��g��g�Ue_2�Z�g�\�g�^e_3�c�h���f�����t8�u����^�`�}���8�b�����b���}�����e_1��8��W��\e_2�
����`�`�$��$�t8���_��`�f���$�tt�\�t�`�}�����t8������lt_iff_le_and_ne��*�}��
����h�����h�[�8�g���l����X�}�}��l���}��"���k�����k���8�g��intro�V�Z���U�@sublist_cons�8p�Yne_of_lt
nat�L
�ordered_comm_monoidto_partial_order
�ordered_cancel_comm_monoidto_ordered_comm_monoid
�ordered_semiringto_ordered_cancel_comm_monoid
�natordered_semiring�Dlength�8natsucc�$��lt_succ_self�$�perm_length�8�gAnnotsuffices�PInfo���decl�le_cons_self��sa8��D�����8le_of_ltu�8�D�lt_cons_selft8�PInfo���decl�cons_le_cons_iff��as9tus�H���i�p�����9��u�#����_x�_x�s�J�����
���8��]88l₁�l₂��subperm_cons��8�PInfo���decl�cons_le_cons��as9tu��p�-�>�������9��u���M�p�cons_le_cons_iff�t8�PInfo���!decl�le_cons_of_not_mem��as9tum�X�38s�-t����8�����9��u�����w����h�����]�����t�]�t����tt'�h�Q��U��U�
���le_induction_on�V_x�W_x�\���X��]�^���]�[8_x��_�`���_�]8�.�f��f��f�
�e�
��t�8�d�!�e�*s�q�]8m₁�X��B���`E���`H���`.�_tm₂��e�f���e�_B���fE���fH���f.�et�����1�������2��7�����������8������a_1�������.�	j��	j��	j�
�������B���	jE���	jH���	j.������L���e�r₁��h_1�������2��7���������t�������������,�.������
������B��E��H��.���V�A�r₂��rfl�+�����J���������8�e�J���q��]���� �!��� �B� �!E�]�!H�]�!.� 8�.������
�%��%� B�%�E�s�H�s�.�%�e�}t���q��[�S���������B��E���H���.�������������t����� ��� ��_���]��� �������������� �������<� ����������_���j� ��_���� �_���resolve_right�q� �_���X�]��� ��_�@sublist_or_mem_of_sublist� �_���8�V�V��J�V�S������	���th��le_trans��[�t���le_cons_self�t��PInfo���$decl�card_proof_1��l₁l₂<p����"�t�8�����<�,t8�PInfo���4decl����s������<�i�"8���8�PInfo���4VMR��_lambda_1VMR��VMC���4��VMC��	�4����Dlength_main���!doc��The cardinality of a multiset is the sum of the multiplicities
 of all its elements, or simply the length of the underlying list.decl��equations_eqn_1��������8�2����*��7�PInfo���4ATTR�����EqnL��SEqnL��decl�coe_card��l��6O�.���rfl��@�PInfo���7ATTR�����ATTR�����decl�card_zero����5�w�
�nathas_zero��G�L�PInfo���9ATTR�����ATTR�����decl�card_cons��as9��5t�has_addadd
�nathas_add�Vhas_oneone
�nathas_one�����9��_xu��5��i�\�h�blw�G�h�h�{�PInfo���;ATTR�����decl�card_singleton��a��6�[�b����	�}����}���}��b�b�������e_1�8����e_2���$������t8�-���������{�b���{�\�Q�b�b���\�6���b����8��chas_add
�a����e_2���g��g�e_3������Z�����t8���g��������[���Q��8�b�b�<�bzero_add
���add_monoid�b�b�b��������pF��b���PInfo���>ATTR�����decl�card_le_of_le��st9h�has_lele
�nathas_le�ht�h8�����9������_x�_x����5�8��t8l₁�l₂��jlength_le_of_sublist�8�PInfo���@decl�eq_of_le_of_card_le��st9h�������������9����_x�_x��������
E8t8l₁�l₂�s�q�8h₂���5�B���UE���UH���U.�8�(�2t���!�W�t�	`�@eq_of_sublist_of_length_le�V�t8�PInfo��Cdecl�card_lt_of_lt��st9h�Bhas_ltlt
���has_lt�������9��Nlt_of_not_ge
���linear_order����h₂ge
��K
��linear_orderto_partial_order
��[����ne_of_lt��+�t8�eq_of_le_of_card_le��t�?��+�t8�PInfo��Fdecl�lt_iff_cons_le��st9s�N��at�H�gt8���9�w�N���'_xu_x��>�_8�	
� ����C�t8l₁wl₂�h�_;���8���subpermexists_of_length_lt�t8�?��[�t��card_lt_of_lt����_x��_a��� ��-���t���� ��]�����*���������>��[���5�h�������U�>�U����lt_of_lt_of_le�U����7���D��8�PInfo��Idecl�card_eq_zero��ss�8�Q����.�w����h�����A8�qt�A8�2le_of_eq
�� �V8�V�Ae���	����Q����	���	��Q�Q������Q������Q��u���e_1�
�_��t8��8�A��t�Q�Q�<�Q�������Q���PInfo�-�NATTR����-decl�card_pos��ss�R�Q�7����4���<�X��7�Q��natpos_iff_ne_zero�7not_congr�����card_eq_zero8�PInfo�3�Qdecl�card_pos_iff_exists_mem��s�=��8a8����:�m_x9s�;�]���;t�ol<�@length_pos_iff_exists_memt�PInfo�9�Tdecl�strong_induction_on_aux_meta_1well_founded_tactics�Amk_xexprbooltt_xlist
�nhas_bindseq

unit�rtactic
monadto_has_bind

�uinteraction_monadmonad
tactic_statetacticsave_infoposmkbit0
��[��bit1
��a�[�����������b�������Rstep
�r�Rinteractiveexact
Quote
_��_�measure_wf�a�\��card�c�\��Annotanonymous_constructorwell_founded_tacticsdefault_dec_tac�PInfo�@�WVMR�@_lambda_1VMR�@_lambda_2VMR�@_lambda_3VMR�@VMC�h�WαVMC�i�Ws�zt₂t₁β
�	VMC�j�\�G�p�C�n��tacticinteractiveexactFstep�\(Fsave_info�i�hhas_bindseqVMC�@�W�jwell_founded_tacticsdefault_dec_tacdecl�strong_induction_on_main_meta_aux_aux_param_0��p��}s9�su�t�H�_8��B����~���9�YXXXih����������t�h��t
�A�R�����

��RecFn�|��t�Annot�IAnnot�J��8��PInfo�|�WVMR�|_lambda_1VMR�|VMC���Y�����_fresh:�@��_fresh:�@��|VMC�|�W����~���declstrong_induction_on_main_pack_wf_rec_mk_dec_tactic_aux_1��s��9�A�R�]��has_well_foundedrY�has_well_foundedmkY�measureY��h�aY��h8t�����9�A��������8t�PInfo���Wdecl�{_pack_aux_param_0���~��_x9��u�������������8�8��B��~����9well_foundedfixYYY��^^u����u��u��u�V��u�Vhas_well_foundedwfYu�	_xu�YYY^^^YY^^^_F_y������������5�����8��������U�����W�>�W��8�V8��)�������������8��������*���0t������+�
�A�R�5�V8�6�
������[�t�Annot�IAnnot�J���V8��PInfo���WVMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��VMC���Wa��VMC���Y�����_fresh:�p	�_fresh:�pVMC���W��������VMC���W���~�����well_foundedfixdecl��equations_eqn_1_aux_param_0���~����9�n��oo����o�t8�������������
�X��8tAnnot�I��~����9well_foundedfix_eqtttooou���
��P�PInfo���WEqnL��decl�{_aux_param_0�����~���9�[�PInfo�{�WVMR�{VMC�{�W����~���decl�{equations_eqn_1�����~����9�V���{���t8�������������
�x��8tAnnot�I��~����9��|}t8�PInfo���Wdecl�strong_induction_on�u_2��~�������~���{~�8	�PInfo���WVMR��VMC���W�~��{decl��equations_eqn_1�����~����9�������������t8�������������
����8tAnnot�I��~���{equations_eqn_1��8�PInfo���WEqnL��ATTR�����decl�strong_induction_eq�u_2�p��s9H���<�������t8��t�h�����������9�����	���������4��������
����8tAnnot�I����������
��������J��_a������J����t88t��������������������������t8eqrefl������PInfo���^decl�case_strong_induction_on��p�s9h₀�Bh₁a�s��t�H��8��F�J������9���B���multisetstrong_induction_on
��Rts�multisetinduction_on�_x��&_x������+�	'��a�s�U_x����W�����\�>�\��8�[8�#ih���\�����^�>�^�����t�]8��tt�^h�.�`��`��`�
�_���lt_of_le_of_lt�f��8�����D�e���PInfo���cATTR�����decl�singleton_eq_singleton��a:singleton89�{8�28�[���T�Y�PInfo���jATTR�����ATTR�����decl�mem_singleton��ab8s����A�t8�����8�	�f����f���fs�e�e��<�b�e��b�6�e�
��e�v�w���A�x���b�|�{8�A�	��e�e���e�{�
����{�
���C���^�	�8t���x�e���e�e�e�����q����e���PInfo���lATTR�����decl�mem_singleton_self��a�]�[����	�8���PInfo���ndecl�singleton_inj��ab8sv�a�C�A�u�����8�cons_inj_leftt8�A�PInfo���pdecl�singleton_ne_zero��a���[�����ne_of_gt9�
�[���D8���PInfo���rATTR�����decl�singleton_le��as9s��a�x�����9�w���xh���mem_of_le��h�t8t�mem_singleton_self�th�x_a���,��}t������,�����������]������5�h_1����_x�U���
Q�u�W�h�V�����
F8���U���cons_le_cons���	'8�0�8���8t�PInfo���uATTR�����decl�card_eq_one��ss�8�b�Ua8�g������w�'�+�m_x9�>��]�b����������l<h��V���b�+imp�������3a�7�t���	a�����t�F�|�����b���Hlistlength_eq_one�8_x�+_a����t�t���t���������3����g����b�5��+�f��_x���(�b����s��8�������y�G���y�PInfo���ydecl�add_proof_1��v₁v₂<w₁ww₂�p₁��p₂��7��������������t���<�	w�
�����������������perm_app����t8�PInfo���decl���s₁s₂9u���9quotientlift_on₂�wwu��8l₁wl₂��|������8��t�PInfo���prt�VMR�VMC�������_c_1�Dappend_main�lift₂doc�The sum of two multisets is the lift of the list append operation.
 This adds the multiplicities of each element,
 i.e. `count a (s + t) = count a s + count a t`.decl�equations_eqn_1����9v��t8�����9����PInfo���ATTR����EqnL�SEqnL�decl�has_add��has_add���mk���PInfo���	prt�VMR�VMC���	��decl�equations_eqn_1��7��������\�����PInfo���	ATTR����EqnL�SEqnL�ATTR����class����decl�coe_add��st<v��u��t�����w��t8�� �!<�F���PInfo���ATTR����ATTR����decl�add_comm��st9v��8��8��#�$9�'_xu_x��}������8�88l₁wl₂�������8�perm_app_comm�8�PInfo�"��prt�"decl�zero_add��s:��9��8����+�m_x9v���Al<�F�0���PInfo�*��prt�*decl�singleton_add��as9v����N�����/�09�F�@�PInfo�.��ATTR����.decl�add_le_add_left��st9uus�H������t8�M�p��2�39�4uquotientinduction_on₃��������_x�_x�_x�s�����U���t8�b��8t8l₁�l₂�l₃��subperm_app_left�8t�PInfo�1��prt�1decl�add_left_cancel��st9uuh��N�P��8��?�@9�Au�B���*��*t8���-��t��8��multisetadd_le_add_left��t8�6��+�������-�����.t��8t�������������PInfo�>��prt�>decl�ordered_cancel_comm_monoid_proof_1��s₁s₂9s₃u_x�_x�_x��
?�_���U�a��t8����8t8��G�H9�Iu�^��t8l₁�l₂�l₃������U����t8�����2�jappend_assoc�t8�PInfo�F��	decl�E_proof_2��s:�'add_semigroupto_has_add9�Smk9�)�G9�Hu�I��X����������J��K��L�U�X���W���W�����V��t8����8t8�M��N��O���:����t8�	���	`���Vt8���c9����R�	�':�)�$���'�.�9�)�$_a9�v����u��u���Gu�H��I��X�������J��K�U�L�W�
[���\���\�@���[�Et8�F�E8t8�M��N���O�!���*�\����8����8B�*�\E�*�\H�*�\.�[���[t88�?�cu�A8v8���'�,multisetadd_comm8�$�	�.�����.���3�+_a9�v���}88�����.multisetzero_add8�\9�PInfo�Q��	decl�E_proof_3��s₁s₂9s₃uh��J�������L�G��H��I��X����������J�U�K�W�L�\�����^���^�����]��t8����8t8�M���N�!�O�*�����^��t8���8�3���]t8t8��8��8��]�^9�_u�`��multisetadd_left_cancel�t�8�	�}�t���8�}���������������e_1�
?8�g�W�g�\e_2�
��d�`��a��a�t8�p�`�8���a��������t������\����
��}�
��������G��H��I�U�X�!�!�!�$�$�$�J�W�K�\�L�^�a���`���`�4���_�9t8�:�98t8�M�!�N�*�O�������`��t8�L�8�����_t8�t�d8t�g����f�f�&�f�i��� 8t�PInfo�\��	decl�E_proof_4�����09�Cle9�	��Ble_refl��PInfo�e��	decl�E_proof_5���$�%9�&u�'�B�0�����Et8�'�C�D����*t8�J�K����Z�t��Ble_trans��PInfo�h��	decl�E_proof_6��auto_param
�.�/9s�����Cltu�8�
�/�1��u�8�X��8namemk_string
Strorder_laws_tacnameanonymous��Blt_iff_le_not_le��PInfo�j��	decl�E_proof_7���:�;9�'�/��4mku������u���u���u�8�'�B�C���������E����E����E����E8t����Ble_antisymm��PInfo�r��	decl�E_proof_8��s₁s₂9h�/����u������������u�8s₃��-���t��v�w9�x��y�����-�t���t8�PInfo�u��	decl�E_proof_9��s₁s₂9s₃u�>�Q����{�|9�}u���Q�p���t8�PInfo�z��	decl�E��ordered_cancel_comm_monoid�ordered_cancel_comm_monoidmk�����F��w���Q������\��������e��h��j��r��u��z��PInfo�E��	prt�EVMR�E_lambda_1VMR�EVMC����	��VMC�E��	���decl�Eequations_eqn_1��7�0�E��^��\�0�b�PInfo����	ATTR�����EqnL��SEqnL�EATTR����Eclass�~�E��decl�cons_add��as9tu��L���h�L8�����9��u�	�o��L�L��
��8�n���o�|����_a���}��>8����}������o�x�	��x���singleton_add�t8�	�|�{�w�m���|�����n_a���}���|���	t8�������|���	����n���m�	����J��add_monoidto_add_semigroup�add_comm_monoidto_add_monoid���to_add_comm_monoid�����a��v��8��������������8_a������������������add_assoc����v8�����PInfo����ATTR�����decl�add_cons��as9tu��l�i�n�����9��u�	����J��add_comm_semigroupto_add_semigroup���to_add_comm_semigroup����i8�n��������8�i_a���}���������������add_comm���8�i�	���h�L8�n����&���L�i8_a���}�
�+�������������a���t�������$�cons_add�t8�	�&��h��n���&�P���8_a���}��
t���������&�M�8���N�PInfo����ATTR�����decl�le_add_right��st9�������9�	�q����q����/����u��u�at8���7��u��u��u�~8���?��to_has_zerou��le_add_iff_nonneg_rightu�}8�
��/���to_partial_orderu�}���7�����to_add_comm_monoidu�}8�A���������8����chas_leu�g��g�e_2��g�U�g�We_3�
�d�^��������t8�p�^�3���������8add_zerou��8���������add_le_add_leftu�}�A�18�PInfo����decl�le_add_left��st9�������9�	������������q�����88�8���u��u��8���
������A8��8���� ������� 8��u��8� ��� ��add_le_add_rightu�}�A��8�PInfo����decl�card_add��st9��V��\���]�����9�'_xu_x�����\�8�8�jlength_appendt�PInfo����ATTR�����decl�card_smul��sn���Vadd_monoidsmulu��8has_mulmul
���has_mul��������natrec
�����h� K���t� V���	��V� Mnatzero8� U� g������ n��� n����� j�Q��� j�V���Q�"� i����u� i� M�Q8��_inst_1add_monoidun����e_2���g�U�g�We_3�����^�^� K�^��� ��t8�_��g�^�`��� ����� g�Q��nat_zero_eq_zero88��add_monoidzero_smulu��8�'� m�Q��� m� U�Q���Omul_zero_classto_has_zero
�semiringto_mul_zero_class
���semiringchas_mul
�������e_2���g��g�e_3����� S��� ��t8��� ��� T� g�Q� ������<��zero_mul
�� ����2��n_n�n_ih� d�	��� K�����4�&8�� U� ��j���� ���� ��k�j�� ���\�j� U8�j�!� ���� ��!��� ��!�� �8��!�!��
�+���� ���!
�!������e_1���W�t8�6� ��!succ_smul�� ��8�����!
���j�j�<�j�!�!� ��!��� ��\�!�j�Zadd_semigroupto_has_add
���
���add_comm_semigroup�j�!natsucc_mul8�jadd_comm
��!F�!�j����Z�!Cadd_right_cancel_semigroupto_add_semigroup
��to_add_right_cancel_semigroup
���j�!�!b� �add_right_inj
��!]�!�j�j��� �����j���PInfo����decl�mem_add��as9tus�3�m�6���8�����9��u�W_x�_x�s���������8�6�!�8�!�8l₁�l₂��jmem_append��8�PInfo����ATTR�����decl�le_iff_exists_add��st9s���uuu�
�P�����9�w��!�h���_x�_x��
>�����et8l₁�l₂�s�'_a��l����Vt��������!��[���������!������\���3����3��5�!h_1�!������^���^�a����7�����!��38�8���8�exists_perm_append_of_sublist�t8_x�!�_a�����������������!�������!��]���5��+�!���_x�U�������"	�a�8���"�le_add_right��8�PInfo����decl�canonically_ordered_monoid_proof_1��ab9cu��J����add����")t8�"*�")8��~add_assoc�b�PInfo����	decl��_proof_2��a:�'�����"%9�a8�"79�"<���"�zero9�"<��~zero_add�b�PInfo���	decl��_proof_3��a:�"C�"H��~add_zero�b�PInfo���	decl��_proof_4��ab9v���7�8�"%u�}�"7u�}8�"d8��~add_comm�b�PInfo�
��	decl��_proof_5��a����le9�"<��~le_refl�b�PInfo���	decl��_proof_6��ab9cua�B���"r���t8��C�D�"r��2t8�J�K�"r��a��t��~le_trans�b�PInfo���	decl��_proof_7����ab9s�����ltu�}8�
�/�1�"ru�}8�X�"�8����~lt_iff_le_not_le�b�PInfo���	decl��_proof_8��ab9��/����"��"��"{u�}�"�u�}�"�u�}8��B�C���"��"�����"{����"�����"����8t����~le_antisymm�b�PInfo���	decl��_proof_9��ab9��/�����"��"��"��"��"��"�u�}8c��C�(�)����"��"���2�"{��2�"���2�"���2�"���2�
�+�!� �add_comm_monoidmk��"%��2�"7��2�"D��2�"O��2�"Y��2�"n��2��#t��~add_le_add_left�b�PInfo�!��	decl��_proof_10��ab9cuh�I�J�D������J�����������t8�#4�\�]�)����2t8�lt_of_add_lt_add_left�b�PInfo�(��	decl����canonically_ordered_monoid�canonically_ordered_monoidmk�"%�b����"D�b�����
��"r�b�"��b���������!��(��w�0�le_iff_exists_add�PInfo����	prt��VMR��_lambda_1VMR��VMC�2��	��VMC����	����decl��equations_eqn_1��7�#J����#}��\�#J�#��PInfo�4��	ATTR����4EqnL�4SEqnL��ATTR�����class�.����decl�repeat��an�u��6�7���Drepeatt8�PInfo�5��VMR�5VMC�5���7��6��Drepeat_maindoc�5`repeat a n` is the multiset containing only `a` with multiplicity `n`.decl�5equations_eqn_1���6�7�v�5�t8�#���6�7���#��PInfo�<��ATTR����<EqnL�<SEqnL�5decl�repeat_zero��a:�#�8�Q����>T�#��PInfo�=��ATTR����=ATTR����=decl�repeat_succ��an�v�#��\�b��#���@�A��	�#���N�#��#����#��#���#�v��#��#��#���u���e_1�
�g��g�Ue_2�Z�d�\��
\�
�t8�p�\�1���
[��#��#�� �#���#��#��#��<t8�#�_inst_1has_lift_t�wu������e_27�8��t8�*���#��#��@repeat_succt8�#��#�� �#���#��#��t��e_1�B8����Ue_2�Z���\�\������t8���[��\�^�����88�\t8�#��#��#���t8�#����#��#���t�#��#��permreflt�#��PInfo�?��ATTR����?decl�repeat_one��a:�#��b�[��M�	�$;����$;���$;:������$C�\�[�$E��9��ue_1��g��g�e_2��d�W��X��
|t8�p�W�0���X��$9�[��9�#����Z�#��[�?8�Q�8�te_1�o8����e_2����W�W�����t8���V��W�\������\8�#����=8�[�[���[���$H�$E�
�8�������$E��	�9�����PInfo�L��ATTR����Ldecl�card_repeat��an���V�#���jlength_repeat�PInfo�R��ATTR����Rdecl�eq_of_mem_repeat��ab8n�����#��t�Bt���W�X8�Y��@eq_of_mem_repeat�t8�PInfo�V��decl�eq_repeat'��as9s���#��]btH�o�$���\�]9��_xus��$��k�^��_����8�lw����r�$��h�r���#��t�$��^��_���`�$��w�$��$�h�$����#�����`8�����$�8�C�$�8�perm_repeat���$�8�symm�8�$������8�$������$���@eq_repeat'�t�PInfo�[��decl�eq_repeat_of_mem��as9��$��
�$�����g�h9���$��$��eq_repeat't8�PInfo�f��decl�eq_repeat��an�sus�$��$�8�
��k8�$���k�l��mu�w�%2�%7h�%2��_x��
���b�H�	8����#���t8��8�%L����%Lt�p��q�.�#��������card_repeat��tb��eq_of_mem_repeat���_x�%7_a�
�� ;t�p��q�.t�%[�
l���t��p��q���%D�v�
�%w�%z�
@�#����left�%wright�p��q����
W8�V��_x��
\�#��[�V��;��%��9�8�eq_repeat_of_mem�V���PInfo�j��decl�repeat_subset_singleton��an����#��a��@repeat_subset_singleton�PInfo�{��decl�repeat_le_coe��an�lws�H�%1��q��$�8��������w�w�%��%�_x�%�_a�-�%L�}���n������#�����o�%��q�V8����]�%Y�Nt�r�%���5��+�%����!�8�#��V���o�%��q�[t��+���%��%��%��#��[�V��h_w�%�h_h�%���_x���q�_�V�#��]�[�V��%���%���%������]�%��7���%���$��]�[�V��%�]��%�8��%��PInfo���decl�rangen�multiset
�����

�o��&"����&%�&"����&%�&"�
��Drange�PInfo����VMR��VMC���������doc��`range n` is the multiset lifted from the list `range n`,
 that is, the set `{0, 1, ..., n-1}`.decl��equations_eqn_1�����&"���&5����*�&"�&9�PInfo����ATTR�����EqnL��SEqnL��decl�range_zero�&7�&8�Q�N�&"�
��F�&"�&@�PInfo����ATTR�����ATTR�����decl�range_succn��&7�&8�&�$
��&9����	�&P�&7�&2�&3�&I�&O���&P�&V��
*�&"�&J_a�&"��&7�&8� ��&M8�&88�&7�&b���&P�&T���&I�	�&V�&7�&2�C
�&%�E
��&4listcons
�listnil
��&O���&V�&��&[�&%�&S_a�&%��&7�&2�&3� ��&b�&7�&2�&b���&V�&�@range_concat�	�&��&7�Y�&"�
��&5�&2�&~�&O���&��&��&\�&�_a�&"��&7�&2�&w�&38�&z8�&}�&b�&f���&��&�eqsymm*�&"�&��&��coe_add
��&4�&~�	�&��&7�&��!B�&"�!D�&"��
�&"��
�&"��&"�E
��&��&5�&O���&��&��&\�&��&5�&�_a�&"��&7�&��&2�&��&2�&��&b�&f���&��&��!Q�&"�&��&5�&��&=�&��PInfo����ATTR�����decl�card_rangen���card
��&9����@length_range�PInfo����ATTR�����decl�range_subsetm�n�s��
�&"��
��&a�&9��8�������@range_subset8�PInfo����decl�mem_rangem�n�s��

��&"��
�8�&9�R8�������@mem_range8�PInfo����ATTR�����decl�not_mem_range_selfn��X�'�&9����@not_mem_range_self�PInfo����ATTR�����decl�erase_proof_1��_inst_1�a8l₁wl₂�p��87��������erase��t����'78�������8��w������'1������'9�'=�erase_perm_erase���t8�PInfo���decl�������s9��t�������9��t������8l��|�'5�������8����t�PInfo���VMR��_lambda_1VMR��_lambda_2VMR��VMC�����VMC������_fresh8����_fresh8����Derase_mainVMC��
�������������!doc��`erase s a` is the multiset that subtracts 1 from the
 multiplicity of `a`.decl��equations_eqn_1�������9��t�����t8�'n������9��t���'w�PInfo���ATTR�����EqnL��SEqnL��decl�coe_erase�����l<at��'t��8��'5��8������<��tS��'��PInfo���ATTR�����ATTR�����decl�erase_zero�����a8v�'st�t���C�A�A������8�F�'��PInfo���
ATTR�����ATTR�����decl�erase_cons_head�����a8su��'��l8������8��u�|_x��}�'s��'c��tl��K�'`��������V�#8�ot�|�@erase_cons_head��'�t�PInfo���ATTR�����decl�erase_cons_tail�����a8bts�h�
8t��'s������'�8�������8��t������'��t_x��
?�'s��'��C���'��'��8l����'5�����V��[��]�(8�����'��'���2�@erase_cons_tail��'���8�PInfo���ATTR�����decl�erase_of_not_mem�����a8su��X���}�'�8t8������8��u�|_x���X���'�8l�h�X�
�������'6������V��[�88�8�N�@erase_of_not_mem��(.�8�PInfo���ATTR�����decl�cons_erase�����s9at��o�}�~8�'�t8t������9��t�|_x���q���'�t88l�h�q���'G��t�(0t8�%�8�(Z�perm_erase��(.t8�PInfo���ATTR�����decl�le_cons_erase�����s9at�o���'�8������9��t�
/�o�#�8�(rh�o��t�(F���(Ft�cons_erase��'ct8���p�	���(F���(Ct���(��(����'��'�t8_a������'��t������(�t�erase_of_not_mem��'c8t��t8�PInfo���decl�erase_add_left_pos�����a8sut���
8��'��!�t8��!��'�t�8������8��u����#������_x�_x���	�8�X�'s�V�(*��t8����(�t�88l₁�l₂�h�(���8�:�'5�V��V��[��]��_�_88�
����(�t�8�	`�@erase_append_left�V�(��t8�PInfo���decl�erase_add_right_pos�����a8sut�h��(��(��'�������8��u�������	�)��'��!�����������������"�8t��)���)�) ���)t8_a���
?�'��a�t��))�'�t��
?�'��)0���)�)���)t8�	�) ��!��'��(.8�t�)���) �)I�)%�)C�!�t�_a���
?�'��_���U���U���U���U���U�a�t���)0�
?�)0���) �)G�erase_add_left_pos���8t�	�)I��)&�)E�)���)I�)z�)%�)�)Et_a���
?�a�'��'�t���)0�)f���)I�)x�)<�)Et�\��)x�PInfo���decl�erase_add_right_neg�����a8sut���X�(��)������8�u���(�_x�_x���X�(��(��(��(�8�8l₁�l₂�h�X�(��(��	�(�8��	`�@erase_append_right�V�(��t8�PInfo���"decl�erase_add_left_neg�����a8sut�h�(�(������	8�
u����(�	�(��)�(����(��)��)(_a���)-�a�'���t�)3�)����(��)�)>�	�)���!��)Ct��(����)��)��)Q_a���)b�)��)e�)����)��)��erase_add_right_neg���8t�	�)���)�)�8�(����)��*�)%�)�)�_a���
?�b�)����)��)����)��*�)<8�)��)��*�PInfo��%decl�erase_le�����a8su�H�'�8�����8�u�|_x��-�'�tl����'�t�@erase_sublist��'�t�PInfo��(decl�erase_lt�����a8sus�L�*)�������8�u�w�*I��h�*I�����)���(�t���X�(���tnot_imp_comm�(��(�"��'ct8�8��'c�(8�(�t8�m�(8h���
��_�(���(�*r8���(�(�&�(�*s8�(�8t���(��iff_true_intro�(�trueintro�D��(t�PInfo��+ATTR����decl�erase_subset�����a8su���*)�����!8�"u�U��*)�erase_le��8�PInfo� �/decl�mem_erase_of_ne�����a8bts�ab�
t8s�*W�(O�*W8�����%8�&t�'��(�*��t_x�s�(��'���(�8l�listmem_erase_of_ne��'���8�PInfo�$�2decl�mem_of_mem_erase�����a8bts���
�*08�*������.8�/t�0��Q�*�t�erase_subset��'c8�PInfo�-�5decl�erase_comm�����s9atb��}�'��(E�'��(D8�����39�4t�5���_x���'��'�t8�'��*�8ttl��('�'7�'7t8�'7�*�8t�N�erase_comm��t8�PInfo�2�8decl�erase_le_erase�����s9tua�h���]�(�8�(�8�����:9�;u�<��=�����_x�_x�U���)���(���tl₁�l₂��h�%���[�'5�[��[��]��_��e�e88t��+28��@erase_sublist_erase�[�+1�t8�PInfo�9�;decl�erase_le_iff_le_cons�����s9tua�s�-�*�8���������E9�Fu�G��w�+L�+Nh�+L��x�+�xt�le_cons_erase���8��8�+th�+N�
/���"��8��+tm�+i�����D�'��t�D����+s���t�+s��
����+v���D�)��t�+v��U�_a�U����������+����+��+��
�+���(���'��t8�K�X�+i��U���+s���*���'�t����+�����le_cons_of_not_mem�t��8�PInfo�D�>decl�card_erase_of_mem�����a8su������(��pred� ;�����O8�Pu�|_x�������'��+���l��@length_erase_of_mem��'�t�PInfo�N�DATTR����Ndecl�card_erase_lt_of_mem�����a8su����R�+�� ;�����V8�Wuh������(8���*v�(��erase_lt��'ct8�PInfo�U�Gdecl�card_erase_le�����a8su���h�*)�k�����[8�\u�card_le_of_le��*)�*��PInfo�Z�Jdecl�coe_reverse��l:N�Dreverse8O��_��<i�,
�reverse_perm8�PInfo�^�OATTR����^decl�map_proof_1�u_2�β�df�88l₁wl₂�p�'1eq���list�����,"���quotmk��,"�,(listmap����t�,-�,18��e�,�f�,�gw�h��i�'1quotsound��,"�,(�,2�,5�perm_map����t8�PInfo�c�Wdecl�b��d��e�,�f�,sumultiset�t��e�,�f�,�suquotlift_on���,R��l�����,!��,Q�����,]�,_����,]�,_����,.��t�c��d�t8�PInfo�b�WVMR�b_lambda_1VMR�bVMC�x�W��VMC�b�W�s�f�e��Dmap_main�x�!doc�b`map f s` is the lift of the list `map` operation. The multiplicity
 of `b` in `map f s` is the number of `a ∈ s` (counting multiplicity)
 such that `f a = b`.decl�bequations_eqn_1��d��e�,�f�,�su�,�,R�b��d�t8�,w��e�,�f�,�su���,R�,��PInfo�|�WATTR����|EqnL�|SEqnL�bdecl�coe_map��d��e�,f�,lw�,|�,��%��,\�,!t�,R�,a�,��,R�,d�,��,R�,gt�,.�t8��e�,�~�,�wrfl��,R�,��PInfo�}�[ATTR����}ATTR����}decl�map_zero��d��e�,f�,�,�,Q8�,}t8�A���,���8��e�,���,�,��,��,��PInfo���]ATTR�����ATTR�����decl�map_cons��d��e�,f�,ats��,�,_�,}��t�(C�$�����,���e�,���,��t�����_x��,�,Q��,}����(��,���J�,�l��,��,��,���
�PInfo���_ATTR�����decl�map_singleton��d��e�,f�,at�,|�,��R���{��2�singleton��t�,R��t�'�t8��e�,���,��t�,��,��PInfo���bATTR�����ATTR�����decl�map_add��d��e�,f�,sut��,��,������,_����,�8�,���e�,���,��u����(�_x�_x��,�,Q��,}����a8�-�-�-��- 8�- 8l₁�l₂�congr_arg���,!��-�,.�����has_appendappend��-3listhas_append���-88�-8�,\�-3�-�,a�-3�-�,d�-3�-�,g��jmap_append����8�PInfo���dATTR�����decl�is_add_monoid_hom��d��e�,f�,is_add_monoid_hom�u�,�������,�����,�����,��E�8�,���e�,���,is_add_monoid_hommk�u�,����-m�,�is_add_hommk�u�,�������,�����,��-m�,��map_add�t8�map_zero�t8�PInfo���g	prt��VMR��VMC�����e�decl��equations_eqn_1��d��e�,���,�
�-o����dt8�-���e�,���,�
�-o�-��PInfo���g	ATTR�����EqnL��SEqnL��ATTR�����class������decl�mem_map��d��e�,f�,b8s�s������,_����8�,���a��
�.8�,��t��e�,���,��8�����_x�s�-���,��-��t�,��	
����
�%C�,���l��@mem_map����t�PInfo���jATTR�����decl�card_map��d��e�,f�,su��card�t�,��k��e�,���,��u�|_x���-���,�� =l��jlength_map���t�PInfo���nATTR�����decl�map_eq_zero��d��e�,s9f�tts�,|�,8�,��,R�,�t�u��e�,��9���-��	�-�s��-��-��Q�u���-��.�&[��-�_a��s�,��,�8t�,��,_�,�����s�.���-��.�&���.�-����.�-�multisetcard_eq_zero�t�-��	�.s����Q�u���.�.3�&[��._a��s��-��.�Q�.s��Q�.���.��multisetcard_map��t8�	�.3s�u�u���.3�.T�.
�.1_a��s��t�Q�.�.���.3�u���.1�u�N�8���u�PInfo���qATTR�����decl�mem_map_of_mem��d��e�,f�,ats�h�(N�-��J�,�8��e�,���,��t������(N���.x�	
����
�	t�-����mem_map�����J8���.�t���8�-��J�J�,���J�PInfo���tdecl�mem_map_of_inj��d��e�,f�,Hfunctioninjective�t8a�s�s�-��B�,����e�,���,���.��������t_x�s�-���-�-�����-*�	tl��@mem_map_of_inj�����t�PInfo���wATTR�����decl�map_map��du_3��e�,γ��g�,f���s��<��t���map����t�,�8�map���functioncomp�����t8��e�,���.����,���.�����t_x��.��.���.�����-t�.����.�����tl�congr_arg���k���.��jmap������-7t�jmap����.�coe���/�.�����/�.�����/�.����listmap_map������t�PInfo���{ATTR�����decl�map_id��s:�map88id8����m_x9v�/5tt�/8tl<��wu�jmaptt�/B��jmap_idt�PInfo���~ATTR�����decl�map_id'��s:�/7x8����map_id8�PInfo����ATTR�����decl�map_const��d��e�,s9b8�,|�,functionconst�t�8�repeat�t����e�,��9��8�|_x��,��,��/h��8�/o�8� =8l��-2�,]�,_�,m�/z�@repeat��8�#�,k�@map_const���8�PInfo����ATTR�����decl�map_congr��d��e�,f�,g�-�s��x�H�-��-���B�,��.w�,�t8��e�,���,���-������_x��������%C�,�����-�-(�-�8l�H������	�w�/��-5�-7�����8�-7����8�-N�@map_congr����/��/�8�PInfo����ATTRcongr����decl�map_hcongr��d��e�,β'�,muf�.�f'���h�<��,��hfa�H�%�����V���B�/��,Q��,}�V����-�/��t���e�,��,�u��.���/���/���/���
��,���,���[8��	�]�
���V�/��_�#����/��,Q�]�,}�_�]��V�,R�0t8�V���V�V��	�[�
����/��]��]���	�/��,Q�[�,}�]�[���0�08�����0#���0#�,�0�0"�0"��0)�0�0"�0�0"�0,a�0��0e_1�,�,Q�_8β�,�g�g8e_3�,t8�^�*���/��,Q�����0?��t8congr_fun��*�,�
�,�g��0@�0C�_����0>�
�,�0J���0?���0�0"�map_congr��]�[�	�]���	�]t��
��	�]�
�/��/��_�B���]�	�_�
���[�,�e���L�]�	�]�0o�	�]�
�/��,�_�#�B�	�]�]�/��0���]�0i�/��,�]���0i���/����0��0�heq_iff_eq��]���0i�0�0"�0"�,��0�0"���01�0,�0��0�0"�0"���0,��p��0�0"���8t�PInfo���decl�eq_of_mem_map_const��d��e�,b₁b₂8l�h�-�t�/{�|�-��t��e�,��8����0��eq_of_mem_repeat��t������
��-���,��/h��t���0��/o�t�0���
��,��0�_a�,���.���-�/h����6�0����0��0��map_const�����t�PInfo���decl�map_le_map��d��e�,f�,sut�h�/����,��K��,��L��,�����,�t�.w��e�,��,�u����/�+_x�_x�U�1�/��1	�/��1�/��1
��/��8�1"t8l₁�l₂��h�+'�y��V�,.�[�V�t�118�@map_sublist_map��[�V�t8�PInfo���ATTR����decl�map_subset_map��d��e�,f�,sut�H��8����,������1�.w��e�,�&�,�'u�(��)�1Ib�m�.��- �_a�	)���V�
�	.��,�V��t���[���[�
�0�,�[�V��,���[�1i�-��[�0�-��[��0�V��5�[�+�1h�
l��8�V�0����+�
�1y�1|�-��_�04�-��_��,}�e�_�]�Vh_left�1yh_right�0�]t����-��e�,Q�e�-��e��,}���e�_�[���1����������
����	j�����]�,���e�V�.����e�_��[����1��������������[�0t�_���V�8���-���/��-��8�1"��1a�.��V��8��PInfo�%��ATTR����%decl�foldl_proof_1��d��e�,f��-�Hright_commutative�t8btl₁�l₂�p�8�/��foldl���V��t�1�8��e�,�1�1��2�1��4t�5��6��7�1��foldl_eq_of_perm��V��t8���PInfo�0��decl�/��d��e�,�1�1��2�1��4ts����e�,�1�1��2�1��4t�:��,W����l��1����t�0��d���t8�PInfo�/��VMR�/_lambda_1VMR�/VMC�<����VMC�/���:�4�2�1�e��Dfoldl_main�<�!doc�/`foldl f H b s` is the lift of the list operation `foldl f b l`,
 which folds `f` over the multiset. It is well defined when `f` is right-commutative,
 that is, `f (f b a₁) a₂ = f (f b a₂) a₁`.decl�/equations_eqn_1��d��e�,�1�1��2�1��4t�:��-��/��d���t8�2(��e�,�1�1��2�1��4t�:��,���25�PInfo�@��ATTR����@EqnL�@SEqnL�/decl�foldl_zero��d��e�,f�1�H�1�bt�,��2/��t8���e�,�B�1��C�1��Dt�,���2L�PInfo�A��ATTR����AATTR����Adecl�foldl_cons��d��e�,f�1�H�1�bta�s��-��2/����t�8�2^����e�,�F�1��G�1��Ht�I��J��z���_x�U�/��2/�V�����T�2q�,l���,���2r���'�PInfo�E��ATTR����Edecl�foldl_add��d��e�,f�1�H�1�bts�t��-��2_�-"�2^�2_8��e�,�N�1��O�1��Pt�Q��R��#������_x�U_x�W�1\�2/�[�V����C8�2��2�88l₁��l₂�!�@foldl_append��V�[��8�PInfo�M��ATTR����Mdecl�foldr_proof_1��d��e�,f�8�8tHleft_commutative�t8btl₁�l₂�p�1��/��foldr��V���t�2�8��e�,�Z�2��[�2��]t�^��_��`�1��foldr_eq_of_perm��V��t8���PInfo�Y��decl�X��d��e�,�Z�2��[�2��2��e�,�Z�2��[�2��]ts��2l��2����t�Y��d���t8�PInfo�X��VMR�X_lambda_1VMR�XVMC�e����VMC�X���c�]�[�Z�e��Dfoldr_main�e�!doc�X`foldr f H b s` is the lift of the list operation `foldr f b l`,
 which folds `f` over the multiset. It is well defined when `f` is left-commutative,
 that is, `f a₁ (f a₂ b) = f a₂ (f a₁ b)`.decl�Xequations_eqn_1��d��e�,�Z�2��[�2��]t�c��-��X��d���t8�2���e�,�Z�2��[�2��]t�c��2>�3�PInfo�i��ATTR����iEqnL�iSEqnL�Xdecl�foldr_zero��d��e�,f�2�H�2�bt�2F�2���t8���e�,�k�2��l�2��mt�2T�3�PInfo�j��ATTR����jATTR����jdecl�foldr_cons��d��e�,f�2�H�2�bta�s��-��2�����t�8��3)��e�,�o�2��p�2��qt�r��s��2m_x�U�/��2��V�����T�)�3:l���2{�3:�2|�PInfo�n��ATTR����ndecl�foldr_add��d��e�,f�2�H�2�bts�t��-��3)�-"�3(�3,8��e�,�w�2��x�2��yt�z��{��2�_x�U_x�W�1\�2��[�V����2��3]�3^88l₁��l₂�!�@foldr_append��[�V��8�PInfo�v��ATTR����vdecl�coe_foldr��d��e�,f�2�H�2�btl��-��3���2����8��e�,���2����2���t����.��3{�PInfo����ATTR�����ATTR�����decl�coe_foldl��d��e�,f�1�H�1�btl��-��24���1����8��e�,���1����1���t����.��3��PInfo����ATTR�����ATTR�����decl�coe_foldr_swap��d��e�,f�2�H�2�btl��3|�3�x�y���88��e�,���2����2���t���eqtrans���3{�3�N�,��3���symm���3��3{congr_arg����3����3�coe_reverse��@foldr_reverse����8�PInfo����decl�foldr_swap��d��e�,f�2�H�2�bts��3�21�3�x�y�z�V�3��V���t���t�'at8��e�,���2����2���t����t_x��-��3,�2\x�y�V��8������V���[�3��[�#�1et�1e�#t�ttl��coe_foldr_swap�����t�PInfo����decl�foldl_swap��d��e�,f�1�H�1�bts��26�2�x�y��3�x�y�z��3���3�8��3�t��t88��e�,���1����1���t����3��2��������3��4$8�21�������'a���������V�3����8����3��4>�4;�)88�foldr_swap����40�4$8�PInfo����decl�prod_proof_1��_inst_1comm_monoidx8ytz��B���semigroupto_has_mul�monoidto_semigroup�comm_monoidto_monoid��t�4h8�4j�4i����4\��8��t����	�4p����4p���4p�4m�4l�������e_1���g�V�g�[e_27�]8�d�_��	g��	g�t8�p�_�g�_����	g��4l�4l���4l�4o�4lmul_left_comm���to_comm_semigroup��8t���4|��	���4l���PInfo����decl�������4\�9t����4\�foldr88�4]8�4_8�4a8�4c8���8��8��to_has_one8�4��PInfo����VMR��_lambda_1VMR��VMC����a���_fresh5�;m
VMC��	�����
���Xdoc��Product of a multiset given a commutative monoid structure on `α`.
 `prod {a, b, c} = a * b * c`decl��equations_eqn_1�����4\7�4����8�4�����4\�\�4��4��PInfo����ATTR�����EqnL��SEqnL��ATTRto_additive����to_additivevalue_typemk��optionnone
stringATTRto_additive_aux������
Strsum��
Strmultiset��declmultisetsum_proof_1����add_comm_monoid��8��t����B�������������t�4�8�4��4�����4���8��t����	�4�����4����4��4��4���4��4��4����4��4��4�add_left_comm�����8t���5	��4��4����PInfo����decl�������4��4�����4��4���8��8��8��8��_proof_1�8�u8��8�5/�PInfo����VMR��_lambda_1VMR��VMC���������_fresh5�@A
VMC��	�����
���Xdecl��equations_eqn_1�����4��4����8�5<����4��4��5A�PInfo����decl�prod_eq_foldr��_inst_1�4\s9�t�4�t8�4�tt�4]t�4_t�4at�4ct8xty�z��	���4]��4_��4a��4c��t�5_8�5a�5`����5g���5g�5d�5c�������e_1���g�[�g�]e_2�	i�d�e�7�e��5s�t8�p�e�g�e����5s��5c�5c���5c�5f�5c�4���4���8t���5n��	���5c���4�t�4�t�5S����4\��9���5K�PInfo����ATTR�����ATTR�������4�ATTR��������
Strsum_eq_foldr�4�declmultisetsum_eq_foldr�����4���9�t�5?t8�5N��t��t��t��t8��t�������	���������������t�5�8�5��5�����5����5��5��5���5��5��5����5��5��5��5�����8t���5���5��5����ut��t�5�����4���9���5��PInfo����decl�prod_eq_foldl��_inst_1�4\s9�5L�foldltt�5Vxty�z��	���5_�5`8�5_�5e8����6���6�6�6��5��6�6���6�6�6mul_right_comm��5�t8���6��5��6���5�����4\��9��t�5W�4�t8�5��6��t����4h8��t���������5a�5_t�6F�5at�4���8t�5��64�foldr_swaptt�5V�6;�5��	�t�6X�64����6d���6d�t�6��t�����6C�1�6l�3���6U�5V��t��t������t����4^�4`comm_semigroupto_semigroup��4�8��t����6�8��t�6w������6��6����mul_comm��4�8�5��64���t���e_1�$�g��g�e_2���d�[��
W��
W�t8�p�[�g�[����
W��6X�6��1�6l�1������e_17������8�2�6o��t�4��4�Ve_3�%��:�^�:�`e_4��eqdrec
����������]�1�6���7����������_��6�����e�[�V��6�8����������e�1�6��6o�����[8���6�����4����7����6��6��6��e�\�6��e8��6���t�:�����	k��6��6��V8�*�6�����]��6��]�1�6��6o������]�\�6��]�t8���[�V�6C�5V�6��6U�5��5��$�5���64�64�$�64���6��6���	�t�6����PInfo����ATTR�������4�ATTR��������
Strsum_eq_foldl�4�declmultisetsum_eq_foldl�����4���9�5��6�5���t�������	���5��5�8�5��5�8����7T���7T�7Q�7P��5��7P�7P���7P�7S�7Padd_right_comm��5�t8���7[��5��7P���5�����4���9�69�5��54t8�5��6��t����4�8��t�������6E�5��5�t�7��5�t�54��8t�5��7y�6]�5��7�5��	�t�7��7y����7����7��t�7M�6m�7��6s�7��5��6{��t����4��4�����58��t����7�8��t�6��7��7�������58�5��7y��6��7��7��7)�7��5��7��7��5��5��$�5��74�7y�7y�$�7y���7��7���7?�7����PInfo����decl�coe_prod��_inst_1�4\l<�t�5J�listprodt�5U�5�����4\�	<�prod_eq_foldlt8��PInfo����ATTR�����ATTR�������4�ATTR��������
Strcoe_sum�4�declmultisetcoe_sum�����4��	<�t�5��listsumt�5��5�����4��	<multisetsum_eq_foldlt8��PInfo�	��ATTR����	decl�prod_zero��_inst_1�4\78�4����4���	�4\S8�8�PInfo�	
��ATTR����	
ATTR����	
ATTR�����	
�4�ATTR�����	
��
Strsum_zero�4�declmultisetsum_zero���	�4��8�5A���5;��	�4��8�8#�PInfo�	
��ATTR����	
decl�prod_cons��_inst_1�4\a8su�o�4��t�l�4]��4_��4a��4c�t8�8,��	�4\�	8�	u�foldr_cons���86�4��t�4���4���838�PInfo�	��ATTR����	ATTR�����	�4�ATTR�����	��
Strsum_cons�4�declmultisetsum_cons���	�4��	8�	u�o�5?�t�l������������t8�8U��	�4��	8�	u�8A�8_�54�t�u�����8\8�PInfo�	��ATTR����	decl�prod_singleton��_inst_1�4\a8�t�5J����	�4\�	8�	�8y����8y���8y�d��6��8w�69�8w�5V�5��8��8��5J�A�8��	t8�A����t������e_2�$��g��g�Ve_3�6����]�]�4]�]���8��t8���]�g�]�_���8���5U�$�8��5��	
t8mul_onet�5S�8����8���7?���PInfo�	��ATTR�����	�4�ATTR�����	��
Strsum_singleton�4�declmultisetsum_singleton���	�4��	8�t�5�����	�4��	8�	�8�����8����8��8���6��8��69�8��5��5��8��8��5��A�8�multisetsum_const8�A����t�������	�8��g��g�V�	�6��8����]���8��t8�8��8���5��8��8��5�multisetsum_zerot8��t�5��8��8����PInfo�	��decl�prod_add��_inst_1�4\s9tu�o�8,�m�86�8,8�88��	"�4\�	#9�	$u�W_x�_x����4����!��5_�938�938l₁�l₂��	���93�!����5_�93��93�����9H���9H���5_�7���5^�4���5\8�9S�9W��5��9B�9W����9B�9S��8�9W�9_�93�N�9a�9b���4[���U��We_2�����^�]t8�4��]���9A�9e���9A�!������9e��������U���We_2���g�^�g�`e_3���������������9��t8�����g���	j���9���!������8����9���8�����9a�@prod_append��5\8�9G�9W���8��������Ve_2�6��g�]�g�_e_3�5s8�������4]�����9��t8�����g�������9���5^�9D�9T�9^�9D�93���9T�9v����9��9�8�9F�9V�9^�9F�93���9V�9v����9��9����9Y��5��9W���PInfo�	!��ATTR����	!ATTR�����	!�4�ATTR�����	!��
Strsum_add�4�declmultisetsum_add���	"�4��	#9�	$u�o�8U�m�8_�8U8�8a��	"�4��	#9�	$u�W�	%��	&����5?���!��5��:8�:8�	'��	(��	���:�9A�5��:��:�����:%���:%���5��8��5�����5�8�:0�:4��5��:�:4�9^�:�:0�9a�:4�:;�:�9e�:<���4����U��W�	)���9m�5?�]���9A�9e�9�multisetcoe_sum���9alistsum_append��5�8�:$�:4�����������V�	-�6��g�]�g�_�	.�9��9��������:a�t8�9��:a��5��:!�:1�9^�:!�:���:1�:K����9��:R8�:#�:3�9^�:#�:���:3�:K����9��:R���:6��5��:4���PInfo�	0��ATTR����	0decl�sumis_add_monoid_hom��_inst_1�4�is_add_monoid_hom98��9��9��9�"<�5/�5A��	7�4���98�:��5/�5A��98����9�:��51�5A�sum_add8�98�PInfo�	6��	prt�	6nspace�	5VMR�	6VMC�	6�	7�decl�	6equations_eqn_1���	7�4��-��:��	6�8�:���	7�4��-��:��:��PInfo�	;��	ATTR����	;EqnL�	;SEqnL�	6ATTR����	6class�	8�	6��decl�prod_smulu_1α_inst_1�4\m9n��o�8,� _8has_powpow�	=
��monoidhas_pow���83�9*�	>�	?�4\�	@9�	>�	?�4\�	@9�	A���brec_on
�	A��B�4���� �t�:����:���4e�:�t�	A�_F��below
�	A����93� K�����)��:����:���5\�93��	A��	G�:��	A����4��V�� K�W���W���W���W�a�V��:��V��:��V�4c�V��;���cases_on
�	A��	G�:��	A��4�9n�[� ����^���^���^�a�]�V�:��]��:��]�4c�]�[�;)�V�4�;)�;18�V�;>88�	G�:��	A��
W�4��[�V� K�\���\���\���\�a�[��:��[��:��[�4c�[�V�;O�� g���
W�;O�;X�Q��;mS�[�;m�	A��	G�;B�&I���4�;)�;1�\8�b�V�;>�;x�	�;~�4�;)�����^���^�;0�;E�;1�b�V�;}���;~�;���^�;z_a�^��	g�4��_�]� K�`���`���`���`�a�_�\t�b�[�:��_��:��_�4c�_�]�;��[�;��	g�;��;����;~�;�add_monoidadd_smul�	=�^�;0�V8�b�	�;��4�;)�;��V�;}���;��;��;��;�_a�^��	g�;��4���`���`�;��;�t�[�;��b�[�;��	g�;��;��;����;��Vadd_monoidone_smul��^�;0�V�	�;��;��8��4_�]�4a�]�;:�;H�;>�b���;��;���]�;}_a�]��	g�;��;��[�;��;����;��;�pow_add��]�;:�;=8�b�	�;��;��;��;=���;��<�;��;�_a�]��;��4]�_�4_�_�4a�_�;��;�t�;��b�;��< ���;��;=pow_one��]�;:�;=�	�<�4�;��;F�;=�<���<�<8�;��;)���;E�V_a�]��;��< �;��	g�<A���<�<6�prod_add��]�[�;E�V�	�<8�4�<�<���<8�<V�;��;F_a�]��	g�<�;��;��;��<A�	g�<�;��<A���<8�;Hpprodfst
*�	A��	g�;��;��[�;�natadd8� g��rec*n���punit*n�ih��pprod**�	`
*�	A�7���4����e� K���������������a���_�:�����:����4c���e�<��_8�<|�<v�	X**�<�<w�<��<|�\�]�<8t8�PInfo�	<��decl�prod_repeat��_inst_1�4\a8n��o�8,�$�8�:�8��	b�4\�	c8�	d��	�<�����<����<��o�<��<��������e_1�8��g��g�Ve_2�6��d�]��4��4�t8�p�]�g�]����4��<��<�����<��7���85�8H�$�8�<��<��8,��=�=���4[�����e_2����W�Vt8�;�t�<��=�#��8�9��t�=listprod_repeat��838�<��<��\��<����<���	���<����PInfo�	a��ATTR����	adecl�sum_repeat��_inst_1�4�a8n��o�8U�<�� K��8\8��	k�4��prod_repeatmultiplicative8multiplicativecomm_monoid8�PInfo�	j��ATTR����	jATTR�����prod_repeat�4�ATTR�����	r��
Strsum_repeat�4�decl�prod_map_one�������.�_inst_1comm_monoid�mu�.�t�prod�t8�.��ta�������������t�=]t�=_t�=at8����.��	t�=V�	vu��_x��.���=X�t�.����	x��=]��=_��=a���=e�	�=W�=Z�=g�t�=p����=����=��=W�=p�=p���t���e_1�.��8�g��g�e_2�.��V8�^�*�[��.��[��=��t8�_��*�[�6����=���=��=p�Y�t�=��=Zhas_zerozero��.�t��t�=p���=Ut��.���.�e_2�.��.��8�/�.���t8�=X��8�=��=��=��=��=\functionconst�t��=p�t���t�=p�Q�=��=��=��h�t�=�����t�t�=p�6t�6�e_1�=��7��7�e_2���^���.��[�=��[��=��t8�_���[�7��.��]���=���=p�=p��t�=p�=��Q����=�t�=p�	
�t8�=p�=p�>���=���p�t�=p���	�z��{���=��=X���.���	x��=]��=_��=a���=��.���=X���.���	x��=]��=_��=a���E�>=����>V��x��z��{���>D�>F�>O�>=�.���=���.��V��	x�V�=]�V�=_�V�=a�V����>M����z��{����M�z��>U�z��{���z��L��{��>T�{���{���>T���h'���*��]�>C�=��>6�>?�x�=�����>C�=��=��=���������	z�>`8�g�V�g�[�	{�.��]8�=��_��.��_��>��t8�=��_�4����>���>A�=��=���>A�	C�
���	E���=�=���=��>��>6�=���=���>����=U���=���=��	~�.��.��V8�/�=��[t8�=X�[���>@�>��=����=��	a����=��one_pow���=��=��=��>��=����>���>,��=���>��>���>��>��=��>��>��>��\�b��=��?�>6�>��?�?�>��>��?
�=��.��>7�=����=��>��>����>��?
�>��>��=��6��6��	��>��7��7��	����=��.��_�=��_��? �t8�=��_�7��.��e���? ��=��=��>��?�?���?�\��b�!I�b����8�!S��b�>��?�>��?�=��=��>��>����	���>��>�forall_prop_of_true��>��*���a���a����forall_2_true_iff��	������PInfo�	s��ATTR����	sdecl�sum_map_zero�������.�_inst_1add_comm_monoid�mu�=W�sum�t8�=\a��=����������t�=�t�?�t�?�t8����.��	��?�	�u�=v_x��=w�?��t�={�	���=���?���?����?��	�=W�?��?��t�?�����?����?��=W�?��?���=��?��?��=��?��?��=��?����?~t��.���.�e_2�=��=��?���8�?��=��=��=\�=��?��t�=��?��Q�=��?��?��=��?��=��?��>�?��?��>�?��=��Q�>�>�?��	
�t8�?��?��?����?���>-�?����	�z��{���=��?����>7�	���=���?���?����?��>D�?����>G�	���=���?���?����E�?�����@���	���z��{���>D�@�@�?��>`�?���>c�	��V�=��V�?��V�?��V����@
�>y��M�z��@�>�z��>��{��@�>��{���@�>��>��]�@�=��?��@�>��?�����@�=��?��?���>��@�?��>��@add_monoidsmul���?���?��?��@M�?��>��?���@R���?~���=���=��	��>��>��?��[���@�@V�>��?��	j����?��add_monoidsmul_zero���?���?��?��>��?����@H��>��?���@B�@H��>��@@�?��>��@@�@P�?�?��?��@��?��@U�?�@��@c�@?�@��?�>7�?�?��>��@U�?�@��?�?��?6�?��?��@x�?�?�?I�@l�?�@r�?�?��?��@x�@~�?c�?t���PInfo�	���ATTR����	�ATTR�����prod_map_one�4�ATTR�����	���
Strsum_map_zero�4�decl�prod_map_mul�������.�_inst_1�=Vmuf�.�g����=��>6�>7a��������������>;�0i�-t�@���@���@���=�>6�>78t�>6�>7t����.��	��=V�	�u�	��.��	��@��
_x��>D�>F�>G�	���@���@���@���>K��0i�@��>F�>Gt�>F�>G8t�	�=��>6�@����@��>6�@����>6�@�������A
���A
�>���>��A�=��>��A�>6�=��.��=���=��>��A�A������@��>!���A	�=��>��A	�@��=��=��=�������������e_2�=��g�[�g�]e_3�>�8�^���e�e�@��e���A7�t8�/�e�g�e�����A7��@��A�=��>��A�A�=��>��A�A�A 8�A%�A�=��>��A�A�=��>��A�A�A �A%�	���=�=��>���a�m�Uih�>`�>a�>c�	��V�@��V�@��V�@��V�>g���@��>a�>c��>a�>ct�	�=��=X�V��.��[�V�	��[�@��[�@��[�@��[�=a�[�V������Ay�A��A�����A��A�����=��Ay�Ay���J�Ay�A��A�8�A��A�8�Ay�A��A��Ay�J�A����A��A����V���[e_1�>��g�_�g�ee_2�.���8�=�����.�����A��t8�=����g������A���A��A��=��V�A��A��A��A�8�A��A��A��$��V�A��A��A����=U�V��=���>e_2�.��?8�/�?(�et8�=X�e���A��A�����[�V�A�t8�	��V��A��A����A/�V���[���]�	��A2�g�e�g���	��A�8�A3�����@������B�t8�/���6����B��Ax�A��A��>�V�A��A��A��A��A��B%�A��A��A��A��A��A����A��A��A��A��B6�A��t8�B���A��A��A��A��A��A��A��J�A��A��A��A��BI�A��t8�B�J�A����A���A�����V�A��A��A��A��A��A��Ay�A��A��A��Ba�A��A��A��A��A��At�Au����V����V��A��A�is_associativeassoc��V�Aysemigroup_to_is_associative��V�Aw���A��A��A��Bi�A��A��A��Bv�B��A��A��A��B��/�V�V�Bh�B��A�left_comm��V�Ayis_commutativecomm��V�Brcomm_semigroup_to_is_commutative��V�Bo�B~�A��J�A��B����J�A��B��A��Br�A��A��Bu�A��B��B��Bt�A��B��A��A��A��Be�B��A��B��Ay�A����A��B��B��B��Bc�B��B^�B��Be�B~�J���Bc�B��Bc�A��B��B^�A��Bc�B��B��A��B^�A��B��A��A��Be�B��B��B��Bv�B�J�A��A��B��B��Bv�B��B��B��PInfo�	��ATTR����	�ATTR�����	��4�ATTR�����	���
Strsum_map_add�4�declmultisetsum_map_add�������.��	��?�	�u�	��.��	��@��=��?��>7�	��has_addadd��add_semigroupto_has_add��add_monoidto_add_semigroup���?��0i�-t�B���B���B���?��?��@��?��@�����.��	��?�	�u�	��.��	��@��
�	���>D�@�>G�	���B���B���B���@��0i�C�@�@��@�@�t�	�=��?��C���C�?��A�?��A����C8���C8�@H��>��C2�?��>��C2�?��A�?��@c�C1�A�A �C�?����C7�?��>��C7�C�?��?��?���has_add���������	��=��g�[�g�]�	��A2�A5�B��e���CZ�t8�AB�CZ��C�C4�?��>��C4�CD�?��@c�A�A�AV�CM�C6�?��>��C6�CD�?��@c�A�A�Ab�CMadd_zero���?��?��@~���	���	��U�	��>`�@ �>c�	��V�B��V�B��V�B��V�@$���C!�@ �A��@ �A��	�=��?��V��A��	��[�B��[�B��[�B��[�?��[�V������C��C��A��C��A��=��C��C����J�C��C��A��C��A��C��C��C��C��J�C����C��C��A��C��C��A��C��C��C��C�8�C��C��C��A��C��C��C����?~�V��=���>�	��A��A��?��e���C��C��A��C�t8multisetsum_cons��V��C��C����CW�V���[���]�	��A2�g�e�g���	��B�B
�B������C��t8�B�C���C��C��C��B(�C��C��C��C��C��D�C��C��A��C��C��B6�C��C��A��B6�B>�C����A��C��C��A��C��C��BI�C��C��A��BI�BQ�C��J�A����C���C��B^�C��C��A��C��C��C��C��C��C��C��D4�C��C��C��C��C��C��C�add_comm_semigroupto_add_semigroup��Vadd_comm_monoidto_add_comm_semigroup��V��C��C��By�C�add_semigroup_to_is_eq_associative��V�C����C��C��A��D<�C��C��C��DI�DT�C��C��C��DV�B��D;�DY�C��B��C��B��DEadd_comm_semigroup_to_is_eq_commutative��V�DB�DO�C��J�C��Dg���J�C��B��C��DE�C��C��DH�C��B��Ds�DG�C��De�C��C��A��D8�DV�C��D��C��C����C��DV�D��D��D6�D��B^�D��D8�DO�J���D6�B��D6�C��D��B^�C��D6�D|�D��C��B^�C��DV�A��C��D8�DV�D��DZ�DI�DP�J�C��A��DZ�DV�DI�Do�D~�D��PInfo�	��ATTR����	�decl�prod_map_prod_map��d����e�,���.�_inst_1�=Vm�n�,_f������=��>6�.�a��>F�.���b���tt�>6�.�b��>F�>b�a�V�0i8�8��e�,���.��	��=V�	���	��,_�	��D���_x�U�>D�>F�D��	��V�>a�.��V��	��V�C��>F�D��	���>a�A���	��[�88tt�	�=��>6�D��	'�>6�.��	���>F�D���8����E���E�>���>��D��=��>��D��A�=��>��D��A�A���	���>F�D��-t�A%�E�=��>��E�>��-��8�=��E#�>6�>��E%�E&�>��E�E)�?�E�.�����>=8�E)�������E�E08������1�t�=���>a�D��	��[�t�u�\�h�[�>a�=��=��=���>M���=U���>���=�e_2�.��>8�/�?�_t8�=X�_���ED�EI�A�[��E?�>!��������8�=��>��E%�>��E%�>���a�m�Wih�>`�>a�D��	��[�A��.��[�V�	��[���>a�D��	��V�A��.��]�V�	��]�88��	�=��A��E��	��]�>��V�.��]�[�	��]�'a��
e8�A��E��	��[�E��.��_�[�	��_�3��$�t�����E����E��=��Ay�A��E��J��A��E��	��[�E��E�t��E��A��E��	��[�E����A��E��E��A��E��E��A��E��	��]�E��E���8�E��E��A��A��E��E��E��A��E��E��A��]�V�E�t8�B�E��E��B%�E��E��B(�E��E��E��E��E��A��E��A��E����[�A����E���Ay�A��E���[�E���E��A��E��E��E5�[�V�E��E�����[���-��]�0�-��]��=��]�=X�]�[�.��e�]�	��e�3�����F�A��]��8�F��@��]�@��]�@��]�=a�]�[�F�F�F!���=U�]��?��?(�	��.��.���8�/�.�����t8�=X����[�F�F"�A��e�]�F���B�]�[�F�F!�	����[�V���E��E����E��E���>,�V�E����PInfo�	��decl�sum_map_sum_map��d����e�,���.�_inst_1�?m�n�,_f�D��=��?��.�a��@�D�t�?��.�b��@�D�8��e�,���.��	��?�prod_map_prod_map���tmultiplicative�8�	q�8�PInfo�	��	ATTR�����prod_map_prod_map�4�ATTR�����	���
Strsum_map_sum_map�4�decl�sum_map_mul_left��d��e�,_inst_1semiring�b8s�f�@��-��sum����to_add_comm_monoid����,�a�������to_has_mul���������-8�F���F���F���t�F��,�8��e�,�	��F��	�8�	���	��@��
_x��-��F���F����-�	���F���F���F�����0i�F��F��-88�	�-��F��F����F��F��F�������F����F��-��,�������-c��F��F������F��������e_1�/�8�g�V�g�[e_2�0�8�0;�_��0��0�t8�_��*�_�4����0��F��F��3��F��F��,��,��,���F���������-��/�e_2�,�,Q�V8�-2�0�[t8�F��[��F��F��G�-����F��	
���F��F��F��3��F��F��F��F�������������e_2�1\8�g�[�g�]e_3�08�^���e�e�F��e���GL�t8�-2�e�A?���GL��F�tt�2>t�F��F��3��F��G�F��G/�F��G�G3�G9mul_zero���F�t���F��F���0���F���a�s�Uih�/��F���F����/��	��V�F��V�F��V�F��V����F��G��/�t�	�1\�F��V�F��V��,}�[�V�	��[�F��[�F��[�F��[�V�����G��G��G��������G����G��1\�-�V�-}�V�-�V�-c�V�G��G��J�G��G��G�8�G�distribto_has_add��V��to_distrib��V��G��G�����V���[�	��F��g�_�g�e�	��1�8�0;����,����G��t8�G���A����G���G��G��3��V�G��G��G��G�8�G��G��G��,��V�G��G��G����G�V��0��0�	��07�-2�1��et8�F��e��G��G��G�����[�V�G�t8�	��V�G��G��G�������V���[���]e_2�GG�g�e�g��e_3�G�8�GH�����-�����H#�t8�-2���6����H#��G��G��G��,��V�G��G��G��G��G��G��G��G��G��J�G��G��G��	�to_has_mul��V�G���J�HO�G����GB�V���[���]�	��GG�g�e�g���	��H�H!�F������HW�t8�H-�HW��G����H<��G��HH�G��G��G��G��J�G��HH�H
�G��Hr�H�t8�H�J�G�mul_add��V�G���J�G����G��G���0��V�G����PInfo�	��decl�sum_map_mul_right��d��e�,_inst_1�F�b8s�f�@��-��F��,�a��F��-�8�F��F�t��e�,�	��F��	�8�	���	��@��
_x��-��F��-�	���F��0i��F��F��8�	�-��F��H����F��F�t����H����H��F���G�H��F��3��H��G�F��G/�H��G�G3�H��G9�H��F��3��H��F��F�t�F��Gb�F��F��Gqtt�Ge�����F�t�G���a�s�Uih�/��G��/��	��V�G����F��G���	�1\�G��G��	��[�G������G��G������I���I�1\�G��G��J��G��G���G��I�I��G��H��I�G��H��I�G��H�8�I�I�G��G��I�I�I�H
�H��I�H�H�t8�H�I�I�H9�I�I�H<�I�I�I�I�I�G��I�G��HH��G��HN�J��HN�G���Hi�G��HH�H���Hladd_mul��V�G��J�G�����I�I��H��I���PInfo�	��decl�prod_hom��d��e�,_inst_1�4[8_inst_2comm_monoid�8s�f�@�_inst_3is_monoid_hom����5[�����t�-��tprod����F�t8�4���t��e�,�	��Ig�	��Ii�
��
�@��
�Is�S_x�U�/��It���G�t�;�tl���	�/��I��G��jt�I��j�/�t�7��V�4_�V�4a�V�;��4��V�I��I����I��I�������Ve_1�1d8�g�]�g�_e_2�0t8�0;����1���1��t8�G���g������1���I��I��3���I��kprod�����������Io�������I��,.�V�t�I��I��I��,\�,!��/��,a�I��/��,d�I��/��,g��I��I����Ih���G��0e_2�,�08�-2�04�_t8�It�_���I��I��3��/��I��G��	`�I��f�0�f��[�[e_1����]�]8�s�`�s�fe_2�
��^u_1��	j�,Q���,}������J�t8�_��������s�	j�,Q�����J�tt���0t�j�J�9��V�coe_map��V�t�coe_prod����I��prod_hom��V��I��I�t8�I��I���V��[e_1�4��3��_�]t8��I��I����V�I��I��J�I����4[�V��\��^e_2�c���f�et8�4��e���j�J�J4�9��V��,���I��PInfo�	��ATTR�����	��4�ATTR�����	���
Strsum_hom�4�declmultisetsum_hom��d��e�,�	��4�8�	��G8�
��
�@��
�-_���5���F�t�-��F���Iw8�5?��t��e�,�	��J��	��J��
��
�@��
�J��S�
�U�/��G���G�t�5?�V�t�
���	�/��J��I�t�J��j�/�t�8�V���V���V���V����V�J��J����J��J��I��J��J��I��J�listsum���-}��-��-c���F���J��I��J��J��J��I��J����G���G��0�
�I��I��F��_���I��I��J<multisetcoe_sum����I�listsum_hom��V��J��J�t8�J��J��JY�J��J��J\�J��J��J�J����4��V��\��^�
�c�Je�5?�e���j�J�J4�:P�V��J{�J��PInfo�
�decl�prod_hom_rel��d����e�,���.�_inst_1�Ii_inst_2�=U8s�r�����f���g��V�h₁t����V�I��V�Io�V��>H�>I�>J�h₂a�]b�]c�]���V�F����I����I����Io���_��t�A6�@��e�@��e�=a�e�]�+8��It�]�V�0���>���E�t���e�,���.��
�Ii�
�K"�
��
 �K$�
!�K%�
"�K&�
#�K2�
$�KL�Q����_x�`��I��[�1���F�V�F��l���	��Ke�Kf���Kj�Kk�Kr����Kx���Kx��I��_�I��_�I��_�Io�_�[�I��_�K��,.�e�_��kprod��]�F&�F'�F(�V�=_�]�K��/�e�]����_��ee_1�G�������e_2�.���8�=�����e��e�t8�_��*��������e��Kt�K��3��_�Kt�Ke�,\�,!�_�04�,a�K��04�,d�K��04�,g�_�K��K����Ih�_��1���Je_2�,�J8�-2�,Q����t8�It����[�Ks�K��3��04�Ks�Kf���K��f��e�e�f�����e_1�J�J8�s�	n�s�e_27�8�J
��,Q��,}����K��t8�J����s��,Q����K�����J-�K���Kr�K��9��e�J7�e�_��J?�_�[�K��Kw�K��F�Kw�Kj�/�/�]�>�/�L'�>�/�L'�>�/�]�K��K��FB�V�Kv�L2�=��>�Kv�Kk�K��L2�fa�e�_�f�
0���ee_1���
0����8�s�	n�s�e_2�K��^���.����.������LJ�t8�_���
0���s��.�����LJ������L>��Kr�K��L�coe_map��e�]��coe_prod��]�V�K�����K��K��
%�e���K��K��
%�e���*��L��prod_hom_rel���e�_�]�K��K���L|�L�t8���PInfo�
�ATTR�����
�4�ATTR�����
��
Strsum_hom_rel�4�declmultisetsum_hom_rel��d����e�,���.��
�J��
�?~8�
��
 �K$�
!�K%�
"�K&�
#t�,��V�F��V�G���@�@	�@
��
$�
%�]�
&�]�
'�]���V�-���-}���-���-c���_�K;t�CY�B��e�B��e�?��e�]�+8��F��]�V�KP�@[��KU��e�,���.��
�J��
�L��
��
 �K$�
!�K%�
"�K&�
#�L��
$�L��Kd�
(�`��J��[�Kg�?��]�V�Kl��
)���	��L��Ks�L��Kv����L����L���J��_�-}�_�-�_�-c�_�[�F��_�L��K�listsum��]�B��]�B��]�?��]�V�?��]�M�K���K��L��M�K��L��L��K��M���G�_��1���J�
-�K��K��F�����[�Ks�K��L�J��_�[�K��L��M�F�L��L��L2�M���?~�]��?��?(e_2�F5�F:�?�����V�Kv�L2�Lrmultisetcoe_sum��]�V�K�����L��L~�M
�L���*��MIlistsum_hom_rel���e�_�]�L��M��L|�L�t8���PInfo�
7�decl�dvd_prod��_inst_1comm_semiringa8su���has_dvddvd�comm_semiring_has_dvd��t�:�comm_semiringto_comm_monoid��8��
@�Mm�
B8�
Cu�Q��_x�_a���-��Mn��Mp��8�Iz�Mu��tl�a�h�.��	�M��M���t�M��7���4_��4a��4c��M��4���M�t���M��M�chas_dvd��g�V�g�[e_2�4��g�_�g�ee_3�<�8�d����Mn�����M��t8�p���A����M���M�88�\�8�M��M�����M��M��6�M����4[���W��\e_2�
����`�_t8�;���M��M��6�9��t�9���M�tlistdvd_prod��8t8�PInfo�
?�"decl�le_sum_of_subadditive��d��e�,_inst_1�J�_inst_2ordered_comm_monoid�8f�.�h_zero�2F�u�����4�t�,���F���-c��-e�8h_addx�y��1��1	��1����������V�J�8�-��J��J��J��-e���B�s�U�N��J��G��N�/���e�,�
V�J��
W�M��
Y�.��
Z�N�
[�N'�
^�U��V_x�W�1�V�1	�V�1�V�N�V���5?�[��G��-e�V��G��le_of_eq���N��J����N*�/���ta�Vs�\ih�1�[�1	�[�1�[�N�[���:C�V�G'�-e�[��0�	�1�]�1	�]�1�]�N�]�V��5?�_�[�$t8�L��-e�]�V�0�Nv�Nr����_���_���_���_�[t�Nt8�N~���N�N���_�Nw_a�_��1�_�1	�_�1�_�N�_�[�V�K�]���t�J��-e�_�[�1��V�N��N��1e�N����N�N��8��_�[t8�	�N��N��N|�,��]���08���N��N��0��0�N}_a�0��N��V���e���e���e���e�]��N�t�N��N��N����N��N��H
�_�]�t8�	�N��N��-�]�-}�]�-�]�-c�]�N{���N|�N����N��N��0��]�N�_a�]��N��N��,��_�1��N�t�N����N��N��H�]�N{���N�le_trans��]�Np�N��N���N��N����N�add_le_add_left'��]�V�O�N����PInfo�
U�%decl�abs_sum_le_sum_abs��_inst_1discrete_linear_ordered_fields9�.t�t�t�zt��t��tordered_ringto_ordered_semiringtlinear_ordered_ringto_ordered_ringtlinear_ordered_fieldto_linear_ordered_ringtdiscrete_linear_ordered_fieldto_linear_ordered_fieldt8abstdecidable_linear_ordered_comm_ringto_decidable_linear_ordered_comm_groupt�
sto_decidable_linear_ordered_comm_ringt8�5���t�OE�OU�/A�OR��
j�O0�
l9�le_sum_of_subadditivett�OT�OE�ORabs_zerot�OQabs_addt�OQ�PInfo�
i�,decl�dvd_sum��_inst_1�Mma8su�x�H���Mn��Mp���8�Mt�5?��	���
Gto_semiring��8��
}�Mm�
~8�
u�=v_x���
���
��-��M��8�Ov�:�O{��O}��8_x�
���
�����Owdvd_zero��tx�s�ih��
���
��%C�Mn�V�Mp�V��8�O��J��O{��O}��8h�
���
�����t�Mn�[�Mp�[�V�8�	�O��J��O{�V�O}�V��O��O��N�J��J��J��O���O�t���O��O���V�O�_a�V��O��N?�O{�[�O}�[�V�$��O����O��O��8��V�O��tdvd_add�V����O���	��V�t8y�Vhy�	.�������8�����6�4���O���_�]8���e�O��O��PInfo�
|�0decl�join���9��5?�����b�PInfo�
��;VMR�
�VMC�
�	�;��E������doc�
�`join S`, where `S` is a multiset of multisets, is the lift of the list join
 operation, that is, the union of all the sets.

    join {{1, 2}, {1, 2}, {0, 1}} = {0, 1, 1, 1, 2, 2}decl�
�equations_eqn_1��7�P�
���P��\�P�P#�PInfo�
��;ATTR����
�EqnL�
�SEqnL�
�decl�coe_join��L:�P"8B99E�P,�P.H�P,�P..9�/L<9NNlistjoin8���
��P*�
�brec_on
�<�
�<v�P"tBuuE�PJ�PLH�PJ�PL.u�/Lwu���P?t�
��PH_F�
�below
�w�
�w��P"�B��E�Ph�PjH�Ph�Pj.��/L�����P?��
���
��Pd��
����P"�B��E�P��P�H�P��P�.��/L���N�N�P?�����
���
��Pd���
����X�P"�VB�W�WE�P��P�H�P��P�.�W�/L�!�W�	`�	`�P?�V�X�P��P��P�8�	`�P�88�
��Pd��
��P��
?�P"�B�U�UE�P��P�H�P��P�.�U�/L���U�2�2�P?��R����
?�P��P��P��R
��Annotinnaccessible�P�S�U�P�L_hd�L_tl�P��
��Pd�!�
��!�
[�P"�[B�\�\E�P��P�H�P��P�.�\�/L�*�\�i�i�P?�[���!8���
[s�\���3��P��Q�Q8�Q�i�Q
8���\�\�Q�Q�Q�<l�
��*���P"�]B�^�^E�Q)�Q+H�Q)�Q+.�^�/L���^�3�3�P?�]8�rec��*���Q'���<|�c�*�d��ih���<~�<�
����
��P"��B����E�QK�QMH�QK�QM.���/L����B����E����H����.���Qb�P?��8�<|8�<��<�QA�Qv�<|8�PInfo�
��=decl�join_zero���V�P#�u�P�h�w����Q��PInfo�
��BATTR����
�ATTR����
�decl�join_cons��sS�P.v�PI�u8��PI��
��
��P.�8�u��8�PInfo�
��DATTR����
�decl�join_add��S�PT�P.v�PI���PL��u8���PI8�Q���
��P�
��P.�:�u��8�PInfo�
��GATTR����
�decl�mem_join��aS�P.s���Q��!�su�����Pj���8H�Q��\��
��
��P.�u_x�PLs�3�Pg���
����������8�
��Q��!��	s���PI�u�PL�hu�!��
�u���Q��u�Pj�h��
��Q��\����Q����Q�s�
��
���<�Q��
���Q����A�
��f��tu�g��g�e_2�8��g�U�g�We_3���������R�t8�<��3���R���88�$�Q��A�
�t���R�
���8�Q��
���Q��!��
�u�
��
����gu����g��e_1�2�g��8�7�g���t8�
>�Q��R/�Du��u���u�Q�h'�Q��
��Q�8�u�Q��h��!�t��u�
��
�u���RQ�
�p�q�0J���X8����t�
�t�0iexists_prop_of_falset8�Q��
��Q��\���X�Q�����Rh�E��K�Q��
�����V�*����!�au�
��
�����
��
�exists_falseu���Q�����
����	�zu�{�Pj�s�?�P"����
�������P����8�
��R���8s�!��P���t8�
>�
������U�P����U��U�t�
��R���8����R����	�u�z��{�Q��s�!��P��
>�
�����R�8�
��R��R�s���P��R�t8���
��U����W�P����W��W�t�
��R��	-�V8�{�PL���R���u�z��{�Q���R��Lu�zu�R��zu�{�Pj��zu�L�Pj�{�Pj�R��{�Pj��{�Pj��R���R����
���
�R��!���imp_congr_ctx_eq�R�s�?�R���8���
�����R��R��
��S�R��S��<�R��R����R��R��S���R5���R9�
��2�g�U�8�7�0�t8�
��R��S�D���������R�h�R��R�����S�
�����S4�Sexists_prop�R��!�_h�S��R�s�6�RM�
>�
���
�R�t���SE�
>����SI��<�R��SL��R��SE�!��P�8�SL�SV�!��(��SW�SY�f�����g��g�V�
��6��g�^�g�`�
����d����1����Sd�t8�p���g������Sd��������R��S\�
��t8���S]�SY����t�SW�	��RM�RM���RM�SX�SK���SX�SK�R��SP��R��6�
>x�x�U�
�X����
>x����U�
�R�����SP�S��
>�
���6�
�)e��SH�SI�S����R9���S!�
��2�08�7�1�t8���R��S��D���������R��
��R��R�����S��
����S��
�6�S��SF�SH�S��S��
�R��SH�S����S��S��S;�R��SH�
��R��S����R��S��_�U�t�SH�SH���SH���S��S�or_and_distrib_right�S��SF�SH���
>�
���6�S��S��S�exists_or_distrib���
���S��SN�	��
>�T�RM���
>a��S��
��U���
���SHtexists_eq_left���Tt�SO�SO���SO���SM�SL����SL���S�forall_true_iff
�S��au�R��R�forall_const�R�u��t���
��PL���T>��PL��u���PInfo�
��JATTR����
�decl�card_join��S�P��6�P+�sum
���add_comm_monoid�map
9��6��
��P�9_x�P.��V�Q��T\�T]u��V�	��6�P+�u�P.�h9�T\�T`�Tt����Tz���Tz�����Tv�Q���Tv���Q��9��ue_1����t8��Tu���R"8���Ty�Q���Ty�T\�&E�O��
���
��T[����
���&"��&"e_2�&78�-�&"�t8�TZ��T[�Tx�&E��
9��6�	

��T[�2���	�z9�{�PL���h�Q��T\�T]���h���R��St8�T\�T]����T�����T����	�9�zu�{�Pj����R��T\�T�����R��T\�T]�����R��{�P.���T���9�R��T��L9�z9�T��z9�R��z9�L�PL�{�PL�T��{�PL��{�PL��T���T����R�8�T\�T�8��]�T���h�Pg��8�T\�T��U�T��T����T���U��\���T��U!�T��T����U�U"���U�h�l�Q��U"�������
����U�t8�(�U�U+�S��8�!-�8�Q��U�U$���U�T\�&M���T��Z�!C��
��T����T��T��U�UH��
���h8�	
��T[���T�����Z�!Cadd_left_cancel_semigroupto_add_semigroup
��to_add_left_cancel_semigroup
�����T��Um�T��T�add_left_inj
��Ui���T��T����U�imp_self�T����
�9�R��T��T>�T�9��8���
��P.���TI�P.��9���PInfo�
��NATTR����
�decl�bind��d��e�,s9f�t�,R�,R��e�,�
�9�
��U��join�t�,~�,R8	�PInfo�
��UVMR�
�VMC�
�	�U�
��
��e��b�
�doc�
�`bind s f` is the monad bind operation, defined as `join (map f s)`.
 It is the union of `f a` as `a` ranges over `s`.decl�
�equations_eqn_1��d��e�,�
�9�
��U��,|�
���d�t8�U���e�,�
�9�
��U��,��U��PInfo�
��UATTR����
�EqnL�
�SEqnL�
�decl�coe_bind��d��e�,l<f�t�,��,|�U��'�a��,k�-�,�listbind��t8��e�,�
�<�
��U��	�U��U��,��Djoin�t�,��,�8���U��U��0��,��U�_a�,���,��U����|t�
���,\�,"�,��,a�,"�,��,d�,"�,��,g��0i�,k�U���t8�U��,k���U��U��Dbindequations_eqn_1��t8�	�U��U��U��,\�,!�,R�,Q�,R�,a�V
�V�,d�V
�V�,g�,R�
�map���,��,R�,��U����U��V�0��,R�U�_a�,R��U��,k�U���,l�,]8t�U����U��V�3��,R�V�U��coe_join�t�U��	�V�U��U��V�,��,Rfunctioncomp����,��,R�,�8���V�VI�0��V
�V_a�V
��U��U���,\�,!�,_�,Q�,_�,a�VQ�VS�,d�VQ�VS�,g�,_�V�,]�,_�,k�V'�U��VP�V\���V�VFlistmap_map����,��,R�,�8�,��U��PInfo�
��XATTR����
�decl�zero_bind��d��e�,f�8�,��,��U�t8�A�,���e�,�
��V��,��V��PInfo�
��\ATTR����
�ATTR����
�decl�cons_bind��d��e�,a8suf���,_�,��U��T�-�4�U�8��e�,�
�8�
�u�
��V��	�V�����V����V��,��4�4��V��,��V��VP�,��,_8�V��V����,_���,�e_1�-8�g�/��g�Ge_2�0*8�0;�0��I���I��t8�G�0�g�0����I���V��V��3��,_�V��VP�,��,_�4�V��V��V��VP�V��T�V��
�����T��VS��,Q�,�e_1�,�,Q�-8�-2�,Q�/��/�t8�U���V��V��H
��,_t8�
����4�V��V��V����H�,_���,����-e_2�,�/�8�g�G�g�0e_3�I��GH�04�04�-�04���W�t8�I��g�04�1����W��-�4�4�,��,_�4�V��V��V�8���,��-�-}�,_����,_����,_�-i��4�V��W5�V�����,_�W0�V��4�4���V���0��,_�4���PInfo�
��^ATTR����
�decl�add_bind��d��e�,s9tuf�V��,��U����-�U�t�V���e�,�
�9�
�u�
��V��	�WX����WX���WX�,��VP�V�t�We��Wc�,��-�We�V��Wk�Wg�V��WR�Wk�V��WR�VP�-�VS�-�,_�Wd�V��Wk�Wr�VP�V����Wx�V����V��W{�Ww�-���,_t8�
����Wd�V��WW�Wk�W�WU�We�V�t�V��V��W&���,��W3�We�V��W��Wg�W=�We�We���Wg��WE�We���PInfo�
��aATTR����
�decl�bind_zero��d��e�,s9�,��V�at�-��,���e�,�
�9�	�W�����W����W��,��,��,�����,����,Re_1�,�8�g�,��g�-e_2�W�0;�G��G ��G �t8�G�G�g�G����G ��W��,��3��,��W��F��,��-l�,��,��W��,��F��,��-m�W��U�8�W��W��V�t8�W�����,Q�,���W��,R�W��W��
��8�W��	��t�,��-l�,��,��,��,��,����W���0��,��,����PInfo�
��dATTR����
�decl�bind_add��d��e�,s9f�U�g�V��,��WTa��-�,��-��0i�-�-�WT8�WU��e�,�
�9�
��U���V��	�X*����X*���X*�,��F��,_�-e�,_�-g�,_�W/�V�8t�X>��X5�,��-�X>�X;�Wd�XE�X@�V��X%�XE�V��X%�X;�V��X$t�-�W*�-�,_�-c�,_�X:�X;�V��	���0it�X;�V��	���-t�XL�VP�XN�XO�W��X$�W��VS��VS�,��VP�X;�X��XN�	����,_�X:t�XW�X\�X)�XE�W�X'�X>�V��X'�VP�X=�X>�W�8�Xm�X=�WU�XD�V��WU�We�XD�W��Xm�Wd���,��W3�X>�XD�X��X@�W<�XD�X>�X>���X@��WE�X>���PInfo�
��gATTR����
�decl�bind_cons��d��e�,s9f�-�g�V��,��WTa��,��0i�-�-�.�WU��e�,�9��-���V���_x��,��U������,����0i�X!�/��X�8t�	�,��U���X��-�.��X�����X����X��,��.�.��V��X��.�
�����X��X��.�V��X��-�.�.�.�W�X��.�-���8�X��.�X�����,_�XS�.���X���WE�.���	�z��{���-�U������,�����-'�/��Yt�W�U��V�����V�G�����-�/��-��/�����Y�����Y&���	���z��{�U��W�Y�Y�Y�Y�Y,��G �U��[�V����[�,��[�����-�G�-�V�G�����Y6�����z��{�U���L��z��Y%�>w�z��L��{��Y$�{���{���Y$��Y
�-'�Y�Y���S	�Y�-�Y�8�Y�-'�/��8�Yct�Y^����-���/�e_1�G"�g�0�g�0e_2�07�0;�1���,�1���Yp�t8�G�1��g�1�����Yp��Y�Y�,��-�Y�Y�Y]����-����-�-e�-�-g�-�-i��Y�Y_h�Y^��Y#�W�J�J��Y��W�Y�J�Y�Y8��Y8�Y��Y��Y��W�Y���Y��Y��Y����/����G��V��g�0�g�04�	�Yp8�0;�J��,�J��Y��t8�G�J�g�J����Y���Y�Y��J�Y�Y�Y��J�Y��Y��Y��Y�Yt�Y��Y�Y��
���V�t8�Y���H�/����G���0e_2�I��g�04�g�1�e_3�Y�8�GH�J�J�-�J���Y��t8�-2�J�g�J�K����Y���Y�Y��Y��,��/��Y��Y��Y��������J�Y��Y"�Y��J�Y"�Y��Y�Y��Y��Y��Y��Z�Y�Y��Y��Z�Z�Y��Y�Z�H
�V��t8�Y!�Z�Y���Z�Y��Z����Ve_1�I���0��04e_2�Y��GH�J�J�,�����Z1�t8�-2����J�J���Z1������J{���Z�Y��J�Y�-}�/�����/��Y��/��-e�/��-g�/��-i��Y��ZY�J�Y��Z[�ZZ�Y��Y�add_left_comm��/��ZV�Y��J�Y��Y��J�J�Z�J�Z_�Y��Y��/��ZV�Y��Y����Y��Y��N�����Y��Y����W�Y�ZM�W+�/��W-�/��ZS�J�Y��Z��Y��W:�/��Z��Y��J�J���Y���0��/��J���Y_��T2�Y^���	�����	���U���?p��?j���PInfo��kATTR����decl�mem_bind��d��e�,bsuf�V�s�0��V���a����%qH�%q�0�����e�,��u��V��	�Z�sExists��,_�
��,_�
�	
����
���-�0i8�0������
�%q�0��-���Z��Z��<�Z��Z���Z��Z��
��,_���-��,��V��-��,��,��,�8t�
��Z��0�8�Z��Z��0��V��Z��f������,_�g��g�e_2�F��g�G�g�0e_3�I��0;�04��1����[�t8�G�g�04����[��-�tt�,��t�V��V��W&���Z��Z��
���t�V����g�,_����g�,��e_1��u_2*�g�-�8�_�*�g�/���t8�Z��/��Z��Z����F�,_���,_����,_�Z��
��Z��Z����,_�Z��
��,_��[D�
�Z��Z��Z����[D�[K�S;�Z��Z��
��Z��Z����Z��Z��.��,�8t�Z��Z����Z��Z��Z����K#��a��e_1�2���8�7��V��t8�	)�Z��Z��D���������Z��
��%q�Z�����Z������[�Z��S;�%q�Z��	�Z�s�Z��
��,_�	
x��
�Z��Z��Z����Z��[��<�Z��[��[<�Z��[��[B���,_�
�	
�
���Z��Z����,_�[��
��,_���[��[�iffsymm�[��[�exists_and_distrib_right��Z��[��Z��Z����Z��	�[�s��y��Z��,�x�,��
�
�(�-���0��Z����[��[��.
�Z�x�,_�	
y��[�_a��s�[��
��,������
�
�%��W�8�1��8�	
���Z��0��0i�.�[����[��[����[��[�exists_swap���,_��#�,_�[��	�[�����[����[�s���!��Z��Z���<�[��\�[x�[��[��[}����[��[��!���[��Z��[��
��,�x�-�
�Y��[��Z��\�[����,��[��
�[��0��\���[+���[-��[,�[28�[1�W��t8�Z��G�[��\�[?�,����,���[��\�"�,����[��\and_assoc�0��(�[����[��'�,��[��\�\exists_and_distrib_left��,��%q�'�,��\�
��%q�%q���%q�[��\F�Z����[�a�,��\�*�-�\�*�,��0��-exists_eq_left'��,��\X�-�Z��Z��[����\�\����\���PInfo��oATTR����decl�card_bind��d��e�,s9f�U���-��U��T\�T]�������,R��-�8��e�,�-9�.�U��	�\�����\����\���T\�\~x��-��-8�\�����\{�\����\{�T\�
��
�,R��-��U��\��\��-��U��\����,R���,_e_1�,�8�_��-�t8�E$�U��U��V��t8�
��t�U��T��\��\���&"�\��\��\����
��,R��-�8��
���\��\�8�������functioncomp_app���,���-��t8�\��\��T��\��\��\����\�����\����PInfo�,�sATTR����,decl�bind_congr��d��e�,f�V�g�U�m��a�H�-��-��B�,��X�8��\�t��e�,�4�V��5�U��6��	�]����]���]��\����S	�\��,��U�t�]8�\�����\�_h�\���]�,��U���Z�����8�]�Z�t8����,����-e_1�W�g�G�g�0e_2�I��[�05��05�t8�G�04�[���05��\��]!�3��,��\��]�Z��8�]!�V���8���V���V�e_1�,�V�8�-2�,Q�G�Gt8�U��V�]B�] �0d��,���]8������.�������8���*��]a�*��]�]%�]Ht���]"�]!��0��,��]!���]��T2�\����PInfo�3�vdecl�bind_hcongr��d��e�,β'�,muf�V�f'���,_h�/�hfa�H�%��/��G��/��B�/��Y���-�Y��t��e�,�>�,�?u�@�V��A�]��B�/��C�]��/��>�,�A��[�,��C�D�]�E�/��/��04�#�,_���0�U��_�]�V��,R�]�t�V8�A��V�G�C�D�[�E�0�0��0���	�0�U��]�[���0�]�8����]����]��0*�]��]���]��0�]��0�]��]��0a�]��]��bind_congr��]�[�0g�0j��
��D�]�E�/��]��04�B���]�D�_�E�0s�Yp���0|�D�]�]��D�]�E�/��05�#�B�D�]�0��0���0�0i�/��I����0i�0����]��]��0��0���0i�0�]��]��0��]����]��]��0��]��]����]���0��]����8t�PInfo�=�ydecl�map_bind��d����e�,���.�mun�V�f�.��.��.��X�t8�bind���ta��.�8�0i��e�,���.��Hu�I�V��J�.��
_x��.��^2�Y�^.���L��D�t�t�	�.��^)�X���8�^0���^4����^P���^P�.��=��.��=���^Y����.����.�e_1�=��g�=��g�>�e_2�.��=�8�=��>��EN��EN�t8�=��>�g�>����EN��^L�^Y�=��.��^L�^)�G�^Y�f�@��f�D�e_1����K%8�s�G�s�0e_2�I��^���04�>�.��_�]��^��t8�_���
0�_�_�s�04�?���^�����@��^K�G�X���8�������^O�^Y�
�����^4���^[��>,�.��^Y���	�z��{�U��=��^B�Y1�^.�V��L�V�D����.��=��^��YC�^.�[����L�[�E��������^����	���z��{�W��^��^��Y5��^��^��>��^��]��E���^.�]�V�E��L�]�E��������z��{�W���L��z��^��YM�z��L�U�{�U�^��{�U��{�U��^���^����S	�^��=��^B�Y��8��^��_�^��^�����^�_h�^���^��^��^����_��_�^��B��=�����_�^�8�^��_)�_���=����>��N�^`�g�>�g�?�O�.��?(8�=��F2��F3��F3�t8�=��F2�g�F2����F3��^��_)�=��=��^��_&�^��Y58��_)�_K�^��Y?���_M�_O�f�0�f�J�P�^�J	8�s�04�s�1��Q�Y��^��J�F2�.�������_]�t8�^��J�s�J�F6���_]����^��0��YC�_S�Y��[�Vt8������V�����_M���CW�=����>����=�e_2�EP�g�?�g�?(e_3�F5�A3�F6�F6�B��F6���_��t8�F7�g�F6�.������_���_$�_�_�>�=��_�_N�_(�^��_)�
���[�t8�^����^��_"�B��=�����=�����=��E���_�_(�_��_����=��_��_(�_�_���_��>,�=��_���_
��T2�^����	�����	���W���?p��Z����PInfo�G�}decl�bind_map��d����e�,���.�mun�t�=�f�@��.��bind�����F�t8�^1a�t�-��e�,���.��Vu�W�_��X�@��
_x��.��_����F�t�^A�Z���0it�	�.��_��F�8�^N�`����`���`�^[��^w�`�^Y�^z�`�_��G8�^Y�
��,��
��-e_1�W�
���V�>��
���[�=�e_2�^��]�>8�^�����_�?�>�_��_�]��`7�t8�_���04�
��`3�?���`7��F��G�Gn88�^����.�8�
�����8�`�^Y�^��`�^����	�z��{�U��=��_����G���^��Z�V���^��_��V��G���^��Z�[������`|���	���z��{�W��^��`r�G���^��`w�>��_��[�V�0��E���^��Z�]����^���_�z��`{�YM�z��_�{�U�`z�_�{�U��`z��`p���S	�`p�=��`i�G��_��_�`n�`p����`p_h�`p��`y�^���J�`���`��^��_%�`��_'�`w�`��`��_G�`t�`��_J�`t�`��`r�G���`��`��`r�Hr��`��
��G�
��0�\�I��
��`3�
���e�?(�]�^����F28�`2����F6�F2�_�������`��t8�`>�J�
��`��F6���`���G��Hr�Hz���^��`,��
����V��J�G���_��`��`��_��`��`��`��`x�`��_��`w���^��_��`��`��a	�`��_��`��`��`����`���_��`����`���T2�`p�_����PInfo�U��decl�bind_assoc��d����e�,���.�suf�V�g���.��.��_��^+�^1a��`
�0i8��e�,���.��`u�a�V��b�a1�
_x��.��`
�Y8�^A�c��`i�tt�	�.��_��^K�^N�a7����aO���aO�^[��^w�aL�^Y�^z�aL�`(�^Y�`M�^K�G�^��`T�`Z�aN�^Y�^��a7�^����	�z��{�U��=��`i�Y1t�^��c�V�`r���^��`r�YC��^��c�[�`��������a����	���z��{�W��^��`r�^���^��a��>��`��^���^��c�]�_��]�[����^���_�z��a��YM�z��_�{�U�a��_�{�U��a���az���S	�az�=��`i�_t�_�ax�az����az_h�az��a��^��`r����a���a��^��_%�a��_'�a��a��a��_G�a|�a��_J�a|�a��`r�_M��a��a��`r�_S��a��`��YC�_S�_~���`���
����V����_M��_��a��a��_��a��a��a��a��a��_��a����^��_��a��a��a��a��_��a��a��a����a���_��a����a���T2�az�_����PInfo�_��decl�bind_bind��d����e�,���.�mun�,Rf���`S�.��^1a��`
tb��D��_�8b��^@�a��D���e�,���.��gu�h�,R�i�b�
_x��.��^A�j��`i��k��C�b�l��^�8�m�V�D�t�	�.��^N�b�b�l��^@�	'�b!����bA���bA�^[��^w�b;�^Y�^��j��b�-�b@�^Y�^z�b@�b�l��A�^Y�`M88�,��,�8�b?�bS���������.�����b>����A�l��^����b!�
�����8�^����	�z��{�U��=��^��j�V�`r��k�V��b,�l��_'�m�[�E��^��^��j�[�`���k�[�'a�by�l�V�^��&�m�]�3�����b����	���z��{�W��^��^��b��by�l�V�^�8�b��>��^��j�]�a���k�]��b��l�[�^.�_�[�E��m�_�3��^���_�z��b��YM�z��_�{�U�b��_�{�U��b���=��^��j�V�by��b����S	�b��=��_�b|�b,�l��^��b�b�����b�_h�b���b��^��by�J�b���b��^��_%�b��by�l�V�^�t�b��b��by��V�b��b��_G�b��b��_J�^��j�[�b���_%�b�t�_'�b��b��_��b��_��b��b��_��b��b��b��b��b��_J�b��by�l�V�B��>��_#�V�E��b��_%�by��V�E��b��`����,��G��b��c�b^�V���V�>����V�b����V�b��b���b��l�V�_��]�V�t�b��
����V���c�b����^��_��b��b��c.�b��_��b��b��b����b���_��b����b���T2�b��_����PInfo�f��decl�bind_map_comm��d����e�,���.�mun�,Rf���@��.��^1a��.��bt�bb��.��b!���e�,���.��qu�r�,R�s�cV�
_x��.��^A�t��D��b-��b�u��D��b38t�	�.��^N�cY�b�u��c\�	'����cy���cy�^[��^w�ct�^Y�^��t��.��-t�cx�^Y�^z�cx�bT�^Y�b[�cw�bS�ba����cv�bd�u��E�b!�bp�^����	�z��{�U��=��^��t�V�D��bz��b,�u��D��b8�^��^��t�[�E��b���by�u�V�E��b��&����c����	���z��{�W��^��^��c��by�u�V�c�8�>��^��t�]�E��b���b��u�[�E��b��E��^���_�z��c��YM�z��_�{�U�c��_�{�U��c���=��^��t�V�D����c����S	�c��=��_�c��b,�u��c����c�����c�_h�c���c��^��D��J��c���c��^��_%�c��by�u�V�c�t�c��by��V�c��c��_G�c��c��_J�^��t�[�E����_%�dt�_'�d�c��_��d�_��c��c��_��c��d�c��c��c��_J�c��by�u�V�A��E��c��_%�D��c��c��c�c��d �c���V�c����V�A��c�c��u�V�E��b��t����V���c�c����^��_��c��c��dA�c��_��c��c��c����c���_��c����c���T2�c��_����PInfo�p��decl�prod_bind��d��e�,_inst_1�Ihsut�V��2F�It�t�V��dk�,�a��It���-8��e�,�y�di�zu�{�V��X�_x��-��do�X��do�,��|��Iu��0i8�	�2F�dk�X��dk�dr�����d����d��2F�K'��I���Io�t�d��������e_1�-�8�g��g�Ve_2�I��0;�]��0���0��t8�G�]�<����0���d��d��3���d��dk�.�d����Ih���,���-e_2�W�-2�G�Vt8�It�V�t�X��.�X��	
��t�d��d��d��d��d��d��d��d��.�X��dq�d����d���0���d���a�s�ih�-��d}�Y�d}�-�|��I����	�/��d��Y!�d��/��|�V�d���������d����d��/��F��I��I��I���d��J�d��d�8�e	��I��d��e	�I��d��e�d��Y��e	�e�d��Z�e�I���Y!�Z�Z(�	!����J�Y����GB��g�V�g�[e_2�F��g�_�g�ee_3�G��GH�����F������e(�t8�-2���6����e(��e�e�e�J{�e�e�e�d��e	�I��d��d��Y�e�e�e	�e�d��eL�Z!�d�t8�	����e�e���e��0���e	���PInfo�x��ATTR����xATTR�����x�4�ATTR�����x��
Strsum_bind�4�declmultisetsum_bind��d��e�,�y�G�zu�{�V��2F�F��t�V��ev�,��|��F���-8��e�,�y�et�zu�{�V��X��}��-��ey�X��ey�,��|��F���0i8�	�2F�ev�X��ev�e|�����e����e��2F�N�N�Nt�e���d��e��e��d��e��ev�.�e����G���,���-���W�d��G��t�X��.�X��G7�t�e��e��d��e��e��e��e��e��.�X��e{�e����e���d��e������������-��e��Y�e��-�|��G����	�/��e��Y!�e��/��|�V�G���������e����e��/��N�J��J��J���e��J�e��e�8�e���I��e��e��I��e��e��e��Y��e��e��e��Z�e��J���Y!�Z�Z(multisetsum_add����J�Y����H��g�V�g�[���F��g�_�g�e���G��e&�-�����f
�t8�e2�f
��e��e��e��J{�e��e��e��e��e��I��e��e��Y�e��e��e��e��e��f-�Z!�e�t8�H���e��e����e���ea�e����PInfo����ATTR�����decl�product��d��e�,s9t�,�multiset�prod��t��e�,��9���,�multisetbind���fS8a�multisetmap����fQ��prodmk���8
�PInfo����VMR��_lambda_1VMR��_lambda_2VMR��VMC����snd�_freshD�6�VMC����	���_freshD�6����bVMC���������e����
�doc��The multiplicity of `(a, b)` in `product s t` is
 the product of the multiplicity of `a` in `s` and `b` in `t`.decl��equations_eqn_1��d��e�,��9���,����d�fT�����t8�fi��e�,��9���,���
�fT�ft�PInfo����ATTR�����EqnL��SEqnL��decl�coe_product��d��e�,l₁<l₂�,!8�fo�fr�'��,����list��fS�fT����f��fT����f��fT���fSlistproduct��t8��e�,��<���f��	�f��fo�f[�'�����ff�,k8�f����f��f���
�
�fT�f�_a�fT��fn�fP�f`�fp���U��f��f��f��f`�f��f��f��f��f��f��f��f��f`�f���t8�f��f����f��f�����t�'��f��	�f��f��f�listbind���fS8a�listmap����f`�fe8���f��f��f��f��f�_a�f���f��fY��f`�U�����f]��fQ���fb���U�t�f��f��f����f��f�listproductequations_eqn_1��t8�	�f��f��f��
���f��f����f��g�f��f�_a�fT��f��f��f���f`t����f���f��f�t�f����f��g����fT�g�f��coe_bind���fS8�f��	�g��
�fS�f��f����g�g>��g�fo�f��f��g>���fT���f�e_1�fn�fP�f�8�g�fP�fQ���g�fP�fQ�V�e_2�fn�fP�fQ�[�V8�^�*�fP�fQ�]�[��fn�g[��g^�t8�_��*�g[�g�g[����g^��f��f��Y��fT�f��g�f��
���
��e_1��
����gQ�
���V�gTe_2����[�g[8�^����]�fP�fQ�_�]�g[�fY�]�gZ��g��t8�_���^�
��g��g����g���'��'����'��f��g��������f�����f�����g����}����f`�fe8�g5�g�f��g5���gE�g>��
�fS�f��f��K�
�fS�f��PInfo����ATTR�����decl�zero_product��d��e�,t�,Q�fn�fP�fQt8�fpt8�A���g����g���e�,���g�rfl��g��g��PInfo����ATTR�����ATTR�����decl�cons_product��d��e�,a8sut�,R�f��f��T����f����f`�fa�fdt�f�8��e�,��8��u���,R�	�g�����g����g��f��g��g���h�f��g��f�8����f�8�h�h	���f����gHe_1�fn�gN8�g�gQ�g�gTe_2�g^8�gX�g���fn�g���h�t8�ge�g��g�g�����h��g��h�gw�f��g��f��T�h�g��ht�h�f����T�
����f`t8�h�g��h������f����gH���gNe_2�fn�gQ8�g�gT�g�g[e_3�h8�^���fP�fQ�e�_�hV�g��hV���hZ�t8�_���hV�g�hV�fP�fQ���e���hZ��g��g��g��f{�f��g��g��h�h>8���f��g�����f�����f�����f��E��f`�g��h�h��h	����f��h��h�g��g����h	��p��f��g����PInfo����ATTR�����decl�product_singleton��d��e�,a8b8�fo�fr�k�t�,�t�-��$��fS�fb�t8�g��fT�g��fS��e�,��8��8�g��fT�h��PInfo����ATTR�����ATTR�����decl�add_product��d��e�,s9tuu�,R�f��f����g��f�t�g���e�,��9��u���,R�	�h�����h����h��f��f�t�h�h���h��f��g��h��h�h��h��h1�h��h��h4�h��f����h�h��h>���
����f`t8�h�h��h��hu�h��h��h>t�g��h�h~���f��h��h��h�i�h��h��h��h����h���h��h����PInfo����ATTR�����decl�product_add��d��e�,s9t�,�u�,R�f��h��-8�g��h�8�h���e�,��9�t_xu���,R���,_�gI�fp��t�X!8�g��gH�g��f��i.8�i.t�,�u�,R�g��f��f���iats�IH���,_���,��h�fp��t�-'8�g��gN�g��gM�iI8�iIt�,�u�-�	�hN�fp�V��$r��Y8�g��gQ�g��gP�i[8�i[�hN�ib�f]��gP�fb�V���i]�iY��i]�if���ig�iu�f��gQ�i^_a�gQ��gU�fp�[�V�$��Y?t8�g��gT�g��gS�it�i8�gU�i����ig�is�cons_product��V����i]�	�iu�hN�ip�ib�iq8�iq�if���iu�i��iz�ir_a�gQ��gU�i��f]�V�gS�fb�[�V��i��i}��i��i��gU�i��i����iu�i��D��	�i�����i����i��hN�i��i���i��hN�i��ib�i��ib�in8�in�i��i����gQ���gTe_1�h�g�g��g�hVe_2�fn�he8�gX�fP�fQ������fn�i���i��t8�ge�i��g�i�����i���i��i��gw�gQ�i��i`�h��gQ����gQ����gQ����gQ����gQ�h��gP�i��j�i��i��i��i��ib�i��i��j���hL�gQ�g�gT�g�g[e_2�hR�g�hV�g�hee_3�i�8�hS�fP�fQ�����j�g��j���j�t8�ha�j�g�j�fP�fQ�������j��ia�io�i�������gP�im8�i��i��f{�gQ�i����gQ�j�i��i��i��j9�i��i��jE�i��j�i�����gQ�j�i��i��if�i��i��if�i��i��i��j�j�i��i��ja�je�j�i��i��i��jc�ja�ib�ji�i��i��jl�j9�ic�ji�i��ic�i��i��j�i��i�8�jY�i��i��ie�jp�i��ie�ib�i��i��je�i��i��jY�i��i��jK�ji�i��i��j9�i��i��jE�i��jk�jb�i��jk�j�j�i��i��jb�j��j��ji�j��jY�ji�i��jK�i��i��i��jT�j��i��j��i��jK�i��i��i����hN�i`�i��h��gQ�h��gQ�j�i��i��j��i��h��gQ�j��i��i��i����i���h��gQ�i����PInfo����ATTR�����decl�mem_product��d��e�,s9t�,�p�fSs�����f`�f�����f`�i"�
�	��fst���t�-���snd���8��e�,��9���,����fSprodcases_on
������f`s�j��f��gH�j��f��i-�t�
���j�����-��j���tp_fst�p_snd���s�j��gM�gN�j��gM�fb��8�iH���
�	�j����k"��.��j����k"��	�k4����k4���k4s�
�'��1W��k?��<�k&�k?��k&�����
��t�
����1���
���kM8�kF�������kJ��kJ�j��gS�gT�j��gS�i��t���[�f]�[�gZ�fb�]�[�8�kP�kF�k#�fY��gM�����ij�il��kj�f���� �gM�gN�g�gP�g�gSe_2�J�gZ8�g�g��g�hVe_3�i��i��j��i��i����k��t8�_�� F�i��i����k���k�k"�k"�J-�gM�k"�k%�kt�f��������ku�kj�� ��gM�k"��ks���[k���[oe_1�2�6�8�7�<��t8���]���kU��kJ�k\�i��i�8��kO�D���������k�����kN����k��kK�kI�kL�kN�k��kU��kJ�
�%���-��V�G�-��Vt��k���a�kJ������	-8��e_1�����t�V�8�-������[��t8���k��k��k���
F�kJ���kJ����kJ�k����kJ�k���kJ��k��k��Z��V�
��V�'�[�
�F�V�0���k��l�l���V�
�4t��
�1p��1d��l�l�l���V�l�fn�gZ�k`t�k`���l���k��l%���� �V�gS�k��k[����[o���6�e_1�[,�<�8�[1�4��t8�Z��_�l$�l�[?�V���V����V�l#���V�l���V��l#�l�l�l�l�
��l�l���l�l"�lI���k{�l�l!�lIprodmkinj_iff��]�[t�����lJ�landleft_comm�l�l�l���l�'�V�l�l�l�\C�V�k��'�V�l�
��k��k����k��l�lu�k����la�V�
���[�l�l���V�ltexists_eq_right�"�V�l�t���kU�
��kJ�k��k��S;�kJ�k����k��kN�lc�kJ�kH�kL�����
���kI�
��V�
�	.��k��kS�T��kR8�k3�k?���k?���kA����k?���PInfo����ATTR�����decl�card_product��d��e�,s9t�,���card��fS�ft� U���-���e�,��9���,��	�l�����l����l���l��l�����l��l����l��	�
������l��l��l��@sum
��UN�T�listrepeat
��l����l��l��T\�&2�l��l��l��T\�\~���&��fT��l��fh8�l��l��l��fi�m���fT���f�e_1�gK�_�(�gN�t8�l��gM�ft�fi�f�8�,�&��fS8�fh�T��m�l��\��m��
��l����l��m(�\~����-�88�m,�\��m�m08������������8�m��gH��l��f�����f]��gM�k �8�/��m�ks8�\�t�*��m8�mF�mK�1compequations_eqn_1�(��gH��m>�mE8����&��f��f�8t��
��8�l��<
��l����	
��T[�l�listsum_repeat
����l���natsmul_eq_mul���l��l��l��<�l����l�����l����PInfo����ATTR�����decl�sigma�u_4�σ��s9tatmultiset�)�0imultiset�)sigma�)�a�����m��9��m�multisetbind�)��m�8a��	map�)�)��m�����sigmamk�)���-
�PInfo���prt�VMR�_lambda_1VMR�_lambda_2VMR�VMC���snd�_freshD�r��_freshD�r�VMC�
��	��_freshD�r����bVMC���������
�doc�`sigma s t` is the dependent version of `product`. It is the sum of
 `(a, b)` as `a` ranges over `s` and `b` ranges over `t a`.decl�equations_eqn_1�����m��9��m�����m���.�/�t8�m����m��9��m���1�m��m��PInfo� ��ATTR���� EqnL� SEqnL�decl�coe_sigma�����m�l₁<l₂atlist�)�0i�m��m��'�a���)�)�m���m����2�3�m��m���2�3�m��m���)��-��)�)list�4�m��m���5�7�m��m���5�7�m��m���4�m�listsigma�)��m�8���m��"<�#�m��	�n�m��m��'����m��m��n���n�n
��
�6�m��m�_a�m���m��m��m��m����U��&��m��m���m���m��n�n�m��n�n�m���0i�m��m��m��n�m��n*�n�m��n*�n�m��m��m���m�t8�n�n9���n�n� �)�t�'��m��	�n
�n�m�listbind�)��m�8a�listmap�)�9��m��m��m��-���n
�n[�n�m��n_a�m���n�m���m��U����m���m�������m����n&�n9�nq�n4���n
�nY��sigmaequations_eqn_1�)��m�8�	�n[�n�n�
���n4�nW���n[�n��n�nZ_a�m���nq�n4�nM��m�t�-��nQ��nh�nj�ng�0i�nq���n[�n����8�m��n��nZ�coe_bind�9��m�8�nX�	�n���6�m��nP�
���nS�m��-�nY���n��n���n��m��m��n��nZ�n����m����ne_1�m��m��nh8�g�m��m�������g�m��m��V��V�1ee_2�m��m��m��[��[�[8�^�7*�m��m��]��]�]��m��n���n��t8�_�7�7*�n��g�n�����n���n�n��Y�7�m��n�n���n4�n��n��
���
��e_1��
����n��
���V�n�e_2��7��[�n�8�^�;�7��]�m��m��_��_�_�n��m��]�n���o�t8�_�;�^�
��o
�o���o��'��'��g��n
�n����7�����n����n	����n����}�)�9��m��m��-�n��n��n��nZ�n����n��n���6�m��n��nY�K�6�m��n��PInfo�!��ATTR����!decl�zero_sigma�����m�t�8�m��-�m��m��m�t�t�0i�m�t8�A��)�o_��<�o^���m��;�o[rfl�<�o_�od�PInfo�:��ATTR����:ATTR����:decl�cons_sigma�����m�a8suta��m��n�n�m��T���)�n��>�m��m��J�m��nTt�4�ov8���m��>8�?u�@�ou�	�o�����o����o��n�o��o���o��n�o��nc8���ni�n��-�o��o����n���n�e_1�m��n�8�g�n��g�n�e_2�n�8�n��o��m��o��o��t8�n��o�g�o����o���ox�o��n��m��m����ng�ox�nb�o��T���m��o��nf���n��n��-�o~�o�t�o��nD��m��T�
��)��m�t8�o��o��o������?�n���n����n�e_2�m��n�8�g�n��g�n�e_3�o�8�^�)�A�m��m��e��e�1��o��oz�o����o��t8�_�A�A�o��g�o��m��m�����������o���o}�o��o��m��n�o��o��o��o�8���n�o{���?�n���@�n���@�n�E�?�m��o��o��p,�o����@�n�p'�o��o��o����o���p�A�n�o����PInfo�=��ATTR����=decl�sigma_singleton��d��e�,a8b�-��fn�fP������multisetsigma���pK�h�a��,��-�.�h��pLsigmamk���pK8���g��pM�g��pL��e�,�G8�H�-��g��pM�pV�PInfo�F��ATTR����FATTR����Fdecl�add_sigma�����m�s9tuu�ou�n�ov���o~�ovt�o����m��O9�Pu�Q�ou�	�pu����pu���pu�n�nct�o��p���p��n�o~�p��o��p��p��o��po�p��o��po�o����o��p��o����
��)��m�t8�o��pt�p��p�pr�p��o�t�o��o��p���n�p*�p��o��p��p��p4�p��p����p���p=�p����PInfo�N��ATTR����Ndecl�sigma_add�����m�s9t�m�u�ou�n�pqa����)�n��)��0i�-�o~�pq8�pr���m��S9�i+_xu�T�ou�Ua��n�n��m���ngt�V��p��m����p����0i�-�oz�n��o|�nh�p�8�p�t�m�u�ou�oo�n�ov��p�ats�IH�T�p��U�X��p��o��m���n�t�V��p��m����p����0i�-�oz�n��o|�n��p�8�p�t�p�u�X��p��	�o��m��V�n��iZ�V�V�p��m��1e�p��1e�0i�-�oz�n��o|�n��q8�q�o��q�m����n��m��V�n���p��m��q$�p��q$8���q��q�q!���q"�q9�n�n��q_a�n���n��m��[�n��i~�V�[�p��m��n��p��n���0i�oz�n��o|�n��qBt�qB8�n��qR���q"�q7�cons_sigma�)�V�n����q�	�q9�o��q4�q�q5�X�V�0i�q5�X�V�-�q!���q9�qo�q>�q6_a�n���n��qN�m��V��n��m��[�n���p��m��qu�p��qut�8��qA��qI�qR�n��q��qR���q9�qlt�qg�qj�	�qo����qo���qo�o��q58�q���q��o��q�q��q�q5�q�q*�q/�q*�q1�q��q����n����n�e_1�o��g�o�g�o�e_2�m��p8�n��m��m����������m��q���q��t8�n��q��g�q�����q���qm�q��n��n��qm�q�p�n����)�n����C�n����C�n����C�n��p%�n��q��q��q��q��q��q��q�q��q��q��q����o��n��g�n��g�n�e_2�o��g�o��g�pe_3�q�8�o��m��m���������q��oz�q����q��t8�o��q��g�q��m��m�����������q���q�q3�q����)�)�q$�n��q)�q/�q1�ql�q��m��n��q���C�n��q��q��q��q��r�q��q��m��m��n���V�n��q��q��q����C�n��q��q��q��q!�q��q��q!�q��q��q��q��q��q��q��rD�rH�q��q��q��q��rF�rD�q�rL�q��q��rO�r�q�rL�n��r4�q�r2�iZ8�oz�r4�o|�r3�m��n���r3�q'�r2��q/�rZ�8�q��q��qa8�r<�q��q��q �rS�rY�r[�r`�rf�q1�ri�rH�q��qa�r<�q��q��r)�rL�q��q��r�q��q��r5�q��rN�rE�q��rN�q��q��q��q��rE�r��r��rL�r��r<�rL�q��r)�q��q��q��r7�r��q��r��q��r)�q��q��q����o��q�q��p!�n��p#�n��q��q��q��r��q��p1�n��r��q��q��q����q���p<�n��q����PInfo�R��ATTR����Rdecl�mem_sigma�����m�s9t�m�p�m�s���)�)�m��n���E�m��nt8�
�	�fst�)��m�t���)�)��r��m��r����)�r��snd�)��m�8�r����m��h9�i�m��j�m��Lcases_on
�)��m��j�m�s�r��nh�n��r��nh�p���t�
���r���ng��r���s�m��s�r��s�r���ngt�sp_fst�p_snd���s�r��n��n��r��n��m���n�8�p�����
�	�r���n��s,��r���s5�m��s9�r��s9�r���n��s,��s5�	�sF����sF���sFs�k=�r����m����r����B�k=�s<�sQ�sC��<�s1�sU��s1�
���kK��)���'���
�r��#�m��#�r��#��heq�G�#�1�t8�sU�s`�����kI�ss�su�s`�����kU��kJ�r��n��n��r��n��qy�t��[�m��n��n��m��]�[��8�sz�s`�s-�m���n�����m����n��q'���s��f���)�H�n��n��g�n��g�n�e_2��G�n�8�g�o�g�o�e_3�q��q��r��q��q����s��t8�_�J�HF�q��q����s���s'�s,�s,��J�n��s,�s0�s��nD�������s��s���H��n��s,��s��k����kU��kJ�s��m��#�n��qx�V8���sy�k�����s�����sx����s��kK�kI�sr�sx�s��kU��kJ�k��sa�#�'�#�
�r��[t�m��s��r��s����sk�s��[���s��k��s��t�k����kJ�s����kJ�k��s��
��#�'�s��
�r��]��m��t�r��t�1��sk�t�]����kJ��s��s����#�l�t�t�t"�s����#�s��m��n��s�t�s��n����t%���s��t2���)�H�#�n��s��s�������#�����s��e_1��GF��t�8�_�MF��_���t8�sa�tG�t1�t$���GF�#x�#����#�t0���#�t#���#��t0�s��l�s��t#�
��s��s����s��t/�t^�Minj_eq�)�]�[t�����t_�t#�lc�s��l�s����s��'�#�l�t�t�)�G�#�k��t���kU�
��kJ�t�s��l��s����s��sx�l��sr�����
���kI�
��V�l��sa�1e�'�1e�
�r���m���r����sk��s���su�l��st8�
��k<�k<���k<�sa���'���
�r����m����r������sk����8�sT��t��t������t���G��8�����t��������������s�tA��1��8�tF��s���t8�sa�s��t��t��tU���t����t��t��'���
��t��t����t��t��t����t��t���G��8���t������
�����r��1��m��1��r��1��+�t��t����G���t��sE�sZ���sZ���sV�sU����sU���PInfo�g��ATTR����gdecl�card_sigma�����m�s9t�m���card�)�m��m��m�8�T\�\~a��card�)��-8���m��w9�x�m��	�uD����uD���uD��T\�\~����u?8�uC����u;�uR���u;�T\�\~���N��m���u7���m��nU�-8�uR�uY�u7�m��ua�ue���m����ne_1�n��_�P�n��t8�u6�n��u:�uh�nE�m�8�,�N��m�8�ua�T��ud�uQ�\��ub�uO8��������m:�uZ��n���u6�nh���m����n��s*�8�/��uq���s��q(�8�u=����mR�u��u����P��n���u��u�8���)�N��nh�n�8���uC�uC�<�uC���uS�uR����uR���PInfo�v��ATTR����vdecl�pmap_proof_1��d��e�,p�8�fat��-�l₁�l₂�pp��,xa�H��������V���	.���#�Geqrec����u_x������V���	.8�#�GH��������k��I��@pmap��V����V�����w��t8���u��I��u�t��e�,��u����u����������funext
�Q�u����u��/��u��u�H₂a�H�	Ht�
H₁a�VH�	*�*���[��#

�As₂�\e���!�Ha�_H�0rt�(��05�u��f���Vs�f��������1�8��8�J_x���e���1��Qb�[�+*�,\�,!�e�1��,a�v(�1��,d�v(�1��,g�e�u����e�����1��]�[�t8�K��u��e�_���e�o	�[�V�
�3��0�u��^�!����^����_���0r8�(��04�����]���/��!��(�,\�,!�]�0�,a�vY�0�,d�vY�0�,g�]�u��_�]���_�n��V�t���8���t�,\�,!�[�0�,a�vu�0�,d�vu�0�,g�[�u��]�[���]�n���8�v�v��t���vqt�,>�vu�,$�vu�,&�[�v��v��perm_pmap��]�[�v�����8tAnnot�IAnnot�Js₂�\e�v���v�6��f�v���f���
��v$���������	r����t��8�K��u��	nB���	nE���	nH���	n.���_���	n�������������8��8�0>�����������������A�e��8�,\�,!���K��,a�v��K��,d�v��K��,g���u����������q����e�Vt8�,\�,!���J�,a�v��J�,d�v��J�,g���u������������e�_����v'�,��1��u����v$������������v�8�v��J���������1���]�v�,\�,!���J�,a�w�J�,d�w�J�,g���u����������o��_�]��v$�\���v$t8Annot�IAnnot�Ja�Vh�v�����������]8��w=����]8����PInfo�~��decl�}��d��e�,��u����u�s��������-���,���e�,��u����u����quotrec_on�R�Q���_x��������%C���-l���������/����-N�u���������8�~��d��t8�PInfo�}��VMR�}_lambda_1VMR�}_lambda_2VMR�}VMC������VMC���������_freshH��a�@pmap_mainVMC�}	��������e������ rec_ondoc�}Lift of the list `pmap` operation. Map a partial function `f` over a multiset
 `s` whose elements are all in the domain of `f`.decl�}equations_eqn_1��d��e�,��u����u�����,�wX�}��d��t8�wy��e�,��u����u�����,��wX�w��PInfo����ATTR�����EqnL��SEqnL�}decl�coe_pmap��d��e�,p�u�f�u�l�Ha�H��8��,��w���a��t���U��u����w�t8��e�,���u����u�������w��,��w��PInfo����ATTR�����ATTR�����decl�pmap_zero��d��e�,p�u�f�u�ha�H�O��B�,��w�a��8��.��e�,���u����u����w��,��,_�w��PInfo����ATTR�����ATTR�����decl�pmap_cons��d��e�,p�u�f�u�a�m�hb�H�	�E���-�w����wk��E�X��J�4��t8�w�8a�ha��t���mem_cons_of_mem�[8����e�,���u����u��������Q��_x��������������W�w��V��u�����Y���O��O�8�w�8���V���	.t���w��]8��l�h�������������,��/��w��x�PInfo����ATTR�����decl�attach_proof_1��sa8a����t�����8����PInfo����decl������subtype8x8������pmap8�x,�Vsubtypemk8�x+���8�PInfo����VMR��_lambda_1VMR��VMC����propertyvalVMC��	��������}doc��"Attach" a proof that `a ∈ s` to each element `a` in `s` to produce
 a multiset on `{x // x ∈ s}`.decl��equations_eqn_1����7�x-���8�x<����\�x-�xB�PInfo����ATTR�����EqnL��SEqnL��decl�coe_attach��l7�x*x8��8�xAOB�xM�xNE�xR�xNH�xR�xN.�xMlistattach8���S�xN�xP�PInfo����ATTR�����ATTR�����decl�pmap_eq_map��d��e�,p�u�f�-�s�H�wW�,��w��a�_x��8�/���e�,���u����-������_x����wb�-�w�����������8�/�l�H�wh�-5�wj��xx8�-7�8�-N�@pmap_eq_map�����8�PInfo���decl�pmap_congr��d��e�,p�u�q�t�fa���0i�ga���0i�s�H₁�������8�H₂���V���w��ha�[h₁�1eh₂�#�0���49�0*�w��]�[�v���t�x����]�1e��8��e�,���u����x����x����x�������x����x����x��z����_x�^_a�vR_a���e���v#t�(��Yp�w����e�v5�[t8�x������o	�Vt�l��H₁���_���0r���(�H₂���e���v#"��$����t�(��-2�v(�1��v6�������1��(�t8�v4�x��������o	�'�t�v2�@pmap_congr����e�v5�x��x��x�t8�t8�PInfo���decl�map_pmap��d����e�,���.�p�x�g�-�f�x�s�H������x����=��D���w�a�V��t8�pmap��V��ya�Vh����8��e�,���.��
�x��
�-��
�x��
��2m_x�U�
���V���u���^��D���w��[�V�
�[���8�y�[��y1�
�[�
	����'a8l��H���V���	.�0��/�/��=��/�V���u��[�V�y1�8�@pmap��[��y1�y=8�/�yI�=��/�yI�=��/�yI�=��/��@map_pmap���[�V��y1��8�PInfo�
�	decl�pmap_eq_map_attach��d��e�,p�u�f�u�s�H�wW�,��w�8�,}�x)�����.��x�y����val�������8�y���property�[��y��x@�8��e�,�
�u��
�u��
���_x��
�wb�-�w��,}�x)�����w���
�y���y��V���V�O�8�y��y��V�y��x@�8l�H�wh�-5�wo�,.�y�x��v
�x�y���y��
�V�v�8�y��y��y��x]�8�-N�@pmap_eq_map_attach����wk�8�PInfo�
�
decl�attach_map_val��s:�/5�x,8�y�8�x+�xB��
�m_x9v�/5�x)t��t�ot�y�t�y��x@tl<�/K�/L�y��
t��8t�y��y��x]t��@attach_map_valt�PInfo�
�decl�mem_attach��sx�x,��y���t���z���z�y�8��
#�m_x9�
$�y���x)�������z!���z!�x@�8l<�@mem_attacht�PInfo�
"�ATTR����
"decl�mem_pmap��d��e�,p�u�f�u�s�H�wWb�s�1W�w�t8��a����y�h�y��1\���Ct��e�,�
)�u��
*�u��
+��
,�wW�
-��2m_x�U_a�u�s�k��y0a�[�1e�8�1k�
.�[���0t�
/�zQ�0��#�D��tl��H���V���yF�#�@mem_pmap��[�V���[�v��8t8�PInfo�
(�ATTR����
(decl�card_pmap��d��e�,p�u�f�u�s�H�wW��\��y����e�,�
7�u��
8�u��
9��
:�wW�t_x�_a�x���-���w��78l�H��������&8��@length_pmap��V����V�zJ�8�PInfo�
6�ATTR����
6decl�card_attach��m��5�x,�xB�7��
A�card_pmap8�x,�V�x6�x;�PInfo�
@�ATTR����
@decl�attach_zero��7�x)���^�x@�w�u�z��h�z��S�z��z��PInfo�
C�!ATTR����
CATTR����
Cdecl�attach_cons��am97�y���t�n���y����z��x4t�z�8�	�t8�y��z�p�y��x4�����?�y���z �w���z�t8�y���z �y���
E�
F9�Qw�_xu7�z��������z(�i��z��z��z�t�	��/5�z������z��
G�z��x4�����.���y������%q�w���{�8�y���z��z(lw���z���������{���{�z��{t��left�������.����tx�H��8���������
Q�i�8��x�H�����{/�
�{&�{1�@forall_mem_cons�a��������	�
F���t�x9��h;������{�{%�{��right�{&�{1�{N�{Q�/L�z��������{�
G�{a�z�����{"�z�����.���{�{i����{�{g�{S�{a�������{f�z��{`�{H�{KB�{�{E�{�{H�{�{.�{�{�{�{\�{~�{Q�	7�{�{\�{~�{��{T�{wa�h�{v�x4�����{>�y������	�{<�{��{�8�w���{�����y���{��{��{|���{��{���{�{~_a�{�7�x)��{d�{R��{��{A�{e8�{X�{A��
K��
L�w�t������V�	.�
����8���
M��
N�w���t�{��
�{��{��{:��
P��{.�8�x9��{�/L�{��{g�{��
G�{��{��{��{��{�����{��{��{�a�����{��z��{g8�{����{����{��{�listmap_pmap��{a�{�{w�{r�{y�{|listpmap_congr��{�{%�{w�{�{��{[�{|a'�h₁�{$h₂�{�8subtypeeq�����{+�x4��|t8�|�y�������{)�|�|#t�w���|(��{<�y��|#�|'S��y��|�| �PInfo�
D�#decl�decidable_forall_multiset_proof_1��p�0Ja<��atH�n�{J8�B��
a�0J�
b<��|G�PInfo�
`�+decl�
__proof_2���
a�0Jl<satH�y��B�|G��
a�0J�
f<�	�|T����|T���|T�|S�|R��<�|R�|R���|R�|G�|R�Lt�
ct�|F�
ct�|Q�
ct�]�|E�0i�y��0i��|E�n�'��y��f�����g��g�e_2���g�W�g�\e_3�
��	�����|v�t8�4��8���|v����=,�|D�'��9��8���|q�y��	��8���0i���|^����|R���PInfo�
e�+decl�
_��m�
a�u�hpat��-��
c��
d����B��
k�
a�u��
l�|�quotientrec_on_subsingleton��_x���wW�
`��8t�
f�decidable_of_iff�
c��
d�M���w��
e��tlistdecidable_ball��w��XW�PInfo�
_�+prt�
_VMR�
__lambda_1VMR�
_VMC�
t
�- �
f�_freshG��(�
s�VMC�
_
�+�
l�
a�
k��
t��rec_on_subsingletondecl�
_equations_eqn_1���
k�
a�u��
l�|���|��
_��t8�|���
k�
a�u��
l�|��*�|��|��PInfo�
z�+ATTR����
zEqnL�
zSEqnL�
_decl�decidable_dforall_multiset_match_1���
kpa8H���hath���D�_a�za��|��
d��{��
���.��|����|��x@��a�y��
������y��
������y��}8��
k�
}�|��
��|��
��|�subtypecases_on
��|��
��|��
d��|��|����|��y���
��y��}��y��
��V�	.�V�y��}8������|���_x��}�}���}�|
�}Annot�
�8�y����}�x4�V
�}Annot�
�t8�}!�}:�
��}5��};�}=�PInfo�
|�/	decl�
|equations_eqn_1���
k�
}�|��
��|�a�ha�|��-��
d�}�{��|�8�}�}$�|�}t8�
|����t�}O�
��}Q��}�}T�}�}T��
k�
}�|��
��|��
���
��|��-��}V�
�}V�}]�PInfo�
��/	ATTR����
�EqnL�
�decl�decidable_dforall_multiset_proof_1���
k�
��x*�V���y�����
k�
��}v�y�t���PInfo�
��/	decl�
�_proof_2��}|�}��PInfo�
��/	decl�
�_proof_3���
k�
}�|�s�
c�y����
d��|��|����|��z(t�
��|���{��|��{��|�8�|���
k�
}�|��w�}��|�h�}�a�ha�|�t�}O�mem_attach���}O�
��|�_x�|��}X��t8�PInfo�
��/	decl�
����
k�
}�|�hpath����D���
���
��|��C��
k�
}�|��
��}�decidable_of_decidable_of_iff�
c�|��
d�|��
��|��}�
����8�}��|��|��}��
��|�t�z��|��}����
m�|�8�}��
�����
���t8	�PInfo�
��/	prt�
�VMR�
�_lambda_1VMR�
�VMC�
��/	�
m�_freshG�� VMC�
�
�/	�
��
}�
k��
����
_�decl�
�equations_eqn_1���
k�
}�|��
��}���}��
���t8�}���
k�
}�|��
��}��*�}��}��PInfo�
��/	ATTR����
�EqnL�
�SEqnL�
�ATTR����
�classdecidable�
���decl�decidable_eq_pi_multiset_proof_1�u_2��
kβ�8�,fatH����g�|�sa�h�|��,��C�D��J�
���
��|��8��
k�
��}��
��}��
��|��	�~����~���~�}�a��
��|��}���<�}��}����}��~�~��Jx��
���
�����8�
���,�~�0i�-����
���
����,����C���~"�~'functionfunext_iff�
���
���~8�YR�
���,�~�0i�-�
���~�
�����,�
��|��
��'��)�0i�-�
��|��,�~D�C�D��
�
�g�|��
��|���0i�-���}��}�����}����PInfo�
��6	decl�
���
���
k�
��}�hatdecidable_eq�g�-decidable_eq�g�|���
k�
��}��
��~k�
��|��
��~�|��J�
���~8�
���
����~)�C�D��
���
����8�}����
���
����~x�
���
�����C�D�
�PInfo�
��6	prt�
�VMR�
�_lambda_1VMR�
�VMC�
��6	�
��
��_freshG��s�_freshG��r�_freshG��qVMC�
�
�6	�
��
��
��
��
k��
��
��doc�
�decidable equality for functions whose domain is bounded by multisetsdecl�
�equations_eqn_1��
���
k�
��}��
��~k���
�D�~m�
��k�m�t8�~���
k�
��}��
��~k��p�~m�~��PInfo�
��6	ATTR����
�EqnL�
�SEqnL�
�ATTR����
�class��
���decl�decidable_exists_multiset_proof_1��p�0J�
b<����xt���|EH�|E�B��
��0J�
b<��~��PInfo�
��:decl�
����
k�
��u�_inst_1decidable_predt����
�����|��
��|��B��
k�
��u��
��~��|�_x�����
�����-��
��-���
���8tlistdecidable_exists_mem��
���0ia��-�PInfo�
��:VMR�
�VMC�
��:�
��
��
k��@decidable_exists_mem��
xdecl�
�equations_eqn_1���
k�
��u��
��~���~��
���t8�~���
k�
��u��
��~��*�~��~��PInfo�
��:ATTR����
�EqnL�
�SEqnL�
�decl�decidable_dexists_multiset_match_1���
kp�|�_a���}��
��}����}��
��}��}���a��~�h�|��C��
k�
��|��
��~����|��
��|����|��
��|��}	�
����|��~����
�����|��
��|���5�|��+�~��}��|��5�|��+���}.�}4�
��a�x)�V�}��y��[a�[�0�[�y��[�8�	)�
��V���}�
��}�'�8w_val�w_property���+���������}6�}8�x@�V��
��4�
��x)�[��V�y��]�
��]�/��]�y��]�:�x4�[�t8����7�7���7�F�x@�[�V�
��R�
��x)�]�:�[�y��_�
��_�0r�_�y��_�X�x4�]�:�t�+���R�f�k��
��]���9�
��9�'�h_w�Rh_h�V�;�d�?�d�����_�
��_���W�
��W�(���_�z��>
����]�
����t��PInfo�
��>	decl�
�equations_eqn_1���
k�
��|�atha₁��_x�|��z��|�8�|�ha₂�}�}Mt8�-����
�����}�
��}��
�������}�
��}���-�3�
����B8�}R�t���}.���}4�
�����.��8��������	���
����Ft��
k�
��|��
�t�
����
����
����-����}l�����PInfo�
��>	ATTR����
�EqnL�
�decl�
�_match_2���
k�
��|�_a���
�t�����
����D����
k�
��|��
����e�~��
��~����|��
��|����}�
��}�}%�5��+�~������
����^�+���������}��h_w��h_h�^������
�����N�Q�
����`8����	�.�8���-���3�
����B�D�t�}��V����PInfo�
��>	decl�
�equations_eqn_1���
k�
��|�atha₁��ha₂�D��-����|��
��|���
������.��
�������
����'at������
���8�E�8��|���+�����}���}�
���E�}$���}�����
k�
��|��
�t�
����
��D��-���,�}l��,��?�PInfo�
��>	ATTR����
�EqnL�
�decl�decidable_dexists_multiset_proof_1��}|�}��PInfo�
��>	decl�
�_proof_2��}|�}��PInfo�
��>	decl�
�_proof_3���
k�
��|�s�~�����
k�
��|��w�~���_x�~����t8_x����.�t8�PInfo�
��>	decl�
����
k�
��|�hp�}���~���
k�
��|��
��}��}���
��|��~��
��|��
��|��}�
����8�~��~��|��}��
��|��}���z���
��|��}��
�����
���t8�PInfo�
��>	prt�
�VMR�
�_lambda_1VMR�
�VMC�
��>	�
��_freshG���VMC�
�
�>	�
��
��
k��
����
��decl�
�equations_eqn_1���
k�
��|��
��}����u�
���t8�����
k�
��|��
��}��*��u����PInfo�
��>	ATTR����
�EqnL�
�SEqnL�
�ATTR����
�classdecidable�
���decl�sub_proof_1��_inst_1�v₁<v₂ww₁�w₂�p₁��p₂���87���!�%�&�diff�V�(*���&����t��
���
�<�
�w�
���
���
����
�������!�%��������!_x�!�.����[�'�����������perm_diff_right�V�(*��t�perm_diff_left�V�(*���8�PInfo�
��Mdecl�
����
��s9tu���
���9�u�������8l₁�l₂��N�����8�
���t	�PInfo�
��Mprt�
�VMR�
�VMC�
��M���
���_c_1�Ddiff_main�doc�
�`s - t` is the multiset such that
 `count a (s - t) = count a s - count a t` for all `a`.decl�
�equations_eqn_1���
���9�u��
���t8��	��
���9�u�����PInfo��MATTR����EqnL�SEqnL�
�decl�has_sub���
��has_sub9��
��has_submk9��8�8�t�D�
�PInfo��Q	prt�VMR�VMC��Q	�
���
�decl�equations_eqn_1���
��7����8��(��
���\����.�PInfo��Q	ATTR����EqnL�SEqnL�ATTR����class�
���decl�coe_sub���
��s<tw�has_subsub���,���'��%�������8��
���<�w�'���=�PInfo��SATTR����ATTR����decl�sub_eq_fold_erase���
��s9tu���;8�6���'��erase_comm��8��
���9�u�W_x�_x����7���,��8�6���'���T��88l₁�l₂�
�A�����k�����	��w��N�@foldl���(/8��v����w���������(.8_a���
?�2�����'�t8�6��U�'���T��'��6�3�
?�2�������w���@diff_eq_foldl��8�|��v����@foldl_hom����N�(/�'�8x�y�S�W�	`�)�Annot�t�PInfo��Udecl�sub_zero���
��s9v��7u��,t�'��A��
���&9��_xu���;�tlw�'���;�r�t�PInfo�%�ZATTR����%decl�sub_cons���
��a8sut��}��7���,��'c8������(��
���*8�+u�,��(�_x�_x��
?��7�U��,��'�8�
B����'�8�8l₁�l₂����������V�+188�����'���8��2�@diff_cons���8��PInfo�)�]ATTR����)decl�add_sub_of_le���
��s9tuh�p�}�����t8��
���39�4u�5�p�X�_x��4��5�i�X�(���7�W��,�V�(*8t8t�	�4��5�]���
?�a�	'����	'8�����A���	���4��5���	'�X������/��8����4����>��4���@�4���4��a��:��?�>��>��]��:��!�����b�������J�X�Y�z��/to_ordered_comm_monoid��#��������:��)��n�α_inst_1�#Ia8�*��O1�O2�O3�O4��kt8�5��5��5��OS��~zero_let8���m���f�����d����d��a�9������)�����c�%��� ��:��)��������	���?c���
�����TI������a�s�IH�4�U�5���
[�Ct��7�\��,�[�'�8t8t�Wh����t�	����������7�^��,�]�(�8���8�����������8���������;����_a�^��a�7�����7�`��,�_�+-t���t�at���������D�]������	���������������'s�]�(�8��8��������;����_a�^��a���7����t�a����!t��������sub_cons�]�(��8��	���������8������=�;���_a�^��a����!����'s�_�+-t��t�a��t������t�����������;�������]������^_x�^�3���8�������]��_��e����v88���^��s8�(��]�(�8����]���8��	��]���	��=�
�8����=����;���s_a�^��a����Ft������=8�����88�PInfo�2�`decl�sub_add'���
���39�4uu��}���t�������8��
���39�4u�I���_x�_x�_x�U�X��.t��8��.���8t8l₁�l₂�l₃���:�����V��[��o8t�������8�	`�@diff_append�V���t8�PInfo�H�idecl�sub_add_cancel���
���39�4uh�H8�}����8t��
���39�4u�R����	����}�88���t���������(��8���8_a����!���b�tt����������������5���8�	�����t��������(��
�������'�t8_a����)&����������t�add_sub_of_le��'c8t�&t�PInfo�Q�mdecl�add_sub_cancel_left���
��s9tu���;�m8��
���W9�i+_xu�X��}����8�	�Xu���;�L�t�t�����V���	�u�X��}��������u�X����R��Xu��U�Xu��Xu���U�$��������e_1��g�U�g�We_2�����
i���t8�������S�����S���c���������e_2��g�W�g�\e_3�
������������t8�M��g�`�f��������:��Q� ����t�t���t�����������p��	�����
�u���TIu�TA��ats�IH�X����b�!�8t��	�
?����a�'�t����
?����'��e������������+����_a�U��X��.���iZ8�iZ8�X��.�iZ8���������D��t�	����
?����'�����t���������+����_a�U��X��.�$r���8�iZ8�S�8����������1��'�����t�	����
?����et��������+����_a�U��X��.�(�����8�X����8������e�erase_cons_head��'���e�	���)e������>�+���_a�U��X��.���8�������-�\�U�PInfo�V�pATTR����Vdecl�add_sub_cancel���
��s9tu���@8��
���i9�ju�	��b���;�V8����b��k���M_a���}�����8t�}���8t����b�V��	��k�
8����k�������;�#_a���}������t8t��t����k8�add_sub_cancel_left��8��8�PInfo�h�tATTR����hdecl�sub_le_sub_right���
���39�4uh�pu��]����bt��
���39�4u�o�p�p��
_x��3�U�4�W�o��8�����t������	�3��4�U�o�������t�EC����EC���������	���3�U�4�W�o���������u�^�h�]�������4����������3�U�4�W�����YV�3�����3��4�U��3��_�4�U����4�U��4�U��7������>�����S	������J������������_h��������t8������\�g�^�g�`e_2���g���g�	je_3�����0�����t8����������t����[�'�t���8��8�������*�����������T2�����
���������T>����������
�����TI���7��a�u�UIH�3�W�4�\�o��8�3�������8�s�\t�^h�38�	����7�f��,�e��kt�;��V8�;�����\����\����V�'s�e��kt����V��d8��������f�g���g�	j�s���g��g��t��
��.�!����s�t8�
���s�����X��h��1�e��k�t���[��m���8�����n��o����f��k�*��.���������
����7����,���������v��'s��������������t���������������c��e����������v�8t����8���*�����erase_le_erase�e��kt8��*����t8�PInfo�n�wdecl�sub_le_sub_left���
���39�4uh�pu��]��bt��b���
���39�4u�}�p���_x�_x��~�U�����8���tt8l₁�l₂�h�t�fdrec�V���!���*�����~�`����V�������u�Wle_refl�\������i�R�[l₁�!l₂�*a�]s�%�t8IH�~�f�������Qb����Qb������	���7�	j��,��������������$����$�����+����,��2��	j��(_a�	j��.�	n��	n��	n�
����7�	n��,���������v�8�v�������G�v����?��G��N����,��/��	j��/��(�������	��2���#�'s���������+����2��l��7��0_a�	j���?��G�
!�v����N��?��N����2��j��1���������	j���j��$���+�sub_le_sub_right�������h�*���������-l₁�!l₂�*a�]s��IH�������	��*��$���&���1�������������8_a�	j���L��G�v���H���R����������/��`�	�����k�������������q_a�	j���u�����x����������j����	�����k��$��.�����������7���_a�	j���?��F�'s����D8���r��������Q����������Z��������^��	�����k��i�����������7���_a�	j������G�
!��M���������������8��ht8�PInfo�|�|decl�sub_le_iff_le_add���
���39�4u�I�s�-��������
���39�4u�I��X�_x��3�s�����8t���c8�	�3�s�]��c8�]�!��������:���	���3�s����(�	't���b�	'����YY��>��3���9�>��3����9s��68��S��<��4��S������g�U�g�We_2���g�^�g�`e_3���Sc�������[�t8�p���Sl����[��\��c���88�)�8��8��S��q�����78����:�8����U�����S�����a�t�IH�3�Us�����+���s�W�	s�����������C���������������s��������t�����<�������������'s�[�'�������������������t��������������1�[�'��t���~���������8�����������+1��������erase_le_iff_le_cons�[�'��������������~���������[��t�������������t�PInfo����decl�le_sub_add���
��s9tu�o�L��O��
����9��u���H��O��O���sub_le_iff_le_add��8��O����F��O�PInfo����decl�sub_le_self���
��s9tu��
8��
����9��u���� �o�m��8�"�8�PInfo����decl�card_sub���
��s9tuh���������
���has_sub�.Z� ;��
����9��u������&����9��2natsub_eq_of_eq_add� ;��2�.Z�	�.[� <��2�.[�!I��2� ;����H��L�.8�!I� ;��2_a������\�%u������T����H��K�!S� ;��2�	��L�.[��������L��h�.8�\��2� ;_a����T�!I��V�%u��Z����L��g��@��g��n�!.���8�	��h�.[�.Z����h����(����"8_a����T������T�����ht�sub_add_cancel��'ct8�<�.Z�PInfo����ATTR�����decl�union������
��s9tu���PInfo����VMR��VMC��	�������
���
��doc��`s ∪ t` is the lattice join operation with respect to the
 multiset `≤`. The multiplicity of `a` in `s ∪ t` is the maximum
 of the multiplicities in `s` and `t`.decl��equations_eqn_1���
����9��u�����t8����
����9��u������PInfo����ATTR�����EqnL��SEqnL��decl�has_union���
��has_union9��
��has_unionmk9���8��&�PInfo����	prt��VMR��VMC����	�
����decl��equations_eqn_1���
��7������8�����
���\�������PInfo����	ATTR�����EqnL��SEqnL��ATTR�����class������decl�union_def���
��s9tu�has_unionunion������8����
����9��u�'�����PInfo����ATTR�����decl�le_union_left���
��s9tu�o�����
����9��u�le_sub_add������(.88�PInfo����decl�le_union_right���
��s9tu��������
����9��u�le_add_left���8��9���8�PInfo����decl�eq_union_left���
���39�4u�����}���������'ct8t��
���39�4u�������8�PInfo����decl�union_le_union_right���
���39�4uh�pu��]������������!t��
���39�4u���p���� %��"���_��`�����(�8���5t������3�t8�PInfo����decl�union_le���
���39�4u�I�h₁��h₂�]t8������U�����'���t��
���39�4u�I�����J����L�	��T��S��M��N�'�t�����T��a�+�t_a�U�������W����V�(*�����m����T��`�
��`t�eq_union_left��'�t��union_le_union_right��'��t8��PInfo����decl�mem_union���
���39�4ua�s�����6������
���39�4u����w������h����imp_left���6t�+i��������8�sub_le_self���3�t����!����t�6�����S�8���torrec����������t���le_union_left��'ct8���8���le_union_right��'ct8�PInfo����ATTR�����decl�map_union��d��e�,�
��8_inst_2�~i8f�.�finj�.���s�t�U�W�/���g��h��V��[�'�8����/���������V��/�8�N+��e�,�
������������.������������U�#�!�!�$�$_x�W_x�\�0*�0����^����]��]��_�'�8����0����[��[��]�((�08�Nh8l₁�!l₂�*�-2�vu�0�,.�]�[������]��]��_��e������������������ �888888�-;�vu�-=�[�
���[��[��]��_��e�����������������88888��8����X�v�	�,�vu��:��[��^��>����7��X��[����`��f�0��vu��:_a�vu��,�vY�,.�_�]������_��_��e������������������ ��%� 88888t88�-;�vY�-=�]��?�]��4��pt��p8�����m�������`��d�-P�]�[���7�	��f��^��>��@��[��]��_��e�(�8��V��X��X��[����f�����k���� ��]��_��e����++88_a�vu���m�����p�����������m�������������f���listmap_diff��]�[������8�,��vu����PInfo����ATTR�����decl�inter_proof_1���
��v₁<v₂ww₁�w₂�p₁��p₂�������&�bag_inter�V�(*���&����t��
����<��w���������������������������_x�!�.����[�'�����������perm_bag_inter_right�V�(*��t�perm_bag_inter_left�V�(*���8�PInfo����decl��������
��s9tu���l₁�l₂��N�����8����t	�PInfo����VMR��VMC���������
���_c_1�Dbag_inter_main�doc��`s ∩ t` is the lattice meet operation with respect to the
 multiset `≤`. The multiplicity of `a` in `s ∩ t` is the minimum
 of the multiplicities in `s` and `t`.decl��equations_eqn_1���
����9��u�����t8��7��
����9��u����@�PInfo���ATTR����EqnL�SEqnL��decl�has_inter���
��has_inter9��
��has_intermk9��<8��&
�PInfo���	prt�VMR�VMC���	�
����decl�equations_eqn_1���
��7��M��8��T��
���\��M��Z�PInfo���	ATTR����EqnL�SEqnL�ATTR����class����decl�inter_zero���
��s9vhas_interinteru��Xt�'��A�A��
���9��_xu���c���X���t�tlw�%�����������bag_inter_nil���PInfo���ATTR����decl�zero_inter���
��s9v��g�A�A��
���9��_xu���r�t�tlw�%��{������nil_bag_inter���PInfo���ATTR����decl�cons_inter_of_pos���
��a8sut������c���X����t8�����t�'���
���8�u���(�_x�_x���*��X��c�W��X�V�(*��t8�����t�)�8l₁�l₂�h�(����:��������t8�����t�(����8��	`�@cons_bag_inter_of_pos�V����t8�PInfo���ATTR����decl�cons_inter_of_neg���
��a8sut���(������8��
���8�u� ��(�_x�_x���X�*�������88l₁�l₂�h�X���������8�	`�@cons_bag_inter_of_neg�V����t8�PInfo���ATTR����decl�inter_le_left���
��s9tu�H��r88��
���(9�)u�W_x�_x��]���888l₁�l₂�����,��388�@bag_inter_sublist_left���38�PInfo�'��decl�inter_le_right���
��s9tu����
���09�i+_xu�1��-��c���X��'c8tu�	�_x��-8�t����	�����t�zero_inter���0�ats�IH�1���t��
/���"��'������c�U��X��'����h��[�	������iZ88���$r�����)��8����n��u�����W�g�\�g�^e_2�c�g�f�g��e_3�	m�	p��9����{�t8�]��{�����l��s��V�(*��8�����8��*�����*�88�
�8�
���t�$r��q��u�����s��s�
���s���8�(��V�(*8������V���r��qt��q�:�X��[��o����w����n����p88���������V�(*��8���X����������E��K����
�������V�*�88����������1�W�*�����c�\��X�[�'���8���PInfo�/��decl�le_inter���
���39�4u�I�h₁��h₂��8����e�t��
���39�4u�I��>���?���D�_x�U�3�W�I�\�>��Gt�?�3t8�����c�f��X�e��k�t��3�U�I�W�>����EC�?��t8�	�3���c�`��X�_�+-�u�`�h�_t�����.����.��$��+������`�g�f�g��e_2�	m�g�	n�g�e_3�K��d���.�����<�t8�p��g������<��2���\�`���-��+��N�_�+-t����5��*���58��a�t�WIH�3�\�I�^�>��Qt�?��t8������c����X������t�3�^�I�`�>��8�F�?���t8�
/�1��t�"������t����c�	j��X��������th����	��?���c�	n��X����D�
�V��������������������������"8���������V����������	n�������_a�	n��6���c���X���������B���[�V�������������������D�V���	�����?�����V������������.
���_a����������������������� ��s8�V�'s�������[���������."���������������������D�����V���������V�����������������Vt�������D���V8�F�X�������������������������������D�V���F����������+����V��mt�v��V���3��������V8t8�t8�PInfo�=��decl�mem_inter���
���39�4u���s����=t8�
������
���39�4u����w��\��_h��\��+i��������t�8�inter_le_left���t��lt8�inter_le_right���t_x��__a�
�+i��
l�.���.���O�
���������������w����x�������	-�������	����������$�����������������_a�\������c�^��X�]�(��V������������������\�����(��[�'���8�	�������$�������+1�������������������������_a�\��������O���p�V�����������������[�'�������	��[�����PInfo�J��ATTR����Jdecl�latticelattice_proof_1������PInfo�T��	decl�S_proof_2������PInfo�U��	decl�S_proof_3������PInfo�V��	decl�S_proof_4������PInfo�W��	decl�S_proof_5���
����9��u�o�����������88��
�����8��&�PInfo�X��	decl�S_proof_6���
����9��u�������
�����8��&�PInfo�Y��	decl�S_proof_7���
���39�4u�I�����J����L����^��t��
���union_le8��&�PInfo�Z��	decl�S_proof_8���
���(9�)u�H��o��p���88��
����o8��&�PInfo�\��	decl�S_proof_9���
���09�1u��)��
����y8��&�PInfo�]��	decl�S_proof_10���
���39�4u�I��>���?������b��c�'��t��
���le_inter8��&�PInfo�^��	decl�S���
��latticelattice9��
���amk9���9�����&����9�	�T�8�U�8�V�8�W�8�X�8�Y�8�Z�8��c9��Y��&�\�8�]�8�^�8
�PInfo�S��	prt�Snspace�RVMR�S_lambda_1VMR�SVMC�c��	��VMC�S��	�
������decl�Sequations_eqn_1���
��7��N�S�8�����
���\��N����PInfo�e��	ATTR����eEqnL�eSEqnL�SATTR����Sclass�a�S��decl�sup_eq_union���
��s9tu��`has_supsup��`semilattice_supto_has_sup��ato_semilattice_sup������8�����
���g9�hu�'�����PInfo�f��ATTR����fATTR����fdecl�inf_eq_inter���
��s9tu��`has_infinf��`semilattice_infto_has_inf��ato_semilattice_inf����8����
���o9�pu�'�����PInfo�n��ATTR����nATTR����ndecl�le_inter_iff���
���39�4u�I�s����?�
����J��
���39�4u�I��`le_inf_iff����������'ct8�PInfo�v��ATTR����vdecl�union_le_iff���
���39�4u�I�s�-���
��J�/��
���39�4u�I��`sup_le_iff��������t8�PInfo�x��ATTR����xdecl�latticesemilattice_inf_bot_proof_1���
��a9�/�1�aleu���t�'���
���ale_refl9�����&�PInfo�|��	decl�{_proof_2���
��a9buc�a�C�D�������t8���J�K���������t8�Q�R����U�����'��t��
���ale_trans9����PInfo����	decl�{_proof_3���
����a9bus�I����alt����8�
�B���������8�X��08����
���alt_iff_le_not_le9����PInfo����	decl�{_proof_4���
��a9bu���B�C����.��'���������������?����8���C�(�������%�������������������?����8t��t��
���ale_antisymm9����PInfo����	decl�{_proof_5���
��a9bu�B�C�D�����.��'��G��J��M��l��������`has_infmk��ainf����88��
���ainf_le_left9����PInfo����	decl�{_proof_6���
��a9bu�����
���ainf_le_right9����PInfo����	decl�{_proof_7���
��a9buc�a�C�(�)�"�����V��Y��\��_��l����t8���J�X�Y�������%���
������
�����
��?���
��l���
�8�Q�������U����%�U������U�����U����?�U����l�U�������U��}�U���U���t��
���ale_inf9����PInfo����	decl�{���
��latticesemilattice_inf_bot9��
����mk9�����9�����%9����|�8���8���8���8�08��9������8���8���8�PInfo�{��	prt�{VMR�{_lambda_1VMR�{VMC����	��VMC�{��	�
�����decl�{equations_eqn_1���
��7����{�8����
���\������PInfo����	ATTR�����EqnL��SEqnL�{ATTR����{class���{��decl�union_comm���
��s9tu������8��
����9��u�`sup_comm����8�PInfo����decl�inter_comm���
��s9tu�����s8��
����9��u�`inf_comm���to_semilattice_inf�����8�PInfo����decl�eq_union_right���
���39�4uh�p��8��
���39�4u���p�	��I�}��8t8����I��S�(���_a�����"tt���t����I��Q�union_comm��'ct8�	��S�
8����S��m�(���	��
�'�8t_a�����%�t��]����S8��y��'c8t�&8�PInfo����decl�union_le_union_left���
���39�4uh�pu��]��!����t��
���39�4u���p����`sup_le_sup_left�������
�t8�PInfo���decl�union_le_add���
��s9tu�H����m��
����9��u�� ��8�m��,���8�PInfo���decl�union_add_distrib���
��s9tuu��}����������
����9��u����	����}�����������������������}���������������}�
����
�������������������8�
����������������������������g��g�Ue_2�Z�g�\�g�^e_3�c�����f������t8�Jb�g�f���������������������'�t8������������'�8t88�������'�t8���&������5��58�������������	��������8��������5����������8��������+���8��88�����7�����������}�
�+�
���
���28�����\�������
����X8���������}��[�����l��������e�������
��}�������������{���eq_comm�������
�A��{�	��{�}������8�������{����(����_a�����b�!��8�(�������������{�����8�	����}������8������������(�����_a�������)����������������sub_add'��'c���8�	������������������(����_a�����b���8t�������������t�add_sub_cancel��'ct�&���Annot�t�PInfo���decl�add_union_distrib���
��s9tuu��}����P���������
����9��u����	����}�8���t�����������(��8t���_a��������%8��!���t��������
����������t����	���}���X�
��������� �(�����t_a����)�����
���������union_add_distrib��'c8t�	�� �������������� ��?�(���8_a�����!�(���!����
��J���������� �����8�	��?����=���t����?��\�(���_a����J��!�)&������J��d����?��Z���&���PInfo���decl�cons_union_distrib���
��a8sut��}��������T����
����8��u����
��}������t��s���8����}�������s�T������������������\�������D�t������������� �� ����������c����������Ue_2�Z�g�\�g�^e_3�c������f������t8���������r����T���������\8�T���8�����8���8��������������]���������]����add_union_distrib��'c���8�PInfo���decl�inter_add_distrib���
��s9tuu��}���[��=������
����9��u���decidableby_contradiction����*d������h�X������� ������_�)R���U���U���U�)W��e��t��e���t���t_x�	
���
������!��)����:�����"���k8�����!�8��!t8���lt_iff_cons_le���#��*lt_of_le_of_ne��Z��#��*��H����#��&��)��/��k���s8��=t��}8a�hl��not_le_of_lt�W������_����D�V���8��H�V�(*��N��le_of_add_le_add_right�W�;��N����W�������W���W�;���W�;��N������h����h����m�
����_��h������q������N���q��W�_������_a�W������@���\���\�;Q���\�;T���������������������������x��{��W��{����D�V8������o�V�(*��m��p��]���r��p�����y�V�(*��m��p�PInfo���decl�add_inter_distrib���
��s9tuu��}����?��=�������
����9��u����	����}�8��?t������������(�����?_a�����������������������������������?�	����}��=�X�
������������(����?t_a����)�������������������inter_add_distrib��'c8t�	��������=���������������E_a��������F��H���������������������U�	���������Z������(��b_a���������c�������-������Z��p�&����PInfo���decl�cons_inter_distrib���
��a8sut��}����?��=�T����
����8��u����	��J�����J����J�}��?��?���U��G��F��W���F��F�&��F��I��F����:��;�'��T������d8�(���t��F�����'ct8�����
�����$�%9�*��o�z��t�*�����>�'���?c��L�������Ue_2�Z�g�\�g�^e_3�c����������t8���������<88����'���5��'ct����Z��W�
��t��?��?����W��	����?���PInfo���!decl�union_add_inter���
��s9tu��L������m��
����9��u�*��E����m�	�H����m�H����l���"���m�������������_a���-�����[����F������������3��8������������m���������y��88�	�H����m�H����m����������U��_a���-�
��[��������������d��� %�����8��o��8�	�H�m����H�V�������$��'��p_a���-�������F�������$�V����	��'��&��r���8�������'��>���_a���-��������C����'��=�add_inter_distrib�����8��H���V��:��<����������88�	��&��<�H�M��<����d��g�W_a����C���8��F��l����d�M�e��8��������8�PInfo���$decl�sub_add_inter���
��s9tu�����8��
���9�u�	��������58������������_a���}�����[t�}���t�������5�inter_comm��8�=v_x�����!���b8���	���}���v���=����������	������!���c���������>���L���������������������������������������'c������N��'c���� ���#������������>����TI������a�t�IH���
?�a��)��e8s�U�
/����"�V�(*��X������O�����O�h���	�
[�C����O�����O�88�
[��#�$�������8�8����(��1������O�8_a�\���������O�����O�tt����:t����(��.����8�	��1�
[�C������8����.8����1��X����"_a�\�����:�O���������o���pt�t������dt����1��T����8��	��X�
[�$��U��-8����X��}����V_a�\����������t����dt��t����X��{������T��-�	��}�
[�$��R8����}�������U������R_a�\����O������ct���O�t����}��Rt��R�	����
	������
	���$��,_a�\����O����t��������8���8��~8�
�X����)�
[��#��*88���3�����H�������[�'���8�	����
[��U���8����������]_a�\�����:��`tt����i���t�������T��u�	����
[�C�������8�����������,_a�\���������t�����������t�����8�(��[�'��8�	���
	�����
	�������8_a�\������������t�������8�����8�PInfo��/decl�sub_inter���
��s9tu���N����O��
���9�uadd_right_cancel��������M��(��O�	��J��add_right_cancel_semigroupto_add_semigroup���X��M��(��a��O��(��d8����g��i���L��8��9���8��(_a���}�
�+��]���V��2�����[��dt8��z�����~�������g8�sub_add_inter��8�	��i�������i������L��M��_a�����t�������i8���8��������PInfo��8decl�filter_proof_1��p�0Jh�~�8l₁wl₂�h�'1�'4���Dfilter���w�t�����8���0J����� w�!��"�'1�'G�������perm_filter���w�t8�PInfo��Edecl�����0J����su����0J�����%u�'^l��|������w����t8�PInfo��EVMR�_lambda_1VMR�VMC�'�E��VMC��E�%����Dfilter_main�'�!doc�`filter p s` returns the elements in `s` (with the same multiplicities)
 which satisfy `p`, and removes the rest.decl�equations_eqn_1����0J�����%u����t8������0J�����%u������PInfo�+�EATTR����+EqnL�+SEqnL�decl�coe_filter��p�0Jh���lw�����
���0i�%������t�����-�0J�.����/w�'�����PInfo�,�IATTR����,ATTR����,decl�filter_zero��p�0Jh���v���t8�
�t�-�A�A��1�0J�2����F���PInfo�0�LATTR����0ATTR����0decl�filter_cons_of_pos��p�0J_inst_1���ats���B�������w�����8��4�0J�5����6t�7���_x�����
?������wk�'�8�'���*8l�h���������a��u��'�8�'���98�2�jfilter_cons_of_pos����8�8�PInfo�3�NATTR����3decl�filter_cons_of_neg���4�0J�5���ats���X�B������4�0J�5����>t�?���_x���X����-��.l�h��Y��<��=�2�jfilter_cons_of_neg����8�8�PInfo�=�QATTR����=decl�filter_congr��p�0Jq�u�_inst_2�~�8_inst_3�~��8s��x�H�%Cs����
?��)�
���8��(��
���8��E�0J�F�u��G��q�H��s�I��t_x���J��K�x�s�#��X����V��y8�����
��V�8l�h�J��K�z�����:����V�J�V�1e�
��V�y18����J�V���
��V�
��[��8�	`�@filter_congr�V������������8�PInfo�D�Tdecl�filter_add���4�0J�5���sut��}������w������8�����4�0J�5����Qu�R��(�_x�_x��
?��*�-"�a��.��*8l₁�l₂�����9������=��9�2�jfilter_append����88�PInfo�P�XATTR����Pdecl�filter_le���4�0J�5���su�H�����4�0J�5����Yu�|_x��-���l��*7����
���w��jfilter_sublist������PInfo�X�\ATTR����Xdecl�filter_subset���4�0J�5���su�������4�0J�5����^u�*�����filter_le�t����PInfo�]�_ATTR����]decl�mem_filter���4�0J�5���ats�s�q����
�(N�B��4�0J�5����at�b���_x�s�����
����l��@mem_filter���
���wkt�PInfo�`�bATTR����`decl�of_mem_filter���4�0J�5���ats�h������4�0J�5����gt�h��i���{X�.����������
�.����mem_filter���w�t8�PInfo�f�edecl�mem_of_mem_filter���4�0J�5���ats�h���.���4�0J�5����lt�m��n���{ �.�����V�PInfo�k�hdecl�mem_filter_of_mem���4�0J�5���atl�m�(Nh������*t��4�0J�5����pt�q��r�(N�s������n�
��t�+��O���wk�t���w�+8�PInfo�o�kdecl�filter_eq_self���4�0J�5���sus����a�H�����4�0J�5����uu�|_x�s�}����v��w�-���l����}��������C����v��w�.�����w������h����@eq_of_sublist_of_length_eq������788������78����������K����|�@filter_eq_self������PInfo�t�ndecl�filter_eq_nil���4�0J�5���sus����ta�H���X���4�0J�5����~u�|_x�s���������-��X��l�����������	�����������w������h����jeq_nil_of_length_eq_zero���������������	�|�@filter_eq_nil������PInfo�}�sdecl�filter_le_filter���4�0J�5���sut�h�/�]��t����4�0J�5�����u������/�+_x�_x�U������u�8��t8l₁�l₂��h�+'�+(����[�V�zet��8�@filter_sublist_filter�[�V�zet8�PInfo���xdecl�le_filter���4�0J�5���sut�s�.����
�/a�H�%q����4�0J�5�����u����w��3��8h��3���L���������t��8�����w�8a�m���of_mem_filter�V��u�8����V����8t_x��8_a�
��L��C�
l���t������%��#���
��e��h�����W�w��e�x���V���1Z���_x�\������]�[�v�����\��y����[�n��zJ�����
[�������[���0�(�filter_eq_self�[�n��zJ��filter_le_filter�[�n��zJ��8�PInfo���{decl�filter_sub���4�0J�5���_inst_2�ts�t������_��`�����8�������)��4�0J�5���������������
_x����U�X����+��,��V��[�8��������	����
?��*����������V�'a�	'��������*�	'���������	�����U�X������������������_��YV�������YY��������
?����������U���We_1���g�^�g�`e_2���Sc�
���
��t8��e�
����������[k��[oe_1�k���~��]t�%�`�%�fe_3�
���
*�A����A����2�����V��������[����8�������K��[��K��~���8��6��	jt�%�	j���S��������[����K��[8�\�	j���������A����A��~�������&�A��t8������&�[k��wk�������������������U�������	'����\���U���W���\e_2�
��g�`�g�fe_3�
����	j�	j�� ����e�t8���	j�g�	j�	n����e������������R�������	'�0���wk��W����������	��U�����A��a�t�UIH���W�
[��~�V�zJ��������[��]�'�8���������8s�\�	����v��������]��_�((�&�����v��v�&����v���������t������������;����_a�^��a����_�]�vf��������_��e�'�8���������8�������a����������������2����t�	����������v�����vt������������;����_a�^��a��������C���8������������������8����
/���1����h���	�a���������������������������
��_�vC���������`�����_a�`��i��S��T��e����(�����e�_�vC��c��!t���&���#��&t��&�;��.��0�������filter_cons_of_pos�_�]�vf���	����������������������L����_a�`���.��0����%�
��e�v5���.������K��1�_����������\���`���f�������	m�g�	n�g����K�������7�����m�t8����g��!����m��������I�
/��8�"�_����8�a����Im����	�i��*��'��/��i����*��������������.
���_a���
�������e�v5����������++�������������������."���������������
��e���*����	����i��T����)�������������f����T��)_a�f��
��
������������
��������������f��������=�e�_�vC���)8�	��������$�o��vCt���������������c��e�����������i8����_a�f��
�����
����w ��������������������(��e��!�����mem_filter_of_mem�e�o��vC�t8�	����i��Tt������������������t�_a�f�������p�v5��
������*�����t��
t��\�f�����X�������i��/���������F�����%_a�f����
����������t�(��e��!�t�	��F��E��/����F��\��������/�_a�f��
���������d����F��/��U��/��2�����/��ot�mem_of_mem_filter�e�_�vC�t��<��/��
����V��
���X�������������������;���filter_cons_of_neg�_�]�vf��������m����	��.��0��U�i��#��&�����,����������������*_a�f��
����������������������������
�������������������	��������������������������_a�f������������������������e�_�vC���)8��<��*�	����i��0��,�������������'_a�f��
��������������
������K�����������t��8��<�������D���������������J_a�f���������t��W���8�PInfo���ATTR�����decl�filter_union���4�0J�5���_inst_2���s�t�����������8��!����)��4�0J�5���������������	��(�����(����(���)��)���4��!���)��_��`�������8����)��B��6���$��B����$�!�����7��J��?8��B��I�����[j���[j�~���w����&�[j��!���N��P��[j��[ke_1�2�[o8��~��[t�%�^�%�`e_3�����I����I����2�A��V�S������[����n8�����[����~����8��6��%�����6���r��o��z�[��&���[8�w)�������I����I��~�������&�I��t8������\�w���#��`��������=8�!���_��`������V��[���888�)��N�����=8�)<��N�P���w���N�9���)��)�)���)����N��A�����w���=8��'��B���������)�!��������)��)�)��)��A�������)�)<��A��)����!��)��]���V��"���)��A����6�������A��)��)����6������)���PInfo����ATTR�����decl�filter_inter���4�0J�5���_inst_2���s�t�������������8��"����)��4�0J�5���������������*��Z��%��(��8�����%����)������w���$8��p���8��;��z���8���]��(��%�
��I��$������	��b��c�����m��.��le_filter���w���(��$���L��T�`inf_le_inf���=���������8��)��L��Ka�h��R��T��U�����������W��t��W8��������W��r�PInfo����ATTR�����decl�filter_filter���4�0J�5���q�x�_inst_2��rs������t�
���0i��a��
����
��anddecidable�����0i��4�0J�5������x����������t_x��
?��*��(���}��(����
����
�����������l�����9��5��
�������5����
�������7����2�@filter_filter����8�����PInfo����ATTR�����decl�filter_add_filter���4�0J�5���q�x�_inst_2���s����9����!���a��6����
��ordecidable�����0i�����4�0J�5������x����������
_x��
?�a�������a��(����6����
���������������	�!����������a�s�UIH�X�������������������V�6�1e���
��V����1e��������a�V�
�1e���
��V����1e������
/�����
[�C�������~�������C��~���[�6�n����
��[����n����1e������~���[�
�n����
��[����n����1e����h���
/�K;�+���������t��0g�&����t���]�6�n��1e�
��]����n��1e�n����&��t���]�
�n��1e�
��]����n��1e�n����&h�K;�	�a�7�������V�
��_�1e����7������_�6�o	�n��
��_����o	�n��n��1e���������_�
�o	�n��
��_����o	�n��n��1e���������������a������������a�7�����z�����������a���������������a��������������`���fe_1�
��g�	j�g�	ne_2��8�d���K���K��t8�p��g�����K����o������`��o���7����
��m�����������������������`���f����e_2�	m�g�	n�g�e_3�K���k���������t8��x�����6��������B���]���*����8�*���n�����>�V��l�����V���*�����*�����_���������_��ee_1�M��%�	j�%�	ne_2�������������t8����%����������\�_����������������7��
�������D�_���
����� ��%��������%�7�������4�;����`���`�;�������t��`��6���������������������7�������������J��L�������N�����{��K��>��s��y�����6�����������\�	E��or_congr��������������or_self��*������Q��>����������
�����������y�
��and_congr����������������*������K����� ��M��������M����2�����*�������� ��2�����A���������
��_���������������������������a�4�;���]�`��V�`�;���������������
�`�������������������	��`��������X�K;��������������������������&�����������&����������V��l�����X����������E��K����
�������V�*���,��C��������J��������J��M�����V��Z��^��_�
����f�
����������*��������������������X��y�����	�E��K��y�
���|�
��
��
�����
�������and_false��V�*���������������������X����ih�K;��������������������������$�����&�����
������X��������9�E��K����
������8�V�*���n�����������
�����C��������������V��Z��^��_������e�
����B�������*�����������������|���
�����
����B�������V�*����������������������������������������������2��;�����%��2��J������t��A��������J��2��;��U��������s��y�����X��\�������E��K��\�
���_���
��
���Y�
���B�����k�
��V�*�����������������|��
��
���i�
���B����
��
��V�*���A���������PInfo����decl�filter_add_not���4�0J�5���su��L������a��X��
��notdecidable��0i��4�0J�5�����u�	�����L�������6�����
����������0i����������
�����
����������0i����������	�����_a���}����������X��
�������88����������filter_add_filter�t����������	��	��"������	��.�����_a���}��������6����
�����������8�������
����
�����������88�}���J8����	�������v��w���6���������������	��^�����^���	���v��w�%q�6�������������M�v���]����v���7����\�>�����]���������i������p�_inst_1��*��68�RXdecidableem8��0i����|��T2���������
�����	��.��"�t����.�������_a���}�
��J8�8����.�t������t�������X�
�����filter_eq_nil�������	������������	�������%q�X�
�������s��M�������x����7�������|����X�������i�����E��"����
�������
�and_not_self��W���������	����������������p���������������������PInfo����decl�filter_map_proof_1��d��e�,f�8option�8l₁wl₂�h�'1�,*�,-�Dfilter_map����t�,-��'8��e�,���#�w����'1�,@��(��+�perm_filter_map����t8�PInfo���decl���d��e�,���#�,S��e�,���#su�,[l��,k��$��t���d�t8�PInfo���VMR�_lambda_1VMR�VMC�
����VMC������e��Dfilter_map_main�
�!doc�`filter_map f s` is a combination filter/map operation on `s`.
 The function `f : α → option β` is applied to each element of `s`;
 if `f a` is `some b` then `b` is added to the result, otherwise
 `a` is removed from the resulting multiset.decl�equations_eqn_1��d��e�,���#�u�,|���d�t8��R��e�,���#�u�,���[�PInfo���ATTR����EqnL�SEqnL�decl�coe_filter_map��d��e�,f��#lw�,|��Z�%��,���$�t8��e�,���#�w�,���g�PInfo���ATTR����ATTR����decl�filter_map_zero��d��e�,f��#�,���Wt8�A�,���e�,���#�,���{�PInfo���ATTR����ATTR����decl�filter_map_cons_none��d��e�,f��#ats�h�,��!������,���W�������8��e�,���#�t�������t_x��-��W����'����8l��-5��$���wk�'�����-N�@filter_map_cons_none����wk�8�PInfo���ATTR����decl�filter_map_cons_some��d��e�,f��#ats�b�h�,��!��J���-�������X�8���t��e�,� ��#�!t�"��#��$����2m_x�U�W��W�V���$r�Yt���tl���-2�I��/���$�V��������t����I��@filter_map_cons_some��V���t8�PInfo���ATTR����decl�filter_map_eq_map��d��e�,f�,�J�,S��y�V?t8��"���8�,���e�,�)�,funext�u��u�,R���,�su�|_x��,���W���V?���������t�,�l��/���H���,o�,kcongr_fun���t��,"���,n�@filter_map_eq_map���t�PInfo�(��decl�filter_map_eq_filter��p�0J_inst_2���7����filter_mapttoptionguardt8������1�0J�2����6wu��u���@��su�|_x��}��9����<���w����l��K�@filter_map����O����|congr_fun��t����Z����@filter_map_eq_filter���w��PInfo�0��decl�filter_map_filter_map��d����e�,���.�f�t��!tg�toption�ts��.��filter_map����8���t�filter_map���x�optionbind�����t��e�,���.��=��t�>��w�@��t_x��.���x��t����������C��������l��/�@filter_map����t�����@filter_map�������/#�@filter_map_filter_map������t�PInfo�<��decl�map_filter_map��d����e�,���.�f��tg�-�s��.��.�8��}���x�optionmap����t���e�,���.��L��t�M�-��N��t_x��.��.�t�������O��������l��/�/
t����������/#�@map_filter_map������t�PInfo�K��decl�filter_map_map��d����e�,���.�f�-�g��ws��.���{�X�����.���u�8t��e�,���.��V�-��W��w�X��t_x��.�����Y����.���u�t�l��/����x�������/#�@filter_map_map������t�PInfo�U��decl�filter_filter_map��d��e�,f��#p�u�_inst_2decidable_pred�ts��,��filter��t�XW������x�optionfilter����
������e�,�]��#�^�u��_��0�a��t_x��-��1����;�������c���8����x��l��-5�@filter�����;���������Q�-N�@filter_filter_map�������;�PInfo�\��decl�filter_map_filter��d��e�,p�u�_inst_2�~�f�����s��,����8�����;���x�ite�����!��0i������e�,�k�u��l�~��m��t�n��t_x��-���t��|��x����o���{�����!������l��-5���t��5���x�������-N�@filter_map_filter������xt�PInfo�j��decl�filter_map_some��s:��9888��u�m_x9v��;���tl<�/K��Wtt�����@filter_map_somet�PInfo�t��ATTR����tdecl�mem_filter_map��d��e�,f��#subts�-���t8��a��Z��������8��e�,�z��#�{u�|t��_x�s�-�8��5�	
�}��-��,��~�����t8l��@mem_filter_map����8�PInfo�y��ATTR����ydecl�map_filter_map_of_inv��d��e�,f��#g�8�Hx�7option�optionmap���8�0i����s���map���t��5��e�,����#������������t_x��
?��������l����@map������]�2�@map_filter_map_of_inv�����t�PInfo����decl�filter_map_le_filter_map��d��e�,f��#sut�h�/�1���t�����e�,����#��u������/�+_x�_x�U�1!���8���t8l₁�l₂��h�+'�1.��$�[�V�t��X8�@filter_map_sublist_filter_map��[�V�t8�PInfo����decl�powerset_aux��l�P,�����9����sublists_aux89x<y�PJ����'��PInfo����VMR��_lambda_1VMR��VMC��������VMC��	����������sublists_aux_maindecl��equations_eqn_1����7�P,���8��}����\�P,����PInfo����ATTR�����EqnL��SEqnL��decl�powerset_aux_eq_map_coe��l����P:��sublists8����	��������v��<��u��P:��t<��<�������������
�����������
�$E��������������r�����r���������P,���PJe_17�Ph8�g��g�P�e_27�P�8�d�P��7�P������t8�p�P��g�P����������������8���������P,�����qN������������P:�����������f��<u����w�e_17����8�
��P��
��P�e_27�P�8���P��P��P���P��t8�����!�\�
��P��P����P��NN�\���N��������equations_eqn_18�Dmapequations_eqn_2<9N������c9�cue_1��d����d�P�e_2������P��P����W����t8�=�d�P��P�������������8������������listconsinj_eq9�����������
��$E��$��������������������������	��������sublists_aux₁89x<����Ru����������^��P,���_a�P,�7�PJ��stu8��w��w�%��PX��fw8��w��e��q��I��\��P,��\���
�A��]����@sublists_aux₁_eq_sublists_aux89��[Annot�t�	��^��]�P:��V<x<��o�Rw����^�����PH���_a�PH���e��Utu8��w��i�R���q����PY����^����@sublists_aux_cons_eq_sublists_aux₁8�	�����]listbind<9���������<9�P,listret9N����������c���_a�P,�����PX���w8��w����R��������������{�������@bind_ret_eq_map<9N����	�����]��Xx<���wu������wu�PJ���u�����������c���_a�P,�������������������������@sublists_aux₁_bind8<9�����������\�PInfo����decl�mem_powerset_aux��ls9s�u�PJ��u���t8�������9�z�_xus�Q��Ph�������t����t�	aws��#�{K��&�H�{K��)�����5���	�w���s�Q���������������-���|���w������Lw��w��4��w���w���4s���a��
��8�q����V�n���]��<��0��_���0��V����
���P����������}�0��}��_��h��#�%��Pv����t��v�f����Ph�g��g�e_2��g�P��g�P�e_37�Q)8�d�`���`���������t8��g������������"�{K�%��|���&��|�powerset_aux_eq_map_coe�t����}��v������%���{����������e_1�2���8�7�����t8����u��^�D����������t�����]������t�
��\��X��]�
���p��\����p��\�@mem_sublists����s��X����s��X��8�������]andcomm��\��X��3��b���3��V�n�����X�o��X�&���b����St�������H�%���)��������������e_2��g�W�g�\e_3�
��	�-�����t8�����G�{K�%������)��)����)����������t�subpermequations_eqn_1�t��������a����������
���X�������n�����3��]�S;��X��\����`��_�����_����w���TIwlistinhabitedt���PInfo����ATTR�����decl�powerset_aux'���p�l�P:��sublists'8�PInfo���VMR��_lambda_1VMR��VMC����VMC�����������zdecl��equations_eqn_1����������8��^��������c�PInfo���ATTR�����EqnL��SEqnL��decl�powerset_aux_perm_powerset_aux'��l�9�����c����	��m��k�����c����m��r��c���_a�P,��u����at8��x��{����m������8�r<9N�����]�sublists_perm_sublists'8�PInfo���decl�powerset_aux'_nil��7��a�S���w�R�S�������PInfo���	ATTR�����ATTR�����decl�powerset_aux'_cons��al<��e��z�O���PJ��u��z�/Luu���������<�	�����e����PX��[t�PW���wu��N�������PW���u����������������PJ���Phe_17���8�g�P��g�P�e_2���8�d�P��7�P������t8�p�P��g�P�����������������PJ�������PX�PVw�N����������PX���Pf��w�������������PX����O�����t�O����������e_17�
0��8�
��P��
��P�e_27�P�8���Q'�P��Q��Q�t8���
0�*�^�
��Q'�Q)���Q����\�����������@sublists'_const8��wu�������chas_append�PJ�
��Ph�
����e_27�P�8�
��P��
��P�e_3���8���Q)�Q)���Q)����E�t8���Q)�
��Q)�������E�����������\�PJ����������jmap_mapwwu��N�����������\��������������������������������
0u����
0��e_17�
0��8�
��P��
��P�e_2������P��P��/L�\�\�����t8���
0�\�^�
��P��Q)���������\������������r��euu�������_����PInfo���ATTR�����decl�powerset_aux'_perm��l₁l₂<p�����a�t���8�����<����drec������������U��a�t���8�	����������������w�t����������������Ph����e_1��?��P���P�e_2��A�d�Q)���^�����t8�p�Q)��Q)��������������������������$2����a�l₁�l₂�p��8IH��W��a�Vt���8�	��\��a�[��������t�����P����\�������$������t��������
����P���Q)��7���8��f��QK��7�	j8�d�	n���	n���)�t8�p��&���&�����)��������[����	����Ct���\������������\�\�$����a�b�l��	�������	!��t�����`�	"������P����U�����k�/L�U�U�D��l��k��o�7��l��o����U�U�U�7�D��l��m��u��r��o��x�D�7��l����g�����P���P�����A��Q)������7��!8�d�QK���������t8�p�QK��QK���������c�����P���c��k��m��q��}�������k�����a��s��������A�8��a����;�P����P����P�e_2����g����g��!e_37�QK8����"��"����"������t8����"�g��"��&��������j���������t�����}��������u��s��q��}�����s���������
0�U�W���
0�W�\e_17���8�g�Q)�g���e_2������QK�QK�/L���������t8���9��g�QK��"�������7�7�\��U�W�7�����������3�U�U�7��l��q�����t��t�\�P���t�����|��d�U�U�U�7�D��l���U��l��q��}��f��������f��k��m��t��������2��k����	"��p��8��5����	"�����8��3�����:��������:��r��p��t�����F��p��3��H���D�D��
�D��8��3��B���D��l��t�����q��q����q��G�����!�D�7��l��+��t����perm_app_right�U��~�����l�	�����~��������k��r��t��|�������u��{��P���~_a�P��������P����W�/L�W�W���������������������W�W�W����������������������������������u��y��P���y��~��*��q��t��|�	��{��z��k��u��q�������{���������_a�P���������������������������{��������������*��t��q����	��������x������������������U���W�\��z_a������������������������������������������6w�U���U�W��z���s�U�	�X������������������S������X�T�T�������X���T�����
���������W����������2�����W�W�W�������Vt�������������������
���T�T��������
�t�������
����perm_app_left�U��w��������U��q��tl₁�l₂�l₃�p₁��t8p₂�!�8IH₁�������IH₂�����a�]���[���trans�`��a�_���b���b�8t8�PInfo���decl�powerset_aux_perm��l₁l₂<p������&��%8���<����`���&�����{�powerset_aux_perm_powerset_aux'�t�����������{�powerset_aux'_perm�t8�%���{������8�PInfo��decl�powerset_proof_1��l₁l₂<h��87���Ph$�Ph&�"�Ph�����&�����{���<�������Ph�����&��{�powerset_aux_perm�t8�PInfo�� decl���s�P.��!��<�P.il<�PU����8�PInfo�� VMR�_lambda_1VMR�VMC�#� ��VMC�	� �!����#�!decl�equations_eqn_1���!7�P.��8�����!�\�P.����PInfo�%� ATTR����%EqnL�%SEqnL�decl�powerset_coe��l������O�P7�����'���P,�P.�������P7����PInfo�&�%decl�powerset_coe'��l����P7��^��)���P,$�P,&9�����^���8�PInfo�(�)ATTR����(decl�powerset_zero��7�P����w��w�Q��S�P����PInfo�*�-ATTR����*ATTR����*decl�powerset_cons��as97�PL���t��Q����/5uu�����,�-9�z�_xu7�Pj�����i���Pj������/5���h��lw�	�����{L�����{K����%������Ph����Pv��[��Pu��������
��/��1�Pu��2���h���/����)��B���)���Ps��9�Ps��A��B���Pj���Q�e_17�P�8�g�P��g�P�e_27�P�8�d�Q+�7�Q+���V�t8�p�Q+�g�Q+�����V���#��H���Pj��#�Ps�Pv��.���H��o�����r�!��!�e_1����U�P�t8�����{L�����{L�h�%������e_1�8���U��We_2��� ��O����t8�8���^�`�����tt�=,t�{K�%�������t�(���D�#��Ph�Pj��������P�e_2������P��P�t8�P���Pr��q��9���Ph��q��1�Pv�Pt��
��/��9����Pv���P������/���������������e_17����U8�
��P��
��P�e_27�Q'8���QH�Q)�Q6��Q6�t8�������`�
��QH������Q6����\������p�����,�t��3�����/�������;�Ph�
�����
��P�e_2����
��P��
��P�e_3���������������������t8������
������!�������,��0��0�\�Ph��0�����8��d�����
��/��(��J��n��(���Ps��0�Ps��@��J�����Pj���Q����P�e_27�P�8�g�P��g�P�e_3��V8���`��=����=����A�t8����=�g��=�f����A�����%��1��n��%���%���1����{K�%���������'��3��n��'�Ps�/L���h��0��3��i����1��n�f��{�f��|e_17�
0��U8�s�P��s�P�e_2��S���Q+�Q+�/5�^�^���{�t8��� ��s�Q+��=����{��h�h�\����h��%��1��e�}���h��0�����m��@��#���h���/�9����0��@����K��B�����9��A�����9�PInfo�+�/ATTR����+decl�mem_powerset��st9s���PL��u8�����?�@9�'_xu_x�s�RH�����/8�	awb�s�Q���������-�������������	�w�C��D�s�R��������]���Dw�������w�C��D�������P�Cw����Cw�D���Cw�L��D�����D���D�����s������
��t�%8���n�����<�����
����������
���P������[�8����%���
����=�}�/L���|��[���$���Q��}B����Q�E����Q�H����Q�.���-��.�f����Q��g��g�Ue_2�Z�g�P��g�Q+e_37��=8�d��I���f��I����I�t8�q�g��I�����I��Q����}�9��8�����<���Q��������0���<�!��!�e_1��=�P�t8����V���0���b��������=��.�	���}��-����.��$������|�}��,����������e_1�2���8�7��!��t8����#���D����������"�����������"�
��
�����
�����
������
�@mem_sublists'�8��!������!����t������������
��������������n������o���st������f�������~�0���������������Ue_2�Z�g�\�g�^e_3�c�h��������t8�u�����,���}��c���0���w������������*�8������������������
����������n��������S;����
������
�����
���Cw�������T>���w��P��R���PInfo�>�3ATTR����>decl�map_single_le_powerset��s�.�P.��P.��P.�
9�/69a8�������M�Q<>_x9�.�PL��PL��PL�
u�/@u�Nt�a��l<�	��F��I������u�/Mu��H�PX���t����S��]���S��F�PU��X�PU��\��]�����PL�g�Pj�g�Q�e_2��P�g�P��g�P�e_3��S��U�.�Q+����k�t8��a��k���E��P��c���PL��P��I���c�f�'X�f�N��e_17�N��8�s��s�Ue_2�Z�$�P��/5�[�\�����t8���N�[�^�s�\�Q+��������H��H�\�'X��H���9�t���tu��H��R��e�����R�����e�su�s�e_1�
����P�t8���������powerset_coet����f��]��u��X��\���]�	��U��V���twu����t��\��U�PX�/Mw�����\����������PJ���_a�PJ�����/L�������������8�Pv��z8����������������PJ��������dtwu�����u�����\�$wu������[�@map_ret_sublist_sublistst�PInfo�L�7decl�card_powerset��s��59����	C

����has_pow���7��Z��?_x9��5u����0�]�	��<���5��R��0�V������B���	�<��w��5���%��0�h�{K��<��S��L<��<��A��<���<���A���0�"t��^�����=��^����=�"w�����^��e�"u�����g��e��5�PU�����k���PL���Pje_17�Q�8��P��t8�5���R��n�����n������t��u�����wu�����@length_sublists't��@��^chas_pow

���g��g�e_2���g��g�e_3������-������t8��������.�����<����?��]����?�V���]�"��������t����`�����^����<���TI<��O8���PInfo�Y�AATTR����Ydecl�revzip_powerset_aux��lxprod99h����uu����������revzipu����L�ffst��8�fsnd��8��)��d�e����g������a���b��
��������������prodmk��8���������7���������������g��V���}������t�����t��D�
���������*����*8�/L�������*prodmap������������{�����@��V�k����l�x����
����������E����E����������7����U�U��5���U���U�2�2�������C����2����2�
��������i����i������o7�������5�����|�|t��d����@��������2��*��;8��>����g�q��2�q��i�
��������5�����N�N���dprodexists���q��2�������k����l���
�������������������������k������������������������l��
����������������������Se_17����W�W8�g����\�\�g����^�^e_27����`�`8�d����f�f�7��������t8�p����g���������������prodmapequations_eqn_1�����N�N8���\����
���0��<��zip����{�,���{��@���2��
_a������u��u����ut�/L��i��u��|������o�,���o����������>�����>��
�hequations_eqn_1���{�
���0������|�Pv��	�����,��9_a��,���������*��o��*��������:���@zip_map��������{��	�
���0��7�,���|��:��Ph��Z_a�Ph�����B�,���A����B����\��8��Ph��8��Z�@map_reverse�����{�
���0��6��&��Y��&��\��_��&_a�Ph�����@��@��a��@����@��a����|��|����
���0������&��|��=���_a��,���������@��G�������{��/���&l₁�h_h�����l��
��J������t��O��T���U�U�6������������
?�a����U�U�����U�U��2�l₂�h_h_h����
l�����!�!�����������!�!�8����!����V�������W�W�	`��w����
�������
[�C����\�\�����\�\��i�Vh���h_h_h_right7������\�\�i��it���dcases_on
������^�^�!��Qt_1�����������`�`�!����H_1����]8H_2heq
7��������������v$�Qb��_���t8�	k���	j��������	j�	j�e����	j�	j�e����V��7����V��������	�e�����������f�f�v���������8�����\�����	k�� ��"t��&t��*����
��	������=��<��R�\�����<�����x����������[��e�revzip_sublists���e�[���[�����[��	8�\����V��
��3���V�PInfo�c�Gdecl�revzip_powerset_aux'��lx���h��������{��������������������k����l��
�������������V�����&�
���0��<��=��.t���������V�k����l��q����
��K��L��[����]����������g����2�
��o��p��+������������������������g�q��2�q��i�
����������������q��2�������k����l��������������������������k��������������������������l��
���������������������
���0��<������������������_a�������������������%����������,��������0����
���0��6�Pv����Pv��������=��
_a��,�����@��*�����*�����G���������T�������
���0����Y������_��_a�Ph�������a����������!��	��n��	����t����
���0��6�����Y�����!��_���_a�Ph�����@��a����a��?�������:�����t�
���0��������:��=��O_a��,��������?��G����P��9������l₁�h_h������l��
���������������j���l₂�h_h_h��i�
l��������[�V�������
��s������h��sh_h_h_right�����2H_1��5��P����QH_2��X��a�revzip_sublists'���e�[���[��p8��v��|�PInfo���Odecl�revzip_powerset_aux_lemma��_inst_2�l<l'�PJHx��*������8��!������8�����8�N�7������/L���ux�����b���8������<���PJ������	�����forall₂��u��u��v����������������
*����a������_a����7�������t�/L�������������2�t����������������������������@forall₂_eq_eq_eq��u�	�������a��uc���T8������8���������.
���_a����������������������������������@forall₂_map_right_iff��u��u���v������8�
����p��us��������/L��u��������8R����u�R9�������S!e_1�2����S�08����������e_27���8���������!e_3����d��"��������	j�	j�	j�[���2�V�t8�^����0����"���3��6���_��������0�	{����<��1�[�V��2��������&����u�������������\�������8�@revzip_map_fst�8�	���������u������������������n������������w�.
��_a�������������U��������.�	`�����/L���������������w������w��
���u�����������@forall₂_same��u��t���x��uh���������������
�U�U����S��������'���������W����8������8����i����8s�Ut�W��������(��������8����\����3��t8������^�^�������3�V����	�������������[���t������������������^�^���t���������;����_a�^�������t����������]���[���������������������u�����������	��������������������;����������_a�^�����������7����`�`�������`�`����������������������]�(���������u����PInfo���Wdecl�revzip_powerset_aux_perm_aux'��l�������9�����F��c����	��J��E�/L9�����9��uu�������t�������
1�88������I����J��e������G_a��j�������������m�������J��c�revzip_powerset_aux_lemma8�8�t�
1�8����revzip_powerset_aux8�	��e��d��b��c����e�����k��I_a��j���m��������u������8��9���������
1�V88��)������������e��������c�revzip_powerset_aux'8���9�����a�����c����PInfo���cdecl�revzip_powerset_aux_perm��l₁l₂<p����*��������{�����<����	��������j��*���������������������V�
1�[88�U���&�����{�����������,���e_1���8���S���'e_27��(8�d��)����������t8�p��)���)�����������������,�����������������D��&���l���y���W��?����t���
0���u���
0���e_17�
0���S8�
��P��
��P�e_2��A��B��)�/L�^������%�t8���
0�^����
��Q)�������%���
����6w������u��
������fst����e_1����W���\e_2�
������������t8�M����`����������#������\���������Ue_2�Z�g�\�g�^e_3�c����S����_�t8�����_������D�U����}��D�U����t���t8��#��&��&����&��������8������*�����&��{����PInfo���ldecl�antidiagonal_proof_1��l₁l₂<h���7����,$��,&��*"��,�����������������<���������,����������revzip_powerset_aux_perm�t8�PInfo���vdecl����s������������il<B������E������H������.������������8�PInfo���vVMR��_lambda_1VMR��_lambda_2VMR��VMC���v��VMC���x�����hVMC���v��������!doc��The antidiagonal of a multiset `s` consists of all pairs `(t₁, t₂)`
   such that `t₁ + t₂ = s`. These pairs are counted with multiplicities.decl��equations_eqn_1����7������8�������\�������PInfo���vATTR�����EqnL��SEqnL��decl�antidiagonal_coe��l������OB��j���E��j���H��j���.�����G���S�������PInfo���{ATTR�����decl�antidiagonal_coe'��l��������I�������j$��j&�����G��I�revzip_powerset_aux_perm_aux'8�PInfo���~ATTR�����decl�mem_antidiagonal��sx���s��������������t8v�����uu���uu8���������z�_xus��+��*����*8�������8lw�	s�� ��!�{K����{Ks��0�����%����%�����.��5�<��+��2���+�� B��,��E��,��H��,��.��*��1��2�f����*���g��u�g��e_2����g����g���e_37���8�d����������T����Y�t8�p����g��T�����Y���88�\��*8��*��G������*��!�%���G������e_1���x��St8�����{K�%�����antidiagonal_coe�����H��2�	���*8��1��-��4���������������{K�%�����w��2��4h��2��8th��4�	�������?8������
��6�!����������������_��`������V��[�
1�]88����������������������
�R��P��������t������������������V��[��]�
1�_88����������������������������f����u���
����
���Se_2����
���(�
���)e_37��.8�d�����������������t8����
�������������tt�\��ut��������������������������%���������8��������������e_17�
0�U���8�
��P��
��P�e_2�������.�/L�`������/�t8���
0�`����
�����������/��� ����6w�������� ������������Ue_1�Z���\���^e_2�c�������9���9�t8�Jb���f������9����������\������U���We_2���g�^�g�`e_3���9��������h�t8�9���h�����%�����|����%�8����������\��������������������u���t����S-�������������S2����������������
�������������6�%���������������t��~�%��������������������������u����!��������%������U�
�+�������W�Wt����W�Wt�����~��+��,��V��[��]��_�
1�e88���ttx₁�x₂����
?�a������8�������2���W���W�
����C�������t��������������������[��]��_��e�
1��88������������t8��������������������������������"�V�����	�����������������&����_a�W�����������������������,�������������V��������\�����$�PInfo����doc��A pair `(t₁, t₂)` of multisets is contained in `antidiagonal s`
   if and only if `t₁ + t₂ = s`.ATTR�����decl�antidiagonal_map_fst��s����/5���9���99�����������?_x9���/5���u����
��l<�	����a��
���R��x����������l��o���l����n��n��o���PL���Pje_1��t�g�P��g�P�e_27�P�8�d�P����Q���Q�t8�p�P��g�P������Q���j��n�����j�PU�/L���u����������n�����a����������f�
0�����f�
0��*�e_17�
0��u�8�s���s��}e_27��N8����O�P��/5����\�����t8���
0����^�s��O�Q+�����������\c��������i����������i�����������������
������u���e_1�
������t8�����������t�D�#�����������,����e_2����������}t8B�����}����������l�PJ��Phe_1������P����t8�����������r������u������D�#��PJ�PL���Ph�����e_2��?���P��P�t8�P���PT��������hu�����R��n�������v��o��u�������$2u����PInfo����ATTR�����decl�antidiagonal_map_snd��s�����V���99����������?_x9����`����b��l<�	����B��i��R��o����K��o���K��v��o�����I��n�����I�PU�,u�����n��V�PU����������Y��V��B�����^��������������i����������������]��X�@revzip_map_sndu����3�u�����R��n�����/��4�PInfo�
��ATTR����
decl�antidiagonal_zero��7�������w�������w�w�u����h����S�������PInfo���ATTR����ATTR����decl�antidiagonal_cons��as97�����
�������������_�����5uuuu�/8u���b������������b���9�z�_xu7����!�i��������*�/5��*��*��5�����/8��h��"�������h�����"lw�	�����!�{L��������*�����*�����6��-�����l�����-��Y�����Y�������,����*�/L��*��*�����6��������������������������������F�����F��������������ue_17���8�g��}�g��Ne_27��O8�d��P���Q���Q�t8�p��P�g��P�����Q���������x�����F��������������!���"����{L����������D�#���,�����������e_27���8����'��Nt8B��'��N���E��!�������!�����Y��������E��������G��Ph����e_1��?�����t8����U�� �����A�t�������
��Ph�
����e_1��?�
��P��
��P�e_2��A��#���^�^���a�t8��L��/����a��������������F����@reverse_append���������������x��������F�����F����������������������e_27��}8�g��N�g��Oe_3��S����T��T����T������t8����T�g��T��������������������x��������F�������fa��*��u�f���u��e_17�����S8�s��}�s��Ne_2������P��P�/5�����������t8����������s��P��T�������������\��������*�����y��F�����������{��������,��B�����������������*��*��������������x�����������������������������*����������������9���*������������������*�������	�����������6��k��������l���������������=���_a��,����u��@����������>8�������%��$��a��)��a��%��������u����u��5�����/8����@��%��.��5��9���:��?��1��4��E����������,�������N��������h�������	���������6��������������f��=���_a��,���1��4��@��'��:��%��(��.��E��1��q������d��R��d�����X�h����������	��f��������������b�����e����f���=���_a��,���1��q��@��)��l��.��!�–����f�‹�@zip_append��������������	��"�����§�������«���«�©�¨����¨�¨�<�¨�ª�¨���ª�§����¨�@length_reverse����������h������²����¨���	������e��e��������=�‹_a��,���!��4��>��,�“��.�–�š�����e����;��,�
����
����e_2��4�
���'�
���(e_3��,����.��.����.������t8����.�
���.�������������ˆ����t������	��������������������������Ph�����e_1��?�g�P��g�P�e_2��A�����������t8������������������������/T����������	��Ph�����������	�������������=����=������������C��<�����E��%������������������q���h�������H��E�@reverse_inj�����������E���2������Š��d��t����������������c�	��������c�����s����s�����y��r�������%�������������c��������c��Y�������R�������g�Ph�g���e_1��?���P�t8�,�U�������-����|����Z��������4���$2��*��e�PInfo���ATTR����decl�card_antidiagonal��s��5��������1��.�
����(��Z��1�ú�.8�ý_a�����5��a����0���.@������ÿ�ø�card_map���9��X����
���2�ÿ��P.���_a�P.����5��8������5�������2��Z��P.��Z����antidiagonal_map_fst8�card_powerset8�PInfo�-��ATTR����-decl�prod_map_add��d��e�,_inst_2comm_semiring�suf�.�g�@��-��dn�
H����,�a��-��G���G���
�����0i�-t�F��F������,}���p���F��F��F����Iu������.���n���F�������t��e�,�5����7u�8�.��9�@��
�7��-����-�:��N�G���G��������0i�F��F����,}��S��;��S�F��F��F���1�I�������/������E�G�������t�	�-������������#����������]����]�-��K'��I���Ip�����h��G��X��h�3���X����G��h���Ih���-��/�e_2�G"�G&�It�[������W�G�G3��
�d�������\��h�3���\�-��G���G������h�F��F��F�����h�Ĉ�ĉ�-}��-��Đ��h���G�ē�Ĉ���,���h�G�ĝ�G.����[�ġ�]?��[�,���"��������#�u����h���ġ�Ĩ��#����Ī�į�ı�f�����f���S�e_1�J�����V8�s��O�s��Pe_27��T8�J
����04�,}����_�����t8�J�����e�s����1���������"��"�J-�;�����"��Z�Ķ���H
�����"�Ī�į����e_1�F���G��0e_2�I��W�N���N��t8�-2�_��04�1����N���F��F��F�������.�����Ī����F�����Ī��h�3�������h��h��h�Ga����
��h�3���
��p��h��|��	�G�G38����h�3�����p��h��|��
�G�Gn�ă�	����to_monoid������h�İ�G�-������"�H�����h�G���H�������e_2�GE�g�[�g�]e_3�GG�GJ�-�e����J�t8�GV��J��č��h��h�2>��h�Ĝ�Ē�G8���X���Đ��h����j��G~��h��a�s�Uih�/���E�/��:�V�G��G��G����V����G��G���1�,}�����;����G��G��G���w�d�����V��NG����ŋ�G��������V�	�1\�ŋ�G��:�[�-�[�G��[�G��[���[�V������G��G���w�,}����V�;����G��G��G��ş��t����[�V�0����ų�`��������[��������������1\��z�ū�ŭ�	�����Ű�+�Ż�ž8�ū�ŭ�	�����Ű���Ż�����z�ū�ŭ������������ū�ŭ�������������G��Ũ����G��Ũ�ū�ŭ������Ţ����������G��G��G��G��Ū����������ū�ŭ�	�����Ű�Ţ�+���Ż����������ň��z���J�ū�Ž����������G��I��V�I��V�K*�Ŋ���ŋ�Ŧ8������ŋ�G����������Ih�V��0��0�<�07�H�It�e��Ŋ�ŧ���H�ťt8�eW�V�Ŋ�����Hh�Ň�����H<�������3�������sum_map_mul_left�����V��w������ż�H	�Ū�������0d����V����������������������P���������]t�IK�]�G��]���]�[�q$�F�F��]�F��]�F��]��Z�KM����]�[�0��8��g�0���8�Xq����V�Ū����������������G�����ū�Y?�����������������G����Ƅ�3��G����Y?�������Y=�-}�G�ZN�G�Y��G�-e�G�-g�G�-i�V�������ƍ�Y?�Ž��������5�\�\�\�\�/8�\������Ž�Ơ�Ƥ���ƥ����Ə�ƍ�Ž����O������Ʃ�Ư�Ʊ�f�����[�f�����]�=�J�����_8�s����s���>7��08�J
����	n�	n�J�,}����������t8�J�������s����K��������ż�ż�J-�;����[�ż�ſ�Ƹ��[t8�-�����V�ż�Ʃ�Ư���H�G���0���0e_2�07�g�1��g�Je_3�K��GH�K��K��-�K�������t8�K��g�K��0>�������Y>�ƪ����ƌ�ƪ�ŭ�
�����������V�ż�Ƨ����������������V�ż�Ƨ�����K�����������������V�3��]���������]�;����F��_�F��_�F��_���_�]�I�����_�]�N�����f�f��:�1������f�f��5�`�`�`�`�/8�`��8��k��d�F��o��_�I��]����]����]��f�F��`��j��o��S��H��P8��V�2������������]��H��P8���GB�]���_���ee_2�G��g���g��e_3�,��8�GH���F������y�t8�-2��g������y���c��g�0����f��j���Ih�]��04��1��<�Y��Y���t8�It�����f�ǒ��i�f�^��f�K�e_1�J�K�8�s�	j�s�	ne_2����J
��0>�,}�����ǫ�t8�J�:���s��K����ǫ����J-�^���Ǒ��h����Ǒ��N��h��h��map_fst�`�`�`�`��N��8iddef���`��h��g��l����f��U��,�����g�N��F��n��_��X�I��]�Io�]��f�F��o�Ǣ�������3��0�����l����m��������������������map_snd�`�`�`�`��N��8�N�����m�eW�]��f�F��nmul_left_comm��]��]��j�F��o�ư����ƌ�ư�ŭ���ƭ��������%�ƭ�����K��%���������������V��,��I��M����N8��d��d�q$��j��o��_��X�����2�]��Z�q$��>��j��o��4��H��18��8��n��18�ǐ��g�0����D��6��,��M��g�N��q$��i����q$��j�Ǣ��L��R�����L�0����h��R�����K��[�������N8�N����h���q$��i��g��l����D��o�Ǣ��p��n�����o��m�����o��N��m��m������N8�����mmul_assoc��]��<�q$��j��o�Y��G�ƙ�������f�V�Ū����������������H�������PInfo�4��decl�powerset_len_aux��n�l<�PJ��U��V<�@sublists_len_auxtu8���Y�PInfo�T��VMR�T_lambda_1VMR�TVMC�X���VMC�T���V�U���X�@sublists_len_aux_maindecl�Tequations_eqn_1���U��V<��e�T�t8�ȿ��U��V<��_����PInfo�\��ATTR����\EqnL�\SEqnL�Tdecl�powerset_len_aux_eq_map_coe��n�l<����PX�@sublists_lent8��^��_<�	�����e�ȿ�����������������_a�PJ��������t8�Pv����t8������������ȿ�\t8�	�����e��������Y���������������ȿ_a�PJ�����ȹ��t8�������������������@sublists_len_aux_eqtu8���Y�	�����e�������������������_a�PJ������-���������������������jappend_nilu�����_����PInfo�]��decl�mem_powerset_len_aux��n�l<sus��$����
����'��%4t��g��h<�iu�M�_x�s��=�����t�
��F�U��� =��	���s��>��K�
��C�U���������s������
�
��	���"����8�
���n��
��j��b��/������`��x�������_�����w����<��W��m���W������
���������� ����m�Ƀ��=�0���*�����t�Ɍ�f��@����g��g�Ue_2�Z�g�P��g�Q)e_3�� �d��!���G��!���ɛ�t8�q�g��!����ɛ���<���0���w��K�ɓ�powerset_len_aux_eq_map_coe��t���ɔ�Ɍ����0��ɒ����ɋ��l�������Ɋ�����k����
��ɇ��h���ɇ��h�@mem_sublists_len����ɉ��j���ɉ��j���8��^��v�
���Y��r���Y���n�����j�o��j�s���r����et�������-�0��U����������0���w�U��U��&�U�����������t���t��������q����������
���j��������p�n�������p�S;��j��b��]��u����[�/�����[��0��/��!#���0���w�������<�l₁��w��m��v_x��m_a������
�
�r���"���%�t���������
�
�%����"�V��!���q����Q�
���n�!�
�!���%�����H���5���+��P�
l�
�%�8���"�[8�V�!�8��+�
��k��n�
�����n���
����%��[��"�]��[h_left��kh_right�%�t��
l�%���[��"�_��]�r�
�ʅ�ʊ�
�����n���
���[���_��"�e�V�_8h_left_left�ʅh_left_right��ʘ��_���
���n���
����]�q���e��"���[�e��ʬ�ʱ����ʫ������[����_t8���ʯ�ʮ��e�,���[��%����[t_x��v_a�
���n��
��@��8���d8��
l���n���
��O��F���:t��w�
�����������!�
�
��X���g�V��U�w����x��_���*�n�*�
�%�����V�w���*����r�����
�
��u��ʇ�]��s8left_w�*left_h���
l��8��%�8�[�y�
�����ʎ�����
�
�ʓ��ʮ�e�ʐleft_h_left��left_h_right��t�]���������
�
�ʩ��"�����ʥ�ʶ��5���
����_��ʮ��e���[���;��?����=�ʯ�e�����[8�8�PInfo�f��ATTR����fdecl�powerset_len_aux_zero��l������8�Q��r�R9��}�	��n�����n����n�
����v��������l��l�
���v�����m��m��{�����j��m�����j����P:�R<��m�˄�P:����˅�ˇ�˄�P:���8�Q�ˋ�ɷ8�Q��	�ː�ˊ�@sublists_len_zero8���˅��4�ˆ��l��equations_eqn_1<9N��m��m�����m��>��l����l��F��z�����z��	��P,��l����PInfo�|��ATTR����|decl�powerset_len_aux_nil��n������h�#�����l����S�P,����PInfo����ATTR�����ATTR�����decl�powerset_len_aux_cons��n�a8lw�������;��U��-�����k�k���������8��w�	��������-�Pv����;��Pu��5�T�������Pu��<�k��������������%����������������Pv����T����������Pv����������������Pv����U����ɷ��;��U���������@sublists_len_succ_cons�t8������������������������������&�T�����������������������������������Pv����������{����|e_1��w�
��P��
��P�e_2��A��C��$�^���/�t8�����M����/��k�k����k�����+��t����k����������PInfo����ATTR�����decl�powerset_len_aux_perm��n�l₁<l₂wp�~����K��J8������<��w���~� \�������������%�������[�t��f8������������	�������V� gt��q8��������R�W��y����u��{��P���P�e_1����������!e_2�����.��	j��̀�t8�p��"��>���̀���r��y���P���r��p�Qt��y�U��U�e_1���V���V��e_27��8������"�������̢�t8� ��V����&���̢�� g�Q� �tt�\�!t�|�Vt��t��y�̗��t�̙8��y�̹88�̼8���8�$2�W��yn�IHn��m�������!����m����]���������������������&�Vt���8�$2�^����]�&��R�]a�]l₁��l₂��p��8IH�̀�̢�&�[t���8�	��)������&�]��H������Ht��)����&���	n����\�]�b��/L�	n�	n�
!����]�����	t����t���������&����7�8����!��7�8�d�'����)���-�t8�p��*���*�����-�����������]��������Ht���	n��
����������	n�	n�
!������t8a�]b�_l���	����������8��gt�����i��h������QK��������\�V�b��u����
�t����V����
�8��}��j��z��u�͂��~��|��}��n����q�͎��QK���"��7��&8��������7��#8�d��$���!��͛�t8�p��$���$����͛���l�͆���QK��x��k��u��z���̈́�͆�͵��u��x��j�̈́�͸��E���V8��j����;�QK����"����&e_27��8�g���g��#e_37��$8����%��%����%������t8����%�g��%��*��������t�ͻ�Ͷ���t�̈́�̈́�\�QK�̈́������y���̈́��p�͍�ͳ��x��o��u��z�͈�͋�͍�����u��x��n�͋��������n������������͋�͋����͋����͈�͋��o���ͅ�͌��y�;(������������������8�������t��"8��)�������8t��
�
���*������/��+����*���t�V���������������8�������� gt��E8�	�̀������	j�/L�	j�	j��.�̢� g8��P�t��R��&8��N��W��S��Q��R��%t8�̀���	j��.�u�	j�h����f��V��i�R�	j��m��k��n����d��t���"���&�����������#������d��%������{�t8�p��%���%�����{���[��p����"��[��k��N��n��o��p�Δ��N��r��o�Η����;��"����&��������"�g��#�g��$����(����*��*����*���΢�t8����*�g��*�.���΢���M��T��r�Γ��T��k��Q��n��r�ξ��Q��f��i��n�������m���
0�	n�e_17�
0��8�g���g��#e_2�������/L�������t8���
0���)�����������.��.�\��	j�	n��.��S����Γ��S�̢�Q8����U��U������V�J�V����7�]8���s��%����%�����t8� ��V�s��*������� g�Q� �88�\��8�����8���	j�	j��.��i��n�c�	j�c�	ne_1����d���d��#e_2������������ �t8����d��%��*���� ���j��j��0��j�ο��n�˥�	j�	j��.��Z��o�Γ��Z��m��W��n��o��D��W�����F�����V��V�����V��Y����Γ��Y�����X�����
��X��X����X����X����V��i��n��5��l��l��0��l��E��n��=��V�jcons_append�	j��j��n��o��9�Ζ��o�jnil_append�	j��o��c��s�Γ��c��m�Ε��r��s�π��N��o��r�ς�λ��]��o�Γ��]��F��o�ϋ��I��F��O��S�������a��k��b��r�Γ��b�����r�Ϛ�����������a����Γ��a�����`�����
��`��`����`����`����?��p��l��n��r��g�ρ��r��y��r�u�	j��l��j��n������������������� ��!�&�t���8�	��)�������� �t��/���������/����������7��)�������/����;xt��
����	n�	n�	n��.�
!��+������������
����
!��.��+����������B����������;��&�����������͘�g��$�g��%��7��*8���Ϋ�Ϋ���Ϋ�����t8���Ϋ�g�Ϋ�/��������������\��&�������������&��������/��,�����%��/�������,��'������������7�
0��8�g��#�g��$����(��/L��)��)���4�t8���
0��)������4���.��.�\�
&��.�����+��F8�t��3�	n�	n��.�����,���������������&�����d�	n�	n�	n��.�
!��+���������������������������$����������4�����u����*��4��w��I�
!�
!��L�
!�����z��Q�t��W�
!�����4���������������v�����e�
!��.��+�	�����)��������������������С���&���_a��&���C��������/L�������D�&t��Ъ�Ь�����D�;���Ь�������д�Э��Dt��Ъ�е�б�Ъ�Ю�з�Ь�м�Э�д�����C���������П���&�П������	n����������	�С�Р��������������С����Ц���_a��&���C�Ъ�г�и������������С�������������������������	�����)�О�����������������	n�������_a�������Ъ�����������C����Ь��������������6w�	n���	n�������s�	n�	���о��������*����*�����0���д��5��2��0���Э��5��:��7������e_1���!��e_27��)8�d�Ϊ�7�Ϊ���D�t8�p�Ϊ��Ϊ�����D���'��:�����'�д�Э��:������д�Э��������)��:��d�Э�д����<��7�
������5��5����7��2��x�����2��	������C�	n�Н��������	n�������l₁��l₂��l₃��p₁��t8p₂�ʣt8IH₁��)��������IH₂��C��D�&�_��Ѵ���`���!�&�e��ѻ��ѻ�8t8�t8�PInfo����decl�powerset_len_proof_1��n�l₁<l₂wh��7�����$���&�"��������K�����]������<��w��������������K��]�powerset_len_aux_perm��t8�PInfo����decl�������s9�PL������9���PL��lw�Ps������t8�PInfo����VMR��_lambda_1VMR��VMC������VMC��
���������T���!decl��equations_eqn_1�������9�����t8��������9�\�PL���PInfo����ATTR�����EqnL��SEqnL��decl�powerset_len_coe'��n�l<������PU���������<S�PL���PInfo����ATTR�����decl�powerset_len_coe��n�l<���PU���������<���PJ�PL�������PU�ɷt8�PInfo����decl�powerset_len_zero_left��s�����8�Q�9���Tt�����?_x9�����Q�Q��A�Q�l<�	����D���H���PU����A��Y��H����O��U�����M��S�����M�PU����Q��S��\��D���_������e_1��������Ue_2�Z������[���e�t8� ��������e��Q�Q�,������powerset_len_coe't�Q����^��R���t��H��H����H����S�PInfo����ATTR�����decl�powerset_len_zero_right��n������:�#����Tt����S�P.�Қ�PInfo����ATTR�����ATTR�����decl�powerset_len_cons��n�a8su������;��l���Ҥ���k�ңt������8��u�M�_x���r����\��b�����Q�����Ҷ�/5�����ҳ�l��	��r�Ҷ�����һ�Ҷ������������[��$��I�ҵ��'����J�����������������r��;������������Q����P�e_1��:�g�P��g�P�e_2��<�d��=���B���B�t8�p��=�g��=�����B���������g�����;����o�������Ҷ�|�o��������e_1�����W���\e_2�
�����=���_���	�t8� ����`��I����	��ҵ�ҵ�<�ҵ�������������0��������0���w���Ҁ��ҵ�o�D�#�����Q����P����P�e_2������P��P�t8�P����:�������E��t��������g����һ��;�����;�����������Q����P����P�e_2��{�g�P��g�Q+e_3��D����I��I����I����Y�t8����I�g��I�QM����Y��Һ�����O��g����Ҷ�0���O��!���0���w��1�����Q��g��������;�����Q�f��|�f��te_17���8�s�P��s�P�e_2��<��?�/5�`�`��Ӊ�t8������s��=��I���Ӊ������\���������Ӂ��g�������0��Ӂ������-���0���w��0������������9��������������������������$2�����PInfo����ATTR�����decl�mem_powerset_len��n�s9tus�Q�8�ҫ�
�p�.0t������9��u�M�_x�s�Q�t�������.[�l��	s�������
������������������s�
���0���������<������������=t�������������Ӂ����_tt��8����Ӂ�Ӵ���������t�����������f��t�������
����������tt��8���0���w�������������������������PInfo����ATTR�����decl�card_powerset_len��n�s9���5��natchoose�]8������9�z�_xu���H�ҫ��@�kt�	��w���H�Ҫ�{K��@��Kt�����U���	�w�����5������@��[���M���P��w��T��S��w���T���@�t��m�����P��m����P�"������m��t�§��+��v��t��H�Ps��+��y���Pj���Q�e_1��P��P��t8�5�U��O��|��n��O�Ҫ�%���|������e_1�����U���We_2��� ��Q+���]��ԑ�t8� ����^��=���ԑ�tt�<t�{K�%�����powerset_len_coe�t������+����������@length_sublists_len�t��S��m����e_1������e_2������@���@�t8����@���K��k����K�h�%���k�U7�{K�%��������tt�Ԩ����o�����m��R���PInfo����ATTR�����decl�powerset_len_le_powerset��n�s9��F����������9�z�_xu�.�Pj��Pj��Pj�
��ҫ��lw�	����O��%�����+��0�������������|��1�������Pj�g�Q��g�P�e_2��:�g�P��g�P�e_3��<����.��=�����t8����������O��|�Բ��%��1��e�����������+��0����+��0����������/�@sublists_len_sublist_sublists'�t�PInfo����decl�powerset_len_mono��n�s9tuh�p�.�Q���Q���Q��
����t���8������9��u���p���_x�_x��.�P���P���P��
�U����8��jt8l₁�l₂�h�t�	�.�P���P���P��
�W���V��u��}�w���W�P�����V�t�P��Յ8���Ձ�Ջ��Ձ��{�P��Շ�P��Պ�Ջ�����P��g�P��g�Q+e_2��D�g��I�g�QMe_37�	j8�d�	n��.�՜���ՠ�t8�p�՜�g�՜����ՠ���z��~�Ց�Ԯ�V�t�Հ�Փ�ջ8���Ք�Ջ���W�Շ�Պ��W�Շ�Պ���!�W�	`�Ն�Չ�@sublists_len_sublist_of_sublist�V�t8�PInfo���decl�countp_proof_1��p�0J_inst_2���l₁wl₂�s�j��countp����7t���8���0J�����w�	��perm_countp���w�8�PInfo��
decl�����0J����su����0J�����
u����������t������t8�PInfo��
VMR�_lambda_1VMR�VMC��
��VMC��
�
�����countp_main��!doc�`countp p s` counts the number of elements of `s` (with multiplicity) that
 satisfy `p`.decl�equations_eqn_1����0J�����
u����t8�����0J�����
u�<���PInfo��
ATTR����EqnL�SEqnL�decl�coe_countp���4�0J�5���lw�������%���
��4�0J�5����w�G��&�PInfo��
ATTR����ATTR����decl�countp_zero��p�0J_inst_2������t8���A�Q���0J�����G��6�PInfo��ATTR����ATTR����decl�countp_cons_of_pos���4�0J�5���ats���B������w���\��B8�b��4�0J�5����t����_x����������wk��+�\��Q8�b�@countp_cons_of_pos�����8�PInfo��ATTR����decl�countp_cons_of_neg���4�0J�5���ats����Q��D��E��4�0J�5����t����_x����Y��S��T�@countp_cons_of_neg�����8�PInfo��ATTR����decl�countp_eq_card_filter���4�0J�5���su���%�h�����4�0J�5����#u�|_x�������w�����l��@countp_eq_length_filter������PInfo�"�decl�countp_add���4�0J�5���sut���ֈ��\�ֈ8�։��4�0J�5����(u�)��	�֠����֠���֠������֬��֫��\�֬�֋�ֲ�֮���֛�ֲ���և���������ֲ�ֻ���������ּ�countp_eq_card_filter���w���!#������������w�8�!.�������֟�ֲ���֝�֬���8�։�֋�������!`�֬�֋����֮�!i�֋�֬�֬���֮����֬���PInfo�'�ATTR����'decl�countpis_add_monoid_hom���4�0J�5���is_add_monoid_hom
u�������5��4�0J�5�����
u�������5��
u����!C�UL����5�countp_addt8���countp_zerot8���PInfo�,�	prt�,nspace�+VMR�,VMC�,�5�4�decl�,equations_eqn_1���4�0J�5����-����,�t8����4�0J�5����-�����&�PInfo�1�	ATTR����1EqnL�1SEqnL�,ATTR����,class�-�,��decl�countp_pos���4�0J�5���sus�;��~��a�����H�����4�0J�5����3u�	��8�����8����8s���;��
�����F��<��1��F���1���;��������F��M�;�ր��P����
��g��g�e_2������e_3�����P����X�t8����X��Q�Q�Q�,��~�ր����t�������S��P�card_pos_iff_exists_mem������������K#e_1�2�[j8�7�[k�t8����O��E�D�����������ֿ8�����D�;����ב��D��O���w�8��7��F�׊��6��E�׏�����3�
�����ה�4����ר��D�S;�������H�����F���PInfo�2� decl�countp_sub���4�0J�5���_inst_2���s�t�h��S���Q���t8��7��Qt��T��4�0J�5����;����<��=��>��S�	�����������������7�(��m�(��.����������������P��8����(�����m��.�������(��)��8������������wk����
�U�
�We_1����^�t8�5�]��*������������wk���t8��������m��.�������8���t���4�0J�5�����u������/�*�����9�t8���wk8t���ht��*���%�*��*��������\�
�������e_2���g��g�e_3������5����6�t8����6���6���������t��T������8��������������PInfo�:�#ATTR����:decl�countp_pos_of_mem���4�0J�5���sua�h��pa��;��Q���4�0J�5����Cu�D��E���F�����c���4����%��5�%��#�countp_pos���wk�����ot������5����K;8�PInfo�B�'decl�countp_le_of_le���4�0J�5���sut�h�/����Bt��E��4�0J�5����Iu�J��K�/�	�؊�������������؊�ؕ����
��g��g�e_2������e_3���������؜�t8���؜����؈�ؒ������w�t��E�ؔ�س8�,�������:t8�PInfo�H�*decl�countp_filter���4�0J�5���q�x�_inst_2���s����B�����@��������4�0J�5����O�x��P����Q��	������������������������������������A��7�������J�������س����
��
�Ue_1�Z��\�t8�5�[�����������w�t����������ر��������������������PInfo�N�-ATTR����Ndecl�count��_inst_1�a8�u���T��U8��3�d�
�t�D��PInfo�S�9VMR�S_lambda_1VMR�SVMC�V�9�gVMC�S�9�U�T��V�doc�S`count a s` is the multiplicity of `a` in `s`.decl�Sequations_eqn_1���T��U8�2���S�t8����T��U8��&����%�PInfo�X�9ATTR����XEqnL�XSEqnL�Sdecl�coe_count���T�a8lw���"��8�%�listcount��8��T��Z8�[w�coe_countp��$m�
���'ct�PInfo�Y�;ATTR����Ydecl�count_zero���T�a8���#�'��A�Q��T��`8�G��M�PInfo�_�=ATTR����_ATTR����_decl�count_cons_self���T�a8su���2�l�&��2��T��b8�cu�countp_cons_of_pos��$m��D8S�8�PInfo�a�?ATTR����adecl�count_cons_of_ne���T�a8bth���8s����"����(���r��T��f8�gt�h��o�i��countp_cons_of_neg�����
���'��t8�PInfo�e�BATTR����edecl�count_le_of_le���T�a8sut���/����rt��r8��T��l8�mu�n��countp_le_of_le��$��
����8�PInfo�k�Edecl�count_le_count_cons���T�a8bts�����"��'ct�٨�,���T��q8�rt�s��count_le_of_le��'ct�,��(�8�PInfo�p�Hdecl�count_singleton���T�a8���L���b��T��v8�	����������������&�Q�b�������������#�t���'c8���&����A����at�'��A�	^��	^�e_1�����t8�&��M�Q�_t�'��b�b�������������������PInfo�u�Kdecl�count_add���T�a8sut���٨��\�٨8�٩��T��y8���d�
�t�8�PInfo�x�NATTR����xdecl�countis_add_monoid_hom���T�a8����L��T��~8��$�d���PInfo�}�Q	prt�}nspace�|VMR�}VMC�}�~�T�decl�}equations_eqn_1���T��~8�-����}�t8����T��~8�-�����&�PInfo���Q	ATTR�����EqnL��SEqnL�}ATTR����}classis_add_monoid_hom�}��decl�count_smul���T�a8n�s���٨�!�!�٩��T���8������� \������r�:�8� V�ِ�	��٨� �� g� l�٩�����G����G������D�Q����D�٨����� ��Q�T���U��U�e_2����\��^e_3�c�6��e��U�e���<�����"���[�V���_8��v�t��f���
���b��`8�<��"�e��t8���'ctt����C��U����C� ��Q��U��� ��������e_2���g�\�g�^e_3�c��� K�f���ڏ�t8� �������ڏ�� �� g�Q� ���#� ��� ������'ct��F�Q����F� ��٩� �� ��٩�٩�<�٩� ��٩�2��n_n�n_ih��?�	���"��'��� K�U���)Y� �t� ����t������������������������\����!�����������������������\����'��t������8t����������_�)R�����t�������T���U�V�U�[���4���`��f���
��6�����U���������"���[�V���8���"��	j����$����8�<��^��t8���'����M����������]����;xt������t�)^���succ_smul'�U���t8��U�)Z���t�x��'��t������������<������������������������\�������!I�������!N����!S����������!`��������c����!i����������������������8�PInfo���TATTR�����decl�count_pos���T�a8sus�;��Y����T���8��u�	�ہ����ہ���ہs������<����������4���C�$���8�ے���4���3�5����8�ۖ�ے�;���$m�
���J�۞��m��Y�ۥ�mP������2�ۡ��D�X��8���;�ۡ�
���
���E��۞��r��$m�ۣ�׊�۝�ە�׏�����3�
����ۚ����۔�4�������۔�׮�ۓ��������
����%q�ۓ�ۘ�����8�����������ۍ��������PInfo���Wdecl�count_eq_zero_of_not_mem���T�a8suh�(����Q��T���8��u���(by_contradiction�����decidable_eq���Qh'�X���8���;�َ�*X�count_pos���tnatpos_of_ne_zero�َ�PInfo���ZATTR�����decl�count_eq_zero���T�a8sus���Y�Q�(��T���8��u���ی�X����iff_not_comm�����(x8����Y�Q��������#�[�������	��8�H��Y�PInfo���]decl�count_repeat���T�a8n����2�<���T���8����	��E�����E����E�.@�����C����C��6���8�=��U��2�=��X�T���U��U�e_2����W��\e_3�
��6��_��U�_���5s����"���[�V���d8��6��`t��`���i���g��e8�<��"�_��t8���88�=,8�<��=�=�Y��8�=�@count_repeat��8�<����P������PInfo���`ATTR�����decl�count_erase_self���T�a8su���2�*)�+���Y��T���8��u�
/����+�ܴh���	��٨�(�+����ܽ�+��٨�*s���ܿ����.8��_a�����r�(��+��َ����+����ܿ����	��������������������(����(�8t_a����َ��r���(������u�����8�*�<���	����ܽ�+��&�ܼ���������.8���_a������+��������������������'ct�(�<�ܼ���(�������ܾ�������(����_a�������u������8�*j�	����+��Q������&���_a���������.@��������Q������)��count_eq_zero��'ct8�,�PInfo���cATTR�����decl�count_erase_of_ne���T�a8btab��os����r�*���u��T���8��t����o����
/��,�+lt��Jh��,�	�����������8�����'���V��Y����Z��_�.8�����V_a�����"�V�(*��(����ht�.@��l����Z��]��@��]��d�count_cons_of_ne��'���t��V�	��_����8��Y����_�݆�+��'��)�8�_a�U����f�(���$r��i��l��ݐ��l����_8�+�8��<�݄���X��,��[���Y��Y���a�ݬ�+��݌_a�U��n���h��l��s8�(���'��8�<��Y�PInfo���kATTR�����decl�count_sub���T�a8sut���٨�����7���٩��T���8��u����X�_x����������)��7�����Y�	������r��c��7��u��r�����������	�����������@�������	'��L��>��������>������������u��������u�T���U��U�Ve_2�6���^��`e_3���6��U�����6����"���[�V���8��6�������6�����8�<��c��t8����������c��������u���������Q��u��H��u��u�<��u����Q����������X�*W�������=�E��K��<�
������V�*���sub_zero��u����������u�����b�t�IH���U���h�����7�ݱ��h8s�W�	���"�[�'�������7��j��j������j�����p����q��u�����_a�\����"�]�(��V�����7��}8��}������}�ރ����q�������	��u���7��j�����jt��p����u�ޘ�.8��s_a�����}���ރ�.@�ރ����u�ޖ����
/�
W���V���ޘab�ޭ�;��V���]���7��w�+-�[��E�޵���7�޵t�޵�$��	���7��}���V��}��ށ��}������7�+��ހ���������������.8���_a�����7�޵��E�[�޹�޽�޵�%����7�޹������������count_erase_self�]�(��V8�	�������ށ�&������������.8���_a�����7�+��޼�޹������޽������������]�(��V��	�������+��ށ�����������.8���_a�����޽�&�޹�����������sub_succ�ހ����	�������������0�.8���_a�����+��޽�޹�.@��7�������5pred_sub�ހ����<������X�ޭ�	���7��}������ރ���7��{��o�V8����ރ����V��^�.8��Y��r_a�����7�޵��F�޹�޽�޵��������j����V��Z�count_erase_of_ne�]�(��V�8�	��^��]�ށ��Y�����^�߁�.8��Y���_a�����7��w��_��e���8�[t�޹��j�ߑ������^����x�]�(��V���<��\8�PInfo���rATTR�����decl�count_union���T�a8sut���٨���max
�decidable_linear_ordered_semiringto_decidable_linear_order
���decidable_linear_ordered_semiring���٩��T���8��u����	�������������������������߶������߶�\����٩�������\�٦�'�t�������������٨��������څ���������'c8��@��'ct���������������'ct8�٩�٩�ڿ�5sub_add_eq_max���٩�������<�����������������PInfo���{ATTR�����decl�count_inter���T�a8sut���٨��?min
��߽���٩��T���8��u���natadd_left_cancel��������	��\�������)����٨�����?��,����-��2�.8��*_a����\��r���8��r�����:���َ�ِ�.@��@����-��0��@��0��*�����?�	��2�����,����2��R�(���/_a�����r�!���8�����@����@����28�����'c8�	��R������������R��n�.8���_a�������@����#���?����R�������	��n�������n����.8��m_a������\��7�َ�ِ��?�������n���5sub_add_min���٩����PInfo���~ATTR�����decl�count_bind��d��e�,�T���m�,�f�t�a����p�����'a�bind���t8�T\�\���b�������8�0it��e�,�T������,��������multisetinduction_on��_x�,��������t�T\�\��������f���t�t�	������G8�T\���G�������������������Q����������Q��!����������
����8��8�������X�.���������E��K����
���E�V�*�����Q������T��T��T�����&E���
�����T��2���	�z��{�-���������V��T\�\��������h�������*���V�[�G�t8��T\�\��V����V��{�������4�����E���	���z��{�/�����*��2��T\��?���<���[�]�Y7t8��T\�\��[����[��w��������U����z��{�/��������z���D�z��{�-��z���p�-�{�-��C�{�-��{�-���C���0���*��28��T\��?8��]��0������"�Y8��T\��-����0��0����0�����\����B��%����/��0����������������B��$�\��f��V��[��8t�B����$�T��V�U�[�U�]e_2�	i��f���e_3�	m�6�����U����7������"��[�V���8��6��	nt��	n���������8�<����t8�����tt�	������
����V8���@�V���t�B��$���������T\�&M����.�UO����/�T���������
����,8�U_����.����Ul����%��
��/��0�Uv����%��/������U���0���	�����	���/����	�����	���-���PInfo����decl�le_count_iff_repeat_le���T�a8sun�s�����-�%Jt8��T���8��u�����_x�s�'��u�]�%W�88l����'��5����%�#���8��I�
�@le_count_iff_repeat_sublist�����
����8�[���I����Y�repeat_le_coe��8�PInfo����decl�count_filter���T�p�u�_inst_2�~�a�s�h�B����t���8��w8��T����u����~����������B�2m_x�U���g�����y��8l���@count_filter�V���V�
��[�((�����8�PInfo����ATTR�����decl�ext���T�s9tus�a���٧t��8��T��9�u�W_x�_x�s�������t��88l₁�l₂���7������������M����(���perm_iff_count�����_8�PInfo���decl�ext'���T�s9tu�������T��9�
u������ext��8�PInfo���ATTRext���prodmk

boolprod

�oext_param_type����oname�o���������boolff����������&|�������������&|����&y��������������
Strthunk����
Strfunext��������
Strulift����
Strext��������
Strarray������������
Strmonoid_hom������������
Strperm��
Strequiv������)������
Strring_hom������0������
Strset������7������
Strembedding��
Strfunction������A������
Strplift������H������
Strlist������O������
Strprod������V������
Stroption������]������(����(������
Strunits������h����namemk_numeralunsignedof_nat'�b����
Strpropext��������m��n�Q����
�&|���ATTR��������m�������&y����4������~decl�coe_inter���T�s<tw���r�'��%����{8��T��<�w�������a��	�����=�U��}���|�����'ct8��������������5��'ct��8������������������d�U��}������U�����}�������'c�U��}_inst_1decidable_linear_order
�a��"�e_2��b��$�e_3������������t8���$���������߽���U����ܒ��'ct���}������8���������������'�������t��8������@count_bag_inter��'ct8��������������PInfo���ATTR����decl�le_iff_count���T�s9tus�pa���������T��(9�)u�w�p��+h�pa��ٲ���t8al��+�	������������=�(�8_a����������������8����I�����q��Y��Nt�����'c��8a��	��R�����R����R���Q��Q�����O��Q����p�(.�����(.�t�߾��g���gt��Q�����tmax_eq_right
��߽��N���Q�-��Q��Q�<��Q����a�����Q������PInfo�'��decl�latticedistrib_lattice_proof_1�������PInfo�3��	decl�2_proof_2�����#�PInfo�4��	decl�2_proof_3���>��C�PInfo�5��	decl�2_proof_4���k��p�PInfo�6��	decl�2_proof_5���T�a9bu��|8����`has_supmk��asup����8��T��ale_sup_left9����PInfo�7��	decl�2_proof_6���T�a9bu��|����T��ale_sup_right9����PInfo�>��	decl�2_proof_7���T�a9buc�����������t8�������U���U���U����t��T��asup_le9����PInfo�B��	decl�2_proof_8��������PInfo�G��	decl�2_proof_9��������PInfo�H��	decl�2_proof_10��������PInfo�I��	decl�2_proof_11���T�s9tuu��-�������������Q�����������V��Y��\��_���������������������������������������������������������������t8���������8��T��K9�Lu�M����������������}���������N�������������Q������
����������������������
�����
������
�����
������
������
������
���������������5t8��N��?��9t��98��V����a��	��J����߾��~��Q��Q��N8��V����J��X����C��V����C��Q����Q��T��V��_��o��g�����b��_��N��"�����f��"�����B��i����B��9�����j���c�:����U���We_2���g�^�g�`e_3���9����������z�t8�9���z���7���)����A���multisetinf_eq_inter��t8multisetsup_eq_union��������x���� ����"��"�e_2���$��$�e_3�����߹�����t8�������߽��~��~�<��~��N�����a�����t8max_min_distrib_left
��߽��~��Q��T��I��V����I����g��Y��g��"8��V�����N�����Y��������o��H�������H��?��Y����������(.��Y���c������U���We_2���g�^�g�`e_3���9������������t8�9�������>��E��Y��t��G�����8����Y��������Y��������O��R��y��N�����U��x8�<��V�PInfo�J��	decl�2���T��`distrib_lattice9��T��\mk9��9����������3�8�4�8�5�8�6�8�7�8�>�8�B�8���G�8�H�8�I�8�J�8�PInfo�2��	prt�2VMR�2_lambda_1VMR�2VMC�^��	��VMC�2��	�T�����decl�2equations_eqn_1���T�7��)�2�8��_��T��\��)��e�PInfo�`��	ATTR����`EqnL�`SEqnL�2ATTR����2class�\�2��decl�latticesemilattice_sup_bot_proof_1�������PInfo�c��	decl�b_proof_2�����#�PInfo�d��	decl�b_proof_3���>��C�PInfo�e��	decl�b_proof_4���k��p�PInfo�f��	decl�b_proof_5������PInfo�g��	decl�b_proof_6������PInfo�h��	decl�b_proof_7��������PInfo�i��	decl�b���T���semilattice_sup_bot9��T��jmk9���������c�8�d�8�e�8�f�8����/�g�8�h�8�i�8�PInfo�b��	prt�bVMR�b_lambda_1VMR�bVMC�l��	��VMC�b��	�T����decl�bequations_eqn_1���T�7��o�b�8����T��\��o���PInfo�n��	ATTR����nEqnL�nSEqnL�bATTR����bclass�j�b��PInfo�rel��
ind��d��e�,r�8�u�C�u��,R�e_1�t�-�e_2a�b�as�Ubs�/���K;t��o��d�]�[�Vt8ih�1�t�[������������-n���V��8�4B�o��d��e�,�p�����ozero��e�,�p����t8�A�,��ocons��e�,�p���tt�ut�v��w�,���|���t8���[�V��$��G��t��e�,�p���q���r���s��8��e�,�p���q���r���s���t��u��v�W�w�G�������_�]�[t8����t8�orec��d�e�_�]�[�V��t�decl�odrec��d��e�,�p���q�u��,Rh����t8��r���z��d�t8�s�t��u��v�U�w�/��������x�����{�����e�_�]����t8����-�y����4C��e�,�p���q���r���s��/����-�y�������[�V���\��0�~���8�s�8_����EC�,��G�,��V��t�[�u�[�v�`�w�04��1�t��������et8�x_h���������t����_�������������,������e�V����t��t8�PInfo�}��
ATTRreducibility���}auxrec�}prt�}decl�odrec_on��d��e�,�p���q������,_�y�����8�r��	'�,��-�,��������s�t�V�u�V�v�^�w�0��tt������e�_t8�x��K�e�
���,�����������������t8��*t��e�,�p���q������,_�y���r���s����C_��Ht�t�[�u�[�v�`�w�04���K���P�x��Y_��c�[�V����t����tt�PInfo����
ATTR������auxrec��prt��decl�odcases_on��d��e�,�p���q������,_�y���r���s�t�V�u�V�v�^�w�0�������_����Z4t�������e���t8����e�,�p���q������,_�y���r���s������t�[�u�[�v�`�w�04���K���P�x��Y_��c����tt�PInfo����
ATTR������auxrec��prt��decl�orec_on��d��e�,�p���q������,_�y���r���s�t�V�u�V�v�^�w�0�������x��K����*��e�,�p���q������,_�y���r���s����;�8��t�PInfo����
ATTR������auxrec��prt��decl�ocases_on��d��e�,�p���q������,_�y���r���s�t�V�u�V�v�^�w�0�����������*��e�,�p���q������,_�y���r���s��/���t�[�u�[�v�`�w�04���K���P�x�e�t�ޯ���t8��t�PInfo����
ATTR������auxrec��prt��gind�o�z�{prt�orecnspace�odoc�o `rel r s t` -- lift the relation `r` between two elements to a relation between `s` and `t`,
s.t. there is a one-to-one mapping betweem elements in `s` and `t` following `r`.declmultisetrel_iff��d��e�,�p���u��,Rs���6�
�
��,��.���t��Z���u����v�U�[7�w�/��
���
���8�
�
\���W���3��e�,�p���u��,R�w����oa_1��multisetreldrec��d�������-������6�
�
[t�EC�G!��G�1k�t�[�Z��[�u�[���v�`�Z��04�w�04�
��K�
��8�
�
���
��8�Yq�,��et���
������,��G�G�	
�t��Z���u��
��v�W�\&�w�G�
���
��8�
������%8�0*�,��0�,��[��T���������bY�Ga_1_a�a_1_b�a_1_as�Wa_1_bs�Ga_1_a_1��a_1_a_2���a_1_ih�6�
��p�u�f�h�e�05t�,��04�,��_���e�t�e�Z��e�u�e���	j�v�	j�Z��J�w�J�
���t�
��\8�
���V���8�,�K����`t�e�
�
������u���h���Yp�����,��1��,��e�1��t���Z����u�����	n�v�	n�Z��K��w�K��
���t�
�������8�
�K����_�[���8�,�0>�,����]�V��t�1���*��>��e�u�e����v�	j����w�J�
���]t����
�����]�V��48�����`�[���������v���Z��J�w�J�
���[�V�
��S8�
�S�
�[���P8�K����V���V���/�1��w�1��
��e�
��N��
�	k��V���i�Y��Z1����m���_���
�����
������������t���|��8���~���w)����w���t8a_1��oordrec�
�����\��G�	
�t����u��
��v�W�\&�w�G�����
�
d���0*������6����������t�����
l�
@�	'�-t�����
����������a_1_left���a_1_right�W��,��/��,�����EC��\��������<����W���G�0��0����0�����+���]�[�V��3��0���������EC8��������t��Z���u����v�\�Z��0�w�0�
��\�
��=�
���E�8�I���N�t���������a_1_w�a_1_h��
�4��V�u�V�!��v�^�Z��0�w�0�
���t�
���e�_�]8�
�i�[��8�05�V�N�t���l��+����a_1_h_w�Va_1_h_h��*���`�v�`���w�04�
�_�����
�
��]�
��8�Yp�[���������E���[�Va_1_h_h_w�`a_1_h_h_h��D���1��w�1��
�e���
��O�
�	k�_���t�Y��]�Z4���Z��1���]��N�_�]a_1_h_h_h_w�1�a_1_h_h_h_h��\�
l�	��
��T8�
�S�e�����K��_��8���
��f��r��\���ea_1_h_h_h_h_left��fa_1_h_h_h_h_right�
��\�t�
������������e��`�t�
l�����
�K������]��������V����
��������������a_1_h_h_h_h_right_left��a_1_h_h_h_h_right_right�
������_��,�K����,���[��
l�
�����e�V�,�K����,���]����
�������%� ����a_1_h_h_h_h_right_right_left��a_1_h_h_h_h_right_right_right�,�,Q� ���,�� �_����)��'���]���)���,�,Q�'��,��'���[���/�.�'8� ���,�,Q�%��,��%�e�V�0���������������0���e���.�'�%�����_�[����3������������)����8�PInfo����prvrel_flip_aux_private�?(��rel_flip_auxdecl����d��e�,r��sut�,Rh���rel���flip�
����8t��e�,������u���,R�����relrec_on����_x�_x�-��%��V��(�V���8t8�relzero�����,_x�_x�_x�W_x�Gh₀��h₁���ih��%�_�e��(�e�_��]t��relcons��e����(���e��_����t�PInfo����decl�rel_flip��d��e�,����s�,�t�s��%����(���t8��8��e�,�������,�����w��{��~�������x8�����t8�PInfo����decl�rel_eq_refl��s�rel88�8����8_x9��tt�t�relzero88�8a8su�relcons���o88��g�PInfo����decl�rel_eq��st9s��8�g�����9�w�����h���reldrec���o��������������8��	��t�t�����������������t��h_a�h_b�h_as�h_bs�Uh_a_1���th_a_2���[�[�
Wt8h_ih���t�	�a�$�����������������a�������a����������������������t����������V�����������������������������t8h�����t��������B��rel_eq_refl�t8�PInfo����decl�relmono��d��e�,����p�t�x�s�t�,_ha�b���'a�4Bhst��t8����t��e�,��������>������,_����A����C��x�V�����W���G��������Vt8���V��hst_a�Vhst_b�Vhst_as�^hst_bs�0hst_a_1��hst_a_2��hst_ih��M�_�t�����������V��������������V������ ���[�V������]�[���'�%����e�_�]�����e�8�tt�t�PInfo����decl�reladd��d��e�,����sut�,Ru�v�,�hst��huv�������C���Y?�t��e�,������u���,R������,������������x�[�V����\���0����=��������et��W�-�_8��	����C�EC��Y?��Gt����t���������p��[�6��p��]�<�e_1��*��_�4�8��f���e_2�	m��J��K�e_3��8�0;�K�����[����V�t8�^�����K�����������_�������������K���[�V����������������� �\�;W����t����G�-c�G�Ƙthst_a�[hst_b�[hst_as�`hst_bs�04hst_a_1��Khst_a_2��Phst_ih��S���	n������]�Y��-��t�[�����������V���������k���!��� �V���-�K��-��������[�V����'�%� ����)���'�]���-����-�%�[���	���.�'�%���Ϊ���.�U���_��-����-�'����e�]����E��I��H��_��Q��P���]����U��^�p��.��.��p��/��/����������g�8����78��,Q��q��,Q���,�,Q8�0;�,Q�����~�[����V�t8������������������������������,Q����[�V�����%�%�����d�%��L��Y���Ϊ��L��I��H�_���Y�D�.���_���.��/e_17��g8���n���pe_2��u����w������w�����t8����w������y�����������\�.�������X��Ϊ���Ϊ���Ϊ���Ϊ�a�.�_���T��]�3������T��Q��P�]����]�Z	�'�e�]����'��.e_1�,�/8��,Q��g��,Q��me_2�,�,Q��o8�GH��v��v�,���q����t8�-2��q���v��x������e�e�,��'�e�����\�Y�����Y�����-e����-g����-i�'�]���
���E��������^��������Y��������]��3������e�������8�tt��8�PInfo����decl�rel_flip_eq��st9s��atb��P88������9
�As��flip
tt��t8����	��s��8����������.
��}_a��s������v����ot8�`8�.������������}���rel_fliptt�t8�	��s������������.
��_a��s���o8t�����������������rel_eqt8�	��s��������������.
��_a��s�
t���������������������u8�����Annot�t�PInfo���decl�rel_zero_left��d��e�,����b�,�s���t8�t�,|�-���e�,������,��	���s�6�
���������t��Z���u��
>�v��Z��-�w�-�
�,�
����
�X�����W���������������.
���_a��s���8�W��.�.�����������������rel_iff��t8�t�	�����������s��������<���������6����
�����	������������
��������
�����������������������G�����������
�������t��
��
��׊����[�׏���������
��t��������u��
��
�����~���K#e_1�[,�[j8�[1�[k�t8�������f�[?��׎�����
��c�u����
�
>�v��
��
��S�����~�S����������
��v��������w�-�
��
����[-���[2e_1�[,�W�8�[1��0��t8�����
���[?�-���-����-��	���-�
��w�-���	����
��
��
��,�,���,���
�������
��
��
���������������
��������
��
����
������
���s�t9���	��
�V�8�������������
����������
�����������
����,������
��-�
��
��
��,���Z��R��
���-���
>�
���
��
��R��������
���
��
������������
��R������A����������������O����:���������PInfo���ATTR����decl�rel_zero_right��d��e�,����aus����-��$��t��e�,�����u�	��0s�6�
��/�,|�-��-����t�����u��
>�v�����w�-������
�
|���W�������/����0��L�.
��-_a��s���.��U�.��U����0��J����-��J��,�-��	��L�����L����Ls��/��/��<��J��/���J�6��/�
���/�	���9��/���9��6���/�
���/��/����/��8�����8��0��,R�-�����y��/and_true��/��I�
����I��\�
��׊��H��[�׏�����G��c�t����G��g�
���u��F��f��y�����E��c�u����E���
��S���D��~�S������C���v����C���
�����B�������-��A���w�-���A���
�����@�
����@���
�����?�
����?��<�
��
��
���;��;����;��>�
�����>�
���,�s�t�,�����7�h�8�r�t8�t�����
�����;��������������������s��/����/��/��/��~����l�����/���PInfo���ATTR����decl�rel_cons_left��d��e�,����atas�bs�,_s�����[b����bs'�-�
�F�
����Wt����e�,�����t����,_�w���� m�hm�
?���h��t���!�\��0�#��=��f�"�
��
��]���������� �J�
����8�
��\�������`8��\�"��������falserec
�Z��]��]��� �04�
�_�]8�
����Yp����8�
��a�$�V8��+�
�����a�
���z�{9����A�yt8�_�V8h_a�[h_b�[h_as�`h_bs�04h_a_1��Kh_a_2��Ph_ih��	n�"��������Z�������Z��K�� �K��
���8�
��k������8���"�K��������V��*���[�V�"�
����t��]�V�*��_�]�+��6�]�[�,���"7���0�%�e�Z��/��/�Z���� ���
��g�/8�
����o��m��g��,�����,���m8�"������0���e�+����g�/�.���e�,���n�"7��p���o�/���Z���o���o�Z���v� ��v�
��q��o8�
����y��w��q��,��x��,���w8�
e�
7��o�/�����]���
����o�/�����p����p�
��s�_���q���s�������ga_2�6�����������o���� ��v����
������������ �������������]���������cons_eq_cons��o�/��]��th_1����
l7��q��g�������/�
��*��,�Z���q���q�Z���x� ��x�
��w��q8�
����~��y��w����{�,���y�%���;8eq₁��*eq₂7����e����y��oa'��y�"7��~���~��q����R� ha'b��y8�'�Z�������Z��,Q� ��]�
��\��8�
��! ��\��,�,Q��d�,���d��g�.��l8�"7������y��o������3��2�%�����as'��h����\����~�%ih���d�"7��b���b��t�Z���b���b�Z��,Q"� ���
����b8�
��$#����,�,Q����m�,���8�"�������t�����b��� �����
���'������q��m���5����y��� �6���\�"7�����d��~��Z���d���d�Z��,Q��b� ����
��b��d8�
��������b��,����g�,���8�"������������/��d���d���� �������
����%��������o��g�����g��/��j� ��j�
��d��\��m�
������b��d� �,����,���b��m�/��
�.���_��g�
��g�.��o��n������t�,���j��n�%t��8�%8��[h_1���
l����q��g�����r����r�
��L���� ��K������m�7�
��<��I��Gh��<h_1_right�����������
��}����~�%��}��������������
��Q����R�'��Q� ��S�9�������f�Z���y���y�Z���� ���
��~��y8�
�����,���,����.�%��s8cs���h_1_right_h��e�
l7��������.8���%����w8�;�
������xeq₁��eq₂7����'���\��yt����\���\�Z���j� ��j�
���8�
������/��	8a_3�Z���\���������1�����.����b'��\h_1�������� ����
���t�
����������t�@�������Z�������Z���� ���
����8�
��%�����.�,�,Q���,�����w��o���8bs'���h_1_h����
l����
���V8�����8�B�
�������Z�������Z��,Q���� ����
�����8�
��'&�����g�,�,Q����,������~��w���8h₁���h_1_h_right�
����[t�����o����t�
l�����������]��,�����q�,�������D�
����"�Z���������Z��,Q���� ��'�
������8�
��)(�����o�,�,Q��.�,���.��\��~��68h₂��eq�����w�������/��������Z���4� ��4�
��.���8�
��*��,��.��q�,�,Q��,�,���,��d����X8�V��/��'� ��'�
��)�[��3��9��6�[�,���������������V�
����.��������m��r�,��'��q��y��p�V��r����{�����._x����0��7����.��\�e��m�����m����]����.��������\���e��'8�;���'_x��'��5��7��i�������y�3���'��y����cons_swap�������V�t8��88�t��8��	�_x�� _a�����[7� �/��
���8�
�����G ��G�8������\&� �G�
�ޯ8�
����0*��Y78�K���������i~��5��+�����0� �0�
��t�
�����V����+�����)�����^��h_w�0h_h��(�
l�]�[��
���V8�05��N��8�M�
��3��<����-�[�Vh_h_left��3h_h_right�
���[t�Yp�V���t�
l��N�]��Y��[�Z2��O�
��O��S��S�
�e�_�]h_h_right_left��Oh_h_right_right�K��]������_x�K��������_����K���e��`�V��_�3��K��_��k�����������V�e��8�PInfo���decl�rel_cons_right��d��e�,����asubtbs�,_s��t�,�8�	
a���as'�U�
����
��t�
|�_��e�,�����Tu�Ut�V�,_�	���s��-���t������������.
���_a��s���X�t8���W��
��X�W�
���
�����
\��8�.������������."���������������rel_flip�������t�	���s�	
����� �U�
��?�8�
��@t���������������.
���_a��s��%����(�����������������������������rel_cons_left�����,8texists_congr�������a����U���a�U���as'�U�	s������s����������������.
���_a��s�
��(�[�V���t�
��%�V�[��(�8�
\���
����
��]���2s��+�
��2��;�������������������V��t�	��s�
b�a�[�1e8�8������������]��
�*�>��6���?_a��c�s��+��:��;s�
�q1t��:��;������Wflipequations_eqn_1��
�V�������[�PInfo�S��decl�rel_add_left��d��e�,����as₀uas₁�bs�,_s���(��[�bs₀�,����bs₁�-�
���8�����i]��e�,�����iu�j��X�_x��k�,�s���-!t����l�-�[7�m�/��
���8����G t�Y?88�	�k�,_s����a8�[��l�,�����m�-�
����8������������	��,_�k�,�s����;t����l�-�[7�m�/��
��D8������,_�k�,�����p�,_�k�,_����k�,_��k�,_����s������<������p���[j�p���[ke_1�����V�[o8��\��^e_2�c��04��1�e_3�Y��0;�J���R�[���R�V�t8����	n��J�������������������	n��K���[�V��R��������������8���8�bY����������[����,��
��B�V����,���&��%�
��,�����'�-����G��*��%�[��l�,��
�-����0��2�\+�����9�\0���,�������,���7����
��-�'�/�������i��l�,���������m�-�
�W��������H�������O�����-������-��N�m�-�
������L�������L���V��8�����������������'�-��M��E��H�\C�-��6��/���[��
��,���7�
��-�[7�'�/�����������2�
���,���1�G�\+�'�,���'�V��-'����)�\0�����)�'�,��
���&��&����&����V��Y�88�Y�8�����
�-�-c�-�Y����[����,��
���-���V���-�����,���,�������������
��,_���
����,_�����a�s�ih�k�-s�������[7�l�/��\&�m�G�
���8���0*t�-�0�-�[8bs�/��	s����C�����\&�l�G����m�0�
������8��%�I�t�-�0�-�]8s�l��V���� �0�
�[�8�
���l�0���m�04�
���8�
��F�Ypt�-�1��-�e8����N�8�\&�l�G����m�0�
��L��]��� �04�
�_�V8�
���Yp���U����������4�<����������l��V���� �0���
�����!�������;�����������E�������I�D�[�t��c����K��E�rel_cons_left��[�V����H�l>��D���lC���V��C���V����V�������V�e_1�[,�[8�[1�Yx�t8��_��B���[?�0���0����0��A���0��� �0�
�����������@���
���>������>����������������3���W������w�[,�V�8�[1�[�t8�������2�[?�G���G����G������G��1�l�G��w�����0��|���0������0��/�m�0�
������-�������-��\�_�]�[��8������������w����3h�����[��[��� �0�
�]�8�
���l�04��_�m�1��
��N�V8�
��N�Y�t�-�J�-��8�05��N�8�x��������l�0���m�04�
�����e��I� �J�
���]8�
��S�[�K����8���Ys��b�[h_h������04� �04�
��!t�
��_�l�1���I�m�J�
���8�
��S�_�K�t��8�Ys���z����%��_�l�1���I�m�J�
�Z��������� �K��
���e8�
���_�����8���K����bs'�04h_h_h��$�
l�e�[��
��I�l�J����m�J�
��\�]8�
��\�e��������-��8�Y��Z1�8�|�
��F��^����l�J���m�K��
��~������ �K��
���8�
��k��������
�������[�-�0>�-��8hab��Fh_h_h_right�
����l�J���m�K��
��,8��s�����y��:���t�
l���l�K��Z��0>�m�0>�
���e8�
��������-�K��-�8����V��b�~�
����������l�0>���m�K��
�Z�����Z����� ����
� ��8�
��6���������8�
��k�����_��.8h���rfl��t�����0��K����V��u�K��Z��K��l�K�����m����
�Z��%��%�Z����� ����
�'�8�
�����,�,Q�.��,��.8�
��6����t��?8���K��l�K�����m�K��
����8�
��������V�-����-� 8���������l�K�����m����������������_�[���8bs₀�K�h_h��������m����
���t�������[��?t�������(�Z�����l�������m����
�Z��.��.�Z��,Q�/� ��-�
�/�%8�
����m��g�/� �,����,���g8�
���� ���������_�-����-�.8bs₁���h_h_h��'�
l��E����
��E�8����]��P�8���
��[��d�Z�����l�����.�m��-�
�Z���g���g�Z���� ���
��m�.8�
����q��o��m�'����,���o8�
��4�'��8��:�����-���-��g8h₀��[h_h_h_right�
��Et����_��M�t�
l����%��,��-�e�-��-�-�/�����
���������l����j�m���
������o���� ��v�
��q��g8�
����/��������
��p�/����u����-���-��o8h₁���rfl��8��������0����-���-��m�V��{���Z����l������m��v�
�Z���w���w�Z���z� ��z�
��y��o8�
�����m�,����,���~8�
�����m�����t�-��x�-��w8��/���l������m���
��0���q��1� ��x�
��w��m8�
��7��g��{���@�
����w��q��o��g�,��v����-��v�-��q�]�V��8�����V���m���
������o���� ��v������������_���������������[��������[���Z���m���m���� ���
��o�/8�
���.�����]��8�
���.�����*��������+���/��m��T����� ���
��k���s����;����V���g�'���
���%�V����+��+�e���r��u��,�����+���X��^8�	��^�����^����^���V�V��������������������[��Z�����������e_1��8���x���ze_2���8�0;�����r���r�t8�G��������r���Z��Z�,�����Z��]��Z�Z	��m���V����������Z|��m����������������-}���W+���W-���-i��m�V��������W:�������V�V�������0����V�����3���������]�3��K��]���h��3�� �l�0���m�0�
�l9��_��_� �1��
��E8�
����Y���Z18�
��5������������)��L��]��� �04��#��!�Ys��Ubs₀�0h_h��(���m�04�
�����e��I� �J�������K��������Ys��t������D�����e��I� �J����
����l�J���m�K������s��t��y��:���bs₁�04h_h_h��C�
l��������� �J�
���_8�
��H��:�
��N8�Y�����8���
��d��k��(������ �K���+�
����l�0>���m�K��
��e8�����t�����t��1h��dh_h_h_right�
��t��:���t�
l��K������P�����
��������~������ �K���d�
����l�K�����m����
���8��������h₁���rfl��t��w���������V��u�K���������� �������
��+�l�������m����
���8��G���t��O��������������� �K��
���8�
�������]���8���Z�������������� ��������������?�_�[����b�h_h������ ����
���t�������_���t�������������%���� �������
��h�l�����.�m��-�
��58�����8t��������M���_���bs���h_h_h����
l�%���
��Z8����e����8���
����	��,��.��.� ��-��1�
���l����j�m���
��q8�����t�����8���������<hab��h_h_h_right�
���t���������t�
l�����������,��/�����
��-��3��i���g��j� ����m�
����l������m��v�
���8������t�������������wh₀��-rfl��8����:��������V�����������o���� ��v����
��1�l��x����m��z�
���8�
�����q���t�-���-��~8������t������a���m���� ����G�
����l��v��1�m��x�
��8�
��7��o��{t�-��z�-��y8�������]�V����N�V��� ���
��k�[��A�������u�[���������������n�V�
��j�l������m���
��H8�������V����"�������T����S��������������������m���
��q��������������������q��
��W����������8��������]��|����	�������������������������������������������S�������������������3����������������V������m���oe_1�,��q8���x���ze_2����GH������s���s�t8�-2�������]����s��V�V�,���m�V�������Y����Y����-e���-g����������������'������������V������������������7��������������������������������T�]������PInfo�h��decl�rel_add_right��d��e�,����asubs₀�,Rbs₁�,_s����i0�
>as₀���as₁�U�
�������
|�����e�,������u���,R���,_�	���s��-�i0t������������.
��}_a��s���-'t8�����U�
����W�
��]�����
\�2��.������������."�����}�������}����i0t�	���s�
>�l����m�U�
��@�8������������������.
���_a��s����������������������������rel_add_left�����,8t�	��������������s�
>�l��
��t���'�U����
>��������<�������S��������S����������������
��U�'�W����
\����l��������m�U��������S!���0e_1�2�18�7�3�t8�!�������D�U���U����U������U����m�U�
���������������M�8�������
���������P����������������'�U��������)�U�������������S��������S������8�������?�����������������PInfo���decl�rel_map_left��d����e�,���.�����>s�.�8f�t�t�,�s���multisetmap���8t�rel����a�b���Bt��e�,���.�����>����b����cmultisetinduction_on��_x�.����-s��D��e��Vt8��m��������V��88�	���,�s��d��h�A��t�A���������	��,����-s��D����=��=��=�����������,����-����p�,����,�������,�����,�����s��6��6��<�����6������d�	'��6�p����p���e_1������8��^��`e_2����1���Je_3�K��0;�K����[�[���[�V�t8���������������������K�����0>��[�V��[���������������	'�����8�Y��������6��]��������6����o�����0i�A��6������
����������6���
��,�������,��������	�z��{�.�����/�s������e��[�8��m��V������[�V��8���Gs�����e�V�]��A��t��m�V�[���V���]�[��G����Y���	���z��{�=�����Gs�B�E8�R8���0s��R��e�[�_��A��[�t��m�[�]���[���_�]�#�l����z��{�=��������z��X�z��{�.���z����.��{�.��W�{�.���{�.���W����/��6�8�����8���S	�A���/�s�/�2�A��t8�=���������_h����	��G���0s��R�i�j���w�����G���0����p�G���G�U���G����G��Us����[�
�V�F���'�0�
��m�]�_���]�]�1e�����������<�J����J����[��� �0�
�[���8�
���[��e�]�e���������B�����Et���p����p����������e�5{8�����	j������K���0>����8�0;�K����j�[���j�V�t8����!������������ �� ���!������[�V��j������������H������V�]��t�0���������\�]�[��������6����<�e_1�[,�4�8�[1�5{�t8��������[?�[���[����[�����[�����
��0�'�04�
��m�_�e���_�_�n����&����[������ �0�����g���V����[e_1�[,�Yx8�[1�Y��t8��I���l�[?�0���0����0�����0�k� �0�
��������������
�������������������������'�0���d�g�\C�0�����T����M���V�V���G����[��� �0�
���8�����������rel_cons_left���V�[���t�Q��[�m���V���[���h��[��������������
��G������G����V������T2�����	�����	���=����	������	���.����PInfo���decl�rel_map_right��d����e�,���.�����>s�t�=�f���s��dtmultisetmap����8�rel���a�b����0it8��e�,���.�����>������=�����	�s��������t�����%�.
�_a��s��E���8t��V����V������t�.�8����#�."�#����#��������t�	�%s�����������V��'���8t����%�]�.
�#_a��s��;��>��.��8�;���%�[�D�[�rel_map_left������ 8t�	�]s�flip�������Xt8����]���.
�[_a��s�Q��V������[��(�]�[���Bt��8�;���]���."���[�����[�rel_flip����Xt8�����PInfo���decl�rel_join��d��e�,����s�PLt�Vh����,_��8���P�t�]8��e�,�������PL���V������x��,������P����V������W�/���8����P�t�]S8�	���P��u�P��h��]�,��V��,��,��������������������G���������R"����G�
����������������������������h_a�h_b�-h_as�P�h_bs�]Nh_a_1���th_a_2���`�0���t8h_ih���P"�e��U��_t����������������	n�J��S������\�P"���V�U����������0>���[�V�����P"��]�U���[�	��k�P"� ��!���_�U���,��K��e�]��k��(���3�_��.�e�9�]���>�G�p��p��%��%�e_1�����'��'�8��Ϊ���e_27��g8������e_3���0;��v����[����V�t8���������v��Y�\��������w���w��������x��[�V������������7�B�S�� ���_�=�F�V���e�]�reladd�� �����e�A�E�8�ttt8�PInfo���decl�rel_map��d��u_4��e�,���.�δ�m�������~p��>s�t�-f�K&g�K&hrelatorlift_fun�����]�[�V���8hst�������rel����]�[��Kk�multisetmap����_�[t���e�,���.����m���������>������-���K&���K&���������	�������e�[���e���]�[������������.
��_a�����_�]�V�.����_�����e�]���������������rel_map_left����]�[�e������	�������e���e�����������.
��_a�������]�������_�]���������������rel_map_right����e�[�_����t�relmono��e�_�V���8�PInfo���decl�rel_bind��d������e�,���.����m�����p��>s�t�-f��V�=�g��V�m��h���>��S����V��8hst�����^.�e�]����bind����_�[�t��e�,���.����m���������>������-���R���T���]�����rel_join����]�[��F�>�����m��[t��rel_map�����e�_�>�}�V�����t8�PInfo���"decl�card_eq_card_of_rel��d��e�,r��sut�,Rh���%v�\�8��e�,������u���,R������{������-���������t�-��V8�	������\��G����������������Q������Q�����2��h_a�h_b�h_as�Wh_bs�Gh_a_1��h_a_2���h_ih��5�e��-��_t�	��5������-��e�������������������?������������������\���b�?@�����\����b���������������b�b���!S���b����������������e��������!`�b���
���!i���b�b����t8�PInfo���'decl�exists_mem_of_rel_of_mem��d��e�,r��sut�,Rh��a�ha�����b����k��H�.�1���e�,����u�	�,R�
����{���	�-�
�����[��0���L�
�]���1����>�1�8�	����	�	'����
����-��G��L�1�����S���	����������l�
�V���l����Z��8��������_���R�������7�K�Q�7�
��
���]�K���
����E;�����u���
��
����K�
������z���
��
��
����[j���[ke_1�[,�[o8�[1�6��t8���y���[?���������v�
��u�
��k�8��G������
��
������
��Rd�u�
��u�����X�u������E��K�u�
���,�C���-�8�,��-�8�,��B�8��V�*������
���
��
��������	��
��	��
��
��forall_prop_of_false�
������E��V�*����>���������x�y�s�Wt�Ghxy��hst���ih��e��v#����
�����-����J�-����������8a��ha�1���i�
e�
�[�v�8�_x�6���Z����
�����-����0>�-�������
���8�����Q��_��8�[�ha���/����[���-����K��-����[��;��)��	�]�mem_cons_self����[����_x���q��]�]t���t�]�ha������
������V��D�a_4��H��~�
�����-���K��-�����_�[��R��8�ۢb���+�G���N8�[��^�Tt�+���^�a����
����-�� ����-�� ������_��l� �V8hbt�^hab�`��/� �
� ���-��%����-��%������e���%�[8����h��k����n������6�,� ������_�mem_cons�� ����_�e����8t8�PInfo��+decl�map_eq_map��d��e�,f�,hf�.�s�t�s�/��,����e�,�%�,�&�.��'��(��	��s�������-��.w�,���������.
��_a��s�-�- t�-(��.��������."�����������rel_eq���.w�,��	��������������.
�_a��s�����-����-(�����������."��������������8�	��s���������/�8�,����������.
��_a����������t8�.�#���������rel_map_left������-�8��,��	�s����������/���8�������B�.
�_a��s���������1\�t�-(�#�&����@����@�rel_map_right�����8��	�B����B���Bs��������<�@����p���[k�p���[oe_1�2��V�6�8���\���^e_2�c��f���e_3�	m�	p�������[��y�V�t8��;�	n�	{�z�}����D����K����	n���[�V�y���=����*���������������;������������k�����������;��functioninjectiveeq_iff��V���888��w�����������������m���������PInfo�$�;decl�injective_map��d��e�,f�,hf�.��.���,R�,���e�,�7�,�8�.�x�y�������map_eq_map����t8�PInfo�6�?decl�map_mk_eq_map_mk_of_rel��r��u�s9tuhst��t87�����/5���"��t��8��=���>9�?u�@���relrec_on���_x�_x�7�����/5��"��8�t8S�����a�b�s�Ut�Whab��hst���]�]�[t8ih7���_�]�/5�_�'"�_�]��.t�	7���e�_�/5�e�4"�e�_���;�������@���@�6�;��G��F�6��4�:��G�O�I��5������ee_17������8��������������e_27�����8�d�����7�k��n�t8�p�k��k����n��<�O���5�<�L�:��;��O���e�4�:����4��Ue_17�X8��_��be_2�h���k�k��j����t8���j��k��� ���������M���e�_��t���G�?�O�������Q�I�
��4�M�G�G���I��	��5�G���PInfo�<�Gdecl�exists_multiset_eq_map_quot_mk��r��s��8�!�tu7���t8�/5���"�t��Q���R�����t8_x�����S���8���u�Su���u���h�����AS���u���h��a��s��_x���S�7����8�/5��	"��_a�
>�S��
t����S�U7���V���/5�V�	("�V��X���	3�
��S�W7���[�V��	7������	7"�[�V�5�U�+�	2��_x�	7�!��S�^�)��'8��.��z�[�V�	Q�a�[����]�[_x�	Z���S�`�6�L�:t8�;�/5�]�	Y"�]�[t���	Z��	k8��S�^�)�	I�-8�/�	M��t�	n�	j�	{��	Y�	i�	k���]�	Y�	it�PInfo�P�Kdecl�induction_on_multiset_quot��r��p����s���s�t������]���^�	��_��_a��_a�	"����	%�b�	&��`�U��	1�+�5��+�	$����	)�t_1�	)�+�	9�H_17�	Z�	j�8H_2���)��.���	�t8��`�f�_�/5���U"���e�_�[�	08��	*� lift���!a�!b�*��8�	)�w�!B�	7�	8E�	��	8H�	��	8.�	7�/L�[�	7�	@�c�V�	(�	/8���	8�	��*�g�*�h���8�	8�w�*B�	Y�	ZE�	��	ZH�	��	Z.�	Y�/L�]�	Y�	i�	��[�	7�	@t�a�	8�+�	��	��e���)8�	��
8�\�(8��	��1��+�	9�

�	At�e���	��	����g���h����8�	Z�w��B�'�(E�
)�(H�
)�(.�'�/L�_�'�-�	��]�	Y�	i��	��
@�
?�\�	Z�
?��h�`�`�]�	`�]�;��i�
J��8�\�	)�	���x�	+�	��exists_multiset_eq_map_quot_mk�t�PInfo�\�Pdecl�disjoint��p�st9at�����r�
��PInfo�k�ZVMR�kVMC�k�m�l�doc�k`disjoint s t` means that `s` and `t` have no elements in common.decl�kequations_eqn_1���l�m9��k�t8�
r��l�m9���
y�PInfo�p�ZATTR����pEqnL�pSEqnL�kdecl�coe_disjoint��l₁l₂<s�
w��listdisjointt8��r�s<���
��PInfo�q�\ATTR����qdecl�disjointsymm��st9d�
y�
v�8t��x�y9�z�
y�n����������
��ۢ8�PInfo�w�^nspace�vdecl�disjoint_comm��st9s�
y�
w8��|�}9�w�
y�
��disjointsymmt8�
�8�PInfo�{�aATTR����{decl�disjoint_left��st9�
�at����X�r�����9���
y�PInfo���ddecl�disjoint_right��st9�
�at��o�X�������9�disjoint_commt8�PInfo���fdecl�disjoint_iff_ne��st9�
�atH��b�H�/�
��8�����9�	�
�����
����
�s�
���t�����
���<�
y�
����
y�
��disjoint_leftt8�
��
��|g��t�
���t�
���t�]����������
:t8���p������	������
�����������t�X�k<a��X���M����
�������$�+������7���
������X�8��]���'����X�$������8����imp_not_comm���$��������$����X�	�8�forall_eq'��
���
��
�����
����PInfo���idecl�disjoint_of_subset_left��st9uuh��d�
v�8t�
v��������9��u���R���U�n��������]`��
����PInfo���ldecl�disjoint_of_subset_right��st9uuh�
d�S�8�X�����9��u���
���l�n������_�
��J8�^�PInfo���odecl�disjoint_of_le_left��st9uuh�I��U�X�����9��u����disjoint_of_subset_left��t8�W8�PInfo���rdecl�disjoint_of_le_right��st9uuh�p��l�X�����9��u���p�disjoint_of_subset_right��t8�Vt8�PInfo���udecl�zero_disjoint��l�
v8������n8��H2����x �
�������
���PInfo���xATTR�����decl�singleton_disjoint��la8s�
w��8�e�����8�	��s���e�������<���������t�n���Pt����
���t����
����nt��n�h�����
����pt��8�|g�nt���nt��o8���nt�]�����������������8��������t���������|��
�8����t���e�e���e�����PInfo���{ATTR�����decl�disjoint_singleton��la8s�
x���e�����8�	���������.
�_a��s�
�t�h��X�x �.������������
�������������s�e�e����e�����e��t8�e�e����3����e���PInfo���~ATTR�����decl�disjoint_add_left��st9uus�
��N�
��
������9��u�	�V����V���Vs�
����>�|����
���������a�
�n��b�n��e��<�P�g��P����n��
�>�|���(�
����/�s�
�������t�������v�r�n�������a�z����N�M�n����n��
�b�e�n������6�|����a���]������
������������S���t�����������n�|�����������
�}�����~����b����e�U�l�
��R�i��t�T�k��8���h�g����g���PInfo����ATTR�����decl�disjoint_add_right��st9uus��m�
�8�R�����9��u�����
��mt���
��t�m�	s�������������s������<��������
�
��
�t�������
���8t�
��
������
�����8t�
�R���
�R��t��������������������PInfo����ATTR�����decl�disjoint_cons_left��as9tus�
����
�X�8�T�����9��u���
��L��8�
�
����T�
6�
��8�	s�
D�
6����
L���
Ls�
6�
6��<�
D�
6�
��
B�
4���
B�
4�9�t�T�T���T�
6�
6���
6���
T����
6���PInfo����ATTR�����decl�disjoint_cons_right��as9tus�
��i�
���T�����9��u���
y�
��i8�
|�
�i�	s�
��
|����
����
�s�
|�
|��<�
��
|��
��
{��8�
|���
��
����t8�
����������
��T���
��T�
8�
|�
|���
|���
�����
|���PInfo����ATTR�����decl�inter_eq_zero_iff_disjoint��_inst_1�s9tus��4�t�T������9��u�	�
�s�����t�T���
��
��.
�
�_a��s�}��[��St8�.�
����
��
��."�
��
����
��
��subset_zero����	�
�����
����
�s����e�k��<�
��
���
�������\������
��
��G���t�M����
��������
����_�
��e�]��\�O���_�
�������~��_�J��'ct8���O��
��������eand_imp�����
��T�k�����
��
�����
����PInfo����decl�disjoint_union_left��_inst_1�s9tuu�s�S���
�
��T������9��u����	�I����I���Is�
����>�/��'t�
�������%q�V�
�n��W�n��Z��<�C�\��C����n��
�>�3��]a�
������h�
�������i�������k�g�n���.��Y�V�o������YR�n��{�n��
�W�Z�n���{��6�/�%q�V���]�z��-��
��������.��k�������t�����������n�/�%q��������
�r�v�x�}�����W����Z�H�a�
��E�^�t�G�`�8���]�\����\���PInfo����ATTR�����decl�disjoint_union_right��_inst_1�s9tuu�s�
�����
�
��E������9��u����	�����������s�
������/�s������/�V�
�n��v�^��<�����������n��
���3�>�]`��
����3�h�
�������������������n���/��'��P�t�
���������YR�n��
�n��
�����n���
��/�
�s�V�
���/���k<�>�	:��
����/���k<���	:��
��]�/��.���
��/�
�>�%q�
������/��-��6�%q�-��
��2�]�,�
��8�
����.��it8�8��t8���
����9�2�n�%q�-��
������/�
�!�'�)forall_and_distrib
�/���/�s���/�V������
��������������������
��
�����8�E�^����������������PInfo����ATTR�����decl�disjoint_map_map��d����e�,���.�f�t8g�-�s�t�,�s�disjoint���.��8���a�H�w�b�VH�l��X��[�1����e�,���.��������-�������,��	��s�n�x�V���O����=��t���]���=����>����
�������w����V�����X�=��1���������<��������n��has_memmem����=������D��t�����=����8�y.t�
�����n����[���0����=��#t���_���1�����.��e�(��
��p����������n����n����n�������V���
��[�
���=���t���[���F����>��#��
����V���[������������_����������
�����	)���V�
�O��>`��8���V�������=����
���]������y8�
��������-t���=���t�
����������V��t�� ������
��V�
���=���t�
�������V��4��������
�#�>`�8�
��<�]��
��G�
�����G�������8�J�������x��:�
��<exists_imp_distrib���
���E�
���p�������E�
�����'������i�'�&�#�D�
������	)���V�������V�
��V��(�L�V���V�������V�����V�������&�O��������L���������������]�w�������#���V�����w�������#�X�=��������w��h��������������]�#�������#�X�>`������#��������w����h��a�Vha�O�b�[hb��eq�>����#������rfl��_���t8�B]�_����s�h��c�a�[ha��eq₁��b�_hb��eq₂���qu�t8�;����_x���A���`��_t�B]�������PInfo����decl�pairwise��r��m9��������9��wlw�
�
�%�listpairwise�t�PInfo����VMR��VMC�������doc��`pairwise r m` states that there exists a list of the elements s.t. `r` holds pairwise on this list.decl��equations_eqn_1��������9����t8��������9����PInfo����ATTR�����EqnL��SEqnL��decl�pairwise_coe_iff_pairwise��r��hrsymmetric8lws��t�%��������)�w�w�,�_x�,_a����}������
�
?��������������%��<��5��+�>�
l�X�	`��w��V�8�+�
�J�N��[�V�h_left�Jh_right�St����]�[����[�Z�listperm_pairwise�]�[�V����������8h�������
��%������8����}���8S��}�PInfo����decl�nodup_proof_1��st<p������nodup�t��8��
�<�����������perm_nodup�t8�PInfo���decl���s����*�i��8��8�PInfo���VMR�VMC���doc�`nodup s` means that `s` has no duplicates, i.e. the multiplicity of
 any element is at most 1.decl�equations_eqn_1������8���������PInfo���ATTR����EqnL�SEqnL�decl�coe_nodup��ls��O���������PInfo���ATTR����decl�forall_mem_ne��al<sa't��y��X�C8�X�����<�w����h��m��88�S��h��a'�m��e��8���_x��v	�t����t8�PInfo���ATTR����decl�nodup_zero�����w���pairwisenil���PInfo�"��ATTR����"decl�nodup_cons��as9s��t��
�X�x����&�'9��_xus����i�
5�lw�@nodup_cons�t�PInfo�%��ATTR����%decl�nodup_cons_of_nodup��as9m�n�8����>��,�-9�.��/�����
�X�?t�t�nodup_cons��t��$�&8�PInfo�+��decl�nodup_singleton��a���[��@nodup_singleton�PInfo�1��decl�nodup_of_nodup_cons��as9h�����5�69�7���{X���������
{��)�t8�PInfo�4��decl�not_mem_of_nodup_cons��as9h������9�:9�;���{ ����L�PInfo�8��decl�nodup_of_le��st9h�������=�>9�?���_x�_x��������tt8l₁�l₂��@nodup_of_sublist�8�PInfo�<��decl�not_nodup_pair��a�X���Z�[��@not_nodup_pair�PInfo�E��decl�nodup_iff_le��ss��a8�X��C��8��I�m_x9s��Jt�X�H���a8l<����tat�X�%��	����8�Jt�X���|�@nodup_iff_sublisttforall_congrt�Mt���Jt��at�K�����[��H�$����'��%��$���8��i���8�PInfo�H��decl�nodup_iff_count_le_one��_inst_1�s9��at����18�b��R��S9��_xus��T������blw�@nodup_iff_count_le_one��T��
����PInfo�Q��decl�count_eq_one_of_mem��_inst_1�a8sud�h�(�����b��Y��Z8�[u�\��]�(�le_antisymm
���َ�b���ct�T�������b�nodup_iff_count_le_one��t8������*X��
�PInfo�X��ATTR����Xdecl�pairwise_of_nodup��r��s9�atH�ob�H�/��
��q$t���6t��a���b9�z�_xu��c��d���e��f����
��8���t��8�Btlwh�c��d�{_�e��f�{��hl���������
�
?�{<����=t�����%��~t�	���#imp_of_mem��
:�ta�b�ha�	H8�hb�v8��+8t�PInfo�`��decl�forall_of_pairwise��r��H�)suhs�+a�H�%qb�H�%���
`�8�s�t��q���r�)�su�t�R_a�68������
�
@����=�y��u��v�%��w�[�x�0����_�8�tGt�5��+�c�
l�
|�w�N�+�
�r�N�u�[�v�0�w�_�x�0s������8��Vth_left�rh_right�X��_x�^�u�_�v�vP�w���x�1��������8���t���c���Q���u��Q8listforall_of_pairwise�]�(��V��PInfo�p��decl�nodup_add��st9s����
��8�
��
y�����9�'_xu_x�s���
��
��G8l₁wl₂��@nodup_append�8�PInfo���decl�disjoint_of_nodup_add��st9d���������9�����{X����{X�t�
�������N�
�����nodup_add�t8�PInfo����decl�nodup_add_of_nodup��st9d₁��d₂�s����kt�����9��������	�����������s������<��������
�������
�]�
�&������������t�
��]����]��*��]8���������
��&����&��*��&������������������.�����(������������PInfo����decl�nodup_of_nodup_map��d��e�,f�,su��nodup�t�,����e�,���,��u�|_x���F��,��c8l��@nodup_of_nodup_map���t�PInfo����decl�nodup_map_on��d��e�,f�,su�x�H��y�H����/��+���6�t���F��1��e�,���,��u�|_x��������-�������y���1\�K;��<�t��P�F���l��@nodup_map_on��������PInfo����decl�nodup_map��d��e�,f�,suhf�.��t8�j��e�,���,��u�����nodup_map_on���t8x�_x�%qy�_x�%�h�q�Ft�PInfo����decl�nodup_filter��p�0J_inst_1���su����������0J�������u�|_x�����c��l��@nodup_filter������PInfo����decl�nodup_attach��ss���x,�xB������m_x9s���y��y��l<�@nodup_attacht�PInfo����ATTR�����decl�nodup_pmap��d��e�,p�u�f�u�s�H�wWhfa�ha�b�Vhb����1d����4�t��f�F��w��t��e�,���u����u�������wW�����2m_x�U_a�u�����[8�F�[�x��t8tl��H�z`�@nodup_pmap��[�V�ze�8t8�PInfo����decl�nodup_decidable_proof_1���
b����@��
b���PInfo���		decl����_inst_1�s9��������9�|�w�_xu�����tlw�nodup_decidable��
�PInfo���		prt��VMR��VMC���		�������nodup_decidable��
xdecl��equations_eqn_1�������9��
���t8�������9�*�
�$�PInfo���		ATTR�����EqnL��SEqnL��ATTR�����classdecidable����decl�nodup_erase_eq_filter��_inst_1�a8su���(���
_x��
:�Annotinfix_fn�
���Xdecidable���8������8��u�|_x�����(��
����
��Annot���
���4��'��8l�d����(2����E�
���G�'��8�N�@nodup_erase_eq_filter��(.�8�PInfo���	decl�nodup_erase_of_nodup��_inst_1�a8lu����(������8��u�nodup_of_le��*)�*��PInfo���	decl�mem_erase_iff_of_nodup��_inst_1�a8btl�d���*��
�
:�t�*�������8��t��������	�~s�*W��
����B�Annot���
���V�8�}���~���)%�)Dt_a��s�(��).��
�
����(�ts�*������~���nodup_erase_eq_filter��t8�	�����������s�
�X��t�*�����<��������
�*�����X���������*W������S����W�����D�������������������8���S{����%���������������88��w���*W���
���
���4�V�(��8����P�����8��������and_comm�*����}���
��{�����t�*��*����*�������������PInfo���		decl�mem_erase_of_nodup��_inst_1�a8luh��X�
�(������8��u����	�*�X�
�*�t�(����*�4�.
�
���_a���X�*W�(��X���*�3���9�3�mem_erase_iff_of_nodup��'ctt8�	�4����4���4�E��"�3�
���3��(��
��
��1�
���1��
��b�X�$�t��$tt�"�e����e��4�t�+�(��(����(����]�
����(��W���PInfo���	
decl�nodup_product��d��e�,s9t�,�����N8�nodup��f��k��e�,��9���,�quotientinduction_on₂���,���,&t_x�_x�,_��P��x8���gP�iqt8l₁�l₂�,]d₁�c�d₂�x����-3�,&�8�	���iY�i����I��,&�t����������@nodup��gP�f��V��t������f��f��gP�gQ�f����gQ�f����gQ�f��gP������gQ��gTe_1�h�m�g��t8���g������i����iY����I�t�����W���\e_1�
����0���04e_2�Y��^����J�i��fp��������t8�_u_1�����	j���J�j�����������J3��������t����V��t����������gP��������*����@nodup_product��V��t8���PInfo���	decl�nodup_sigma�u_2�σ��,s9tat�,Q�0i���a��F��0i���pI��ng�pO��ng�t���6�9��8�|_x������
��F������pI��n��pO��n�t�8l₁�_xa��,quotient��,!��,&����[�]��classicalsome��,!��a�c�,�Z�,!��,&����e�g���quotientexists_rep��,!���,&����0i�	��c����
��F������pI�V�n��pO�V�n��k������
���a�V�,\�,!�1e�,Q�1e�,a�����,d�����,g�1e��[�b�,!�n�����,�Z�,!�(�,&�(�������#��]�q�,!�n��,&�n��1e��������������
��	��,Q��t_a�����e�u��
�V�F�1e�����pI�[�n��pO�[�n���������
�V���0i����t�������,\�c���,a�c���,d�c���,g�����b�r��r�,�Z�,!�#�,&�#����������V�q���,&�1e��
�A�J��t�eqsymm����t��
�������ta��-Annot�t�	������8��
��@nodup������V�b������,�Z�,!��,&��������[�q���,&�n��������sigma���V�n���0�����<�]����
��J���,\�r�,Q���,a�r�C�,d�r�C�,g���1�O�Q�u�N���
���������N�5��n�t������c�������Ue_1�Z����t8�����������d���8�]�Q�>�@����Z���=�5��ng8�z�_�
��P�
��Y�
����J���Y���������~�>�f��f��=�fP�=�f������f������f��=���������fP�Ne_1�fn�fP��8�m�fP���t8���}���gw�fP�<�o��}�@����f��f������f������f������f������o�8�&�������Ue_1�Z���[�,Q�n����]�,Q�o
e_2�J��_�,Q�o�8�^�����e�,Q�p�fP�pI�e��e���pO�e�o�����t8�_���f����fP�pI������q���������������J-����!����ng8����������=���@nodup_sigma����ng8����classicalsome_spec��[��[�,�Z�,!���,&�����(�*�B���q�c�,&����PInfo��	decl�nodup_filter_map��d��e�,f��#suHa�a'�b���.���~optionhas_mem������1�����D�8�)�6�����h��D��e�,�$��#�%u�&�S��_x���d�x���88l��@nodup_filter_map����8�PInfo�#�	decl�nodup_rangen��nodup
��&9�0��@nodup_range�PInfo�/�	!decl�nodup_inter_left��_inst_1�s9tu�����[��4��59�6u�r��8���PInfo�3�	#decl�nodup_inter_right��_inst_1�s9tu���u��8��99�:u�{����PInfo�7�	&decl�nodup_union��_inst_1�s9tus���������<��=9�>u�w����h����&��q�t�������8�����_x��_a���
l�c����A�
�����e��R�w���x�e������V��l�����T�V����i����\����[�'����b���V�(*��la�V�	�����߾�������b�������.8��_a������|8�����(��V��b��8�b��������t�[�'���max_le
��߽�����b������T�[����|�V�b���[�'��t������T�[������b���8�PInfo�;�	)ATTR����;decl�nodup_powerset��ss��9�������F�w���h��nodup_of_nodup_maptu��H8�qu��I8����map_single_le_powersett8��?_x9�>������8l<h����	�2���|D����Pv��.8���;�@��;�2�Ps�?�@��Pj��Q�e_1��P�Ԁ�t8���U�:�F��n�:���'��F����|D�'��|����8���G�@�u��?listnodup_map_on����>x�sx��m��+ty�sy����P���������e�X����w���!��t���t�perm_ext_sublist_nodup�[�t������*�Q'���*���[�[��%�������[�������t���%����t�8���*�-�t������>���@nodup_sublists'�8�PInfo�E�	.ATTR����Edecl�nodup_powerset_len��n�s9h��2�Ҫ8��X��Y9�Z��q����3�powerset_len_le_powerset�t8���4��nodup_powerset�8�PInfo�W�	6decl�nodup_bind��d��e�,s9t�U�s�G�U��
a�H���h���*a�b��disjoint�����0i8��e�,�^9�_�U�
h₁a��Z��,]l�,]�,����U�
_aExists�x��f��-3f��x��f��g�I��G ���,\�,!�V�G�,a���G�,d���G�,g�V�-�4��j��f��I��k��l��f�V�g���0*��v�-�h����s�x�Y���
�`��a�kJ�F�V�����b��c�V���V������5��+���_x�Ws�#�^���
�`�[�a�08�F�]�#��[�b�[�c�]���]�#�1e�
�A�J�]��a�V�,\�f�[�vu�G�,a�N�G�,d�N�G��0i

hd�'�[a�[b�]listdisjoint��]��
�x��m�^s�9�]��V�
�`�_�a�vP�F�e�(��_�b�_�c�e���e�(�n��V�	a��s�9�]���V�
�`�_�a�x��h�r�y��������	����t��s�F�_�U��e�_���[�
�`�e�a�v#�x�8�F���(���e�b�e�c�������(��o	�������t�����L���t�����t����t�����s�
x�_H�������e8��e���_�p�_�q�e�\�e����
�`�_������<�|����|��]�U��_�]������9�vc������0��04e_1�Y��\��J�t8���{������{�]����n�_�,\�f�e�v(�04�,a���04�,d���04�K����vc���
��_���
��`�
��fe_1�
��
�����J�
�����K�e_2�J����0>8�^�����K��0>�U�������t8�_���
���K������y�����_�V��t�
���_�]�����������]��������listnodup_bind��_�]������
�����L�_�`�_�~�`�_���`�_�]�x����n�����_����x��0r��8���f���e�f�g���g��e_2��g��g�e_3��
��Y���W�t8�p� �
����W����\�e���Q���e8���R���	��e8��J�����N��04��1��w�Y��\��J�t8�F���n�����$�e��e�1��[�n�e�,\�f���w�1��,a���1��,d���1��v/��������K����N���_����������l�����������_�5{�����e�I�e_1�2�����A�8���	j���	ne_2������������t8��D����������������q�����_���_���e����_���e�o���_���e���b�_�D�e���e������c�e��o�m�,\��8�1��,a���1��,d���1��v/������l�1��l�Je_1�K��m�K��m�0>e_2���������t8�G�K��m�K��������(����$������J�]�n���,\�f���v��J�,a��J�,d��J�w�1e�8�n����"���m�v2��v2�����q��e����y���!�������pairwise_coe_iff_pairwise�_��8��������������t�����TI����O�]��Annot�IAnnot�Ja�[b�]h��8�ssymm��_�)��Annot�IAnnot�J��
�V���V�G��Yclassicalaxiom_of_choice���f��,"�f��g�,"�-�B�-NAnnot�IAnnot�Ja�quotinduction_on��,]�,$�,]�,&�_x�,_�Z��,"�g�,"�V����-l�,]��/�,"�g�,"�-�,+�-3�,$�-3��8���,��,-�PInfo�]�	:ATTR����]decl�nodup_ext��st9�����s��a�s�|��/�����9�'_xu_x�����Ps�
n���s�%��y�8l₁wl₂�d₁�'d₂����7�����{<�M����t���s�|"���������t�perm_ext��t8�PInfo���	Cdecl�le_iff_subset��st9���s�J�������9�'_xu_x���s��L�18l₁wl₂�d�'�w�]���������U�����subperm_of_subset_nodup�t8�PInfo���	Fdecl�range_lem�n�s���&"�a�&"��&"�
��&a�&9�'
����������'
�'
�le_iff_subset
��&a�&9�nodup_range8�range_subset8�PInfo���	Idecl�mem_sub_of_nodup��_inst_1�a8sut�d�s�*W��8�
�*X�X�*�������8��u�������w�*�.h�*��(���X���������t�������'��th'�������h��.���Q�X����J��6�V�(*��J�	�M���7�ݐ��ݐ��Q���M�^�.8�ݐ��+��,�(���_a�����j������Q�.A���M�\����V�(*����	�^���Y�[���^��.
�^_a�����7��h�+1������Q���^����^�natsub_eq_zero_iff_le�Y�[le_trans
�� �Y�b�[������T�V������b���(��t����;�[�O���	�V�(���8_x�._a�
�8�:�
l�O��X�����
�����	-��j�w���x�X��������V����������������������6�����S��]�V�����|����V����]�(���8�PInfo���	Ldecl�map_eq_map_of_bij_of_nodup��d����e�,���.�f��g�-�s�t�,�hs�e8ht��8ia�[H���]hia�]ha�/���1��D��ha�_ha�0r��>��(�[�Ci_inja₁�ea₂��ha₁�1�8�[ha₂��]��,���K;8�497���i_surjb�eH�-����J�-����V����a�����v��_ha�&��s��'��_.�.����e�_�[�.����e�]�V��e�,���.��������-�������,�������������	���������/
�A�Y��V�,}�x)�������v��]��x�L��y��������&�y����P�x@���[
�=��F2�.������e�]�.��x)���P��x�e���y��������v��e�x@���]�_]�_�[�c�y����_x���&x��_x�&�v��]������&�r
�	�F3�b�����`�����o��]��������
��F2�z�����{�]��_a�F2��.��F6�.��������_�y���������i�������i�v��_������i���������pmap_eq_map������y���]���>�F2�bAnnotcalc
�	�F3���r�F3�r�r���������x�����&�|�]��_a�F2������.��x)���j���������y��x������x@���_���������r�pmap_eq_map_attach��������|�]�����rAnnot��
�	���u���t�,}�e��x�e��l�y����j�q����� �0��J�[_a�J������.������e�]� � ����� �	� ���g�.��e�����_� �q��� � &��� _a�F2�� � �,}���������V���y������� ��� � %multisetmap_map���e�����_� �q�map_congr��e���n� #�qx�e_x��������������8� 08Annot��Annot�IAnnot�J���]����s���[��� �nodup_ext����V�\��nodup_map��L���X�[
�Afunctioninjective��L���Xx�Ly�ehxy�� 38� 3�|���t8���t� W� 0t� YAnnot�t�����L�[�����[�nodup_attach���[�x���	� i� g�%a���'b�&��st�#� 0�x4������8��� i� ��<� f� f��� f� h� ��� h���e���e�8� �%�����������i��� �x�x)�� ��,���[�y������[���y��� �� �a����� �8� �� ����e�
� V�� }8� ���� h� ��.��e��� �q����e�������e_1,�� ����8�_*��x)�� ���t8��� ����e� ��� 8� ����
*�e���e����e�!���e� ����e��!�
�� �� ��
�� V���� V���
#�
$�x,�*��z�}�t8���_�!� ����!� �eq_comm���� 8���!� ���� ���Exists�
�d����� ����!?����� �� �� 2� �subtypeexists��������d��� ��w� f� ��-_x� �_a�����������i���i� ��� ��x4�� �8���������������,���(�y�� ��� ��%����%���x4� ��� �!n8������!{�N��e�5�h_1�!z��_x��i��������!��(�!p�!tExistsfst�[8�����!�������y��%���%��'��)���'���x4�%���%�!�t��3����!��+snd�!��!���!��PInfo���	Sdecl�erase_dup_proof_1��_inst_1�s<twp�������erase_dup��'ct���!�8�����<�w������!��!��perm_erase_dup_of_perm��'ct8�PInfo���	jdecl�������������s9��lw��!������t8�PInfo���	jVMR��_lambda_1VMR��VMC��	j��VMC��
�	j������erase_dup��!doc��`erase_dup s` removes duplicates from `s`, yielding a `nodup` multiset.decl��equations_eqn_1������9v���t8�!������9��!��PInfo�
�	jATTR����
EqnL�
SEqnL��decl�coe_erase_dup�����l<v�!��'����!�t�'������<�F�"�PInfo��	nATTR����ATTR����decl�erase_dup_zero�����:�!�8��&��������T�"�PInfo�
�	pATTR����
ATTR����
decl�mem_erase_dup�����a8sus���!����������8�u�|_x�s�
�!���'c�l��@mem_erase_dup��'�t�PInfo��	rATTR����decl�erase_dup_cons_of_mem�����a8su����}�")�T�")8�����8�u�|_x�����!�����8�"F8l�m�($�('�!���(.���"Q8�N�@erase_dup_cons_of_mem��(.�8�PInfo��	uATTR����decl�erase_dup_cons_of_not_mem�����a8su��(�"=���">�����8�u�|_x���(�"I���"Jl�m�(%�"S���"T�N�@erase_dup_cons_of_not_mem��(.�8�PInfo��	yATTR����decl�erase_dup_le�����s9��"�����#9��_xu�H�" lw��!�����@erase_dup_sublist�����PInfo�"�	}decl�erase_dup_subset�����s9���"������(9�Ut�"��erase_dup_let�'��PInfo�'�	�decl�subset_erase_dup�����s9���"������+9at���n�"8�o�mem_erase_dup��8�PInfo�*�	�decl�erase_dup_subset'�����s9tus���"��
�����/9�0u�w�"��
�subsettrans�8�"��subset_erase_dup��8�"��"�8�erase_dup_subset��8�PInfo�.�	�ATTR����.decl�subset_erase_dup'�����s9tus�	�" �
�����69�7u�w�"��
h�"��"��t�">8�"���'c8h�
�"�8�">�"���'c8�PInfo�5�	�ATTR����5decl�nodup_erase_dup�����s9���"������;9��_xu��" �@nodup_erase_dupt����PInfo�:�	�ATTR����:decl�erase_dup_eq_self�����s9sv�"�������?9�w�#�e�#�	�_x����"�8�nodup_erase_dup��8��_xu�>��}�">8lwh��r�K�!��'�88�|���C�#.8���8�@erase_dup_eq_self��'�8�PInfo�>�	�decl�erase_dup_eq_zero�����s9s�#�A���A�����H9�w�#F�#Hh�#F���8�	�_x����"��t�"�h�#H�	�_x��}�"*��t8�	�8�t�erase_dup_zero���PInfo�G�	�decl�erase_dup_singleton�����a8v�"���������O8���#p�����erase_dup_eq_selft�'����nodup_singletont�PInfo�N�	�ATTR����Ndecl�le_erase_dup�����s9tus�o�" ���������S9�Tu�w�#��#�h�#�����&���+t�">8�"���'c8���">�#��'c8_x�#�_a����&�
l�����W�
�������!���'���w���x�e����+��!��V�(*����#����W���V��#��le_iff_subset�V��#��"��V���#��U�V��8�"��V�(*��PInfo�R�	�decl�erase_dup_ext�����s9tus��"��" a�s���������Z9�[u�	�#�����#����#�s�#��#���<�#��#���#����s���")t���">������s�/�%q���#��#��nodup_ext��"��" ����"���8������;9�*��#�#t8��8�*�����$��$�*��M����#�����#�����<�#��������"(�'�t���"���'ct�#��������$*8���$18�#��#����#����#�����#����PInfo�Y�	�decl�erase_dup_map_erase_dup_eq��d��e�,�����_inst_2���f�.�s��,��erase_dup��������.��"E���$W�.���e�,������_����`�.��a��	�$^����$^���,��$Ta�b����8�$Z�$n�.�����m��$s�\�s�1W�.��#����8�1W�.�8�$u���$r�$��erase_dup_ext���$V�$Z�.���q�\��$��q�\���$s������
�w��/��8�$���<�${�$���${������
���#����t�$��$����${�$��.���t�$y�k��$��$��k�����$�����$�����
��$��w������#���t�w��"��V���t�$��$����$��$~�$����$~�$��$�8���$�����$����\����
������PInfo�^�	�decl�ndinsert_proof_1�����a8swt�p�'1�'4���insert���t���$�8�����h8�iw�j��k�'1�'G�$��$��perm_insert���t8�PInfo�g�	�decl�f������h8��������h8su���l��|�$���'ct�g��t8�PInfo�f�	�VMR�f_lambda_1VMR�fVMC�p�	���VMC�f�	��n�h����Dinsert�p�!doc�f`ndinsert a s` is the lift of the list `insert` operation. This operation
 does not respect multiplicities, unlike `cons`, but it is suitable as
 an insert operation on `finset`.decl�fequations_eqn_1������h8�nu��f��t8�%�����h8�nu���%#�PInfo�s�	�ATTR����sEqnL�sSEqnL�fdecl�coe_ndinsert�����a8lw��% �8�%���:���Dhas_insert��8�����u8�vw�'��%1�PInfo�t�	�ATTR����tATTR����tdecl�ndinsert_zero�����a8v�%t�'��A�������y8�F�%I�PInfo�x�	�ATTR����xATTR����xdecl�ndinsert_of_mem�����a8su����}�%��'ct88�����{8�|u�|_x�����%���88l�h�($�('�:���%5���88�N�@insert_of_mem���8�PInfo�z�	�ATTR����zdecl�ndinsert_of_not_mem�����a8su��(�%W�T������8��u�|_x���(�%b�"Gl�h�(%�%o���N�@insert_of_not_mem���8�PInfo���	�ATTR�����decl�mem_ndinsert�����a8bts�s�
�%T8�6�$�8�������8��t�����_x�s�*W�%_t�6���*Wl��@mem_insert_iff���t�PInfo���	�ATTR�����decl�le_ndinsert_self�����a8su����%0������8��u�|_x���F�%Ul��*7�%�'�t�@sublist_of_suffix��%��@suffix_insert��'ct�PInfo���	�ATTR�����decl�mem_ndinsert_self�����a8su���%�������8��u���%��6�$m8���mem_ndinsert��88���%�����g�PInfo���	�ATTR�����decl�mem_ndinsert_of_mem�����a8bts�h��*W�%�8������8��t���������%��%��*��%����t8�e���*��PInfo���	�ATTR�����decl�length_ndinsert_of_mem�����a8_inst_2���s�h�����%^����8��������8������������	�&����&���&���������&������&8�z�����8���*���*��*��*������<�����&(��������PInfo���	�ATTR�����decl�length_ndinsert_of_not_mem�����a8_inst_2���s�h�(�&�\���b������8�����������(�	�&R����&R���&R����&^��?���&a���&+�&a���&�&Q�?@���&g���"G�&Q�&-�"G�������8���-����-�E��K�*��
����*��V�*��?C�8�!S���b�&Q�&a�&��������&����!i���b�b�����PInfo���	�ATTR�����decl�erase_dup_cons�����a8su��"�l�%0�" ������8��u�ܺ�&�h���	�"=�%U�">����&����&��#&�">���"<�">���'ct8�*��&��">�&/��'ct�">���
�$7����&��(���$0t8�*��*����&������">�����(�&��&��&��&��}�"e�"e�&��&��"e���'ct8���)�����)��E��K�(��
����(��V�*��&��"e�&o��'ct�">���X�
�">����'�E��K�'�
��&��
��&��&��V�*����&��&�����">�">�&����PInfo���	�decl�nodup_ndinsert�����a8su����%V������8��u�|_x�����c�%al��@nodup_insert��'ct�PInfo���	�decl�ndinsert_le�����a8sut�s�-�%V��5�������8��u����w�'>�'@h�'>��A�*���E�%`t8�le_ndinsert_self���t����'J8��mem_ndinsert_self���t_x�'@_a��b�*���f������j�����%�V�(*����w��e�x�������%�[�'�����
/����"�[�'����'sh�'u�	���%�]�(��V������'����'�����������^�g�`�g�fe_2�
��g�	j�g�	ne_3�������.����'��t8����'�����'���&/�]�(��V��������*��'��*���������'���*��'�t�����X�'u�'���������'��'��;��'}��o�V�_a�^��3�%�_�+-�[�V��4����'��'��&o�]�(��V��	�'��'�����p��V���'��'��;��_a�^��3�%�V��'����'��'���u�'����y��V8�	�'��'��'����'��(�.
�'�_a���'��%��C�ߋ��[���'��(���'��(��^�V��'��	�(�'��'����(�(�.
�(_a���3�V�(	���(�(�."�(�(���(�(�+��]�V��'��	�(�'����(�'��;��'�_a�^��(#�(
�(#���(��'�t�PInfo���	�decl�attach_ndinsert�����a8su7�z������%V�z(�%��%�(b��(b��{�����.�'Jsubtypedecidable_eq�x��	�%��'����8�z��(a8�'Y��8�z��(bp�z��z��(i�{�mem_ndinsert_of_mem��'c�{t8�{	�{������8��u
eqhp�z��	�{8,p�{��z��y�x������(��{��(��{��(��-id�(�

�At�eq��'J7�y��y��%�y���y����y��(k�[���[���'�8�|�y����_x�U�O�(p8�'Y��'����/5�y�����%��y�p�(��}6�y��y����V�1Z��W_x�W�	-����[�08�'ht8�(��V�(*�(����y��(��y��
�'J�	�'JAnnot�IAnnot�Jt�ht�(��
/�8��^���(�h�8������W���
[�'q7�T���]�/�t�x@�]8�%�(���(���x)�_���_�0r��(k�e���e����k8�a�(��V��c���^���[�'�8�'Y�]�(��V��/5�T���]�/��(����)#�x4�_�)�V���_�0s��`���`���y��e���e�v#�]8�'�t8�(��_�+-�)*�[�V�\�)(�)����X�'h��	7�6�(��P��%�)N��)N��)#�(k�_�)(�+-8�C�(����|���\���'q��'Y�[�'����/5�)N�)N���)N�a�)"�8�)"��c���^���))8�'��8�(��]�(��)o�V��>�)"�)Q�)R�)j�)l�(��)N�)Q���)��)���
���)N�)#�)�_a�)��7�)#�)E�%�)#��)#��)�)(�)	�)/��k8�)m�V�)�8�)�)$�)#���)#�)&�)(�)*�)6�Vt�)@�)E�)��)��)��)E���)��)�����)N�)��	�)��)R�)j�)Q���)��)���)O�)l�/8�)N�)Q_a�)O��)��)��)��(��)#�)E�)��)����)��)Q�/c�)N�)Q�	�)��)R�)Q���)��)��)��)�_a�)O��)��)��)E�)����)��)Q�&/�)N�)Z�)i�)Q�}��[��)i�\�)O�)Qt�
��)Lt�
|t���'e�(���_a�W��(���
[����*��&/�V�(*��88���X�8������)J���)L�*&�	7�6���[�0�'��P����%�*,��*,��T���]�/��'��)T���_�0r���[�+-8�C�*+��)a�*/�)g�)k�*,���)N�a�*4�)o�)v�'�8�)��)Q����*R���*R�*.�*G�
G�)N�*I�x�)o�V��)�)Q�*P��*X�*.��*,�*A������*`�*e�*E�*P�*b���*-���*5e_17�)�*88�g�x)�e���e�v#�
��]�g�x)�������1���e�_e_27�I�����v��
���e8�d�d�����v��������7�*���*��t8�p�*��g�*�����*���*0�*j�attach_cons�[���*Q�*m�&o�*,�*>�*E�*P���X��*,�*-���*,�*E�*P����*��E��K�*��
����*�a�[�0��
��*��1k�;�[a�]�
�/��<D�[�*��*��1k���[�����]�/����*����)���_�0s�5s�)0�]�)&���_���e�).8�*��*����)N�;�)N���)#�	g�)*�[�*��*��*����)N�
��)#�)����)#�)E7�*5���)#�)&�*8�)*�)6�'�t�)@�*H�V�)�'�8�)�*����)N�*,�*N�*E�)Q���)N���)N�*��*��*M�+���)N�4�)o�V���)N���+�
��+�+���*��+��+�!"�]�subtypemk_eq_mk�]�*4�)o�*L�V�+���+�!I�[�*����6�*��+���[���[���0���0�	g�))�)&�*�8�[���[�1c�4�V���[�.
�+C�
��0�	h�[A�s���1y�
��1y�5st�]���+U�+P���+U�+P�S;�0�+O���[�*�����'u8�V�*����*k�*i�*P�*b�
��*,�*h�*`�*P���*a�*`��	��*-�*`��t�*�X�*&t�*�*&�&o�V�(*��88Annot�IAnnot�Jh�(�funext���(����(��(��(��(�p�(��|��(��(��(��(�S��(��(��PInfo���	�decl�disjoint_ndinsert_left�����a8sut�s�S�%V�
�(�G������8��u������+��S�T�+��	�+��+�����+����+�s�n���6�%��%q�V�+���<�+��+���+��n���(h�V����n���6������h��%V�YR�n��+��n��+��n��]�(h���+������.�%^�(.�t�+��&�t���+��+���+��n���.����V�+���T�YR�n��,�+��n��]�,���+������,�+��_��t�����+�����+����
��t8�PInfo���	�ATTR�����decl�disjoint_ndinsert_right�����a8sut�s�T�%��
�)��G������8��u������,@�S�%�8�,C�
��8�%��	s�,L�,C����,T���,Ts�,C�,C��<�,L�,C��S�%S�'�t8�,B�S8�,C���,e�,i����'ct8�
��)��)����)��,h�G���,h�G�,O8�,C�,C���,C���,\����,C���PInfo���	�ATTR�����decl�ndunion_proof_1�����v₁<v₂ww₁�w₂�p₁��p₂�������&�union�V�(*���&�,��t������<��w�������������������,��,��perm_union�V�(*���t8�PInfo���	�decl����������s9tu���l₁�l₂��N�,���8����t
�PInfo���	�VMR��VMC���	���������_c_1�Dunion�doc��`ndunion s t` is the lift of the list `union` operation. This operation
 does not respect multiplicities, unlike `s ∪ t`, but it is suitable as
 a union operation on `finset`. (`s ∪ t` would also work as a union operation
 on finset, but this is more efficient.)decl��equations_eqn_1�������9��u�����t8�,�������9��u���,��PInfo��	�ATTR����EqnL�SEqnL��decl�coe_ndunion�����l₁<l₂w��,���'��%�������Dhas_union��8�����<�w�'��,��PInfo��	�ATTR����ATTR����decl�zero_ndunion�����s9v�,�t�'��A�����9��_xu��,��tlw�'��,��r�PInfo��
ATTR����decl�cons_ndunion�����s9tua��}�,���'c��t8�%T�-t8�����9�
u���(�_x�_x��
?�,���'��E�(nt�-8t8l₁�l₂��P��-�D�(����PInfo��
ATTR����decl�mem_ndunion�����s9tua�s���-��������9�u���(�_x�_x�s�.��-"�6�.�8�.�t8l₁�l₂�listmem_union��'�8t�PInfo��
ATTR����decl�le_ndunion_right�����s9tu����,�8�����9�u�W_x�_x���6�,���88l₁�l₂���"�,��(.8�%���-k�@suffix_union_right��8�PInfo��
	decl�ndunion_le_add�����s9tu�H�-X�m�����&9�'u�W_x�_x��]�-a�!�8l₁�l₂���"�-k�9a�@union_sublist_append��8�PInfo�%�

decl�ndunion_le�����s9tuu�s�-�-�
�#Q�/�����.9�/u�0��X�_x�s�]�-_t8�
��8��Lt�	s�-�-�8�
����/����-����-�s�/�/��<�-��/����-�8���'c8��#�-��/��-��
��/�/�
��-�����-������*�����8��/�/���/���-��/���/���-�����/���	�z��{��s���-�t�
���U���t��es���,��V�(*�����
�#������l�����.���	���z��{�U�s���.���
�#���.s���,��[�'������
���\���[��������YO��YR�z��.�>w�z��YV�{��.�YY�{���.��.	���S	�.	s���-�8�t�
�.�8t��e�.	����.	_h�.	��.s�
�#�8��
�$�.�.b��<�.�.b��.�.`�._�.�.b�.i�
�.j�$�.k�.i�
���.8���$�.o�.i���'ft�.s��.w����.
�.{��V�(*8�t���
������*t�.s��.w�ndinsert_le�V�(*t�.s��
��.u�.j���.u�.j�$�$���$���.o�.k��.j�$���.k�.b�lc�$�.^�.�.�.b��.�._�
�.�$�.b�.��.��._�$�.��.��
�.��.�.��
��.�.���.�.`�.^�.����.�.����Vt8����.��.���$�.^�.�.���.���.��.���.��.���.��.��lc�.�.^�$�
��.^�.^���.^�.��.a���.��.a��.�$���.d����.b���.I��T2�.	�Z����PInfo�-�
decl�subset_ndunion_left�����s9tu�	�-X�����59�6ua�h������-_�t�6�+i��mem_ndunion���t8���+i��PInfo�4�
decl�le_ndunion_left�����s9tud����-�����;9�<u�=����/9���-�#��t�-�subset_ndunion_left��'ct8�PInfo�:�
decl�ndunion_le_union�����s9tu�-~��������@9�Au���/R�
�	�������ndunion_le��8�����/X����*�8�����~��`�PInfo�?�
decl�nodup_ndunion�����s9tu����-�����D9�Eu�W_x�_x���d�e�-t88l₁�l₂�listnodup_union��8�PInfo�C�
decl�ndunion_eq_union�����s9tud��}�-�������M9�Nu�O����-���ndunion_le_union��'ct8�� ��'ct8�-�le_ndunion_left��'ct8�le_ndunion_right��'ct8�PInfo�L�
ATTR����Ldecl�erase_dup_add�����s9tu��"�m�-W�" �����T9�Uu�W_x�_x���"F�!��-`�"F8l₁�l₂��('�"Q�9a�����,���(.8�"Q�N�@erase_dup_append��(.8�PInfo�S�
"decl�ndinter��������s9tu���
_x���Annot���
���*_88�PInfo�[�
+VMR�[_lambda_1VMR�[VMC�_�
+�
��_freshD�
�q�_freshD�
�o�VMC�[�
+�]�\����_�doc�[`ndinter s t` is the lift of the list `∩` operation. This operation
 does not respect multiplicities, unlike `s ∩ t`, but it is suitable as
 an intersection operation on `finset`. (`s ∩ t` would also work as a union operation
 on finset, but this is more efficient.)decl�quations_eqn_1������\9�]u��[��t8�/������\9�]u���/��PInfo�g�
+ATTR����gEqnL�gSEqnL�ecl�coe_ndinter�����l₁<l₂w��/���'��%����c��Dhas_inter��8�����i<�jw�'��/��PInfo�h�
-ATTR����hATTR����hdecl�zero_ndinter�����s9v�/�t�'��A�A�����m9�F�0�PInfo�l�
/ATTR����lATTR����ldecl�cons_ndinter_of_mem�����a8sut�h���/������8���0t8�����o8�pu�q��r��	�0"����0"���0"����^��.��
����^tt�05��0.����05�0:�07��0�0:���0��
�0/Annot���
����]�'�t������00�
���
�����t�g�����8��=��0/�03�t�&9�0!�0:������%�0 �05�0Vt8���0<�07�
����05�05���07�����05���PInfo�n�
1ATTR����ndecl�ndinter_cons_of_not_mem�����a8sut�h�(�0�0 �����t8�uu�v��w�(�	�0�����0����0��07��0?�05�0J�0Q�0X�����0/�03�t�&��0 �05�0j�0z���PInfo�s�
4ATTR����sdecl�mem_ndinter�����s9tua�s���/���'ct8��_�����y9�zu�{��ט�^��%q�
���+k�(.tt�PInfo�x�
7ATTR����xdecl�nodup_ndinter�����s9tu����0������}9�~u�nodup_filter��/��
���*^�'�88�PInfo�|�
:decl�le_ndinter�����s9tuu�s���0�8����#Q������9��u����	�0�����0����0�s���������/�U��������/�U��<�0��0���0�������^��-��
���+l88���������/�^��y�8��%�0��0��0T��'c8�����0��
���038�1��W��0��0�t8�0��0��
�������H�#Q�0����#Q�0��F�t���0��0�����0����PInfo���
=decl�ndinter_le_left�����s9tu�H�/�88������9��u�{ �1?���1=���1>�1=�
�1?�1F�le_ndinter���1=8���1=�PInfo���
@decl�ndinter_subset_right�����s9tu�1F������9��u�{X�1?�1F�1U�PInfo���
Cdecl�ndinter_le_right�����s9tud��-�0�8������9��u������1g���0�8�/B�0�8�nodup_ndinter��'ct8�ndinter_subset_right��'ct8�PInfo���
Fdecl�inter_le_ndinter�����s9tu���1=������9��u���1��
���
��1O��8����1����*�������PInfo���
Idecl�ndinter_eq_inter�����s9tud��}�0���[������9��u������0���[��H��'c�0�t8�ndinter_le_left��'ct8�ndinter_le_right��'ct8�inter_le_ndinter��'ct8�PInfo���
LATTR�����decl�ndinter_eq_zero_iff_disjoint�����s9tus��1=�t�T������9��u�	�1�s�1E�t�T���1��1��.
�1�_a��s�1���
��
����1��1��."�1��1����1��1��
��1=�	�1�����1����1��
���<�1��
���1������0��
����1��1��G�1=�t�M����1��������1���e�]�0��O���_�
������0��'�t8��_�x��'ct8�!�*�T�k���8���PInfo���
Odecl�fold_proof_1��op��2�hcis_commutative8hais_associativet8left_commutative��t����2,���2/���22left_comm�t��comm�t8��assoc�t�PInfo���
\decl�������2,���2/���22���������2,���2/���22�4���t����t8�PInfo���
\VMR��VMC���
\��������Xdoc��`fold op b s` folds a commutative associative operation `op` over
 the multiset `s`.decl��equations_eqn_1�����2,���2/���227�2M����t8�2Z����2,���2/���22�\�2M�2d�PInfo���
\ATTR�����EqnL��SEqnL��decl�fold_eq_foldr�����2,���2/���22b�s����2`���t8�4�����2;���2>����2C��t8����2,���2/���22�������+��2v�PInfo���
^ATTR�����decl�coe_fold_r�����2,���2/���22b�l����2u��listfoldr���8����2,���2/���22�������+��2��PInfo���
`ATTR�����ATTR�����decl�coe_fold_l�����2,���2/���22b�l��2���z���8����2,���2/���22�������9^�2z�2U���t8���2��������3�8�2��coe_foldr_swap����2�8�	���2��2�����2����2����2��2���5��2��2�f�
���
���V���
���
��V�[e_17�
��V�
��[�]8�
��[�
��]e_2�	i�
����
���e_37��8��������z�����[��2��V�t8�����
������2��2������6��
����
����[�V�2����2���6w��������V�������3������������6w�����V�3�3����2>�V��888��8�\��2��2����2����2���5��2����PInfo���
bdecl�fold_eq_foldl�����2,���2/���22b�s��2w��f��right_comm���2�2�8����2,���2/���22�������t_x����2`����t������3L���2>����2C���tl��coe_fold_l����t�PInfo���
edecl�fold_zero�����2,���2/���22b��B�2`��t8�����2,���2/���22������3��PInfo���
hATTR�����ATTR�����decl�fold_cons_left�����2,���2/���22b�a�s����3_�8���3`����2,���2/���22�8At�2Y�PInfo���
jATTR�����decl�fold_cons_right�����2,���2/���22b�a�s��3���3`8����2,���2/���22����������	�3�����3����3����3��3��������Ve_1�6��g�]�g�_e_2�9��d����<���<��t8�Sk�I����<���3��3�������t8�3��3��3h�3`8���3���	���3����PInfo���
mdecl�fold_cons'_right�����2,���2/���22b�a�s��3��3^�4B����2,���2/���22����������	�3����3o�8�3����3��3��
O�3�_a�����2`�V�������4��8�kG�4
���3��3��fold_eq_foldl����t�8�	�3����3n�4B�3����3��4%�
O�3�_a�����6�V�V��3L�V��3$�2C�V������4
�4���3��4#�foldl_cons����3mt8�	�4%���3��3����4%�4N�
O�4#_a�����45��8�4
�4���4%�3����3��4#�4�4B�M��3��PInfo���
pdecl�fold_cons'_left�����2,���2/���22b�a�s��3��3^��t����2,���2/���22����������	�4u�4M�4t���4u�4~�4_a���4�4���8�kG�4����4u�3��fold_cons'_right����t8�	�4~���4t�4t���4~�4��
O�4B_a�����4
�4����48�4����4~�4r�3ht8�M��4t�PInfo���
sdecl�fold_add�����2,���2/���22b₁�b₂�s₁�s₂�U���4�����4	8�4t����2,���2/���22������������U�N6_x�W�
W�2`�[�V����������V�4��t�4���	���4������4��4����4��4����4��4�������a��b�;8�����W�;_a�W��
W�4�����EC�4��4��EC�
W�4��4����4�8���W�;8�	�4��4��4�t���4��5
�O��4�_a�V��
W�4�t�4��5�4����4�t�fold_zero�V���t�	�5
�4�5���5
�5)�O��4
_a�V��5�4���
W�5/���5
�4
��V�4
�4
�4��V����t8�	�5)�4�4
���5)�5I�O��5_a�V��
W�4�����5/�5P���5)�4
�5;�5�fold_cons_right�V����t8�	��4
�	�z�V�{�\��4�2`�]�[�V��������[�5p���5p��	g�2`�_�]�[�V������!�Nv�]�5����5���Nv�z�V�{�\��5|�	g�1��5��5�8�5��1��5����5��5����z�V�5��z�V�5��z�V�L�\�{�\�5��{�\�5��{�\�S	�5|�4�5r�����8�5x�5y�5��5|�4��5{�5x��5z���5|_h�5|���_���ee_1�M��g���g��e_2��8�d�����t8�p��g�������5��5����_�5��1��5���!8�5��5��5~���_�A?�]���5��2-�e�[�]�\�5��]�5����5��20�e�V�]�5��5��Nu�5��5����5�����e�9�e_17�6�8���2-��t���20��������e_47�8��!��e_5��A�6���.��/��g�_���6��7��/���g��m�e����2`��g���]�[�V��6
8����g���m��o�����6�2-��m�]8�6���6�20��m�[8���6��.���.��7�/��6�6�6���\�6���6"���638��6��Ϊt��Ϊ������6�68�V8����2`�.�_��6�_���6�2-�/�V�_�\�6�_�6L���6�20�/��_�6T�t8���]�[�]�]�5��[�V�5��5����5��5��5����t�8�3��_�]�[�V�5�t�5���_��ee_1�M�������e_2�5���������t8��
�ǁ�����tt��t�5��5��5��5��6��5��5����5��5��5��6��t8�z�V�{�\a_1�5|���5���5���_�5��5��5��5��1��]�5��5��5��6��5��6��2;�_�]�2>�_�]�[�2C�_�]�V�5�t�5����_�5��6��1��6��5��5��5��6��5��5��6��6��6��5����6��6��6��5��1��6��5��6��6����5��6��5��5��5��5��6��5��6��6��PInfo���
vdecl�fold_singleton�����2,���2/���22b�a����2u�����E�����2,���2/���22�������	�7����7���7���E��E���5��7�E��9^�7��2u���E��3����t8������e_1����[��]e_2�	i���e�e��4�tGt8���A?���_�����7)8�5���t8�E��E����E����7#��5��E����PInfo���
{decl�fold_distrib��d��e�,���8�t����2-t���20�8f�g���u₁�u₂�Vs�G�4�5m�V�������[�]x�[�[����V�7qt�7t��7q8�7t���e�,���7i���7k���7m������7n������V���G����[_x�0�	g�5}�[�V���\���]�_���]�]�����[�7���7���7�t�7���	�4�7r�7x���V�7|�7}���7��7�������7����7��4��������]���_e_1�9��g���g��e_2��d���������t8�p���K�������7������]�7��7o���]��_�e�V���7��2-�_��V�\�7��V�7����7��20�_��V�7�����������7����5�e_17�5�8���2-��t���20���������e_4�8����!e_57�8�6���'��.�/�_���8�7�6�e�6.�2`�/���]�[�V��88��6�����6�2-��g�]8�8���6�20��g�[8���6��'���'�7�.��8�8	�8���\�6���8���8/8��6���)t���)���D��8�84�V8�\�'�2`�'�_��8�_���8�2-�.�V�_�\�8�_�8I���8�20�.��_�8Q�t8���]�[�V�V�7��������<����7��������[�]�7w�5�]�V�����7�����]��_e_1�9�������e_2�������������t8�����6�������7�t�7��7��7�t���t�8wtt�<�t�7�����8���8�t�7�8�7��7��7�8���8�8w88�<�8�7�����8���8�8���7���	��]�����	�z�[�{�0��5s�2`�e�]�[�V�������_�e���_�_�1e���]�8���8���8���8���<��2`���_�]�[��4����e�����e�e�n��1e��8�_�8���8��V�8��8���8���8��z�[�{�0��8��<��_�_�����_�8��98�9�98�_�9�9�_���9���9�9!��p�[�z�[�9�z�[�9 �z�[��p�0�{�0�9
�{�0�9�{�0�S	�8��5s�8��8�����]�8��8�����8��8�����8��5s�]����8��]��8��]���8����8�_h�8������������g���g���6�d� �7� ��9L�t8�^����9L��8��9�����8��9�8��8�8�9�9c�8��7�_���6��5��]�_�7�_�9i���6��7��[�_�9o�8��
��9�9d�9f���6����6��7�6�8���2-��t���20������ �7�%8���)�����8�6��6�_���6�7���m���o��q�e����2`��o���]�[�V��9�8����o���q��w�����9��2-��q�]8�9����9��20��q�[8���6���g����g�7��m��9��9��9����\�9����9����9�8��6��St��S�7��n��9��9��V8�\��g�6
�_�6�_�6�V�_�62�_�9��6 ��_�9��t8���]�[�_�_�9o�]�[�8��8��*�8��8��9{����e���8�t8�3����_�]�[�8��9�9d���������������6��� � �T��t8��� �%�����9�9�*�9�9e�9�9�9�:'�9�9�9b�9�9x��
����9�9�9����*��9�:8�:�Vt8�:
����9�9�9�9b�9�9x��
����9�9�9����*��9�:Q�:�t8�:
����9�z�[s_1�0a_1�8����9��9����9�9�9b�9�9�9�9�9�:s�9�9�9�:u�2C���_�[���9�9�9����:x�:t�9�2;���_�2>���_�]�:~�9���9�9b�:u�:u�9�:��9�:u�:��9�:p�9�:u�:���9�:��9�9�9�:p�9�9�*�9�:��:��9b�9�:u�:u�:��:��PInfo���
}decl�fold_hom��d��e�,���7i���7k���7mop'�6�_inst_1is_commutative��_inst_2is_associative��8m�0hmx�[y�]�0�t�((����0ib�]s�`�0�tfold��_����B�1����8�8��e�,���7i���7k���7m��6��
�:���:���0��:���]��`��e_x�f�0t�:��e�V�����1����8�t�	�0�:��:������:��������;���;�0�B�B����_���ee_1�G��g���g��e_2��u�0;��� ��� ��t8�G��5���� ���:��B�K��:��:��0��5�����5��:��e���,��5���;(���5��:��e���;0�B����B���5����5�e_1�,�6�8���:���t���:���������e_4�!f8��������e_5���8��
��6�_���6��,�6�e�,��g�:���g���]�[�V��;Q8�0��6�����6�:���m�]8�;Z���6�:���m�[8���;J�.���.�����;W�;R�;_���,��6���;g���;w8��;J���t����������;W�;|�V8�,��.�:��.�_�0��6�_���6�:��/�V�_�,��6�_�;����6�:��/��_�;��t8���]�[���;0���B�B�,��_�B�:�����-��e�_�����_����B�;�B��e���e_1�6�8�3�����t8��;8�5�e�]�[�V8���;��0��_�B���	�z�e�{����1��:����[�V��+�J��2`���e�_�]��G��:����]�[�V�q$�,}������
t8��2`�����e�_��<����<���	��e�z���{�	j��G��<	�<��<��:����_�]�[�qu�,}�����V��t8�V�2`�������e��<1���e�z���{�	j���L�e�z�e�<�z�e�{����z�e�L���{���<�{����{����<��<���S	�<�1��;��J�8��<�<Z�<����<_h�<��<�G��]����<8�<j������������u�g��g����8�0;�%��,�%��<s�t8�G�%�L���<s��<�<j�3����<�<g�<	�<8�<j�<��<�0��6��]���6��:����[�]�,��6��]�<����6��;D�V�]�<��q$�����<��<����6����6���,����ǁ8���:��t���:����� ��%��,�'8�������-���88�;J�9��_���9���,�9��e����:���q���]�[�V��<�8�0����q�g��w��y�����<��:���w�]8�<����<��:���w�[8���;J��m����m��,��o��<��<��<����,��<����<����<�8��;J��t������t�<��<��V8���:���m�_�0��9��_���9��:���o�V�_�,��9��_�<����9��:���o��_�=�t8���]�[�]�]�<��[�V�q$�q$�,����q$�<�<��H
�����t8������]�[�V�q$���<�������e_1��u����e_2�<p�GH�%�%�6��t8�-2�%�g�%�'����������=.���<��<i�<�<j�<��<���t�<h�<j��������7��3���t8�]�<�=f�3������e�_�t8�)�<h���<l��0����<j���<U��T2�<���	��e���	����	j���?p�e�	��e�����PInfo��
�decl�fold_union_inter�����2,���2/���22_inst_1��^s₁�s₂�b₁�b₂�V�
W�V�4�8������[�b��t�4��������=��t�V�=���=�t����2,���2/���22�#��^�$��%��&��'�V�	�=��
W�4��'��C�=��=��=����=��=���[�=�_a�[��4�[�5pt������]��_�'����5p8�������=����[�=���=���+N�=����=��=���[�=��=��fold_add�[�V��8�=��=��	�=��
W�=��C�t�=����=��>���=�_a�\��4�5p��>���=��=��=��4�>�=����=��>�union_add_inter�[�=��t�	�>�
W�=��=����>�>.�=��>_a�[��4�>�����=��=����>�=��>�t�
6�=��PInfo�"�
�decl�fold_erase_dup_idem�����2,���2/���22_inst_1��^hiis_idempotent��s�b����4��#���V�b�8�4�����2,���2/���22�.��^�/�>T�1��2��N6_x�W�
W�=��!��[�=��=�8�	���4��>V���4�������>q���>q�kG����V���[e_1�4��g�_�g�ee_2�M��M��6���6��t8�M��6���>n�J\�>n�4��2�����2��2-�[���\�2���>����2��20�[���>������2�����[�8�e_17�7�8���7�t���5��������e_4�����e_5��6��� �=K�_���>��67��%��'�.�e7�'�8F���]�[�V��8F8�8H���8L�]8�>��8V�[8���6�� ��� �7�9���>��>��>����8P���>����>�8��6��!t��!�8�7���>��>��V8�\� �2`� �_��>��_���>��2-�%�V�_�\�>��_�>����>��20�%��_�>��t8���]�[���>����	��>m���#e�V�>U�5#�>p�?%���>x��	���a�Vs�\IH�4�=��!��]�=��=��
/��t8�����_��e�((t8�	g�5���!��_�?@�Nv�?E�Nvh�?=�	�5s�8��_�]�[��!��e��e����'��N��?Q�N��5s�?Qt�1��?\���?Z�?_���e�����4�;��g���g���5�7��d���5���5��t8�p�������5���?W�?\���e�?W�?N��5��_���5��7��]�_�\�5��_�?���5��20���[�_�?���?Ut�?\���5����6��6�6�8���2-��t���20��������7�9L8�����)�8��D8�6��6�_���6�67�6�e�9��2`��m���]�[�V��?�8��9������9��2-��o�]8�?����9��20��o�[8���6��/���/�7�����?��?��?����\�9����?����?�8��6���t����8�T��?��?��V8�\�/�8�_�8�_�8�V�_�8.�_�?��8��_�?��t8���]�[�_�_�?��]�[���p��?V�?��&��e�?T�t�����t��*��@�*�8�?Y�?^�3��e�_�]�[��t�	�?_�5s�?Q�N���c��e����������++8t��1��@9���?_�@<���t_a�f��<��8��e�_�]���K��@F�<��@E�K��@K���?_�@8����@8t���?Tt��	�@<�5s�1��?Q�@7�1��@a���@<�@d��e�@9_a�e��<��@E�
�������������������i8���K��@v�<��K����@<�@a�@)�@7�	�@d�@b�_�1���@`���@d�@��@i�@c_a�e��<��K��@E�@t�K��@��@����@d�@���e�@��@c�2C�e�_�[���@`�	�@��@b�@a���@��@��@i�@�_a�e��@��e�K���@��@��1��@����@���0idempotent�e�_���p�@a�<�X�?=�?[���?a���?Z�5s�?^�?^��?z�?^�?}�1��?Q�?��?^�?}�?��N��?��@��@�@��&��e�?T�t���X�@����@��E��K�@�
����@�V�*��@)�?���e���e_1�;�������e_2�7������T�:t8������ �������p��@��?\8�?Y�?^�@*���@���	��e�?^���PInfo�-�
�ATTR����-decl�le_smul_erase_dup��_inst_1�s9�+�n��o� _�"���E��F9�>��A9�tfold
��߾�`sup_is_commutative
��jto_semilattice_sup
���natsemilattice_sup_bot�`sup_is_associative
��AI�Q�T]t�at������� M�AV�"��*t����� ^�AP�\~�N���8�"��le_iff_countt�'��AYat�	�Ac��� U�A_���"����Ac�Ap�.8�Ab_a�����٧8t�Av� ��AP�T]���N���~t�#��Ax���Ac�Ao�count_smul���A_�"��({�Aph�o���Aw� U�A~����A��Av�#��	���b� �Aw�A��Ax�A~���A��A��خ�Aw�Aw�<�Aw�A��A~�	
���monoid�A~�
��Ax�AP�A|�(F�A��A��A��A~���������A�e_1��A�8����
�t����
������e_4����&"��&"e_5�T���
*�A��_���A��U�A��e��AB���]�[�V��AB8�&[�A������A��A��]8�A����A��A��[8���A������V���A��A��A����*�A����A����A�8��A��&"t��&"�W�&7��A��A��V8�<�AB�_�A��_�A��V�_�A��_�B�A���_�B�t8���]�[�߾�߾�*�"�����߾�AJ�AN�Q�Q�,�A��A}�f�
0���f�
0��e_1�2�
0��8�s�W�s�\e_2�
���&"�T]�_���B<�t8��D�
0�_��s�`�&"���B<��A{�A{��&�B4�A{�(Ft�(��	�A�����A����A��Ax�߾�Aw�AP�A|�(E��A��Bg���A��AC�A��߾�A��AJ�߾�B+�Bm�A��AN�߾�B+�Q�&M�Aw�Be�Bg�B2�Bz�UU���A{8�(E��
��߾�AJ�AN�Q�Aw�Be�����b��ddecidable_linear_orderto_linear_order
��߽�Aw�Bg�α��_inst_1���a8bt�*�����a����c��B��t8�߸�t8le_max_left
�t8��߽�Aw�Bf����mul_le_mul_left����A��A~���;�A��q�#���	��'c8�#����B��r�$08t�S�p�	�Ax�A�����B����B����Q�A���A��Q����Aw�Q�
���88t�A��A��<�A����B��n��*��B�natzero_le�A����PInfo�D�
�decl�sup_proof_1��_inst_1��n�2.���8���8�J8��g�C
�I8�C�PInfo�f�
�decl�e_proof_2���g�C
�208�C��g�C
�M8�C�PInfo�h�
�decl�e���g�C
s9t��g�C
�i9�2`t���t���t�Ct8�f�t8�h�t8��has_botbott��order_botto_has_bott�jto_order_bott8�PInfo�e�
�VMR�e_lambda_1VMR�eVMC�o�
������_freshG�9
VMC�e�
��i�g�
�o��doc�eSupremum of a multiset: `sup {a, b, c} = a ⊔ b ⊔ c`decl�eequations_eqn_1���g�C
�i9�t�e�t8�CC��g�C
�i9�$�CJ�PInfo�t�
�ATTR����tEqnL�tSEqnL�edecl�sup_zero���g�C
�8�CG8���C98�C;8�C=8��g�C
�58�C�C18�C58�C]�PInfo�u�
�ATTR����udecl�sup_cons���g�C
a8su�o�CG�t�l���������C�t8�Cm��g�C
�w8�xu�3���Cu�C1�t�C5�t�C9��C;��C=�t8�PInfo�v�
�ATTR����vdecl�sup_singleton���g�C
a8�t�CI����g�C
�z8�	�C�����C����C��8���6��C��69�C��C/�CA�C��C��CI�A�C��vt8�A�O��wt������e_2�8��g��g�Ve_3�6��8�����]���C��t8�8��C���C.�8��C��CA�ut8��sup_bot_eqt8�8��8����PInfo�y�
�ATTR����ydecl�sup_add���g�C
s₁9s₂u�o�Cm�m�Cu�Cm8�Cw��g�C
�9��u�<��C��2a�Cu�C��C��Cu�C��C��m�C��	�C��C�����C����C��o�C��C��m�C���<��C��C��t�t�m�C��C����6����6�e_17�2�8���2-�t���20�V���[��]e_4�	i��f���e_5�	m�6��6��_���6���7�<��e��2`����]�[�V��D8����A�����D!�2-��]8�D#���D!�20��[8������������D�D�D(���\�D!���D0���D<8������	n������D�DA�V8�\���<�_�6��_���6��9��V�_�6��_�DP���6��?���_�DV�t8���]�[�Cu�Cu�\�6��Cu�C��C��C��C��C��t�C��m�m���m���D��=2�C����=���Cu�C��C��C��C�8�PInfo�~�
�ATTR����~decl�sup_erase_dup���g�C
_inst_2���su�o�Cm�"�����C�Cw��g�C
�������u�fold_erase_dup_idem��Cu�C��C��D��`sup_is_idempotent��Cs�C��PInfo���
�ATTR�����decl�sup_ndunion���g�C
�����s₁us₂��B�CG���-�$V8���������C���D�8�D���g�C
�������u����	�D��B�D��"(�$V�D��D����D��D����D�_a�����CG���-^��t8���������C���D�t�D�8�%�D����D��D����D��D��sup_erase_dup���$V�D��	�D��B�D��D���D����D��E�(��D�_a�����D��$X�D��D����D��D����D��E���}�D��E�\�s�.�D��.�(��erase_dup_ext��$V�D���	�E#����E#���	���\�s�	�-����t�	�)*�$u��YR�\��E"��q�\���E"s�8�8��<�E�8���.�-^�������8t8�8�/)��t8�E!�8���E!�8�S�t8���EB����8�$��������	�E�B�D���D����E�Ev�D��E_a�����D��$X�(��D��D����E�Et�D���	�Ev�B�D��D����Ev�E��D��Et_a�����D��(��D��D����Ev�D��sup_add��8���D��PInfo���
�ATTR�����decl�sup_union���g�C
�����s₁us₂��B�D���	��
�$V8�D���g�C
�������u����	�E��B�D��D��E��D����E��E��D��E�_a�����D�������t8�D��D����E��E��D��E��E��D��E��	�E��E���E��E�(��E�_a�����D��$X�E��D��E���E��E���}�E��E�\�s�.�E��E!�E'�E���	�E�����E����	���\�s�	��M��N����t�E5�$u��YR�\��E���q�\���E��EB��<�E��8���.�����EJt8�8����t8�E!�8�E^�Ed�Ej���E��PInfo���
�ATTR�����decl�sup_ndinsert���g�C
�����ats��B�D��%S�$V8�D�8�D���g�C
�������t����	�F;�B�D��D��F6�F:���F;�FE�D��F7_a�����D��%^��t8�D�t�D��%�FQ���F;�FC�D��FC�F7�D��F6�	�FE�B�D��D��,��F:���FE�Ff�(��FB_a�����D��$X�FM�FQ�E�FQ���FE�Fc���}�FB�Fc�\�s�.�FM�.��E'�F6�,��	�F����F���	���\�s�	�(m����t�	����$u��YR�\��F~��q�\���F~s�6�%t�-��F���<�F{�F����.�%^�EJt8�F��&��t8�F}�F����F}�F��,"t8���F�����F��Ej���	�Ff�B�D��,��F:���Ff�F��D��Fd_a�����D��$X��FQ�FT���Ff�F��D��,��	�F��B�F:�F:���F��F��D��F�_a�����D���FQ�FT���F��F:�C���8���F:�PInfo���
�ATTR�����decl�sup_le���g�C
�����sua�s�.������lto_partial_order��C=���D�b�H�%q�.������G��C=��8t��g�C
�������u����X�_x�s�.������G��C=���E8������%C�.�V��V��V�G�V�C=�V�8�8�	s�G
�D�����������G����GJ���GJs����<�GF���GF�G
�C9��C;��G	�������g��g�e_2���g�[�g�]e_3�	i�5r�.�e���Gb�t8�5~�Gb��G�GD�G[�C��������G]�α_inst_1�la8�*��O1�O2�O3�Gt8�C:�C<8��bot_let8��G	�GI���	��������K�G=���������YR����GH���������7����G�7�
��G��]����G.8�
��G�������
������G����	��
��	��
��G;t�����	��
��G���Ej���GR�������	�z��{��s�G�CG��t������x��.�[��[��[�G�[�C=�[�V8�s�G;�CG�V�������V���	.����.�]��]��]�G�]�C=�]�[8�����H���	���z��{�U�s�G;�G�����V���u��G�s�G��CG�[�V������[���0�&�.�_��_��_�G�_�C=�_�]8��YO��YR�z��H�>w�z��YV�{��H�YY�{���H��G����S	�G�s�G�G��8t����������G��G�����G�_h�G���Hs�
�G����V���w��G��HI���V���w��G���<�G��HL��G��
�G2�G3�G4�kto_partial_order�V�C�V�t��H^�G�8��HL�HV�G;����V����V�HZt�Hb��He�����V�g�[�g�]���	i�g�e�g�����;��d����.�����Hv�t8�	z�����Hv��G:�G��Hm�C��V�t8���	�����H^�Hm��He����V�HZt�Hb��
��H`�G����G��Hd�HK���G;�Hb��HK�H�HP��	��V���[���0����H$�
���V���[�>�+N��H"�����V���[���<�H$�HP�H����V���[�
�H��H��H������V�H���V�
�>�52��G����HN���V��7�G��G��
�>�H��G��HN�H��H����6�H��w��G��H��S	�G��G���H��H����G��H��_�[�t_h�H����G����H��H��n�H��w��H��
��H��H��S	�H��H��H��G������H�_h�H������]�g�_�g�e���M��g���g�����5��5��.����I�t8�5��I��G�8����<���HN�HN���HN�����V�
�H��H��H��}�V���V�H����V�HN�
����V�H��G������V���H����]�H�8���V�It���V�IFt�HO�HO���HO���HM�HL����HL���H7��T2�G��Z����PInfo���
�decl�le_sup���g�C
�����sua�h���G.8�D���g�C
�������u����������G.�D��D���������G<�G���sup_le����t�D�����G,�D�8�PInfo���
�decl�sup_mono���g�C
�����s₁us₂�h�1I�Iz�D���g�C
�������u������1I���I���������G<�G���I��D�b�hb���le_sup�V�����8�D��PInfo���
�decl�inf_proof_1��_inst_1��semilattice_inf_top�2.���8���8��to_semilattice_inf8����I��`inf_is_commutative8�I��PInfo���
�decl��_proof_2�����I��C�I�����I��`inf_is_associative8�I��PInfo���
�decl�������I��C&����I�s9�C)���t���t�I�t8���t8���t8��has_toptopt��order_topto_has_topt��to_order_topt8�PInfo���
�VMR��_lambda_1VMR��VMC���
������_freshD��
VMC���
������
����doc��Infimum of a multiset: `inf {a, b, c} = a ⊓ b ⊓ c`decl��equations_eqn_1�����I���9�t���t8�I�����I���9�$�I��PInfo���
�ATTR�����EqnL��SEqnL��decl�inf_zero�����I��8�I�8���I�8�I�8�I�8����I��Ca�I��I�8�I�8�J�PInfo���
�ATTR�����decl�inf_cons�����I�a8su�o�I��t�l���������I��t8�J����I���8��u�C~�J�I��t�I��t�I���I���I��t8�PInfo���
�ATTR�����decl�inf_singleton�����I�a8�t�I�������I���8�	�J8����J8���J8�8���6��J6�69�J6�I��I��JF�JG�I��A�JH��t8�A�Y���t������e_2�8��g��g�Ve_3�6��8�����]���JW�t8�8��JW��I��8��JK�I���t8��inf_top_eqt8�8��8����PInfo���
�ATTR�����decl�inf_add�����I�s₁9s₂u�o�J�m�J�J8�J����I���9��u�<��J��2a�J�J$�J'�J�J.�J.�m�J��	�J��J�����J����J��o�J��J.�m�J���<��J��J����t�m�J��J��Dv�J�J�Dy�J�J$�J'�J��J.�Ju�t�J.�m�m�D����J���=2�J����D��J�J$�J'�J.�J.8�PInfo���
�ATTR�����decl�inf_erase_dup�����I�_inst_2���su�o�J�D��J����I��������u�D��J�J$�J'�D��`inf_is_idempotent��J�J.�PInfo���
�ATTR�����decl�inf_ndunion�����I������s₁us₂��B�I����D����������I����J�8�J�����I��������u����	�J��B�J��D��J����J��K�D��J�_a�����I����D����������I����K	t�K	8�%�K���J��K�D��K�J��inf_erase_dup���$V�D��	�K�B�J��E�J����K�K-�E
_a�����K	�E�K���K	�K���K�E�Eo�	�K-�B�J���J����K-�KE�D��K+_a�����K	�E|�K�K���K-�KC�K$��	�KE�B�J��J����KE�K[�D��KC_a�����K	�(��K�K���KE�J��inf_add��8���J��PInfo���
�ATTR�����decl�inf_union�����I������s₁us₂��B�J��E��J�����I��������u����	�K�B�J��E��J����K�K��D��K}_a�����K	�E��K�K���K�K��D��K��K}�K$�E��	�K��K-���K��K-�E�_a�����K	�E��K�K8���K��E�F)�Ku�PInfo���
�ATTR�����decl�inf_ndinsert�����I������ats��B�J��F6�J�8�J�����I��������t����	�K��B�J��FB�K����K��K��D��K�_a�����K	�FM�Kt�K�%�K����K��K��D��K��K��K$�F6�	�K��B�J��Fc�K����K��K��Fk_a�����K	�Fl�K��K7�K����K��Fc�F��	�K��B�J��,��K����K��K��D��K�_a�����K	�F��K��K����K��K��K$�,��	�K��B�K��K����K��L�D��K�_a�����K	��K��K����K��K��JO��8���K��PInfo���
�ATTR�����decl�le_inf�����I������sua�s�G�G�G��to_partial_order��I����J�b�H�%q�G�G�G�L/��I���t8����I��������u����X�_x�s�G%�G&�G'�L/��I���8�K6������%C�G2�G3�G4�L/�V�I��V��88�	s�L7�J�����������LB����Li���Li�GR��<�Le���Le�L7�I���I���L2��Gs�L5�G|�Ld�Lx�Jo�����Ly���_inst_1��a8�*��O1�O2�O3�L/t8�I��I�8��le_topt8��L2�Lh���	��������K�L]�G���YR����Lg�G������7����LB�7�
��LB��G��LR�
��L��G����L����	��
��	��
��L\t����	��
��LB���Ej�G����	�z��{��s�LA�I���������x��G��G��G��L/�[�I��[�V�8s�L\�I��V������V���G��G��G��G��L/�]�I��]�[�8����L����	���z��{�U�s�L\�L����V���u��L�s�L��I��[�V�����[���H�H�H�H�L/�_�I��_�]�8�YO��YR�z��L��>w�z��YV�{��L��YY�{���L���L����S	�L�s�LA�L��8������H?�L��L�����L�_h�L���L�s�
�L����V���w��L��M1���V���w��L���<�L��M4��L��
�G2�G3�G4�sto_partial_order�V�I��V��t�MG�L�8�M4�M>�L\����V����V�MBt�MJ�ML�H��LZ���H��L��MT�JO�V�t8���MG�MT�ML����V�MB�t�MJ�
��MH�L����L��MK�M3���L\�MJ�M3�L��M8��	��V���[���H��M�
���V���[�>�H��M
����V���[���<�M�M8�M����V���[�
�M��M��M������V�L����V�
�>�H��L���M6���V��7�G��L��
�>�H��L��M6�M��M����H��L��M��H��L��H��M��H�_h�H����L����M��M��H��M��
��M��M��I�M��H��L���I_h�H��I�L����I$8��M6�M6���M6�����V�
�M��M��M��I6���V�M����V�M6�
����V�M��L������V���H����]�M�8���V�M�t�II�M�t�M7�M7���M7���M5�M4����M4���M!��T2�L��Z����PInfo���
�decl�inf_le�����I������sua�h���LQ�K8����I�������u��������N�K��������L[�L��8�le_inf����t�K�I��LO�K8�PInfo��
�decl�inf_mono�����I������s₁us₂�h�1I�LQ�K�K����I�������	u�
���1I���N3��������L[�L��8�N$�Kb�hb���inf_le�V�����8�D��PInfo��
�decl�sort_proof_1��r��_inst_1decidable_rel8_inst_2is_transt8_inst_3is_antisymm�t_inst_4is_total��a�b��h�%8��listmerge_sort�[�V��t�Nd8������NU��NX��N[��N^�������N`�eq_of_sorted_of_perm�[�V��Ne�Ng��`�[�Net�Ng�perm_merge_sort�[�V��t�Nxt8�Ng�%�[�Ng8�N8�sorted_merge_sort�[�V����t�N�8�PInfo��decl��������NU��NX��N[��N^s���������NU��NX��N[��N^�"���������Na�����������t8�PInfo��VMR�_lambda_1VMR�VMC�#���VMC���"�������merge_sort_main�#�!doc�`sort s` constructs a sorted list from the multiset `s`.
 (Uses merge sort algorithm.)decl�equations_eqn_1�������NU��NX��N[��N^�"���������t8�N�������NU��NX��N[��N^�"��\���N��PInfo�'�ATTR����'EqnL�'SEqnL�decl�coe_sort�������NU��NX��N[��N^l����N�����t8����N�������NU��NX��N[��N^�)�S���N��PInfo�(�	ATTR����(ATTR����(decl�sort_sorted�������NU��NX��N[��N^s��sorted���N�������NU��NX��N[��N^�+��2m_x�U�N��V��N��V������tl���N��V���t��PInfo�*�ATTR����*decl�sort_eq�������NU��NX��N[��N^s��
?�2�N�������NU��NX��N[��N^�0��2m_x�U�X�	`�Ol������O�'�N|�V����PInfo�/�ATTR����/decl�mem_sort�������NU��NX��N[��N^s�a�s�v	�O8�x�������NU��NX��N[��N^�4��5��	�O=s���	`�O:�x����O=�OJ�.
�O;_a��s�>�N��[�V�����t�k�t�.�OY���O=�OH�."�OH�O;���OH�O;�	��O:�	�OJs�x��x����OJ�Op���OG_a�W�s�k��i�OV�OYs�k��OY���OJ8�sort_eq�V������t8���x��PInfo�3�ATTR����3decl�length_sort�������NU��NX��N[��N^s����:�N��p������NU��NX��N[��N^�:��2m_x�U���H�O�6�length_merge_sort������V��8�PInfo�9�ATTR����9decl�has_repr_proof_1is_trans
�4����4��a�4���4��
�4��u
�4��`lattice_of_decidable_linear_order
�4�stringdecidable_linear_orderhas_leleis_trans
�4��O��PInfo�>�	decl�=_proof_2is_antisymm
�4��O��Dis_antisymm
�4��O��PInfo�F�	decl�=_proof_3is_total
�4��O��O��O��c�4��B��4��O��Dis_total
�4��O��PInfo�I�	decl�=��_inst_1has_repr�O�9��L�O�has_reprmk9s9�&s�4�stringhas_append�O�
Str{stringintercalate
Str, �tsort
�4��O��Ahas_le��4���4��Adecidable_le8�>�F�I�AQ�4�reprt8
Str}�PInfo�=�	prt�=VMR�=VMC�='�	�P�L�}charof_natstringemptystringstr�b�W� �Z,�Z�\�^�^�]intercalate{�Z�\�^stringappend�adecl�=equations_eqn_1���L�O�7�O��=�8�P��L�O��\�O��P�PInfo�c�	ATTR����cEqnL�cSEqnL�=ATTR����=class�M�=��decl�sections_proof_1��a₀a₁9s�PLpi�Pj���Q�multisetbind���a��/5��
_x�_y�U�_Annot���P"����l��/5�U�U
�m��n�W���Annot��t�Q��P$t�l��P,�P.��P8��f�g9�h�PL�i�Pj�	�PE����PE���PE��r�P?�l��P@�L��P1�/�U���_t�P?�l��PV��PP�P!�PX�Q��P[�P\��Q���P�e_1��:�
����8e_3���d���P ��I���Pf��t8�*�
�0J�Pg�Pj�_�&�'��I�
�0J���Pf���P<�PX��g�P<�P?�l��P@�m��j��k�V�/5�\�\�/�\�
e�5��8�PX�P��P%�l��P/�PU�P��
���
��e_1��
���V�P��
���[�Q+e_27��]��=8����_��I��=�P"�_�`��P��t8�M��
��P���I���P�����&��P;�P��6w��t��P�����P'���P/�l��P1��t����P��l����P��P��P/�L��P1�7�l��/5�W�W�
T��P��map_bind�����P����
���
��U�q�Z�
��P��
��P��r7�P�8����e�QM��I�P"�e�f��P��t8�Jb�
��P��QM���P�������L��P��P��PU�3�t��P�����Q����PT�L����P��Q�P1��y��t�PT���U�U�U�7��t���U�U�Q�PRt���U���S����\�\�\����8�bind_bind����t�j��k��PT�P�tt��8�l��P@�m��P1�/�U�_�Tt�PW�P�����QK����PV�l��Q���)���QJ�PU�Q����QI�Q�m��Q"�QG�PRt���U���S���t�8�Q��PD�P[�QE�PC�PZ�P�����P��P@�P��QQ�l��P��Qs�P@�P��PV�P���P����QV�Q�PU�Q1���Pa�P\��%�Q��PX�P[���PY�PX��	��Q��PX���PInfo�e�decl�d��s�P�P.��u�Pmultisetrec_on�%9_x�P.�PL�R9�P.�{9�29��s9_x�PLc�Pj�P?�l��P,8�e�8
�PInfo�d�VMR�d_lambda_1VMR�d_lambda_2VMR�dVMC�|�(�l�_freshD�
^a�	�bVMC�}��{�z�y�|�
�VMC�d��u��}��'�singleton��decl�dequations_eqn_1���u�P����d�8�Q���u�P����Q��PInfo���ATTR�����EqnL��SEqnL�ddecl�sections_zero������Q��Q���������Q��PInfo���"ATTR�����ATTR�����decl�sections_cons��s�Pm9���Q�t�Q�8�P"tuat��
_x�_y��>�Annot���Q��t����P��9�rec_on_consu�x�PL�Pj�Ru�PL�{u�2u�A�yu�z�Pj�{�Q��P.t�l��P68�Q�t8�PInfo���%ATTR�����decl�coe_sections��l�P*����Q��P7�P9l<��P7�Q�listsections8�����P*�PG���PH���Q��PU�PW��w�%��PU�R�Rt���PH_F�Pe���Pf���Q��Ps�Pu����0��Ps�R�R����P����P����P���N�Q���P��P��������P��R)�R��P����P����P����P���y�Q��V�P��P����!�i�P��R9�R�V��y�R6�P��R98�P��R9�R>88���P����P���8�Q���P��P������J�P��RT�R��P�����8�RR�P��RT�P��RcS�P��Rcl_hd�l_tl�P����P����P���Q�Q��[�Q�Q���*�3�Q�Ro�R�[�Q����Q�Rl�Q�Ro���*t8�Q�Ro�Rt�R~�	�R���Q�Rl�Q���\����Q�Q�Q�R����R��R����P����Q+e_1��D�g��I�g�QMe_2�՛�՞7�՜��R��t8�ի�R���R��R��u�P��u�Q+e_1��D��`��It8�Q��e�R��R��D�#��P��P����Q)�����e_2������QK�QMt8�QN��Q�R�R����*�\�it8�R��R��\�P��R��	�R���Q�Rl��\����Q�R����R��R���P��R�_a�P����V�Q��]�Q4���^�Q�Q7t�Q4�Q7�R�]�����t��V�R��R����R��R���P��R��R����\����Q�	�R���Q�P"�[�\������[��{
���]���`��8Annot���R��Q4�R��R����R��S�R��R�_a�P����V�R���^�Q�S�R���V�R����R��S�sections_cons��[�Q����	�S��Q�P"�\�\�Rl�Q�u�\�	f�^a�]�޾8�Q�R����S�S>�R��S�t�[��{b�^�$8�S_a�P����V�P"�]�^�Q���]�Ӊ
���_���f�́Annot���Q��_B�����=E�����=H�����=.�`�/L���`����R��S#���S�S<�bind_map_comm�,�,�,�[�\�\����S4�t�[�SE�	�S>��Q�S3�Q�Ro�Rt8�S;�R����S>�S��R��Rl�Q�Ro8_a�P����V�P"�^�^�S�u�^�*�`���_��8���R���V�S��S��R����S>�S�<l���Q'��V�R��Q4�Q6�������Q4�S��R�8�QG�c�*�d�QH�
����<~�<���QI7�QM�Q����QV�QX������QV�S��R��8�<|8�<��<�S��S��<|�	�S����P?�\�Q�P����*�
�^���]���8��S}�S��S����*�S����]�S���S}���S��S���S���Q�Q�S��Q�S��S��R��S��S����P��S��Q����\�\�Q�S}�
��\�S��S8��S��S��S3�Q�S��u�\�Q4�S��T�
��P��
��Q+e_1��D�
���f�QM�
�����՘e_27��	j�՜8����	n��՜�P"�	n�	n��T�t8���՜�
��T�T���T��S�T�R��T�S;�T�6w�\���\�Q+���\�S:���\�T�u�\����]�^�S8��
��,�,�\�\�S��T�R��T�S����P��T�S�����P��T�S��S��
��,�,�\�\�S��T�
��P��
��Q)e_17���8����!��!t8�P?�f�TO�S����TY�TO�S�����*�\�P��T�i�S}�S���d�*�\�P��T�i�S}���
��*�Q)���
������e_17�
�����!8�
��QI�
���e_27��8������&�/L����&��T��t8���
������
��T������T���Tr�S����T~�Tr�/�*�
��^�
4�`�S���Rm�S����,�,�,�*�\�P��T�i�6w�*���*�Q)�/�*�S����]�޾��8��S��/�*���
0�]�`���
0�_�fe_17�
0�e��8�
����
���e_2��8������/L�����T��t8���
0����
�������T���T��S��6w�]���]�`���]�T��S����]���_8���\����S}�S}�\�Q'�S}�R��S��R��R��S��TK�R��S��/L�Q'�P��Q�Q�Q's�*�
��a�]�S���S}�S��U�Q�P?�*�U�U���������e_17�
0���f8�
��QI�
��T�e_2�T��T���&�T��	n��U&�t8���
0����
��T������U&��i�i�\���i�R��U���Q'�R�����*�*�S}�U�U�UEhas_bindbind�,�,monadto_has_bind�,�,listmonad�,�*�*�S}�U�UI��sectionsequations_eqn_2�,�[t8�@bind_eq_bind�,�*�*�U�S}�TS�*�*�S}�U�@map_join�,�,�*�\�i�U�Ti�U�S��Tl�U�S��Tn�Q'�P��Q�U�S}�S��Tw�Q'�P��Q�U�S}�T��Uy�S��T��Uy�/�*�Q7�����
4�����_���e8��S��T��Q'�P��Q�U�T��/�*�Q7�U�S��/�*���Q)�U��S�����]���^�3�U��S���d�]���^�3�U��T��U��S��T��]���^�3�U���T��S}�S}�U���S��S����\�S��S��$2�\�S�8�PInfo���)decl�sections_add��s�Pt�P.���Q��Q��P"uu�Q�8mu���"�Q�8����P���P.�Q�_x�PL���Q���8�P"���Q�����ҿ��Q��t8�	���Q��Q��Q��U��Q��Q��U�����V���V���Q��V�����V
�V�u�PL�u�Pje_1��t���P��P�t8�R'�V� �PL���PL���PL���PL�au�V�V����V�Q��V�Q��V�V9�Q��U��A�U��Q��U��V;�V9�U���H�U��VB�
��PL�
��Pje_1��t�
����P��
���U�P�e_27��W�P�8����\�Q+�P��S3��S3�t8���P��
��VO�Q+���S3��V��H��t�U��U��\��u�Pj�U��
�uu�A�Q��U������PL���Pj���Q�e_2��P�g�P��g�P�e_3��S��y���Q+���V}�t8���Q+�g�Q+��=���V}��Q���	�0�V�V����V���	��u�V�V�Q uu�0�V��V��u���Q��U������u�V�VA�Q��
�uu�U����PL�V2�V���V��	��PL�V��aus�Pjih��r�V�һt�P"���V����P'��_�R'��	��N�R'���P�����R���P"���R'�R�����P1�a�RR�����V����V���N�Q�����P"�U�U�RRt�L�U�P��/�W���2��R6��V�����P����P�e_1��{�g�P��g�Q+e_2��D��F7��I��V��t8�p��I��P���V���V��V��P��V��Q�����P6�RR���P����Ut��V��W�R'�R��V�8��W�u�P��u�P�����{�VX�P�t8�Rl�V��W#�D�t8��S*��W"t�Qtt�)�t�W�V��Q����W����V�����Q�W�V��L�U�P��_���W�P��C�Rl��V��WF�P��V����U�P����V��WP�f����f���e_1����u�Q+�u��=e_2�V�8���QM�QM�/5������W`�t8����u�QM�՘���W`��P5����
���W�WW8�P��U�U�U�V��WV���
��P��
��P�����S�
���^��=�
���`��I��7�T8���T
�QM�P"������W��t8���QM�
��T
�՘���W���V��V��\�P��V��L�U�WG�WU�V�������U�P����U�W����U�V��L�U���P��W��P�����_�WS�V��V��Q�W�W�W�_�WS�V��Q �W�W�W��V��V����W����\�P����\�WJ���^�^�^�%��t8�V��V��P��V��Q��c��V�����P��R6��WV�V��W��V��Q�����P��V��V��W��
��P��
��P�����{�
��VO�
��W���7�W�8���T��I�P"�f�f��W��t8��`�
��T�QM���W���V��W��W78t�V��V��\����P��V��bind_assoc���t�W��V��W?�c��V��W��WV�V��Q����X%�WD�c��Q�X%�V��Z�U�WL�_�V��bind_map�U�U�U�V��WV���W��Z�U�P����_�V��V��W����U�X<�W��Z�U�W��X:�V��V����W���W���
�t8���V���	��P��V����PInfo���4ATTR�����decl�mem_sections��s�Pa9s����U���utsu��8����P�Tf_x�P.��us�V��������a��-�8�	��9s�Xf�V�Xl�Q�����X����	�9��us�Q��Q��Q��Xx�Q���9��u���T���9�X���9���9��X�s�#H�#H��<�X��#H��X��Xf��H�#H�f��u�PL�g��g�e_2��g�P��g�P�e_3��S��U��^�Q+���X��t8����^���X������74�V��H�Vj���X��#H��u�A�X��#H���X��#H�ut�Xk���X�����#H���
�9���TI9�U���a9s�PLih���s�Q��V8�����������%C8a'��	s�R��R'�R��t�����������x��X�����Y	���Y	s�	
�����'�U�
�_�
���W�V���W���[�8����_�	
����� �U�Y��<�Y�Y��Y�	
�����3��3�R�t���V�P����Rl�8�Y�Y*�R��P/����P��RR��Y7�f����P��g�U�g�W�����g�Q+�g��=���W\�d�QM�����QM���YG�t8��b�g�QM����YG��R�����X��Y=�W7t����Y>�Y7�����Y<���[j���[ke_1��f�7�6��t8�1k���Y+��3�Y,�WG�R6��Y������Y����Y����Y�
�3�����U�Y�Y�Y��Y+��3�
����W�
���\�[���\���]�/�8��
[����Y������3������_�e_1����	-t��8�-������V��t8���Y��Y~�Y��k��3���3����3�Y}���3�Y���3��Y}�
����W�
�W��Y/�
[�Y���Y����Y}�Y��+�W�W�_t�Y{�A�Y��Y��G���W�Y����W�Y����W�
��Y��Y����Y��Y���Y��Y����Y��Y�����\�Y�����Y+�
��3�Y��Y��S;�3�Y����Y������U�Y�Y�[��Y�Y���<�3�Y��Y�Y$���Y�	
����� �U�
�Y�8�Y�rel_cons_left���Y�t���Y �Y����Y���PInfo���9decl�card_sections��s�P���(�Q��prod
���comm_monoid�Ta����P�Tf_x�P.���5�V�Z4�Tl�	���(�Q��Tt�Z4�Tx����ZD���ZD������ZA�b���ZA��(��@�b���P.���PLe_1��8��Q��t8��[�Z@��@�Vi8��9���ZC�b���ZC�Z4�&E�`��
�comm_monoidto_monoid
��Z3����
���&"��&"e_2�T��T��Z2��Z3�Tx�&E�T��	

��Z3�����	�z9�{�PL����H�U��Z4�T����[�V�T��Z4�T�����Z����	�9�zu�{�Pj����[�V��Z4�T����y�V��Z4�T��T���Z��T��T��T��z9�Z��U�z9�U�{�PL�Z��U�{�PL��Z���Z����S	�Z����H�Q��U�Z4�U�Z�����Z�_h�Z���Z��� U�.Z�Z4�U�Z�����Z��Z����Z��l��T��.Z�Z��Z��Z��T\�m*�Z��.Z�Z��Z��T\�Az��u_1�1��Q����[����P��R'tt�Z��Z���[�P?�Z��Z����Q����P�����:��P��t8�5�W�Z��Z��S*�8t�,��t�Z��T��Z��Z��\��Z��Az����Z4�T�tt�Z��\����Z��[
t������/���Z���P���Ԅ����P��Y{8�Ԅ�Y:�Z4�T]�U��(��[�Ԅ�[8�[�2�1��P���Ԅ�[8����U�U�7�Y:t�mi��t�Z��	j
��T[�Z��.Z�m��.Z�Z��Z��Z����Z��Z4�&M�.Z�U� S��
���
��Zq�.Z�Z��Z~�T��[S�UU���t8�	
��Z3�.Z�U���Z�����Z����Z���T2�Z��U��U����PInfo���?decl�prod_map_sum��_inst_1�Mms�P.�t�5I�Mut8��t�5��O{t�O}t8�[��[��[��V����Mm���P.�Q�_x�PL�o�8+�Mu�t����8T�O{��O}�t�[��[��[��U��	�t�[��[��Q��[��[��V����[����[��t�5��5��5R�[��[���6��[��[��69�[��[��A�[����4[t����e_2���x�t8�Iz��[��[��A��ut�[��8��[��[��[��69�[��5��5��5��5��[��[��5��5��[��[��[��[��[��A�[��[��[���[��A�[����4�t����e_2��[��J���[��[��[�� �[���[��[��Q��[��\�[���H�\�f�u��f���e_17�2L8�s�P��s�P�e_2��{���P��\�P��[��\�t8����\�]�s�P��^���\��[��[��\�\�[��V��H�Vj��ut�[��A�Q��$�[��[��[��\�A�[��[��8��[��[��A�9�[��[��[��$�[��[��[��9�[��9�[��[����[���7?�[���aus�Pjih�B�Mx�Ҿ��O��O��\d�Mx�V��	���92�Mu���P&��O��R��O��\p�\o�V�����\x���\x���5X�5Y�5Z�5[�\n�O�t�O��\u�R'8�5X�	������O��\��\���5��\s�\��9^�\s�\��\o�\q8�\��\��\o���\��\��\��9u�\n�\r�\������O�t8�8���\n�\��\��9��\��\��\����\��\��\��\w�\��9^�\w�\��O��	��	��t�\��\��\��O��\�����4]��\���\���O��O��P0��M��V�t�\��\��O��\��|��O��L��P��V���W�4]�[�4_�[�4a�[�;`�Mu�[�V8�;N�\��W�t�\��\��O��P-�t�L��\����U�4]�V�I��I��;�Mu�V�8�;�\��V��\��:J�O��\v�]���\v�\��L��\��W��]�]
�\u�W��]�f����f��U�V��7��W�[8�s�P��s�Q+����D��V�f�/5�f�e��]�t8����f���s��I�����]��\o�\o�\�]�\o�V��W��X�P��t�W��\o�
���
��Ue_1�Z�
�����
��T�e_27�T�8���T��f�P��e��]I�t8�Jb�
��T������]I�tt�W>�L��\��W��]�3����U����]a����]�L���]�]a�\���w��M����V��]�Q��M����V��Q!��]n�]�V����U���R��W����[����\�\�[�\���8�\����\�t�\�8�Q'�[�\���8�8��[�\�t8�����O�t�]�]
�\��|��O��]t�\��Q ���]��\�t��������sum_map_mul_left�W�V�O�8�W���W�\��sum_map_mul_right���O��\�t�\��9��\��\��\��]
�\�t�V��t�\��\����\����\��\���5��\����PInfo���Bdecl�picons_proof_1��ma8a'tha'�n�kth�X�$t��8�����8��t���]����]��resolve_left����8��������6�]���8�,!t��8�PInfo���Mdecl���u_4�_inst_1�δ�8�m���u���b�0ifa�H����a'�H���+���������^
��u������0i���^������^
dite���%���#�����^eqrec�3�]�_x�]�n��t��]t����X�^�J����]��t8�PInfo���Mnspace��VMR��	VMC��	�M	�����������������	decl��equations_eqn_1����������^
��u������0i���^�s��^���������t8�^7�������^
��u������0i���^�s��^�^G�PInfo�	�MATTR����	EqnL�	SEqnL��decl�piempty_main_aux_param_0���
a8H�{�����^[�8��{falsedcases_on�7����t�J�PInfo��PVMR�VMC��P����decl�piempty�u_2������}��t��n�t��������}����t�PInfo��PVMR�VMC��P�����decl�_sunfold���^n������}��t��^i��:��q��J�PInfo��Pdecl�picons_same����������^
mua�b�0if�^h�.��+v�t��+�^@�V�(*��V����t8�t�������^
�u����0i��^��^dif_pos�2�����(*��S�V��+���^��^�[���[��]�n����=������X�^�t��^,�[���8�PInfo��Rdecl�picons_ne����������^
mua�a'�b�Bfa�H�%��h'�	:�+�h�S��t�����^@�]�(��^����t�8�^��]��<���������^��O���6�^��^��O����8�������^
�!u�"��#��$�B�%�^��(�^��)�^�dif_neg�2�^��(���������^��^�_���_�"�e�o	���6������X�^����^,�_�V��t�PInfo� �Vdecl�picons_swap����������^
ata'�b��b'�Bm�Uf�u�h�
`�����2��]��/���^�����(�^��O�t���^��v�t��8��]��/������^��(�^��.�]�n���Gt���_%��8�������^
�-t�.��/���0�B�1�U�2�u��3�_functionhfunext�3�]�]a�]��_�^�8�6�]��_-�.�e�o	8�_)�_:���]a''�]a'_1�_h�P �e8�e���t�8���sk��1����_��]��-������^@������-���o��_a�_�[�_i�w ��]�V����1��_`�__��.����8�_i�.���o��_w�]�V�_p�_�[��5
�3�1�t��-�
��[��_��_���-��6�_��_j��6�_��_~��^@������-���1��_��]�V�_��v5��[��t�_��.���1��_��[��_��]�V�t�	��_��_���_��_����_��_�����_�_a�����_c�_^�_x��_^�_����_��_��1�]�[����_�ha₁�_�ha₂�_�h���v����W�
�_�V8�_��_���W�V�
/�7���������sk�-���q���^@������_����e�[���_�_��v��[�e�]�V�t�.���q���_��_���z�[�e�]�_����_�V�8h₁�_��
/����������sk�-��r��^@�����`�����]���e�`���r�]���_�[���.��r��`�`'���]���_�`���e�[�th₂�`
��K�sk�-���V�^@�����`8�����_�����`<���`7�_���e�]�V��.��`7�V�`<�`M�����_���e�`E�����]�V��
��5��V���
���`_�5������
������� e_1�9��g�'�g�.e_2�6.8�d��g���������t8�p��g��h�������V��8�����\������`d�
����`d�[�?�X�`
�	�`\�t��`9�`K�`X�V�]��`_���V�`R���`��`>�`R�6�`_�`��_��V���`R�������V����.
�`�A�s��� �[�����`����`��E��`��X�`d�E�`��`������`�a��C� e_1�9�b�'�E�.e_2�`h�`j����g��`��t8�`q�E��g����`���V��8�����`��������"�`d�
��`��`���`��
��`��`��`��[�W�*����`\�`���`\�`O�`��`���`9��-� ��[e_1�t��-�%� �]8�
�m��g�g8e_3�t�t8�^�3*���sk�-��m��g�����a��t8��3�3*�m��
�m��0J�a�a�_�3�C�D�a�
�m��0J���a���`K�`K��3�`9�`K�`N�`[�`��picons_ne�2�����`C�`R���V�e�`X��`����`L�`9�`��`��t��`9�`K�`��6���V�-��>�9L�[�/��!�3���'t��;��.����.�e�U��U����<��/�����/���0� �0����3�X�`k�%�t��a�^@��m���m���o��o8�a���m�'����ax���m�a��'� ���t�a�������]��9����'���m��n����m���az�����a��a{�a��6�a��a��_��m���'�a�8������m���'��.
�a��B�s������.���a����a��E��a��X�9��'�E�a��a���'�a��C��m�C��o�D��(8�E��w�E��y�F7��~8�d���������a��t8�p���E������a�������'�'�\��m�'���m��'�"�a��
����a��
����a���a��
��a��a��a���W�*��/���V�3�`��;�!l�]�q�]�q�����<�!��_��������_���3�X�8*�e��	�t��-�/�.���^@�/��/���g��g8�b�ak������b$��/�b��� �����t�b,��������]��6.��� �aj�0�������aj�ak�b<�6�b9�b=�_�/��� �b<8�����/��� ��.
�bN�B�s�`����%���bN���bN�E��b[�X�b9�E�b[�bN�b^�C�/�C��g�D�9�8�E��o�E��q�F7��w8�d��y�����y��bj�t8�p��y�E��y����bj������?���� � �?�� ��/��� �"�b9�
����b9�
����b9��b^�
��bN�b^�b���W�*��b��b����b��b���
�2�'���b2_a�b���t��-��g�/���^@��g���g���m��m8�b����g�%�����b����g�b���%�������b���������]�������%���g�S����g���b�������b��b��b��6�b��b��_��g���%�b�t���bS��.
�bS�B�s�a����bS���bS�E��b��X�b��E�b��bS�b��C��g�C��m�D���8�E��q�E��w�F7��y8�d��~�����~��c�t8�p��~�E��~����c������9����%�%�9��%���g���%�"�b��
����b��
����b���b��
��bS�b��c"��W�*��b��c:���b���picons_same�2�/�b#�b*�b&����b/t�	�b��b�����b��cR�b��b%����������b�_a�b���b���c:�c^���b���cH��������b��a6�b���8���[���`��>�X�_��`6�?�`
�`��`��`H�V�]��`^���`��`?���`��`Q�`?�6�c��c��`����`?����`�����.
�c�A�s�`������c����c��E��c��X�5������E�c��`������c��`��������`����`������"�c��
����c��
����c���c��
��X�c��c��"�c��c��`�������c�8�W�*��`[��`��c��`��`:�c��`N�`[�c��a4�c��a@�`?���V���`H��c��`N�`[�`[�a6�`N�`[���c��`9�`[�c��aN�c��`[�aV�.��?�aX�0��!�;�b�������t���<�a`�aa�U� ���>�X�6.��%�3�X����'��ar�a��]��a��.�a����a��az�.�a��6�d�a��a��.�a�����a��.��.
�d�O�s�a��/���d���d�E��d'�X�9��.�E�d'�a��.�d+�a��.�.�a��.�a��.�"�d*�
����d*�
����d*��d+�
��X�d�d+�"�d�d*����m����o�@�a��g��w�g��y�A�a��a�7����dD�t8�a������dD������.�.�d3�[�W�*��ax�.��m�a�d����a��.�%���t�0�b�;�[�[����[�e�<�b�b
�q����>�X�>��_��3�X�8*� �e�	�b�b7�]��b8�%�b=���aj���b<�6�d��b=�bF�%�b<����bM�%��.
�d��O�s�bR�'���d����d��E��d��X�d��E�d��d��d��b��%�%�?��%�b��%�"�d��
����d��
����d���d��
��d��d��d��d����/����g�@�bd�g��o�g��q�A�bg�bi�b���b��t8�bq�g��y����b�������b��%�%�d���W�*��b$�.�/�b��������b,�%�����t�b��d����d��d��b��c[�d�_a�b���b��b��]��b��'�b����b��b��'�b��6�e�b��b��'�b�����d���.
�d��O�s�d���d����d��E��e�X�e�E�e�d��e �c�'�'�9��'�c!�'�"�e�
����e�
����e��e �
��e �e �e-�e����g����m�@�b��g��q�g��w�A�b��c�a���a��t8�c�g��~����a�������c�'�'�e'�V�W�*��b��.��g�b��e�����b��'� ������c=�ek���d���ck�d��	�d��cR���d��cR�b��b%�d�����d���t_a�b���c^�ek�ca���d���cH�d�����d�t�cq���e���c��`��?�`��`����`���`��`��]�V�`��`��_���c��`��e��`��_�c��c��c��c��c��c��E�`��V���c��
����c��
����c�8�W�*��`��`��`��`��X�`_�E�e����"�`_�
����`_�
����`_�W�*��e��c��e����`��c��e��c��_�`��e��e���`��`:�e��`N�e��e��a4�e��Y�3�`C�V�`;���� ��%��'�'88�"��� �a�`?�����`H�V��c��e��e��c��e��a@�_���V�e�]�e��e��`N�`[�e��e��f�`R���e�`X�V��`��e��e��aF�e��f
���V���]�e��e����e��`9�e��e��aN�e��e����e��e���p�3�`9�e���8eq_of_heq��t8�PInfo�,�Zdecl�pi_proof_1����������^
tat�oZa�a'�m�n�m��x����2�m�a�VH�	.�$����#a�Vm�\p�m��[�]�\�Y��(multisetbind�2�2�s��[�_�\�0r�N��(���b�s�multisetmap�2�2�[�e�\�v#��+*�[�e�\�v#�@k��+*�^@�e��k�vCt�8����f�t8�m��[�V�\�	.���$t�#�f����f�8�������^
�U�f`�W��X��Y��Z�fa�
/������f�eq����=���X�[�fb�m��[�]�\�/�����SC��(�]�]�^�`�_�m��[�e�\�v#8�+*�fl���[���\�1���.t�v�1��b���fs�[���\�v���v��[���\�v��
!��v��_ot�8��	z��f��t�m��[�]�\�/��SC����(�f��O���f��theqrefl�H�m��[�[�\�0�O��f���]�[�^�^�_�m��vR�fl�1��[�e�\�v#��t�+*�s��b�1��fs�[���\���v�[���\�1�����v�_�t�8��f��gt8��e�X����	�fb�m��[�[�\�0�O������g����g�t8�m��[�[�\�0����f���g�f��g	�g�fl�q$�g�F�b�q$�fl����[�]�\�/��������(�q$�L����fs�[�_�\�0r��(��[�_�\�0r���V����(��/�g4�f�g7�Vt�f��8��g"�g(�g!�F�l�q$�g+�[�]�\�/�������(�q$�m����g5�[�_�\�0r���g6��(��/�g4�f�gV�8�g@�Vt����g&�gj��g��m��g/e_1�m��m��g;8�
�H�g�g8e_3�m�t8�n����fb�m��[���\�v��`���e�_�v����g���t8��H�H*�gt�
�gt�0J�g��g��_�H�L�M�g��
�gt�0J���g����g�gK�
��q+�
��q|e_1�t��m��[�8�
���e��m��[���\�1��_`��[�V�v�
���	��m��[���\�v��_��
�]�[�v�e_2��2�H��e�]�m��[���\�v��_����_�]�v�8�^�P�H����_�g��g��fl�g��g���g��t8�_�O�P�m��g��
��g��g����g���F�F�a6�q+�F�b�q$�fs�[�]�\�/�����(�g/�_$�����f���t�gJ���3�H�q$�t�q$�go���q$�g��g+�g��q$�b����g5�[�_�\�0r�g7�(��^@�_�+-�vf������q$�gI�b�q$�n��go�h�g1�L����fs�h�g;�h����8�b���fs�[�e�\�v#��+*�[�e�\�v#�
��V��+*�gA��gI�map_bind�2�J�K����g��g/�q$�h�g��
��m�����
��m���e_1�t��m����8�
����!�g��
����E�g�e_2�g������g�8�g����Z�m��[��\���`>�����e��A�g��fl��Z�g��hN�t8�g��m���Z�
��hJ�hI���hN��q$�q$�a6�h7�q$�L����h�h�gH�g�����t����gp������hj������gG�L����n��gp�hj�g<�
��G�Q�Q�g4�h�g;�h�h	��gG���J�J�K�g4�h�g;�h�h	����J�K�g4�g;�h|�gE����g4���r��h�m��h�r��h��2u_1�O�T�T�[���\�1��V�v�[���\�1��g��v�g��_��h �[��_���Vt8�g"�g%�gi�n��g"�fl�K;�g!�+�b�K;�fs�[�]�\�/�����(�gS�_$�f���f��h��b�K;�fl�qu�gS����L�qu�g[�/�g4�g]t�g_8��gO�l�q$�gU�m����j���k�e��fs�h��[���\�1��g��_`�V�v�/�h��_o�h��[t�_o�V�]8�8�
��m��K;�
��h7e_1�t��h88�
������m��h��
����!�m��[���\�v��g��_��[�v�e_2�g����E�m��[���\�v��g��_��]�v�8�g������m��[���\�v��gz�`�_�v��i�fl����i��i�t8�g��m�����
��i�i���i��+�+�a6�h��+�h��h��g��K;�t�K;�m��gS���K;�h��h��h�����b�qu�g5�[�_�\�0r�gV�(��h�����K;�h��b�K;�n��i3�iB�h��L�qu�fs�i:�gZ�h����8�b�g��h�[�e�\�v#�_���+*�g_��h��h/�qu�h��gS����i@�h��
��q|�
��g�e_1�t��m��e�8�
���	��h��
���g��ie_2�g���g��i8�g�����e�m��[��\���hC�`>�e��A�i�fl�io�i��iz�t8�g��m��io�
��iv�iu���iz��������a6�q|����L�qu�iN�i?�h��g��qu�t�qu�m��gZ���qu�i����qu�h��L�qu�n��i��i��g[�hx�i:�gZ�iM�i=��h��h��i:�gZ�iM�i=��h��gZ�i��h�����g4���h��h��[���\�1��h��v�h��_��iO�V��h��[t8�bind_bind�2�2�I�K;�q$�g!�+�F�j�K;�k�qu�h��bind_hcongr�2�G�q$�g�g!�F�gJ�gh�	�<�L�gt�g�g!�i��g!�g!���i��i����fc_a�\��i��g/�gS�i��fj�gS���i��f�����t���L�gt�g!b�q$hb�r��qu�q|�r��qu����i����g;�gZ�qu�L���h�[�e�\�v#�_��h �+*�/�h�h��h�8��m���h�[�e�\�v#�h�iO�+*�/�h�i�8�i����	�i��g;�gZ�i��gZ�gZ���j+�j.���g,�v�`��i��j�j�i��f��j���j+�gP���_����j�gZb'��hb'�r�����h9�r�����g��map_hcongr�2�G�h��g��h���/�h��_o�g��]��h��[t�/�h��h��h���	�i��g��h��i��h��h����jc�jf�_��j�v����i��g��h��i��w�h����jc�j�1�[�V��j�h�f�h�hf�r��[���\�v��[�v��m��j��r��j���picons_swap�2����D�v��_�]���[8��PInfo�T�fdecl�S����������^
mu�U�V��m��m�a�H�%q��������^
��u�U�j�multisetrec_on�H��^��m��wb8���2�G��������m��j���G�j��'�V�j��piempty�2��'ct�]��^��_�fa�fl�)�[�V�\�G��#�J�b�)�fs�[�[�\�<��[�[�\�H���^@�[�'��zJt�8�T�����t
�PInfo�S�fVMR�S_lambda_1VMR�S_lambda_2VMR�SVMC���gE�b�_freshJ�;D�_freshJ�;C�_freshJ�;B�_freshJ�;>���bVMC���g�_�^�]�_freshJ�;A�����
�VMC�S�f�U�����������'�����doc�S`pi m t` constructs the Cartesian product over `t` indexed by `m`.decl�Sequations_eqn_1����������^
��u�U�j��m��j��S�����t8�j��������^
��u�U�j��m��j��j��PInfo���fATTR�����EqnL��SEqnL�Sdecl�pi_zero����������^
t�f`�m��m��w��j�������t�$�2�w��j���8�of�k�oh�w��������^
���f`�oo�k�k	�PInfo���vATTR�����ATTR�����decl�pi_cons����������^
mut�j�a��m��m�������	�7����j����w���t8�fl��k#�-b��fs�^�������������^A�'��wk�8�j���'��wk�t�������^
��u���j�����rec_on_cons�2��^��m��[��\�x��zJ8�j�����K�u�8�m��kU�j��kU�j��kU�j���(.�w��]��^�U�_�m��[�V�\�u��v�8�fl�zJt�[�[�\�H�vf8���b�kf�fs�[�]�\�/���vC8�[�]�\�/�����kn�^���o�[�]�vft�8�j����w�8t�PInfo���xATTR�����decl�injective_pi_cons����������^
atb�-s�hs�ݪfunctioninjective�2�2����w��������$rt��k6�����8�t�������^
��t���-������ݪf₁�k�f₂��V��O��#eq�s���[��0��G���j����[�1e���8�k�funext�3�]���]���(t8a'�]funext
�3�����(��0ih'�
ne���e�[8

�A�_���-�V
�e���9���_i�e�[�_�]���,�k��k����k�
�	�t���9���k��k��K;�]��6���_�_^�[���_^�__�[�6�k��k��_����_�[�
���_�8���k��k��b���9�_h���������8�_j�[�_�]��_a��9��t���V�4��^@����D���]�e�_�V�8�l
���k��k��a=������w �[�_��]��k��a6��9��Annot��
�	�k��k��k��k��_k�[�_�]���k����l0�l9��
�3�����v���W�]�v��l4�_a�lB��l	�l�l��8�l	�q18�lI���l0�l5��l*�l7Annot��
�	�k��k��,�k��+�k��,���l^�lb�k��l��_a��9��l	�lI�q$��l	�ll���l^�l`�l#��k��l*�l`Annot��Annot�IAnnot�J�w���t�]�V8Annot�IAnnot�Jh�5s�[8����_x���1��[t�]�:p�]t8�PInfo���|decl�card_pi����������^
mut�j���u6�j��j��'c�w�8�Z4�Aza��u?8�������^
��u���j��X�_x���u6�wb�k(8�Z4�T]������u=��0i8�	��u6�j��l���Z4�l������l����l�������l��b���l��l��k�j��j��w��of�j��oh�j��b���j����m�������K��e_1�m��m�������Y�8�ul�m����V���	.�EC�#�t8�u6�l��l��l����2��'c�w����2�j��l��l��b���l��Zk�Zs�Z~�l��&E�T����l��Z������	�z��{����u6�x��k>t�Z4�T]������u=�����u6�j��j��V�(*�u�����Z4�T]�V����V�u=���������mD���	���z��{�U���u6�u��m4��Z4�m>��u6���[���H��j��[�'��zJ����Z4�T]�[����[�u=�1e�����YO��YR�z��mC�>w�z��YV�{��mB�YY�{���mB��m0���S	�m0��u6������H?��k>�8t�Z4�m-�8�m0����m0_h�m0��mA�� U�u=�)�J�Z4�m>8�m�����m7�m����m7�Z��m��m��m��m��T\�m*�m��m��m��m��T\�
��2
�)����2�e�)�m��j���m1���)�j��mWt��J�m��m��m1�j��m��m����m����m��j�e_1�m��m��g�8�ul�m��h�t8�u6�h�m6�m����2�V�(*�u�8�t�,�2�e�)�j��J�m��T��m��m��\��m��m����)�Z4�mat�J�m����2
�)��m��m��J���)���r��K;�h��r��K;�����m�����m���u6�g�������h
�j��_�+-�vf��8�u6���]���/���(�j��]�(��v����Z4�T]�]����]�u=�n�����m��m��m�8�n�2�3�g����m���m��m�8���2�e�m��g��_$��8�nt���2
�)��J�m��[F�m��m��m��m��m��m@�m����m@�Z4�&M�m��m��[\�m��m��Z~�m?�n@�UU�V��m=t8�[k�m��m����m�����m����mt��T2�m0�Z����PInfo����decl�nodup_pi����������^
sut�j����a�H���nodup�2���B�nodup�2�^��k@�������^
��u���j��X�_x���d�������w��np���nu�k��m4t�8_x��_x������K�nr�nodup_singleton�2�l��j���'��wka�s�ih��e����V���w��np�#���nu�j��m�hs����ht���[���H��np���	�nu�g��n�����
�`����a�r����h8�r�������nu�h#�h$�gB�j��e��k�vC��Vmultisetpairwise�2����b����c���d�i�h#�n��h&�n��F���n��n���n��n��g��F�m��
�`����a�n��n�������h��h��h��j�������v5��[8�n��b����c���n��n��n��F��m���m�e_1�m��m��h#8�ul�m��h��t8�nu�h��n��n��m��]�(��v�������n��n��]�2�i����g��F�m���n��n�b���hb�n��nodup_map�2�2�h�h#�gB�n��injective_pi_cons�2�e��k�vC�8��{ �X�������e��
��o �g7�
�o�o!���o#�o&�)�e�����{X�o�o!�o/a'�eh'�h��w���8�[�V�pairwise_of_nodup�2����n��Fb₁���hb₁�n�b₂���hb₂�r���!�m���!�r���!��neb�X�2��E�8���n��������v��g��v��fs�������v��]�v��oU�l�v��[�]��j�����D�v��[�_�o[�o^t�oe���oY���r��������v��_�v��m��oo�r��oo�j�������v��]�e����������e��A���r������� �����!�m��o��r��o��j������`C�e���X�i��� ���!m�q������r�^@� �� ��%�&�e������[��o��8�disjoint_map_map�2�2�2�oY�oY�oU�o_�oh�oe�oef�oYhf�o{g�o~hg�o�eq�m��o��o��o�
�A�t�����^@�%�e����%�a�����]����	��%�����o�������Vt���o�
�
�A�t�����_�[�
��o��^@�'��'��.�.8� �����[����	��'�����o��b�����o���'�%�����[����o�_a�����t����e�^@�.��.��/�/8�%����]���	��.����o����o��[�cE�'�o�a�'�o������[��o��
��o��o����'�o������_����o��o��o��o��o��_����o�_a�����o��o����.�'����e���o��o��o��o����p�_�p
�_��o�Annot�tAnnot�IAnnot�J�	�o��o��o����%�a�����Vt���o��o����o��pO�l>���%���!���������&�pI�]�_a�pX��p�o����o��o����o��pK�a6����pM�q1����PInfo����decl�mem_pi����������^
mut�j�f�j�s�r��^�m��^�r��^�k(t8a�h���sR�D��B�������^
��u���j��X�_x����wbs�r��k��m��k��r��k��k>8t������w��r���m���r���D��8f�j��	s�r��l��l��r��l��k(��8������K�p��m��l��k]��w����p��p���p�s�p���p��<�p��p���p��p��k�l��p��of�l��oh�l��p��f�s��l��l��g�l��g�l�e_2�s�a�[H�0����8�g�m����]���/���+�(�g�m����_���0r����(�e_3�m��m����e���v#����+*8�n��m��������1���i�v��r��p��p����p��t8�s��p��g�p�����p���p��s��l��p��p��m���w�8���p��p����2�l��p��p����	��������Y�p��C��h��_����p��m������	��K�	��]`���t��ۢ������K�	��K�p����X�K����qD�E��K�K�
����V�*������p��p�iff_true�p�
�A�s��l��p���k������l��qca��k��K���K���-�n��'��ha�K�	�t����D��j��V�(*�8Annot�ta�m�ih���x�s�r����V���w��#�m��q��r��q��m48����V���w��sg�D���f�j��	s�r��j��m��r��j��mW�������[���H��t��D��s�sa�K;��K;�
�r�����h7�r�����F��2�m����m��
�r��g4�m��g4�r��g4�m��m��h�h8t�q����q��q��<�q��q���q��q���K;���q���q��r��h�m��r��ht�����n�8�q��q��q��h��j������K;�fs�m��g��n �n�q��f�s��j��m��g�g��g�he_2�s��h#8�g�n��g�m��������v��g��v�e_3�m��m��oU8�n��m��������v��g{�v���r��q��q����q��t8�s��q��g�q�����q���q��s��j��q��q��m��[�'��zJt�����q��q���2�r�K;�j����q�����K;��������e_1�tA����8�tF������t8�sa�����K;�q���q��q��h�q��m��q��tU�K;���K;����K;�rD���K;�q���K;��rD�q���q��q��g4���g4�
�h��n��m��h#�gAt��q������q�������n�8����e_1����jLt�ޯ�8�-���oL�����t8���rj�rC�r[�k��q����q�����q��rB���q��rZ��q����rB�rZ���s�r�g4�h�q�t�m����q��
��q��rZ�q��S;�q��q��q��q����q��w�q��q�a_1�q�a'�]ha'�g��4�2��������
�oN�q��h����h��
�j��j�������w �V�]�m��q��jW8����r:�r��r����m����r������s�tb���a_1_h�r��
l�r���E�m���E�r���E8��2�q��j����j��
�r��oY�m��oY�r��oY�oe�m��oU�oh���
�r��r��r���V�m���V�r���V�ll�tGhb�r�a_1_h_right�q��oY���oY�
�o{�m��q��_��]�_��V�4�t�oo���oo�
�r��o~�m��o~�r��o~�j������`�_���m���������hD��A�`�_�e��[��q��oo�s
�r�����m��s�r��s�g����`f'�ooa_1_h_right_h�s�
l�o�8�o��m������� ��������!�`D�e���8�]��
�s�s+�r���[�m��s/�r��s/�	��V���[hf'�srfl�o��o�t�_�pY�pJ����pX�r�� �_�m��sA�r��sA�_�]��_�
/�9��]��� �]���r���]�m��sT�r��sT�s?�]�[���]h�sO��'�_���'��a`�U����e���r��.t�m��se�r��se�%t�r��/���m��sn�r��sn�a�� �8�[��t�'����b�b����%�e��r��b��m��b��r��b�� ���	�r��.���m��s��r��s��b����8�V��t�%���s�8�s����s��s��b��s��b����8�V��t_a�s���ss�st��t�[����s{�ss�s{���s�8�cE��g�b��b����8�Vt���]�[��	�X�sO�	�sF�o��p
�����[��_�]�sJ�sF��_�]��d����b�����b�pU�6�s��s��_�'�_�����]�sJ���s��s��b��sA�o���'��.�b#8�o������[��_�]_a�sA��r��s��m��s��r��s��o�a�.�p$����]��e�_��e�t�t���s��s��a=�'�o��p
�����_�[��]�
��r����'���a_���e��m��t-�r��t-��j��'�o��p
������'���t+�r��e��m��e��r��e����r�.
�t9_a���r����.���ai��o��m��tI�r��tI��j��.�o��t	������t9�tC���t9�tC�8�t�_�s��ehf�q��>�u��������
�n��rP���g4�rR�rS�gC��q/�����q��t��F�q����m��q��q��h�q��	��_��t�p{�>�t�m��t�a�]ha�m��B�w��e8����r��m��m��m��r��m��t��n�m��g��n �t��t�8���t����]���m��r��(�m��(�r��(�t��#t�t�a'�]h'�m����t��k����]��g��kn�t�8a'�]�k��g����g��kn�t���_��g2��l�8�V��0ih'�g��
/�9���(���t��kn�gA���	��e����e��h���o;8�Ch�t��_]�������������v��
8�[�v���������v��<0�]�r��v��m��v��r��v��D��v��v���t��t��`��s�t��	����_����o|��w�� 8����t����������1���.�V�v��������v��
!�[�r��v��m��v��r��v��D��+*��_��u�	�t��v���r���q��	�����]�����om��w��8�V�e��q��u+�u0�u>���u?�uB�b��8��_��]��u0�u9�_a�8���t��s��t��u��_����o|���u�[���8�t�8�t��u^���u?�u0�cE������v��]��u0�u9�a6�u*�u0�V��8��X�t��	�t��v5t�h���V�	����V������h���w���8�]�[t8���u����l��V��]��<�t�V�_�����_��h �6�u��u��_��t�V�8�����u��u��b����_���������D8�_���V�u��u�t8_a����t��w ��jW��[�	����[�V�����j��#�w���8�_�]�t�,�u��,���u��u��a=������v5��Vt�u��u�8�a6�u��u��PInfo����declmultisetfunctoru_1functor��vfunctormk�v�v�/5αβ���8at� u�/58functionconst�v�w8�PInfo���	prt�VMR�_lambda_1VMR�_lambda_2VMR�VMC�#��	�VMC�$��	�/���1const�bVMC���	�b�$decl�equations_eqn_1���v�v	���v�_T�v	�v�PInfo�'��	ATTR����'EqnL�'SEqnL�ATTR����class����decl�is_lawful_functoru_1is_lawful_functor�)�{�vis_lawful_functormk�{�{�vαβS��8� 9��v8αx�	�/=����/=���/=����$_�/;�$b�/;�/^�Q 88�/9�/\��8��������8�V�8��������$���αβγg�-�h�-�x��	��	�������8t���8�	�t����vl���vl��v]�/�t��vv�����vd�vv�]���vb�vt������%C���V����8�vk�vv����vk�vd�vv�Q���8t�v����vx�����vv���PInfo�(��	prt�(VMR�(VMC�(decl�(equations_eqn_1�)�-��v%�(�)�v��-��v%�v��PInfo�8��	ATTR����8EqnL�8SEqnL�(ATTR����(class�*�(��decl�traverse_proof_1�F�_inst_1applicative��}_inst_2is_comm_applicative�}�}8α'β'f�8��awb�p��87�[������[��v�functormap�}�}�[applicativeto_functor�}�}�[�V���|traversabletraverse�}�@listtraversable�}�[�V���t�v�8�;�v��<�v��>�v��@�A�B�v��Cw�D��E�v��	�v��v��v��v�t�v��v�8���v��v����v����]�e_17�_�U8�g�e�W�g���\e_27���^8�d���`�7�v���v��t8�p�v��g�v�����v���v��v���_�����v��v��/��v��]�v��]�[���N�v��]�[����T���v��v��v��v�t�v��v��w*8�����C��D���EY�![�!�$87�v��v��e�v��e�_�!�W�	`�v��e�_�[�V�t�wA�wF8�\�v��v��v���p_x�p_l₁��p_l₂�!p_a���p_ih7�v��v����v����e�*�\�i�v����e�]�[�Vt�w]�wb8�	�v��v����v��������^�3�v������_�]�[����wo�wt�wut�v�has_seqseq�}�}���Hto_has_seq�}�}�������^�v�α�q��wk�]����U�����������������^�3��s��v��v������_�]�[��w��w�t���w}�w����v����v��N7���f8�g����g��	j�O7� �	n8�d�%��7�w���w��t8�p�w��g�w�����w���wx�w����v��wx�w��wl�w�����w��wl�]�w���s��w��w��w��wo�w����w��w��w�c�v��αβ� �,� �-�e_47�.�8� �E� �(e_57�.�8���/�V�/��v��/�[�V���w��t8���0� �w���g�V���w���wk���^�3�3�\����3�ww�w�listtraverse_cons�}�����_�]�[��map_seq�}�}�����^����is_comm_applicativeto_is_lawful_applicative�}�}�����e�3�w��w�chas_seq�}�}��αβa��,�g��-�e_47� �.�8� �E� �(e_5�w��w��w�/�[�V���x:�t8���/�0�w����x:��w����^�w��w�map_map�}�}�]�w�����w��wkis_lawful_applicativeto_is_lawful_functor�}�}�w����x%�w����e��w��s��w��w��\�����w��w|�w��w��w|�w��w��w��xt�wo�w��w��xu�x�w{�xx�xt�x+�w��xi�w��w��xm�w��
��v��w��^�^�w�� ����s��wo�wt��x��wo�wtt�v��w��w��U�� ����m� �������`�`�����s��x��x��x��w��x��x��w��x��w��wl� �����x��x��x��x�seq_map_assoc�}�}�^�^�������x(�x��3�x��xU�x��x��xY� �����w��wk�xd���x��s��x��x��\���v��]�x��x��x��w��x��x��x��x��x��x��x��x��x��x��x��	�x��v��x��x����x��x���v��x�_a�v���v��w���w������`�`�v����v������_����$�t�x����`���v������e�_�]��x��y�y��v��x��y���x��x��\�v��x�p_x�p_y�p_l�!�	�w:�wA�wF��8��t�wA�wF�y'�y&����y1���y1�w:�w�e�w��e�_�!�W�y;�Vl�!�\�w>�V�g�V�s�*�^a�Vb�[l�����t�8����w��e�_�[�V��y=�y>����v��X�o��w=�V���V���/�V�/�[�/���yI����yW����v����v��N�v��g�v��g�w��O7�w�8�d�w��7�w���yr�t8�p�w��g�w�����yr��y+�yX���v��y+�y=�w>��!�*�������!�!�W�	`�y>�y��y^�>�V��*�����V���[�/���yH����yW�yX�y��wA�y<�!�y��yW�y��Y�v�e�Z�[� �,� �-��\�w�� ��� � ��]7�%�8���'�V�'��v��'�[�V���y��t8�w�� �y��.�V���y���w=�!�W�	`�	`�\����	`�y*�y����e�!�yV�y)�y��y;�y��y��y�a�y��y��y��!�yA�y�����y����yW�y��y��y��y��y��y��yW�y��y��y��y�
_x�V_y�*�8Annot����yV�y(�y��x�e�_�[�V�8�y(�c�x/�e�e�f�g���,�g���-��h7��.�8� �y�� �y��i�y��y��w�'�[�V���z�t8���'�0�y����z��y:�!�!�y��y��\�e�y��y��y��y��ztis_lawful_applicativeseq_assoc�}�}�e�_�x%�e�_�]�!�!�!�yW�y��y��z/�y��y����z2�y��y��w>�y��y��m�y�����[�y��y����y^�y��/�V�Tn�*�*������y��zO�y��z`�y��zc�z-�y��y��y��z`���y[�y��v�α�X���w=�y��y��y��zt�V�y�����zY����V�y��y��y�����z`�xX�V�y��y��y[�w=�x^�y[�_�x%�y[�_�]���y���Y�v�y[�Z�[� �,� �-�e_4�w�� �X�a�� �X�o��e_57�X�p$�8���X�b�V�z���v��z��[�V���z��t8�w�� �z��X�b��V���z���w=�V�y��z��z^�T��V�y��y��y������\��d��y��y��z3�y��x��y��y��V�e�_�zB�z`�����z-�V�y��za�y����e�y��za�y��z~�y��y��m�y��/�[8��z^��y��z��zQ�z��z`�z��y��y��y��zW�z��6w�y����y��>�[�w����y��zV���y��z��m�y��T��[�y��y����z`�z`�\�zn�z`�z��y��y��y[�w=�z��z^�z���z��y��z��y������V�{�z��/�V�m�w�y��w��/�]8�S��/�[�w����z��y��z��y��y��z��z^�6w�V���V�/�[�w��/�V�/�[�{*�y��z��y��/�V�6w�[���[�w��{=�y��/�[�T��������y��z����z������z����yW�yW�\�y��yW�x�!�!�W�e�_�zB�	`�y��yW�z.�W�y��yP���e����y��yZ�yd����yP�{t�yZ�w>�y��y_�z����y��y����{w�x�V�y�����e�_�zB�y��y����z�����{�{u���y[�y_�zt�y��y_�{}�zx�y��y���y`�z~�y��y_�{}�y���{u�z��y��y_�y[�w=�z��y��{}��z��y_�{��yc�����V���[����{��/�V�zS���zZ�\�i���[���]�/���U�t�U�8���V���[�/�����/���U���{��z��y��y_�{}�y��{7���V�{��/�V�{��y��{��/�V���{��{��/�[�w����]�/���{��{��{��{	���{��y��{A���[����/�[�w��y��{��/�[�{G�^�3�y����z������{X�	7�e�y?�w�A�o��w��|�_�V�y?�v��|�v��|�_�V�yC�yL����yP�|�w�y[�w��y[�_�V�y?�y\�v��y[�_�V�yCflipu_1���V�V�y?�yL����yP���|�|*��{��w�X�o��w��|0�_�V�y?�v��|0�v��|0�_�V�yC�yL���_a�{��7���yB�w�A���w��|D�e�[�yB�v��|D�v��|D�e�[�g�[�s���`�t�[�u�]�v�����{����1��w���w����e�[�yB�wZ�[�|Q�|V�1����|C�|g���|�|(is_comm_applicativecommutative_map�}�}�y[�_�]�V�V�y?����yL�c�x/�y[�e�f�g�X�r�,�g�X�`7�-�e_47�X�a�.�8� �z�� �z�e_5�z��z��w�z��[�V���|��t8���z��0�z����|���|�V�y?�|&�yN�z��|�V�yC�|$�yLf�
0�V�|Q���
0�[�g�]�s���fe_17�
0�]�g�_�s����8���
0�_�g�e�s���	j�|�t8�| �_�_�|��yL�c�V�b�[�v�����yF�yE�{7���V�u�[�|P�yL�|�a�V�{A���[�|P�yK�|�b�[�6w�������`�yJ�|�l���	�a�yI�|����yH�|����|��|����|��|����_�yH�|��u�_8t�����\�y[�V�����|���yW�yW�{_�y0�yi�y��y0�y=�y��y��y�����yW�yi�}�wA�y��}�yW�}�y��y/�}�y��yV�y.�y��y��y��y��y��yW�}�}"�y��y��yW�}'�}"�y��y����yV�y-�}+�z8�y-�z/�}.�y��z��}0�}*�z�zG�y��y��z/�}%�}�zN�}%�y��zX�z_����}�}E�y��}F�y��}I�zk�}#�}F�zo�zw�zz���z����}F�z����z������{X�y��y��z4�z��}F����z��}G�}�z��}G�z����}�}j�z��}F�}k�{�}F�}F�{�}F�{���{P�����{X���z��yW�yW�{_�{j�}�yW�{o�}�yg�{s�}�yZ�{~�}��yg�{��}��{��}��ye�{��{��{����{����ye�{����{������{X���z��yW�yW�{_���yY�yX��	��v��yX��p_l₁�p_l₂��p_l₃�!p_a�!�t8p_a_1�ʂ8p_ih_a�v��wo�wt��x�p_ih_a_1�v��y�y�	�w��v����v��������f���v��������e�_��}��}������}����}��w��}��}�����w����w��N�yr8�g�w��g�w��O7�'�8�d�.��7�}���}��t8�p�}��g�}�����}���}��}����w��}��}��}���}�8�}��}��\�w��}����}���	��w��}���t8�PInfo�:��decl�9��;�v��<�v��>�v��@�A�B�v��u�u�;�v��<�v��>�v��@�A�B�v�quotientlift�}�}w�9�����<�~=�v���v���<9N�v���t8�:����t8	�PInfo�9��VMR�9_lambda_1VMR�9_lambda_2VMR�9VMC�����VMC�����/�_freshI����_freshI����_freshI�����traverse_main��

VMC�9���B�A�@�>�<�;����liftdecl�9equations_eqn_1��;�v��<�v��>�v��@�A�B�v�7�~4�9����t8�~Y�;�v��<�v��>�v��@�A�B�v��\�~4�~g�PInfo����ATTR�����EqnL��SEqnL�9decl�monadu_1monad�����Mmk�����Hmk�����v�v��v�map_const�����vhas_puremk����αx�[�dmk����αβf�,xu�P"�.�t8
_x�.��vf8Annot��has_seq_leftmk����αβa9b9�~�t����gt��v�t8has_seq_rightmk����αβa9b9�~�t���7h�v�7h��/B8has_bindmk�����P"
�PInfo����	prt��VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��_lambda_4VMR��_lambda_5VMR��_lambda_6VMR��_lambda_7VMR��_lambda_8VMR��_lambda_9VMR��_lambda_10VMR��VMC����	�VMC����	�/���%�bVMC����
������	VMC����	���_freshG�)%�bVMC����	�����������
�VMC����	���_freshG�)*�bVMC��
��	�����������%�b�
�VMC����	��VMC����	���_freshG�)/�bVMC����	�������������%�b�
�VMC����	�b�����������
�decl��equations_eqn_1���v�~y�����~��_T�~y�~��PInfo����	ATTR�����EqnL��SEqnL��ATTR�����class������decl�is_lawful_monadu_1is_lawful_monad�����~�is_lawful_monadmk�����~��kmk����monadto_applicative�����~��v�αβa9b9�'��~��t8αβa9b9�F�~��t8αβg�,xu�	v�~��t�~��.�8��t8v�~��~��~��~����~��~��u�~�_au���~����~��@�t8�vft8�$��
���~��~����~��~��F�~��	�~�����~����~�v�~��~���#��~��~��	v�~��~��~�8v�)�)���*�-�#��'�)� �~���.�8�u�.��h�.��~����)�A�)�=�>�~��9�~��?�Vs�.�t8�9�~�����u�g��g�e_2��w�U�w�We_3��� ������N�t8�9j� ����N����)�)��)�C�A�V��.�t�~����)�)�)�f�f�~��~���~����"��	�u�~���αβg�,xt�	v�~��~���~�t�-v�P"�t�����tu��8�����������_au���	�~��8�����$����������������=v_x���P#���������t�	���F���t��a�s�ih�}�P-��v_�����vh��	��P"���E�������~�������E��!����wk�E�����	'���������)%�����C���	'_a���
?�P"�V��O��z~��U�~����	,���O��)e���������bind_cons�������E�wk���	����!�������8�����������)%��_a���
?�a���u��O�����V�����
?�V���"�����������wkt8�	���������������;�)%��_a���
?�a�C�+��t��"��C�
?��D��C�������bind_zero�������E�	��;���������;��[�)%�!��)���:�������s�:�_a���
?��D�	'��C�)e��C����;��������)����	�����������v������#������ �������	�����v��������������������� ���a��������A���������������Vs�t�t���c�������������A�V��t����������������������tu��8�������������������αβg�~�xt�	v�~�8���/5�.�tg�.���8v�~�
_x�.��~���Annot�����������������_au���t���/5�@��� �@��4t�$���������������������F����	��������������v���x�.���8�����#������� ����~�� �.�������chas_bind����αβ�w9�wue_4��w�w���w�w��e_57�w��U8���w�V�W�U�UL�[�V����.�t8�=�w��(�W����.��~��.�t88�\�68������6w�.�x�.��1�x�.����� �.���� �.������8��.����6��P"�@������@������ �@��4�����i8�F�B����.�tu�������.����@����}�P"�D������D������ �D��O��/5�D������	��P"�K%���K%t8����K%����� �K%�q1�/5�K%���������!������K%� �0�
O��������K%�	'������������)%�����K%�C����	'�����
?�P"�0���0�t����0��U������/5�0��������)e��������������K%�����������	�����!������t���8���������������)%��������
?�a�����0� �J���������0������
?�V���������������K%����t8�	��������������������)%��������
?�a�C�������t������
?�������������R�K%�����	���������������%�)%��b�����e�����
?���	'���)e����������������)���������������������������αβγxug�6h�6�	���~���8t��\��~��D��w������w�D��w���v`8t�����o����o���d� �@�����t� �K%����� �V���`��d� �@���wx�K%��y�z~�������8������`��������`��d
� �@��vh���t� �K%�����Annot����������[��}8� �D���������c�x/αβ�w�~��w�-�e_47�68�w��w�e_5��$o�U�w�[�V������t8���0�w�W�W�������~����\��{��_�������_���
� �D����Annot������������_�������F�D��88�\�D�8�������6w�D�� �D��� �D����� �D����� �D��|�������D����U�
?����8��8��	���	'���������W���X�S�V�zR�V�W�~��Vt����Vt�	�
[�SK�[�E��U��[�\�~��[��	f�[��E��
[�C����]��E�����]�����������(������]���������\����P��]�E�����_�]�^�~��]��*�]��E������>������&���]�[�E��� ��$�	��(�
[�C���J��!8��%��S����(��W����"���\�������<���E���3��_��+��>����i��a����(��S�	��[�� t8�	��W�
[��T�EC��S����W��y����%���\���������]t��a���������������W�EC��R�]�[�E��	��y�
[��S��S����y������@�������;W��S�EA���\�;W���\����������������������y��S���\�;W��S�~��S�	��������'������F�@�����������6w�@�� �@��� �@����� �@���~� �@��������w� �K%��� �0�����
��8��~����������������������
�����������8������������������U���
?�����t��t�	�X������
�������X������[�������[�EC��������������[����EC���W��
[���&�������&�*�� ���������[�V����	��
�	���X�����J��
8����5������9�������W��
[�C����]���&����$�� �
[�WH��C������5���[�V��	t8�	��9�X��6����5����9��\�������W��
[�C������@t��C��d�
[��e��d����9����R�[�V���	��\�X��5��5����\��{���4���5�4����W��
[��e�EC��d�*��d����\��5�5��5�
���5�X�K%��t��������F�K%�tt�\�K%t� �K%����������}�6w�K%� �K%������}� �K%�������y� �V����
8�����|�X�V�����������F�V����
�������{�{7� �V�U�����{� �V��]�������-��z�������	�-�������������������[�V�W��	8�������\��(����	�
?�������
?�������������������������]�����-������a����	'��������������������Vs�V��-����������U�g�W�g�\���
��w�`�w�f���
���d�������t8��p����`��������R������	'�V��V�������U��������������!��!�v��U��t�-��n��������n��d� �@��P"��f�� �D�����K&�����K&�K&�~��K&���� ��f��y��������L�P"��d���b��d� �@������ft�����f��f�~���f���� ��d������������a��L��u
� ��d���Annot����~��L��b��tt����������l��t����d��l��g� �@��P"�w�K%�K&��f���������~������o� �����P��U��t����P"��g��d��b��g��e��g��g�~���g�v`� ��g��i��n���������
� ��g�����ftAnnot����������e���8�������D���d��j������������j��@�����{7�����|��������������oS�������u��{�h�@�������@��������7�w�0�w�[�V����������������~�����������������	7�w�J�w�]�[���������t8����������~������������������������������������0���V��������0�u�w�J	�w�_�]�h�������������������0�������������7���P"�J����J�t����J�����~�����
�/5�J����
��+��&��8���������0�����������	�������	�������t��
8����P������T������������&����������6��J��5�[��+��,��J�u�w�^��L>�h��c��8��&��\��i������P���0�����t8�	��T�����Q�u����h�����P����T���������������&��\�� ��
���`t��i�����&����������T�����R�0�������	��������P��P��������������������������������������a�����P�������������������&����������;����������P����������P�\�����P88�������������S��������F��g��d�������\�������������6w��g� ��g��k� ��g���� ��g���� ��g���k��������K%�����7��R��O��U8����K&8tS��k��h�u����h�K%������K%�������7�����'�����-������~����t��5���t�	7����P"�J	�����J	t8����J	������~������/5�J	������#�������������.��J	���#��$��J	�u���h����0����1��B�����$��J	������=�����7��:�P"�^�����^��t����^�����:�~�����/5�^������S��N��`����1��@���J	�����#��6��>�	��B����5�����J��78��?��w����B��{��G��8�������N����:������^��^�����S��T��^��u�L>�h�L>��`��N����������B��w���J	�����6t8�	��{����x�u���h�����w����{�����G��?�������N�����H�����t��������N����������{�����R�J	�����#�	�������w��w����������G��3���������������������a�����w�����������������N�����=�����c����������w���������w�\����w�X�@���g��d�����������d��������s���� �@���k���� �@������p� �@�����k�����������p�������F�����f��������D������������o�������\� �����R����	7��k������.��������0��3����k����Re_1��8�g���g��:e_27���8�d�L?�7��=���@�t8�p��=�g��=�����@����������������p�u����h����������k����f���u��k�h��f����`��d�����\�����h�Vs�����f��p��\���������k�g��R�g������8�w��:�w�������@8���LA��{����{�����t8����{�w��{�w�����������b�����\��k����l��g�V������f�������k����k����k����k�a��f������������tt�W>�	��������'������F��d���t��t�\�����t�����}�6w��d� ��d�� ��d���� ��d��|� ��d����|����D����U���x���8�	,�8�����v�	'��{������W���
?�S��zR��U��t����t�	�X�SK�V�E��U��V�W��	��	f�V��E��X������� �E������]�EC���������	�������]�����W��
[�P��[�E���4�[�\����*�[��E��*����������H�V�E��� ���	��	�X����3��8����.����	��2�������W��
[�C�����E�����_������
[�WH��<����	��.�	��V�� t8�	��2�X��/����.����2��T�������W��
[�C��b��8t��<��[�
[��\��[����2������V�E��	��T�X��.��.����T��q���4���.�4����W��
[��\�EC��[�*��[����T��.�5��.�
���.����d���s��}���� �@���N��r��^������������� �@��������w� �K%�P"�K&���U���� �K&���������������f�t��q��^���������������� �K%������� �K%����������T�����������F�K&����������0�K&��R��T����������\� �K&�U����	������������������������������������K&����u��R�h�K&����!����������������������������Vs�K&�����������9��������)����������V��K&���������������������������������������αβf�,su������~αβf�~�xu�F�~�αβx8f�wtu�	v����8��v��������?��B�#���=��� ���h������A����K��L����M���8�t�c���������P�A�������������Z��Z�X�PInfo����	prt��VMR��VMC��decl��equations_eqn_1���-��~�������p�-��~���r�PInfo� (��	ATTR���� (EqnL� (SEqnL��ATTR�����class������decl�lift_betau_1u_2αβ�,x<f�wtha�b����-��J�B�2Fquotientlift� *� +����8�U���� ,� -�,� .<� /��w� 0��|quotientlift_beta��������8t�PInfo� )��ATTR���� )decl�map_comp_coeu_1αβh�,7��wu���9�v�� :�vt8����<9N�v��v��~��UPt8� 9� :� ;�,�6ww��wu�������/w�	v��;u����t8���2wu�����t8����t8���������������v�����������#�������� ����~���~��%��������u�~������t8���������wu�������������$+�������$3����PInfo� 7��ATTR���� 7decl�id_traverseu_1αx7id� =9�~a��	�~���	idmonad��idis_comm_applicative��88idmk��8� >� ?��?_x97��	u��tt��t��<�	����"�����~<��������	w���v���	�v���	��wu��v���	��tt��!�~R��	����tt��!������+��J��u��	���"_a��P�7��O��������|D�|D��S�|D�|D����+��G������	����tt��!�	��J����?�����J��r�����H_a�����S�~;���O���2��	���O��5�����;����V��C����V�|D�|D��S�|D����J��pquotientlift_beta����w�����?��F�	��r���/w�����������r������w��O��?_a������S���8�|D��S���|D����r����T�w��/����8��>�	�������8�����������������Oe_17��	�8�g��	��g��	�Ue_27��	�W8�d��	�\�7��������t8�p����g�����������������Y�v��	�Z�[� �,� �-�e_4�w�� ��	�� ��	�e_57��	�8����	�V�����2�[�V������t8�w�� ��������������4wu����(��>is_lawful_traversableid_traverse���v��v��^is_lawful_traversable��t�������has_coe_tcoe����wu��(�\��/�PInfo� <��decl�comp_traverseu_1G�v�H�v�_inst_3�v�8_inst_4��?_inst_5�v��8_inst_6��Aαβγg�t�1�h��Bx�7functorcomp� W����� _�o��_��~a��Fcompapplicative��������D�_�]�[� fis_comm_applicative��������D�_�]�[�V����v^�e�1���F�� dcompmk��������D�_��v^�K���Z�v���D�v���D�]��1�8t��`��w;�w<�]��_��~a�_�[���8�~a�e�]�V��t� X�v�� Y�v�� Z��?� [��?� \��A� ]��A� ^� _� `� a��B� b��B� c��w�_x�7��C� _���e��~a�����J����e�_�]��P����e�_�]�[�V�������K�������^����e����������v�����v�����_��K�t������wW�wX�_��e�����~a���_�[�������	������������������������^β���|0��v��zp�v�����_�����v��e�����y\�|�]���|�v�α�v��e�]��t�������_�����������������v������~;����������t���|�wB�]��t�~R�e�]�V��t�N�w^�_����������%���������C� _�q����e_17��C� _�r���U8�g��C� _�`7���W�g��C� _�a���\e_27��C� _�a��^8�d��C� _�o���`�7��G���J�t8�p��G�g��G�����J������������������zr��v��������y[��y[������g��������������c�v�����v����������|����e���p��r��c��{������������C����e���}�����������o�������c������������{��������c�~;����������������-����v������������f����C�!�D�*aY��[����87��<�J�B�~R�����������������f�
0�����-� r�
0��,���1e_17�
0��0����88g�g����;�*� t�g����?��e_27�g����F��8���g����C� _�p$� ����������f����������G�����t8���
0������� t���������C� _�b�%����������{��{�\�����{������traversabletraverse_comp������v���!����e�_�x%����_�[�]�z@�]�V����t��������c����������������c���������<�v�����>�v���,�@�A�B�8��?8�B�t��Fte_57������8����e_6��6���V��C� _��m�/�V��B��1� x7��[��C� _��o��g�[�7��7�\�~a��7�e�_�]�[�V���C8��6��Wt��W� y�Y���F��D8�\��C� _�a�.�U�~a��W�]�[�V��t8�����������������\�����,����������M���_�U��U��-�������e������������������ p���� p���!��1e_17���*��88� q�C���D��� qY��[����8��J�)��� q������ q�����e_37�����8�6������ p���� z7������C� _�b��'�	j�V7����~;������[�����8������W�	n�[� p����C�J�D��� qY�][�]&� 87��C� _��q��m��J�B�8��6���t� q��� {7����������������[�\����[8�\����~;�������������� p����C���D�� qY�J[�J&�87��/��J�B���\����t8���������������������R���� )�������������������������{����Y�v����Z�[� �,� �-�e_4�w�� ��F�� ����e_57����8������V�����v�����[�V����C�t8�w�� ��<��W�V����C���w���|�|�\���|�����~����������}�����~��-��������}���x������� ~� l�q����e_17� l�r����8��� l�`7���!��C��{���!t8��^��{���!��h��p��-��������o���� dcompmap_mk����������y[���������|��p� ~����|0�� ~��s��e_17��u� ��q��U8����{� ��r�W������Wt8�������W��g�����������p����xX��������zp����x^�zp�_�x%�zp�_�[��������������$� ~������� ~��*���e_17��.���U8����5���W��8t8��^��5���W�����#���������������������N��"��#�Y�v���Z�[� �,� �-�e_4�w�� � �� �%�e_57�y�8���y��w��v��.�[�V�����t8�w�� �y��w��������������������e�e�]�V��t�������������������������!�����.���������1�~R���_�[��������2��.��������?�<�v����>�v����@�A�B�8��!�B�t� te_57���%�8����e_6��6���V�w���B��P� �7��[��m�[�7��m�\�~a��m�e�_�]�[�V���^8���N��W� ���O��a��_8�\�/�U�~a�/�]�[�V��t8���_�[�����\�g��� �������������U��������>��e���_�[��������&�����1��=�����������!��������zp�������N����"�	��%�����%����%��������f��������/�����N������_�������������/������"���_���������������Y�v����Z�[� �,� �-�e_4�w�� ��D�� ����e_57����8��� l�b��V�����v�����[�V������t8�w�� ���� l�a�V��������������������w%�������y\��s���|����������\������������$��������#�����
����������������/���6�/���wi�wj�e���U�2�wp�e�V������������1� p��5�C�!�D�*� q���7��^�J�B��=��3�T��������������!��������3��'����	������%��� p��%�C���D�!� qY�*[�*�-87���\�J�B������������N��K� r�
0����� r�
0�U���e_17�
0�W���8� t��� t���e_2�U$������������� �f������f��`���z�t8���
0�f��t� t��r�����%������z�����gssetoid���� p��5� p���!���e_27���*��Y8� q�C���D��� q�������87��t�)���6�������y�� p���� �7��u�7� q��������~;����t��t���8������ p����C���D��� qY�[��]87�/��J�Bt8�\� q������y�~;����8�������� p����C���D��� qY��[���V87�'�	j�J�B��\����t8��������e���N�N�\����N�w%������g�N�6w��t������K��N�/������3��H��"��"�\���v����"����������	����������PInfo� V��decl�map_traverseu_1G�v�_inst_3�v�_inst_4�v�αβγg�t��h�-�x�7�[��v�� ��n��v���9�V���~��8�~a��9�V���t�~a�[�V����v^�s����v���8t� ��v�� ��v�� ��v�� �� �� �� ���6� ��-�� ���w�_x�7�]��v�� ��o	�v���g�[���~��t�~a��g�[�V����~a�]�[�V�����t����w��t�����	��f��q��w���������f��h�w���v����|�����t�v���g�[����w���|�w����������������e���_�e_17�e�U8�g���W�g���\e_27���^8�d���`�7��������t8�p����g���������������k������������g�����v�α�o	��j�������p�N�����������q�����N�������Y�v��g�Z�[� �,� �-�e_4�w�� ��5�� ��9�e_57��=�8����D�V��D��v���D�[�V������t8�w�� �������V��������j����p��p�\� ����p����������g��������]��v������������%�����#������g���#�������~R��g�[�V��������+��%��w�����=�<�v���g�>�v�� ��1��@�A�Ba8��.8�B� �t��5te_57� ����9�8����e_6��6�� ��V����V��B��Q� �7� ��[����[�7����\�~a����e�_�]�[�V���_8���N��W� ���O��b��`8�\����U�~a����]�[�V��t8���[�V�����\����x�������������U��D�U��w��<��e��g�[�V��������&�v���*��;��-��&�v����������������j�x^����[�x%����[�V�N��p�������������� 7� ���t�������\��g���������������e�������]���e�����������������e�����~R�]�[�V������������������������<�v��]�>�v��_�@�A�B� �8�v��B� �t��te_57� ����8����e_6��6�� ��V�y���B���� �7� ��[�.�[�7�.�\�~a�.�e�_�]�[�V���8���N��W� ���O����	8�\�%�U�~a�%�]�[�V��t8���[�V���������\�����4���������������U�����������e�]�[�V����������&��e��������-�����e�������	�����f����w���|��]������������������g���e�v��X�o	�w��������_a��e�7����v���D�v��_�]���������N�������v���D�]�V��8�v��_��x���N�v��_�]�V��z~��x��4�������8��u����������ef��������w����������|����	��g��f��`���� l�o	�[������v�����v�����[��t��������g������������v�� mtraversableto_functor������v���t�v�����v���g�[���_a������u�v�� ��1���x���N�����������������u����������g���� vmap_traverse������v���!����[�x%����[�V����t�\��e����PInfo� ���decl�traverse_mapu_1G�v�_inst_3�v�_inst_4�v�αβγg�-�h�t��x���8��O��8�vj��Q�v_��8t� ��v�� ��v�� ��v�� �� �� �� ��-�� ���� ���w�_x���f��}��t����������t�����	��f��5��6����=����f����w��t�/L�����������<����G��V�����D��Q�����D�v������e�����K��O��Q��]����e���a�����t�N��O��b��]��5��l��m��2��tt�\����4t��C��l����C��6�����l�f�K%�f�0e_17�J8�s�^�s�`e_2���9�f�	��e�����t8���K��s�������������\�K%����������������_��������5��k��E��t��l��%���e��O��a��j��������e�����K��O��F��U�����F�����S��U��������������<�����������=��������4��<��<��8��<���������@��=�����G��<�����N��������U��S�	��V��R�������]�[��t����������V��������T_a������u����������/L�V��8����������4��8��
�������V������������Ttraversabletraverse_map� ��v��v���!�]�[�x%�]�[�V���t�����Q�PInfo� ��	decl�naturalityu_1G�v�H�v�_inst_3��?_inst_4��?_inst_5��A_inst_6��Aetaapplicative_transformation� ��������x%��8�t�x%�tαβf�8�(xu7�]ucoe_fn������@�_�[�x%�_�[��]�V��$�V�applicative_transformationhas_coe_to_fun�������_�[��U�]�V��Z�u��z�t8��{�V��t������1���et8� ��v�� ��v�� ���?� ���?� ���A� ���A� ���L� �� �� ���M� �u�M�_x�7��v��P��@�e�]���_�[��U��]�e�]���_�[��U�������t��|����9�1�����t����	�����������������������������������w�[����w��_�[������������[����������v�����e_17���8�g����g���e_2��Z8�d��8���9���9�t8�p��8�g��8�����9�����������v��������������t�����������t������������e���v����������������������e�����������������~;������������t�0����������0����<�v��e�>�v����@�A�B� �8��A�B� �t�De_57� ���$8����e_6��6�� ��V�w���B��� �7� ��[��g�[�7��g�\�~a��g�e�_�]�[�V���-8���N��W� ���O��0��.8�\�.�U���]�[�V��t8���]�V��tt�\����Vt���0���w��_�������������&��t�0���%����������������������� �preserves_map�������e�]���_�[��U��������Y�v�_�Z�[� �,� �-�e_4�w�� �:� ��e_57� �8���%�V�y��v��%�[�V������t8�w�� ����y�����������������������is_lawful_traversablenaturality���v���!�e�_�]�[����U���t����������������_���v����������������v������~R�_�[�������0�����������0�����<�v��_�>�v��e�@�A�B� �8�v��B� �t�te_57� ����8����e_6��6�� ��V�y���B���� �7� ��[�/�[�7�/�\��o�e�_�]�[�V����8���N��W� ���O����8�\�'�U�~a�'�]�[�V��t8���[����������\����K�������0���w��c�������������e�_�[�������0���p��v��������w�����v����������������	���v������PInfo� ��decl�choose_x_proof_1��p�0Jl'<ex_uniqueexists_uniquetat�
�|E�0i��x�a��
�w����� ��0J� �<� ���nexists_of_exists_unique�� ���
����PInfo� ��!decl� �_proof_2��� ��0J_inst_3���awb�p_1�v�,����i�� ���
�	�M�������i�� ���
������ ��V�
�	.����1e������_x��hp���� ���
�x����a�V�
�w��1e� ����� ���
�{���listchoose_x���wk���z�� ���
�v	�����k��t8� �������t���� ���
�v	����� ��0J� ����� �w� ��� ��v�funext
�����������y����������hp���x�y�t����y�� ��V�
�v�1e�}�[� ��[�
�w<��n�� ��6���,�T� ��]�
�������_��n�88x�[px����}�_� ��_�
���V�o	� ��)���,�*w� ��e�
�1��������[�1��x4�e��t8ty�_py�������x���
� ����
�v����_��y���>� ����
�v���e�q��5�t� ���i��� ����
�1����]�o�,�I� ����
�	q�������_���x4����3����7t8�z��hp_h��"�
l��8� ����>� ����
�v�;�J������r�7��� ��
��A��M,��� ����
�v��J������r�x4����X����\��hp_h_left�
����v�z_unique� ����>� ���
��;��&����`7�5���
l�v����E���� ��
��v��x,� �� ���
�����a�!Y����[�V�����8z_mem_l��vpz�:p����%���'e_2�8*8���J����� �� ���m�����o����qe_2�bg���J�6���~�����~�!�dG,�x)��\��x4��\��t���8���\�����\�1et83�x)��~��x4��~�����~�����~����\��~�t8���t8� �� �
�!i�s���%���a�]�V��� �]��V
t�]�[Annot��
�� �V�t�V�Annot���[�������{<� ���� ���i�V� ��V�
�u��1e�6� ��[�
�zQ�n�� ����� ���
�|"������V��u����z�V� ��V�
�v��1e�M��k����t8����PInfo� ��!decl� ���� ��0J� ����lu� ���i���E�{�� ���Z���� ��0J� �����!uquotientrec_on������_x�� ���i�� ���-���y�� ���.���� ��� ���:� ���
�M��������w�8� ����8� ���t8�PInfo� ��!VMR� �_lambda_1VMR� �VMC�!�"� �� ��_freshJ�O>�_freshJ�O=��choose_x_mainVMC� ��!�!� �� ���!��rec_ondecl� �equations_eqn_1��� ��0J� �����!u,��2� ���t8��Z�� ��0J� �����!u3��2��d�PInfo�!�!ATTR����!EqnL�!SEqnL� �decl�choose��� ��0J� �����!uhp��.��� ��0J� �����!u�!��.���1������1������1�coe_subtype���0��`���w�8�PInfo�!�.VMR�!VMC�!�.�!�!� �� ��� �decl�!equations_eqn_1��� ��0J� �����!u�!��.�B�!���t8����� ��0J� �����!u�!��.������PInfo�!�.ATTR����!EqnL�!SEqnL�!decl�choose_spec��� ��0J� �����!uhp��.�
�	����w�88������ ��0J� �����!u�!��.�{��0������8�PInfo�!�0decl�choose_mem��� ��0J� �����!uhp��.����� ��0J� �����!u�!��.�{ �������choose_spec���w�8�PInfo�!�3decl�choose_property��� ��0J� �����!uhp��.����� ��0J� �����!u�!��.�{X����������PInfo�!�5decl�Icon�m��&"�!��!��&2�@Ico8�PInfo�!�<VMR�!VMC�!�<�!��!��! doc�!`Ico n m` is the multiset lifted from the list `Ico n m`, e.g. the set `{n, n+1, ..., m-1}`.decl�!equations_eqn_1�!��!��&7�!8����!��!��&=����PInfo�!"�<ATTR����!"EqnL�!"SEqnL�!nspace�Icodecl�!#map_addn�m�k��&7multisetmap

���#����t8����;��;w�!%��!&��!'��-�&%�&"listmap

���#����t8����������&2listIcomap_addt8�PInfo�!$�@decl�!#map_subn�m�k�h��8t�&7���x����t����t�����7�8��7t8�!0��!1��!2��!3�������������t��������&2listIcomap_sub�t8�PInfo�!/�Cdecl�!#zero_botn��&7����Q�&9�!9��������Q�&4�&2listIcozero_bot�PInfo�!8�Fdecl�!#cardn�m���&�������8�!>��!?�listIcolength8�PInfo�!=�IATTR����!=decl�!#nodupn�m��o����!D��!E��@Iconodup8�PInfo�!C�Ldecl�!#memn�m�l�s�')����
��t�R8�!I��!J��!K�listIcomemt8�PInfo�!H�NATTR����!Hdecl�!#eq_zero_of_len�m�h��88�&7����&E�!P��!Q��!R��l������&}�&2listIcoeq_nil_of_let8�PInfo�!O�Qdecl�!#self_eq_zeron��&7����&E�!W��!#eq_zero_of_lele_refl
�� �PInfo�!V�TATTR����!Vdecl�!#eq_zero_iffn�m�s����&E��l�![��!\��������&%����&}��l�coe_eq_zero
����listIcoeq_empty_iff8�PInfo�!Z�WATTR����!Zdecl�!#add_consecutiven�m�l�hnm��[8hml����&7�&�����������t�!b��!c��!d��!e����!f�������&w�������'���t�&2listIcoappend_consecutive��t8�PInfo�!a�Zdecl�!#inter_consecutiven�m�l��&7�

�&"�
�������8�������&E�!k��!l��!m����listbag_inter
����������&}�&2listIcobag_inter_consecutivet8�PInfo�!j�^ATTR����!jdecl�!#succ_singletonn��&7��}�#���

��&"�
��'
��!t��������#��&~�&2listIcosucc_singleton�PInfo�!s�aATTR����!sdecl�!#succ_topn�m�h�'
�&7����;x�&`����!y��!z��!{�'
�	����&7�&2���;x�����������&\���_a�&"��&7���;��&Mt���&e��
��������!"t�;x�	���&7�&2�&w���&����������"�&���_a�&%��&7�&2��&�;���
�&���
������listIcosucc_topt8�	��"�&7�&��&2���&��������"��@�&\�� _a�&"��&7�&2�&w��'�&zt�&}��
������"��>�&���>�� �&����&��	��@�&7�&��&���<�������@��`�&\�&���<�&�_a�&"��&7�&��&2��'�&2��H��
������@��^�&���<�&��&=��^�PInfo�!x�ddecl�!#eq_consn�m�h�' ��m������;�8�!���!���!��' ��r��G����;�8�&2listIcoeq_const8�PInfo�!��gdecl�!#pred_singletonm�h�;�&7�����78�b8�������!���!�������������8�&z����&}�&2listIcopred_singleton8�PInfo�!��jATTR����!�decl�!#not_mem_topn�m��X�')����!���!��listIconot_mem_top8�PInfo�!��mATTR����!�decl�!#filter_lt_of_top_len�m�l�hml�'
�&7�!(filter
�x���^t�
����decidable_ltt�����!���!���!���!��'
����!*filter
���������'��'�&2listIcofilter_lt_of_top_le�t8�PInfo�!��pdecl�!#filter_lt_of_le_botn�m�l�hln������
�&"����!���!���!���!�������&}�&2listIcofilter_lt_of_le_bot�t8�PInfo�!��sdecl�!#filter_lt_of_gen�m�l�hlm��l�����8�!���!���!���!���l�����&8�&2listIcofilter_lt_of_ge�t8�PInfo�!��vdecl�!#filter_ltn�m�l��&7���x���_�
�����8��������8�!���!���!�������������������&2listIcofilter_ltt8�PInfo�!��yATTR����!�decl�!#filter_le_of_le_botn�m�l�hln���&7���x���\�
����decidable_let�����!���!���!���!�������������"��'��'�&2listIcofilter_le_of_le_bot�t8�PInfo�!��|decl�!#filter_le_of_top_len�m�l�hml�'
��%����!���!���!���!��'
��.�&}�&2listIcofilter_le_of_top_le�t8�PInfo�!��decl�!#filter_le_of_len�m�l�hnl��\��%���t�!���!���!���!���\��.���t�&2listIcofilter_le_of_le�t8�PInfo�!���decl�!#filter_len�m�l��&7���x��'
�
����8�������߾t8�!���!���!����������_��c�������h8�&2listIcofilter_let8�PInfo�!���ATTR����!�decl�subsingleton_equiv_proof_1��_inst_3subsingletona<bwh�~�C�/8�t���8��!�����!�<�!�w�!��~listext_le��������-������n�h₁��^��d�/8��h₂�'��:�/8���subsingletonelim�V��@nth_le�V�/8�!�t8�������t�PInfo�!���decl�!�_proof_2���!����l<7w�	�w�!�w�!�����w�/8w�!�w�!���!�����������t���8�,��������!���!���^����!��'��H��������[�V����[�/8�*�t8�������t������!�����!�<Sw����PInfo�!���decl�!�_proof_3���!����m9_xu���	���!���!�����/8��!���!���!���������t���8�,��������!���!���^����!��'��g��������]�[����]�/8���t8�����t��!�����!�9����lw�'�����r�PInfo�!���decl�!����!����equiv<9��!����equivmk����<9N�	�<�!�<�!�w�~<�/8<�!��8�!��8�!��8�PInfo�!���VMR�!�_lambda_1VMR�!�VMC�!����VMC�!����!���!��!�decl�!�equations_eqn_1���!����,��+�!��8��E��!����3��+��K�PInfo�!���ATTR����!�EqnL�!�SEqnL�!�nspace�natdecl�!�antidiagonaln��&!������!���&$�o��U��V�&(��X��V�&+��X��V�&.��Ulistnatantidiagonal�PInfo�!���VMR�!�VMC�!����!���@natantidiagonaldoc�!�The antidiagonal of a natural number `n` is
   the multiset of pairs `(i,j)` such that `i+j = n`.decl�!�equations_eqn_1�!�����V�!���e�!���*��V��i�PInfo�"��ATTR����"EqnL�"SEqnL�!�decl�!�mem_antidiagonaln�x��Us�'��U��V�'��U��h8��\��fst

����snd

��8�"��"��U�	���s��t��b��c8������������&[��V��u_a��V�s��s8��ht��\��z8��8ts���������������"8�	���s��p��X��
��U���������������.
���_a��s�����b��ct����.��������������������mem_coe
��U����	���s���������������.
���_a��s���8�������������������������listnatmem_antidiagonal8������PInfo�"��doc�"A pair (i,j) is contained in the antidiagonal of `n` if and only if `i+j=n`.ATTR����"decl�!�card_antidiagonaln���&���U��i�#��"��	���������e�#��������������i_a��V�������u�;x�����;x�������e����	������
��U��d�#���������.8���_a����������;x�.@�;x��������coe_card
��U��d�	����#��#�������1�.8��_a���������;x��"�����#�listnatlength_antidiagonal�<�#��PInfo�"
��doc�"
The cardinality of the antidiagonal of `n` is `n+1`.ATTR����"
decl�!�antidiagonal_zero��g��h�Q�����U��V�����U�����U������Q�Q�	��X��g��b��c�Q��W����X��]�����K_a��V��_��g��W����X��[����Q�	��]��g��b�&y��U��V�&|��U��W����]��v�&[��X��Z_a��X��x��g��b��W����]��slistnatantidiagonal_zero��m��t�PInfo�"��doc�"The antidiagonal of `0` is the list `[(0,0)]`ATTR����"decl�!�nodup_antidiagonaln��n��U��i�"��������elistnodup
��U��d�coe_nodup
��U��dlistnatnodup_antidiagonal�PInfo�"��doc�"The antidiagonal of `n` does not contain duplicate entries.declmonoid_hommap_multiset_prod��d��e�,_inst_1�Ig_inst_2�Iifmonoid_hom��t�828�Iots��-�� ���������Im�Iq�")has_coe_to_fun����Im�Iq8�92��dnt�,������e�,�"&�Ig�"'�Ii�"(����"*��3�������multisetprod_hom����t���monoid_homis_monoid_hom����Im�Iq8�PInfo�"%��ATTR�����"%�4�ATTR�����"%��
Strmap_multiset_sum��
Stradd_monoid_hom��decladd_monoid_hommap_multiset_sum��d��e�,�"&�J��"'�J��"(�"0��t�8[8�-ct�"*��-����������J��J�add_monoid_homhas_coe_to_fun����J��J�8�:��F�t�,������e�,�"&�J��"'�J��"(����"*��3�������multisetsum_hom����t���add_monoid_homis_add_monoid_hom����J��J�8�PInfo�"1��EndFile