reduction semantics