Documentation

RealClosedField.Upstream

theorem mem_sup_left {R : Type u_1} [Semiring R] {a b : Subsemiring R} {x : R} :
x ∈ a → x ∈ a ⊔ b
theorem mem_sup_right {R : Type u_1} [Semiring R] {a b : Subsemiring R} {x : R} :
x ∈ b → x ∈ a ⊔ b
theorem Polynomial.exists_root_of_odd_natDegree_irreducible_imp_natDegree_eq_one {F : Type u_1} [Field F] (h : ∀ {g : Polynomial F}, g.Monic → Odd g.natDegree → Irreducible g → g.natDegree = 1) {f : Polynomial F} (hf : Odd f.natDegree) :
∃ (x : F), f.IsRoot x
@[simp]
theorem Subsemiring.comap_toSubmonoid' {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (f : R →+* S) (Q : Subsemiring S) :
@[simp]
theorem Subsemiring.map_toSubmonoid' {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (f : R →+* S) (P : Subsemiring R) :
@[simp]
theorem Submodule.map_toAddSubgroup' {R : Type u_1} {S : Type u_2} [Ring R] [Ring S] (σ : R →+* S) (M : Type u_3) (M₂ : Type u_4) [AddCommGroup M] [AddCommGroup M₂] [Module R M] [Module S M₂] (f : M →ₛₗ[σ] M₂) (p : Submodule R M) [RingHomSurjective σ] :
@[simp]
theorem Submodule.comap_toAddSubgroup {R : Type u_1} {S : Type u_2} [Ring R] [Ring S] (σ : R →+* S) (M : Type u_3) (M₂ : Type u_4) [AddCommGroup M] [AddCommGroup M₂] [Module R M] [Module S M₂] (f : M →ₛₗ[σ] M₂) (q : Submodule S M₂) :
theorem Ideal.comap_eq_submodule_comap {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (f : R →+* S) (I : Ideal S) :
def AlgHom.liftOfRightInverseAux {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [Ring A] [Ring B] [Ring C] [Algebra R A] [Algebra R B] [Algebra R C] (f : A →ₐ[R] B) (f_inv : B → A) (hf : Function.RightInverse f_inv ⇑f) (g : A →ₐ[R] C) (hg : RingHom.ker f ≤ RingHom.ker g) :

Auxiliary definition used to define liftOfRightInverse

Equations
  • f.liftOfRightInverseAux f_inv hf g hg = { toFun := fun (b : B) => g (f_inv b), map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
    @[simp]
    theorem AlgHom.liftOfRightInverseAux_comp_apply {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [Ring A] [Ring B] [Ring C] [Algebra R A] [Algebra R B] [Algebra R C] (f : A →ₐ[R] B) (f_inv : B → A) (hf : Function.RightInverse f_inv ⇑f) (g : A →ₐ[R] C) (hg : RingHom.ker f ≤ RingHom.ker g) (a : A) :
    (f.liftOfRightInverseAux f_inv hf g hg) (f a) = g a
    def AlgHom.liftOfRightInverse {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [Ring A] [Ring B] [Ring C] [Algebra R A] [Algebra R B] [Algebra R C] (f : A →ₐ[R] B) (f_inv : B → A) (hf : Function.RightInverse f_inv ⇑f) :

    liftOfRightInverse f hf g hg is the unique R-algebra homomorphism φ

    • such that φ.comp f = g (AlgHom.liftOfRightInverse_comp),
    • where f : A →ₐ[R] B has a right_inverse f_inv (hf),
    • and g : B →ₐ[R] C satisfies hg : f.ker ≤ g.ker.

    See AlgHom.eq_liftOfRightInverse for the uniqueness lemma.

       A .
       |  \
     f |   \ g
       |    \
       v     \⌟
       B ----> C
          ∃!φ
    
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[reducible, inline]
      noncomputable abbrev AlgHom.liftOfSurjective' {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [Ring A] [Ring B] [Ring C] [Algebra R A] [Algebra R B] [Algebra R C] (f : A →ₐ[R] B) (hf : Function.Surjective ⇑f) :

      A non-computable version of AlgHom.liftOfRightInverse for when no computable right inverse is available, that uses Function.surjInv.

      Equations
      Instances For
        theorem AlgHom.liftOfRightInverse_comp_apply {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [Ring A] [Ring B] [Ring C] [Algebra R A] [Algebra R B] [Algebra R C] (f : A →ₐ[R] B) (f_inv : B → A) (hf : Function.RightInverse f_inv ⇑f) (g : { g : A →ₐ[R] C // RingHom.ker f ≤ RingHom.ker g }) (x : A) :
        ((f.liftOfRightInverse f_inv hf) g) (f x) = ↑g x
        theorem AlgHom.liftOfRightInverse_comp {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [Ring A] [Ring B] [Ring C] [Algebra R A] [Algebra R B] [Algebra R C] (f : A →ₐ[R] B) (f_inv : B → A) (hf : Function.RightInverse f_inv ⇑f) (g : { g : A →ₐ[R] C // RingHom.ker f ≤ RingHom.ker g }) :
        ((f.liftOfRightInverse f_inv hf) g).comp f = ↑g
        theorem AlgHom.liftOfRightInverse_symm {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [Ring A] [Ring B] [Ring C] [Algebra R A] [Algebra R B] [Algebra R C] (f : A →ₐ[R] B) (f_inv : B → A) (hf : Function.RightInverse f_inv ⇑f) (φ : B →ₐ[R] C) :
        ↑((f.liftOfRightInverse f_inv hf).symm φ) = φ.comp f
        theorem AlgHom.eq_liftOfRightInverse {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [CommRing R] [Ring A] [Ring B] [Ring C] [Algebra R A] [Algebra R B] [Algebra R C] (f : A →ₐ[R] B) (f_inv : B → A) (hf : Function.RightInverse f_inv ⇑f) (g : A →ₐ[R] C) (hg : RingHom.ker f ≤ RingHom.ker g) (h : B →ₐ[R] C) (hh : h.comp f = g) :
        h = (f.liftOfRightInverse f_inv hf) ⟨g, hg⟩
        theorem Subsemiring.isSpanning_comap {R : Type u_2} {R' : Type u_3} [Ring R] [Ring R'] (f : R →+* R') {S' : Subsemiring R'} (hS' : S'.toAddSubmonoid.IsSpanning) :
        theorem Subsemiring.isSpanning_map {R : Type u_2} {R' : Type u_3} [Ring R] [Ring R'] {f : R →+* R'} {S : Subsemiring R} (hS : S.toAddSubmonoid.IsSpanning) (hf : Function.Surjective ⇑f) :

        Equivalence between submonoids with zero support in an abelian group G and partially ordered group structures on G.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          Equivalence between submonoids with zero support in an abelian group G and partially ordered group structures on G.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Equivalence between maximal submonoids with zero support in an abelian group G and linearly ordered group structures on G.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              Equivalence between maximal submonoids with zero support in an abelian group G and linearly ordered group structures on G.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Equivalence between subsemirings with zero support in a ring R and partially ordered ring structures on R.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For

                  Equivalence between maximal subsemirings with zero support in a ring R and linearly ordered ring structures on R.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem estimate {F : Type u_2} [Field F] [LinearOrder F] [IsStrictOrderedRing F] {f : Polynomial F} (hdeg : f.natDegree ≠ 0) {x : F} (hx : 1 ≤ x) :
                    x ^ (f.natDegree - 1) * (f.leadingCoeff * x - ↑f.natDegree * (Finset.image (fun (x : ℕ) => |f.coeff x|) (Finset.range f.natDegree)).max' ⋯) ≤ Polynomial.eval x f
                    theorem eventually_pos {F : Type u_2} [Field F] [LinearOrder F] [IsStrictOrderedRing F] {f : Polynomial F} (hdeg : f.natDegree ≠ 0) (hf : 0 < f.leadingCoeff) :
                    ∃ (y : F), ∀ (x : F), y < x → 0 < Polynomial.eval x f
                    theorem estimate2 {F : Type u_2} [Field F] [LinearOrder F] [IsStrictOrderedRing F] {f : Polynomial F} (hdeg : Odd f.natDegree) {x : F} (hx : x ≤ -1) :
                    Polynomial.eval x f ≤ x ^ (f.natDegree - 1) * (f.leadingCoeff * x + ↑f.natDegree * (Finset.image (fun (x : ℕ) => |f.coeff x|) (Finset.range f.natDegree)).max' ⋯)
                    theorem eventually_neg {F : Type u_2} [Field F] [LinearOrder F] [IsStrictOrderedRing F] {f : Polynomial F} (hdeg : Odd f.natDegree) (hf : 0 < f.leadingCoeff) :
                    ∃ (y : F), ∀ x < y, Polynomial.eval x f < 0
                    theorem sign_change {F : Type u_2} [Field F] [LinearOrder F] [IsStrictOrderedRing F] {f : Polynomial F} (hdeg : Odd f.natDegree) :
                    ∃ (x : F) (y : F), Polynomial.eval x f < 0 ∧ 0 < Polynomial.eval y f
                    def Localization.recOnSubsingleton {M : Type u_2} [CommMonoid M] {S : Submonoid M} {r : Localization S → Sort u_3} [h : ∀ (a : M) (b : ↥S), Subsingleton (r (mk a b))] (x : Localization S) (f : (a : M) → (b : ↥S) → r (mk a b)) :
                    r x

                    Copy of Quotient.recOnSubsingleton for Localization

                    Equations
                    Instances For
                      def AddLocalization.recOnSubsingleton {M : Type u_2} [AddCommMonoid M] {S : AddSubmonoid M} {r : AddLocalization S → Sort u_3} [h : ∀ (a : M) (b : ↥S), Subsingleton (r (mk a b))] (x : AddLocalization S) (f : (a : M) → (b : ↥S) → r (mk a b)) :
                      r x

                      Copy of Quotient.recOnSubsingleton for AddLocalization

                      Equations
                      Instances For