ブログ「サイバー少年」

ブログ「サイバー少年」へようこそ!
小学六年生ごろからプログラミングを趣味にしている高校生のブログです。
勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。
(当ブログについて詳しくは「ブログ概要紹介」を参照)

サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ

ペアノの公理と特殊な数学的帰納法

今回は、あんまり深く考えないで数学について記事にしようということで、以前の記事で数学的帰納法を使ったときに思ったことを書きます。

あんまり考えて書いていないので、特に新たな発見をしたわけではないのですが、ちょっとしたアイデアとして。


数学的帰納法は、なにも0や1(自然数の最初の数)から始まって1つ後ろの数、その1つ後ろの数というふうにドミノ倒しされるとは限らず、

0や1でない自然数から始まって、1つ後ろでないところの数へとドミノ倒しされることがあります。

数学的帰納法の応用ですね。
我らがWikipediaにも書いてあります。

数学的帰納法 - Wikipedia
https://ja.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6%E7%9A%84%E5%B8%B0%E7%B4%8D%E6%B3%95


そんでもって、数学的帰納法は形式論理で扱うときにどのようになるかというと、自然数に関する公理のひとつとなります。

ペアノの公理というやつで、それの一番最後の公理が数学的帰納法を正当化するための公理となります。

ペアノの公理 - Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%9A%E3%82%A2%E3%83%8E%E3%81%AE%E5%85%AC%E7%90%86


余談ですが、こういうふうに自然数はどんな性質なんだろうと突き詰めて公理を発見するのではなく、自然数とはこういうものなんだという性質を、神ではない我々が定義することができるというのは、なんか数学の面白さのひとつですよね~。

まあ、私が定義できるほど実力はないのですが…。
ただ、こういう公理主義的な考えの上での数学は、自分で作れるという意味でプログラミングと似ていると思います。

続きを読む

tag: 数学 論理学 論理式 自然数 考察 命題 形式 帰納法

数理論理学の些細な気づきごと

数理論理学の勉強はもう終わらせてやめましたが、最近ふと気づいてしまったメチャメチャどうでもいい発見があったので、たいしたことではないですから短くまとめます。

すごく小さな発見を、今回は2点ほど用意しております。

(追記ですが、ちっとも短く書けませんでした…)


まず1つ目ですが、xor演算についてです。
数学というより、プログラミングで論理演算をするときに知っとくとためになるかもしれませんね。

xorは、a xor bだったら、どういう意味かといえば、

aとbが両方ともfalseなら結果もfalse、aかbのどちらかだけがtrueなら結果はtrue、aとbが両方ともtrueなら結果はfalse、ですよね。


じゃあ、これがa xor b xor cと3つになったらどうなるでしょうか。
ちなみに左結合、つまり(a xor b) xor cです。

これは、感覚的には2項バージョンの拡張として、a,b,c全てがfalseなら結果はfalse、a,b,cのどれか1つだけがtrueなら結果はtrue、a,b,cのうち2つ以上がtrueなら結果はfalseになる演算だとみなしたいわけですが、そうはならないようなんですね。

反例としては、a,b,cが全てtrueだとしたら結果はfalseになってもらいたいわけですが、a xor bの時点で一回falseになってしまうので、そのfalseとcつまりtrueをxorして、結果はtrueになってしまうと。

ちなみに情報工学ではメジャーな話ですが、x xor trueをかけるとxの反転が得られますから、a xor b xor c xor dのa,b,c,dが全てtrueならa xor b xor c = trueの反転でfalseですね。

偶数個の項なら反例になりませんが奇数個のとき反例になることになります。


また、補足しておくと、ブール代数での話ですが、2項バージョンのときa,bの片方がtrueならtrueというのは、この“片方がtrue”というのが、
「1つだけtrueで残りはfalse」ということなのか、「1つ以上trueがあるが1つ以上falseがある(確実にすべてfalseではないが確実に1つはfalseがある)」ということなのか、という二つの捉え方があって、

これらは2項バージョンにおいては同値ですから違いが曖昧なのですが、3項以上になると違う命題になるので、後者のほうの捉え方も3項以上バージョンでは、また別個に考えられます。

つまり後者の捉え方で、a xor b xor cを、
a,b,c全てがfalseなら結果はfalse、a,b,cのうち1つ以上trueがあって1つ以上falseがあれば結果はtrue、a,b,c全てがtrueなら結果はfalseになる演算だとみなすこともできるわけですね。


