SINGLE-VALUED-SLOT is a constraint on the second argument of a binary relation that is conditional on the first argument to the relation being an instance of a given class. It is like unary-function, except it is local to the values of the relation on instances of the given subset of the domain.
(<=> (Single-Valued-Slot ?Class ?Binary-Relation)
(= (Slot-Cardinality ?Class ?Binary-Relation) 1))
(<=> (Single-Valued-Slot ?Class ?Binary-Relation)
(And (Class ?Class)
(Binary-Relation ?Binary-Relation)
(=> (Instance-Of ?Instance ?Class)
(=> (Holds ?Binary-Relation ?Instance ?Slot-Value1)
(Holds ?Binary-Relation ?Instance ?Slot-Value2)
(= ?Slot-Value1 ?Slot-Value2)))))
(<=> (Has-Single-Slot-Value-Of-Type@Ol-User%Slot-Constraint-Sugar
?Class
?Binary-Relation
?Type)
(And (Class ?Class)
(Binary-Relation ?Binary-Relation)
(Class ?Type)
(Single-Valued-Slot ?Class ?Binary-Relation)
(Has-Slot-Value-Of-Type@Ol-User%Slot-Constraint-Sugar
?Class
?Binary-Relation
?Type)))
(Single-Valued-Slot ?Class ?Binary-Relation)