provide complete semantics