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

tactic: rw [h₁]
state_before: C : Type ?u.931
inst✝ : Category C
Δ : SimplexCategoryᵒᵖ
A A₁ A₂ : IndexSet Δ
h₁ : A₁.fst = A₂.fst
⊢ A₁.fst.unop = A₂.fst.unop

tactic: rcases A₁ with ⟨Δ₁, ⟨α₁, hα₁⟩⟩
state_before: C : Type ?u.931
inst✝ : Category C
Δ : SimplexCategoryᵒᵖ
A A₁ A₂ : IndexSet Δ
h₁ : A₁.fst = A₂.fst
h₂ : e A₁ ≫ eqToHom (_ : A₁.fst.unop = A₂.fst.unop) = e A₂
⊢ A₁ = A₂

tactic: rcases A₂ with ⟨Δ₂, ⟨α₂, hα₂⟩⟩
state_before: case mk.mk
C : Type ?u.931
inst✝ : Category C
Δ : SimplexCategoryᵒᵖ
A A₂ : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : Δ.unop ⟶ Δ₁.unop
hα₁ : Epi α₁
h₁ : { fst := Δ₁, snd := { val := α₁, property := hα₁ } }.fst = A₂.fst
h₂ :
  e { fst := Δ₁, snd := { val := α₁, property := hα₁ } } ≫
      eqToHom (_ : { fst := Δ₁, snd := { val := α₁, property := hα₁ } }.fst.unop = A₂.fst.unop) =
    e A₂
⊢ { fst := Δ₁, snd := { val := α₁, property := hα₁ } } = A₂

tactic: simp only at h₁
state_before: case mk.mk.mk.mk
C : Type ?u.931
inst✝ : Category C
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : Δ.unop ⟶ Δ₁.unop
hα₁ : Epi α₁
Δ₂ : SimplexCategoryᵒᵖ
α₂ : Δ.unop ⟶ Δ₂.unop
hα₂ : Epi α₂
h₁ : { fst := Δ₁, snd := { val := α₁, property := hα₁ } }.fst = { fst := Δ₂, snd := { val := α₂, property := hα₂ } }.fst
h₂ :
  e { fst := Δ₁, snd := { val := α₁, property := hα₁ } } ≫
      eqToHom
        (_ :
          { fst := Δ₁, snd := { val := α₁, property := hα₁ } }.fst.unop =
            { fst := Δ₂, snd := { val := α₂, property := hα₂ } }.fst.unop) =
    e { fst := Δ₂, snd := { val := α₂, property := hα₂ } }
⊢ { fst := Δ₁, snd := { val := α₁, property := hα₁ } } = { fst := Δ₂, snd := { val := α₂, property := hα₂ } }

tactic: subst h₁
state_before: case mk.mk.mk.mk
C : Type ?u.931
inst✝ : Category C
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : Δ.unop ⟶ Δ₁.unop
hα₁ : Epi α₁
Δ₂ : SimplexCategoryᵒᵖ
α₂ : Δ.unop ⟶ Δ₂.unop
hα₂ : Epi α₂
h₁ : Δ₁ = Δ₂
h₂ :
  e { fst := Δ₁, snd := { val := α₁, property := hα₁ } } ≫
      eqToHom
        (_ :
          { fst := Δ₁, snd := { val := α₁, property := hα₁ } }.fst.unop =
            { fst := Δ₂, snd := { val := α₂, property := hα₂ } }.fst.unop) =
    e { fst := Δ₂, snd := { val := α₂, property := hα₂ } }
⊢ { fst := Δ₁, snd := { val := α₁, property := hα₁ } } = { fst := Δ₂, snd := { val := α₂, property := hα₂ } }

tactic: simp only [eqToHom_refl, comp_id, IndexSet.e] at h₂
state_before: case mk.mk.mk.mk
C : Type ?u.931
inst✝ : Category C
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : Δ.unop ⟶ Δ₁.unop
hα₁ : Epi α₁
α₂ : Δ.unop ⟶ Δ₁.unop
hα₂ : Epi α₂
h₂ :
  e { fst := Δ₁, snd := { val := α₁, property := hα₁ } } ≫
      eqToHom
        (_ :
          { fst := Δ₁, snd := { val := α₁, property := hα₁ } }.fst.unop =
            { fst := Δ₁, snd := { val := α₂, property := hα₂ } }.fst.unop) =
    e { fst := Δ₁, snd := { val := α₂, property := hα₂ } }
⊢ { fst := Δ₁, snd := { val := α₁, property := hα₁ } } = { fst := Δ₁, snd := { val := α₂, property := hα₂ } }

tactic: simp only [h₂]
state_before: case mk.mk.mk.mk
C : Type ?u.931
inst✝ : Category C
Δ : SimplexCategoryᵒᵖ
A : IndexSet Δ
Δ₁ : SimplexCategoryᵒᵖ
α₁ : Δ.unop ⟶ Δ₁.unop
hα₁ : Epi α₁
α₂ : Δ.unop ⟶ Δ₁.unop
hα₂ : Epi α₂
h₂ : α₁ = α₂
⊢ { fst := Δ₁, snd := { val := α₁, property := hα₁ } } = { fst := Δ₁, snd := { val := α₂, property := hα₂ } }