Theorem: AlgebraicTopology.DoldKan.Γ₀_obj_termwise_mapMono_comp_PInfty
File: Mathlib/AlgebraicTopology/DoldKan/NCompGamma.lean

tactic: induction' Δ using SimplexCategory.rec with n
state_before: C : Type u_2
inst✝² : Category C
inst✝¹ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i : Δ ⟶ Δ'
inst✝ : Mono i
⊢ Γ₀.Obj.Termwise.mapMono K[X] i ≫ HomologicalComplex.Hom.f PInfty (len Δ) =
    HomologicalComplex.Hom.f PInfty (len Δ') ≫ X.map i.op

tactic: induction' Δ' using SimplexCategory.rec with n'
state_before: case h
C : Type u_2
inst✝³ : Category C
inst✝² : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝ : Δ ⟶ Δ'
inst✝¹ : Mono i✝
n : ℕ
i : [n] ⟶ Δ'
inst✝ : Mono i
⊢ Γ₀.Obj.Termwise.mapMono K[X] i ≫ HomologicalComplex.Hom.f PInfty (len [n]) =
    HomologicalComplex.Hom.f PInfty (len Δ') ≫ X.map i.op

tactic: dsimp
state_before: case h.h
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
⊢ Γ₀.Obj.Termwise.mapMono K[X] i ≫ HomologicalComplex.Hom.f PInfty (len [n]) =
    HomologicalComplex.Hom.f PInfty (len [n']) ≫ X.map i.op

tactic: by_cases n = n'
state_before: case h.h
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
⊢ Γ₀.Obj.Termwise.mapMono K[X] i ≫ HomologicalComplex.Hom.f PInfty n = HomologicalComplex.Hom.f PInfty n' ≫ X.map i.op

tactic: by_cases hi : Isδ₀ i
state_before: case neg
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
h : ¬n = n'
⊢ Γ₀.Obj.Termwise.mapMono K[X] i ≫ HomologicalComplex.Hom.f PInfty n = HomologicalComplex.Hom.f PInfty n' ≫ X.map i.op

tactic: subst h
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
h : n = n'
⊢ Γ₀.Obj.Termwise.mapMono K[X] i ≫ HomologicalComplex.Hom.f PInfty n = HomologicalComplex.Hom.f PInfty n' ≫ X.map i.op

tactic: simp only [SimplexCategory.eq_id_of_mono i, Γ₀.Obj.Termwise.mapMono_id, op_id, X.map_id]
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n]
inst✝¹ : Mono i✝
i : [n] ⟶ [n]
inst✝ : Mono i
⊢ Γ₀.Obj.Termwise.mapMono K[X] i ≫ HomologicalComplex.Hom.f PInfty n = HomologicalComplex.Hom.f PInfty n ≫ X.map i.op

tactic: dsimp
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n]
inst✝¹ : Mono i✝
i : [n] ⟶ [n]
inst✝ : Mono i
⊢ 𝟙 (HomologicalComplex.X K[X] (len [n])) ≫ HomologicalComplex.Hom.f PInfty n =
    HomologicalComplex.Hom.f PInfty n ≫ 𝟙 (X.obj [n].op)

tactic: simp only [id_comp, comp_id]
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n]
inst✝¹ : Mono i✝
i : [n] ⟶ [n]
inst✝ : Mono i
⊢ 𝟙 (X.obj [n].op) ≫ HomologicalComplex.Hom.f PInfty n = HomologicalComplex.Hom.f PInfty n ≫ 𝟙 (X.obj [n].op)

tactic: have h' : n' = n + 1 := hi.left
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
h : ¬n = n'
hi : Isδ₀ i
⊢ Γ₀.Obj.Termwise.mapMono K[X] i ≫ HomologicalComplex.Hom.f PInfty n = HomologicalComplex.Hom.f PInfty n' ≫ X.map i.op

tactic: subst h'
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
h : ¬n = n'
hi : Isδ₀ i
h' : n' = n + 1
⊢ Γ₀.Obj.Termwise.mapMono K[X] i ≫ HomologicalComplex.Hom.f PInfty n = HomologicalComplex.Hom.f PInfty n' ≫ X.map i.op

tactic: simp only [Γ₀.Obj.Termwise.mapMono_δ₀' _ i hi]
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
⊢ Γ₀.Obj.Termwise.mapMono K[X] i ≫ HomologicalComplex.Hom.f PInfty n =
    HomologicalComplex.Hom.f PInfty (n + 1) ≫ X.map i.op

tactic: dsimp
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
⊢ HomologicalComplex.d K[X] (len [n + 1]) (len [n]) ≫ HomologicalComplex.Hom.f PInfty n =
    HomologicalComplex.Hom.f PInfty (n + 1) ≫ X.map i.op

tactic: rw [← PInfty.comm _ n, AlternatingFaceMapComplex.obj_d_eq]
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
⊢ HomologicalComplex.d K[X] (n + 1) n ≫ HomologicalComplex.Hom.f PInfty n =
    HomologicalComplex.Hom.f PInfty (n + 1) ≫ X.map i.op

tactic: simp only [eq_self_iff_true, id_comp, if_true, Preadditive.comp_sum]
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
⊢ (HomologicalComplex.Hom.f PInfty (n + 1) ≫ Finset.sum Finset.univ fun i => (-1) ^ ↑i • SimplicialObject.δ X i) =
    HomologicalComplex.Hom.f PInfty (n + 1) ≫ X.map i.op

tactic: rw [Finset.sum_eq_single (0 : Fin (n + 2))]
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
⊢ (Finset.sum Finset.univ fun j => HomologicalComplex.Hom.f PInfty (n + 1) ≫ ((-1) ^ ↑j • SimplicialObject.δ X j)) =
    HomologicalComplex.Hom.f PInfty (n + 1) ≫ X.map i.op

tactic: rotate_left
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
⊢ HomologicalComplex.Hom.f PInfty (n + 1) ≫ ((-1) ^ ↑0 • SimplicialObject.δ X 0) =
    HomologicalComplex.Hom.f PInfty (n + 1) ≫ X.map i.op

case pos.h₀
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
⊢ ∀ (b : Fin (n + 2)),
    b ∈ Finset.univ → b ≠ 0 → HomologicalComplex.Hom.f PInfty (n + 1) ≫ ((-1) ^ ↑b • SimplicialObject.δ X b) = 0

case pos.h₁
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
⊢ ¬0 ∈ Finset.univ → HomologicalComplex.Hom.f PInfty (n + 1) ≫ ((-1) ^ ↑0 • SimplicialObject.δ X 0) = 0

tactic: intro b _ hb
state_before: case pos.h₀
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
⊢ ∀ (b : Fin (n + 2)),
    b ∈ Finset.univ → b ≠ 0 → HomologicalComplex.Hom.f PInfty (n + 1) ≫ ((-1) ^ ↑b • SimplicialObject.δ X b) = 0

tactic: rw [Preadditive.comp_zsmul]
state_before: case pos.h₀
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
b : Fin (n + 2)
a✝ : b ∈ Finset.univ
hb : b ≠ 0
⊢ HomologicalComplex.Hom.f PInfty (n + 1) ≫ ((-1) ^ ↑b • SimplicialObject.δ X b) = 0

tactic: erw [PInfty_comp_map_mono_eq_zero X (SimplexCategory.δ b) h
    (by
      rw [Isδ₀.iff]
      exact hb),
  zsmul_zero]
state_before: case pos.h₀
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
b : Fin (n + 2)
a✝ : b ∈ Finset.univ
hb : b ≠ 0
⊢ (-1) ^ ↑b • HomologicalComplex.Hom.f PInfty (n + 1) ≫ SimplicialObject.δ X b = 0

tactic: rw [Isδ₀.iff]
state_before: C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
b : Fin (n + 2)
a✝ : b ∈ Finset.univ
hb : b ≠ 0
⊢ ¬Isδ₀ (SimplexCategory.δ b)

tactic: exact hb
state_before: C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
b : Fin (n + 2)
a✝ : b ∈ Finset.univ
hb : b ≠ 0
⊢ ¬b = 0

tactic: simp only [Finset.mem_univ, not_true, IsEmpty.forall_iff]
state_before: case pos.h₁
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
⊢ ¬0 ∈ Finset.univ → HomologicalComplex.Hom.f PInfty (n + 1) ≫ ((-1) ^ ↑0 • SimplicialObject.δ X 0) = 0

tactic: simp only [hi.eq_δ₀, Fin.val_zero, pow_zero, one_zsmul]
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
⊢ HomologicalComplex.Hom.f PInfty (n + 1) ≫ ((-1) ^ ↑0 • SimplicialObject.δ X 0) =
    HomologicalComplex.Hom.f PInfty (n + 1) ≫ X.map i.op

tactic: rfl
state_before: case pos
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
i✝ : Δ ⟶ [n + 1]
inst✝¹ : Mono i✝
i : [n] ⟶ [n + 1]
inst✝ : Mono i
h : ¬n = n + 1
hi : Isδ₀ i
⊢ HomologicalComplex.Hom.f PInfty (n + 1) ≫ SimplicialObject.δ X 0 =
    HomologicalComplex.Hom.f PInfty (n + 1) ≫ X.map (SimplexCategory.δ 0).op

tactic: rw [Γ₀.Obj.Termwise.mapMono_eq_zero _ i _ hi, zero_comp]
state_before: case neg
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
h : ¬n = n'
hi : ¬Isδ₀ i
⊢ Γ₀.Obj.Termwise.mapMono K[X] i ≫ HomologicalComplex.Hom.f PInfty n = HomologicalComplex.Hom.f PInfty n' ≫ X.map i.op

tactic: swap
state_before: case neg
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
h : ¬n = n'
hi : ¬Isδ₀ i
⊢ 0 = HomologicalComplex.Hom.f PInfty n' ≫ X.map i.op

C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
h : ¬n = n'
hi : ¬Isδ₀ i
⊢ [n'] ≠ [n]

tactic: rw [PInfty_comp_map_mono_eq_zero]
state_before: case neg
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
h : ¬n = n'
hi : ¬Isδ₀ i
⊢ 0 = HomologicalComplex.Hom.f PInfty n' ≫ X.map i.op

tactic: by_contra h'
state_before: C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
h : ¬n = n'
hi : ¬Isδ₀ i
⊢ [n'] ≠ [n]

tactic: exact h (congr_arg SimplexCategory.len h'.symm)
state_before: C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
h : ¬n = n'
hi : ¬Isδ₀ i
h' : [n'] = [n]
⊢ False

tactic: exact h
state_before: case neg.h₁
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
h : ¬n = n'
hi : ¬Isδ₀ i
⊢ len [n] ≠ n'

tactic: by_contra h'
state_before: case neg.h₂
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
h : ¬n = n'
hi : ¬Isδ₀ i
⊢ ¬Isδ₀ i

tactic: exact hi h'
state_before: case neg.h₂
C : Type u_2
inst✝⁵ : Category C
inst✝⁴ : Preadditive C
X : SimplicialObject C
Δ Δ' : SimplexCategory
i✝² : Δ ⟶ Δ'
inst✝³ : Mono i✝²
n : ℕ
i✝¹ : [n] ⟶ Δ'
inst✝² : Mono i✝¹
n' : ℕ
i✝ : Δ ⟶ [n']
inst✝¹ : Mono i✝
i : [n] ⟶ [n']
inst✝ : Mono i
h : ¬n = n'
hi : ¬Isδ₀ i
h' : Isδ₀ i
⊢ False