awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.Algebra.Module.SnakeLemma (hypothesis)
Goal:
R : Type u_1
inst : CommRing R
M₁ : Type u_2
M₂ : Type u_3
M₃ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
N₃ : Type u_7
inst_1 : AddCommGroup M₁
inst_2 : Module R M₁
inst_3 : AddCommGroup M₂
inst_4 : Module R M₂
inst_5 : AddCommGroup M₃
inst_6 : Module R M₃
inst_7 : AddCommGroup N₁
inst_8 : Module R N₁
inst_9 : AddCommGroup N₂
inst_10 : Module R N₂
inst_11 : AddCommGroup N₃
inst_12 : Module R N₃
i₁ : M₁ →ₗ[R] N₁
i₂ : M₂ →ₗ[R] N₂
i₃ : M₃ →ₗ[R] N₃
f₁ : M₁ →ₗ[R] M₂
f₂ : M₂ →ₗ[R] M₃
hf : Exact.{u_2, u_3, u_4} (M := M₁) (N := M₂) (P := M₃) (⇑f₁ : (a : M₁) → M₂) (⇑f₂ : (a : M₂) → M₃)
g₁ : N₁ →ₗ[R] N₂
g₂ : N₂ →ₗ[R] N₃
hg : Exact.{u_5, u_6, u_7} (M := N₁) (N := N₂) (P := N₃) (⇑g₁ : (a : N₁) → N₂) (⇑g₂ : (a : N₂) → N₃)
h₁ : g₁ ∘ₗ i₁ = i₂ ∘ₗ f₁
h₂ : g₂ ∘ₗ i₂ = i₃ ∘ₗ f₂
σ : M₃ → M₂
hσ : (⇑f₂ : (a : M₂) → M₃) ∘ σ = id
ρ : N₂ → N₁
hρ : ρ ∘ (⇑g₁ : (a : N₁) → N₂) = id
K₂ : Type u_8
K₃ : Type u_9
C₁ : Type u_10
inst_13 : AddCommGroup K₂
inst_14 : Module R K₂
inst_15 : AddCommGroup K₃
inst_16 : Module R K₃
inst_17 : AddCommGroup C₁
inst_18 : Module R C₁
ι₂ : K₂ →ₗ[R] M₂
hι₂ : Exact.{u_8, u_3, u_6} (M := K₂) (N := M₂) (P := N₂) (⇑ι₂ : (a : K₂) → M₂) (⇑i₂ : (a : M₂) → N₂)
ι₃ : K₃ →ₗ[R] M₃
hι₃ : Exact.{u_9, u_4, u_7} (M := K₃) (N := M₃) (P := N₃) (⇑ι₃ : (a : K₃) → M₃) (⇑i₃ : (a : M₃) → N₃)
π₁ : N₁ →ₗ[R] C₁
hπ₁ : Exact.{u_2, u_5, u_10} (M := M₁) (N := N₁) (P := C₁) (⇑i₁ : (a : M₁) → N₁) (⇑π₁ : (a : N₁) → C₁)
F : K₂ →ₗ[R] K₃
hF : f₂ ∘ₗ ι₂ = ι₃ ∘ₗ F
h : Injective.{u_9 + 1, u_4 + 1} (α := K₃) (β := M₃) (⇑ι₃ : (a : K₃) → M₃)
H₁ : ∀ (x : M₃), (f₂ : (a : M₂) → M₃) (σ x) = x
⊢ Exact.{u_8, u_9, u_10} (M := K₂) (N := K₃) (P := C₁) (⇑F : (a : K₂) → K₃)
    (⇑(δ i₁ i₂ i₃ f₁ f₂ hf g₁ g₂ hg h₁ h₂ σ hσ ρ hρ ι₃ hι₃ π₁ hπ₁) : (a : K₃) → C₁)
have H₂ : ∀ (x : K₃),
  Eq.{u_6 + 1} (α := N₂) ((g₁ : (a : N₁) → N₂) (ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))) : N₂)
    ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)) : N₂)
Tactic: haveI H₂ := δ_aux i₂ i₃ f₂ g₁ g₂ hg h₂ σ hσ ρ hρ ι₃ hι₃
-- Lean 4 proof step from Mathlib.Algebra.Module.SnakeLemma (goal)
Goal:
R : Type u_1
inst : CommRing R
M₁ : Type u_2
M₂ : Type u_3
M₃ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
N₃ : Type u_7
inst_1 : AddCommGroup M₁
inst_2 : Module R M₁
inst_3 : AddCommGroup M₂
inst_4 : Module R M₂
inst_5 : AddCommGroup M₃
inst_6 : Module R M₃
inst_7 : AddCommGroup N₁
inst_8 : Module R N₁
inst_9 : AddCommGroup N₂
inst_10 : Module R N₂
inst_11 : AddCommGroup N₃
inst_12 : Module R N₃
i₁ : M₁ →ₗ[R] N₁
i₂ : M₂ →ₗ[R] N₂
i₃ : M₃ →ₗ[R] N₃
f₁ : M₁ →ₗ[R] M₂
f₂ : M₂ →ₗ[R] M₃
hf : Exact.{u_2, u_3, u_4} (M := M₁) (N := M₂) (P := M₃) (⇑f₁ : (a : M₁) → M₂) (⇑f₂ : (a : M₂) → M₃)
g₁ : N₁ →ₗ[R] N₂
g₂ : N₂ →ₗ[R] N₃
hg : Exact.{u_5, u_6, u_7} (M := N₁) (N := N₂) (P := N₃) (⇑g₁ : (a : N₁) → N₂) (⇑g₂ : (a : N₂) → N₃)
h₁ : g₁ ∘ₗ i₁ = i₂ ∘ₗ f₁
h₂ : g₂ ∘ₗ i₂ = i₃ ∘ₗ f₂
σ : M₃ → M₂
hσ : (⇑f₂ : (a : M₂) → M₃) ∘ σ = id
ρ : N₂ → N₁
hρ : ρ ∘ (⇑g₁ : (a : N₁) → N₂) = id
K₂ : Type u_8
K₃ : Type u_9
C₁ : Type u_10
inst_13 : AddCommGroup K₂
inst_14 : Module R K₂
inst_15 : AddCommGroup K₃
inst_16 : Module R K₃
inst_17 : AddCommGroup C₁
inst_18 : Module R C₁
ι₂ : K₂ →ₗ[R] M₂
hι₂ : Exact.{u_8, u_3, u_6} (M := K₂) (N := M₂) (P := N₂) (⇑ι₂ : (a : K₂) → M₂) (⇑i₂ : (a : M₂) → N₂)
ι₃ : K₃ →ₗ[R] M₃
hι₃ : Exact.{u_9, u_4, u_7} (M := K₃) (N := M₃) (P := N₃) (⇑ι₃ : (a : K₃) → M₃) (⇑i₃ : (a : M₃) → N₃)
π₁ : N₁ →ₗ[R] C₁
hπ₁ : Exact.{u_2, u_5, u_10} (M := M₁) (N := N₁) (P := C₁) (⇑i₁ : (a : M₁) → N₁) (⇑π₁ : (a : N₁) → C₁)
F : K₂ →ₗ[R] K₃
hF : f₂ ∘ₗ ι₂ = ι₃ ∘ₗ F
h : Injective.{u_9 + 1, u_4 + 1} (α := K₃) (β := M₃) (⇑ι₃ : (a : K₃) → M₃)
H₁ : ∀ (x : M₃), (f₂ : (a : M₂) → M₃) (σ x) = x
H₂ :
  ∀ (x : K₃),
    Eq.{u_6 + 1} (α := N₂) ((g₁ : (a : N₁) → N₂) (ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))) : N₂)
      ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)) : N₂)
x : K₃
⊢ Eq.{u_10 + 1} (α := C₁) ((δ i₁ i₂ i₃ f₁ f₂ hf g₁ g₂ hg h₁ h₂ σ hσ ρ hρ ι₃ hι₃ π₁ hπ₁ : (a : K₃) → C₁) x : C₁)
      (0 : C₁) ↔
    Membership.mem (γ := Set K₃) (Set.range.{u_9, u_8 + 1} (ι := K₂) (⇑F : (a : K₂) → K₃)) x
have mp : Eq.{u_10 + 1} (α := C₁) ((δ i₁ i₂ i₃ f₁ f₂ hf g₁ g₂ hg h₁ h₂ σ hσ ρ hρ ι₃ hι₃ π₁ hπ₁ : (a : K₃) → C₁) x : C₁) (0 : C₁) →
  Membership.mem (γ := Set K₃) (Set.range.{u_9, u_8 + 1} (ι := K₂) (⇑F : (a : K₂) → K₃)) x
Tactic: constructor
-- Lean 4 proof step from Mathlib.Algebra.Module.SnakeLemma (goal)
Goal:
R : Type u_1
inst : CommRing R
M₁ : Type u_2
M₂ : Type u_3
M₃ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
N₃ : Type u_7
inst_1 : AddCommGroup M₁
inst_2 : Module R M₁
inst_3 : AddCommGroup M₂
inst_4 : Module R M₂
inst_5 : AddCommGroup M₃
inst_6 : Module R M₃
inst_7 : AddCommGroup N₁
inst_8 : Module R N₁
inst_9 : AddCommGroup N₂
inst_10 : Module R N₂
inst_11 : AddCommGroup N₃
inst_12 : Module R N₃
i₁ : M₁ →ₗ[R] N₁
i₂ : M₂ →ₗ[R] N₂
i₃ : M₃ →ₗ[R] N₃
f₁ : M₁ →ₗ[R] M₂
f₂ : M₂ →ₗ[R] M₃
hf : Exact.{u_2, u_3, u_4} (M := M₁) (N := M₂) (P := M₃) (⇑f₁ : (a : M₁) → M₂) (⇑f₂ : (a : M₂) → M₃)
g₁ : N₁ →ₗ[R] N₂
g₂ : N₂ →ₗ[R] N₃
hg : Exact.{u_5, u_6, u_7} (M := N₁) (N := N₂) (P := N₃) (⇑g₁ : (a : N₁) → N₂) (⇑g₂ : (a : N₂) → N₃)
h₁ : g₁ ∘ₗ i₁ = i₂ ∘ₗ f₁
h₂ : g₂ ∘ₗ i₂ = i₃ ∘ₗ f₂
σ : M₃ → M₂
hσ : (⇑f₂ : (a : M₂) → M₃) ∘ σ = id
ρ : N₂ → N₁
hρ : ρ ∘ (⇑g₁ : (a : N₁) → N₂) = id
K₂ : Type u_8
K₃ : Type u_9
C₁ : Type u_10
inst_13 : AddCommGroup K₂
inst_14 : Module R K₂
inst_15 : AddCommGroup K₃
inst_16 : Module R K₃
inst_17 : AddCommGroup C₁
inst_18 : Module R C₁
ι₂ : K₂ →ₗ[R] M₂
hι₂ : Exact.{u_8, u_3, u_6} (M := K₂) (N := M₂) (P := N₂) (⇑ι₂ : (a : K₂) → M₂) (⇑i₂ : (a : M₂) → N₂)
ι₃ : K₃ →ₗ[R] M₃
hι₃ : Exact.{u_9, u_4, u_7} (M := K₃) (N := M₃) (P := N₃) (⇑ι₃ : (a : K₃) → M₃) (⇑i₃ : (a : M₃) → N₃)
π₁ : N₁ →ₗ[R] C₁
hπ₁ : Exact.{u_2, u_5, u_10} (M := M₁) (N := N₁) (P := C₁) (⇑i₁ : (a : M₁) → N₁) (⇑π₁ : (a : N₁) → C₁)
F : K₂ →ₗ[R] K₃
hF : f₂ ∘ₗ ι₂ = ι₃ ∘ₗ F
h : Injective.{u_9 + 1, u_4 + 1} (α := K₃) (β := M₃) (⇑ι₃ : (a : K₃) → M₃)
H₁ : ∀ (x : M₃), (f₂ : (a : M₂) → M₃) (σ x) = x
H₂ :
  ∀ (x : K₃),
    Eq.{u_6 + 1} (α := N₂) ((g₁ : (a : N₁) → N₂) (ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))) : N₂)
      ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)) : N₂)
