(define-object resource@Z)
(define-object ?r1)
(define-object ?r2)
(define-object ?r3)
(define-process process@Z)
(define-process ?pA)
(define-process ?pB)
(define-subclass-relation subclass@Z
(=> forall ?r1 ?r2 ?r3
(?r1
(and ?r2
(and ?r3
(and resource@Z))))))
(define-subclass-relation subprocess@Z
(=> forall ?pA ?pB
(?pA
(and ?pB
(and process@Z)))))
(define-subprocess@Z precede-process)
(define-subprocess@Z precede-resource)
(define precede-process ?pA ?pB
(=> forall ?pA ?pB
(precede-process
(and ?pA
(and ?pB)))))
(define precede-resource ?r1 ?r3
(=> forall ?r1 ?r3
(precede-resource
(and ?r1
(and ?r3)))))
(define precede-resource ?r2 ?r3
(=> forall ?r2 ?r3
(precede-resource
(and ?r2
(and ?r3)))))
(and (process@Z)
(precedence-resource (?r1 ?r3)
(precedence-resource (?r2 ?r3)
(precedence-process (?pA ?pB)))))