alloy 分析器没有准确执行我的 运行 命令

alloy analyzer didn't execute my run command exactly

我的代码是这样的:

但是当我执行 this.it 时,只显示一栋房子和一个莫尔。 我该怎么办???

abstract one sig board{}
sig mohre {live:one  state }
sig house extends board{ver:one Int,hor:one Int,mo: mohre }
enum state{alive,dead}
run{#house>10 and #mohre>8}

您的 run 没有指定 范围 。默认范围是每个 sig 的 3 个原子和 16 个整数 ([-8..7]).

如果 scope,基数为 10 的 US 将被排除在外。基本上那些模型都在拉拉土地上。如果您降低基数或增加范围,事情应该会起作用。

   run{#house>10 and #mohre>8} for 12 but 5 int

此命令允许所有类型的 12 个原子,并有 32 个整数。奇怪的是,整数由它们的 位宽 指定,5 位给出 32 个值。

此外,您对 abstract sig one board 施加了约束。删除 one,因为这会阻止包含多个房屋的解决方案。