Theorem: KaehlerDifferential.kerTotal_map
File: Mathlib/RingTheory/Kaehler/Basic.lean

Proof steps:
state_before: R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.map (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
        (kerTotal R A) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1) =
    Submodule.restrictScalars A (kerTotal S B)
state_after: R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A
        (⇑(Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B)) ''
          (((Set.range fun x => Finsupp.single x.1 1 + Finsupp.single x.2 1 - Finsupp.single (x.1 + x.2) 1) ∪
              Set.range fun x => Finsupp.single x.2 x.1 + Finsupp.single x.1 x.2 - Finsupp.single (x.1 * x.2) 1) ∪
            Set.range fun x => Finsupp.single ((algebraMap R A) x) 1)) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1) =
    Submodule.span A
      (((Set.range fun x => Finsupp.single x.1 1 + Finsupp.single x.2 1 - Finsupp.single (x.1 + x.2) 1) ∪
          Set.range fun x => Finsupp.single x.2 x.1 + Finsupp.single x.1 x.2 - Finsupp.single (x.1 * x.2) 1) ∪
        Set.range fun x => Finsupp.single ((algebraMap S B) x) 1)
tactic: rw [KaehlerDifferential.kerTotal, Submodule.map_span, KaehlerDifferential.kerTotal,
    Submodule.restrictScalars_span _ _ h]
state_before: R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A
        (⇑(Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B)) ''
          (((Set.range fun x => Finsupp.single x.1 1 + Finsupp.single x.2 1 - Finsupp.single (x.1 + x.2) 1) ∪
              Set.range fun x => Finsupp.single x.2 x.1 + Finsupp.single x.1 x.2 - Finsupp.single (x.1 * x.2) 1) ∪
            Set.range fun x => Finsupp.single ((algebraMap R A) x) 1)) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1) =
    Submodule.span A
      (((Set.range fun x => Finsupp.single x.1 1 + Finsupp.single x.2 1 - Finsupp.single (x.1 + x.2) 1) ∪
          Set.range fun x => Finsupp.single x.2 x.1 + Finsupp.single x.1 x.2 - Finsupp.single (x.1 * x.2) 1) ∪
        Set.range fun x => Finsupp.single ((algebraMap S B) x) 1)
