l3lab/ntp-mathlib huggingface dataset:
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try 

Proof state:
case neg
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : j < k + 1
h✝¹ : ¬j < k
h✝ : ¬k < i
⊢ k + 1 - 1 = k + 1

Next tactic:
simp
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> 

Proof state:
case neg
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : j < k + 1
h✝¹ : ¬j < k
h✝ : ¬k < i
⊢ False

Next tactic:
linarith
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals 

Proof state:
case pos
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : ¬j < k + 1
h✝¹ : j < k
h✝ : k - 1 < i
⊢ k + 1 = k - 1

Next tactic:
try simp <;> linarith
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try 

Proof state:
case pos
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : ¬j < k + 1
h✝¹ : j < k
h✝ : k - 1 < i
⊢ k + 1 = k - 1

Next tactic:
simp
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals 

Proof state:
case neg
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : ¬j < k + 1
h✝¹ : j < k
h✝ : ¬k - 1 < i
⊢ k + 1 = k - 1 + 1

Next tactic:
try simp <;> linarith
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try 

Proof state:
case neg
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : ¬j < k + 1
h✝¹ : j < k
h✝ : ¬k - 1 < i
⊢ k + 1 = k - 1 + 1

Next tactic:
simp
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> 

Proof state:
case neg
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : ¬j < k + 1
h✝¹ : j < k
h✝ : ¬k - 1 < i
⊢ k = k - 1

Next tactic:
linarith
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals 

Proof state:
case pos
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : ¬j < k + 1
h✝¹ : ¬j < k
h✝ : k < i
⊢ k + 1 = k

Next tactic:
try simp <;> linarith
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try 

Proof state:
case pos
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : ¬j < k + 1
h✝¹ : ¬j < k
h✝ : k < i
⊢ k + 1 = k

Next tactic:
simp
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> 

Proof state:
case pos
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : ¬j < k + 1
h✝¹ : ¬j < k
h✝ : k < i
⊢ False

Next tactic:
linarith
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals 

Proof state:
case neg
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : ¬j < k + 1
h✝¹ : ¬j < k
h✝ : ¬k < i
⊢ k + 1 = k + 1

Next tactic:
try simp <;> linarith
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try 

Proof state:
case neg
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : ¬j < k + 1
h✝¹ : ¬j < k
h✝ : ¬k < i
⊢ k + 1 = k + 1

Next tactic:
simp
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  

Proof state:
case neg
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝² : k < i + 1
h✝¹ : j < k
h✝ : ¬k - 1 < i
⊢ k - 1 = k - 1 + 1
case pos
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : j < k + 1
h✝¹ : j < k
h✝ : k - 1 < i
⊢ k + 1 - 1 = k - 1
case neg
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : j < k + 1
h✝¹ : j < k
h✝ : ¬k - 1 < i
⊢ k + 1 - 1 = k - 1 + 1
case pos
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : ¬j < k + 1
h✝¹ : j < k
h✝ : k - 1 < i
⊢ k + 1 = k - 1

Next tactic:
all_goals cases k <;> simp at * <;> linarith
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals 

Proof state:
case neg
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝² : k < i + 1
h✝¹ : j < k
h✝ : ¬k - 1 < i
⊢ k - 1 = k - 1 + 1

Next tactic:
cases k
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals cases k <;> 

Proof state:
case neg.zero
n i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
hk : Nat.zero < n + 1 + 1
h✝² : Nat.zero < i + 1
h✝¹ : j < Nat.zero
h✝ : ¬Nat.zero - 1 < i
⊢ Nat.zero - 1 = Nat.zero - 1 + 1

Next tactic:
simp at *
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals cases k <;> 

Proof state:
case neg.succ
n i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
n✝ : ℕ
hk : Nat.succ n✝ < n + 1 + 1
h✝² : Nat.succ n✝ < i + 1
h✝¹ : j < Nat.succ n✝
h✝ : ¬Nat.succ n✝ - 1 < i
⊢ Nat.succ n✝ - 1 = Nat.succ n✝ - 1 + 1