x : K₃
mp :
  Eq.{u_10 + 1} (α := C₁) ((δ i₁ i₂ i₃ f₁ f₂ hf g₁ g₂ hg h₁ h₂ σ hσ ρ hρ ι₃ hι₃ π₁ hπ₁ : (a : K₃) → C₁) x : C₁)
      (0 : C₁) →
    Membership.mem (γ := Set K₃) (Set.range.{u_9, u_8 + 1} (ι := K₂) (⇑F : (a : K₂) → K₃)) x
⊢ Eq.{u_10 + 1} (α := C₁) ((δ i₁ i₂ i₃ f₁ f₂ hf g₁ g₂ hg h₁ h₂ σ hσ ρ hρ ι₃ hι₃ π₁ hπ₁ : (a : K₃) → C₁) x : C₁)
      (0 : C₁) ↔
    Membership.mem (γ := Set K₃) (Set.range.{u_9, u_8 + 1} (ι := K₂) (⇑F : (a : K₂) → K₃)) x
have mpr : Membership.mem (γ := Set K₃) (Set.range.{u_9, u_8 + 1} (ι := K₂) (⇑F : (a : K₂) → K₃)) x →
  Eq.{u_10 + 1} (α := C₁) ((δ i₁ i₂ i₃ f₁ f₂ hf g₁ g₂ hg h₁ h₂ σ hσ ρ hρ ι₃ hι₃ π₁ hπ₁ : (a : K₃) → C₁) x : C₁) (0 : C₁)
Tactic: constructor
-- Lean 4 proof step from Mathlib.Algebra.Module.SnakeLemma (goal)
Goal:
R : Type u_1
inst : CommRing R
M₁ : Type u_2
M₂ : Type u_3
M₃ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
N₃ : Type u_7
inst_1 : AddCommGroup M₁
inst_2 : Module R M₁
inst_3 : AddCommGroup M₂
inst_4 : Module R M₂
inst_5 : AddCommGroup M₃
inst_6 : Module R M₃
inst_7 : AddCommGroup N₁
inst_8 : Module R N₁
inst_9 : AddCommGroup N₂
inst_10 : Module R N₂
inst_11 : AddCommGroup N₃
inst_12 : Module R N₃
i₁ : M₁ →ₗ[R] N₁
i₂ : M₂ →ₗ[R] N₂
i₃ : M₃ →ₗ[R] N₃
f₁ : M₁ →ₗ[R] M₂
f₂ : M₂ →ₗ[R] M₃
hf : Exact.{u_2, u_3, u_4} (M := M₁) (N := M₂) (P := M₃) (⇑f₁ : (a : M₁) → M₂) (⇑f₂ : (a : M₂) → M₃)
g₁ : N₁ →ₗ[R] N₂
g₂ : N₂ →ₗ[R] N₃
hg : Exact.{u_5, u_6, u_7} (M := N₁) (N := N₂) (P := N₃) (⇑g₁ : (a : N₁) → N₂) (⇑g₂ : (a : N₂) → N₃)
h₁ : g₁ ∘ₗ i₁ = i₂ ∘ₗ f₁
h₂ : g₂ ∘ₗ i₂ = i₃ ∘ₗ f₂
σ : M₃ → M₂
hσ : (⇑f₂ : (a : M₂) → M₃) ∘ σ = id
ρ : N₂ → N₁
hρ : ρ ∘ (⇑g₁ : (a : N₁) → N₂) = id
K₂ : Type u_8
K₃ : Type u_9
C₁ : Type u_10
inst_13 : AddCommGroup K₂
inst_14 : Module R K₂
inst_15 : AddCommGroup K₃
inst_16 : Module R K₃
inst_17 : AddCommGroup C₁
inst_18 : Module R C₁
ι₂ : K₂ →ₗ[R] M₂
hι₂ : Exact.{u_8, u_3, u_6} (M := K₂) (N := M₂) (P := N₂) (⇑ι₂ : (a : K₂) → M₂) (⇑i₂ : (a : M₂) → N₂)
ι₃ : K₃ →ₗ[R] M₃
hι₃ : Exact.{u_9, u_4, u_7} (M := K₃) (N := M₃) (P := N₃) (⇑ι₃ : (a : K₃) → M₃) (⇑i₃ : (a : M₃) → N₃)
π₁ : N₁ →ₗ[R] C₁
hπ₁ : Exact.{u_2, u_5, u_10} (M := M₁) (N := N₁) (P := C₁) (⇑i₁ : (a : M₁) → N₁) (⇑π₁ : (a : N₁) → C₁)
F : K₂ →ₗ[R] K₃
hF : f₂ ∘ₗ ι₂ = ι₃ ∘ₗ F
h : Injective.{u_9 + 1, u_4 + 1} (α := K₃) (β := M₃) (⇑ι₃ : (a : K₃) → M₃)
H₁ : ∀ (x : M₃), (f₂ : (a : M₂) → M₃) (σ x) = x
H₂ :
  ∀ (x : K₃),
    Eq.{u_6 + 1} (α := N₂) ((g₁ : (a : N₁) → N₂) (ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))) : N₂)
      ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)) : N₂)
x : K₃
H :
  Eq.{u_10 + 1} (α := C₁) ((δ i₁ i₂ i₃ f₁ f₂ hf g₁ g₂ hg h₁ h₂ σ hσ ρ hρ ι₃ hι₃ π₁ hπ₁ : (a : K₃) → C₁) x : C₁) (0 : C₁)
⊢ Membership.mem (γ := Set K₃) (Set.range.{u_9, u_8 + 1} (ι := K₂) (⇑F : (a : K₂) → K₃)) x
have mp : ∀ (y : M₁) (hy : (i₁ : (a : M₁) → N₁) y = ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))),
  Membership.mem (γ := Set K₃) (Set.range.{u_9, u_8 + 1} (ι := K₂) (⇑F : (a : K₂) → K₃)) x
Tactic: obtain ⟨y, hy⟩ := (hπ₁ _).mp H
-- Lean 4 proof step from Mathlib.Algebra.Module.SnakeLemma (goal)
Goal:
R : Type u_1
inst : CommRing R
M₁ : Type u_2
M₂ : Type u_3
M₃ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
N₃ : Type u_7
inst_1 : AddCommGroup M₁
inst_2 : Module R M₁
inst_3 : AddCommGroup M₂
inst_4 : Module R M₂
inst_5 : AddCommGroup M₃
inst_6 : Module R M₃
inst_7 : AddCommGroup N₁
inst_8 : Module R N₁
inst_9 : AddCommGroup N₂
inst_10 : Module R N₂
inst_11 : AddCommGroup N₃
inst_12 : Module R N₃
i₁ : M₁ →ₗ[R] N₁
i₂ : M₂ →ₗ[R] N₂
i₃ : M₃ →ₗ[R] N₃
f₁ : M₁ →ₗ[R] M₂
f₂ : M₂ →ₗ[R] M₃
hf : Exact.{u_2, u_3, u_4} (M := M₁) (N := M₂) (P := M₃) (⇑f₁ : (a : M₁) → M₂) (⇑f₂ : (a : M₂) → M₃)
g₁ : N₁ →ₗ[R] N₂
g₂ : N₂ →ₗ[R] N₃
hg : Exact.{u_5, u_6, u_7} (M := N₁) (N := N₂) (P := N₃) (⇑g₁ : (a : N₁) → N₂) (⇑g₂ : (a : N₂) → N₃)
h₁ : g₁ ∘ₗ i₁ = i₂ ∘ₗ f₁
h₂ : g₂ ∘ₗ i₂ = i₃ ∘ₗ f₂
σ : M₃ → M₂
hσ : (⇑f₂ : (a : M₂) → M₃) ∘ σ = id
ρ : N₂ → N₁
hρ : ρ ∘ (⇑g₁ : (a : N₁) → N₂) = id
K₂ : Type u_8
K₃ : Type u_9
C₁ : Type u_10
inst_13 : AddCommGroup K₂
inst_14 : Module R K₂
inst_15 : AddCommGroup K₃
inst_16 : Module R K₃
inst_17 : AddCommGroup C₁
inst_18 : Module R C₁
ι₂ : K₂ →ₗ[R] M₂
hι₂ : Exact.{u_8, u_3, u_6} (M := K₂) (N := M₂) (P := N₂) (⇑ι₂ : (a : K₂) → M₂) (⇑i₂ : (a : M₂) → N₂)
ι₃ : K₃ →ₗ[R] M₃
hι₃ : Exact.{u_9, u_4, u_7} (M := K₃) (N := M₃) (P := N₃) (⇑ι₃ : (a : K₃) → M₃) (⇑i₃ : (a : M₃) → N₃)
π₁ : N₁ →ₗ[R] C₁
hπ₁ : Exact.{u_2, u_5, u_10} (M := M₁) (N := N₁) (P := C₁) (⇑i₁ : (a : M₁) → N₁) (⇑π₁ : (a : N₁) → C₁)
F : K₂ →ₗ[R] K₃
hF : f₂ ∘ₗ ι₂ = ι₃ ∘ₗ F
h : Injective.{u_9 + 1, u_4 + 1} (α := K₃) (β := M₃) (⇑ι₃ : (a : K₃) → M₃)
H₁ : ∀ (x : M₃), (f₂ : (a : M₂) → M₃) (σ x) = x
H₂ :
  ∀ (x : K₃),
    Eq.{u_6 + 1} (α := N₂) ((g₁ : (a : N₁) → N₂) (ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))) : N₂)
      ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)) : N₂)
x : K₃
H :
  Eq.{u_10 + 1} (α := C₁) ((δ i₁ i₂ i₃ f₁ f₂ hf g₁ g₂ hg h₁ h₂ σ hσ ρ hρ ι₃ hι₃ π₁ hπ₁ : (a : K₃) → C₁) x : C₁) (0 : C₁)
y : M₁
hy : (i₁ : (a : M₁) → N₁) y = ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))
⊢ Membership.mem (γ := Set M₂) (Set.range.{u_3, u_8 + 1} (ι := K₂) (⇑ι₂ : (a : K₂) → M₂))
    (HSub.hSub (β := M₂) (σ ((ι₃ : (a : K₃) → M₃) x)) ((f₁ : (a : M₁) → M₂) y : M₂))
have rw : Eq.{u_6 + 1} (α := N₂) ((g₁ : (a : N₁) → N₂) ((i₁ : (a : M₁) → N₁) y : N₁) : N₂)
  ((i₂ : (a : M₂) → N₂) ((f₁ : (a : M₁) → M₂) y : M₂) : N₂)
