awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
c : f.Cell j
rw : Mono (𝟙 (unop (op ⦋c.dim + 1⦌)))
⊢ Membership.mem (α := f.sigmaStdSimplex j _⦋c.dim + 1⦌) (γ := Set (f.sigmaStdSimplex j _⦋c.dim + 1⦌))
    ((f.sigmaStdSimplex j).nonDegenerate (c.dim + 1))
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (c.ιSigmaStdSimplex.app (op ⦋c.dim + 1⦌)) :
          (a : (fun (X : Type u) ↦ X) (Δ[c.dim + 1] _⦋c.dim + 1⦌)) →
            (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))
        ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋c.dim + 1⦌) ⟶ ⦋c.dim + 1⦌) → Δ[c.dim + 1] _⦋c.dim + 1⦌)
            (𝟙 (unop (op ⦋c.dim + 1⦌))) :
          Δ[c.dim + 1] _⦋c.dim + 1⦌) :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))

Tactic:
rw [nonDegenerate_iff_of_mono, stdSimplex.mem_nonDegenerate_iff_mono,
      Equiv.apply_symm_apply]

Premises used: Equiv.apply_symm_apply, SSet.nonDegenerate_iff_of_mono, SSet.stdSimplex.mem_nonDegenerate_iff_mono
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
c : f.Cell j
⊢ Mono (𝟙 (unop (op ⦋c.dim + 1⦌)))

Tactic:
infer_instance
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
c : f.Cell j
y : f.sigmaHorn j _⦋c.dim + 1⦌
hy :
  Eq (α := f.sigmaStdSimplex j _⦋c.dim + 1⦌)
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (NatTrans.app (f.m j) (op ⦋c.dim + 1⦌)) :
          (a : (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim + 1⦌)) →
            (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))
        y :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (c.ιSigmaStdSimplex.app (op ⦋c.dim + 1⦌)) :
          (a : (fun (X : Type u) ↦ X) (Δ[c.dim + 1] _⦋c.dim + 1⦌)) →
            (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))
        ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋c.dim + 1⦌) ⟶ ⦋c.dim + 1⦌) → Δ[c.dim + 1] _⦋c.dim + 1⦌)
            (𝟙 (unop (op ⦋c.dim + 1⦌))) :
          Δ[c.dim + 1] _⦋c.dim + 1⦌) :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))
