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

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

Leaves of a Formula ● We consider quantifierfree **for**mulas using the boolean connectives AND, OR, and NOT over any decidable theory . ● We assume **for**mulas are in NNF. ● A **for**mula that does not contain conjunction or disjunction is an atomic **for**mula. ● Each syntactic occurrence of an atomic **for**mula is a leaf. ● Example: :f(x) = 1 _ (:f(x) = 1 ^ x + y · 1) 3 distinct leaves

Redundant Leaves ● A leaf L is nonconstraining in **for**mula F if replacing L with true in F yields an equivalent **for**mula. ● L is nonrelaxing in F if replacing L with false is equivalent to F. ● L is redundant if it is nonconstraining or nonrelaxing. x = y | {z } L 0 ^ (f(x) = 1 | {z } L 1 Nonrelaxing because **for**mula is equivalent when it is replaced by false. _ (f(y) = 1 | {z } L 2 ^ x + y · 1)) | {z } L 3 Both nonconstraining and nonrelaxing.

- Page 1 and 2: Small Formulas for Large Programs:
- Page 3 and 4: Techniques to Limit Formula Size
- Page 5 and 6: Goal #1: Non-redundancy ● Given f
- Page 7 and 8: An Example enum op_type {ADD=0, SUB
- Page 9 and 10: An Example enum op_type {ADD=0, SUB
- Page 11: Now that this example has convinced
- 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?