Get the latest tech news
Program synthesis
In computer science, program synthesis is the task to construct a program that provably satisfies a given high-level formal specification. In contrast to program verification, the program is to be constructed rather than given; however, both fields make use of formal proof techniques, and both comprise approaches of different degrees of automation.
During the Summer Institute of Symbolic Logic at Cornell University in 1957, Alonzo Church defined the problem to synthesize a circuit from mathematical requirements. [11] Only a minimalist, yet Turing-complete,[12] purely functional programming language, consisting of conditional, recursion, and arithmetic and other operators[note 3] is supported. [20] Resolving with this assertion can introduce a recursive call to f{\displaystyle f} in the Program term.An example is given in Manna, Waldinger (1980), p.108-111, where an algorithm to compute quotient and remainder of two given integers is synthesized, using the well-order (n′,d′)≺(n,d){\displaystyle (n',d')\prec (n,d)} defined by 0≤n′<n{\displaystyle 0\leq n'<n} (p.110).
Or read this on Hacker News