obtain :
  ∀ (x' : f.Cell j) (y : Δ[x'.dim + 1] _⦋c.dim + 1⦌)
    (hy' : Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim + 1⦌)) (x'.horn.obj (op ⦋c.dim + 1⦌)) y)
    (hy :
      Eq (α := f.sigmaStdSimplex j _⦋c.dim + 1⦌)
        ((ConcreteCategory.hom (FC := TypeCat.Fun) (NatTrans.app (f.m j) (op ⦋c.dim + 1⦌)) :
              (a : (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim + 1⦌)) →
                (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))
            ((ConcreteCategory.hom (FC := TypeCat.Fun) (NatTrans.app x'.ιSigmaHorn (op ⦋c.dim + 1⦌)) :
                  (a : (fun (X : Type u) ↦ X) (x'.horn.toSSet _⦋c.dim + 1⦌)) →
                    (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim + 1⦌))
                (Subtype.mk (p := fun (x : Δ[x'.dim + 1] _⦋c.dim + 1⦌) ↦
                  Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim + 1⦌)) (x'.horn.obj (op ⦋c.dim + 1⦌)) x) y hy') :
              (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim + 1⦌)) :
          (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))
        ((ConcreteCategory.hom (FC := TypeCat.Fun) (c.ιSigmaStdSimplex.app (op ⦋c.dim + 1⦌)) :
              (a : (fun (X : Type u) ↦ X) (Δ[c.dim + 1] _⦋c.dim + 1⦌)) →
                (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))
            ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋c.dim + 1⦌) ⟶ ⦋c.dim + 1⦌) → Δ[c.dim + 1] _⦋c.dim + 1⦌)
                (𝟙 (unop (op ⦋c.dim + 1⦌))) :
              Δ[c.dim + 1] _⦋c.dim + 1⦌) :
          (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))),
    False
⊢ False

Tactic:
obtain ⟨x', ⟨y, hy'⟩, rfl⟩ := f.ιSigmaHorn_jointly_surjective y

Premises used: SSet.Subcomplex.Pairing.RankFunction.ιSigmaHorn_jointly_surjective, rfl
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
c x' : f.Cell j
y : Δ[x'.dim + 1] _⦋c.dim + 1⦌
hy' : Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim + 1⦌)) (x'.horn.obj (op ⦋c.dim + 1⦌)) y
hy :
  Eq (α := f.sigmaStdSimplex j _⦋c.dim + 1⦌)
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (NatTrans.app (f.m j) (op ⦋c.dim + 1⦌)) :
          (a : (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim + 1⦌)) →
            (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))
        ((ConcreteCategory.hom (FC := TypeCat.Fun) (NatTrans.app x'.ιSigmaHorn (op ⦋c.dim + 1⦌)) :
              (a : (fun (X : Type u) ↦ X) (x'.horn.toSSet _⦋c.dim + 1⦌)) →
                (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim + 1⦌))
            (Subtype.mk (p := fun (x : Δ[x'.dim + 1] _⦋c.dim + 1⦌) ↦
              Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim + 1⦌)) (x'.horn.obj (op ⦋c.dim + 1⦌)) x) y hy') :
          (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim + 1⦌)) :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (c.ιSigmaStdSimplex.app (op ⦋c.dim + 1⦌)) :
          (a : (fun (X : Type u) ↦ X) (Δ[c.dim + 1] _⦋c.dim + 1⦌)) →
            (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))
        ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋c.dim + 1⦌) ⟶ ⦋c.dim + 1⦌) → Δ[c.dim + 1] _⦋c.dim + 1⦌)
            (𝟙 (unop (op ⦋c.dim + 1⦌))) :
          Δ[c.dim + 1] _⦋c.dim + 1⦌) :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim + 1⦌))
