型をそろえた書き換え(パターン2:集合や命題と 0/1 の混同)
1. まず型をはっきり分ける
「命題そのもの」「真偽の値」「0/1 実数」「あいまいな程度」を混ぜないように、 それぞれ別の集合として定義します。
- 命題の集合: P = { p, q, r, ... }
- 真偽値の集合: B = { ⊥, ⊤ } (⊥ = 偽, ⊤ = 真)
- 真理値関数(論理の評価): v : P to B (各命題に真または偽を対応させる)
- 0/1 実数への埋め込み: e : B to {0,1}、 e(⊥) = 0、 e(⊤) = 1
ここで初めて、「命題 p の 0/1 表現」として x = e(v(p)) と書くことができます。 p 自体は数ではなく、x だけが 0/1 の実数です。
2. 論理演算と実数演算をつなぐ
ブール代数側の演算(∧, ∨, ¬)と、 実数側の演算(掛け算や 1 − x)を、対応づけておきます。
- 命題の論理積: p ∧ q
- その真理値: v(p ∧ q)
- 0/1 実数としての像: e(v(p ∧ q))
適切な同型をとると、 e(v(p ∧ q)) = e(v(p)) × e(v(q)) のように、 論理積が実数乗算に対応することがあります。 重要なのは、 「∧」と「×」は別物であり、 e と v を通して対応づけられていることを明示することです。 p に直接 × を掛けない、というのがポイントです。
3. 「程度」や「あいまいさ」を入れたい場合
「半分真」「0.7 くらい真」などの程度を扱いたいなら、 さらに別の写像を用意します。
- 程度(グレード)を表す実数: [0,1]
- 命題から程度への写像: μ : P to [0,1] (確率やメンバーシップ度など)
例えば μ(p) = 0.7, μ(q) = 0.5 として、 あいまい論理の規則に従い μ(p ∧ q) = min(μ(p), μ(q)) や μ(p ∧ q) = μ(p) × μ(q) などのルールを先に決めることができます。 ここでも、 命題 p, q と 0.7, 0.5 は別物であり、 μ を通じて結びついているという構造を崩さないことが大事です。
4. アンチパターンとの対比
クリステヴァ型の誤用では、
- p, q を「命題」と呼びながら、途中で勝手に 0.3 や 0.8 のような実数として扱う
- p &land; q と p × q を区別しないまま計算する
- 再び p を「テクスト」や「主体」として読み直し、数か論理かが曖昧になる
これに対して上の書き換えでは、 P(命題), B(真偽), {0,1}, [0,1], v, e, μ を別々に定義し、 どの記号がどの世界に属しているかを固定しています。 こうしておけば、 「命題なのに 0 や 1 と同じように足したり掛けたりしている」 型のバグを、型レベルで防ぐことができます。