Program reasoning consists of the tasks of automatically and statically ver-ifying correctness and inferring properties of programs. Program synthesis is the task of automatically generating programs. Both program reasoning and synthesis are theoretically undecidable, but the results in this dissertation show that they are practically tractable. We show that there is enough structure in programs written by human developers to make program reasoning feasible, and additionally we can leverage program reasoning technology for automatic program synthesis. This dissertation describes expressive and efficient techniques for program rea-soning and program synthesis. Our techniques work by encoding the underlying inference tasks as solutions to sat...
Systems supporting the manipulation of non-trivial program code are complex and are at best semi-aut...
Existing verification technology, though theoretically adequate, is not directly applicable to the ...
Synthesis of program fragments from specifications can make programs easier to write and easier to r...
Program reasoning consists of the tasks of automatically and statically verifying correctness and in...
We describe a formalization of the meta-mathematics of programming in a higher-order logical calculu...
Systems built for automated program construction aim at the formalization of the programming process...
Program synthesis is the process of developing a computer program automatically from a specification...
Building systems that can synthesize programs from natural specifications (such as examples or langu...
AbstractWe present a constructive description of the automatic program synthesis method used in the ...
A unified framework for formal reasoning about programs and deductive mechanisms involved in program...
The structured programming literature provides methods and a wealth of heuristic knowledge for guid...
We propose a novel approach to automating the synthesis of logic programs: Logic programs are synthe...
Program synthesis is a promising area of research concerned with automatically producing program imp...
Systems supporting the manipulation of non-trivial program code are complex and are at best semi-aut...
Our ultimate goal is to define a framework and a methodology which will allow users to construct or ...
Systems supporting the manipulation of non-trivial program code are complex and are at best semi-aut...
Existing verification technology, though theoretically adequate, is not directly applicable to the ...
Synthesis of program fragments from specifications can make programs easier to write and easier to r...
Program reasoning consists of the tasks of automatically and statically verifying correctness and in...
We describe a formalization of the meta-mathematics of programming in a higher-order logical calculu...
Systems built for automated program construction aim at the formalization of the programming process...
Program synthesis is the process of developing a computer program automatically from a specification...
Building systems that can synthesize programs from natural specifications (such as examples or langu...
AbstractWe present a constructive description of the automatic program synthesis method used in the ...
A unified framework for formal reasoning about programs and deductive mechanisms involved in program...
The structured programming literature provides methods and a wealth of heuristic knowledge for guid...
We propose a novel approach to automating the synthesis of logic programs: Logic programs are synthe...
Program synthesis is a promising area of research concerned with automatically producing program imp...
Systems supporting the manipulation of non-trivial program code are complex and are at best semi-aut...
Our ultimate goal is to define a framework and a methodology which will allow users to construct or ...
Systems supporting the manipulation of non-trivial program code are complex and are at best semi-aut...
Existing verification technology, though theoretically adequate, is not directly applicable to the ...
Synthesis of program fragments from specifications can make programs easier to write and easier to r...