Theorem: Module.DirectLimit.of.zero_exact_aux
File: Mathlib/Algebra/DirectLimit.lean

tactic: infer_instance
state_before: R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x : DirectSum ι G
H : Submodule.Quotient.mk x = 0
⊢ Nonempty ι

tactic: subst hxy
state_before: R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x✝¹ : DirectSum ι G
H : Submodule.Quotient.mk x✝¹ = 0
ind : ι
x : DirectSum ι G
x✝ : x ∈ {a | ∃ i j H x, ↑(DirectSum.lof R ι G i) x - ↑(DirectSum.lof R ι G j) (↑(f i j H) x) = a}
i j : ι
hij : i ≤ j
y : G i
hxy : ↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y) = x
k : ι
hik : i ≤ k
hjk : j ≤ k
⊢ (∀ (k_1 : ι), k_1 ∈ Dfinsupp.support x → k_1 ≤ k) ∧ ↑(DirectSum.toModule R ι (G k) fun i => totalize G f i k) x = 0

tactic: constructor
state_before: R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x : DirectSum ι G
H : Submodule.Quotient.mk x = 0
ind i j : ι
hij : i ≤ j
y : G i
k : ι
hik : i ≤ k
hjk : j ≤ k
x✝ :
  ↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y) ∈
    {a | ∃ i j H x, ↑(DirectSum.lof R ι G i) x - ↑(DirectSum.lof R ι G j) (↑(f i j H) x) = a}
⊢ (∀ (k_1 : ι),
      k_1 ∈ Dfinsupp.support (↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y)) → k_1 ≤ k) ∧
    ↑(DirectSum.toModule R ι (G k) fun i => totalize G f i k)
        (↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y)) =
      0

tactic: simp [LinearMap.map_sub, totalize_of_le, hik, hjk, DirectedSystem.map_map,
  DirectSum.apply_eq_component, DirectSum.component.of]
state_before: case right
R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x : DirectSum ι G
H : Submodule.Quotient.mk x = 0
ind i j : ι
hij : i ≤ j
y : G i
k : ι
hik : i ≤ k
hjk : j ≤ k
x✝ :
  ↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y) ∈
    {a | ∃ i j H x, ↑(DirectSum.lof R ι G i) x - ↑(DirectSum.lof R ι G j) (↑(f i j H) x) = a}
⊢ ↑(DirectSum.toModule R ι (G k) fun i => totalize G f i k)
      (↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y)) =
    0

tactic: intro i0 hi0
state_before: case left
R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x : DirectSum ι G
H : Submodule.Quotient.mk x = 0
ind i j : ι
hij : i ≤ j
y : G i
k : ι
hik : i ≤ k
hjk : j ≤ k
x✝ :
  ↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y) ∈
    {a | ∃ i j H x, ↑(DirectSum.lof R ι G i) x - ↑(DirectSum.lof R ι G j) (↑(f i j H) x) = a}
⊢ ∀ (k_1 : ι), k_1 ∈ Dfinsupp.support (↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y)) → k_1 ≤ k

tactic: rw [Dfinsupp.mem_support_iff, DirectSum.sub_apply, ← DirectSum.single_eq_lof, ←
  DirectSum.single_eq_lof, Dfinsupp.single_apply, Dfinsupp.single_apply] at hi0
state_before: case left
R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x : DirectSum ι G
H : Submodule.Quotient.mk x = 0
ind i j : ι
hij : i ≤ j
y : G i
k : ι
hik : i ≤ k
hjk : j ≤ k
x✝ :
  ↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y) ∈
    {a | ∃ i j H x, ↑(DirectSum.lof R ι G i) x - ↑(DirectSum.lof R ι G j) (↑(f i j H) x) = a}
i0 : ι
hi0 : i0 ∈ Dfinsupp.support (↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y))
⊢ i0 ≤ k

tactic: split_ifs  at hi0 with hi hj hj
state_before: case left
R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x : DirectSum ι G
H : Submodule.Quotient.mk x = 0
ind i j : ι
hij : i ≤ j
y : G i
k : ι
hik : i ≤ k
hjk : j ≤ k
x✝ :
  ↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y) ∈
    {a | ∃ i j H x, ↑(DirectSum.lof R ι G i) x - ↑(DirectSum.lof R ι G j) (↑(f i j H) x) = a}
i0 : ι
hi0 : ((if h : i = i0 then Eq.recOn h y else 0) - if h : j = i0 then Eq.recOn h (↑(f i j hij) y) else 0) ≠ 0
⊢ i0 ≤ k

