Ascending Set and Basic Set #
This file defines the abstract theory of Ascending Set and Basic Set. An Ascending Set is a Triangulated Set with additional reduction properties. A Basic Set is, informally, the "smallest" Ascending Set contained in a given set of polynomials.
We introduce two type main variables:
AscendingSetTheory: Abstracting the definition of an ascending set (e.g., strong vs. weak reduction).HasBasicSet: Abstracting the algorithm to compute a basic set from a list of polynomials.
The abstract theory of Ascending Sets.
This class allows us to define what it means for a TriangulatedSet to be an "Ascending Set".
Different instances can implement Ritt's strong ascending sets or Wu's weak ascending sets.
- reducedTo' : MvPolynomial σ R → MvPolynomial σ R → Prop
The reduction relation used to define the ascending property.
- decidableReducedTo : DecidableRel AscendingSetTheory.reducedTo'
- initial_reducedToSet_of_mainVariable_ne_bot ⦃S : TriangulatedSet σ R⦄ ⦃i : ℕ⦄ : (∀ ⦃i j : ℕ⦄, i < j → j < S.length → AscendingSetTheory.reducedTo' (S j) (S i)) → (S i).mainVariable ≠ ⊥ → (S i).initial.reducedToSet S
A key property linking the ascending set structure to the initial. If
Sis an ascending set, the initial of any non-constant element inSmust be reduced with respect toS.
Instances
A Triangulated Set is an Ascending Set if every element is reduced with respect to its predecessors.
Equations
- S.isAscendingSet = ∀ ⦃i j : ℕ⦄, i < j → j < S.length → AscendingSetTheory.reducedTo' (S j) (S i)
Instances For
Equations
- x✝.instDecidablePredIsAscendingSet = decidable_of_iff (∀ j < x✝.length, ∀ i < j, AscendingSetTheory.reducedTo' (x✝ j) (x✝ i)) ⋯
The type of Ascending Sets, which are Triangulated Sets satisfying the ascending property.
Equations
- AscendingSet σ R = { TS : TriangulatedSet σ R // TS.isAscendingSet }
Instances For
The interface for algorithms computing Basic Sets.
Any instance of this class provides a basicSet function that computes a minimal ascending set
contained in a given list of polynomials.
- reducedTo' : MvPolynomial σ R → MvPolynomial σ R → Prop
- initial_reducedToSet_of_mainVariable_ne_bot ⦃S : TriangulatedSet σ R⦄ ⦃i : ℕ⦄ : (∀ ⦃i j : ℕ⦄, i < j → j < S.length → AscendingSetTheory.reducedTo' (S j) (S i)) → (S i).mainVariable ≠ ⊥ → (S i).initial.reducedToSet S
- basicSet : List (MvPolynomial σ R) → TriangulatedSet σ R
Computes a Basic Set from a list of polynomials.
- basicSet_isAscendingSet (l : List (MvPolynomial σ R)) : (basicSet l).isAscendingSet
The output is always an Ascending Set.
The output is a subset of the input.
- basicSet_minimal (l : List (MvPolynomial σ R)) ⦃S : TriangulatedSet σ R⦄ : S.isAscendingSet → (∀ ⦃p : MvPolynomial σ R⦄, p ∈ S → p ∈ l) → basicSet l ≤ S
Minimality condition: the output is ≤ any other ascending set contained in the input.
- basicSet_append_lt_of_exists_reducedToSet ⦃l1 l2 : List (MvPolynomial σ R)⦄ : (∃ p ∈ l2, p ≠ 0 ∧ p.reducedToSet (basicSet l1)) → basicSet (l2 ++ l1) < basicSet l1
Rank reduction property: appending a reduced element strictly decreases the basic set rank. Crucial for proving termination of zero decomposition.
Instances
Definition of Standard (Ritt) Ascending Set: strict degree reduction.
Equations
Instances For
Definition of Weak (Wu) Ascending Set: initial reduction.
Equations
Instances For
Equations
- AscendingSet.mk h = ⟨S, h⟩
Instances For
Equations
Instances For
Equations
- ⋯ = ⋯
Instances For
Equations
- AscendingSet.instFunLikeNatMvPolynomial = { coe := fun (S : AscendingSet σ R) => ⇑↑S, coe_injective' := ⋯ }
Equations
- AscendingSet.instSetLike = { coe := fun (S : AscendingSet σ R) => ↑↑S, coe_injective' := ⋯ }
Equations
- AscendingSet.instHasSubset = { Subset := InvImage (fun (x1 x2 : TriangulatedSet σ R) => x1 ⊆ x2) Subtype.val }
Equations
- AscendingSet.instHasSSubset = { SSubset := InvImage (fun (x1 x2 : TriangulatedSet σ R) => x1 ⊂ x2) Subtype.val }
Instances For
Instances For
Equations
- AscendingSet.instInhabited = { default := ∅ }
Instances For
Equations
- x✝¹.instDecidableLE x✝ = decidable_of_iff ((↑x✝¹).rank ≤ (↑x✝).rank) ⋯
Equations
Equations
- AscendingSet.instWellFoundedRelation = { rel := fun (x1 x2 : AscendingSet σ R) => x1 < x2, wf := ⋯ }
Equations
- AscendingSet.Set.min S' h = ⋯.choose
Instances For
Equations
- AscendingSet.instDecidableRelReducedToSet x✝ S = decidable_of_iff (∀ i < (↑S).length, x✝.reducedTo (↑S i)) ⋯
The main variableical existence of a Basic Set for any set of polynomials a.
This is guaranteed by the well-foundedness of the rank.
Non-computable choice of a Basic Set for a.
Equations
Instances For
The Basic Set of a list l, as computed by the HasBasicSet instance.