@@ -231,9 +231,11 @@ Proof. intros; apply X. Defined.
231231
232232Ltac paco_pre1 := let X := fresh "_paco_X_" in
233233generalize _paco_mark_cons; repeat intro;
234- apply _paco_pre1; intro X;
234+ apply _paco_pre1;
235235match goal with
236- | |- _ ?e0 => unfold X; clear X; paco_cont1 e0
236+ | [|- let _ : _ ?T0 := _ in _ ?e0] => intro X; unfold X; clear X;
237+ paco_cont1
238+ (e0: T0)
237239end .
238240
239241Ltac paco_post_match1 INC tac1 tac2 :=
@@ -269,9 +271,12 @@ Proof. intros; apply X. Defined.
269271
270272Ltac paco_pre2 := let X := fresh "_paco_X_" in
271273generalize _paco_mark_cons; repeat intro;
272- apply _paco_pre2; intro X;
274+ apply _paco_pre2;
273275match goal with
274- | |- _ ?e0 ?e1 => unfold X; clear X; paco_cont2 e0 e1
276+ | [|- let _ : _ ?T0 ?T1 := _ in _ ?e0 ?e1] => intro X; unfold X; clear X;
277+ paco_cont2
278+ (e0: T0)
279+ (e1: T1 e0)
275280end .
276281
277282Ltac paco_post_match2 INC tac1 tac2 :=
@@ -310,9 +315,13 @@ Proof. intros; apply X. Defined.
310315
311316Ltac paco_pre3 := let X := fresh "_paco_X_" in
312317generalize _paco_mark_cons; repeat intro;
313- apply _paco_pre3; intro X;
318+ apply _paco_pre3;
314319match goal with
315- | |- _ ?e0 ?e1 ?e2 => unfold X; clear X; paco_cont3 e0 e1 e2
320+ | [|- let _ : _ ?T0 ?T1 ?T2 := _ in _ ?e0 ?e1 ?e2] => intro X; unfold X; clear X;
321+ paco_cont3
322+ (e0: T0)
323+ (e1: T1 e0)
324+ (e2: T2 e0 e1)
316325end .
317326
318327Ltac paco_post_match3 INC tac1 tac2 :=
@@ -354,9 +363,14 @@ Proof. intros; apply X. Defined.
354363
355364Ltac paco_pre4 := let X := fresh "_paco_X_" in
356365generalize _paco_mark_cons; repeat intro;
357- apply _paco_pre4; intro X;
366+ apply _paco_pre4;
358367match goal with
359- | |- _ ?e0 ?e1 ?e2 ?e3 => unfold X; clear X; paco_cont4 e0 e1 e2 e3
368+ | [|- let _ : _ ?T0 ?T1 ?T2 ?T3 := _ in _ ?e0 ?e1 ?e2 ?e3] => intro X; unfold X; clear X;
369+ paco_cont4
370+ (e0: T0)
371+ (e1: T1 e0)
372+ (e2: T2 e0 e1)
373+ (e3: T3 e0 e1 e2)
360374end .
361375
362376Ltac paco_post_match4 INC tac1 tac2 :=
@@ -401,9 +415,15 @@ Proof. intros; apply X. Defined.
401415
402416Ltac paco_pre5 := let X := fresh "_paco_X_" in
403417generalize _paco_mark_cons; repeat intro;
404- apply _paco_pre5; intro X;
418+ apply _paco_pre5;
405419match goal with
406- | |- _ ?e0 ?e1 ?e2 ?e3 ?e4 => unfold X; clear X; paco_cont5 e0 e1 e2 e3 e4
420+ | [|- let _ : _ ?T0 ?T1 ?T2 ?T3 ?T4 := _ in _ ?e0 ?e1 ?e2 ?e3 ?e4] => intro X; unfold X; clear X;
421+ paco_cont5
422+ (e0: T0)
423+ (e1: T1 e0)
424+ (e2: T2 e0 e1)
425+ (e3: T3 e0 e1 e2)
426+ (e4: T4 e0 e1 e2 e3)
407427end .
408428
409429Ltac paco_post_match5 INC tac1 tac2 :=
@@ -451,9 +471,16 @@ Proof. intros; apply X. Defined.
451471
452472Ltac paco_pre6 := let X := fresh "_paco_X_" in
453473generalize _paco_mark_cons; repeat intro;
454- apply _paco_pre6; intro X;
474+ apply _paco_pre6;
455475match goal with
456- | |- _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 => unfold X; clear X; paco_cont6 e0 e1 e2 e3 e4 e5
476+ | [|- let _ : _ ?T0 ?T1 ?T2 ?T3 ?T4 ?T5 := _ in _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5] => intro X; unfold X; clear X;
477+ paco_cont6
478+ (e0: T0)
479+ (e1: T1 e0)
480+ (e2: T2 e0 e1)
481+ (e3: T3 e0 e1 e2)
482+ (e4: T4 e0 e1 e2 e3)
483+ (e5: T5 e0 e1 e2 e3 e4)
457484end .
458485
459486Ltac paco_post_match6 INC tac1 tac2 :=
@@ -504,9 +531,17 @@ Proof. intros; apply X. Defined.
504531
505532Ltac paco_pre7 := let X := fresh "_paco_X_" in
506533generalize _paco_mark_cons; repeat intro;
507- apply _paco_pre7; intro X;
534+ apply _paco_pre7;
508535match goal with
509- | |- _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 => unfold X; clear X; paco_cont7 e0 e1 e2 e3 e4 e5 e6
536+ | [|- let _ : _ ?T0 ?T1 ?T2 ?T3 ?T4 ?T5 ?T6 := _ in _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6] => intro X; unfold X; clear X;
537+ paco_cont7
538+ (e0: T0)
539+ (e1: T1 e0)
540+ (e2: T2 e0 e1)
541+ (e3: T3 e0 e1 e2)
542+ (e4: T4 e0 e1 e2 e3)
543+ (e5: T5 e0 e1 e2 e3 e4)
544+ (e6: T6 e0 e1 e2 e3 e4 e5)
510545end .
511546
512547Ltac paco_post_match7 INC tac1 tac2 :=
@@ -560,9 +595,18 @@ Proof. intros; apply X. Defined.
560595
561596Ltac paco_pre8 := let X := fresh "_paco_X_" in
562597generalize _paco_mark_cons; repeat intro;
563- apply _paco_pre8; intro X;
598+ apply _paco_pre8;
564599match goal with
565- | |- _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 => unfold X; clear X; paco_cont8 e0 e1 e2 e3 e4 e5 e6 e7
600+ | [|- let _ : _ ?T0 ?T1 ?T2 ?T3 ?T4 ?T5 ?T6 ?T7 := _ in _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7] => intro X; unfold X; clear X;
601+ paco_cont8
602+ (e0: T0)
603+ (e1: T1 e0)
604+ (e2: T2 e0 e1)
605+ (e3: T3 e0 e1 e2)
606+ (e4: T4 e0 e1 e2 e3)
607+ (e5: T5 e0 e1 e2 e3 e4)
608+ (e6: T6 e0 e1 e2 e3 e4 e5)
609+ (e7: T7 e0 e1 e2 e3 e4 e5 e6)
566610end .
567611
568612Ltac paco_post_match8 INC tac1 tac2 :=
@@ -619,9 +663,19 @@ Proof. intros; apply X. Defined.
619663
620664Ltac paco_pre9 := let X := fresh "_paco_X_" in
621665generalize _paco_mark_cons; repeat intro;
622- apply _paco_pre9; intro X;
666+ apply _paco_pre9;
623667match goal with
624- | |- _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 ?e8 => unfold X; clear X; paco_cont9 e0 e1 e2 e3 e4 e5 e6 e7 e8
668+ | [|- let _ : _ ?T0 ?T1 ?T2 ?T3 ?T4 ?T5 ?T6 ?T7 ?T8 := _ in _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 ?e8] => intro X; unfold X; clear X;
669+ paco_cont9
670+ (e0: T0)
671+ (e1: T1 e0)
672+ (e2: T2 e0 e1)
673+ (e3: T3 e0 e1 e2)
674+ (e4: T4 e0 e1 e2 e3)
675+ (e5: T5 e0 e1 e2 e3 e4)
676+ (e6: T6 e0 e1 e2 e3 e4 e5)
677+ (e7: T7 e0 e1 e2 e3 e4 e5 e6)
678+ (e8: T8 e0 e1 e2 e3 e4 e5 e6 e7)
625679end .
626680
627681Ltac paco_post_match9 INC tac1 tac2 :=
@@ -681,9 +735,20 @@ Proof. intros; apply X. Defined.
681735
682736Ltac paco_pre10 := let X := fresh "_paco_X_" in
683737generalize _paco_mark_cons; repeat intro;
684- apply _paco_pre10; intro X;
738+ apply _paco_pre10;
685739match goal with
686- | |- _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 ?e8 ?e9 => unfold X; clear X; paco_cont10 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9
740+ | [|- let _ : _ ?T0 ?T1 ?T2 ?T3 ?T4 ?T5 ?T6 ?T7 ?T8 ?T9 := _ in _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 ?e8 ?e9] => intro X; unfold X; clear X;
741+ paco_cont10
742+ (e0: T0)
743+ (e1: T1 e0)
744+ (e2: T2 e0 e1)
745+ (e3: T3 e0 e1 e2)
746+ (e4: T4 e0 e1 e2 e3)
747+ (e5: T5 e0 e1 e2 e3 e4)
748+ (e6: T6 e0 e1 e2 e3 e4 e5)
749+ (e7: T7 e0 e1 e2 e3 e4 e5 e6)
750+ (e8: T8 e0 e1 e2 e3 e4 e5 e6 e7)
751+ (e9: T9 e0 e1 e2 e3 e4 e5 e6 e7 e8)
687752end .
688753
689754Ltac paco_post_match10 INC tac1 tac2 :=
@@ -746,9 +811,21 @@ Proof. intros; apply X. Defined.
746811
747812Ltac paco_pre11 := let X := fresh "_paco_X_" in
748813generalize _paco_mark_cons; repeat intro;
749- apply _paco_pre11; intro X;
814+ apply _paco_pre11;
750815match goal with
751- | |- _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 ?e8 ?e9 ?e10 => unfold X; clear X; paco_cont11 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10
816+ | [|- let _ : _ ?T0 ?T1 ?T2 ?T3 ?T4 ?T5 ?T6 ?T7 ?T8 ?T9 ?T10 := _ in _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 ?e8 ?e9 ?e10] => intro X; unfold X; clear X;
817+ paco_cont11
818+ (e0: T0)
819+ (e1: T1 e0)
820+ (e2: T2 e0 e1)
821+ (e3: T3 e0 e1 e2)
822+ (e4: T4 e0 e1 e2 e3)
823+ (e5: T5 e0 e1 e2 e3 e4)
824+ (e6: T6 e0 e1 e2 e3 e4 e5)
825+ (e7: T7 e0 e1 e2 e3 e4 e5 e6)
826+ (e8: T8 e0 e1 e2 e3 e4 e5 e6 e7)
827+ (e9: T9 e0 e1 e2 e3 e4 e5 e6 e7 e8)
828+ (e10: T10 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9)
752829end .
753830
754831Ltac paco_post_match11 INC tac1 tac2 :=
@@ -814,9 +891,22 @@ Proof. intros; apply X. Defined.
814891
815892Ltac paco_pre12 := let X := fresh "_paco_X_" in
816893generalize _paco_mark_cons; repeat intro;
817- apply _paco_pre12; intro X;
894+ apply _paco_pre12;
818895match goal with
819- | |- _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 ?e8 ?e9 ?e10 ?e11 => unfold X; clear X; paco_cont12 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11
896+ | [|- let _ : _ ?T0 ?T1 ?T2 ?T3 ?T4 ?T5 ?T6 ?T7 ?T8 ?T9 ?T10 ?T11 := _ in _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 ?e8 ?e9 ?e10 ?e11] => intro X; unfold X; clear X;
897+ paco_cont12
898+ (e0: T0)
899+ (e1: T1 e0)
900+ (e2: T2 e0 e1)
901+ (e3: T3 e0 e1 e2)
902+ (e4: T4 e0 e1 e2 e3)
903+ (e5: T5 e0 e1 e2 e3 e4)
904+ (e6: T6 e0 e1 e2 e3 e4 e5)
905+ (e7: T7 e0 e1 e2 e3 e4 e5 e6)
906+ (e8: T8 e0 e1 e2 e3 e4 e5 e6 e7)
907+ (e9: T9 e0 e1 e2 e3 e4 e5 e6 e7 e8)
908+ (e10: T10 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9)
909+ (e11: T11 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10)
820910end .
821911
822912Ltac paco_post_match12 INC tac1 tac2 :=
@@ -885,9 +975,23 @@ Proof. intros; apply X. Defined.
885975
886976Ltac paco_pre13 := let X := fresh "_paco_X_" in
887977generalize _paco_mark_cons; repeat intro;
888- apply _paco_pre13; intro X;
978+ apply _paco_pre13;
889979match goal with
890- | |- _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 ?e8 ?e9 ?e10 ?e11 ?e12 => unfold X; clear X; paco_cont13 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12
980+ | [|- let _ : _ ?T0 ?T1 ?T2 ?T3 ?T4 ?T5 ?T6 ?T7 ?T8 ?T9 ?T10 ?T11 ?T12 := _ in _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 ?e8 ?e9 ?e10 ?e11 ?e12] => intro X; unfold X; clear X;
981+ paco_cont13
982+ (e0: T0)
983+ (e1: T1 e0)
984+ (e2: T2 e0 e1)
985+ (e3: T3 e0 e1 e2)
986+ (e4: T4 e0 e1 e2 e3)
987+ (e5: T5 e0 e1 e2 e3 e4)
988+ (e6: T6 e0 e1 e2 e3 e4 e5)
989+ (e7: T7 e0 e1 e2 e3 e4 e5 e6)
990+ (e8: T8 e0 e1 e2 e3 e4 e5 e6 e7)
991+ (e9: T9 e0 e1 e2 e3 e4 e5 e6 e7 e8)
992+ (e10: T10 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9)
993+ (e11: T11 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10)
994+ (e12: T12 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11)
891995end .
892996
893997Ltac paco_post_match13 INC tac1 tac2 :=
@@ -959,9 +1063,24 @@ Proof. intros; apply X. Defined.
9591063
9601064Ltac paco_pre14 := let X := fresh "_paco_X_" in
9611065generalize _paco_mark_cons; repeat intro;
962- apply _paco_pre14; intro X;
1066+ apply _paco_pre14;
9631067match goal with
964- | |- _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 ?e8 ?e9 ?e10 ?e11 ?e12 ?e13 => unfold X; clear X; paco_cont14 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12 e13
1068+ | [|- let _ : _ ?T0 ?T1 ?T2 ?T3 ?T4 ?T5 ?T6 ?T7 ?T8 ?T9 ?T10 ?T11 ?T12 ?T13 := _ in _ ?e0 ?e1 ?e2 ?e3 ?e4 ?e5 ?e6 ?e7 ?e8 ?e9 ?e10 ?e11 ?e12 ?e13] => intro X; unfold X; clear X;
1069+ paco_cont14
1070+ (e0: T0)
1071+ (e1: T1 e0)
1072+ (e2: T2 e0 e1)
1073+ (e3: T3 e0 e1 e2)
1074+ (e4: T4 e0 e1 e2 e3)
1075+ (e5: T5 e0 e1 e2 e3 e4)
1076+ (e6: T6 e0 e1 e2 e3 e4 e5)
1077+ (e7: T7 e0 e1 e2 e3 e4 e5 e6)
1078+ (e8: T8 e0 e1 e2 e3 e4 e5 e6 e7)
1079+ (e9: T9 e0 e1 e2 e3 e4 e5 e6 e7 e8)
1080+ (e10: T10 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9)
1081+ (e11: T11 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10)
1082+ (e12: T12 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11)
1083+ (e13: T13 e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12)
9651084end .
9661085
9671086Ltac paco_post_match14 INC tac1 tac2 :=
0 commit comments