tactic: exfalso
state_before: case left.inr.inr
R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x : DirectSum ι G
H : Submodule.Quotient.mk x = 0
ind i j : ι
hij : i ≤ j
y : G i
k : ι
hik : i ≤ k
hjk : j ≤ k
x✝ :
  ↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y) ∈
    {a | ∃ i j H x, ↑(DirectSum.lof R ι G i) x - ↑(DirectSum.lof R ι G j) (↑(f i j H) x) = a}
i0 : ι
hi : ¬i = i0
hj : ¬j = i0
hi0 : 0 - 0 ≠ 0
⊢ i0 ≤ k

tactic: apply hi0
state_before: case left.inr.inr.h
R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x : DirectSum ι G
H : Submodule.Quotient.mk x = 0
ind i j : ι
hij : i ≤ j
y : G i
k : ι
hik : i ≤ k
hjk : j ≤ k
x✝ :
  ↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y) ∈
    {a | ∃ i j H x, ↑(DirectSum.lof R ι G i) x - ↑(DirectSum.lof R ι G j) (↑(f i j H) x) = a}
i0 : ι
hi : ¬i = i0
hj : ¬j = i0
hi0 : 0 - 0 ≠ 0
⊢ False

tactic: rw [sub_zero]
state_before: case left.inr.inr.h
R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x : DirectSum ι G
H : Submodule.Quotient.mk x = 0
ind i j : ι
hij : i ≤ j
y : G i
k : ι
hik : i ≤ k
hjk : j ≤ k
x✝ :
  ↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y) ∈
    {a | ∃ i j H x, ↑(DirectSum.lof R ι G i) x - ↑(DirectSum.lof R ι G j) (↑(f i j H) x) = a}
i0 : ι
hi : ¬i = i0
hj : ¬j = i0
hi0 : 0 - 0 ≠ 0
⊢ 0 - 0 = 0

tactic: rwa [hi] at hik
state_before: case left.inl.inl
R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x : DirectSum ι G
H : Submodule.Quotient.mk x = 0
ind i j : ι
hij : i ≤ j
y : G i
k : ι
hik : i ≤ k
hjk : j ≤ k
x✝ :
  ↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y) ∈
    {a | ∃ i j H x, ↑(DirectSum.lof R ι G i) x - ↑(DirectSum.lof R ι G j) (↑(f i j H) x) = a}
i0 : ι
hi : i = i0
hj : j = i0
hi0 : Eq.recOn hi y - Eq.recOn hj (↑(f i j hij) y) ≠ 0
⊢ i0 ≤ k

tactic: rwa [hi] at hik
state_before: case left.inl.inr
R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x : DirectSum ι G
H : Submodule.Quotient.mk x = 0
ind i j : ι
hij : i ≤ j
y : G i
k : ι
hik : i ≤ k
hjk : j ≤ k
x✝ :
  ↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y) ∈
    {a | ∃ i j H x, ↑(DirectSum.lof R ι G i) x - ↑(DirectSum.lof R ι G j) (↑(f i j H) x) = a}
i0 : ι
hi : i = i0
hj : ¬j = i0
hi0 : Eq.recOn hi y - 0 ≠ 0
⊢ i0 ≤ k

tactic: rwa [hj] at hjk
state_before: case left.inr.inl
R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x : DirectSum ι G
H : Submodule.Quotient.mk x = 0
ind i j : ι
hij : i ≤ j
y : G i
k : ι
hik : i ≤ k
hjk : j ≤ k
x✝ :
  ↑(DirectSum.lof R ι G i) y - ↑(DirectSum.lof R ι G j) (↑(f i j hij) y) ∈
    {a | ∃ i j H x, ↑(DirectSum.lof R ι G i) x - ↑(DirectSum.lof R ι G j) (↑(f i j H) x) = a}
i0 : ι
hi : ¬i = i0
hj : j = i0
hi0 : 0 - Eq.recOn hj (↑(f i j hij) y) ≠ 0
⊢ i0 ≤ k

tactic: simp only [map_add]
state_before: R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x✝² : DirectSum ι G
H : Submodule.Quotient.mk x✝² = 0
ind : ι
x y : DirectSum ι G
x✝¹ : ∃ j, (∀ (k : ι), k ∈ Dfinsupp.support x → k ≤ j) ∧ ↑(DirectSum.toModule R ι (G j) fun i => totalize G f i j) x = 0
x✝ : ∃ j, (∀ (k : ι), k ∈ Dfinsupp.support y → k ≤ j) ∧ ↑(DirectSum.toModule R ι (G j) fun i => totalize G f i j) y = 0
i : ι
hi : ∀ (k : ι), k ∈ Dfinsupp.support x → k ≤ i
hxi : ↑(DirectSum.toModule R ι (G i) fun i_1 => totalize G f i_1 i) x = 0
j : ι
hj : ∀ (k : ι), k ∈ Dfinsupp.support y → k ≤ j
hyj : ↑(DirectSum.toModule R ι (G j) fun i => totalize G f i j) y = 0
k : ι
hik : i ≤ k
hjk : j ≤ k
⊢ ↑(DirectSum.toModule R ι (G k) fun i => totalize G f i k) (x + y) = 0

