Triangular Set #
This file defines the structure of a Triangular Set of multivariate polynomials.
A Triangular Set is a finite ordered sequence of non-zero polynomials [P₁, P₂, ..., Pₘ]
such that their main (max) variables are strictly increasing:
mainVar(P₁) < mainVar(P₂) < ... < mainVar(Pₘ).
Main Definitions #
TriangularSet: The structure definition. It bundles the list, the proofs of non-zero elements and ascending main variables.
Main Results #
TriangularSet.takeConcat_lt_of_reducedToSet: Appending a reduced element strictly decreases the order, used to prove termination of basic set algorithms.
A Triangular Set is a list of polynomials with strictly increasing main variables.
- toList : List (MvPolynomial σ R)
The underlying list of non-zero polynomials
- zero_notMem' : 0 ∉ self.toList
No polynomial in the list is zero
- isChain_max_vars' : List.IsChain (fun (x1 x2 : MvPolynomial σ R) => x1.vars.max < x2.vars.max) self.toList
The main variables of successive polynomials are strictly increasing
Instances For
Construct an triangular set from a list.
Equations
- TriangularSet.mk' hl1 hl2 = { toList := l, zero_notMem' := hl1, isChain_max_vars' := hl2 }
Instances For
The length of the triangular set.
Instances For
Equations
- x✝¹.instDecidableEqOfMvPolynomial x✝ = decidable_of_iff (x✝¹.toList = x✝.toList) ⋯
Set-like behavior #
Equations
- TriangularSet.instSetLike = { coe := fun (S : TriangularSet σ R) => {p : MvPolynomial σ R | ∃ n < S.length, S n = p}, coe_injective' := ⋯ }
Equations
- TriangularSet.instHasSubset = { Subset := fun (S T : TriangularSet σ R) => ∀ ⦃x : MvPolynomial σ R⦄, x ∈ S → x ∈ T }
Equations
- TriangularSet.instHasSSubset = { SSubset := fun (S T : TriangularSet σ R) => S ⊆ T ∧ ¬T ⊆ S }
Converts a triangular set to a finite set.
Equations
Instances For
The empty triangular set.
Instances For
Equations
- TriangularSet.instEmptyCollection = { emptyCollection := TriangularSet.empty }
Equations
- TriangularSet.instInhabited = { default := ∅ }
A triangular set with exactly one non-zero element.
Instances For
Takes the first n elements of a triangular set.
Instances For
Drops the first n elements of a triangular set.
Instances For
The condition required to append p to S while maintaining the Triangular Set property.
p must be non-zero and its main variable must be strictly greater than
the main variable of the last element of S.
Instances For
Appends a polynomial p to the end of S. Requires S.canConcat p.
Instances For
A triangular set with exactly one element.
Equations
- TriangularSet.single p = if h : p = 0 then ∅ else TriangularSet.single' h
Instances For
takeConcat S p tries to construct a new Triangular Set
by taking a prefix of S and appending p.
This is a key operation in constructing the Characteristic Set.
If p fits naturally at the end of S, it behaves like S.concat p.
If p conflicts with some element in S (in terms of main variable order), takeConcat finds the
first element in S that has a higher or equal main variable than p,
truncates S before that element, and appends p.
Equations
- One or more equations did not get rendered due to their size.