Documentation

Mathlib.RingTheory.Valuation.ValuationSubring

Valuation subrings of a field #

Projects #

The order structure on ValuationSubring K.

structure ValuationSubring (K : Type u) [Field K] extends Subring K :

A valuation subring of a field K is a subring A such that for every x : K, either x โˆˆ A or xโปยน โˆˆ A.

This is equivalent to being maximal in the domination order of local subrings (the stacks project definition). See LocalSubring.isMax_iff.

Instances For
    theorem ValuationSubring.mem_carrier {K : Type u} [Field K] (A : ValuationSubring K) (x : K) :
    x โˆˆ A.carrier โ†” x โˆˆ A
    @[simp]
    theorem ValuationSubring.mem_toSubring {K : Type u} [Field K] (A : ValuationSubring K) (x : K) :
    x โˆˆ A.toSubring โ†” x โˆˆ A
    theorem ValuationSubring.ext {K : Type u} [Field K] (A B : ValuationSubring K) (h : โˆ€ (x : K), x โˆˆ A โ†” x โˆˆ B) :
    A = B
    theorem ValuationSubring.ext_iff {K : Type u} [Field K] {A B : ValuationSubring K} :
    A = B โ†” โˆ€ (x : K), x โˆˆ A โ†” x โˆˆ B
    theorem ValuationSubring.add_mem {K : Type u} [Field K] (A : ValuationSubring K) (x y : K) :
    x โˆˆ A โ†’ y โˆˆ A โ†’ x + y โˆˆ A
    theorem ValuationSubring.mul_mem {K : Type u} [Field K] (A : ValuationSubring K) (x y : K) :
    x โˆˆ A โ†’ y โˆˆ A โ†’ x * y โˆˆ A
    theorem ValuationSubring.neg_mem {K : Type u} [Field K] (A : ValuationSubring K) (x : K) :
    x โˆˆ A โ†’ -x โˆˆ A
    theorem ValuationSubring.mem_or_inv_mem {K : Type u} [Field K] (A : ValuationSubring K) (x : K) :
    x โˆˆ A โˆจ xโปยน โˆˆ A
    @[implicit_reducible]
    @[implicit_reducible]
    @[simp]
    theorem ValuationSubring.mem_top {K : Type u} [Field K] (x : K) :
    x โˆˆ โŠค
    @[implicit_reducible]

    If K is a field, then so is K viewed as a valuation subring of itself. (That is, โŠค : ValuationSubring K.)

    @[simp]
    theorem ValuationSubring.top_coe_div {K : Type u} [Field K] (x y : โ†ฅโŠค) :
    โ†‘(x / y) = โ†‘x / โ†‘y
    @[simp]
    theorem ValuationSubring.top_coe_inv {K : Type u} [Field K] (x : โ†ฅโŠค) :
    โ†‘xโปยน = (โ†‘x)โปยน
    @[implicit_reducible]
    instance ValuationSubring.instInhabited {K : Type u} [Field K] :
    Inhabited (ValuationSubring K)
    @[implicit_reducible]
    instance ValuationSubring.instAlgebraSubtypeMem {K : Type u} [Field K] (A : ValuationSubring K) :
    Algebra (โ†ฅA) K
    @[simp]
    theorem ValuationSubring.algebraMap_apply {K : Type u} [Field K] (A : ValuationSubring K) (a : โ†ฅA) :
    (algebraMap (โ†ฅA) K) a = โ†‘a

    The value group of the valuation associated to A. Note: it is actually a group with zero.

    Instances For
      noncomputable def ValuationSubring.valuation {K : Type u} [Field K] (A : ValuationSubring K) :

      Any valuation subring of K induces a natural valuation on K.

      Instances For
        @[implicit_reducible]
        noncomputable instance ValuationSubring.inhabitedValueGroup {K : Type u} [Field K] (A : ValuationSubring K) :
        Inhabited A.ValueGroup
        @[simp]
        theorem ValuationSubring.valuation_le_one_iff {K : Type u} [Field K] (A : ValuationSubring K) (x : K) :
        A.valuation x โ‰ค 1 โ†” x โˆˆ A
        theorem ValuationSubring.valuation_eq_iff {K : Type u} [Field K] (A : ValuationSubring K) (x y : K) :
        A.valuation x = A.valuation y โ†” โˆƒ (a : (โ†ฅA)หฃ), โ†‘โ†‘a * y = x
        theorem ValuationSubring.valuation_le_iff {K : Type u} [Field K] (A : ValuationSubring K) (x y : K) :
        A.valuation x โ‰ค A.valuation y โ†” โˆƒ (a : โ†ฅA), โ†‘a * y = x
        theorem ValuationSubring.valuation_surjective {K : Type u} [Field K] (A : ValuationSubring K) :
        Function.Surjective โ‡‘A.valuation
        @[simp]
        theorem ValuationSubring.valuation_unit {K : Type u} [Field K] (A : ValuationSubring K) (a : (โ†ฅA)หฃ) :
        A.valuation โ†‘โ†‘a = 1
        theorem ValuationSubring.valuation_eq_one_iff {K : Type u} [Field K] (A : ValuationSubring K) (a : โ†ฅA) :
        IsUnit a โ†” A.valuation โ†‘a = 1
        theorem ValuationSubring.valuation_lt_one_or_eq_one {K : Type u} [Field K] (A : ValuationSubring K) (a : โ†ฅA) :
        A.valuation โ†‘a < 1 โˆจ A.valuation โ†‘a = 1
        theorem ValuationSubring.valuation_lt_one_iff {K : Type u} [Field K] (A : ValuationSubring K) (a : โ†ฅA) :
        a โˆˆ IsLocalRing.maximalIdeal โ†ฅA โ†” A.valuation โ†‘a < 1
        def ValuationSubring.ofSubring {K : Type u} [Field K] (R : Subring K) (hR : โˆ€ (x : K), x โˆˆ R โˆจ xโปยน โˆˆ R) :

        A subring R of K such that for all x : K either x โˆˆ R or xโปยน โˆˆ R is a valuation subring of K.

        Instances For
          @[simp]
          theorem ValuationSubring.mem_ofSubring {K : Type u} [Field K] (R : Subring K) (hR : โˆ€ (x : K), x โˆˆ R โˆจ xโปยน โˆˆ R) (x : K) :
          x โˆˆ ofSubring R hR โ†” x โˆˆ R

          An overring of a valuation ring is a valuation ring.

          Instances For
            def ValuationSubring.inclusion {K : Type u} [Field K] (R S : ValuationSubring K) (h : R โ‰ค S) :
            โ†ฅR โ†’+* โ†ฅS

            The ring homomorphism induced by the partial order.

            Instances For
              def ValuationSubring.subtype {K : Type u} [Field K] (R : ValuationSubring K) :
              โ†ฅR โ†’+* K

              The canonical ring homomorphism from a valuation ring to its field of fractions.

              Instances For
                @[simp]
                theorem ValuationSubring.subtype_apply {K : Type u} [Field K] {R : ValuationSubring K} (x : โ†ฅR) :
                R.subtype x = โ†‘x
                theorem ValuationSubring.subtype_injective {K : Type u} [Field K] (R : ValuationSubring K) :
                Function.Injective โ‡‘R.subtype
                @[simp]
                theorem ValuationSubring.coe_subtype {K : Type u} [Field K] (R : ValuationSubring K) :
                โ‡‘R.subtype = Subtype.val

                The canonical map on value groups induced by a coarsening of valuation rings.

                Instances For
                  @[simp]
                  theorem ValuationSubring.mapOfLE_comp_valuation {K : Type u} [Field K] (R S : ValuationSubring K) (h : R โ‰ค S) :
                  โ‡‘(R.mapOfLE S h) โˆ˜ โ‡‘R.valuation = โ‡‘S.valuation
                  @[simp]
                  theorem ValuationSubring.mapOfLE_valuation_apply {K : Type u} [Field K] (R S : ValuationSubring K) (h : R โ‰ค S) (x : K) :
                  (R.mapOfLE S h) (R.valuation x) = S.valuation x
                  def ValuationSubring.idealOfLE {K : Type u} [Field K] (R S : ValuationSubring K) (h : R โ‰ค S) :
                  Ideal โ†ฅR

                  The ideal corresponding to a coarsening of a valuation ring.

                  Instances For
                    noncomputable def ValuationSubring.ofPrime {K : Type u} [Field K] (A : ValuationSubring K) (P : Ideal โ†ฅA) [P.IsPrime] :

                    The coarsening of a valuation ring associated to a prime ideal.

                    Instances For
                      @[implicit_reducible]
                      noncomputable instance ValuationSubring.ofPrimeAlgebra {K : Type u} [Field K] (A : ValuationSubring K) (P : Ideal โ†ฅA) [P.IsPrime] :
                      Algebra โ†ฅA โ†ฅ(A.ofPrime P)
                      instance ValuationSubring.ofPrime_scalar_tower {K : Type u} [Field K] (A : ValuationSubring K) (P : Ideal โ†ฅA) [P.IsPrime] :
                      IsScalarTower (โ†ฅA) (โ†ฅ(A.ofPrime P)) K
                      theorem ValuationSubring.ofPrime_valuation_eq_one_iff_mem_primeCompl {K : Type u} [Field K] (A : ValuationSubring K) (P : Ideal โ†ฅA) [P.IsPrime] (x : โ†ฅA) :
                      (A.ofPrime P).valuation โ†‘x = 1 โ†” x โˆˆ P.primeCompl
                      @[simp]
                      theorem ValuationSubring.idealOfLE_ofPrime {K : Type u} [Field K] (A : ValuationSubring K) (P : Ideal โ†ฅA) [P.IsPrime] :
                      A.idealOfLE (A.ofPrime P) โ‹ฏ = P
                      theorem ValuationSubring.idealOfLE_le_of_le {K : Type u} [Field K] (A R S : ValuationSubring K) (hR : A โ‰ค R) (hS : A โ‰ค S) (h : R โ‰ค S) :
                      noncomputable def ValuationSubring.primeSpectrumEquiv {K : Type u} [Field K] (A : ValuationSubring K) :
                      PrimeSpectrum โ†ฅA โ‰ƒ { S : ValuationSubring K // A โ‰ค S }

                      The equivalence between coarsenings of a valuation ring and its prime ideals.

                      Instances For
                        @[simp]
                        theorem ValuationSubring.primeSpectrumEquiv_apply {K : Type u} [Field K] (A : ValuationSubring K) (P : PrimeSpectrum โ†ฅA) :
                        A.primeSpectrumEquiv P = โŸจA.ofPrime P.asIdeal, โ‹ฏโŸฉ

                        An ordered variant of primeSpectrumEquiv.

                        Instances For
                          @[simp]
                          theorem ValuationSubring.coe_primeSpectrumOrderEquiv_symm_apply_asIdeal {K : Type u} [Field K] (A : ValuationSubring K) (aโœ : { S : ValuationSubring K // A โ‰ค S }) :
                          โ†‘((RelIso.symm A.primeSpectrumOrderEquiv) aโœ).asIdeal = โ‡‘(A.inclusion โ†‘aโœ โ‹ฏ) โปยน' โ†‘(IsLocalRing.maximalIdeal โ†ฅโ†‘aโœ)
                          @[simp]
                          theorem ValuationSubring.primeSpectrumOrderEquiv_apply_coe_carrier {K : Type u} [Field K] (A : ValuationSubring K) (aโœ : (PrimeSpectrum โ†ฅA)แต’แตˆ) :
                          โ†‘โ†‘(A.primeSpectrumOrderEquiv aโœ) = {x : K | โˆƒ a โˆˆ A, โˆƒ (a_1 : K), (โˆƒ (x : a_1 โˆˆ A), โŸจa_1, โ‹ฏโŸฉ โˆ‰ (OrderDual.ofDual aโœ).asIdeal) โˆง x = a * a_1โปยน}
                          instance ValuationSubring.le_total_ideal {K : Type u} [Field K] (A : ValuationSubring K) :
                          Std.Total fun (x1 x2 : { S : ValuationSubring K // A โ‰ค S }) => x1 โ‰ค x2
                          @[implicit_reducible]
                          noncomputable instance ValuationSubring.linearOrderOverring {K : Type u} [Field K] (A : ValuationSubring K) :
                          theorem ValuationSubring.eq_self_or_eq_top_of_le {K : Type u} [Field K] {A : ValuationSubring K} [Ring.KrullDimLE 1 โ†ฅA] {B : ValuationSubring K} (hle : A โ‰ค B) :
                          A = B โˆจ B = โŠค
                          theorem ValuationSubring.eq_of_le_of_ne_top {K : Type u} [Field K] (A : ValuationSubring K) [Ring.KrullDimLE 1 โ†ฅA] {B : ValuationSubring K} (hle : A โ‰ค B) (hTop : B โ‰  โŠค) :
                          A = B
                          theorem ValuationSubring.eq_of_le_of_ne_self {K : Type u} [Field K] (A : ValuationSubring K) [Ring.KrullDimLE 1 โ†ฅA] {B : ValuationSubring K} (hle : A โ‰ค B) (hne : A โ‰  B) :
                          theorem ValuationSubring.eq_of_lt {K : Type u} [Field K] (A : ValuationSubring K) [Ring.KrullDimLE 1 โ†ฅA] {B : ValuationSubring K} (hlt : A < B) :

                          The valuation subring associated to a valuation.

                          Instances For
                            @[simp]
                            theorem Valuation.mem_valuationSubring_iff {K : Type u} [Field K] {ฮ“ : Type u_1} [LinearOrderedCommGroupWithZero ฮ“] (v : Valuation K ฮ“) (x : K) :
                            x โˆˆ v.valuationSubring โ†” v x โ‰ค 1
                            theorem Valuation.isEquiv_iff_valuationSubring {K : Type u} [Field K] {ฮ“โ‚ : Type u_2} {ฮ“โ‚‚ : Type u_3} [LinearOrderedCommGroupWithZero ฮ“โ‚] [LinearOrderedCommGroupWithZero ฮ“โ‚‚] (vโ‚ : Valuation K ฮ“โ‚) (vโ‚‚ : Valuation K ฮ“โ‚‚) :
                            vโ‚.IsEquiv vโ‚‚ โ†” vโ‚.valuationSubring = vโ‚‚.valuationSubring
                            noncomputable def ValuationSubring.unitGroup {K : Type u} [Field K] (A : ValuationSubring K) :

                            The unit group of a valuation subring, as a subgroup of Kหฃ.

                            Instances For
                              @[simp]
                              theorem ValuationSubring.mem_unitGroup_iff {K : Type u} [Field K] (A : ValuationSubring K) (x : Kหฃ) :
                              x โˆˆ A.unitGroup โ†” A.valuation โ†‘x = 1

                              For a valuation subring A, A.unitGroup agrees with the units of A.

                              Instances For
                                @[simp]
                                theorem ValuationSubring.coe_unitGroupMulEquiv_apply {K : Type u} [Field K] (A : ValuationSubring K) (a : โ†ฅA.unitGroup) :
                                โ†‘โ†‘(A.unitGroupMulEquiv a) = โ†‘โ†‘a
                                @[simp]
                                theorem ValuationSubring.coe_unitGroupMulEquiv_symm_apply {K : Type u} [Field K] (A : ValuationSubring K) (a : (โ†ฅA)หฃ) :
                                โ†‘โ†‘(A.unitGroupMulEquiv.symm a) = โ†‘โ†‘a

                                The map on valuation subrings to their unit groups is an order embedding.

                                Instances For

                                  The nonunits of a valuation subring of K, as a nonunital subring of K

                                  Instances For
                                    theorem ValuationSubring.mem_nonunits_iff {K : Type u} [Field K] (A : ValuationSubring K) {x : K} :
                                    x โˆˆ A.nonunits โ†” A.valuation x < 1
                                    theorem ValuationSubring.mem_nonunits_iff_or {K : Type u} [Field K] (A : ValuationSubring K) {x : K} :
                                    x โˆˆ A.nonunits โ†” x = 0 โˆจ xโปยน โˆ‰ A
                                    theorem ValuationSubring.inv_mem_nonunits_iff {K : Type u} [Field K] (A : ValuationSubring K) {x : K} :
                                    xโปยน โˆˆ A.nonunits โ†” x = 0 โˆจ x โˆ‰ A

                                    The map on valuation subrings to their nonunits is a dual order embedding.

                                    Instances For
                                      theorem ValuationSubring.coe_mem_nonunits_iff {K : Type u} [Field K] {A : ValuationSubring K} {a : โ†ฅA} :
                                      โ†‘a โˆˆ A.nonunits โ†” a โˆˆ IsLocalRing.maximalIdeal โ†ฅA

                                      The elements of A.nonunits are those of the maximal ideal of A after coercion to K.

                                      See also mem_nonunits_iff_exists_mem_maximalIdeal, which gets rid of the coercion to K, at the expense of a more complicated right-hand side.

                                      theorem ValuationSubring.nonunits_subset {K : Type u} [Field K] {A : ValuationSubring K} :
                                      โ†‘A.nonunits โІ โ†‘A
                                      theorem ValuationSubring.mem_nonunits_iff_exists_mem_maximalIdeal {K : Type u} [Field K] {A : ValuationSubring K} {a : K} :
                                      a โˆˆ A.nonunits โ†” โˆƒ (ha : a โˆˆ A), โŸจa, haโŸฉ โˆˆ IsLocalRing.maximalIdeal โ†ฅA

                                      The elements of A.nonunits are those of the maximal ideal of A.

                                      See also coe_mem_nonunits_iff, which has a simpler right-hand side but requires the element to be in A already.

                                      theorem ValuationSubring.image_maximalIdeal {K : Type u} [Field K] {A : ValuationSubring K} :
                                      Subtype.val '' โ†‘(IsLocalRing.maximalIdeal โ†ฅA) = โ†‘A.nonunits

                                      A.nonunits agrees with the maximal ideal of A, after taking its image in K.

                                      The principal unit group of a valuation subring, as a subgroup of Kหฃ.

                                      Instances For
                                        theorem ValuationSubring.mem_principalUnitGroup_iff {K : Type u} [Field K] (A : ValuationSubring K) (x : Kหฃ) :
                                        x โˆˆ A.principalUnitGroup โ†” A.valuation (โ†‘x - 1) < 1

                                        The map on valuation subrings to their principal unit groups is an order embedding.

                                        Instances For
                                          theorem ValuationSubring.coe_mem_principalUnitGroup_iff {K : Type u} [Field K] (A : ValuationSubring K) {x : โ†ฅA.unitGroup} :
                                          โ†‘x โˆˆ A.principalUnitGroup โ†” A.unitGroupMulEquiv x โˆˆ (Units.map โ†‘(IsLocalRing.residue โ†ฅA)).ker
                                          noncomputable def ValuationSubring.principalUnitGroupEquiv {K : Type u} [Field K] (A : ValuationSubring K) :
                                          โ†ฅA.principalUnitGroup โ‰ƒ* โ†ฅ(Units.map โ†‘(IsLocalRing.residue โ†ฅA)).ker

                                          The principal unit group agrees with the kernel of the canonical map from the units of A to the units of the residue field of A.

                                          Instances For
                                            theorem ValuationSubring.principalUnitGroupEquiv_apply {K : Type u} [Field K] (A : ValuationSubring K) (a : โ†ฅA.principalUnitGroup) :
                                            โ†‘โ†‘โ†‘(A.principalUnitGroupEquiv a) = โ†‘โ†‘a
                                            theorem ValuationSubring.principalUnitGroup_symm_apply {K : Type u} [Field K] (A : ValuationSubring K) (a : โ†ฅ(Units.map โ†‘(IsLocalRing.residue โ†ฅA)).ker) :
                                            โ†‘โ†‘(A.principalUnitGroupEquiv.symm a) = โ†‘โ†‘โ†‘a

                                            The canonical map from the unit group of A to the units of the residue field of A.

                                            Instances For

                                              The quotient of the unit group of A by the principal unit group of A agrees with the units of the residue field of A.

                                              Instances For

                                                Pointwise actions #

                                                This transfers the action from Subring.pointwiseMulAction, noting that it only applies when the action is by a group. Notably this provides an instances when G is K โ‰ƒ+* K.

                                                These instances are in the Pointwise locale.

                                                The lemmas in this section are copied from the file Mathlib/Algebra/Ring/Subring/Pointwise.lean; try to keep these in sync.

                                                @[implicit_reducible]

                                                The action on a valuation subring corresponding to applying the action to every element.

                                                This is available as an instance in the Pointwise locale.

                                                Instances For
                                                  @[simp]
                                                  theorem ValuationSubring.coe_pointwise_smul {K : Type u} [Field K] {G : Type u_1} [Group G] [MulSemiringAction G K] (g : G) (S : ValuationSubring K) :
                                                  โ†‘(g โ€ข S) = g โ€ข โ†‘S
                                                  @[simp]
                                                  theorem ValuationSubring.pointwise_smul_toSubring {K : Type u} [Field K] {G : Type u_1} [Group G] [MulSemiringAction G K] (g : G) (S : ValuationSubring K) :
                                                  (g โ€ข S).toSubring = g โ€ข S.toSubring
                                                  @[implicit_reducible]

                                                  The action on a valuation subring corresponding to applying the action to every element.

                                                  This is available as an instance in the Pointwise locale.

                                                  This is a stronger version of ValuationSubring.pointwiseSMul.

                                                  Instances For
                                                    theorem ValuationSubring.smul_mem_pointwise_smul {K : Type u} [Field K] {G : Type u_1} [Group G] [MulSemiringAction G K] (g : G) (x : K) (S : ValuationSubring K) :
                                                    x โˆˆ S โ†’ g โ€ข x โˆˆ g โ€ข S
                                                    theorem ValuationSubring.mem_smul_pointwise_iff_exists {K : Type u} [Field K] {G : Type u_1} [Group G] [MulSemiringAction G K] (g : G) (x : K) (S : ValuationSubring K) :
                                                    x โˆˆ g โ€ข S โ†” โˆƒ s โˆˆ S, g โ€ข s = x
                                                    @[simp]
                                                    theorem ValuationSubring.smul_mem_pointwise_smul_iff {K : Type u} [Field K] {G : Type u_1} [Group G] [MulSemiringAction G K] {g : G} {S : ValuationSubring K} {x : K} :
                                                    g โ€ข x โˆˆ g โ€ข S โ†” x โˆˆ S
                                                    theorem ValuationSubring.mem_pointwise_smul_iff_inv_smul_mem {K : Type u} [Field K] {G : Type u_1} [Group G] [MulSemiringAction G K] {g : G} {S : ValuationSubring K} {x : K} :
                                                    x โˆˆ g โ€ข S โ†” gโปยน โ€ข x โˆˆ S
                                                    theorem ValuationSubring.mem_inv_pointwise_smul_iff {K : Type u} [Field K] {G : Type u_1} [Group G] [MulSemiringAction G K] {g : G} {S : ValuationSubring K} {x : K} :
                                                    x โˆˆ gโปยน โ€ข S โ†” g โ€ข x โˆˆ S
                                                    @[simp]
                                                    theorem ValuationSubring.pointwise_smul_le_pointwise_smul_iff {K : Type u} [Field K] {G : Type u_1} [Group G] [MulSemiringAction G K] {g : G} {S T : ValuationSubring K} :
                                                    g โ€ข S โ‰ค g โ€ข T โ†” S โ‰ค T
                                                    theorem ValuationSubring.pointwise_smul_subset_iff {K : Type u} [Field K] {G : Type u_1} [Group G] [MulSemiringAction G K] {g : G} {S T : ValuationSubring K} :
                                                    g โ€ข S โ‰ค T โ†” S โ‰ค gโปยน โ€ข T
                                                    theorem ValuationSubring.subset_pointwise_smul_iff {K : Type u} [Field K] {G : Type u_1} [Group G] [MulSemiringAction G K] {g : G} {S T : ValuationSubring K} :
                                                    S โ‰ค g โ€ข T โ†” gโปยน โ€ข S โ‰ค T
                                                    def ValuationSubring.comap {K : Type u} [Field K] {L : Type u_1} [Field L] (A : ValuationSubring L) (f : K โ†’+* L) :

                                                    The pullback of a valuation subring A along a ring homomorphism K โ†’+* L.

                                                    Instances For
                                                      @[simp]
                                                      theorem ValuationSubring.coe_comap {K : Type u} [Field K] {L : Type u_1} [Field L] (A : ValuationSubring L) (f : K โ†’+* L) :
                                                      โ†‘(A.comap f) = โ‡‘f โปยน' โ†‘A
                                                      @[simp]
                                                      theorem ValuationSubring.mem_comap {K : Type u} [Field K] {L : Type u_1} [Field L] {A : ValuationSubring L} {f : K โ†’+* L} {x : K} :
                                                      x โˆˆ A.comap f โ†” f x โˆˆ A
                                                      theorem ValuationSubring.comap_comap {K : Type u} [Field K] {L : Type u_1} {J : Type u_2} [Field L] [Field J] (A : ValuationSubring J) (g : L โ†’+* J) (f : K โ†’+* L) :
                                                      (A.comap g).comap f = A.comap (g.comp f)
                                                      theorem Valuation.mem_unitGroup_iff (K : Type u) [Field K] {ฮ“ : Type u_1} [LinearOrderedCommGroupWithZero ฮ“] (v : Valuation K ฮ“) (x : Kหฃ) :
                                                      x โˆˆ v.valuationSubring.unitGroup โ†” v โ†‘x = 1
                                                      theorem Valuation.mem_maximalIdeal_iff (K : Type u) [Field K] {ฮ“ : Type u_1} [LinearOrderedCommGroupWithZero ฮ“] (v : Valuation K ฮ“) {a : โ†ฅv.valuationSubring} :
                                                      a โˆˆ IsLocalRing.maximalIdeal โ†ฅv.valuationSubring โ†” v โ†‘a < 1