1
大学数学基礎解説
文献あり

ペアノ算術で加法交換法則の証明図をかく

1013
0

本記事では,ペアノ算術の加法交換法則の証明図をかいていきたいと思います.

ペアノ算術の各種法則の証明は,等式変形をやっていけばそれほど難しいものではないですが,の付け外しなど,色々とすっ飛ばして書くことになります.
せっかく基礎まで立ち返って証明をやっているのにそれではもったいないので,1段階ずつ推論規則を追って加法交換法則を証明し,証明図にしていこうと思います.

なお,本記事は参考文献にあげた資料および筆者が数年前に受けた記号論理学の講義の記憶をもとに構成されています.
独自の定義を含む可能性がありますので,レポートなどのためにこの記事を見つけられた方はご注意ください.

定義

証明の前にまず必要事項の定義をまとめていきます.

記号

まずは記号の定義です.
ここを厳密に構成するのは筆者の手に余るので自然言語的な説明でお許しください.

記号
  • X,Y,Z,:命題変数
    真または偽の値を取る変数
  • P,Q,R,:述語変数
    1つ以上の変数を取って命題となる.
  • ,,,¬,,:論理記号
    ,,は2つ,¬は1つの命題を引数にとり,命題を返す演算子.
    ,x.P(x)のかたちで束縛変数を含む命題を作る演算子.
  • a,b,c,: (自由)変数
    述語の引数となる記号.
  • x,y,z,: 束縛変数
    ,によって束縛され証明の外部には出てこない変数.
  • f,g,:関数
    1つ以上の変数を取って変数となる.

推論規則

古典一階述語論理の推論規則です.
本項は文献[1-4]を元に,(ちょいちょい表記がブレるので)筆者が構成したものです.

I・~Eはそれぞれ~の導入則・除去則を表します.
PQ」は P から Q が証明されることを意味するメタ記号で,と同じような意味です.ただし,論理記号のとは区別します.

推論規則
  • IX,YXY
  • EXYX,XYY
  • IXXY,YXY
  • EXY,[X]Z,[Y]ZZ
  • ¬I[X]¬X
  • ¬EX,¬X
  • I[X]YXY
  • EXY,XY
  • IP(x)x.P(x)
  • Ex.P(x)P(a)
  • IP(a)x.P(x)
  • Ex.P(x),[P(a)]QQ

[X]は推論の際に仮定から外れるという意味で,証明図では
[X](n)[Y](n)(n)(n)XYZ(n)Z(n)ZE(n)
のようにどこの推論に対応する仮定なのかわかるようマークをつけたりします.

排中律(¬E)を含まなければ直観主義論理です.今回の証明では多分使っていないので直観主義論理の範囲でも証明可能ということですね.

等号

「数」を扱うのに必要な等号「=」を導入します.
ここで,公理として「」が入った命題があると式変形がとてつもなくめんどくさくなるので,文献[5]の「相等公理CA」をもとに推論規則を追加する形で定義します.

変数x,yを取って命題x=yとなる2項演算子=を以下のように定めます.

=の推論
  1. 反射律: x=x
  2. 対称律: x=yy=x
  3. 推移律: x=y, y=zx=z
  4. 代入律1: 任意の関数fについて x=yf(,x,)=f(,y,)
  5. 代入律2: 任意の述語Pについて x=y,P(,x,)P(,y,)

ペアノ算術

「自然数」における演算を以下の公理系で定義します.(参考:[4,6])

ペアノ算術

記号

  • 0:定数記号
  • s:1変数関数
  • +,×: 2変数関数

公理系(PA)

  1. (PA1): n.¬(sn=0)
  2. (PA2): m.n.(sm=snm=n)
  3. (PA3): n.(n+0=n)
  4. (PA4): m.n.(m+sn=s(m+n))
  5. (PA5): n.(n×0=0)
  6. (PA6): m.n.(m×sn=(m×n)+n)
  7. 数学的帰納法: 任意の述語P(,n,)について,P(,0,),n.(P(,n,)P(,sn,))n.P(,n,)