⊢ ∃ (h : x' = c),
    Eq.{u + 1} (α := Δ[c.dim + 1] _⦋c.dim + 1⦌)
      ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋c.dim + 1⦌) ⟶ ⦋c.dim + 1⦌) → Δ[c.dim + 1] _⦋c.dim + 1⦌)
          (𝟙 (unop (op ⦋c.dim + 1⦌))) :
        Δ[c.dim + 1] _⦋c.dim + 1⦌)
      (cast ⋯
          ((ConcreteCategory.hom (FC := TypeCat.Fun) (x'.horn.ι.app (op ⦋c.dim + 1⦌)) :
              (a : x'.horn.toSSet _⦋c.dim + 1⦌) → Δ[x'.dim + 1] _⦋c.dim + 1⦌)
            (Subtype.mk (p := fun (x : Δ[x'.dim + 1] _⦋c.dim + 1⦌) ↦
              Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim + 1⦌)) (x'.horn.obj (op ⦋c.dim + 1⦌)) x) y hy')) :
        Δ[c.dim + 1] _⦋c.dim + 1⦌)

Tactic:
rw [← NatTrans.comp_app_apply, ι_m, NatTrans.comp_app_apply, ιSigmaStdSimplex_eq_iff] at hy

Premises used: SSet.Subcomplex.Pairing.RankFunction.Cell.ι_m, SSet.Subcomplex.Pairing.RankFunction.ιSigmaStdSimplex_eq_iff, CategoryTheory.NatTrans.comp_app_apply
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
c x' : f.Cell j
y : Δ[x'.dim + 1] _⦋c.dim + 1⦌
hy' : Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim + 1⦌)) (x'.horn.obj (op ⦋c.dim + 1⦌)) y
hy :
  ∃ (h : x' = c),
    Eq.{u + 1} (α := Δ[c.dim + 1] _⦋c.dim + 1⦌)
      ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋c.dim + 1⦌) ⟶ ⦋c.dim + 1⦌) → Δ[c.dim + 1] _⦋c.dim + 1⦌)
          (𝟙 (unop (op ⦋c.dim + 1⦌))) :
        Δ[c.dim + 1] _⦋c.dim + 1⦌)
      (cast ⋯
          ((ConcreteCategory.hom (FC := TypeCat.Fun) (x'.horn.ι.app (op ⦋c.dim + 1⦌)) :
              (a : x'.horn.toSSet _⦋c.dim + 1⦌) → Δ[x'.dim + 1] _⦋c.dim + 1⦌)
            (Subtype.mk (p := fun (x : Δ[x'.dim + 1] _⦋c.dim + 1⦌) ↦
              Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim + 1⦌)) (x'.horn.obj (op ⦋c.dim + 1⦌)) x) y hy')) :
        Δ[c.dim + 1] _⦋c.dim + 1⦌)
⊢ Membership.mem (α := Δ[x'.dim + 1] _⦋x'.dim + 1⦌) (γ := Set (Δ[x'.dim + 1] _⦋x'.dim + 1⦌))
    (x'.horn.obj (op ⦋x'.dim + 1⦌))
    ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋x'.dim + 1⦌) ⟶ ⦋x'.dim + 1⦌) → Δ[x'.dim + 1] _⦋x'.dim + 1⦌)
        (𝟙 (unop (op ⦋x'.dim + 1⦌))) :
      Δ[x'.dim + 1] _⦋x'.dim + 1⦌)

Tactic:
obtain ⟨rfl, rfl⟩ := hy

Premises used: rfl
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
x' : f.Cell j
hy' :
  Membership.mem (α := Δ[x'.dim + 1] _⦋x'.dim + 1⦌) (γ := Set (Δ[x'.dim + 1] _⦋x'.dim + 1⦌))
    (x'.horn.obj (op ⦋x'.dim + 1⦌))
    ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋x'.dim + 1⦌) ⟶ ⦋x'.dim + 1⦌) → Δ[x'.dim + 1] _⦋x'.dim + 1⦌)
        (𝟙 (unop (op ⦋x'.dim + 1⦌))) :
      Δ[x'.dim + 1] _⦋x'.dim + 1⦌)
⊢ False

Tactic:
objEquiv_symm_notMem_horn_of_isIso _ _ hy'

Premises used: SSet.objEquiv_symm_notMem_horn_of_isIso
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
x' : f.Cell j
hy' :
  Membership.mem (α := Δ[x'.dim + 1] _⦋x'.dim + 1⦌) (γ := Set (Δ[x'.dim + 1] _⦋x'.dim + 1⦌))
    (x'.horn.obj (op ⦋x'.dim + 1⦌))
    ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋x'.dim + 1⦌) ⟶ ⦋x'.dim + 1⦌) → Δ[x'.dim + 1] _⦋x'.dim + 1⦌)
        (𝟙 (unop (op ⦋x'.dim + 1⦌))) :
      Δ[x'.dim + 1] _⦋x'.dim + 1⦌)
⊢ False

Tactic:
exact objEquiv_symm_notMem_horn_of_isIso _ _ hy'

Premises used: SSet.objEquiv_symm_notMem_horn_of_isIso
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
c : f.Cell j
rw : Mono (SimplexCategory.δ c.index)
⊢ Membership.mem (α := f.sigmaStdSimplex j _⦋c.dim⦌) (γ := Set (f.sigmaStdSimplex j _⦋c.dim⦌))
    ((f.sigmaStdSimplex j).nonDegenerate c.dim)
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (c.ιSigmaStdSimplex.app (op ⦋c.dim⦌)) :
          (a : (fun (X : Type u) ↦ X) (Δ[c.dim + 1] _⦋c.dim⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))
        ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋c.dim⦌) ⟶ ⦋c.dim + 1⦌) → Δ[c.dim + 1] _⦋c.dim⦌)
            (SimplexCategory.δ c.index) :
          Δ[c.dim + 1] _⦋c.dim⦌) :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))

Tactic:
rw [nonDegenerate_iff_of_mono, stdSimplex.mem_nonDegenerate_iff_mono,
      Equiv.apply_symm_apply]

Premises used: Equiv.apply_symm_apply, SSet.nonDegenerate_iff_of_mono, SSet.stdSimplex.mem_nonDegenerate_iff_mono
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
c : f.Cell j
⊢ Mono (SimplexCategory.δ c.index)

Tactic:
infer_instance
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
c : f.Cell j
y : f.sigmaHorn j _⦋c.dim⦌
hy :
  Eq (α := f.sigmaStdSimplex j _⦋c.dim⦌)
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (NatTrans.app (f.m j) (op ⦋c.dim⦌)) :
          (a : (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))
        y :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (c.ιSigmaStdSimplex.app (op ⦋c.dim⦌)) :
          (a : (fun (X : Type u) ↦ X) (Δ[c.dim + 1] _⦋c.dim⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))
        ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋c.dim⦌) ⟶ ⦋c.dim + 1⦌) → Δ[c.dim + 1] _⦋c.dim⦌)
            (SimplexCategory.δ c.index) :
          Δ[c.dim + 1] _⦋c.dim⦌) :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))
obtain :
  ∀ (x' : f.Cell j) (y : Δ[x'.dim + 1] _⦋c.dim⦌)
    (hy' : Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim⦌)) (x'.horn.obj (op ⦋c.dim⦌)) y)
    (hy :
      Eq (α := f.sigmaStdSimplex j _⦋c.dim⦌)
        ((ConcreteCategory.hom (FC := TypeCat.Fun) (NatTrans.app (f.m j) (op ⦋c.dim⦌)) :
              (a : (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim⦌)) →
                (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))
            ((ConcreteCategory.hom (FC := TypeCat.Fun) (NatTrans.app x'.ιSigmaHorn (op ⦋c.dim⦌)) :
                  (a : (fun (X : Type u) ↦ X) (x'.horn.toSSet _⦋c.dim⦌)) →
                    (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim⦌))
                (Subtype.mk (p := fun (x : Δ[x'.dim + 1] _⦋c.dim⦌) ↦
                  Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim⦌)) (x'.horn.obj (op ⦋c.dim⦌)) x) y hy') :
              (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim⦌)) :
          (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))
        ((ConcreteCategory.hom (FC := TypeCat.Fun) (c.ιSigmaStdSimplex.app (op ⦋c.dim⦌)) :
              (a : (fun (X : Type u) ↦ X) (Δ[c.dim + 1] _⦋c.dim⦌)) →
                (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))
            ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋c.dim⦌) ⟶ ⦋c.dim + 1⦌) → Δ[c.dim + 1] _⦋c.dim⦌)
                (SimplexCategory.δ c.index) :
              Δ[c.dim + 1] _⦋c.dim⦌) :
          (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))),
    False
⊢ False

Tactic:
obtain ⟨x', ⟨y, hy'⟩, rfl⟩ := f.ιSigmaHorn_jointly_surjective y

Premises used: SSet.Subcomplex.Pairing.RankFunction.ιSigmaHorn_jointly_surjective, rfl
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
c x' : f.Cell j
y : Δ[x'.dim + 1] _⦋c.dim⦌
hy' : Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim⦌)) (x'.horn.obj (op ⦋c.dim⦌)) y
hy :
  Eq (α := f.sigmaStdSimplex j _⦋c.dim⦌)
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (NatTrans.app (f.m j) (op ⦋c.dim⦌)) :
          (a : (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))
        ((ConcreteCategory.hom (FC := TypeCat.Fun) (NatTrans.app x'.ιSigmaHorn (op ⦋c.dim⦌)) :
              (a : (fun (X : Type u) ↦ X) (x'.horn.toSSet _⦋c.dim⦌)) → (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim⦌))
            (Subtype.mk (p := fun (x : Δ[x'.dim + 1] _⦋c.dim⦌) ↦
              Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim⦌)) (x'.horn.obj (op ⦋c.dim⦌)) x) y hy') :
          (fun (X : Type u) ↦ X) (f.sigmaHorn j _⦋c.dim⦌)) :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (c.ιSigmaStdSimplex.app (op ⦋c.dim⦌)) :
          (a : (fun (X : Type u) ↦ X) (Δ[c.dim + 1] _⦋c.dim⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))
        ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋c.dim⦌) ⟶ ⦋c.dim + 1⦌) → Δ[c.dim + 1] _⦋c.dim⦌)
            (SimplexCategory.δ c.index) :
          Δ[c.dim + 1] _⦋c.dim⦌) :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋c.dim⦌))
⊢ ∃ (h : x' = c),
    Eq.{u + 1} (α := Δ[c.dim + 1] _⦋c.dim⦌)
      ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋c.dim⦌) ⟶ ⦋c.dim + 1⦌) → Δ[c.dim + 1] _⦋c.dim⦌)
          (SimplexCategory.δ c.index) :
        Δ[c.dim + 1] _⦋c.dim⦌)
      (cast ⋯
          ((ConcreteCategory.hom (FC := TypeCat.Fun) (x'.horn.ι.app (op ⦋c.dim⦌)) :
              (a : x'.horn.toSSet _⦋c.dim⦌) → Δ[x'.dim + 1] _⦋c.dim⦌)
            (Subtype.mk (p := fun (x : Δ[x'.dim + 1] _⦋c.dim⦌) ↦
              Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim⦌)) (x'.horn.obj (op ⦋c.dim⦌)) x) y hy')) :
        Δ[c.dim + 1] _⦋c.dim⦌)

Tactic:
rw [← NatTrans.comp_app_apply, ι_m, NatTrans.comp_app_apply, ιSigmaStdSimplex_eq_iff] at hy

Premises used: SSet.Subcomplex.Pairing.RankFunction.Cell.ι_m, SSet.Subcomplex.Pairing.RankFunction.ιSigmaStdSimplex_eq_iff, CategoryTheory.NatTrans.comp_app_apply
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
c x' : f.Cell j
y : Δ[x'.dim + 1] _⦋c.dim⦌
hy' : Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim⦌)) (x'.horn.obj (op ⦋c.dim⦌)) y
hy :
  ∃ (h : x' = c),
    Eq.{u + 1} (α := Δ[c.dim + 1] _⦋c.dim⦌)
      ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋c.dim⦌) ⟶ ⦋c.dim + 1⦌) → Δ[c.dim + 1] _⦋c.dim⦌)
          (SimplexCategory.δ c.index) :
        Δ[c.dim + 1] _⦋c.dim⦌)
      (cast ⋯
          ((ConcreteCategory.hom (FC := TypeCat.Fun) (x'.horn.ι.app (op ⦋c.dim⦌)) :
              (a : x'.horn.toSSet _⦋c.dim⦌) → Δ[x'.dim + 1] _⦋c.dim⦌)
            (Subtype.mk (p := fun (x : Δ[x'.dim + 1] _⦋c.dim⦌) ↦
              Membership.mem (γ := Set (Δ[x'.dim + 1] _⦋c.dim⦌)) (x'.horn.obj (op ⦋c.dim⦌)) x) y hy')) :
        Δ[c.dim + 1] _⦋c.dim⦌)
⊢ Membership.mem (α := Δ[x'.dim + 1] _⦋x'.dim⦌) (γ := Set (Δ[x'.dim + 1] _⦋x'.dim⦌)) (x'.horn.obj (op ⦋x'.dim⦌))
    ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋x'.dim⦌) ⟶ ⦋x'.dim + 1⦌) → Δ[x'.dim + 1] _⦋x'.dim⦌)
        (SimplexCategory.δ x'.index) :
      Δ[x'.dim + 1] _⦋x'.dim⦌)

Tactic:
obtain ⟨rfl, rfl⟩ := hy

Premises used: rfl
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
x' : f.Cell j
hy' :
  Membership.mem (α := Δ[x'.dim + 1] _⦋x'.dim⦌) (γ := Set (Δ[x'.dim + 1] _⦋x'.dim⦌)) (x'.horn.obj (op ⦋x'.dim⦌))
    ((Equiv.symm stdSimplex.objEquiv : (a : unop (op ⦋x'.dim⦌) ⟶ ⦋x'.dim + 1⦌) → Δ[x'.dim + 1] _⦋x'.dim⦌)
        (SimplexCategory.δ x'.index) :
      Δ[x'.dim + 1] _⦋x'.dim⦌)
⊢ False

Tactic:
simpa using (objEquiv_symm_δ_mem_horn_iff _ _).mp hy'

Premises used: Iff.mp, SSet.objEquiv_symm_δ_mem_horn_iff
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
s : (range (X := f.sigmaHorn j) (f.m j)).N
obtain :
  ∀ (d : ℕ) (s : f.sigmaStdSimplex j _⦋d⦌)
    (hs : Membership.mem (γ := Set (f.sigmaStdSimplex j _⦋d⦌)) ((f.sigmaStdSimplex j).nonDegenerate d) s)
    (hs' : s ∉ (range (X := f.sigmaHorn j) (f.m j)).obj (op ⦋d⦌)),
    ∃ (c : f.Cell j), N.mk s hs hs' = Cell.type₁ f c ∨ N.mk s hs hs' = Cell.type₂ f c
⊢ ∃ (c : f.Cell j), s = Cell.type₁ f c ∨ s = Cell.type₂ f c

Tactic:
obtain ⟨d, s, hs, hs', rfl⟩ := s.mk_surjective

Premises used: SSet.Subcomplex.N.mk_surjective, rfl
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
d : ℕ
s : f.sigmaStdSimplex j _⦋d⦌
hs : Membership.mem (γ := Set (f.sigmaStdSimplex j _⦋d⦌)) ((f.sigmaStdSimplex j).nonDegenerate d) s
hs' : s ∉ (range (X := f.sigmaHorn j) (f.m j)).obj (op ⦋d⦌)
obtain :
  ∀ (x : f.Cell j) (s : Δ[x.dim + 1] _⦋d⦌)
    (hs :
      Membership.mem (α := f.sigmaStdSimplex j _⦋d⦌) (γ := Set (f.sigmaStdSimplex j _⦋d⦌))
        ((f.sigmaStdSimplex j).nonDegenerate d)
        ((ConcreteCategory.hom (FC := TypeCat.Fun) (x.ιSigmaStdSimplex.app (op ⦋d⦌)) :
              (a : (fun (X : Type u) ↦ X) (Δ[x.dim + 1] _⦋d⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌))
            s :
          (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌)))
    (hs' :
      ((ConcreteCategory.hom (FC := TypeCat.Fun) (x.ιSigmaStdSimplex.app (op ⦋d⦌)) :
              (a : (fun (X : Type u) ↦ X) (Δ[x.dim + 1] _⦋d⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌))
            s :
          (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌)) ∉
        (range (X := f.sigmaHorn j) (f.m j)).obj (op ⦋d⦌)),
    ∃ (c : f.Cell j),
      N.mk
            ((ConcreteCategory.hom (FC := TypeCat.Fun) (x.ιSigmaStdSimplex.app (op ⦋d⦌)) :
                (a : (fun (X : Type u) ↦ X) (Δ[x.dim + 1] _⦋d⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌))
              s)
            hs hs' =
          Cell.type₁ f c ∨
        N.mk
            ((ConcreteCategory.hom (FC := TypeCat.Fun) (x.ιSigmaStdSimplex.app (op ⦋d⦌)) :
                (a : (fun (X : Type u) ↦ X) (Δ[x.dim + 1] _⦋d⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌))
              s)
            hs hs' =
          Cell.type₂ f c
⊢ ∃ (c : f.Cell j), N.mk s hs hs' = Cell.type₁ f c ∨ N.mk s hs hs' = Cell.type₂ f c

Tactic:
obtain ⟨x, s, rfl⟩ := f.ιSigmaStdSimplex_jointly_surjective s

Premises used: SSet.Subcomplex.Pairing.RankFunction.ιSigmaStdSimplex_jointly_surjective, rfl
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
d : ℕ
x : f.Cell j
s : Δ[x.dim + 1] _⦋d⦌
hs :
  Membership.mem (α := f.sigmaStdSimplex j _⦋d⦌) (γ := Set (f.sigmaStdSimplex j _⦋d⦌))
    ((f.sigmaStdSimplex j).nonDegenerate d)
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (x.ιSigmaStdSimplex.app (op ⦋d⦌)) :
          (a : (fun (X : Type u) ↦ X) (Δ[x.dim + 1] _⦋d⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌))
        s :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌))
hs' :
  ((ConcreteCategory.hom (FC := TypeCat.Fun) (x.ιSigmaStdSimplex.app (op ⦋d⦌)) :
          (a : (fun (X : Type u) ↦ X) (Δ[x.dim + 1] _⦋d⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌))
        s :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌)) ∉
    (range (X := f.sigmaHorn j) (f.m j)).obj (op ⦋d⦌)
h : Membership.mem (γ := Set (Δ[x.dim + 1] _⦋d⦌)) (Λ[x.dim + 1, x.index].obj (op ⦋d⦌)) s
⊢ Eq (α := f.sigmaStdSimplex j _⦋d⦌)
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (NatTrans.app (x.ιSigmaHorn ≫ f.m j) (op ⦋d⦌)) :
          (a : x.horn.toSSet _⦋d⦌) → f.sigmaStdSimplex j _⦋d⦌)
        (Subtype.mk (p := fun (x_1 : Δ[x.dim + 1] _⦋d⦌) ↦
          Membership.mem (γ := Set (Δ[x.dim + 1] _⦋d⦌)) (x.horn.obj (op ⦋d⦌)) x_1) s h) :
      f.sigmaStdSimplex j _⦋d⦌)
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (x.ιSigmaStdSimplex.app (op ⦋d⦌)) :
          (a : (fun (X : Type u) ↦ X) (Δ[x.dim + 1] _⦋d⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌))
        s :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌))

Tactic:
simp
-- Module: Mathlib.AlgebraicTopology.SimplicialSet.AnodyneExtensions.RelativeCellComplex
Goal:
X : SSet
A : X.Subcomplex
P : A.Pairing
ι : Type v
inst : LinearOrder ι
f : P.RankFunction ι
inst_1 : P.IsProper
j : ι
d : ℕ
x : f.Cell j
s : Δ[x.dim + 1] _⦋d⦌
hs :
  Membership.mem (α := f.sigmaStdSimplex j _⦋d⦌) (γ := Set (f.sigmaStdSimplex j _⦋d⦌))
    ((f.sigmaStdSimplex j).nonDegenerate d)
    ((ConcreteCategory.hom (FC := TypeCat.Fun) (x.ιSigmaStdSimplex.app (op ⦋d⦌)) :
          (a : (fun (X : Type u) ↦ X) (Δ[x.dim + 1] _⦋d⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌))
        s :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌))
hs' :
  ((ConcreteCategory.hom (FC := TypeCat.Fun) (x.ιSigmaStdSimplex.app (op ⦋d⦌)) :
          (a : (fun (X : Type u) ↦ X) (Δ[x.dim + 1] _⦋d⦌)) → (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌))
        s :
      (fun (X : Type u) ↦ X) (f.sigmaStdSimplex j _⦋d⦌)) ∉
    (range (X := f.sigmaHorn j) (f.m j)).obj (op ⦋d⦌)
⊢ s ∉ Λ[x.dim + 1, x.index].obj (op ⦋d⦌)

Tactic:
replace hs' : s ∉ (horn _ x.index).obj _ :=
    fun h ↦ hs' ⟨x.ιSigmaHorn.app _ ⟨_, h⟩, by rw [← NatTrans.comp_app_apply]; simp⟩