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.