情報数理演習A

6回目:述語論理

6.1 述語

変数 (variable) $x$を含む命題$P(x)$を述語という.
述語は変数$x$に具体的な値を代入することによって命題となる. 変数を増やして$P(x_1,x_2,\ldots,x_n)$という命題も考えられる.

6.2 全称命題と存在命題

述語$P(x)$に対して,「集合$A$のすべての$x$について$P(x)$である」という命題を全称命題といい, $\forall x \in A (P(x))$,または単に$\forall x(P(x))$と書く.$\forall$は全称記号と呼ばれる(for allを表す).
例えば,$x$が$A=\{1,2,3,4,5\}$を動くなら, \[ \forall x \in A (P(x)) \Leftrightarrow P(1) \land P(2) \land P(3) \land P(4) \land P(5) \] を意味している.
述語$P(x)$に対して,「集合$A$のある$x$について$P(x)$である」という命題を存在命題といい, $\exists x \in A (P(x))$,または単に$\exists x(P(x))$と書く.$\exists$は存在記号と呼ばれる(existを表す).
例えば,$x$が$A=\{1,2,3,4,5\}$を動くなら, \[ \exists x \in A (P(x)) \Leftrightarrow P(1) \lor P(2) \lor P(3) \lor P(4) \lor P(5) \] を意味している. よって,次の推論が成り立つ. \[ \forall x (P(x)) \Rightarrow \exists x (P(x)) \] 複数の変数に対して$\forall$または$\exists$が連続で出てくる場合,例えば,$\forall x( \exists y ( P(x,y)))$の場合は$\forall x \exists y (P(x,y))$のように記号の前のカッコを省略する. 複数の変数に対して$\forall$と$\exists$の両方が出てくる場合,順番が非常に重要となる.例えば, \[ \forall x \exists y (P(x,y)) \] は「すべての$x$について,その$x$ごと対して,ある$y$について$P(x,y)$である」 ということであり, \[ \exists x \forall y (P(x,y)) \] は「ある$x$について,少なくともその$x$に対して,すべての$y$について$P(x,y)$である」 ということである.

6.3 述語論理での推論

述語$P(x)$, $Q(x)$について,次の式が成り立つ. \begin{eqnarray} \forall x (P(x) \land Q(x)) & \Leftrightarrow & \forall x (P(x)) \land \forall x (Q(x)) \nonumber \\ \exists x (P(x) \lor Q(x)) & \Leftrightarrow & \exists x (P(x)) \lor \exists x (Q(x)) \nonumber \end{eqnarray} 全称記号,あるいは,存在記号を含む命題の否定について,次の式が成り立つ. \begin{eqnarray} \lnot(\forall x (P(x))) & \Leftrightarrow & \exists x (\lnot P(x)) \nonumber \\ \lnot(\exists x (P(x))) & \Leftrightarrow & \forall x (\lnot P(x)) \nonumber \end{eqnarray} なぜ$\forall$と$\exists$が入れ替わるかは,例えば$x$が$5$以下の自然数を動くなら,ド・モルガンの法則より \begin{align*} \lnot (\forall x (P(x))) & \Leftrightarrow \lnot (P(1) \land P(2) \land P(3) \land P(4) \land P(5))\\ &\Leftrightarrow \lnot P(1) \lor \lnot P(2) \lor \lnot P(3) \lor \lnot P(4) \lor \lnot P(5)\\ & \Leftrightarrow \exists x (\lnot P(x)) \end{align*} が成り立つことから想像できる. また,次の推論が成り立つ. \begin{equation} \exists x \forall y (P(x,y)) \Rightarrow \forall y \exists x (P(x,y)) \nonumber \end{equation}