論理式(logical formula)とは、一階言語の変数・定数記号・関数記号・関係記号・結合子・量化記号・括弧を、決まった構成規則で有限回組み合わせて得られる記号列であり、整形式ともいう。論理式は組み立て方がただ 1 通りに読める(一意読み取り)ので、自由変数の集合、項の代入、構造での真偽を、論理式の形に沿った再帰で定められる。自由変数をもたない論理式を文という。可算言語の論理式は可算個である。
「どの元にも、それより大きい元がある」という主張は、記号で $\forall x\,\exists y\,(x< y)$ と書ける。この記号列は、変数 $x,y$、関係記号 $<$、量化記号 $\forall,\exists$、括弧を決まった規則で並べたものである。一方、$\forall x\,\exists y\,(x< y$ や $\forall x\,\forall$ は同じ記号から作った列でも意味をなさない。論理式とは、記号列のうち決まった構成規則で組み立てられたものをいう。論理式の真偽は、論理式ごとに「最後にどの規則を使ったか」をたどって再帰的に定める。そのためには、どの論理式も組み立て方がただ 1 通りに読めることが必要になる。これが、この記事の主定理である一意読み取りの定理である。
以下では一階述語論理の論理式を定める。命題論理の論理式は、項と量化記号を使わない特別な場合にあたる(命題論理 の記事の定義「論理式」。同記事では否定にも括弧を付けて $(\lnot\varphi)$ と書く)。
一階言語 $L$ の記号は次からなる。
どの 2 つの記号も互いに異なり、1 つの記号がほかの記号の並びになっていることはないとする。記号の有限列を記号列という。記号列 $\sigma$ の先頭から始まる部分列を $\sigma$ の始切片といい、空でも $\sigma$ 全体でもない始切片を真の始切片という。
変数は $x,y,z$ などとも書く。たとえば群の言語は定数記号 $e$、2 項関数記号 $\cdot$、1 項関数記号 $\mathrm{inv}$ からなり、順序の言語は 2 項関係記号 $<$ だけからなる。
$L$ の項(term)とは、次の規則を有限回用いて得られる記号列である。
項 $t$ に現れる変数の集合を $\operatorname{var}(t)$ と書く。変数を含まない項を閉項という。
$t_1,t_2,\dots$ を項とする。$t_1=t_2$ と、$n$ 項関係記号 $R$ についての $R(t_1,\dots,t_n)$ を原子論理式という。$L$ の論理式(logical formula、well-formed formula)とは、次の規則を有限回用いて得られる記号列である。
論理式を整形式ともいう。
「有限回用いて得られる」とは、記号列の有限列 $\varphi_0,\varphi_1,\dots,\varphi_k$ で、各 $\varphi_i$ が原子論理式であるか、それより前の $\varphi_j$ から規則 2〜4 の 1 回で得られ、最後の $\varphi_k$ がもとの記号列になるものが存在する、という意味である。この列を構成列という。論理式の全体は、原子論理式を含み規則 2〜4 で閉じた記号列の集合のうち最小のものに一致する。したがって、原子論理式について成り立ち、規則 2〜4 で保たれる性質は、すべての論理式について成り立つ。これを論理式に関する帰納法(構造帰納法)という。項についても同様である。
読みやすさのため、実際の記述では $\cdot(x,y)$ を $x\cdot y$、${<}(x,y)$ を $x< y$ と中置で書き、読み方がはっきりするように括弧を補うことがある。たとえば $\forall x\,\exists y\,(x< y)$ は、正式には $\forall x\,\exists y\,{<}(x,y)$ という記号列である。また、いちばん外側の括弧を省く。$(\varphi\leftrightarrow\psi)$ は $((\varphi\to\psi)\land(\psi\to\varphi))$ の略記とする。
論理式は、葉に原子論理式を置き、内部の節点に $\lnot$、$\land$、$\forall x$ などを置いた木を 1 列に書き下したものである。$\lnot\varphi$ は根が $\lnot$ で子が $\varphi$ の木、$(\varphi\land\psi)$ は根が $\land$ で子が $\varphi,\psi$ の木にあたる。括弧は、1 列に書いたときに木の形を復元できるようにするための記号である。一意読み取りの定理は、この復元がいつでもただ 1 通りにできることを保証する。
群の言語 $\{e,\cdot,\mathrm{inv}\}$ で、$x$、$\mathrm{inv}(x)$、$\cdot(x,\mathrm{inv}(x))$ はこの順に規則を 1 回ずつ使って得られる項である。原子論理式 $\cdot(x,\mathrm{inv}(x))=e$ に規則 4 を使うと、論理式
$$
\forall x\,(x\cdot\mathrm{inv}(x)=e)
$$
が得られる(中置で書いた)。同様に
$$
\forall x\,\exists y\,((x\cdot y=e)\land(y\cdot x=e))
$$
は、原子論理式 $x\cdot y=e$ と $y\cdot x=e$ に規則 3、規則 4($\exists y$)、規則 4($\forall x$)の順に使って得られる。この 5 つの記号列を並べたものが構成列になる。
順序の言語 $\{<\}$ で考える。
| 記号列 | 論理式か | 理由 |
|---|---|---|
| $\forall x\,\exists y\,{<}(x,y)$ | はい | 原子論理式 ${<}(x,y)$ に規則 4 を 2 回 |
| $\forall x\,\exists y\,{<}(x,y$ | いいえ | 左括弧が右括弧より多い。論理式では両者の個数が等しい(rem-logical-formula-brackets) |
| $(x< y)< z$ | いいえ | $<$ の引数は項でなければならないが、$x< y$ は項でない |
| $\forall x$ | いいえ | 規則 4 は論理式の前に $\forall x$ を付ける規則である |
| $\forall x\,(y< z)$ | はい | 束縛する変数が現れなくてもよい |
| $\forall x\,\forall x\,(x< x)$ | はい | 同じ変数を 2 回量化してもよい |
| $x< y\land y< z$ | 略記 | 正式には $({<}(x,y)\land{<}(y,z))$ |
量化記号の後に来るのは変数だけである。関係記号や集合を量化する $\forall R\,\varphi$ のような記号列は一階の論理式ではない。
一意読み取りや、後で扱う代入と個数の性質は、定義のどの部分に支えられているか。条件を外すと崩れることを次の表にまとめる。
| 外す条件 | 反例 | 成り立たなくなること |
|---|---|---|
| 2 項結合子に括弧を付ける | $A\land B\lor C$($A,B,C$ は原子論理式) | 一意読み取り(2 通りに読め、真理値が異なりうる) |
| 関数記号の項数を固定する | 括弧とコンマを使わず $fgxy$ と書き、$f,g$ の項数を 1 か 2 とする | 項の一意読み取り($f(g(x,y))$ とも $f(g(x),y)$ とも読める) |
| 代入する項が束縛されない | $\exists y\,\lnot(x=y)$ の $x$ に $y$ を代入 | 代入の意味(ex-logical-formula-capture) |
| 論理式の長さが有限 | 可算無限個の論理式の連言を許す | 可算言語の論理式が可算個であること(thm-logical-formula-countable の後の注意) |
2 項結合子に括弧を付けない規則「$\varphi,\psi$ が論理式なら $\varphi\land\psi$、$\varphi\lor\psi$ も論理式」を採ると、$A\land B\lor C$ は $(A\land B)\lor C$ とも $A\land(B\lor C)$ とも組み立てられる。$A$ が偽、$B$ と $C$ が真のとき、前者は真、後者は偽である。この規則は、読み方が一意であるという結論(thm-logical-formula-unique-readability)を破り、論理式の真偽を組み立て方から定めることができなくなる。
2 行目の反例は、括弧とコンマを省いた書き方($f(g(x),y)$ を $fgxy$ と書く Polish 記法)そのものが悪いのではなく、項数が決まっていないことが原因である。一意読み取りに必要なのは、読み方を決める情報が記号列の中に含まれていることであり、この記事の定義では括弧・コンマと固定された項数がその役を担う。
記号列 $\sigma$ の左括弧の個数から右括弧の個数を引いた数を $b(\sigma)$ と書く。
すべての項 $t$ と論理式 $\varphi$ について $b(t)=0$、$b(\varphi)=0$ である。項については変数・定数記号で $0$、$f(t_1,\dots,t_n)$ で $1+\sum_i b(t_i)-1=0$ となる。論理式については、原子論理式が項の場合から $0$、規則 2・4 は括弧を増やさず、規則 3 は左右の括弧を 1 つずつ加えるので、構造帰納法で従う。
項 $t$ の真の始切片 $\sigma$ は、ただ 1 つの関数記号からなるか、$b(\sigma)>0$ を満たす。特に、項の真の始切片は項でない。したがって、2 つの項 $t,t'$ の一方が他方の始切片ならば $t=t'$ である。
変数と定数記号は長さ $1$ なので真の始切片をもたない。$t=f(t_1,\dots,t_n)$ とし、各 $t_i$ について主張が成り立つとする。$t$ の真の始切片 $\sigma$ は、$f$ だけか、$f($ に続けて記号列 $\tau$ を並べたものである。後者の場合、$\tau$ は $t_1,\dots,t_{k-1}$ とコンマを並べた後に $t_k$ の始切片 $\rho$(空・真の始切片・$t_k$ 全体のいずれか)を続けたものか、$t_1,\dots,t_n$ とコンマをすべて並べたもの(最後の右括弧を除いたもの)である。rem-logical-formula-brackets により $b(t_i)=0$ であり、帰納法の仮定により $b(\rho)\ge0$ である($\rho$ が 1 つの関数記号のときも $0$)。よって $b(\sigma)=1+b(\tau)\ge1$ である。
項 $s$ が $t$ の真の始切片だとすると、$b(s)=0$ だから $s$ は 1 つの関数記号でなければならない。しかし項数 $n\ge1$ の関数記号だけの記号列は項でない。よって項の真の始切片は項でない。最後の主張は、$t\ne t'$ なら短いほうが長いほうの真の始切片になることから従う。$\square$
2 つの記号列の一方が他方の始切片であるとき、両者は比較可能であるということにする。
論理式 $\varphi,\varphi'$ が比較可能ならば $\varphi=\varphi'$ である。特に、論理式の真の始切片は論理式でない。
$\varphi$ の長さについての帰納法で示す。長さが $\varphi$ より短いすべての論理式 $\psi$ と、$\psi$ と比較可能なすべての論理式 $\psi'$ について $\psi=\psi'$ が成り立つと仮定する。$\varphi,\varphi'$ のうち長いほうを $W$ とすると、両者はともに $W$ の始切片である。
論理式の最初の記号は、形ごとに次のとおり決まっている:$t_1=t_2$ なら項の最初の記号(変数・定数記号・関数記号)、$R(t_1,\dots,t_n)$ なら $R$、$\lnot\psi$ なら $\lnot$、$(\psi\ast\chi)$ なら左括弧、$\forall x\,\psi$ なら $\forall$、$\exists x\,\psi$ なら $\exists$。これらは互いに異なる記号の種類なので、$\varphi$ と $\varphi'$ の最初の記号が等しいことから、両者は同じ形である。
いずれの場合も $\varphi=\varphi'$ である。$\square$
どの形かは最初の記号で決まる(prf-logical-formula-prefix の第 2 段落。項では、変数・定数記号・関数記号が互いに異なる記号であることによる)。したがって、ちょうど 1 つの形である。
成分の一意性:たとえば $(\psi\ast\chi)=(\psi'\ast'\chi')$ なら、2 文字目から始まる $\psi,\psi'$ は比較可能なので lem-logical-formula-prefix により $\psi=\psi'$ であり、続いて $\ast=\ast'$、$\chi=\chi'$ となる。ほかの形も、prf-logical-formula-prefix の各場合と同じく、成分を左から順に lem-logical-formula-term-prefix または lem-logical-formula-prefix で決めていけばよい。項 $f(t_1,\dots,t_n)=f(s_1,\dots,s_n)$ についても、$t_1=s_1$ から順に同じ議論をする。$\square$
一意読み取りにより、論理式の組み立て方に沿った再帰的な定義が矛盾なくできる。論理式 $\varphi$ に値を定めるとき、$\varphi$ の形とその成分がただ 1 通りに決まるので、「最後に使った規則」に応じて成分の値から $\varphi$ の値を定めればよい。次の自由変数や代入の定義、一階述語論理 の記事での充足関係の定義は、すべてこの形の再帰である。
論理式 $\varphi$ の自由変数の集合 $\operatorname{FV}(\varphi)$ を次の再帰で定める。
$$
\operatorname{FV}(t_1=t_2)=\operatorname{var}(t_1)\cup\operatorname{var}(t_2),\qquad
\operatorname{FV}(R(t_1,\dots,t_n))=\bigcup_{i=1}^n\operatorname{var}(t_i),
$$
$$
\operatorname{FV}(\lnot\psi)=\operatorname{FV}(\psi),\qquad
\operatorname{FV}((\psi\ast\chi))=\operatorname{FV}(\psi)\cup\operatorname{FV}(\chi),\qquad
\operatorname{FV}(\forall x\,\psi)=\operatorname{FV}(\exists x\,\psi)=\operatorname{FV}(\psi)\setminus\{x\}.
$$
$\operatorname{FV}(\varphi)=\emptyset$ である論理式を文(sentence)または閉じた論理式という。
変数の個々の出現で言い換えると、$x$ のある出現が $\varphi$ の部分論理式 $\forall x\,\psi$ または $\exists x\,\psi$ の中にあるとき、その出現は束縛されているといい、そうでない出現を自由な出現という。$\operatorname{FV}(\varphi)$ は自由な出現をもつ変数の集合である。自由変数が $x_1,\dots,x_n$ の中にあることを明示して $\varphi(x_1,\dots,x_n)$ と書くことが多い。
順序の言語で $\varphi=(\forall x\,(x< y)\land x< z)$ とする。
$$
\operatorname{FV}(\varphi)=(\{x,y\}\setminus\{x\})\cup\{x,z\}=\{x,y,z\}.
$$
$x$ の 1 つ目・2 つ目の出現($\forall x$ の直後と $x< y$ の中)は束縛され、3 つ目の出現($x< z$ の中)は自由である。このように、同じ変数が 1 つの論理式の中で束縛された出現と自由な出現を両方もつことがある。$\forall z\,\forall y\,\forall x\,\varphi$ は文である。
論理式であることと文であることは別の条件であり、文であることと真であることもまた別の条件である。文の真偽は構造を 1 つ決めると定まり、自由変数をもつ論理式は構造と変数への値の割り当てを決めて初めて充足するかどうかが定まる(一階述語論理 の記事の定義「充足関係」)。
$x$ を変数、$s$ を項とする。項 $t$ の中の $x$ をすべて $s$ に置き換えた項を $t[s/x]$ と書く。論理式 $\varphi$ の自由な出現の $x$ だけを $s$ に置き換えた論理式 $\varphi[s/x]$ を次の再帰で定める。
$$
(t_1=t_2)[s/x]=(t_1[s/x]=t_2[s/x]),\qquad R(t_1,\dots,t_n)[s/x]=R(t_1[s/x],\dots,t_n[s/x]),
$$
$(\lnot\psi)[s/x]=\lnot(\psi[s/x])$、$(\psi\ast\chi)[s/x]=(\psi[s/x]\ast\chi[s/x])$ とし、量化記号については
$$
(\forall y\,\psi)[s/x]=\begin{cases}\forall y\,\psi&(y=x),\\ \forall y\,(\psi[s/x])&(y\ne x)\end{cases}
$$
とする($\exists$ も同じ)。
$s$ が $\varphi$ の $x$ に代入可能であることを次の再帰で定める。原子論理式ではいつも代入可能とする。$\lnot\psi$ ではそれが $\psi$ で代入可能であること、$(\psi\ast\chi)$ では $\psi$ と $\chi$ の両方で代入可能であることとする。$\forall y\,\psi$($\exists y\,\psi$ も同じ)では、$x\notin\operatorname{FV}(\forall y\,\psi)$ であるか、または「$y\notin\operatorname{var}(s)$ かつ $s$ が $\psi$ の $x$ に代入可能」であることとする。
代入可能とは、置き換えた $s$ の変数がどれも量化記号に捕まらないことを意味する。
$\varphi=\exists y\,\lnot(x=y)$ は「$x$ と異なる元がある」を表し、$\operatorname{FV}(\varphi)=\{x\}$ である。$y$ は $\varphi$ の $x$ に代入可能でない($x\in\operatorname{FV}(\varphi)$ かつ $y\in\operatorname{var}(y)$)。実際に置き換えると $\varphi[y/x]=\exists y\,\lnot(y=y)$ となり、これはどの構造でも偽である。一方、$\varphi$ の $x$ に $y$ の値を割り当てたものは、台集合が 2 元以上なら真である。つまり、代入可能という条件を外すと「$\varphi[s/x]$ は、$x$ に $s$ の値を割り当てた $\varphi$ と同じ意味をもつ」という性質(一階述語論理 の記事の補題「代入補題」)が破れる。束縛変数の名前を先に替えて $\exists z\,\lnot(x=z)$ としてから代入すれば、$\exists z\,\lnot(y=z)$ という正しい結果が得られる。
$x$ を変数、$s$ を項、$\varphi$ を論理式とする。
まず項について、$x\notin\operatorname{var}(t)$ なら $t[s/x]=t$、$x\in\operatorname{var}(t)$ なら $\operatorname{var}(t[s/x])=(\operatorname{var}(t)\setminus\{x\})\cup\operatorname{var}(s)$ である。変数・定数記号では定義から直ちに分かり、$f(t_1,\dots,t_n)$ では、$x$ を含む $t_i$ が少なくとも 1 つあるので、各 $t_i$ の式の和集合をとればよい($x$ を含まない $t_i$ では $\operatorname{var}(t_i)\setminus\{x\}=\operatorname{var}(t_i)$)。
原子論理式・$\lnot$・$\ast$ の場合は、項の場合と同じく成分についての式の和集合をとればよい。$\varphi=\forall y\,\psi$ の場合を示す($\exists$ も同じ)。
1:$y=x$ なら定義により $\varphi[s/x]=\varphi$ である。$y\ne x$ なら、$x\notin\operatorname{FV}(\psi)\setminus\{y\}$ と $x\ne y$ から $x\notin\operatorname{FV}(\psi)$ であり、帰納法の仮定により $\varphi[s/x]=\forall y\,(\psi[s/x])=\forall y\,\psi=\varphi$ である。
2:$x\in\operatorname{FV}(\varphi)=\operatorname{FV}(\psi)\setminus\{y\}$ なので $y\ne x$ かつ $x\in\operatorname{FV}(\psi)$ である。代入可能性の定義により $y\notin\operatorname{var}(s)$ であり、$s$ は $\psi$ の $x$ に代入可能である。帰納法の仮定により
$$
\operatorname{FV}(\varphi[s/x])=\operatorname{FV}(\psi[s/x])\setminus\{y\}=\bigl((\operatorname{FV}(\psi)\setminus\{x\})\cup\operatorname{var}(s)\bigr)\setminus\{y\}.
$$
$y\notin\operatorname{var}(s)$ なので右辺は $(\operatorname{FV}(\psi)\setminus\{x,y\})\cup\operatorname{var}(s)=(\operatorname{FV}(\varphi)\setminus\{x\})\cup\operatorname{var}(s)$ に等しい。$\square$
2 の等式は、代入可能でないと成り立たない。$\varphi=\forall y\,(x=y)$、$s=y$ とすると $\varphi[y/x]=\forall y\,(y=y)$ は文だが、右辺は $\{y\}$ である。$s$ の変数 $y$ が量化記号に捕まって自由でなくなったためである。
$L$ の非論理記号が有限個または可算無限個ならば、$L$ の論理式の全体は可算無限集合である。
変数は可算無限個、そのほかの論理記号は有限個なので、記号全体の集合 $A$ は可算であり、単射 $e\colon A\to\mathbb{N}$ が 1 つとれる。長さ $n\ge1$ の記号列 $a_1a_2\cdots a_n$ に自然数
$$
c(a_1a_2\cdots a_n)=p_1^{\,e(a_1)+1}p_2^{\,e(a_2)+1}\cdots p_n^{\,e(a_n)+1}
$$
を対応させる。ここで $p_i$ は $i$ 番目の素数である。素因数分解の一意性により、$c$ の値から長さ $n$(現れる素数の個数)と各指数 $e(a_i)+1$ が読み取れ、$e$ が単射なので各 $a_i$ が決まる。よって $c$ は記号列全体から $\mathbb{N}$ への単射であり、論理式の全体は可算集合である。一方、$v_0=v_0,\ v_1=v_1,\ v_2=v_2,\dots$ は互いに異なる論理式なので、論理式の全体は無限集合である。$\square$
この証明は具体的な単射を作るので、選択公理 を使わない。論理式を $\varphi_0,\varphi_1,\varphi_2,\dots$ と一列に並べられることは、Gödelの完全性定理 の証明(無矛盾な文の集合を 1 つずつ文を加えて極大にする段階)で使われる。
有限の長さという条件は外せない。定数記号 $c_0,c_1,c_2,\dots$ をもつ可算言語で、可算無限個の論理式の連言 $\bigwedge_{n\in S}(x=c_n)$ を論理式として許すと、$\mathbb{N}$ の相異なる無限部分集合 $S$ ごとに相異なる記号列ができ、無限部分集合は非可算個あるので、それだけで論理式が非可算個になる。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する