Alloy 树的谓词

Alloy predicate for a tree

我正在尝试在 alloy 中编写一个谓词,它将确定一组节点是否是一棵树。我有伪代码,但对如何实现它感到困惑。我是 alloy 的新手,所以感谢所有提前回复的人。

sig Node[]

pred isTree [r: Node -> Node] {
// Every node reachable from root
// No cycles
// No node has more than 1 more parent.
}

您可以查看此 online Alloy tutorial,其中对文件系统进行了建模。 它也是一个树形结构,因此您几乎可以找到答案。

更具体的答案需要更具体的问题并显示您的尝试。

我们不会放弃作业答案 ;-)。