AngouriMath

Navigation

← Back to list of members

RationalCanonicalization

 Property

Summary

A canonical form for rational functions over Q: two expressions
denoting the same quotient of polynomials become the identical tree, so equality on
that sublanguage is decided by comparing nodes rather than by searching.

Remarks

It answers only where it can. There is no canonical form for the whole
language — zero-equivalence is undecidable once pi, the exponential, the
trigonometric functions and abs are in play (Richardson, 1968) — so anything
that is not a rational function over Q in its free variables gets no answer
at all. That refusal is the point: a form whose value is that equal trees mean equal
expressions must not quietly hand back a normalisation that merely resembles one.
The expression is gathered into a single quotient — which is the part nothing else
in the library does, and without which 1/x + 1/y and (x + y)/(x*y) could never meet — then reduced by the multivariate greatest common divisor and
scaled so the denominator is monic in the lexicographic monomial order.
Cancelling carries its condition.x/x is not 1, so where a
factor of positive degree comes out the answer says the factor is nonzero, as the
rest of the library already does. Gathering over a common denominator widens
nothing by itself: a sum is defined exactly where its terms are.
Nothing runs this by default. See
Docs/Contributing/CanonicalForm.md §5 and
#934.
Canonicalization is the companion that handles the commutative
structure of expressions generally.

























Angouri © 2019-2023 · Project's repo · Site's repo · Octicons · Transparency · 4378 pages online