Package edu.udel.cis.vsl.sarl.simplify.simplification
package edu.udel.cis.vsl.sarl.simplify.simplification
-
ClassDescriptionSimplifies a symbolic expression of the form
ARRAY_READ(a, i)
: if the array has the forma = ARRAY_WRITE(a', i', v)
ifi == i'
,ARRAY_READ(a, i) = v
ifi != i'
,ARRAY_READ(a, i) = ARRAY_READ(a', i)
otherwise, no simplification if the array has the forma = DENSE_ARRAY_WRITE(a', {v0, v1, ..., vn-1})
ifi == j, 0 <= j < n
,ARRAY_READ(a, i) = vj
. ifn <= i,
,ARRAY_READ(a, i) = ARRAY_READ(a', i)
otherwise, no simplification if the array has the forma = ARRAY(c, c, ..., c)
wherec
is a constant and0 <= i < length(a)
,ARRAY_READ(a, i) = c
Attempt to transform the expressione := (a0 + a1 + ..., an-1) % x
to its equivalencee' := (a0%x + a1%x + ..., an-1%x) % x
iffe'
has a smaller size thane
AND alla0, a1, ..., an-1
are non-negativeUsed to simplify a conditional symbolic expression p?a:b.Used to simplify a conditional symbolic expression p?a:b.Some things that should happen: all clauses involving inequalities/equations on the same monic should be combined and unified.A simplification that applies to expressions in which the operator isSymbolicExpression.SymbolicOperator.POWER
.ASimplification
takes aSymbolicExpression
and returns an equivalentSymbolicExpression
in a simplified form.An enumerated type corresponding 1-1 with the differentSimplification
classes.ASimplification
that proceeds by creating aSubContext
of the currentContext
to process aBooleanSymbolicExpression
.