问题标签 [alloy]

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 回答
211 浏览

alloy - 计算合金中的 Total CounterExamples 的数量

调用

方法返回一个A4Soluiton对象,我们可以通过next()方法对其进行迭代,直到它到达一个 unsatisfiable( )的反例。通过这种方式,我们可以计算求解器的反例总数。

我的问题是,是否可以直接从A4Solution对象中知道反例的总数而无需遍历它。

非常感谢您的回复。

0 投票
1 回答
542 浏览

alloy - 如何在 Alloy API 中实现以下合金模型?

我有以下合金模型,但我不确定如何将其转换为合金 Java API。

我知道我们可以使用A.addField("B", Expr)添加属性,但是我应该在Expr参数中输入什么来使它代表Ints?

谢谢

0 投票
1 回答
283 浏览

alloy - util/Natural 合金中的意外行为

我尝试了 Alloy4 的以下片段,发现自己对 util/Natural 模块的行为感到困惑。评论更详细地解释了意外情况。我希望有人能解释为什么会发生这种情况。

0 投票
1 回答
127 浏览

alloy - 如何将合金解决方案存储到所需的数据结构中?

我建立了一个合金模型,它成功地列举了我想要的所有解决方案。每个解决方案都是一个 A4Solution 对象。

每个实例的输出应该是一个简单的 Java POJO 对象,如下例所示:

我的 Alloy 模型基本上生成了上述 4 个字段的所有可能组合。

我的问题是 A4Solution 对象很复杂,如何解析对象并将生成的字段存储到上面的 POJO 中?

谢谢

0 投票
1 回答
311 浏览

alloy - 对合金4中的一组效用数/自然数求和

我发现自己试图总结一组自然值。运行简单模型时,我对以下行为感到困惑。

(假设以下代码在 util/natural 的副本中,所以导入了 ord)

然后,在导入我的 util/natural 副本的模块中:

为什么更改 Natural 的范围会以这种方式影响结果?

0 投票
1 回答
2444 浏览

alloy - 在合金模型中使用布尔值的最佳实践

我正在构建一个简单的合金来生成简单的 Java Pojo 对象,并且该 pojo 的某些字段是布尔值。我现在使用下面的机制来实现这个功能

这会起作用,但是每次我引入一个新的布尔字段时,我都必须修改布尔事实以确保该值是“真”或“假”。有没有最佳实践来做到这一点?就像我们 Alloy 对整数所做的那样?

0 投票
1 回答
97 浏览

alloy - 我们如何在合金中模拟开关盒?

我有一个合金模型,它需要有一些规则,比如

所以我想设置一个规则,这样每当实例选择美国时,它也会选择美元和纽约。如果它选择 USD,那么它将选择 US 和 NewYork,这意味着国家、地点和货币将被组合在一起。我试图使用以下事实来做到这一点,但它不起作用。事实有什么缺陷,有什么办法吗?

0 投票
2 回答
81 浏览

alloy - 范围的合金简写始终包含特定值

我在 Alloy 上做了一些工作,所以我对它有一些了解。然而,很多速记并没有真正涵盖任何地方。我想知道的是在下面的例子中:

我想确保最终的 Proc 始终是 Begin(目前它也可以是 Action)。

有很多方法可以手写。我在下面包含了一个,当包含它时,可以确保最终的 Proc(即不在域中的)始终是 Begin。

但是,我喜欢使用 (Proc - Remove) 的简写,例如因为它使事情更容易阅读,这意味着 Remove 不能从另一个 Proc 链接到。我希望我已经解释得很好。我认为会有一个非常明显的答案,但我想不出它是什么。请问有什么想法吗?

0 投票
1 回答
433 浏览

string - 合金:用于字符串

如何获取合金中字符串的长度?

如果我想说密码必须至少有 8 个字符,我该如何表示该字符串的长度?

我的密码签名是:

sig 密码{ 密码:一个字符串 }

0 投票
1 回答
1187 浏览

recursion - 在合金中编程递归函数

我正在尝试在 Alloy 中构造一个递归函数。根据丹尼尔杰克逊书中显示的语法,这是可能的。我的功能是:

但是求解器声称该调用auxiliaryToAvoidCyclicRecursion[idTarget, mRet]是这样说的: