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
(section)
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!
==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>
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)