state_after: R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A
            (Set.range fun x =>
              (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
                    (Finsupp.single x.1 1) +
                  (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
                    (Finsupp.single x.2 1) -
                (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
                  (Finsupp.single (x.1 + x.2) 1)) ⊔
          Submodule.span A
            (Set.range fun x =>
              (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
                    (Finsupp.single x.2 x.1) +
                  (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
                    (Finsupp.single x.1 x.2) -
                (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
                  (Finsupp.single (x.1 * x.2) 1)) ⊔
        Submodule.span A
          (Set.range fun x =>
            (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
              (Finsupp.single ((algebraMap R A) x) 1)) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1) =
    Submodule.span A (Set.range fun x => Finsupp.single x.1 1 + Finsupp.single x.2 1 - Finsupp.single (x.1 + x.2) 1) ⊔
        Submodule.span A
          (Set.range fun x => Finsupp.single x.2 x.1 + Finsupp.single x.1 x.2 - Finsupp.single (x.1 * x.2) 1) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1)
tactic: simp_rw [Set.image_union, Submodule.span_union, ← Set.image_univ, Set.image_image, Set.image_univ,
    map_sub, map_add]
state_before: R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A
            (Set.range fun x =>
              (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
                    (Finsupp.single x.1 1) +
                  (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
                    (Finsupp.single x.2 1) -
                (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
                  (Finsupp.single (x.1 + x.2) 1)) ⊔
          Submodule.span A
            (Set.range fun x =>
              (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
                    (Finsupp.single x.2 x.1) +
                  (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
                    (Finsupp.single x.1 x.2) -
                (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
                  (Finsupp.single (x.1 * x.2) 1)) ⊔
        Submodule.span A
          (Set.range fun x =>
            (Finsupp.mapRange.linearMap (Algebra.linearMap A B) ∘ₗ Finsupp.lmapDomain A A ⇑(algebraMap A B))
              (Finsupp.single ((algebraMap R A) x) 1)) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1) =
    Submodule.span A (Set.range fun x => Finsupp.single x.1 1 + Finsupp.single x.2 1 - Finsupp.single (x.1 + x.2) 1) ⊔
        Submodule.span A
          (Set.range fun x => Finsupp.single x.2 x.1 + Finsupp.single x.1 x.2 - Finsupp.single (x.1 * x.2) 1) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1)
state_after: R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A
            (Set.range fun x =>
              Finsupp.single ((algebraMap A B) x.1) 1 + Finsupp.single ((algebraMap A B) x.2) 1 -
                Finsupp.single ((algebraMap A B) x.1 + (algebraMap A B) x.2) 1) ⊔
          Submodule.span A
            (Set.range fun x =>
              Finsupp.single ((algebraMap A B) x.2) ((algebraMap A B) x.1) +
                  Finsupp.single ((algebraMap A B) x.1) ((algebraMap A B) x.2) -
                Finsupp.single ((algebraMap A B) x.1 * (algebraMap A B) x.2) 1) ⊔
        Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap A B) ((algebraMap R A) x)) 1) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1) =
    Submodule.span A (Set.range fun x => Finsupp.single x.1 1 + Finsupp.single x.2 1 - Finsupp.single (x.1 + x.2) 1) ⊔
        Submodule.span A
          (Set.range fun x => Finsupp.single x.2 x.1 + Finsupp.single x.1 x.2 - Finsupp.single (x.1 * x.2) 1) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1)
tactic: simp only [LinearMap.comp_apply, Finsupp.lmapDomain_apply, Finsupp.mapDomain_single,
    Finsupp.mapRange.linearMap_apply, Finsupp.mapRange_single, Algebra.linearMap_apply,
    map_one, map_add, map_mul]
state_before: R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A
            (Set.range fun x =>
              Finsupp.single ((algebraMap A B) x.1) 1 + Finsupp.single ((algebraMap A B) x.2) 1 -
                Finsupp.single ((algebraMap A B) x.1 + (algebraMap A B) x.2) 1) ⊔
          Submodule.span A
            (Set.range fun x =>
              Finsupp.single ((algebraMap A B) x.2) ((algebraMap A B) x.1) +
                  Finsupp.single ((algebraMap A B) x.1) ((algebraMap A B) x.2) -
                Finsupp.single ((algebraMap A B) x.1 * (algebraMap A B) x.2) 1) ⊔
        Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap A B) ((algebraMap R A) x)) 1) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1) =
    Submodule.span A (Set.range fun x => Finsupp.single x.1 1 + Finsupp.single x.2 1 - Finsupp.single (x.1 + x.2) 1) ⊔
        Submodule.span A
          (Set.range fun x => Finsupp.single x.2 x.1 + Finsupp.single x.1 x.2 - Finsupp.single (x.1 * x.2) 1) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1)
state_after: R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A
        (Set.range fun x =>
          Finsupp.single ((algebraMap A B) x.1) 1 + Finsupp.single ((algebraMap A B) x.2) 1 -
            Finsupp.single ((algebraMap A B) x.1 + (algebraMap A B) x.2) 1) ⊔
      (Submodule.span A
          (Set.range fun x =>
            Finsupp.single ((algebraMap A B) x.2) ((algebraMap A B) x.1) +
                Finsupp.single ((algebraMap A B) x.1) ((algebraMap A B) x.2) -
              Finsupp.single ((algebraMap A B) x.1 * (algebraMap A B) x.2) 1) ⊔
        (Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap A B) ((algebraMap R A) x)) 1) ⊔
          Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1))) =
    Submodule.span A
        (Set.range
          ((fun x => Finsupp.single x.1 1 + Finsupp.single x.2 1 - Finsupp.single (x.1 + x.2) 1) ∘
            Prod.map ⇑(algebraMap A B) ⇑(algebraMap A B))) ⊔
      (Submodule.span A
          (Set.range
            ((fun x => Finsupp.single x.2 x.1 + Finsupp.single x.1 x.2 - Finsupp.single (x.1 * x.2) 1) ∘
              Prod.map ⇑(algebraMap A B) ⇑(algebraMap A B))) ⊔
        Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1))
