In this section we introduce an appropriately modified truth-tree method for gfol , which is shown to be sound and complete (it is not, alas, terminating). Our truth tree method will build upon standard rules such as can be found, e.g., in Smullyan [9 ] or Jeffrey and Burgess [5 ]. The main change is guided by the fact that there are now two ways for an existential statement ∃x φ (x ) to fail in a model: either the extension of φ in the model is empty, or such an extension is not a member of the second-order domain. In order to represent this latter possibility, we introduce a special notation in truth-trees that runs parallel to our semantic definition: we mark a (possibly complex) predicate’s extension with a + or a − according as the extension is or is not a member of the second-order domain. A further complication is given by the fact that, at the same time, we need to carry out an extensionality check : whenever we enter a notation \([{\kern -2.3pt}[ \varphi [{\kern -2.3pt}[_{x}^{+}\) on a branch (to indicate that — intuitively — the extension of φ relative to x is to be included in the second-order domain) we also need to check that no formula ψ such that \([{\kern -2.3pt}[ \psi [{\kern -2.3pt}[_{y}^{-}\) is also on the branch, is equivalent to φ (relative to the other formulas on the branch).

This completes the specification of the modified truth-tree rules. The rule for the negated existential reflects the two ways in which a counter-model can be obtained: either by keeping the extension of the existentially quantified formulas out of the second-order domain, or by making sure that such an extension is empty. Formulas for signed extensions are boxed in an extensionality check as a reminder that their branches have non-standard closure conditions.

We illustrate the method with a few examples, given in Figs.

3 ,

4 and

5 . All of these produce a finite tree, but it is easy to check that the tree for, e.g.,

\(\exists x \lnot \exists y x \doteq y\) , is infinite. Consider for instance the simple truth tree in Fig.

3 , to see how the method works. When searching for a counter-example to ∃

x (¬

P x ∨

Q x ), the tree branches, allowing for the possibility that the extension of ¬

P x ∨

Q x might not be in the second-order domain (a fact represented by

\([{\kern -2.3pt}[ \lnot Px \lor Qx [{\kern -2.3pt}[^{-}_{x}\) ), or that such an extension might be empty. The expression

\([{\kern -2.3pt}[ \lnot Px \lor Qx [{\kern -2.3pt}[^{-}_{x}\) is boxed to indicate that every branch through that node will close provided any of them does: this is because in this case we are trying to keep out of the second-order domain a subset that was already put in

D _{2} by an existentially quantified equi-extensional formula. (In this case the boxed expression has only one child, so the non-standard nature of the closure condition is not apparent.)

Fig. 3 \(\vDash \exists x(Px \to Qx) \to \exists x(\lnot Px \lor Qx)\) , Boolean steps omitted on the left-hand branch

Fig. 4 \(\nvDash \lnot \exists x \lnot Px \to \exists y Py\) , no extensionality checks are called

Fig. 5 \(\nvDash \lnot \exists x \lnot \exists y\, x \doteq y\)

Proof If the rule is one of the standard Boolean rules or an identity rule, then it is immediate that the theorem holds, just as in the classical case. So we consider the two rules for the existential quantifier.

Suppose the rule the rule is applied to ¬∃x φ (x ); by hypothesis, \(\mathfrak {M}, s \vDash \lnot \exists x\, \varphi (x)\) , so that \([{\kern -2.3pt}[ \varphi [{\kern -2.3pt}[^{\mathfrak {M}}_{x,s}\) is either empty or not a member of D _{2} (the two cases are not exclusive). If the latter, then \([{\kern -2.3pt}[ \varphi [{\kern -2.3pt}[^{\mathfrak {M}}_{x,s} \notin D_{2}\) , so that the left-hand branch with \([{\kern -2.3pt}[ \varphi [{\kern -2.3pt}[^{-}_{x}\) is satisfied in the model.

The closure condition for this branch require that if an extensionality check is performed, at least one of its children close, where each of the children starts a sub-tree whose root is labeled by ¬(φ (a ) ⇔ ψ (a )), with ψ a formula such that \([{\kern -2.3pt}[ \psi (y) [{\kern -2.3pt}[^{+}_{y}\) occurs in the branch above ¬∃x φ (x ) and is introduced by checking off ∃y ψ (y ). So consider any one of these formulas ¬(φ (a ) ⇔ ψ (a )) with a a new constant. If no expansion of \(\mathfrak {M}\) assigning a denotation to a satisfies ¬(φ (a ) ⇔ ψ (a )), then \([{\kern -2.3pt}[ \varphi [{\kern -2.3pt}[^{\mathfrak {M}}_{x,s} = [{\kern -2.3pt}[ \psi [{\kern -2.3pt}[^{\mathfrak {M}}_{y,s}\) , and since the \(\mathfrak {M}, s \vDash \exists y \psi (y)\) by hypothesis, it follows that \([{\kern -2.3pt}[ \psi [{\kern -2.3pt}[^{\mathfrak {M}}_{y,s}\) is in D _{2} , whence \([{\kern -2.3pt}[ \varphi [{\kern -2.3pt}[^{\mathfrak {M}}_{x,s}\) would have to be in D _{2} , which we have have ruled out in this case. So each of the formulas ¬(φ (a ) ⇔ ψ (a )) is satisfied in some expansion of \(\mathfrak {M}\) (not necessarily the same for each).

The other case is when \([{\kern -2.3pt}[ \varphi [{\kern -2.3pt}[^{\mathfrak {M}}_{x,s}\) is empty. Then for each constant a already introduced in the branch, \(\mathfrak {M} ,s \vDash \lnot \varphi (a)\) , as desired (regardless of whether \([{\kern -2.3pt}[ \varphi [{\kern -2.3pt}[^{\mathfrak {M}}_{x,s} = \varnothing \) is a member of D _{2} or not).

Now suppose the rule is applied to ∃x φ (x ); by hypothesis, \(\mathfrak {M}, s \vDash \exists x\, \varphi (x)\) and so by the satisfaction clause, \([{\kern -2.3pt}[ \varphi [{\kern -2.3pt}[^{\mathfrak {M}}_{x,s}\) is a non-empty member of D _{2} . So let d ∈ [[φ [[_{ x, s } and let \(\mathfrak {M}^{\prime }\) be the expansion of \(\mathfrak {M}\) assigning d as the denotation of a new constant b . Then \(\mathfrak {M}, s \vDash \varphi (b)\) , as desired. Moreover, if an extensionality check is called, then the closure conditions again require that at least one of the children close, and the argument is just like the one just given for \([{\kern -2.3pt}[ \varphi [{\kern -2.3pt}[^{-}_{x}\) to show that each of the formulas ¬(φ (a ) ⇔ ψ (a )) is satisfiable in a further expansion of \(\mathfrak {M}^{\prime }\) .

Theorem 37 and the above Corollary constitute a proof of the soundness of the truth-tree method. We now set out to prove the converse, completeness.

In order to see that the recursion bottoms out and \({\mathsf {rk}^{*}_{\textit {\textbf {b}}}}\) is well defined, we assign to each formula in φ ∈ b a pair 〈n , r k (φ )〉, where n is the distance (number of nodes) from the root of the tree to φ , and r k (φ ) is the ordinary rank of the formula (as measured, say, by the height of φ ’s syntactic tree or the number of symbols). Induction on ω ^{2} shows that \({\mathsf {rk}^{*}_{\textit {\textbf {b}}}}(\varphi ) \downarrow \) .

The definition of \({\mathsf {rk}^{*}_{\textit {\textbf {b}}}}(\exists x\, \varphi )\) is motivated by the fact that, because of the extensionality checks, ∃x φ not only makes a claim as to the extension of φ , but also about the extensions of all potentially equivalent formulas ψ when ∃y ψ or ¬∃y ψ also occurs on the same branch. (In the last clause of Definition 40 we increase the rank by 3 since when written in primitive notation ¬(φ ⇔ψ ) has extended rank equal to \(\max \{ {\mathsf {rk}^{*}_{\textit {\textbf {b}}}}(\varphi ), {\mathsf {rk}^{*}_{\textit {\textbf {b}}}}(\psi ) \} + 2\) .)