tactic: rw [toModule_totalize_of_le hik hi, toModule_totalize_of_le hjk hj]
state_before: R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x✝² : DirectSum ι G
H : Submodule.Quotient.mk x✝² = 0
ind : ι
x y : DirectSum ι G
x✝¹ : ∃ j, (∀ (k : ι), k ∈ Dfinsupp.support x → k ≤ j) ∧ ↑(DirectSum.toModule R ι (G j) fun i => totalize G f i j) x = 0
x✝ : ∃ j, (∀ (k : ι), k ∈ Dfinsupp.support y → k ≤ j) ∧ ↑(DirectSum.toModule R ι (G j) fun i => totalize G f i j) y = 0
i : ι
hi : ∀ (k : ι), k ∈ Dfinsupp.support x → k ≤ i
hxi : ↑(DirectSum.toModule R ι (G i) fun i_1 => totalize G f i_1 i) x = 0
j : ι
hj : ∀ (k : ι), k ∈ Dfinsupp.support y → k ≤ j
hyj : ↑(DirectSum.toModule R ι (G j) fun i => totalize G f i j) y = 0
k : ι
hik : i ≤ k
hjk : j ≤ k
⊢ ↑(DirectSum.toModule R ι (G k) fun i => totalize G f i k) x +
      ↑(DirectSum.toModule R ι (G k) fun i => totalize G f i k) y =
    0

tactic: simp [hxi, hyj]
state_before: R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x✝² : DirectSum ι G
H : Submodule.Quotient.mk x✝² = 0
ind : ι
x y : DirectSum ι G
x✝¹ : ∃ j, (∀ (k : ι), k ∈ Dfinsupp.support x → k ≤ j) ∧ ↑(DirectSum.toModule R ι (G j) fun i => totalize G f i j) x = 0
x✝ : ∃ j, (∀ (k : ι), k ∈ Dfinsupp.support y → k ≤ j) ∧ ↑(DirectSum.toModule R ι (G j) fun i => totalize G f i j) y = 0
i : ι
hi : ∀ (k : ι), k ∈ Dfinsupp.support x → k ≤ i
hxi : ↑(DirectSum.toModule R ι (G i) fun i_1 => totalize G f i_1 i) x = 0
j : ι
hj : ∀ (k : ι), k ∈ Dfinsupp.support y → k ≤ j
hyj : ↑(DirectSum.toModule R ι (G j) fun i => totalize G f i j) y = 0
k : ι
hik : i ≤ k
hjk : j ≤ k
⊢ ↑(f i k hik) (↑(DirectSum.toModule R ι (G i) fun k => totalize (fun i => G i) f k i) x) +
      ↑(f j k hjk) (↑(DirectSum.toModule R ι (G j) fun k => totalize (fun i => G i) f k j) y) =
    0

tactic: simp [LinearMap.map_smul, hxi]
state_before: R : Type u
inst✝⁸ : Ring R
ι : Type v
dec_ι : DecidableEq ι
inst✝⁷ : Preorder ι
G : ι → Type w
inst✝⁶ : (i : ι) → AddCommGroup (G i)
inst✝⁵ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
P : Type u₁
inst✝⁴ : AddCommGroup P
inst✝³ : Module R P
g : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), ↑(g j) (↑(f i j hij) x) = ↑(g i) x
inst✝² : DirectedSystem G fun i j h => ↑(f i j h)
inst✝¹ : Nonempty ι
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
x✝¹ : DirectSum ι G
H : Submodule.Quotient.mk x✝¹ = 0
ind : ι
a : R
x : DirectSum ι G
x✝ : ∃ j, (∀ (k : ι), k ∈ Dfinsupp.support x → k ≤ j) ∧ ↑(DirectSum.toModule R ι (G j) fun i => totalize G f i j) x = 0
i : ι
hi : ∀ (k : ι), k ∈ Dfinsupp.support x → k ≤ i
hxi : ↑(DirectSum.toModule R ι (G i) fun i_1 => totalize G f i_1 i) x = 0
⊢ ↑(DirectSum.toModule R ι (G i) fun i_1 => totalize G f i_1 i) (a • x) = 0