Next tactic:
simp at *
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals cases k <;> simp at * <;> 

Proof state:
case neg.succ
n i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
n✝ : ℕ
hk : Nat.succ n✝ < n + 1 + 1
h✝² : Nat.succ n✝ < i + 1
h✝¹ : j < Nat.succ n✝
h✝ : i ≤ n✝
⊢ False

Next tactic:
linarith
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals 

Proof state:
case pos
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : j < k + 1
h✝¹ : j < k
h✝ : k - 1 < i
⊢ k + 1 - 1 = k - 1

Next tactic:
cases k
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals cases k <;> 

Proof state:
case pos.zero
n i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
hk : Nat.zero < n + 1 + 1
h✝³ : ¬Nat.zero < i + 1
h✝² : j < Nat.zero + 1
h✝¹ : j < Nat.zero
h✝ : Nat.zero - 1 < i
⊢ Nat.zero + 1 - 1 = Nat.zero - 1

Next tactic:
simp at *
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals cases k <;> 

Proof state:
case pos.succ
n i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
n✝ : ℕ
hk : Nat.succ n✝ < n + 1 + 1
h✝³ : ¬Nat.succ n✝ < i + 1
h✝² : j < Nat.succ n✝ + 1
h✝¹ : j < Nat.succ n✝
h✝ : Nat.succ n✝ - 1 < i
⊢ Nat.succ n✝ + 1 - 1 = Nat.succ n✝ - 1

Next tactic:
simp at *
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals cases k <;> simp at * <;> 

Proof state:
case pos.succ
n i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
n✝ : ℕ
hk : Nat.succ n✝ < n + 1 + 1
h✝³ : j < Nat.succ n✝ + 1
h✝² : j < Nat.succ n✝
h✝¹ : i + 1 ≤ Nat.succ n✝
h✝ : n✝ < i
⊢ False

Next tactic:
linarith
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals 

Proof state:
case neg
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : j < k + 1
h✝¹ : j < k
h✝ : ¬k - 1 < i
⊢ k + 1 - 1 = k - 1 + 1

Next tactic:
cases k
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals cases k <;> 

Proof state:
case neg.zero
n i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
hk : Nat.zero < n + 1 + 1
h✝³ : ¬Nat.zero < i + 1
h✝² : j < Nat.zero + 1
h✝¹ : j < Nat.zero
h✝ : ¬Nat.zero - 1 < i
⊢ Nat.zero + 1 - 1 = Nat.zero - 1 + 1

Next tactic:
simp at *
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals cases k <;> 

Proof state:
case neg.succ
n i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
n✝ : ℕ
hk : Nat.succ n✝ < n + 1 + 1
h✝³ : ¬Nat.succ n✝ < i + 1
h✝² : j < Nat.succ n✝ + 1
h✝¹ : j < Nat.succ n✝
h✝ : ¬Nat.succ n✝ - 1 < i
⊢ Nat.succ n✝ + 1 - 1 = Nat.succ n✝ - 1 + 1

Next tactic:
simp at *
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals 

Proof state:
case pos
n k : ℕ
hk : k < n + 1 + 1
i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
h✝³ : ¬k < i + 1
h✝² : ¬j < k + 1
h✝¹ : j < k
h✝ : k - 1 < i
⊢ k + 1 = k - 1

Next tactic:
cases k
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals cases k <;> 

Proof state:
case pos.zero
n i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
hk : Nat.zero < n + 1 + 1
h✝³ : ¬Nat.zero < i + 1
h✝² : ¬j < Nat.zero + 1
h✝¹ : j < Nat.zero
h✝ : Nat.zero - 1 < i
⊢ Nat.zero + 1 = Nat.zero - 1

Next tactic:
simp at *
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals cases k <;> 

Proof state:
case pos.succ
n i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
n✝ : ℕ
hk : Nat.succ n✝ < n + 1 + 1
h✝³ : ¬Nat.succ n✝ < i + 1
h✝² : ¬j < Nat.succ n✝ + 1
h✝¹ : j < Nat.succ n✝
h✝ : Nat.succ n✝ - 1 < i
⊢ Nat.succ n✝ + 1 = Nat.succ n✝ - 1

