Documentation

CharacteristicSet.WeakAscendingSet

Weak Ascending Set (Wu's Definition) #

This file implements the theory and algorithm for Weak Ascending Set, which are central to Wu's Method. In this context, a "Weak Ascending Set" requires that the initial of every element is reduced with respect to preceding elements. This is a weaker condition than the standard reduction.

Consequently, the algorithm for computing a Weak Basic Set must ensure the triangular structure (strict ascending main variables) explicitly, by filtering candidates with B.mainVariable < p.mainVariable.

Main Instances #

theorem WeakAscendingSet.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).initial.reducedTo (S i)
theorem WeakAscendingSet.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).initial.reducedTo (S i)
theorem WeakAscendingSet.initial_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).initial.reducedTo (S j)

The weak ascending set theory uses weak reduction p.initial.reducedTo.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    noncomputable def WeakAscendingSet.basicSet {R : Type u_1} {σ : Type u_2} [CommSemiring R] [DecidableEq R] [LinearOrder σ] (l : List (MvPolynomial σ R)) :

    Computes the Weak Basic Set of a list of polynomials. Difference from Standard: The filter condition includes B.mainVariable < p.mainVariable. This is because p.initial.reducedTo B does NOT imply B.mainVariable < p.mainVariable (unlike strong reduction). We must enforce the triangular structure explicitly.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[irreducible]
      noncomputable def WeakAscendingSet.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) (hl2 : pl, BS.canConcat p) :
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem WeakAscendingSet.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) (hl2 : pl, BS.canConcat p) (h : l []) :
        (l.head h).initial.reducedToSet BSbasicSet.go l BS hl1 hl2 < BS
        theorem WeakAscendingSet.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) (hl2 : pl, BS.canConcat p) :
        Option.all (fun (p : MvPolynomial σ R) => decide (p.initial.reducedToSet BS)) l.head? = truebasicSet.go l BS hl1 hl2 BS
        theorem WeakAscendingSet.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) (hl2 : pl, BS.canConcat p) (p : MvPolynomial σ R) :
        pBSp basicSet.go l BS hl1 hl2p l
        theorem WeakAscendingSet.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) (hl2 : pl, BS.canConcat p) :
        Option.all (fun (p : MvPolynomial σ R) => decide (p.initial.reducedToSet BS)) l.head? = trueBS.isAscendingSet(basicSet.go l BS hl1 hl2).isAscendingSet
        theorem WeakAscendingSet.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) (hl2 : pl, BS.canConcat p) :
        List.Pairwise (fun (x1 x2 : MvPolynomial σ R) => x1 x2) lOption.all (fun (p : MvPolynomial σ R) => decide (p.initial.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 hl2 T
        noncomputable def WeakAscendingSet.instHasBasicSet {R : Type u_1} {σ : Type u_2} [CommSemiring R] [DecidableEq R] [LinearOrder σ] :

        The Weak Basic Set algorithm satisfies the abstract HasBasicSet interface.

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