さらに、trueでなくfalseの個数に着目した場合、つまりtrueとfalseが出てくる箇所をひっくり返した場合に後者では同値となりますが、前者では違う命題になるので、前者の捉え方のtrueとfalseをひっくり返した捉え方も論理的にはありますが、
まあa xor b xor cを感覚的に捉えるならばfalseの個数で考えるという発想はないと思いますので、この場合は無視しましょう。

だとすれば、上の話での後者の捉え方はどうなのかというのは考えなければなりませんが、このときも前者のときと同様にa,b,cが全てtrueという反例があって、感覚的なものとは違う真理値になります。


感覚的に捉えたものと同じ真理値にしたい場合はどういう論理式を書けばいいのかというと、後者の捉え方の場合は単純に、
(a or b or c) and not (a and b and c)みたいに全ての項をorでつなげたものと、andでつなげたものの否定の論理積をとるだけです。

むしろ、2項の場合はa xor bは(a or b) and not (a and b)と同値なのに、3項以上の場合は同値でなかったことに驚きますね。


前者の捉え方では、2つ以上の項がtrueにならないことを表現するために、あらゆる2つの項の組み合わせについて論理積がtrueにならないことを言わなければならないわけで、

a,b,cなら(a or b or c) and not (a and b) and not (a and c) and not (b and c)みたいに、長いですね。

全ての項をorでつなげたもののあとに、n項ならばnC2個の2つの項の組み合わせの論理積の否定を付けて、論理積でつなげなければなりません。
nandを使えば(a or b or c) and (a nand b) and (a nand c) and (b nand c)みたいに若干、短くなるか…。


というわけで、イメージ通りにやりたい場合はxorでつなげるのでは駄目で、地味に大変な論理式を書かなければならない、という話でした。

そうそう、上記の論理式を書く以外にも、真理値表をもとに論理式の標準形を書くという手段も、一応ありますね。

続きを読む

tag: 数学 論理学 論理式 論理演算 写像 集合 同値 組み合わせ 考察 クソ記事

形式論理と自然演繹の紹介

論理学の勉強で自然演繹を学んだので、とうとうご紹介したいと思います。

論理学といえば自然演繹、自然演繹といえば論理学ですね。
いや、そんなにでもないか…。


自然演繹を紹介するとは言っても正直なところ、健全性や完全性の証明とかそんな深入りして紹介するのは大規模過ぎて難しいので、
さらっと規則を紹介したり、具体例を示したり、で済まそうと思いますが。

あと、述語論理での扱いも入れたかったのですが、面倒なのと、固有変数条件あたり熱弁して空回りするクソ解説を生産しそうなので、命題論理にとどめておきました。


自然演繹は論理学の形式的証明の方法のひとつで、自然演繹の他には、
ヒルベルト式と呼ばれる矢印だらけの気色の悪い、仕組みは単純だけど使うのが難しいものとか、

シークエント計算という、これはまだ勉強中なのでコメントしづらいんですが、シークエントというものに対してゴニョゴニョしていくものなどがあります。

ちなみに、自然演繹とシークエント計算は、同じゲンツェンという人が発明したそうです。


さて、今回の記事は前編と後編ではなく、ひとつの記事で完結しますが、執筆には2日間かけています。

続きを読む

tag: 数学 論理学 構文論 論理式 証明 命題論理 直観主義 自然演繹 形式 勉強

命題論理の意味論まとめ (後編)

昨日は命題論理について勉強したことのまとめとして、記事「命題論理の意味論まとめ (前編)」を書きましたが、

今回はより話が本格的になってくる後編を書いてまいります。


なお前編で、集合{ T, F }の要素としてのT, Fと、論理式の構成要素としてのT, Fは別物だということに注意しなければならないと触れましたが、

今回はそれを区別するために、論理式の構成要素として使うのはT, Fなんですが、
命題論理で使う集合の{ T, F }のほうは{ 1, 0 }に改めます。

もちろん1が真で0が偽なので、そのように読みかえてください。



前編で言った∨, ∧, ¬の三種類の演算があれば、実は残りの→, ↔は代用可能であるということの、理由については言及しませんでしたが、

まずa→bは、aならばbであり、aでなければあらゆる場合に真ということでしたからaかつb、またはaでないのどちらかで、(a∧b)∨¬aといえます。

つまり代用可能です。

しかしよく考えれば、(a∧b)¬aは満たす条件が排他的ですが、わざわざ排他的にする必要もありません。

つまり、aがなんであれbが真ならばこの演算は真であって、ようするにb∨¬aというふうに、よりスリム化できます。


今、日本語でグダグダと説明しましたが、もちろん厳密にそれを言うためには、前編で触れたように表を用いて確認します。

ただ、今の話のように、演算子の日本語としてのイメージを捉えたうえでわかることというのを考えて、最後に表で確認するという方法は悪くないですね。


まあこの先、それでどんどん法則が増えていって、ほとんど法則とかで同値変形していく感じになって、今後は日本語を使うことなんてほぼないですが…。


なお、a↔bについては、aならばbだしbならばa、ということになるので、これも日本語的に考えて(a→b)∧(b→a)となります。

二つの演算は前述のようにで代用できるので、それをで結んでいるだけなので、結局も三つの演算で代用できることになりますね。

続きを読む

tag: 数学 論理学 法則 標準形 論理式 命題 命題論理 意味論

命題論理の意味論まとめ (前編)

記事「集合と写像の勉強まとめ」なんかも書きましたが、
昨年末から論理学の勉強を継続的にしていて、京都大学の教授の方のサイトをずっと見ています。

そういえばこの前、このサイトが書籍化されたらしい本を見かけました。


今回、命題論理、とくに意味論について書かれてある部分を、ようやく読破しましたので、そのまとめとしてお書きしようと思います。


そういえば昔も論理学について放送大学で学んで、記事「記号論理学という学問を知ってみたが」を書いたことがありました。

あのときは今回の命題論理よりハイグレードな述語論理だったんですが、数学的で厳密な定義はおいといて実用的な論理学をやるみたいなものでしたので、

今回は厳密な部分をとばさずに再挑戦しているみたいな感じですね。

記事の書き方も、あの記事ではトップダウン的な説明でしたが、今回はボトムアップ的であると思います。


ところで、意味論とか構文論ってどういうことなのかイマイチ入ってこないのですが、“命題論理の意味論”なのか“意味論の命題論理”なのか、どっちなんでしょうか。

一応、“命題論理の意味論”と書いてあったので、そういうことにしておきますが…。


あと、記事「集合と写像の勉強まとめ」と続編記事「続・集合と写像の勉強まとめ ~ブール代数も~」、
で書いた数学の知識は正直ほとんど使わなかったと思うのですが、最初の根源的な定義をするところで少しその知識がいりますね。


少なくとも演算というのが何なのか理解する必要がありますし、演算というのがなんのか理解するには写像についての理解、ひいては集合とは何か…

数学は少しずつ積み上げる学問なので、学校で嫌われるんですね。


今回、ひとつの記事に収めるつもりだったのですが、すごく基本的な話をしただけで無駄に長くしてしまったので、これを前編として次回、後編を書こうと思います。

お楽しみにしていてください。

続きを読む

tag: 数学 論理学 演算 論理式 命題 命題論理 集合 意味論

記号論理学という学問を知ってみたが

記号論理学は数学とは違うみたいですが、雰囲気が似ているので数学カテゴリにしました。

さて、当ブログはしばらくの間、PC関係のパーツについて書くブログになっていましたが、学問的な記事を書くのはいつぶりでしょうか。

過去記事を見てみたら2ヶ月ぶりでした!長え!

さて、10月から放送大学で記号論理学入門の番組を見ていました。

「放送大学って何」という話ですが、これは大学でありテレビ局です。
以前もデータ構造の勉強したという話で当ブログに出てきました。

関東の人は地上波で視聴できるので、ご存知の方も多いんじゃないでしょうか。

さて、番組は全15回ありまして、この度すべて視聴しました。
いや、第1回は見ていないんですけどね…。

要するに最近、私は記号論理学という学問について学んでいたのです。

当ブログの読者の方々は、記号論理学について知らないという人が多いんじゃないでしょうかね。

いや、わかりませんが…。
というわけで、いったいどんな学問なのか書いていったり、勉強した感想を述べます。

続きを読む

tag: 論理学 記号 論理式 放送大学

当ブログをご利用(閲覧等)になる場合は必ず「当ブログの利用規定」をお守りください。