Patrick Lühne
19e1e16e45
This adds support for detecting integer variables in formulas. The idea is to iteratively assume variables to be noninteger and to prove that this would lead to a false or erroneous result. If the proof is successful, the variable is integer as a consequence. The implementation consists of two parts. The first one is a visitor class that recursively searches for all declared variables in a formula and applies the second part, a custom check. Three such checks are implemented. The first one tests whether a predicate definition is falsified by making a variable noninteger, in which case it can be concluded that the variable in question is integer. The second one checks whether bound variables in a quantified formula turn the quantified part false, again to conclude that variables are integer. The third check consists in testing if making a variable noninteger turns the entire formula obtained from completion true. In this case, the statement can be dropped and the variable is concluded to be integer as well. |
||
---|---|---|
.. | ||
anthem |