次の2つのタイプの発言を考える。
- ~ は成立するぞ。
- ~ は成立しないぞ。
「~」の部分は、等式・不等式などの命題。構文をキチンと約束すれば「~」の部分は論理式だとしてよい。$`\newcommand{\mrm}[1]{\mathrm{#1}}`$
発言の定式化〈数理モデリング〉として、次の3つの構成素を持つ構造を考える。
- 変数宣言(データベースなら、カラム名付きテーブルスキーマ)
- 論理式(変数宣言で宣言されてない変数は含まない)
- 判断(肯定または否定)
この構造を、三つ組 $`(D, \varphi, J)`$ で表す。混乱を避けるため、必要なら論理式を山形括弧で囲む。$`J \in \{\mrm{Holds}, \mrm{NotHold} \}`$ とする。
例 1
三つ組 $`(D, \varphi, J)`$ を次のように定義する。
- $`D := (x:{\bf R}, y:{\bf R})`$
- $`\varphi := \langle (x + y )^2 = x^2 + y^2 \rangle`$
- $`J := \mrm{NotHold}`$
つまり、三つ組 $`(D, \varphi, J)`$ は、
$`\quad ( (x:{\bf R}, y:{\bf R}), \langle (x + y )^2 = x^2 + y^2 \rangle, \mrm{NotHold})`$
現実世界の実際の発言に翻訳すれば:
$`x`$ を実数、$`y`$ を実数とするとき、
$`(x + y )^2 = x^2 + y^2`$
は成立しないぞ。
例 1 の解釈
解釈の手順:
- 変数宣言から直積集合 $`{\bf R}\times {\bf R}`$ を作る。
- 論理式から、次の関数 $`p`$ を作る。
$`\quad p := \lambda\, (x, y)\in {\bf R}\times {\bf R}.(\, (x + y )^2 = x^2 + y^2 \,)`$ - (メタレベルの)不等式(むしろ非等式) $`p \ne \mrm{True}_{{\bf R}\times {\bf R}}`$ を設定する。
もとの発言のなかに、命題(等式)と判断(成立しないぞ)が含まれるが、その発言の解釈・判断は、もう一段メタレベルが上がる(「メタレベル」という言葉にビビらないこと!)。態度としては:
- 情報・知識の受け手として $`p \ne \mrm{True}_{{\bf R}\times {\bf R}}`$ を信じる。
- 情報・知識の検証者として $`p \ne \mrm{True}_{{\bf R}\times {\bf R}}`$ を無条件には信じないで吟味する。
例 2
三つ組 $`(D, \varphi, J)`$ を次のように定義する。
- $`D := (x:{\bf B}, y:{\bf B})`$
- $`\varphi := \langle (x + y )^2 = x^2 + y^2 \rangle`$
- $`J := \mrm{NotHold}`$
つまり、三つ組 $`(D, \varphi, J)`$ は、
$`\quad ( (x:{\bf B}, y:{\bf B}), \langle (x + y )^2 = x^2 + y^2 \rangle, \mrm{NotHold})`$
現実世界の実際の発言に翻訳すれば:
$`x`$ をブール値、$`y`$ をブール値とするとき、
$`(x + y )^2 = x^2 + y^2`$
は成立しないぞ。
例 2 の解釈
解釈の手順:
- 変数宣言から直積集合 $`{\bf B}\times {\bf B}`$ を作る。
- 論理式から、次の関数 $`p`$ を作る。
$`\quad p := \lambda\, (x, y)\in {\bf B}\times {\bf B}.(\, (x + y )^2 = x^2 + y^2 \,)`$ - (メタレベルの)不等式(むしろ非等式) $`p \ne \mrm{True}_{{\bf B}\times {\bf B}}`$ を設定する。
以下同様。
何を学ぶか
このような方法で発言と解釈の分析ができる。それだけでなく、自分が発言するとき、あるいは自分が発言を受け取る側のとき、このような数理的構造が背後にあることを意識すると、正確な発言や正確な解釈に役立つだろう。