集合論宇宙についてのメモ

■「集合全体の集まり」を「宇宙(universe)」と呼びしばしば{\mathbf{V}}などと書く.ただし,「宇宙」という言葉はもう少し小さな「集合」を指すために使われることもある.以下ではZFCにおける「集合全体の集まり」の意味で{\mathbf{V}}という文字を使う.ところで,なぜ”V”なのかというと,ドイツ語のVollraumから来ているらしい.voll(いっぱいの)/raum(空間) と分解すれば意味は取れる.

{\mathbf{V}}が集合ではないことは,少なくとも二つの方法で示せる.最初に基礎の公理を使う方法を示し,次に分出公理図式を使うものを示す.

■基礎の公理を用いた証明.
基礎の公理は次のようなものであった:
{\forall x \enskip \left(x \not= \varnothing  \Rightarrow \exists y \in x \enskip \forall t \in x \enskip (t \not\in y)\right).}

さて,{\mathbf{V}}が集合であったと仮定すると{X:= \left\lbrace  \mathbf{V}\right\rbrace}も集合である.この{X}に基礎の公理を適用すると{\mathbf{V}\not\in \mathbf{V}}が得られるが,{\mathbf{V}}はすべての集合を含んでいるのだからこれはおかしい.よって,{\mathbf{V}}が集合として存在するという仮定から矛盾が導かれたことになる.よって{\mathbf{V}}は集合ではない.

■分出公理図式を用いた証明.
分出公理図式は無限個の公理の総称であり,ある集合から部分集合を作ることを可能にする.(分出公理図式は置換公理図式から導くことも可能であり,ZFCの公理群に含めない場合もあるが,何れにせよZFCでは分出「公理」図式は使用可能である).

{\mathrm{V}}が集合だと仮定すると,分出公理図式から{W:=\left\lbrace x \in \mathbf{V} \mid x \not\in x \right\rbrace}も集合となり,特に{W\in \mathbf{V}}である.すると,{W \in W}であると同時に{W \not\in W}であることが導かれてしまう(床屋のパラドックス).よって{\mathbf{V}}は集合ではあり得ない.

■余談
しばしば,{\mathbf{V}}が集合ではないことの直感的な説明として,「{\mathbf{V}}は集合に収まるには巨大過ぎる」と説明されることがある.

広告

vacuous truth

たまにこの言葉を思い出せなくてググってるので自分用メモ.

(ここに来た他人用の説明):条件式(A⇒B)のAを「前件」と,そしてBを「後件」と言うのであった.前件が偽ならば後件に何を置いても条件式全体は真と評価される.このような場合に条件式が真になることを特に “vacuous truth” と呼ぶことがある.(決まった訳語はないらしい).古典論理のなかで,入門者を少しばかり悩ませる話題として有名である.

古典論理における条件式は時相のような微妙なニュアンスを含んでいないので日常言語における条件文とそのまま同一視することはできないが,日常言語でも前件として「絶対に起こらない(であろうと思われる)」ことを置いて何かを言うことがある.少し前の話題だがマスコミ各社が「トランプが大統領になるはずがない」と報じていたときに,「トランプが大統領になったら全裸で街を歩く」といった類のツイートしている人たちがいた.前件が絶対に偽だ(とそのときには思われていた)から後件にどんなヤバいことを書いても平気というわけである.

もう一つの「納得方法」として,条件式(A⇒B)を「(Aであって(Bではない))ということはありえない」と言い換えるというものがある.これを論理式で置き換えれば(¬(A∧(¬B)))ということになる.さらに de Morgan を使えばこれは((¬A)∨B) と書き換えられる.この言い換えと置き換えに納得が行くならば,「Aが成り立たない」場合の(A⇒B)の真理表を書いたとき,BがTであってもFであっても
     ((¬F)∨B) = (T ∨ B) = T
となるからvacuous truth も受け入れるべきだということになる.

集合論においても vacuous truth が活躍する場面がある.空集合にはいかなる集合も含まれない.よって,
    {a \in \varnothing}
と書いただけで({a}がなんであれ)偽になる.よって,
    {\forall a \enskip (a \in \varnothing \Rightarrow P(a)).}
という文は任意の述語{P()}について正しい.任意の述語を入れて良いのだから{P()}の代わりにその否定{\neg P()}を入れても良いわけである.よって
    {\forall a \enskip (a \in \varnothing \Rightarrow \neg P(a)).}
つまり,「空集合の任意の要素はいかなる性質をも持ち得る」ということになる.少し騙されたような気持ちになるが,帰納的に構成された集合の列についての命題を証明しようとするときの最初のステップなどでこのような vacuous truth が有効に活用されることもある.

【自分用メモ】ラテン語でiの上の点がなくて棒になってるやつ(伝われ)

