Skip to content

Commit ce269e5

Browse files
committed
chore(RingTheory/Adjoin/Polynomial): move to Basic.lean (#35883)
Future changes in #35864 will add a new file `Transcendental.lean`. Co-authored-by: Xavier Genereux <xaviergenereux@hotmail.com>
1 parent 338973d commit ce269e5

File tree

9 files changed

+27
-22
lines changed

9 files changed

+27
-22
lines changed

Mathlib.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6024,7 +6024,7 @@ public import Mathlib.RingTheory.Adjoin.Dimension
60246024
public import Mathlib.RingTheory.Adjoin.FG
60256025
public import Mathlib.RingTheory.Adjoin.FGBaseChange
60266026
public import Mathlib.RingTheory.Adjoin.Field
6027-
public import Mathlib.RingTheory.Adjoin.Polynomial
6027+
public import Mathlib.RingTheory.Adjoin.Polynomial.Basic
60286028
public import Mathlib.RingTheory.Adjoin.PowerBasis
60296029
public import Mathlib.RingTheory.Adjoin.Singleton
60306030
public import Mathlib.RingTheory.Adjoin.Tower

Mathlib/Algebra/Polynomial/Derivation.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module
88
public import Mathlib.Algebra.Polynomial.AlgebraMap
99
public import Mathlib.Algebra.Polynomial.Derivative
1010
public import Mathlib.Algebra.Polynomial.Module.AEval
11-
public import Mathlib.RingTheory.Adjoin.Polynomial
11+
public import Mathlib.RingTheory.Adjoin.Polynomial.Basic
1212
public import Mathlib.RingTheory.Derivation.Basic
1313
/-!
1414
# Derivations of univariate polynomials

Mathlib/RingTheory/Adjoin/Polynomial.lean renamed to Mathlib/RingTheory/Adjoin/Polynomial/Basic.lean

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@ public import Mathlib.Algebra.Polynomial.AlgebraMap
1212
1313
## Main results
1414
15-
* `Polynomial.instCommSemiringAdjoinSingleton, instCommRingAdjoinSingleton`:
15+
* `Algebra.instCommSemiringAdjoinSingleton, Algebra.instCommRingAdjoinSingleton`:
1616
adjoining an element to a commutative (semi)ring gives a commutative (semi)ring
17+
* `Algebra.adjoin_singleton_induction`:
18+
proving a fact about `a : adjoin R {x}` is the same as proving it for `aeval x p` where `p`
19+
is an arbitrary polynomial
1720
-/
1821

1922
@[expose] public section
@@ -24,7 +27,7 @@ open Finset
2427

2528
open Polynomial
2629

27-
namespace Polynomial
30+
namespace Algebra
2831

2932
universe u v w z
3033

@@ -39,53 +42,55 @@ variable [Algebra R A] [Algebra R B]
3942
variable {p q : R[X]} (x : A)
4043

4144
@[simp]
42-
theorem adjoin_X : adjoin R ({X} : Set R[X]) = ⊤ := by
45+
theorem _root_.Polynomial.adjoin_X : adjoin R ({X} : Set R[X]) = ⊤ := by
4346
refine top_unique fun p _hp => ?_
4447
set S := adjoin R ({X} : Set R[X])
4548
rw [← sum_monomial_eq p]; simp only [← smul_X_eq_monomial]
4649
exact S.sum_mem fun n _hn => S.smul_mem (S.pow_mem (subset_adjoin rfl) _) _
4750

4851
variable (R)
49-
theorem _root_.Algebra.adjoin_singleton_eq_range_aeval (x : A) :
52+
theorem adjoin_singleton_eq_range_aeval (x : A) :
5053
adjoin R {x} = (aeval x).range := by
5154
rw [← Algebra.map_top, ← adjoin_X, AlgHom.map_adjoin, Set.image_singleton, aeval_X]
5255

5356
@[simp]
54-
theorem aeval_mem_adjoin_singleton : aeval x p ∈ adjoin R {x} := by
57+
theorem _root_.Polynomial.aeval_mem_adjoin_singleton : aeval x p ∈ adjoin R {x} := by
5558
simp [adjoin_singleton_eq_range_aeval]
5659

57-
theorem _root_.Algebra.adjoin_mem_exists_aeval {a : A} (h : a ∈ Algebra.adjoin R {x}) :
60+
theorem adjoin_mem_exists_aeval {a : A} (h : a ∈ Algebra.adjoin R {x}) :
5861
∃ p : R[X], aeval x p = a := by
5962
rw [Algebra.adjoin_singleton_eq_range_aeval] at h
6063
simp_all
6164

62-
theorem _root_.Algebra.adjoin_eq_exists_aeval (a : Algebra.adjoin R {x}) :
65+
theorem adjoin_eq_exists_aeval (a : Algebra.adjoin R {x}) :
6366
∃ p : R[X], aeval x p = a := by
6467
have : (a : A) ∈ Algebra.adjoin R {x} := by simp
6568
set y := (a : A) with h
6669
rw [Algebra.adjoin_singleton_eq_range_aeval] at this
6770
simp_all
6871

72+
/--
73+
Proving a fact about `a : adjoin R {x}` is the same as proving it for
74+
`aeval x p` where `p`is an arbitrary polynomial. -/
6975
@[elab_as_elim]
70-
theorem _root_.Algebra.adjoin_singleton_induction {M : (adjoin R {x}) → Prop}
76+
theorem adjoin_singleton_induction {M : (adjoin R {x}) → Prop}
7177
(a : adjoin R {x}) (f : ∀ (p : Polynomial R),
7278
M (⟨aeval x p, aeval_mem_adjoin_singleton R x⟩ : adjoin R {x})) :
7379
M a := by
7480
obtain ⟨p, hp⟩ := Algebra.adjoin_eq_exists_aeval _ x a
7581
grind
7682

7783
instance instCommSemiringAdjoinSingleton :
78-
CommSemiring <| adjoin R {x} :=
79-
{ mul_comm := fun ⟨p, hp⟩ ⟨q, hq⟩ ↦ by
84+
CommSemiring <| adjoin R {x} where
85+
mul_comm := fun ⟨p, hp⟩ ⟨q, hq⟩ ↦ by
8086
obtain ⟨p', rfl⟩ := Algebra.adjoin_singleton_eq_range_aeval R x ▸ hp
8187
obtain ⟨q', rfl⟩ := Algebra.adjoin_singleton_eq_range_aeval R x ▸ hq
8288
simp only [AlgHom.toRingHom_eq_coe, RingHom.coe_coe, MulMemClass.mk_mul_mk, ← map_mul,
83-
mul_comm p' q'] }
89+
mul_comm p' q']
8490