Tactic: rw [← hι₂, map_sub, ← H₂, ← hy, sub_eq_zero]
-- Lean 4 proof step from Mathlib.Algebra.Module.SnakeLemma (goal)
Goal:
R : Type u_1
inst : CommRing R
M₁ : Type u_2
M₂ : Type u_3
M₃ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
N₃ : Type u_7
inst_1 : AddCommGroup M₁
inst_2 : Module R M₁
inst_3 : AddCommGroup M₂
inst_4 : Module R M₂
inst_5 : AddCommGroup M₃
inst_6 : Module R M₃
inst_7 : AddCommGroup N₁
inst_8 : Module R N₁
inst_9 : AddCommGroup N₂
inst_10 : Module R N₂
inst_11 : AddCommGroup N₃
inst_12 : Module R N₃
i₁ : M₁ →ₗ[R] N₁
i₂ : M₂ →ₗ[R] N₂
i₃ : M₃ →ₗ[R] N₃
f₁ : M₁ →ₗ[R] M₂
f₂ : M₂ →ₗ[R] M₃
hf : Exact.{u_2, u_3, u_4} (M := M₁) (N := M₂) (P := M₃) (⇑f₁ : (a : M₁) → M₂) (⇑f₂ : (a : M₂) → M₃)
g₁ : N₁ →ₗ[R] N₂
g₂ : N₂ →ₗ[R] N₃
hg : Exact.{u_5, u_6, u_7} (M := N₁) (N := N₂) (P := N₃) (⇑g₁ : (a : N₁) → N₂) (⇑g₂ : (a : N₂) → N₃)
h₁ : g₁ ∘ₗ i₁ = i₂ ∘ₗ f₁
h₂ : g₂ ∘ₗ i₂ = i₃ ∘ₗ f₂
σ : M₃ → M₂
hσ : (⇑f₂ : (a : M₂) → M₃) ∘ σ = id
ρ : N₂ → N₁
hρ : ρ ∘ (⇑g₁ : (a : N₁) → N₂) = id
K₂ : Type u_8
K₃ : Type u_9
C₁ : Type u_10
inst_13 : AddCommGroup K₂
inst_14 : Module R K₂
inst_15 : AddCommGroup K₃
inst_16 : Module R K₃
inst_17 : AddCommGroup C₁
inst_18 : Module R C₁
ι₂ : K₂ →ₗ[R] M₂
hι₂ : Exact.{u_8, u_3, u_6} (M := K₂) (N := M₂) (P := N₂) (⇑ι₂ : (a : K₂) → M₂) (⇑i₂ : (a : M₂) → N₂)
ι₃ : K₃ →ₗ[R] M₃
hι₃ : Exact.{u_9, u_4, u_7} (M := K₃) (N := M₃) (P := N₃) (⇑ι₃ : (a : K₃) → M₃) (⇑i₃ : (a : M₃) → N₃)
π₁ : N₁ →ₗ[R] C₁
hπ₁ : Exact.{u_2, u_5, u_10} (M := M₁) (N := N₁) (P := C₁) (⇑i₁ : (a : M₁) → N₁) (⇑π₁ : (a : N₁) → C₁)
F : K₂ →ₗ[R] K₃
hF : f₂ ∘ₗ ι₂ = ι₃ ∘ₗ F
h : Injective.{u_9 + 1, u_4 + 1} (α := K₃) (β := M₃) (⇑ι₃ : (a : K₃) → M₃)
H₁ : ∀ (x : M₃), (f₂ : (a : M₂) → M₃) (σ x) = x
H₂ :
  ∀ (x : K₃),
    Eq.{u_6 + 1} (α := N₂) ((g₁ : (a : N₁) → N₂) (ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))) : N₂)
      ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)) : N₂)
x : K₃
H :
  Eq.{u_10 + 1} (α := C₁) ((δ i₁ i₂ i₃ f₁ f₂ hf g₁ g₂ hg h₁ h₂ σ hσ ρ hρ ι₃ hι₃ π₁ hπ₁ : (a : K₃) → C₁) x : C₁) (0 : C₁)
y : M₁
hy : (i₁ : (a : M₁) → N₁) y = ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))
⊢ Membership.mem (γ := Set K₃) (Set.range.{u_9, u_8 + 1} (ι := K₂) (⇑F : (a : K₂) → K₃)) x
have mp : ∀ (k : K₂)
  (hk : (ι₂ : (a : K₂) → M₂) k = HSub.hSub (β := M₂) (σ ((ι₃ : (a : K₃) → M₃) x)) ((f₁ : (a : M₁) → M₂) y : M₂)),
  Membership.mem (γ := Set K₃) (Set.range.{u_9, u_8 + 1} (ι := K₂) (⇑F : (a : K₂) → K₃)) x
Tactic: obtain ⟨k, hk⟩ : σ (ι₃ x) - f₁ y ∈ Set.range ι₂ := by
      rw [← hι₂, map_sub, ← H₂, ← hy, sub_eq_zero]; exact congr($h₁ y)
-- Lean 4 proof step from Mathlib.Algebra.Module.SnakeLemma (goal)
Goal:
R : Type u_1
inst : CommRing R
M₁ : Type u_2
M₂ : Type u_3
M₃ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
N₃ : Type u_7
inst_1 : AddCommGroup M₁
inst_2 : Module R M₁
inst_3 : AddCommGroup M₂
inst_4 : Module R M₂
inst_5 : AddCommGroup M₃
inst_6 : Module R M₃
inst_7 : AddCommGroup N₁
inst_8 : Module R N₁
inst_9 : AddCommGroup N₂
inst_10 : Module R N₂
inst_11 : AddCommGroup N₃
inst_12 : Module R N₃
i₁ : M₁ →ₗ[R] N₁
i₂ : M₂ →ₗ[R] N₂
i₃ : M₃ →ₗ[R] N₃
f₁ : M₁ →ₗ[R] M₂
f₂ : M₂ →ₗ[R] M₃
hf : Exact.{u_2, u_3, u_4} (M := M₁) (N := M₂) (P := M₃) (⇑f₁ : (a : M₁) → M₂) (⇑f₂ : (a : M₂) → M₃)
g₁ : N₁ →ₗ[R] N₂
g₂ : N₂ →ₗ[R] N₃
hg : Exact.{u_5, u_6, u_7} (M := N₁) (N := N₂) (P := N₃) (⇑g₁ : (a : N₁) → N₂) (⇑g₂ : (a : N₂) → N₃)
h₁ : g₁ ∘ₗ i₁ = i₂ ∘ₗ f₁
h₂ : g₂ ∘ₗ i₂ = i₃ ∘ₗ f₂
σ : M₃ → M₂
hσ : (⇑f₂ : (a : M₂) → M₃) ∘ σ = id
ρ : N₂ → N₁
hρ : ρ ∘ (⇑g₁ : (a : N₁) → N₂) = id
K₂ : Type u_8
K₃ : Type u_9
C₁ : Type u_10
inst_13 : AddCommGroup K₂
inst_14 : Module R K₂
inst_15 : AddCommGroup K₃
inst_16 : Module R K₃
inst_17 : AddCommGroup C₁
inst_18 : Module R C₁
ι₂ : K₂ →ₗ[R] M₂
hι₂ : Exact.{u_8, u_3, u_6} (M := K₂) (N := M₂) (P := N₂) (⇑ι₂ : (a : K₂) → M₂) (⇑i₂ : (a : M₂) → N₂)
ι₃ : K₃ →ₗ[R] M₃
hι₃ : Exact.{u_9, u_4, u_7} (M := K₃) (N := M₃) (P := N₃) (⇑ι₃ : (a : K₃) → M₃) (⇑i₃ : (a : M₃) → N₃)
π₁ : N₁ →ₗ[R] C₁
hπ₁ : Exact.{u_2, u_5, u_10} (M := M₁) (N := N₁) (P := C₁) (⇑i₁ : (a : M₁) → N₁) (⇑π₁ : (a : N₁) → C₁)
F : K₂ →ₗ[R] K₃
hF : f₂ ∘ₗ ι₂ = ι₃ ∘ₗ F
h : Injective.{u_9 + 1, u_4 + 1} (α := K₃) (β := M₃) (⇑ι₃ : (a : K₃) → M₃)
H₁ : ∀ (x : M₃), (f₂ : (a : M₂) → M₃) (σ x) = x
H₂ :
  ∀ (x : K₃),
    Eq.{u_6 + 1} (α := N₂) ((g₁ : (a : N₁) → N₂) (ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))) : N₂)
      ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)) : N₂)
