Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
% (find-angg "LATEX/2019derived-rules.tex") % (defun c () (interactive) (find-LATEXsh "lualatex -record 2019derived-rules.tex" :end)) % (defun d () (interactive) (find-pdf-page "~/LATEX/2019derived-rules.pdf")) % (defun d () (interactive) (find-pdftools-page "~/LATEX/2019derived-rules.pdf")) % (defun b () (interactive) (find-zsh "bibtex 2019derived-rules; makeindex 2019derived-rules")) % (defun e () (interactive) (find-LATEX "2019derived-rules.tex")) % (defun u () (interactive) (find-latex-upload-links "2019derived-rules")) % (find-xpdfpage "~/LATEX/2019derived-rules.pdf") % (find-sh0 "cp -v ~/LATEX/2019derived-rules.pdf /tmp/") % (find-sh0 "cp -v ~/LATEX/2019derived-rules.pdf /tmp/pen/") % file:///home/edrx/LATEX/2019derived-rules.pdf % file:///tmp/2019derived-rules.pdf % file:///tmp/pen/2019derived-rules.pdf % http://angg.twu.net/LATEX/2019derived-rules.pdf \documentclass[oneside]{article} \usepackage[colorlinks]{hyperref} % (find-es "tex" "hyperref") \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{pict2e} \usepackage[x11names,svgnames]{xcolor} % (find-es "tex" "xcolor") %\usepackage{tikz} % % (find-dn6 "preamble6.lua" "preamble0") \usepackage{proof} % For derivation trees ("%:" lines) %\input diagxy % For 2D diagrams ("%D" lines) %\xyoption{curve} % For the ".curve=" feature in 2D diagrams % \usepackage{edrx15} % (find-LATEX "edrx15.sty") \input edrxaccents.tex % (find-LATEX "edrxaccents.tex") \input edrxchars.tex % (find-LATEX "edrxchars.tex") \input edrxheadfoot.tex % (find-LATEX "edrxheadfoot.tex") \input edrxgac2.tex % (find-LATEX "edrxgac2.tex") \input 2017planar-has-defs.tex % (find-LATEX "2017planar-has-defs.tex") % \begin{document} \catcode`\^^J=10 \directlua{dofile "dednat6load.lua"} % (find-LATEX "dednat6load.lua") % %L dofile "edrxtikz.lua" -- (find-LATEX "edrxtikz.lua") % %L dofile "edrxpict.lua" -- (find-LATEX "edrxpict.lua") % \pu % _ _ _ _ _ _ % | | ___ __ _(_) ___ (_)_ __ | | | | / \ ___ % | | / _ \ / _` | |/ __| | | '_ \ | |_| | / _ \ / __| % | |__| (_) | (_| | | (__ | | | | | | _ |/ ___ \\__ \ % |_____\___/ \__, |_|\___| |_|_| |_| |_| |_/_/ \_\___/ % |___/ % % «logic-in-HAs» (to ".logic-in-HAs") % (ph1p 14 "logic-in-HAs") \section{Logic in a Heyting Algebra} \label {logic-in-HAs} In sec.\ref{HAs} we saw a set of conditions --- called 1 to 8' --- that characterize the ``Heyting-Algebra-ness'' of a PC-structure. It is easy to see that Heyting-Algebra-ness, or ``HA-ness'', is equivalent to this set of conditions: % $$ \fbox{$ \begin{array}{ll% rrcccc% cc} 1) && ∀P. & (P≤P) & & & & && (\id) \\ && ∀P,Q,R. & (P≤R) &←& (P≤Q) &∧& (Q≤R) && (\comp) \\[5pt] 2) && ∀P. & (P≤⊤) & & & & && (⊤_1) \\ 3) && ∀Q. & (⊥≤Q) & & & & && (⊥_1) \\[10pt] 6) && ∀P,Q,R. & (P≤Q∧R) &→& (P≤Q) & & && (∧_1) \\ && ∀P,Q,R. & (P≤Q∧R) &→& & & (P≤R) && (∧_2) \\ && ∀P,Q,R. & (P≤Q∧R) &←& (P≤Q) &∧& (P≤R) && (∧_3) \\[5pt] 7) && ∀P,Q,R. & (P∨Q≤R) &→& (P≤R) & & && (∨_1) \\ && ∀P,Q,R. & (P∨Q≤R) &→& & & (Q≤R) && (∨_2) \\ && ∀P,Q,R. & (P∨Q≤R) &←& (P≤R) &∧& (Q≤R) && (∨_3) \\[5pt] 8) && ∀P,Q,R. & (P≤Q{→}R) &→& \multicolumn{3}{l}{(P∧Q≤R)} && (→_1) \\ && ∀P,Q,R. & (P≤Q{→}R) &←& \multicolumn{3}{l}{(P∧Q≤R)} && (→_2) \\ \end{array} $} $$ % We omitted the conditions 4 and 5, that defined `$↔$' and `$¬$' in terms of the other operators. The last column of the table gives a name to each of these new conditions. These new conditions let us put (some) proofs about HAs in tree form, as we shall see soon. \def\t{\text} \msk Let us introduce two new notations. The first one, $$(\t{expr})\subst{v_1 := \t{repl}_1 \\ v_2 := \t{repl}_2}$$ indicates simultaneous substitution of all (free) occurrences of the variables $v_1$ and $v_2$ in expr by the replacements $\t{repl}_1$ and $\t{repl}_2$. For example, % $$((x+y)·z) \subst{ x:=a+y \\ y:=b+z \\ z:=c+x \\ } \;\;=\;\; ((a+y)+(b+z))·(c+x). $$ The second is a way to write `$→$'s as horizontal bars. In %: %: L M %: -\ee -----\zeta %: A B C E F H K N O %: -------\aa ----\bb -\gg -\dd --------------------\eta %: D G I J P %: %: ^t1 ^t2 ^t3 ^t4 ^t5 %: $$\pu \ded{t1} \qquad \ded{t2} \qquad \ded{t3} \qquad \ded{t4} \qquad \ded{t5} $$ % the trees mean: % \begin{itemize} \item if $A$, $B$, $C$ are true then $D$ is true (by $\aa$), \item if $E$, $F$, are true then $G$ is true (by $\bb$), \item if $H$ is true then $I$ is true (by $\gg$), \item $J$ is true (by $\dd$, with no hypotheses), \item $K$ is true (by $\ee$); if $L$ and $M$ then $N$ (by $\zeta$); if $K$, $N$, $O$, then $P$ (by $\eta$); combining all this we get a way to prove that if $L$, $M$, $O$, then $P$, \end{itemize} % where $\aa, \bb, \gg, \dd, \ee, \zeta, \eta$ are usually names of rules. \msk The implications in the table in the beginning of this section can be rewritten as ``tree rules'' as: %: %: P≤Q Q≤R %: ----\id ---------\comp -----⊤_1 -----⊥_1 %: P≤P P≤R P≤⊤ ⊥≤Q %: %: ^id ^comp ^T1 ^B1 %: %: P≤Q∧R P≤Q∧R P≤Q P≤R %: ------∧_1 ------∧_2 -----------∧_3 %: P≤Q P≤R P≤Q∧R %: %: ^and1 ^and2 ^and3 %: %: P∨Q≤R P∨Q≤R P≤R Q≤R %: ------∨_1 ------∨_2 -----------∨_3 %: P≤R Q≤R P∨Q≤R %: %: ^or1 ^or2 ^or3 %: %: %: P≤Q{→}R P∧Q≤R %: ---------→_1 ---------→_2 %: P∧Q≤R P≤Q{→}R %: %: ^imp1 ^imp2 %: { \pu $$\ded{id} \qquad \ded{comp} \qquad \ded{T1} \qquad \ded{B1}$$ $$\ded{and1} \qquad \ded{and2} \qquad \ded{and3}$$ $$\ded{or1} \qquad \ded{or2} \qquad \ded{or3}$$ $$\ded{imp1} \qquad \ded{imp2}$$ } \msk Note that the `$∀P,Q,R∈Ω$'s are left implicit in the tree rules, which means that {\sl every substitution instance of the tree rules hold}; sometimes --- but rarely --- we will indicate the substitution explicitly, like this, %: %: P≤Q{→}R P∧Q≤R %: ---------→_1 ---------→_2 %: P∧Q≤R P≤Q{→}R %: %: ^imp1 ^imp2 %: %: P∧(P{→}⊥)≤⊥ %: ------------------→_2\su %: P≤((P{→}⊥){→}⊥) %: %: ^foo %: $$\pu \def\su{\bsm{Q:=P{→}⊥ \\ R:=⊥}} % \begin{array}{rcl} \left(\cded{imp2}\right) \su &\squigto& {\def\su{} \cded{foo}} \\\\ (→_2)\su &\squigto& \cded{foo} \\ \end{array} $$ % Usually we will only say `$→_2$' instead of `$→_2\bsm{Q:=P{→}⊥ \\ R:=⊥}$' at the right of a bar, and the task of discovering which substitution has been used is left to the reader. \msk The tree rules can be composed in a nice visual way. For example, this tree --- let's call it $({∧}{∧})$, %: %: ---------\id ---------\id %: P∧Q≤P∧Q P∧Q≤P∧Q %: ---------∧_1 ---------∧_2 %: P∧Q≤P P≤R P∧Q≤Q Q≤S %: ------------------\comp ------------------\comp %: P∧Q≤R P∧Q≤S %: ------------------------------------∧_3 %: P∧Q≤R∧S %: %: ^foo %: $$\pu \ded{foo} $$ % ``is'' a proof for: % %$$∀P,Q,R,S∈Ω.\; (P ≤_H R)∧(Q ≤_H S) → ((P ∧_H Q) ≤_H (R ∧_H S)).$$ % $$∀P,Q,R,S∈Ω.\; (P ≤ R)∧(Q ≤ S) → ((P ∧ Q) ≤ (R ∧ S)).$$ We can perform substitutions on trees, and the notation will be the same as for tree rules: for example, $({∧}{∧}) \subst{S:=P∧Q}$. % ____ _ _ _ % | _ \ ___ _ __(_)_ _____ __| | _ __ _ _| | ___ ___ % | | | |/ _ \ '__| \ \ / / _ \/ _` | | '__| | | | |/ _ \/ __| % | |_| | __/ | | |\ V / __/ (_| | | | | |_| | | __/\__ \ % |____/ \___|_| |_| \_/ \___|\__,_| |_| \__,_|_|\___||___/ % \subsection{Derived rules} \def\Hs{\{H_1, \ldots, H_n\}} Let be $𝐬{HAT}$ the set of ``Heyting Algebra rules in tree form'' from the last section: % $$𝐬{HAT} = \{(\id), \ldots, (→_2)\}.$$ Let's see a way to treat $𝐬{HAT}$ as a deductive system. If $𝐬S$ is a set of tree rules, we will write: \begin{itemize} \item $𝐬{Trees}(𝐬S)$ for the set of all trees whose bars are all substituion instances of rules in $𝐬S$, \item $𝐬{Trees}(𝐬S, \Hs)$ for the set of all trees in $𝐬{Trees}(𝐬S)$ whose hypotheses are contained in the set $\{H_1, \ldots, H_n\}$, and \item $𝐬{Trees}(𝐬S, \Hs, C)$ for the set of trees in $𝐬{Trees}(𝐬S, \Hs)$ having $C$ as their conclusion. \end{itemize} When the set $𝐬S$ is clear from the context, we write %: %: H_1 \ldots H_n %: ================ %: C %: %: ^fooC %: $$\pu \ded{fooC} $$ % to mean: {\sl we know} a tree in $𝐬{Trees}(𝐬S, \Hs, C)$, and this is an abbreviation for it. I like to think of the double bar as the bellows of a closed accordion: we can see the keys at both sides, but not the drawings painted on the folded part of the pleated cloth. The notation that defines a {\sl derived rule} is ``\textsl{newrule $:=$ expansion}'', where \textsl{expansion} is a tree in $𝐬{Trees}(𝐬S, \Hs, C)$ and \textsl{newrule} is a bar with hypotheses $H_1, \ldots, H_n$ and conclusion $C$, written with a single bar with a (new) rule name, instead of with a double bar. For example, this is a version of Modus Ponens for Heyting Algebras: %: %: ---------\id %: P≤Q{→}R P≤Q Q{→}R≤Q{→}R %: ------------∧_3 ----------→_1 %: P≤Q P≤Q{→}R P≤(Q{→}R){∧}Q (Q{→}R){∧}Q≤R %: ------------\MP := --------------------------\comp %: P≤R P≤R %: %: ^MPL ^MPR %: \pu $$\ded{MPL} \quad := \quad \ded{MPR}$$ After the definition of a derived rule --- say, ``$D_1 := E_1$'' --- the set of allowed tree rules that is implicit from the context is increased, with $D_1$ being added to it; when we define another derived rule, $D_2 := E_2$, its expansion $E_2$ can have bars that are substitution instances of $D_1$. After adding more derived rules, $D_3 := E_3$, $\ldots$, $D_n := E_n$, we can use all the new rules $D_1, \ldots, D_n$ in our trees --- and we have a way to remove all the derived rules from our trees! Take a tree $T∈𝐬{Trees}(𝐬S∪\{D_1, \ldots, D_n\})$; replace each substitution instance of $D_n$ in it by its expansion, then replace every substitution instance of $D_{n-1}$ in the new tree by its expansion, and so on; after replacing all substitution instances of $D_1$ we get a tree in $𝐬{Trees}(𝐬S)$, with the same hypotheses and the same conclusion as the original $T$. We want to add these other derived rules: %: %: -------\id %: Q∧R≤Q∧R %: ------∧E_1 := -------∧_1 %: Q∧R≤Q Q∧R≤Q %: %: ^and4a ^and4b %: %: %: ---------\id %: Q∧R≤Q∧R %: ------∧E_2 := ---------∧_2 %: Q∧R≤R Q∧R≤R %: %: ^and5a ^and5b %: %: ---------\id %: P∨Q≤P∨Q %: ------∨I_1 := ---------∨_1 %: P≤P∨Q P≤P∨Q %: %: ^or4a ^or4b %: %: ---------\id %: P∨Q≤P∨Q %: ------∨I_2 := ---------∨_2 %: Q≤P∨Q Q≤P∨Q %: %: ^or5a ^or5b %: %: %: P∧R≤S Q∧R≤S %: -----→_2 -----→_2 %: P≤R→S Q≤R→S %: ---------------∨_3 %: P∧R≤S Q∧R≤S P∨Q≤R→S %: ------------∨E := ---------→_1 %: (P∨Q)∧R≤R (P∨Q)∧R≤R %: %: ^orE1 ^orE2 %: \pu $$\begin{array}{rcl} \ded{and4a} &:=& \ded{and4b} \\\\ \ded{and5a} &:=& \ded{and5b} \\\\ \ded{or4a} &:=& \ded{or4b} \\\\ \ded{or5a} &:=& \ded{or5b} \\\\ \ded{orE1} &:=& \ded{orE2} \\\\ \end{array} $$ % _ _ _ _ _ _ % | \ | | __ _| |_ _ _ _ __ __ _| | __| | ___ __| | % | \| |/ _` | __| | | | '__/ _` | | / _` |/ _ \/ _` | % | |\ | (_| | |_| |_| | | | (_| | | | (_| | __/ (_| | % |_| \_|\__,_|\__|\__,_|_| \__,_|_| \__,_|\___|\__,_| % \subsection{Natural deduction} The system $𝐬{HAT}$ with all the derived rules of the last section added to it will be called $𝐬{HAND}$: % $$𝐬{HAND} = \{(\id), \ldots, (→_2), (\MP), \ldots, (∨E))\}$$ Trees in Natural Deduction for IPL can be translated into $𝐬{HAND}$ by a method that we will sketch below. Note that this section is not self-contained --- it should be regarded as an introduction to \cite{NegriVonPlato}. \msk This is an example of a tree in Natural Deduction: % % (ntyp 46 "ND-3") % (nty "ND-3") % %: [P]^1 P{→}Q [P]^1 P{→}R %: ------------(→E) ------------(→E) %: Q R %: -------------------(∧I) %: Q{∧}R %: -----------(→I);1 %: P{→}(Q{∧}R) %: %: ^ND-1 %: \pu $$\ded{ND-1}$$ % The ``;1'' in its last bar means: below this point the hypotheses marked with `$[\,·\,]^1$' are ``discharged'' from the list of hypotheses. Each subtree of a ND tree with undischarged hypotheses $H_1, \ldots, H_n$ and conclusion $C$ will be interpreted as {\sl some} tree in $𝐬{HAND}$ with no hypotheses and conclusion $H_1∧\ldots∧H_n≤C$ --- there are usually several possible choices. So: %: %: P P{→}Q %: -------- ==> -----------\MP %: Q P∧(P{→}Q)≤Q %: %: ^a1 ^a2 %: %: P P{→}R %: -------- ==> -----------\MP %: R P∧(P{→}R)≤R %: %: ^b1 ^b2 %: %: Q R %: ----- ==> -----------\id %: Q{∧}R Q{∧}R≤Q{∧}R %: %: ^c1 ^c2 %: %: P P{→}Q P P{→}R %: -------- -------- %: Q R %: ---------------- ==> ========================= %: Q{∧}R ((P{→}R)∧(P{→}Q))∧P≤Q{∧}R %: %: ^d1 ^d2 %: %: [P]^1 P{→}Q [P]^1 P{→}R %: ------------ ------------ %: Q R %: ------------------- ========================= %: Q{∧}R ((P{→}R)∧(P{→}Q))∧P≤Q{∧}R %: -----------(→I);1 ==> -------------------------→_2 %: P{→}(Q{∧}R) (P{→}R)∧(P{→}Q)≤P{→}Q{∧}R %: %: ^e1 ^e2 %: \pu $$\def\becomes{\Longrightarrow} \begin{array}{rcl} \ded{a1} &\becomes& \ded{a2} \\ \\ \ded{b1} &\becomes& \ded{b2} \\ \\ \ded{c1} &\becomes& \ded{c2} \\ \\ \ded{d1} &\becomes& \ded{d2} \\ \\ \ded{e1} &\becomes& \ded{e2} \\ \end{array} $$ The ND rules that are difficult to understand and difficult to translate are the ones that involve discharges: `$(→I)$', that appears above, and `$(∨E)$': %: %: [P]^1 R [Q]^1 R %: ::::::::T_1 ::::::::T_2 =====T_1 =====T_2 %: P∨Q S S P∧R≤S Q∧R≤S %: ----------------------(∨E) ---------------∨E %: S (P∨Q)∧R≤S %: %: ^oE1 ^oE2 %: \pu $$\def\becomes{\Longrightarrow} \begin{array}{rcl} \ded{oE1} &\becomes& \ded{oE2} \\ \end{array} $$ % Note that the derived rule $∨E$ is used to combine the translations of the subtrees $T_1$ and $T_2$ into a translation of the whole ND tree. My suggestion for the readers that are seeing this for the first time is: start by translating the ND tree below to a tree in $𝐬{HAND}$, and then to a tree in $𝐬{HAT}$; then read the relevant parts of \cite{NegriVonPlato} to see how they would do that translation. % % (find-books "__logic/__logic.el" "negri-vonplato") % (find-books "__logic/__logic.el" "van_dalen") % (find-xpdfpage "~/LATEX/2017distributivity.pdf") % (find-LATEXfile "2017distributivity.tex" "fails in some way") %: %: (P∨Q)∧R (P∨Q)∧R %: -------(∧E_2) -------(∧E_2) %: [P]^1 R [Q]^1 R %: ----------(∧I) -----------(∧I) %: (P∨Q)∧R P∧R Q∧R %: -------(∧E_1) ------------(∨I_1) -----------(∨I_2) %: P∨Q (P∧R)∨(Q∧R) (P∧R)∨(Q∧R) %: ----------------------------------------------(∨E);1 %: (P∧R)∨(Q∧R) %: %: ^distr-weird-1 %: $$\pu \ded{distr-weird-1} $$ \end{document} % Local Variables: % coding: utf-8-unix % ee-tla: "dru" % End: