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�a�^{initcategorytraversablebasiccategorytraversablelemmascategorybasicdatalistbasictacticbasictacticcache�}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}traversedecltacticinteractivewith_prefixaoptionname���optioncases_on�id_rhsa_1has_appendappendnamehas_append
	�PInfo�	VMR�VMC�		��	nameappenddecl�nested_map_mainfexprboolttv�tactic��� monadto_has_bindinteraction_monadmonadtactic_stateFinstantiate_mvars
tmcond*succeedstacticalternativeunitFis_def_eq
Ftransparencysemireducibleboolffapplicativeto_has_pure�to_applicative*itenotcoe_sortboolcoe_sort_bool�occurs>exprapp_fn
nedecidableVaVbVbooldecidable_eq	
^.Fmk_appnamemk_string
Strfunctornameanonymouslistcons]listnil@cl.Fmk_instance
_inst.
"RecFn��app_arg>f'Fmk_mappo
Strmapsucoe�coe_to_lift�coe_option\P��	����
x�@?failformatformathas_to_format�formathas_append�to_fmtstringstringhas_to_format
Strtype �exprhas_to_format
���
Str is not a functor with respect to variable �>�
Str�PInfo�	VMR�_lambda_1VMR�_lambda_2VMR�_lambda_3VMR�VMC�	αVMC�	s)_fresh)�
�\VMC���	a)�_fresh)�
�`�_fresh)�
�]�exprapp_fnexproccurs�_main			
	�tcharof_nat_c_1p�_c_2e�_c_3 �_c_4�_c_5i�	_c_6s�
_c_7n�_c_8o�_c_9a�
_c_10c�_c_11r�_c_12stringemptystringhas_to_formatto_fmt��l�b�
	
v�
h�	w�u�f�

	�stringstr���������������������������������������������formatcompose���y���������������nameanonymousr�o�t�c�n�u�f���������namemk_stringtacticmk_app	�I��tacticmk_instance	�M���app_arg�	�T��	��r�o�t�c�n�u�f����������p�a�m������tacticmk_mapp��	
��VMC�"	s)���tacticinstantiate_mvars	��tacticis_def_eq��succeeds��mconddecl�nested_map"���	
�PInfo�	VMR�VMC�	���doc�similar to `nested_traverse` but for `functor`decl�map_fieldnclfαβe������#..Finfer_type
eFwhnf
@tSeqexprconst_name�get_app_fn
namehas_decidable_eq�����
Strrecursive types not supportedS�Vexpralpha_eqvP	d�
O>SYZP
d�.�nested_map�P
f'Ocoe_fnexprhas_coe_to_fun
>has_orelseorelsealternativeto_has_orelse8has_bindand_then:+<]�@Bno
Strmko
Strcompsv	y@O	�PInfo�%	VMR�_lambda_1VMR�_lambda_2VMR�VMC�5a%	�)�_fresh)�x�_fresh)�q�_fresh)�m��	[m�_c_1c�_c_2o�_c_3�r�t�n�u�f����������p�������k������	VMC�6%	�)�<VMC��%	�)������tacticinfer_type	tacticwhnf		��get_app_fn_main�const_namenamehas_decidable_eq	Hexpralpha_eqv�	D��	%0�6�5interaction_monad_orelseC�	6>	exprapp
C	
G�r�	_c_4e�
_c_5u�_c_6s�_c_7 �
_c_8t�_c_9p�_c_10o�_c_11d�
	
n�

y�

v�i�	c�
	��������������������������������	doc�similar to `traverse_field` but for `functor`decl�map_constructorcnfαβargs₀listrec_call�\�Z�[�\�]�^�_�\�a�\#.Ftargetg,�\listmmap*�map_field�]��P>args'�\.Fmk_constconstr	r�mk_app
�\listhas_append	Preturn*
	�PInfo�Y2	VMR�Y_lambda_1VMR�Y_lambda_2VMR�YVMC�o2	�VMC�p2	�)�_fresh)�BVMC�Y:2	�)�a�\�_�\�^�]�\�[�Ztactictarget	4	����o�e_main	-�h	&

�lappend_main�mk_app_main�j�p+
2
	
doc�Ysimilar to `traverse_constructor` but for `functor`decl�mk_maptype:�|���f:Flocal_contextls�\��tacticintro_lstuo
Strαr��o
Strβr��o
Strfr��o
Strxrx_p�\_a�\listcases_on���\��
��
match_failed:interaction_monadmonad_fail)Annotdo_failure_eqhdtl�\�����\��
��tl_hdtl_tl�\�����\��
��tl_tl_hdtl_tl_tl�\�����\��
��tl_tl_tl_hdtl_tl_tl_tl�\�����\��
��,�[prod���\�[��:tacticinduction	���@xs��listmmap'*��:x��_a��prodcases_on��������
fstsnd�����\��������
snd_fst�\snd_snd����,���\:listmpartition*efunctormap�to_functorLVfunctioncompVVbnotZ
�	_p��_a�����\������
���\���\��	args₀�\listtakehas_subsubnatnathas_sub��length	�
	-:�map_constructor�w�v�.
	etacticexact
@


tl_tl_tl_tl_hdtl_tl_tl_tl_tl�\��

�PInfo�{:	VMR�{_lambda_1VMR�{_lambda_2VMR�{_lambda_3	VMR�{_lambda_4VMR�{_rec_5VMR�{_rec_4VMR�{_rec_3VMR�{_rec_2VMR�{_rec_1VMR�{VMC��:	�VMC��@-s)���_fresh8��D	�	
VMC��	:		�)�_fresh8�)�\�_fresh8�(�\�_fresh8��_fresh8����_fresh8��_fresh8��\�_fresh8�
�x�Y	
	tacticexact	
VMC��1>
�)�������������\��	�����listmpartition_main	*
�llength_main
��natsub�ltake_main���\��/
VMC��):	�)n�\�_fresh8��_fresh8�
��_fresh8�
��_fresh8�
��_fresh8�
��\�_fresh8�
�listcases_on tacticinduction			�����listmmap'_main	
����match_failedVMC��:	�)���\�_fresh8�
��_fresh8�
��_fresh8�
��_fresh8�
��\�_fresh8�
���
�������VMC��:	�)���\�_fresh8�
��_fresh8�
��_fresh8�
��\�_fresh8�
���
�������VMC��:	�)���\�_fresh8�
��_fresh8�
��\�_fresh8�
���
�������VMC��:	�)���\�_fresh8�
��\�_fresh8�
���
�������VMC�{?:	�)�|tacticlocal_context	9���������������f�����x����Fintro_lst_main	+2��7doc�{derive the `map` definition of a `functor`decl�mk_mapp_aux'_main����\����\�#cases_on�	a_1�#Qa_1level�ua_aa_a_1�[�x#O�a_aa_a_1a_a_2#O�a_aa_a_1a_a_2binder_infoa_a_3#O�a_aa_a_1�}a_aa_a_1��a_a_2��a_aa_a_1��a_a_2a_a_3����\���a_hda_tl�\#,:�%�	sFunify�
@B_x:.Fhead_beta�(	>fn.��#instantiate_var�P@t
�oRecFn�0	
Pa_aa_a_1��a_amacro_defa_a_1�\�}�PInfo�0D	VMR�0VMC�0sD	�)��\��exprcases_on
 %in��'+g�D	/7
tacticunify<
	=a�Ptactichead_beta	DZ
exprinstantiate_var�F	LS	�0X_
f
decl�mk_mapp_aux'�o�0�PInfo�^D	VMR�^VMC�^D	�0decl�mk_mapp'fnargs�\�`�a�\#..���t�mk_mapp_aux'>
	�PInfo�_L	VMR�_VMC�_L	�)�a�\�`�D	�F	�0decl�derive_map_equationsprenvs�\tgt���e�f�g�\�h��,environment:Fget_enve����:�����:_x��_a������m����
����������%Fmk_meta_var���\��Fset_goalsF�[H�[J�[listmonad_x:����listmapexprlocal_pp_namevs�\���f�\�����������l/_p�\_a�\�������\��tl_hdtl_tl�\��tl_tl_hdtl_tl_tl�\�����%�
�[��}����w����@c'�%�tacticpis��tgt'���%��
�_x:�����	vs�\��tacticintrosvs'�\�%��*�� 	����@c'�%�mk_mapp'
	arg�%�vmk_str_name�with_prefix�n_map	call_mapx���B	��vvv�v
y�%
>lhs����e��V
_xdecidableto_bool�
b���	

�hAnnotinfix_fn�����_p��_a������\���\�����l�
rec_call�\�%�&�H ��2v��>
rhs��monadjoin*:has_seqseq�to_has_seqL���a��t�J��	
@B���_x:�%no
Streqrv�
�H@eqn	ws�\�list_local_consts
�%�*listreverse
	eqn�%0eqn,��::Fsolve_aux:
�6�\:+�6�refine
Quoterfl_p��_a����:������
��:����	eqn_nnameappend_after�F�F�F�G+*�
Strequations
Str_eqn$�%/	pr��Fadd_decldeclarationthm	�collect_univ_params��FtaskH��J��taskmonad
_x:��:unitstar

tl_tl_tl_hdtl_tl_tl_tl�\��

listenum_fromhas_oneone�nathas_one�iconstructors_of
P_x:����y�
�PInfo�dQ	VMR�d_lambda_1VMR�d_lambda_2VMR�d_lambda_3VMR�d_lambda_4VMR�d_lambda_5VMR�d_lambda_6VMR�d_lambda_7VMR�d_lambda_8VMR�d_lambda_9VMR�d_lambda_10VMR�d_rec_4
VMR�d_rec_3	VMR�d_rec_2VMR�d_rec_1VMR�d_lambda_11VMR�dVMC��Q	valVMC��_���_fresh)����_fresh)����\�_fresh)����_fresh)����_fresh)����x�_VMC��Q	�VMC��b
��)���_fresh)����D	�H�I�K		decidableto_boolVMC��Q	�J�_fresh)����YVMC��(Q	�)�_fresh)����_fresh)����D	
��	"�D	 VMC��Q	�)Fintros_main		��tacticinteractiverefineVMC��!Q	�)�_fresh)����_fresh)����_fresh)����	taskpureexprcollect_univ_paramsdeclarationthmtacticadd_decl	VMC���Q	�)�_fresh)����\�_fresh)����_fresh)�������_fresh)����lreverse�pis_main	��	�	����	|
e�_c_1q�_c_2n�_c_3a�_c_4�p�m������s�o�i�t�u������������_�������nameappend_after��
���
�	
VMC���Q	�)�_fresh)����P�_fresh)����_fresh)����\���\�������_fresh)��������	

�������	x����v	q�x
�Y	-j�����mjoin	8c�q�e������		N\exprlist_local_consts���\	
��ahov}
VMC��
�Q	
�)���\�_fresh)����_fresh)����_fresh)����_fresh)����\�_fresh)����_fresh)�����_fresh)����_fresh)���������lmap_main�x�	�
�D	
�!
	"�
tacticmk_meta_var	&-tacticset_goals2	3��local_pp_name�E�.	<���	?����E�x�	O��_	T�	�p�a�m�������h	k������P	���������

�����VMC��	Q		�)���\�_fresh)��}�_fresh)��u�_fresh)��t�\�_fresh)��s�_fresh)��r��_fresh)��q�_fresh)��p��
�����
	��VMC��Q	�)���\�_fresh)��g�_fresh)��_�\�_fresh)��^�_fresh)��]��_fresh)��\�_fresh)��[��
�����	��VMC��Q	�)���\�_fresh)��R�\�_fresh)��L�_fresh)��K��_fresh)��;�_fresh)��:��
�������VMC��lS1�)�l���_fresh)��O�_fresh)��N�\�_fresh)��M�_fresh)��L�G	
	�I	
	e	�J�E�.	^���������������f�����.	;G
�����vL
	MW

��\
c
j	
VMC�d4Q	�)�h�g�\�f�e�j	.environmentconstructors_of�lenum_from_main�������	'�I	 
%	
,	doc�dderive the equations for a specific `map` definitiondecl�derive_functorpre��������vs�\�%�d_p_a�q����
a������x����a_1�{����a_1a_2����a_1a_2��a_3����a_1�q����	�t�va_aa_a_1�{S�	s�ls������env��	n��P,declaration:Fget_decl
d������
Quote
_�STIfunctormap_x:�ptgt���extract_def�F�G�UP���is_trusted>�mk_mapP_x:when*Y��Pd���%�*�U	tgt�derive_map_equations�S��	
��a_aa_a_1a_a_2��a_aa_a_1a_a_2��a_a_3��a_aa_a_1��a_aa_a_1��a_a_2����a_aa_a_1��a_a��a_a_1�\����a_1��a_2�����a_1������a_1�\��
�PInfo��r	VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��_rec_2VMR��_rec_1VMR��VMC��r	�VMC��r	�)�_fresh8�~��_fresh8�~��_fresh8�~��\�_fresh8�~��	
�dVMC��Tr	�)�����\����	N����		G�u	@	�{declarationis_trusted�p�a�m��������	'9��������when>
E	
LVMC���r	�)n�_fresh8�}^�_fresh8�}6�\�_fresh8�}5�W
^gpy��������������r�o�t�c�n�u�f�����������K	=E�����\�j	HW�H�I
��
��\	�����������������������������������VMC��[r	�)���_fresh8�}/�\�_fresh8�}-�W
&/7@IR�����������������������������������������������VMC��r	�)���,	�u	
��decl_private�(�Eseq_apply_constructor_main���[sum���[������������
����prodmk��x	a_hd��a_tl��sumcases_on�����	���	���prodmap����uO
id
�RecFn���	���	�� �!Fintro1�&-�Fto_exprexprsubstB�8
Quote_x_1_��_x_2����
��Annotfrozen_name	
to_pexprexprhas_to_pexpr��F
flip����)	�PInfo��prvseq_apply_constructor_main��VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��_lambda_4VMR��VMC�
��)�_fresh5���VMC��������
VMC��2aVMC�
�������VMC��U��)������	
#��	��prodmap_main!S�to_pexpr���@exprsubst�tacticto_expr	5;��@	AM��
�Rprv���decl������PInfo��VMR��VMC�����doc��`seq_apply_constructor f [x,y,z]` synthesizes `f <*> x <*> y <*> z`decl�nested_traverse_main"fv�#1tRm.no
Strtraversablerz@cl�_inst.
"RecFn����f'�o
Strtraverse�c�����@�����
Str is not traversable with respect to variable ���PInfo��	VMR�_lambda_1VMR�_lambda_2VMR�_lambda_3VMR�VMC�"�	�VMC�#�	�)�_fresh7��6VMC�$���	�)�_fresh7��:�_fresh7��7�'���			
	�#t�_c_1p�_c_2e�_c_3 �_c_4�_c_5i�	_c_6s�
_c_7o�_c_8r�_c_9a�
_c_10v�_c_11b�_c_12l�_c_13������
	
c�
h�	w�


n�
	�����������������������������������������������������y��������������
��e�l�b�a�s�r�e�v�a�r�t���������������		�e���	�i����	�p��r�
_c_14a�_c_15e�_c_16s�
v�
t���������
_c_17	��l�b�
�����
�����	
��VMC�"�	�)����	�$�#���"���"�decl�nested_traverse"���	
�PInfo�?�	VMR�?VMC�?�	���doc�? ``nested_traverse f α (list (array n (list α)))`` synthesizes the expression
`traverse (traverse (traverse f))`. `nested_traverse` assumes that `α` appears in
`(list (array n (list α)))`decl�traverse_fieldnappl_instclfve���A�B�C�D�E�F��-���t���������SY[
d�������nested_traverseP>
f'N��suminr�*�4���7��+�;�@B������J��suminl	�PInfo�@�	VMR�@_lambda_1VMR�@_lambda_2VMR�@VMC�Nj�	�)�_fresh8��=�_fresh8��6�_fresh8��3��	d�r�o�t�c�n�u�f����������p�m�o�c�������k�m������		W]bVMC�O�	�)�UVMC�@��	�)�F�E�D�C�B�A�D	�F		��H�I�K	?��	*�O�N�N>�	09	�P
>	
�r�	_c_1e�
_c_2u�_c_3s�_c_4 �
_c_5t�_c_6p�_c_7o�_c_8d�
	
n�

y�

v�i�	c�
	��������������������������������	doc�@For a sum type `inductive foo (α : Type) | foo1 : list α → ℕ → foo | ...`
``traverse_field `foo appl_inst f `α `(x : list α)`` synthesizes
`traverse f x` as part of traversing `foo1`.decl�traverse_constructorcnappl_inst�a�b�c�dfαβargs₀�\rec_call�\#�eg,���k���traverse_field�
�]��>args'��.�v��constr.Fmk_mvarv.�6�8�8
Quote_x_1���		_x_2���	

