[GOAL]
R : Type u_1
M : Type u_2
inst✝⁶ : Ring R
inst✝⁵ : TopologicalSpace R
inst✝⁴ : TopologicalSpace M
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : TopologicalRing R
inst✝ : TopologicalAddGroup M
hmul : Tendsto (fun p => p.fst • p.snd) (𝓝 0 ×ˢ 𝓝 0) (𝓝 0)
hmulleft : ∀ (m : M), Tendsto (fun a => a • m) (𝓝 0) (𝓝 0)
hmulright : ∀ (a : R), Tendsto (fun m => a • m) (𝓝 0) (𝓝 0)
⊢ Continuous fun p => p.fst • p.snd
[PROOFSTEP]
refine continuous_of_continuousAt_zero₂ (AddMonoidHom.smul : R →+ M →+ M) ?_ ?_ ?_
[GOAL]
case refine_1
R : Type u_1
M : Type u_2
inst✝⁶ : Ring R
inst✝⁵ : TopologicalSpace R
inst✝⁴ : TopologicalSpace M
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : TopologicalRing R
inst✝ : TopologicalAddGroup M
hmul : Tendsto (fun p => p.fst • p.snd) (𝓝 0 ×ˢ 𝓝 0) (𝓝 0)
hmulleft : ∀ (m : M), Tendsto (fun a => a • m) (𝓝 0) (𝓝 0)
hmulright : ∀ (a : R), Tendsto (fun m => a • m) (𝓝 0) (𝓝 0)
⊢ ContinuousAt (fun x => ↑(↑AddMonoidHom.smul x.fst) x.snd) (0, 0)
[PROOFSTEP]
simpa [ContinuousAt, nhds_prod_eq]
[GOAL]
case refine_2
R : Type u_1
M : Type u_2
inst✝⁶ : Ring R
inst✝⁵ : TopologicalSpace R
inst✝⁴ : TopologicalSpace M
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : TopologicalRing R
inst✝ : TopologicalAddGroup M
hmul : Tendsto (fun p => p.fst • p.snd) (𝓝 0 ×ˢ 𝓝 0) (𝓝 0)
hmulleft : ∀ (m : M), Tendsto (fun a => a • m) (𝓝 0) (𝓝 0)
hmulright : ∀ (a : R), Tendsto (fun m => a • m) (𝓝 0) (𝓝 0)
⊢ ∀ (x : R), ContinuousAt (↑(↑AddMonoidHom.smul x)) 0
[PROOFSTEP]
simpa [ContinuousAt, nhds_prod_eq]
[GOAL]
case refine_3
R : Type u_1
M : Type u_2
inst✝⁶ : Ring R
inst✝⁵ : TopologicalSpace R
inst✝⁴ : TopologicalSpace M
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : TopologicalRing R
inst✝ : TopologicalAddGroup M
hmul : Tendsto (fun p => p.fst • p.snd) (𝓝 0 ×ˢ 𝓝 0) (𝓝 0)
hmulleft : ∀ (m : M), Tendsto (fun a => a • m) (𝓝 0) (𝓝 0)
hmulright : ∀ (a : R), Tendsto (fun m => a • m) (𝓝 0) (𝓝 0)
⊢ ∀ (y : M), ContinuousAt (fun x => ↑(↑AddMonoidHom.smul x) y) 0
[PROOFSTEP]
simpa [ContinuousAt, nhds_prod_eq]
[GOAL]
R : Type u_1
M : Type u_2
inst✝⁷ : Ring R
inst✝⁶ : TopologicalSpace R
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommGroup M
inst✝³ : ContinuousAdd M
inst✝² : Module R M
inst✝¹ : ContinuousSMul R M
inst✝ : NeBot (𝓝[{x | IsUnit x}] 0)
s : Submodule R M
hs : Set.Nonempty (interior ↑s)
⊢ s = ⊤
[PROOFSTEP]
rcases hs with ⟨y, hy⟩
[GOAL]
case intro
R : Type u_1
M : Type u_2
inst✝⁷ : Ring R
inst✝⁶ : TopologicalSpace R
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommGroup M
inst✝³ : ContinuousAdd M
inst✝² : Module R M
inst✝¹ : ContinuousSMul R M
inst✝ : NeBot (𝓝[{x | IsUnit x}] 0)
s : Submodule R M
y : M
hy : y ∈ interior ↑s
⊢ s = ⊤
[PROOFSTEP]
refine' Submodule.eq_top_iff'.2 fun x => _
[GOAL]
case intro
R : Type u_1
M : Type u_2
inst✝⁷ : Ring R
inst✝⁶ : TopologicalSpace R
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommGroup M
inst✝³ : ContinuousAdd M
inst✝² : Module R M
inst✝¹ : ContinuousSMul R M
inst✝ : NeBot (𝓝[{x | IsUnit x}] 0)
s : Submodule R M
y : M
hy : y ∈ interior ↑s
x : M
⊢ x ∈ s
[PROOFSTEP]
rw [mem_interior_iff_mem_nhds] at hy
[GOAL]
case intro
R : Type u_1
M : Type u_2
inst✝⁷ : Ring R
inst✝⁶ : TopologicalSpace R
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommGroup M
inst✝³ : ContinuousAdd M
inst✝² : Module R M
inst✝¹ : ContinuousSMul R M
inst✝ : NeBot (𝓝[{x | IsUnit x}] 0)
s : Submodule R M
y : M
hy : ↑s ∈ 𝓝 y
x : M
⊢ x ∈ s
[PROOFSTEP]
have : Tendsto (fun c : R => y + c • x) (𝓝[{x : R | IsUnit x}] 0) (𝓝 (y + (0 : R) • x)) :=
  tendsto_const_nhds.add ((tendsto_nhdsWithin_of_tendsto_nhds tendsto_id).smul tendsto_const_nhds)
[GOAL]
case intro
R : Type u_1
M : Type u_2
inst✝⁷ : Ring R
inst✝⁶ : TopologicalSpace R
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommGroup M
inst✝³ : ContinuousAdd M
inst✝² : Module R M
inst✝¹ : ContinuousSMul R M
inst✝ : NeBot (𝓝[{x | IsUnit x}] 0)
s : Submodule R M
y : M
hy : ↑s ∈ 𝓝 y
x : M
this : Tendsto (fun c => y + c • x) (𝓝[{x | IsUnit x}] 0) (𝓝 (y + 0 • x))
⊢ x ∈ s
[PROOFSTEP]
rw [zero_smul, add_zero] at this
[GOAL]
case intro
R : Type u_1
M : Type u_2
inst✝⁷ : Ring R
inst✝⁶ : TopologicalSpace R
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommGroup M
inst✝³ : ContinuousAdd M
inst✝² : Module R M
inst✝¹ : ContinuousSMul R M
inst✝ : NeBot (𝓝[{x | IsUnit x}] 0)
s : Submodule R M
y : M
hy : ↑s ∈ 𝓝 y
x : M
this : Tendsto (fun c => y + c • x) (𝓝[{x | IsUnit x}] 0) (𝓝 y)
⊢ x ∈ s
[PROOFSTEP]
obtain ⟨_, hu : y + _ • _ ∈ s, u, rfl⟩ := nonempty_of_mem (inter_mem (Filter.mem_map.1 (this hy)) self_mem_nhdsWithin)
[GOAL]
case intro.intro.intro.intro
R : Type u_1
M : Type u_2
inst✝⁷ : Ring R
inst✝⁶ : TopologicalSpace R
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommGroup M
inst✝³ : ContinuousAdd M
inst✝² : Module R M
inst✝¹ : ContinuousSMul R M
inst✝ : NeBot (𝓝[{x | IsUnit x}] 0)
s : Submodule R M
y : M
hy : ↑s ∈ 𝓝 y
x : M
this : Tendsto (fun c => y + c • x) (𝓝[{x | IsUnit x}] 0) (𝓝 y)
u : Rˣ
hu : y + ↑u • x ∈ s
⊢ x ∈ s
[PROOFSTEP]
have hy' : y ∈ ↑s := mem_of_mem_nhds hy
[GOAL]
case intro.intro.intro.intro
R : Type u_1
M : Type u_2
inst✝⁷ : Ring R
inst✝⁶ : TopologicalSpace R
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommGroup M
inst✝³ : ContinuousAdd M
inst✝² : Module R M
inst✝¹ : ContinuousSMul R M
inst✝ : NeBot (𝓝[{x | IsUnit x}] 0)
s : Submodule R M
y : M
hy : ↑s ∈ 𝓝 y
x : M
this : Tendsto (fun c => y + c • x) (𝓝[{x | IsUnit x}] 0) (𝓝 y)
u : Rˣ
hu : y + ↑u • x ∈ s
hy' : y ∈ ↑s
⊢ x ∈ s
[PROOFSTEP]
rwa [s.add_mem_iff_right hy', ← Units.smul_def, s.smul_mem_iff' u] at hu
[GOAL]
R : Type u_1
M : Type u_2
inst✝⁹ : Ring R
inst✝⁸ : TopologicalSpace R
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : ContinuousAdd M
inst✝⁴ : Module R M
inst✝³ : ContinuousSMul R M
inst✝² : Nontrivial M
inst✝¹ : NeBot (𝓝[{0}ᶜ] 0)
inst✝ : NoZeroSMulDivisors R M
x : M
⊢ NeBot (𝓝[{x}ᶜ] x)
[PROOFSTEP]
rcases exists_ne (0 : M) with ⟨y, hy⟩
[GOAL]
case intro
R : Type u_1
M : Type u_2
inst✝⁹ : Ring R
inst✝⁸ : TopologicalSpace R
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : ContinuousAdd M
inst✝⁴ : Module R M
inst✝³ : ContinuousSMul R M
inst✝² : Nontrivial M
inst✝¹ : NeBot (𝓝[{0}ᶜ] 0)
inst✝ : NoZeroSMulDivisors R M
x y : M
hy : y ≠ 0
⊢ NeBot (𝓝[{x}ᶜ] x)
[PROOFSTEP]
suffices : Tendsto (fun c : R => x + c • y) (𝓝[≠] 0) (𝓝[≠] x)
[GOAL]
case intro
R : Type u_1
M : Type u_2
inst✝⁹ : Ring R
inst✝⁸ : TopologicalSpace R
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : ContinuousAdd M
inst✝⁴ : Module R M
inst✝³ : ContinuousSMul R M
inst✝² : Nontrivial M
inst✝¹ : NeBot (𝓝[{0}ᶜ] 0)
inst✝ : NoZeroSMulDivisors R M
x y : M
hy : y ≠ 0
this : Tendsto (fun c => x + c • y) (𝓝[{0}ᶜ] 0) (𝓝[{x}ᶜ] x)
⊢ NeBot (𝓝[{x}ᶜ] x)
case this
R : Type u_1
M : Type u_2
inst✝⁹ : Ring R
inst✝⁸ : TopologicalSpace R
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : ContinuousAdd M
inst✝⁴ : Module R M
inst✝³ : ContinuousSMul R M
inst✝² : Nontrivial M
inst✝¹ : NeBot (𝓝[{0}ᶜ] 0)
inst✝ : NoZeroSMulDivisors R M
x y : M
hy : y ≠ 0
⊢ Tendsto (fun c => x + c • y) (𝓝[{0}ᶜ] 0) (𝓝[{x}ᶜ] x)
[PROOFSTEP]
exact this.neBot
[GOAL]
case this
R : Type u_1
M : Type u_2
inst✝⁹ : Ring R
inst✝⁸ : TopologicalSpace R
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : ContinuousAdd M
inst✝⁴ : Module R M
inst✝³ : ContinuousSMul R M
inst✝² : Nontrivial M
inst✝¹ : NeBot (𝓝[{0}ᶜ] 0)
inst✝ : NoZeroSMulDivisors R M
x y : M
hy : y ≠ 0
⊢ Tendsto (fun c => x + c • y) (𝓝[{0}ᶜ] 0) (𝓝[{x}ᶜ] x)
[PROOFSTEP]
refine' Tendsto.inf _ (tendsto_principal_principal.2 <| _)
[GOAL]
case this.refine'_1
R : Type u_1
M : Type u_2
inst✝⁹ : Ring R
inst✝⁸ : TopologicalSpace R
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : ContinuousAdd M
inst✝⁴ : Module R M
inst✝³ : ContinuousSMul R M
inst✝² : Nontrivial M
inst✝¹ : NeBot (𝓝[{0}ᶜ] 0)
inst✝ : NoZeroSMulDivisors R M
x y : M
hy : y ≠ 0
⊢ Tendsto (fun c => x + c • y) (𝓝 0) (𝓝 x)
[PROOFSTEP]
convert tendsto_const_nhds.add ((@tendsto_id R _).smul_const y)
[GOAL]
case h.e'_5.h.e'_3
R : Type u_1
M : Type u_2
inst✝⁹ : Ring R
inst✝⁸ : TopologicalSpace R
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : ContinuousAdd M
inst✝⁴ : Module R M
inst✝³ : ContinuousSMul R M
inst✝² : Nontrivial M
inst✝¹ : NeBot (𝓝[{0}ᶜ] 0)
inst✝ : NoZeroSMulDivisors R M
x y : M
hy : y ≠ 0
⊢ x = x + 0 • y
[PROOFSTEP]
rw [zero_smul, add_zero]
[GOAL]
case this.refine'_2
R : Type u_1
M : Type u_2
inst✝⁹ : Ring R
inst✝⁸ : TopologicalSpace R
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : ContinuousAdd M
inst✝⁴ : Module R M
inst✝³ : ContinuousSMul R M
inst✝² : Nontrivial M
inst✝¹ : NeBot (𝓝[{0}ᶜ] 0)
inst✝ : NoZeroSMulDivisors R M
x y : M
hy : y ≠ 0
⊢ ∀ (a : R), a ∈ {0}ᶜ → x + a • y ∈ {x}ᶜ
[PROOFSTEP]
intro c hc
[GOAL]
case this.refine'_2
R : Type u_1
M : Type u_2
inst✝⁹ : Ring R
inst✝⁸ : TopologicalSpace R
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : ContinuousAdd M
inst✝⁴ : Module R M
inst✝³ : ContinuousSMul R M
inst✝² : Nontrivial M
inst✝¹ : NeBot (𝓝[{0}ᶜ] 0)
inst✝ : NoZeroSMulDivisors R M
x y : M
hy : y ≠ 0
c : R
hc : c ∈ {0}ᶜ
⊢ x + c • y ∈ {x}ᶜ
[PROOFSTEP]
simpa [hy] using hc
[GOAL]
ι : Type u_1
R : Type u_2
M₁ : Type u_3
M₂ : Type u_4
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M₁
inst✝³ : AddCommMonoid M₂
inst✝² : Module R M₁
inst✝¹ : Module R M₂
u : TopologicalSpace R
t : TopologicalSpace M₂
inst✝ : ContinuousSMul R M₂
f : M₁ →ₗ[R] M₂
⊢ ContinuousSMul R M₁
[PROOFSTEP]
let _ : TopologicalSpace M₁ := t.induced f
[GOAL]
ι : Type u_1
R : Type u_2
M₁ : Type u_3
M₂ : Type u_4
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M₁
inst✝³ : AddCommMonoid M₂
inst✝² : Module R M₁
inst✝¹ : Module R M₂
u : TopologicalSpace R
t : TopologicalSpace M₂
inst✝ : ContinuousSMul R M₂
f : M₁ →ₗ[R] M₂
x✝ : TopologicalSpace M₁ := TopologicalSpace.induced (↑f) t
⊢ ContinuousSMul R M₁
[PROOFSTEP]
refine' ⟨continuous_induced_rng.2 _⟩
[GOAL]
ι : Type u_1
R : Type u_2
M₁ : Type u_3
M₂ : Type u_4
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M₁
inst✝³ : AddCommMonoid M₂
inst✝² : Module R M₁
inst✝¹ : Module R M₂
u : TopologicalSpace R
t : TopologicalSpace M₂
inst✝ : ContinuousSMul R M₂
f : M₁ →ₗ[R] M₂
x✝ : TopologicalSpace M₁ := TopologicalSpace.induced (↑f) t
⊢ Continuous (↑f ∘ fun p => p.fst • p.snd)
[PROOFSTEP]
simp_rw [Function.comp, f.map_smul]
[GOAL]
ι : Type u_1
R : Type u_2
M₁ : Type u_3
M₂ : Type u_4
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M₁
inst✝³ : AddCommMonoid M₂
inst✝² : Module R M₁
inst✝¹ : Module R M₂
u : TopologicalSpace R
t : TopologicalSpace M₂
inst✝ : ContinuousSMul R M₂
f : M₁ →ₗ[R] M₂
x✝ : TopologicalSpace M₁ := TopologicalSpace.induced (↑f) t
⊢ Continuous fun x => x.fst • ↑f x.snd
[PROOFSTEP]
exact continuous_fst.smul (continuous_induced_dom.comp continuous_snd)
[GOAL]
R R' : Type u
M M' : Type v
inst✝¹⁰ : Semiring R
inst✝⁹ : Ring R'
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommMonoid M
inst✝⁶ : TopologicalSpace M'
inst✝⁵ : AddCommGroup M'
inst✝⁴ : Module R M
inst✝³ : ContinuousConstSMul R M
inst✝² : Module R' M'
inst✝¹ : ContinuousConstSMul R' M'
inst✝ : ContinuousAdd M
s : Submodule R M
⊢ Dense ↑s ↔ topologicalClosure s = ⊤
[PROOFSTEP]
rw [← SetLike.coe_set_eq, dense_iff_closure_eq]
[GOAL]
R R' : Type u
M M' : Type v
inst✝¹⁰ : Semiring R
inst✝⁹ : Ring R'
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommMonoid M
inst✝⁶ : TopologicalSpace M'
inst✝⁵ : AddCommGroup M'
inst✝⁴ : Module R M
inst✝³ : ContinuousConstSMul R M
inst✝² : Module R' M'
inst✝¹ : ContinuousConstSMul R' M'
inst✝ : ContinuousAdd M
s : Submodule R M
⊢ closure ↑s = Set.univ ↔ ↑(topologicalClosure s) = ↑⊤
[PROOFSTEP]
simp
[GOAL]
R R' : Type u
M M' : Type v
inst✝¹⁰ : Semiring R
inst✝⁹ : Ring R'
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommMonoid M
inst✝⁶ : TopologicalSpace M'
inst✝⁵ : AddCommGroup M'
inst✝⁴ : Module R M
inst✝³ : ContinuousConstSMul R M
inst✝² : Module R' M'
inst✝¹ : ContinuousConstSMul R' M'
inst✝ : ContinuousAdd M
s : Submodule R M
hs : IsCoatom s
⊢ IsClosed ↑s ∨ Dense ↑s
[PROOFSTEP]
refine (hs.le_iff.mp s.le_topologicalClosure).symm.imp ?_ dense_iff_topologicalClosure_eq_top.mpr
[GOAL]
R R' : Type u
M M' : Type v
inst✝¹⁰ : Semiring R
inst✝⁹ : Ring R'
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommMonoid M
inst✝⁶ : TopologicalSpace M'
inst✝⁵ : AddCommGroup M'
inst✝⁴ : Module R M
inst✝³ : ContinuousConstSMul R M
inst✝² : Module R' M'
inst✝¹ : ContinuousConstSMul R' M'
inst✝ : ContinuousAdd M
s : Submodule R M
hs : IsCoatom s
⊢ topologicalClosure s = s → IsClosed ↑s
[PROOFSTEP]
exact fun h ↦ h ▸ isClosed_closure
[GOAL]
ι : Type u_1
R : Type u_2
M : Type u_3
inst✝⁷ : Finite ι
inst✝⁶ : Semiring R
inst✝⁵ : TopologicalSpace R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : TopologicalSpace M
inst✝¹ : ContinuousAdd M
inst✝ : ContinuousSMul R M
f : (ι → R) →ₗ[R] M
⊢ Continuous ↑f
[PROOFSTEP]
cases nonempty_fintype ι
[GOAL]
case intro
ι : Type u_1
R : Type u_2
M : Type u_3
inst✝⁷ : Finite ι
inst✝⁶ : Semiring R
inst✝⁵ : TopologicalSpace R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : TopologicalSpace M
inst✝¹ : ContinuousAdd M
inst✝ : ContinuousSMul R M
f : (ι → R) →ₗ[R] M
val✝ : Fintype ι
⊢ Continuous ↑f
[PROOFSTEP]
classical
  -- for the proof, write `f` in the standard basis, and use that each coordinate is a continuous
      -- function.
