Applications of Quantifier Elimination
Quantifier elimination works by eliminating quantifiers and produces an equivalent formula.
Example: By eliminating quantifier over from the formula
we obtain formula
Example: By eliminating all quantifiers from the formula
we obtain the formula 'true'.
Example: By eliminating quantifier from the formula
we obtain formula
We review several uses of quantifier elimination.
Deciding Formula Validity and Satisfiability using Quantifier Elimination
Quantified formulas:
- eliminate quantifiers
- obtain ground formula
- evaluate ground formula
Satisfiability:
- add existential quantifiers
- check the resulting quantified formula
Validity:
- Check satisfiability of negation
Often we have better algorithms for quantifier-free fragments.
In such cases, we stop when we obtain formulas that has only existential quantifiers.
- for quantified formula the goal becomes to remove all quantifiers except for innermost existential quantifiers
The Purpose of Quantifiers
Suppose we want to describe a set of states of an integer program manipulating varibles . We describe it by a formula in theory admitting QE.
Then there is equivalent formula that contains no quantifiers, so it defines same set of states:
Are quantifiers useful when there is qe?
- to an extent, qe does show quantifiers are not necessary
- can be (more than) exponentially larger than
- sometimes quantifiers naturally come up when encoding the problem
Quantifier Elimination in Relation Composition
What class of relations is defined by integer programs without loops in the syntax of Simple Programming Language ?
Assignment:
Havoc:
Assume:
Non-deterministic choice:
Relation composition:
What does quantifier elimination tell us about representations of such formulas?
Quantifier Elimination for Optimization
We considered validity and satisfiability problems, which produce solutions or proofs.
Optimization problems try to find a maximum or minimum of some function, subject to given constraints.
problem 1 in this homework shows how to (in principle) use quantifier elimination for optimization.
Example reference:
Interpolation
Definition of Interpolant:
Given two formulas and , such that , an interpolant for is a formula such that:
1)
2)
3)
Paper on Interpolation in Verification
Here are two simple ways to construct an interpolant:
- We can quantify existentially all variables in that are not in .
where
- We can quantify universally all variables in that are not in .
where
Definition: denote the set of all interpolants for , that is,
Theorem: The following properties hold for , , defined above:
We have observed before that, if a theory has quantifier elimination, then it also has interpolants.
Therefore, all theories in the List of Theories Admitting QE have interpolants. (But interpolants may exist even if there is no quantifier elimination.)