Annot@���	
	fieldNto_has_pure���	
�F���Jconstr',���
���}��P������_p�_a������z�
������#�gFget_goalsgs�\����v�y_x:�g�j�%Pvs�\���8�z��
@_x:���done_x:�����_x:���
	�PInfo�a�	VMR�a_lambda_1VMR�a_lambda_2VMR�a_lambda_3VMR�a	VMC���	�VMC���	valVMC����VMC�a	��		�)�i�\�h�\�g�f�e�d�c�b�u	�
	��@����v	��h	��n	����������	-����E�x��	9�tacticget_goals	>��I	D������v	Ox
�z��	Vq��interactivedone	Zj �I	^c"h!"#o !v}������
�
	
doc�aFor a sum type `inductive foo (α : Type) | foo1 : list α → ℕ → foo | ...`
``traverse_constructor `foo1 `foo appl_inst f `α `β [`(x : list α), `(y : ℕ)]``
synthesizes `foo1 <$> traverse f x <*> pure y.`decl�mk_traverse��type����ls�\������o
Strmr��o
Strappl_instr��_p�\_a�\�������\��tl_hdtl_tl�\��tl_tl_hdtl_tl_tl�\��tl_tl_tl_hdtl_tl_tl_tl�\����tl_tl_tl_tl_hdtl_tl_tl_tl_tl�\�����\��
��tl_tl_tl_tl_tl_hdtl_tl_tl_tl_tl_tl�\�����\��
����tacticreset_instance_cache_x:����>����@xs����x��_a������������snd_fst�\snd_snd��������e��Z�S�	_p��_a������\���\��	args₀�\�$�%�traverse_constructor�w�0�������v��
	�;


