228,429 research outputs found
Middle-Out Reasoning for Logic Program Synthesis
We propose a novel approach to automating the synthesis of logic programs: Logic programs are synthesized as a by-product of the planning of a verification proof. The approach is a two-level one: At the object level, we prove program verification conjectures in a sorted, first-order theory. The conjectures are of the form 8args \Gamma\Gamma\Gamma\Gamma! : prog(args \Gamma\Gamma\Gamma\Gamma! ) $ spec(args \Gamma\Gamma\Gamma\Gamma! ). At the meta-level, we plan the object-level verification with an unspecified program definition. The definition is represented with a (second-order) meta-level variable, which becomes instantiated in the course of the planning
Using Program Synthesis for Program Analysis
In this paper, we identify a fragment of second-order logic with restricted
quantification that is expressive enough to capture numerous static analysis
problems (e.g. safety proving, bug finding, termination and non-termination
proving, superoptimisation). We call this fragment the {\it synthesis
fragment}. Satisfiability of a formula in the synthesis fragment is decidable
over finite domains; specifically the decision problem is NEXPTIME-complete. If
a formula in this fragment is satisfiable, a solution consists of a satisfying
assignment from the second order variables to \emph{functions over finite
domains}. To concretely find these solutions, we synthesise \emph{programs}
that compute the functions. Our program synthesis algorithm is complete for
finite state programs, i.e. every \emph{function} over finite domains is
computed by some \emph{program} that we can synthesise. We can therefore use
our synthesiser as a decision procedure for the synthesis fragment of
second-order logic, which in turn allows us to use it as a powerful backend for
many program analysis tasks. To show the tractability of our approach, we
evaluate the program synthesiser on several static analysis problems.Comment: 19 pages, to appear in LPAR 2015. arXiv admin note: text overlap with
arXiv:1409.492
Input Synthesis for Sampled Data Systems by Program Logic
Inspired by a concrete industry problem we consider the input synthesis
problem for hybrid systems: given a hybrid system that is subject to input from
outside (also called disturbance or noise), find an input sequence that steers
the system to the desired postcondition. In this paper we focus on sampled data
systems--systems in which a digital controller interrupts a physical plant in a
periodic manner, a class commonly known in control theory--and furthermore
assume that a controller is given in the form of an imperative program. We
develop a structural approach to input synthesis that features forward and
backward reasoning in program logic for the purpose of reducing a search space.
Although the examples we cover are limited both in size and in structure,
experiments with a prototype implementation suggest potential of our program
logic based approach.Comment: In Proceedings HAS 2014, arXiv:1501.0540
F100 multivariable control synthesis program: A review of full scale engine altitude tests
The benefits of linear quadratic regulator synthesis methods in designing a multivariable engine control capable of operating an engine throughout its flight envelope were demonstrated. The entire multivariable control synthesis program is reviewed with particular emphasis on engine tests conducted in the NASA Lewis propulsion systems laboratory altitude facility. The multivariable control has basically a proportional plus integral, model following structure with gains scheduled as functions of flight condition. The multivariable control logic design is described, along with control computer implementation aspects. Altitude tests demonstrated that the multivariable control logic could control an engine over a wide range of test conditions. Representative transient responses are presented to demonstrate engine behavior and the functioning of the control logic
Derivation of sorting programs
Program synthesis for critical applications has become a viable alternative to program verification. Nested resolution and its extension are used to synthesize a set of sorting programs from their first order logic specifications. A set of sorting programs, such as, naive sort, merge sort, and insertion sort, were successfully synthesized starting from the same set of specifications
- …