tactic: simp_rw [sup_assoc, ← (h.prodMap h).range_comp]
state_before: R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A
        (Set.range fun x =>
          Finsupp.single ((algebraMap A B) x.1) 1 + Finsupp.single ((algebraMap A B) x.2) 1 -
            Finsupp.single ((algebraMap A B) x.1 + (algebraMap A B) x.2) 1) ⊔
      (Submodule.span A
          (Set.range fun x =>
            Finsupp.single ((algebraMap A B) x.2) ((algebraMap A B) x.1) +
                Finsupp.single ((algebraMap A B) x.1) ((algebraMap A B) x.2) -
              Finsupp.single ((algebraMap A B) x.1 * (algebraMap A B) x.2) 1) ⊔
        (Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap A B) ((algebraMap R A) x)) 1) ⊔
          Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1))) =
    Submodule.span A
        (Set.range
          ((fun x => Finsupp.single x.1 1 + Finsupp.single x.2 1 - Finsupp.single (x.1 + x.2) 1) ∘
            Prod.map ⇑(algebraMap A B) ⇑(algebraMap A B))) ⊔
      (Submodule.span A
          (Set.range
            ((fun x => Finsupp.single x.2 x.1 + Finsupp.single x.1 x.2 - Finsupp.single (x.1 * x.2) 1) ∘
              Prod.map ⇑(algebraMap A B) ⇑(algebraMap A B))) ⊔
        Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1))
state_after: case h.e'_4.h.e'_4
R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap A B) ((algebraMap R A) x)) 1) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1) =
    Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1)
tactic: congr!
state_before: case h.e'_4.h.e'_4
R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap A B) ((algebraMap R A) x)) 1) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1) =
    Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1)
state_after: case h.e'_4.h.e'_4
R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap R B) x) 1) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1) =
    Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1)
tactic: simp_rw [← IsScalarTower.algebraMap_apply R A B]
state_before: case h.e'_4.h.e'_4
R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap R B) x) 1) ⊔
      Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1) =
    Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1)
state_after: case h.e'_4.h.e'_4
R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap R B) x) 1) ≤
    Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1)
tactic: rw [sup_eq_right]
state_before: case h.e'_4.h.e'_4
R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap R B) x) 1) ≤
    Submodule.span A (Set.range fun x => Finsupp.single ((algebraMap S B) x) 1)
state_after: case h.e'_4.h.e'_4.h
R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ (Set.range fun x => Finsupp.single ((algebraMap R B) x) 1) ⊆ Set.range fun x => Finsupp.single ((algebraMap S B) x) 1
tactic: apply Submodule.span_mono
state_before: case h.e'_4.h.e'_4.h
R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ (Set.range fun x => Finsupp.single ((algebraMap R B) x) 1) ⊆ Set.range fun x => Finsupp.single ((algebraMap S B) x) 1
state_after: case h.e'_4.h.e'_4.h
R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ (Set.range fun x => Finsupp.single ((algebraMap S B) ((algebraMap R S) x)) 1) ⊆
    Set.range fun x => Finsupp.single ((algebraMap S B) x) 1
tactic: simp_rw [IsScalarTower.algebraMap_apply R S B]
state_before: case h.e'_4.h.e'_4.h
R : Type u
S : Type v
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : Algebra R S
M : Type u_1
inst✝¹² : AddCommGroup M
inst✝¹¹ : Module R M
inst✝¹⁰ : Module S M
inst✝⁹ : IsScalarTower R S M
A : Type u_2
B : Type u_3
inst✝⁸ : CommRing A
inst✝⁷ : CommRing B
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra R B
inst✝⁴ : Algebra A B
inst✝³ : Algebra S B
inst✝² : IsScalarTower R A B
inst✝¹ : IsScalarTower R S B
inst✝ : SMulCommClass S A B
h : Function.Surjective ⇑(algebraMap A B)
⊢ (Set.range fun x => Finsupp.single ((algebraMap S B) ((algebraMap R S) x)) 1) ⊆
    Set.range fun x => Finsupp.single ((algebraMap S B) x) 1
state_after: no goals
tactic: exact Set.range_comp_subset_range (algebraMap R S)
    fun x => Finsupp.single (algebraMap S B x) (1 : B)