Documentation

CharacteristicSet.StandardAscendingSet

Standard Ascending Set (Ritt's Definition) #

This file implements the theory and algorithm for Standard Ascending Set. In this context, a "Standard Ascending Set" requires that every element is reduced with respect to preceding elements.

Main Instances #

theorem StandardAscendingSet.isAscendingSet_def {R : Type u_1} {σ : Type u_2} [CommSemiring R] [DecidableEq R] [LinearOrder σ] {S : TriangulatedSet σ R} :
isAscendingSet S ∀ ⦃i j : ⦄, i < jj < S.length(S j).reducedTo (S i)
theorem StandardAscendingSet.isAscendingSet_def' {R : Type u_1} {σ : Type u_2} [CommSemiring R] [DecidableEq R] [LinearOrder σ] {S : TriangulatedSet σ R} :
isAscendingSet S ∀ ⦃i j : ⦄, i < ji < S.length(S j).reducedTo (S i)
theorem StandardAscendingSet.reducedTo_of_ne {R : Type u_1} {σ : Type u_2} [CommSemiring R] [DecidableEq R] [LinearOrder σ] {S : TriangulatedSet σ R} {i j : } (h : isAscendingSet S) :
i jj < S.length(S i).reducedTo (S j)

The standard ascending set theory uses strong reduction reducedTo.

Equations
Instances For
    noncomputable def StandardAscendingSet.basicSet {R : Type u_1} {σ : Type u_2} [CommSemiring R] [DecidableEq R] [LinearOrder σ] (l : List (MvPolynomial σ R)) :

    Computes the Standard Basic Set of a list of polynomials. The algorithm works by:

    1. Sort the list and let BS = ∅.
    2. Pick the first (minimal) element B in the list.
    3. Update the current basic set BS with B using takeConcat (which handles replacements).
    4. Filter the remaining list to keep only elements reduced w.r.t. the new BS and go to step 2.
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[irreducible]
      noncomputable def StandardAscendingSet.basicSet.go {R : Type u_1} {σ : Type u_2} [CommSemiring R] [DecidableEq R] [LinearOrder σ] (l : List (MvPolynomial σ R)) (BS : TriangulatedSet σ R) (hl1 : pl, p 0) :
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem StandardAscendingSet.basicSetGo_lt {R : Type u_1} {σ : Type u_2} [CommSemiring R] [DecidableEq R] [LinearOrder σ] (l : List (MvPolynomial σ R)) (BS : TriangulatedSet σ R) (hl1 : pl, p 0) (h : l []) :
        (l.head h).reducedToSet BSbasicSet.go l BS hl1 < BS
        theorem StandardAscendingSet.basicSetGo_le {R : Type u_1} {σ : Type u_2} [CommSemiring R] [DecidableEq R] [LinearOrder σ] (l : List (MvPolynomial σ R)) (BS : TriangulatedSet σ R) (hl1 : pl, p 0) :
        Option.all (fun (p : MvPolynomial σ R) => decide (p.reducedToSet BS)) l.head? = truebasicSet.go l BS hl1 BS
        theorem StandardAscendingSet.mem_of_mem_basicSetGo {R : Type u_1} {σ : Type u_2} [CommSemiring R] [DecidableEq R] [LinearOrder σ] (l : List (MvPolynomial σ R)) (BS : TriangulatedSet σ R) (hl1 : pl, p 0) (p : MvPolynomial σ R) :
        pBSp basicSet.go l BS hl1p l
        theorem StandardAscendingSet.basicSetGo_isAscendingSet {R : Type u_1} {σ : Type u_2} [CommSemiring R] [DecidableEq R] [LinearOrder σ] (l : List (MvPolynomial σ R)) (BS : TriangulatedSet σ R) (hl1 : pl, p 0) :
        Option.all (fun (p : MvPolynomial σ R) => decide (p.reducedToSet BS)) l.head? = trueBS.isAscendingSet(basicSet.go l BS hl1).isAscendingSet
        theorem StandardAscendingSet.basicSetGo_le_ascendingSet {R : Type u_1} {σ : Type u_2} [CommSemiring R] [DecidableEq R] [LinearOrder σ] (l : List (MvPolynomial σ R)) (BS : TriangulatedSet σ R) (hl1 : pl, p 0) :
        List.Pairwise (fun (x1 x2 : MvPolynomial σ R) => x1 x2) l(∀ pl, BS.canConcat p)Option.all (fun (x : MvPolynomial σ R) => decide (x.reducedToSet BS)) l.head? = true∀ (T : TriangulatedSet σ R), T.isAscendingSet(BS.length T.length i < BS.length, BS i T i) → (∀ pT, (∀ i < BS.length, ¬BS i p)p l)basicSet.go l BS hl1 T

        The core lemma proving that the computed Basic Set is indeed minimal among all ascending sets contained in l.

        noncomputable def StandardAscendingSet.instHasBasicSet {R : Type u_1} {σ : Type u_2} [CommSemiring R] [DecidableEq R] [LinearOrder σ] :

        The Standard Basic Set algorithm satisfies the abstract HasBasicSet interface.

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