Source and provenance

All fourteen authority files and all 2,208 lines are shown exactly and packaged byte-for-byte. Seven source defects remain unchanged and are disclosed with explicit reader corrections. Two additional internal source-semantic discrepancies remain unchanged and are disclosed at nineteen exact anchors. Open the exact accepted projected chapter transcript (SHA-256 b334a2859045228ae1f049ebc10f23ab1aa40a487b75fa519cd392adf6dd0bfe). Technical source commit: 9620cc73f9c8e0ad003c514a5d3748f29611c4c0. AI production model: OpenAI Codex gpt-5.6-sol, Ultra. Source authorship remains with the credited Open Logic Project contributors.

content/first-order-logic/tableaux/tableaux.tex

54 lines; SHA-256 eaf9e7719e1e71efb2b82fa80bae67063790e30ef901686a065a23536e253098. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. \documentclass[../../../include/open-logic-chapter]{subfiles}
  4. \begin{document}
  5. \iftag{FOL}
  6. {\olchapter{fol}{tab}{Tableaux}}
  7. {\olchapter{pl}{tab}{Tableaux}}
  8. \begin{editorial}
  9. This chapter presents a signed analytic tableaux system.
  10. To include or exclude material relevant to natural deduction as a
  11. proof system, use the ``prfTab'' tag.
  12. \end{editorial}
  13. \olimport{rules-and-proofs}
  14. \olimport{propositional-rules}
  15. \iftag{FOL}{%
  16. \olimport{quantifier-rules}
  17. }{}
  18. \olimport{derivations}
  19. \olimport{proving-things}
  20. \iftag{FOL}{%
  21. \olimport{proving-things-quant}
  22. }{}
  23. \olimport{proof-theoretic-notions}
  24. \olimport{provability-consistency}
  25. \olimport{provability-propositional}
  26. \iftag{FOL}{%
  27. \olimport{provability-quantifiers}
  28. }{}
  29. \olimport{soundness}
  30. \iftag{FOL}{%
  31. \olimport{identity}
  32. \olimport{soundness-identity}
  33. }{}
  34. \OLEndChapterHook
  35. \end{document}

content/first-order-logic/tableaux/rules-and-proofs.tex

59 lines; SHA-256 93cbe7b304b8ad0c3140c23d139dccdf37df9fe8756cb25d8ca47efe1ee6f84d. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. % Section: rules-and-proofs
  4. \documentclass[../../../include/open-logic-section]{subfiles}
  5. \begin{document}
  6. \iftag{FOL}
  7. {\olfileid{fol}{tab}{rul}}
  8. {\olfileid{pl}{tab}{rul}}
  9. \olsection{Rules and \usetoken{P}{tableau}}
  10. !!^a{tableau} is a systematic survey of the possible ways
  11. !!a{sentence} can be true or false in !!a{structure}. The building
  12. blocks of a tableau are !!{signed formula}s: !!{sentence}s plus a
  13. truth value ``sign,'' either $\True$ or~$\False$. These signed
  14. !!{formula}s are arranged in a (downward growing) tree.
  15. \begin{defn}
  16. A \emph{!!{signed formula}} is a pair consisting of a truth value
  17. and !!a{sentence}, i.e., either:
  18. \[
  19. \sFmla{\True}{!A} \text{ or } \sFmla{\False}{!A}.
  20. \]
  21. \end{defn}
  22. Intuitively, we might read $\sFmla{\True}{!A}$ as ``$!A$ might be
  23. true'' and $\sFmla{\False}{!A}$ as ``$!A$ might be false'' (in some
  24. !!{structure}).
  25. Each !!{signed formula} in the tree is either an \emph{assumption}
  26. (which are listed at the very top of the tree), or it is obtained from
  27. !!a{signed formula} above it by one of a number of rules of
  28. inference. There are two rules for each possible !!{main operator} of
  29. the preceding !!{formula}, one for the case where the sign is~$\True$,
  30. and one for the case where the sign is~$\False$. Some rules allow the
  31. tree to branch, and some only add !!{signed formula}s to the branch.
  32. A rule may be (and often must be) applied not to the immediately
  33. preceding !!{signed formula}, but to any !!{signed formula} in the
  34. branch from the root to the place the rule is applied.
  35. A branch is \emph{closed} when it contains both $\sFmla{\True}{!A}$
  36. and $\sFmla{\False}{!A}$. A closed !!{tableau} is one where every branch
  37. is closed. Under the intuitive interpretation, any branch describes a
  38. joint possibility, but $\sFmla{\True}{!A}$ and $\sFmla{\False}{!A}$
  39. are not jointly possible. In other words, if a branch is closed, the
  40. possibility it describes has been ruled out. In particular, that means
  41. that a closed !!{tableau} rules out all possibilities of simultaneously
  42. making every assumption of the form $\sFmla{\True}{!A}$ true and every
  43. assumption of the form~$\sFmla{\False}{!A}$ false.
  44. A closed !!{tableau} \emph{for $!A$} is a closed !!{tableau} with
  45. root~$\sFmla{\False}{!A}$. If such a closed !!{tableau} exists, all
  46. possibilities for~$!A$ being false have been ruled out; i.e., $!A$
  47. must be true in every !!{structure}.
  48. \end{document}

content/first-order-logic/tableaux/propositional-rules.tex

93 lines; SHA-256 0e0a8d69ddabb157d54f03e7ff21416fb0c818e481343f4ac00ee4ba1d5bf151. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. % Section: propositional-rules
  4. \documentclass[../../../include/open-logic-section]{subfiles}
  5. \begin{document}
  6. \iftag{FOL}
  7. {\olfileid{fol}{tab}{prl}}
  8. {\olfileid{pl}{tab}{prl}}
  9. \olsection{Propositional Rules}
  10. \subsection{Rules for $\lnot$}
  11. \begin{defish}
  12. \AxiomC{\sFmla{\True}{\lnot !A}}
  13. \RightLabel{\TRule{\True}{\lnot}}
  14. \UnaryInfC{\sFmla{\False}{!A}}
  15. \DisplayProof
  16. \hfill
  17. \AxiomC{\sFmla{\False}{\lnot !A}}
  18. \RightLabel{\TRule{\False}{\lnot}}
  19. \UnaryInfC{\sFmla{\True}{!A}}
  20. \DisplayProof
  21. \end{defish}
  22. \subsection{Rules for $\land$}
  23. \begin{defish}\noindent
  24. \AxiomC{\sFmla{\True}{!A \land !B}}
  25. \RightLabel{\TRule{\True}{\land}}
  26. \UnaryInfC{\sFmla{\True}{!A}}
  27. \noLine
  28. \UnaryInfC{\sFmla{\True}{!B}}
  29. \DisplayProof
  30. \hfill
  31. \AxiomC{\sFmla{\False}{!A \land !B}}
  32. \RightLabel{\TRule{\False}{\land}}
  33. \UnaryInfC{$\sFmla{\False}{!A} \quad \mid \quad \sFmla{\False}{!B}$}
  34. \DisplayProof
  35. \end{defish}
  36. \subsection{Rules for $\lor$}
  37. \begin{defish}
  38. \AxiomC{\sFmla{\True}{!A \lor !B}}
  39. \RightLabel{\TRule{\True}{\lor}}
  40. \UnaryInfC{$\sFmla{\True}{!A} \quad \mid \quad \sFmla{\True}{!B}$}
  41. \DisplayProof
  42. \hfill
  43. \AxiomC{\sFmla{\False}{!A \lor !B}}
  44. \RightLabel{\TRule{\False}{\lor}}
  45. \UnaryInfC{\sFmla{\False}{!A}}
  46. \noLine
  47. \UnaryInfC{\sFmla{\False}{!B}}
  48. \DisplayProof
  49. \end{defish}
  50. \subsection{Rules for $\lif$}
  51. \begin{defish}
  52. \AxiomC{\sFmla{\True}{!A \lif !B}}
  53. \RightLabel{\TRule{\True}{\lif}}
  54. \UnaryInfC{$\sFmla{\False}{!A} \quad \mid \quad \sFmla{\True}{!B}$}
  55. \DisplayProof
  56. \hfill
  57. \AxiomC{\sFmla{\False}{!A \lif !B}}
  58. \RightLabel{\TRule{\False}{\lif}}
  59. \UnaryInfC{\sFmla{\True}{!A}}
  60. \noLine
  61. \UnaryInfC{\sFmla{\False}{!B}}
  62. \DisplayProof
  63. \end{defish}
  64. \subsection{The Cut Rule}
  65. \begin{defish}
  66. \AxiomC{}
  67. \RightLabel{\Cut}
  68. \UnaryInfC{$\sFmla{\True}{!A} \quad \mid \quad \sFmla{\False}{!A}$}
  69. \DisplayProof
  70. \end{defish}
  71. The \Cut{} rule is not applied ``to'' a previous !!{signed formula}; rather,
  72. it allows every branch in !!a{tableau} to be split in two, one branch
  73. containing $\sFmla{\True}{!A}$, the other~$\sFmla{\False}{!A}$. It is
  74. not necessary---any set of !!{signed formula}s with a closed
  75. !!{tableau} has one not using \Cut---but it allows us to combine
  76. !!{tableau}s in a convenient way.
  77. \end{document}

content/first-order-logic/tableaux/quantifier-rules.tex

109 lines; SHA-256 800bfbb72d36d3e2c8f6d652146a797235f1cc785ad66457e2500919e2cc7a80. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. % Section: quantifier-rules
  4. \documentclass[../../../include/open-logic-section]{subfiles}
  5. \begin{document}
  6. \olfileid{fol}{tab}{qrl}
  7. \olsection{Quantifier Rules}
  8. \subsection{Rules for $\lforall$}
  9. \begin{defish}
  10. \AxiomC{\sFmla{\True}{\lforall[x][!A(x)]}}
  11. \RightLabel{\TRule{\True}{\forall}}
  12. \UnaryInfC{\sFmla{\True}{!A(t)}}
  13. \DisplayProof
  14. \hfill
  15. \AxiomC{\sFmla{\False}{\lforall[x][!A(x)]}}
  16. \RightLabel{\TRule{\False}{\lforall}}
  17. \UnaryInfC{\sFmla{\False}{!A(a)}}
  18. \DisplayProof
  19. \end{defish}
  20. In \TRule{\True}{\lforall}, $t$ is a closed term (i.e., one without
  21. variables). In \TRule{\False}{\lforall}, $a$~is !!a{constant} which
  22. must not occur anywhere in the branch above \TRule{\False}{\lforall}
  23. rule. We call $a$ the \emph{eigenvariable} of the
  24. \TRule{\False}{\forall} inference.\footnote{We use the term
  25. ``eigenvariable'' even though $a$ in the above rule is !!a{constant}.
  26. This has historical reasons.}
  27. \subsection{Rules for $\lexists$}
  28. \begin{defish}
  29. \AxiomC{\sFmla{\True}{\lexists[x][!A(x)]}}
  30. \RightLabel{\TRule{\True}{\lexists}}
  31. \UnaryInfC{\sFmla{\True}{!A(a)}}
  32. \DisplayProof
  33. \hfill
  34. \AxiomC{\sFmla{\False}{\lexists[x][!A(x)]}}
  35. \RightLabel{\TRule{\False}{\lexists}}
  36. \UnaryInfC{\sFmla{\False}{!A(t)}}
  37. \DisplayProof
  38. \end{defish}
  39. Again, $t$~is a closed term, and $a$~is !!a{constant} which does not
  40. occur in the branch above the~\TRule{\True}{\lexists} rule. We call
  41. $a$ the \emph{eigenvariable} of the \TRule{\True}{\lexists} inference.
  42. The condition that an eigenvariable not occur in the branch above the
  43. \TRule{\False}{\lforall} or \TRule{\True}{\lexists} inference is
  44. called the \emph{eigenvariable condition}.
  45. \begin{explain}
  46. Recall the convention that when $!A$ is !!a{formula} with the
  47. !!{variable}~$x$ free, we indicate this by writing~$!A(x)$. In the
  48. same context, $!A(t)$ then is short for~$\Subst{!A}{t}{x}$. So we
  49. could also write the \TRule{\False}{\lexists} rule as:
  50. \begin{prooftree}
  51. \AxiomC{\sFmla{\False}{\lexists[x][!A]}}
  52. \RightLabel{\TRule{\False}{\lexists}}
  53. \UnaryInfC{\sFmla{\False}{\Subst{!A}{t}{x}}}
  54. \end{prooftree}
  55. Note that $t$ may already occur in~$!A$, e.g., $!A$~might
  56. be~$\Atom{\Obj P}{t,x}$. Thus, inferring $\sFmla{\False}{\Atom{\Obj
  57. P}{t,t}}$ from~$ \sFmla{\False}{\lexists[x][\Atom{\Obj P}{t,x}]}$ is
  58. a correct application of~\TRule{\False}{\lexists}. However, the
  59. eigenvariable conditions in \TRule{\False}{\lforall}
  60. and~\TRule{\True}{\lexists} require that the !!{constant}~$a$ does
  61. not occur in~$!A$. So, you cannot correctly infer
  62. $\sFmla{\False}{\Atom{\Obj P}{a,a}}$ from
  63. $\sFmla{\False}{\lforall[x][\Atom{\Obj P}{a,x}]}$
  64. using~$\TRule{\False}{\lforall}$.
  65. \end{explain}
  66. \begin{explain}
  67. In \TRule{\True}{\lforall} and \TRule{\False}{\lexists} there are no
  68. restrictions on the term~$t$. On the other hand, in the
  69. \TRule{\True}{\lexists} and \TRule{\False}{\lforall} rules, the
  70. eigenvariable condition requires that the !!{constant}~$a$ does not
  71. occur anywhere in the branches above the respective inference. It is
  72. necessary to ensure that the system is sound. Without this condition,
  73. the following would be a closed !!{tableau} for
  74. $\lexists[x][\formula{A}(x)] \lif \lforall[x][\formula{A}(x)]$:
  75. \begin{center}
  76. \begin{tableau}{}
  77. [\sFmla{\False}{\lexists[x][\formula{A}(x)] \lif \lforall[x][\formula{A}(x)]}, just=\TAss
  78. [\sFmla{\True}{\lexists[x][\formula{A}(x)]},
  79. just={\TRule{\False}{\lif}[1]}
  80. [\sFmla{\False}{\lforall[x][\formula{A}(x)]},
  81. just={\TRule{\False}{\lif}[1]}
  82. [\sFmla{\True}{\formula{A}(a)},
  83. just={\TRule{\True}{\lexists}[2]}
  84. [\sFmla{\False}{\formula{A}(a)},
  85. just={\TRule{\False}{\lforall}[3]}, close]
  86. ]
  87. ]
  88. ]
  89. ]
  90. \end{tableau}
  91. \end{center}
  92. However, $\lexists[x][\formula{A}(x)] \lif
  93. \lforall[x][\formula{A}(x)]$ is not valid.
  94. \end{explain}
  95. \end{document}

content/first-order-logic/tableaux/derivations.tex

96 lines; SHA-256 3f3e041127342c4f2565632d33c855fcb7a87964d63beb38bd8313c8a71ad294. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. % Section: derivations
  4. \documentclass[../../../include/open-logic-section]{subfiles}
  5. \begin{document}
  6. \iftag{FOL}
  7. {\olfileid{fol}{tab}{der}}
  8. {\olfileid{pl}{tab}{der}}
  9. \olsection{\usetoken{P}{tableau}}
  10. \begin{explain}
  11. We've said what an assumption is, and we've given the rules of
  12. inference. !!^{tableau}s are inductively generated from these: each
  13. !!{tableau} either is a single branch consisting of one or more
  14. assumptions, or it results from !!a{tableau} by applying one of the
  15. rules of inference on a branch.
  16. \end{explain}
  17. \begin{defn}[!!^{tableau}]
  18. !!^a{tableau} for assumptions $\sFmla{S_1}{!A_1}$, \dots,
  19. $\sFmla{S_n}{!A_n}$ (where each $S_i$ is either $\True$ or~$\False$) is
  20. a finite tree of !!{signed formula}s satisfying the following conditions:
  21. \begin{enumerate}
  22. \item The $n$ topmost !!{signed formula}s of the tree are
  23. $\sFmla{S_i}{!A_i}$, one below the other.
  24. \item Every !!{signed formula} in the tree that is not one of the
  25. assumptions results from a correct application of an inference rule
  26. to !!a{signed formula} in the branch above it.
  27. \end{enumerate}
  28. A branch of !!a{tableau} is \emph{closed} iff it contains both
  29. $\sFmla{\True}{!A}$ and~$\sFmla{\False}{!A}$, and \emph{open}
  30. otherwise. !!^a{tableau} in which every branch is closed is a
  31. \emph{closed !!{tableau}} (for its set of assumptions). If !!a{tableau} is
  32. not closed, i.e., if it contains at least one open branch, it is
  33. \emph{open}.
  34. \end{defn}
  35. \begin{ex}
  36. Every set of assumptions on its own is !!a{tableau}, but it will
  37. generally not be closed. (Obviously, it is closed only if the
  38. assumptions already contain a pair of !!{signed formula}s
  39. $\sFmla{\True}{!A}$ and~$\sFmla{\False}{!A}$.)
  40. From !!a{tableau} (open or closed) we can obtain a new, larger one by
  41. applying one of the rules of inference to !!a{signed formula}~$!A$
  42. in it. The rule will append one or more !!{signed formula}s to the end of
  43. any branch containing the occurrence of~$!A$ to which we apply the
  44. rule.
  45. For instance, consider the assumption $\sFmla{\True}{!A \land \lnot
  46. !A}$. Here is the (open) !!{tableau} consisting of just that
  47. assumption:
  48. \begin{center}
  49. \begin{tableau}{}
  50. [\sFmla{\True}{\formula{A} \land \lnot \formula{A}}, just=\TAss]
  51. \end{tableau}{}
  52. \end{center}
  53. We obtain a new !!{tableau} from it by applying the $\TRule{\True}{\land}$
  54. rule to the assumption. That rule allows us to add two new lines to
  55. the !!{tableau}, $\sFmla{\True}{!A}$ and $\sFmla{\True}{\lnot !A}$:
  56. \begin{center}
  57. \begin{tableau}{}
  58. [\sFmla{\True}{\formula{A} \land \lnot \formula{A}}, just=\TAss
  59. [\sFmla{\True}{\formula{A}}, just={\TRule{\True}{\land}[1]},
  60. [\sFmla{\True}{\lnot \formula{A}}, just={\TRule{\True}{\land}[1]}
  61. ]
  62. ]
  63. ]
  64. \end{tableau}{}
  65. \end{center}
  66. When we write down !!{tableau}s, we record the rules we've applied
  67. on the right (e.g., $\TRule{\True}{\land} 1$ means that the
  68. !!{signed formula} on that line is the result of applying the
  69. $\TRule{\True}{\land}$ rule to the !!{signed formula} on line~$1$).
  70. This new !!{tableau} now contains additional !!{signed formula}s,
  71. but to only one ($\sFmla{\True}{\lnot !A}$) can we apply a rule (in
  72. this case, the $\TRule{\True}{\lnot}$ rule). This results in the closed
  73. !!{tableau}
  74. \begin{center}
  75. \begin{tableau}{}
  76. [\sFmla{\True}{\formula{A} \land \lnot \formula{A}}, just=\TAss
  77. [\sFmla{\True}{\formula{A}}, just={\TRule{\True}{\land}[1]}
  78. [\sFmla{\True}{\lnot \formula{A}}, just={\TRule{\True}{\land}[1]}
  79. [\sFmla{\False}{\formula{A}}, just={\TRule{\True}{\lnot}[3]}, close]
  80. ]
  81. ]
  82. ]
  83. \end{tableau}{}
  84. \end{center}
  85. \end{ex}
  86. \end{document}

content/first-order-logic/tableaux/proving-things.tex

