0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【思考実験】法律は本当に二値論理なのか? ── 多値論理・量子論理・様相論理から眺める法的判断

0
Last updated at Posted at 2026-06-03

thumbnail.jpg

本記事は、先行する2本のQiita記事の延長線上に展開される、純粋な思考実験です。


冒頭の重要な断り書き

本記事の主旨に入る前に、4点だけ明確にお伝えします。

第一に、本記事は純粋な思考実験です。
日本の現行法体系を批判するものでも、特定の判例・特定の法律学説・特定の政党を論じるものでもありません。

「論理学の視座から法的判断を眺めると、どのような視界が開けるか」という、認識論的な探索です。

第二に、私は法学研究者でも法律の実務家でもありません
この記事は、論理学・圏論論理学の観点から、法的判断の論理構造を眼差す一試論です。

法学的な厳密性において不十分な点は、法学を専門とされる読者からのご指摘を歓迎します。

第三に、本記事は規範的主張(こうあるべき)を目的とせず、認識論的提示(こういう視座もありうる)を目的としています。

日本の法体系を変えるべきだという主張ではなく、論理学的に法的判断を分析する一つの試みです。

第四に、本記事は政治的中立性を厳守します。

特定の事件・判決・政治家への言及は避け、すべて架空事例・抽象構造として論じます。

以上4点を踏まえた上で、思考実験を始めます。


TL;DR(記事全体像)

ad_pic_a.jpg

  • 法学は伝統的に古典論理(排中律・分配律・二重否定除去)を暗黙の前提として運用されてきました

  • しかし、現実の法的判断には、古典論理だけでは捉えきれない構造が含まれる場面があります

  • 思考実験として、以下の5つの事例を異なる論理体系の視座からみつめてみます

    • 事例1:刑事責任能力の判断 → 多値論理・ファジィ論理の構造
       
    • 事例2:推定無罪と立証責任 → 直観主義論理の構造
       
    • 事例3:比例原則 → ファジィ論理の構造
       
    • 事例4:基本権の衝突 → 量子論理の構造
       
    • 事例5:意思表示の解釈 → 様相論理の構造
       
  • これは思考実験であり、現実の法体系の批判ではない
     

  • 先行研究として、deontic logic(義務論理)ファジィ法学量子論理的法理論圏論的 deontic 体系がすでに存在する
     

  • この記事を読むことで得られること:
    「法的判断における論理構造の多様性が見えるようになる」
    「自分が古典論理を暗黙の前提にしていたことに気づける」
     

  • この記事を読んでも得られないこと
    「現実の法律実務にすぐ応用できる」
    「特定の裁判の判決文の内容を事前に予測できる」
    ── これらは本記事の射程外です
     

  • さらに、この見方は いまの LLM・AI エージェントと人間が「どの論理に立って話しているのか」目線を合わせるのにも応用できる(第9章)


この記事の読み方 ── どこまでが既存研究で、どこからが私の試論か

本論に入る前に、いちばん大事な約束ごとを述べさせていただきます。

本記事には、①すでに確立した既存研究と、②それらを本記事執筆者なりにつなぎ直した独自の対応づけ・思弁とが、混在しています。

この境界を曖昧にしたまま読むと、「これは学界の定説なのか、それとも著者の思いつきなのか」が分からなくなってしまいます。そこで、最初に旗を立てておきます。

① 既存研究として確立しているもの(本記事執筆者による発明・発見ではありません)
 

  • ファジィ法学(Zadeh 1965 以降、Mazzarese, Philipps, Walker, Hudon ら) ── 法学に多値・ファジィ論理を応用する分野は、すでに30年以上の蓄積があります。
     
  • 義務論理(deontic logic)(von Wright 1951 以降) ── 義務・許可・禁止を扱う論理は、近代法論理学の確立した一分野です。
     
  • 量子論理そのもの(Birkhoff & von Neumann 1936)、および法規則への量子論理的アプローチ(Godfrey 2024) ── 量子論理を法規則のモデル化に使う研究は、近年すでに登場しています。
     
  • 圏論を義務論理の基礎に使う試み(Clayton Peterson 2014) ── 本記事ともっとも近い先行研究で、私の試論の直接の先輩です。
     
  • 各事例で使う法概念(刑事責任能力の3段階、推定無罪、比例原則、意思表示の規定)や、論理の道具(直観主義論理、様相論理、Kripke 意味論、Heyting 代数 など)も、すべて確立した標準的なものです。
     

② ここからが、本記事執筆者著の独自の試論です
 

  • 5つの法的判断を、5つの特定の論理体系に1対1で割り当てるという全体の構成そのもの
    とりわけ「推定無罪 = 直観主義論理」「基本権の衝突 = 量子論理」という具体的な対応づけは、本記事執筆者が本記事のために結びつけたものです(Godfrey が量子論理を法規則一般に当てたのに対し、「基本権の衝突」という特定の場面に当てるのは、本記事独自の視点です)。

novelty_1.jpg

 

  • 法体系全体を、複数のトポスからなる fibered topos(あるいは indexed category)として捉える構想各法分野を異なるトポスと見る見立て判決を関手・判例をスタックとして形式化する方向(第7章末)。これらは既存研究の引用ではなく、まったくの思弁です。実装も検証もされていません。

novelty_2.jpg

 
読み進めるなかで、「これは①と②のどちらだろう?」と迷ったら、圏論・トポスが前面に出てくる統合的な話はだいたい②(本記事執筆者の試論)個別の論理体系や法概念の説明はだいたい①(既存研究)、と捉えてください。
 
各章末の「専門的にいうと」や第7章後半は、②の色が濃くなります。

そこには、その都度あらためて「ここからは本記事執筆者による思弁です」と注記します。


先行研究の4つの分野とは ── まず全体の見取り図

pic_1.jpg

いきなり「法律を別の論理で眺める」と言われても、当惑されてしまうかもしれません。

そこで本論に入る前に、すでに世界に存在する4つの研究分野を、ざっと紹介しておきます。

本記事は、これら4つの分野が耕してきた土地のうえに立っています。
「この記事の執筆者(Etale Cohomology)の素人考えではなく、ちゃんと先人がいる話なんだな」とだけ感じてもらえれば十分です。

詳しい文献は最後の参考文献にまとめてあります。

第一に、deontic logic(義務論理、ぎむろんり)

これは「義務」「許可」「禁止」を扱う論理学の一分野です。

「$A$すべきである」$A$してよい」「$A$してはならない」
── これらは、ふつうの「$A$である」「$A$でない」とは、構造がまるで違います。

法律とは、つまるところ義務・許可・禁止の集まりですから、法律を論理学で扱おうとすると、真っ先に必要になる分野です。

1951年に、フィンランドの哲学者フォン・ライト(von Wright)が体系化しました。

第二に、ファジィ法学(ふぁじぃほうがく)

「完全に有罪」と「完全に無罪」のあいだに、「$0.7$くらい有罪」「$0.3$くらい無罪」のような中間の状態を認めようとする法学の試みです。

土台になるファジィ論理は、1965年にザデー(Zadeh)というアメリカの工学者が作った論理で、これを法律に応用するのが「ファジィ法学」です。

本格化したのは1990年代以降です。

第三に、量子論理的法理論(りょうしろんりてきほうりろん)

量子力学の論理(量子論理)を、法律論に持ち込む試みです。

量子論理では、ふつうの論理なら当たり前に成り立つ「分配律
── 「$A$かつ($B$または$C$)」が「($A$かつ$B$)または($A$かつ$C$)」と等しい、という規則 ── が成り立ちません。

この性質を使うと、「文脈によって正しい解釈が変わる」という状況を、うまく表現することができます。

言論の自由とプライバシー権のような、文脈しだいで優劣が入れ替わる権利の衝突と、相性がよいと考えられています。

第四に、圏論的義務論理(deontic logic)体系(けんろんてき ぎむろん たいけい)

義務論理に、圏論(数学のもっとも抽象的な分野のひとつ)を組み合わせた研究です。

2014年に、カナダの研究者ピーターソン(Peterson)が「カテゴリカル・インペラティブ」という論文で提唱しました。本記事の問題意識に、もっとも近い先行研究です。

もう少しだけ、各分野の中身に踏み込む

一言紹介だけだと物足りない方のために、4つの分野それぞれが「何に困って、何を作ったのか」を、もう一段だけ掘り下げます。

なお、この説を読み飛ばして本論(第1章以降)に進んでいただいても、まったく問題ありません。

deontic logic(義務論理)── 「べき」を論理にどう入れるか

義務論理は、20世紀半ばに育った非古典論理の一分野です。

古典論理が「$A$である・$A$でない」を扱うのに対して、義務論理は「$A$すべき(義務 $O$)」「$A$してよい(許可 $P$)」「$A$してはならない(禁止 $F$)」という記号を、新しく論理に持ち込みます。

たとえば「人を殺してはならない」は $F(\text{殺人})$、「自衛のための行為は許される」は $P(\text{自衛})$ のように書きます。

この分野の難しさは、義務論理のパラドックス と呼ばれる、やっかいな矛盾にあります。

たとえば、「$A$すべきだが、$A$できない場合は最善を尽くせ」のような、条件つきの義務を、単純な義務記号だけではうまく書けないのです。

この困りごとが、後の条件付き 義務論理(deontic logic)例外を許す義務論理(defeasible deontic logic)、そして圏論的義務論理体系を生み出す原動力になりました。

ファジィ法学 ── 「程度」を論理にどう入れるか

ファジィ論理は、真理値を「真(1)・偽(0)」の二択ではなく、$0$ から $1$ までの連続的な値で表す論理です。1965年に、ロトフィ・ザデー(Lotfi Zadeh)が「ファジィ集合」という考え方として導入しました。

法学への応用は1990年代から。「相当な期間」「合理的な範囲」「重大な過失」といった、法律につきものの曖昧な言葉を、ファジィ集合の「どのくらい当てはまるか(メンバーシップ関数)」として数式化する試みです。

近年は、AIと法律の交差点で、判決の予測モデルにファジィ論理が使われ始めています。2025年のユドン(Hudon)の研究は、カナダ・ケベック州の精神医学的な治療命令の判決を176件分析し、Mamdani 型ファジィ推論というしくみで、ハイブリッドな予測モデルを作りました。

量子論理的法理論 ── 「文脈で変わる」を論理にどう入れるか

量子論理は、1936年に、物理学者バーコフ(Birkhoff)と数学者フォン・ノイマン(von Neumann)が、量子力学の論理構造として提唱した体系です。

古典論理との最大の違いは、さきほども触れた分配律が成り立たないという点にあります。

法理論への応用が本格化したのは、ごく最近です。

2024年のニコラス・ゴッドフリー(Nicholas Godfrey)の研究「量子着想を得た法的規則のモデル化フレームワーク」は、複数の量子ビットの系を使って曖昧な法規則を表し、それぞれの状態が「競合する複数の法解釈」を表すモデルを示しました。

これは、法解釈の文脈依存性(同じ条文でも文脈で読みが変わる)を、量子力学の観測軸しだいで結果が変わるという性質になぞらえる試みです。

圏論的 deontic 体系 ── 4分野を上から束ねる視点

圏論(category theory)は、数学のあらゆる分野を「矢印(射)の構造」として統一的に眺める、20世紀後半に育った分野です。

先行記事「論理はひとつではない」で論じた圏論論理学は、論理そのものを圏論の言葉で組み直す試みでした。

これを義務論理に当てはめたのが、2014年のクレイトン・ピーターソン(Clayton Peterson)の論文「カテゴリカル・インペラティブ ── deontic logic の基礎としての圏論」です(Journal of Applied Logic 掲載)。

ピーターソンの核心的なアイデアは、次のようなものでした。

  • 無条件の義務の論理を、Cartesian closed category という種類の圏のうえに組み立てる
  • 条件つきの規範推論を、symmetric closed monoidal category という別の圏のうえに組み立てる
  • この2つを使い分けることで、deontic パラドックスを統一的に解く

これは、本記事の試論ともっとも問題意識が近い先行研究です。

