Alloy - 计算其他原子使用的原子数

Alloy - Count atoms used by other atoms

我正在尝试注意原子与其他原子之间关系的变化。使用以下签名:

    sig Word, Definition{}

    sig Dictionary {
        def: Word -> lone Definition
    }

然后我使用一个谓词来展示当你通过另一个 DictionaryDictionary 添加一个新关系时会发生什么,它是相同的但多了一个关系。

    pred addRelation [d,d':Dictionary,w:Word,f:Definition] { 
        d'.word = d.word + w -> f 
    }

要查看第一个词典使用的 Word 原子数是否增加,我只能使用以下方法显示出现这种情况的实例:

    #d'.def.Definition > #d.def.Definition

但是,有没有办法查看第二个Dictionary原子使用的Definition原子数是否增加了?我一直在 Alloy Evaluator 中使用反复试验来尝试为此找到一个值,但结果很短。

谢谢!

像这样?

sig Word, Definition{}

sig Dictionary {
    def: Word -> lone Definition
}

pred addRelation [d,d':Dictionary,w:Word,f:Definition] { 
    d'.def = d.def + w -> f 
    #d'.def[Word] > #d.def[Word]
}
run addRelation