alloy

    0热度

    1回答

    在书软件抽象,它说的195页: 合金不具有模型固定的成语,所以您可以自由使用任何 成语最适合手头的模型。 这本书给出了一个很好的使用“事件习惯用法”来模拟酒店操作的典型例子,其中涉及到办理登机手续,结账和入室等事件。 我相信有一个“面向对象的习语”,对吗?建模中使用了哪些其他习语?

    0热度

    1回答

    假设我想创建一个Java程序来执行多个Alloy运行,为每个循环更改它们的作用域值(整数从0到9),以检查哪个将花费更少的时间解决方案。 请注意,该命令实际上是相同的,我的意思是,只有范围的值(以及保留字“完全”的存在/不存在)会有所不同。 下面是一个数字例子: 1st run → command: run MyPred for 3 but 5 Int, exactly 1 Sig_Scope1,

    0热度

    1回答

    下面是一个人和他们的父亲的模型。我想让合金分析仪显示模型的一个实例。在Alloy工具中,我选择“运行显示”(在执行菜单中)。然后我选择“显示”按钮。这里的可视化显示的内容: 我不知道这意味着什么。我点击主题,我看不出任何东西来帮助我“取消隐藏”原子。帮帮我!为什么展示台展示了这一点? sig Person {father: Person} fact { no p: Person |

    1热度

    1回答

    是这两种等价的: r: A -> B r: A set -> set B 也就是说,是set默认的多样性? 如果是的话,那么我会在Software Abstractions一书中对箭头运算符的定义进行调整。该书第55页说: 箭头产品(或只是产品)P->两个关系p和q q是 你采取一个元组的每个组合由p和 元组获得的关系从q和连接它们。 我理解这个定义为是指P-的只有有效的实例> q是一个有

    0热度

    1回答

    没有城市 让“天气”是其中之一:Rainy,Sunny,Cloudy。 我可以创造一个合金模型,说:“天气”是城市和一个天气之间的关系。 sig Forecast {weather: City -> one Weather} sig City, Weather {} one sig Rainy, Sunny, Cloudy extends Weather {} 以下是样本实例: Bos

    1热度

    1回答

    据说在不同的地方(例如这里的enter link description here或there)为了提高分析效率(以及让原子名称出现在“自然“的顺序)。 据我所知,优化是在Kodkod(in this piece of code)。然而,是否有一篇文章或文档更详细地解释了(比Java文档,它是用布尔矩阵表示的,并且没有提供该算法的论证 - 在源代码文档中没有问题 - )优化在南美林猫?据我所知,E

    0热度

    1回答

    等于s。〜r等于r.s on page 63.软件抽象看起来不正确。我相信s。〜r等于〜(r。〜s)是正确的说法。

    0热度

    1回答

    我正在开发一个项目,并找到一篇关于Valloy的文章,他们给出了一个Valloy和Alloy代码的例子,但问题在于合金分析器无法识别Alloy脚本的语法。 经验: fun Object::equals(obj: Object) { this.class = Object_Class => this..Object_equals(obj) this.class = Dimension_Class

    1热度

    1回答

    我一直在努力让自己的项目更具动感,所以我决定编写一个添加函数,我从合金网站上的这个例子中得到灵感: pred add [b, b': Book, n: Name, t: Target] { b'.addr = b.addr + n->t } 但我想要做的是重写两个对象“b”和“b”(如我想添加到同一个对象),但我似乎无法找到办法如何做到这一点。 如果任何人有一个想法,我会感谢

    0热度

    1回答

    由于我是合金新手,这很可能是一个简单的问题。我已经通过在线教程,现在正在阅读Software Abstractions修订版。在页34上有一个页面底部的示例: r' = {b:B, a:A, c:C | a->b->c in r} 其中文本说,这定义了B-> A-> C的新关系。我不明白这个声明是如何实现r'的明确命令的。