As with other heuristic algorithms, we solve this problem over a
simpler domain.
The answer to our problem is just `true` or `false`,
then it is not necessary (or possible) to do any lifting.
In other words, there is too little information in this binary
result to be able to lift it from the simplified domain to the
original domain.
The absence of lifting makes this type of heuristic very appealing.
As we will see later, every time that we obtain the value
`false` it is correct, and when we obtain the value
`true`, it could be incorrect (and we should `FAIL`).
Instead of failing, and hence failing with all the results
that are identical, we will compute the probability of
failing for random parameters and produce a probabilistic
result.
Since this probability can be tuned, we can make it small
enough for any practical purposes.

From now on we will concentrate exclusively on testing whether
an expression is zero.
To test whether *a*=*b*, we test *a*-*b*=0.

- Modular mappings
- Rational expressions
- Field/congruence enlargement
- Signature of unknowns
- Rational numbers
- Real numbers
- Arbitrary powers
- Complex numbers
- Square roots of integers
- Algebraic numbers
- Exponentials,
*e*^{x} - Trigonometrics and complex arguments of exponentials
- A better method for exponentials and trigonometrics
- Computing signatures of logarithms and inverse trigonometrics

- Non-standard uses of signatures for general problems
- Open problems with signatures