Theorem: polynomialFunctions.eq_adjoin_X
File: Mathlib/Topology/ContinuousFunction/Polynomial.lean

tactic: refine le_antisymm ?_
  (Algebra.adjoin_le fun _ h => ⟨X, trivial, (Set.mem_singleton_iff.1 h).symm⟩)
state_before: R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
⊢ polynomialFunctions s = Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
state_after: R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
⊢ polynomialFunctions s ≤ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}

tactic: rintro - ⟨p, -, rfl⟩
state_before: R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
⊢ polynomialFunctions s ≤ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
state_after: case intro.intro
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p : R[X]
⊢ ↑(toContinuousMapOnAlgHom s) p ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}

tactic: rw [AlgHom.coe_toRingHom]
state_before: case intro.intro
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p : R[X]
⊢ ↑(toContinuousMapOnAlgHom s) p ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
state_after: case intro.intro
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p : R[X]
⊢ (toContinuousMapOnAlgHom s) p ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}

tactic: refine p.induction_on (fun r => ?_) (fun f g hf hg => ?_) fun n r hn => ?_
state_before: case intro.intro
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p : R[X]
⊢ (toContinuousMapOnAlgHom s) p ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
state_after: case intro.intro.refine_1
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p : R[X]
r : R
⊢ (toContinuousMapOnAlgHom s) (Polynomial.C r) ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}

case intro.intro.refine_2
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p f g : R[X]
hf : (toContinuousMapOnAlgHom s) f ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
hg : (toContinuousMapOnAlgHom s) g ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
⊢ (toContinuousMapOnAlgHom s) (f + g) ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}

case intro.intro.refine_3
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p : R[X]
n : ℕ
r : R
hn : (toContinuousMapOnAlgHom s) (Polynomial.C r * X ^ n) ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
⊢ (toContinuousMapOnAlgHom s) (Polynomial.C r * X ^ (n + 1)) ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}

tactic: rw [Polynomial.C_eq_algebraMap, AlgHomClass.commutes]
state_before: case intro.intro.refine_1
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p : R[X]
r : R
⊢ (toContinuousMapOnAlgHom s) (Polynomial.C r) ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
state_after: case intro.intro.refine_1
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p : R[X]
r : R
⊢ (algebraMap R C(↑s, R)) r ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}

tactic: exact Subalgebra.algebraMap_mem _ r
state_before: case intro.intro.refine_1
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p : R[X]
r : R
⊢ (algebraMap R C(↑s, R)) r ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
state_after: no goals

tactic: rw [map_add]
state_before: case intro.intro.refine_2
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p f g : R[X]
hf : (toContinuousMapOnAlgHom s) f ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
hg : (toContinuousMapOnAlgHom s) g ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
⊢ (toContinuousMapOnAlgHom s) (f + g) ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
state_after: case intro.intro.refine_2
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p f g : R[X]
hf : (toContinuousMapOnAlgHom s) f ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
hg : (toContinuousMapOnAlgHom s) g ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
⊢ (toContinuousMapOnAlgHom s) f + (toContinuousMapOnAlgHom s) g ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}

tactic: exact add_mem hf hg
state_before: case intro.intro.refine_2
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p f g : R[X]
hf : (toContinuousMapOnAlgHom s) f ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
hg : (toContinuousMapOnAlgHom s) g ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
⊢ (toContinuousMapOnAlgHom s) f + (toContinuousMapOnAlgHom s) g ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
state_after: no goals

tactic: rw [pow_succ, ← mul_assoc, map_mul]
state_before: case intro.intro.refine_3
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p : R[X]
n : ℕ
r : R
hn : (toContinuousMapOnAlgHom s) (Polynomial.C r * X ^ n) ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
⊢ (toContinuousMapOnAlgHom s) (Polynomial.C r * X ^ (n + 1)) ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
state_after: case intro.intro.refine_3
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p : R[X]
n : ℕ
r : R
hn : (toContinuousMapOnAlgHom s) (Polynomial.C r * X ^ n) ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
⊢ (toContinuousMapOnAlgHom s) (Polynomial.C r * X ^ n) * (toContinuousMapOnAlgHom s) X ∈
    Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}

tactic: exact mul_mem hn (Algebra.subset_adjoin <| Set.mem_singleton _)
state_before: case intro.intro.refine_3
R : Type u_1
inst✝² : CommSemiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
p : R[X]
n : ℕ
r : R
hn : (toContinuousMapOnAlgHom s) (Polynomial.C r * X ^ n) ∈ Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
⊢ (toContinuousMapOnAlgHom s) (Polynomial.C r * X ^ n) * (toContinuousMapOnAlgHom s) X ∈
    Algebra.adjoin R {(toContinuousMapOnAlgHom s) X}
state_after: no goals