gsdlab/clafer

Allow navigation paths containing <:

Opened this issue · 0 comments

For relational Clafer, we need to access relations not just sets. For example, for a model

abstract Person
   likes -> Person *
   [ some this.likes ]      // non-empty set     
   [ some this <: likes ]  // non-empty relation likes

Also, to access the relation globally, we'd like to be able to say

[ some Person <: likes ]

also, access the relation specialized to a subclafer:

abstract Student : Person

[ some Student <: likes ]

This will allow us to access relations and use them in relational expressions, such as inverse, transitive closure, etc.