8591
instance instCommRingAdjoinSingleton {R A : Type*} [CommRing R] [Ring A] [Algebra R A] (x : A) :
86-
CommRing <| Algebra.adjoin R {x} :=
87-
{ mul_comm := mul_comm }
92+
CommRing <| Algebra.adjoin R {x} where
8893

8994
end aeval
9095

91-
end Polynomial
96+
end Algebra

Mathlib/RingTheory/Adjoin/Singleton.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Authors: Xavier Généreux, María Inés de Frutos Fernández
55
-/
66
module
77

8-
public import Mathlib.RingTheory.Adjoin.Polynomial
8+
public import Mathlib.RingTheory.Adjoin.Polynomial.Basic
99
public import Mathlib.RingTheory.Polynomial.Tower
1010
/-!
1111
# Adjoin one single element

Mathlib/RingTheory/Algebraic/Basic.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Authors: Johan Commelin
66
module
77

88
public import Mathlib.Algebra.Polynomial.Expand
9-
public import Mathlib.RingTheory.Adjoin.Polynomial
9+
public import Mathlib.RingTheory.Adjoin.Polynomial.Basic
1010
public import Mathlib.RingTheory.Algebraic.Defs
1111
public import Mathlib.RingTheory.Polynomial.Tower
1212
public import Mathlib.RingTheory.Polynomial.UniqueFactorization

Mathlib/RingTheory/Algebraic/MvPolynomial.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Authors: Johan Commelin
66
module
77

88
public import Mathlib.Algebra.MvPolynomial.Supported
9-
public import Mathlib.RingTheory.Adjoin.Polynomial
9+
public import Mathlib.RingTheory.Adjoin.Polynomial.Basic
1010
public import Mathlib.RingTheory.Algebraic.Basic
1111

1212
/-!

Mathlib/RingTheory/FiniteType.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Authors: Johan Commelin
66
module
77

88
public import Mathlib.Algebra.FreeAlgebra
9-
public import Mathlib.RingTheory.Adjoin.Polynomial
9+
public import Mathlib.RingTheory.Adjoin.Polynomial.Basic
1010
public import Mathlib.RingTheory.Adjoin.Tower
1111
public import Mathlib.RingTheory.Ideal.Quotient.Operations
1212
public import Mathlib.RingTheory.Noetherian.Orzech

Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ module
77

88
public import Mathlib.RingTheory.IntegralClosure.IsIntegral.Defs
99
public import Mathlib.Algebra.Polynomial.Expand
10-
public import Mathlib.RingTheory.Adjoin.Polynomial
10+
public import Mathlib.RingTheory.Adjoin.Polynomial.Basic
1111
public import Mathlib.RingTheory.Finiteness.Subalgebra
1212
public import Mathlib.RingTheory.Polynomial.Tower
1313

Mathlib/RingTheory/Polynomial/Ideal.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Authors: Kenny Lau
66
module
77

88
public import Mathlib.Algebra.Polynomial.RingDivision
9-
public import Mathlib.RingTheory.Adjoin.Polynomial
9+
public import Mathlib.RingTheory.Adjoin.Polynomial.Basic
1010
public import Mathlib.RingTheory.Ideal.Maps
1111

1212
/-!

0 commit comments

Comments
 (0)