違いは、ピーターソンが義務論理ひとつに焦点を絞ったのに対し、本記事は5つの法的判断の領域(刑事責任能力・推定無罪・比例原則・基本権衝突・意思表示)に、幅広く眼差しを向ける点です。

専門的にいうと(読み飛ばし可)

ここからは、各分野の代数的な裏側に興味がある方向けの、少し専門的な補足です。
難しいとお感じになられた場合は、読み飛ばしてください。本論の理解には必要ありません。

義務論理は、もともとクリㇷ゚キ(Kripke)様相論理の枠組みで形式化されます。

von Wright (1951) の standard deontic logic (SDL) は、世界の集合 $W$ と「理想世界への到達関係」$R$ を考え、$O(A)$ を「すべての理想世界で $A$ が真」と定義します。

ただし SDL には、有名なChisholm のパラドックス(1963) があり、これを避けるために dyadic deontic logic(二項義務論理)や defeasible deontic logic(Nute, Governatori ら)が生まれました。

ファジィ論理は、選ぶ体系ごとに対応する代数が違います。

Łukasiewicz 論理MV-algebra
Gödel 論理G-algebra
Product 論理Π-algebra

これらをまとめて束ねるのが BL-algebra(Hájek 1998) で、さらに一般には residuated lattice(残余束)で統一されます。

法学への応用には、Mazzarese (1993)、Philipps (1993)、Walker のデフォルト論理パラダイム、Hudon (2025) のハイブリッドモデルなどがあります。

量子論理の代数は orthomodular lattice(オーソモジュラー束)で、Hilbert 空間の閉部分空間の格子として標準的に与えられます。

古典論理の Boolean algebra との違いは、やはり分配律の不成立です。

近年、Ozawa & Khrennikov (2022) は、人間の認知そのものにも非分配律的な性質があることを実験的に示しました。法的判断の非分配律性は、その特殊な一例とも捉えられます。

ピーターソン (2014) の枠組みは、無条件義務の論理 OL を Cartesian closed category(直観主義論理に対応)、条件つき規範推論 CNR を symmetric closed monoidal category(線形論理に対応)として組み、両者を fibration(束化)で連携させます。

これは、異なる論理体系を圏論で統一的に扱う枠組みであり、本記事が試みている方向と、ぴたりと重なります。

本記事は、これら4分野すべてを「圏論論理学のトポス」という、ひとつの統一的な視座から眺めようとする試論です。
 

  • ファジィ法学 → 多値論理を内部論理とするトポス
     
  • 量子論理的法理論 → orthomodular lattice の構造を持つ圏(dagger compact category)
     
  • deontic logic → Heyting 代数を内部論理とするトポス(Cartesian closed category)
     
  • 圏論的 deontic 体系 → ピーターソンの延長線上、より広い射程へ
     
    これらを束ねる fibered topos(あるいは indexed category)として法体系を捉える方向は、本記事の射程を超えた、今後の研究課題です。

想定読者

本記事は、ひとつの読者像にしぼって書いています。

高校の理系数学(数III、簡単な確率・微積分)を一度は習ったけれど、その記憶はだいぶ薄らいでしまった ── そんなエンジニア・プログラマ・データサイエンティストの皆様です。

姉妹記事「論理はひとつではない」と同じ読者像です。具体的には、こんな方を思い浮かべています。
 

  • 普段は Python で機械学習やデータ分析を書いているが、論理学・圏論・法学はほとんど触れたことがない方
     
  • 「論理はひとつではない」を読んで、その応用先に興味を持ってくださった方
     
  • 法律と論理が、どこかで繋がっているらしい、という話に惹かれる方
     
  • とにかく、知的な思考実験を楽しみたいすべての方
     
    前提知識は、ほとんど要りません。中学・高校で習った「かつ」「または」「AならばB」、集合の中括弧 { }、それくらいで十分です。

圏論・トポス・ヒルベルト空間といった重装備は、本記事でも一切前提にしません。
専門用語は、出てくるたびに、その都度かみくだいて説明します。

数式や専門用語が出てくる段落もありますが、読み飛ばしても本筋を見失わないように書いています
難しいと感じたら、遠慮なく飛ばして、次の「やさしい説明」まで進んでください。

なお、各事例の章には「コードで見る ── エンジニアの視点から」という節を設けました。

Python・Haskell・Coq の短いコードで、その論理を実際に動かして(あるいは型をつけて)確かめられるようにしています。

「結局これはコードで言うと何なのか」を知りたい方は、そこだけ拾い読みしても構いません。

姉妹記事で触れた「どの言語が、どの論理を体現しているか」── Python は古典論理、Haskell や Coq は直観主義論理 ── という対応を、法律論の文脈で具体的に見ていただけます。


序章 ── 思考実験として

「論理」と「法律」は、どこでつながっているのか

法律と論理 ── このふたつは、どちらも社会のなかで「白黒つける」ために使われる道具です。

法律は「有罪か無罪か」「合憲か違憲か」「合法か違法か」を決めます。
論理は「真か偽か」「正しいか正しくないか」を判定します。

実は、このふたつは深いところで繋がっています。法的な判断の構造は、その下敷きにしている論理の構造に、こっそり依存しているのです。

ところが、姉妹記事「論理はひとつではない」で見たように、論理は、ひとつではありません。古典論理、直観主義論理、量子論理、様相論理、ファジィ論理、多値論理 ── いくつもの論理体系が存在します。

ということは、こう問えるはずです。

法的な判断もまた、どの論理を下敷きにするかで、結論が変わりうるのではないか?

これが、本記事の思考実験の出発点です。

「古典論理」という、見えない前提

日本の法学教育は、長いあいだ古典論理を、口に出さない前提として運用してきました。

古典論理とは、平たく言えば、私たちが学校で「ふつうの論理」として習ったもののことです。
代表的なルールは3つあります。

  • 排中律:「Aである」か「Aでない」か、どちらかは必ず成り立つ。中間はない。
  • 矛盾律と分配律:「(AかつB)が真なら、その否定は偽」「(AまたはB)かつC は、(AかつC)または(BかつC)に等しい」。
  • 二重否定除去:「Aでないことはない」なら、「Aである」と結論してよい。

これらは、判決文の組み立て方、立証責任の配り方、法解釈のやり方に、深く埋め込まれています。

ところが20世紀以降、論理学者たちは、古典論理が論理の唯一の形ではないことを、次々と明らかにしてきました。

Brouwer の直観主義論理(1907)、
Łukasiewicz の多値論理(1920)、
Birkhoff と von Neumann の量子論理(1936)、
Zadeh のファジィ論理(1965)、
そして Lawvere・Grothendieck らの圏論論理学・トポス論(1960年代以降)。

こうした非古典論理が、法的な判断を眺めるための新しい視座を私たちに与えてくれるのではないか
── これが、本記事の問いです。

この記事が立っている場所

法律を論理で形式化する試みには、すでに半世紀以上の蓄積があります。法論理学(legal logic)、義務論理(deontic logic, von Wright 1951)、AI and Law、defeasible reasoning(可破棄的推論、例外でくつがえせる推論)── どれも、法的推論をきちんと形にしようとしてきた分野です。

なかでも、本記事と問題意識を共有する先行研究が、さきほど紹介したピーターソン (2014) "The categorical imperative" です。圏論を義務論理の土台に使うこの試みは、本記事の直接の先輩にあたります。

ひとつ、立場をはっきりさせておきます。本記事は、Hohfeld 流の権利分析、Kelsen の純粋法学、Hart の規則体系論、Dworkin の解釈主義といった、法哲学の主要な立場のどれか一つに肩入れするものではありません

むしろ、それぞれの立場が暗黙に下敷きにしている論理体系のほうを、一歩引いて眺めます。

圏論論理学の言葉を借りれば、それぞれの法哲学的立場は、異なるトポス(異なる内部論理を持つ、いわば異なる数学の宇宙)に住んでいる、とも言えます。

本記事がやりたいのは、どれか一つのトポスを「これが正しい」と推すことではなく、トポスとトポスのあいだを翻訳し、見比べられるようにすることです。

viewpoints.jpg


第1章 古典論理という暗黙の前提

法廷で繰り返される「白黒」の論理

法廷ドラマや報道で、こんなフレーズを聞いたことはないでしょうか。

  • 「被告は有罪か、無罪か」
  • 「この法律は合憲か、違憲か」
  • 「契約は有効か、無効か」
  • 「証拠は採用されるか、却下されるか」

これらはすべて、二択の判断です。AかBか。中間はない。
これが古典論理の基本的な構えです。

序章でも触れたように、古典論理には3つの代表的なルールがあります。

ルール1: 排中律(はいちゅうりつ)
「Aである」か「Aでない」のどちらかが、必ず成り立つ。中間はない。

ルール2: 二重否定除去
「Aでないことはない」と言えるなら、「Aである」と結論してよい。

ルール3: 分配律
「(AまたはB)かつC」は、「(AかつC)または(BかつC)」と同じ。

法的な判断は、これら3つのルールに支配されている
── と、私たちはふつう考えています。

しかし、本当にそうでしょうか?

古典論理は、法学にどれだけ染み込んでいるか

日本の法学教育で、繰り返し使われる論理の型を、いくつか挙げてみます。

一つ目は、三段論法(さんだんろんぽう、syllogism) です。

大前提(法律)・小前提(事実)・結論(判決)という、アリストテレス以来の古典論理の標準フォームです

「人を殺した者は罰せられる(法律)/この人は人を殺した(事実)/ゆえにこの人は罰せられる(結論)」というあれです。

二つ目は、反対解釈・類推解釈・拡張解釈 です。

法律の条文をどう読むかの基本技法ですが、いずれも古典論理の枠のなかで操作されます。

三つ目は、要件事実論。民事裁判で「Aが認められれば、Bという法律効果が生じる」という「ならば(条件法)」を軸に議論を組み立てる考え方です。これも古典論理の条件法そのものです。

四つ目は、抗弁の構造。「Aは認める。しかし、それをくつがえすBがある」── 古典論理での否定と再肯定の組み合わせです。

これらはすべて、古典論理を暗黙の前提に運用されています。

そして大事なことですが、それ自体は、これまで十分に機能してきました

法学の歴史は、古典論理の枠のなかで、おそろしく精緻な体系を築き上げてきた歴史でもあるのです。

本記事は、それを否定するものではありません。

それでも、前提が現実とずれる場面がある

ただ、社会が複雑になるにつれて、古典論理の前提が現実とかみ合わなくなる場面も見えてきました。
以下の3つの問題があります。

第一に、現実は連続的だ、という問題
「責任能力あり/なし」「合憲/違憲」のような二択の判断は、現実のなめらかなグラデーション
── 限定責任能力、合憲限定解釈といった「中間」── とうまくかみ合いません。

第二に、立証の構造の問題
「立証できなかったこと」と「反対のことが立証されたこと」は、論理的には別の出来事です。
古典論理ではこの2つが同一視されがちですが、現実の刑事裁判ではきちんと区別されています(「無罪」と「不処罰」の違い)。

第三に、文脈依存性の問題
「言論の自由」と「プライバシー権」は、どちらが優越するかが文脈で入れ替わります。
古典論理では「Aが真ならBは偽」と単純化されがちな関係が、現実には文脈しだいの共存なのです。

こうした場面で、非古典論理の視座が、新しい見え方を開いてくれるのではないか ── これが本記事の試みです。

専門的にいうと(読み飛ばし可)

法的推論を形式化する試みは、20世紀後半から本格化しました。

von Wright (1951) の deontic logic、Anderson & Belnap の relevance logic(関連論理)への影響、Kanger・Lindahl の権利論理、
Alchourrón・Bulygin の規範体系論。

いずれも、古典論理の枠を、特定の方向に拡張するものでした。

義務(O)・許可(P)・禁止(F)といった deontic 演算子の導入や、可能世界意味論(Kripke 1959)による様相論理の整備が、その代表です。

20世紀末以降は、AI and Law の分野で、defeasible reasoning(可破棄的推論、Pollock 1987)、argumentation theory(Dung 1995)、non-monotonic logic(非単調論理)が、法的推論の形式化に使われてきました。