証明

ここまでに定義した推論規則・公理を使って

自然数の加法の交換法則

x.y.(x+y=y+x)

を証明します.
全称量化が2つあるので,2重の数学的帰納法で証明していきます.
適宜用いた推論規則や公理を()で付記します.

(I)
(I-i)
(1)0+0=0+0(反射律)

(I-ii)
(PA4)m.n.(m+sn=s(m+n))n.0+sn=s(0+n)(E)
(2)0+sk=s(0+k)(E)
(3)[0+k=k+0]As(0+k)=s(k+0)(代入律(関数))
(PA3)n.(n+0=n)k+0=k(E)
(4)s(k+0)=sk(代入律(関数))
(5)(2),(3)0+sk=s(k+0)(推移律)
(6)(5),(4)0+sk=sk(推移律)
(PA3)n.(n+0=n)sk+0=sk(E)
(7)sk=sk+0(対称律)
(8)(6),(7)0+sk=sk+0(推移律)
[x]A(8)(0+k=k+00+sk=sk+0)(I)
(9)k.(0+k=k+00+sk=sk+0)(I)

(10)(1),(9)y.(0+y=y+0)(数学的帰納法)

(II)
(PA4)m.n.(m+sn=s(m+n))sl+sn=s(sl+n)(E)
(11)sl+sk=s(sl+k)(E)
(12)[sl+k=k+sl]Bs(sl+k)=s(k+sl)(代入律(関数))
(13)(11),(12)sl+sk=s(k+sl)(推移律)
(PA4)m.n.(m+sn=s(m+n))n.k+sn=s(k+n)(E)
k+sl=s(k+l)(E)
(14)s(k+sl)=ss(k+l)(代入律(関数))
(15)(13),(14)sl+sk=ss(k+l)(推移律)

(PA4)m.n.(m+sn=s(m+n))n.sk+sn=s(sk+n)(E)
(16)sk+sl=s(sk+l)(E)
[y.l+y=y+l]Cl+sk=sk+l(E)
sk+l=l+sk(対称律)
(17)s(sk+l)=s(l+sk)(代入律(関数))
(18)(16),(17)sk+sl=s(l+sk)(推移律)
(PA4)m.n.(m+sn=s(m+n))n.l+sn=s(l+n)(E)
l+sk=s(l+k)(E)
(19)s(l+sk)=ss(l+k)(代入律(関数))
(20)(18),(19)sk+sl=ss(l+k)(推移律)
[y.l+y=y+l]Cl+k=k+l(E)
(21)ss(l+k)=ss(k+l)(代入律(関数))
(20),(21)sk+sl=ss(k+l)(推移律)
(22)ss(k+l)=sk+sl(対称律)
(23)(15),(22)sl+sk=sk+sl(推移律)
[x]B(23)(sl+k=k+sl)(sl+sk=sk+sl)(I)
(24)k.(sl+k=k+sl)(sl+sk=sk+sl)(I)

(10)0+sl=sl+0(E)
(25)sl+0=0+sl(対称律)
(26)(25),(24)y.sl+y=y+sl(数学的帰納法)
[x]C,[x]C(26)(y.l+y=y+l)(y.sl+y=y+sl)(I)
(27)l.(y.l+y=y+l)(y.sl+y=y+sl)(I)

(Q.E.D.)(10),(27)x.y.x+y=y+x(数学的帰納法)

この証明を証明図にするとこのようになります.

証明図-全体 証明図-全体

いくらなんでも見づらすぎるので前半部分を分割すると,以下のようになります.

証明図-分割 証明図-分割

bussproofs パッケージを用いてLaTeXで描画しています.
すぐ紙幅をはみ出すので調整が大変です.

以上です.
今後,機会があれば他の法則の証明もやってみようと思います.
間違いなどありましたらコメントで教えていただけると幸いです.

Appendix-LaTeXソースコード

面倒がってマクロを濫用した汚いコードですが,参考に置いておきます.
※マークダウン記法と干渉しておかしな表示になってるのでソースコードを参照してください.

      \documentclass[a4paper,8pt]{jsarticle}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{bussproofs}
