Theorem: ContinuousLinearMap.prod_ext_iff
File: Mathlib/Topology/Algebra/Module/Basic.lean

Proof steps:
state_before: 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 ↔ f.comp (inl R M N₂) = g.comp (inl R M N₂) ∧ f.comp (inr R M N₂) = g.comp (inr R M N₂)
state_after: 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 ∘ₗ LinearMap.inl R M N₂ = ↑g ∘ₗ LinearMap.inl R M N₂ ∧ ↑f ∘ₗ LinearMap.inr R M N₂ = ↑g ∘ₗ LinearMap.inr R M N₂ ↔
    ↑(f.comp (inl R M N₂)) = ↑(g.comp (inl R M N₂)) ∧ ↑(f.comp (inr R M N₂)) = ↑(g.comp (inr R M N₂))
tactic: simp only [← coe_inj, LinearMap.prod_ext_iff]
state_before: 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 ∘ₗ LinearMap.inl R M N₂ = ↑g ∘ₗ LinearMap.inl R M N₂ ∧ ↑f ∘ₗ LinearMap.inr R M N₂ = ↑g ∘ₗ LinearMap.inr R M N₂ ↔
    ↑(f.comp (inl R M N₂)) = ↑(g.comp (inl R M N₂)) ∧ ↑(f.comp (inr R M N₂)) = ↑(g.comp (inr R M N₂))
state_after: no goals
tactic: rfl