Я пытаюсь написать предикат в сплаве, который определит, является ли набор узлов деревом. У меня есть псевдокод, но я не совсем понимаю, как его реализовать. Я новичок в сплаве, поэтому спасибо всем, кто откликнулся заранее.
sig Node[]
pred isTree [r: Node -> Node] {
// Every node reachable from root
// No cycles
// No node has more than 1 more parent.
}