tl_tl_tl_tl_tl_tl_hdtl_tl_tl_tl_tl_tl_tl�\��

�PInfo���	VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3
VMR��_lambda_4VMR��_rec_7	VMR��_rec_6VMR��_rec_5VMR��_rec_4VMR��_rec_3VMR��_rec_2VMR��_rec_1VMR��VMC���	�VMC���-��)���_fresh)�<(�D	�	
VMC��
�	
�)�_fresh)�<C�\�_fresh)�<B�\�_fresh)�<4�_fresh)�<)���_fresh)�<'�_fresh)�<&�_fresh)�<%�\�_fresh)�<$�x	�a	
��
VMC��2��)���������������\��	
�������	+
�����������\��	0
VMC��	5�		�)���\�_fresh)�:��_fresh)�:��_fresh)�:��_fresh)�:��_fresh)�:��_fresh)�:��\�_fresh)�:���,��	&
��	
�������$
	
�����VMC���	�)���\�_fresh)�:��_fresh)�:��_fresh)�:��_fresh)�:��_fresh)�:��\�_fresh)�:���
�����	��VMC���	�)���\�_fresh)�:��_fresh)�:��_fresh)�:��_fresh)�:��\�_fresh)�:���
�������VMC���	�)���\�_fresh)�:��_fresh)�:��_fresh)�:��\�_fresh)�:���
�������VMC���	�)���\�_fresh)�:��_fresh)�:��\�_fresh)�:���
�������VMC���	�)���\�_fresh)�:x�\�_fresh)�:w��
�������VMC���	�)���\�_fresh)�:q�\�_fresh)�:o��
�������VMC��y�	�)���,	s�m�����t�s�n�i�_�l�p�p�a���������������������������f�����x�����.	el��qdoc��derive the `traverse` definition of a `traversable` instancedecl�derive_traverse_equations��prenvs�\tgt����e������_x��_a������������_x:�
vs�\������S�W��_p�\_a�\�������\��tl_hdtl_tl�\��tl_tl_hdtl_tl_tl�\��tl_tl_tl_hdtl_tl_tl_tl�\�\tl_tl_tl_tl_hdtl_tl_tl_tl_tl�\�_���%��S�� �U�%@c'�%��*�	tgt'�1_x:�����	�*vs�\�%����� 
�����@c'�7vs'�\�%�Q
arg�%�v�F�G�h�u�mn_map	call_traverse�Px�Q�R�}v���\�alhs����e��c
_x�d�g!�q��Annot���z��_p��_a������\���\����rec_call�\�%�s�h���0���������}>
rhs��_x:��eqn	ws�\����eqn��eqn��������
Quote��_p��_a������:����	eqn_n���F�F�F�G/.�m����(�

tl_tl_tl_tl_tl_hdtl_tl_tl_tl_tl_tl�\��

�`�f
�PInfo�&�	VMR�&_lambda_1VMR�&_lambda_2VMR�&_lambda_3VMR�&_lambda_4VMR�&_lambda_5VMR�&_lambda_6VMR�&_lambda_7VMR�&_lambda_8VMR�&_lambda_9VMR�&_lambda_10
VMR�&_rec_6VMR�&_rec_5VMR�&_rec_4
VMR�&_rec_3	VMR�&_rec_2VMR�&_rec_1VMR�&_lambda_11VMR�&VMC�U�	��VMC�V��C�_fresh7����_fresh7����\�_fresh7����_fresh7����_fresh7����_fresh7����_fresh7����x�_VMC�W�	�VMC�X�
��)�E�_fresh7�ټ�D	�H�I�K		��VMC�Y�	�J�_fresh7����YVMC�Z(�	�)�_fresh7����_fresh7����D	
�Y	"�D	 VMC�[�	�)��		����VMC�\!�	�)�_fresh7�� �_fresh7���_fresh7���	����	VMC�]��	�)�_fresh7���\�_fresh7���_fresh7�ٽ��}�_fresh7�ٻ��	��	�	�[��	�
e�_c_1q�_c_2n�_c_3a�_c_4t�_c_5s�_c_6r�_c_7�v�����������o�i�u������������_���������R
�\�
�	
VMC�^
��	
�)�_fresh7����P�_fresh7����_fresh7����\�k�\�n�q�t�w�_fresh7�پ����}��	��X��W��	y��W�v	r�x	�a	.k
�Z��W�)	9d
�q�e������		O]�+�M�\
�]bipw~
VMC�_��	�)���\�_fresh7��o�_fresh7��g�_fresh7��f�_fresh7��e�_fresh7��d�_fresh7��c�\�_fresh7��b�_fresh7��a��_fresh7��`�_fresh7��_����U�E�x�	�
�D	�!	"��G	&-�I2	3��J�E�.	<��U�E�x�	L���	O��_	T�
�e�s�r�e�v�a�r�t������������h	���V�B�P	
�^�������
���W�VMC�`�	�)���\�_fresh7��S�_fresh7��K�_fresh7��J�_fresh7��I�_fresh7��H�\�_fresh7��G�_fresh7��F��_fresh7��E�_fresh7��D��
���W�	
�_VMC�a
�	
�)���\�_fresh7��9�_fresh7��1�_fresh7��0�_fresh7��/�\�_fresh7��.�_fresh7��-��_fresh7��,�_fresh7��+��
���W�
	�`VMC�b	�		�)���\�_fresh7��!�_fresh7���_fresh7���\�_fresh7���_fresh7����_fresh7���_fresh7����
���W�
	�aVMC�c�	�)���\�_fresh7���_fresh7���\�_fresh7���_fresh7����_fresh7���_fresh7�����
���W�	�bVMC�d�	�)���\�_fresh7����\�_fresh7����_fresh7�����_fresh7����_fresh7�����
���W��cVMC�e��1�)�,���_fresh7�ڛ�_fresh7�ښ�\�_fresh7�ڙ�_fresh7�ژ�G	
	�I	
	�	�J�E�.	��m�����t�s�n�i�_�l�p�p�a���������������������������f�����.	u�
���W�v�
	��

�d�
�
�	
VMC�&4�	�)�*�)�\�(�'�j	.�����e��W��	'�I	 
%	
,	doc�&derive the equations for a specific `traverse` definitiondecl�derive_traverse�opre����vs�\�p_p_a����a_1��a_aa_a_1�{S���c�l�c������env��	n����d�����constructor_x:�ptgt�������m���mk_traverseP_x:����tgt�derive_traverse_equations�S��	
������������������������
�PInfo�B�	VMR�B_lambda_1VMR�B_lambda_2VMR�B_lambda_3VMR�B_rec_2VMR�B_rec_1VMR�BVMC�T�	�VMC�U�	�)�_fresh8����_fresh8����_fresh8����\�_fresh8����	
�&VMC�Vl�	�)�^�a�\�d��	f��constructor	_�u	X	�����e�s�r�e�v�a�r�t�������������	?Q�U�����T��V
]	
dVMC�W��	�)���_fresh8��7�_fresh8���\�_fresh8���W
r{��������T����T��e�l�b�a�s�r�e�v�a�r�t���������������K	QY���T�p�j	\k�H�I
�K
�Vp	���T����T����T����T����T����T����T�VMC�X[�	�)���_fresh8���\�_fresh8���W
&/7@IR���T����T����T����T����T��W���T����T����T����T�VMC�B�	�)�C�,	�u	
�Xdecl�mk_one_instancenclstac��namespmk_instopt_param� nargn	�Y@���v�w�x���y�z���������decl����cls_decl����env�����4:guard8Y�iis_inductive
�
d���:�����
Strfailed to derive '�namehas_to_format����
Str', '���
�
Str' is not an inductive type_x:	ls�{��xnlevelparam
��univ_paramsP	tgtexprconst��
,��:Fmk_local_pisexprinstantiate_univ_params��type�listzip�x���	_p��_a����������
���\����	params�\��init		tgt�z�
�%�U�*
tgt�%listmfoldr*��_x�_a������ 
�����tgt��.�5����has_ltlt���has_lt>�iinductive_num_params�*�0��decidable_lt>�"_x:.n�0v>y@param_clsOexprpio
Strarbinder_infoinst_implicit
>�"tgtO�#bind_pi
>