Next tactic:
simp at *
/-- The fourth simplicial identity -/
@[reassoc]
theorem δ_comp_σ_of_gt {n} {i : Fin (n + 2)} {j : Fin (n + 1)} (H : Fin.castSucc j < i) :
    δ i.succ ≫ σ (Fin.castSucc j) = σ j ≫ δ i := by
  ext ⟨k, hk⟩
  rcases i with ⟨i, hi⟩
  rcases j with ⟨j, hj⟩
  simp? at H hk says simp only [Fin.castSucc_mk, Fin.mk_lt_mk, len_mk] at H hk
  dsimp [δ, σ, Fin.predAbove, Fin.succAbove]
  simp only [Fin.lt_iff_val_lt_val, Fin.dite_val, Fin.ite_val, Fin.coe_pred, ge_iff_le,
    Fin.coe_castLT, dite_eq_ite, Fin.coe_castSucc, Fin.val_succ]
  split_ifs
  all_goals try simp <;> linarith
  all_goals cases k <;> simp at * <;> 

Proof state:
case pos.succ
n i : ℕ
hi : i < n + 2
j : ℕ
hj : j < n + 1
H : j < i
n✝ : ℕ
hk : Nat.succ n✝ < n + 1 + 1
h✝³ : j < Nat.succ n✝
h✝² : i + 1 ≤ Nat.succ n✝
h✝¹ : Nat.succ n✝ + 1 ≤ j
h✝ : n✝ < i
⊢ Nat.succ n✝ + 1 = n✝

Next tactic:
linarith
@[reassoc]
theorem δ_comp_σ_of_gt' {n} {i : Fin (n + 3)} {j : Fin (n + 2)} (H : j.succ < i) :
    δ i ≫ σ j = σ (j.castLT ((add_lt_add_iff_right 1).mp (lt_of_lt_of_le H i.is_le))) ≫
      δ (i.pred <| fun (hi : i = 0) => by 

Proof state:
n : ℕ
i : Fin (n + 3)
j : Fin (n + 2)
H : Fin.succ j < i
hi : i = 0
⊢ False

Next tactic:
simp only [Fin.not_lt_zero, hi] at H
@[reassoc]
theorem δ_comp_σ_of_gt' {n} {i : Fin (n + 3)} {j : Fin (n + 2)} (H : j.succ < i) :
    δ i ≫ σ j = σ (j.castLT ((add_lt_add_iff_right 1).mp (lt_of_lt_of_le H i.is_le))) ≫
      δ (i.pred <| fun (hi : i = 0) => by simp only [Fin.not_lt_zero, hi] at H) := by
  

Proof state:
n : ℕ
i : Fin (n + 3)
j : Fin (n + 2)
H : Fin.succ j < i
⊢ δ i ≫ σ j = σ (Fin.castLT j (_ : ↑j < n + 1)) ≫ δ (Fin.pred i (_ : i = 0 → False))

Next tactic:
rw [← δ_comp_σ_of_gt]
@[reassoc]
theorem δ_comp_σ_of_gt' {n} {i : Fin (n + 3)} {j : Fin (n + 2)} (H : j.succ < i) :
    δ i ≫ σ j = σ (j.castLT ((add_lt_add_iff_right 1).mp (lt_of_lt_of_le H i.is_le))) ≫
      δ (i.pred <| fun (hi : i = 0) => by simp only [Fin.not_lt_zero, hi] at H) := by
  rw [← δ_comp_σ_of_gt]
  · 

Proof state:
n : ℕ
i : Fin (n + 3)
j : Fin (n + 2)
H : Fin.succ j < i
⊢ δ i ≫ σ j = δ (Fin.succ (Fin.pred i (_ : i = 0 → False))) ≫ σ (Fin.castSucc (Fin.castLT j (_ : ↑j < n + 1)))

Next tactic:
simp