improve hash reasoning and performance
daejunpark opened this issue · comments
Daejun Park commented
-
evaluate symbolic terms with aggressive constant propagation, when concrete values are expected
e.g., if we havex == 1
in the path condition, evaluatex + 1
to 2, for memory access, resolving external call target, etc. -
for constant hash expressions, add equalities between the term and its evaluation
e.g., for sha3(1), addsha3(1) == <hash-image>
in the constraints -
lazily generate the no hash collision axioms only when hash terms appear in branching conditions
-
separate branching conditions from internally generated constraints