x : K₃
H :
  Eq.{u_10 + 1} (α := C₁) ((δ i₁ i₂ i₃ f₁ f₂ hf g₁ g₂ hg h₁ h₂ σ hσ ρ hρ ι₃ hι₃ π₁ hπ₁ : (a : K₃) → C₁) x : C₁) (0 : C₁)
y : M₁
hy : (i₁ : (a : M₁) → N₁) y = ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))
k : K₂
hk : (ι₂ : (a : K₂) → M₂) k = HSub.hSub (β := M₂) (σ ((ι₃ : (a : K₃) → M₃) x)) ((f₁ : (a : M₁) → M₂) y : M₂)
⊢ Membership.mem (γ := Set K₃) (Set.range.{u_9, u_8 + 1} (ι := K₂) (⇑F : (a : K₂) → K₃)) x
have mp : Eq.{u_4 + 1} (α := M₃) ((ι₃ : (a : K₃) → M₃) ((F : (a : K₂) → K₃) k : K₃) : M₃) ((ι₃ : (a : K₃) → M₃) x : M₃)
Tactic: refine ⟨k, h ?_⟩
-- Lean 4 proof step from Mathlib.Algebra.Module.SnakeLemma (goal)
Goal:
R : Type u_1
inst : CommRing R
M₁ : Type u_2
M₂ : Type u_3
M₃ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
N₃ : Type u_7
inst_1 : AddCommGroup M₁
inst_2 : Module R M₁
inst_3 : AddCommGroup M₂
inst_4 : Module R M₂
inst_5 : AddCommGroup M₃
inst_6 : Module R M₃
inst_7 : AddCommGroup N₁
inst_8 : Module R N₁
inst_9 : AddCommGroup N₂
inst_10 : Module R N₂
inst_11 : AddCommGroup N₃
inst_12 : Module R N₃
i₁ : M₁ →ₗ[R] N₁
i₂ : M₂ →ₗ[R] N₂
i₃ : M₃ →ₗ[R] N₃
f₁ : M₁ →ₗ[R] M₂
f₂ : M₂ →ₗ[R] M₃
hf : Exact.{u_2, u_3, u_4} (M := M₁) (N := M₂) (P := M₃) (⇑f₁ : (a : M₁) → M₂) (⇑f₂ : (a : M₂) → M₃)
g₁ : N₁ →ₗ[R] N₂
g₂ : N₂ →ₗ[R] N₃
hg : Exact.{u_5, u_6, u_7} (M := N₁) (N := N₂) (P := N₃) (⇑g₁ : (a : N₁) → N₂) (⇑g₂ : (a : N₂) → N₃)
h₁ : g₁ ∘ₗ i₁ = i₂ ∘ₗ f₁
h₂ : g₂ ∘ₗ i₂ = i₃ ∘ₗ f₂
σ : M₃ → M₂
hσ : (⇑f₂ : (a : M₂) → M₃) ∘ σ = id
ρ : N₂ → N₁
hρ : ρ ∘ (⇑g₁ : (a : N₁) → N₂) = id
K₂ : Type u_8
K₃ : Type u_9
C₁ : Type u_10
inst_13 : AddCommGroup K₂
inst_14 : Module R K₂
inst_15 : AddCommGroup K₃
inst_16 : Module R K₃
inst_17 : AddCommGroup C₁
inst_18 : Module R C₁
ι₂ : K₂ →ₗ[R] M₂
hι₂ : Exact.{u_8, u_3, u_6} (M := K₂) (N := M₂) (P := N₂) (⇑ι₂ : (a : K₂) → M₂) (⇑i₂ : (a : M₂) → N₂)
ι₃ : K₃ →ₗ[R] M₃
hι₃ : Exact.{u_9, u_4, u_7} (M := K₃) (N := M₃) (P := N₃) (⇑ι₃ : (a : K₃) → M₃) (⇑i₃ : (a : M₃) → N₃)
π₁ : N₁ →ₗ[R] C₁
hπ₁ : Exact.{u_2, u_5, u_10} (M := M₁) (N := N₁) (P := C₁) (⇑i₁ : (a : M₁) → N₁) (⇑π₁ : (a : N₁) → C₁)
F : K₂ →ₗ[R] K₃
hF : f₂ ∘ₗ ι₂ = ι₃ ∘ₗ F
h : Injective.{u_9 + 1, u_4 + 1} (α := K₃) (β := M₃) (⇑ι₃ : (a : K₃) → M₃)
H₁ : ∀ (x : M₃), (f₂ : (a : M₂) → M₃) (σ x) = x
H₂ :
  ∀ (x : K₃),
    Eq.{u_6 + 1} (α := N₂) ((g₁ : (a : N₁) → N₂) (ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))) : N₂)
      ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)) : N₂)
x : K₃
H :
  Eq.{u_10 + 1} (α := C₁) ((δ i₁ i₂ i₃ f₁ f₂ hf g₁ g₂ hg h₁ h₂ σ hσ ρ hρ ι₃ hι₃ π₁ hπ₁ : (a : K₃) → C₁) x : C₁) (0 : C₁)
y : M₁
hy : (i₁ : (a : M₁) → N₁) y = ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))
k : K₂
hk : (ι₂ : (a : K₂) → M₂) k = HSub.hSub (β := M₂) (σ ((ι₃ : (a : K₃) → M₃) x)) ((f₁ : (a : M₁) → M₂) y : M₂)
⊢ Eq.{u_4 + 1} (α := M₃) ((ι₃ : (a : K₃) → M₃) ((F : (a : K₂) → K₃) k : K₃) : M₃) ((ι₃ : (a : K₃) → M₃) x : M₃)
have mp : Eq.{u_4 + 1} (α := M₃) ((ι₃ ∘ₗ F : (a : K₂) → M₃) k : M₃) ((ι₃ : (a : K₃) → M₃) x : M₃)
Tactic: rw [← ι₃.comp_apply, ← hF, f₂.comp_apply, hk, map_sub, H₁, hf.apply_apply_eq_zero, sub_zero]
-- Lean 4 proof step from Mathlib.Algebra.Module.SnakeLemma (goal)
Goal:
R : Type u_1
inst : CommRing R
M₁ : Type u_2
M₂ : Type u_3
M₃ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
N₃ : Type u_7
inst_1 : AddCommGroup M₁
inst_2 : Module R M₁
inst_3 : AddCommGroup M₂
inst_4 : Module R M₂
inst_5 : AddCommGroup M₃
inst_6 : Module R M₃
inst_7 : AddCommGroup N₁
inst_8 : Module R N₁
inst_9 : AddCommGroup N₂
inst_10 : Module R N₂
inst_11 : AddCommGroup N₃
inst_12 : Module R N₃
i₁ : M₁ →ₗ[R] N₁
i₂ : M₂ →ₗ[R] N₂
i₃ : M₃ →ₗ[R] N₃
f₁ : M₁ →ₗ[R] M₂
f₂ : M₂ →ₗ[R] M₃
hf : Exact.{u_2, u_3, u_4} (M := M₁) (N := M₂) (P := M₃) (⇑f₁ : (a : M₁) → M₂) (⇑f₂ : (a : M₂) → M₃)
g₁ : N₁ →ₗ[R] N₂
g₂ : N₂ →ₗ[R] N₃
hg : Exact.{u_5, u_6, u_7} (M := N₁) (N := N₂) (P := N₃) (⇑g₁ : (a : N₁) → N₂) (⇑g₂ : (a : N₂) → N₃)
h₁ : g₁ ∘ₗ i₁ = i₂ ∘ₗ f₁
h₂ : g₂ ∘ₗ i₂ = i₃ ∘ₗ f₂
σ : M₃ → M₂
hσ : (⇑f₂ : (a : M₂) → M₃) ∘ σ = id
ρ : N₂ → N₁
hρ : ρ ∘ (⇑g₁ : (a : N₁) → N₂) = id
K₂ : Type u_8
K₃ : Type u_9
C₁ : Type u_10
inst_13 : AddCommGroup K₂
inst_14 : Module R K₂
inst_15 : AddCommGroup K₃
inst_16 : Module R K₃
inst_17 : AddCommGroup C₁
inst_18 : Module R C₁
ι₂ : K₂ →ₗ[R] M₂
hι₂ : Exact.{u_8, u_3, u_6} (M := K₂) (N := M₂) (P := N₂) (⇑ι₂ : (a : K₂) → M₂) (⇑i₂ : (a : M₂) → N₂)
ι₃ : K₃ →ₗ[R] M₃
hι₃ : Exact.{u_9, u_4, u_7} (M := K₃) (N := M₃) (P := N₃) (⇑ι₃ : (a : K₃) → M₃) (⇑i₃ : (a : M₃) → N₃)
π₁ : N₁ →ₗ[R] C₁
hπ₁ : Exact.{u_2, u_5, u_10} (M := M₁) (N := N₁) (P := C₁) (⇑i₁ : (a : M₁) → N₁) (⇑π₁ : (a : N₁) → C₁)
F : K₂ →ₗ[R] K₃
hF : f₂ ∘ₗ ι₂ = ι₃ ∘ₗ F
h : Injective.{u_9 + 1, u_4 + 1} (α := K₃) (β := M₃) (⇑ι₃ : (a : K₃) → M₃)
H₁ : ∀ (x : M₃), (f₂ : (a : M₂) → M₃) (σ x) = x
H₂ :
  ∀ (x : K₃),
    Eq.{u_6 + 1} (α := N₂) ((g₁ : (a : N₁) → N₂) (ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))) : N₂)
      ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)) : N₂)
x : K₃
H :
  Eq.{u_10 + 1} (α := C₁) ((δ i₁ i₂ i₃ f₁ f₂ hf g₁ g₂ hg h₁ h₂ σ hσ ρ hρ ι₃ hι₃ π₁ hπ₁ : (a : K₃) → C₁) x : C₁) (0 : C₁)
