Documentation

TauCeti.Algebra.Polynomial.Sturm.SignedRemainders

Positive-scaled signed remainder chains #

The defining relations allow pseudo-remainder scaling. The terminal entry may be nonconstant; no coprimality is imposed on the first two entries.

Polynomial.sturmSeq satisfies these relations. The relational formulation also allows positive pseudo-remainder scalings without changing root sign sums.

def TauCeti.Sturm.IsRemainder {R : Type u_1} [Field R] [LinearOrder R] (p q r : Polynomial R) :

A positively scaled signed remainder identity.

Equations
Instances For

    The algebraic relations of a signed remainder chain, including its exact termination. Degree descent is needed to construct such a chain, but not to verify its signed root-sum identity.

    Instances For
      theorem TauCeti.Sturm.IsRemainder.of_identity {R : Type u_1} [Field R] [LinearOrder R] {p q r : Polynomial R} (a b : R) (u : Polynomial R) (ha : 0 < a) (hb : 0 < b) (heq : Polynomial.C a * p = u * q - Polynomial.C b * r) :

      Construct the signed remainder relation from positive scalings and a polynomial identity.

      theorem TauCeti.Sturm.IsRemainder.exists_identity {R : Type u_1} [Field R] [LinearOrder R] {p q r : Polynomial R} (h : IsRemainder p q r) :
      ∃ (a : R) (b : R) (u : Polynomial R), 0 < a ∧ 0 < b ∧ Polynomial.C a * p = u * q - Polynomial.C b * r

      A signed remainder relation supplies positive scalings and its polynomial identity.

      theorem TauCeti.Sturm.IsRemainder.dvd {R : Type u_1} [Field R] [LinearOrder R] {p q r d : Polynomial R} (h : IsRemainder p q r) (hq : d ∣ q) (hr : d ∣ r) :
      d ∣ p

      A common divisor of the two later entries divides the earlier entry.

      theorem TauCeti.Sturm.IsRemainder.alternate {R : Type u_1} [Field R] [LinearOrder R] [IsStrictOrderedRing R] {p q r : Polynomial R} (h : IsRemainder p q r) {x : R} (hq : Polynomial.eval x q = 0) (hr : Polynomial.eval x r ≠ 0) :

      At a zero of the middle entry, the neighbors have opposite signs, provided the right neighbor does not vanish.

      A nonzero polynomial alone forms a signed remainder sequence.

      theorem TauCeti.Sturm.IsSignedRemainderSeq.pair {R : Type u_1} [Field R] [LinearOrder R] {p q : Polynomial R} (hp : p ≠ 0) (hdvd : q ∣ p) :

      A two-entry chain terminates when its second polynomial divides its first.

      theorem TauCeti.Sturm.IsSignedRemainderSeq.cons {R : Type u_1} [Field R] [LinearOrder R] {p q r : Polynomial R} {cs : List (Polynomial R)} (hp : p ≠ 0) (hrel : IsRemainder p q r) (h : IsSignedRemainderSeq (q :: r :: cs)) :

      Prepend one signed recurrence to a chain.

      theorem TauCeti.Sturm.IsSignedRemainderSeq.last_dvd {R : Type u_1} [Field R] [LinearOrder R] {cs : List (Polynomial R)} (h : IsSignedRemainderSeq cs) {d : Polynomial R} (hd : cs.getLast? = some d) (p : Polynomial R) :
      p ∈ cs → d ∣ p

      The terminal polynomial divides every chain entry.

      theorem TauCeti.Sturm.IsSignedRemainderSeq.isAlternating {R : Type u_1} [Field R] [LinearOrder R] [IsStrictOrderedRing R] {cs : List (Polynomial R)} (h : IsSignedRemainderSeq cs) (hlast : ∀ (q : Polynomial R), cs.getLast? = some q → ∀ (x : R), Polynomial.eval x q ≠ 0) :

      A signed remainder chain with a root-free last entry is alternating.

      Mathlib's signed remainder sequence satisfies the algebraic chain conditions.

      theorem TauCeti.Sturm.IsRemainder.cancel {R : Type u_1} [Field R] [LinearOrder R] {d p q r : Polynomial R} (hd : d ≠ 0) (h : IsRemainder (d * p) (d * q) (d * r)) :

      Cancel a nonzero common polynomial factor from a signed remainder identity.

      theorem TauCeti.Sturm.IsSignedRemainderSeq.cancel {R : Type u_1} [Field R] [LinearOrder R] {d : Polynomial R} {cs : List (Polynomial R)} (hd : d ≠ 0) (h : IsSignedRemainderSeq (List.map (fun (x : Polynomial R) => d * x) cs)) :

      Dividing out a nonzero common factor preserves the signed chain conditions: if cs.map (d * ·) is signed, so is cs.

      Divide every entry by the terminal common factor. The resulting chain is alternating and ends at 1, even when the original terminal factor is nonconstant.