reduction semantics + completeness proof