alloy

    0热度

    1回答

    我是合金的新手,并想了解#如何与诠释的限制工作。 考虑以下的简单模型的无向图,没有自循环: sig Node { nearBy : set Node } fact { no iden & nearBy // irreflexive ~nearBy in nearBy // symmetric } pred connected[nodes : set Node ] {

    0热度

    2回答

    在我的Java代码,当我改变SATSolver从SAT4J到MiniSatJNI或MiniSatProverJNI在: A4Options options = new A4Options(); options.solver = A4Options.SatSolver.SAT4J; 例如,为了: A4Options options = new A4Options(); options.sol

    1热度

    1回答

    以下示例显示了两个看起来等效的检查,但第二个检查找到了一个反例,而第二个检查没有发现反例。当设置“防止溢出”到“否”,都返回相同的结果: sig A { x : Int, y : Int } pred f1[a:A] { y = x ++ (a -> ((a.x).add[1])) } pred f2[a:A] { a.y = (a.x).add

    1热度

    1回答

    下面是签名 one sig Library { books: set Book, patrons: set Patron, circulation: Patron lone -> some Book } sig Book { } sig Patron { curbooks: set Book } 问题 - >我想

    1热度

    1回答

    我是Alloy的初学者。这是我使用合金分析仪的第一个模型。我现在正在为Travel in Alloy建立一个通用模型。在这个模型中,一个用户(我在这个模型中使用sig请求)可以请求'住宿'(包括'hotel'或'apartment'或'hostel'); '飞行';或'旅游'(该请求可以是其中的一个或它们的任意组合,例如酒店和旅游)。它们中的每一个都是“资源”的子集。现在,我只坚持只有一个目的地的

    1热度

    1回答

    是否有可能搜索的谓词执行(谓语应用程序序列),从给定的状态导致另一个约束状态的实例? 一个有点相关的问题:有没有办法通过一个谓语参数另一个谓词?

    0热度

    2回答

    edu.mit.csail.sdg.alloy4whole.ExampleUsingTheCompiler类提供了一个如何从命令行执行Alloy命令的示例。本例中使用的后端求解器是Sat4J。我很乐意将求解器改为其中一个更快的求解器,如Plingeling。不幸的是我无法解决如何实现这一目标。简单地改变行 options.solver = A4Options.SatSolver.SAT4J;

    0热度

    1回答

    有人能解释合金中skolemdepth选项的影响吗?

    0热度

    1回答

    我在我的.als文件中定义了一些约束条件,但是当我点击执行时,找不到解决方案。我有一个特定的解决方案,我怀疑“应该”的工作,但显然失败的原因只有合金可以发现的一些晦涩的理由。 我想要的是将我提出的解决方案手动输入Alloy Visualiser,然后要求Alloy告诉我哪些约束被违反。这可能吗?

    1热度

    2回答

    即使在简单的示例中,我也无法使Alloy的基数运算符(#)按预期工作。 例如,下面的合金文件... sig Y {} sig X {r : Y -> Y} { //#r = 2 } run {} for exactly 1 X, 3 Y ...给我,恰好包含2个r -edges溶液(见下图)。但是,如果我取消#r = 2这一行的注释,Alloy就不会找到解决方案!我究竟做错了什么?