@@ -934,7 +934,7 @@ Proof.
934934 econstructor.
935935 eapply Is_type_eval. 4:eapply X. eauto. eauto.
936936 eapply eval_fix; eauto.
937- rewrite /cunfold_fix e0 //.
937+ rewrite /cunfold_fix e0 //. congruence.
938938 + eapply IHeval1 in He1 as IH1; eauto.
939939 destruct IH1 as (er_stuck_v & er_stuck & ev_stuck).
940940 eapply IHeval2 in He2 as IH2; eauto.
@@ -959,7 +959,8 @@ Proof.
959959 rewrite mkApps_nested. eapply value_final.
960960 eapply eval_to_value; eauto.
961961 eapply value_final, eval_to_value; eauto.
962- rewrite /cunfold_fix e0 //. auto. auto. }
962+ rewrite /cunfold_fix e0 //. auto. auto.
963+ rewrite H3; eauto. auto. }
963964
964965 inv H2.
965966 * assert (Hmfix' := X).
@@ -976,7 +977,7 @@ Proof.
976977 -- cbn in e3. rename x5 into L.
977978 eapply (erases_mkApps _ _ _ _ (argsv ++ [av])) in H2; first last.
978979 { eapply Forall2_app.
979- - exact H3 .
980+ - exact H4 .
980981 - eauto. }
981982 rewrite <- mkApps_nested in H2.
982983 rewrite EAstUtils.mkApps_app in H2.
@@ -996,7 +997,7 @@ Proof.
996997 pose proof (eval_to_value _ _ _ e3) as vfix.
997998 eapply PCUICWcbvEval.stuck_fix_value_args in vfix; eauto.
998999 2:{ rewrite /cunfold_fix e0 //. }
999- simpl in vfix. assert (rarg = #|argsv|) by lia.
1000+ simpl in vfix.
10001001 subst. unfold is_constructor.
10011002 rewrite nth_error_snoc. lia.
10021003 assert(Σ ;;; [] |- mkApps (tFix mfix idx) (argsv ++ [av]) : PCUICLiftSubst.subst [av] 0 x1).
@@ -1014,7 +1015,8 @@ Proof.
10141015 ++ eauto.
10151016 ++ eauto.
10161017 ++ rewrite <- Ee.closed_unfold_fix_cunfold_eq.
1017- { unfold ETyping.unfold_fix. now rewrite e. }
1018+ { unfold ETyping.unfold_fix. rewrite e -e2.
1019+ now rewrite (Forall2_length H4). }
10181020 eapply eval_closed in e3; eauto.
10191021 clear -e3 Hmfix'.
10201022 pose proof (All2_length _ _ Hmfix').
@@ -1034,8 +1036,7 @@ Proof.
10341036 now rewrite Nat.add_0_r in Hbod.
10351037 eauto with pcuic.
10361038 now eapply PCUICClosed.subject_closed in Ht.
1037- ++ apply Forall2_length in H3. rewrite <- e2. lia.
1038- ++ auto.
1039+ ++ auto.
10391040
10401041 -- cbn. destruct p. destruct p.
10411042 eapply (erases_subst Σ [] (PCUICLiftSubst.fix_context mfix) [] dbody (fix_subst mfix)) in e3; cbn; eauto.
@@ -1045,10 +1046,10 @@ Proof.
10451046 ++ eapply All2_from_nth_error.
10461047 erewrite fix_subst_length, ETyping.fix_subst_length, All2_length; eauto.
10471048 intros.
1048- rewrite fix_subst_nth in H4 . now rewrite fix_subst_length in H2.
1049+ rewrite fix_subst_nth in H3 . now rewrite fix_subst_length in H2.
10491050 rewrite efix_subst_nth in H5. rewrite fix_subst_length in H2.
1050- erewrite <- All2_length; eauto.
1051- inv H5; inv H4 .
1051+ erewrite <- All2_length; eauto.
1052+ inv H5; inv H3 .
10521053 erewrite All2_length; eauto.
10531054 * eapply (Is_type_app _ _ _ (argsv ++ [av])) in X as []; tas.
10541055 -- exists EAst.tBox.
@@ -1058,7 +1059,7 @@ Proof.
10581059 rewrite -mkApps_nested.
10591060 eapply eval_fix; eauto.
10601061 1-2:eapply value_final, eval_to_value; eauto.
1061- rewrite /cunfold_fix e0 //.
1062+ rewrite /cunfold_fix e0 //. congruence.
10621063 ++ eapply Ee.eval_box; [|eauto].
10631064 apply eval_to_mkApps_tBox_inv in ev_stuck as ?; subst.
10641065 eauto.
@@ -1206,7 +1207,7 @@ Proof.
12061207 + inv He.
12071208 * eexists. split; eauto. now econstructor.
12081209 * eexists. split. 2: now econstructor.
1209- econstructor; eauto.
1210+ econstructor; eauto.
12101211Qed .
12111212
12121213Print Assumptions erases_correct.
0 commit comments