have : (f : (ι → R) → M) = fun x => ∑ i : ι, x i • f fun j => if i = j then 1 else 0 :=
  by
  ext x
  exact f.pi_apply_eq_sum_univ x
rw [this]
refine continuous_finset_sum _ fun i _ => ?_
exact (continuous_apply i).smul continuous_const
[GOAL]
case intro
ι : Type u_1
R : Type u_2
M : Type u_3
inst✝⁷ : Finite ι
inst✝⁶ : Semiring R
inst✝⁵ : TopologicalSpace R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : TopologicalSpace M
inst✝¹ : ContinuousAdd M
inst✝ : ContinuousSMul R M
f : (ι → R) →ₗ[R] M
val✝ : Fintype ι
⊢ Continuous ↑f
[PROOFSTEP]
have : (f : (ι → R) → M) = fun x => ∑ i : ι, x i • f fun j => if i = j then 1 else 0 :=
  by
  ext x
  exact f.pi_apply_eq_sum_univ x
[GOAL]
ι : Type u_1
R : Type u_2
M : Type u_3
inst✝⁷ : Finite ι
inst✝⁶ : Semiring R
inst✝⁵ : TopologicalSpace R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : TopologicalSpace M
inst✝¹ : ContinuousAdd M
inst✝ : ContinuousSMul R M
f : (ι → R) →ₗ[R] M
val✝ : Fintype ι
⊢ ↑f = fun x => ∑ i : ι, x i • ↑f fun j => if i = j then 1 else 0
[PROOFSTEP]
ext x
[GOAL]
case h
ι : Type u_1
R : Type u_2
M : Type u_3
inst✝⁷ : Finite ι
inst✝⁶ : Semiring R
inst✝⁵ : TopologicalSpace R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : TopologicalSpace M
inst✝¹ : ContinuousAdd M
inst✝ : ContinuousSMul R M
f : (ι → R) →ₗ[R] M
val✝ : Fintype ι
x : ι → R
⊢ ↑f x = ∑ i : ι, x i • ↑f fun j => if i = j then 1 else 0
[PROOFSTEP]
exact f.pi_apply_eq_sum_univ x
[GOAL]
case intro
ι : Type u_1
R : Type u_2
M : Type u_3
inst✝⁷ : Finite ι
inst✝⁶ : Semiring R
inst✝⁵ : TopologicalSpace R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : TopologicalSpace M
inst✝¹ : ContinuousAdd M
inst✝ : ContinuousSMul R M
f : (ι → R) →ₗ[R] M
val✝ : Fintype ι
this : ↑f = fun x => ∑ i : ι, x i • ↑f fun j => if i = j then 1 else 0
⊢ Continuous ↑f
[PROOFSTEP]
rw [this]
[GOAL]
case intro
ι : Type u_1
R : Type u_2
M : Type u_3
inst✝⁷ : Finite ι
inst✝⁶ : Semiring R
inst✝⁵ : TopologicalSpace R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : TopologicalSpace M
inst✝¹ : ContinuousAdd M
inst✝ : ContinuousSMul R M
f : (ι → R) →ₗ[R] M
val✝ : Fintype ι
this : ↑f = fun x => ∑ i : ι, x i • ↑f fun j => if i = j then 1 else 0
⊢ Continuous fun x => ∑ i : ι, x i • ↑f fun j => if i = j then 1 else 0
[PROOFSTEP]
refine continuous_finset_sum _ fun i _ => ?_
[GOAL]
case intro
ι : Type u_1
R : Type u_2
M : Type u_3
inst✝⁷ : Finite ι
inst✝⁶ : Semiring R
inst✝⁵ : TopologicalSpace R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : TopologicalSpace M
inst✝¹ : ContinuousAdd M
inst✝ : ContinuousSMul R M
f : (ι → R) →ₗ[R] M
val✝ : Fintype ι
this : ↑f = fun x => ∑ i : ι, x i • ↑f fun j => if i = j then 1 else 0
i : ι
x✝ : i ∈ Finset.univ
⊢ Continuous fun x => x i • ↑f fun j => if i = j then 1 else 0
[PROOFSTEP]
exact (continuous_apply i).smul continuous_const
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁶ : Semiring R₁
inst✝¹⁵ : Semiring R₂
inst✝¹⁴ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
⊢ Function.Injective toLinearMap
[PROOFSTEP]
intro f g H
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁶ : Semiring R₁
inst✝¹⁵ : Semiring R₂
inst✝¹⁴ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f g : M₁ →SL[σ₁₂] M₂
H : ↑f = ↑g
⊢ f = g
[PROOFSTEP]
cases f
[GOAL]
case mk
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁶ : Semiring R₁
inst✝¹⁵ : Semiring R₂
inst✝¹⁴ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
g : M₁ →SL[σ₁₂] M₂
toLinearMap✝ : M₁ →ₛₗ[σ₁₂] M₂
cont✝ : Continuous toLinearMap✝.toFun
H : ↑(mk toLinearMap✝) = ↑g
⊢ mk toLinearMap✝ = g
[PROOFSTEP]
cases g
[GOAL]
case mk.mk
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁶ : Semiring R₁
inst✝¹⁵ : Semiring R₂
inst✝¹⁴ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
toLinearMap✝¹ : M₁ →ₛₗ[σ₁₂] M₂
cont✝¹ : Continuous toLinearMap✝¹.toFun
toLinearMap✝ : M₁ →ₛₗ[σ₁₂] M₂
cont✝ : Continuous toLinearMap✝.toFun
H : ↑(mk toLinearMap✝¹) = ↑(mk toLinearMap✝)
⊢ mk toLinearMap✝¹ = mk toLinearMap✝
[PROOFSTEP]
congr
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : Module R₁ M₂
f : M₁ →L[R₁] M₂
c : R₁
x : M₁
⊢ ↑f (c • x) = c • ↑f x
[PROOFSTEP]
simp only [RingHom.id_apply, ContinuousLinearMap.map_smulₛₗ]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²³ : Semiring R₁
inst✝²² : Semiring R₂
inst✝²¹ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝²⁰ : TopologicalSpace M₁
inst✝¹⁹ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁸ : TopologicalSpace M'₁
inst✝¹⁷ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁶ : TopologicalSpace M₂
inst✝¹⁵ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹⁴ : TopologicalSpace M₃
inst✝¹³ : AddCommMonoid M₃
M₄ : Type u_8
inst✝¹² : TopologicalSpace M₄
inst✝¹¹ : AddCommMonoid M₄
inst✝¹⁰ : Module R₁ M₁
inst✝⁹ : Module R₁ M'₁
inst✝⁸ : Module R₂ M₂
inst✝⁷ : Module R₃ M₃
inst✝⁶ : RingHomSurjective σ₁₂
inst✝⁵ : TopologicalSpace R₁
inst✝⁴ : TopologicalSpace R₂
inst✝³ : ContinuousSMul R₁ M₁
inst✝² : ContinuousAdd M₁
inst✝¹ : ContinuousSMul R₂ M₂
inst✝ : ContinuousAdd M₂
f : M₁ →SL[σ₁₂] M₂
hf' : DenseRange ↑f
s : Submodule R₁ M₁
hs : Submodule.topologicalClosure s = ⊤
⊢ Submodule.topologicalClosure (Submodule.map (↑f) s) = ⊤
[PROOFSTEP]
rw [SetLike.ext'_iff] at hs ⊢
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²³ : Semiring R₁
inst✝²² : Semiring R₂
inst✝²¹ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝²⁰ : TopologicalSpace M₁
inst✝¹⁹ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁸ : TopologicalSpace M'₁
inst✝¹⁷ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁶ : TopologicalSpace M₂
inst✝¹⁵ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹⁴ : TopologicalSpace M₃
inst✝¹³ : AddCommMonoid M₃
M₄ : Type u_8
inst✝¹² : TopologicalSpace M₄
inst✝¹¹ : AddCommMonoid M₄
inst✝¹⁰ : Module R₁ M₁
inst✝⁹ : Module R₁ M'₁
inst✝⁸ : Module R₂ M₂
inst✝⁷ : Module R₃ M₃
inst✝⁶ : RingHomSurjective σ₁₂
inst✝⁵ : TopologicalSpace R₁
inst✝⁴ : TopologicalSpace R₂
inst✝³ : ContinuousSMul R₁ M₁
inst✝² : ContinuousAdd M₁
inst✝¹ : ContinuousSMul R₂ M₂
inst✝ : ContinuousAdd M₂
f : M₁ →SL[σ₁₂] M₂
hf' : DenseRange ↑f
s : Submodule R₁ M₁
hs✝ : Submodule.topologicalClosure s = ⊤
hs : ↑(Submodule.topologicalClosure s) = ↑⊤
⊢ ↑(Submodule.topologicalClosure (Submodule.map (↑f) s)) = ↑⊤
[PROOFSTEP]
simp only [Submodule.topologicalClosure_coe, Submodule.top_coe, ← dense_iff_closure_eq] at hs ⊢
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²³ : Semiring R₁
inst✝²² : Semiring R₂
inst✝²¹ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝²⁰ : TopologicalSpace M₁
inst✝¹⁹ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁸ : TopologicalSpace M'₁
inst✝¹⁷ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁶ : TopologicalSpace M₂
inst✝¹⁵ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹⁴ : TopologicalSpace M₃
inst✝¹³ : AddCommMonoid M₃
M₄ : Type u_8
inst✝¹² : TopologicalSpace M₄
inst✝¹¹ : AddCommMonoid M₄
inst✝¹⁰ : Module R₁ M₁
inst✝⁹ : Module R₁ M'₁
inst✝⁸ : Module R₂ M₂
inst✝⁷ : Module R₃ M₃
inst✝⁶ : RingHomSurjective σ₁₂
inst✝⁵ : TopologicalSpace R₁
inst✝⁴ : TopologicalSpace R₂
inst✝³ : ContinuousSMul R₁ M₁
inst✝² : ContinuousAdd M₁
inst✝¹ : ContinuousSMul R₂ M₂
inst✝ : ContinuousAdd M₂
f : M₁ →SL[σ₁₂] M₂
hf' : DenseRange ↑f
s : Submodule R₁ M₁
hs✝ : Submodule.topologicalClosure s = ⊤
hs : Dense ↑s
⊢ Dense ↑(Submodule.map (↑f) s)
[PROOFSTEP]
exact hf'.dense_image f.continuous hs
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁶ : Semiring R₁
inst✝¹⁵ : Semiring R₂
inst✝¹⁴ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f : M₁ →SL[σ₁₂] M₂
hf : f ≠ 0
⊢ ∃ x, ↑f x ≠ 0
[PROOFSTEP]
by_contra' h
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁶ : Semiring R₁
inst✝¹⁵ : Semiring R₂
inst✝¹⁴ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f : M₁ →SL[σ₁₂] M₂
hf : f ≠ 0
h : ∀ (x : M₁), ↑f x = 0
⊢ False
[PROOFSTEP]
exact hf (ContinuousLinearMap.ext h)
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁶ : Semiring R₁
inst✝¹⁵ : Semiring R₂
inst✝¹⁴ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f : M₁ →L[R₁] M₁
⊢ ↑f = LinearMap.id ↔ f = id R₁ M₁
[PROOFSTEP]
rw [← coe_id, coe_inj]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
⊢ ∀ (a b c : M₁ →SL[σ₁₂] M₂), a + b + c = a + (b + c)
[PROOFSTEP]
intros
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
a✝ b✝ c✝ : M₁ →SL[σ₁₂] M₂
⊢ a✝ + b✝ + c✝ = a✝ + (b✝ + c✝)
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
a✝ b✝ c✝ : M₁ →SL[σ₁₂] M₂
x✝ : M₁
⊢ ↑(a✝ + b✝ + c✝) x✝ = ↑(a✝ + (b✝ + c✝)) x✝
[PROOFSTEP]
apply_rules [zero_add, add_assoc, add_zero, add_left_neg, add_comm]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
⊢ ∀ (a : M₁ →SL[σ₁₂] M₂), 0 + a = a
[PROOFSTEP]
intros
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
a✝ : M₁ →SL[σ₁₂] M₂
⊢ 0 + a✝ = a✝
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
a✝ : M₁ →SL[σ₁₂] M₂
x✝ : M₁
⊢ ↑(0 + a✝) x✝ = ↑a✝ x✝
[PROOFSTEP]
apply_rules [zero_add, add_assoc, add_zero, add_left_neg, add_comm]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
⊢ ∀ (a : M₁ →SL[σ₁₂] M₂), a + 0 = a
[PROOFSTEP]
intros
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
a✝ : M₁ →SL[σ₁₂] M₂
⊢ a✝ + 0 = a✝
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
a✝ : M₁ →SL[σ₁₂] M₂
x✝ : M₁
⊢ ↑(a✝ + 0) x✝ = ↑a✝ x✝
[PROOFSTEP]
apply_rules [zero_add, add_assoc, add_zero, add_left_neg, add_comm]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
f : M₁ →SL[σ₁₂] M₂
⊢ (fun x x_1 => x • x_1) 0 f = 0
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
f : M₁ →SL[σ₁₂] M₂
x✝ : M₁
⊢ ↑((fun x x_1 => x • x_1) 0 f) x✝ = ↑0 x✝
[PROOFSTEP]
simp
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
n : ℕ
f : M₁ →SL[σ₁₂] M₂
⊢ (fun x x_1 => x • x_1) (n + 1) f = f + (fun x x_1 => x • x_1) n f
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
n : ℕ
f : M₁ →SL[σ₁₂] M₂
x✝ : M₁
⊢ ↑((fun x x_1 => x • x_1) (n + 1) f) x✝ = ↑(f + (fun x x_1 => x • x_1) n f) x✝
[PROOFSTEP]
simp [Nat.add_comm n 1, add_smul]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
⊢ ∀ (a b : M₁ →SL[σ₁₂] M₂), a + b = b + a
[PROOFSTEP]
intros
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
a✝ b✝ : M₁ →SL[σ₁₂] M₂
⊢ a✝ + b✝ = b✝ + a✝
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
a✝ b✝ : M₁ →SL[σ₁₂] M₂
x✝ : M₁
⊢ ↑(a✝ + b✝) x✝ = ↑(b✝ + a✝) x✝
[PROOFSTEP]
apply_rules [zero_add, add_assoc, add_zero, add_left_neg, add_comm]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
ι : Type u_9
t : Finset ι
f : ι → M₁ →SL[σ₁₂] M₂
⊢ ↑(∑ d in t, f d) = ∑ d in t, ↑(f d)
[PROOFSTEP]
simp only [← coe_coe, coe_sum, LinearMap.coeFn_sum]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : ContinuousAdd M₂
ι : Type u_9
t : Finset ι
f : ι → M₁ →SL[σ₁₂] M₂
b : M₁
⊢ ↑(∑ d in t, f d) b = ∑ d in t, ↑(f d) b
[PROOFSTEP]
simp only [coe_sum', Finset.sum_apply]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
g : M₂ →SL[σ₂₃] M₃
⊢ comp g 0 = 0
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
g : M₂ →SL[σ₂₃] M₃
x✝ : M₁
⊢ ↑(comp g 0) x✝ = ↑0 x✝
[PROOFSTEP]
simp
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
f : M₁ →SL[σ₁₂] M₂
⊢ comp 0 f = 0
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁷ : Semiring R₁
inst✝¹⁶ : Semiring R₂
inst✝¹⁵ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
f : M₁ →SL[σ₁₂] M₂
x✝ : M₁
⊢ ↑(comp 0 f) x✝ = ↑0 x✝
[PROOFSTEP]
simp
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁹ : Semiring R₁
inst✝¹⁸ : Semiring R₂
inst✝¹⁷ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁶ : TopologicalSpace M₁
inst✝¹⁵ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁴ : TopologicalSpace M'₁
inst✝¹³ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹² : TopologicalSpace M₂
inst✝¹¹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹⁰ : TopologicalSpace M₃
inst✝⁹ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁸ : TopologicalSpace M₄
inst✝⁷ : AddCommMonoid M₄
inst✝⁶ : Module R₁ M₁
inst✝⁵ : Module R₁ M'₁
inst✝⁴ : Module R₂ M₂
inst✝³ : Module R₃ M₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : ContinuousAdd M₂
inst✝ : ContinuousAdd M₃
g : M₂ →SL[σ₂₃] M₃
f₁ f₂ : M₁ →SL[σ₁₂] M₂
⊢ comp g (f₁ + f₂) = comp g f₁ + comp g f₂
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁹ : Semiring R₁
inst✝¹⁸ : Semiring R₂
inst✝¹⁷ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁶ : TopologicalSpace M₁
inst✝¹⁵ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁴ : TopologicalSpace M'₁
inst✝¹³ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹² : TopologicalSpace M₂
inst✝¹¹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹⁰ : TopologicalSpace M₃
inst✝⁹ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁸ : TopologicalSpace M₄
inst✝⁷ : AddCommMonoid M₄
inst✝⁶ : Module R₁ M₁
inst✝⁵ : Module R₁ M'₁
inst✝⁴ : Module R₂ M₂
inst✝³ : Module R₃ M₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : ContinuousAdd M₂
inst✝ : ContinuousAdd M₃
g : M₂ →SL[σ₂₃] M₃
f₁ f₂ : M₁ →SL[σ₁₂] M₂
x✝ : M₁
⊢ ↑(comp g (f₁ + f₂)) x✝ = ↑(comp g f₁ + comp g f₂) x✝
[PROOFSTEP]
simp
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁸ : Semiring R₁
inst✝¹⁷ : Semiring R₂
inst✝¹⁶ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁵ : TopologicalSpace M₁
inst✝¹⁴ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹³ : TopologicalSpace M'₁
inst✝¹² : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹¹ : TopologicalSpace M₂
inst✝¹⁰ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁹ : TopologicalSpace M₃
inst✝⁸ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁷ : TopologicalSpace M₄
inst✝⁶ : AddCommMonoid M₄
inst✝⁵ : Module R₁ M₁
inst✝⁴ : Module R₁ M'₁
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝ : ContinuousAdd M₃
g₁ g₂ : M₂ →SL[σ₂₃] M₃
f : M₁ →SL[σ₁₂] M₂
⊢ comp (g₁ + g₂) f = comp g₁ f + comp g₂ f
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁸ : Semiring R₁
inst✝¹⁷ : Semiring R₂
inst✝¹⁶ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁵ : TopologicalSpace M₁
inst✝¹⁴ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹³ : TopologicalSpace M'₁
inst✝¹² : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹¹ : TopologicalSpace M₂
inst✝¹⁰ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁹ : TopologicalSpace M₃
inst✝⁸ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁷ : TopologicalSpace M₄
inst✝⁶ : AddCommMonoid M₄
inst✝⁵ : Module R₁ M₁
inst✝⁴ : Module R₁ M'₁
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝ : ContinuousAdd M₃
g₁ g₂ : M₂ →SL[σ₂₃] M₃
f : M₁ →SL[σ₁₂] M₂
x✝ : M₁
⊢ ↑(comp (g₁ + g₂) f) x✝ = ↑(comp g₁ f + comp g₂ f) x✝
[PROOFSTEP]
simp
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁹ : Semiring R₁
inst✝¹⁸ : Semiring R₂
inst✝¹⁷ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁶ : TopologicalSpace M₁
inst✝¹⁵ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁴ : TopologicalSpace M'₁
inst✝¹³ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹² : TopologicalSpace M₂
inst✝¹¹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹⁰ : TopologicalSpace M₃
inst✝⁹ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁸ : TopologicalSpace M₄
inst✝⁷ : AddCommMonoid M₄
inst✝⁶ : Module R₁ M₁
inst✝⁵ : Module R₁ M'₁
inst✝⁴ : Module R₂ M₂
inst✝³ : Module R₃ M₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
F : Type u_9
inst✝¹ : ContinuousAdd M₁
inst✝ : ContinuousAdd M'₁
⊢ coprod (inl R₁ M₁ M'₁) (inr R₁ M₁ M'₁) = id R₁ (M₁ × M'₁)
[PROOFSTEP]
apply coe_injective
[GOAL]
case a
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝¹⁹ : Semiring R₁
inst✝¹⁸ : Semiring R₂
inst✝¹⁷ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁶ : TopologicalSpace M₁
inst✝¹⁵ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁴ : TopologicalSpace M'₁
inst✝¹³ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹² : TopologicalSpace M₂
inst✝¹¹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹⁰ : TopologicalSpace M₃
inst✝⁹ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁸ : TopologicalSpace M₄
inst✝⁷ : AddCommMonoid M₄
inst✝⁶ : Module R₁ M₁
inst✝⁵ : Module R₁ M'₁
inst✝⁴ : Module R₂ M₂
inst✝³ : Module R₃ M₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
F : Type u_9
inst✝¹ : ContinuousAdd M₁
inst✝ : ContinuousAdd M'₁
⊢ ↑(coprod (inl R₁ M₁ M'₁) (inr R₁ M₁ M'₁)) = ↑(id R₁ (M₁ × M'₁))
[PROOFSTEP]
apply LinearMap.coprod_inl_inr
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁰ : Semiring R₁
inst✝¹⁹ : Semiring R₂
inst✝¹⁸ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁷ : TopologicalSpace M₁
inst✝¹⁶ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁵ : TopologicalSpace M'₁
inst✝¹⁴ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹³ : TopologicalSpace M₂
inst✝¹² : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹¹ : TopologicalSpace M₃
inst✝¹⁰ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁹ : TopologicalSpace M₄
inst✝⁸ : AddCommMonoid M₄
inst✝⁷ : Module R₁ M₁
inst✝⁶ : Module R₁ M'₁
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
inst✝³ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
F : Type u_9
inst✝² : Module R₁ M₂
inst✝¹ : TopologicalSpace R₁
inst✝ : ContinuousSMul R₁ M₂
c : R₁ →L[R₁] M₂
⊢ smulRight 1 (↑c 1) = c
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁰ : Semiring R₁
inst✝¹⁹ : Semiring R₂
inst✝¹⁸ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁷ : TopologicalSpace M₁
inst✝¹⁶ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁵ : TopologicalSpace M'₁
inst✝¹⁴ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹³ : TopologicalSpace M₂
inst✝¹² : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹¹ : TopologicalSpace M₃
inst✝¹⁰ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁹ : TopologicalSpace M₄
inst✝⁸ : AddCommMonoid M₄
inst✝⁷ : Module R₁ M₁
inst✝⁶ : Module R₁ M'₁
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
inst✝³ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
F : Type u_9
inst✝² : Module R₁ M₂
inst✝¹ : TopologicalSpace R₁
inst✝ : ContinuousSMul R₁ M₂
c : R₁ →L[R₁] M₂
⊢ ↑(smulRight 1 (↑c 1)) 1 = ↑c 1
[PROOFSTEP]
simp [← ContinuousLinearMap.map_smul_of_tower]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁰ : Semiring R₁
inst✝¹⁹ : Semiring R₂
inst✝¹⁸ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁷ : TopologicalSpace M₁
inst✝¹⁶ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁵ : TopologicalSpace M'₁
inst✝¹⁴ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹³ : TopologicalSpace M₂
inst✝¹² : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹¹ : TopologicalSpace M₃
inst✝¹⁰ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁹ : TopologicalSpace M₄
inst✝⁸ : AddCommMonoid M₄
inst✝⁷ : Module R₁ M₁
inst✝⁶ : Module R₁ M'₁
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
inst✝³ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
F : Type u_9
inst✝² : Module R₁ M₂
inst✝¹ : TopologicalSpace R₁
inst✝ : ContinuousSMul R₁ M₂
f f' : M₂
⊢ smulRight 1 f = smulRight 1 f' ↔ f = f'
[PROOFSTEP]
simp only [ext_ring_iff, smulRight_apply, one_apply, one_smul]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²¹ : Semiring R₁
inst✝²⁰ : Semiring R₂
inst✝¹⁹ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁸ : TopologicalSpace M₁
inst✝¹⁷ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁶ : TopologicalSpace M'₁
inst✝¹⁵ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁴ : TopologicalSpace M₂
inst✝¹³ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹² : TopologicalSpace M₃
inst✝¹¹ : AddCommMonoid M₃
M₄ : Type u_8
inst✝¹⁰ : TopologicalSpace M₄
inst✝⁹ : AddCommMonoid M₄
inst✝⁸ : Module R₁ M₁
inst✝⁷ : Module R₁ M'₁
inst✝⁶ : Module R₂ M₂
inst✝⁵ : Module R₃ M₃
inst✝⁴ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
F : Type u_9
inst✝³ : Module R₁ M₂
inst✝² : TopologicalSpace R₁
inst✝¹ : ContinuousSMul R₁ M₂
inst✝ : ContinuousMul R₁
x : M₂
c : R₁
⊢ comp (smulRight 1 x) (smulRight 1 c) = smulRight 1 (c • x)
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²¹ : Semiring R₁
inst✝²⁰ : Semiring R₂
inst✝¹⁹ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁸ : TopologicalSpace M₁
inst✝¹⁷ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁶ : TopologicalSpace M'₁
inst✝¹⁵ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁴ : TopologicalSpace M₂
inst✝¹³ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹² : TopologicalSpace M₃
inst✝¹¹ : AddCommMonoid M₃
M₄ : Type u_8
inst✝¹⁰ : TopologicalSpace M₄
inst✝⁹ : AddCommMonoid M₄
inst✝⁸ : Module R₁ M₁
inst✝⁷ : Module R₁ M'₁
inst✝⁶ : Module R₂ M₂
inst✝⁵ : Module R₃ M₃
inst✝⁴ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
F : Type u_9
inst✝³ : Module R₁ M₂
inst✝² : TopologicalSpace R₁
inst✝¹ : ContinuousSMul R₁ M₂
inst✝ : ContinuousMul R₁
x : M₂
c : R₁
⊢ ↑(comp (smulRight 1 x) (smulRight 1 c)) 1 = ↑(smulRight 1 (c • x)) 1
[PROOFSTEP]
simp [mul_smul]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²² : Semiring R₁
inst✝²¹ : Semiring R₂
inst✝²⁰ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁹ : TopologicalSpace M₁
inst✝¹⁸ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁷ : TopologicalSpace M'₁
inst✝¹⁶ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁵ : TopologicalSpace M₂
inst✝¹⁴ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹³ : TopologicalSpace M₃
inst✝¹² : AddCommMonoid M₃
M₄ : Type u_8
inst✝¹¹ : TopologicalSpace M₄
inst✝¹⁰ : AddCommMonoid M₄
inst✝⁹ : Module R₁ M₁
inst✝⁸ : Module R₁ M'₁
inst✝⁷ : Module R₂ M₂
inst✝⁶ : Module R₃ M₃
inst✝⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
F : Type u_9
inst✝⁴ : Module R₁ M₂
inst✝³ : TopologicalSpace R₁
inst✝² : ContinuousSMul R₁ M₂
inst✝¹ : ContinuousSMul R₁ M₁
inst✝ : ContinuousAdd M₁
x y : M₁
⊢ toSpanSingleton R₁ (x + y) = toSpanSingleton R₁ x + toSpanSingleton R₁ y
[PROOFSTEP]
ext1
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²² : Semiring R₁
inst✝²¹ : Semiring R₂
inst✝²⁰ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝¹⁹ : TopologicalSpace M₁
inst✝¹⁸ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁷ : TopologicalSpace M'₁
inst✝¹⁶ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁵ : TopologicalSpace M₂
inst✝¹⁴ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹³ : TopologicalSpace M₃
inst✝¹² : AddCommMonoid M₃
M₄ : Type u_8
inst✝¹¹ : TopologicalSpace M₄
inst✝¹⁰ : AddCommMonoid M₄
inst✝⁹ : Module R₁ M₁
inst✝⁸ : Module R₁ M'₁
inst✝⁷ : Module R₂ M₂
inst✝⁶ : Module R₃ M₃
inst✝⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
F : Type u_9
inst✝⁴ : Module R₁ M₂
inst✝³ : TopologicalSpace R₁
inst✝² : ContinuousSMul R₁ M₂
inst✝¹ : ContinuousSMul R₁ M₁
inst✝ : ContinuousAdd M₁
x y : M₁
⊢ ↑(toSpanSingleton R₁ (x + y)) 1 = ↑(toSpanSingleton R₁ x + toSpanSingleton R₁ y) 1
[PROOFSTEP]
simp [toSpanSingleton_apply]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁵ : Semiring R₁
inst✝²⁴ : Semiring R₂
inst✝²³ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝²² : TopologicalSpace M₁
inst✝²¹ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝²⁰ : TopologicalSpace M'₁
inst✝¹⁹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁸ : TopologicalSpace M₂
inst✝¹⁷ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹⁶ : TopologicalSpace M₃
inst✝¹⁵ : AddCommMonoid M₃
M₄ : Type u_8
inst✝¹⁴ : TopologicalSpace M₄
inst✝¹³ : AddCommMonoid M₄
inst✝¹² : Module R₁ M₁
inst✝¹¹ : Module R₁ M'₁
inst✝¹⁰ : Module R₂ M₂
inst✝⁹ : Module R₃ M₃
inst✝⁸ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
F : Type u_9
inst✝⁷ : Module R₁ M₂
inst✝⁶ : TopologicalSpace R₁
inst✝⁵ : ContinuousSMul R₁ M₂
inst✝⁴ : ContinuousSMul R₁ M₁
α : Type u_10
inst✝³ : Monoid α
inst✝² : DistribMulAction α M₁
inst✝¹ : ContinuousConstSMul α M₁
inst✝ : SMulCommClass R₁ α M₁
c : α
x : M₁
⊢ toSpanSingleton R₁ (c • x) = c • toSpanSingleton R₁ x
[PROOFSTEP]
ext1
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁵ : Semiring R₁
inst✝²⁴ : Semiring R₂
inst✝²³ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R₁ →+* R₃
M₁ : Type u_4
inst✝²² : TopologicalSpace M₁
inst✝²¹ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝²⁰ : TopologicalSpace M'₁
inst✝¹⁹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁸ : TopologicalSpace M₂
inst✝¹⁷ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹⁶ : TopologicalSpace M₃
inst✝¹⁵ : AddCommMonoid M₃
M₄ : Type u_8
inst✝¹⁴ : TopologicalSpace M₄
inst✝¹³ : AddCommMonoid M₄
inst✝¹² : Module R₁ M₁
inst✝¹¹ : Module R₁ M'₁
inst✝¹⁰ : Module R₂ M₂
inst✝⁹ : Module R₃ M₃
inst✝⁸ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
F : Type u_9
inst✝⁷ : Module R₁ M₂
inst✝⁶ : TopologicalSpace R₁
inst✝⁵ : ContinuousSMul R₁ M₂
inst✝⁴ : ContinuousSMul R₁ M₁
α : Type u_10
inst✝³ : Monoid α
inst✝² : DistribMulAction α M₁
inst✝¹ : ContinuousConstSMul α M₁
inst✝ : SMulCommClass R₁ α M₁
c : α
x : M₁
⊢ ↑(toSpanSingleton R₁ (c • x)) 1 = ↑(c • toSpanSingleton R₁ x) 1
[PROOFSTEP]
rw [toSpanSingleton_apply, smul_apply, toSpanSingleton_apply, smul_comm]
[GOAL]
R : Type u_1
inst✝⁹ : Semiring R
M : Type u_2
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
M₂ : Type u_3
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R M₂
ι : Type u_4
φ : ι → Type u_5
inst✝² : (i : ι) → TopologicalSpace (φ i)
inst✝¹ : (i : ι) → AddCommMonoid (φ i)
inst✝ : (i : ι) → Module R (φ i)
f : (i : ι) → M →L[R] φ i
⊢ pi f = 0 ↔ ∀ (i : ι), f i = 0
[PROOFSTEP]
simp only [ext_iff, pi_apply, Function.funext_iff]
[GOAL]
R : Type u_1
inst✝⁹ : Semiring R
M : Type u_2
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
M₂ : Type u_3
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R M₂
ι : Type u_4
φ : ι → Type u_5
inst✝² : (i : ι) → TopologicalSpace (φ i)
inst✝¹ : (i : ι) → AddCommMonoid (φ i)
inst✝ : (i : ι) → Module R (φ i)
f : (i : ι) → M →L[R] φ i
⊢ (∀ (x : M) (a : ι), ↑(f a) x = ↑0 x a) ↔ ∀ (i : ι) (x : M), ↑(f i) x = ↑0 x
[PROOFSTEP]
exact forall_swap
[GOAL]
R : Type u_1
inst✝¹⁰ : Semiring R
M : Type u_2
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
M₂ : Type u_3
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
ι : Type u_4
φ : ι → Type u_5
inst✝³ : (i : ι) → TopologicalSpace (φ i)
inst✝² : (i : ι) → AddCommMonoid (φ i)
inst✝¹ : (i : ι) → Module R (φ i)
I J : Set ι
inst✝ : DecidablePred fun i => i ∈ I
hd : Disjoint I J
hu : Set.univ ⊆ I ∪ J
i : ↑I
⊢ Continuous fun a => AddHom.toFun (↑(LinearMap.iInfKerProjEquiv R φ hd hu)).toAddHom a i
[PROOFSTEP]
have := @continuous_subtype_val _ _ fun x => x ∈ (⨅ i ∈ J, ker (proj i : (∀ i, φ i) →L[R] φ i) : Submodule R (∀ i, φ i))
[GOAL]
R : Type u_1
inst✝¹⁰ : Semiring R
M : Type u_2
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
M₂ : Type u_3
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
ι : Type u_4
φ : ι → Type u_5
inst✝³ : (i : ι) → TopologicalSpace (φ i)
inst✝² : (i : ι) → AddCommMonoid (φ i)
inst✝¹ : (i : ι) → Module R (φ i)
I J : Set ι
inst✝ : DecidablePred fun i => i ∈ I
hd : Disjoint I J
hu : Set.univ ⊆ I ∪ J
i : ↑I
this : Continuous Subtype.val
⊢ Continuous fun a => AddHom.toFun (↑(LinearMap.iInfKerProjEquiv R φ hd hu)).toAddHom a i
[PROOFSTEP]
have := Continuous.comp (continuous_apply (π := φ) i) this
[GOAL]
R : Type u_1
inst✝¹⁰ : Semiring R
M : Type u_2
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
M₂ : Type u_3
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
ι : Type u_4
φ : ι → Type u_5
inst✝³ : (i : ι) → TopologicalSpace (φ i)
inst✝² : (i : ι) → AddCommMonoid (φ i)
inst✝¹ : (i : ι) → Module R (φ i)
I J : Set ι
inst✝ : DecidablePred fun i => i ∈ I
hd : Disjoint I J
hu : Set.univ ⊆ I ∪ J
i : ↑I
this✝ : Continuous Subtype.val
this : Continuous ((fun p => p ↑i) ∘ Subtype.val)
⊢ Continuous fun a => AddHom.toFun (↑(LinearMap.iInfKerProjEquiv R φ hd hu)).toAddHom a i
[PROOFSTEP]
exact this
[GOAL]
R : Type u_1
inst✝¹⁰ : Semiring R
M : Type u_2
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
M₂ : Type u_3
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
ι : Type u_4
φ : ι → Type u_5
inst✝³ : (i : ι) → TopologicalSpace (φ i)
inst✝² : (i : ι) → AddCommMonoid (φ i)
inst✝¹ : (i : ι) → Module R (φ i)
I J : Set ι
inst✝ : DecidablePred fun i => i ∈ I
hd : Disjoint I J
hu : Set.univ ⊆ I ∪ J
i : ι
⊢ Continuous fun a => ↑(LinearMap.pi fun i => if h : i ∈ I then LinearMap.proj { val := i, property := h } else 0) a i
[PROOFSTEP]
change
  Continuous
    (⇑(if h : i ∈ I then LinearMap.proj (R := R) (ι := ↥I) (φ := fun i : ↥I => φ i) ⟨i, h⟩
      else (0 : ((i : I) → φ i) →ₗ[R] φ i)))
[GOAL]
R : Type u_1
inst✝¹⁰ : Semiring R
M : Type u_2
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
M₂ : Type u_3
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
ι : Type u_4
φ : ι → Type u_5
inst✝³ : (i : ι) → TopologicalSpace (φ i)
inst✝² : (i : ι) → AddCommMonoid (φ i)
inst✝¹ : (i : ι) → Module R (φ i)
I J : Set ι
inst✝ : DecidablePred fun i => i ∈ I
hd : Disjoint I J
hu : Set.univ ⊆ I ∪ J
i : ι
⊢ Continuous ↑(if h : i ∈ I then LinearMap.proj { val := i, property := h } else 0)
[PROOFSTEP]
split_ifs <;> [apply continuous_apply; exact continuous_zero]
[GOAL]
R : Type u_1
inst✝¹⁰ : Semiring R
M : Type u_2
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
M₂ : Type u_3
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
ι : Type u_4
φ : ι → Type u_5
inst✝³ : (i : ι) → TopologicalSpace (φ i)
inst✝² : (i : ι) → AddCommMonoid (φ i)
inst✝¹ : (i : ι) → Module R (φ i)
I J : Set ι
inst✝ : DecidablePred fun i => i ∈ I
hd : Disjoint I J
hu : Set.univ ⊆ I ∪ J
i : ι
⊢ Continuous ↑(if h : i ∈ I then LinearMap.proj { val := i, property := h } else 0)
[PROOFSTEP]
split_ifs
[GOAL]
case pos
R : Type u_1
inst✝¹⁰ : Semiring R
M : Type u_2
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
M₂ : Type u_3
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
ι : Type u_4
φ : ι → Type u_5
inst✝³ : (i : ι) → TopologicalSpace (φ i)
inst✝² : (i : ι) → AddCommMonoid (φ i)
inst✝¹ : (i : ι) → Module R (φ i)
I J : Set ι
inst✝ : DecidablePred fun i => i ∈ I
hd : Disjoint I J
hu : Set.univ ⊆ I ∪ J
i : ι
h✝ : i ∈ I
⊢ Continuous ↑(LinearMap.proj { val := i, property := h✝ })
[PROOFSTEP]
apply continuous_apply
[GOAL]
case neg
R : Type u_1
inst✝¹⁰ : Semiring R
M : Type u_2
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
M₂ : Type u_3
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
ι : Type u_4
φ : ι → Type u_5
inst✝³ : (i : ι) → TopologicalSpace (φ i)
inst✝² : (i : ι) → AddCommMonoid (φ i)
inst✝¹ : (i : ι) → Module R (φ i)
I J : Set ι
inst✝ : DecidablePred fun i => i ∈ I
hd : Disjoint I J
hu : Set.univ ⊆ I ∪ J
i : ι
h✝ : ¬i ∈ I
⊢ Continuous ↑0
[PROOFSTEP]
exact continuous_zero
[GOAL]
R : Type u_1
inst✝¹³ : Ring R
R₂ : Type u_2
inst✝¹² : Ring R₂
R₃ : Type u_3
inst✝¹¹ : Ring R₃
M : Type u_4
inst✝¹⁰ : TopologicalSpace M
inst✝⁹ : AddCommGroup M
M₂ : Type u_5
inst✝⁸ : TopologicalSpace M₂
inst✝⁷ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁶ : TopologicalSpace M₃
inst✝⁵ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁴ : TopologicalSpace M₄
inst✝³ : AddCommGroup M₄
inst✝² : Module R M
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
f : M →SL[σ₁₂] M₂
x : M
⊢ ↑f (-x) = -↑f x
[PROOFSTEP]
exact map_neg f x
[GOAL]
R : Type u_1
inst✝¹³ : Ring R
R₂ : Type u_2
inst✝¹² : Ring R₂
R₃ : Type u_3
inst✝¹¹ : Ring R₃
M : Type u_4
inst✝¹⁰ : TopologicalSpace M
inst✝⁹ : AddCommGroup M
M₂ : Type u_5
inst✝⁸ : TopologicalSpace M₂
inst✝⁷ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁶ : TopologicalSpace M₃
inst✝⁵ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁴ : TopologicalSpace M₄
inst✝³ : AddCommGroup M₄
inst✝² : Module R M
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
f : M →SL[σ₁₂] M₂
x y : M
⊢ ↑f (x - y) = ↑f x - ↑f y
[PROOFSTEP]
exact map_sub f x y
[GOAL]
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
⊢ AddCommGroup (M →SL[σ₁₂] M₂)
[PROOFSTEP]
refine'
  { ContinuousLinearMap.addCommMonoid with
    zero := 0
    add := (· + ·)
    neg := (-·)
    sub := (· - ·)
    sub_eq_add_neg := _
    nsmul := (· • ·)
    zsmul := (· • ·)
    zsmul_zero' := fun f => by ext; simp
    zsmul_succ' := fun n f => by ext; simp [add_smul, add_comm]
    zsmul_neg' := fun n f => by ext; simp [Nat.succ_eq_add_one, add_smul] .. }
[GOAL]
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
f : M →SL[σ₁₂] M₂
⊢ (fun x x_1 => x • x_1) 0 f = 0
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
f : M →SL[σ₁₂] M₂
x✝ : M
⊢ ↑((fun x x_1 => x • x_1) 0 f) x✝ = ↑0 x✝
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
n : ℕ
f : M →SL[σ₁₂] M₂
⊢ (fun x x_1 => x • x_1) (Int.ofNat (Nat.succ n)) f = f + (fun x x_1 => x • x_1) (Int.ofNat n) f
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
n : ℕ
f : M →SL[σ₁₂] M₂
x✝ : M
⊢ ↑((fun x x_1 => x • x_1) (Int.ofNat (Nat.succ n)) f) x✝ = ↑(f + (fun x x_1 => x • x_1) (Int.ofNat n) f) x✝
[PROOFSTEP]
simp [add_smul, add_comm]
[GOAL]
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
n : ℕ
f : M →SL[σ₁₂] M₂
⊢ (fun x x_1 => x • x_1) (Int.negSucc n) f = -(fun x x_1 => x • x_1) (↑(Nat.succ n)) f
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
n : ℕ
f : M →SL[σ₁₂] M₂
x✝ : M
⊢ ↑((fun x x_1 => x • x_1) (Int.negSucc n) f) x✝ = ↑(-(fun x x_1 => x • x_1) (↑(Nat.succ n)) f) x✝
[PROOFSTEP]
simp [Nat.succ_eq_add_one, add_smul]
[GOAL]
case refine'_1
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
⊢ ∀ (a b : M →SL[σ₁₂] M₂), a - b = a + -b
[PROOFSTEP]
{ intros
  ext
  apply_rules [zero_add, add_assoc, add_zero, add_left_neg, add_comm, sub_eq_add_neg]
}
[GOAL]
case refine'_1
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
⊢ ∀ (a b : M →SL[σ₁₂] M₂), a - b = a + -b
[PROOFSTEP]
intros
[GOAL]
case refine'_1
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
a✝ b✝ : M →SL[σ₁₂] M₂
⊢ a✝ - b✝ = a✝ + -b✝
[PROOFSTEP]
ext
[GOAL]
case refine'_1.h
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
a✝ b✝ : M →SL[σ₁₂] M₂
x✝ : M
⊢ ↑(a✝ - b✝) x✝ = ↑(a✝ + -b✝) x✝
[PROOFSTEP]
apply_rules [zero_add, add_assoc, add_zero, add_left_neg, add_comm, sub_eq_add_neg]
[GOAL]
case refine'_2
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
⊢ ∀ (a : M →SL[σ₁₂] M₂), -a + a = 0
[PROOFSTEP]
{ intros
  ext
  apply_rules [zero_add, add_assoc, add_zero, add_left_neg, add_comm, sub_eq_add_neg]
}
[GOAL]
case refine'_2
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
⊢ ∀ (a : M →SL[σ₁₂] M₂), -a + a = 0
[PROOFSTEP]
intros
[GOAL]
case refine'_2
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
a✝ : M →SL[σ₁₂] M₂
⊢ -a✝ + a✝ = 0
[PROOFSTEP]
ext
[GOAL]
case refine'_2.h
R : Type u_1
inst✝¹⁴ : Ring R
R₂ : Type u_2
inst✝¹³ : Ring R₂
R₃ : Type u_3
inst✝¹² : Ring R₃
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : AddCommGroup M
M₂ : Type u_5
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommGroup M₄
inst✝³ : Module R M
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : TopologicalAddGroup M₂
src✝ : AddCommMonoid (M →SL[σ₁₂] M₂) := addCommMonoid
a✝ : M →SL[σ₁₂] M₂
x✝ : M
⊢ ↑(-a✝ + a✝) x✝ = ↑0 x✝
[PROOFSTEP]
apply_rules [zero_add, add_assoc, add_zero, add_left_neg, add_comm, sub_eq_add_neg]
[GOAL]
R : Type u_1
inst✝¹⁶ : Ring R
R₂ : Type u_2
inst✝¹⁵ : Ring R₂
R₃ : Type u_3
inst✝¹⁴ : Ring R₃
M : Type u_4
inst✝¹³ : TopologicalSpace M
inst✝¹² : AddCommGroup M
M₂ : Type u_5
inst✝¹¹ : TopologicalSpace M₂
inst✝¹⁰ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁹ : TopologicalSpace M₃
inst✝⁸ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁷ : TopologicalSpace M₄
inst✝⁶ : AddCommGroup M₄
inst✝⁵ : Module R M
inst✝⁴ : Module R₂ M₂
inst✝³ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : TopologicalAddGroup M₂
inst✝ : TopologicalAddGroup M₃
g : M₂ →SL[σ₂₃] M₃
f : M →SL[σ₁₂] M₂
⊢ comp g (-f) = -comp g f
[PROOFSTEP]
ext x
[GOAL]
case h
R : Type u_1
inst✝¹⁶ : Ring R
R₂ : Type u_2
inst✝¹⁵ : Ring R₂
R₃ : Type u_3
inst✝¹⁴ : Ring R₃
M : Type u_4
inst✝¹³ : TopologicalSpace M
inst✝¹² : AddCommGroup M
M₂ : Type u_5
inst✝¹¹ : TopologicalSpace M₂
inst✝¹⁰ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁹ : TopologicalSpace M₃
inst✝⁸ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁷ : TopologicalSpace M₄
inst✝⁶ : AddCommGroup M₄
inst✝⁵ : Module R M
inst✝⁴ : Module R₂ M₂
inst✝³ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : TopologicalAddGroup M₂
inst✝ : TopologicalAddGroup M₃
g : M₂ →SL[σ₂₃] M₃
f : M →SL[σ₁₂] M₂
x : M
⊢ ↑(comp g (-f)) x = ↑(-comp g f) x
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝ : TopologicalAddGroup M₃
g : M₂ →SL[σ₂₃] M₃
f : M →SL[σ₁₂] M₂
⊢ comp (-g) f = -comp g f
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝ : TopologicalAddGroup M₃
g : M₂ →SL[σ₂₃] M₃
f : M →SL[σ₁₂] M₂
x✝ : M
⊢ ↑(comp (-g) f) x✝ = ↑(-comp g f) x✝
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹⁶ : Ring R
R₂ : Type u_2
inst✝¹⁵ : Ring R₂
R₃ : Type u_3
inst✝¹⁴ : Ring R₃
M : Type u_4
inst✝¹³ : TopologicalSpace M
inst✝¹² : AddCommGroup M
M₂ : Type u_5
inst✝¹¹ : TopologicalSpace M₂
inst✝¹⁰ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁹ : TopologicalSpace M₃
inst✝⁸ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁷ : TopologicalSpace M₄
inst✝⁶ : AddCommGroup M₄
inst✝⁵ : Module R M
inst✝⁴ : Module R₂ M₂
inst✝³ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : TopologicalAddGroup M₂
inst✝ : TopologicalAddGroup M₃
g : M₂ →SL[σ₂₃] M₃
f₁ f₂ : M →SL[σ₁₂] M₂
⊢ comp g (f₁ - f₂) = comp g f₁ - comp g f₂
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
inst✝¹⁶ : Ring R
R₂ : Type u_2
inst✝¹⁵ : Ring R₂
R₃ : Type u_3
inst✝¹⁴ : Ring R₃
M : Type u_4
inst✝¹³ : TopologicalSpace M
inst✝¹² : AddCommGroup M
M₂ : Type u_5
inst✝¹¹ : TopologicalSpace M₂
inst✝¹⁰ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁹ : TopologicalSpace M₃
inst✝⁸ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁷ : TopologicalSpace M₄
inst✝⁶ : AddCommGroup M₄
inst✝⁵ : Module R M
inst✝⁴ : Module R₂ M₂
inst✝³ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹ : TopologicalAddGroup M₂
inst✝ : TopologicalAddGroup M₃
g : M₂ →SL[σ₂₃] M₃
f₁ f₂ : M →SL[σ₁₂] M₂
x✝ : M
⊢ ↑(comp g (f₁ - f₂)) x✝ = ↑(comp g f₁ - comp g f₂) x✝
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝ : TopologicalAddGroup M₃
g₁ g₂ : M₂ →SL[σ₂₃] M₃
f : M →SL[σ₁₂] M₂
⊢ comp (g₁ - g₂) f = comp g₁ f - comp g₂ f
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝ : TopologicalAddGroup M₃
g₁ g₂ : M₂ →SL[σ₂₃] M₃
f : M →SL[σ₁₂] M₂
x✝ : M
⊢ ↑(comp (g₁ - g₂) f) x✝ = ↑(comp g₁ f - comp g₂ f) x✝
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalRing R
c : R
n : ℕ
⊢ smulRight 1 c ^ n = smulRight 1 (c ^ n)
[PROOFSTEP]
induction' n with n ihn
[GOAL]
case zero
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalRing R
c : R
⊢ smulRight 1 c ^ Nat.zero = smulRight 1 (c ^ Nat.zero)
[PROOFSTEP]
ext
[GOAL]
case zero.h
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalRing R
c : R
⊢ ↑(smulRight 1 c ^ Nat.zero) 1 = ↑(smulRight 1 (c ^ Nat.zero)) 1
[PROOFSTEP]
simp
[GOAL]
case succ
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalRing R
c : R
n : ℕ
ihn : smulRight 1 c ^ n = smulRight 1 (c ^ n)
⊢ smulRight 1 c ^ Nat.succ n = smulRight 1 (c ^ Nat.succ n)
[PROOFSTEP]
rw [pow_succ, ihn, mul_def, smulRight_comp, smul_eq_mul, pow_succ']
[GOAL]
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₂₁ : R₂ →+* R
inst✝¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝ : TopologicalAddGroup M
f₁ : M →SL[σ₁₂] M₂
f₂ : M₂ →SL[σ₂₁] M
h : Function.RightInverse ↑f₂ ↑f₁
x : M
⊢ ↑(id R M - comp f₂ f₁) x ∈ ker f₁
[PROOFSTEP]
simp [h (f₁ x)]
[GOAL]
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₂₁ : R₂ →+* R
inst✝¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝ : TopologicalAddGroup M
f₁ : M →SL[σ₁₂] M₂
f₂ : M₂ →SL[σ₂₁] M
h : Function.RightInverse ↑f₂ ↑f₁
x : { x // x ∈ ker f₁ }
⊢ ↑(projKerOfRightInverse f₁ f₂ h) ↑x = x
[PROOFSTEP]
ext1
[GOAL]
case a
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₂₁ : R₂ →+* R
inst✝¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝ : TopologicalAddGroup M
f₁ : M →SL[σ₁₂] M₂
f₂ : M₂ →SL[σ₂₁] M
h : Function.RightInverse ↑f₂ ↑f₁
x : { x // x ∈ ker f₁ }
⊢ ↑(↑(projKerOfRightInverse f₁ f₂ h) ↑x) = ↑x
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹⁵ : Ring R
R₂ : Type u_2
inst✝¹⁴ : Ring R₂
R₃ : Type u_3
inst✝¹³ : Ring R₃
M : Type u_4
inst✝¹² : TopologicalSpace M
inst✝¹¹ : AddCommGroup M
M₂ : Type u_5
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommGroup M₂
M₃ : Type u_6
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommGroup M₃
M₄ : Type u_7
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommGroup M₄
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
inst✝² : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₂₁ : R₂ →+* R
inst✝¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝ : TopologicalAddGroup M
f₁ : M →SL[σ₁₂] M₂
f₂ : M₂ →SL[σ₂₁] M
h : Function.RightInverse ↑f₂ ↑f₁
y : M₂
⊢ ↑(↑(projKerOfRightInverse f₁ f₂ h) (↑f₂ y)) = ↑0
[PROOFSTEP]
simp [h y]
[GOAL]
R : Type u_1
M : Type u_2
inst✝⁷ : TopologicalSpace R
inst✝⁶ : DivisionRing R
inst✝⁵ : ContinuousSub R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalSpace M
inst✝² : ContinuousAdd M
inst✝¹ : Module R M
inst✝ : ContinuousSMul R M
f : M →L[R] R
hf : f ≠ 0
x : M
hx : ↑f x ≠ 0
y : M
⊢ Continuous fun a => y + (a - ↑f y) • (↑f x)⁻¹ • x
[PROOFSTEP]
continuity
[GOAL]
R : Type u_1
M : Type u_2
inst✝⁷ : TopologicalSpace R
inst✝⁶ : DivisionRing R
inst✝⁵ : ContinuousSub R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalSpace M
inst✝² : ContinuousAdd M
inst✝¹ : Module R M
inst✝ : ContinuousSMul R M
f : M →L[R] R
hf : f ≠ 0
x : M
hx : ↑f x ≠ 0
y : M
⊢ (fun a => y + (a - ↑f y) • (↑f x)⁻¹ • x) (↑f y) = y
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
M : Type u_2
inst✝⁷ : TopologicalSpace R
inst✝⁶ : DivisionRing R
inst✝⁵ : ContinuousSub R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalSpace M
inst✝² : ContinuousAdd M
inst✝¹ : Module R M
inst✝ : ContinuousSMul R M
f : M →L[R] R
hf : f ≠ 0
x : M
hx : ↑f x ≠ 0
y : M
a : R
⊢ ↑f ((fun a => y + (a - ↑f y) • (↑f x)⁻¹ • x) a) = a
[PROOFSTEP]
simp [hx]
[GOAL]
R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
S : Type u_4
S₃ : Type u_5
inst✝³³ : Semiring R
inst✝³² : Semiring R₂
inst✝³¹ : Semiring R₃
inst✝³⁰ : Monoid S
inst✝²⁹ : Monoid S₃
M : Type u_6
inst✝²⁸ : TopologicalSpace M
inst✝²⁷ : AddCommMonoid M
inst✝²⁶ : Module R M
M₂ : Type u_7
inst✝²⁵ : TopologicalSpace M₂
inst✝²⁴ : AddCommMonoid M₂
inst✝²³ : Module R₂ M₂
M₃ : Type u_8
inst✝²² : TopologicalSpace M₃
inst✝²¹ : AddCommMonoid M₃
inst✝²⁰ : Module R₃ M₃
N₂ : Type u_9
inst✝¹⁹ : TopologicalSpace N₂
inst✝¹⁸ : AddCommMonoid N₂
inst✝¹⁷ : Module R N₂
N₃ : Type u_10
inst✝¹⁶ : TopologicalSpace N₃
inst✝¹⁵ : AddCommMonoid N₃
inst✝¹⁴ : Module R N₃
inst✝¹³ : DistribMulAction S₃ M₃
inst✝¹² : SMulCommClass R₃ S₃ M₃
inst✝¹¹ : ContinuousConstSMul S₃ M₃
inst✝¹⁰ : DistribMulAction S N₃
inst✝⁹ : SMulCommClass R S N₃
inst✝⁸ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝⁷ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁶ : DistribMulAction S₃ M₂
inst✝⁵ : ContinuousConstSMul S₃ M₂
inst✝⁴ : SMulCommClass R₂ S₃ M₂
inst✝³ : DistribMulAction S N₂
inst✝² : ContinuousConstSMul S N₂
inst✝¹ : SMulCommClass R S N₂
inst✝ : LinearMap.CompatibleSMul N₂ N₃ S R
hₗ : N₂ →L[R] N₃
c : S
fₗ : M →L[R] N₂
⊢ comp hₗ (c • fₗ) = c • comp hₗ fₗ
[PROOFSTEP]
ext x
[GOAL]
case h
R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
S : Type u_4
S₃ : Type u_5
inst✝³³ : Semiring R
inst✝³² : Semiring R₂
inst✝³¹ : Semiring R₃
inst✝³⁰ : Monoid S
inst✝²⁹ : Monoid S₃
M : Type u_6
inst✝²⁸ : TopologicalSpace M
inst✝²⁷ : AddCommMonoid M
inst✝²⁶ : Module R M
M₂ : Type u_7
inst✝²⁵ : TopologicalSpace M₂
inst✝²⁴ : AddCommMonoid M₂
inst✝²³ : Module R₂ M₂
M₃ : Type u_8
inst✝²² : TopologicalSpace M₃
inst✝²¹ : AddCommMonoid M₃
inst✝²⁰ : Module R₃ M₃
N₂ : Type u_9
inst✝¹⁹ : TopologicalSpace N₂
inst✝¹⁸ : AddCommMonoid N₂
inst✝¹⁷ : Module R N₂
N₃ : Type u_10
inst✝¹⁶ : TopologicalSpace N₃
inst✝¹⁵ : AddCommMonoid N₃
inst✝¹⁴ : Module R N₃
inst✝¹³ : DistribMulAction S₃ M₃
inst✝¹² : SMulCommClass R₃ S₃ M₃
inst✝¹¹ : ContinuousConstSMul S₃ M₃
inst✝¹⁰ : DistribMulAction S N₃
inst✝⁹ : SMulCommClass R S N₃
inst✝⁸ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝⁷ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁶ : DistribMulAction S₃ M₂
inst✝⁵ : ContinuousConstSMul S₃ M₂
inst✝⁴ : SMulCommClass R₂ S₃ M₂
inst✝³ : DistribMulAction S N₂
inst✝² : ContinuousConstSMul S N₂
inst✝¹ : SMulCommClass R S N₂
inst✝ : LinearMap.CompatibleSMul N₂ N₃ S R
hₗ : N₂ →L[R] N₃
c : S
fₗ : M →L[R] N₂
x : M
⊢ ↑(comp hₗ (c • fₗ)) x = ↑(c • comp hₗ fₗ) x
[PROOFSTEP]
exact hₗ.map_smul_of_tower c (fₗ x)
[GOAL]
R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
S : Type u_4
S₃ : Type u_5
inst✝³⁶ : Semiring R
inst✝³⁵ : Semiring R₂
inst✝³⁴ : Semiring R₃
inst✝³³ : Monoid S
inst✝³² : Monoid S₃
M : Type u_6
inst✝³¹ : TopologicalSpace M
inst✝³⁰ : AddCommMonoid M
inst✝²⁹ : Module R M
M₂ : Type u_7
inst✝²⁸ : TopologicalSpace M₂
inst✝²⁷ : AddCommMonoid M₂
inst✝²⁶ : Module R₂ M₂
M₃ : Type u_8
inst✝²⁵ : TopologicalSpace M₃
inst✝²⁴ : AddCommMonoid M₃
inst✝²³ : Module R₃ M₃
N₂ : Type u_9
inst✝²² : TopologicalSpace N₂
inst✝²¹ : AddCommMonoid N₂
inst✝²⁰ : Module R N₂
N₃ : Type u_10
inst✝¹⁹ : TopologicalSpace N₃
inst✝¹⁸ : AddCommMonoid N₃
inst✝¹⁷ : Module R N₃
inst✝¹⁶ : DistribMulAction S₃ M₃
inst✝¹⁵ : SMulCommClass R₃ S₃ M₃
inst✝¹⁴ : ContinuousConstSMul S₃ M₃
inst✝¹³ : DistribMulAction S N₃
inst✝¹² : SMulCommClass R S N₃
inst✝¹¹ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹⁰ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁹ : DistribMulAction S₃ M₂
inst✝⁸ : ContinuousConstSMul S₃ M₂
inst✝⁷ : SMulCommClass R₂ S₃ M₂
inst✝⁶ : DistribMulAction S N₂
inst✝⁵ : ContinuousConstSMul S N₂
inst✝⁴ : SMulCommClass R S N₂
inst✝³ : SMulCommClass R₂ R₂ M₂
inst✝² : SMulCommClass R₃ R₃ M₃
inst✝¹ : ContinuousConstSMul R₂ M₂
inst✝ : ContinuousConstSMul R₃ M₃
h : M₂ →SL[σ₂₃] M₃
c : R₂
f : M →SL[σ₁₂] M₂
⊢ comp h (c • f) = ↑σ₂₃ c • comp h f
[PROOFSTEP]
ext x
[GOAL]
case h
R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
S : Type u_4
S₃ : Type u_5
inst✝³⁶ : Semiring R
inst✝³⁵ : Semiring R₂
inst✝³⁴ : Semiring R₃
inst✝³³ : Monoid S
inst✝³² : Monoid S₃
M : Type u_6
inst✝³¹ : TopologicalSpace M
inst✝³⁰ : AddCommMonoid M
inst✝²⁹ : Module R M
M₂ : Type u_7
inst✝²⁸ : TopologicalSpace M₂
inst✝²⁷ : AddCommMonoid M₂
inst✝²⁶ : Module R₂ M₂
M₃ : Type u_8
inst✝²⁵ : TopologicalSpace M₃
inst✝²⁴ : AddCommMonoid M₃
inst✝²³ : Module R₃ M₃
N₂ : Type u_9
inst✝²² : TopologicalSpace N₂
inst✝²¹ : AddCommMonoid N₂
inst✝²⁰ : Module R N₂
N₃ : Type u_10
inst✝¹⁹ : TopologicalSpace N₃
inst✝¹⁸ : AddCommMonoid N₃
inst✝¹⁷ : Module R N₃
inst✝¹⁶ : DistribMulAction S₃ M₃
inst✝¹⁵ : SMulCommClass R₃ S₃ M₃
inst✝¹⁴ : ContinuousConstSMul S₃ M₃
inst✝¹³ : DistribMulAction S N₃
inst✝¹² : SMulCommClass R S N₃
inst✝¹¹ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝¹⁰ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁹ : DistribMulAction S₃ M₂
inst✝⁸ : ContinuousConstSMul S₃ M₂
inst✝⁷ : SMulCommClass R₂ S₃ M₂
inst✝⁶ : DistribMulAction S N₂
inst✝⁵ : ContinuousConstSMul S N₂
inst✝⁴ : SMulCommClass R S N₂
inst✝³ : SMulCommClass R₂ R₂ M₂
inst✝² : SMulCommClass R₃ R₃ M₃
inst✝¹ : ContinuousConstSMul R₂ M₂
inst✝ : ContinuousConstSMul R₃ M₃
h : M₂ →SL[σ₂₃] M₃
c : R₂
f : M →SL[σ₁₂] M₂
x : M
⊢ ↑(comp h (c • f)) x = ↑(↑σ₂₃ c • comp h f) x
[PROOFSTEP]
simp only [coe_smul', coe_comp', Function.comp_apply, Pi.smul_apply, ContinuousLinearMap.map_smulₛₗ]
[GOAL]
R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
S : Type u_4
S₃ : Type u_5
inst✝²⁹ : Semiring R
inst✝²⁸ : Semiring R₂
inst✝²⁷ : Semiring R₃
inst✝²⁶ : Semiring S
inst✝²⁵ : Semiring S₃
M : Type u_6
inst✝²⁴ : TopologicalSpace M
inst✝²³ : AddCommMonoid M
inst✝²² : Module R M
M₂ : Type u_7
inst✝²¹ : TopologicalSpace M₂
inst✝²⁰ : AddCommMonoid M₂
inst✝¹⁹ : Module R₂ M₂
M₃ : Type u_8
inst✝¹⁸ : TopologicalSpace M₃
inst✝¹⁷ : AddCommMonoid M₃
inst✝¹⁶ : Module R₃ M₃
N₂ : Type u_9
inst✝¹⁵ : TopologicalSpace N₂
inst✝¹⁴ : AddCommMonoid N₂
inst✝¹³ : Module R N₂
N₃ : Type u_10
inst✝¹² : TopologicalSpace N₃
inst✝¹¹ : AddCommMonoid N₃
inst✝¹⁰ : Module R N₃
inst✝⁹ : Module S₃ M₃
inst✝⁸ : SMulCommClass R₃ S₃ M₃
inst✝⁷ : ContinuousConstSMul S₃ M₃
inst✝⁶ : Module S N₂
inst✝⁵ : ContinuousConstSMul S N₂
inst✝⁴ : SMulCommClass R S N₂
inst✝³ : Module S N₃
inst✝² : SMulCommClass R S N₃
inst✝¹ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
c : S
h : M₂ →SL[σ₂₃] M₃
f✝ g : M →SL[σ₁₂] M₂
x y z : M
f : (M →L[R] N₂) × (M →L[R] N₃)
⊢ (fun f => (comp (fst R N₂ N₃) f, comp (snd R N₂ N₃) f)) ((fun f => ContinuousLinearMap.prod f.fst f.snd) f) = f
[PROOFSTEP]
ext
[GOAL]
case h₁.h
R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
S : Type u_4
S₃ : Type u_5
inst✝²⁹ : Semiring R
inst✝²⁸ : Semiring R₂
inst✝²⁷ : Semiring R₃
inst✝²⁶ : Semiring S
inst✝²⁵ : Semiring S₃
M : Type u_6
inst✝²⁴ : TopologicalSpace M
inst✝²³ : AddCommMonoid M
inst✝²² : Module R M
M₂ : Type u_7
inst✝²¹ : TopologicalSpace M₂
inst✝²⁰ : AddCommMonoid M₂
inst✝¹⁹ : Module R₂ M₂
M₃ : Type u_8
inst✝¹⁸ : TopologicalSpace M₃
inst✝¹⁷ : AddCommMonoid M₃
inst✝¹⁶ : Module R₃ M₃
N₂ : Type u_9
inst✝¹⁵ : TopologicalSpace N₂
inst✝¹⁴ : AddCommMonoid N₂
inst✝¹³ : Module R N₂
N₃ : Type u_10
inst✝¹² : TopologicalSpace N₃
inst✝¹¹ : AddCommMonoid N₃
inst✝¹⁰ : Module R N₃
inst✝⁹ : Module S₃ M₃
inst✝⁸ : SMulCommClass R₃ S₃ M₃
inst✝⁷ : ContinuousConstSMul S₃ M₃
inst✝⁶ : Module S N₂
inst✝⁵ : ContinuousConstSMul S N₂
inst✝⁴ : SMulCommClass R S N₂
inst✝³ : Module S N₃
inst✝² : SMulCommClass R S N₃
inst✝¹ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
c : S
h : M₂ →SL[σ₂₃] M₃
f✝ g : M →SL[σ₁₂] M₂
x y z : M
f : (M →L[R] N₂) × (M →L[R] N₃)
x✝ : M
⊢ ↑((fun f => (comp (fst R N₂ N₃) f, comp (snd R N₂ N₃) f)) ((fun f => ContinuousLinearMap.prod f.fst f.snd) f)).fst
      x✝ =
    ↑f.fst x✝
[PROOFSTEP]
rfl
[GOAL]
case h₂.h
R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
S : Type u_4
S₃ : Type u_5
inst✝²⁹ : Semiring R
inst✝²⁸ : Semiring R₂
inst✝²⁷ : Semiring R₃
inst✝²⁶ : Semiring S
inst✝²⁵ : Semiring S₃
M : Type u_6
inst✝²⁴ : TopologicalSpace M
inst✝²³ : AddCommMonoid M
inst✝²² : Module R M
M₂ : Type u_7
inst✝²¹ : TopologicalSpace M₂
inst✝²⁰ : AddCommMonoid M₂
inst✝¹⁹ : Module R₂ M₂
M₃ : Type u_8
inst✝¹⁸ : TopologicalSpace M₃
inst✝¹⁷ : AddCommMonoid M₃
inst✝¹⁶ : Module R₃ M₃
N₂ : Type u_9
inst✝¹⁵ : TopologicalSpace N₂
inst✝¹⁴ : AddCommMonoid N₂
inst✝¹³ : Module R N₂
N₃ : Type u_10
inst✝¹² : TopologicalSpace N₃
inst✝¹¹ : AddCommMonoid N₃
inst✝¹⁰ : Module R N₃
inst✝⁹ : Module S₃ M₃
inst✝⁸ : SMulCommClass R₃ S₃ M₃
inst✝⁷ : ContinuousConstSMul S₃ M₃
inst✝⁶ : Module S N₂
inst✝⁵ : ContinuousConstSMul S N₂
inst✝⁴ : SMulCommClass R S N₂
inst✝³ : Module S N₃
inst✝² : SMulCommClass R S N₃
inst✝¹ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
c : S
h : M₂ →SL[σ₂₃] M₃
f✝ g : M →SL[σ₁₂] M₂
x y z : M
f : (M →L[R] N₂) × (M →L[R] N₃)
x✝ : M
⊢ ↑((fun f => (comp (fst R N₂ N₃) f, comp (snd R N₂ N₃) f)) ((fun f => ContinuousLinearMap.prod f.fst f.snd) f)).snd
      x✝ =
    ↑f.snd x✝
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
S : Type u_4
S₃ : Type u_5
inst✝²⁹ : Semiring R
inst✝²⁸ : Semiring R₂
inst✝²⁷ : Semiring R₃
inst✝²⁶ : Semiring S
inst✝²⁵ : Semiring S₃
M : Type u_6
inst✝²⁴ : TopologicalSpace M
inst✝²³ : AddCommMonoid M
inst✝²² : Module R M
M₂ : Type u_7
inst✝²¹ : TopologicalSpace M₂
inst✝²⁰ : AddCommMonoid M₂
inst✝¹⁹ : Module R₂ M₂
M₃ : Type u_8
inst✝¹⁸ : TopologicalSpace M₃
inst✝¹⁷ : AddCommMonoid M₃
inst✝¹⁶ : Module R₃ M₃
N₂ : Type u_9
inst✝¹⁵ : TopologicalSpace N₂
inst✝¹⁴ : AddCommMonoid N₂
inst✝¹³ : Module R N₂
N₃ : Type u_10
inst✝¹² : TopologicalSpace N₃
inst✝¹¹ : AddCommMonoid N₃
inst✝¹⁰ : Module R N₃
inst✝⁹ : Module S₃ M₃
inst✝⁸ : SMulCommClass R₃ S₃ M₃
inst✝⁷ : ContinuousConstSMul S₃ M₃
inst✝⁶ : Module S N₂
inst✝⁵ : ContinuousConstSMul S N₂
inst✝⁴ : SMulCommClass R S N₂
inst✝³ : Module S N₃
inst✝² : SMulCommClass R S N₃
inst✝¹ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
c : S
h : M₂ →SL[σ₂₃] M₃
f✝ g : M →SL[σ₁₂] M₂
x y z : M
f : M →L[R] N₂ × N₃
⊢ (fun f => ContinuousLinearMap.prod f.fst f.snd) ((fun f => (comp (fst R N₂ N₃) f, comp (snd R N₂ N₃) f)) f) = f
[PROOFSTEP]
ext
[GOAL]
case h.h₁
R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
S : Type u_4
S₃ : Type u_5
inst✝²⁹ : Semiring R
inst✝²⁸ : Semiring R₂
inst✝²⁷ : Semiring R₃
inst✝²⁶ : Semiring S
inst✝²⁵ : Semiring S₃
M : Type u_6
inst✝²⁴ : TopologicalSpace M
inst✝²³ : AddCommMonoid M
inst✝²² : Module R M
M₂ : Type u_7
inst✝²¹ : TopologicalSpace M₂
inst✝²⁰ : AddCommMonoid M₂
inst✝¹⁹ : Module R₂ M₂
M₃ : Type u_8
inst✝¹⁸ : TopologicalSpace M₃
inst✝¹⁷ : AddCommMonoid M₃
inst✝¹⁶ : Module R₃ M₃
N₂ : Type u_9
inst✝¹⁵ : TopologicalSpace N₂
inst✝¹⁴ : AddCommMonoid N₂
inst✝¹³ : Module R N₂
N₃ : Type u_10
inst✝¹² : TopologicalSpace N₃
inst✝¹¹ : AddCommMonoid N₃
inst✝¹⁰ : Module R N₃
inst✝⁹ : Module S₃ M₃
inst✝⁸ : SMulCommClass R₃ S₃ M₃
inst✝⁷ : ContinuousConstSMul S₃ M₃
inst✝⁶ : Module S N₂
inst✝⁵ : ContinuousConstSMul S N₂
inst✝⁴ : SMulCommClass R S N₂
inst✝³ : Module S N₃
inst✝² : SMulCommClass R S N₃
inst✝¹ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
c : S
h : M₂ →SL[σ₂₃] M₃
f✝ g : M →SL[σ₁₂] M₂
x y z : M
f : M →L[R] N₂ × N₃
x✝ : M
⊢ (↑((fun f => ContinuousLinearMap.prod f.fst f.snd) ((fun f => (comp (fst R N₂ N₃) f, comp (snd R N₂ N₃) f)) f))
        x✝).fst =
    (↑f x✝).fst
[PROOFSTEP]
rfl
[GOAL]
case h.h₂
R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
S : Type u_4
S₃ : Type u_5
inst✝²⁹ : Semiring R
inst✝²⁸ : Semiring R₂
inst✝²⁷ : Semiring R₃
inst✝²⁶ : Semiring S
inst✝²⁵ : Semiring S₃
M : Type u_6
inst✝²⁴ : TopologicalSpace M
inst✝²³ : AddCommMonoid M
inst✝²² : Module R M
M₂ : Type u_7
inst✝²¹ : TopologicalSpace M₂
inst✝²⁰ : AddCommMonoid M₂
inst✝¹⁹ : Module R₂ M₂
M₃ : Type u_8
inst✝¹⁸ : TopologicalSpace M₃
inst✝¹⁷ : AddCommMonoid M₃
inst✝¹⁶ : Module R₃ M₃
N₂ : Type u_9
inst✝¹⁵ : TopologicalSpace N₂
inst✝¹⁴ : AddCommMonoid N₂
inst✝¹³ : Module R N₂
N₃ : Type u_10
inst✝¹² : TopologicalSpace N₃
inst✝¹¹ : AddCommMonoid N₃
inst✝¹⁰ : Module R N₃
inst✝⁹ : Module S₃ M₃
inst✝⁸ : SMulCommClass R₃ S₃ M₃
inst✝⁷ : ContinuousConstSMul S₃ M₃
inst✝⁶ : Module S N₂
inst✝⁵ : ContinuousConstSMul S N₂
inst✝⁴ : SMulCommClass R S N₂
inst✝³ : Module S N₃
inst✝² : SMulCommClass R S N₃
inst✝¹ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
c : S
h : M₂ →SL[σ₂₃] M₃
f✝ g : M →SL[σ₁₂] M₂
x y z : M
f : M →L[R] N₂ × N₃
x✝ : M
⊢ (↑((fun f => ContinuousLinearMap.prod f.fst f.snd) ((fun f => (comp (fst R N₂ N₃) f, comp (snd R N₂ N₃) f)) f))
        x✝).snd =
    (↑f x✝).snd
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
S : Type u_4
S₃ : Type u_5
inst✝²⁹ : Semiring R
inst✝²⁸ : Semiring R₂
inst✝²⁷ : Semiring R₃
inst✝²⁶ : Semiring S
inst✝²⁵ : Semiring S₃
M : Type u_6
inst✝²⁴ : TopologicalSpace M
inst✝²³ : AddCommMonoid M
inst✝²² : Module R M
M₂ : Type u_7
inst✝²¹ : TopologicalSpace M₂
inst✝²⁰ : AddCommMonoid M₂
inst✝¹⁹ : Module R₂ M₂
M₃ : Type u_8
inst✝¹⁸ : TopologicalSpace M₃
inst✝¹⁷ : AddCommMonoid M₃
inst✝¹⁶ : Module R₃ M₃
N₂ : Type u_9
inst✝¹⁵ : TopologicalSpace N₂
inst✝¹⁴ : AddCommMonoid N₂
inst✝¹³ : Module R N₂
N₃ : Type u_10
inst✝¹² : TopologicalSpace N₃
inst✝¹¹ : AddCommMonoid N₃
inst✝¹⁰ : Module R N₃
inst✝⁹ : Module S₃ M₃
inst✝⁸ : SMulCommClass R₃ S₃ M₃
inst✝⁷ : ContinuousConstSMul S₃ M₃
inst✝⁶ : Module S N₂
inst✝⁵ : ContinuousConstSMul S N₂
inst✝⁴ : SMulCommClass R S N₂
inst✝³ : Module S N₃
inst✝² : SMulCommClass R S N₃
inst✝¹ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
c : S
h : M₂ →SL[σ₂₃] M₃
f✝ g✝ : M →SL[σ₁₂] M₂
x y z : M
f g : M × N₂ →L[R] N₃
⊢ f = g ↔ comp f (inl R M N₂) = comp g (inl R M N₂) ∧ comp f (inr R M N₂) = comp g (inr R M N₂)
[PROOFSTEP]
simp only [← coe_inj, LinearMap.prod_ext_iff]
[GOAL]
R : Type u_1
R₂ : Type u_2
R₃ : Type u_3
S : Type u_4
S₃ : Type u_5
inst✝²⁹ : Semiring R
inst✝²⁸ : Semiring R₂
inst✝²⁷ : Semiring R₃
inst✝²⁶ : Semiring S
inst✝²⁵ : Semiring S₃
M : Type u_6
inst✝²⁴ : TopologicalSpace M
inst✝²³ : AddCommMonoid M
inst✝²² : Module R M
M₂ : Type u_7
inst✝²¹ : TopologicalSpace M₂
inst✝²⁰ : AddCommMonoid M₂
inst✝¹⁹ : Module R₂ M₂
M₃ : Type u_8
inst✝¹⁸ : TopologicalSpace M₃
inst✝¹⁷ : AddCommMonoid M₃
inst✝¹⁶ : Module R₃ M₃
N₂ : Type u_9
inst✝¹⁵ : TopologicalSpace N₂
inst✝¹⁴ : AddCommMonoid N₂
inst✝¹³ : Module R N₂
N₃ : Type u_10
inst✝¹² : TopologicalSpace N₃
inst✝¹¹ : AddCommMonoid N₃
inst✝¹⁰ : Module R N₃
inst✝⁹ : Module S₃ M₃
inst✝⁸ : SMulCommClass R₃ S₃ M₃
inst✝⁷ : ContinuousConstSMul S₃ M₃
inst✝⁶ : Module S N₂
inst✝⁵ : ContinuousConstSMul S N₂
inst✝⁴ : SMulCommClass R S N₂
inst✝³ : Module S N₃
inst✝² : SMulCommClass R S N₃
inst✝¹ : ContinuousConstSMul S N₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
c : S
h : M₂ →SL[σ₂₃] M₃
f✝ g✝ : M →SL[σ₁₂] M₂
x y z : M
f g : M × N₂ →L[R] N₃
⊢ LinearMap.comp (↑f) (LinearMap.inl R M N₂) = LinearMap.comp (↑g) (LinearMap.inl R M N₂) ∧
      LinearMap.comp (↑f) (LinearMap.inr R M N₂) = LinearMap.comp (↑g) (LinearMap.inr R M N₂) ↔
    ↑(comp f (inl R M N₂)) = ↑(comp g (inl R M N₂)) ∧ ↑(comp f (inr R M N₂)) = ↑(comp g (inr R M N₂))
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
S : Type u_2
T : Type u_3
M : Type u_4
M₂ : Type u_5
inst✝¹⁸ : Semiring R
inst✝¹⁷ : Semiring S
inst✝¹⁶ : Semiring T
inst✝¹⁵ : Module R S
inst✝¹⁴ : AddCommMonoid M₂
inst✝¹³ : Module R M₂
inst✝¹² : Module S M₂
inst✝¹¹ : IsScalarTower R S M₂
inst✝¹⁰ : TopologicalSpace S
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : ContinuousSMul S M₂
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
inst✝⁴ : ContinuousAdd M₂
inst✝³ : Module T M₂
inst✝² : ContinuousConstSMul T M₂
inst✝¹ : SMulCommClass R T M₂
inst✝ : SMulCommClass S T M₂
c : M →L[R] S
x y : M₂
⊢ smulRight c (x + y) = smulRight c x + smulRight c y
[PROOFSTEP]
ext e
[GOAL]
case h
R : Type u_1
S : Type u_2
T : Type u_3
M : Type u_4
M₂ : Type u_5
inst✝¹⁸ : Semiring R
inst✝¹⁷ : Semiring S
inst✝¹⁶ : Semiring T
inst✝¹⁵ : Module R S
inst✝¹⁴ : AddCommMonoid M₂
inst✝¹³ : Module R M₂
inst✝¹² : Module S M₂
inst✝¹¹ : IsScalarTower R S M₂
inst✝¹⁰ : TopologicalSpace S
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : ContinuousSMul S M₂
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
inst✝⁴ : ContinuousAdd M₂
inst✝³ : Module T M₂
inst✝² : ContinuousConstSMul T M₂
inst✝¹ : SMulCommClass R T M₂
inst✝ : SMulCommClass S T M₂
c : M →L[R] S
x y : M₂
e : M
⊢ ↑(smulRight c (x + y)) e = ↑(smulRight c x + smulRight c y) e
[PROOFSTEP]
apply smul_add
[GOAL]
R : Type u_1
S : Type u_2
T : Type u_3
M : Type u_4
M₂ : Type u_5
inst✝¹⁸ : Semiring R
inst✝¹⁷ : Semiring S
inst✝¹⁶ : Semiring T
inst✝¹⁵ : Module R S
inst✝¹⁴ : AddCommMonoid M₂
inst✝¹³ : Module R M₂
inst✝¹² : Module S M₂
inst✝¹¹ : IsScalarTower R S M₂
inst✝¹⁰ : TopologicalSpace S
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : ContinuousSMul S M₂
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
inst✝⁴ : ContinuousAdd M₂
inst✝³ : Module T M₂
inst✝² : ContinuousConstSMul T M₂
inst✝¹ : SMulCommClass R T M₂
inst✝ : SMulCommClass S T M₂
c : M →L[R] S
a : T
x : M₂
⊢ AddHom.toFun
      { toFun := smulRight c, map_add' := (_ : ∀ (x y : M₂), smulRight c (x + y) = smulRight c x + smulRight c y) }
      (a • x) =
    ↑(RingHom.id T) a •
      AddHom.toFun
        { toFun := smulRight c, map_add' := (_ : ∀ (x y : M₂), smulRight c (x + y) = smulRight c x + smulRight c y) } x
[PROOFSTEP]
ext e
[GOAL]
case h
R : Type u_1
S : Type u_2
T : Type u_3
M : Type u_4
M₂ : Type u_5
inst✝¹⁸ : Semiring R
inst✝¹⁷ : Semiring S
inst✝¹⁶ : Semiring T
inst✝¹⁵ : Module R S
inst✝¹⁴ : AddCommMonoid M₂
inst✝¹³ : Module R M₂
inst✝¹² : Module S M₂
inst✝¹¹ : IsScalarTower R S M₂
inst✝¹⁰ : TopologicalSpace S
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : ContinuousSMul S M₂
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
inst✝⁴ : ContinuousAdd M₂
inst✝³ : Module T M₂
inst✝² : ContinuousConstSMul T M₂
inst✝¹ : SMulCommClass R T M₂
inst✝ : SMulCommClass S T M₂
c : M →L[R] S
a : T
x : M₂
e : M
⊢ ↑(AddHom.toFun
          { toFun := smulRight c, map_add' := (_ : ∀ (x y : M₂), smulRight c (x + y) = smulRight c x + smulRight c y) }
          (a • x))
      e =
    ↑(↑(RingHom.id T) a •
          AddHom.toFun
            { toFun := smulRight c,
              map_add' := (_ : ∀ (x y : M₂), smulRight c (x + y) = smulRight c x + smulRight c y) }
            x)
      e
[PROOFSTEP]
dsimp
[GOAL]
case h
R : Type u_1
S : Type u_2
T : Type u_3
M : Type u_4
M₂ : Type u_5
inst✝¹⁸ : Semiring R
inst✝¹⁷ : Semiring S
inst✝¹⁶ : Semiring T
inst✝¹⁵ : Module R S
inst✝¹⁴ : AddCommMonoid M₂
inst✝¹³ : Module R M₂
inst✝¹² : Module S M₂
inst✝¹¹ : IsScalarTower R S M₂
inst✝¹⁰ : TopologicalSpace S
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : ContinuousSMul S M₂
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
inst✝⁴ : ContinuousAdd M₂
inst✝³ : Module T M₂
inst✝² : ContinuousConstSMul T M₂
inst✝¹ : SMulCommClass R T M₂
inst✝ : SMulCommClass S T M₂
c : M →L[R] S
a : T
x : M₂
e : M
⊢ ↑c e • a • x = a • ↑c e • x
[PROOFSTEP]
apply smul_comm
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f g : M₁ ≃SL[σ₁₂] M₂
h₁ : (fun f => f.toFun) f = (fun f => f.toFun) g
h₂ : (fun f => f.invFun) f = (fun f => f.invFun) g
⊢ f = g
[PROOFSTEP]
cases' f with f' _
[GOAL]
case mk
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
g : M₁ ≃SL[σ₁₂] M₂
f' : M₁ ≃ₛₗ[σ₁₂] M₂
continuous_toFun✝ : Continuous f'.toFun
continuous_invFun✝ : Continuous f'.invFun
h₁ : (fun f => f.toFun) (mk f') = (fun f => f.toFun) g
h₂ : (fun f => f.invFun) (mk f') = (fun f => f.invFun) g
⊢ mk f' = g
[PROOFSTEP]
cases' g with g' _
[GOAL]
case mk.mk
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f' : M₁ ≃ₛₗ[σ₁₂] M₂
continuous_toFun✝¹ : Continuous f'.toFun
continuous_invFun✝¹ : Continuous f'.invFun
g' : M₁ ≃ₛₗ[σ₁₂] M₂
continuous_toFun✝ : Continuous g'.toFun
continuous_invFun✝ : Continuous g'.invFun
h₁ : (fun f => f.toFun) (mk f') = (fun f => f.toFun) (mk g')
h₂ : (fun f => f.invFun) (mk f') = (fun f => f.invFun) (mk g')
⊢ mk f' = mk g'
[PROOFSTEP]
rcases f' with ⟨⟨⟨_, _⟩, _⟩, _⟩
[GOAL]
case mk.mk.mk.mk.mk
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
g' : M₁ ≃ₛₗ[σ₁₂] M₂
continuous_toFun✝¹ : Continuous g'.toFun
continuous_invFun✝¹ : Continuous g'.invFun
invFun✝ : M₂ → M₁
toFun✝ : M₁ → M₂
map_add'✝ : ∀ (x y : M₁), toFun✝ (x + y) = toFun✝ x + toFun✝ y
map_smul'✝ :
  ∀ (r : R₁) (x : M₁),
    AddHom.toFun { toFun := toFun✝, map_add' := map_add'✝ } (r • x) =
      ↑σ₁₂ r • AddHom.toFun { toFun := toFun✝, map_add' := map_add'✝ } x
left_inv✝ :
  Function.LeftInverse invFun✝
    { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ }.toAddHom.toFun
right_inv✝ :
  Function.RightInverse invFun✝
    { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ }.toAddHom.toFun
continuous_toFun✝ :
  Continuous
    (↑{ toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
            invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ }).toAddHom.toFun
continuous_invFun✝ :
  Continuous
    { toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
        invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ }.invFun
h₁ :
  (fun f => f.toFun)
      (mk
        { toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
          invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ }) =
    (fun f => f.toFun) (mk g')
h₂ :
  (fun f => f.invFun)
      (mk
        { toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
          invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ }) =
    (fun f => f.invFun) (mk g')
⊢ mk
      { toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
        invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ } =
    mk g'
[PROOFSTEP]
rcases g' with ⟨⟨⟨_, _⟩, _⟩, _⟩
[GOAL]
case mk.mk.mk.mk.mk.mk.mk.mk
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
invFun✝¹ : M₂ → M₁
toFun✝¹ : M₁ → M₂
map_add'✝¹ : ∀ (x y : M₁), toFun✝¹ (x + y) = toFun✝¹ x + toFun✝¹ y
map_smul'✝¹ :
  ∀ (r : R₁) (x : M₁),
    AddHom.toFun { toFun := toFun✝¹, map_add' := map_add'✝¹ } (r • x) =
      ↑σ₁₂ r • AddHom.toFun { toFun := toFun✝¹, map_add' := map_add'✝¹ } x
left_inv✝¹ :
  Function.LeftInverse invFun✝¹
    { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ }.toAddHom.toFun
right_inv✝¹ :
  Function.RightInverse invFun✝¹
    { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ }.toAddHom.toFun
continuous_toFun✝¹ :
  Continuous
    (↑{ toLinearMap := { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ },
            invFun := invFun✝¹, left_inv := left_inv✝¹, right_inv := right_inv✝¹ }).toAddHom.toFun
continuous_invFun✝¹ :
  Continuous
    { toLinearMap := { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ },
        invFun := invFun✝¹, left_inv := left_inv✝¹, right_inv := right_inv✝¹ }.invFun
invFun✝ : M₂ → M₁
toFun✝ : M₁ → M₂
map_add'✝ : ∀ (x y : M₁), toFun✝ (x + y) = toFun✝ x + toFun✝ y
map_smul'✝ :
  ∀ (r : R₁) (x : M₁),
    AddHom.toFun { toFun := toFun✝, map_add' := map_add'✝ } (r • x) =
      ↑σ₁₂ r • AddHom.toFun { toFun := toFun✝, map_add' := map_add'✝ } x
left_inv✝ :
  Function.LeftInverse invFun✝
    { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ }.toAddHom.toFun
right_inv✝ :
  Function.RightInverse invFun✝
    { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ }.toAddHom.toFun
continuous_toFun✝ :
  Continuous
    (↑{ toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
            invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ }).toAddHom.toFun
continuous_invFun✝ :
  Continuous
    { toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
        invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ }.invFun
h₁ :
  (fun f => f.toFun)
      (mk
        { toLinearMap := { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ },
          invFun := invFun✝¹, left_inv := left_inv✝¹, right_inv := right_inv✝¹ }) =
    (fun f => f.toFun)
      (mk
        { toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
          invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ })
h₂ :
  (fun f => f.invFun)
      (mk
        { toLinearMap := { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ },
          invFun := invFun✝¹, left_inv := left_inv✝¹, right_inv := right_inv✝¹ }) =
    (fun f => f.invFun)
      (mk
        { toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
          invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ })
⊢ mk
      { toLinearMap := { toAddHom := { toFun := toFun✝¹, map_add' := map_add'✝¹ }, map_smul' := map_smul'✝¹ },
        invFun := invFun✝¹, left_inv := left_inv✝¹, right_inv := right_inv✝¹ } =
    mk
      { toLinearMap := { toAddHom := { toFun := toFun✝, map_add' := map_add'✝ }, map_smul' := map_smul'✝ },
        invFun := invFun✝, left_inv := left_inv✝, right_inv := right_inv✝ }
[PROOFSTEP]
congr
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
⊢ Function.Injective toLinearEquiv
[PROOFSTEP]
rintro ⟨e, _, _⟩ ⟨e', _, _⟩ rfl
[GOAL]
case mk.mk
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃ₛₗ[σ₁₂] M₂
continuous_toFun✝¹ : Continuous e.toFun
continuous_invFun✝¹ : Continuous e.invFun
continuous_toFun✝ : Continuous (↑(mk e).toLinearEquiv).toAddHom.toFun
continuous_invFun✝ : Continuous (mk e).toLinearEquiv.invFun
⊢ mk e = mk (mk e).toLinearEquiv
[PROOFSTEP]
rfl
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁵ : Semiring R₁
inst✝²⁴ : Semiring R₂
inst✝²³ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²² : RingHomInvPair σ₁₂ σ₂₁
inst✝²¹ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝²⁰ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁹ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁸ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁷ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁶ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹⁴ : TopologicalSpace M₁
inst✝¹³ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹² : TopologicalSpace M'₁
inst✝¹¹ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁰ : TopologicalSpace M₂
inst✝⁹ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁸ : TopologicalSpace M₃
inst✝⁷ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁶ : TopologicalSpace M₄
inst✝⁵ : AddCommMonoid M₄
inst✝⁴ : Module R₁ M₁
inst✝³ : Module R₁ M'₁
inst✝² : Module R₂ M₂
inst✝¹ : Module R₃ M₃
inst✝ : TopologicalSpace R₁
f g : R₁ ≃L[R₁] M₁
h : ↑f 1 = ↑g 1
x : R₁
⊢ ↑f (x * 1) = ↑g (x * 1)
[PROOFSTEP]
rw [← smul_eq_mul, map_smul, h, map_smul]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
⊢ (ContinuousLinearEquiv.symm e).toLinearEquiv = LinearEquiv.symm e.toLinearEquiv
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
x✝ : M₂
⊢ ↑(ContinuousLinearEquiv.symm e).toLinearEquiv x✝ = ↑(LinearEquiv.symm e.toLinearEquiv) x✝
[PROOFSTEP]
rfl
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e₁ : M₁ ≃SL[σ₁₂] M₂
e₂ : M₂ ≃SL[σ₂₃] M₃
⊢ (ContinuousLinearEquiv.trans e₁ e₂).toLinearEquiv = LinearEquiv.trans e₁.toLinearEquiv e₂.toLinearEquiv
[PROOFSTEP]
ext
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e₁ : M₁ ≃SL[σ₁₂] M₂
e₂ : M₂ ≃SL[σ₂₃] M₃
x✝ : M₁
⊢ ↑(ContinuousLinearEquiv.trans e₁ e₂).toLinearEquiv x✝ = ↑(LinearEquiv.trans e₁.toLinearEquiv e₂.toLinearEquiv) x✝
[PROOFSTEP]
rfl
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
⊢ ↑(ContinuousLinearEquiv.symm e) ∘ ↑e = id
[PROOFSTEP]
ext x
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
x : M₁
⊢ (↑(ContinuousLinearEquiv.symm e) ∘ ↑e) x = id x
[PROOFSTEP]
exact symm_apply_apply e x
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
⊢ ↑e ∘ ↑(ContinuousLinearEquiv.symm e) = id
[PROOFSTEP]
ext x
[GOAL]
case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
x : M₂
⊢ (↑e ∘ ↑(ContinuousLinearEquiv.symm e)) x = id x
[PROOFSTEP]
exact apply_symm_apply e x
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
⊢ ContinuousLinearEquiv.symm (ContinuousLinearEquiv.symm e) = e
[PROOFSTEP]
ext x
[GOAL]
case h.h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
x : M₁
⊢ ↑(ContinuousLinearEquiv.symm (ContinuousLinearEquiv.symm e)) x = ↑e x
[PROOFSTEP]
rfl
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
s : Set M₂
⊢ ↑(ContinuousLinearEquiv.symm e) '' s = ↑e ⁻¹' s
[PROOFSTEP]
rw [e.symm.image_eq_preimage, e.symm_symm]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f g h : M₁ ≃L[R₁] M₁
⊢ f * g * h = f * (g * h)
[PROOFSTEP]
ext
[GOAL]
case h.h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f g h : M₁ ≃L[R₁] M₁
x✝ : M₁
⊢ ↑(f * g * h) x✝ = ↑(f * (g * h)) x✝
[PROOFSTEP]
rfl
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f : M₁ ≃L[R₁] M₁
⊢ 1 * f = f
[PROOFSTEP]
ext
[GOAL]
case h.h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f : M₁ ≃L[R₁] M₁
x✝ : M₁
⊢ ↑(1 * f) x✝ = ↑f x✝
[PROOFSTEP]
rfl
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f : M₁ ≃L[R₁] M₁
⊢ f * 1 = f
[PROOFSTEP]
ext
[GOAL]
case h.h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f : M₁ ≃L[R₁] M₁
x✝ : M₁
⊢ ↑(f * 1) x✝ = ↑f x✝
[PROOFSTEP]
rfl
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f : M₁ ≃L[R₁] M₁
⊢ f⁻¹ * f = 1
[PROOFSTEP]
ext x
[GOAL]
case h.h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type u_7
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type u_8
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
f : M₁ ≃L[R₁] M₁
x : M₁
⊢ ↑(f⁻¹ * f) x = ↑1 x
[PROOFSTEP]
exact f.left_inv x
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝³¹ : Semiring R₁
inst✝³⁰ : Semiring R₂
inst✝²⁹ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²⁸ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁷ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝²⁶ : RingHomInvPair σ₂₃ σ₃₂
inst✝²⁵ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝²⁴ : RingHomInvPair σ₁₃ σ₃₁
inst✝²³ : RingHomInvPair σ₃₁ σ₁₃
inst✝²² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝²¹ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝²⁰ : TopologicalSpace M₁
inst✝¹⁹ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁸ : TopologicalSpace M'₁
inst✝¹⁷ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁶ : TopologicalSpace M₂
inst✝¹⁵ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹⁴ : TopologicalSpace M₃
inst✝¹³ : AddCommMonoid M₃
M₄ : Type u_8
inst✝¹² : TopologicalSpace M₄
inst✝¹¹ : AddCommMonoid M₄
inst✝¹⁰ : Module R₁ M₁
inst✝⁹ : Module R₁ M'₁
inst✝⁸ : Module R₂ M₂
inst✝⁷ : Module R₃ M₃
R₄ : Type u_9
inst✝⁶ : Semiring R₄
inst✝⁵ : Module R₄ M₄
σ₃₄ : R₃ →+* R₄
σ₄₃ : R₄ →+* R₃
inst✝⁴ : RingHomInvPair σ₃₄ σ₄₃
inst✝³ : RingHomInvPair σ₄₃ σ₃₄
σ₂₄ : R₂ →+* R₄
σ₁₄ : R₁ →+* R₄
inst✝² : RingHomCompTriple σ₂₁ σ₁₄ σ₂₄
inst✝¹ : RingHomCompTriple σ₂₄ σ₄₃ σ₂₃
inst✝ : RingHomCompTriple σ₁₃ σ₃₄ σ₁₄
e₁₂ : M₁ ≃SL[σ₁₂] M₂
e₄₃ : M₄ ≃SL[σ₄₃] M₃
f : M₁ →SL[σ₁₄] M₄
x : M₁
⊢ ↑((fun f => ContinuousLinearMap.comp (↑(ContinuousLinearEquiv.symm e₄₃)) (ContinuousLinearMap.comp f ↑e₁₂))
          ((fun f => ContinuousLinearMap.comp (↑e₄₃) (ContinuousLinearMap.comp f ↑(ContinuousLinearEquiv.symm e₁₂))) f))
      x =
    ↑f x
[PROOFSTEP]
simp only [ContinuousLinearMap.comp_apply, symm_apply_apply, coe_coe]
[GOAL]
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
inst✝³¹ : Semiring R₁
inst✝³⁰ : Semiring R₂
inst✝²⁹ : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²⁸ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁷ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝²⁶ : RingHomInvPair σ₂₃ σ₃₂
inst✝²⁵ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝²⁴ : RingHomInvPair σ₁₃ σ₃₁
inst✝²³ : RingHomInvPair σ₃₁ σ₁₃
inst✝²² : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝²¹ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_4
inst✝²⁰ : TopologicalSpace M₁
inst✝¹⁹ : AddCommMonoid M₁
M'₁ : Type u_5
inst✝¹⁸ : TopologicalSpace M'₁
inst✝¹⁷ : AddCommMonoid M'₁
M₂ : Type u_6
inst✝¹⁶ : TopologicalSpace M₂
inst✝¹⁵ : AddCommMonoid M₂
M₃ : Type u_7
inst✝¹⁴ : TopologicalSpace M₃
inst✝¹³ : AddCommMonoid M₃
M₄ : Type u_8
inst✝¹² : TopologicalSpace M₄
inst✝¹¹ : AddCommMonoid M₄
inst✝¹⁰ : Module R₁ M₁
inst✝⁹ : Module R₁ M'₁
inst✝⁸ : Module R₂ M₂
inst✝⁷ : Module R₃ M₃
R₄ : Type u_9
inst✝⁶ : Semiring R₄
inst✝⁵ : Module R₄ M₄
σ₃₄ : R₃ →+* R₄
σ₄₃ : R₄ →+* R₃
inst✝⁴ : RingHomInvPair σ₃₄ σ₄₃
inst✝³ : RingHomInvPair σ₄₃ σ₃₄
σ₂₄ : R₂ →+* R₄
σ₁₄ : R₁ →+* R₄
inst✝² : RingHomCompTriple σ₂₁ σ₁₄ σ₂₄
inst✝¹ : RingHomCompTriple σ₂₄ σ₄₃ σ₂₃
inst✝ : RingHomCompTriple σ₁₃ σ₃₄ σ₁₄
e₁₂ : M₁ ≃SL[σ₁₂] M₂
e₄₃ : M₄ ≃SL[σ₄₃] M₃
f : M₂ →SL[σ₂₃] M₃
x : M₂
⊢ ↑((fun f => ContinuousLinearMap.comp (↑e₄₃) (ContinuousLinearMap.comp f ↑(ContinuousLinearEquiv.symm e₁₂)))
          ((fun f => ContinuousLinearMap.comp (↑(ContinuousLinearEquiv.symm e₄₃)) (ContinuousLinearMap.comp f ↑e₁₂)) f))
      x =
    ↑f x
[PROOFSTEP]
simp only [ContinuousLinearMap.comp_apply, apply_symm_apply, coe_coe]
[GOAL]
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : (M →L[R] M)ˣ
⊢ ∀ (x y : M), ↑↑f (x + y) = ↑↑f x + ↑↑f y
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : (M →L[R] M)ˣ
⊢ ∀ (r : R) (x : M),
    AddHom.toFun { toFun := ↑↑f, map_add' := (_ : ∀ (a a_1 : M), ↑↑f (a + a_1) = ↑↑f a + ↑↑f a_1) } (r • x) =
      ↑(RingHom.id R) r •
        AddHom.toFun { toFun := ↑↑f, map_add' := (_ : ∀ (a a_1 : M), ↑↑f (a + a_1) = ↑↑f a + ↑↑f a_1) } x
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : (M →L[R] M)ˣ
x : M
⊢ ↑(f.inv * ↑f) x = x
[PROOFSTEP]
rw [f.inv_val]
[GOAL]
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : (M →L[R] M)ˣ
x : M
⊢ ↑1 x = x
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : (M →L[R] M)ˣ
x : M
⊢ ↑(↑f * f.inv) x = x
[PROOFSTEP]
rw [f.val_inv]
[GOAL]
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : (M →L[R] M)ˣ
x : M
⊢ ↑1 x = x
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : M ≃L[R] M
⊢ ↑f * ↑(ContinuousLinearEquiv.symm f) = 1
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : M ≃L[R] M
x✝ : M
⊢ ↑(↑f * ↑(ContinuousLinearEquiv.symm f)) x✝ = ↑1 x✝
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : M ≃L[R] M
⊢ ↑(ContinuousLinearEquiv.symm f) * ↑f = 1
[PROOFSTEP]
ext
[GOAL]
case h
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : M ≃L[R] M
x✝ : M
⊢ ↑(↑(ContinuousLinearEquiv.symm f) * ↑f) x✝ = ↑1 x✝
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : (M →L[R] M)ˣ
⊢ toUnit (ofUnit f) = f
[PROOFSTEP]
ext
[GOAL]
case a.h
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : (M →L[R] M)ˣ
x✝ : M
⊢ ↑↑(toUnit (ofUnit f)) x✝ = ↑↑f x✝
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : M ≃L[R] M
⊢ ofUnit (toUnit f) = f
[PROOFSTEP]
ext
[GOAL]
case h.h
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
f : M ≃L[R] M
x✝ : M
⊢ ↑(ofUnit (toUnit f)) x✝ = ↑f x✝
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
x y : (M →L[R] M)ˣ
⊢ Equiv.toFun
      { toFun := ofUnit, invFun := toUnit, left_inv := (_ : ∀ (f : (M →L[R] M)ˣ), toUnit (ofUnit f) = f),
        right_inv := (_ : ∀ (f : M ≃L[R] M), ofUnit (toUnit f) = f) }
      (x * y) =
    Equiv.toFun
        { toFun := ofUnit, invFun := toUnit, left_inv := (_ : ∀ (f : (M →L[R] M)ˣ), toUnit (ofUnit f) = f),
          right_inv := (_ : ∀ (f : M ≃L[R] M), ofUnit (toUnit f) = f) }
        x *
      Equiv.toFun
        { toFun := ofUnit, invFun := toUnit, left_inv := (_ : ∀ (f : (M →L[R] M)ˣ), toUnit (ofUnit f) = f),
          right_inv := (_ : ∀ (f : M ≃L[R] M), ofUnit (toUnit f) = f) }
        y
[PROOFSTEP]
ext
[GOAL]
case h.h
R : Type u_1
inst✝¹⁰ : Ring R
R₂ : Type u_2
inst✝⁹ : Ring R₂
M : Type u_3
inst✝⁸ : TopologicalSpace M
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
M₂ : Type u_4
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : AddCommGroup M₂
inst✝³ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝² : RingHomInvPair σ₁₂ σ₂₁
inst✝¹ : RingHomInvPair σ₂₁ σ₁₂
inst✝ : TopologicalAddGroup M
x y : (M →L[R] M)ˣ
x✝ : M
⊢ ↑(Equiv.toFun
          { toFun := ofUnit, invFun := toUnit, left_inv := (_ : ∀ (f : (M →L[R] M)ˣ), toUnit (ofUnit f) = f),
            right_inv := (_ : ∀ (f : M ≃L[R] M), ofUnit (toUnit f) = f) }
          (x * y))
      x✝ =
    ↑(Equiv.toFun
            { toFun := ofUnit, invFun := toUnit, left_inv := (_ : ∀ (f : (M →L[R] M)ˣ), toUnit (ofUnit f) = f),
              right_inv := (_ : ∀ (f : M ≃L[R] M), ofUnit (toUnit f) = f) }
            x *
          Equiv.toFun
            { toFun := ofUnit, invFun := toUnit, left_inv := (_ : ∀ (f : (M →L[R] M)ˣ), toUnit (ofUnit f) = f),
              right_inv := (_ : ∀ (f : M ≃L[R] M), ofUnit (toUnit f) = f) }
            y)
      x✝
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
inst✝¹¹ : Ring R
R₂ : Type u_2
inst✝¹⁰ : Ring R₂
M : Type u_3
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommGroup M
inst✝⁷ : Module R M
M₂ : Type u_4
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommGroup M₂
inst✝⁴ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : TopologicalSpace R
inst✝ : ContinuousMul R
u : Rˣ
x : R
⊢ ↑(ContinuousLinearMap.smulRight 1 ↑u⁻¹) (↑(ContinuousLinearMap.smulRight 1 ↑u) x) = x
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹¹ : Ring R
R₂ : Type u_2
inst✝¹⁰ : Ring R₂
M : Type u_3
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommGroup M
inst✝⁷ : Module R M
M₂ : Type u_4
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommGroup M₂
inst✝⁴ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : TopologicalSpace R
inst✝ : ContinuousMul R
u : Rˣ
x : R
⊢ ↑(ContinuousLinearMap.smulRight 1 ↑u) (↑(ContinuousLinearMap.smulRight 1 ↑u⁻¹) x) = x
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹¹ : Ring R
R₂ : Type u_2
inst✝¹⁰ : Ring R₂
M : Type u_3
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommGroup M
inst✝⁷ : Module R M
M₂ : Type u_4
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommGroup M₂
inst✝⁴ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : TopologicalSpace R
inst✝ : ContinuousMul R
e : R ≃L[R] R
⊢ ↑e 1 * ↑(ContinuousLinearEquiv.symm e) 1 = 1
[PROOFSTEP]
rw [← smul_eq_mul, ← map_smul, smul_eq_mul, mul_one, symm_apply_apply]
[GOAL]
R : Type u_1
inst✝¹¹ : Ring R
R₂ : Type u_2
inst✝¹⁰ : Ring R₂
M : Type u_3
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommGroup M
inst✝⁷ : Module R M
M₂ : Type u_4
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommGroup M₂
inst✝⁴ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : TopologicalSpace R
inst✝ : ContinuousMul R
e : R ≃L[R] R
⊢ ↑(ContinuousLinearEquiv.symm e) 1 * ↑e 1 = 1
[PROOFSTEP]
rw [← smul_eq_mul, ← map_smul, smul_eq_mul, mul_one, apply_symm_apply]
[GOAL]
R : Type u_1
inst✝¹¹ : Ring R
R₂ : Type u_2
inst✝¹⁰ : Ring R₂
M : Type u_3
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommGroup M
inst✝⁷ : Module R M
M₂ : Type u_4
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommGroup M₂
inst✝⁴ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : TopologicalSpace R
inst✝ : ContinuousMul R
u : Rˣ
⊢ ↑((fun e =>
          { val := ↑e 1, inv := ↑(ContinuousLinearEquiv.symm e) 1,
            val_inv := (_ : ↑e 1 * ↑(ContinuousLinearEquiv.symm e) 1 = 1),
            inv_val := (_ : ↑(ContinuousLinearEquiv.symm e) 1 * ↑e 1 = 1) })
        ((fun u =>
            equivOfInverse (ContinuousLinearMap.smulRight 1 ↑u) (ContinuousLinearMap.smulRight 1 ↑u⁻¹)
              (_ : ∀ (x : R), x * ↑u * ↑u⁻¹ = x) (_ : ∀ (x : R), x * ↑u⁻¹ * ↑u = x))
          u)) =
    ↑u
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹¹ : Ring R
R₂ : Type u_2
inst✝¹⁰ : Ring R₂
M : Type u_3
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommGroup M
inst✝⁷ : Module R M
M₂ : Type u_4
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommGroup M₂
inst✝⁴ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : TopologicalSpace R
inst✝ : ContinuousMul R
e : R ≃L[R] R
⊢ ↑((fun u =>
            equivOfInverse (ContinuousLinearMap.smulRight 1 ↑u) (ContinuousLinearMap.smulRight 1 ↑u⁻¹)
              (_ : ∀ (x : R), x * ↑u * ↑u⁻¹ = x) (_ : ∀ (x : R), x * ↑u⁻¹ * ↑u = x))
          ((fun e =>
              { val := ↑e 1, inv := ↑(ContinuousLinearEquiv.symm e) 1,
                val_inv := (_ : ↑e 1 * ↑(ContinuousLinearEquiv.symm e) 1 = 1),
                inv_val := (_ : ↑(ContinuousLinearEquiv.symm e) 1 * ↑e 1 = 1) })
            e))
      1 =
    ↑e 1
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹¹ : Ring R
R₂ : Type u_2
inst✝¹⁰ : Ring R₂
M : Type u_3
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommGroup M
inst✝⁷ : Module R M
M₂ : Type u_4
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommGroup M₂
inst✝⁴ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : Module R M₂
inst✝ : TopologicalAddGroup M
f₁ : M →L[R] M₂
f₂ : M₂ →L[R] M
h : Function.RightInverse ↑f₂ ↑f₁
x : M
⊢ ↑(ContinuousLinearMap.coprod f₂ (Submodule.subtypeL (ker f₁)))
      (↑(ContinuousLinearMap.prod f₁ (ContinuousLinearMap.projKerOfRightInverse f₁ f₂ h)) x) =
    x
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
inst✝¹¹ : Ring R
R₂ : Type u_2
inst✝¹⁰ : Ring R₂
M : Type u_3
inst✝⁹ : TopologicalSpace M
inst✝⁸ : AddCommGroup M
inst✝⁷ : Module R M
M₂ : Type u_4
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommGroup M₂
inst✝⁴ : Module R₂ M₂
σ₁₂ : R →+* R₂
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : Module R M₂
inst✝ : TopologicalAddGroup M
f₁ : M →L[R] M₂
f₂ : M₂ →L[R] M
h : Function.RightInverse ↑f₂ ↑f₁
x✝ : M₂ × { x // x ∈ ker f₁ }
x : M₂
y : { x // x ∈ ker f₁ }
⊢ ↑(ContinuousLinearMap.prod f₁ (ContinuousLinearMap.projKerOfRightInverse f₁ f₂ h))
      (↑(ContinuousLinearMap.coprod f₂ (Submodule.subtypeL (ker f₁))) (x, y)) =
    (x, y)
[PROOFSTEP]
rw [ContinuousLinearMap.coprod_apply, Submodule.subtypeL_apply, _root_.map_add, ContinuousLinearMap.prod_apply, h x,
  ContinuousLinearMap.projKerOfRightInverse_comp_inv, ContinuousLinearMap.prod_apply, LinearMap.map_coe_ker,
  ContinuousLinearMap.projKerOfRightInverse_apply_idem, Prod.mk_add_mk, add_zero, zero_add]
[GOAL]
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁶ : TopologicalSpace M
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M₂
inst✝² : Module R M₂
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
e : M ≃L[R] M₂
⊢ inverse ↑e = ↑(ContinuousLinearEquiv.symm e)
[PROOFSTEP]
have h : ∃ e' : M ≃L[R] M₂, (e' : M →L[R] M₂) = ↑e := ⟨e, rfl⟩
[GOAL]
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁶ : TopologicalSpace M
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M₂
inst✝² : Module R M₂
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
e : M ≃L[R] M₂
h : ∃ e', ↑e' = ↑e
⊢ inverse ↑e = ↑(ContinuousLinearEquiv.symm e)
[PROOFSTEP]
simp only [inverse, dif_pos h]
[GOAL]
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁶ : TopologicalSpace M
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M₂
inst✝² : Module R M₂
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
e : M ≃L[R] M₂
h : ∃ e', ↑e' = ↑e
⊢ ↑(ContinuousLinearEquiv.symm (choose h)) = ↑(ContinuousLinearEquiv.symm e)
[PROOFSTEP]
congr
[GOAL]
case e_e.e_e
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁶ : TopologicalSpace M
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M₂
inst✝² : Module R M₂
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
e : M ≃L[R] M₂
h : ∃ e', ↑e' = ↑e
⊢ choose h = e
[PROOFSTEP]
exact_mod_cast Classical.choose_spec h
[GOAL]
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M
⊢ Ring.inverse ↑e = inverse ↑e
[PROOFSTEP]
suffices Ring.inverse ((ContinuousLinearEquiv.unitsEquiv _ _).symm e : M →L[R] M) = inverse ↑e by convert this
[GOAL]
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M
this : Ring.inverse ↑(↑(MulEquiv.symm (ContinuousLinearEquiv.unitsEquiv R M)) e) = inverse ↑e
⊢ Ring.inverse ↑e = inverse ↑e
[PROOFSTEP]
convert this
[GOAL]
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M
⊢ Ring.inverse ↑(↑(MulEquiv.symm (ContinuousLinearEquiv.unitsEquiv R M)) e) = inverse ↑e
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M
⊢ ↑(↑(MulEquiv.symm (ContinuousLinearEquiv.unitsEquiv R M)) e)⁻¹ = ↑(ContinuousLinearEquiv.symm e)
[PROOFSTEP]
rfl
[GOAL]
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
⊢ inverse f = comp (Ring.inverse (comp (↑(ContinuousLinearEquiv.symm e)) f)) ↑(ContinuousLinearEquiv.symm e)
[PROOFSTEP]
by_cases h₁ : ∃ e' : M ≃L[R] M₂, e' = f
[GOAL]
case pos
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
h₁ : ∃ e', ↑e' = f
⊢ inverse f = comp (Ring.inverse (comp (↑(ContinuousLinearEquiv.symm e)) f)) ↑(ContinuousLinearEquiv.symm e)
[PROOFSTEP]
obtain ⟨e', he'⟩ := h₁
[GOAL]
case pos.intro
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
e' : M ≃L[R] M₂
he' : ↑e' = f
⊢ inverse f = comp (Ring.inverse (comp (↑(ContinuousLinearEquiv.symm e)) f)) ↑(ContinuousLinearEquiv.symm e)
[PROOFSTEP]
rw [← he']
[GOAL]
case pos.intro
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
e' : M ≃L[R] M₂
he' : ↑e' = f
⊢ inverse ↑e' = comp (Ring.inverse (comp ↑(ContinuousLinearEquiv.symm e) ↑e')) ↑(ContinuousLinearEquiv.symm e)
[PROOFSTEP]
change _ = Ring.inverse (e'.trans e.symm : M →L[R] M) ∘L (e.symm : M₂ →L[R] M)
[GOAL]
case pos.intro
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
e' : M ≃L[R] M₂
he' : ↑e' = f
⊢ inverse ↑e' =
    comp (Ring.inverse ↑(ContinuousLinearEquiv.trans e' (ContinuousLinearEquiv.symm e))) ↑(ContinuousLinearEquiv.symm e)
[PROOFSTEP]
ext
[GOAL]
case pos.intro.h
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
e' : M ≃L[R] M₂
he' : ↑e' = f
x✝ : M₂
⊢ ↑(inverse ↑e') x✝ =
    ↑(comp (Ring.inverse ↑(ContinuousLinearEquiv.trans e' (ContinuousLinearEquiv.symm e)))
          ↑(ContinuousLinearEquiv.symm e))
      x✝
[PROOFSTEP]
simp
[GOAL]
case neg
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
h₁ : ¬∃ e', ↑e' = f
⊢ inverse f = comp (Ring.inverse (comp (↑(ContinuousLinearEquiv.symm e)) f)) ↑(ContinuousLinearEquiv.symm e)
[PROOFSTEP]
suffices ¬IsUnit ((e.symm : M₂ →L[R] M).comp f) by simp [this, h₁]
[GOAL]
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
h₁ : ¬∃ e', ↑e' = f
this : ¬IsUnit (comp (↑(ContinuousLinearEquiv.symm e)) f)
⊢ inverse f = comp (Ring.inverse (comp (↑(ContinuousLinearEquiv.symm e)) f)) ↑(ContinuousLinearEquiv.symm e)
[PROOFSTEP]
simp [this, h₁]
[GOAL]
case neg
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
h₁ : ¬∃ e', ↑e' = f
⊢ ¬IsUnit (comp (↑(ContinuousLinearEquiv.symm e)) f)
[PROOFSTEP]
contrapose! h₁
[GOAL]
case neg
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
h₁ : IsUnit (comp (↑(ContinuousLinearEquiv.symm e)) f)
⊢ ∃ e', ↑e' = f
[PROOFSTEP]
rcases h₁ with ⟨F, hF⟩
[GOAL]
case neg.intro
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
F : (M →L[R] M)ˣ
hF : ↑F = comp (↑(ContinuousLinearEquiv.symm e)) f
⊢ ∃ e', ↑e' = f
[PROOFSTEP]
use(ContinuousLinearEquiv.unitsEquiv _ _ F).trans e
[GOAL]
case h
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
F : (M →L[R] M)ˣ
hF : ↑F = comp (↑(ContinuousLinearEquiv.symm e)) f
⊢ ↑(ContinuousLinearEquiv.trans (↑(ContinuousLinearEquiv.unitsEquiv R M) F) e) = f
[PROOFSTEP]
ext
[GOAL]
case h.h
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
F : (M →L[R] M)ˣ
hF : ↑F = comp (↑(ContinuousLinearEquiv.symm e)) f
x✝ : M
⊢ ↑↑(ContinuousLinearEquiv.trans (↑(ContinuousLinearEquiv.unitsEquiv R M) F) e) x✝ = ↑f x✝
[PROOFSTEP]
dsimp
[GOAL]
case h.h
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
F : (M →L[R] M)ˣ
hF : ↑F = comp (↑(ContinuousLinearEquiv.symm e)) f
x✝ : M
⊢ ↑e (↑↑F x✝) = ↑f x✝
[PROOFSTEP]
rw [hF]
[GOAL]
case h.h
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
e : M ≃L[R] M₂
f : M →L[R] M₂
F : (M →L[R] M)ˣ
hF : ↑F = comp (↑(ContinuousLinearEquiv.symm e)) f
x✝ : M
⊢ ↑e (↑(comp (↑(ContinuousLinearEquiv.symm e)) f) x✝) = ↑f x✝
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
⊢ Ring.inverse = inverse
[PROOFSTEP]
ext
[GOAL]
case h.h
R : Type u_1
M : Type u_2
M₂ : Type u_3
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : TopologicalAddGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
x✝¹ : M →L[R] M
x✝ : M
⊢ ↑(Ring.inverse x✝¹) x✝ = ↑(inverse x✝¹) x✝
[PROOFSTEP]
simp [to_ring_inverse (ContinuousLinearEquiv.refl R M)]
[GOAL]
R : Type u_1
inst✝⁸ : Ring R
M : Type u_2
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
M₂ : Type u_3
inst✝⁴ : TopologicalSpace M₂
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : TopologicalAddGroup M
inst✝ : T1Space M
p : Submodule R M
h : ClosedComplemented p
⊢ IsClosed ↑p
[PROOFSTEP]
rcases h with ⟨f, hf⟩
[GOAL]
case intro
R : Type u_1
inst✝⁸ : Ring R
M : Type u_2
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
M₂ : Type u_3
inst✝⁴ : TopologicalSpace M₂
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : TopologicalAddGroup M
inst✝ : T1Space M
p : Submodule R M
f : M →L[R] { x // x ∈ p }
hf : ∀ (x : { x // x ∈ p }), ↑f ↑x = x
⊢ IsClosed ↑p
[PROOFSTEP]
have : ker (id R M - p.subtypeL.comp f) = p := LinearMap.ker_id_sub_eq_of_proj hf
[GOAL]
case intro
R : Type u_1
inst✝⁸ : Ring R
M : Type u_2
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
M₂ : Type u_3
inst✝⁴ : TopologicalSpace M₂
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : TopologicalAddGroup M
inst✝ : T1Space M
p : Submodule R M
f : M →L[R] { x // x ∈ p }
hf : ∀ (x : { x // x ∈ p }), ↑f ↑x = x
this : ker (ContinuousLinearMap.id R M - comp (subtypeL p) f) = p
⊢ IsClosed ↑p
[PROOFSTEP]
exact this ▸ isClosed_ker _
[GOAL]
R : Type u_1
inst✝⁶ : Ring R
M : Type u_2
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
M₂ : Type u_3
inst✝² : TopologicalSpace M₂
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
x : { x // x ∈ ⊥ }
⊢ ↑0 ↑x = x
[PROOFSTEP]
simp only [zero_apply, eq_zero_of_bot_submodule x]
[GOAL]
R : Type u_1
inst✝⁶ : Ring R
M : Type u_2
inst✝⁵ : TopologicalSpace M
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
M₂ : Type u_3
inst✝² : TopologicalSpace M₂
inst✝¹ : AddCommGroup M₂
inst✝ : Module R M₂
x : { x // x ∈ ⊤ }
⊢ ↑(↑(codRestrict (ContinuousLinearMap.id R M) ⊤ (_ : M → True)) ↑x) = ↑x
[PROOFSTEP]
simp
[GOAL]
R : Type u_1
M : Type u_2
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : TopologicalSpace M
S : Submodule R M
inst✝² : TopologicalSpace R
inst✝¹ : TopologicalAddGroup M
inst✝ : ContinuousSMul R M
⊢ ContinuousSMul R (M ⧸ S)
[PROOFSTEP]
constructor
[GOAL]
case continuous_smul
R : Type u_1
M : Type u_2
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : TopologicalSpace M
S : Submodule R M
inst✝² : TopologicalSpace R
inst✝¹ : TopologicalAddGroup M
inst✝ : ContinuousSMul R M
⊢ Continuous fun p => p.fst • p.snd
[PROOFSTEP]
have quot : QuotientMap fun au : R × M => (au.1, S.mkQ au.2) :=
  IsOpenMap.to_quotientMap (IsOpenMap.id.prod S.isOpenMap_mkQ) (continuous_id.prod_map continuous_quot_mk)
    (Function.surjective_id.Prod_map <| surjective_quot_mk _)
[GOAL]
case continuous_smul
R : Type u_1
M : Type u_2
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : TopologicalSpace M
S : Submodule R M
inst✝² : TopologicalSpace R
inst✝¹ : TopologicalAddGroup M
inst✝ : ContinuousSMul R M
quot : QuotientMap fun au => (au.fst, ↑(mkQ S) au.snd)
⊢ Continuous fun p => p.fst • p.snd
[PROOFSTEP]
rw [quot.continuous_iff]
[GOAL]
case continuous_smul
R : Type u_1
M : Type u_2
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : TopologicalSpace M
S : Submodule R M
inst✝² : TopologicalSpace R
inst✝¹ : TopologicalAddGroup M
inst✝ : ContinuousSMul R M
quot : QuotientMap fun au => (au.fst, ↑(mkQ S) au.snd)
⊢ Continuous ((fun p => p.fst • p.snd) ∘ fun au => (au.fst, ↑(mkQ S) au.snd))
[PROOFSTEP]
exact continuous_quot_mk.comp continuous_smul