- Text
- Formula,
- Simplified,
- Else,
- Formulas,
- Constraint,
- Analysis,
- True,
- Program,
- Simplification,
- Example,
- Www.cs.wm.edu

Small Formulas for Large Programs: On-line Constraint ...

Goal #2: **On**-**line** ● Simplification should be on**line**: ● **Formulas** are continuously simplified and reused throughout the analysis. – Important because program analyses construct new **for**mulas from existing **for**mulas. – Simplification prevents incremental buildup of massive, redundant **for**mulas. ● In our system, **for**mulas are simplified at every satisfiability or validity query.

An Example enum op_type {ADD=0, SUBTRACT=1, MULTIPLY=2, DIV=3}; int per**for**m_op(op_type op, int x, int y) { int res; Per**for**ms op if(op == ADD) res = x+y; on x and y else if(op == SUBTRACT) res = x-y; else if(op == MULTIPLY) res = x*y; else if(op == DIV) { assert(y!=0); res = x/y; } else res = UNDEFINED; return res; } Suppose we are interested in the condition under which per**for**m_op successfully returns, i.e., does not abort.

- Page 1 and 2: Small Formulas for Large Programs:
- Page 3 and 4: Techniques to Limit Formula Size
- Page 5: Goal #1: Non-redundancy ● Given f
- Page 9 and 10: An Example enum op_type {ADD=0, SUB
- Page 11 and 12: Now that this example has convinced
- Page 13 and 14: Redundant Leaves ● A leaf L is no
- Page 15 and 16: Properties of Simplified Forms ●
- Page 17 and 18: Critical Constraint Idea: Compute a
- Page 19 and 20: Example ● Consider again the form
- Page 21 and 22: Example ● Consider again the form
- Page 23 and 24: Making it Practical 2n 2 ● Worst
- Page 25 and 26: Impact on Analysis Scalability Anal
- Page 27 and 28: It's not just Compass ● Measured
- Page 29: Any questions?