6 research outputs found

    Derived Preconditions and Their Use in Program Synthesis

    Get PDF
    In this paper we pose and begin to explore a deductive problem more general than that of finding a proof that a given goal formula logically follows from a given set of hypotheses. The problem is most simply stated in the propositional calculus: given a goal A and hypothesis H we wish to find a formula P, called a precondition, such that A logically follows from P A H. A precondition pro- vides any additional conditions under which A can be shown to follow from H. A slightly more complex definition of preconditions in a first-order theory is given and used throughout the paper. A formal system based on natural deduction is presented in which preconditions can be derived. A number of examples are then given which show how derived preconditions are used in a program synthesis method we are developing. These uses include theorem proving, formula simplification, simple code generation, the completion of partial specifications for a subalgorithm, and other tasks of a deductive nature.Foundation Research Program of the Naval Postgraduate SchoolChief of Naval ResearchApproved for public release; distribution is unlimited

    Reformulating Constraints for Compilability and Efficiency

    Get PDF
    KBSDE is a knowledge compiler that uses a classification-based approach to map solution constraints in a task specification onto particular search algorithm components that will be responsible for satisfying those constraints (e.g., local constraints are incorporated in generators; global constraints are incorporated in either testers or hillclimbing patchers). Associated with each type of search algorithm component is a subcompiler that specializes in mapping constraints into components of that type. Each of these subcompilers in turn uses a classification-based approach, matching a constraint passed to it against one of several schemas, and applying a compilation technique associated with that schema. While much progress has occurred in our research since we first laid out our classification-based approach [Ton91], we focus in this paper on our reformulation research. Two important reformulation issues that arise out of the choice of a schema-based approach are: (1) compilability-- Can a constraint that does not directly match any of a particular subcompiler's schemas be reformulated into one that does? and (2) Efficiency-- If the efficiency of the compiled search algorithm depends on the compiler's performance, and the compiler's performance depends on the form in which the constraint was expressed, can we find forms for constraints which compile better, or reformulate constraints whose forms can be recognized as ones that compile poorly? In this paper, we describe a set of techniques we are developing for partially addressing these issues

    Symmetry as Bias: Rediscovering Special Relativity

    Get PDF
    This paper describes a rational reconstruction of Einstein's discovery of special relativity, validated through an implementation: the Erlanger program. Einstein's discovery of special relativity revolutionized both the content of physics and the research strategy used by theoretical physicists. This research strategy entails a mutual bootstrapping process between a hypothesis space for biases, defined through different postulated symmetries of the universe, and a hypothesis space for physical theories. The invariance principle mutually constrains these two spaces. The invariance principle enables detecting when an evolving physical theory becomes inconsistent with its bias, and also when the biases for theories describing different phenomena are inconsistent. Structural properties of the invariance principle facilitate generating a new bias when an inconsistency is detected. After a new bias is generated. this principle facilitates reformulating the old, inconsistent theory by treating the latter as a limiting approximation. The structural properties of the invariance principle can be suitably generalized to other types of biases to enable primal-dual learning

    Correct-schema-guided synthesis of steadfast programs

    Get PDF
    It can be argued that for (semi-)automated software development, program schemas are indispensable, since they capture not only structured program design principles, but also domain knowledge, both of which are of crucial importance for hierarchical program synthesis. Most researchers represent schemas purely syntactically (as higher-order expressions). This means that the knowledge captured by a schema is not formalized. We take a semantic approach and show that a schema can be formalized as an open (first-order) logical theory that contains an open logic program. By using a special kind of correctness for open programs, called steadfastness, we can define and reason about the correctness of schemas. We also show how to use correct schemas to synthesize steadfast programs

    Proceedings of the Workshop on Change of Representation and Problem Reformulation

    Get PDF
    The proceedings of the third Workshop on Change of representation and Problem Reformulation is presented. In contrast to the first two workshops, this workshop was focused on analytic or knowledge-based approaches, as opposed to statistical or empirical approaches called 'constructive induction'. The organizing committee believes that there is a potential for combining analytic and inductive approaches at a future date. However, it became apparent at the previous two workshops that the communities pursuing these different approaches are currently interested in largely non-overlapping issues. The constructive induction community has been holding its own workshops, principally in conjunction with the machine learning conference. While this workshop is more focused on analytic approaches, the organizing committee has made an effort to include more application domains. We have greatly expanded from the origins in the machine learning community. Participants in this workshop come from the full spectrum of AI application domains including planning, qualitative physics, software engineering, knowledge representation, and machine learning

    Derivaci贸n deductiva de programas funcionales con patrones

    Full text link
    Una de las dificultades principales en el desarrollo de software es la ausencia de un marco conceptual adecuado para su estudio. Una propuesta la constituye el modelo transformativo, que entiende el desarrollo de software como un proceso iterativo de transformaci贸n de especificaciones: se parte de una especificaci贸n inicial que va transform谩ndose sucesivamente hasta obtener una especificaci贸n final que se toma como programa. Este modelo b谩sico puede llevarse a la pr谩ctica de varias maneras. En concreto, la aproximaci贸n deductiva toma una sentencia l贸gica como especificaci贸n inicial y su proceso transformador consiste en la demostraci贸n de la sentencia; como producto secundario de la demostraci贸n se deriva un programa que satisface la especificaci贸n inicial. La tesis desarrolla un m茅todo deductivo para la derivaci贸n de programas funcionales con patrones, escritos en un lenguaje similar a Hope. El m茅todo utiliza una l贸gica multig茅nero, cuya relaci贸n con el lenguaje de programaci贸n es estudiada. Tambi茅n se identifican los esquemas de demostraci贸n necesarios para la derivaci贸n de funciones con patrones, basados en la demostraci贸n independiente de varias subsentencias. Cada subsentencia proporciona una subespecificaci贸n de una ecuaci贸n del futuro programa a derivar. Nuestro m茅todo deductivo est谩 inspirado en uno previo de Zohar Manna y Richard Waldinger, conocido como el cuadro deductivo, que deriva programas en un lenguaje similar a Lisp. El nuevo m茅todo es una modificaci贸n del cuadro de estos autores, que incorpora g茅neros y permite demostrar una especificaci贸n mediante varios cuadros. Cada cuadro demuestra una subespecificaci贸n y por tanto deriva una ecuaci贸n del programa. Se prev茅n mecanismos para que los programas derivados puedan contener definiciones locales con patrones y variables an贸nimas y sin贸nimas y para que las funciones auxiliares derivadas no usen variables de las funciones principales. La tesis se completa con varios ejemplos de aplicaci贸n, un mecanismo que independentiza el m茅todo del lenguaje de programaci贸n y un prototipo de entorno interactivo de derivaci贸n deductiva. Categor铆as y descriptores de materia CR D.l.l [T茅cnicas de programaci贸n]: Programaci贸n funcional; D.2.10 [Ingenier铆a de software]: Dise帽o - m茅todos; F.3.1 [L贸gica y significado de los programas]: Especificaci贸n, verificaci贸n y razonamiento sobre programas - l贸gica de programas; F.3.3 [L贸gica y significado de los programas]: Estudios de construcciones de programas - construcciones funcionales; esquemas de programa y de recursion; 1.2.2 [Inteligencia artificial]: Programaci贸n autom谩tica - s铆ntesis de programas; 1.2.3 [Inteligencia artificial]: Deducci贸n y demostraci贸n de teoremas]: extracci贸n de respuesta/raz贸n; inducci贸n matem谩tica. T茅rminos generales Programaci贸n funcional, s铆ntesis de programas, demostraci贸n de teoremas. Otras palabras claves y expresiones Funciones con patrones, cuadro deductivo, especificaci贸n parcial, inducci贸n estructural, teorema de descomposici贸n.---ABSTRACT---One of the main difficulties in software development is the lack of an adequate conceptual framework of study. The transformational model is one such proposal that conceives software development as an iterative process of specifications transformation: an initial specification is developed and successively transformed until a final specification is obtained and taken as a program. This basic model can be implemented in several ways. The deductive approach takes a logical sentence as the initial specification and its proof constitutes the transformational process; as a byproduct of the proof, a program which satisfies the initial specification is derived. In the thesis, a deductive method for the derivation of Hope-like functional programs with patterns is developed. The method uses a many-sorted logic, whose relation to the programming language is studied. Also the proof schemes necessary for the derivation of functional programs with patterns, based on the independent proof of several subsentences, are identified. Each subsentence provides a subspecification of one equation of the future program to be derived. Our deductive method is inspired on a previous one by Zohar Manna and Richard Waldinger, known as the deductive tableau, which derives Lisp-like programs. The new method incorporates sorts in the tableau and allows to prove a sentence with several tableaux. Each tableau proves a subspecification and therefore derives an equation of the program. Mechanisms are included to allow the derived programs to contain local definitions with patterns and anonymous and synonymous variables; also, the derived auxiliary functions cannot reference parameters of their main functions. The thesis is completed with several application examples, i mechanism to make the method independent from the programming language and an interactive environment prototype for deductive derivation. CR categories and subject descriptors D.l.l [Programming techniques]: Functional programming; D.2.10 [Software engineering]: Design - methodologies; F.3.1 [Logics and meanings of programa]: Specifying and verifying and reasoning about programs - logics of programs; F.3.3 [Logics and meanings of programs]: Studies of program constructs - functional constructs; program and recursion schemes; 1.2.2 [Artificial intelligence]: Automatic programming - program synthesis; 1.2.3 [Artificial intelligence]: Deduction and theorem proving - answer/reason extraction; mathematical induction. General tenas Functional programming, program synthesis, theorem proving. Additional key words and phrases Functions with patterns, deductive tableau, structural induction, partial specification, descomposition theorem
    corecore