Documentation

RealClosedField.Algebra.Ring.FormallyReal

class IsFormallyReal (R : Type u_1) [AddCommMonoid R] [Mul R] :
Instances
    theorem IsFormallyReal.eq_zero_of_mul_self {R : Type u_1} [AddCommMonoid R] [Mul R] [IsFormallyReal R] {a : R} :
    a * a = 0a = 0
    theorem AddSubmonoid.closure_eq_image_multiset_sum {M : Type u_2} [AddCommMonoid M] (s : Set M) :
    (closure s) = Multiset.sum '' {m : Multiset M | xm, x s}
    theorem isSumSq_iff_exists_sum_mul_self_eq {R : Type u_1} [AddCommMonoid R] [Mul R] {x : R} :
    IsSumSq x ∃ (s : Multiset R), (Multiset.map (fun (a : R) => a * a) s).sum = x
    theorem IsFormallyReal.eq_zero_of_add_right {R : Type u_1} [NonUnitalNonAssocSemiring R] [IsFormallyReal R] {s₁ s₂ : R} (hs₁ : IsSumSq s₁) (hs₂ : IsSumSq s₂) (h : s₁ + s₂ = 0) :
    s₁ = 0
    theorem IsFormallyReal.eq_zero_of_add_left {R : Type u_1} [NonUnitalNonAssocSemiring R] [IsFormallyReal R] {s₁ s₂ : R} (hs₁ : IsSumSq s₁) (hs₂ : IsSumSq s₂) (h : s₁ + s₂ = 0) :
    s₂ = 0
    theorem isFormallyReal_of_eq_zero_of_mul_self_of_eq_zero_of_add (R : Type u_1) [AddCommMonoid R] [Mul R] (hz : ∀ {a : R}, a * a = 0a = 0) (ha : ∀ {s₁ s₂ : R}, IsSumSq s₁IsSumSq s₂s₁ + s₂ = 0s₁ = 0) :
    theorem isFormallyReal_of_eq_zero_of_eq_zero_of_mul_self_add (R : Type u_1) [NonUnitalNonAssocSemiring R] (h : ∀ {s a : R}, IsSumSq sa * a + s = 0a = 0) :