We began without analysing the internal structure of sentences at all. We observed that our semantic analysis was insufficient, as there were semantic relationships between sentences that were not reflected in our analysis; [john_sings_and_john_dances] :- john_dances was not a valid entailment according to our analysis; it was analyzed as the claim that one atomic proposition entailed another, different one. To get a better fit between theory and data, we observed that some sentences were syntactically related to others in that they were boolean (and, or and not) combinations thereof.
Although we represented tableaux as trees in the previous post, the
way we interacted with these trees makes clear that the really crucial
part of a tableau-tree is that it is a way to represent a set of
branches. In building these tableaux, we operated exclusively on
branches - we chose a particular branch, and expanded it. Expanding a
branch amounts to replacing it with new branches (sometimes just
one, sometimes two). The (unfinished) tableau below has three
branches.
Our formal model of entailment judgments (isValidProp) has a very ‘semantic’ flavor to it. It computes what we as trained linguists might think of as the ‘meaning’ of a term (a function from situations to truth values), and then tests that the term is true in every situation. The way it tests that a term is true in every situation is to systematically generate all the situations that differ from one another only in the truth values they assign to the atomic propositions occurring in the term, which it does by computing the powerset of the set of all of these atomic propositions.
When we consider the internal structure of sentences, in particular
those involving the sentential connectives and, or and not, we
see that the truth conditions of these complex sentences are
predictable from the atomic sentences they contain and the ways in
which these are combined with the connectives.