Program Refinement Using A Universal Law : Language Specification And Prototype Tool