460 lines; SHA-256 ba6a2d3c2f7c7504daa17942290c75084bbfab92663a492557ca6530a175d914. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. % Section: proving-things
  4. \documentclass[../../../include/open-logic-section]{subfiles}
  5. \begin{document}
  6. \iftag{FOL}
  7. {\olfileid{fol}{tab}{pro}}
  8. {\olfileid{pl}{tab}{pro}}
  9. \olsection{Examples of \usetoken{P}{tableau}}
  10. \begin{ex}
  11. Let's find a closed !!{tableau} for the !!{sentence} $(!A \land !B) \lif !A$.
  12. We begin by writing the corresponding assumption at the top of the
  13. !!{tableau}.
  14. \begin{oltableau}
  15. [\sFmla{\False}{(\formula{A} \land \formula{B}) \lif \formula{A}},
  16. just = \TAss]
  17. \end{oltableau}
  18. There is only one assumption, so only one !!{signed formula} to which
  19. we can apply a rule. (For every !!{signed formula}, there is always at
  20. most one rule that can be applied: it's the rule for the corresponding
  21. sign and !!{main operator} of the !!{sentence}.) In this case, this
  22. means, we must apply $\TRule{\False}{\lif}$.
  23. \begin{oltableau}
  24. [\sFmla{\False}{(\formula{A} \land \formula{B}) \lif \formula{A}},
  25. checked, just = \TAss
  26. [\sFmla{\True}{\formula{A} \land \formula{B}},
  27. just={\TRule{\False}{\lif}[1]}
  28. [\sFmla{\False}{\formula{A}}, just={\TRule{\False}{\lif}[1]}]
  29. ]
  30. ]
  31. \end{oltableau}
  32. To keep track of which !!{signed formula}s we have applied their
  33. corresponding rules to, we write a checkmark next to the
  34. sentence. However, \emph{only} write a checkmark if the rule has been
  35. applied to all open branches. Once !!a{signed formula} has had the
  36. corresponding rule applied in every open branch, we will not have to
  37. return to it and apply the rule again. In this case, there is only one
  38. branch, so the rule only has to be applied once. (Note that checkmarks
  39. are only a convenience for constructing tableaux and are not
  40. officially part of the syntax of tableaux.)
  41. There is one new !!{signed formula} to which we can apply a rule: the
  42. $\sFmla{\True}{!A \land !B}$ on line~$2$. Applying the
  43. $\TRule{\True}{\land}$ rule results in:
  44. \begin{oltableau}
  45. [\sFmla{\False}{(\formula{A} \land \formula{B}) \lif \formula{A}},
  46. checked, just = \TAss
  47. [\sFmla{\True}{\formula{A} \land \formula{B}},
  48. just={\TRule{\False}{\lif}[1]}, checked
  49. [\sFmla{\False}{\formula{A}}, just={\TRule{\False}{\lif}[1]}
  50. [\sFmla{\True}{\formula{A}}, just={\TRule{\True}{\land}[2]}
  51. [\sFmla{\True}{\formula{B}}, just={\TRule{\True}{\land}[2]}, close
  52. ]
  53. ]
  54. ]
  55. ]
  56. ]
  57. \end{oltableau}
  58. Since the branch now contains both $\sFmla{\True}{!A}$ (on line~$4$)
  59. and $\sFmla{\False}{!A}$ (on line~$3$), the branch is closed. Since it
  60. is the only branch, the !!{tableau} is closed. We have found
  61. a closed !!{tableau} for~$(!A \land !B) \lif !A$.
  62. \end{ex}
  63. \begin{ex}
  64. Now let's find a closed !!{tableau} for $(\lnot !A \lor !B) \lif (!A
  65. \lif !B)$.
  66. We begin with the corresponding assumption:
  67. \begin{oltableau}
  68. [\sFmla{\False}{(\lnot \formula{A} \lor \formula{B}) \lif
  69. (\formula{A} \lif \formula{B})}, just=\TAss]
  70. \end{oltableau}
  71. The one !!{signed formula} in this !!{tableau} has !!{main operator}~$\lif$
  72. and sign~$\False$, so we apply the $\TRule{\False}{\lif}$ rule to it
  73. to obtain:
  74. \begin{oltableau}
  75. [\sFmla{\False}{(\lnot \formula{A} \lor \formula{B})
  76. \lif (\formula{A} \lif \formula{B})}, just=\TAss, checked
  77. [\sFmla{\True}{\lnot \formula{A} \lor \formula{B}},
  78. just={\TRule{\False}{\lif}[1]}
  79. [\sFmla{\False}{(\formula{A} \lif \formula{B})},
  80. just={\TRule{\False}{\lif}[1]}
  81. ]
  82. ]
  83. ]
  84. \end{oltableau}
  85. We now have a choice as to whether to apply~$\TRule{\True}{\lor}$ to
  86. line~$2$ or $\TRule{\False}{\lif}$ to line~$3$. It actually doesn't
  87. matter which order we pick, as long as each !!{signed formula} has its
  88. corresponding rule applied in every branch. So let's pick the first
  89. one. The $\TRule{\True}{\lor}$ rule allows the !!{tableau} to branch,
  90. and the two conclusions of the rule will be the new !!{signed formula}s
  91. added to the two new branches. This results in:
  92. \begin{oltableau}
  93. [\sFmla{\False}{(\lnot \formula{A} \lor \formula{B}) \lif
  94. (\formula{A} \lif \formula{B})}, just=\TAss, checked
  95. [\sFmla{\True}{\lnot \formula{A} \lor \formula{B}},
  96. just={\TRule{\False}{\lif}[1]}, checked
  97. [\sFmla{\False}{(\formula{A} \lif \formula{B})},
  98. just={\TRule{\False}{\lif}[1]}
  99. [\sFmla{\True}{\lnot \formula{A}}, just={\TRule{\True}{\lor}[2]}]
  100. [\sFmla{\True}{\formula{B}}, just={\TRule{\True}{\lor}[2]}]
  101. ]
  102. ]
  103. ]
  104. \end{oltableau}
  105. We have not applied the $\TRule{\False}{\lif}$ rule to line~$3$ yet:
  106. let's do that now. To save time, we apply it to both branches.
  107. Recall that we write a checkmark next to !!a{signed formula} only if
  108. we have applied the corresponding rule in every open branch. So it's a
  109. good idea to apply a rule at the end of every branch that contains the
  110. !!{signed formula} the rule applies to. That way we won't have to
  111. return to that !!{signed formula} lower down in the various branches.
  112. \begin{oltableau}
  113. [\sFmla{\False}{(\lnot \formula{A} \lor \formula{B}) \lif
  114. (\formula{A} \lif \formula{B})}, just=\TAss, checked
  115. [\sFmla{\True}{\lnot \formula{A} \lor \formula{B}},
  116. just={\TRule{\False}{\lif}[1]}, checked
  117. [\sFmla{\False}{(\formula{A} \lif \formula{B})},
  118. just={\TRule{\False}{\lif}[1]}, checked
  119. [\sFmla{\True}{\lnot \formula{A}}, just={\TRule{\True}{\lor}[2]}
  120. [\sFmla{\True}{\formula{A}}, just={\TRule{\False}{\lif}[3]}
  121. [\sFmla{\False}{\formula{B}}, just={\TRule{\False}{\lif}[3]}]
  122. ]
  123. ]
  124. [\sFmla{\True}{\formula{B}}, just={\TRule{\True}{\lor}[2]}
  125. [\sFmla{\True}{\formula{A}}, just={\TRule{\False}{\lif}[3]}
  126. [\sFmla{\False}{\formula{B}}, just={\TRule{\False}{\lif}[3]}, close]
  127. ]
  128. ]
  129. ]
  130. ]
  131. ]
  132. \end{oltableau}
  133. The right branch is now closed. On the left branch, we can still apply
  134. the $\TRule{\True}{\lnot}$ rule to line~$4$. This results
  135. in~$\sFmla{\False}{!A}$ and closes the left branch:
  136. \begin{oltableau}
  137. [\sFmla{\False}{(\lnot \formula{A} \lor \formula{B}) \lif
  138. (\formula{A} \lif \formula{B})}, just=\TAss, checked
  139. [\sFmla{\True}{\lnot \formula{A} \lor \formula{B}},
  140. just={\TRule{\False}{\lif}[1]}, checked
  141. [\sFmla{\False}{(\formula{A} \lif \formula{B})},
  142. just={\TRule{\False}{\lif}[1]}, checked
  143. [\sFmla{\True}{\lnot \formula{A}}, just={\TRule{\True}{\lor}[2]}
  144. [\sFmla{\True}{\formula{A}}, just={\TRule{\False}{\lif}[3]}
  145. [\sFmla{\False}{\formula{B}}, just={\TRule{\False}{\lif}[3]}
  146. [\sFmla{\False}{\formula{A}},
  147. just={\TRule{\True}{\lnot}[4]}, close]
  148. ]
  149. ]
  150. ]
  151. [\sFmla{\True}{\formula{B}}, just={\TRule{\True}{\lor}[2]}
  152. [\sFmla{\True}{\formula{A}}, just={\TRule{\False}{\lif}[3]}
  153. [\sFmla{\False}{\formula{B}},
  154. just={\TRule{\False}{\lif}[3]}, close]
  155. ]
  156. ]
  157. ]
  158. ]
  159. ]
  160. \end{oltableau}
  161. \end{ex}
  162. \begin{ex}
  163. We can give !!{tableau}s for any number of !!{signed formula}s as
  164. assumptions. Often it is also necessary to apply more than one rule
  165. that allows branching; and in general !!a{tableau} can have any number
  166. of branches. For instance, consider !!a{tableau} for
  167. $\{\sFmla{\True}{!A \lor (!B \land !C)}, \sFmla{\False}{(!A \lor !B) \land (!A
  168. \lor !C)}\}$. We start by applying the $\TRule{\True}{\lor}$ to the
  169. first assumption:
  170. \begin{oltableau}
  171. [\sFmla{\True}{\formula{A} \lor (\formula{B} \land \formula{C})},
  172. just=\TAss, checked
  173. [\sFmla{\False}{(\formula{A} \lor \formula{B}) \land
  174. (\formula{A} \lor \formula{C})}, just=\TAss
  175. [\sFmla{\True}{\formula{A}}, just={\TRule{\True}{\lor}[1]}]
  176. [\sFmla{\True}{\formula{B} \land \formula{C}},
  177. just={\TRule{\True}{\lor}[1]}]
  178. ]
  179. ]
  180. \end{oltableau}
  181. Now we can apply the $\TRule{\False}{\land}$ rule to line~$2$. We do
  182. this on both branches simultaneously, and can therefore check off
  183. line~$2$:
  184. \begin{oltableau}
  185. [\sFmla{\True}{\formula{A} \lor (\formula{B} \land \formula{C})},
  186. just=\TAss, checked
  187. [\sFmla{\False}{(\formula{A} \lor \formula{B}) \land
  188. (\formula{A} \lor \formula{C})}, just=\TAss, checked
  189. [\sFmla{\True}{\formula{A}}, just={\TRule{\True}{\lor}[1]}
  190. [\sFmla{\False}{\formula{A} \lor \formula{B}},
  191. just={\TRule{\False}{\land}[2]}]
  192. [\sFmla{\False}{\formula{A} \lor \formula{C}},
  193. just={\TRule{\False}{\land}[2]}]
  194. ]
  195. [\sFmla{\True}{\formula{B} \land \formula{C}},
  196. just={\TRule{\True}{\lor}[1]}
  197. [\sFmla{\False}{\formula{A} \lor \formula{B}},
  198. just={\TRule{\False}{\land}[2]}]
  199. [\sFmla{\False}{\formula{A} \lor \formula{C}},
  200. just={\TRule{\False}{\land}[2]}]
  201. ]
  202. ]
  203. ]
  204. \end{oltableau}
  205. Now we can apply $\TRule{\False}{\lor}$ to all the branches containing
  206. $!A \lor !B$:
  207. \begin{oltableau}
  208. [\sFmla{\True}{\formula{A} \lor (\formula{B} \land \formula{C})},
  209. just=\TAss, checked
  210. [\sFmla{\False}{(\formula{A} \lor \formula{B}) \land
  211. (\formula{A} \lor \formula{C})}, just=\TAss, checked
  212. [\sFmla{\True}{\formula{A}}, just={\TRule{\True}{\lor}[1]}
  213. [\sFmla{\False}{\formula{A} \lor \formula{B}},
  214. just={\TRule{\False}{\land}[2]}, checked
  215. [\sFmla{\False}{\formula{A}}, just={\TRule{\False}{\lor}[4]}
  216. [\sFmla{\False}{\formula{B}},
  217. just={\TRule{\False}{\lor}[4]}, close]
  218. ]
  219. ]
  220. [\sFmla{\False}{\formula{A} \lor \formula{C}},
  221. just={\TRule{\False}{\land}[2]}]
  222. ]
  223. [\sFmla{\True}{\formula{B} \land \formula{C}},
  224. just={\TRule{\True}{\lor}[1]}
  225. [\sFmla{\False}{\formula{A} \lor \formula{B}},
  226. just={\TRule{\False}{\land}[2]}, checked
  227. [\sFmla{\False}{\formula{A}}, just={\TRule{\False}{\lor}[4]}
  228. [\sFmla{\False}{\formula{B}},
  229. just={\TRule{\False}{\lor}[4]}]
  230. ]
  231. ]
  232. [\sFmla{\False}{\formula{A} \lor \formula{C}},
  233. just={\TRule{\False}{\land}[2]}]
  234. ]
  235. ]
  236. ]
  237. \end{oltableau}
  238. The leftmost branch is now closed. Let's now apply
  239. $\TRule{\False}{\lor}$ to $!A \lor !C$:
  240. \begin{oltableau}
  241. [\sFmla{\True}{\formula{A} \lor (\formula{B} \land \formula{C})},
  242. just=\TAss, checked
  243. [\sFmla{\False}{(\formula{A} \lor \formula{B}) \land
  244. (\formula{A} \lor \formula{C})}, just=\TAss, checked
  245. [\sFmla{\True}{\formula{A}}, just={\TRule{\True}{\lor}[1]}
  246. [\sFmla{\False}{\formula{A} \lor \formula{B}},
  247. just={\TRule{\False}{\land}[2]}, checked
  248. [\sFmla{\False}{\formula{A}},
  249. just={\TRule{\False}{\lor}[4]}
  250. [\sFmla{\False}{\formula{B}},
  251. just={\TRule{\False}{\lor}[4]}, close]
  252. ]
  253. ]
  254. [\sFmla{\False}{\formula{A} \lor \formula{C}},
  255. just={\TRule{\False}{\land}[2]}, checked
  256. [\sFmla{\False}{\formula{A}},
  257. just={\TRule{\False}{\lor}[4]}, move by=2
  258. [\sFmla{\False}{\formula{C}},
  259. just={\TRule{\False}{\lor}[4]}, close]
  260. ]
  261. ]
  262. ]
  263. [\sFmla{\True}{\formula{B} \land \formula{C}},
  264. just={\TRule{\True}{\lor}[1]}
  265. [\sFmla{\False}{\formula{A} \lor \formula{B}},
  266. just={\TRule{\False}{\land}[2]}, checked
  267. [\sFmla{\False}{\formula{A}},
  268. just={\TRule{\False}{\lor}[4]}
  269. [\sFmla{\False}{\formula{B}},
  270. just={\TRule{\False}{\lor}[4]}
  271. ]
  272. ]
  273. ]
  274. [\sFmla{\False}{\formula{A} \lor \formula{C}},
  275. just={\TRule{\False}{\land}[2]}, checked
  276. [\sFmla{\False}{\formula{A}},
  277. just={\TRule{\False}{\lor}[4]}, move by=2
  278. [\sFmla{\False}{\formula{C}},
  279. just={\TRule{\False}{\lor}[4]}]
  280. ]
  281. ]
  282. ]
  283. ]
  284. ]
  285. \end{oltableau}
  286. Note that we moved the result of applying $\TRule{\False}{\lor}$ a
  287. second time below for clarity. In this instance it would not have been
  288. needed, since the justifications would have been the same.
  289. Two branches remain open, and $\sFmla{\True}{!B \land !C}$ on line~$3$
  290. remains unchecked. We apply $\TRule{\True}{\land}$ to it to obtain a
  291. closed !!{tableau}:
  292. \begin{oltableau}
  293. [\sFmla{\True}{\formula{A} \lor (\formula{B} \land \formula{C})},
  294. just=\TAss, checked
  295. [\sFmla{\False}{(\formula{A} \lor \formula{B}) \land
  296. (\formula{A} \lor \formula{C})}, just=\TAss, checked
  297. [\sFmla{\True}{\formula{A}}, just={\TRule{\True}{\lor}[1]}
  298. [\sFmla{\False}{\formula{A} \lor \formula{B}},
  299. just={\TRule{\False}{\land}[2]}, checked
  300. [\sFmla{\False}{\formula{A}},
  301. just={\TRule{\False}{\lor}[4]}
  302. [\sFmla{\False}{\formula{B}},
  303. just={\TRule{\False}{\lor}[4]}, close]
  304. ]
  305. ]
  306. [\sFmla{\False}{\formula{A} \lor \formula{C}},
  307. just={\TRule{\False}{\land}[2]}, checked
  308. [\sFmla{\False}{\formula{A}},
  309. just={\TRule{\False}{\lor}[4]}
  310. [\sFmla{\False}{\formula{C}},
  311. just={\TRule{\False}{\lor}[4]}, close]
  312. ]
  313. ]
  314. ]
  315. [\sFmla{\True}{\formula{B} \land \formula{C}},
  316. just={\TRule{\True}{\lor}[1]}, checked
  317. [\sFmla{\False}{\formula{A} \lor \formula{B}},
  318. just={\TRule{\False}{\land}[2]}, checked
  319. [\sFmla{\False}{\formula{A}},
  320. just={\TRule{\False}{\lor}[4]}
  321. [\sFmla{\False}{\formula{B}},
  322. just={\TRule{\False}{\lor}[4]}
  323. [\sFmla{\True}{\formula{B}},
  324. just={\TRule{\True}{\land}[3]}
  325. [\sFmla{\True}{\formula{C}},
  326. just={\TRule{\True}{\land}[3]},close
  327. ]
  328. ]
  329. ]
  330. ]
  331. ]
  332. [\sFmla{\False}{\formula{A} \lor \formula{C}},
  333. just={\TRule{\False}{\land}[2]}, checked
  334. [\sFmla{\False}{\formula{A}},
  335. just={\TRule{\False}{\lor}[4]}
  336. [\sFmla{\False}{\formula{C}},
  337. just={\TRule{\False}{\lor}[4]}
  338. [\sFmla{\True}{\formula{B}},
  339. just={\TRule{\True}{\land}[3]}
  340. [\sFmla{\True}{\formula{C}},
  341. just={\TRule{\True}{\land}[3]},close
  342. ]
  343. ]
  344. ]
  345. ]
  346. ]
  347. ]
  348. ]
  349. ]
  350. \end{oltableau}
  351. For comparison, here's a closed !!{tableau} for the same set of
  352. assumptions in which the rules are applied in a different order:
  353. \begin{oltableau}
  354. [\sFmla{\True}{\formula{A} \lor (\formula{B} \land \formula{C})},
  355. just=\TAss, checked
  356. [\sFmla{\False}{(\formula{A} \lor \formula{B}) \land
  357. (\formula{A} \lor \formula{C})}, just=\TAss, checked
  358. [\sFmla{\False}{\formula{A} \lor \formula{B}},
  359. just={\TRule{\False}{\land}[2]}, checked
  360. [\sFmla{\False}{\formula{A}},
  361. just={\TRule{\False}{\lor}[3]}
  362. [\sFmla{\False}{\formula{B}},
  363. just={\TRule{\False}{\lor}[3]}
  364. [\sFmla{\True}{\formula{A}},
  365. just={\TRule{\True}{\lor}[1]},close
  366. ]
  367. [\sFmla{\True}{\formula{B} \land \formula{C}},
  368. just={\TRule{\True}{\lor}[1]}, checked
  369. [\sFmla{\True}{\formula{B}},
  370. just={\TRule{\True}{\land}[6]}
  371. [\sFmla{\True}{\formula{C}},
  372. just={\TRule{\True}{\land}[6]},close
  373. ]
  374. ]
  375. ]
  376. ]
  377. ]
  378. ]
  379. [\sFmla{\False}{\formula{A} \lor \formula{C}},
  380. just={\TRule{\False}{\land}[2]}, checked
  381. [\sFmla{\False}{\formula{A}},
  382. just={\TRule{\False}{\lor}[3]}
  383. [\sFmla{\False}{\formula{C}},
  384. just={\TRule{\False}{\lor}[3]}
  385. [\sFmla{\True}{\formula{A}},
  386. just={\TRule{\True}{\lor}[1]},close
  387. ]
  388. [\sFmla{\True}{\formula{B} \land \formula{C}},
  389. just={\TRule{\True}{\lor}[1]}, checked
  390. [\sFmla{\True}{\formula{B}},
  391. just={\TRule{\True}{\land}[6]}
  392. [\sFmla{\True}{\formula{C}},
  393. just={\TRule{\True}{\land}[6]},close
  394. ]
  395. ]
  396. ]
  397. ]
  398. ]
  399. ]
  400. ]
  401. ]
  402. \end{oltableau}
  403. \end{ex}
  404. \begin{prob}
  405. Give closed !!{tableau}s of the following:
  406. \begin{enumerate}
  407. \item $\sFmla{\True}{!A \land (!B \land !C)}, \sFmla{\False}{(!A \land !B) \land !C}$.
  408. \item $\sFmla{\True}{!A \lor (!B \lor !C)}, \sFmla{\False}{(!A \lor !B) \lor !C}$.
  409. \item $\sFmla{\True}{!A \lif (!B \lif !C)}, \sFmla{\False}{!B \lif (!A \lif !C)}$.
  410. \item $\sFmla{\True}{!A}, \sFmla{\False}{\lnot\lnot !A}$.
  411. \end{enumerate}
  412. \end{prob}
  413. \begin{prob}
  414. Give closed !!{tableau}s of the following:
  415. \begin{enumerate}
  416. \item $\sFmla{\True}{(!A \lor !B) \lif !C}, \sFmla{\False}{!A \lif !C}$.
  417. \item $\sFmla{\True}{(!A \lif !C) \land (!B \lif !C)}, \sFmla{\False}{(!A \lor !B) \lif !C}$.
  418. \item $\sFmla{\False}{\lnot(!A \land \lnot !A)}$.
  419. \item $\sFmla{\True}{!B \lif !A}, \sFmla{\False}{\lnot !A \lif \lnot !B}$.
  420. \item $\sFmla{\False}{(!A \lif \lnot !A) \lif \lnot !A}$.
  421. \item $\sFmla{\False}{\lnot(!A \lif !B) \lif \lnot !B}$.
  422. \item $\sFmla{\True}{!A \lif !C}, \sFmla{\False}{\lnot (!A \land \lnot !C)}$.
  423. \item $\sFmla{\True}{!A \land \lnot !C}, \sFmla{\False}{\lnot (!A \lif !C)}$.
  424. \item $\sFmla{\True}{!A \lor !B, \lnot !B}, \sFmla{\False}{!A}$.
  425. \item $\sFmla{\True}{\lnot !A \lor \lnot !B}, \sFmla{\False}{\lnot(!A \land !B)}$.
  426. \item $\sFmla{\False}{(\lnot !A \land \lnot !B) \lif\lnot(!A \lor !B)}$.
  427. \item $\sFmla{\False}{\lnot(!A \lor !B) \lif (\lnot !A \land \lnot !B)}$.
  428. \end{enumerate}
  429. \end{prob}
  430. \begin{prob}
  431. Give closed !!{tableau}s of the following:
  432. \begin{enumerate}
  433. \item $\sFmla{\True}{\lnot(!A \lif !B)}, \sFmla{\False}{!A}$.
  434. \item $\sFmla{\True}{\lnot(!A \land !B)}, \sFmla{\False}{\lnot !A \lor \lnot !B}$.
  435. \item $\sFmla{\True}{!A \lif !B}, \sFmla{\False}{\lnot !A \lor !B}$.
  436. \item $\sFmla{\False}{\lnot \lnot !A \lif !A}$.
  437. \item $\sFmla{\True}{!A \lif !B}, \sFmla{\True}{\lnot !A \lif !B}, \sFmla{\False}{!B}$.
  438. \item $\sFmla{\True}{(!A \land !B) \lif !C}, \sFmla{\False}{(!A \lif !C) \lor (!B \lif !C)}$.
  439. \item $\sFmla{\True}{(!A \lif !B) \lif !A}, \sFmla{\False}{!A}$.
  440. \item $\sFmla{\False}{(!A \lif !B) \lor (!B \lif !C)}$.
  441. \end{enumerate}
  442. \end{prob}
  443. \end{document}

