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

Proof steps:
state_before: R : Type u
inst✝⁸ : Ring R
ι : Type v
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
inst✝⁴ : DecidableEq ι
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✝ : IsDirected ι fun x x_1 => x ≤ x_1
i : ι
x : G i
H : (of R ι G f i) x = 0
this : Nonempty ι
j : ι
hj : ∀ k ∈ DFinsupp.support ((DirectSum.lof R ι G i) x), k ≤ j
hxj : (DirectSum.toModule R ι (G j) fun i => totalize G f i j) ((DirectSum.lof R ι G i) x) = 0
hx0 : x = 0
⊢ (f i i ⋯) x = 0
state_after: no goals
tactic: simp [hx0]
state_before: R : Type u
inst✝⁸ : Ring R
ι : Type v
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
inst✝⁴ : DecidableEq ι
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✝ : IsDirected ι fun x x_1 => x ≤ x_1
i : ι
x : G i
H : (of R ι G f i) x = 0
this : Nonempty ι
j : ι
hj : ∀ k ∈ DFinsupp.support ((DirectSum.lof R ι G i) x), k ≤ j
hxj : (DirectSum.toModule R ι (G j) fun i => totalize G f i j) ((DirectSum.lof R ι G i) x) = 0
hx0 : ¬x = 0
⊢ i ∈ DFinsupp.support ((DirectSum.lof R ι G i) x)
state_after: no goals
tactic: simp [DirectSum.apply_eq_component, hx0]
state_before: R : Type u
inst✝⁸ : Ring R
ι : Type v
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
inst✝⁴ : DecidableEq ι
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✝ : IsDirected ι fun x x_1 => x ≤ x_1
i : ι
x : G i
H : (of R ι G f i) x = 0
this : Nonempty ι
j : ι
hj : ∀ k ∈ DFinsupp.support ((DirectSum.lof R ι G i) x), k ≤ j
hxj : (DirectSum.toModule R ι (G j) fun i => totalize G f i j) ((DirectSum.lof R ι G i) x) = 0
hx0 : ¬x = 0
hij : i ≤ j
⊢ (f i j hij) x = 0
state_after: R : Type u
inst✝⁸ : Ring R
ι : Type v
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
inst✝⁴ : DecidableEq ι
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✝ : IsDirected ι fun x x_1 => x ≤ x_1
i : ι
x : G i
H : (of R ι G f i) x = 0
this : Nonempty ι
j : ι
hj : ∀ k ∈ DFinsupp.support ((DirectSum.lof R ι G i) x), k ≤ j
hx0 : ¬x = 0
hij : i ≤ j
hxj : (totalize G f i j) x = 0
⊢ (f i j hij) x = 0
tactic: simp only [DirectSum.toModule_lof] at hxj
state_before: R : Type u
inst✝⁸ : Ring R
ι : Type v
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
inst✝⁴ : DecidableEq ι
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✝ : IsDirected ι fun x x_1 => x ≤ x_1
i : ι
x : G i
H : (of R ι G f i) x = 0
this : Nonempty ι
j : ι
hj : ∀ k ∈ DFinsupp.support ((DirectSum.lof R ι G i) x), k ≤ j
hx0 : ¬x = 0
hij : i ≤ j
hxj : (totalize G f i j) x = 0
⊢ (f i j hij) x = 0
state_after: no goals
tactic: rwa [totalize_of_le hij] at hxj