Semialgebraic functions #
A function between coordinate spaces is semialgebraic on a set when its domain and graph are semialgebraic. The graph is regarded as a subset of the coordinate space indexed by the disjoint union of the input and output coordinates. Requiring the specified domain to be semialgebraic is useful before projection closure is available: semialgebraicity of a graph alone does not yet let us recover its projection onto the input coordinates.
This file gives the graph predicate its basic API. It proves restriction, congruence, and
piecewise-gluing laws and shows that polynomial maps, and more generally functions whose graph
over a semialgebraic domain is cut out by polynomial equations
(TauCeti.isSemialgebraicOn_of_forall_eq_iff), are semialgebraic. It also proves the
operations whose graphs are inverse images of the given graphs, so that no coordinate has to be
eliminated: pairing two functions on the same domain (TauCeti.IsSemialgebraicOn.sumElim),
assembling a function from its coordinates (TauCeti.IsSemialgebraicOn.pi),
precomposition with a polynomial map (TauCeti.IsSemialgebraicOn.comp_eval), pointwise
negation (TauCeti.IsSemialgebraicOn.neg), and bijective changes of the input or output
coordinates (TauCeti.isSemialgebraicOn_preimage_comp_equiv_iff,
TauCeti.isSemialgebraicOn_comp_equiv_iff). It deliberately does not assert closure under
arbitrary composition, whose graph generally requires eliminating the intermediate coordinates;
images, inverse images, composition, and pointwise sums, products, and differences are derived
from projection closure in TauCeti.Geometry.RealAlgebraic.Semialgebraic.Image.
References #
S. Basu, R. Pollack, and M.-F. Roy, Algorithms in Real Algebraic Geometry, second edition, Chapter 2.
TauCeti.isSemialgebraicOn_of_forall_eq_iff is adapted from its complex-coordinate counterpart
TauCeti.isSemialgebraicOn_complexToRealPi_of_forall_eq_iff in
TauCeti.Geometry.RealAlgebraic.Semialgebraic.Complex.
A function f : (σ → R) → (τ → R) is semialgebraic on s if s is semialgebraic and the
graph of f over s, encoded in the coordinate space σ ⊕ τ → R, is semialgebraic.
Instances For
A function between coordinate spaces is semialgebraic if its graph over the whole input space is semialgebraic.
Instances For
Semialgebraicity on the whole domain is semialgebraicity as a map.
Characterization of a function being semialgebraic on a specified domain.
Characterization of a semialgebraic map by its graph.
A point of σ ⊕ τ → R lies on the encoded graph of f over s exactly when its input
coordinates lie in s and f sends them to its output coordinates.
Membership in a scalar graph encoded using Unit output coordinates is given by the
input-domain condition and equality of the scalar output coordinate.
The domain of a function semialgebraic on a set is semialgebraic.
The graph of a function semialgebraic on a set is semialgebraic.
Restricting a semialgebraic function to a semialgebraic subset preserves semialgebraicity.
A semialgebraic map is semialgebraic on every semialgebraic domain.
Semialgebraicity on a set depends only on the values of the function on that set.
Every function is semialgebraic on the empty set.
Semialgebraic functions on two semialgebraic pieces glue to a semialgebraic function.
A function is semialgebraic on a semialgebraic domain s when its graph over s is cut out
by finitely many polynomial equations in the input and output coordinates: for x ∈ s, f x = y
exactly when every p k vanishes at Sum.elim x y.
A map whose output coordinates are polynomials in the input coordinates is semialgebraic on every semialgebraic domain.
A polynomial map between coordinate spaces is semialgebraic.
A constant map into a finite-dimensional coordinate space is semialgebraic on every semialgebraic domain.
A constant map into a finite-dimensional coordinate space is semialgebraic.
The identity map on a finite-dimensional coordinate space is semialgebraic.
Pairing two semialgebraic functions on the same domain gives a semialgebraic function into the coordinate space indexed by the disjoint union of their output coordinates. No projection is needed: the graph of the pair is the intersection of the inverse images of the two graphs.
Pairing two semialgebraic maps gives a semialgebraic map.
A function with finitely many output coordinates is semialgebraic on a semialgebraic domain if each of its coordinates is. No projection is needed: the graph is the intersection of the inverse images of the graphs of the coordinates.
Precomposing a semialgebraic function with a polynomial map gives a semialgebraic function on the inverse image of its domain. No projection is needed: the new graph is the inverse image of the old one under a polynomial map.
Precomposing a semialgebraic map with a polynomial map gives a semialgebraic map.
The pointwise negation of a semialgebraic function is semialgebraic. No projection is needed: the new graph is the inverse image of the old one under negation of the output coordinates.
The pointwise negation of a semialgebraic map is semialgebraic.
Semialgebraicity of a function is invariant under a bijective change of input coordinates, such as a permutation, applied to both the function and its domain.
Semialgebraicity of a function is invariant under a bijective change of output coordinates, such as a permutation.