5 research outputs found
Inheritance hierarchies: Semantics and unification
Inheritance hierarchies are introduced as a means of representing taxonomicallyorganized data. The hierarchies are built up from so-called feature types that are ordered by subtyping and whose elements are records. Every feature type comes with a set of features prescribing fields of its record elements. So-called feature terms are available to denote subsets of feature types. Feature unification is introduced as an operation that decides whether two feature terms have a nonempty intersection and computes a feature term denoting the intersection.We model our inheritance hierarchies as algebraic specifications in ordersortedequational logic using initial algebra semantics. Our framework integrates feature types whose elements are obtained as records with constructor types whose elements are obtained by constructor application. Unification in these hierarchies combines record unification with order-sorted term unification and is presented as constraint solving. We specify a unitary unification algorithm by a set of simplification rules and prove its soundness and completeness with respect to the model-theoretic semantics
Order-Sorted Equational Computation
The expressive power of many-sorted equational logic can be greatly enhanced by allowing for subsorts and multiple function declarations. In this paper we study some computational aspects of such a logic. We start with a self-contained introduction to order-sorted equational logic including initial algebra semantics and deduction rules. We then present a theory of order-sorted term rewriting and show that the key results for unsorted rewriting extend to sort decreasing rewriting. We continue with a review of order-sorted uni铿乧ation and prove the basic results.
In the second part of the paper we study hierarchical order-sorted speci铿乧ations with strict partial functions. We de铿乶e the appropriate homomorphisms for strict algebras and show that every strict algebra is base isomorphic to a strict algebra with at most one error element. For strict speci铿乧ations, we show that their categories of strict algebras have initial objects. We validate our approach to partial functions by proving that completely de铿乶ed total functions can be de铿乶ed as partial without changing the initial algebra semantics. Finally, we provide decidable suf铿乧ient criteria for the consistency and strictness of ground con铿倁ent rewriting systems
Derivaci贸n deductiva de programas funcionales con patrones
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
A mechanization of sorted higher-order logic based on the resolution principle
The usage of sorts in first-order automated deduction has brought greater conciseness of representation and a considerable gain in efficiency by reducing the search spaces involved. This suggests that sort information can be employed in higher-order theorem proving with similar results. This thesis develops a sorted higher-order logic SUM HOL suitable for automatic theorem proving applications. SUM HOL is based on a sorted Lambda-calculus SUM A->, which is obtained by extending Church';s simply typed Lambda-calculus by a higher-order sort concept including term declarations and functional base sorts. The term declaration mechanism studied here is powerful enough to allow convenient formalization of a large body of mathematics, since it offers natural primitives for domains and codomains of functions, and allows to treat function restriction. Furthermore, it subsumes most other mechanisms for the declaration of sort information known from the literature, and can thus serve as a general framework for the study of sorted higher-order logics. For instance, the term declaration mechanism of SUM HOL subsumes the subsorting mechanism as a derived notion, and hence justifies our special form of subsort inference. We present sets of transformations for sorted higher-order unification and pre-unification, and prove the nondeterministic completeness of the algorithm induced by these transformations. The main technical difficulty of unification in ! is that the analysis of general bindings is much more involved than in the unsorted case, since in the presence of term declarations well-sortedness is not a structural property. This difficulty is overcome by a structure theorem that links the structure of a formula to the structure of its sorting derivation. We develop two notions of set-theoretic semantics for SUM HOL. General SUM-models are a direct generalization of Henkin';s general models to the sorted setting. Since no known machine-oriented calculus can adequately mechanize full extensionality, we generalize general SUM-models further to SUM-model structures, which allow full extensionality to fail. The notions of SUM-model structures and general SUM-models allow us to prove model existence theorems for them. These model-theoretic variants of Andrews unifying principle for type theory'; can be used as a powerful tool in completeness proofs of higher-order calculi. Finally, we use our pre-unification algorithms as a central inference procedure for a sorted higherorder resolution calculus in the spirit of Huet';s Constrained Resolution. This calculus is proven sound and complete with respect to our semantics. It differs from Huet';s calculus by allowing early unification strategies and using variable dependencies. For the completeness proof we make use of our model existence theorem, and prove a strong lifting lemma
A mechanization of sorted higher-order logic based on the resolution principle
The usage of sorts in first-order automated deduction has brought greater conciseness of representation and a considerable gain in efficiency by reducing the search spaces involved. This suggests that sort information can be employed in higher-order theorem proving with similar results. This thesis develops a sorted higher-order logic SUM HOL suitable for automatic theorem proving applications. SUM HOL is based on a sorted Lambda-calculus SUM A->, which is obtained by extending Church\u27;s simply typed Lambda-calculus by a higher-order sort concept including term declarations and functional base sorts. The term declaration mechanism studied here is powerful enough to allow convenient formalization of a large body of mathematics, since it offers natural primitives for domains and codomains of functions, and allows to treat function restriction. Furthermore, it subsumes most other mechanisms for the declaration of sort information known from the literature, and can thus serve as a general framework for the study of sorted higher-order logics. For instance, the term declaration mechanism of SUM HOL subsumes the subsorting mechanism as a derived notion, and hence justifies our special form of subsort inference. We present sets of transformations for sorted higher-order unification and pre-unification, and prove the nondeterministic completeness of the algorithm induced by these transformations. The main technical difficulty of unification in ! is that the analysis of general bindings is much more involved than in the unsorted case, since in the presence of term declarations well-sortedness is not a structural property. This difficulty is overcome by a structure theorem that links the structure of a formula to the structure of its sorting derivation. We develop two notions of set-theoretic semantics for SUM HOL. General SUM-models are a direct generalization of Henkin\u27;s general models to the sorted setting. Since no known machine-oriented calculus can adequately mechanize full extensionality, we generalize general SUM-models further to SUM-model structures, which allow full extensionality to fail. The notions of SUM-model structures and general SUM-models allow us to prove model existence theorems for them. These model-theoretic variants of Andrews unifying principle for type theory\u27; can be used as a powerful tool in completeness proofs of higher-order calculi. Finally, we use our pre-unification algorithms as a central inference procedure for a sorted higherorder resolution calculus in the spirit of Huet\u27;s Constrained Resolution. This calculus is proven sound and complete with respect to our semantics. It differs from Huet\u27;s calculus by allowing early unification strategies and using variable dependencies. For the completeness proof we make use of our model existence theorem, and prove a strong lifting lemma