Effectively Propositional (EPR) fragment of the first-order logic is often defined as the set of prenex-quantified formulas of the form ∃X.∀Y.Φ(X,Y)
, where X
and Y
are (possibly empty) variable sequences. Does the order of quantification, i.e. ∃*∀*
, matter for the decidability of EPR? Do we lose decidability if the order of quantification is switched?
In particular, I am interested in capturing the semantics of the set-monadic bind operation in decidable logic. Given as set S1
of elements of type T1
(i.e., S1
has type T1 Set
), and a function f
of type T1 -> T2 Set
, set-monad's bind operation constructs a new set S2
of type T2 Set
by applying f
on each element of S1
, and unioning the resultant sets. This behavior can be captured in the following SMT-LIB code/formula:
(declare-sort T1)
(declare-sort T2)
;; We encode T1 Set as a boolean function on T1
(declare-fun S1 (T1) Bool)
(declare-fun S2 (T2) Bool)
;; Thus, f becomes a binary predicate on (T1,T2)
(declare-fun f (T1 T2) Bool)
(assert (forall ((x T1)(y T2)) (=> (and (S1 x) (f x y))
(S2 y))))
(assert (forall ((y T2)) (exists ((x T1)) (=> (S2 y)
(and (S1 x) (f x y)))) ))
Observe that the second assert statement has quantification of the form ∀*∃*
, which does not conform to the standard EPR definition. I however never faced time-out problems when working with such formulas on Z3, and I wonder if my formula above is indeed in some decidable fragment (while acknowledging that solvability in practice doesn't imply decidability in theory). Any observations are welcome.