Pitfalls to Avoid: Let us do another example that points out a real pitfall. Consider the formulas Ff = ∀x.∃y.(x − y) = 1 and Ft = ∀y.∃x.(x − y) = 1. Over
natural numbers, Ff is false (consider x = 0) while Ft is true. Following the method for DFA construction all the way through, however,
Figure 20.6 (which only represents the common matrix of these formulas) will reduce to the same machine with empty language as shown in Figure 20.5. In other words, our reasoning shows that Ff and Ft are false.
The restriction of equal bit-vector lengths: Let us think a bit more carefully about how the DFA construction method treats the matrix x−y = 1. This DFA is based on the following conventions:
Therefore, we have to read ∀y.∃x.(x − y) = 1 as
∀y.∃x.[(x − y) = 1 ∧ eqlen(x, y)],
where eqlen is a predicate that asserts that the bit-serial vectors modeling x and y have the same length. With this interpretation, both formulas emerge false. In other words, for any run of y’s of all 1s (equal in magnitude to 2n − 1 for various n), there is no run of x of the same length that exceeds this magnitude.