これらは、古典論理の単調性(前提を足しても結論はくつがえらない、という性質)を、あえて手放す試みでした。

本記事の問いは、この延長線上にあります。

圏論論理学・トポス論の視座を加えると、何が新しく見えるか、という問いです。

pic_2.jpg


第2章 事例1 ── 刑事責任能力と多値・ファジィ論理

「責任能力」は、白黒つけられるのか

ニュースで「被告に責任能力は認められなかった」「限定責任能力が認定された」という言葉を、聞いたことがあるでしょうか。

刑法では、人が罪を犯したとき、その人に「責任能力」があったかどうかを判断します。
責任能力とは、自分の行為が悪いことだと理解し、その理解にしたがって行動を制御できる能力のことです。

ところが、現実の人間の精神状態は、「完全に責任能力がある」と「完全にない」の二択ではありません。

精神疾患の症状の重さ、判断力が落ちている度合い、その時の意識の状態 ── どれもなめらかなグラデーションです。

そこで日本の刑法は、次の3段階を設けています。
 

  • 完全責任能力: 通常どおり罰する
     
  • 限定責任能力:刑を減軽する(刑法第39条第2項)
     
  • 責任無能力:罰しない(刑法第39条第1項)
     
    これは、もはや「白黒」の判断ではありません。
    中間の状態を、はっきり認めているのです。

「中間を認める」とは、どんな論理か

「責任能力あり/限定/なし」── これを論理学の目で見ると、三値論理の構造になっています。

三値論理は、ポーランドの論理学者ヤン・ウカシェヴィチ(Jan Łukasiewicz)が1920年に発表した論理で、真理値を「真・偽・不確定」の3つに分けます。

古典論理の二値(真・偽)を、もう一段ひろげたものです。

さらに進んで、真理値を連続的に取れる体系もあります。

それがファジィ論理(Zadeh 1965)です。
「責任能力 0.7」「責任能力 0.3」のように、$0$ から $1$ のあいだの連続した値で、真理の度合いを表します。

刑法第39条が、口に出さないまま採用しているのは、まさにこの中間を認める論理です。
古典論理の枠を、現実に合わせてそっと緩めている、と言ってもいいでしょう。

ひとつ、誤解のないように補っておきます。

刑法の実務が「責任能力を 0.7 と数値で測っている」わけではありません。

心神喪失・心神耗弱の判断は、最終的には裁判所が下す法律判断であり、「完全/限定/なし」という3つの離散的なカテゴリへの振り分けです。

連続的な数値を測定しているのではありません。

ここで多値論理・ファジィ論理になぞらえているのは、あくまで「真と偽の二択ではなく、あいだに段階を設けている」という構造の話です。

連続値(ファジィ)はそのイメージを延長したもの、と捉えてください。

pic_3.jpg


すでに「ファジィ法学」という分野がある

法律にファジィ論理を応用する試みは、1990年代から本格化しました。
これは思いつきの空論ではなく、しっかりとした研究の蓄積の裏付けがある分野です。

Mazzarese (1993) "Fuzzy Logic and Judicial Decision-Making" は、判決のなかの曖昧さを、ファジィ論理で形式化しました。

Philipps (1993) "Vague legal concepts and fuzzy logic" は、交通事故後の待機時間のような、法令にひそむ曖昧な概念を、ファジィ論理で扱いました。

Walker らの default-logic paradigm for legal reasoning は、法的推論を、ノード間にファジィな確率的リンクを持つネットワークとして形式化しました(Walker, Jurimetrics)。

近年では、Hudon (2025) が、カナダ・ケベック州の精神医学的治療命令の判決を176件分析し、Mamdani 型ファジィ推論システムで、ハイブリッドな予測モデルを作りました(Frontiers in Artificial Intelligence)。

これらの研究は、法学と多値論理・ファジィ論理が、すでに深く交差していることを示しています。

コードで見る ── エンジニアの視点から

エンジニアの方には、二値と多値の違いを、コードで見るのが手っ取り早いかもしれません。

Python で「古典論理(白黒)」と「ファジィ論理(程度)」を並べてみます。

# 古典論理(二値)── 責任能力は「あり(True)」か「なし(False)」の二択
def has_capacity_classical(symptom_severity: float) -> bool:
    return symptom_severity < 0.5   # しきい値で機械的に二分する

# ファジィ論理(多値)── 0.0〜1.0 の連続的な「責任能力の度合い」を返す
def capacity_degree_fuzzy(symptom_severity: float) -> float:
    return max(0.0, min(1.0, 1.0 - symptom_severity))  # 程度をそのまま残す

print(has_capacity_classical(0.6))   # False ── 0.6 でも 0.99 でも一律 False
print(capacity_degree_fuzzy(0.6))    # 0.4   ── 「0.4くらい責任能力あり」を表現できる

二値版は、症状の重さが少し違っても、しきい値の同じ側にいるかぎり結果は同じ(0.6 でも 0.99 でも一律 False)です。

しかし、ファジィ版は、0.4 という「程度」を保ったまま次の判断に渡すことができます。

刑法39条が「完全/限定/なし」という段階を設けているのは、コードでいえば、この boolfloat(あるいは3値の enum)に変えるようなものだ、と捉えると腑に落ちます。

念のため、コードを一行ずつ逐条解釈してみます。

まず symptom_severity: float: float は、「この引数は小数(症状の重さを 0.0〜1.0 で表した数)ですよ」という型のメモ書きです(Python では注釈なので、なくても動きます)。

同じく -> bool は「この関数は True/False を返す」、
-> float は「小数を返す」という戻り値のメモです。

二値版 has_capacity_classical の中身 symptom_severity < 0.5 は、ふつうの比較です。
症状が 0.5 未満なら True(責任能力あり)、そうでなければ False0.5 という崖を境に、結果がパタンと切り替わるだけで、0.6 と 0.99 の違いはどこにも残りません。

ファジィ版 capacity_degree_fuzzy1.0 - symptom_severity は、「症状が重いほど、責任能力の度合いは小さい」という素直な反転です(症状 0.6 なら、度合いは 0.4)。

それを包んでいる max(0.0, min(1.0, ...)) は、値を 0.0〜1.0 の範囲に収めるための安全装置です。min(1.0, x) で「1.0 を超えたら 1.0 にする」、max(0.0, ...) で「0.0 を下回ったら 0.0 にする」。

こうして、はみ出した値があっても必ず 0〜1 に収まります(この「範囲に収める」操作は、機械学習でいう clamp / clip と同じものです)。

ポイントは、二値版が途中で < によって情報を捨てているのに対し、ファジィ版は 0.4 という程度を捨てずに持ち越せることにあります。

刑法が「限定責任能力」という中間段階を置いているのは、まさにこの「捨てずに持ち越す」発想にあたります。

専門的にいうと(読み飛ばし可)

多値論理を圏論で扱うときは、Heyting 代数(直観主義論理の代数モデル)を一般化した 残余束(residuated lattice) の理論として整備されています。

とりわけ、Łukasiewicz 論理は MV-algebra(Many-Valued algebra)、Gödel 論理は G-algebra、Product 論理は Π-algebra で代数化されます。

これらはすべて、 BL-algebra(Hájek 1998) を共通の祖先とし、さらに residuated lattice の枠組みでひとつにまとまります。

圏論の目で見ると、これらの代数構造は monoidal category の対象として扱え、トポスの内部論理として自然に表せます。

法的推論の「程度」を扱う論理体系は、topos-theoretic semantics(トポス論的意味論)のなかに、統一的に位置づけられるのです。

これは、姉妹記事「論理はひとつではない」で論じた「ひとつの論理は、ひとつのトポスに対応する」という構造の、法学への自然な延長です。

image.png


第3章 事例2 ── 推定無罪と直観主義論理

「疑わしきは罰せず」を、論理として見つめ直す

刑事裁判の大原則に、こんな言葉があります。

疑わしきは罰せず」(in dubio pro reo)

検察が被告を有罪だと立証できなかったとき、被告を無罪とする原則です。「立証できないなら、有罪にはしない」── 一見、当たり前に聞こえます。

ところが、論理として厳密に見つめ直すと、これはふつうの(古典)論理とは少し違う構造を持っています。

古典論理の発想はこうです

「$A$である」か「$A$でない」のどちらかが必ず真。
だから「$A$である」と立証できなければ、自動的に「$A$でない」が真になる。

ところが現実の刑事裁判の発想は、こうではありません

「$A$である(有罪)」と積極的に立証できなければ、「$A$である」を採用しない。
これは、「$A$でない(無罪)」が立証されたわけではなく、ただ「$A$が立証されていない」というだけのことです。

この違い、気づかれたでしょうか。

「無罪が証明された」のではなく、「有罪が証明されなかった」。

古典論理はこの2つを同じものとして扱いがちですが、刑事裁判はきちんと区別している

ここに、別の論理の影 が差しています。

「立証できなければ認めない」という論理 ── 直観主義論理

オランダの数学者ブラウワー(L.E.J. Brouwer, 1907)が提唱し、ハイティング(Heyting, 1930)が形式化した
直観主義論理は、まさにこの「立証できなければ採用しない」という構えを持つ論理です。

直観主義論理では、次のことが成り立ちます。
 

  • 「Aである」と主張するには、Aを実際に構成する証明が要る
     
  • 「Aでないことはない」だけでは、「Aである」を結論できない(二重否定除去を認めない)
     
  • 「Aである」か「Aでない」か、という排中律を、一般には認めない
     
    これを刑事裁判に当てはめると、こうなります。
     
  • 「被告は有罪である」と主張するには、有罪を実際に立証する必要がある
     
  • 「無実ではない」というだけでは、「有罪である」を結論できない
     
  • 「有罪または無罪」を最初から前提にせず、立証された結論だけを採用する
     
    驚くほど、直観主義論理の構造と重なります

「疑わしきは罰せず」という、法律家が日々使っている原則の奥に、数学者が別の動機から作った論理が、こっそり同じ形で潜んでいたわけです。

ただし、ここはひとつ、はっきり断っておかねばなりません。

これはあくまで論理構造のアナロジー(類比)であって、「推定無罪は本当は三値だ」と主張するものではありません

むしろ法理論の世界では、逆の見方のほうが有力です。

すなわち「推定無罪とは、『有罪の立証に失敗した』ことと『無罪が証明された』こととの区別を、あえて消し去る原則であり、評決は有罪・無罪の二値であるべきだ」という立場です。

実際、「立証されていない」という第三の状態を評決として制度化した例(スコットランドの第三評決「not proven」)は、推定無罪に反するとして長く批判され、近年その廃止が決まりました。

ですから本記事の対応づけは、「立証されたものだけを真と認める」という直観主義論理の構えと、推定無罪の運用とのあいだに構造の響き合いがある、という思考実験として読んでください。

「無罪」と「立証されていない」を法的に別の状態として区別すべきかどうかは、それ自体が論争のある主題です。

立証責任の配り方を、もう少し細かく

刑事訴訟法における立証責任の配り方は、論理の目で見ると、たいへん精緻な構造を持っています。

検察が負う立証責任。「被告が有罪である」ことを「合理的な疑いを超える程度に」立証する義務です。有罪を積極的・構成的に立証せよ、と求める点で、これは直観主義論理的です。

被告の立場。被告は「無罪である」ことを立証する義務を負いません。もし古典論理なら「有罪が立証されないなら、自動的に無罪が立証される」となるはずですが、刑事裁判ではそうではない。直観主義論理では、これがちゃんと筋の通った話になります

ただし、「合理的な疑い」という閾値は、「立証の程度」を扱うので、純粋な直観主義論理だけでは足りず、ファジィ論理的な要素も混ざってきます。現実の刑事裁判は、複数の論理が同居するハイブリッドな構造を持っているのです。

コードで見る ── 「証明=プログラム」を体験する

直観主義論理は、エンジニアにとって、実はいちばん身近な非古典論理かもしれません。

型のある関数型言語の型システムが、まさに直観主義論理だからです。

これが姉妹記事でも触れた 「証明=プログラム」(カリー・ハワード対応) です。

