Skip to Main Content
Often, calculi for manipulating and reasoning about programs can be recast as calculi for synthesizing programs. The difference involves often only a slight shift of perspective: admitting metavariables into proofs. We propose that such calculi should be implemented in logical frameworks that support this kind of proof construction and that such an implementation can unify program verification and synthesis. The proposal is illustrated with a worked example developed in L.C. Paulson's (1990) Isabelle system. We also give examples of existent calculi that are closely related to the methodology we are proposing and others that can be profitably recast using the approach.