The subclasses can specify both the coefficient of the variable or constant that is supposed to be replaced and the actual replacement.
The subclasses can specify both the coefficient of the variable or constant
that is supposed to be replaced and the actual replacement. I.e.,
for applyToVariable(v)==(n, t)
the described substitution is
n * v |-> t
The term order that is used for the resulting terms or formulas.
The term order that is used for the resulting terms or formulas. We require that a substitution is only applied to terms/formulas that are already sorted according to this order
Substitution that is to be used underneath num
quantifiers.
Substitution that is to be used underneath num
quantifiers.
Because we use De Bruijn indexes, passing quantifiers shifts the variables
in a substitution
Re-sort an object with a new TermOrder
.
Re-sort an object with a new TermOrder
. It is guaranteed that
the result isSortedBy(order)
Application to terms is not supported, because it would not be possible to do pseudo-division
Application to terms is not supported, because it would not be possible to do pseudo-division
Compare the order of this Substitution
with a given order.
Compare the order of this Substitution
with a given order. We
use equality here, because the behaviour would be quite confusing with
the relation isSubOrderOf
(remember that the substitution has
to cope with arbitrary terms/formulas that are sorted by the order)
Some kinds of substitutions can only be applied when pseudo-reduction is allowed to be performed.
Some kinds of substitutions can only be applied when pseudo-reduction
is allowed to be performed. Implementations of the following method are
allowed to multiply lc
with arbitrary positive integers to
achieve this.
(Since version ) see corresponding Javadoc for more information.
Trait for substitutions that can also replace constants or variables with coefficient, like
n * c
. This is done through pseudo-division if necessary (and possible)