;;; Composition of certain paths

;;; Make Before Transitive
;(define-path before (compose before (kstar (compose after- ! before))))

;;; Make After Transitive
;(define-path after (compose after (kstar (compose before- ! after))))

;; If X is a member of the class Y and Y is a subclass of Z then
;;   X is a member of the class Z.
(define-path class (compose class (kstar (compose subclass- ! superclass))))

;; Make subclass transitive
(define-path subclass (compose subclass (kstar (compose superclass- ! subclass))))

;;Make superclass transitive
(define-path superclass (compose superclass (kstar (compose subclass- ! superclass))))

;; Make member move over equiv arcs
(define-path member (compose member (kstar (compose equiv- ! equiv))))