content/first-order-logic/tableaux/proving-things-quant.tex

344 lines; SHA-256 72370c12bee0766fb0e674ebae09ec7940f611ff7f9592284dadfe21516b4032. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. % Section: proving-things-quant
  4. \documentclass[../../../include/open-logic-section]{subfiles}
  5. \begin{document}
  6. \olfileid{fol}{tab}{prq}
  7. \olsection{\usetoken{P}{tableau} with Quantifiers}
  8. \begin{ex}
  9. When dealing with quantifiers, we have to make sure not to violate the
  10. eigenvariable condition, and sometimes this requires us to play around
  11. with the order of carrying out certain inferences. In general, it
  12. helps to try and take care of rules subject to the eigenvariable
  13. condition first (they will be higher up in the finished !!{tableau}).
  14. Let's see how we'd give !!a{tableau} for the !!{sentence}
  15. $\lexists[x][\lnot !A(x)] \lif \lnot \lforall[x][!A(x)]$.
  16. Starting as usual, we start by recording the assumption,
  17. \begin{oltableau}
  18. [\sFmla{\False}{\lexists[x][\lnot \formula{A}(x)]\lif \lnot
  19. \lforall[x][\formula{A}(x)]}, just=\TAss]
  20. \end{oltableau}
  21. Since the !!{main operator} is $\lif$, we apply the
  22. $\TRule{\False}{\lif}$:
  23. \begin{oltableau}
  24. [\sFmla{\False}{\lexists[x][\lnot \formula{A}(x)]\lif \lnot
  25. \lforall[x][\formula{A}(x)]}, just=\TAss, checked
  26. [\sFmla{\True}{\lexists[x][\lnot \formula{A}(x)]},
  27. just={\TRule{\False}{\lif}[1]}
  28. [\sFmla{\False}{\lnot\lforall[x][\formula{A}(x)]},
  29. just={\TRule{\False}{\lif}[1]}]
  30. ]
  31. ]
  32. \end{oltableau}
  33. The next line to deal with is~$2$. We use
  34. $\TRule{\True}{\lexists}$. This requires a new !!{constant}; since no
  35. !!{constant}s yet occur, we can pick any one, say,~$a$.
  36. \begin{oltableau}
  37. [\sFmla{\False}{\lexists[x][\lnot \formula{A}(x)]\lif \lnot
  38. \lforall[x][\formula{A}(x)]}, just=\TAss, checked
  39. [\sFmla{\True}{\lexists[x][\lnot \formula{A}(x)]},
  40. just={\TRule{\False}{\lif}[1]}, checked
  41. [\sFmla{\False}{\lnot\lforall[x][\formula{A}(x)]},
  42. just={\TRule{\False}{\lif}[1]}
  43. [\sFmla{\True}{\lnot\formula{A}(a)}, just={\TRule{\True}{\lexists}[2]}]
  44. ]
  45. ]
  46. ]
  47. \end{oltableau}
  48. Now we apply $\TRule{\False}{\lnot}$ to line~$3$:
  49. \begin{oltableau}
  50. [\sFmla{\False}{\lexists[x][\lnot \formula{A}(x)]\lif \lnot
  51. \lforall[x][\formula{A}(x)]}, just=\TAss, checked
  52. [\sFmla{\True}{\lexists[x][\lnot \formula{A}(x)]},
  53. just={\TRule{\False}{\lif}[1]}, checked
  54. [\sFmla{\False}{\lnot\lforall[x][\formula{A}(x)]},
  55. just={\TRule{\False}{\lif}[1]}, checked
  56. [\sFmla{\True}{\lnot\formula{A}(a)}, just={\TRule{\True}{\lexists}[2]}
  57. [\sFmla{\True}{\lforall[x][\formula{A}(x)]},
  58. just = {\TRule{\False}{\lnot}[3]}
  59. ]
  60. ]
  61. ]
  62. ]
  63. ]
  64. \end{oltableau}
  65. We obtain a closed !!{tableau} by applying $\TRule{\True}{\lnot}$ to
  66. line~$4$, followed by $\TRule{\True}{\lforall}$ to line~$5$.
  67. \begin{oltableau}
  68. [\sFmla{\False}{\lexists[x][\lnot \formula{A}(x)]\lif \lnot
  69. \lforall[x][\formula{A}(x)]}, just=\TAss, checked
  70. [\sFmla{\True}{\lexists[x][\lnot \formula{A}(x)]},
  71. just={\TRule{\False}{\lif}[1]}, checked
  72. [\sFmla{\False}{\lnot\lforall[x][\formula{A}(x)]},
  73. just={\TRule{\False}{\lif}[1]}, checked
  74. [\sFmla{\True}{\lnot\formula{A}(a)}, just={\TRule{\True}{\lexists}[2]}
  75. [\sFmla{\True}{\lforall[x][\formula{A}(x)]},
  76. just = {\TRule{\False}{\lnot}[3]}
  77. [\sFmla{\False}{\formula{A}(a)}, just={\TRule{\True}{\lnot}[4]}
  78. [\sFmla{\True}{\formula{A}(a)},
  79. just={\TRule{\True}{\lforall}[5]}, close
  80. ]
  81. ]
  82. ]
  83. ]
  84. ]
  85. ]
  86. ]
  87. \end{oltableau}
  88. \end{ex}
  89. \begin{ex}
  90. Let's see how we'd give !!a{tableau} for the set
  91. \[
  92. \sFmla{\False}{\lexists[x][!C(x,b)]},
  93. \sFmla{\True}{\lexists[x][(!A(x) \land !B(x))]},
  94. \sFmla{\True}{\lforall[x][(!B(x) \lif !C(x,b))]}.
  95. \]
  96. Starting as usual, we start with the assumptions:
  97. \begin{oltableau}
  98. [\sFmla{\False}{\lexists[x][\formula{C}(x,b)]}, just=\TAss
  99. [\sFmla{\True}{\lexists[x][(\formula{A}(x) \land \formula{B}(x))]},
  100. just=\TAss
  101. [\sFmla{\True}{\lforall[x][(\formula{B}(x) \lif \formula{C}(x,b))]},
  102. just=\TAss]
  103. ]
  104. ]
  105. \end{oltableau}
  106. We should always apply a rule with the eigenvariable condition first;
  107. in this case that would be $\TRule{\True}{\lexists}$ to
  108. line~$2$. Since the assumptions contain the !!{constant}~$b$, we have
  109. to use a different one; let's pick~$a$ again.
  110. \begin{oltableau}
  111. [\sFmla{\False}{\lexists[x][\formula{C}(x,b)]}, just=\TAss
  112. [\sFmla{\True}{\lexists[x][(\formula{A}(x) \land \formula{B}(x))]},
  113. just=\TAss, checked
  114. [\sFmla{\True}{\lforall[x][(\formula{B}(x) \lif \formula{C}(x,b))]},
  115. just=\TAss
  116. [\sFmla{\True}{\formula{A}(a) \land \formula{B}(a)},
  117. just={\TRule{\True}{\lexists}[2]}]
  118. ]
  119. ]
  120. ]
  121. \end{oltableau}
  122. If we now apply $\TRule{\False}{\lexists}$ to line~$1$ or
  123. $\TRule{\True}{\lforall}$ to line~$3$, we have to decide which term~$t$
  124. to substitute for~$x$. Since there is no eigenvariable condition for
  125. these rules, we can pick any term we like. In some cases we may even
  126. have to apply the rule several times with different~$t$s. But as a
  127. general rule, it pays to pick one of the terms already occurring in the
  128. !!{tableau}---in this case, $a$ and~$b$---and in this case we can
  129. guess that $a$ will be more likely to result in a closed branch.
  130. \begin{oltableau}
  131. [\sFmla{\False}{\lexists[x][\formula{C}(x,b)]}, just=\TAss
  132. [\sFmla{\True}{\lexists[x][(\formula{A}(x) \land \formula{B}(x))]},
  133. just=\TAss, checked
  134. [\sFmla{\True}{\lforall[x][(\formula{B}(x) \lif \formula{C}(x,b))]}, just=\TAss
  135. [\sFmla{\True}{\formula{A}(a) \land \formula{B}(a)}, just={\TRule{\True}{\lexists}[2]}
  136. [\sFmla{\False}{\formula{C}(a,b)}, just={\TRule{\False}{\lexists}[1]}
  137. [\sFmla{\True}{\formula{B}(a) \lif \formula{C}(a,b)},
  138. just={\TRule{\True}{\lforall}[3]}
  139. ]
  140. ]
  141. ]
  142. ]
  143. ]
  144. ]
  145. \end{oltableau}
  146. We don't check the !!{signed formula}s in lines $1$ and $3$, since we may
  147. have to use them again. Now apply $\TRule{\True}{\land}$ to line~$4$:
  148. \begin{oltableau}
  149. [\sFmla{\False}{\lexists[x][\formula{C}(x,b)]}, just=\TAss
  150. [\sFmla{\True}{\lexists[x][(\formula{A}(x) \land \formula{B}(x))]},
  151. just=\TAss, checked
  152. [\sFmla{\True}{\lforall[x][(\formula{B}(x) \lif \formula{C}(x,b))]}, just=\TAss
  153. [\sFmla{\True}{\formula{A}(a) \land \formula{B}(a)},
  154. just={\TRule{\True}{\lexists}[2]}, checked
  155. [\sFmla{\False}{\formula{C}(a,b)}, just={\TRule{\False}{\lexists}[1]}
  156. [\sFmla{\True}{\formula{B}(a) \lif \formula{C}(a,b)},
  157. just={\TRule{\True}{\lforall}[3]}
  158. [\sFmla{\True}{\formula{A}(a)}, just={\TRule{\True}{\land}[4]}
  159. [\sFmla{\True}{\formula{B}(a)}, just={\TRule{\True}{\land}[4]}
  160. ]
  161. ]
  162. ]
  163. ]
  164. ]
  165. ]
  166. ]
  167. ]
  168. \end{oltableau}
  169. If we now apply $\TRule{\True}{\lif}$ to line~$6$, the !!{tableau} closes:
  170. \begin{oltableau}
  171. [\sFmla{\False}{\lexists[x][\formula{C}(x,b)]}, just=\TAss
  172. [\sFmla{\True}{\lexists[x][(\formula{A}(x) \land \formula{B}(x))]},
  173. just=\TAss, checked
  174. [\sFmla{\True}{\lforall[x][(\formula{B}(x) \lif \formula{C}(x,b))]},
  175. just=\TAss
  176. [\sFmla{\True}{\formula{A}(a) \land \formula{B}(a)},
  177. just={\TRule{\True}{\lexists}[2]}, checked
  178. [\sFmla{\False}{\formula{C}(a,b)},
  179. just={\TRule{\False}{\lexists}[1]}
  180. [\sFmla{\True}{\formula{B}(a) \lif \formula{C}(a,b)},
  181. just={\TRule{\True}{\lforall}[3]}, checked
  182. [\sFmla{\True}{\formula{A}(a)},
  183. just={\TRule{\True}{\land}[4]}
  184. [\sFmla{\True}{\formula{B}(a)},
  185. just={\TRule{\True}{\land}[4]}
  186. [\sFmla{\False}{\formula{B}(a)},
  187. just={\TRule{\True}{\lif}[6]},close
  188. ]
  189. [\sFmla{\True}{\formula{C}(a,b)},
  190. just={\TRule{\True}{\lif}[6]},close
  191. ]
  192. ]
  193. ]
  194. ]
  195. ]
  196. ]
  197. ]
  198. ]
  199. ]
  200. \end{oltableau}
  201. \end{ex}
  202. \begin{ex}
  203. We construct !!a{tableau} for the set
  204. \[
  205. \sFmla{\True}{\lforall[x][!A(x)]}, \sFmla{\True}{\lforall[x][!A(x)]
  206. \lif \lexists[y][!B(y)]}, \sFmla{\True}{\lnot\lexists[y][!B(y)]}.
  207. \]
  208. Starting as usual, we write down the assumptions:
  209. \begin{oltableau}
  210. [\sFmla{\True}{\lforall[x][\formula{A}(x)]}, just=\TAss
  211. [\sFmla{\True}{\lforall[x][\formula{A}(x)] \lif
  212. \lexists[y][\formula{B}(y)]}, just=\TAss
  213. [\sFmla{\True}{\lnot\lexists[y][\formula{B}(y)]}, just=\TAss
  214. ]
  215. ]
  216. ]
  217. \end{oltableau}
  218. We begin by applying the $\TRule{\True}{\lnot}$ rule to line~$3$. A
  219. corollary to the rule ``always apply rules with eigenvariable
  220. conditions first'' is ``defer applying quantifier rules without
  221. eigenvariable conditions until needed.'' Also, defer rules that result
  222. in a split.
  223. \begin{oltableau}
  224. [\sFmla{\True}{\lforall[x][\formula{A}(x)]}, just=\TAss
  225. [\sFmla{\True}{\lforall[x][\formula{A}(x)] \lif
  226. \lexists[y][\formula{B}(y)]}, just=\TAss
  227. [\sFmla{\True}{\lnot\lexists[y][\formula{B}(y)]}, just=\TAss, checked
  228. [\sFmla{\False}{\lexists[y][\formula{B}(y)]}, just={\TRule{\True}{\lnot}[3]}]
  229. ]
  230. ]
  231. ]
  232. \end{oltableau}
  233. The new line~$4$ requires $\TRule{\False}{\lexists}$, a quantifier
  234. rule without the eigenvariable condition. So we defer this in favor of
  235. using $\TRule{\True}{\lif}$ on line~$2$.
  236. \begin{oltableau}
  237. [\sFmla{\True}{\lforall[x][\formula{A}(x)]}, just=\TAss
  238. [\sFmla{\True}{\lforall[x][\formula{A}(x)] \lif
  239. \lexists[y][\formula{B}(y)]}, just=\TAss, checked
  240. [\sFmla{\True}{\lnot\lexists[y][\formula{B}(y)]}, just=\TAss, checked
  241. [\sFmla{\False}{\lexists[y][\formula{B}(y)]},
  242. just={\TRule{\True}{\lnot}[3]},
  243. [\sFmla{\False}{\lforall[x][\formula{A}(x)]}, just={\TRule{\True}{\lif}[2]}]
  244. [\sFmla{\True}{\lexists[y][\formula{B}(y)]}, just={\TRule{\True}{\lif}[2]}]
  245. ]
  246. ]
  247. ]
  248. ]
  249. \end{oltableau}
  250. Both new !!{signed formula}s require rules with eigenvariable conditions, so
  251. these should be next:
  252. \begin{oltableau}
  253. [\sFmla{\True}{\lforall[x][\formula{A}(x)]}, just=\TAss
  254. [\sFmla{\True}{\lforall[x][\formula{A}(x)] \lif
  255. \lexists[y][\formula{B}(y)]}, just=\TAss, checked
  256. [\sFmla{\True}{\lnot\lexists[y][\formula{B}(y)]}, just=\TAss, checked
  257. [\sFmla{\False}{\lexists[y][\formula{B}(y)]},
  258. just={\TRule{\True}{\lnot}[3]}
  259. [\sFmla{\False}{\lforall[x][\formula{A}(x)]}, just={\TRule{\True}{\lif}[2]},checked
  260. [\sFmla{\False}{\formula{A}(b)}, just={\TRule{\False}{\lforall}[5]}]
  261. ]
  262. [\sFmla{\True}{\lexists[y][\formula{B}(y)]}, just={\TRule{\True}{\lif}[2]},checked
  263. [\sFmla{\True}{\formula{B}(c)}, just={\TRule{\True}{\lexists}[5]}]
  264. ]
  265. ]
  266. ]
  267. ]
  268. ]
  269. \end{oltableau}
  270. To close the branches, we have to use the !!{signed formula}s on lines $1$
  271. and~$3$. The corresponding rules (\TRule{\True}{\lforall} and
  272. \TRule{\False}{\lexists}) don't have eigenvariable conditions, so we
  273. are free to pick whichever terms are suitable. In this case, that's
  274. $b$ and~$c$, respectively.
  275. \begin{oltableau}
  276. [\sFmla{\True}{\lforall[x][\formula{A}(x)]}, just=\TAss
  277. [\sFmla{\True}{\lforall[x][\formula{A}(x)] \lif
  278. \lexists[y][\formula{B}(y)]}, just=\TAss, checked
  279. [\sFmla{\True}{\lnot\lexists[y][\formula{B}(y)]}, just=\TAss, checked
  280. [\sFmla{\False}{\lexists[y][\formula{B}(y)]},
  281. just={\TRule{\True}{\lnot}[3]}
  282. [\sFmla{\False}{\lforall[x][\formula{A}(x)]},
  283. just={\TRule{\True}{\lif}[2]},checked
  284. [\sFmla{\False}{\formula{A}(b)},
  285. just={\TRule{\False}{\lforall}[5]}
  286. [\sFmla{\True}{\formula{A}(b)},
  287. just={\TRule{\True}{\lforall}[1]},close
  288. ]
  289. ]
  290. ]
  291. [\sFmla{\True}{\lexists[y][\formula{B}(y)]},
  292. just={\TRule{\True}{\lif}[2]},checked
  293. [\sFmla{\True}{\formula{B}(c)},
  294. just={\TRule{\True}{\lexists}[5]}
  295. [\sFmla{\False}{\formula{B}(c)},
  296. just={\TRule{\False}{\lexists}[4]},close
  297. ]
  298. ]
  299. ]
  300. ]
  301. ]
  302. ]
  303. ]
  304. \end{oltableau}
  305. \end{ex}
  306. \begin{prob}
  307. Give closed !!{tableau}s of the following:
  308. \begin{enumerate}
  309. \item $\sFmla{\False}{(\lforall[x][!A(x)] \land \lforall[y][!B(y)])
  310. \lif \lforall[z][(!A(z) \land !B(z))]}$.
  311. \item $\sFmla{\False}{(\lexists[x][!A(x)] \lor \lexists[y][!B(y)])
  312. \lif \lexists[z][(!A(z) \lor !B(z))]}$.
  313. \item $\sFmla{\True}{\lforall[x][(!A(x) \lif !B)]},
  314. \sFmla{\False}{\lexists[y][!A(y)] \lif !B}$.
  315. \item $\sFmla{\True}{\lforall[x][\lnot !A(x)]},
  316. \sFmla{\False}{\lnot\lexists[x][!A(x)]}$.
  317. \item $\sFmla{\False}{\lnot\lexists[x][!A(x)] \lif \lforall[x][\lnot
  318. !A(x)]}$.
  319. \item $\sFmla{\False}{\lnot\lexists[x][\lforall[y][((!A(x,y) \lif
  320. \lnot !A(y,y)) \land (\lnot !A(y,y) \lif !A(x,y)))]]}$.
  321. \end{enumerate}
  322. \end{prob}
  323. \begin{prob}
  324. Give closed !!{tableau}s of the following:
  325. \begin{enumerate}
  326. \item $\sFmla{\False}{\lnot\lforall[x][!A(x)] \lif \lexists[x][\lnot!A(x)]}$.
  327. \item $\sFmla{\True}{(\lforall[x][!A(x)] \lif !B)}, \sFmla{\False}{\lexists[y][(!A(y) \lif !B)]}$.
  328. \item $\sFmla{\False}{\lexists[x][(!A(x) \lif \lforall[y][!A(y)])]}$.
  329. \end{enumerate}
  330. \end{prob}
  331. \end{document}

content/first-order-logic/tableaux/proof-theoretic-notions.tex

190 lines; SHA-256 bad25c1ba9db9de17f7c2ff5fffa2c4f9f00aa13d23c197e5337fe759d6fdd39. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. % Section: proof-theoretic-notions
  4. \documentclass[../../../include/open-logic-section]{subfiles}
  5. \begin{document}
  6. \iftag{FOL}
  7. {\olfileid{fol}{tab}{ptn}}
  8. {\olfileid{pl}{tab}{ptn}}
  9. \olsection{Proof-Theoretic Notions}
  10. \begin{editorial}
  11. This section collects the definitions of the provability relation
  12. and consistency for tableaux.
  13. \end{editorial}
  14. \begin{explain}
  15. Just as we've defined a number of important semantic notions
  16. (validity, entailment, satisfiability), we now define corresponding
  17. \emph{proof-theoretic notions}. These are not defined by appeal to
  18. satisfaction of !!{sentence}s in !!{structure}s, but by appeal to the
  19. existence of certain closed !!{tableau}x. It was an important
  20. discovery that these notions coincide. That they do is the content of
  21. the \emph{soundness} and \emph{completeness theorems}.
  22. \end{explain}
  23. \begin{defn}[Theorems]
  24. A !!{sentence}~$!A$ is a \emph{theorem} if there is a closed
  25. !!{tableau} for~$\sFmla{\False}{!A}$. We write $\Proves !A$ if $!A$
  26. is a theorem and $\Proves/ !A$ if it is not.
  27. \end{defn}
  28. \begin{defn}[!!^{derivability}]
  29. !!^a{sentence} $!A$ is \emph{!!{derivable} from} a set of
  30. !!{sentence}s~$\Gamma$, $\Gamma \Proves !A$ iff there is a
  31. finite set $\{!B_1, \dots, !B_n\} \subseteq \Gamma$
  32. and a closed !!{tableau} for the set
  33. \[
  34. \{
  35. \sFmla{\False}{!A},
  36. \sFmla{\True}{!B_1}, \dots,
  37. \sFmla{\True}{!B_n}
  38. \}.
  39. \]
  40. If $!A$ is not !!{derivable} from $\Gamma$ we write $\Gamma \Proves/
  41. !A$.
  42. \end{defn}
  43. \begin{defn}[Consistency]
  44. A set of !!{sentence}s~$\Gamma$ is \emph{inconsistent} iff there is a
  45. finite set $\{!B_1, \dots, !B_n\} \subseteq \Gamma$ and a closed
  46. !!{tableau} for the set
  47. \[
  48. \{
  49. \sFmla{\True}{!B_1}, \dots,
  50. \sFmla{\True}{!B_n}
  51. \}.
  52. \]
  53. If $\Gamma$ is not inconsistent, we say it is \emph{consistent}.
  54. \end{defn}
  55. \begin{prop}[Reflexivity]
  56. \ollabel{prop:reflexivity}
  57. If $!A \in \Gamma$, then $\Gamma \Proves !A$.
  58. \end{prop}
  59. \begin{proof}
  60. If $!A \in \Gamma$, $\{!A\}$ is a finite subset of~$\Gamma$ and the !!{tableau}
  61. \begin{oltableau}
  62. [\sFmla{\False}{\formula{A}}, just = \TAss
  63. [\sFmla{\True}{\formula{A}}, just = \TAss,close]
  64. ]
  65. \end{oltableau}
  66. is closed.
  67. \end{proof}
  68. \begin{prop}[Monotonicity]
  69. \ollabel{prop:monotonicity}
  70. If $\Gamma \subseteq \Delta$ and $\Gamma \Proves !A$, then $\Delta
  71. \Proves !A$.
  72. \end{prop}
  73. \begin{proof}
  74. Any finite subset of~$\Gamma$ is also a finite subset of~$\Delta$.
  75. \end{proof}
  76. \begin{prop}[Transitivity]
  77. \ollabel{prop:transitivity}
  78. If $\Gamma \Proves !A$ and $\{!A\} \cup
  79. \Delta \Proves !B$, then $\Gamma \cup \Delta \Proves !B$.
  80. \end{prop}
  81. \begin{proof}
  82. If $\{!A\} \cup \Delta \Proves !B$, then there is a finite subset $\Delta_0 =
  83. \{!C_1, \dots, !C_n\} \subseteq \Delta$ such that
  84. \begin{align*}
  85. \{\sFmla{\False}{!B}, & \sFmla{\True}{!A}, \sFmla{\True}{!C_1},
  86. \dots, \sFmla{\True}{!C_n}\}
  87. \intertext{has a closed !!{tableau}. If $\Gamma \Proves !A$ then there
  88. are $!D_1$, \dots, $!D_m \subseteq \Gamma$ such that}
  89. \{\sFmla{\False}{!A}, & \sFmla{\True}{!D_1},
  90. \dots, \sFmla{\True}{!D_m}\}
  91. \end{align*}
  92. has a closed !!{tableau}.
  93. Now consider the !!{tableau} with assumptions
  94. \[
  95. \sFmla{\False}{!B},
  96. \sFmla{\True}{!C_1}, \dots, \sFmla{\True}{!C_n},
  97. \sFmla{\True}{!D_1}, \dots, \sFmla{\True}{!D_m}.
  98. \]
  99. Apply the \Cut{} rule on~$!A$. This generates two branches, one has
  100. $\sFmla{\True}{!A}$ in it, the other $\sFmla{\False}{!A}$. Thus,
  101. on the one branch, all of
  102. \[
  103. \{\sFmla{\False}{!B}, \sFmla{\True}{!A},
  104. \sFmla{\True}{!C_1}, \dots, \sFmla{\True}{!C_n}\}
  105. \]
  106. are available. Since there is a closed !!{tableau} for these
  107. assumptions, we can attach it to that branch; every branch through
  108. $\sFmla{\True}{!A}$ closes. On the other branch, all of
  109. \[
  110. \{\sFmla{\False}{!A}, \sFmla{\True}{!D_1}, \dots,
  111. \sFmla{\True}{!D_m}\}
  112. \]
  113. are available, so we can also complete the other side to obtain a
  114. closed !!{tableau}. This shows $\Gamma \cup \Delta \Proves !B$.
  115. \end{proof}
  116. Note that this means that in particular if $\Gamma \Proves !A$ and $!A
  117. \Proves !B$, then $\Gamma \Proves !B$. It follows also that if $!A_1,
  118. \dots, !A_n \Proves !B$ and $\Gamma \Proves !A_i$ for each~$i$, then
  119. $\Gamma \Proves !B$.
  120. \begin{prop}
  121. \ollabel{prop:incons}
  122. $\Gamma$ is inconsistent iff $\Gamma \Proves !A$ for every
  123. !!{sentence}~$!A$.
  124. \end{prop}
  125. \begin{proof}
  126. Exercise.
  127. \end{proof}
  128. \tagprob{FOL}
  129. \begin{prob}
  130. Prove \olref[fol][tab][ptn]{prop:incons}
  131. \end{prob}
  132. \tagendprob
  133. \tagprob{notFOL}
  134. \begin{prob}
  135. Prove \olref[pl][tab][ptn]{prop:incons}
  136. \end{prob}
  137. \tagendprob
  138. \begin{prop}[Compactness]
  139. \ollabel{prop:proves-compact}
  140. \begin{enumerate}
  141. \item If $\Gamma \Proves !A$ then there is a finite subset $\Gamma_0
  142. \subseteq \Gamma$ such that $\Gamma_0 \Proves !A$.
  143. \item If every finite subset of~$\Gamma$ is
  144. consistent, then $\Gamma$ is consistent.
  145. \end{enumerate}
  146. \end{prop}
  147. \begin{proof}
  148. \begin{enumerate}
  149. \item If $\Gamma \Proves !A$, then there is a finite subset
  150. $\Gamma_0 = \{!B_1, \dots, !B_n\}$ and a closed !!{tableau} for
  151. \[
  152. \{\sFmla{\False}{!A}, \sFmla{\True}{!B_1}, \dots, \sFmla{\True}{!B_n}\}
  153. \]
  154. This !!{tableau} also shows $\Gamma_0 \Proves !A$.
  155. \item If $\Gamma$ is inconsistent, then for some finite subset
  156. $\Gamma_0 = \{!B_1, \dots, !B_n\}$ there is a closed !!{tableau}
  157. for
  158. \[
  159. \{\sFmla{\True}{!B_1}, \dots, \sFmla{\True}{!B_n}\}
  160. \]
  161. This closed !!{tableau} shows that $\Gamma_0$ is inconsistent.
  162. \end{enumerate}
  163. \end{proof}
  164. \end{document}

content/first-order-logic/tableaux/provability-consistency.tex

150 lines; SHA-256 6d159d1c93f6b4bb24cf3d16e7f18096e15881679ef5f64db5b25cee57cccdef. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. % Section: provability-consistency
  4. \documentclass[../../../include/open-logic-section]{subfiles}
  5. \begin{document}
  6. \iftag{FOL}
  7. {\olfileid{fol}{tab}{prv}}
  8. {\olfileid{pl}{tab}{prv}}
  9. \olsection{\usetoken{S}{derivability} and Consistency}
  10. We will now establish a number of properties of the !!{derivability}
  11. relation. They are independently interesting, but each will play a
  12. role in the proof of the completeness theorem.
  13. \begin{prop}\ollabel{prop:provability-contr}
  14. If $\Gamma \Proves !A$ and $\Gamma \cup \{!A\}$ is
  15. inconsistent, then $\Gamma$ is inconsistent.
  16. \end{prop}
  17. \begin{proof}
  18. There are finite $\Gamma_0 = \{!B_1, \dots, !B_n\}$ and $\Gamma_1
  19. =\{!C_1, \dots, !C_n\} \subseteq \Gamma$ such that
  20. \begin{align*}
  21. \{\sFmla{\False}{!A}, &
  22. \sFmla{\True}{!B_1}, \dots, \sFmla{\True}{!B_n}\} \\
  23. \{\sFmla{\True}{!A}, &
  24. \sFmla{\True}{!C_1}, \dots, \sFmla{\True}{!C_m}\}
  25. \end{align*}
  26. have closed !!{tableau}s. Using the \Cut{} rule on $!A$ we can
  27. combine these into a single closed !!{tableau} that shows $\Gamma_0
  28. \cup \Gamma_1$ is inconsistent. Since $\Gamma_0
  29. \subseteq \Gamma$ and $\Gamma_1 \subseteq \Gamma$, $\Gamma_0 \cup
  30. \Gamma_1 \subseteq \Gamma$, hence $\Gamma$~is inconsistent.
  31. \end{proof}
  32. \begin{prop}
  33. \ollabel{prop:prov-incons}
  34. $\Gamma \Proves !A$ iff $\Gamma \cup \{\lnot !A\}$ is inconsistent.
  35. \end{prop}
  36. \begin{proof}
  37. First suppose $\Gamma \Proves !A$, i.e., there is
  38. a closed !!{tableau} for
  39. \[
  40. \{\sFmla{\False}{!A},
  41. \sFmla{\True}{!B_1}, \dots, \sFmla{\True}{!B_n}\}
  42. \]
  43. Using the $\TRule{\True}{\lnot}$ rule, this can be turned into a
  44. closed !!{tableau} for
  45. \[
  46. \{\sFmla{\True}{\lnot !A},
  47. \sFmla{\True}{!B_1}, \dots, \sFmla{\True}{!B_n}\}.
  48. \]
  49. On the other hand, if there is a closed !!{tableau} for the latter, we
  50. can turn it into a closed !!{tableau} of the former by removing every
  51. formula that results from \TRule{\True}{\lnot} applied to the first
  52. assumption~$\sFmla{\True}{\lnot !A}$ as well as that assumption, and
  53. adding the assumption $\sFmla{\False}{!A}$. For if a branch was closed
  54. before because it contained the conclusion of \TRule{\True}{\lnot}
  55. applied to $\sFmla{\True}{\lnot !A}$, i.e., $\sFmla{\False}{!A}$, the
  56. corresponding branch in the new !!{tableau} is also closed. If a
  57. branch in the old tableau was closed because it contained the
  58. assumption $\sFmla{\True}{\lnot !A}$ as well as $\sFmla{\False}{\lnot
  59. !A}$ we can turn it into a closed branch by applying
  60. $\TRule{\False}{\lnot}$ to $\sFmla{\False}{\lnot !A}$ to obtain
  61. $\sFmla{\True}{!A}$. This closes the branch since we added
  62. $\sFmla{\False}{!A}$ as an assumption.
  63. \end{proof}
  64. \begin{prob}
  65. Prove that $\Gamma \Proves \lnot !A$ iff $\Gamma \cup \{!A\}$ is inconsistent.
  66. \end{prob}
  67. \begin{prop}\ollabel{prop:explicit-inc}
  68. If $\Gamma \Proves !A$ and $\lnot !A \in \Gamma$, then $\Gamma$ is
  69. inconsistent.
  70. \end{prop}
  71. \begin{proof}
  72. Suppose $\Gamma \Proves !A$ and $\lnot !A \in \Gamma$. Then there
  73. are $!B_1$, \dots, $!B_n \in \Gamma$ such that \
  74. \[
  75. \{\sFmla{\False}{!A}, \sFmla{\True}{!B_1}, \dots, \sFmla{\True}{!B_n}\}
  76. \]
  77. has a closed tableau. Replace the assumption \sFmla{\False}{!A} by
  78. \sFmla{\True}{\lnot !A}, and insert the conclusion of
  79. \TRule{\True}{\lnot} applied to \sFmla{\False}{!A} after the
  80. assumptions. Any !!{sentence} in the !!{tableau} justified by appeal
  81. to line~$1$ in the old !!{tableau} is now justified by appeal to
  82. line~$n+1$. So if the old !!{tableau} was closed, the new one is.
  83. It shows that $\Gamma$ is inconsistent, since all assumptions are
  84. in~$\Gamma$.
  85. \end{proof}
  86. \begin{prop}\ollabel{prop:provability-exhaustive}
  87. If $\Gamma \cup \{!A\}$ and $\Gamma \cup \{\lnot !A\}$ are both
  88. inconsistent, then $\Gamma$ is inconsistent.
  89. \end{prop}
  90. \begin{proof}
  91. If there are $!B_1$, \dots, $!B_n \in \Gamma$ and $!C_1$, \dots,
  92. $!C_m \in \Gamma$ such that
  93. \begin{align*}
  94. \{\sFmla{\True}{!A}, &
  95. \sFmla{\True}{!B_1}, \dots, \sFmla{\True}{!B_n}\} \text{ and}\\
  96. \{\sFmla{\True}{\lnot !A}, &
  97. \sFmla{\True}{!C_1}, \dots, \sFmla{\True}{!C_m}\}
  98. \end{align*}
  99. both have closed !!{tableau}s, we can construct a single, combined
  100. !!{tableau} that shows that $\Gamma$ is inconsistent by using as
  101. assumptions $\sFmla{\True}{!B_1}$, \dots, $\sFmla{\True}{!B_n}$
  102. together with $\sFmla{\True}{!C_1}$, \dots, $\sFmla{\True}{!C_m}$,
  103. followed by an application of the \Cut{} rule. This yields two
  104. branches, one starting with $\sFmla{\True}{!A}$, the other with
  105. $\sFmla{\False}{!A}$.
  106. On the left left side, add the part of the first
  107. !!{tableau} below its assumptions. Here, every rule application is still
  108. correct, since each of the assumptions of the first !!{tableau},
  109. including $\sFmla{\True}{!A}$, is available. Thus, every branch
  110. below $\sFmla{\True}{!A}$ closes.
  111. On the right side, add the part of the second !!{tableau} below its
  112. assumption, with the results of any applications
  113. of~$\TRule{\True}{\lnot}$ to $\sFmla{\True}{\lnot !A}$ removed. The
  114. conclusion of $\TRule{\True}{\lnot}$ to $\sFmla{\True}{\lnot !A}$ is
  115. $\sFmla{\False}{!A}$, which is nevertheless available, as it is the
  116. conclusion of the \Cut{} rule on the right side of the combined !!{tableau}.
  117. If a branch in the second tableau was closed because it contained
  118. the assumption $\sFmla{\True}{\lnot !A}$ (which no longer appears as
  119. an assumption in the combined !!{tableau}) as well as
  120. $\sFmla{\False}{\lnot !A}$, we can applying $\TRule{\False}{\lnot}$
  121. to $\sFmla{\False}{\lnot !A}$ to obtain $\sFmla{\True}{!A}$. Now the
  122. corresponding branch in the combined !!{tableau} also closes,
  123. because it contains the right-hand conclusion of the \Cut{} rule,
  124. $\sFmla{\False}{!A}$. If a branch in the second !!{tableau} closed
  125. for any other reason, the corresponding branch in the combined
  126. !!{tableau} also closes, since any !!{signed formula}s other than
  127. $\sFmla{\True}{\lnot !A}$ occurring on the branch in the old, second
  128. !!{tableau} also occur on the corresponding branch in the combined
  129. !!{tableau}.
  130. \end{proof}
  131. \end{document}

content/first-order-logic/tableaux/provability-propositional.tex

175 lines; SHA-256 5df9f0cf1b10689babb2051daad6426e2abee00e55001f14a896d1a37ae30446. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. % Section: provability-propositional
  4. % verification of properties of provability needed for maximally
  5. % consistent sets in the completeness chapter.
  6. \documentclass[../../../include/open-logic-section]{subfiles}
  7. \begin{document}
  8. \iftag{FOL}
  9. {\olfileid{fol}{tab}{ppr}}
  10. {\olfileid{pl}{tab}{ppr}}
  11. \olsection{\usetoken{S}{derivability} and the Propositional Connectives}
  12. \begin{explain}
  13. We establish that the !!{derivability} relation~$\Proves$ of
  14. tableaux is strong enough to establish some basic facts involving
  15. the propositional connectives, such as that $!A \land !B \Proves !A$
  16. and $!A, !A \lif !B \Proves !B$ (modus ponens). These facts are
  17. needed for the proof of the completeness theorem.
  18. \end{explain}
  19. \begin{prop}\ollabel{prop:provability-land}
  20. \begin{enumerate}
  21. \item \ollabel{prop:provability-land-left} Both $!A \land !B \Proves
  22. !A$ and $!A \land !B \Proves !B$.
  23. \item \ollabel{prop:provability-land-right} $!A, !B \Proves !A \land
  24. !B$.
  25. \end{enumerate}
  26. \end{prop}
  27. \begin{proof}
  28. \begin{enumerate}
  29. \item Both $\{\sFmla{\False}{!A}, \sFmla{\True}{!A \land !B}\}$ and
  30. $\{\sFmla{\False}{!B}, \sFmla{\True}{!A \land !B}\}$ have closed
  31. !!{tableau}s
  32. \begin{oltableau}{}
  33. [\sFmla{\False}{\formula{A}}, just=\TAss
  34. [\sFmla{\True}{\formula{A} \land \formula{B}}, just=\TAss
  35. [\sFmla{\True{\formula{A}}},just={\TRule{\True}{\land}[2]}
  36. [\sFmla{\True{\formula{B}}},just={\TRule{\True}{\land}[2]}, close
  37. ]
  38. ]
  39. ]
  40. ]
  41. \end{oltableau}
  42. \begin{oltableau}{}
  43. [\sFmla{\False}{\formula{B}}, just=\TAss
  44. [\sFmla{\True}{\formula{A} \land \formula{B}}, just=\TAss
  45. [\sFmla{\True{\formula{A}}},just={\TRule{\True}{\land}[2]}
  46. [\sFmla{\True{\formula{B}}},just={\TRule{\True}{\land}[2]}, close
  47. ]
  48. ]
  49. ]
  50. ]
  51. \end{oltableau}
  52. \item Here is a closed !!{tableau} for $\{\sFmla{\True}{!A},
  53. \sFmla{\True}{!B}, \sFmla{\False}{!A \land !B}\}$:
  54. \begin{oltableau}
  55. [\sFmla{\False}{\formula{A} \land \formula{B}}, just = \TAss
  56. [\sFmla{\True}{\formula{A}}, just = \TAss
  57. [\sFmla{\True}{\formula{B}}, just=\TAss
  58. [\sFmla{\False}{\formula{A}}, just = {\TRule{\False}{\land}[1]}, close]
  59. [\sFmla{\False}{\formula{B}}, just = {\TRule{\False}{\land}[1]}, close]
  60. ]
  61. ]
  62. ]
  63. \end{oltableau}
  64. \end{enumerate}
  65. \end{proof}
  66. \begin{prop}\ollabel{prop:provability-lor}
  67. \begin{enumerate}
  68. \item $\{!A \lor !B, \lnot !A, \lnot !B\}$ is inconsistent.
  69. \item Both $!A \Proves !A \lor !B$ and $!B \Proves !A \lor !B$.
  70. \end{enumerate}
  71. \end{prop}
  72. \begin{proof}
  73. \begin{enumerate}
  74. \item We give a closed !!{tableau} of $\{\sFmla{\True}{!A \lor !B},
  75. \sFmla{\True}{\lnot !A}, \sFmla{\True}{\lnot !B}\}$:
  76. \begin{oltableau}
  77. [\sFmla{\True}{\formula{A} \lor \formula{B}}, just = \TAss
  78. [\sFmla{\True}{\lnot \formula{A}}, just = \TAss
  79. [\sFmla{\True}{\lnot \formula{B}}, just = \TAss
  80. [\sFmla{\False}{\formula{A}}, just = {\TRule{\True}{\lnot}[2]}
  81. [\sFmla{\False}{\formula{B}}, just = {\TRule{\True}{\lnot}[3]}
  82. [\sFmla{\True}{\formula{A}}, just = {\TRule{\True}{\lor}[1]}, close]
  83. [\sFmla{\True}{\formula{B}}, just = {\TRule{\True}{\lor}[1]}, close]
  84. ]
  85. ]
  86. ]
  87. ]
  88. ]
  89. \end{oltableau}
  90. \item Both $\{\sFmla{\False}{!A \lor !B}, \sFmla{\True}{!A}\}$ and
  91. $\{\sFmla{\False}{!A \lor !B}, \sFmla{\True}{!B}\}$ have closed
  92. !!{tableau}s:
  93. \begin{oltableau}{}
  94. [\sFmla{\False}{\formula{A} \lor \formula{B}}, just=\TAss
  95. [\sFmla{\True}{\formula{A}}, just=\TAss
  96. [\sFmla{\False{\formula{A}}},just={\TRule{\False}{\lor}[1]}
  97. [\sFmla{\False{\formula{B}}},just={\TRule{\False}{\lor}[1]}, close
  98. ]
  99. ]
  100. ]
  101. ]
  102. \end{oltableau}
  103. \begin{oltableau}{}
  104. [\sFmla{\False}{\formula{A} \lor \formula{B}}, just=\TAss
  105. [\sFmla{\True}{\formula{B}}, just=\TAss
  106. [\sFmla{\False{\formula{A}}},just={\TRule{\False}{\lor}[1]}
  107. [\sFmla{\False{\formula{B}}},just={\TRule{\False}{\lor}[1]}, close
  108. ]
  109. ]
  110. ]
  111. ]
  112. \end{oltableau}
  113. \end{enumerate}
  114. \end{proof}
  115. \begin{prop}\ollabel{prop:provability-lif}
  116. \begin{enumerate}
  117. \item \ollabel{prop:provability-lif-left} $!A, !A \lif !B \Proves !B$.
  118. \item \ollabel{prop:provability-lif-right}
  119. Both $\lnot !A \Proves !A \lif !B$ and $!B \Proves !A \lif !B$.
  120. \end{enumerate}
  121. \end{prop}
  122. \begin{proof}
  123. \begin{enumerate}
  124. \item $\{\sFmla{\False}{!B}, \sFmla{\True}{!A \lif !B},
  125. \sFmla{\True}{!A}\}$ has a closed !!{tableau}:
  126. \begin{oltableau}
  127. [\sFmla{\False}{\formula{B}}, just=\TAss
  128. [\sFmla{\True}{\formula{A} \lif \formula{B}}, just=\TAss
  129. [\sFmla{\True}{\formula{A}}, just=\TAss
  130. [\sFmla{\False}{\formula{A}}, just = {\TRule{\True}{\lif}[2]}, close]
  131. [\sFmla{\True}{\formula{B}}, just = {\TRule{\True}{\lif}[2]}, close]
  132. ]
  133. ]
  134. ]
  135. \end{oltableau}
  136. \item Both $\{\sFmla{\False}{!A \lif !B},
  137. \sFmla{\True}{\lnot !A}\}$ and $\{\sFmla{\False}{!A \lif !B},
  138. \sFmla{\True}{!B}\}$ have closed !!{tableau}s:
  139. \begin{oltableau}
  140. [\sFmla{\False}{\formula{A} \lif \formula{B}}, just = \TAss
  141. [\sFmla{\True}{\lnot \formula{A}}, just = \TAss
  142. [\sFmla{\True}{\formula{A}}, just = {\TRule{\False}{\lif}[1]}
  143. [\sFmla{\False}{\formula{B}}, just = {\TRule{\False}{\lif}[1]}
  144. [\sFmla{\False}{\formula{A}}, just = {\TRule{\True}{\lnot}[2]}, close]
  145. ]
  146. ]
  147. ]
  148. ]
  149. \end{oltableau}
  150. \begin{oltableau}
  151. [\sFmla{\False}{\formula{A} \lif \formula{B}}, just = \TAss
  152. [\sFmla{\True}{\formula{B}}, just = \TAss
  153. [\sFmla{\True}{\formula{A}}, just = {\TRule{\False}{\lif}[1]}
  154. [\sFmla{\False}{\formula{B}}, just = {\TRule{\False}{\lif}[1]},close
  155. ]
  156. ]
  157. ]
  158. ]
  159. \end{oltableau}
  160. \end{enumerate}
  161. \end{proof}
  162. \end{document}