��enum>tgt��functormap_const��:���������_p��_a������:������val	trustedandY����Y���.	inst_n�G�J�(����declarationdefn
�����
>reducibility_hintsabbrev�d	anddecidableY����Y���,d�yd�|_x:Fset_basic_attributeo
Strinstancer	optionis_none�(��

�PInfo�u�	VMR�u_lambda_1VMR�u_lambda_2VMR�u_lambda_3VMR�u_lambda_4VMR�u_lambda_5VMR�u_lambda_6VMR�u_lambda_7VMR�u_lambda_8VMR�u_lambda_9VMR�u_lambda_10VMR�u_lambda_11VMR�u_lambda_12VMR�uVMC���	�)�_fresh)�؃���_fresh)��yenvironmentis_inductive�	interaction_monadfailedVMC���$��levelparamVMC���	�VMC��6�	�)�_fresh)�؜�_fresh)�؛��_fresh)�ؙ�����_fresh)��z��environmentinductive_num_paramsnatdecidable_lt	��	0�		)	�a����exprpi
.	
	VMC���	�)��VMC�� ��)�����������������N	�bind_pi		
VMC���	��)�_fresh)�ذ�		VMC���	�)�_fresh)��{����	VMC��V�	�)�_fresh)����_fresh)������_fresh)�؁���_fresh)�����_fresh)��|���	���	
����univ_paramsdeclarationdefn�	Pn�	_c_1optionis_none_main�e�c�	a�t�s�	i�����������tacticset_basic_attribute	VMC��,�	�)������������������������	&	�	

������$
	
VMC��7�	�)�_fresh)�ؓ�_fresh)�ؒ�\�������������_fresh)��}������������		1�lenum	
�����listmfoldr_main	*
	
��
���N/

VMC��.�	�)�_fresh)�،�_fresh)�؋�{���������������������������lzip��typeexprinstantiate_univ_paramsFmk_local_pis_main	(
�linit_main���\�z��	
��

VMC�u�V�	�)�z���y�x���w�v��	�P��	�I	�j	�Be�p�y�t� �e�v�i�t�c�u�d�n�i� �n�a� �t�o�n� �s�i� �'�����������������������������������'� �,�'���������������'� �e�v�i�r�e�d� �o�t� �d�e�l�i�a�f���������������������������
���N	��;
����E���{exprconst��
��
�@
�G
�N	
decl�get_equations_ofn�[pexpr�'��������e��	pre�F	��	x�[�ifold��	��d��xs��SY��is_prefix_of>declarationto_name	d��������

�j��Fresolve_name

�PInfo�&�	VMR�&_lambda_1VMR�&_lambda_2VMR�&VMC�3�"�.���-���_fresh5����to_namenameis_prefix_of_main�		�8VMC�4�	�VMC�&N�	�)�'�j	Hs�n�o�i�t�a�u�q�e�������������*�3environmentfold�+��tacticresolve_name��4�vdecl�derive_lawful_functor�opre���p_p_a����a_1��a_aa_a_1�{������a_aa_a_1�q�G��	�G����G�x��a_a_aa_a_a_1�{S��o
Stris_lawful_functorr�l����������
Quote
STI_x:	n��	rulesr���[��simp_arg_type�N��u�	�Oexpr
�	�Oall_hypsx�		goalinteractiveloc�Tnsu��x���solve1�7vs�\���try�dunfold������	tacticdunfold_configmktacticdsimp_configmk�Ztransparencyinstancessimpdefault_max_stepsBB_x:���	���F�G�S����o
Stridr���	�	0_x:
������Fandthen_seq�Z�������ilastexprinhabited>����@�simp�:B�
Quotefunctormap_id��P��simp_config_extmk�Zsimp_configmk�	$BBBB��failed:_x:��Ffocus1:�7vs�\�	3_x:���	���F�G�*���	=�	�	0_x:�	U�	Y�
Quotefunctormap_comp_map����	u���a_a_aa_a_a_1a_a_a_2��a_a_aa_a_a_1a_a_a_2��a_a_a_3��a_a_aa_a_a_1��a_a_aa_a_a_1��a_a_a_2�	��	�a_a_aa_a_a_1�	�a_a_a��a_a_a_1�\������������������
�PInfo�@�%	VMR�@_lambda_1VMR�@_lambda_2VMR�@_lambda_3VMR�@_lambda_4VMR�@_lambda_5VMR�@_lambda_6VMR�@_lambda_7VMR�@_rec_3VMR�@_rec_2VMR�@_rec_1VMR�@VMC���%	�VMC���)�N��VMC���%	��)�_fresh5�!��\�i�lilast_main��	
VMC����%	�)�_fresh5�!��	�_fresh5�!��	�_fresh5�!��_fresh5�!���	�simpdefault_max_steps�r�o�t�c�n�u�f����������p�a�m��������interactivedunfold��try	S����p�a�m�������d�i�������	��
��?failed�	Z��simp��Fseq�	
�	VMC���%	��)�_fresh5�!��\�i����	
VMC����%	�)���	���	������	����r�o�t�c�n�u�f����������p�a�m����������	S����p�a�m�������d�i�������	��
�����	��������	
�	VMC��%�%	�)���	���	��������solve1	
���s		VMC����%	�)���_fresh5���_fresh5�t�W
������������������r�o�t�c�n�u�f�_�l�u�f�w�a�l�_�s�i���������������������K	ow�������	��	|��H�I	�L��
�M�	�R�	
	��������������������������������������VMC��Z�%	�)���_fresh5�I�W
