PLT 板


LINE

看板 PLT  RSS
想請問一下, NJ deduction system 中有這條規則 Γ |- ⊥ ---------- (⊥E) Γ |- A 而對應過去的程式是 Γ |- e : ⊥ -------------------- (⊥E) Γ |- abort(e) : A 其中 abort 是 Dijkstra's abort operator. http://en.wikipedia.org/wiki/Guarded_Command_Language#Skip_and_Abort 但是這能寫出什麼有趣的程式嗎……? 按照⊥的規則, 我們應該寫不出任何型態是⊥的程式, 而許多含有⊥的 proposition 實際給出 term 時往往都有更一般的型別, 如 (a → b) → (﹁b) → (﹁a) 就只是 flip (.) 的一個特例. 我想到比較不無聊的程式為 λx. λf. case x of Inl a → abort(f a) | Inr b → b 是 (AVB) → (﹁a) → b 的證明 (x 的型態是 AVB; f 的型態是 a →⊥) 但是這程式感覺看起來超沒說服力的說 orz 尤其 abort 那邊雖然我們可以推出 f 的型態是 a →⊥, 但是根本不可能有⊥的程式, 那能不能有這種 f 傳進來當參數我很懷疑... 好吧, 拿來當證明的程式本來就不打算拿來跑, 不過還是希望能搞清楚它到底是什麼>< 另外請問這個 "沒有程式" 的⊥跟 denotational semantics 中的那個 "最少資訊"、 或是 non-terminating computation 的關係是什麼呢...? - 之前看到那個 ⊥-elimination 的對應是在 FLOLAC'12, 不過在 Harper 的 PFPL 中 也有出現@@ 最早在 Ch 12. Sum Types 就有出現了(Harper把它叫做 void),說是「沒有選擇的 sum type」,因此沒有 introductory form 只有 eliminatory form abort(e), 是相對 於「沒有東西的 product type」-- unit 的對偶觀念。 可是這樣還是寫不出什麼有趣的程式吧……? 另外我所不懂的是, 既然有 abort, 那為什麼 Harper 還會說(Theorem 12.1, Safety) 這樣的語言是 safe...? (指 1.If e:τ and e |-> e', then e':τ 2.If e:τ, then either e is a value or e |-> e' for some e'.) - 然後還是不太懂這個到底在做什麼orz --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.44.132 ※ 編輯: suhorng 來自: 118.166.44.132 (03/05 23:16)
1F:→ suhorng:另外..Haskell中好像沒有這個 "⊥" type? 03/05 23:36
2F:推 CindyLinz:Haskell 用 data Bottom (後面沒有 =) 03/05 23:39
3F:→ suhorng:CindyLinz: 喔喔好酷! 原來可以不給它 constructor 03/05 23:41
4F:推 CindyLinz:這個「abort」名子聽起來很可怕,其實是個exception 03/05 23:53
5F:→ CindyLinz:handle 嗎? XD 03/05 23:53
不是耶, 當時 flolac 是說這個函數是 "一旦被用任何值呼叫, 就讓程式當機" 維基上則是說 abort 就是 do anything = =||| Harper 寫的書的描述是這樣: "The nullary sum represents a choice of zero alternatives, and hence admits no introductory form. The eliminatory form, abort(e), aborts the computation in the event that e evaluates to a value, which it cannot do." 然後給的語義為 e |-> e' ------------------------ abort(e) |-> abort(e') 接著就沒有其他任何有關 abort 的東西了, i.e. 若 abort(e) 且 e val 那整個計算 會卡住 (got stuck!) 忽然好像有點懂 safety 的意思...因為它的 typing rules 只有 ⊥-elimination 的 上面有出現 void, 所以一個程式若 type check, 一定不可能呼叫到 abort.. (呃, 或是 abort 裡面的 e 可以一直算下去不會停) 另外, 假設 data Void 那我覺得應該存在函數 bottomEliminate :: Void -> a 不過想不到該怎麼寫XD (雖然說 bottomEliminate = undefined 也是...er...) http://stackoverflow.com/a/10212828/2013713 然後下面就有人拿出 Agda 了.... ※ 編輯: suhorng 來自: 118.166.44.132 (03/06 00:13) ※ 編輯: suhorng 來自: 118.166.44.132 (03/06 00:54)
6F:推 Favonia:建議不要用 Haskell 了解這麼嚴謹的東西 xDDDD 03/06 13:18







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燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP