PLT 板


LINE

看板 PLT  RSS
※ 引述《noctem (noctem)》之銘言: : 解釋得很棒!真是感謝... : ※ 引述《scwg ( )》之銘言: : : Unification 是在說: "現在看起來這個 proof term 你既用來證第一個 proposition, : : 又用來證第二個 proposition, 那麼要不這兩件事是同一件事 : : ( unify (a :-> b) (c :-> d) = unify a c +++ unify b d ) : : 要不某個 proposition 不能太 general, 只能是特定形式 : : ( unify (Var a) e = a |-> e where e /= (Var a) )" : 這個講法不錯(筆記)。 : : 在沒有 Y 之前的 typed lambda calculus 是沒有 divergence 的. : : 所有的 function 都是 total function, 給了 input 一定有 output. : : 但是 recursive 給了我們造出 divergence 的空間, function 不一定是 total 了. : : 事實上這表示我們證得出 "False" 了! 因為 _|_ 是任何 type 的 proof term. : : 這個 logic 不再 consistent, proof term 不再是 valid proof. _|_ (\bot) 是任意 type 的 proof term 是甚麼意思呢? _|_ 應該是對應 logic 上的 false 或稱 absurdity, 雖然 \bot 也用在 denotational semantics 上, 作為 information order 上"沒有資訊"的意思,也就是最小元素, 而 Haskell 也用這個作為所有 type 的 term,因此可以說 Haskell 是 不一致的系統。若用 Heyting algebra 來看 logic 的話, _|_ 的確也是最小元素。 但這兩個 \bot 還是不同吧? : 補充一下,這裡操作上的意思是我們能寫出不會中斷的程式。 : 用 untyped lambda calculus 我們能寫出可以一直 reduce 下去, : 不會終止的 term (例如 Y, 和很多其他的). 它的表達能力和 Turing : machine 一樣。 : 加上 type 的 lambda calculus 通常有 strong normalisation 的 : 性質: 任何 reduction 都會停在某個 normal form. 也就是說用 : 它來寫程式的話,可以確定所有程式都會終止。這樣聽起來很好, : 代價則是可以寫的程式變少了(但,有人似乎是認為這樣也夠了, : 詳後述),這語言不再是 Turing complete 了。 : 那個用 Fix 的做法則是用了 type system 開的後門,讓我們又可以 : 定義 Y combinator. 但這麼一來優缺點又顛倒了:你開始可以寫 : 不會中斷,有任何 type 的程式,例如 "y id". : : 但是在一些 proof assistant 裡, 因為主要功能就是證明, : : 所以上面的 Fix 通常是不合法的. : : 要 recursive 可以, 通常只給 primitive recursion, : : 這樣還是只寫得出 total function, logic is still consistent. : 其實應該比 primitive recursion 強一點(欸,其實是很多)啦。 : 前面的推文有說到 fold/cata, 所以我想這邊可以提一下.. : 用 System F 就可以模擬 inductive type 了,做法和 Church : encoding 一樣,一個 type 就是它的 fold. : (有我不認識的人到現在還知道我在說什麼嗎? : 那就應該認識一下了 XD) : 另外也可以模擬 coinductive type, 例如無限長的 list 或 tree, : 基本上一個 coinductive type 就直接用它的 unfold 來表示。 : 這樣你就有了一個語言,有 inductive type (可以做 fold), : 也有 coinductive type (可以 unfold), 但是 unfold 出來的 : 東西和 fold 吃的東西的 type 不一樣,因此不能做 hylomoprhism. : 這樣一來所有程式都還是會終止的。 : 現在大多 proof assistant 只要能表達 second-order logic : 就可以這樣做。有人是認為這樣就很夠了。只是你每寫一個長得 : 比較奇怪的程式,就得付一個它會終止的證明(這個證明當然就 : 表達成某個 inductive type)。 雖然是這樣說,不過其實可以設計一個給 domain 的邏輯系統, 有語意,語法以及對應的sequent calculus, 這角度來看就算有 \bot 還是 consistent 的啦。 : : 不過寫了這麼多都沒提到 Kind. : 其實我是不太知道 kind 在這邊的意義哩。說說看吧? : : (Note: 這段對 user defined data type 的解釋很狹隘, 僅限之後夠用而已, : : data type 的理論 Robert Harper 還在寫的新書裡寫了整整兩章) : 喔喔,這個有草稿可以抓嗎? : (其實回這篇是為了要問這個 XD) 既然說到這個,我一直想說 FP 對應的邏輯都是構造性的, 但是 wiki 看到的資料寫, 加入 Call-with-current-continuation 對應 Peirce's law 就會是古典邏輯了。但我不曉得實際拿來作證明, 會長甚麼樣子呢? --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 82.36.219.50







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP