A participant function is a unary function from model fragments to entities.
(<=> (Participant-Function ?F)
(And (Unary-Function ?F)
(Domain ?F Model-Fragment)
(Range ?F Entity)))
(Unary-Function ?F)
(<= (Range $X Entity) (Participant-Function $X))
(<= (Domain $X Model-Fragment) (Participant-Function $X))
(<=> (Participant-Function ?F)
(And (Unary-Function ?F)
(Domain ?F Model-Fragment)
(Range ?F Entity)))
(=> (Has-Participant-Function $X $Y) (Participant-Function $Y))
(=> (Participant-Function-Total-On $X $Y) (Participant-Function $X))
(<=> (Participant-Function-Total-On ?Function ?Class)
(And (Participant-Function ?Function)
(Class ?Class)
(Total-On ?Function ?Class)))