Another major area of research for logical theory was software engineering. Research projects such as the Knowledge Based Software Assistant and Programmer's Apprentice programs applied logical theory to validate the correctness of software specifications. They also used them to transform the specifications into efficient code on diverse platforms and to prove the equivalence between the implementation and the specification.[10] This formal transformation driven approach is often far more effortful than traditional software development.