Documentation

TauCeti.Algebra.Polynomial.Sturm.Local

Local variation jumps for alternating polynomial chains #

IsAlternating records the sign conditions of a chain whose last entry has no roots. Interior zeros preserve sign variations. Crossing a simple root of the first entry changes the variation by the sign of its derivative times the second entry. These local identities supply the signed root sum in Sturm.Sum.

structure TauCeti.Sturm.IsAlternating {R : Type u_1} [Ring R] [LinearOrder R] (cs : List (Polynomial R)) :

A alternating chain has opposite neighbors at every interior zero and no real zero in its last entry. These are the properties of a signed remainder chain after its common polynomial factor has been removed.

Instances For
    theorem TauCeti.Sturm.IsAlternating.signVariationsAt_eq {R : Type u_1} [Ring R] [LinearOrder R] [IsStrictOrderedRing R] {cs : List (Polynomial R)} (h : IsAlternating cs) (a r : R) (hne : ∀ q ∈ cs, Polynomial.eval a q ≠ 0) (hfront : ∀ (q : Polynomial R), cs.head? = some q → Polynomial.eval r q ≠ 0) (hsame : ∀ q ∈ cs, Polynomial.eval r q ≠ 0 → SignType.sign (Polynomial.eval a q) = SignType.sign (Polynomial.eval r q)) :

    A alternating chain has the same variations at two points if no entry vanishes at the first, the head does not vanish at the second, and all surviving signs agree.

    theorem TauCeti.Sturm.IsAlternating.second_eval_ne_zero {R : Type u_1} [Ring R] [LinearOrder R] {p q : Polynomial R} {cs : List (Polynomial R)} (h : IsAlternating (p :: q :: cs)) {r : R} (hr : Polynomial.eval r p = 0) :

    Consecutive entries of a alternating chain cannot both vanish.

    theorem TauCeti.Sturm.IsAlternating.signVariationsAt_nonroot {R : Type u_1} [Field R] [LinearOrder R] [IsStrictOrderedRing R] [IsRealClosed R] {cs : List (Polynomial R)} (h : IsAlternating cs) {a r b : R} (har : a < r) (hrb : r < b) (hfront : ∀ (q : Polynomial R), cs.head? = some q → Polynomial.eval r q ≠ 0) (hz : ∀ q ∈ cs, ∀ x ∈ Set.Icc a b, x ≠ r → Polynomial.eval x q ≠ 0) :

    Crossing isolated interior zeros does not change variations.

    theorem TauCeti.Sturm.IsAlternating.root_jump {R : Type u_1} [Field R] [LinearOrder R] [IsStrictOrderedRing R] [IsRealClosed R] {p q : Polynomial R} {cs : List (Polynomial R)} (h : IsAlternating (p :: q :: cs)) {a r b : R} (har : a < r) (hrb : r < b) (hr : Polynomial.eval r p = 0) (hd : Polynomial.eval r (Polynomial.derivative p) ≠ 0) (hz : ∀ s ∈ p :: q :: cs, ∀ x ∈ Set.Icc a b, x ≠ r → Polynomial.eval x s ≠ 0) :

    At a simple root of the head, the variation jump is the sign of the product of the head derivative and the second entry.