Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Mathlib/Algebra/Field/Subfield/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -433,6 +433,12 @@ theorem coe_sSup_of_directedOn {S : Set (Subfield K)} (Sne : S.Nonempty)

end Subfield

variable (L) in
/-- A field is finitely generated if it is the closure of a finite subset. -/
@[mk_iff fg_iff]
protected class Field.FG : Prop where
finitely_generated : ∃ S : Finset L, Subfield.closure (S : Set L) = ⊤

namespace RingHom

variable {s : Subfield K}
Expand Down
5 changes: 5 additions & 0 deletions Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,11 @@ lemma essFiniteType_iff {K : IntermediateField F E} :
adjoin_map, ← Set.range_comp, Function.comp_def, ← AlgHom.fieldRange_eq_map] using this
exact ⟨fun ⟨s, _, hs⟩ ↦ ⟨s, hs⟩, fun ⟨s, hs⟩ ↦ ⟨s, hs ▸ subset_adjoin _ _, hs⟩⟩

/-- A field is finitely generated if and only if it is essentially of finite type over its prime
subfield. -/
theorem _root_.Field.fg_iff_essFiniteType : Field.FG F ↔ Algebra.EssFiniteType (⊥ : Subfield F) F :=
Field.fg_iff_fg_top_bot.trans fg_top_iff

end FG

section AdjoinSimple
Expand Down
7 changes: 7 additions & 0 deletions Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean
Original file line number Diff line number Diff line change
Expand Up @@ -673,6 +673,13 @@ theorem fg_iSup {ι : Sort*} [Finite ι] {S : ι → IntermediateField F E} (h :
simp_rw [← hs, ← adjoin_iUnion]
exact fg_adjoin_of_finite (Set.finite_iUnion fun _ ↦ Finset.finite_toSet _)

/-- A field is finitely generated if and only if it is finitely generated over its prime
subfield. -/
theorem _root_.Field.fg_iff_fg_top_bot :
Field.FG F ↔ (⊤ : IntermediateField (⊥ : Subfield F) F).FG := by
simp [Field.fg_iff, fg_def, Set.exists_finite_iff_finset,
← toSubfield_inj, Subfield.algebraMap_ofSubfield, Subfield.closure_union]

theorem induction_on_adjoin_finset (S : Finset E) (P : IntermediateField F E → Prop) (base : P ⊥)
(ih : ∀ (K : IntermediateField F E), ∀ x ∈ S, P K → P (K⟮x⟯.restrictScalars F)) :
P (adjoin F S) := by
Expand Down
Loading