Formal bases for dataflow analysis of logic programs