content/first-order-logic/tableaux/provability-quantifiers.tex

88 lines; SHA-256 e12b4c0aff44de0e26d0a5c1e9b7ec2a781be5677035cb2c79cad3a7487c32e3. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. % Section: provability-quantifiers
  4. \documentclass[../../../include/open-logic-section]{subfiles}
  5. \begin{document}
  6. \olfileid{fol}{tab}{qpr}
  7. \olsection{\usetoken{S}{derivability} and the Quantifiers}
  8. \begin{explain}
  9. The completeness theorem also requires that the tableaux rules yield
  10. the facts about~$\Proves$ established in this section.
  11. \end{explain}
  12. \begin{thm}
  13. \ollabel{thm:strong-generalization} If $c$ is a constant not occurring
  14. in $\Gamma$ or~$!A(x)$ and $\Gamma \Proves !A(c)$, then $\Gamma
  15. \Proves \lforall[x][!A(x)]$.
  16. \end{thm}
  17. \begin{proof}
  18. Suppose $\Gamma \Proves !A(c)$, i.e., there are $!B_1$, \dots, $!B_n
  19. \in \Gamma$ and a closed !!{tableau} for
  20. \begin{align*}
  21. \{ \sFmla{\False}{!A(c)}, &
  22. \sFmla{\True}{!B_1}, \dots, \sFmla{\True}{!B_n} \}.
  23. \intertext{We have to show that there is also a closed !!{tableau} for}
  24. \{ \sFmla{\False}{\lforall[x][!A(x)]}, &
  25. \sFmla{\True}{!B_1}, \dots, \sFmla{\True}{!B_n} \}.
  26. \end{align*}
  27. Take the closed !!{tableau} and replace the first assumption with
  28. $\sFmla{\False}{\lforall[x][!A(x)]}$, and insert
  29. $\sFmla{\False}{!A(c)}$ after the assumptions.
  30. \begin{center}
  31. \begin{tableau}{not line numbering}
  32. [\sFmla{\False}{\formula{A}(c)}
  33. [\sFmla{\True}{\formula{B}_1}
  34. [\vdots
  35. [\sFmla{\True}{\formula{B}_n},
  36. [][][]]]]]
  37. \end{tableau}\qquad
  38. \begin{tableau}{not line numbering}
  39. [\sFmla{\False}{\lforall[x][\formula{A}(x)]}
  40. [\sFmla{\True}{\formula{B}_1}
  41. [\vdots
  42. [\sFmla{\True}{\formula{B}_n},
  43. [\sFmla{\False}{\formula{A}(c)}
  44. [][][]]]]]]
  45. \end{tableau}
  46. \end{center}
  47. The tableau is still closed, since all !!{sentence}s available as
  48. assumptions before are still available at the top of the
  49. !!{tableau}. The inserted line is the result of a correct application
  50. of $\TRule{\False}{\lforall}$, since the !!{constant}~$c$ does not
  51. occur in $!B_1$, \dots, $!B_n$ or $\lforall[x][!A(x)]$, i.e., it does
  52. not occur above the inserted line in the new !!{tableau}.
  53. \end{proof}
  54. \begin{prop}
  55. \ollabel{prop:provability-quantifiers}
  56. \begin{tagenumerate}{prvEx,prvAll}
  57. \tagitem{prvEx}{$!A(t) \Proves \lexists[x][!A(x)]$.}{}
  58. \tagitem{prvAll}{$\lforall[x][!A(x)] \Proves !A(t)$.}{}
  59. \end{tagenumerate}
  60. \end{prop}
  61. \begin{proof}
  62. \begin{tagenumerate}{prvEx,prvAll}
  63. \tagitem{prvEx}{A closed !!{tableau} for
  64. $\sFmla{\False}{\lexists[x][!A(x)]}, \sFmla{\True}{!A(t)}$ is:
  65. \begin{oltableau}
  66. [\sFmla{\False}{\lexists[x][\formula{A}(x)]}, just = \TAss
  67. [\sFmla{\True}{\formula{A}(t)}, just = \TAss
  68. [\sFmla{\False}{\formula{A}(t)}, just = {\TRule{\False}{\lexists}[1]}, close]]]
  69. \end{oltableau}}{}
  70. \tagitem{prvAll}{A closed !!{tableau} for
  71. $\sFmla{\False}{\formula{A}(t)}, \sFmla{\True}{\lforall[x][!A(x)]}, $ is:
  72. \begin{oltableau}
  73. [\sFmla{\False}{\formula{A}(t)}, just = \TAss
  74. [\sFmla{\True}{\lforall[x][\formula{A}(x)]}, just = \TAss
  75. [\sFmla{\True}{\formula{A}(t)}, just = {\TRule{\True}{\lforall}[2]}, close]]]
  76. \end{oltableau}}{}
  77. \end{tagenumerate}
  78. \end{proof}
  79. \end{document}

content/first-order-logic/tableaux/soundness.tex

