λ-calculus.λ計算.(lambda calculus)
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2006/12/08(金) 00:45:53ID:fx6EeyNJ0とりあえず,λ計算の基本から,各種関数型言語との関係,さらには研究ネタ
まで,λ計算に関係の深い話題ならなんでも OK ということで.
0067名無しさん@お腹いっぱい。
2007/02/04(日) 01:10:23ID:6qLK1Z2H0モナドは不可逆という一点しか利用しておらず、圏論などと言うことはおこがましい
0068名無しさん@お腹いっぱい。
2007/02/04(日) 01:44:49ID:zzUqFVaZ0(*゚ー゚)/センセー
Grothendieck constructionとか、Sheafificationはどうでしょう?
0069名無しさん@お腹いっぱい。
2007/02/04(日) 01:46:54ID:zzUqFVaZ0あと、Effective Toposとか。。。
ヽ( ´ ▽ ` )ノ
0070名無しさん@お腹いっぱい。
2007/02/04(日) 01:53:38ID:zzUqFVaZ0>> π計算だぜ
polymorphic type system を与えて、SNになるようだったら、
π計算も大好きになれるんですけど。
deadlock freedomの十分条件を与える程度のtype systemしか
ないので、
(´・ω・`)ショボーン
です。
deadlock freedomの必要十分条件を与えるtype systemがあれば
もう少しは
(`・ω・´) シャキーン
になるのですが。
0071名無しさん@お腹いっぱい。
2007/02/04(日) 04:13:58ID:WKIXrpRj0そうですか。申し分けない。
0072名無しさん@お腹いっぱい。
2007/02/05(月) 12:21:40ID:odqa2CoY00073名無しさん@お腹いっぱい。
2007/02/05(月) 12:54:02ID:WosI6ZgP0受験生ですが、晒してくださいおねがいします><
0074名無しさん@お腹いっぱい。
2007/02/07(水) 21:02:30ID:yTGJKQRq0πでも型でSNはできなくもない。
ftp://ftp.dcs.qmw.ac.uk/lfp/kohei/pi-sn-journal.ps.gz
とか。かなり無理矢理だけど。
あと、λの型だって、SNやprogressの「必要十分条件」は与えてないだろう。
まあ、πがλほどきれいじゃないのは同意するが。
0075名無しさん@お腹いっぱい。
2007/02/09(金) 01:15:12ID:vrNq1duY0英語の奴でいいからさ。
型付まで網羅されてるとうれすぃ。
0076名無しさん@お腹いっぱい。
2007/02/09(金) 17:14:36ID:vWS3ApOk0声が大きい人がいるような気がする。
0077名無しさん@お腹いっぱい。
2007/02/09(金) 17:23:42ID:zpxlhCu80この分野やってる人は思ったより少なくないからね。
0078名無しさん@お腹いっぱい。
2007/02/10(土) 15:02:45ID:VDR57wCl0良スレかよ。
0079名無しさん@お腹いっぱい。
2007/02/11(日) 20:37:05ID:PgEe6Rsu0ラムダ計算の研究やってる人は少いだろうね。
ラムダ計算使って研究してる人は少くないんで、油断できんよ。
0080名無しさん@お腹いっぱい。
2007/03/14(水) 19:07:26ID:ds7xgK/t0>>11
お前、本当に愛い奴だ。
そうやって、何年も前に2chで教えてもらった参考書を
一体何年間ネタとして使いまわしてるんだよw
0081名無しさん@お腹いっぱい。
2007/03/14(水) 19:08:17ID:ds7xgK/t0> ソフトウェアの研究開発部門で働いている社会人です.
> しかし大学では CS 関連教育を受けていたわけではないので,ある意
> 味高校生と同レベルです.初心に帰って勉強したいです.
ぷ
0082名無しさん@お腹いっぱい。
2007/03/14(水) 19:10:16ID:ds7xgK/t0ほほう。大きく出たな。
高橋研に問い合わせてみようかw
0083名無しさん@お腹いっぱい。
2007/03/14(水) 19:11:34ID:ds7xgK/t0おやおや、amazonのレビューを「狂ってる」と言われた後で
またまた・・・
> 論理学や竹内外史さんの本ばかり
> 読まされていたから、なんか頭がごちゃごちゃであんま思い出せないや。
ぷ
0084名無しさん@お腹いっぱい。
2007/03/14(水) 19:12:24ID:ds7xgK/t0おじちゃん乙
0085名無しさん@お腹いっぱい。
2007/03/14(水) 19:12:57ID:ds7xgK/t0お前のジサクジエンはいつも判りやすいなぁ
0086ぷ
2007/03/14(水) 19:26:16ID:ds7xgK/t0・Set Theory: An Introduction to Independence Proofs :
Studies in Logic and the Foundations of Mathematics Series
(Studies in Logic and the Foundations of Mathematics) Kenneth Kunen著
・Logic and Structure (Universitext) Dirk Van Dalen著
・Elements of Set Theory Herbert B. Enderton著
・A Mathematical Introduction to Logic Herbert B. Enderton著
・ First-Order Modal Logic (Synthese Library) Melvin Fitting著
・Thinking About Mathematics: The Philosophy of Mathematics Stewart Shapiro著
・Godel's Proof Douglas R. Hofstadter著
・ゲーデルは何を証明したか―数学から超数学へ E. ナーゲル著
・コンピュータサイエンス入門―アルゴリズムとプログラミング言語 大堀 淳著
・Logic: A Very Short Introduction (Very Short Introductions) Graham Priest著
・論理学をつくる 戸田山 和久著
・集合とはなにか―はじめて学ぶ人のために 竹内 外史著
・なっとくする集合・位相 瀬山 士郎著
・ゼロから学ぶ線形代数 小島 寛之著
線形代数の入門書として最適, 2003/6/23
抽象的で何をやっているのかいまいちつかめない線形代数に対して、
図形的なイメージを豊富に与えてくれる入門書。
もちろんいろいろな限界はあるけども(例えば外積の説明は物足りない)、
非常に分かりやすくて初学者にお勧め。この本でイメージを掴みつつ、
さらに他の本にステップアップできる。
練習問題は公式や定理を確認する手計算のものだけに配慮されている。
0087名無しさん@お腹いっぱい。
2007/03/14(水) 19:29:24ID:ds7xgK/t0哲学板やν速で暴れてたクソスレ立て
あいつだな。
0088名無しさん@お腹いっぱい。
2007/03/15(木) 01:10:45ID:qTQBnbGB0. ∧_∧
(;´Д`)
-=≡ / ヽ ,.-'''"-─ `ー,--─'''''''''''i-、,,
. /| | |. | ,.-,/ /::::::::::::::::::::::!,, \
-=≡ /. \ヽ/\\_ ( ,' i:::::::::::::::::::::;ノ ヽ-、,,/''ー'''"7
/ ヽ⌒)==ヽ_)=`''| |:::::::::::::::::::::} ``ー''"
-= / /⌒\.\ || || ! '、:::::::::::::::::::i >>ID:ds7xgK/t0
/ / > ) || || '、 `-=''''フ'ー''ヽ、::::::::::/ヽ、-─-、,,-'''ヽ
/ / / /_||_ || _.\_/ ヽ--く _,,,..--┴-、 ヽ
し' (_つ ̄(_)) ̄ (.)) ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (_)) ̄(.)) \>
0089名無しさん@お腹いっぱい。
2007/03/15(木) 01:51:30ID:01aqA7n6Oなんで毎回同じ話をコピペするわけ?
0090名無しさん@お腹いっぱい。
2007/03/15(木) 01:56:58ID:/20QNIll00091名無しさん@お腹いっぱい。
2007/03/15(木) 02:23:29ID:G9NvniZw02chで何言ってんだw
0092名無しさん@お腹いっぱい。
2007/03/15(木) 07:26:39ID:03piNePF0過去スレ・コピペスレ
0093名無しさん@お腹いっぱい。
2007/03/17(土) 11:54:15ID:Gp6MxBj/0関数型言語の基礎になっているようですが,その他の可能性はありますか?
0094名無しさん@お腹いっぱい。
2007/03/17(土) 12:58:31ID:e+/D4orH00095名無しさん@お腹いっぱい。
2007/03/17(土) 20:26:24ID:YOmlrM/Q0機械語をラムダ計算に翻訳して分析したりとかいう研究の話を聞いたことがある
0096名無しさん@お腹いっぱい。
2007/03/21(水) 15:42:28ID:L3+1hhWQ0そこまで聞くようじゃ意味なかろう。
上の方に釣りっぽいおっさんが粘ってたけどさw
0097名無しさん@お腹いっぱい。
2007/03/21(水) 19:28:58ID:rx1TrOAK0http://www.google.com/search?q=%E3%82%AB%E3%83%AA%E3%83%BC+%E3%83%8F%E3%83%AF%E3%83%BC%E3%83%89
まあ「ほぼすべて」は言い過ぎかもしれんが。
0098名無しさん@お腹いっぱい。
2007/03/21(水) 20:03:06ID:+fDuJToY00099名無しさん@お腹いっぱい。
2007/03/21(水) 20:04:28ID:+fDuJToY0妄想乙
0100名無しさん@お腹いっぱい。
2007/03/26(月) 15:04:04ID:Yg450B7BO0101名無しさん@お腹いっぱい。
2007/03/26(月) 21:08:37ID:s9dS2YJO00102名無しさん@お腹いっぱい。
2007/03/27(火) 12:40:41ID:Sxduj1iD0糞スレ立てスパが妄想全開になっちゃってるな
0103名無しさん@お腹いっぱい。
2007/03/28(水) 00:57:57ID:13BXxGxF00 = λfx.x
1 = λfx.fx
2 = λfx.f(fx)
3 = λfx.f(f(fx))
という話はよく見るんだけど、負の数とか小数とかはどうやってあらわすの?
0104名無しさん@お腹いっぱい。
2007/03/28(水) 00:59:21ID:13BXxGxF00 = λfx.x
1 = λfx.fx
2 = λfx.f(fx)
3 = λfx.f(f(fx))
という話はよく見るんだけど、負の数とか小数とかはどうやってあらわすの?
0105名無しさん@お腹いっぱい。
2007/03/28(水) 01:08:12ID:RHA7BU4i0小数は(整数部, 小数部)の組で、
それぞれ表せる。
…素人の素朴な考えだけど。
0106名無しさん@お腹いっぱい。
2007/03/28(水) 20:53:07ID:lfG0kx2b0まあどっちでも大して変わんないと思う。
有理数なら整数のペアにするのがよくある手だけど、小数はあんまり見ないな。
浮動小数点とか、やればできるはずだけど使い道がないのかも。
0107名無しさん@お腹いっぱい。
2007/04/01(日) 21:48:05ID:uqJTKNGY00108名無しさん@お腹いっぱい。
2007/04/01(日) 23:26:52ID:sJWe+qKl00109名無しさん@お腹いっぱい。
2007/04/02(月) 22:51:34ID:QfWKFBp10普通にFωあたりで
「_は_を生ける」をP : * -> * -> *
「_は_の花」をQ : * -> * -> *として
(P 私 a) × (Q a 菊)じゃ駄目?
∃a.とかつけてもいいけど。
命題だからλ式(証明)じゃなくて型なわけだが。
なんか論理学的に深い問題がある話だったりする?
0110名無しさん@お腹いっぱい。
2007/05/06(日) 05:52:39ID:+O439kON00111名無しさん@お腹いっぱい。
2007/05/08(火) 07:32:48ID:tpSFEYo+O0112名無しさん@お腹いっぱい。
2007/05/17(木) 10:31:00ID:CivwlhID0http://www.google.com/search?q=quantum+lambda-calculus
0113名無しさん@お腹いっぱい。
2007/08/11(土) 16:58:21ID:rHg7wKqb00114名無しさん@お腹いっぱい。
2007/08/11(土) 23:47:18ID:UNwzvzRr0整数のリストとか
0115名無しさん@お腹いっぱい。
2007/08/12(日) 06:09:15ID:iEvaVrJy00116名無しさん@お腹いっぱい。
2007/08/12(日) 20:11:05ID:YoiYsya600117名無しさん@お腹いっぱい。
2007/08/13(月) 00:02:47ID:vTa4QSRp0小数っていうのは、表記の差異に過ぎないかもしれないね。
実数まで範囲を広げて考えてみると、いろいろ深い内容が見えてくるようなのだが、
残念ながら俺はまだ十分に理解できていない。
PCFで実数を扱う話題だとか、いろいろあるみたいだが。
>>116
そのstringという型を、標準的な算術の入った型体系だけで考えると、いろいろ面白いかも。
0118名無しさん@お腹いっぱい。
2007/08/13(月) 01:06:42ID:duuVQcq10ただ実数の中でも、代数的数だけなら可算無限個しかないから、
λ計算で表現できそう
あと比較的最近の論文で、http://homepages.cwi.nl/~tromp/cl/LC.ps
にリストを表現する方法として、任意のP, Q, Rに対して
<P, Q, ..., R> ≡ λz . z P Q ... R
なんていうのがあった
この場合は型無しの話になるけど、文字列"P Q ... R"を表現できるんじゃないかな
0119名無しさん@お腹いっぱい。
2007/08/13(月) 21:23:59ID:Kf4SK00H00120名無しさん@お腹いっぱい。
2007/08/13(月) 21:47:40ID:vTa4QSRp0別にその話に限定するつもりはなかった。
俺は詳細を知らないが、PCFで実数というとcomputable analysisの話になりがちなの?
0121名無しさん@お腹いっぱい。
2007/08/13(月) 22:08:03ID:Kf4SK00H00122名無しさん@お腹いっぱい。
2007/09/28(金) 04:04:06ID:xu52pyjv0不動点オペレータYの
導出の仕方がわかりません
Y=λf.(λx.f(xx))(λx.f(xx))とすれば
Yf=f(Yf)となるのは確かめられるのですが・・・
0123名無しさん@お腹いっぱい。
2007/09/28(金) 11:25:18ID:yHi56D3f0関数をもらって関数を返す関数 f が与えられたとき gx=f(xx) とすると
gg=f(gg) なので gg=fix.f となる。
g=λx.f(xx) から fix.f=(λx.f(xx))(λx.f(xx)) と書け、f を抽象すると Y が出る。
と、昔書いた自分用メモに書いてあった。
なんでこんな g が出てくるのかというとまあいろいろややこしいのだが。
0124名無しさん@お腹いっぱい。
2007/09/28(金) 11:43:39ID:yHi56D3f0ttp://d.hatena.ne.jp/sumii/20051203
0125名無しさん@お腹いっぱい。
2008/01/09(水) 12:26:03ID:FpU+9RPo00126名無しさん@お腹いっぱい。
2008/01/09(水) 20:55:15ID:5rdOQWTT0単純に自然数でいいのでは。
ASCIIなりUTF-8なりお好みのencodingでの文字列のメモリ上のイメージを
そのまま符号無し整数で解釈すれば1対1対応すると思う。たぶん。
0127名無しさん@お腹いっぱい。
2008/01/11(金) 21:49:33ID:N5y4LcIa0sumii
これだけで誰だかわかったww
0128名無しさん@お腹いっぱい。
2008/01/18(金) 20:49:28ID:c/ULHqOA00129名無しさん@お腹いっぱい。
2008/01/19(土) 17:10:15ID:9Nk3Kf9T0例えば、パラメータ多相だけじゃなくて、「型引数がintならこの実装、それ以外ならこの実装」のような分岐を行ないたいです。
0130名無しさん@お腹いっぱい。
2008/03/26(水) 19:48:57ID:R1JkK1Rr00131名無しさん@お腹いっぱい。
2008/04/22(火) 06:56:52ID:vPfSVsQA0教えていただけませんか
英語でも構いません
0132名無しさん@お腹いっぱい。
2008/04/22(火) 10:52:23ID:ymUV2OpA0Lambek and Scott
0133名無しさん@お腹いっぱい。
2008/04/23(水) 07:17:07ID:GpN6by4A0ありがとうございました
Introduction to Higher-Order Categorical Logicですね
今度、探してみます
0134名無しさん@お腹いっぱい。
2008/10/28(火) 07:06:23ID:SpD1aKye0λ計算って数学的にどこまで知っていればいいの?
0135名無しさん@お腹いっぱい。
2008/10/28(火) 15:30:49ID:4dogQ9xH0名無しの関数を作るための特殊形式だと思っておけば、
ぶっちゃけ数学どうでもいい。基本的には。
0137名無しさん@お腹いっぱい。
2009/01/25(日) 11:31:06ID:mPO65Ll100138名無しさん@お腹いっぱい。
2009/03/13(金) 11:30:45ID:9enCL1eY00139名無しさん@お腹いっぱい。
2009/03/13(金) 11:59:30ID:9enCL1eY00140名無しさん@お腹いっぱい。
2009/04/05(日) 00:16:44ID:mOa6uvRm0がどうしても理解できません。これを使ってもうまく計算できません。誰か助けてください。。。
0141名無しさん@お腹いっぱい。
2009/04/05(日) 13:30:26ID:4mtktBWD00142名無しさん@お腹いっぱい。
2009/04/05(日) 21:25:06ID:mOa6uvRm0までは出来るのですが、
λz.c3(c3 z) = λz.λs.λz.s(s(s z)) (c3 z) → λs.λz.s(s(s c3 z))
とすると、先に進めなくなってしまうような気がして困っています。。。
λz.c3(c3 z)のzをsに変えてλs.c3(c3 s)とすると、うまく計算できてc9が出るのですが、
そういうことをしていいのかよく分かりません。。。
>>140を書き込んでから、今日一日考えてここまでは出せました。
0143名無しさん@お腹いっぱい。
2009/04/05(日) 21:49:52ID:o0IgqX6G0= λz. ((c3) (c3 z)) ← かっこ付けただけ。>>142だとここで間違って(λz. (c3)) (c3 z)になってる。
= λz. ((λs.λz.s(s(s z))) (c3 z)) ← 最初のc3を展開
ここで、sに(c3 z)を代入するんだけど、(c3 z)のzは外側のzだったのに、単純に代入するとλz. (λz.(c3 z)((c3 z)((c3 z) z)))になって内側のzになっちゃうので、先に内側のzをwに名前を変える(α変換)
= λz. ((λs.λw.s(s(s w))) (c3 z)) ← α変換
= λz. (λw.(c3 z)((c3 z)((c3 z) w))) ← sに(c3 z)を代入
あとはc3を展開してけば、wにzを9回適用する関数になるはず。
0144名無しさん@お腹いっぱい。
2009/04/05(日) 22:24:38ID:mOa6uvRm0wにzを9回適用する関数になりました。ありがとうございますm(_ _)m
んー自分はまだまだ見方が甘いというか、本質を捉えきれてないみたいです。
0145名無しさん@お腹いっぱい。
2009/05/23(土) 16:40:59ID:TUjdIdIZ0何かいい参考文献ありますでしょうか
特に関数適用のCPS変換式(plotkin)はCPS(M N) = λk.M (λm.N (λn.(m n) k))
この時いくつかやってみると
M=λab.a,N=λa.aの時 CPS(MN)=λkbmn.mnk MN=λab.b
M=λab.a,N=λxy.yxの時 CPS(MN)=λkbmy.y (λn.m n k) MN=λabc.cb
M=λa.a a,N=λxyz,xz(yz)の時 CPS(MN)=λkyz.z (y z) k (k (y z)) MN=λabc.bc(abc)
となり、MNとCPS(MN)はぱっと見、単純な相関はないように見えます
等価変換に毛が生えた程度だと思っていたので
よくわからなくなりました
0146名無しさん@お腹いっぱい。
2009/05/24(日) 14:18:37ID:sgei56PuOCPS(x) = λk. k x
CPS(λx. M) = λk. k (λx. CPS(M))
CPS(M N) = λk. CPS(M) (λm. CPS(N) (λn. (m n) k))
だよ。
参考文献は他の人にまかせた。
0147名無しさん@お腹いっぱい。
2009/05/25(月) 20:22:46ID:POzhZa420他2式に比べて関数適用のCPS変換だけ単純には見えないので取り上げました
(f g) xという式は
(λx1. (f (λx2. (g (λ x3. ((x2 x3) (λ x4. (x (λ x5. ((x4 x5) x1))))))))))
というように変換されるわけですが
f gを逆η変換してλa.f g a、これにxを与えれば
(λa.f g a) x(ただしaはf gのどちらからもfree)
これは元のf(g x)と等価だと思います
CPS変換なので他2式と同様にしてholeを入れて
λb.(b ((λa.f g a) x))とでもすればCPS変換式を得た、のようには
いかないのでしょうか
これと上の長ったらしい式を比べるとかなり印象が違うので
0148名無しさん@お腹いっぱい。
2009/05/29(金) 20:27:59ID:+z1JFlBwOCPS(λx. M)はλk. k (λx. M)ではなく、λk. k (λx. CPS(M))。
(M N)も同じように再起的にN MをCPS変換する必要がある。
それをちゃんとやって、λ式の簡約を丁寧にやれば、>>145の例はM NとCPS(M N) (λx. x)は等価になるよ。
0149名無しさん@お腹いっぱい。
2009/05/30(土) 19:21:39ID:OrHYnlf90ああ、確かに!
自分で定義式を知ってると言っておきながら
>>145では再帰的には適用してませんね
もう一度計算しなおしてみます。ありがとうございました!
0150名無しさん@お腹いっぱい。
2009/06/03(水) 13:03:48ID:OogE7GXX0正規化戦略(normalizing reduction strategy)であることの証明を知りたいんですが
Webで見つかる資料で、証明が載ってるものってありますかね
一般のTRSでは(Orthogonal TRSですら)normal orderは正規化戦略ではないそうなので
その違いがどこから来るのかが知りたいのですが
0151名無しさん@お腹いっぱい。
2009/06/05(金) 19:03:24ID:91YJOkBH0sabry and felleisen(p11)を参考にschemeでFischerのCPS変換を実装してみました
参考文献:変換式はほぼ146のものと同じです
ttp://www.ccs.neu.edu/scheme/pubs/lfp92-sf.ps.gz
12ページに簡約例が載っており
F[((lx.x) y)]=λk.((λk.(k λk.λx.((λk.kx) k)))
(λm.((λk.ky)
(λn.((m k) n)))))
自作コードの出力は
(λk .((λx1 .(x1 (λk x .((λx2 .(x2 x)) k))))
(λm .((λx3 .(x3 y))
(λn .((m k) n))))))
この場合はλx.xを作用させるとちゃんとyになります
しかし、>>145の例をCPS変換してβ簡約したものは以下のようになり
(λx1 .(x1 (λx2 x3 .(x2 (λx4 x5 .(x4 x5))))))
(λx1 .(x1 (λx2 x3 .(x2 (λx4 x5 .(x4 (λx6 x7 .((x7 x6) x5))))))))
(λx1 .(x1 (λx2 x3 .(x2 (λx4 x5 .((x3 (λx6 .(x4 (λx7 x8 .((x5 (λx9 .((x6 (λx10 .((x9 x7) x10))) x8))) x8)))))x5))))))
λx.xを作用させても元の式には一致しません
具体的な計算例を他に知らないのですが
もし何かご存じでしたら教えて頂けないでしょうか
0152名無しさん@お腹いっぱい。
2009/07/16(木) 00:07:33ID:Osr2so3B0これって、まずいですか?
0153名無しさん@お腹いっぱい。
2009/07/18(土) 16:47:32ID:ydVwiaP30それが普通だと思います
0154名無しさん@お腹いっぱい。
2009/07/18(土) 17:52:40ID:3BC677EM0それは、お前さんの出た学科のカリキュラムが弱かったと言わざるを得ない。
関数型言語を扱う講義か何かでラムダ計算の基礎は教えて欲しいところ。
大体講義2回分もあれば十分だし。
0155名無しさん@お腹いっぱい。
2009/07/26(日) 18:14:55ID:3COIhkEK0(λxy.(y(xxy)))(λxy.(y(xxy)))
以外の不動点演算子ってありますか?色々考えたけど思いつきません。
0156名無しさん@お腹いっぱい。
2009/07/26(日) 18:45:57ID:sxVpjgi00英語版のwikiにいくつかのってる。
Yk = (L L L L L L L L L L L L L L L L L L L L L L L L L L)
L = λabcdefghijklmnopqstuvwxyzr. (r (t h i s i s a f i x e d p o i n t c o m b i n a t o r))
0157名無しさん@お腹いっぱい。
2009/07/26(日) 18:54:10ID:3COIhkEK0な、なんじゃこりゃあ・・・
もっと分かりやすい奴はないんでしょうか・・・?
英語版のwikiですか、見てみます。
0158名無しさん@お腹いっぱい。
2009/07/26(日) 20:40:06ID:/IvZO/fF00159名無しさん@お腹いっぱい。
2009/07/27(月) 01:27:15ID:RfPn8qbw0それ有名なやつだな。宿題か何かで出たが、初めて見たときに驚いた。
0160名無しさん@お腹いっぱい。
2009/07/27(月) 12:22:46ID:fOo27lsc00161名無しさん@お腹いっぱい。
2009/08/03(月) 18:44:55ID:vQYTOl1h0僕が見た資料では自然数nはzにsをn回作用させることで表現しています。
n = s(s(s(...s(z)...)))
これで表現できる自然数の数は?、つまり可算無限個なわけです。
すると、同じ可算無限個である整数や有理数はこれと似た手法で表現できることが予測されます。
が、実数の数は?、非可算無限個なわけで、同じ手法で表現できそうにはありません。
つまり何が言いたいかというと、実数をλ計算で表現するには全く別の方法が必要であるということです。
そこで提案なのですが、λ式の集合の数については言及されてないことから?以上の個数であると仮定し、実数zを次のように定義してはどうでしょうか?
z = λx.z
という再帰的な定義です。(再帰的な定義はいけないという文章を見かけたことはありますが、ここではよしとします)
例を挙げるならば
π = λx.π
などです。
さて、この再帰的な定義による実数で計算を行うことを考えます。
例として一番簡単な足し算はどうなるでしょうか?
pre+ = λy.(入力にyを足したλ式に変換するλ式)
+ = λx.(pre+ x)
pre+に入力できるλ式は非可算無限個ですから、pre+が出力できるλ式の数も非可算無限個
とすると+が出力できるλ式も非可算無限個になり、これで実数の足し算が可能になるわけです。
問題点はpre+は非可算無限個の入力に対して非可算無限回の比較を行わなくてはならない点でしょうか。
それができるならば完璧な定義だと思うのですが、皆さんどう思いますか?
0162名無しさん@お腹いっぱい。
2009/08/03(月) 18:47:27ID:vQYTOl1h0一個目の?はアレフ0、二個目はアレフ、三個目もアレフと解釈してください
0163名無しさん@お腹いっぱい。
2009/08/03(月) 20:58:02ID:T3i/bak30結局何がしたいのかよくわからないなあ。λ計算で表現したいというけど
> z = λx.z
この = がλ式として同じという意味なら、そんなのを許した時点で
普通のλ計算から逸脱してるよね。
0164名無しさん@お腹いっぱい。
2009/08/03(月) 21:59:52ID:vQYTOl1h0ご意見ありがとうございます。
z = λx.zはzを簡約化したらλx.zになるということを示したかったのですが、確かによく考えたらλ計算から逸脱していますね。
僕の思い違いでした。
やりたいのはλ計算で実数を表したかっただけなのですが、もしかして不可能なんでしょうか?
(つまりλ式全ての集合の要素数は可算無限個しかない?)
λ計算で実数を表すことが不可能という定理が存在することをお知りになっている方がおられましたら教えていただけないでしょうか?
その逆、λ計算で実数を表すことが可能という定理が存在する場合にも同様に教えていただけないでしょうか?
0165名無しさん@お腹いっぱい。
2009/08/04(火) 00:15:21ID:ni/oiWa50>>164の疑問を考えていたのですが、一つの答えが出ました。
http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%A0%E3%83%80%E8%A8%88%E7%AE%97
によると、λ計算はチューリングマシンと等価な数理モデルです。
つまりチューリングマシンでできることはλ計算ででき、チューリングマシンでできないことはλ計算でできません。
完全チューリングマシンは実数を扱うことができません。
よってλ計算は実数を扱うことができません。
q.e.d.
この証明は合ってるでしょうか?
以下補足
公理的集合論では実数よりも多くの要素を扱えます。
しかしλ計算では実数以上の要素を扱えません。
よってλ計算を基礎として数学を作る事は不可能です。
0166名無しさん@お腹いっぱい。
2009/08/04(火) 00:42:10ID:m0rcM/ks0無理数を扱う時にTMが停止しないことに言及した方がいいけど、
まあいいんじゃないの。
■ このスレッドは過去ログ倉庫に格納されています