Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Method of analytic tableaux
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Tool for proving a logical formula}} [[File:Partially built tableau.svg|thumb|200px|A graphical representation of a partially built propositional tableau]] In [[proof theory]], the '''semantic tableau'''<ref name=":1">{{Cite book |last=Howson |first=Colin |title=Logic with trees: an introduction to symbolic logic |date=1997 |publisher=Routledge |isbn=978-0-415-13342-5 |location=London; New York |pages=ix, x,24–29, 47}}</ref> ({{IPAc-en|t|æ|ˈ|b|l|oʊ|,_|ˈ|t|æ|b|l|oʊ}}; plural: '''tableaux'''), also called an '''analytic tableau''',<ref name=":0">{{Cite book |last=Restall |first=Greg |url= |title=Logic: an introduction |date=2006 |publisher=Routledge |isbn=978-0-415-40067-1 |series=Fundamentals of philosophy |location=London; New York |pages=5, 42, 55 |oclc=ocm63115330}}</ref> '''truth tree''',<ref name=":1" /> or simply '''tree''',<ref name=":0" /> is a [[decision procedure]] for [[sentential logic|sentential]] and related logics, and a [[proof procedure]] for formulae of [[first-order logic]].<ref name=":1" /> An analytic tableau is a tree structure computed for a logical formula, having at each node a subformula of the original formula to be proved or refuted. Computation constructs this tree and uses it to prove or refute the whole formula.{{sfn|Howson|2005|page=27}} The tableau method can also determine the [[satisfiability]] of finite sets of [[formula]]s of various logics. It is the most popular [[proof procedure]] for [[modal logic]]s.{{sfn|Girle|2014}} A method of truth trees contains a fixed set of rules for producing trees from a given logical formula, or set of logical formulas. Those trees will have more formulas at each branch, and in some cases, a branch can come to contain both a formula and its negation, which is to say, a contradiction. In that case, the branch is said to '''close'''.<ref name=":1" /> If every branch in a tree closes, the tree itself is said to close. In virtue of the rules for construction of tableaux, a closed tree is a proof that the original formula, or set of formulas, used to construct it was itself self-contradictory,<ref name=":1" /> and therefore false. Conversely, a tableau can also prove that a logical formula is [[Tautology (logic)|tautologous]]: if a formula is tautologous, its negation is a contradiction, so a tableau built from its negation will close.<ref name=":1" /> == History == In his ''Symbolic Logic Part II'', [[Charles Lutwidge Dodgson]] (also known by his literary pseudonym, Lewis Carroll) introduced the Method of Trees, the earliest modern use of a truth tree.{{sfn|The Encyclopedia of Philosophy|2023}} The method of semantic tableaux was invented by the Dutch logician [[Evert Willem Beth]] (Beth 1955){{sfn|Beth|1955}} and simplified, for classical logic, by [[Raymond Smullyan]] (Smullyan 1968, 1995).{{sfn|Smullyan|1995}} Smullyan's simplification, "one-sided tableaux", is described here. Smullyan's method has been generalized to arbitrary [[many-valued logic|many-valued]] propositional and first-order logics by [[Walter Carnielli]] (Carnielli 1987).{{sfn|Carnielli|1987}} Tableaux can be intuitively seen as [[Sequent calculus|sequent systems]] upside-down. This symmetrical relation between tableaux and sequent systems was formally established in (Carnielli 1991).{{sfn|Carnielli|1991}} ==Propositional logic== === Definitions === Assume an infinite set <math>PV</math> of [[propositional variable]]s and define the set <math>\Phi</math> of formulae by induction, represented by the following grammar: :<math>\Phi ::= PV \mid \neg \Phi \mid (\Phi \to \Phi) \mid (\Phi \lor \Phi) \mid (\Phi \land \Phi)</math>. That is, the basic connectives are: [[negation]] <math>\neg</math>, [[Material conditional|implication]] <math>\to</math>, [[Logical disjunction|disjunction]] <math>\lor</math>, and [[Logical conjunction|conjunction]] <math>\land</math>. The truth or falsehood of a formula is called its truth value. A formula, or set of formulas, is said to be '''satisfiable''' if there is a possible assignment of truth-values to the [[propositional variable]]s such that the entire formula, which combines the variables with connectives, is itself true as well.<ref name=":1" /> Such an assignment is said to ''satisfy'' the formula.<ref name=":0" /> === General method === A tableau checks whether a given set of formulae is satisfiable or not. It can be used to check either validity or entailment: a formula is valid if its negation is unsatisfiable, and formulae <math>A_1,\ldots,A_n</math> imply <math>B</math> if <math>\{A_1,\ldots,A_n,\neg B\}</math> is unsatisfiable. [[File:Prop-tableau-2.svg|thumb|100px|(a⋁¬b)⋀b generates a⋁¬b and b]] For any formulae <math>X</math>, <math>Y</math> the following facts hold: * If a [[logical conjunction|conjunction]]<math>X \land Y</math><br/>{{spaces|4}}is true, then <math>X</math>, <math>Y</math> are both true;<br/>{{spaces|4}}is false, then either <math>X</math> is false or <math>Y</math> is false. * If a [[logical disjunction|disjunction]] <math>X \lor Y</math><br/>{{spaces|4}}is true, then either <math>X</math> is true or <math>Y</math> is true;<br/>{{spaces|4}}is false, then <math>X</math>, <math>Y</math> are both false. * If a [[material conditional|conditional]] <math>X \to Y</math><br/>{{spaces|4}}is true, then either <math>X</math> is false or <math>Y</math> is true;<br/>{{spaces|4}}is false, then <math>X</math> is true and <math>Y</math> is false. * If a [[negation]] <math>\neg X</math><br/>{{spaces|4}}is true, then <math>X</math> is false;<br/>{{spaces|4}}is false, then <math>X</math> is true. The method of analytic tableaux is based on these facts. The main principle of propositional tableaux is to attempt to "break" complex formulae into smaller ones until complementary pairs of literals are produced or no further expansion is possible. [[File:Prop-tableau-1.svg|thumb|100px|Initial tableau for {(a⋁¬b)⋀b,¬a}]] The method works on a tree whose nodes are labeled with formulae. At each step, this tree is modified; in the propositional case, the only allowed changes are additions of a node as descendant of a leaf. The procedure starts by generating the tree made of a chain of all formulae in the set to prove unsatisfiability.<ref>A variant to this starting step is to begin with a single-node tree whose root is labeled by <math>\top</math>. In this second case, the procedure can always copy a formula in the set below a leaf. As a running example, the tableau for the set <math>\{(a \lor \neg b) \land b, \neg a\}</math> is shown.</ref> Then, the following procedure may be repeatedly applied nondeterministically: # Pick an open leaf node. (The leaf node in the initial chain is marked open). # Pick an applicable node on the branch above the selected node.<ref>An ''applicable'' node is a node whose outermost connective corresponds to an expansion rule, and which has not already been applied at any prior node on the selected leaf node's branch.</ref> # Apply the applicable node, which corresponds to expanding the tree below the selected leaf node based on some expansion rule (detailed below). # For every newly created node that is both a literal/negated literal, ''and'' whose complement appears in a prior node on the same branch, mark the branch as ''closed''. Mark all other newly created nodes as ''open''. [[File:Prop-tableau-3.svg|thumb|180px|a⋁¬b generates a and ¬b]] If a branch of the tableau contains a formula ... * <math>\boldsymbol{\mathsf{T}}(X \land Y)</math>, add to its leaf the chain of two nodes containing the formulae <math>\boldsymbol{\mathsf{T}}(X)</math> and <math>\boldsymbol{\mathsf{T}}(Y)</math>;<ref>Read <math>\boldsymbol{\mathsf{T}}( \dots )</math> as "...is true"</ref> * <math>\boldsymbol{\mathsf{F}}(X \land Y)</math>, create two sibling children to its leaf, containing the formulae <math>\boldsymbol{\mathsf{F}}(X)</math> and <math>\boldsymbol{\mathsf{F}}(Y)</math> respectively;<ref>Read <math>\boldsymbol{\mathsf{F}}( \dots )</math> as "...is false"</ref> * <math>\boldsymbol{\mathsf{T}}(X \lor Y)</math>, create two sibling children to its leaf, containing the formulae <math>\boldsymbol{\mathsf{T}}(X)</math> and <math>\boldsymbol{\mathsf{T}}(Y)</math> respectively; * <math>\boldsymbol{\mathsf{F}}(X \lor Y)</math>, add to its leaf the chain of two nodes containing the formulae <math>\boldsymbol{\mathsf{F}}(X)</math> and <math>\boldsymbol{\mathsf{F}}(Y)</math>; * <math>\boldsymbol{\mathsf{T}}(X \to Y)</math>, create two sibling children to its leaf, containing the formulae <math>\boldsymbol{\mathsf{F}}(X)</math> and <math>\boldsymbol{\mathsf{T}}(Y)</math> respectively; * <math>\boldsymbol{\mathsf{F}}(X \to Y)</math>, add to its leaf the chain of two nodes containing the formulae <math>\boldsymbol{\mathsf{T}}(X)</math> and <math>\boldsymbol{\mathsf{F}}(Y)</math>; * <math>\boldsymbol{\mathsf{T}}(\neg X)</math>, add to its leaf the node containing the formula <math>\boldsymbol{\mathsf{F}}(X)</math>; * <math>\boldsymbol{\mathsf{F}}(\neg X)</math>, add to its leaf the node containing the formula <math>\boldsymbol{\mathsf{T}}(X)</math>. The breakdown process terminates after a finite number of steps, because each application of a rule eliminates a connective, and there are only finitely many connectives in any formula. :{| style="border: 2px solid black; border-spacing: 30px; border-collapse: separate;" <!-- |- ! colspan="4" style="text-align: center;" | Summary --> |- | style="vertical-align: top;" | <math>\frac{\boldsymbol{\mathsf{T}}(X \land Y)}{\begin{array}{c}\boldsymbol{\mathsf{T}}(X)\\\boldsymbol{\mathsf{T}}(Y)\end{array}}</math> | style="vertical-align: top;" | <math>\frac{\boldsymbol{\mathsf{T}}(X \lor Y)}{\begin{array}{c}\boldsymbol{\mathsf{T}}(X) \mid \boldsymbol{\mathsf{T}}(Y)\end{array}}</math> | style="vertical-align: top;" | <math>\frac{\boldsymbol{\mathsf{T}}(X \to Y)}{\begin{array}{c}\boldsymbol{\mathsf{F}}(X) \mid \boldsymbol{\mathsf{T}}(Y)\end{array}}</math> | style="vertical-align: top;" | <math>\frac{\boldsymbol{\mathsf{T}}(\neg X)}{\begin{array}{c}\boldsymbol{\mathsf{F}}(X)\end{array}}</math> |- | style="vertical-align: top;" | <math>\frac{\boldsymbol{\mathsf{F}}(X \land Y)}{\begin{array}{c}\boldsymbol{\mathsf{F}}(X) \mid \boldsymbol{\mathsf{F}}(Y)\end{array}}</math> | style="vertical-align: top;" | <math>\frac{\boldsymbol{\mathsf{F}}(X \lor Y)}{\begin{array}{c}\boldsymbol{\mathsf{F}}(X)\\\boldsymbol{\mathsf{F}}(Y)\end{array}}</math> | style="vertical-align: top;" | <math>\frac{\boldsymbol{\mathsf{F}}(X \to Y)}{\begin{array}{c}\boldsymbol{\mathsf{T}}(X)\\\boldsymbol{\mathsf{F}}(Y)\end{array}}</math> | style="vertical-align: top;" | <math>\frac{\boldsymbol{\mathsf{F}}(\neg X)}{\begin{array}{c}\boldsymbol{\mathsf{T}}(X)\end{array}}</math> |} '''Note''': In systems based on the grammar :<math>\Phi ::= \bot \mid PV \mid (\Phi \to \Phi) \mid (\Phi \lor \Phi) \mid (\Phi \land \Phi)</math>, that do not treat [[negation]] as primitive but define it in terms of implication and [[False (logic)#False, negation and contradiction|falsity]] (<math>\neg \Phi \, \overset{\text{def}}{=} \, \Phi \to \bot</math>),<br/>the tableau rules for <math>\neg</math> are replaced by :{| <!-- style="border: 2px solid black; border-spacing: 10px; border-collapse: separate;" --> |- | style="vertical-align: top;" | <math>\boldsymbol{\mathsf{T}}(\bot)</math> | : | Close the branch (contradiction), |- | style="vertical-align: top;" | <math>\boldsymbol{\mathsf{F}}(\bot)</math> | : | Do nothing (since it just asserts no contradiction). |} The principle of tableau is that formulae in nodes of the same branch are considered in conjunction while the different branches are considered to be disjuncted. As a result, a tableau is a tree-like representation of a formula that is a disjunction of conjunctions. This formula is equivalent to the set to prove unsatisfiability. The procedure modifies the tableau in such a way that the formula represented by the resulting tableau is equivalent to the original one. One of these conjunctions may contain a pair of complementary literals, in which case that conjunction is proved to be unsatisfiable. If all conjunctions are proved unsatisfiable, the original set of formulae is unsatisfiable. ===Closure=== Every tableau can be considered as a graphical representation of a formula, which is equivalent to the set the tableau is built from. This formula is as follows: each branch of the tableau represents the conjunction of its formulae; the tableau represents the disjunction of its branches. The expansion rules transforms a tableau into one having an equivalent represented formula. Since the tableau is initialized as a single branch containing the formulae of the input set, all subsequent tableaux obtained from it represent formulae which are equivalent to that set (in the variant where the initial tableau is the single node labeled true, the formulae represented by tableaux are consequences of the original set.) [[File:Non-closed propositional tableau.svg|thumb|220px|A tableau for the satisfiable set {a⋀c,¬a⋁b}: all rules have been applied to every formula on every branch, but the tableau is not closed (only the left branch is closed), as expected for satisfiable sets]] The method of tableaux works by starting with the initial set of formulae and then adding to the tableau simpler and simpler formulae until contradiction is shown in the simple form of opposite literals. Since the formula represented by a tableau is the disjunction of the formulae represented by its branches, contradiction is obtained when every branch contains a pair of opposite literals. Once a branch contains a literal and its negation, its corresponding formula is unsatisfiable. As a result, this branch can be now "closed", as there is no need to further expand it. If all branches of a tableau are closed, the formula represented by the tableau is unsatisfiable; therefore, the original set is unsatisfiable as well. Obtaining a tableau where all branches are closed is a way for proving the unsatisfiability of the original set. In the propositional case, one can also prove that satisfiability is proved by the impossibility of finding a closed tableau, provided that every expansion rule has been applied everywhere it could be applied. In particular, if a tableau contains some open (non-closed) branches and every formula that is not a literal has been used by a rule to generate a new node on every branch the formula is in, the set is satisfiable. This rule takes into account that a formula may occur in more than one branch (this is the case if there is at least a branching point "below" the node). In this case, the rule for expanding the formula has to be applied so that its conclusion(s) are appended to all of these branches that are still open, before one can conclude that the tableau cannot be further expanded and that the formula is therefore satisfiable. === Propositional tableau with unification === The above rules for propositional tableau can be simplified by using uniform notation. In uniform notation, each formula is either of type <math>\alpha </math> (alpha) or of type <math>\beta </math> (beta). Each formula of type alpha is assigned the two components <math>\alpha_1, \alpha_2</math>, and each formula of type beta is assigned the two components <math>\beta_1, \beta_2</math>. Formulae of type alpha can be thought of as being conjunctive, as both <math>\alpha_1</math> and <math>\alpha_2</math> are implied by <math>\alpha</math> being true. Formulae of type beta can be thought of as being disjunctive, as either <math>\beta_1</math> or <math>\beta_2</math> is implied by <math>\beta</math> being true. The below tables shows how to determine the type, and the components, of any given [[propositional formula]].{{sfn|Smullyan|1995|pages=21-22}} {| | valign="top"| <math>\begin{array}{c|c|c} \alpha & \alpha_1 & \alpha_2 \\ \hline \boldsymbol{\mathsf{T}}(X \land Y) & \boldsymbol{\mathsf{T}} ( X ) & \boldsymbol{\mathsf{T}} ( Y )\\ \boldsymbol{\mathsf{F}}(X \lor Y) & \boldsymbol{\mathsf{F}} ( X ) & \boldsymbol{\mathsf{F}} ( Y )\\ \boldsymbol{\mathsf{F}}(X \to Y) & \boldsymbol{\mathsf{T}} ( X ) & \boldsymbol{\mathsf{F}} ( Y )\\ \boldsymbol{\mathsf{T}}(\neg X) & \boldsymbol{\mathsf{F}} ( X ) & \boldsymbol{\mathsf{F}} ( X )\\ \boldsymbol{\mathsf{F}}(\neg X) & \boldsymbol{\mathsf{T}} ( X ) & \boldsymbol{\mathsf{T}} ( X )\\ \end{array}</math> || {{Spaces|3}} || valign="top" | <math>\begin{array}{c|c|c} \beta & \beta_1 & \beta_2 \\ \hline \boldsymbol{\mathsf{F}}(X \land Y) & \boldsymbol{\mathsf{F}} ( X ) & \boldsymbol{\mathsf{F}} ( Y )\\ \boldsymbol{\mathsf{T}}(X \lor Y) & \boldsymbol{\mathsf{T}} ( X ) & \boldsymbol{\mathsf{T}} ( Y )\\ \boldsymbol{\mathsf{T}}(X \to Y) & \boldsymbol{\mathsf{F}} ( X ) & \boldsymbol{\mathsf{T}} ( Y )\\ \end{array}</math> |} <!-- {| | valign="top" | <math>\begin{array}{c|c|c} \alpha & \alpha_1 & \alpha_2 \\ \hline X \land Y & X & Y \\ \neg(X \lor Y) & \neg X & \neg Y \\ \neg(X \to Y) & X & \neg Y \\ \neg\neg X & X & X \\ \end{array}</math> || {{Spaces|3}} || valign="top" | <math>\begin{array}{c|c|c} \beta & \beta_1 & \beta_2 \\ \hline \neg(X \land Y) & \neg X & \neg Y \\ X \lor Y & X & Y \\ X \to Y & \neg X & Y \\ \end{array}</math> |} --> In each table, the left-most column shows all the possible structures for the formulae of type alpha or beta, and the right-most columns show their respective components. When constructing a propositional tableau using the above notation, whenever one encounters a formula of type alpha, its two components <math>\alpha_1,\alpha_2</math> are added to the current branch that is being expanded. Whenever one encounters a formula of type beta on some branch <math>\theta </math>, one can split <math>\theta </math> into two branches, one with the set {<math>\theta </math>, <math>\beta_1</math>} of formulae, and the other with the set {<math>\theta </math>, <math>\beta_2</math>} of formulae.{{sfn|Smullyan|2014|pages=88–89}} ===Set-labeled tableau=== A variant of tableau is to label nodes with sets of formulae rather than single formulae.{{sfn|Jarmużek|2020|pages=30-36}} In this case, the initial tableau is a single node labeled with the set to be proved satisfiable. The formulae in a set are therefore considered to be in conjunction. The rules of expansion of the tableau can now work on the leaves of the tableau, ignoring all internal nodes. For conjunction, the rule is based on the equivalence of a set containing a conjunction <math>A \land B</math> with the set containing both <math>A</math> and <math>B</math> in place of it. In particular, if a leaf is labeled with <math>X \cup \{A \land B\}</math>, a node can be appended to it with label <math>X \cup \{A, B\}</math>: :<math>(\land) \frac{X \cup \{A \land B\}}{X \cup \{A, B\}}</math> For disjunction, a set <math>X \cup \{A \lor B\}</math> is equivalent to the disjunction of the two sets <math>X \cup \{A\}</math> and <math>X \cup \{B\}</math>. As a result, if the first set labels a leaf, two children can be appended to it, labeled with the latter two formulae. :<math>(\lor) \frac{X \cup \{A \lor B\}}{X \cup \{A\}|X \cup \{B\}}</math> Finally, if a set contains both a literal and its negation, this branch can be closed: :<math>(id) \frac{X \cup \{p, \neg p\}}{closed}</math> A tableau for a given finite set ''X'' is a finite (upside down) tree with root ''X'' in which all child nodes are obtained by applying the tableau rules to their parents. A branch in such a tableau is closed if its leaf node contains "closed". A tableau is closed if all its branches are closed. A tableau is open if at least one branch is not closed. Below are two closed tableaux for the set :<math>X = \{r \land \neg r,\; p \land ((\neg p \lor q) \land \neg q)\}</math> Each rule application is marked at the right hand side. Both achieve the same effect; the first closes faster. The only difference is the order in which the reduction is performed. :<math> \dfrac{\quad \dfrac{ \quad r \land \neg r,\; p \land ((\neg p \lor q) \land \neg q) \quad }{ r,\; \neg r,\; p \land ((\neg p \lor q) \land \neg q) }(\land) }{ closed } (\land) </math> and second, longer one, with the rules applied in a different order: :<math> \dfrac{ \quad \dfrac { \quad \dfrac { \quad r \land \neg r,\; p \land ((\neg p \lor q) \land \neg q) \quad }{ r \land \neg r,\; p,\; ((\neg p \lor q) \land \neg q) } (\land) \quad }{ r \land \neg r,\; p,\; (\neg p \lor q),\; \neg q } (\land) }{ \quad \dfrac { \quad r \land \neg r,\; p,\; \neg p,\; \neg q \quad }{ closed } (id) \quad\quad \dfrac { \quad r \land \neg r,\; p,\; q,\; \neg q \quad }{ closed } (id) } (\lor) </math> The first tableau closes after only one rule application while the second one misses the mark and takes much longer to close. Clearly, one would prefer to always find the shortest closed tableau but it can be shown that one single algorithm that finds the shortest closed tableau for all{{clarify|pre-text=all?|date=April 2025}} input sets of formulae cannot exist.{{disputed-inline|for=For a given '''finite''' set <math>X</math> of propositional formulae one can generate all {{mdash}} finitely many {{mdash}} possible tableaux and pick one with smallest height or width.|date=April 2025}} The three rules <math>(\land)</math>, <math>(\lor)</math> and <math>(id)</math> given above are then enough to decide whether a given set <math>X'</math> of formulae in negated normal form are jointly satisfiable: <blockquote> Just apply all possible rules in all possible orders until we find a closed tableau for <math>X'</math> or until we exhaust all possibilities and conclude that every tableau for <math>X'</math> is open. </blockquote> In the first case, <math>X'</math> is jointly unsatisfiable and in the second the case the leaf node of the open branch gives an assignment to the atomic formulae and negated atomic formulae which makes <math>X'</math> jointly satisfiable. Classical logic actually has the rather nice property that we need to investigate only (any) one tableau completely: if it closes then <math>X'</math> is unsatisfiable and if it is open then <math>X'</math> is satisfiable. But this property is not generally enjoyed by other logics. These rules suffice for all of classical logic by taking an initial set of formulae ''X'' and replacing each member ''C'' by its logically equivalent negated normal form ''C' '' giving a set of formulae ''X' ''. We know that ''X'' is satisfiable if and only if ''X' '' is satisfiable, so it suffices to search for a closed tableau for ''X' '' using the procedure outlined above. By setting <math>X = \{\neg A\}</math> one can test whether the formula ''A'' is a [[tautology (logic)|tautology]] of classical logic: <blockquote> If the tableau for <math>\{\neg A\}</math> closes then <math>\neg A</math> is unsatisfiable and so ''A'' is a tautology since no assignment of [[truth value]]s will ever make ''A'' false. Otherwise any open leaf of any open branch of any open tableau for <math>\{\neg A\}</math> gives an assignment that falsifies ''A''. </blockquote> ==First-order logic tableau== Tableaux are extended to [[first-order predicate logic]] by two rules for dealing with universal and existential quantifiers, respectively. Two different sets of rules can be used; both employ a form of [[Skolem normal form|Skolemization]] for handling existential quantifiers, but differ on the handling of universal quantifiers. The set of formulae to check for validity is here supposed to contain no free variables; this is not a limitation as free variables are implicitly universally quantified, so universal quantifiers over these variables can be added, resulting in a formula with no free variables. ===First-order tableau without unification=== A first-order formula <math>\forall x . \gamma(x)</math> implies all formulae <math>\gamma(t)</math> where <math>t</math> is a [[ground term]]. The following inference rule is therefore correct: :<math>(\forall) \frac{\forall x . \gamma(x)}{\gamma(t)}</math> where <math>t</math> is an arbitrary ground term Contrarily to the rules for the propositional connectives, multiple applications of this rule to the same formula may be necessary. As an example, the set <math>\{\neg P(a) \lor \neg P(b), \forall x . P(x)\}</math> can only be proved unsatisfiable if both <math>P(a)</math> and <math>P(b)</math> are generated from <math>\forall x . P(x)</math>. Existential quantifiers are dealt with by means of Skolemization. In particular, a formula with a leading existential quantifier like <math>\exists x . \delta(x)</math> generates its Skolemization <math>\delta(c)</math>, where <math>c</math> is a new constant symbol. :<math>(\exists) \frac{\exists x . \delta(x)}{\delta(c)}</math> where <math>c</math> is a new constant symbol [[File:First-order tableau.svg|thumb|350px|A tableau without unification for {∀x.P(x), ∃x.(¬P(x)⋁¬P(f(x)))}. For clarity, formulae are numbered on the left and the formula and rule used at each step is on the right.]] The Skolem term <math>c</math> is a constant (a function of [[arity]] 0) because the quantification over <math>x</math> does not occur within the scope of any universal quantifier. If the original formula contained some universal quantifiers such that the quantification over <math>x</math> was within their scope, these quantifiers have evidently been removed by the application of the rule for universal quantifiers. The rule for existential quantifiers introduces new constant symbols. These symbols can be used by the rule for universal quantifiers, so that <math>\forall y . \gamma(y)</math> can generate <math>\gamma(c)</math> even if <math>c</math> was not in the original formula but is a Skolem constant created by the rule for existential quantifiers. The above two rules for universal and existential quantifiers are correct, and so are the propositional rules: if a set of formulae generates a closed tableau, this set is unsatisfiable. Completeness can also be proved: if a set of formulae is unsatisfiable, there exists a closed tableau built from it by these rules. However, actually finding such a closed tableau requires a suitable policy of application of rules. Otherwise, an unsatisfiable set can generate an infinite-growing tableau. As an example, the set <math>\{\neg P(f(c)), \forall x . P(x)\}</math> is unsatisfiable, but a closed tableau is never obtained if one unwisely keeps applying the rule for universal quantifiers to <math>\forall x . P(x)</math>, generating for example <math>P(c), P(f(c)), P(f(f(c))), \ldots</math>. A closed tableau can always be found by ruling out this and similar "unfair" policies of application of tableau rules. The rule for universal quantifiers <math>(\forall)</math> is the only non-deterministic rule, as it does not specify which term to instantiate with. Moreover, while the other rules need to be applied only once for each formula and each path the formula is in, this one may require multiple applications. Application of this rule can however be restricted by delaying the application of the rule until no other rule is applicable and by restricting the application of the rule to ground terms that already appear in the path of the tableau. The variant of tableaux with unification shown below aims at solving the problem of non-determinism. ===First-order tableau with unification=== The main problem of tableau without unification is how to choose a ground term <math>t</math> for the universal quantifier rule. Indeed, every possible ground term can be used, but clearly most of them might be useless for closing the tableau. A solution to this problem is to "delay" the choice of the term to the time when the consequent of the rule allows closing at least a branch of the tableau. This can be done by using a variable instead of a term, so that <math>\forall x . \gamma(x)</math> generates <math>\gamma(x')</math>, and then allowing substitutions to later replace <math>x'</math> with a term. The rule for universal quantifiers becomes: :<math>(\forall) \frac{\forall x . \gamma(x)}{\gamma(x')}</math> where <math>x'</math> is a variable not occurring everywhere else in the tableau While the initial set of formulae is supposed not to contain free variables, a formula of the tableau may contain the free variables generated by this rule. These free variables are implicitly considered universally quantified. This rule employs a variable instead of a ground term. What is gained by this change is that these variables can be then given a value when a branch of the tableau can be closed, solving the problem of generating terms that might be useless. :{| |- | <math>(\sigma)</math> | if <math>\sigma</math> is the most general unifier of two literals <math>A</math> and <math>B</math>, where <math>A</math> and the negation of <math>B</math> occur in the same branch of the tableau, <math>\sigma</math> can be applied at the same time to all formulae of the tableau |} As an example, <math>\{\neg P(a), \forall x . P(x)\}</math> can be proved unsatisfiable by first generating <math>P(x_1)</math>; the negation of this literal is unifiable with <math>\neg P(a)</math>, the most general unifier being the substitution that replaces <math>x_1</math> with <math>a</math>; applying this substitution results in replacing <math>P(x_1)</math> with <math>P(a)</math>, which closes the tableau. This rule closes at least a branch of the tableau—the one containing the considered pair of literals. However, the substitution has to be applied to the whole tableau, not only on these two literals. This is expressed by saying that the free variables of the tableau are ''rigid'': if an occurrence of a variable is replaced by something else, all other occurrences of the same variable must be replaced in the same way. Formally, the free variables are (implicitly) universally quantified and all formulae of the tableau are within the scope of these quantifiers. Existential quantifiers are dealt with by Skolemization. Contrary to the tableau without unification, Skolem terms may not be simple constants. Indeed, formulae in a tableau with unification may contain free variables, which are implicitly considered universally quantified. As a result, a formula like <math>\exists x . \delta(x)</math> may be within the scope of universal quantifiers; if this is the case, the [[Skolem term]] is not a simple constant but a term made of a new function symbol and the free variables of the formula. :<math>(\exists) \frac{\exists x . \delta(x)}{\delta(f(x_1,\ldots,x_n))}</math> where <math>f</math> is a new function symbol and <math>x_1,\ldots,x_n</math> the free variables of <math>\delta</math> [[File:First-order tableau with unification.svg|thumb|400px|A first-order tableau with unification for {∀x.P(x), ∃x.(¬P(x)⋁¬P(f(x)))}. For clarity, formulae are numbered on the left and the formula and rule used at each step is on the right.]] This rule incorporates a simplification over a rule where <math>x_1,\ldots,x_n</math> are the free variables of the branch, not of <math>\delta</math> alone. This rule can be further simplified by the reuse of a function symbol if it has already been used in a formula that is identical to <math>\delta</math> up to variable renaming. The formula represented by a tableau is obtained in a way that is similar to the propositional case, with the additional assumption that free variables are considered universally quantified. As for the propositional case, formulae in each branch are conjoined and the resulting formulae are disjoined. In addition, all free variables of the resulting formula are universally quantified. All these quantifiers have the whole formula in their scope. In other words, if <math>F</math> is the formula obtained by disjoining the conjunction of the formulae in each branch, and <math>x_1,\ldots,x_n</math> are the free variables in it, then <math>\forall x_1,\ldots,x_n . F</math> is the formula represented by the tableau. The following considerations apply: * The assumption that free variables are universally quantified is what makes the application of a most general unifier a sound rule: since <math>\gamma(x')</math> means that <math>\gamma</math> is true for every possible value of <math>x'</math>, then <math>\gamma(t)</math> is true for the term <math>t</math> that the most general unifier replaces <math>x</math> with. * Free variables in a tableau are rigid: all occurrences of the same variable have to be replaced all with the same term. Every variable can be considered a symbol representing a term that is yet to be decided. This is a consequence of free variables being assumed universally quantified over the whole formula represented by the tableau: if the same variable occurs free in two different nodes, both occurrences are in the scope of the same quantifier. As an example, if the formulae in two nodes are <math>A(x)</math> and <math>B(x)</math>, where <math>x</math> is free in both, the formula represented by the tableau is something in the form <math>\forall x . (...A(x)...B(x)...)</math>. This formula implies that <math>(...A(x)...B(x)...)</math> is true for any value of <math>x</math>, but does not in general imply <math>(...A(t)...A(t')...)</math> for two different terms <math>t</math> and <math>t'</math>, as these two terms may in general take different values. This means that <math>x</math> cannot be replaced by two different terms in <math>A(x)</math> and <math>B(x)</math>. * Free variables in a formula to check for validity are also considered universally quantified. However, these variables cannot be left free when building a tableau, because tableau rules works on the converse of the formula but still treats free variables as universally quantified. For example, <math>P(x) \to P(c)</math> is not valid (it is not true in the model where <math>D=\{1,2\}, P(1)=\bot, P(2)=\top, c=1</math>, and the interpretation where <math>x=2</math>). Consequently, <math>\{P(x),\neg P(c)\}</math> is satisfiable (it is satisfied by the same model and interpretation). However, a closed tableau could be generated with <math>P(x)</math> and <math>\neg P(c)</math>, and substituting <math>x</math> with <math>c</math> would generate a closure. A correct procedure is to first make universal quantifiers explicit, thus generating <math>\forall x . (P(x) \to P(c))</math>. The following two variants are also correct. * Applying to the whole tableau a substitution to the free variables of the tableau is a correct rule, provided that this substitution is free for the formula representing the tableau. In other worlds, applying such a substitution leads to a tableau whose formula is still a consequence of the input set. Using most general unifiers automatically ensures that the condition of freeness for the tableau is met. * While in general every variable has to be replaced with the same term in the whole tableau, there are some special cases in which this is not necessary. Tableaux with unification can be proved complete: if a set of formulae is unsatisfiable, it has a tableau-with-unification proof. However, actually finding such a proof may be a difficult problem. Contrarily to the case without unification, applying a substitution can modify the existing part of a tableau; while applying a substitution closes at least a branch, it may make other branches impossible to close (even if the set is unsatisfiable). A solution to this problem is ''delayed instantiation'': no substitution is applied until one that closes all branches at the same time is found. With this variant, a proof for an unsatisfiable set can always be found by a suitable policy of application of the other rules. This method however requires the whole tableau to be kept in memory: the general method closes branches, which can be then discarded, while this variant does not close any branch until the end. The problem that some tableaux that can be generated are impossible to close even if the set is unsatisfiable is common to other sets of tableau expansion rules: even if some specific sequences of application of these rules allow constructing a closed tableau (if the set is unsatisfiable), some other sequences lead to tableaux that cannot be closed. General solutions for these cases are outlined in the "Searching for a tableau" section. ==Tableau calculi and their properties== A tableau calculus is a set of rules that allows building and modification of a tableau. Propositional tableau rules, tableau rules without unification, and tableau rules with unification, are all tableau calculi. Some important properties a tableau calculus may or may not possess are completeness, destructiveness, and proof confluence. A tableau calculus is called complete if it allows building a tableau proof for every given unsatisfiable set of formulae. The tableau calculi mentioned above can be proved complete. A remarkable difference between tableau with unification and the other two calculi is that the latter two calculi only modify a tableau by adding new nodes to it, while the former one allows substitutions to modify the existing part of the tableau. More generally, tableau calculi are classed as ''destructive'' or ''non-destructive'' depending on whether they only add new nodes to tableau or not. Tableau with unification is therefore destructive, while propositional tableau and tableau without unification are non-destructive. Proof confluence is the property of a tableau calculus being able to obtain a proof for an arbitrary unsatisfiable set from an arbitrary tableau, assuming that this tableau has itself been obtained by applying the rules of the calculus. In other words, in a proof confluent tableau calculus, from an unsatisfiable set one can apply whatever set of rules and still obtain a tableau from which a closed one can be obtained by applying some other rules. ==Proof procedures== A tableau calculus is simply a set of rules that prescribes how a tableau can be modified. A proof procedure is a method for actually finding a proof (if one exists). In other words, a tableau calculus is a set of rules, while a proof procedure is a policy of application of these rules. Even if a calculus is complete, not every possible choice of application of rules leads to a proof of an unsatisfiable set. For example, <math>\{P(f(c)), R(c), \neg P(f(c)) \lor \neg R(c), \forall x . Q(x)\}</math> is unsatisfiable, but both tableaux with unification and tableaux without unification allow the rule for the universal quantifiers to be applied repeatedly to the last formula, while simply applying the rule for disjunction to the third one would directly lead to closure. For proof procedures, a definition of completeness has been given: a proof procedure is strongly complete if it allows finding a closed tableau for any given unsatisfiable set of formulae. Proof confluence of the underlying calculus is relevant to completeness: proof confluence is the guarantee that a closed tableau can be always generated from an arbitrary partially constructed tableau (if the set is unsatisfiable). Without proof confluence, the application of a 'wrong' rule may result in the impossibility of making the tableau complete by applying other rules. Propositional tableaux and tableaux without unification have strongly complete proof procedures. In particular, a complete proof procedure is that of applying the rules in a ''fair'' way. This is because the only way such calculi cannot generate a closed tableau from an unsatisfiable set is by not applying some applicable rules. For propositional tableaux, fairness amounts to expanding every formula in every branch. More precisely, for every formula and every branch the formula is in, the rule having the formula as a precondition has been used to expand the branch. A fair proof procedure for propositional tableaux is strongly complete. For first-order tableaux without unification, the condition of fairness is similar, with the exception that the rule for universal quantifiers might require more than one application. Fairness amounts to expanding every universal quantifier infinitely often. In other words, a fair policy of application of rules cannot keep applying other rules without expanding every universal quantifier in every branch that is still open once in a while. ==Searching for a closed tableau== If a tableau calculus is complete, every unsatisfiable set of formulae has an associated closed tableau. While this tableau can always be obtained by applying some of the rules of the calculus, the problem of which rules to apply for a given formula still remains. As a result, completeness does not automatically imply the existence of a feasible policy of application of rules that always leads to a closed tableau for every given unsatisfiable set of formulae. While a fair proof procedure is complete for ground tableau and tableau without unification, this is not the case for tableau with unification. [[File:Search tree of tableau space.svg|thumb|700px|A search tree in the space of tableaux for {∀x.P(x), ¬P(c)⋁¬Q(c), ∃y.Q(c)}. For simplicity, the formulae of the set have been omitted from all tableau in the figure and a rectangle used in their place. A closed tableau is in the bold box; the other branches could be still expanded.]] A general solution for this problem is that of searching the space of tableaux until a closed one is found (if any exists, that is, the set is unsatisfiable). In this approach, one starts with an empty tableau and then recursively applies every possible applicable rule. This procedure visits a (implicit) tree whose nodes are labeled with tableaux, and such that the tableau in a node is obtained from the tableau in its parent by applying one of the valid rules. Since each branch can be infinite, this tree has to be visited breadth-first rather than depth-first. This requires a large amount of space, as the breadth of the tree can grow exponentially. A method that may visit some nodes more than once but works in [[polynomial space]] is to visit in a depth-first manner with [[iterative deepening]]: one first visits the tree depth first up to a certain depth, then increases the depth and perform the visit again. This particular procedure uses the depth (which is also the number of tableau rules that have been applied) for deciding when to stop at each step. Various other parameters (such as the size of the tableau labeling a node) have been used instead. ===Reducing search=== The size of the search tree depends on the number of (children) tableaux that can be generated from a given (parent) one. Reducing the number of such tableaux therefore reduces the required search. A way for reducing this number is to disallow the generation of some tableaux based on their internal structure. An example is the condition of regularity: if a branch contains a literal, using an expansion rule that generates the same literal is useless because the branch containing two copies of the literals would have the same set of formulae of the original one. This expansion can be disallowed because if a closed tableau exists, it can be found without it. This restriction is structural because it can be checked by looking at the structure of the tableau to expand only. Different methods for reducing search disallow the generation of some tableaux on the ground that a closed tableau can still be found by expanding the other ones. These restrictions are called global. As an example of a global restriction, one may employ a rule that specifies which of the open branches is to be expanded. As a result, if a tableau has for example two non-closed branches, the rule specifies which one is to be expanded, disallowing the expansion of the second one. This restriction reduces the search space because one possible choice is now forbidden; completeness is however not harmed, as the second branch will still be expanded if the first one is eventually closed. As an example, a tableau with root <math>\neg a \land \neg b</math>, child <math>a \lor b</math>, and two leaves <math>a</math> and <math>b</math> can be closed in two ways: applying <math>(\land)</math> first to <math>a</math> and then to <math>b</math>, or vice versa. There is clearly no need to follow both possibilities; one may consider only the case in which <math>(\land)</math> is first applied to <math>a</math> and disregard the case in which it is first applied to <math>b</math>. This is a global restriction because what allows neglecting this second expansion is the presence of the other tableau, where expansion is applied to <math>a</math> first and <math>b</math> afterwards. ==Clause tableaux== When applied to sets of [[Clause (logic)|clauses]] (rather than of arbitrary formulae), tableaux methods allow for a number of efficiency improvements. A first-order clause is a formula <math>\forall x_1,\ldots,x_n L_1 \lor \cdots \lor L_m</math> that does not contain free variables and such that each <math>L_i</math> is a literal. The universal quantifiers are often omitted for clarity, so that for example <math>P(x,y) \lor Q(f(x))</math> actually means <math>\forall x,y . P(x,y) \lor Q(f(x))</math>. Note that, if taken literally, these two formulae are not the same as for satisfiability: rather, the satisfiability <math>P(x,y) \lor Q(f(x))</math> is the same as that of <math>\exists x,y . P(x,y) \lor Q(f(x))</math>. That free variables are universally quantified is not a consequence of the definition of first-order satisfiability; it is rather used as an implicit common assumption when dealing with clauses. The only expansion rules that are applicable to a clause are <math>(\forall)</math> and <math>(\lor)</math>; these two rules can be replaced by their combination without losing completeness. In particular, the following rule corresponds to applying in sequence the rules <math>(\forall)</math> and <math>(\lor)</math> of the first-order calculus with unification. :<math>(C) \frac{L_1 \lor \cdots \lor L_n}{L_1'|\cdots|L_n'}</math> where <math>L_1' \lor \cdots \lor L_n'</math> is obtained by replacing every variable with a new one in <math>L_1 \lor \cdots \lor L_n</math> When the set to be checked for satisfiability is only composed of clauses, this and the unification rules are sufficient to prove unsatisfiability. In other worlds, the tableau calculi composed of <math>(C)</math> and <math>(\sigma)</math> is complete. Since the clause expansion rule only generates literals and never new clauses, the clauses to which it can be applied are only clauses of the input set. As a result, the clause expansion rule can be further restricted to the case where the clause is in the input set. :<math>(C) \frac{L_1 \lor \cdots \lor L_n}{L_1'|\cdots|L_n'}</math> where <math>L_1' \lor \cdots \lor L_n'</math> is obtained by replacing every variable with a new one in <math>L_1 \lor \cdots \lor L_n</math>, which is a clause of the input set Since this rule directly exploits the clauses in the input set there is no need to initialize the tableau to the chain of the input clauses. The initial tableau can therefore be initialize with the single node labeled <math>true</math>; this label is often omitted as implicit. As a result of this further simplification, every node of the tableau (apart from the root) is labeled with a literal. A number of optimizations can be used for clause tableau. These optimization are aimed at reducing the number of possible tableaux to be explored when searching for a closed tableau as described in the "Searching for a closed tableau" section above. ===Connection tableau=== Connection is a condition over tableau that forbids expanding a branch using clauses that are unrelated to the literals that are already in the branch. Connection can be defined in two ways: ; strong connectedness : when expanding a branch, use an input clause only if it contains a literal that can be unified with the negation of the literal in the current leaf ; weak connectedness : allow the use of clauses that contain a literal that unifies with the negation of a literal on the branch Both conditions apply only to branches consisting not only of the root. The second definition allows for the use of a clause containing a literal that unifies with the negation of a literal in the branch, while the first only further constraint that literal to be in leaf of the current branch. If clause expansion is restricted by connectedness (either strong or weak), its application produces a tableau in which substitution can applied to one of the new leaves, closing its branch. In particular, this is the leaf containing the literal of the clause that unifies with the negation of a literal in the branch (or the negation of the literal in the parent, in case of strong connection). Both conditions of connectedness lead to a complete first-order calculus: if a set of clauses is unsatisfiable, it has a closed connected (strongly or weakly) tableau. Such a closed tableau can be found by searching in the space of tableaux as explained in the "Searching for a closed tableau" section. During this search, connectedness eliminates some possible choices of expansion, thus reducing search. In other worlds, while the tableau in a node of the tree can be in general expanded in several different ways, connection may allow only few of them, thus reducing the number of resulting tableaux that need to be further expanded. This can be seen on the following (propositional) example. The tableau made of a chain <math>true - a</math> for the set of clauses <math>\{a, \neg a \lor b, \neg c \lor d, \neg b\}</math> can be in general expanded using each of the four input clauses, but connection only allows the expansion that uses <math>\neg a \lor b</math>. This means that the tree of tableaux has four leaves in general but only one if connectedness is imposed. This means that connectedness leaves only one tableau to try to expand, instead of the four ones to consider in general. In spite of this reduction of choices, the completeness theorem implies that a closed tableau can be found if the set is unsatisfiable. The connectedness conditions, when applied to the propositional (clausal) case, make the resulting calculus non-confluent. As an example, <math>\{a, b, \neg b\}</math> is unsatisfiable, but applying <math>(C)</math> to <math>a</math> generates the chain <math>true - a</math>, which is not closed and to which no other expansion rule can be applied without violating either strong or weak connectedness. In the case of weak connectedness, confluence holds provided that the clause used for expanding the root is relevant to unsatisfiability, that is, it is contained in a minimally unsatisfiable subset of the set of clauses. Unfortunately, the problem of checking whether a clause meets this condition is itself a hard problem. In spite of non-confluence, a closed tableau can be found using search, as presented in the "Searching for a closed tableau" section above. While search is made necessary, connectedness reduces the possible choices of expansion, thus making search more efficient. ===Regular tableaux=== A tableau is regular if no literal occurs twice in the same branch. Enforcing this condition allows for a reduction of the possible choices of tableau expansion, as the clauses that would generate a non-regular tableau cannot be expanded. These disallowed expansion steps are however useless. If <math>B</math> is a branch containing a literal <math>L</math>, and <math>C</math> is a clause whose expansion violates regularity, then <math>C</math> contains <math>L</math>. In order to close the tableau, one needs to expand and close, among others, the branch where <math>B - L</math>, where <math>L</math> occurs twice. However, the formulae in this branch are exactly the same as the formulae of <math>B</math> alone. As a result, the same expansion steps that close <math>B - L</math> also close <math>B</math>. This means that expanding <math>C</math> was unnecessary; moreover, if <math>C</math> contained other literals, its expansion generated other leaves that needed to be closed. In the propositional case, the expansion needed to close these leaves are completely useless; in the first-order case, they may only affect the rest of the tableau because of some unifications; these can however be combined to the substitutions used to close the rest of the tableau. ==Tableaux for modal logics== In a [[modal logic]], a model comprises a set of ''possible worlds'', each one associated to a truth evaluation; an ''accessibility relation'' specifies when a world is ''accessible'' from another one. A modal formula may specify not only conditions over a possible world, but also on the ones that are accessible from it. As an example, <math>\Box A</math> is true in a world if <math>A</math> is true in all worlds that are accessible from it. As for propositional logic, tableaux for modal logics are based on recursively breaking formulae into its basic components. Expanding a modal formula may however require stating conditions over different worlds. As an example, if <math>\neg \Box A</math> is true in a world then there exists a world accessible from it where <math>A</math> is false. However, one cannot simply add the following rule to the propositional ones. :<math>\frac{\neg \Box A}{\neg A}</math> In propositional tableaux all formulae refer to the same truth evaluation, but the precondition of the rule above holds in one world while the consequence holds in another. Not taking this into account would generate incorrect results. For example, formula <math>a \land \neg \Box a</math> states that <math>a</math> is true in the current world and <math>a</math> is false in a world that is accessible from it. Simply applying <math>(\land)</math> and the expansion rule above would produce <math>a</math> and <math>\neg a</math>, but these two formulae should not in general generate a contradiction, as they hold in different worlds. Modal tableaux calculi do contain rules of the kind of the one above, but include mechanisms to avoid the incorrect interaction of formulae referring to different worlds. Technically, tableaux for modal logics check the satisfiability of a set of formulae: they check whether there exists a model <math>M</math> and world <math>w</math> such that the formulae in the set are true in that model and world. In the example above, while <math>a</math> states the truth of <math>a</math> in <math>w</math>, the formula <math>\neg \Box a</math> states the truth of <math>\neg a</math> in some world <math>w'</math> that is accessible from <math>w</math> and which may in general be different from <math>w</math>. Tableaux calculi for modal logic take into account that formulae may refer to different worlds. This fact has an important consequence: formulae that hold in a world may imply conditions over different successors of that world. Unsatisfiability may then be proved from the subset of formulae referring to a single successor. This holds if a world may have more than one successor, which is true for most modal logics. If this is the case, a formula like <math>\neg \Box A \land \neg \Box B</math> is true if a successor where <math>\neg A</math> holds exists and a successor where <math>\neg B</math> holds exists. In the other way around, if one can show unsatisfiability of <math>\neg A</math> in an arbitrary successor, the formula is proved unsatisfiable without checking for worlds where <math>\neg B</math> holds. At the same time, if one can show unsatisfiability of <math>\neg B</math>, there is no need to check <math>\neg A</math>. As a result, while there are two possible way to expand <math>\neg \Box A \land \neg \Box B</math>, one of these two ways is always sufficient to prove unsatisfiability if the formula is unsatisfiable. For example, one may expand the tableau by considering an arbitrary world where <math>\neg A</math> holds. If this expansion leads to unsatisfiability, the original formula is unsatisfiable. However, it is also possible that unsatisfiability cannot be proved this way, and that the world where <math>\neg B</math> holds should have been considered instead. As a result, one can always prove unsatisfiability by expanding either <math>\neg \Box A</math> only or <math>\neg \Box B</math> only; however, if the wrong choice is made the resulting tableau may not be closed. Expanding either subformula leads to tableau calculi that are complete but not proof-confluent. Searching as described in the "Searching for a closed tableau" may therefore be necessary. Depending on whether the precondition and consequence of a tableau expansion rule refer to the same world or not, the rule is called static or transactional. While rules for propositional connectives are all static, not all rules for modal connectives are transactional: for example, in every modal logic including axiom [[Kripke semantics#Common modal axiom schemata|T]], it holds that <math>\Box A</math> implies <math>A</math> in the same world. As a result, the relative (modal) tableau expansion rule is static, as both its precondition and consequence refer to the same world. ===Formula-deleting tableau=== A method for avoiding formulae referring to different worlds interacting in the wrong way is to make sure that all formulae of a branch refer to the same world. This condition is initially true as all formulae in the set to be checked for consistency are assumed referring to the same world. When expanding a branch, two situations are possible: either the new formulae refer to the same world as the other one in the branch or not. In the first case, the rule is applied normally. In the second case, all formulae of the branch that do not also hold in the new world are deleted from the branch, and possibly added to all other branches that are still relative to the old world. As an example, in [[S5 (modal logic)|S5]] every formula <math>\Box A</math> that is true in a world is also true in all accessible worlds (that is, in all accessible worlds both <math>A</math> and <math>\Box A</math> are true). Therefore, when applying <math>\frac{\neg \Box B}{\neg B}</math>, whose consequence holds in a different world, one deletes all formulae from the branch, but can keep all formulae <math>\Box A</math>, as these hold in the new world as well. In order to retain completeness, the deleted formulae are then added to all other branches that still refer to the old world. ===World-labeled tableau=== A different mechanism for ensuring the correct interaction between formulae referring to different worlds is to switch from formulae to labeled formulae: instead of writing <math>A</math>, one would write <math>w:A</math> to make it explicit that <math>A</math> holds in world <math>w</math>. All propositional expansion rules are adapted to this variant by stating that they all refer to formulae with the same world label. For example, <math>w:A \land B</math> generates two nodes labeled with <math>w:A</math> and <math>w:B</math>; a branch is closed only if it contains two opposite literals of the same world, like <math>w:a</math> and <math>w:\neg a</math>; no closure is generated if the two world labels are different, like in <math>w:a</math> and <math>w':\neg a</math>. A modal expansion rule may have a consequence that refers to different worlds. For example, the rule for <math>\neg \Box A</math> would be written as follows :<math>\frac{w:\neg \Box A}{w':\neg A}</math> The precondition and consequent of this rule refer to worlds <math>w</math> and <math>w'</math>, respectively. The various calculi use different methods for keeping track of the accessibility of the worlds used as labels. Some include pseudo-formulae like <math>wRw'</math> to denote that <math>w'</math> is accessible from <math>w</math>. Some others use sequences of integers as world labels, this notation implicitly representing the [[accessibility relation]] (for example, <math>(1,4,2,3)</math> is accessible from <math>(1,4,2)</math>.) ===Set-labeling tableaux=== The problem of interaction between formulae holding in different worlds can be overcome by using set-labeling tableaux. These are trees whose nodes are labeled with sets of formulae; the expansion rules explain how to attach new nodes to a leaf, based only on the label of the leaf (and not on the label of other nodes in the branch). Tableaux for modal logics are used to verify the satisfiability of a set of modal formulae in a given modal logic. Given a set of formulae <math>S</math>, they check the existence of a model <math>M</math> and a world <math>w</math> such that <math>M,w \models S</math>. The expansion rules depend on the particular modal logic used. A tableau system for the basic modal logic [[K (modal logic)|K]] can be obtained by adding to the propositional tableau rules the following one: :<math>(K) \frac{\Box A_1; \ldots ; \Box A_n ; \neg \Box B}{A_1; \ldots ; A_n ; \neg B}</math> Intuitively, the precondition of this rule expresses the truth of all formulae <math>A_1,\ldots,A_n</math> at all accessible worlds, and truth of <math>\neg B</math> at some accessible worlds. The consequence of this rule is a formula that must be true at one of those worlds where <math>\neg B</math> is true. More technically, modal tableaux methods check the existence of a model <math>M</math> and a world <math>w</math> that make set of formulae true. If <math>\Box A_1; \ldots ; \Box A_n ; \neg \Box B</math> are true in <math>w</math>, there must be a world <math>w'</math> that is accessible from <math>w</math> and that makes <math>A_1; \ldots ; A_n ; \neg B</math> true. This rule therefore amounts to deriving a set of formulae that must be satisfied in such <math>w'</math>. While the preconditions <math>\Box A_1; \ldots ; \Box A_n ; \neg \Box B</math> are assumed satisfied by <math>M,w</math>, the consequences <math>A_1; \ldots ; A_n ; \neg B</math> are assumed satisfied in <math>M,w'</math>: same model but possibly different worlds. Set-labeled tableaux do not explicitly keep track of the world where each formula is assumed true: two nodes may or may not refer to the same world. However, the formulae labeling any given node are assumed true at the same world. As a result of the possibly different worlds where formulae are assumed true, a formula in a node is not automatically valid in all its descendants, as every application of the modal rule corresponds to a move from a world to another one. This condition is automatically captured by set-labeling tableaux, as expansion rules are based only on the leaf where they are applied and not on its ancestors. Notably, <math>(K)</math> does not directly extend to multiple negated boxed formulae such as in <math>\Box A_1; \ldots; \Box A_n; \neg \Box B_1; \neg \Box B_2</math>: while there exists an accessible world where <math>B_1</math> is false and one in which <math>B_2</math> is false, these two worlds are not necessarily the same. Differently from the propositional rules, <math>(K)</math> states conditions over all its preconditions. For example, it cannot be applied to a node labeled by <math>a; \Box b; \Box (b \to c); \neg \Box c</math>; while this set is inconsistent and this could be easily proved by applying <math>(K)</math>, this rule cannot be applied because of formula <math>a</math>, which is not even relevant to inconsistency. Removal of such formulae is made possible by the rule: :<math>(\theta) \frac{A_1;\ldots;A_n;B_1;\ldots;B_m}{A_1;\ldots;A_n}</math> The addition of this rule (thinning rule) makes the resulting calculus non-confluent: a tableau for an inconsistent set may be impossible to close, even if a closed tableau for the same set exists. Rule <math>(\theta)</math> is non-deterministic: the set of formulae to be removed (or to be kept) can be chosen arbitrarily; this creates the problem of choosing a set of formulae to discard that is not so large it makes the resulting set satisfiable and not so small it makes the necessary expansion rules inapplicable. Having a large number of possible choices makes the problem of searching for a closed tableau harder. This non-determinism can be avoided by restricting the usage of <math>(\theta)</math> so that it is only applied before a modal expansion rule, and so that it only removes the formulae that make that other rule inapplicable. This condition can be also formulated by merging the two rules in a single one. The resulting rule produces the same result as the old one, but implicitly discard all formulae that made the old rule inapplicable. This mechanism for removing <math>(\theta)</math> has been proved to preserve completeness for many modal logics. Axiom [[T (modal logic)|T]] expresses reflexivity of the accessibility relation: every world is accessible from itself. The corresponding tableau expansion rule is: :<math>(T) \frac{A_1;\ldots;A_n;\Box B}{A_1;\ldots;A_n; \Box B; B}</math> This rule relates conditions over the same world: if <math>\Box B</math> is true in a world, by reflexivity <math>B</math> is also true ''in the same world''. This rule is static, not transactional, as both its precondition and consequent refer to the same world. This rule copies <math>\Box B</math> from the precondition to the consequent, in spite of this formula having been "used" to generate <math>B</math>. This is correct, as the considered world is the same, so <math>\Box B</math> also holds there. This "copying" is necessary in some cases. It is for example necessary to prove the inconsistency of <math>\Box(a \land \neg \Box a)</math>: the only applicable rules are in order <math>(T), (\land), (\theta), (K)</math>, from which one is blocked if <math>\Box a</math> is not copied. ===Auxiliary tableaux=== A different method for dealing with formulae holding in alternate worlds is to start a different tableau for each new world that is introduced in the tableau. For example, <math>\neg \Box A</math> implies that <math>A</math> is false in an accessible world, so one starts a new tableau rooted by <math>\neg A</math>. This new tableau is attached to the node of the original tableau where the expansion rule has been applied; a closure of this tableau immediately generates a closure of all branches where that node is, regardless of whether the same node is associated other auxiliary tableaux. The expansion rules for the auxiliary tableaux are the same as for the original one; therefore, an auxiliary tableau can have in turns other (sub-)auxiliary tableaux. ===Global assumptions=== The above modal tableaux establish the consistency of a set of formulae, and can be used for solving the local [[logical consequence]] problem. This is the problem of telling whether, for each model <math>M</math>, if <math>A</math> is true in a world <math>w</math>, then <math>B</math> is also true in the same world. This is the same as checking whether <math>B</math> is true in a world of a model, in the assumption that <math>A</math> is also true in the same world of the same model. A related problem is the global consequence problem, where the assumption is that a formula (or set of formulae) <math>G</math> is true in all possible worlds of the model. The problem is that of checking whether, in all models <math>M</math> where <math>G</math> is true in all worlds, <math>B</math> is also true in all worlds. Local and global assumption differ on models where the assumed formula is true in some worlds but not in others. As an example, <math>\{P, \neg \Box (P \land Q)\}</math> entails <math>\neg \Box Q</math> globally but not locally. Local [[entailment]] does not hold in a model consisting of two worlds making <math>P</math> and <math>\neg P, Q</math> true, respectively, and where the second is accessible from the first; in the first world, the assumptions are true but <math>\neg \Box Q</math> is false. This counterexample works because <math>P</math> can be assumed true in a world and false in another one. If however the same assumption is considered global, <math>\neg P</math> is not allowed in any world of the model. These two problems can be combined, so that one can check whether <math>B</math> is a local consequence of <math>A</math> under the global assumption <math>G</math>. Tableaux calculi can deal with global assumption by a rule allowing its addition to every node, regardless of the world it refers to. ==Notations== The following conventions are sometimes used. ===Uniform notation=== When writing tableaux expansion rules, formulae are often denoted using a convention, so that for example {{mvar|α}} is always considered to be <math>\alpha_1 \land \alpha_2</math>. The following table provides the notation for formulae in propositional, first-order, and modal logic. {|class="wikitable" |+ ! Notation ! colspan="3" | Formulae |- | {{mvar|α}} | <math>\alpha_1 \land \alpha_2</math> | <math>\neg (\overline{\alpha_1} \lor \overline{\alpha_2})</math> | <math>\neg (\alpha_1 \to \overline{\alpha_2})</math> |- | {{mvar|β}} | <math>\beta_1 \lor \beta_2</math> | <math>\overline{\beta_1} \to \beta_2</math> | <math>\neg (\overline{\beta_1} \land \overline{\beta_2})</math> |- | {{mvar|γ}} | <math>\forall x \gamma_1(x)</math> | <math>\neg\exists x \overline{\gamma_1(x)}</math> |- | {{mvar|δ}} | <math>\exists x \delta_1(x)</math> | <math>\neg\forall x \overline{\delta_1(x)}</math> |- | {{mvar|π}} | <math>\Diamond \pi_1</math> | <math>\neg\Box \overline{\pi_1}</math> |- | {{mvar|ν}} | <math>\Box \nu_1</math> | <math>\neg\Diamond \overline{\nu_1}</math> |} Each label in the first column is taken to be either formula in the other columns. An overlined formula such as <math>\overline{\alpha_1}</math> indicates that <math>\alpha_1</math> is the negation of whatever formula appears in its place, so that for example in formula <math>\neg (a \lor b)</math> the subformula <math>\alpha_1</math> is the negation of {{mvar|a}}. Since every label indicates many equivalent formulae, this notation allows writing a single rule for all these equivalent formulae. For example, the conjunction expansion rule is formulated as: :<math>(\alpha) \frac{\alpha}{\begin{array}{c}\alpha_1\\ \alpha_2\end{array}}</math> ==See also== * [[Resolution (logic)]] ==Notes== {{Reflist}} ==References== *{{cite journal|last=Beth|first=Evert W.|author-link=Evert Willem Beth|title=Semantic entailment and formal derivability |journal=Mededelingen van de Koninklijke Nederlandse Akademie van Wetenschappen, Afdeling Letterkunde |volume=18 |issue=13 |pages=309–42 |date=1955 |doi= |url=https://philpapers.org/rec/BETSEA-10}} Reprinted in {{cite book |editor-first=Jaakko |editor-last=Intikka |title=The Philosophy of Mathematics |publisher=Oxford University Press |date=1969 |isbn=978-0-19-875011-6 }} *{{cite book|last=Bostock|first=David |title=Intermediate Logic |publisher=Oxford University Press |date=1997 |isbn=978-0-19-156707-0 |url={{GBurl|rXYWP3R0hG4C|pg=PR7}}}} *{{cite journal|last=Carnielli|first=Walter A.|author-link=Walter Carnielli|title=Systematization of Finite Many-Valued Logics Through the Method of Tableaux|journal=[[The Journal of Symbolic Logic]]|date=1987|volume=52|issue=2|pages=473–493|url=http://projecteuclid.org/euclid.jsl/1183742375|doi=10.2307/2274395|jstor=2274395|s2cid=42822367 |url-access=subscription}} *{{cite journal|last=Carnielli|first=Walter A.|author-link=Walter Carnielli|title=On sequents and tableaux for many-valued logics|journal=The Journal of Non-Classical Logics|date=1991|volume=8|issue=1|pages=59–76|url=http://www.cle.unicamp.br/jancl/logica/Nova%20pasta/Vol%208/vol8part1/59a76.pdf|access-date=2014-10-11|archive-url=https://web.archive.org/web/20160305011658/http://www.cle.unicamp.br/jancl/logica/Nova%20pasta/Vol%208/vol8part1/59a76.pdf|archive-date=2016-03-05|url-status=dead}} *{{cite book |editor1-first=M. |editor1-last=D'Agostino |editor2-link=Dov Gabbay |editor2-first=D. |editor2-last=Gabbay |editor3-first=R. |editor3-last=Haehnle |editor4-first=J. |editor4-last=Posegga |title=Handbook of Tableau Methods |ref={{harvid|Handbook of Tableau Methods}} |publisher=Kluwer |date=1999 |isbn=978-94-017-1754-0 |url={{GBurl|iJrpCAAAQBAJ|pg=PP5}}}} *{{cite book |last=Fitting|first=Melvin|author-link=Melvin Fitting|title=First-order logic and automated theorem proving |publisher=Springer|location=New York|edition=2nd|date=1996|isbn=978-1-4612-7515-2 |orig-year=1990 |doi=10.1007/978-1-4612-2360-3|s2cid=10411039 |url={{GBurl|eaXbBwAAQBAJ|pg=PP10}}}} *{{cite book |last=Girle |first=Rod |title=Modal Logics and Philosophy |publisher=Taylor & Francis |edition=2nd |date=2014 |isbn=978-1-317-49217-7 |url={{GBurl|XqHCBQAAQBAJ|pg=PR5}} }} *{{cite book |last=Goré |first=Rajeev |chapter=Tableau Methods for Modal and Temporal Logics |title={{harvnb|Handbook of Tableau Methods}} |pages=297–396}} *{{cite book |last=Hähnle |first=Reiner|chapter=3. Tableaux and Related Methods |chapter-url={{GBurl|HxaWA4lep_kC|p=101}} |editor1-first=Alan J.A. |editor1-last=Robinson |editor2-first=Andrei |editor2-last=Voronkov |title=Handbook of Automated Reasoning |title-link=Handbook of Automated Reasoning |ref={{harvid|Handbook of Automated Reasoning}} |publisher=Elsevier |date=2001 |isbn=978-0-08-053279-0 |pages=101–179 <!-- |url={{GBurl|HxaWA4lep_kC|pg=PR9}} --> }} *{{cite book|last=Howson|first=Colin|author-link=Colin Howson|title=Logic with trees: an introduction to symbolic logic|url=https://books.google.com/books?id=Y4WGAgAAQBAJ&q=%22disjunctive+normal+form%22|date=11 October 2005|orig-date=1997|publisher=Routledge|isbn=978-1-134-78550-6}} *{{cite journal|last=Jarmużek|first=Tomasz|title=Tableau Methods for Propositional Logic and Term Logic |publisher=[[Peter Lang (publisher)|Peter Lang]] |location=Berlin, Bern, Bruxelles, New York, Oxford, Warszawa, Wien|editor-last=Hartman|editor-first=Jan|translator-last=Jaskólski|translator-first=Sławomir|journal=Series: Studies in Philosophy, History of Ideas and Modern Societies|volume=20|pages=228|date=2020 |url=https://www.peterlang.com/free_download?document_id=1117751&product_form=ebook&publication_type=pdf |format=PDF|isbn=9783631846537 |doi=10.3726/b18008|issn=2191-1878}} *{{cite book|last=Jeffrey|first=Richard |author-link=Richard Jeffrey |title=Formal Logic: Its Scope and Limits |publisher=Hackett |edition=4th |date=2006 |orig-year=1967 |isbn=978-0-87220-813-1 |pages= |url={{GBurl|iqvsjhvZCgcC|p=5}}}} *{{cite book |last1=Letz |first1=Reinhold |last2=Stenz |first2=Gernot |chapter=28. Model Elimination and Connection Tableau Procedures |title={{harvnb|Handbook of Automated Reasoning}} |pages=2015–2114 }} *{{Cite book|editor1-last=Robinson|editor1-first=John Alan|editor1-link=John Alan Robinson|editor2-last=Voronkov|editor2-first=Andrei|editor2-link=Andrei Voronkov|date=2001|title=Handbook of Automated Reasoning|title-link=Handbook of Automated Reasoning|volume=1|publisher=[[MIT Press]]|pages=203 ff|isbn=0444829490}} *{{cite book|last=Smullyan|first=Raymond|author-link=Raymond Smullyan |title=First Order-Logic |publisher=Dover |date=1995 |orig-year=1968 |isbn=978-0-486-68370-6 |url={{GBurl|kgvhQ-oSZiUC|pg=PR11}}}} *{{Cite book|last=Smullyan|first=Raymond|author-link=Raymond Smullyan|title=A Beginner's Guide to Mathematical Logic |publisher=Dover |year=2014 |isbn=978-0486492377}} *{{cite web|editor=The Encyclopedia of Philosophy|title=Modern Logic: The Boolean Period: Carroll|url=https://www.encyclopedia.com/humanities/encyclopedias-almanacs-transcripts-and-maps/modern-logic-boolean-period-carroll|date=11 December 2023|at=[[The Encyclopedia of Philosophy]]|access-date=26 December 2023}} *{{cite book |last=Zeman |first=Joseph Jay |title=Modal Logic: The Lewis-modal Systems |publisher=Clarendon Press |date=1973 |isbn=978-0-19-824374-8 |oclc=641504 |url=http://www.clas.ufl.edu/users/jzeman/modallogic/ }} ==External links== * [http://i12www.ira.uka.de/TABLEAUX/ TABLEAUX]: an annual international conference on automated reasoning with analytic tableaux and related methods * [https://www.springer.com/computer/theoretical+computer+science/journal/10817 ''JAR'']: ''Journal of Automated Reasoning'' * [http://hackage.haskell.org/package/tableaux The tableaux package]: an interactive prover for propositional and first-order logic using tableaux * [http://www.umsu.de/logik/trees/ Tree proof generator]: another interactive prover for propositional and first-order logic using tableaux * [http://www.irit.fr/Lotrec/ LoTREC]: a generic tableaux-based prover for modal logics from IRIT/Toulouse University * {{YouTube|id=B456sRznbV8|title=Intro to Truth Trees}} {{Diagrams in logic}} [[Category:Logical calculi]] [[Category:Automated theorem proving]] [[Category:Methods of proof]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Clarify
(
edit
)
Template:Diagrams in logic
(
edit
)
Template:Disputed-inline
(
edit
)
Template:IPAc-en
(
edit
)
Template:Mvar
(
edit
)
Template:Reflist
(
edit
)
Template:Sfn
(
edit
)
Template:Short description
(
edit
)
Template:Spaces
(
edit
)
Template:YouTube
(
edit
)