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

请输入看板名称,例如:Soft_Job站内搜寻

TOP