awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.CategoryTheory.Filtered.Basic (goal)
Goal:
C : Type u
inst : Category.{v, u} C
inst_1 : IsFiltered.{v, u} C
O : Finset C
H H' : Finset ((X : C) ×' (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y))
X Y : C
mX : X ∈ O
mY : Y ∈ O
f : X ⟶ Y
nmf :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
        (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
          (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∉
    H'
S' : C
T' : {X : C} → X ∈ O → (X ⟶ S')
w' :
  ∀ {X Y : C} (mX : X ∈ O) (mY : Y ∈ O) {f : X ⟶ Y},
    PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
          (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
            (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
              (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∈
        H' →
      f ≫ T' mY = T' mX
⊢ ∃ (S : C) (T : {X : C} → X ∈ O → (X ⟶ S)),
    ∀ {X_1 Y_1 : C} (mX_1 : X_1 ∈ O) (mY_1 : Y_1 ∈ O) {f_1 : X_1 ⟶ Y_1},
      PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X_1
            (PSigma.mk (β := fun (Y : C) ↦ (_ : X_1 ∈ O) ×' (_ : Y ∈ O) ×' (X_1 ⟶ Y)) Y_1
              (PSigma.mk (β := fun (x : X_1 ∈ O) ↦ (_ : Y_1 ∈ O) ×' (X_1 ⟶ Y_1)) mX_1
                (PSigma.mk (β := fun (x : Y_1 ∈ O) ↦ X_1 ⟶ Y_1) mY_1 f_1))) ∈
          insert
            (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
              (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
                (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
                  (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
            H' →
        f_1 ≫ T mY_1 = T mX_1
have insert : ∀ {X_1 Y_1 : C} (mX_1 : X_1 ∈ O) (mY_1 : Y_1 ∈ O) {f_1 : X_1 ⟶ Y_1},
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X_1
        (PSigma.mk (β := fun (Y : C) ↦ (_ : X_1 ∈ O) ×' (_ : Y ∈ O) ×' (X_1 ⟶ Y)) Y_1
          (PSigma.mk (β := fun (x : X_1 ∈ O) ↦ (_ : Y_1 ∈ O) ×' (X_1 ⟶ Y_1)) mX_1
            (PSigma.mk (β := fun (x : Y_1 ∈ O) ↦ X_1 ⟶ Y_1) mY_1 f_1))) ∈
      insert
        (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
          (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
            (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
              (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
        H' →
    Eq (α := X_1 ⟶ coeq (f ≫ T' mY) (T' mX))
      (f_1 ≫
        (fun {X_2 : C} (mZ : X_2 ∈ O) ↦ (T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX) : X_2 ⟶ coeq (f ≫ T' mY) (T' mX))) mY_1)
      ((fun {X_2 : C} (mZ : X_2 ∈ O) ↦ (T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX) : X_2 ⟶ coeq (f ≫ T' mY) (T' mX))) mX_1)
Tactic: refine ⟨coeq (f ≫ T' mY) (T' mX), fun mZ => T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX), ?_⟩
-- Lean 4 proof step from Mathlib.CategoryTheory.Filtered.Basic (goal)
Goal:
C : Type u
inst : Category.{v, u} C
inst_1 : IsFiltered.{v, u} C
O : Finset C
H H' : Finset ((X : C) ×' (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y))
X Y : C
mX : X ∈ O
mY : Y ∈ O
f : X ⟶ Y
nmf :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
        (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
          (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∉
    H'
S' : C
T' : {X : C} → X ∈ O → (X ⟶ S')
w' :
  ∀ {X Y : C} (mX : X ∈ O) (mY : Y ∈ O) {f : X ⟶ Y},
    PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
          (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
            (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
              (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∈
        H' →
      f ≫ T' mY = T' mX
X' Y' : C
mX' : X' ∈ O
mY' : Y' ∈ O
f' : X' ⟶ Y'
mf' :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
        (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
          (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))) ∈
    insert
      (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
        (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
          (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
            (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
      H'
⊢ Eq (α := X' ⟶ coeq (f ≫ T' mY) (T' mX))
    (f' ≫ (fun {X_1 : C} (mZ : X_1 ∈ O) ↦ (T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX) : X_1 ⟶ coeq (f ≫ T' mY) (T' mX))) mY')
    ((fun {X_1 : C} (mZ : X_1 ∈ O) ↦ (T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX) : X_1 ⟶ coeq (f ≫ T' mY) (T' mX))) mX')
have insert : Eq (α := X' ⟶ coeq (f ≫ T' mY) (T' mX)) ((f' ≫ T' mY') ≫ coeqHom (f ≫ T' mY) (T' mX))
  ((fun {X_1 : C} (mZ : X_1 ∈ O) ↦ (T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX) : X_1 ⟶ coeq (f ≫ T' mY) (T' mX))) mX')
Tactic: rw [← Category.assoc]
-- Lean 4 proof step from Mathlib.CategoryTheory.Filtered.Basic (goal)
Goal:
C : Type u
inst : Category.{v, u} C
inst_1 : IsFiltered.{v, u} C
O : Finset C
H H' : Finset ((X : C) ×' (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y))
X Y : C
mX : X ∈ O
mY : Y ∈ O
f : X ⟶ Y
nmf :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
        (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
          (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∉
    H'
S' : C
T' : {X : C} → X ∈ O → (X ⟶ S')
w' :
  ∀ {X Y : C} (mX : X ∈ O) (mY : Y ∈ O) {f : X ⟶ Y},
    PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
          (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
            (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
              (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∈
        H' →
      f ≫ T' mY = T' mX
X' Y' : C
mX' : X' ∈ O
mY' : Y' ∈ O
f' : X' ⟶ Y'
mf' :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
        (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
          (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))) ∈
    insert
      (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
        (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
          (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
            (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
      H'
⊢ Eq (α := X' ⟶ coeq (f ≫ T' mY) (T' mX)) ((f' ≫ T' mY') ≫ coeqHom (f ≫ T' mY) (T' mX))
    ((fun {X_1 : C} (mZ : X_1 ∈ O) ↦ (T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX) : X_1 ⟶ coeq (f ≫ T' mY) (T' mX))) mX')
have pos : ∀ (h : X = X' ∧ Y = Y'),
  Eq (α := X' ⟶ coeq (f ≫ T' mY) (T' mX)) ((f' ≫ T' mY') ≫ coeqHom (f ≫ T' mY) (T' mX))
    ((fun {X_1 : C} (mZ : X_1 ∈ O) ↦ (T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX) : X_1 ⟶ coeq (f ≫ T' mY) (T' mX))) mX')
Tactic: by_cases h : X = X' ∧ Y = Y'
-- Lean 4 proof step from Mathlib.CategoryTheory.Filtered.Basic (goal)
Goal:
C : Type u
inst : Category.{v, u} C
inst_1 : IsFiltered.{v, u} C
O : Finset C
H H' : Finset ((X : C) ×' (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y))
X Y : C
mX : X ∈ O
mY : Y ∈ O
f : X ⟶ Y
nmf :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
        (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
          (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∉
    H'
S' : C
T' : {X : C} → X ∈ O → (X ⟶ S')
w' :
  ∀ {X Y : C} (mX : X ∈ O) (mY : Y ∈ O) {f : X ⟶ Y},
    PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
          (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
            (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
              (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∈
        H' →
      f ≫ T' mY = T' mX
X' Y' : C
mX' : X' ∈ O
mY' : Y' ∈ O
f' : X' ⟶ Y'
mf' :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
        (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
          (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))) ∈
    insert
      (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
        (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
          (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
            (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
      H'
pos :
  ∀ (h : X = X' ∧ Y = Y'),
    Eq (α := X' ⟶ coeq (f ≫ T' mY) (T' mX)) ((f' ≫ T' mY') ≫ coeqHom (f ≫ T' mY) (T' mX))
      ((fun {X_1 : C} (mZ : X_1 ∈ O) ↦ (T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX) : X_1 ⟶ coeq (f ≫ T' mY) (T' mX))) mX')
⊢ Eq (α := X' ⟶ coeq (f ≫ T' mY) (T' mX)) ((f' ≫ T' mY') ≫ coeqHom (f ≫ T' mY) (T' mX))
    ((fun {X_1 : C} (mZ : X_1 ∈ O) ↦ (T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX) : X_1 ⟶ coeq (f ≫ T' mY) (T' mX))) mX')
have neg : ∀ (h : ¬(X = X' ∧ Y = Y')),
  Eq (α := X' ⟶ coeq (f ≫ T' mY) (T' mX)) ((f' ≫ T' mY') ≫ coeqHom (f ≫ T' mY) (T' mX))
    ((fun {X_1 : C} (mZ : X_1 ∈ O) ↦ (T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX) : X_1 ⟶ coeq (f ≫ T' mY) (T' mX))) mX')
Tactic: by_cases h : X = X' ∧ Y = Y'
-- Lean 4 proof step from Mathlib.CategoryTheory.Filtered.Basic (goal)
Goal:
C : Type u
inst : Category.{v, u} C
inst_1 : IsFiltered.{v, u} C
O : Finset C
H H' : Finset ((X : C) ×' (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y))
X Y : C
mX : X ∈ O
mY : Y ∈ O
f : X ⟶ Y
nmf :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
        (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
          (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∉
    H'
S' : C
T' : {X : C} → X ∈ O → (X ⟶ S')
w' :
  ∀ {X Y : C} (mX : X ∈ O) (mY : Y ∈ O) {f : X ⟶ Y},
    PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
          (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
            (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
              (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∈
        H' →
      f ≫ T' mY = T' mX
X' Y' : C
mX' : X' ∈ O
mY' : Y' ∈ O
f' : X' ⟶ Y'
mf' :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
        (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
          (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))) ∈
    insert
      (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
        (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
          (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
            (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
      H'
h : X = X' ∧ Y = Y'
⊢ Eq (α := X' ⟶ coeq (f ≫ T' mY) (T' mX)) ((f' ≫ T' mY') ≫ coeqHom (f ≫ T' mY) (T' mX))
    ((fun {X_1 : C} (mZ : X_1 ∈ O) ↦ (T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX) : X_1 ⟶ coeq (f ≫ T' mY) (T' mX))) mX')
have pos : ∀ (mX' : X ∈ O) (mY' : Y ∈ O) {f' : X ⟶ Y}
  (mf' :
    PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
        (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
          (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX'
            (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY' f'))) ∈
      insert
        (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
          (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
            (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
              (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
        H'),
  Eq (α := X ⟶ coeq (f ≫ T' mY) (T' mX)) ((f' ≫ T' mY') ≫ coeqHom (f ≫ T' mY) (T' mX))
    ((fun {X_1 : C} (mZ : X_1 ∈ O) ↦ (T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX) : X_1 ⟶ coeq (f ≫ T' mY) (T' mX))) mX')
Tactic: rcases h with ⟨rfl, rfl⟩
Cleared hypotheses: X', Y', mX', mY', f', mf', h
-- Lean 4 proof step from Mathlib.CategoryTheory.Filtered.Basic (goal)
Goal:
C : Type u
inst : Category.{v, u} C
inst_1 : IsFiltered.{v, u} C
O : Finset C
H H' : Finset ((X : C) ×' (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y))
X Y : C
mX : X ∈ O
mY : Y ∈ O
f : X ⟶ Y
nmf :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
        (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
          (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∉
    H'
S' : C
T' : {X : C} → X ∈ O → (X ⟶ S')
w' :
  ∀ {X Y : C} (mX : X ∈ O) (mY : Y ∈ O) {f : X ⟶ Y},
    PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
          (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
            (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
              (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∈
        H' →
      f ≫ T' mY = T' mX
X' Y' : C
mX' : X' ∈ O
mY' : Y' ∈ O
f' : X' ⟶ Y'
mf' :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
        (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
          (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))) ∈
    insert
      (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
        (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
          (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
            (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
      H'
h : ¬(X = X' ∧ Y = Y')
⊢ Eq (α := X' ⟶ coeq (f ≫ T' mY) (T' mX)) ((f' ≫ T' mY') ≫ coeqHom (f ≫ T' mY) (T' mX))
    ((fun {X_1 : C} (mZ : X_1 ∈ O) ↦ (T' mZ ≫ coeqHom (f ≫ T' mY) (T' mX) : X_1 ⟶ coeq (f ≫ T' mY) (T' mX))) mX')
have rw : PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
    (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
      (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
        (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))) ∈
  H'
Tactic: rw [@w' _ _ mX' mY' f' _]
-- Lean 4 proof step from Mathlib.CategoryTheory.Filtered.Basic (goal)
Goal:
C : Type u
inst : Category.{v, u} C
inst_1 : IsFiltered.{v, u} C
O : Finset C
H H' : Finset ((X : C) ×' (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y))
X Y : C
mX : X ∈ O
mY : Y ∈ O
f : X ⟶ Y
nmf :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
        (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
          (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∉
    H'
S' : C
T' : {X : C} → X ∈ O → (X ⟶ S')
w' :
  ∀ {X Y : C} (mX : X ∈ O) (mY : Y ∈ O) {f : X ⟶ Y},
    PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
          (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
            (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
              (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∈
        H' →
      f ≫ T' mY = T' mX
X' Y' : C
mX' : X' ∈ O
mY' : Y' ∈ O
f' : X' ⟶ Y'
mf' :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
        (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
          (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))) ∈
    insert
      (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
        (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
          (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
            (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
      H'
h : ¬(X = X' ∧ Y = Y')
⊢ PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
        (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
          (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))) ∈
    H'
have apply : Ne (α := (X : C) ×' (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y))
  (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
    (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
      (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
        (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))))
  (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
    (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
      (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
Tactic: apply Finset.mem_of_mem_insert_of_ne mf'
-- Lean 4 proof step from Mathlib.CategoryTheory.Filtered.Basic (goal)
Goal:
C : Type u
inst : Category.{v, u} C
inst_1 : IsFiltered.{v, u} C
O : Finset C
H H' : Finset ((X : C) ×' (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y))
X Y : C
mX : X ∈ O
mY : Y ∈ O
f : X ⟶ Y
nmf :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
        (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
          (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∉
    H'
S' : C
T' : {X : C} → X ∈ O → (X ⟶ S')
w' :
  ∀ {X Y : C} (mX : X ∈ O) (mY : Y ∈ O) {f : X ⟶ Y},
    PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
          (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
            (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
              (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∈
        H' →
      f ≫ T' mY = T' mX
X' Y' : C
mX' : X' ∈ O
mY' : Y' ∈ O
f' : X' ⟶ Y'
mf' :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
        (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
          (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))) ∈
    insert
      (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
        (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
          (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
            (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
      H'
h : ¬(X = X' ∧ Y = Y')
⊢ Ne (α := (X : C) ×' (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y))
    (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
        (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
          (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))))
    (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
        (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
have contrapose : ∀
  (h :
    Eq (α := (X : C) ×' (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y))
      (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
        (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
          (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
            (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))))
      (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
        (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
          (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
            (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))),
  X = X' ∧ Y = Y'
Tactic: contrapose h
Cleared hypotheses: h
-- Lean 4 proof step from Mathlib.CategoryTheory.Filtered.Basic (goal)
Goal:
C : Type u
inst : Category.{v, u} C
inst_1 : IsFiltered.{v, u} C
O : Finset C
H H' : Finset ((X : C) ×' (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y))
X Y : C
mX : X ∈ O
mY : Y ∈ O
f : X ⟶ Y
nmf :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
        (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
          (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∉
    H'
S' : C
T' : {X : C} → X ∈ O → (X ⟶ S')
w' :
  ∀ {X Y : C} (mX : X ∈ O) (mY : Y ∈ O) {f : X ⟶ Y},
    PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
          (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
            (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
              (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∈
        H' →
      f ≫ T' mY = T' mX
X' Y' : C
mX' : X' ∈ O
mY' : Y' ∈ O
f' : X' ⟶ Y'
mf' :
  PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
        (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
          (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))) ∈
    insert
      (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
        (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
          (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
            (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
      H'
h :
  Eq (α := (X : C) ×' (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y))
    (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X'
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X' ∈ O) ×' (_ : Y ∈ O) ×' (X' ⟶ Y)) Y'
        (PSigma.mk (β := fun (x : X' ∈ O) ↦ (_ : Y' ∈ O) ×' (X' ⟶ Y')) mX'
          (PSigma.mk (β := fun (x : Y' ∈ O) ↦ X' ⟶ Y') mY' f'))))
    (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
      (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
        (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
⊢ X = X' ∧ Y = Y'
have obtain : ∀
  (mf' :
    PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
        (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
          (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
            (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))) ∈
      insert
        (PSigma.mk (β := fun (X : C) ↦ (Y : C) ×' (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) X
          (PSigma.mk (β := fun (Y : C) ↦ (_ : X ∈ O) ×' (_ : Y ∈ O) ×' (X ⟶ Y)) Y
            (PSigma.mk (β := fun (x : X ∈ O) ↦ (_ : Y ∈ O) ×' (X ⟶ Y)) mX
              (PSigma.mk (β := fun (x : Y ∈ O) ↦ X ⟶ Y) mY f))))
        H'),
  X = X ∧ Y = Y
Tactic: obtain ⟨rfl, h⟩ := h
Cleared hypotheses: X', Y', mX', mY', f', mf', h