首页 文章
  • 12 votes
     answers
     views

    F#中的impredicative多态性

    OCaml的Hindley-Milner类型系统不允许使用impredicative多态(àlaSystem-F),除非通过最近的记录类型扩展 . 这同样适用于F# . 然而,有时希望将用不可预测的多态性(例如Coq)编写的程序翻译成这些语言 . 针对OCaml的Coq提取器的解决方案是(谨慎地)使用 Obj.magic ,这是一种通用的不安全转换 . 这是因为 在OCaml的运行时系统中 ,...
  • 14 votes
     answers
     views

    如何使用算法W键入检查递归定义?

    我在JavaScript中实现Algorithm W(Hindley-Milner type system): 实现上述规则的函数是 typecheck ,它具有以下签名: typecheck :: (Context, Expr) -> Monotype 它的定义如下: function typecheck(context, expression) { switch (expre...
  • 2 votes
     answers
     views

    如何在coq中证明why3生成的脚本?

    我使用frama-C WP并想调试我的ACSL注释(理解为什么说服者说我“不知道”) . 我有一些绿色或橙色的结果 . 我打开why3 IDE并查看生成的脚本 . 然后我从列表中选择一个理论/目标,并能够启动Alt-Ergo或Coq IDE . 我想在Coq IDE中使用生成的代码 . 我看到一些公理然后定理WP,然后,例如: intros a a_1 i_3 i_2 i_1 i t_2 t_1 ...

热门问题