A transitional semantics for full prolog