Theorem: SimplicialObject.Splitting.IndexSet.ext
File: Mathlib/AlgebraicTopology/SplitSimplicialObject.lean

Proof steps:
state_before: C : Type u_1
inst✝ : Category.{?u.803, u_1} C
Δ : SimplexCategoryᵒᵖ
A A₁ A₂ : IndexSet Δ
h₁ : A₁.fst = A₂.fst
⊢ unop A₁.fst = unop A₂.fst
state_after: no goals
tactic: rw [h₁]
state_before: C : Type u_1
inst✝ : Category.{?u.803, u_1} C
Δ : SimplexCategoryᵒᵖ
A A₁ A₂ : IndexSet Δ
h₁ : A₁.fst = A₂.fst
h₂ : A₁.e ≫ eqToHom ⋯ = A₂.e
⊢ A₁ = A₂
state_after: case mk.mk
C : Type u_1
inst✝ : Category.{?u.803, u_1} C
Δ : SimplexCategoryᵒᵖ
A A₂ : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : unop Δ ⟶ unop Δ₁
hα₁ : Epi α₁
h₁ : ⟨Δ₁, ⟨α₁, hα₁⟩⟩.fst = A₂.fst
h₂ : e ⟨Δ₁, ⟨α₁, hα₁⟩⟩ ≫ eqToHom ⋯ = A₂.e
⊢ ⟨Δ₁, ⟨α₁, hα₁⟩⟩ = A₂
tactic: rcases A₁ with ⟨Δ₁, ⟨α₁, hα₁⟩⟩
state_before: case mk.mk
C : Type u_1
inst✝ : Category.{?u.803, u_1} C
Δ : SimplexCategoryᵒᵖ
A A₂ : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : unop Δ ⟶ unop Δ₁
hα₁ : Epi α₁
h₁ : ⟨Δ₁, ⟨α₁, hα₁⟩⟩.fst = A₂.fst
h₂ : e ⟨Δ₁, ⟨α₁, hα₁⟩⟩ ≫ eqToHom ⋯ = A₂.e
⊢ ⟨Δ₁, ⟨α₁, hα₁⟩⟩ = A₂
state_after: case mk.mk.mk.mk
C : Type u_1
inst✝ : Category.{?u.803, u_1} C
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : unop Δ ⟶ unop Δ₁
hα₁ : Epi α₁
Δ₂ : SimplexCategoryᵒᵖ
α₂ : unop Δ ⟶ unop Δ₂
hα₂ : Epi α₂
h₁ : ⟨Δ₁, ⟨α₁, hα₁⟩⟩.fst = ⟨Δ₂, ⟨α₂, hα₂⟩⟩.fst
h₂ : e ⟨Δ₁, ⟨α₁, hα₁⟩⟩ ≫ eqToHom ⋯ = e ⟨Δ₂, ⟨α₂, hα₂⟩⟩
⊢ ⟨Δ₁, ⟨α₁, hα₁⟩⟩ = ⟨Δ₂, ⟨α₂, hα₂⟩⟩
tactic: rcases A₂ with ⟨Δ₂, ⟨α₂, hα₂⟩⟩
state_before: case mk.mk.mk.mk
C : Type u_1
inst✝ : Category.{?u.803, u_1} C
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : unop Δ ⟶ unop Δ₁
hα₁ : Epi α₁
Δ₂ : SimplexCategoryᵒᵖ
α₂ : unop Δ ⟶ unop Δ₂
hα₂ : Epi α₂
h₁ : ⟨Δ₁, ⟨α₁, hα₁⟩⟩.fst = ⟨Δ₂, ⟨α₂, hα₂⟩⟩.fst
h₂ : e ⟨Δ₁, ⟨α₁, hα₁⟩⟩ ≫ eqToHom ⋯ = e ⟨Δ₂, ⟨α₂, hα₂⟩⟩
⊢ ⟨Δ₁, ⟨α₁, hα₁⟩⟩ = ⟨Δ₂, ⟨α₂, hα₂⟩⟩
state_after: case mk.mk.mk.mk
C : Type u_1
inst✝ : Category.{?u.803, u_1} C
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : unop Δ ⟶ unop Δ₁
hα₁ : Epi α₁
Δ₂ : SimplexCategoryᵒᵖ
α₂ : unop Δ ⟶ unop Δ₂
hα₂ : Epi α₂
h₁ : Δ₁ = Δ₂
h₂ : e ⟨Δ₁, ⟨α₁, hα₁⟩⟩ ≫ eqToHom ⋯ = e ⟨Δ₂, ⟨α₂, hα₂⟩⟩
⊢ ⟨Δ₁, ⟨α₁, hα₁⟩⟩ = ⟨Δ₂, ⟨α₂, hα₂⟩⟩
tactic: simp only at h₁
state_before: case mk.mk.mk.mk
C : Type u_1
inst✝ : Category.{?u.803, u_1} C
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : unop Δ ⟶ unop Δ₁
hα₁ : Epi α₁
Δ₂ : SimplexCategoryᵒᵖ
α₂ : unop Δ ⟶ unop Δ₂
hα₂ : Epi α₂
h₁ : Δ₁ = Δ₂
h₂ : e ⟨Δ₁, ⟨α₁, hα₁⟩⟩ ≫ eqToHom ⋯ = e ⟨Δ₂, ⟨α₂, hα₂⟩⟩
⊢ ⟨Δ₁, ⟨α₁, hα₁⟩⟩ = ⟨Δ₂, ⟨α₂, hα₂⟩⟩
state_after: case mk.mk.mk.mk
C : Type u_1
inst✝ : Category.{?u.803, u_1} C
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : unop Δ ⟶ unop Δ₁
hα₁ : Epi α₁
α₂ : unop Δ ⟶ unop Δ₁
hα₂ : Epi α₂
h₂ : e ⟨Δ₁, ⟨α₁, hα₁⟩⟩ ≫ eqToHom ⋯ = e ⟨Δ₁, ⟨α₂, hα₂⟩⟩
⊢ ⟨Δ₁, ⟨α₁, hα₁⟩⟩ = ⟨Δ₁, ⟨α₂, hα₂⟩⟩
tactic: subst h₁
state_before: case mk.mk.mk.mk
C : Type u_1
inst✝ : Category.{?u.803, u_1} C
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : unop Δ ⟶ unop Δ₁
hα₁ : Epi α₁
α₂ : unop Δ ⟶ unop Δ₁
hα₂ : Epi α₂
h₂ : e ⟨Δ₁, ⟨α₁, hα₁⟩⟩ ≫ eqToHom ⋯ = e ⟨Δ₁, ⟨α₂, hα₂⟩⟩
⊢ ⟨Δ₁, ⟨α₁, hα₁⟩⟩ = ⟨Δ₁, ⟨α₂, hα₂⟩⟩
state_after: case mk.mk.mk.mk
C : Type u_1
inst✝ : Category.{?u.803, u_1} C
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : unop Δ ⟶ unop Δ₁
hα₁ : Epi α₁
α₂ : unop Δ ⟶ unop Δ₁
hα₂ : Epi α₂
h₂ : α₁ = α₂
⊢ ⟨Δ₁, ⟨α₁, hα₁⟩⟩ = ⟨Δ₁, ⟨α₂, hα₂⟩⟩
tactic: simp only [eqToHom_refl, comp_id, IndexSet.e] at h₂
state_before: case mk.mk.mk.mk
C : Type u_1
inst✝ : Category.{?u.803, u_1} C
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : unop Δ ⟶ unop Δ₁
hα₁ : Epi α₁
α₂ : unop Δ ⟶ unop Δ₁
hα₂ : Epi α₂
h₂ : α₁ = α₂
⊢ ⟨Δ₁, ⟨α₁, hα₁⟩⟩ = ⟨Δ₁, ⟨α₂, hα₂⟩⟩
state_after: no goals
tactic: simp only [h₂]