Logic 合金中完全连通图的建模
我试着用Alloy(对形式逻辑来说也是相对较新的)来湿我的脚,我试着从一个完全连通的节点图开始Logic 合金中完全连通图的建模,logic,alloy,model-checking,Logic,Alloy,Model Checking,我试着用Alloy(对形式逻辑来说也是相对较新的)来湿我的脚,我试着从一个完全连通的节点图开始 sig Node { adj : set Node } fact { adj = ~adj -- symmetrical no iden & adj -- no loops all n : Node | Node in n.*adj -- connected } pred ex { } run ex for exactly 3 Node 如图所示,节点0和1
sig Node {
adj : set Node
}
fact {
adj = ~adj -- symmetrical
no iden & adj -- no loops
all n : Node | Node in n.*adj -- connected
}
pred ex { }
run ex for exactly 3 Node
如图所示,节点0和1未连接。我认为我的事实足以使它完全相连……但也许我遗漏了什么
怎么样
adj = Node -> Node - iden
这基本上是说adj
包含所有可能的节点对,除了标识(自循环)
对于您的模型,Node1
和Node2
没有连接是可以的,这是事实的最后一条,它限制了对于每个节点,所有节点都是可传递访问的,但在我看来,您希望它们立即可访问。除了使用我上面的解决方案,您还可以更改
n.*adj中的所有n:Node|Node
到n.adj中的所有n:Node |(Node-n)
为了得到同样的效果