少し不思議な話に聞こえると思うので、まず種明かしから。

型 = 命題」「その型を持つ値 = その命題の証明」と読み替える、という対応があるのです。

たとえば「型 $Q$ の値を、ひとつ実際に作ることができた」ということは、「命題 $Q$ を、ひとつ証明することができた」ことに対応します。

値を作れない型(住人のいない型)は、証明できない命題に対応します。

この読み替えが、20世紀論理学のいちばん美しい発見のひとつです。

Haskell で見ると、「$P$ ならば $Q$」という論理の含意は、そのまま「型 $P$ の値を受け取って型 $Q$ の値を返す関数」になります。

-- 「P→Q」と「P」から「Q」を導く(三段論法・モーダスポネンス)
-- これは「(P→Q) という関数に P を渡すと Q が得られる」ことそのもの
modusPonens :: (p -> q) -> p -> q
modusPonens f x = f x   -- 証明=この関数の実装

Haskell を見たことがない方のために、1行目を解説します。

modusPonens :: ...:: は、「この関数の型はこうですよ」という宣言で、Python の型ヒント(def f(x: int) -> int:: int-> int)にあたります。

(p -> q) -> p -> q を Python 風に読むと、「p を受け取って q を返す関数(これが p -> q)と、p の値を受け取って、q を返す」という意味です。

2行目の modusPonens f x = f x が中身で、「受け取った関数 f に、受け取った値 x を渡す(f(x) する)」だけです。

Python で書けばこうです。

# 上の Haskell と同じことを Python で書くと、こうなる
def modus_ponens(f, x):   # f は「p を受け取って q を返す関数」、x は「p の値」
    return f(x)           # f に x を渡せば、q の値が得られる

つまり「$P$ ならば $Q$」と「$P$」から「$Q$」を導く論理の三段論法は、プログラムでいえば「関数に引数を渡して呼び出す」というだけの操作なのです。

「論理の証明」と「プログラムの実装」が、文字どおり同じものになっている ── これが「証明=プログラム」です。

証明できる命題=書ける関数、というわけです。

ここで直観主義論理の「個性」が効いてきます。

排中律(P ∨ ¬P)や二重否定除去(¬¬P → P)は、直観主義論理では証明できません

「証明できない」とは、いまの読み替えでいえば「その型を持つ値を、どうやっても作れない(その関数を実装できない)」ということです。

これは Coq のような証明支援系で、はっきり体験できます。

Coq は「数学の証明を、機械がその場で正しさチェックしてくれる」言語です。

Coqのコードをまだ目にされたことがないという読者の方々もおられるかもしれません。
ここでは、Coqのコードについて、最小限の用語だけ先に説明します。

Theorem 名前 : 中身. で「これから証明したい命題」を宣言し、
Proof.Qed. のあいだに証明の手順を書きます。

Qed.(証明終わり)まで到達できれば、機械が「確かに証明できている」と認めた印です。

記号 ~ は「でない(否定)」、
~ ~ P は「P でない、ということはない(二重否定)」を表します。

forall P : Prop は「あらゆる命題 $P$ について」という意味です(Prop は「命題の型」)。

(* Coq の論理は既定で直観主義論理 *)
(* これは証明できる:P が成り立つなら ¬¬P も成り立つ *)
Theorem p_implies_nnp : forall P : Prop, P -> ~ ~ P.
Proof. intros P p nh. apply nh. exact p. Qed.

(* しかし逆向き(二重否定除去)¬¬P → P は、
   直観主義論理では証明できない(証明を埋められない)。
   古典論理を使いたければ、明示的に公理として導入する必要がある *)
Require Import Classical.          (* ← 排中律をわざわざ持ち込む *)
Theorem nnp_implies_p : forall P : Prop, ~ ~ P -> P.
Proof. intros P. apply NNPP. Qed. (* Classical を入れて初めて証明できる *)

上のブロックは2つの定理を並べています。

1つ目「$P$ が成り立つなら、$¬¬P$ も成り立つ(P -> ~ ~ P)」は、素の Coq(=直観主義論理)でそのまま証明できます

Proof. 以下の intros ... apply ... exact ... は証明の手順で、いまは「Qed. まで行けた=証明成功」とだけ読んでください。

問題は2つ目の方です。

逆向きの「$¬¬P$ ならば $P$(~ ~ P -> P、二重否定除去)」です。

これは素の状態では、どう手を尽くしても Qed. までたどり着けません(証明を埋められない)。

そこで、1行上に Require Import Classical. と記述します。

これは、「古典論理の道具(排中律)を、わざわざ外から持ち込む」という宣言です。

これを入れて初めて、NNPP(=二重否定除去の定理)が使えるようになり、証明が完成します。

ここが面白い部分です。

「古典論理を使う」とは、Coq でいえば Require Import Classical と一行書いて、排中律を公理として明示的に追加する操作にあたります

import を書くか書かないか、というプログラマに馴染みの動作が、そのまま「どちらの論理に立つか」の選択になっているのです。

そして、何も足さない素の状態(直観主義論理)では、「無実ではない、とは証明できなかった($¬¬P$)」ことから「無実だ($P$)」を自動で結論することはできません

これは、推定無罪の「有罪が立証できなかったからといって、無罪が立証されたことにはならない」という構造と、見事に対応します。

専門的にいうと(読み飛ばし可)

直観主義論理の代数モデルは Heyting 代数(Heyting 1930) です。

古典論理の代数モデルである Boolean 代数との違いは、補元の存在を一般には保証しない点にあります。

Heyting 代数 $H$ では、否定 $\neg a$ は $a \to 0$ として定義されますが、$\neg \neg a = a$ は一般には成り立ちません。

これが、「二重否定除去がない」ことの代数的な正体 です。

刑事裁判の立証構造を Heyting 代数で書くと、こうなります。

「有罪が立証された」を $G$、「無罪が立証された」を $I$ とすると、古典論理では、 $G \lor I = 1$(つねに真)。

しかし直観主義論理では、 $G \lor I \neq 1$ がありえます。

つまり「まだ立証されていない」という状態を、矛盾なく許せるのです。
古典論理での「無罪」と、直観主義論理での「無罪」は、意味論的に別物だということになります。

圏論論理学の言葉でいえば、刑事裁判の論理は、真理値の目盛り(subobject classifier) $\Omega$ が Heyting 代数の構造を持つようなトポスの、内部論理として表せます。

pic_4.jpg


第4章 事例3 ── 比例原則とファジィ論理

「やりすぎはダメ」という、程度の論理

法律の世界に、「比例原則」という大事な考え方があります。

たとえば、警察官が犯罪を止めるために実力を行使するとき、「目的に対して、その手段は適切か?」を考えます。
 

  • 万引きを止めるために銃を使うのは、「やりすぎ」
     
  • 凶悪な強盗を止めるために警棒を使うのは、「適切」かもしれない
     
  • 殺人犯を止めるために銃を使うのは、「適切」かもしれない
     
    この「目的と手段のバランス」を判断するのが、比例原則です。

これは「やってよい」か「やってはいけない」かの二択ではありません

どの程度までなら適切か」という、程度の問題なのです。

pic_5.jpg


憲法判断のなかの比例原則

日本の憲法判断でも、比例原則は重要な役割を果たします。

最高裁判所が法律の合憲性を判断するとき、目的の重要性手段の必要性、そして目的と手段の釣り合いを検討します。

これを三段階審査と呼びます。

ここで行われている判断は、明らかに程度の判断です。
 

  • 「重要性 0.8」で「制約 0.5」なら、合憲
     
  • 「重要性 0.5」で「制約 0.8」なら、違憲の疑い
     
  • ── このような、連続的な比較衡量
     
    これはもう、ファジィ論理的な判断そのものです。

古典論理の「合憲か違憲か」という二択では、すくい取れない構造がここにあります。

Alexy の「重み付け」── 比例原則を数式に近づける

ドイツの法哲学者ロベルト・アレクシー(Robert Alexy)は、比例原則を最適化命令(Optimierungsgebote)として形式化しました(A Theory of Constitutional Rights, 2002)。

アレクシーの枠組みは、こんな考え方です。
 

  • それぞれの基本権は**原理(principle)**であり、可能なかぎり実現されるべきもの
     
  • 2つの原理がぶつかったときは、**重み付け(weighing)**を行う
     
  • 重み付けでは、それぞれの原理の重要性と、侵害の度合いを数値にして比べる
     

これは、まさにファジィ論理的な判断の構造です。

0と1の二択ではなく、0から1の連続した値で判断する。

アレクシー自身は、これを意識的に「論理的な操作」として扱おうとしましたが、実際にはファジィ論理の枠組みのほうが、自然な形式化を与えてくれます。

コードで見る ── 比例原則を Łukasiewicz 論理で

「専門的にいうと」で出てくる Łukasiewicz の論理結合子は、数式で見ると身構えますが、コードにすると数行です。

Python でそのまま書けます。

# Łukasiewicz 多値論理の結合子(真理値は 0.0〜1.0)
def L_and(a, b): return min(a, b)             # かつ
def L_or(a, b):  return max(a, b)             # または
def L_not(a):    return 1 - a                 # でない
def L_imp(a, b): return min(1.0, 1 - a + b)   # ならば

# 比例原則の判断を模す:目的の重要性に対して、制約の度合いは見合っているか
importance  = 0.8   # 目的の重要性
restriction = 0.5   # 基本権への制約の度合い

# 「制約 → 重要性」が 1.0 に近いほど、釣り合いが取れている(合憲寄り)
print(L_imp(restriction, importance))  # 1.0 ── 重要性が制約を上回り、釣り合う

restriction = 0.9   # 制約を強めると…
print(L_imp(restriction, importance))  # 0.9 ── 釣り合いが崩れ、違憲寄りに下がる

二値の bool なら「合憲か違憲か」しか言えませんが、float で扱うと「どのくらい釣り合っているか」を連続的に評価できます。

アレクシーの「重み付け」とは、コードでいえばこの L_imp のような演算を、複数の原理に対して走らせて比べることだ、と捉えられます。

比例原則という法概念が、そのまま実行できる関数になるわけです。

4つの結合子を、ひとつずつ見ておきましょう。

L_and(かつ)が min(小さいほう)なのは、「両方そろって初めて真」という「かつ」の感覚に合います。

たとえば「0.8 くらい真」と「0.3 くらい真」を両立させようとすると、弱いほう 0.3 で頭打ちになる。

L_or(または)が max(大きいほう)なのは逆で、「どちらか強いほうが効く」。

L_not(でない)が 1 - a なのは、「0.7 くらい真」の否定が「0.3 くらい真」になる、という素直な反転です。

少しだけ込み入っているのが L_imp(ならば)の min(1.0, 1 - a + b) です。

これは、「前提 a より結論 b のほうが真であれば、含意は完全に成り立つ(= 1.0)」という考え方を式にしたものです。

b(結論)が a(前提)以上なら 1 - a + b は 1 以上になり、min(1.0, ...) で 1.0 に切り詰められます。

逆に、 ba を下回るほど、値は 1.0 から下がっていく ── その下がり具合が「前提のわりに結論が弱い=釣り合いが崩れている度合い」を表します。

コードの例で restriction(制約)を 0.5 → 0.9 と強めると、出力が 1.0 → 0.9 に下がるのは、これを見ているわけです。

おもしろいのは、この4つの定義に 0 と 1 だけを入れると、ふつうの古典論理の真理値表にぴたりと一致することです(たとえば L_and(1, 0) = min(1, 0) = 0L_not(1) = 0)。

つまりファジィ論理は、古典論理を否定するものではなく、${0, 1}$ の二択を $[0, 1]$ の連続体へと広げた一般化になっている、というわけです。

専門的にいうと(読み飛ばし可)

比例原則の形式化は、いくつかの非古典論理で試みられてきました。

Łukasiewicz 多値論理では、真理値を $[0, 1]$ の連続体とし、論理結合子を次のように定めます。

  • $a \land b = \min(a, b)$
  • $a \lor b = \max(a, b)$
  • $a \to b = \min(1, 1 - a + b)$
  • $\neg a = 1 - a$

