A relation R is a subrelation-of relation R' if, viewed as sets, R is a subset of R'. In other words, every tuple of R is also a tuple of R'. In some more words, if R holds for some arguments arg_1, arg_2, ... arg_n, then R' holds for the same arguments. Thus, a relation and its subrelation must have the same arity, which could be undefined.In CycL, subrelation-of is called #%genlSlots.
(<=> (Subrelation-Of ?Child-Relation ?Parent-Relation)
(And (Relation ?Child-Relation)
(Relation ?Parent-Relation)
(Forall (?Tuple)
(=> (Member ?Tuple ?Child-Relation)
(Member ?Tuple ?Parent-Relation)))))
(=> (Subrelation-Of $X $Y) (Relation $Y))
(=> (Subrelation-Of $X $Y) (Relation $X))
(=> (Subrelation-Of ?Child-Relation ?Parent-Relation)
(=> (Defined (Arity ?Parent-Relation))
(= (Arity ?Child-Relation) (Arity ?Parent-Relation))))
(<=> (Subrelation-Of ?Child-Relation ?Parent-Relation)
(=> (Holds ?Child-Relation @Arguments)
(Holds ?Parent-Relation @Arguments)))
(<=> (Subrelation-Of ?Child-Relation ?Parent-Relation)
(And (Relation ?Child-Relation)
(Relation ?Parent-Relation)
(Forall (?Tuple)
(=> (Member ?Tuple ?Child-Relation)
(Member ?Tuple ?Parent-Relation)))))
(Subrelation-Of Direct-Instance-Of Instance-Of)
(Subrelation-Of Direct-Subclass-Of Subclass-Of)
(<=> (Total-On ?Relation ?Domain-Relation)
(Subrelation-Of (Exact-Domain ?Relation) ?Domain-Relation))
(Subrelation-Of Alias =)
(Subrelation-Of Exhaustive-Subclass-Partition Subclass-Partition)
No. Used to be defined this way, but it was an unnecessary restriction. If the parent relation has a (fixed) arity, then the child's arity must be equal to it. However, the child could be of fixed arity and the parent undefined (variable) arity.