Theorem: LinearPMap.IsClosable.leIsClosable
File: Mathlib/Topology/Algebra/Module/LinearPMap.lean

tactic: cases' hf with f' hf
state_before: R : Type u_1
E : Type u_2
F : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : AddCommGroup E
inst✝⁹ : AddCommGroup F
inst✝⁸ : Module R E
inst✝⁷ : Module R F
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace F
inst✝⁴ : ContinuousAdd E
inst✝³ : ContinuousAdd F
inst✝² : TopologicalSpace R
inst✝¹ : ContinuousSMul R E
inst✝ : ContinuousSMul R F
f g : E →ₗ.[R] F
hf : IsClosable f
hfg : g ≤ f
⊢ IsClosable g

tactic: have : g.graph.topologicalClosure ≤ f'.graph := by
  rw [← hf]
  exact Submodule.topologicalClosure_mono (le_graph_of_le hfg)
state_before: case intro
R : Type u_1
E : Type u_2
F : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : AddCommGroup E
inst✝⁹ : AddCommGroup F
inst✝⁸ : Module R E
inst✝⁷ : Module R F
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace F
inst✝⁴ : ContinuousAdd E
inst✝³ : ContinuousAdd F
inst✝² : TopologicalSpace R
inst✝¹ : ContinuousSMul R E
inst✝ : ContinuousSMul R F
f g : E →ₗ.[R] F
hfg : g ≤ f
f' : E →ₗ.[R] F
hf : Submodule.topologicalClosure (graph f) = graph f'
⊢ IsClosable g

tactic: refine' ⟨g.graph.topologicalClosure.toLinearPMap _, _⟩
state_before: case intro
R : Type u_1
E : Type u_2
F : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : AddCommGroup E
inst✝⁹ : AddCommGroup F
inst✝⁸ : Module R E
inst✝⁷ : Module R F
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace F
inst✝⁴ : ContinuousAdd E
inst✝³ : ContinuousAdd F
inst✝² : TopologicalSpace R
inst✝¹ : ContinuousSMul R E
inst✝ : ContinuousSMul R F
f g : E →ₗ.[R] F
hfg : g ≤ f
f' : E →ₗ.[R] F
hf : Submodule.topologicalClosure (graph f) = graph f'
this : Submodule.topologicalClosure (graph g) ≤ graph f'
⊢ IsClosable g

tactic: rw [Submodule.toLinearPMap_graph_eq]
state_before: case intro.refine'_2
R : Type u_1
E : Type u_2
F : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : AddCommGroup E
inst✝⁹ : AddCommGroup F
inst✝⁸ : Module R E
inst✝⁷ : Module R F
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace F
inst✝⁴ : ContinuousAdd E
inst✝³ : ContinuousAdd F
inst✝² : TopologicalSpace R
inst✝¹ : ContinuousSMul R E
inst✝ : ContinuousSMul R F
f g : E →ₗ.[R] F
hfg : g ≤ f
f' : E →ₗ.[R] F
hf : Submodule.topologicalClosure (graph f) = graph f'
this : Submodule.topologicalClosure (graph g) ≤ graph f'
⊢ Submodule.topologicalClosure (graph g) =
    graph
      (Submodule.toLinearPMap (Submodule.topologicalClosure (graph g))
        (_ : ∀ (x : E × F), x ∈ Submodule.topologicalClosure (graph g) → x.fst = 0 → x.snd = 0))

tactic: rw [← hf]
state_before: R : Type u_1
E : Type u_2
F : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : AddCommGroup E
inst✝⁹ : AddCommGroup F
inst✝⁸ : Module R E
inst✝⁷ : Module R F
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace F
inst✝⁴ : ContinuousAdd E
inst✝³ : ContinuousAdd F
inst✝² : TopologicalSpace R
inst✝¹ : ContinuousSMul R E
inst✝ : ContinuousSMul R F
f g : E →ₗ.[R] F
hfg : g ≤ f
f' : E →ₗ.[R] F
hf : Submodule.topologicalClosure (graph f) = graph f'
⊢ Submodule.topologicalClosure (graph g) ≤ graph f'

