@@ -494,7 +494,7 @@ section push
494494 theorem pushLCtxs_cons (xs : List α) (lctx : Nat → α) :
495495 pushLCtxs (x :: xs) lctx = pushLCtx x (pushLCtxs xs lctx) := by
496496 apply funext; intros n; cases n <;>
497- simp [pushLCtxs, pushLCtx, Nat.blt, Nat.ble]
497+ simp [pushLCtxs, pushLCtx, Nat.blt, Nat.ble, Nat.zero_ble ]
498498
499499 theorem pushLCtxs_append (xs ys : List α) (lctx : Nat → α) :
500500 pushLCtxs (xs ++ ys) lctx = pushLCtxs xs (pushLCtxs ys lctx) := by
@@ -512,7 +512,7 @@ section push
512512
513513 theorem pushLCtxs_cons_zero (xs : List α) (lctx : Nat → α) :
514514 pushLCtxs (x :: xs) lctx 0 = x := by
515- dsimp [pushLCtxs, Nat.blt, Nat.ble, Nat.zero_ble]
515+ simp [pushLCtxs, Nat.blt, Nat.ble, Nat.zero_ble]
516516
517517 theorem pushLCtxs_cons_succ (xs : List α) (lctx : Nat → α) (n : Nat) :
518518 pushLCtxs (x :: xs) lctx (.succ n) = pushLCtxs xs lctx n := by
@@ -608,7 +608,11 @@ section push
608608 HEq (pushLCtxsDep (.cons x xs) lctx) (pushLCtxDep x (pushLCtxsDep xs lctx)) := by
609609 apply HEq.funext; intros n; cases n
610610 case zero =>
611- simp [pushLCtxs, pushLCtx, Nat.blt, Nat.ble, HList.getD]
611+ simp only [
612+ pushLCtxs, List.length_cons, Nat.blt, Nat.succ_eq_add_one,
613+ Nat.reduceAdd, Nat.ble, List.getD_cons_zero, id_eq, HList.getD, pushLCtx
614+ ]
615+ rw [Nat.zero_ble]
612616 case succ n =>
613617 dsimp [pushLCtxs, pushLCtx, Nat.blt, Nat.ble]
614618 rw [Nat.succ_sub_succ]; rfl
@@ -617,7 +621,11 @@ section push
617621 {lctxty : α → Sort u} {ty : α} (x : lctxty ty) {tys : List α}
618622 (xs : HList lctxty tys) {rty : Nat → α} (lctx : ∀ n, lctxty (rty n)) :
619623 HEq (pushLCtxsDep (.cons x xs) lctx 0 ) x := by
620- simp [pushLCtxs, Nat.blt, Nat.ble, HList.getD]
624+ simp only [
625+ pushLCtxs, List.length_cons, Nat.blt, Nat.succ_eq_add_one,
626+ Nat.reduceAdd, Nat.ble, List.getD_cons_zero, id_eq, HList.getD
627+ ]
628+ rw [Nat.zero_ble]
621629
622630 theorem pushLCtxsDep_cons_succ
623631 {lctxty : α → Sort u} {ty : α} (x : lctxty ty) {tys : List α}
@@ -764,9 +772,17 @@ section push
764772 dsimp at heq; rw [← heq]
765773 rw [HList.ofFun_succ];
766774 congr
775+ case e_3.h =>
776+ simp [pushLCtxs, Nat.blt, Nat.ble, Nat.zero_ble]
767777 case e_4.h =>
768778 dsimp; rw [pushLCtxs_cons_succ_Fn]
769779 apply List.ofFun_ofPushLCtx; rfl
780+ case e_5 =>
781+ simp only [
782+ pushLCtxs, List.length_cons, Nat.blt, Nat.succ_eq_add_one,
783+ Nat.reduceAdd, Nat.ble, List.getD_cons_zero, id_eq, HList.getD
784+ ]
785+ rw [Nat.zero_ble]
770786 case e_6 =>
771787 apply HEq.trans _ (ofFun_ofPushLCtxDep rfl xs lctx)
772788 congr
0 commit comments