作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这可能是一个奇怪的问题,因为 Coq 应该是一种纯函数式语言,但是 Extraction
存在并且它显然有副作用,所以我假设可能有一个更基本的命令来输出一个字符串或一些常量到一个文件,像这样:
Extraction "file.txt" "hello"%string.
extract : Expr -> string
对于我在归纳类型中形式化的自定义语法
Expr
.我怎样才能把这个字符串放到一个文件中?
最佳答案
您可以使用 Redirect
与 Eval
接近:
Require Import String.
Open Scope string_scope.
Redirect "file.txt" Eval compute in "hello".
(* file.txt.out now contains:
= "hello"
: string
*)
extract
在 Coq 中,然后使用提取机制提取
extract e
一些
e
感兴趣,最后编写一个 OCaml 程序,导入这个(字符串)常量并打印它。走这条路的原因是在 Coq 中构建字符串太慢以至于你可能无法运行
Eval compute extract e
但是你也许可以在 OCaml 中运行它。然后,您还可以(以未经验证的方式)用 OCaml 原生字符串替换 Coq 字符串,这样这个过程实际上是有效的;通过导入
ExtrOcamlString
很容易做到这一点在提取前的 Coq 中。
关于coq - 如何从 coq 写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49746424/
我是一名优秀的程序员,十分优秀!