これは、比例原則の重み付けを自然に表現します。

Product 論理では、$a \otimes b = a \cdot b$(積)とします。これは、複数の制約が重なる「累積的な侵害」を表すのに向いています。

さらに、MTL(monoidal t-norm logic) は、Esteva & Godo (2001) が提唱した、t-norm 全体を統一する論理で、ファジィ論理の代数的な基礎を与えます。

圏論論理学の観点では、これらの多値論理は、対応する MV-algebraΠ-algebraresiduated lattice を内部論理とするトポス(あるいは monoidal category)のうえで展開されます。

比例原則の論理的な本質は、真理値が連続体をなしていることと、その上での重み付けの演算が存在することにあります。これは、古典論理の枠を本質的に超える構造です。


第5章 事例4 ── 基本権の衝突と量子論理

「表現の自由」と「プライバシー」がぶつかったら

憲法には、いくつもの「基本権」が書かれています。

「言論の自由」「プライバシー権」「信教の自由」「学問の自由」「職業選択の自由」など。

ところが、これらの権利は、ときに互いにぶつかります

たとえば、

  • 「ある人物について報道する自由」(言論の自由)
  • 「その人物のプライバシーを守る権利」(プライバシー権)

報道機関は報道したい。
報道される人物はプライバシーを守りたい。

どちらが勝つのでしょうか。

古典論理で考えれば、「どちらか一方が真で、もう一方は偽」となります。
けれども、現実の法的判断はそうではありません。

文脈に応じて、両方が成立しうる」のです。

公益性の高い報道では言論の自由が優越し、私的な領域への踏み込みではプライバシー権が優越する。

これは、どちらかが消えるのではなく、文脈しだいで優劣が入れ替わる共存です。

「文脈で結論が変わる」を表す論理 ── 量子論理

20世紀の物理学者バーコフ(Birkhoff)とフォン・ノイマン(von Neumann)は、1936年に量子論理を提唱しました。量子力学の現象を記述するための論理体系です。

量子論理のもっとも特徴的な性質が、分配律が成り立たないことです。

古典論理では、次の等式が成り立ちます。

A \land (B \lor C) = (A \land B) \lor (A \land C)

言葉にすれば、「$A$かつ($B$または$C$)」は「($A$かつ$B$)または($A$かつ$C$)」に等しい。

ところが量子論理では、この等式が一般には成り立ちません

これを基本権の衝突に当てはめると、こうなります。

\text{表現の自由} \land (\text{公益性} \lor \text{プライベート}) \neq (\text{表現の自由} \land \text{公益性}) \lor (\text{表現の自由} \land \text{プライベート})

つまり ──「表現の自由」を「公益性」「プライベート」とそれぞれ別々に組み合わせて判断するのと、
「公益性 または プライベート」という大きな文脈のなかで「表現の自由」を判断するのとでは、結論が変わりうるのです。

pic6.jpg

これは、現実の判決にみられる文脈依存的な判断を、論理として表すひとつの方法です。

量子論理を法解釈に持ち込む試み

量子論理 は、Hilbert空間の閉部分空間の格子(orthomodular lattice) として代数化されます。

難しい言葉ですが、ここでは、「量子の世界の論理には、それを支える数学の骨格がきちんとある」 とだけ捉えてください。

これを法解釈に応用した最近の研究が、Nicholas Godfrey (2024) "Toward a Quantum-Inspired Framework for Modelling Legal Rules" です(SAGE Publications)。

ゴッドフリーは、複数の量子ビットの系を使って曖昧な法規則を形式化し、それぞれの状態が「競合する複数の法解釈」を表すモデルを示しました。

ここで線を引いておきます。

法規則一般を量子論理(量子着想)でモデル化する」というアイデアまでは、ゴッドフリーらの既存研究です。

一方、本記事のように「基本権の衝突という特定の場面に、量子論理の非分配律を当てる」という対応づけは、私(著者)の試論です。

両者は地続きですが、同じものではありません。

以下の3つの視座は、ゴッドフリーの枠組みから示唆を受けつつ、本記事執筆者が基本権衝突に引きつけて述べるものだ、とお読みください。

量子論理が法的判断に与えてくれる視座は、3つあります。

第一に、文脈依存性
同じ事実でも、解釈の「観測軸」が変わると結論が変わる。これは量子力学の「相補性」と、構造がよく似ています。

第二に、重ね合わせ
判断が下されるまでは、複数の法解釈が同時に成立しうる。判決が下される瞬間に、解釈が一つに「収縮」する ── そんな構造として捉えられます。

第三に、非分配律
基本権の衝突は、単純な「かつ」「または」だけでは解消できない。文脈に応じた統合が要る。

コードで見る ── 分配律が「本当に」破れることを確かめる

「分配律が成り立たない」と言われても、にわかには信じがたいかもしれません。

これは、口で言うだけでなく、実際に数値で確かめられます。

その前に、言葉を3つだけ用意します。
高校の数学を忘れていても大丈夫なように、絵で説明します。

第一に、部分空間。ここでは「原点($0, 0$)を通る直線」のことだと思ってください。
平らな紙(平面)の上に、原点を通る直線を1本引いたもの ── それが1本の部分空間です。

第二に、量子論理では、ひとつの命題(主張)を、この直線1本に対応させます

「表現の自由」が1本の直線、「プライバシー権」が別の1本の直線、という具合です。

そして論理演算は、こう翻訳されます。

かつ($∧$)」は2本の直線の交わり(共通部分)、「または($∨$)」は2本の直線を両方含むいちばん小さい空間(2本が違う向きなら、それは平面全体)です。

第三に、次元

これは、「その空間の大きさを測る、ただの数」です。

原点だけ(1点)なら次元 $0$、直線なら次元 $1$、平面全体なら次元 $2$。

今回は、この数が一致するかどうかだけを見ます。

では、Python(NumPy)で、平面のなかの3本の直線を使って計算してみます。

import numpy as np

def line(theta):
    """原点を通る直線(1次元部分空間)を、その方向ベクトルで表す"""
    return np.array([np.cos(theta), np.sin(theta)])

def dim_span(vectors):
    """与えたベクトルたちが張る空間の次元(= ランク)"""
    return np.linalg.matrix_rank(np.column_stack(vectors), tol=1e-9)

P = line(0.0)        # x軸
Q = line(np.pi/2)    # y軸
R = line(np.pi/4)    # 直線 y = x

# 「または」= 張る空間。Q または R は平面全体(次元2)
# 「かつ」= 交わり。相異なる2直線の交わりは原点だけ(次元0)

# 左辺:P ∧ (Q ∨ R)  = P ∧ (平面全体) = P (次元1)
left = 1   # P は平面全体に含まれるので、交わりは P 自身

# 右辺:(P ∧ Q) ∨ (P ∧ R) = 原点 ∨ 原点 = 原点(次元0)
right = 0  # P∩Q も P∩R も原点だけ。その「または」も原点のまま

print("左辺 P∧(Q∨R) の次元:", left)   # 1
print("右辺 (P∧Q)∨(P∧R) の次元:", right)  # 0
print("分配律は成り立つ?:", left == right)  # False

コードは、$x$軸(P)、$y$軸(Q)、斜め45度の直線 $y=x$(R)という3本の直線を用意しています(np.cos/np.sin は、角度から直線の向きを作るために使っているだけです)。

ここからが本番です。左辺と右辺を、絵で追ってみてください。

左辺 P ∧ (Q ∨ R)。まず Q ∨ R、つまり「$y$軸 または $y=x$」。
向きの違う2本の直線を両方含むいちばん小さい空間は、平面全体(次元 2)です。

次にその平面全体と P($x$軸)の「かつ(交わり)」を取ると ── $x$軸は平面全体にすっぽり含まれているので、交わりは $x$軸そのもの(次元 1)。

右辺 (P ∧ Q) ∨ (P ∧ R)。今度は先に「かつ」を取ります。

P ∧ Q は「$x$軸 と $y$軸 の交わり」── 2本は原点でしか交わらないので、原点だけ(次元 0)。

P ∧ R も「$x$軸 と $y=x$ の交わり」で、やはり原点だけ(次元 0)。

最後に「原点 または 原点」を取っても、原点のまま(次元 0)。

左辺は次元 1、右辺は次元 0。

等しくありません

古典論理なら必ず成り立つ分配律 $P \land (Q \lor R) = (P \land Q) \lor (P \land R)$ が、部分空間の世界では破れる ── これが、量子論理が古典論理と決定的に違う点です。

なぜこんなことが起きるのでしょうか?

「先に または でまとめてから かつ する」と「先に かつ してから または でまとめる」とで、答えが変わってしまうからです。

左辺は、いったん平面全体に広げてから $x$軸で切り出すので、$x$軸が丸ごと残ります。

右辺は、先に交わりを取って原点までしぼんでしまうので、あとから「または」で足しても原点のまま。順番が結果を変える ── 基本権の衝突を「文脈ごと(=どの順序・どの軸で見るか)に結論が変わる」と捉える発想は、この幾何学的な事実に裏打ちされています。

(なお、コード中の left = 1 / right = 0 は、上の図形的な議論の結論を、読みやすさのために直接書き込んだものです。dim_span を使えば「または=張る空間」の次元は自動で計算でき、Q ∨ R が 2 になることなどは実際に確かめられます。)

専門的にいうと(読み飛ばし可)

量子論理の代数モデルは orthomodular lattice で、これは Hilbert 空間 $H$ の閉部分空間の格子 $L(H)$ として標準的に与えられます。

法解釈の構造を orthomodular lattice で書くと、各法的命題 $p$ に Hilbert 空間の閉部分空間 $P \subset H$ を対応させて、

  • $p \land q$ は $P \cap Q$(交わり)
  • $p \lor q$ は $P + Q$ の閉包(和の閉包)
  • $\neg p$ は $P^\perp$(直交補空間)

とします。このとき、分配律 $P \cap (Q + R) = (P \cap Q) + (P \cap R)$ は、一般には成り立ちません。

これは、Ozawa & Khrennikov (2022) "Nondistributivity of human logic" が、人間の認知そのものに非分配律性があると示したのと、構造的には同じ問題です。

法的判断の非分配律性は、人間認知の非分配律性の、特殊な一例とも捉えられます。

圏論論理学の視座では、量子論理は dagger compact category(Abramsky & Coecke, 2004) の内部論理として位置づけられます。

これは、姉妹記事「論理はひとつではない」で論じた圏論的量子力学の枠組みそのものです。

さらに踏み込めば、法体系全体を、複数のトポスからなる fibered topos(あるいは indexed category)として捉える視点もありえます。

各文脈・各事例が異なるトポスに住み、それらをつなぐ翻訳関手が、文脈依存的な判断を形式化する ── そんな絵姿です。


第6章 事例5 ── 意思表示の解釈と様相論理

「言ったこと」と「本当はどう思っていたか」

法律の世界では、「意思表示」という言葉がよく出てきます。

「契約をします」と言ったとき、その人は本当に契約する意思があったのか。それとも、冗談だったのか。脅されて言わされたのか。勘違いだったのか。

民法は、こうした場合のすべてについて、ルールを定めています。

  • 第93条 心裡留保(しんりりゅうほ):本心ではないと知りながら表示した意思
  • 第94条 虚偽表示:相手と通じて、嘘の意思を表示した場合
  • 第95条 錯誤:勘違いで意思を表示した場合

これらの規定は、「実際に表示された意思」と「本当の心のなかの意思」のズレを扱っています。

ところで、「本当の心のなかの意思」とは、いったい何でしょうか

心のなかは、目に見えません。法律家は、どうやってそれを判断するのでしょう。

pic_7.jpg


「可能世界」を考える論理 ── 様相論理

論理学に、様相論理(modal logic)という分野があります。

必然性」と「可能性」を扱う論理です。
 

  • $\Box A$:「A は必然的に真である」(あらゆる可能世界で A が真)
     
  • $\Diamond A$:「A は可能的に真である」(少なくとも一つの可能世界で A が真)
     

「可能世界」 というのは、「ありえたかもしれない、別の世界」 のことだと思ってください。

