Theorem: Ideal.smul_top_eq_map
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: refine'
  le_antisymm (Submodule.smul_le.mpr fun r hr y _ => _) fun x hx =>
    Submodule.span_induction hx _ _ _ _
state_before: R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
⊢ I • ⊤ = Submodule.restrictScalars R (map (algebraMap R S) I)

tactic: intro a x hx
state_before: case refine'_5
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x : S
hx : x ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
⊢ ∀ (a x : S), x ∈ I • ⊤ → a • x ∈ I • ⊤

tactic: refine' Submodule.smul_induction_on hx _ _
state_before: case refine'_5
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x✝ : S
hx✝ : x✝ ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
a x : S
hx : x ∈ I • ⊤
⊢ a • x ∈ I • ⊤

tactic: rw [Algebra.smul_def]
state_before: case refine'_1
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
r : R
hr : r ∈ I
y : S
x✝ : y ∈ ⊤
⊢ r • y ∈ Submodule.restrictScalars R (map (algebraMap R S) I)

tactic: exact mul_mem_right _ _ (mem_map_of_mem _ hr)
state_before: case refine'_1
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
r : R
hr : r ∈ I
y : S
x✝ : y ∈ ⊤
⊢ ↑(algebraMap R S) r * y ∈ Submodule.restrictScalars R (map (algebraMap R S) I)

tactic: rintro _ ⟨x, hx, rfl⟩
state_before: case refine'_2
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x : S
hx : x ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
⊢ ∀ (x : S), x ∈ ↑(algebraMap R S) '' ↑I → x ∈ I • ⊤

tactic: rw [← mul_one (algebraMap R S x), ← Algebra.smul_def]
state_before: case refine'_2.intro.intro
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x✝ : S
hx✝ : x✝ ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
x : R
hx : x ∈ ↑I
⊢ ↑(algebraMap R S) x ∈ I • ⊤

tactic: exact Submodule.smul_mem_smul hx Submodule.mem_top
state_before: case refine'_2.intro.intro
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x✝ : S
hx✝ : x✝ ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
x : R
hx : x ∈ ↑I
⊢ x • 1 ∈ I • ⊤

tactic: exact Submodule.zero_mem _
state_before: case refine'_3
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x : S
hx : x ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
⊢ 0 ∈ I • ⊤

tactic: intro x y
state_before: case refine'_4
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x : S
hx : x ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
⊢ ∀ (x y : S), x ∈ I • ⊤ → y ∈ I • ⊤ → x + y ∈ I • ⊤

tactic: exact Submodule.add_mem _
state_before: case refine'_4
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x✝ : S
hx : x✝ ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
x y : S
⊢ x ∈ I • ⊤ → y ∈ I • ⊤ → x + y ∈ I • ⊤

tactic: intro r hr s _
state_before: case refine'_5.refine'_1
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x✝ : S
hx✝ : x✝ ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
a x : S
hx : x ∈ I • ⊤
⊢ ∀ (r : R), r ∈ I → ∀ (n : S), n ∈ ⊤ → a • r • n ∈ I • ⊤

tactic: rw [smul_comm]
state_before: case refine'_5.refine'_1
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x✝ : S
hx✝ : x✝ ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
a x : S
hx : x ∈ I • ⊤
r : R
hr : r ∈ I
s : S
a✝ : s ∈ ⊤
⊢ a • r • s ∈ I • ⊤

tactic: exact Submodule.smul_mem_smul hr Submodule.mem_top
state_before: case refine'_5.refine'_1
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x✝ : S
hx✝ : x✝ ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
a x : S
hx : x ∈ I • ⊤
r : R
hr : r ∈ I
s : S
a✝ : s ∈ ⊤
⊢ r • a • s ∈ I • ⊤

tactic: intro x y hx hy
state_before: case refine'_5.refine'_2
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x✝ : S
hx✝ : x✝ ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
a x : S
hx : x ∈ I • ⊤
⊢ ∀ (x y : S), a • x ∈ I • ⊤ → a • y ∈ I • ⊤ → a • (x + y) ∈ I • ⊤

tactic: rw [smul_add]
state_before: case refine'_5.refine'_2
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x✝¹ : S
hx✝¹ : x✝¹ ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
a x✝ : S
hx✝ : x✝ ∈ I • ⊤
x y : S
hx : a • x ∈ I • ⊤
hy : a • y ∈ I • ⊤
⊢ a • (x + y) ∈ I • ⊤

tactic: exact Submodule.add_mem _ hx hy
state_before: case refine'_5.refine'_2
R✝ : Type u
S✝ : Type v
F : Type ?u.798095
inst✝⁴ : Semiring R✝
inst✝³ : Semiring S✝
rc : RingHomClass F R✝ S✝
f : F
I✝ J : Ideal R✝
K L : Ideal S✝
G : Type ?u.798179
rcg : RingHomClass G S✝ R✝
ι : Sort ?u.798213
R : Type u_1
S : Type u_2
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : Algebra R S
I : Ideal R
x✝¹ : S
hx✝¹ : x✝¹ ∈ Submodule.restrictScalars R (map (algebraMap R S) I)
a x✝ : S
hx✝ : x✝ ∈ I • ⊤
x y : S
hx : a • x ∈ I • ⊤
hy : a • y ∈ I • ⊤
⊢ a • x + a • y ∈ I • ⊤