- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有一种方法可以对读取堆并返回与堆无关的快照的函数进行编码?这对于我想开发的实验编码非常有用。
例如,我尝试编写一个名为 edges
的 Dafny 函数,我打算仅将其用于规范。它应该采用一组 Node
对象并返回一组 Edge
对象。
class Node {
var next: Node
var val: int
constructor (succ: Node, x: int)
{
this.next := succ;
this.val := x;
}
}
datatype Edge = Edge(x: Node, y: Node)
function{:axiom} edges(g: set<Node>): set<Edge>
reads g
ensures forall x:Node, y:Node {:trigger Edge(x,y)} ::
x in g && x.next == y <==> Edge(x,y) in edges(g)
但是,我从 Dafny(使用该工具的在线版本)收到以下错误消息:
Dafny 2.3.0.10506
stdin.dfy(26,10): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'x'
stdin.dfy(26,10): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'y'
2 resolution/type errors detected in stdin.dfy
似乎 {:axiom}
注释在此上下文中没有任何作用。删除它会导致相同的错误消息。
最佳答案
我不知道您一般问题的答案,但我相信您可以通过以下方式获取具体示例的后置条件:
function{:axiom} edges(g: set<Node>): set<Edge>
reads g
ensures edges(g) == set x : Node | x in g :: Edge(x, x.next)
您也可以只将该后置条件写为函数定义:
function{:axiom} edges(g: set<Node>): set<Edge>
reads g
{
set x : Node | x in g :: Edge(x, x.next)
}
为了完整性,这里是完整的例子:
class Node {
var next: Node
var val: int
constructor (succ: Node, x: int)
{
this.next := succ;
this.val := x;
}
}
datatype Edge = Edge(x: Node, y: Node)
function{:axiom} edges(g: set<Node>): set<Edge>
reads g
ensures edges(g) == set x : Node | x in g :: Edge(x, x.next)
function{:axiom} edges2(g: set<Node>): set<Edge>
reads g
{
set x : Node | x in g :: Edge(x, x.next)
}
关于dafny - 我如何编写关于读取堆的函数的 Dafny 公理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58234633/
我正在尝试使用基于 this 的 OWLFunctionalSyntaxParser 将字符串解析回 OWL Axioms例子。这对于简单的公理来说效果很好,例如ObjectPropertyAsser
有没有一种方法可以对读取堆并返回与堆无关的快照的函数进行编码?这对于我想开发的实验编码非常有用。 例如,我尝试编写一个名为 edges 的 Dafny 函数,我打算仅将其用于规范。它应该采用一组 No
我正在从 localhost:8080(前端)到 localhost:8000(后端)进行 axios 调用。 前端使用vue、webpack、node编写,后端使用lumen-laravel框架。
各位, 我只是想知道如何使用 AXIOM xml 流程库通过给定标签名称从给定 xml 中删除 xml 元素。 到目前为止我已经成功构建了文档。 StAXOMBuilder builder = new
我使用以下命令在每个传出请求上附加一个值为“Bearer {access_token}”的授权 header :window.axios.defaults.headers.common['Author
我有一个非常大的 ID 数组(数千个 ID)。我想遍历这个数组并为每个值,像这样向 API 发出请求: [12, 32, 657, 1, 67, ...].forEach((id) => {
我在我的 java 项目中遇到这个异常 Caused by: java.lang.ClassNotFoundException: org.apache.axiom.om.OMDataSource
请不要将其标记为重复。我已阅读有关堆栈溢出的所有相关答案,但尚未针对此问题得出明确的解决方案。 我现在正在使用带有 axios 的 vue 服务器来尝试从 https://coinmarketcap.
我对 Vue.js 和 Axios 很陌生。我想学习它来创建一个 REST CRUD 界面。从HTTP GET请求开始,目前我找到的例子都是在页面加载打印返回数据时执行HTTP GET。这很好用。 另
例如 (async() => { let apiRes = null; try { apiRes = await axios.get('https://silex.edgeprop.m
在这个测试用例中,我发送一个带有用户 ID 和密码的 axios post 请求到本地运行 passportjs 的 ExpressJS 服务器。服务器以状态代码 200 响应,并使用 set-coo
我正在尝试从 onesignal api 发送 POST 请求 代码 axios({ method: 'post', url: 'https://onesignal.com/api/v1/no
我是一名优秀的程序员,十分优秀!