2017-03-23 5 views
0

J'essaie de remarquer un changement dans les relations atomiques avec d'autres atomes. En utilisant les signatures ci-dessous:Alliage - Nombre d'atomes utilisés par d'autres atomes

sig Word, Definition{} 

    sig Dictionary { 
     def: Word -> lone Definition 
    } 

J'utilise alors un prédicat pour montrer ce qui se passe lorsque vous ajoutez une nouvelle relation à un Dictionary en ayant une autre Dictionary qui est le même mais avec une relation plus.

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

Pour voir si le nombre de Word atomes utilisés par la première augmentation Dictionnaire je peux montrer que les cas où cela se produit en utilisant:

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

Cependant, est-il un moyen de voir si le nombre de Definition atomes utilisés par le second Dictionary atome a augmenté? J'ai utilisé l'essai et l'erreur dans l'évaluateur d'alliage pour essayer de trouver une valeur pour ceci mais suis venu court.

Merci!

Répondre

1

Comme ça?

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 
+0

Fonctionne parfaitement, merci! – LEJ