Skip to content

Commit ebc5666

Browse files
committed
chore(Algebra/Polynomial/Splits): remove field hypothesis from map_aroots_algebraMap (#41056)
Currently `Polynomial.Splits.map_aroots_algebraMap` assumes that `A` is a field. But actually it is enough to assume that the map from `A` to `B` is injective. This PR also adds a `rootSet` version `Polynomial.Splits.image_rootSet_algebraMap`. Co-authored-by: tb65536 <thomas.l.browning@gmail.com>
1 parent 7d6ecd3 commit ebc5666

1 file changed

Lines changed: 17 additions & 5 deletions

File tree

Mathlib/Algebra/Polynomial/Splits.lean

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -572,11 +572,6 @@ section
572572
variable {A B : Type*} [CommRing R] [Field A] [Algebra R A]
573573
[CommRing B] [IsDomain B] [Algebra R B] {f : R[X]}
574574

575-
theorem Splits.map_aroots_algebraMap [Algebra A B] [IsScalarTower R A B]
576-
(hf : (f.map (algebraMap R A)).Splits) :
577-
(f.aroots A).map (algebraMap A B) = f.aroots B := by
578-
rw [← aroots_map B A, aroots, aroots, hf.roots_map]
579-
580575
theorem Splits.image_rootSet (hf : (f.map (algebraMap R A)).Splits)
581576
(g : A →ₐ[R] B) : g '' f.rootSet A = f.rootSet B := by
582577
classical
@@ -591,6 +586,23 @@ theorem Splits.adjoin_rootSet_eq_range
591586

592587
end
593588

589+
section
590+
591+
variable {A B : Type*} [CommRing R] [CommRing A] [IsDomain A] [Algebra R A] [CommRing B]
592+
[IsDomain B] [Algebra R B] [Algebra A B] [FaithfulSMul A B] [IsScalarTower R A B] {f : R[X]}
593+
594+
theorem Splits.map_aroots_algebraMap (hf : (f.map (algebraMap R A)).Splits) :
595+
(f.aroots A).map (algebraMap A B) = f.aroots B := by
596+
rw [← aroots_map B A, aroots, aroots,
597+
hf.roots_map_of_injective (FaithfulSMul.algebraMap_injective A B)]
598+
599+
theorem Splits.image_rootSet_algebraMap (hf : (f.map (algebraMap R A)).Splits) :
600+
(algebraMap A B) '' f.rootSet A = f.rootSet B := by
601+
classical
602+
rw [rootSet, ← Finset.coe_image, ← Multiset.toFinset_map, hf.map_aroots_algebraMap, ← rootSet]
603+
604+
end
605+
594606
variable [Field R] {f g : R[X]}
595607

596608
theorem Splits.dvd_of_roots_le_roots (hp : f.Splits) (hp0 : f ≠ 0) (hq : f.roots ≤ g.roots) :

0 commit comments

Comments
 (0)