tactic: exact Submodule.topologicalClosure_mono (le_graph_of_le hfg)
state_before: R : Type u_1
E : Type u_2
F : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : AddCommGroup E
inst✝⁹ : AddCommGroup F
inst✝⁸ : Module R E
inst✝⁷ : Module R F
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace F
inst✝⁴ : ContinuousAdd E
inst✝³ : ContinuousAdd F
inst✝² : TopologicalSpace R
inst✝¹ : ContinuousSMul R E
inst✝ : ContinuousSMul R F
f g : E →ₗ.[R] F
hfg : g ≤ f
f' : E →ₗ.[R] F
hf : Submodule.topologicalClosure (graph f) = graph f'
⊢ Submodule.topologicalClosure (graph g) ≤ Submodule.topologicalClosure (graph f)

tactic: intro x hx hx'
state_before: case intro.refine'_1
R : Type u_1
E : Type u_2
F : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : AddCommGroup E
inst✝⁹ : AddCommGroup F
inst✝⁸ : Module R E
inst✝⁷ : Module R F
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace F
inst✝⁴ : ContinuousAdd E
inst✝³ : ContinuousAdd F
inst✝² : TopologicalSpace R
inst✝¹ : ContinuousSMul R E
inst✝ : ContinuousSMul R F
f g : E →ₗ.[R] F
hfg : g ≤ f
f' : E →ₗ.[R] F
hf : Submodule.topologicalClosure (graph f) = graph f'
this : Submodule.topologicalClosure (graph g) ≤ graph f'
⊢ ∀ (x : E × F), x ∈ Submodule.topologicalClosure (graph g) → x.fst = 0 → x.snd = 0

tactic: cases x
state_before: case intro.refine'_1
R : Type u_1
E : Type u_2
F : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : AddCommGroup E
inst✝⁹ : AddCommGroup F
inst✝⁸ : Module R E
inst✝⁷ : Module R F
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace F
inst✝⁴ : ContinuousAdd E
inst✝³ : ContinuousAdd F
inst✝² : TopologicalSpace R
inst✝¹ : ContinuousSMul R E
inst✝ : ContinuousSMul R F
f g : E →ₗ.[R] F
hfg : g ≤ f
f' : E →ₗ.[R] F
hf : Submodule.topologicalClosure (graph f) = graph f'
this : Submodule.topologicalClosure (graph g) ≤ graph f'
x : E × F
hx : x ∈ Submodule.topologicalClosure (graph g)
hx' : x.fst = 0
⊢ x.snd = 0

tactic: exact f'.graph_fst_eq_zero_snd (this hx) hx'
state_before: case intro.refine'_1.mk
R : Type u_1
E : Type u_2
F : Type u_3
inst✝¹¹ : CommRing R
inst✝¹⁰ : AddCommGroup E
inst✝⁹ : AddCommGroup F
inst✝⁸ : Module R E
inst✝⁷ : Module R F
inst✝⁶ : TopologicalSpace E
inst✝⁵ : TopologicalSpace F
inst✝⁴ : ContinuousAdd E
inst✝³ : ContinuousAdd F
inst✝² : TopologicalSpace R
inst✝¹ : ContinuousSMul R E
inst✝ : ContinuousSMul R F
f g : E →ₗ.[R] F
hfg : g ≤ f
f' : E →ₗ.[R] F
hf : Submodule.topologicalClosure (graph f) = graph f'
this : Submodule.topologicalClosure (graph g) ≤ graph f'
fst✝ : E
snd✝ : F
hx : (fst✝, snd✝) ∈ Submodule.topologicalClosure (graph g)
hx' : (fst✝, snd✝).fst = 0
⊢ (fst✝, snd✝).snd = 0