これを意思表示の解釈に当てはめると、こうなります。

もし表意者が事実を知っていたら、どう意思表示しただろうか
── これは、現実とは別の「可能世界」での意思表示を考えていることになります。

現実の世界では事実を知らずに表示したけれど、事実を知っていた別の世界では、どう表示していたか。

民法第95条の錯誤の判断では、「法律行為の目的および取引上の社会通念に照らして重要なものであるとき」に、錯誤による取消しが認められます。

この判断は、まさに可能世界どうしの比較を含んでいるのです。

「可能世界」に厳密な意味を与える ── Kripke 意味論

ソール・クリプキ(Saul Kripke, 1959)が提唱したKripke 意味論は、様相論理に厳密な意味づけを与えました。

Kripke モデルは、次の3つからできています。
 

  • 可能世界の集合 $W$
     
  • 到達可能関係 $R \subseteq W \times W$(どの世界からどの世界が「見える」か)
     
  • 付値関数 $V$(各世界で、各命題が真か偽かを定める)
     

「$\Box A$ が世界 $w$ で真」とは、「$w$ から到達できるすべての世界で $A$ が真」と定義されます。

意思表示の解釈に応用すると、こうなります。
 

  • $w_0$ = 現実の世界(事実を知らずに表示した状態)
     
  • $w_1, w_2, \ldots$ = 「もし事実を知っていたら」という可能世界たち
     
  • 「錯誤は重要か」の判断 = 「可能世界 $w_i$ での意思表示が、現実の世界での意思表示と、十分に違っているか」の判断
     
    これは、現実の民事裁判における意思の解釈の論理構造の自然な表現です。

コードで見る ── Kripke モデルを実装する

Kripke モデルは、3つの要素(可能世界の集合・到達可能関係・付値)からできていると述べました。

これは、ほぼそのまま Python のデータ構造になります。

意思表示の解釈を例に、$\Box$(必然)を評価してみます。

# 可能世界
worlds = {"現実", "事実を知っていた世界A", "事実を知っていた世界B"}

# 到達可能関係:現実から、2つの「もし知っていたら」の世界が見えている
reachable = {
    "現実": {"事実を知っていた世界A", "事実を知っていた世界B"},
}

# 付値:各命題が「真」である世界の集合
valuation = {
    "同じ内容で契約する": {"事実を知っていた世界A"},  # Aでは契約するが、Bではしない
}

def box(prop, w):
    """□prop が世界 w で真 ⇔ w から到達できる全世界で prop が真"""
    return all(v in valuation.get(prop, set()) for v in reachable.get(w, set()))

# 「事実を知っていたら、必ず同じ内容で契約したか?」を問う
print(box("同じ内容で契約する", "現実"))  # False

結果は False。「事実を知っていた世界」のうち、片方(B)では契約しないからです。

これはまさに、民法95条の錯誤の判断 ──「もし事実を知っていたら、同じ意思表示をしたとは言えない(だから取り消しうる)」── を、コードで表現したものになっています。

錯誤の「重要性」とは、コードでいえば「到達可能な世界のあいだで、結論がどれだけ食い違うか」を見ることだ、と捉えられます。

コードを、Python の基本機能だけで読み解いておきます。

3つの部品は、すべて見慣れた set(集合)と dict(辞書)です。

worlds は世界の名前を並べた集合。

reachable は辞書で、「"現実" というキーから、そこから見える世界の集合を引ける」ようにしたもの

── 言いかえれば、「現実から、どの『もし』の世界が見えているか」の対応表です。

valuation(付値)も辞書で、「"同じ内容で契約する" という命題が、どの世界で真になっているか」を集合で持っています。ここでは世界$A$ だけが入っている($A$ では契約するが、$B$ ではしない)。

肝心なのは box 関数の1行です。

return all(v in valuation.get(prop, set()) for v in reachable.get(w, set()))

これは Python の内包表記で、噛みくだくと「世界 w から到達できる各世界 v について、その v で命題 prop が真か(v in valuation[prop])を調べ、そのすべてが真なら True を返す」という意味です。

all(...) が「全部が真のときだけ True」、... for v in ... が「到達できる世界をひとつずつ見ていく」部分。

reachable.get(w, set()).get は、辞書にキーが無くてもエラーにせず空集合を返すための安全策です(Python でおなじみの書き方ですね)。

これは $\Box$(必然)の定義「到達できるすべての世界で真」を、ほぼ日本語のまま Python に写したものになっています。

今回は世界$B$ で命題が偽なので、「すべての世界で真」が崩れ、all(...)False を返した ── つまり「事実を知っていたら必ず同じ契約をした、とは言えない」という結論です。

論理学の $\Box$ の定義が、all() という日常的な関数そのものだった、というのが面白いところです。

専門的にいうと(読み飛ばし可)

意思表示の解釈は、次のような様相論理の構造を持ちます。

心裡留保(民法93条)。表示の意思 $E$ と内心の意思 $I$ が食い違う場合です。

原則は表示の意思にしたがいますが(表示主義)、相手方が悪意・有過失なら無効になります(意思主義への修正)。式にすると、

\Box (E \to \text{法律効果}) \land (\text{相手悪意} \to \Box (I \to \text{法律効果}))

虚偽表示(民法94条)
表示の意思 $E$ と内心の意思 $I$ が、共謀のうえで食い違う場合です。

当事者間では無効ですが、善意の第三者には対抗できません(94条2項)。

これは、二人称的・三人称的な様相論理の構造を持ちます。

当事者間で見た世界と、第三者から見た世界が、別の可能世界として扱われるのです。

錯誤(民法95条)
真意と異なる表示です。

「もし事実を知っていれば」という反事実条件を含みます。

反事実条件法は、Lewis (1973) と Stalnaker (1968) の反事実意味論で精密に扱われており、これは様相論理の自然な拡張です。

圏論論理学の観点では、様相論理は Lawvere–Tierney topology を持つトポス(modal topos)の内部論理として位置づけられます。

意思表示の解釈は、こうしたトポスのなかで展開できます。


第7章 圏論論理学に基づく判決が現れたら、何が変わるか

pic_10.jpg

思考実験 ── 未来のある判決

ここからは、思考実験です。

ある日、最高裁判所のある判決文に、こんな一文が現れたとします。

「本件は、古典論理の二値判断では捉えきれない問題を含んでいる。我々は、トポスの内部論理に立脚した、文脈依存的な判断を採用する」

これは、現実にはまだ世界のどの裁判所でも書かれたことのない一文です。

けれども、もし将来こんな判決が現れたとしたら、何が変わるでしょうか。

ここでは、変わりうる4つのことを、順に想像してみます。

変わりうること、その1 ── 複雑な現実に対応できるようになる

pic_8.jpg

まず考えられるのは、より複雑な現実に、法体系が対応できるようになる可能性です。

21世紀の社会には、古典論理の二択では裁きにくい問題が、次々と生まれています。
 

  • AI 責任論
    AI が事故を起こしたとき、誰が責任を負うのか。
    設計者か、運用者か、それとも AI 自身か(法人格を認めるのか?)。
     
  • 量子情報の所有権
    量子情報は複製できず、観測すると変わってしまう。
    古典的な「所有」の概念で扱えるのか。
     
  • サイバー空間の主権
    国境のない空間で、主権や管轄をどう扱うのか。
     
  • 生命倫理
    意識の連続性、人格の同一性、脳死、人工子宮 ──「人」の定義そのものが揺らいでいる。
     
  • 気候変動の責任
    何世代もの時間軸にまたがる責任を、いまの法体系でどう扱うのか。
     

こうした問題には、古典論理の単純な二択では対応しきれない場面があります

非古典論理の視座が、新しい解決の枠組みを与えてくれるか ── これが思考実験のひとつの方向です。

変わりうること、その2 ── 判決の透明性が上がる

次に考えられるのが、法的判断の透明性が高まる可能性です。

判事が「自分はどの論理体系に立って判断したか」を明示すれば、判決の論理構造を、市民も追いかけられるようになります。

「直観主義論理的に、立証が不十分なので棄却する」と書かれた判決は、ただ「棄却」とだけ書かれた判決より、はるかに見通しがよいはずです。

これは、民主主義の質にも関わる話です。

市民が判決の論理構造を追えること自体が、司法の民主的な正当性を高めうるでしょう。

変わりうること、その3 ── 法学教育が変わる

3つめは、法学教育が変わる可能性です。

司法試験、ロースクール、法学部の教育に、論理学(とりわけ圏論論理学)が組み込まれる。

法律家が、論理体系の選択を、意識的に行えるようになる。

論理学的な素養は、いまも法学教育のなかに「法律学的論理」「法解釈学」という形で存在しています。

それをもっと広い論理学の視座にまで広げれば、法律家の思考の射程そのものが、広がるかもしれません。

変わりうること、その4── 国際的に先進的な事例になる

pic_9.jpg

4つめは、もう少し大きな話です。国際的に先進的な事例になる可能性

世界の最高裁判所で、圏論論理学を明示的に判決理由へ取り入れた事例は、いまのところ知られていません。

もし日本が先駆けることになれば、世界の法学界・論理学界への貢献になりうる ── これは、福沢諭吉が『西洋事情』で日本に西洋を伝えたのとは逆向き、日本から世界への知的発信の可能性でもあります。


もちろん、懐疑論もある

ただし、こうした思考実験には、当然ながら法学者からの懐疑論が予想されます。あらかじめ、4つの反論と、それへの応答を並べておきます。

懐疑論1:「法的判断は、すでに十分に機能している」
応答:本記事は、現行の法体系の働きを否定するものではありません。「より複雑な現実」が今後増えていくなかで、論理学的視座の拡張がひとつの選択肢としてありうる、と示唆するにとどまります。

懐疑論2:「論理学者の素人考えにすぎない」
応答:これは正当な批判です。本記事は、法学的な厳密さでは不十分です。だからこそ本記事は思考実験であり、規範的な主張ではありません。法学者と論理学者が対話を始める、その出発点として提示しています。

懐疑論3:「判決に論理体系を明記したら、かえって判決が分かりにくくなる」
応答:重要な指摘です。判決の透明性と分かりやすさは、必ずしも一致しません。

論理体系の明記が、誰にとっての透明性向上になるのか ── これは慎重な検討を要します。

懐疑論4:「圏論論理学は、数学的に高度すぎる」
応答:確かに、いまの法律実務に圏論を持ち込むのは現実的ではありません。

けれども、長い目で見た思考実験として、「もし50年後、100年後に、論理学の素養を持つ判事が現れたら」を考えることには、意義があると思います。

専門的にいうと(読み飛ばし可)

ここから先は、既存研究の紹介ではありません。完全にこの記事の執筆者による思弁です。

対応する論文も、定説も、実装も存在しません。
「圏論・トポス論の道具立てを使うと、法体系をこんなふうに描けるかもしれない」という、未検証のスケッチとしてお読みください。

さて、ここで、ここから出てくる聞き慣れない圏論の言葉を、プログラマの感覚に引きつけて訳しておきます(厳密な定義ではなく、雰囲気をつかむための比喩です)。

novelty_3.jpg

  • fibered(ファイバー付き)/ indexed(添字付き)
    どちらも「ひとつの土台の上に、場所ごとに別々のデータをぶら下げる」という発想です。
    プログラマの比喩でいえば、dict(辞書)に近いです。

「キー(場所)→ 値(その場所のデータ)」という対応で、{ "刑法": 刑法のトポス, "憲法": 憲法のトポス, ... } のように、法分野というキーごとに、別々の論理の宇宙(トポス)をぶら下げるイメージです。

fibered(ファイバー=繊維)は「土台の各点から1本ずつ繊維が垂れ下がっている」絵から来た言葉で、indexed(添字付き)は「添字=キーで引ける」という同じ構造を別の言い方で呼んだものです。

実質、ほぼ同じものを指します。
 

  • fibration(束化、そくか)
    その「ぶら下げる」構造そのもの、あるいは土台と繊維をつなぐ仕組みを指す言葉です。
    ばらばらの繊維(各トポス)を1本の土台に束ねている、というニュアンスです。
     
  • スタック(stack)
    こちらはプログラミングの「スタック(積み重ね)」とは別物です。
    圏論でいうスタックは、「あちこちの局所的なデータを、矛盾なく1枚に貼り合わせる」ための仕組みです。

地図でいえば、市町村ごとの部分地図を、境目がずれないように貼り合わせて全国地図にする
── そんな「貼り合わせ」の構造だと思ってください。
 

これらは要するに、「場所ごとに違う論理を持たせ(fibered / indexed)、それらを束ね(fibration)、矛盾なく貼り合わせる(スタック)」という、圏論が持っている整理の道具立てです。

以下では、これを法体系に当てはめてみます。

本記事の試論を、もっと理論的に展開するとすれば、3つの方向が考えられます。

directions.jpg

方向1: 法体系のトポス的な階層

各法分野(刑法、民法、憲法、商法、行政法など)を、異なるトポスとして捉える。

各トポスは、異なる内部論理をつことができます。

たとえば、

  • 刑法トポスは、 Heyting 代数的(立証構造のため)、
  • 行政法トポスは、ファジィ論理的(比例原則のため)、
  • 憲法トポスは、量子論理的(基本権衝突のため)、

というように。

体系全体は、これらのトポスの fibered category(あるいは indexed topos)として整理できます。

方向2: 判決の関手的な構造

判決を、事実のトポスから法的効果のトポスへの関手として形式化する。

複数の解釈は、複数の関手として表される。
判事の選択は、それらの関手のなかから特定のものを選ぶ行為、ということになります。

ここで出てきた 関手(functor、かんしゅ) も、聞き慣れない言葉だと思うので、プログラマの皆様の感覚に引きつけて翻訳を試みてみます。

関手とは、ひとことでいえば、「ある世界(圏)まるごとを、別の世界(圏)へ、構造を保ったまま変換する写像」です。

ただの関数が「$値 → 値$」を移すのに対し、関手は「世界そのものを、つながり方を壊さずに移す」点が違います。

プログラマの比喩でいえば、listOptional(あるいは Python の map)に近いものです。

map(f, xs) は、中身ひとつひとつに f を適用しつつ、「リストである」という構造はそのまま保ちますね。

あの「構造を保ったまま、まるごと移す」感覚が、関手のイメージです。

これを判決に当てはめると、こうなります。

事実のトポス」(事件の生の事実が住む世界)を、「法的効果のトポス」(権利・義務・効果が住む世界)へ、構造を保ったまま移す ── その移し方そのものが、ひとつの判決にあたります

事実どうしの関係(時系列、因果、当事者のつながり) を、法的効果どうしの関へと、矛盾なく対応づける作業だからです。

そして、同じ事実でも解釈は一通りではありません

移し方(関手)は、何通りもありえます。判事が判決を下すとは、コードでいえば「複数ありうる変換関数のなかから、どれか1つを選んで適用する」行為にあたる、というわけです。

functor_pic.jpg

方向3: 判例法のスタック構造

判例の積み重ねを、スタック(stack) として形式化する。

スタックとは、局所的なデータを大域的に貼り合わせる構造で、判例の蓄積による法体系の進化を捉えうる枠組み です。

いずれも、まだ思弁的な提案です。
実装は今後の課題です。

しかし、姉妹記事で論じた圏論論理学・トポス論の枠組みが、法学のもっとも深い部分にも適用できるかもしれない、ということを示唆しています。


第8章 先行研究 ── 法論理学・AI and Law・非古典論理の系譜

本記事の試論は、ある日、唐突に思いついた着想ではありませんでした。

法学と論理学の交差は、半世紀以上の研究蓄積を持つ領域です。

この記事の冒頭でも、4つの領域をご紹介しましたが、ここでは、主要な先行研究をもう一度、系譜として整理しておきます。

義務論理(deontic logic)の系譜

Georg Henrik von Wright (1951) "Deontic Logic"(Mind) は、義務(O)・許可(P)・禁止(F)を扱う論理体系を、はじめて体系化しました。近代の法論理学の出発点です。

その後、義務論理はさまざまに拡張されました。

条件つき義務を扱う dyadic deontic logic
例外を許す defeasible deontic logic
時間軸を持つ temporal deontic logic
複数の主体の義務を扱う multi-agent deontic logic

などです。

法論理学と AI and Law の発展

1980年代以降、人工知能と法律の交差点として、AI and Law という分野が育ちました。主な研究としては、Pollock (1987) の defeasible reasoning(可破棄的推論)、Dung (1995) の argumentation framework、Sartor・Prakken・Verheij らによる法的論証理論の体系化、Governatori らによる defeasible deontic logic の発展(2000年代)などがあります。

いずれも、古典論理の枠を広げ、法的推論の現実的な構造を形式化しようとする試みでした。

圏論的アプローチ

Peterson (2014) "The categorical imperative: Category theory as a foundation for deontic logic"(Journal of Applied Logic) は、本記事ともっとも問題意識が近い先行研究です。

ピーターソンの業績は、次のように要約できます。

Deontic deductive system (DDS) を2つの fibration として定義し、無条件義務の論理 OL を Cartesian closed category のうえに、条件つき規範推論 CNR を symmetric closed monoidal category のうえに組み立てる。

これによって、義務論理の古典的なパラドックスを解き、カナダ法のテキストへの応用例も示しました。

まさに、圏論論理学を義務論理の基礎として使う試みであり、本記事の重要な先輩です。

量子論理的法理論

Nicholas Godfrey (2024) "Toward a Quantum-Inspired Framework for Modelling Legal Rules"(SAGE Publications) は、近年の重要な研究です。

ゴッドフリーの枠組みは、複数の量子ビットの系を使って曖昧な法規則を形式化し、各状態が「競合する複数の法解釈」を表すようにしたものです。

振幅(amplitude)が、解釈の妥当性の確率や、その二次的な特性を表します。さらに、古典・量子の情報理論の測度を使って、曖昧さやテキスト間の整合性を分析します。

これは、本記事の事例4(基本権の衝突)で論じた量子論理的な視座を、近年になって具体化したものです。

ファジィ法学の系譜

ファジィ法学は、Zadeh (1965) のファジィ論理に始まり、法学への応用は1990年代以降に本格化しました。

Mazzarese (1993) "Fuzzy Logic and Judicial Decision-Making"、
Philipps (1993) "Vague legal concepts and fuzzy logic"、
Walker らの default-logic paradigm、
そして
Hudon (2025) によるカナダ・ケベック州 Superior Court 判決のハイブリッド・ファジィ予測モデルへと続きます。

関連する理論的研究