■要約: \={\i}

■ラテン語なんかを(まったく知りませんが)latex の文書で引用しようとするとき,i の上の点が棒になってる文字が使いたくなりました.
最初は \={i} かと思ったのですがこれではiの上の点が消えてくれません.調べたら \={\i}を使えば良いようです.(終わり)

■参考:

% !TEX TS-program = platex
% !TEX encoding = UTF-8 Unicode
\documentclass{jsarticle}
\usepackage{verbatim}
\usepackage{minitoc}
\usepackage[utf8x]{inputenc}
\title{有限性について}
\date{}
\begin{document}
\maketitle
finite という言葉はラテン語の\textit{f\={\i}nis}から来てるそうです.
\end{document}

(linux)最近のファイルをlsしたい

色々な論文を ~/Downloads に入れているうちにこのディレクトリに多数のファイルが置かれるようになってしまいました。もちろん ls -c すれば日付順に並べてくれますが沢山あるのでずらーっとファイルが列挙されてしまいます。そこで ls -c | head すれば最初の十個だけ示してくれます。もう少し多く見たい場合、たとえば最近の20個のファイルを見たい場合は ls -c | head -20 だとか、結局は同じことですが ls -c | head --lines=20 とすればよろしい。

(windows) TeXworks のテンプレートの場所

TeXworksで用意されているテンプレートはpLaTeXを通らないので、自作のテンプレートを用意している方も多いでしょう。
そうして苦労して作ったテンプレートは

C:\Users\USERNAME\.texlive2013\texmf-config\texworks\templates

に置くと、TeXworks からテンプレートに基づいて文書を作成する際に参照しやすくていいですよ。

特定のパターンの出現数をカウントをする

テキスト全体で特定の文字やパターンが何回出現するのかコマンドラインから調べたくなりました。

sed でやるのかなと思ったけど grep -o が使えるみたいです。

$ echo "SSwSStSSSSoSS" | grep -o  'S' | wc -l
10

wc -l は与えられたテキストの行数をカウントするコマンドです。

もう少し大きなテキストで試してみましょう。次のような内容の alice.txt があるとします:

Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, `and what is the use of a book,’ thought Alice `without pictures or conversation?’

So she was considering in her own mind (as well as she could, for the hot day made her feel very sleepy and stupid), whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her.

There was nothing so very remarkable in that; nor did Alice think it so very much out of the way to hear the Rabbit say to itself, `Oh dear! Oh dear! I shall be late!’ (when she thought it over afterwards, it occurred to her that she ought to have wondered at this, but at the time it all seemed quite natural); but when the Rabbit actually took a watch out of its waistcoat-pocket, and looked at it, and then hurried on, Alice started to her feet, for it flashed across her mind that she had never before seen a rabbit with either a waistcoat-pocket, or a watch to take out of it, and burning with curiosity, she ran across the field after it, and fortunately was just in time to see it pop down a large rabbit-hole under the hedge.

In another moment down went Alice after it, never once considering how in the world she was to get out again.

このテキストに nk という並びが何回登場するかコマンドラインから数えてみます:

$ less alice.txt | grep -o 'nk' | wc -l
3

Haskell の入出力のバッファリング

参考にした記事: stackoverflow/ putStrLn doesn’t print to console

「すごいHaskell楽しく学ぼう!」を復習していて,入出力で詰まったのでメモ.この本の8.3(英語のWeb版だとこの辺)で,IOを用いた対話型のプログラムが扱われる.

main = do
	putStrLn "Hello, what's your name?"
	name <- getLine
	putStrLn ("Hey " ++ name ++ ", you rock!")

runghc したら一向にHello, what’s your name?と聞かれないので困ってしまった.どうやらバッファリングされてしまってるらしい.上に掲げたstackoverflowの記事で解決策を見つけた.

import System.IO

main = do
	hSetBuffering stdout LineBuffering
	putStrLn "Hello, what's your name?"
	name <- getLine
	putStrLn ("Hey " ++ name ++ ", you rock!")

このように修正しておくとちゃんと名前を聞いてくれる.

とりあえずメモしておく.

Haskell 2010 Language Report の FFIの章が日本語で読めます

すっかり忘れていましたが,Haskell 2010のFFI の章が日本語で読めるようになっています.
外部関数インターフェイス

山下伸夫先生,ありがとうございました.

初めまして!(or お久しぶりです) : 移転してきました

以前から

http://livedoor.blogcms.jp/blog/differential_engine/

でゆっくり記事を書いていたのですが数学的な記事を書くのが面倒で更新をサボるという悪循環になってしまったので心機一転してこちらで再スタートいたします…

なお,元のブログももう少しゆるい内容で継続する予定です.