合金 - 计算其他原子使用的原子

时间:2017-03-23 04:04:39

标签: predicate signature alloy predicates

我试图注意原子与其他原子的关系发生了变化。使用以下签名:

    sig Word, Definition{}

    sig Dictionary {
        def: Word -> lone Definition
    }

然后,我使用谓词来显示当您向Dictionary添加新关系时,通过让另一个Dictionary相同但又有一个关系来发生会发生什么。

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

要查看第一个词典增加使用的Word个原子的数量是否增加,我只能显示发生这种情况的实例:

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

但是,有没有办法看第二个Definition原子使用的Dictionary原子数是否增加了?我一直在使用Alloy Evaluator中的试验和错误试图为此找到一个值但是已经缩短了。

谢谢!

1 个答案:

答案 0 :(得分:1)

喜欢这个吗?

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