このほか、本記事の背景として、次のような研究があります。
 

  • Ozawa & Khrennikov (2022) "Nondistributivity of human logic..."(人間認知の非分配律性)
     
  • Horvat & Toader (2023) "An Alleged Tension between Non-classical Logics and Applied Classical Mathematics"(非古典論理の応用論争)
     
  • Witt, Huggings, Governatori, Buckley (2024) "Encoding legislation"(立法の技術的検証、Artificial Intelligence and Law
     
  • Yu, Lu (2024) "Explaining Non-monotonic Normative Reasoning..."(自動運転と義務論理)。
     
    これらの先行研究は、本記事の試論を孤立した素人考えではなく、既存の研究の系譜のなかに位置づけてくれます。

第9章 いま、私たちにできること ── 人間とAIが「どの論理に立っているか」を合わせる

ここまでは「もし将来こんな判決が現れたら」という、遠い未来の思考実験でした。

けれども、本記事の見方は、いま手元にある道具 ── LLM や AI エージェント ── にも、すぐ応用できるかもしれません。

ai_human.jpg

法律の話を、AIと人間が一緒に進めるとき

いま、LLM や AI エージェントが、法的な観点を含むタスクを扱う場面が増えています。

契約書のリスクを洗い出す、規程の矛盾を指摘する、論点を整理する ── そうした作業を、人間と AI が会話しながら進めていく。

このとき、しばしば起きるのが「かみ合わなさ」です。

人間は「有効か、無効か」を二択で聞いているのに、AI は「ケースによります」と程度で答える。

あるいは逆に、人間は「どのくらいリスクがあるか」を程度で知りたいのに、AI は「無効です」と白黒で断じてしまう。

本記事の見方を借りると、この食い違いの正体がはっきりします。

人間と AI が、無意識のうちに別々の論理体系に立っているのです。

片方は古典論理(二値)、もう片方はファジィ論理(程度)
── 前提にしている論理がずれていると、どれだけ言葉を尽くしても、会話はかみ合いません。

そこで役に立つのが、本記事の中心にあった問いです。

いま、自分はどの論理に立っているのか?
── これを、人間と AI がお互いに明示しながら会話できれば、目線がそろいます。

「ここからは二値で結論だけ欲しい」「ここからは程度で見たい」と宣言し合えれば、すれ違いは大きく減るはずです。

⚠️ 大切な前提(法律上の線引き)
ここで述べているのは、あくまで「有資格の専門家を補助する道具」としての AI の使い方です。

弁護士・司法書士などの法曹資格を持ち、弁護士会・司法書士会に所属して合法的に法律相談を行える人間の専門家が主体であることが大前提です。

我が国(日本)では、資格のない者が報酬を得て法律事務を扱うことは弁護士法72条(非弁行為の禁止)などで制限されており、AI が人間に代わって法律相談そのものを行うことはできません

本節は「AIに法律相談をさせよう」という話ではなく、「専門家とAIが議論するとき、論理の前提をそろえると見通しがよくなる」という、思考の道具立ての話です。

会話例 ── 論理の前提を明示する

たとえば、こんな会話です。論理の前提を、発言のたびにそろえています。

人間(古典論理):「この契約は、有効か無効か、どちらですか?」

AI(古典論理):「二値で答えるなら『有効』です。ただ、前提を変えると見え方が変わります。」

AI(ファジィ論理に切り替え):「ファジィに見ると『0.7 くらい有効』── 取消しのリスクが残る、と表現できます。」

人間(ファジィ論理):「では、その残り 0.3 のリスクが、何に由来するのか整理してください。」

最初の会話の2往復は、古典論理(二値)で、結論をはっきりさせています。

3つめで AI が「ここからはファジィに切り替えます」と明示し、程度の話に移ります。

人間もそれに合わせて、4つ目の発話で、ファジィの土俵に乗ります。

どちらも、いまどの論理に立っているかを自覚しているので、会話がかみ合っています。

ここで大事なのは、AI が勝手に論理を切り替えないことです。

「いまから前提を変えますよ」と一言添える必要があります。
そして、人間の側も「その前提でお願い」と応じる。

この目線合わせこそが、本記事の「論理はひとつではない」という視点の、もっとも実用的な使い道かもしれません。

コードで見る ── 発言に「論理の前提」を付ける

この「目線合わせ」は、コードにすると驚くほど単純です。

各発言に「どの論理に立っているか」のタグを付けるだけです。

from enum import Enum
from dataclasses import dataclass

class Logic(Enum):
    CLASSICAL      = "古典論理(二値)"
    INTUITIONISTIC = "直観主義論理(立証されたものだけ真)"
    FUZZY          = "ファジィ論理(程度を 0〜1 で扱う)"
    QUANTUM        = "量子論理(文脈で結論が変わる)"
    MODAL          = "様相論理(可能世界を比較する)"

@dataclass
class Turn:
    speaker: str    # "人間" または "AI"
    logic: Logic    # この発言が前提にしている論理
    content: str

def show(turn: Turn) -> str:
    return f"[{turn.logic.value}] {turn.speaker}: {turn.content}"

# 会話例:いま「どの論理に立っているか」を、発言ごとにタグ付けする
conversation = [
    Turn("人間", Logic.CLASSICAL, "この契約は有効か無効か、どちらですか?"),
    Turn("AI",   Logic.CLASSICAL, "二値で答えるなら『有効』です。ただ前提を変えると見え方が変わります。"),
    Turn("AI",   Logic.FUZZY,     "ファジィに見ると『0.7くらい有効』── 取消しリスクが残る、と表現できます。"),
    Turn("人間", Logic.FUZZY,     "では、その 0.3 のリスクが何に由来するか整理してください。"),
]

for t in conversation:
    print(show(t))

# 「いま人間とAIが同じ論理に立っているか」を判定する
def aligned(a: Turn, b: Turn) -> bool:
    return a.logic == b.logic

print("---")
print("最後の人間とAIは同じ論理に立っているか:", aligned(conversation[-1], conversation[-2]))

このスクリプトを実行すると、各発言の頭に [古典論理(二値)] [ファジィ論理(…)] という論理のタグが表示され、最後に「人間とAIが同じ論理に立っているか」が True と出ます。
 

  • [古典論理(二値)] 人間: この契約は有効か無効か、どちらですか?
     
  • [古典論理(二値)] AI: 二値で答えるなら『有効』です。ただ前提を変えると見え方が変わります。
     
  • [ファジィ論理(程度を 0〜1 で扱う)] AI: ファジィに見ると『0.7くらい有効』── 取消しリスクが残る、と表現できます。
     
  • [ファジィ論理(程度を 0〜1 で扱う)] 人間: では、その 0.3 のリスクが何に由来するか整理してください。
     
    最後の人間とAIは同じ論理に立っているか: True

Logic という Enum(選択肢の集まり)で論理体系を5つ定義し、それぞれの発話(Turn)がどの論理に立脚した発言なのかを明示させています。

aligned 関数は、人間とAIの対応する2つの発話が同じ論理に立っているかを == で比べてチェックします。

たったこれだけの仕組みでも、「いま会話が同じ土俵にあるか」を機械的にチェックできます。

もちろん、これはおもちゃのような最小例です。

実務では、論理の切り替えを検知して相手に確認を促したり、結論(二値)と程度(ファジィ)を併記して提示したり、といった工夫が考えられます。

けれども本質は単純で、「発言に、前提としている論理を添える」── ただそれだけです。

本記事の「論理はひとつではない」という視点は、こうして、いまのAIと人間の対話の質を、ほんの少し上げることにも使えるかもしれません。

第10章 思考実験の限界 ── 法学者からの予想される批判

本記事の試論は、いくつもの限界を抱えています。誠実に明記しておきます。

想定される批判と、本記事執筆者の暫定的な見解

批判1:「実定法の解釈論としては通用しない」

この記事の立場:
そのとおりです。本記事は実定法の解釈論ではなく、論理学の視座からの思考実験です。現実の判決を予測したり、解釈の正解を与えたりするものではありません。

批判2:「論理体系を変えても、結局は判事の判断しだいだ」

この記事の立場:
的を射た批判です。論理体系をどれにするか、という選択そのものが、判事の規範的な判断を含みます。

本記事が目指すのは、その判断の「論理構造を透明にする」ことであって、論理が判断を自動的に下せると主張しているわけではありません。

批判3:「『古典論理が暗黙の前提』というのは、言いすぎだ」

この記事の立場:
重要な指摘です。

実際には、いまの法的判断にも、ファジィ的な要素・直観主義的な要素が、すでに暗黙のうちに含まれています。
本記事の主張は、それらを明示的に論理学の視座から眺めることの有用性に、とどまります。

批判4:「判決文に論理体系を明記すると、判決が硬直化する」

この記事の立場:
これも重要な懸念です。

論理体系を明記することで、判決の柔軟さが失われる可能性は否定できません。
透明性と柔軟性のトレードオフは、慎重に検討すべき問題です。

批判5:「日本の司法は、すでに十分に機能している」

この記事の立場:
本記事は現行司法の批判を意図していません。

「より複雑な21世紀の問題」が増えていくなかで、論理学的視座の拡張がひとつの選択肢としてありうる、と示唆するにとどまります。

思考実験としての限界

本記事は思考実験です。思考実験には、本質的な限界があります。

第一に、実装できる保証はない。本記事の試論が、現実の法律実務で機能するかは、未検証です。

第二に、コストの検討が足りていない。論理学の素養を持つ判事の養成、判決文の様式の変更、市民への啓発 ── どれも多大なコストがかかります。

第三に、文化的・歴史的な文脈を捨ててしまっている。日本法、英米法、大陸法、それぞれの伝統との接続を、本記事は十分に論じていません。

第四に、経験的な検証がない。「論理体系を明示した判決のほうが、よい判決を生む」という命題は、まだ経験的に検証されていません。

哲学的・方法論的な限界

さらに深い限界として、3つ挙げておきます。

限界1:論理学的還元主義の危うさ
法的判断のすべてを、論理の構造に還元することはできません。

正義感、衡平、社会的文脈、当事者の感情、判事の良心 ── これらは、論理的な形式化を根本的にすり抜ける要素を含んでいます。

限界2:形式と内容の関係
論理体系は、あくまで形式(form)です。

法の内容(content)は、形式には還元できません。
両者の関係を、本記事は十分に論じきれていません。

限界3:メタ的視座の自己言及性
「論理学の視座から法律論を眺める」という本記事の試みそのものが、特定の論理体系を前提にしています。

本記事は古典論理(あるいは直観主義論理)で書かれており、その意味で、自己完結はしていません。

これらの限界を踏まえたうえで、それでも本記事の思考実験には価値があると考えます。

なぜなら、思考実験は結論を出すためではなく、視界を開くためにあるからです。

pic_11.jpg


結章 ── 視界が開ける

結びの言葉

本記事は、純粋な思考実験でした。

日本の法体系を批判するものでも、特定の判例を論じるものでも、規範的な主張を掲げるものでもありません。

ただ、「論理学の視座から法的判断を眺めると、どんな視界が開けるか」を、5つの事例(刑事責任能力、推定無罪、比例原則、基本権の衝突、意思表示)を通して眺めてみました。

この試論が、すぐに何かを変えるとは思っていません。

けれども、いつか、どこかで、誰かが、論理学の視座を持って法律を考えるとき、本記事がその小さな出発点になれたら、嬉しく思います。

最後にもう一度、冒頭の約束をくり返します。

本記事で使った個別の道具 ── ファジィ法学、義務論理、量子論理、直観主義論理、様相論理、そして Peterson らの圏論的アプローチ ── は、いずれも私の発明ではなく、確立した既存研究です。

本記事執筆者が独自に持ち込んだのは、それらを5つの法的判断に1対1で割り当てた構成と、とりわけ「推定無罪=直観主義論理」「基本権の衝突=量子論理」という対応づけ、そして法体系をトポスの集まりとして描く構想です。

後者は、定説でも検証済みの理論でもなく、あくまで本記事執筆者による思弁です。

この線引きを忘れずに、本記事を「ひとつの読み物」として受け取っていただければと思います。

「視界が開ける」とは、どういうことか

「視界が開ける」── このタイトルに込めた意味を、最後に記します。

哲学者ウィトゲンシュタインが言ったように、新しい言語は、新しい世界を見せてくれます

圏論論理学・トポス論・非古典論理は、現代の論理学が20世紀後半に手に入れた、新しい言語です。

この言語で法律論を眺めたとき、視界に映るのは、現行法体系がもつ欠点でも誤りでもありません

視界に映るのは、現行法体系が暗黙のうちに抱え込んでいた、多様な論理構造のほうです。

刑事責任能力の「程度」、推定無罪の「構成的な立証」、比例原則の「重み付け」、基本権衝突の「文脈依存性」、意思表示の「可能世界」── これらはすべて、現行法体系のなかにすでに埋め込まれている構造です。

本記事の試みは、それらを新しい言語で言葉にすることでした。

言葉にされて初めて、私たちはそれらを意識的に扱えるようになります。

そして、最後に

もし読者の皆様が、将来この国の法を担う側に回ったり、あるいは数学者・論理学者として論理そのものを探究する側に回ったりすることがあるなら、ひとつだけ、ぜひ忘れないでいただきたいことがあります。

法律と論理は、深いところでつながっています

法律は社会の「白黒」を決める仕事ですが、その「白黒」の背後には、どの論理体系を選ぶかという、もう一段深い問題が横たわっています。

20世紀の論理学者と数学者は、論理がひとつではないことを明らかにしてきました。

古典論理、直観主義論理、量子論理、様相論理、ファジィ論理、多値論理
── いくつもの論理が存在します。

そして21世紀の法律家・論理学者・哲学者は、これらの論理が法律論にどう関わるかを、これから少しずつ明らかにしていくでしょう。

もし、あなたが将来、難しい問題に直面したとき、ふと「この判断は、どの論理体系を前提にしているのだろう?」と自問する瞬間があったとしたら

── 本記事は、その瞬間のために書かれたものです。

pic_12.jpg


参考文献・関連文献

本記事の試論は、以下の文献から学びました。

法論理学・義務論理

  1. von Wright, G. H. (1951). "Deontic Logic." Mind, 60(237), 1-15.

  2. Peterson, C. (2014). "The categorical imperative: Category theory as a foundation for deontic logic." Journal of Applied Logic.

  3. Witt, A., Huggings, A., Governatori, G., Buckley, J. (2024). "Encoding legislation: A methodology for enhancing technical validation, legal alignment and interdisciplinarity." Artificial Intelligence and Law, 32, 293-324.

  4. Yu, Z., Lu, Y. (2024). "Explaining Non-monotonic Normative Reasoning using Argumentation Theory with Deontic Logic." arXiv:2409.11780.

ファジィ論理と法学

  1. Zadeh, L. A. (1965). "Fuzzy sets." Information and Control, 8(3), 338-353.

  2. Mazzarese, T. (1993). "Fuzzy Logic and Judicial Decision-Making."

  3. Philipps, L. (1993). "Vague legal concepts and fuzzy logic."

  4. Walker, V. R. "A Default-Logic Paradigm for Legal Reasoning and Factfinding."

  5. Hudon, A. (2025). "A hybrid fuzzy logic–Random Forest model to predict psychiatric treatment order outcomes." Frontiers in Artificial Intelligence.

量子論理と法的解釈

  1. Birkhoff, G., von Neumann, J. (1936). "The Logic of Quantum Mechanics." Annals of Mathematics, 37(4), 823-843.

  2. Godfrey, N. (2024). "Toward a Quantum-Inspired Framework for Modelling Legal Rules." SAGE Publications.

  3. Ozawa, M., Khrennikov, A. (2022). "Nondistributivity of human logic and violation of response replicability effect in cognitive psychology." arXiv:2208.12946.

様相論理と意思表示

  1. Kripke, S. (1959). "A completeness theorem in modal logic." Journal of Symbolic Logic, 24, 1-14.

  2. Lewis, D. (1973). Counterfactuals. Harvard University Press.

AI and Law

  1. Dung, P. M. (1995). "On the acceptability of arguments and its fundamental role in nonmonotonic reasoning, logic programming and n-person games." Artificial Intelligence, 77, 321-357.

  2. Pollock, J. (1987). "Defeasible reasoning." Cognitive Science, 11(4), 481-518.

  3. Furbach, U., Schon, C., Stolzenburg, F. "Automated Reasoning in Deontic Logic." arXiv:1411.4823.

圏論論理学・トポス論

  1. Lawvere, F. W. (1969). "Adjointness in foundations." Dialectica, 23, 281-296.

  2. Mac Lane, S., Moerdijk, I. (1992). Sheaves in Geometry and Logic. Springer.

  3. Abramsky, S., Coecke, B. (2004). "A categorical semantics of quantum protocols." LICS 2004.

Étale Cohomology による関連記事

  • 「論理はひとつではない ── 圏論論理学がつなぐ量子論理・トポス・圏論的量子力学」(Qiita, 2026年5月31日)

著者について

Étale Cohomology(エタール・コホモロジー)

Geometric Data Scienceの専門家。多様体やSheaf理論を用いて、複雑な経営リスクを可視化する研究・実装を行っています。Zenn Bookにて日・英語版の専門書を出版。Qiitaでは、Zenn本を対話形式でわかりやすくした記事を公開中。

本記事は、純粋な思考実験として、論理学・圏論論理学の観点から法律論を眼差した試論です。法学者や法律家の方々からのご指摘・対話を歓迎します。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?