An abstract interpretation framework for semantics and diagnosis of Lazy functional-logic languages