问题标签 [fstar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
274 浏览

f# - FStar 和 mono 的编译问题

我正在尝试在最新的 Ubuntu 和单声道上编译 FStar 语言。GitHub repo提供了一些构建指令,但它对我不起作用。后

我收到此错误消息:

完整日志可在此处获取。

如何在单声道上构建 FStar 语言?

0 投票
1 回答
58 浏览

fstar - F*教程中关于最弱前置条件符号的一些问题

F*教程的第9章有一个例子:

有人可以在这里解释这个符号吗?我知道这WP是前置条件和P后置条件,但什么是P b?应用于b?的后置条件

0 投票
2 回答
137 浏览

fstar - 如何声明 hasEq 约束?

我刚从 F* 开始,我的意思是我已经写了几行连同教程。到目前为止,这真的很有趣,我想继续学习。

我自己尝试做的第一件事是编写一个表示非空列表的类型。这是我的尝试:

但我得到了错误

无法验证隐式参数:子类型检查失败;预期类型 (a#6468:Type{(hasEq a@0)}); 得到类型类型

我知道我走在正确的轨道上,因为如果我将列表类型限制为包含字符串,这确实有效:

我假设这意味着l <> []在原始示例中无效,因为我没有指定'a应该支持平等。问题是我一生都无法弄清楚如何做到这一点。我猜这与更高的类型hasEq有关,但尝试诸如:

没有把我带到任何地方。该教程没有涵盖hasEq,我在 GitHub 存储库中的示例中找不到任何有用的东西,所以现在我被困住了。

0 投票
1 回答
68 浏览

types - 假设 F* 中的 val 和 opaque 类型构造

我是 F* 的新手,虽然教程写得很好,但我缺少一些好的 API 页面供参考。

所以我需要以下构造的确切含义:

我会说这条线将正在使用的名称注册到求解器中?

调用类型不透明的效果是什么?它可能需要的参数列表呢?

请包括您可能用来给出此答案的参考资料。

0 投票
1 回答
2239 浏览

dafny - 精益、f* 和 dafny 有什么区别?

他们来自微软,似乎他们是证明助理?除了语法上的差异之外,还有哪些实际方面使它们彼此不同(比如自动化能力、表达能力等)?我是形式验证的新手。

编辑:我不是在问哪个更好,我只是对这些工具提供的不同功能之间的技术比较感兴趣。我正在寻找这样的东西

0 投票
0 回答
99 浏览

fstar - 如何证明形式为 forall x 的陈述。F* 中的 phi x?

我刚刚开始学习 F*,正在阅读教程。其中一项练习是证明reverse列表上的函数是单射的。因为这是从对合是单射的事实得出的,所以我想将该事实表达为 F* 中的一个引理。为此,我定义

这是f在 F* 中定义内合或内射概念的正确方法吗?

然后我陈述引理

非正式地,证明可以写成

我如何在 F* 中表达这样的证明?一般来说,可以使用哪些 F* 语言结构来证明以下形式的语句,类型的谓词在forall (x:a). phi x哪里?phia

0 投票
1 回答
268 浏览

linear-types - F* 是否支持线性类型?

根据关于子结构类型系统的维基百科文章,F* 支持某种线性类型。这是真的?如果是这样,怎么做?我在 F* 教程中找不到任何有关它的信息。

0 投票
1 回答
69 浏览

applicative - F* 中的应用函子:类型检查错误

作为尝试熟悉 F* 的实验,我尝试实现一个应用函子。我陷入了一个看起来很奇怪的类型检查错误。我还不确定这是否是由于我不知道的类型检查中的某些功能/逻辑,或者这是否是由真正的错误引起的。

这是给我带来麻烦的代码部分:

这是相应的错误:

有人可以向我指出我缺少什么吗?类型统一的行为是否受子类型化的影响?还是应该进行类型检查,这是编译器错误?

0 投票
0 回答
76 浏览

fstar - 是否有 F* 的证明搜索功能?

正如我们所知,我们在 Agda( Emacs 中的Ctrl+ c Ctrl+ a)以及 Idris 和 Coq 中都有“自动”(证明搜索),但是当我深入研究 F* 的 Emacs 模式时,我没有找到类似的功能.

F*有这个功能吗?如果是这样,我该如何使用它?

0 投票
3 回答
116 浏览

fstar - 不在 Windows 上时如何获得有关 z3 查询的见解

https://github.com/FStarLang/FStar/wiki/Profiling-Z3-queries的 wiki 页面建议使用 Z3 Axiom Profiler;但是,Z3 Axiom Profiler 似乎只能在 Windows 上可靠地工作。

在没有 Z3 Axiom Profiler 的情况下,如何轻松获得最触发的量词?