240 lines; SHA-256 49f119364f19485fa74c0c18e849f20b746e8edec9fdccb9e98a8aff7250a744. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. % Section: soundness.tex
  4. \documentclass[../../../include/open-logic-section]{subfiles}
  5. \begin{document}
  6. \iftag{FOL}
  7. {\olfileid{fol}{tab}{sou}}
  8. {\olfileid{pl}{tab}{sou}}
  9. \olsection{Soundness}
  10. \begin{explain}
  11. !!^a{derivation} system, such as tableaux, is \emph{sound}
  12. if it cannot !!{derive} things that do not actually hold. Soundness is
  13. thus a kind of guaranteed safety property for !!{derivation} systems.
  14. Depending on which proof theoretic property is in question, we would
  15. like to know for instance, that
  16. \begin{enumerate}
  17. \item every !!{derivable}~$!A$ is \iftag{FOL}{valid}{a tautology};
  18. \item if !!a{sentence} is !!{derivable} from some others, it is also a
  19. consequence of them;
  20. \item if a set of !!{sentence}s is inconsistent, it is unsatisfiable.
  21. \end{enumerate}
  22. These are important properties of !!a{derivation} system. If any of them do
  23. not hold, the !!{derivation} system is deficient---it would !!{derive} too much.
  24. Consequently, establishing the soundness of !!a{derivation} system is of the
  25. utmost importance.
  26. Because all these proof-theoretic properties are defined via closed
  27. !!{tableau}s of some kind or other, proving (1)--(3) above requires
  28. proving something about the semantic properties of closed
  29. !!{tableau}s. We will first define what it means for !!a{signed
  30. formula} to be satisfied in a structure, and then show that if a
  31. !!{tableau} is closed, no structure satisfies all its assumptions.
  32. (1)--(3) then follow as corollaries from this result.
  33. \end{explain}
  34. \begin{defn}
  35. \iftag{FOL}{!!^a{structure}}{!!^a{valuation}}~$\iftag{FOL}{\Struct{M}}{\pAssign{v}}$
  36. \emph{satisfies} !!a{signed formula} $\sFmla{\True}{!A}$ iff
  37. $\iftag{FOL}{\Sat{M}}{\pSat{v}}{!A}$, and it satisfies
  38. $\sFmla{\False}{!A}$ iff
  39. $\iftag{FOL}{\Sat/{M}}{\pSat/{v}}{!A}$. $\iftag{FOL}{\Struct{M}}{\pAssign{v}}$
  40. satisfies a set of !!{signed formula}s~$\Gamma$ iff it satisfies every
  41. $\sFmla{S}{!A} \in \Gamma$. $\Gamma$~is \emph{satisfiable} if there is
  42. \iftag{FOL}{!!a{structure}}{!!a{valuation}} that satisfies it, and
  43. \emph{unsatisfiable} otherwise.
  44. \end{defn}
  45. \begin{thm}[Soundness]
  46. \ollabel{thm:tableau-soundness}
  47. If $\Gamma$ has a closed !!{tableau}, $\Gamma$ is unsatisfiable.
  48. \end{thm}
  49. \begin{proof}
  50. Let's call a branch of !!a{tableau} satisfiable iff the set of
  51. !!{signed formula}s on it is satisfiable, and let's call !!a{tableau}
  52. satisfiable if it contains at least one satisfiable branch.
  53. We show the following: Extending a satisfiable !!{tableau} by one of
  54. the rules of inference always results in a satisfiable !!{tableau}.
  55. This will prove the theorem: any closed !!{tableau} results by
  56. applying rules of inference to the !!{tableau} consisting only of
  57. assumptions from~$\Gamma$. So if $\Gamma$ were satisfiable, any
  58. !!{tableau} for it would be satisfiable. A closed !!{tableau},
  59. however, is clearly not satisfiable: every branch contains both
  60. $\sFmla{\True}{!A}$ and $\sFmla{\False}{!A}$, and no structure can
  61. both satisfy and not satisfy~$!A$.
  62. Suppose we have a satisfiable !!{tableau}, i.e., !!a{tableau} with at
  63. least one satisfiable branch. Applying a rule of inference either adds
  64. !!{signed formula}s to a branch, or splits a branch in two. If the
  65. !!{tableau} has a satisfiable branch which is not extended by the rule
  66. application in question, it remains a satisfiable branch in the
  67. extended !!{tableau}, so the extended tableau is satisfiable. So we
  68. only have to consider the case where a rule is applied to a
  69. satisfiable branch.
  70. Let $\Gamma$ be the set of !!{signed formula}s on that branch, and
  71. let $\sFmla{S}{!A} \in \Gamma$ be the !!{signed formula} to which the
  72. rule is applied. If the rule does not result in a split branch, we
  73. have to show that the extended branch, i.e., $\Gamma$ together with
  74. the conclusions of the rule, is still satisfiable. If the rule results
  75. in a split branch, we have to show that at least one of the two
  76. resulting branches is satisfiable.
  77. First, we consider the possible inferences that do not result in a split branch.
  78. \begin{enumerate}
  79. \item The branch is expanded by applying $\TRule{\True}{\lnot}$ to
  80. $\sFmla{\True}{\lnot !B} \in \Gamma$. Then the extended branch
  81. contains the !!{signed formula}s $\Gamma \cup
  82. \{\sFmla{\False}{!B}\}$. Suppose
  83. $\iftag{FOL}{\Sat{M}}{\pSat{v}}{\Gamma}$. In particular,
  84. $\iftag{FOL}{\Sat{M}}{\pSat{v}}{\lnot !B}$. Thus,
  85. $\iftag{FOL}{\Sat/{M}}{\pSat/{v}}{!B}$, i.e.,
  86. $\iftag{FOL}{\Struct{M}}{\pAssign{v}}$ satisfies
  87. $\sFmla{\False}{!B}$.
  88. \item The branch is expanded by applying $\TRule{\False}{\lnot}$ to
  89. $\sFmla{\False}{\lnot !B} \in \Gamma$: Exercise.
  90. \item The branch is expanded by applying $\TRule{\True}{\land}$ to
  91. $\sFmla{\True}{!B \land !C} \in \Gamma$, which results in two new
  92. !!{signed formula}s on the branch: $\sFmla{\True}{!B}$ and
  93. $\sFmla{\True}{!C}$. Suppose
  94. $\iftag{FOL}{\Sat{M}}{\pSat{v}}{\Gamma}$, in particular
  95. $\iftag{FOL}{\Sat{M}}{\pSat{v}}{!B \land !C}$. Then
  96. $\iftag{FOL}{\Sat{M}}{\pSat{v}}{!B}$ and
  97. $\iftag{FOL}{\Sat{M}}{\pSat{v}}{!C}$. This means that
  98. $\iftag{FOL}{\Struct{M}}{\pAssign{v}}$ satisfies both
  99. $\sFmla{\True}{!B}$ and $\sFmla{\True}{!C}$.
  100. \item The branch is expanded by applying $\TRule{\False}{\lor}$ to
  101. $\sFmla{\False}{!B \lor !C} \in \Gamma$: Exercise.
  102. \item The branch is expanded by applying $\TRule{\False}{\lif}$ to
  103. $\sFmla{\False}{!B \lif !C} \in \Gamma$: This results in two new
  104. !!{signed formula}s on the branch: $\sFmla{\True}{!B}$ and
  105. $\sFmla{\False}{!C}$. Suppose
  106. $\iftag{FOL}{\Sat{M}}{\pSat{v}}{\Gamma}$, in particular
  107. $\iftag{FOL}{\Sat/{M}}{\pSat/{v}}{!B \lif !C}$. Then
  108. $\iftag{FOL}{\Sat{M}}{\pSat{v}}{!B}$ and
  109. $\iftag{FOL}{\Sat/{M}}{\pSat/{v}}{!C}$. This means that
  110. $\iftag{FOL}{\Struct{M}}{\pAssign{v}}$ satisfies both
  111. $\sFmla{\True}{!B}$ and $\sFmla{\False}{!C}$.
  112. \iftag{FOL}{%
  113. \item The branch is expanded by applying $\TRule{\True}{\lforall}$ to
  114. $\sFmla{\True}{\lforall[x][!B(x)]} \in \Gamma$: This results in a
  115. new !!{signed formula}~$\sFmla{\True}{!A(t)}$ on the branch.
  116. Suppose $\Sat{M}{\Gamma}$, in particular,
  117. $\Sat{M}{\lforall[x][!A(x)]}$. By
  118. \olref[syn][sem]{prop:quant-terms}, $\Sat{M}{!A(t)}$. Consequently,
  119. $\Struct{M}$ satisfies $\sFmla{\True}{!A(t)}$.
  120. \item The branch is expanded by applying $\TRule{\False}{\lforall}$ to
  121. $\sFmla{\False}{\lforall[x][!B(x)]} \in \Gamma$: This results in a
  122. new !!{signed formula}~$\sFmla{\False}{!A(a)}$ where $a$ is
  123. !!a{constant} not occurring in~$\Gamma$. Since $\Gamma$ is
  124. satisfiable, there is a $\Struct{M}$ such that $\Sat{M}{\Gamma}$, in
  125. particular $\Sat/{M}{\lforall[x][!B(x)]}$. We have to show that
  126. $\Gamma \cup \{\sFmla{\False}{!A(a)}\}$ is satisfiable. To do this,
  127. we define a suitable~$\Struct{M'}$ as follows.
  128. By \olref[syn][ass]{prop:sat-quant}, $\Sat/{M}{\lforall[x][!B(x)]}$
  129. iff for some $s$, $\Sat/{M}{!B(x)}[s]$. Now let $\Struct{M'}$ be
  130. just like $\Struct{M}$, except $\Assign{a}{M'} = s(x)$. By
  131. \olref[syn][ext]{cor:extensionality-sent}, for any
  132. $\sFmla{\True}{!C} \in \Gamma$, $\Sat{M'}{!C}$, and for any
  133. $\sFmla{\False}{!C} \in \Gamma$, $\Sat/{M'}{!C}$, since $a$ does not
  134. occur in~$\Gamma$.
  135. By \olref[syn][ext]{prop:extensionality}, $\Sat/{M'}{!A(x)}[s]$. By
  136. \olref[syn][ext]{prop:ext-formulas}, $\Sat/{M'}{!A(a)}[s]$. Since
  137. $!A(a)$ is !!a{sentence}, by
  138. \olref[syn][ass]{prop:sentence-sat-true}, $\Sat/{M'}{!A(a)}$, i.e.,
  139. $\Struct{M'}$ satisfies $\sFmla{\False}{!A(a)}$.
  140. \item The branch is expanded by applying $\TRule{\True}{\lexists}$ to
  141. $\sFmla{\True}{\lexists[x][!B(x)]} \in \Gamma$: Exercise.
  142. \item The branch is expanded by applying $\TRule{\False}{\lexists}$ to
  143. $\sFmla{\False}{\lexists[x][!B(x)]} \in \Gamma$: Exercise.}{}
  144. \end{enumerate}
  145. Now let's consider the possible inferences that result in a split branch.
  146. \begin{enumerate}
  147. \item The branch is expanded by applying $\TRule{\False}{\land}$ to
  148. $\sFmla{\False}{!B \land !C} \in \Gamma$, which results in two
  149. branches, a left one continuing through $\sFmla{\False}{!B}$ and a
  150. right one through $\sFmla{\False}{!C}$. Suppose
  151. $\iftag{FOL}{\Sat{M}}{\pSat{v}}{\Gamma}$, in particular
  152. $\iftag{FOL}{\Sat/{M}}{\pSat/{v}}{!B \land !C}$. Then
  153. $\iftag{FOL}{\Sat/{M}}{\pSat/{v}}{!B}$ or
  154. $\iftag{FOL}{\Sat/{M}}{\pSat/{v}}{!C}$. In the former case,
  155. $\iftag{FOL}{\Struct{M}}{\pAssign{v}}$ satisfies
  156. $\sFmla{\False}{!B}$, i.e., $\iftag{FOL}{\Struct{M}}{\pAssign{v}}$
  157. satisfies the formulas on the left branch. In the latter,
  158. $\iftag{FOL}{\Struct{M}}{\pAssign{v}}$ satisfies
  159. $\sFmla{\False}{!C}$, i.e., $\iftag{FOL}{\Struct{M}}{\pAssign{v}}$
  160. satisfies the formulas on the right branch.
  161. \item The branch is expanded by applying $\TRule{\True}{\lor}$ to
  162. $\sFmla{\True}{!B \lor !C} \in \Gamma$: Exercise.
  163. \item The branch is expanded by applying $\TRule{\True}{\lif}$ to
  164. $\sFmla{\True}{!B \lif !C} \in \Gamma$: Exercise.
  165. \item The branch is expanded by \Cut: This results in two branches,
  166. one containing $\sFmla{\True}{!B}$, the other containing
  167. $\sFmla{\False}{!B}$. Since $\iftag{FOL}{\Sat{M}}{\pSat{v}}{\Gamma}$
  168. and either $\iftag{FOL}{\Sat{M}}{\pSat{v}}{!B}$ or
  169. $\iftag{FOL}{\Sat/{M}}{\pSat/{v}}{!B}$,
  170. $\iftag{FOL}{\Struct{M}}{\pAssign{v}}$ satisfies either the left or
  171. the right branch.
  172. \end{enumerate}
  173. \end{proof}
  174. \tagprob{FOL}
  175. \begin{prob}
  176. Complete the proof of \olref[fol][tab][sou]{thm:tableau-soundness}.
  177. \end{prob}
  178. \tagendprob
  179. \tagprob{notFOL}
  180. \begin{prob}
  181. Complete the proof of \olref[pl][tab][sou]{thm:tableau-soundness}.
  182. \end{prob}
  183. \tagendprob
  184. \begin{cor}
  185. \ollabel{cor:weak-soundness}
  186. If $\Proves !A$ then $!A$ is \iftag{FOL}{valid}{a tautology}.
  187. \end{cor}
  188. \begin{cor}
  189. \ollabel{cor:entailment-soundness}
  190. If $\Gamma \Proves !A$ then $\Gamma \Entails !A$.
  191. \end{cor}
  192. \begin{proof}
  193. If $\Gamma \Proves !A$ then for some $!B_1$, \dots, $!B_n \in
  194. \Gamma$, $\{\sFmla{\False}{!A}, \sFmla{\True}{!B_1}, \dots,
  195. \sFmla{\True}{!B_n}\}$ has a closed !!{tableau}. By
  196. \olref{thm:tableau-soundness}, every
  197. \iftag{FOL}{!!{structure}}{!!{valuation}}~$\iftag{FOL}{\Struct{M}}{\pAssign{v}}$
  198. either makes some $!B_i$ false or makes $!A$ true. Hence, if
  199. $\iftag{FOL}{\Sat{M}}{\pSat{v}}{\Gamma}$ then also
  200. $\iftag{FOL}{\Sat{M}}{\pSat{v}}{!A}$.
  201. \end{proof}
  202. \begin{cor}
  203. \ollabel{cor:consistency-soundness}
  204. If $\Gamma$ is satisfiable, then it is consistent.
  205. \end{cor}
  206. \begin{proof}
  207. We prove the contrapositive. Suppose that $\Gamma$ is not consistent.
  208. Then there are $!B_1$, \dots, $!B_n \in \Gamma$ and a closed
  209. !!{tableau} for $\{\sFmla{\True}{!B_1}, \dots, \sFmla{\True}{!B_n}\}$. By
  210. \olref{thm:tableau-soundness}, there is no
  211. $\iftag{FOL}{\Struct{M}}{\pAssign{v}}$ such that
  212. $\iftag{FOL}{\Sat{M}}{\pSat{v}}{!B_i}$ for all $i=1$, \dots,~$n$. But
  213. then $\Gamma$ is not satisfiable.
  214. \end{proof}
  215. \end{document}

content/first-order-logic/tableaux/identity.tex

105 lines; SHA-256 b40df45226792d6995a13afbc4341601207236b40cdb11920e9d48d0c81b2088. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. % Section: identity
  4. \documentclass[../../../include/open-logic-section]{subfiles}
  5. \begin{document}
  6. \olfileid{fol}{tab}{ide}
  7. \olsection{\usetoken{P}{tableau} with \usetoken{S}{identity}}
  8. !!^{tableau}s with !!{identity} require additional inference rules.
  9. The rules for $\eq$ are ($t$, $t_1$, and $t_2$ are closed terms):
  10. \begin{defish}
  11. \AxiomC{}
  12. \RightLabel{$\eq$}
  13. \UnaryInfC{\sFmla{\True}{\eq[t][t]}}
  14. \DisplayProof
  15. \hfill
  16. \AxiomC{\sFmla{\True}{\eq[t_1][t_2]}}
  17. \noLine
  18. \UnaryInfC{\sFmla{\True}{!A(t_1)}}
  19. \RightLabel{$\TRule{\True}{\eq}$}
  20. \UnaryInfC{\sFmla{\True}{!A(t_2)}}
  21. \DisplayProof
  22. \hfill
  23. \AxiomC{\sFmla{\True}{\eq[t_1][t_2]}}
  24. \noLine
  25. \UnaryInfC{\sFmla{\False}{!A(t_1)}}
  26. \RightLabel{$\TRule{\False}{\eq}$}
  27. \UnaryInfC{\sFmla{\False}{!A(t_2)}}
  28. \DisplayProof
  29. \end{defish}
  30. Note that in contrast to all the other rules, $\TRule{\True}{\eq}$ and
  31. $\TRule{\False}{\eq}$ require that \emph{two} signed !!{formula}s
  32. already appear on the branch, namely both $\sFmla{\True}{\eq[t_1][t_2]}$
  33. and $\sFmla{S}{!A(t_1)}$.
  34. \begin{ex}
  35. If $s$ and $t$ are closed terms, then $\eq[s][t], !A(s)
  36. \Proves !A(t)$:
  37. \begin{oltableau}
  38. [\sFmla{\False}{\formula{A}(t)}, just = \TAss
  39. [\sFmla{\True}{\eq[s][t]}, just = \TAss
  40. [\sFmla{\True}{\formula{A}(s)}, just = \TAss
  41. [\sFmla{\True}{\formula{A}(t)}, just={\TRule{\True}{\eq}[2, 3]}, close]
  42. ]
  43. ]
  44. ]
  45. \end{oltableau}
  46. This may be familiar as the principle of substitutability of
  47. identicals, or Leibniz' Law.
  48. !!^{tableau}s prove that $\eq$ is symmetric, i.e., that $\eq[s_1][s_2]
  49. \Proves \eq[s_2][s_1]$:
  50. \begin{oltableau}
  51. [\sFmla{\False}{\eq[s_2][s_1]}, just = \TAss
  52. [\sFmla{\True}{\eq[s_1][s_2]}, just = \TAss
  53. [\sFmla{\True}{\eq[s_1][s_1]}, just = {$\eq$}
  54. [\sFmla{\True}{\eq[s_2][s_1]}, just = {\TRule{\True}{\eq}[2, 3]}, close]
  55. ]
  56. ]
  57. ]
  58. \end{oltableau}
  59. Here, line $2$ is the first prerequisite
  60. !!{formula}~$\sFmla{\True}{\eq[s_1][s_2]}$ of $\TRule{\True}{\eq}$.
  61. Line~$3$ is the second one, of the form $\sFmla{\True}{!A(s_2)}$---think of
  62. $!A(x)$ as
  63. $\eq[x][s_1]$, then $!A(s_1)$ is $\eq[s_1][s_1]$ and $!A(s_2)$ is $\eq[s_2][s_1]$.
  64. They also prove that $\eq$ is transitive, i.e., that $\eq[s_1][s_2],
  65. \eq[s_2][s_3] \Proves \eq[s_1][s_3]$:
  66. \begin{oltableau}
  67. [\sFmla{\False}{\eq[s_1][s_3]}, just = \TAss
  68. [\sFmla{\True}{\eq[s_1][s_2]}, just = \TAss
  69. [\sFmla{\True}{\eq[s_2][s_3]}, just = \TAss
  70. [\sFmla{\True}{\eq[s_1][s_3]}, just = {\TRule{\True}{\eq}[3, 2]}, close]
  71. ]
  72. ]
  73. ]
  74. \end{oltableau}
  75. In this !!{tableau}, the first prerequisite !!{formula} of
  76. $\TRule{\True}{\eq}$ is line~$3$, $\sFmla{\True}{\eq[s_2][s_3]}$
  77. ($s_2$ plays the role of~$t_1$, and $s_3$ the role of~$t_2$). The
  78. second prerequisite, of the form~$\sFmla{\True}{!A(s_2)}$ is line~$2$.
  79. Here, think of $!A(x)$ as $\eq[s_1][x]$; that makes $!A(s_2)$ into
  80. $\eq[t_1][t_2]$ (i.e., line~$2$) and $!A(s_3)$ into the
  81. !!{formula}~$\eq[s_1][s_3]$ in the conclusion.
  82. \end{ex}
  83. \begin{prob}
  84. Give closed !!{tableau}s for the following:
  85. \begin{enumerate}
  86. \item $\sFmla{\False}{\lforall[x][\lforall[y][((x = y \land !A(x))
  87. \lif !A(y))]]}$
  88. \item $\sFmla{\False}{\lexists[x][(!A(x) \land
  89. \lforall[y][(!A(y) \lif y = x)])]}$,\\
  90. $\sFmla{\True}{\lexists[x][!A(x)] \land
  91. \lforall[y][\lforall[z][((!A(y) \land !A(z)) \lif y = z)]]}$
  92. \end{enumerate}
  93. \end{prob}
  94. \end{document}

content/first-order-logic/tableaux/soundness-identity.tex

45 lines; SHA-256 3e9430f5d59a07997815894a8a190147e796825fea24a326dd9f7af6767ad519. Open the byte-exact preserved source file.

  1. % Part: first-order-logic
  2. % Chapter: tableaux
  3. % Section: soundness-identity
  4. \documentclass[../../../include/open-logic-section]{subfiles}
  5. \begin{document}
  6. \olfileid{fol}{tab}{sid}
  7. \olsection{Soundness with \usetoken{S}{identity}}
  8. \begin{prop}
  9. !!^{tableau}s with rules for identity are sound: no closed !!{tableau}
  10. is satisfiable.
  11. \end{prop}
  12. \begin{proof}
  13. We just have to show as before that if !!a{tableau} has a satisfiable
  14. branch, the branch resulting from applying one of the rules for~$\eq$
  15. to it is also satisfiable. Let $\Gamma$ be the set of signed
  16. !!{formula}s on the branch, and let $\Struct{M}$ be !!a{structure}
  17. satisfying~$\Gamma$.
  18. Suppose the branch is expanded using~$\eq$, i.e., by adding the signed
  19. !!{formula}~$\sFmla{\True}{\eq[t][t]}$. Trivially,
  20. $\Sat{M}{\eq[t][t]}$, so $\Struct{M}$ also satisfies $\Gamma \cup
  21. \{\sFmla{\True}{\eq[t][t]}\}$.
  22. If the branch is expanded using $\TRule{\True}{\eq}$, we add a signed
  23. !!{formula}~$\sFmla{S}{!A(t_2)}$, but $\Gamma$ contains
  24. both~$\sFmla{\True}{\eq[t_1][t_2]}$ and $\sFmla{\True}{!A(t_1)}$. Thus
  25. we have $\Sat{M}{\eq[t_1][t_2]}$ and $\Sat{M}{!A(t_1)}$. Let $s$ be a
  26. variable assignment with $s(x) = \Value{t_1}{M}$. By
  27. \olref[syn][ass]{prop:sentence-sat-true}, $\Sat{M}{!A(t_1)}[s]$. Since
  28. $\varAssign{s}{s}{x}$, by \olref[syn][ext]{prop:ext-formulas},
  29. $\Sat{M}{!A(x)}[s]$. since $\Sat{M}{\eq[t_1][t_2]}$, we have
  30. $\Value{t_1}{M} = \Value{t_2}{M}$, and hence $s(x) = \Value{t_2}{M}$.
  31. By applying \olref[syn][ext]{prop:ext-formulas} again, we also have
  32. $\Sat{M}{!A(t_2)}[s]$. By \olref[syn][ass]{prop:sentence-sat-true},
  33. $\Sat{M}{!A(t_2)}$. The case of $\TRule{\False}{\eq}$ is treated
  34. similarly.
  35. \end{proof}
  36. \end{document}