Theorem: _private.Mathlib.RingTheory.Flat.Stability.0.Module.Flat.auxLTensor_eq
File: Mathlib/RingTheory/Flat/Stability.lean

Proof steps:
state_before: R : Type u
S : Type v
M : Type w
inst✝⁷ : CommRing R
inst✝⁶ : CommRing S
inst✝⁵ : Algebra R S
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Module S M
inst✝¹ : IsScalarTower R S M
inst✝ : Flat R S
I : Ideal R
⊢ ↑R (Module.Flat.auxLTensor R S M I) = ↑(TensorProduct.rid R M) ∘ₗ lTensor M (Submodule.subtype I)
state_after: case H
R : Type u
S : Type v
M : Type w
inst✝⁷ : CommRing R
inst✝⁶ : CommRing S
inst✝⁵ : Algebra R S
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Module S M
inst✝¹ : IsScalarTower R S M
inst✝ : Flat R S
I : Ideal R
⊢ ∀ (x : M) (y : ↥I),
    (↑R (Module.Flat.auxLTensor R S M I)) (x ⊗ₜ[R] y) =
      (↑(TensorProduct.rid R M) ∘ₗ lTensor M (Submodule.subtype I)) (x ⊗ₜ[R] y)
tactic: apply TensorProduct.ext'
state_before: case H
R : Type u
S : Type v
M : Type w
inst✝⁷ : CommRing R
inst✝⁶ : CommRing S
inst✝⁵ : Algebra R S
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Module S M
inst✝¹ : IsScalarTower R S M
inst✝ : Flat R S
I : Ideal R
⊢ ∀ (x : M) (y : ↥I),
    (↑R (Module.Flat.auxLTensor R S M I)) (x ⊗ₜ[R] y) =
      (↑(TensorProduct.rid R M) ∘ₗ lTensor M (Submodule.subtype I)) (x ⊗ₜ[R] y)
state_after: case H
R : Type u
S : Type v
M : Type w
inst✝⁷ : CommRing R
inst✝⁶ : CommRing S
inst✝⁵ : Algebra R S
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Module S M
inst✝¹ : IsScalarTower R S M
inst✝ : Flat R S
I : Ideal R
m : M
x : ↥I
⊢ (↑R (Module.Flat.auxLTensor R S M I)) (m ⊗ₜ[R] x) =
    (↑(TensorProduct.rid R M) ∘ₗ lTensor M (Submodule.subtype I)) (m ⊗ₜ[R] x)
tactic: intro m x
state_before: case H
R : Type u
S : Type v
M : Type w
inst✝⁷ : CommRing R
inst✝⁶ : CommRing S
inst✝⁵ : Algebra R S
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Module S M
inst✝¹ : IsScalarTower R S M
inst✝ : Flat R S
I : Ideal R
m : M
x : ↥I
⊢ (↑R (Module.Flat.auxLTensor R S M I)) (m ⊗ₜ[R] x) =
    (↑(TensorProduct.rid R M) ∘ₗ lTensor M (Submodule.subtype I)) (m ⊗ₜ[R] x)
state_after: case H
R : Type u
S : Type v
M : Type w
inst✝⁷ : CommRing R
inst✝⁶ : CommRing S
inst✝⁵ : Algebra R S
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Module S M
inst✝¹ : IsScalarTower R S M
inst✝ : Flat R S
I : Ideal R
m : M
x : ↥I
⊢ (Submodule.subtype (Module.Flat.J R S I))
        (↑(LinearEquiv.refl S M)
              (((m, x).1, 1).1,
                  ((TensorProduct.mk R S ↥I) ((m, x).1, 1).2)
                    (↑(AlgebraTensorModule.rid S S M).symm (m, x).1, ↑(LinearEquiv.refl R ↥I).symm (m, x).2).2).1,
            ↑(Module.Flat.auxIso R S)
              (((m, x).1, 1).1,
                  ((TensorProduct.mk R S ↥I) ((m, x).1, 1).2)
                    (↑(AlgebraTensorModule.rid S S M).symm (m, x).1, ↑(LinearEquiv.refl R ↥I).symm (m, x).2).2).2).2 •
      LinearMap.id
        (↑(LinearEquiv.refl S M)
              (((m, x).1, 1).1,
                  ((TensorProduct.mk R S ↥I) ((m, x).1, 1).2)
                    (↑(AlgebraTensorModule.rid S S M).symm (m, x).1, ↑(LinearEquiv.refl R ↥I).symm (m, x).2).2).1,
            ↑(Module.Flat.auxIso R S)
              (((m, x).1, 1).1,
                  ((TensorProduct.mk R S ↥I) ((m, x).1, 1).2)
                    (↑(AlgebraTensorModule.rid S S M).symm (m, x).1, ↑(LinearEquiv.refl R ↥I).symm (m, x).2).2).2).1 =
    (↑(TensorProduct.rid R M) ∘ₗ lTensor M (Submodule.subtype I)) (m ⊗ₜ[R] x)
tactic: erw [TensorProduct.rid_tmul]
state_before: case H
R : Type u
S : Type v
M : Type w
inst✝⁷ : CommRing R
inst✝⁶ : CommRing S
inst✝⁵ : Algebra R S
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Module S M
inst✝¹ : IsScalarTower R S M
inst✝ : Flat R S
I : Ideal R
m : M
x : ↥I
⊢ (Submodule.subtype (Module.Flat.J R S I))
        (↑(LinearEquiv.refl S M)
              (((m, x).1, 1).1,
                  ((TensorProduct.mk R S ↥I) ((m, x).1, 1).2)
                    (↑(AlgebraTensorModule.rid S S M).symm (m, x).1, ↑(LinearEquiv.refl R ↥I).symm (m, x).2).2).1,
            ↑(Module.Flat.auxIso R S)
              (((m, x).1, 1).1,
                  ((TensorProduct.mk R S ↥I) ((m, x).1, 1).2)
                    (↑(AlgebraTensorModule.rid S S M).symm (m, x).1, ↑(LinearEquiv.refl R ↥I).symm (m, x).2).2).2).2 •
      LinearMap.id
        (↑(LinearEquiv.refl S M)
              (((m, x).1, 1).1,
                  ((TensorProduct.mk R S ↥I) ((m, x).1, 1).2)
                    (↑(AlgebraTensorModule.rid S S M).symm (m, x).1, ↑(LinearEquiv.refl R ↥I).symm (m, x).2).2).1,
            ↑(Module.Flat.auxIso R S)
              (((m, x).1, 1).1,
                  ((TensorProduct.mk R S ↥I) ((m, x).1, 1).2)
                    (↑(AlgebraTensorModule.rid S S M).symm (m, x).1, ↑(LinearEquiv.refl R ↥I).symm (m, x).2).2).2).1 =
    (↑(TensorProduct.rid R M) ∘ₗ lTensor M (Submodule.subtype I)) (m ⊗ₜ[R] x)
state_after: no goals
tactic: simp