%\usepackage{proof}
  
\newcommand{\CAA}{(反射律)}
\newcommand{\CAB}{(対称律)}
\newcommand{\CAC}{(推移律)}
\newcommand{\CAD}{ (代入律(関数))}
\newcommand{\CAE}{(代入律(述語))}

\newcommand{\PAA}{$(\mathrm{PA1})\; \forall n. \lnot(sn=0)$}
\newcommand{\PAB}{$(\mathrm{PA2})\;\forall m. \forall n. (sm=sn\to m=n)$}
\newcommand{\PAC}{$(\mathrm{PA3})\; \forall n. (n+0=n)$}
\newcommand{\PAD}{$(\mathrm{PA}4)\; \forall m. \forall n. (m+sn=s(m+n))$}
\newcommand{\MI}{(数学的帰納法)}

\let\A\AxiomC
%\let\R\RightLabel
\newcommand{\R}[1]{\RightLabel{{\footnotesize #1}}}
\let\U\UnaryInfC
\let\B\BinaryInfC
\let\T\TrinaryInfC

\newcommand{\paren}[1]{\left( #1 \right)}
\newcommand{\bracket}[1]{\left[ #1 \right]}
\newcommand{\To}{\vdash}

\begin{document}
\rotatebox{270}{
\scalebox{0.3}{
\parbox{2.7\linewidth}{
\begin{prooftree}
%
\A{}
\R{\CAA}
\U{$0+0=0+0$}%(1)
%
\A{\PAD}
\R{$\forall E$}
\U{$\forall n. 0+sn=s(0+n)$}
\R{$\forall E$}
\U{$0+sk = s(0+k)$}%(2)
%
\A{$\bracket{0+k=k+0}^A$}
\R{\CAD}
\U{$s(0+k)=s(k+0)$}%(3)
\R{\CAC}
\B{$0+sk=s(k+0)$}%(5)
%
\A{\PAC}
\R{$\forall E$}
\U{$k+0=k$}
\R{\CAD}
\U{$s(k+0)=sk$}%(4)
\R{\CAC}
\B{$0+sk=sk$}%(6)
%
\A{\PAC}
\R{$\forall E$}
\U{$sk+0=sk$}
\R{\CAB}
\U{$sk=sk+0$}%(7)
\R{\CAC}
\B{$0+sk=sk+0$}%(8)
\R{$\to I^A$}
\U{$(0+k=k+0\to 0+sk=sk+0)$}
\R{$\forall I$}
\U{$\forall k.(0+k=k+0\to 0+sk=sk+0)$}%(9)
\R{\MI}
\B{$\forall y. (0+y=y+0)$}
%
\A{}
\R{\CAA}
\U{$0+0=0+0$}%(1)
%
\A{\PAD}
\R{$\forall E$}
\U{$\forall n. 0+sn=s(0+n)$}
\R{$\forall E$}
\U{$0+sk = s(0+k)$}%(2)
%
\A{$\bracket{0+k=k+0}^A$}
\R{\CAD}
\U{$s(0+k)=s(k+0)$}%(3)
\R{\CAC}
\B{$0+sk=s(k+0)$}%(5)
%
\A{\PAC}
\R{$\forall E$}
\U{$k+0=k$}
\R{\CAD}
\U{$s(k+0)=sk$}%(4)
\R{\CAC}
\B{$0+sk=sk$}%(6)
%
\A{\PAC}
\R{$\forall E$}
\U{$sk+0=sk$}
\R{\CAB}
\U{$sk=sk+0$}%(7)
\R{\CAC}
\B{$0+sk=sk+0$}%(8)
\R{$\to I^A$}
\U{$(0+k=k+0\to 0+sk=sk+0)$}
\R{$\forall I$}
\U{$\forall k.(0+k=k+0\to 0+sk=sk+0)$}%(9)
\R{\MI}
\B{$\forall y. (0+y=y+0)$}
\R{$\forall E$}
\U{$0+sl=sl+0$}
\R{\CAB}
\U{$sl+0=0+sl$}%(25
%
\A{\PAD}
\R{$\forall E$}
\U{$sl+sn=s(sl+n)$}
\R{$\forall E$}
\U{$sl*sk=s(sl+k)$}%(11)
%
\A{$\bracket{sl+k=k+sl}^B$}
\R{\CAD}
\U{$s(sl+k)=s(k+sl)$}%(12)
\R{\CAC}
\B{$sl+sk=s(k+sl)$}%(13)
%
\A{\PAD}
\R{$\forall E$}
\U{$\forall n. k+sn=s(k+n)$}
\R{$\forall E$}
\U{$k+sl=s(k+l)$}
\R{\CAD}
\U{$s(k+sl)=ss(k+l)$}%(14)
\R{\CAC}
\B{$sl+sk=ss(k+l)$}%(15
%
\A{\PAD}
\R{$\forall E$}
\U{$\forall n. sk+sn=s(sk+n)s$}
\R{$\forall E$}
\U{$sk+sl=s(sk+l)$}%(16
%
\A{$\bracket{\forall y. l+y=y+l}^C$}
\R{$\forall E$}
\U{$l+sk=sk+l$}
\R{\CAB}
\U{$sk+l=l+sk$}
\R{\CAD}
\U{$s(sk+l)=s(l+sk)$}%(17
\R{\CAC}
\B{$sk+sl=s(l+sk)$}%(18
%
\A{\PAD}
\R{$\forall E$}
\U{$\forall n. l+sn=s(l+n)$}
\R{$\forall E$}
\U{$l+sk=s(l+k)$}
\R{\CAD}
\U{$s(l+sk)=ss(l+k)$}%(19
\R{\CAC}
\B{$sk+sl=ss(l+k)$}%(20
%
\A{$\bracket{\forall y. l+y=y+l}^C$}
\R{$\forall E$}
\U{$l+k=k+l$}
\R{\CAD}
\U{$ss(l+k)=ss(k+l)$}%(21
\R{\CAC}
\B{$sk+sl=ss(k+l)$}
\R{\CAB}
\U{$ss(k+l)=sk+sl$}%(22
\R{\CAC}
\B{$sl+sk=sk+sl$}%(23
\R{$\to I^B$}
\U{$(sl+k=k+sl)\to(sl+sk=sk+sl)$}
\R{$\forall I$}
\U{$\forall k. (sl+k=k+sl)\to(sl+sk=sk+sl)$}%(24
\R{\MI}
\B{$\forall y. sl+y = y+sl$}%(25
\R{$\to I$}
\U{$(\forall y.l+y=y+l)\to(\forall y. sl+y=y+sl)$}
\R{$\forall I$}
\U{$\forall l. (\forall y.l+y=y+l)\to(\forall y. sl+y=y+sl)$}%(27
\R{\MI}
\B{$\forall x. \forall y.x+y=y+x$}
\end{prooftree}}}}
\newpage

\scalebox{0.4}{少し見やすいver.}

\fbox{
\scalebox{0.4}{
\parbox{1.4\linewidth}{
\begin{prooftree}
\A{}
\R{\CAA}
\U{$0+0=0+0$}%(1)
%
\A{\PAD}
\R{$\forall E$}
\U{$\forall n. 0+sn=s(0+n)$}
\R{$\forall E$}
\U{$0+sk = s(0+k)$}%(2)
%
\A{$\bracket{0+k=k+0}^A$}
\R{\CAD}
\U{$s(0+k)=s(k+0)$}%(3)
\R{\CAC}
\B{$0+sk=s(k+0)$}%(5)
%
\A{\PAC}
\R{$\forall E$}
\U{$k+0=k$}
\R{\CAD}
\U{$s(k+0)=sk$}%(4)
\R{\CAC}
\B{$0+sk=sk$}%(6)
%
\A{\PAC}
\R{$\forall E$}
\U{$sk+0=sk$}
\R{\CAB}
\U{$sk=sk+0$}%(7)
\R{\CAC}
\B{$0+sk=sk+0$}%(8)
\R{$\to I^A$}
\U{$(0+k=k+0\to 0+sk=sk+0)$}
\R{$\forall I$}
\U{$\forall k.(0+k=k+0\to 0+sk=sk+0)$}%(9)
\R{\MI}
\B{$\forall y. (0+y=y+0)$}
\end{prooftree}
}
}
}\scalebox{0.4}{$\quad\cdots\cdots\quad$\fbox{$\phantom{X}A\phantom{\frac{X}{Y}}$}}

\scalebox{0.4}{
\parbox{2.7\linewidth}{
\begin{prooftree}
%
\A{\fbox{$\phantom{X}A\phantom{\frac{X}{Y}}$}}
%
\A{\fbox{$\phantom{X}A\phantom{\frac{X}{Y}}$}}
\R{$\forall E$}
\U{$0+sl=sl+0$}
\R{\CAB}
\U{$sl+0=0+sl$}%(25
%
\A{\PAD}
\R{$\forall E$}
\U{$sl+sn=s(sl+n)$}
\R{$\forall E$}
\U{$sl*sk=s(sl+k)$}%(11)
%
\A{$\bracket{sl+k=k+sl}^B$}
\R{\CAD}
\U{$s(sl+k)=s(k+sl)$}%(12)
\R{\CAC}
\B{$sl+sk=s(k+sl)$}%(13)
%
\A{\PAD}
\R{$\forall E$}
\U{$\forall n. k+sn=s(k+n)$}
\R{$\forall E$}
\U{$k+sl=s(k+l)$}
\R{\CAD}
\U{$s(k+sl)=ss(k+l)$}%(14)
\R{\CAC}
\B{$sl+sk=ss(k+l)$}%(15
%
\A{\PAD}
\R{$\forall E$}
\U{$\forall n. sk+sn=s(sk+n)s$}
\R{$\forall E$}
\U{$sk+sl=s(sk+l)$}%(16
%
\A{$\bracket{\forall y. l+y=y+l}^C$}
\R{$\forall E$}
\U{$l+sk=sk+l$}
\R{\CAB}
\U{$sk+l=l+sk$}
\R{\CAD}
\U{$s(sk+l)=s(l+sk)$}%(17
\R{\CAC}
\B{$sk+sl=s(l+sk)$}%(18
%
\A{\PAD}
\R{$\forall E$}
\U{$\forall n. l+sn=s(l+n)$}
\R{$\forall E$}
\U{$l+sk=s(l+k)$}
\R{\CAD}
\U{$s(l+sk)=ss(l+k)$}%(19
\R{\CAC}
\B{$sk+sl=ss(l+k)$}%(20
%
\A{$\bracket{\forall y. l+y=y+l}^C$}
\R{$\forall E$}
\U{$l+k=k+l$}
\R{\CAD}
\U{$ss(l+k)=ss(k+l)$}%(21
\R{\CAC}
\B{$sk+sl=ss(k+l)$}
\R{\CAB}
\U{$ss(k+l)=sk+sl$}%(22
\R{\CAC}
\B{$sl+sk=sk+sl$}%(23
\R{$\to I^B$}
\U{$(sl+k=k+sl)\to(sl+sk=sk+sl)$}
\R{$\forall I$}
\U{$\forall k. (sl+k=k+sl)\to(sl+sk=sk+sl)$}%(24
\R{\MI}
\B{$\forall y. sl+y = y+sl$}
\R{$\to I$}
\U{$(\forall y.l+y=y+l)\to(\forall y. sl+y=y+sl)$}
\R{$\forall I$}
\U{$\forall l. (\forall y.l+y=y+l)\to(\forall y. sl+y=y+sl)$}
\R{\MI}
\B{$\forall x. \forall y.x+y=y+x$}
\end{prooftree}
}}

\end{document}
    

参考文献

投稿日:2021926
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 定義
  2. 記号
  3. 推論規則
  4. 等号
  5. ペアノ算術
  6. 証明
  7. 参考文献