  The semantic foundations for logic programming are usually separated into two
different approaches. The operational semantics, which uses SLD-resolution, the
proof method that computes answers in logic programming, and the declarative
semantics, which sees logic programs as formulas and its semantics as models.
Here, we define a new operational semantics called TSLD-resolution, which
stands for Typed SLD-resolution, where we include a value "wrong", that
corresponds to the detection of a type error at run-time. For this we define a
new typed unification algorithm. Finally we prove the correctness of
TSLD-resolution with respect to a typed declarative semantics.
