gpt4 book ai didi

haskell - 在保留评论的同时将 Coq 提取到 Haskell

转载 作者:行者123 更新时间:2023-12-04 12:16:04 24 4
gpt4 key购买 nike

在将 Coq 提取到 Haskell 时是否有保留评论 ?
理想情况下,我希望机器生成的 Haskell 文件不受人类影响,因此提取评论的动机很明确。但是,我找不到该怎么做,我想知道这是否可能(?)。这是一个示例 Coq 文件:

(*************)
(* factorial *)
(*************)
Fixpoint factorial (n : nat) : nat :=
match n with
| 0 => 1
| 1 => 1 (* this case is redundant *)
| S n' => (mult n (factorial n'))
end.

Compute (factorial 7).

(********************************)
(* Extraction Language: Haskell *)
(********************************)
Extraction Language Haskell.

(***************************)
(* Extract to Haskell file *)
(***************************)
Extraction "/home/oren/Downloads/RPRP/output.hs" factorial.

当我将它提取到 Haskell 时,除了阶乘中的注释丢失之外,一切正常:
$ coqc ./input.v > /dev/null
$ cat ./output.hs
module Output where

import qualified Prelude

data Nat =
O
| S Nat

add :: Nat -> Nat -> Nat
add n m =
case n of {
O -> m;
S p -> S (add p m)}

mul :: Nat -> Nat -> Nat
mul n m =
case n of {
O -> O;
S p -> add m (mul p m)}

factorial :: Nat -> Nat
factorial n =
case n of {
O -> S O;
S n' ->
case n' of {
O -> S O;
S _ -> mul n (factorial n')}}

最佳答案

不,这是不可能的。仔细检查,您可以看到 the AST for the internal language that extraction targets ,称为 MiniML,(从 v8.9 开始)没有任何用于注释的构造函数。相关文件位于 Coq 存储库中, plugins/extraction/miniml.ml .

关于haskell - 在保留评论的同时将 Coq 提取到 Haskell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55337201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com