Documentation

Mathlib.FieldTheory.IntermediateField.Basic

Intermediate fields #

Let L / K be a field extension, given as an instance Algebra K L. This file defines the type of fields in between K and L, IntermediateField K L. An IntermediateField K L is a subfield of L which contains (the image of) K, i.e. it is a Subfield L and a Subalgebra K L.

Main definitions #

Implementation notes #

Intermediate fields are defined with a structure extending Subfield and Subalgebra. A Subalgebra is closed under all operations except โปยน,

Tags #

intermediate field, field extension

structure IntermediateField (K : Type u_1) (L : Type u_2) [Field K] [Field L] [Algebra K L] extends Subalgebra K L :
Type u_2

S : IntermediateField K L is a subset of L such that there is a field tower L / S / K.

Instances For
    @[implicit_reducible]
    instance IntermediateField.instSetLike {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] :
    @[implicit_reducible]
    theorem IntermediateField.neg_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {x : L} (hx : x โˆˆ S) :
    -x โˆˆ S
    @[reducible]
    def IntermediateField.toSubfield {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :

    Reinterpret an IntermediateField as a Subfield.

    Instances For
      theorem IntermediateField.mem_carrier {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {s : IntermediateField K L} {x : L} :
      x โˆˆ s.carrier โ†” x โˆˆ s
      theorem IntermediateField.ext {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {S T : IntermediateField K L} (h : โˆ€ (x : L), x โˆˆ S โ†” x โˆˆ T) :
      S = T

      Two intermediate fields are equal if they have the same elements.

      theorem IntermediateField.ext_iff {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {S T : IntermediateField K L} :
      S = T โ†” โˆ€ (x : L), x โˆˆ S โ†” x โˆˆ T
      @[simp]
      theorem IntermediateField.coe_toSubalgebra {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
      โ†‘S.toSubalgebra = โ†‘S
      @[simp]
      theorem IntermediateField.coe_toSubfield {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
      โ†‘S.toSubfield = โ†‘S
      @[simp]
      theorem IntermediateField.coe_type_toSubalgebra {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
      โ†ฅS.toSubalgebra = โ†ฅS
      @[simp]
      theorem IntermediateField.coe_type_toSubfield {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
      โ†ฅS.toSubfield = โ†ฅS
      @[simp]
      theorem IntermediateField.mem_mk {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (s : Subsemiring L) (hK : โˆ€ (x : K), (algebraMap K L) x โˆˆ s) (hi : โˆ€ x โˆˆ { toSubsemiring := s, algebraMap_mem' := hK }.carrier, xโปยน โˆˆ { toSubsemiring := s, algebraMap_mem' := hK }.carrier) (x : L) :
      x โˆˆ { toSubsemiring := s, algebraMap_mem' := hK, inv_mem' := hi } โ†” x โˆˆ s
      @[simp]
      theorem IntermediateField.mem_toSubalgebra {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (s : IntermediateField K L) (x : L) :
      x โˆˆ s.toSubalgebra โ†” x โˆˆ s
      theorem IntermediateField.mem_toSubfield {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (s : IntermediateField K L) (x : L) :
      x โˆˆ s.toSubfield โ†” x โˆˆ s
      def IntermediateField.copy {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (s : Set L) (hs : s = โ†‘S) :

      Copy of an intermediate field with a new carrier equal to the old one. Useful to fix definitional equalities.

      Instances For
        @[simp]
        theorem IntermediateField.coe_copy {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (s : Set L) (hs : s = โ†‘S) :
        โ†‘(S.copy s hs) = s
        theorem IntermediateField.copy_eq {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (s : Set L) (hs : s = โ†‘S) :
        S.copy s hs = S

        Lemmas inherited from more general structures #

        The declarations in this section derive from the fact that an IntermediateField is also a subalgebra or subfield. Their use should be replaceable with the corresponding lemma from a subobject class.

        theorem IntermediateField.algebraMap_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (x : K) :
        (algebraMap K L) x โˆˆ S

        An intermediate field contains the image of the smaller field.

        theorem IntermediateField.smul_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {y : L} :
        y โˆˆ S โ†’ โˆ€ {x : K}, x โ€ข y โˆˆ S

        An intermediate field is closed under scalar multiplication.

        theorem IntermediateField.one_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
        1 โˆˆ S

        An intermediate field contains the ring's 1.

        theorem IntermediateField.zero_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
        0 โˆˆ S

        An intermediate field contains the ring's 0.

        theorem IntermediateField.mul_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {x y : L} :
        x โˆˆ S โ†’ y โˆˆ S โ†’ x * y โˆˆ S

        An intermediate field is closed under multiplication.

        theorem IntermediateField.add_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {x y : L} :
        x โˆˆ S โ†’ y โˆˆ S โ†’ x + y โˆˆ S

        An intermediate field is closed under addition.

        theorem IntermediateField.sub_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {x y : L} :
        x โˆˆ S โ†’ y โˆˆ S โ†’ x - y โˆˆ S

        An intermediate field is closed under subtraction.

        theorem IntermediateField.inv_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {x : L} :
        x โˆˆ S โ†’ xโปยน โˆˆ S

        An intermediate field is closed under inverses.

        theorem IntermediateField.div_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {x y : L} :
        x โˆˆ S โ†’ y โˆˆ S โ†’ x / y โˆˆ S

        An intermediate field is closed under division.

        theorem IntermediateField.list_prod_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {l : List L} :
        (โˆ€ x โˆˆ l, x โˆˆ S) โ†’ l.prod โˆˆ S

        Product of a list of elements in an intermediate field is in the intermediate field.

        theorem IntermediateField.list_sum_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {l : List L} :
        (โˆ€ x โˆˆ l, x โˆˆ S) โ†’ l.sum โˆˆ S

        Sum of a list of elements in an intermediate field is in the intermediate field.

        theorem IntermediateField.multiset_prod_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (m : Multiset L) :
        (โˆ€ a โˆˆ m, a โˆˆ S) โ†’ m.prod โˆˆ S

        Product of a multiset of elements in an intermediate field is in the intermediate field.

        theorem IntermediateField.multiset_sum_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (m : Multiset L) :
        (โˆ€ a โˆˆ m, a โˆˆ S) โ†’ m.sum โˆˆ S

        Sum of a multiset of elements in an IntermediateField is in the IntermediateField.

        theorem IntermediateField.prod_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {ฮน : Type u_4} {t : Finset ฮน} {f : ฮน โ†’ L} (h : โˆ€ c โˆˆ t, f c โˆˆ S) :
        โˆ i โˆˆ t, f i โˆˆ S

        Product of elements of an intermediate field indexed by a Finset is in the intermediate field.

        theorem IntermediateField.sum_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {ฮน : Type u_4} {t : Finset ฮน} {f : ฮน โ†’ L} (h : โˆ€ c โˆˆ t, f c โˆˆ S) :
        โˆ‘ i โˆˆ t, f i โˆˆ S

        Sum of elements in an IntermediateField indexed by a Finset is in the IntermediateField.

        theorem IntermediateField.pow_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {x : L} (hx : x โˆˆ S) (n : โ„ค) :
        x ^ n โˆˆ S
        theorem IntermediateField.zsmul_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {x : L} (hx : x โˆˆ S) (n : โ„ค) :
        n โ€ข x โˆˆ S
        theorem IntermediateField.intCast_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (n : โ„ค) :
        โ†‘n โˆˆ S
        @[simp]
        theorem IntermediateField.coe_add {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (x y : โ†ฅS) :
        โ†‘(x + y) = โ†‘x + โ†‘y
        @[simp]
        theorem IntermediateField.coe_neg {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (x : โ†ฅS) :
        โ†‘(-x) = -โ†‘x
        @[simp]
        theorem IntermediateField.coe_mul {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (x y : โ†ฅS) :
        โ†‘(x * y) = โ†‘x * โ†‘y
        @[simp]
        theorem IntermediateField.coe_inv {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (x : โ†ฅS) :
        โ†‘xโปยน = (โ†‘x)โปยน
        @[simp]
        theorem IntermediateField.coe_div {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (x y : โ†ฅS) :
        โ†‘(x / y) = โ†‘x / โ†‘y
        @[simp]
        theorem IntermediateField.coe_zero {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
        โ†‘0 = 0
        @[simp]
        theorem IntermediateField.coe_one {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
        โ†‘1 = 1
        @[simp]
        theorem IntermediateField.coe_pow {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (x : โ†ฅS) (n : โ„•) :
        โ†‘(x ^ n) = โ†‘x ^ n
        theorem IntermediateField.natCast_mem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (n : โ„•) :
        โ†‘n โˆˆ S
        def Subalgebra.toIntermediateField {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : Subalgebra K L) (inv_mem : โˆ€ x โˆˆ S, xโปยน โˆˆ S) :

        Turn a subalgebra closed under inverses into an intermediate field.

        Instances For
          @[simp]
          theorem toSubalgebra_toIntermediateField {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : Subalgebra K L) (inv_mem : โˆ€ x โˆˆ S, xโปยน โˆˆ S) :
          @[simp]
          theorem toIntermediateField_toSubalgebra {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
          S.toIntermediateField โ‹ฏ = S
          def Subalgebra.toIntermediateField' {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : Subalgebra K L) (hS : IsField โ†ฅS) :

          Turn a subalgebra satisfying IsField into an intermediate field.

          Instances For
            @[simp]
            theorem toSubalgebra_toIntermediateField' {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : Subalgebra K L) (hS : IsField โ†ฅS) :
            @[simp]
            theorem toIntermediateField'_toSubalgebra {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
            S.toIntermediateField' โ‹ฏ = S
            def Subfield.toIntermediateField {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : Subfield L) (algebra_map_mem : โˆ€ (x : K), (algebraMap K L) x โˆˆ S) :

            Turn a subfield of L containing the image of K into an intermediate field.

            Instances For
              @[simp]
              theorem Subfield.toIntermediateField_toSubfield {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : Subfield L) (algebra_map_mem : โˆ€ (x : K), (algebraMap K L) x โˆˆ S) :
              (S.toIntermediateField algebra_map_mem).toSubfield = S
              @[simp]
              theorem Subfield.coe_toIntermediateField {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : Subfield L) (algebra_map_mem : โˆ€ (x : K), (algebraMap K L) x โˆˆ S) :
              โ†‘(S.toIntermediateField algebra_map_mem) = โ†‘S
              @[implicit_reducible]
              instance IntermediateField.toField {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
              Field โ†ฅS

              An intermediate field inherits a field structure.

              theorem IntermediateField.coe_sum {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {ฮน : Type u_4} [Fintype ฮน] (f : ฮน โ†’ โ†ฅS) :
              โ†‘(โˆ‘ i : ฮน, f i) = โˆ‘ i : ฮน, โ†‘(f i)
              theorem IntermediateField.coe_prod {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {ฮน : Type u_4} [Fintype ฮน] (f : ฮน โ†’ โ†ฅS) :
              โ†‘(โˆ i : ฮน, f i) = โˆ i : ฮน, โ†‘(f i)

              IntermediateFields inherit structure from their Subfield coercions.

              @[implicit_reducible]
              instance IntermediateField.instSMulSubtypeMem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {X : Type u_4} [SMul L X] (F : IntermediateField K L) :
              SMul (โ†ฅF) X

              The action by an intermediate field is the action by the underlying field.

              theorem IntermediateField.smul_def {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {X : Type u_4} [SMul L X] {F : IntermediateField K L} (g : โ†ฅF) (m : X) :
              g โ€ข m = โ†‘g โ€ข m
              instance IntermediateField.smulCommClass_left {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {X : Type u_5} {Y : Type u_4} [SMul L Y] [SMul X Y] [SMulCommClass L X Y] (F : IntermediateField K L) :
              SMulCommClass (โ†ฅF) X Y
              instance IntermediateField.smulCommClass_right {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {X : Type u_4} {Y : Type u_5} [SMul X Y] [SMul L Y] [SMulCommClass X L Y] (F : IntermediateField K L) :
              SMulCommClass X (โ†ฅF) Y
              @[instance 900]
              instance IntermediateField.instIsScalarTowerSubtypeMem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {X : Type u_4} {Y : Type u_5} [SMul X Y] [SMul L X] [SMul L Y] [IsScalarTower L X Y] (F : IntermediateField K L) :
              IsScalarTower (โ†ฅF) X Y

              Note that this provides IsScalarTower F K K which is needed by smul_mul_assoc.

              instance IntermediateField.instFaithfulSMulSubtypeMem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {X : Type u_4} [SMul L X] [FaithfulSMul L X] (F : IntermediateField K L) :
              FaithfulSMul (โ†ฅF) X
              @[implicit_reducible]
              instance IntermediateField.instMulActionSubtypeMem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {X : Type u_4} [MulAction L X] (F : IntermediateField K L) :
              MulAction (โ†ฅF) X

              The action by an intermediate field is the action by the underlying field.

              @[implicit_reducible]
              instance IntermediateField.instDistribMulActionSubtypeMem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {X : Type u_4} [AddMonoid X] [DistribMulAction L X] (F : IntermediateField K L) :
              DistribMulAction (โ†ฅF) X

              The action by an intermediate field is the action by the underlying field.

              @[implicit_reducible]
              instance IntermediateField.instMulDistribMulActionSubtypeMem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {X : Type u_4} [Monoid X] [MulDistribMulAction L X] (F : IntermediateField K L) :
              MulDistribMulAction (โ†ฅF) X

              The action by an intermediate field is the action by the underlying field.

              @[implicit_reducible]
              instance IntermediateField.instSMulWithZeroSubtypeMem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {X : Type u_4} [Zero X] [SMulWithZero L X] (F : IntermediateField K L) :
              SMulWithZero (โ†ฅF) X

              The action by an intermediate field is the action by the underlying field.

              @[implicit_reducible]
              instance IntermediateField.instMulActionWithZeroSubtypeMem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {X : Type u_4} [Zero X] [MulActionWithZero L X] (F : IntermediateField K L) :
              MulActionWithZero (โ†ฅF) X

              The action by an intermediate field is the action by the underlying field.

              @[implicit_reducible]
              instance IntermediateField.instModuleSubtypeMem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {X : Type u_4} [AddCommMonoid X] [Module L X] (F : IntermediateField K L) :
              Module (โ†ฅF) X

              The action by an intermediate field is the action by the underlying field.

              @[implicit_reducible]
              instance IntermediateField.instMulSemiringActionSubtypeMem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {X : Type u_4} [Semiring X] [MulSemiringAction L X] (F : IntermediateField K L) :
              MulSemiringAction (โ†ฅF) X

              The action by an intermediate field is the action by the underlying field.

              IntermediateFields inherit structure from their Subalgebra coercions.

              @[implicit_reducible]
              instance IntermediateField.toAlgebra {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
              Algebra (โ†ฅS) L
              @[implicit_reducible]
              instance IntermediateField.module' {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {R : Type u_4} [Semiring R] [SMul R K] [Module R L] [IsScalarTower R K L] :
              Module R โ†ฅS
              @[implicit_reducible]
              instance IntermediateField.algebra' {R' : Type u_4} {K : Type u_5} {L : Type u_6} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) [CommSemiring R'] [SMul R' K] [Algebra R' L] [IsScalarTower R' K L] :
              Algebra R' โ†ฅS
              instance IntermediateField.isScalarTower {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {R : Type u_4} [Semiring R] [SMul R K] [Module R L] [IsScalarTower R K L] :
              IsScalarTower R K โ†ฅS
              @[simp]
              theorem IntermediateField.coe_smul {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {R : Type u_4} [SMul R K] [SMul R L] [IsScalarTower R K L] (r : R) (x : โ†ฅS) :
              โ†‘(r โ€ข x) = r โ€ข โ†‘x
              @[simp]
              theorem IntermediateField.algebraMap_apply {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (x : โ†ฅS) :
              (algebraMap (โ†ฅS) L) x = โ†‘x
              @[simp]
              theorem IntermediateField.coe_algebraMap_apply {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) (x : K) :
              โ†‘((algebraMap K โ†ฅS) x) = (algebraMap K L) x
              instance IntermediateField.isScalarTower_bot {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {R : Type u_4} [Semiring R] [Algebra L R] :
              IsScalarTower (โ†ฅS) L R
              instance IntermediateField.isScalarTower_mid {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {R : Type u_4} [Semiring R] [Algebra L R] [Algebra K R] [IsScalarTower K L R] :
              IsScalarTower K (โ†ฅS) R
              instance IntermediateField.isScalarTower_mid' {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
              IsScalarTower K (โ†ฅS) L

              Specialize isScalarTower_mid to the common case where the top field is L.

              @[implicit_reducible]
              instance IntermediateField.instAlgebraSubtypeMem {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {E : Type u_4} [Semiring E] [Algebra L E] :
              Algebra (โ†ฅS) E
              @[implicit_reducible]
              instance IntermediateField.instAlgebraSubtypeMem_1 {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {S : IntermediateField K L} {E : Type u_4} [Field E] [Algebra L E] (T : IntermediateField (โ†ฅS) E) :
              Algebra โ†ฅS โ†ฅT
              @[implicit_reducible]
              instance IntermediateField.instModuleSubtypeMem_1 {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {S : IntermediateField K L} {E : Type u_4} [Field E] [Algebra L E] (T : IntermediateField (โ†ฅS) E) :
              Module โ†ฅS โ†ฅT
              @[implicit_reducible]
              instance IntermediateField.instSMulSubtypeMem_1 {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {S : IntermediateField K L} {E : Type u_4} [Field E] [Algebra L E] (T : IntermediateField (โ†ฅS) E) :
              SMul โ†ฅS โ†ฅT
              instance IntermediateField.instIsScalarTowerSubtypeMem_1 {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {S : IntermediateField K L} {E : Type u_4} [Field E] [Algebra L E] (T : IntermediateField (โ†ฅS) E) [Algebra K E] [IsScalarTower K L E] :
              IsScalarTower K โ†ฅS โ†ฅT
              def IntermediateField.comap {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (f : L โ†’โ‚[K] L') (S : IntermediateField K L') :

              Given f : L โ†’โ‚[K] L', S.comap f is the intermediate field between K and L such that f x โˆˆ S โ†” x โˆˆ S.comap f.

              Instances For
                def IntermediateField.map {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (f : L โ†’โ‚[K] L') (S : IntermediateField K L) :

                Given f : L โ†’โ‚[K] L', S.map f is the intermediate field between K and L' such that x โˆˆ S โ†” f x โˆˆ S.map f.

                Instances For
                  @[simp]
                  theorem IntermediateField.coe_map {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (S : IntermediateField K L) (f : L โ†’โ‚[K] L') :
                  โ†‘(map f S) = โ‡‘f '' โ†‘S
                  @[simp]
                  theorem IntermediateField.toSubalgebra_map {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (S : IntermediateField K L) (f : L โ†’โ‚[K] L') :
                  @[simp]
                  theorem IntermediateField.toSubfield_map {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (S : IntermediateField K L) (f : L โ†’โ‚[K] L') :
                  (map f S).toSubfield = Subfield.map (โ†‘f) S.toSubfield
                  theorem IntermediateField.map_id {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
                  map (AlgHom.id K L) S = S

                  Mapping intermediate fields along the identity does not change them.

                  @[simp]
                  theorem IntermediateField.mem_map {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (S : IntermediateField K L) {f : L โ†’โ‚[K] L'} {y : L'} :
                  y โˆˆ map f S โ†” โˆƒ x โˆˆ S, f x = y
                  @[simp]
                  theorem IntermediateField.map_mem_map {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (S : IntermediateField K L) (f : L โ†’โ‚[K] L') {x : L} :
                  f x โˆˆ map f S โ†” x โˆˆ S
                  theorem IntermediateField.map_map {K : Type u_4} {Lโ‚ : Type u_5} {Lโ‚‚ : Type u_6} {Lโ‚ƒ : Type u_7} [Field K] [Field Lโ‚] [Algebra K Lโ‚] [Field Lโ‚‚] [Algebra K Lโ‚‚] [Field Lโ‚ƒ] [Algebra K Lโ‚ƒ] (E : IntermediateField K Lโ‚) (f : Lโ‚ โ†’โ‚[K] Lโ‚‚) (g : Lโ‚‚ โ†’โ‚[K] Lโ‚ƒ) :
                  map g (map f E) = map (g.comp f) E
                  theorem IntermediateField.map_mono {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (f : L โ†’โ‚[K] L') {S T : IntermediateField K L} (h : S โ‰ค T) :
                  map f S โ‰ค map f T
                  theorem IntermediateField.map_le_iff_le_comap {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] {f : L โ†’โ‚[K] L'} {s : IntermediateField K L} {t : IntermediateField K L'} :
                  map f s โ‰ค t โ†” s โ‰ค comap f t
                  theorem IntermediateField.gc_map_comap {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (f : L โ†’โ‚[K] L') :
                  def IntermediateField.intermediateFieldMap {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (e : L โ‰ƒโ‚[K] L') (E : IntermediateField K L) :
                  โ†ฅE โ‰ƒโ‚[K] โ†ฅ(map (โ†‘e) E)

                  Given an equivalence e : L โ‰ƒโ‚[K] L' of K-field extensions and an intermediate field E of L/K, intermediateFieldMap e E is the induced equivalence between E and E.map e.

                  Instances For
                    theorem IntermediateField.intermediateFieldMap_apply_coe {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (e : L โ‰ƒโ‚[K] L') (E : IntermediateField K L) (a : โ†ฅE) :
                    โ†‘((intermediateFieldMap e E) a) = e โ†‘a
                    theorem IntermediateField.intermediateFieldMap_symm_apply_coe {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (e : L โ‰ƒโ‚[K] L') (E : IntermediateField K L) (a : โ†ฅ(map (โ†‘e) E)) :
                    โ†‘((intermediateFieldMap e E).symm a) = e.symm โ†‘a
                    def AlgHom.fieldRange {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (f : L โ†’โ‚[K] L') :

                    The range of an algebra homomorphism, as an intermediate field.

                    Instances For
                      @[simp]
                      theorem AlgHom.fieldRange_toSubalgebra {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (f : L โ†’โ‚[K] L') :
                      @[simp]
                      theorem AlgHom.coe_fieldRange {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (f : L โ†’โ‚[K] L') :
                      โ†‘f.fieldRange = Set.range โ‡‘f
                      @[simp]
                      theorem AlgHom.fieldRange_toSubfield {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (f : L โ†’โ‚[K] L') :
                      @[simp]
                      theorem AlgHom.mem_fieldRange {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] {f : L โ†’โ‚[K] L'} {y : L'} :
                      y โˆˆ f.fieldRange โ†” โˆƒ (x : L), f x = y
                      def IntermediateField.val {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
                      โ†ฅS โ†’โ‚[K] L

                      The embedding from an intermediate field of L / K to L.

                      Instances For
                        @[simp]
                        theorem IntermediateField.coe_val {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
                        โ‡‘S.val = Subtype.val
                        @[simp]
                        theorem IntermediateField.val_mk {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {x : L} (hx : x โˆˆ S) :
                        S.val โŸจx, hxโŸฉ = x
                        @[simp]
                        theorem IntermediateField.fieldRange_val {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
                        @[implicit_reducible]
                        instance IntermediateField.AlgHom.inhabited {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
                        Inhabited (โ†ฅS โ†’โ‚[K] L)
                        theorem IntermediateField.aeval_coe {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) {R : Type u_4} [CommSemiring R] [Algebra R K] [Algebra R L] [IsScalarTower R K L] (x : โ†ฅS) (P : Polynomial R) :
                        (Polynomial.aeval โ†‘x) P = โ†‘((Polynomial.aeval x) P)
                        def IntermediateField.inclusion {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {E F : IntermediateField K L} (hEF : E โ‰ค F) :
                        โ†ฅE โ†’โ‚[K] โ†ฅF

                        The map E โ†’ F when E is an intermediate field contained in the intermediate field F.

                        This is the intermediate field version of Subalgebra.inclusion.

                        Instances For
                          theorem IntermediateField.inclusion_injective {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {E F : IntermediateField K L} (hEF : E โ‰ค F) :
                          Function.Injective โ‡‘(inclusion hEF)
                          @[simp]
                          theorem IntermediateField.inclusion_self {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {E : IntermediateField K L} :
                          inclusion โ‹ฏ = AlgHom.id K โ†ฅE
                          @[simp]
                          theorem IntermediateField.inclusion_inclusion {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {E F G : IntermediateField K L} (hEF : E โ‰ค F) (hFG : F โ‰ค G) (x : โ†ฅE) :
                          (inclusion hFG) ((inclusion hEF) x) = (inclusion โ‹ฏ) x
                          @[simp]
                          theorem IntermediateField.coe_inclusion {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {E F : IntermediateField K L} (hEF : E โ‰ค F) (e : โ†ฅE) :
                          โ†‘((inclusion hEF) e) = โ†‘e
                          theorem IntermediateField.toSubalgebra_injective {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] :
                          Function.Injective toSubalgebra
                          theorem IntermediateField.toSubfield_injective {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] :
                          Function.Injective toSubfield
                          @[simp]
                          theorem IntermediateField.toSubalgebra_inj {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F E : IntermediateField K L} :
                          F.toSubalgebra = E.toSubalgebra โ†” F = E
                          theorem IntermediateField.toSubfield_inj {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F E : IntermediateField K L} :
                          F.toSubfield = E.toSubfield โ†” F = E
                          theorem IntermediateField.map_injective {K : Type u_1} {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] (f : L โ†’โ‚[K] L') :
                          Function.Injective (map f)
                          theorem IntermediateField.set_range_subset {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (S : IntermediateField K L) :
                          Set.range โ‡‘(algebraMap K L) โІ โ†‘S
                          @[simp]
                          theorem IntermediateField.toSubalgebra_lt_toSubalgebra {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {S S' : IntermediateField K L} :
                          S.toSubalgebra < S'.toSubalgebra โ†” S < S'
                          def IntermediateField.lift {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F : IntermediateField K L} (E : IntermediateField K โ†ฅF) :

                          Lift an intermediate field of an intermediate field.

                          Instances For
                            theorem IntermediateField.lift_injective {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (F : IntermediateField K L) :
                            Function.Injective lift
                            @[simp]
                            theorem IntermediateField.lift_inj {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F : IntermediateField K L} (E E' : IntermediateField K โ†ฅF) :
                            lift E = lift E' โ†” E = E'
                            theorem IntermediateField.lift_le {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F : IntermediateField K L} (E : IntermediateField K โ†ฅF) :
                            theorem IntermediateField.mem_lift {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F : IntermediateField K L} {E : IntermediateField K โ†ฅF} (x : โ†ฅF) :
                            โ†‘x โˆˆ lift E โ†” x โˆˆ E
                            def IntermediateField.liftAlgEquiv {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {E : IntermediateField K L} (F : IntermediateField K โ†ฅE) :
                            โ†ฅF โ‰ƒโ‚[K] โ†ฅ(lift F)

                            The algEquiv between an intermediate field and its lift.

                            Instances For
                              theorem IntermediateField.liftAlgEquiv_apply {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {E : IntermediateField K L} (F : IntermediateField K โ†ฅE) (x : โ†ฅF) :
                              โ†‘((liftAlgEquiv F) x) = โ†‘โ†‘x
                              def IntermediateField.restrictScalars (K : Type u_1) {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] [Algebra L' L] [IsScalarTower K L' L] (E : IntermediateField L' L) :

                              Given a tower L / โ†ฅE / L' / K of field extensions, where E is an L'-intermediate field of L, reinterpret E as a K-intermediate field of L.

                              Instances For
                                @[simp]
                                theorem IntermediateField.coe_restrictScalars (K : Type u_1) {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] [Algebra L' L] [IsScalarTower K L' L] {E : IntermediateField L' L} :
                                โ†‘(restrictScalars K E) = โ†‘E
                                @[simp]
                                theorem IntermediateField.restrictScalars_toSubfield (K : Type u_1) {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] [Algebra L' L] [IsScalarTower K L' L] {E : IntermediateField L' L} :
                                @[simp]
                                theorem IntermediateField.mem_restrictScalars (K : Type u_1) {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] [Algebra L' L] [IsScalarTower K L' L] {E : IntermediateField L' L} {x : L} :
                                x โˆˆ restrictScalars K E โ†” x โˆˆ E
                                theorem IntermediateField.restrictScalars_injective (K : Type u_1) {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] [Algebra L' L] [IsScalarTower K L' L] :
                                Function.Injective (restrictScalars K)
                                @[simp]
                                theorem IntermediateField.restrictScalars_inj (K : Type u_1) {L : Type u_2} {L' : Type u_3} [Field K] [Field L] [Field L'] [Algebra K L] [Algebra K L'] [Algebra L' L] [IsScalarTower K L' L] {E E' : IntermediateField L' L} :
                                restrictScalars K E = restrictScalars K E' โ†” E = E'
                                def IntermediateField.equivOfEq {F : Type u_4} [Field F] {E : Type u_5} [Field E] [Algebra F E] {S T : IntermediateField F E} (h : S = T) :
                                โ†ฅS โ‰ƒโ‚[F] โ†ฅT

                                Construct an algebra isomorphism from an equality of intermediate fields.

                                Instances For
                                  @[simp]
                                  theorem IntermediateField.equivOfEq_apply {F : Type u_4} [Field F] {E : Type u_5} [Field E] [Algebra F E] {S T : IntermediateField F E} (h : S = T) (x : โ†ฅS.toSubalgebra) :
                                  (equivOfEq h) x = โŸจโ†‘x, โ‹ฏโŸฉ
                                  @[simp]
                                  theorem IntermediateField.equivOfEq_symm {F : Type u_4} [Field F] {E : Type u_5} [Field E] [Algebra F E] {S T : IntermediateField F E} (h : S = T) :
                                  (equivOfEq h).symm = equivOfEq โ‹ฏ
                                  @[simp]
                                  theorem IntermediateField.equivOfEq_rfl {F : Type u_4} [Field F] {E : Type u_5} [Field E] [Algebra F E] (S : IntermediateField F E) :
                                  @[simp]
                                  theorem IntermediateField.equivOfEq_trans {F : Type u_4} [Field F] {E : Type u_5} [Field E] [Algebra F E] {S T U : IntermediateField F E} (hST : S = T) (hTU : T = U) :
                                  (equivOfEq hST).trans (equivOfEq hTU) = equivOfEq โ‹ฏ
                                  theorem IntermediateField.fieldRange_comp_val {F : Type u_4} [Field F] {E : Type u_5} [Field E] [Algebra F E] {K : Type u_6} [Field K] [Algebra F K] (L : IntermediateField F E) (f : E โ†’โ‚[F] K) :
                                  (f.comp L.val).fieldRange = map f L
                                  noncomputable def IntermediateField.equivMap {F : Type u_4} [Field F] {E : Type u_5} [Field E] [Algebra F E] {K : Type u_6} [Field K] [Algebra F K] (L : IntermediateField F E) (f : E โ†’โ‚[F] K) :
                                  โ†ฅL โ‰ƒโ‚[F] โ†ฅ(map f L)

                                  An intermediate field is isomorphic to its image under an AlgHom (which is automatically injective).

                                  Instances For
                                    @[simp]
                                    theorem IntermediateField.coe_equivMap_apply {F : Type u_4} [Field F] {E : Type u_5} [Field E] [Algebra F E] {K : Type u_6} [Field K] [Algebra F K] (L : IntermediateField F E) (f : E โ†’โ‚[F] K) (x : โ†ฅL) :
                                    โ†‘((L.equivMap f) x) = f โ†‘x
                                    def Subfield.extendScalars {L : Type u_2} [Field L] {F E : Subfield L} (h : F โ‰ค E) :
                                    IntermediateField (โ†ฅF) L

                                    If F โ‰ค E are two subfields of L, then E is also an intermediate field of L / F. It can be viewed as an inverse to IntermediateField.toSubfield.

                                    Instances For
                                      @[simp]
                                      theorem Subfield.coe_extendScalars {L : Type u_2} [Field L] {F E : Subfield L} (h : F โ‰ค E) :
                                      โ†‘(extendScalars h) = โ†‘E
                                      @[simp]
                                      theorem Subfield.mem_extendScalars {L : Type u_2} [Field L] {F E : Subfield L} (h : F โ‰ค E) {x : L} :
                                      x โˆˆ extendScalars h โ†” x โˆˆ E
                                      theorem Subfield.extendScalars_le_iff {L : Type u_2} [Field L] {F E : Subfield L} (h : F โ‰ค E) (E' : IntermediateField (โ†ฅF) L) :
                                      theorem Subfield.le_extendScalars_iff {L : Type u_2} [Field L] {F E : Subfield L} (h : F โ‰ค E) (E' : IntermediateField (โ†ฅF) L) :
                                      def Subfield.extendScalars.orderIso {L : Type u_2} [Field L] (F : Subfield L) :
                                      { E : Subfield L // F โ‰ค E } โ‰ƒo IntermediateField (โ†ฅF) L

                                      Subfield.extendScalars.orderIso bundles Subfield.extendScalars into an order isomorphism from { E : Subfield L // F โ‰ค E } to IntermediateField F L. Its inverse is IntermediateField.toSubfield.

                                      Instances For
                                        @[simp]
                                        theorem Subfield.extendScalars.orderIso_apply {L : Type u_2} [Field L] (F : Subfield L) (E : { E : Subfield L // F โ‰ค E }) :
                                        (orderIso F) E = extendScalars โ‹ฏ
                                        @[simp]
                                        theorem Subfield.extendScalars.orderIso_symm_apply {L : Type u_2} [Field L] (F : Subfield L) (E : IntermediateField (โ†ฅF) L) :
                                        (RelIso.symm (orderIso F)) E = โŸจE.toSubfield, โ‹ฏโŸฉ
                                        theorem Subfield.extendScalars_injective {L : Type u_2} [Field L] (F : Subfield L) :
                                        Function.Injective fun (E : { E : Subfield L // F โ‰ค E }) => extendScalars โ‹ฏ
                                        def IntermediateField.extendScalars {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F E : IntermediateField K L} (h : F โ‰ค E) :
                                        IntermediateField (โ†ฅF) L

                                        If F โ‰ค E are two intermediate fields of L / K, then E is also an intermediate field of L / F. It can be viewed as an inverse to IntermediateField.restrictScalars.

                                        Instances For
                                          @[simp]
                                          theorem IntermediateField.coe_extendScalars {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F E : IntermediateField K L} (h : F โ‰ค E) :
                                          โ†‘(extendScalars h) = โ†‘E
                                          @[simp]
                                          theorem IntermediateField.mem_extendScalars {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F E : IntermediateField K L} (h : F โ‰ค E) {x : L} :
                                          x โˆˆ extendScalars h โ†” x โˆˆ E
                                          theorem IntermediateField.extendScalars_le_iff {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F E : IntermediateField K L} (h : F โ‰ค E) (E' : IntermediateField (โ†ฅF) L) :
                                          theorem IntermediateField.le_extendScalars_iff {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F E : IntermediateField K L} (h : F โ‰ค E) (E' : IntermediateField (โ†ฅF) L) :
                                          def IntermediateField.extendScalars.orderIso {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (F : IntermediateField K L) :
                                          { E : IntermediateField K L // F โ‰ค E } โ‰ƒo IntermediateField (โ†ฅF) L

                                          IntermediateField.extendScalars.orderIso bundles IntermediateField.extendScalars into an order isomorphism from { E : IntermediateField K L // F โ‰ค E } to IntermediateField F L. Its inverse is IntermediateField.restrictScalars.

                                          Instances For
                                            @[simp]
                                            theorem IntermediateField.extendScalars.orderIso_symm_apply_coe {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (F : IntermediateField K L) (E : IntermediateField (โ†ฅF) L) :
                                            โ†‘((RelIso.symm (orderIso F)) E) = restrictScalars K E
                                            @[simp]
                                            theorem IntermediateField.extendScalars.orderIso_apply {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (F : IntermediateField K L) (E : { E : IntermediateField K L // F โ‰ค E }) :
                                            (orderIso F) E = extendScalars โ‹ฏ
                                            theorem IntermediateField.extendScalars_injective {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] (F : IntermediateField K L) :
                                            Function.Injective fun (E : { E : IntermediateField K L // F โ‰ค E }) => extendScalars โ‹ฏ
                                            def IntermediateField.restrict {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F E : IntermediateField K L} (h : F โ‰ค E) :
                                            IntermediateField K โ†ฅE

                                            If F โ‰ค E are two intermediate fields of L / K, then F is also an intermediate field of E / K. It is an inverse of IntermediateField.lift, and can be viewed as a dual to IntermediateField.extendScalars.

                                            Instances For
                                              theorem IntermediateField.mem_restrict {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F E : IntermediateField K L} (h : F โ‰ค E) (x : โ†ฅE) :
                                              x โˆˆ restrict h โ†” โ†‘x โˆˆ F
                                              @[simp]
                                              theorem IntermediateField.lift_restrict {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F E : IntermediateField K L} (h : F โ‰ค E) :
                                              lift (restrict h) = F
                                              noncomputable def IntermediateField.restrict_algEquiv {K : Type u_1} {L : Type u_2} [Field K] [Field L] [Algebra K L] {F E : IntermediateField K L} (h : F โ‰ค E) :
                                              โ†ฅF โ‰ƒโ‚[K] โ†ฅ(restrict h)

                                              F is equivalent to F as an intermediate field of E / K.

                                              Instances For