&/6?HQ�����������������������������������������������VMC��Y�%	�)���_fresh5�D�W
&/5>GP�����������������������������������������������VMC�@�%	�)�A�u		��decl�simp_functorrs���	�	�����	����	Y
��o
Strfunctor_normr���	�	u�PInfo���9	VMR��VMC��^�9	���	������m�r�o�n�_�r�o�t�c�n�u�f�����������������decl�traversable_law_starterrs�	�����	���7vs�\���resetI_x:���	���o�	�	�	0_x:�	U�simp_functorP�PInfo���<	VMR��_lambda_1VMR��VMC���<	��)�_fresh8����\�i����	
VMC����<	�)���	��	���interactiveresetI	����e�l�b�a�s�r�e�v�a�r�t��������������e�s�r�e�v�a�r�t������������r�o�t�c�n�u�f����������p�a�m��������	����������decl�derive_lawful_traversable�opre���p_p_a����a_1��a_aa_a_1��a_a_aa_a_a_1�{S��o
Stris_lawful_traversabler�l�	�����	n��>,��:�get_equations_of�F�G��
�meqns���
�
�F�G�	�eqns'��	def_eqns�	�	�}�	�
����	�			�

�		comp_def�	�	�		
Quotefunctioncomp�		tr_map�	�
u��
Quotetraversabletraverse_eq_map_id'x��	naturη�	���	�		�8
Quote_x_1���traversablenaturality_pf
�J�		goal�	�	���	H�	D�[����Fandthen_seq_focus�wu���	H�traversable_law_starter��refl�
:�
=���
>�	��	��
�P�
:�
=�
A�	X>��
�	u�
:�
=�
A�%�5Fget_localo
Strηr,�-�.�vo
Strnaturality�	��tacticppexprhas_to_tactic_formatt�����
Strexpecting an `applicative_transformation` called `η` informatline���
Strnaturality : ���
�η�
J>
��	�	ux���
>����	��	��	��	��	��	��	�����������������
�PInfo���C	VMR��_lambda_1VMR��_lambda_2VMR��_lambda_3VMR��_lambda_4VMR��_lambda_5VMR��_lambda_6VMR��_lambda_7VMR��_rec_3VMR��_rec_2VMR��_rec_1VMR��VMC���C	�VMC���C	a��VMC���M�����
,�VMC����C	�)�e�l�b�a�s�r�e�v�a�r�t�_�l�u�f�w�a�l�_�s�i������������������������y�t�i�l�a�r�u�t�a�n��������������h	���D�	�������	��e�_c_1p�_c_2c�_c_3t�_c_4i�_c_5n�_c_6 �	_c_7a�
_c_8`�_c_9l�_c_10r�
_c_11o�_c_12�������	:�	y�

u�
�������������������formatline	���	d�
	
m�
f�s�

_�v�

	
	g�x����������������������������������������������������������������VMC��5�C	�)�_fresh7�[��	�_fresh7�[��
(���������tacticget_local�N	/������VMC��Q�C	�)�
�	��
(�_fresh7�[��	�_fresh7�[��	�_fresh7�[��	��refl������x����N������������N��������N�����eFseq_focus��	FKVMC����C	�)�_fresh7�[��_fresh7�[��e�s�r�e�v�a�r�t������������&	0�p�a�m�������&	Gx���E���E�x�x���	�
	���	�
"���E
���	�����
(���	
	��}VMC����C	�)���_fresh7�Y��_fresh7�Y[�W
������������������e�l�b�a�s�r�e�v�a�r�t�_�l�u�f�w�a�l�_�s�i�������������������������K	���������H�I���������������������������������������VMC��Z�C	�)���_fresh7�Y0�W
&/6?HQ�����������������������������������������������VMC��Y�C	�)���_fresh7�Y+�W
&/5>GP�����������������������������������������������VMC���C	�)���u		��decl�guard_classclshdlderive_handler�
��1�2�
�p��nV�4���5SYexpris_constant_ofB	Pd�
��
�>	
NVB�PInfo�0�]	VMR�0VMC�0�]	�)�5�4���2�
��1�is_constant_of�	decl�higher_order_derive_handlerclstac��deps���[�
�x�
�namespmk_inst���
��:�;���<�
��=�>���
�p��n��V���
�Vf�
��`	�_x:�
��mk_one_instance	�
��P_x:�
��PInfo�9�d	VMR�9_lambda_1VMR�9_lambda_2VMR�9VMC�E�d	�VMC�F�l
�A�
��_fresh5��v�_fresh5��u��VMC�9'�d	�)�@�?���>���=�<�
��;���:�F��E��	
!	�u	
	
decl�functor_derive_handler'nspace�����
��N�
��
��higher_order_derive_handlers�derive_functor
�
�
���PInfo�M�p	VMR�M_lambda_1VMR�MVMC�Q�i*argn�	VMC�M-�p	�N�
��Q���r�o�t�c�n�u�f�����������9decl�functor_derive_handler�
���guard_classs�functor_derive_handler'���PInfo�T�t	VMR�TVMC�T*�t	�M�r�o�t�c�n�u�f�����������0ATTRderive_handler���T�decl�traversable_derive_handler'�
�nspace�
����c�derive_traverse
u�
��

�
�
���PInfo�X�w	VMR�X_lambda_1VMR�XVMC�[�i*�R�S�	VMC�XH�w	�Y�
�r�_c_1a�_c_2e�_c_3�[�M�B�l�b�s�v�t���������������9decl�traversable_derive_handler�
����c�traversable_derive_handler'���PInfo�_�|	VMR�_VMC�_>�|	�X�e�l�b�a�s�r�e�v�a�r�t���������������0ATTR�W���_�decl�lawful_functor_derive_handler'�
�nspace�
������derive_lawful_functor
��
�
�
narg�	���@�PInfo�a�	VMR�a_lambda_1VMR�aVMC�f
���e�d�VMC�ag�	�b�
�_�_c_1l�_c_2f�_c_3u�_c_4�f�X�@�r�o�t�c�n�w�a�s�i���������������������9decl�lawful_functor_derive_handler�
������lawful_functor_derive_handler'���PInfo�k��	VMR�kVMC�k\��	�a�r�o�t�c�n�u�f�_�l�u�f�w�a�l�_�s�i���������������������0ATTR�W���k�decl�lawful_traversable_derive_handler'�
�nspace�
����	��derive_lawful_traversable
�(��7
�
�
�2�PInfo�m��	VMR�m_lambda_1VMR�mVMC�p
��argn�VMC�m~��	�n�
�s�_c_1_�_c_2l�_c_3a�_c_4r�_c_5e�_c_6�p�X�a���b�v�t�u�f�w�i�������������������������9decl�lawful_traversable_derive_handler�
����	��lawful_traversable_derive_handler'���PInfo�y��	VMR�yVMC�yp��	�m�e�l�b�a�s�r�e�v�a�r�t�_�l�u�f�w�a�l�_�s�i�������������������������0ATTR�W���y�EndFile