y : M₁
hy : (i₁ : (a : M₁) → N₁) y = ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))
k : K₂
hk : (ι₂ : (a : K₂) → M₂) k = HSub.hSub (β := M₂) (σ ((ι₃ : (a : K₃) → M₃) x)) ((f₁ : (a : M₁) → M₂) y : M₂)
mp : Eq.{u_4 + 1} (α := M₃) ((ι₃ ∘ₗ F : (a : K₂) → M₃) k : M₃) ((ι₃ : (a : K₃) → M₃) x : M₃)
⊢ Eq.{u_4 + 1} (α := M₃) ((ι₃ : (a : K₃) → M₃) ((F : (a : K₂) → K₃) k : K₃) : M₃) ((ι₃ : (a : K₃) → M₃) x : M₃)
have mp₁ : Eq.{u_4 + 1} (α := M₃) ((f₂ ∘ₗ ι₂ : (a : K₂) → M₃) k : M₃) ((ι₃ : (a : K₃) → M₃) x : M₃)
Tactic: rw [← ι₃.comp_apply, ← hF, f₂.comp_apply, hk, map_sub, H₁, hf.apply_apply_eq_zero, sub_zero]
-- Lean 4 proof step from Mathlib.Algebra.Module.SnakeLemma (goal)
Goal:
R : Type u_1
inst : CommRing R
M₁ : Type u_2
M₂ : Type u_3
M₃ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
N₃ : Type u_7
inst_1 : AddCommGroup M₁
inst_2 : Module R M₁
inst_3 : AddCommGroup M₂
inst_4 : Module R M₂
inst_5 : AddCommGroup M₃
inst_6 : Module R M₃
inst_7 : AddCommGroup N₁
inst_8 : Module R N₁
inst_9 : AddCommGroup N₂
inst_10 : Module R N₂
inst_11 : AddCommGroup N₃
inst_12 : Module R N₃
i₁ : M₁ →ₗ[R] N₁
i₂ : M₂ →ₗ[R] N₂
i₃ : M₃ →ₗ[R] N₃
f₁ : M₁ →ₗ[R] M₂
f₂ : M₂ →ₗ[R] M₃
hf : Exact.{u_2, u_3, u_4} (M := M₁) (N := M₂) (P := M₃) (⇑f₁ : (a : M₁) → M₂) (⇑f₂ : (a : M₂) → M₃)
g₁ : N₁ →ₗ[R] N₂
g₂ : N₂ →ₗ[R] N₃
hg : Exact.{u_5, u_6, u_7} (M := N₁) (N := N₂) (P := N₃) (⇑g₁ : (a : N₁) → N₂) (⇑g₂ : (a : N₂) → N₃)
h₁ : g₁ ∘ₗ i₁ = i₂ ∘ₗ f₁
h₂ : g₂ ∘ₗ i₂ = i₃ ∘ₗ f₂
σ : M₃ → M₂
hσ : (⇑f₂ : (a : M₂) → M₃) ∘ σ = id
ρ : N₂ → N₁
hρ : ρ ∘ (⇑g₁ : (a : N₁) → N₂) = id
K₂ : Type u_8
K₃ : Type u_9
C₁ : Type u_10
inst_13 : AddCommGroup K₂
inst_14 : Module R K₂
inst_15 : AddCommGroup K₃
inst_16 : Module R K₃
inst_17 : AddCommGroup C₁
inst_18 : Module R C₁
ι₂ : K₂ →ₗ[R] M₂
hι₂ : Exact.{u_8, u_3, u_6} (M := K₂) (N := M₂) (P := N₂) (⇑ι₂ : (a : K₂) → M₂) (⇑i₂ : (a : M₂) → N₂)
ι₃ : K₃ →ₗ[R] M₃
hι₃ : Exact.{u_9, u_4, u_7} (M := K₃) (N := M₃) (P := N₃) (⇑ι₃ : (a : K₃) → M₃) (⇑i₃ : (a : M₃) → N₃)
π₁ : N₁ →ₗ[R] C₁
hπ₁ : Exact.{u_2, u_5, u_10} (M := M₁) (N := N₁) (P := C₁) (⇑i₁ : (a : M₁) → N₁) (⇑π₁ : (a : N₁) → C₁)
F : K₂ →ₗ[R] K₃
hF : f₂ ∘ₗ ι₂ = ι₃ ∘ₗ F
h : Injective.{u_9 + 1, u_4 + 1} (α := K₃) (β := M₃) (⇑ι₃ : (a : K₃) → M₃)
H₁ : ∀ (x : M₃), (f₂ : (a : M₂) → M₃) (σ x) = x
H₂ :
  ∀ (x : K₃),
    Eq.{u_6 + 1} (α := N₂) ((g₁ : (a : N₁) → N₂) (ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))) : N₂)
      ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)) : N₂)
x : K₃
H :
  Eq.{u_10 + 1} (α := C₁) ((δ i₁ i₂ i₃ f₁ f₂ hf g₁ g₂ hg h₁ h₂ σ hσ ρ hρ ι₃ hι₃ π₁ hπ₁ : (a : K₃) → C₁) x : C₁) (0 : C₁)
y : M₁
hy : (i₁ : (a : M₁) → N₁) y = ρ ((i₂ : (a : M₂) → N₂) (σ ((ι₃ : (a : K₃) → M₃) x)))
k : K₂
hk : (ι₂ : (a : K₂) → M₂) k = HSub.hSub (β := M₂) (σ ((ι₃ : (a : K₃) → M₃) x)) ((f₁ : (a : M₁) → M₂) y : M₂)
mp : Eq.{u_4 + 1} (α := M₃) ((ι₃ ∘ₗ F : (a : K₂) → M₃) k : M₃) ((ι₃ : (a : K₃) → M₃) x : M₃)
mp₁ : Eq.{u_4 + 1} (α := M₃) ((f₂ ∘ₗ ι₂ : (a : K₂) → M₃) k : M₃) ((ι₃ : (a : K₃) → M₃) x : M₃)
⊢ Eq.{u_4 + 1} (α := M₃) ((ι₃ : (a : K₃) → M₃) ((F : (a : K₂) → K₃) k : K₃) : M₃) ((ι₃ : (a : K₃) → M₃) x : M₃)
have mp₂ : Eq.{u_4 + 1} (α := M₃) ((f₂ : (a : M₂) → M₃) ((ι₂ : (a : K₂) → M₂) k : M₂) : M₃) ((ι₃ : (a : K₃) → M₃) x : M₃)
Tactic: rw [← ι₃.comp_apply, ← hF, f₂.comp_apply, hk, map_sub, H₁, hf.apply_apply_eq_zero, sub_zero]