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
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.
For relational Clafer, we need to access relations not just sets. For example, for a model
Also, to access the relation globally, we'd like to be able to say
also, access the relation specialized to a subclafer:
This will allow us to access relations and use them in relational expressions, such as inverse, transitive closure, etc.