26 research outputs found
Axioms and Decidability for Type Isomorphism in the Presence of Sums
We consider the problem of characterizing isomorphisms of types, or,
equivalently, constructive cardinality of sets, in the simultaneous presence of
disjoint unions, Cartesian products, and exponentials. Mostly relying on
results about polynomials with exponentiation that have not been used in our
context, we derive: that the usual finite axiomatization known as High-School
Identities (HSI) is complete for a significant subclass of types; that it is
decidable for that subclass when two types are isomorphic; that, for the whole
of the set of types, a recursive extension of the axioms of HSI exists that is
complete; and that, for the whole of the set of types, the question as to
whether two types are isomorphic is decidable when base types are to be
interpreted as finite sets. We also point out certain related open problems
Perspectives for proof unwinding by programming languages techniques
In this chapter, we propose some future directions of work, potentially
beneficial to Mathematics and its foundations, based on the recent import of
methodology from the theory of programming languages into proof theory. This
scientific essay, written for the audience of proof theorists as well as the
working mathematician, is not a survey of the field, but rather a personal view
of the author who hopes that it may inspire future and fellow researchers
The exp-log normal form of types
Lambda calculi with algebraic data types lie at the core of functional
programming languages and proof assistants, but conceal at least two
fundamental theoretical problems already in the presence of the simplest
non-trivial data type, the sum type. First, we do not know of an explicit and
implemented algorithm for deciding the beta-eta-equality of terms---and this in
spite of the first decidability results proven two decades ago. Second, it is
not clear how to decide when two types are essentially the same, i.e.
isomorphic, in spite of the meta-theoretic results on decidability of the
isomorphism.
In this paper, we present the exp-log normal form of types---derived from the
representation of exponential polynomials via the unary exponential and
logarithmic functions---that any type built from arrows, products, and sums,
can be isomorphically mapped to. The type normal form can be used as a simple
heuristic for deciding type isomorphism, thanks to the fact that it is a
systematic application of the high-school identities.
We then show that the type normal form allows to reduce the standard beta-eta
equational theory of the lambda calculus to a specialized version of itself,
while preserving the completeness of equality on terms. We end by describing an
alternative representation of normal terms of the lambda calculus with sums,
together with a Coq-implemented converter into/from our new term calculus. The
difference with the only other previously implemented heuristic for deciding
interesting instances of eta-equality by Balat, Di Cosmo, and Fiore, is that we
exploit the type information of terms substantially and this often allows us to
obtain a canonical representation of terms without performing sophisticated
term analyses
Curry-style type Isomorphisms and Game Semantics
Curry-style system F, ie. system F with no explicit types in terms, can be
seen as a core presentation of polymorphism from the point of view of
programming languages. This paper gives a characterisation of type isomorphisms
for this language, by using a game model whose intuitions come both from the
syntax and from the game semantics universe. The model is composed of: an
untyped part to interpret terms, a notion of game to interpret types, and a
typed part to express the fact that an untyped strategy plays on a game. By
analysing isomorphisms in the model, we prove that the equational system
corresponding to type isomorphisms for Curry-style system F is the extension of
the equational system for Church-style isomorphisms with a new, non-trivial
equation: forall X.A = A[forall Y.Y/X] if X appears only positively in A.Comment: Accept\'e \`a Mathematical Structures for Computer Science, Special
Issue on Type Isomorphism
Genetic Programming + Proof Search = Automatic Improvement
Search Based Software Engineering techniques are emerging as important tools for software maintenance. Foremost among these is Genetic Improvement, which has historically applied the stochastic techniques of Genetic Programming to optimize pre-existing program code. Previous work in this area has not generally preserved program semantics and this article describes an alternative to the traditional mutation operators used, employing deterministic proof search in the sequent calculus to yield semantics-preserving transformations on algebraic data types. Two case studies are described, both of which are applicable to the recently-introduced `grow and graft' technique of Genetic Improvement: the first extends the expressiveness of the `grafting' phase and the second transforms the representation of a list data type to yield an asymptotic efficiency improvement
Algorithms for Extended Alpha-Equivalence and Complexity
Equality of expressions in lambda-calculi, higher-order programming languages, higher-order programming calculi and process calculi is defined as alpha-equivalence. Permutability of bindings in let-constructs and structural congruence axioms extend alpha-equivalence. We analyse these extended alpha-equivalences and show that there are calculi with polynomial time algorithms, that a multiple-binding “let ” may make alpha-equivalence as hard as finding graph-isomorphisms, and that the replication operator in the pi-calculus may lead to an EXPSPACE-hard alpha-equivalence problem
Second-Order Type Isomorphisms Through Game Semantics
The characterization of second-order type isomorphisms is a purely
syntactical problem that we propose to study under the enlightenment of game
semantics. We study this question in the case of second-order
λ-calculus, which can be seen as an extension of system F to
classical logic, and for which we define a categorical framework: control
hyperdoctrines. Our game model of λ-calculus is based on polymorphic
arenas (closely related to Hughes' hyperforests) which evolve during the play
(following the ideas of Murawski-Ong). We show that type isomorphisms coincide
with the "equality" on arenas associated with types. Finally we deduce the
equational characterization of type isomorphisms from this equality. We also
recover from the same model Roberto Di Cosmo's characterization of type
isomorphisms for system F. This approach leads to a geometrical comprehension
on the question of second order type isomorphisms, which can be easily extended
to some other polymorphic calculi including additional programming features.Comment: accepted by Annals of Pure and Applied Logic, Special Issue on Game
Semantic
Component documentation: An approach based on sequence diagrams
Los rápidos cambios que experimentan las reglas de negocio asociadas a las empresas,
hacen que por una parte se incremente el número de nuevas soluciones software a construir, mientras que por otro lado aumente el tiempo y dinero destinado a la evolución
de los sistemas existentes. La falta de información sobre el comportamiento preciso
de los componentes utilizados dificulta la evolución de los sistemas desarrollados. De
esta manera, añadir un nuevo componente o sustituir uno existente plantea problemas
derivados por las nuevas interacciones que se dan para integrarlo en un sistema en funcionamiento. Este artículo presenta una herramienta que partiendo de los diagramas de
secuencia y demás información obtenida en la fase de Análisis y Diseño, permite mejorar el conocimiento de los servicios de los componentes utilizados y de sus interacciones
con el entorno en donde se utiliza. Así mismo, se estudia la posibilidad de agregación
o sustitución, individual o mediante la utilización de conjuntos de componentes que
cooperen para adaptarse a los nuevos requisitos del sistema. Con todo ello, se pretende
minimizar los posibles problemas de integración de nuevos componentes en un sistema
software.The rapid changes experienced by the business rules associated with companies,
They mean that, on the one hand, the number of new software solutions to be built increases, while on the other hand, the time and money allocated to evolution increases.
of existing systems. Lack of accurate behavioral information
of the components used hinders the evolution of the developed systems. From
In this way, adding a new component or replacing an existing one poses problems
derived from the new interactions that occur to integrate it into a functioning system. This article presents a tool that, starting from the diagrams of
sequence and other information obtained in the Analysis and Design phase, allows to improve the knowledge of the services of the components used and their interactions
with the environment in which it is used. Likewise, the possibility of aggregation
or substitution, individually or through the use of sets of components that
cooperate to adapt to new system requirements. With all this, it is intended
minimize the potential problems of integrating new components into a system
software
Documentación de componentes: una aproximación basada en diagramas de secuencia
Los rápidos cambios que experimentan las reglas de negocio asociadas a las empresas, hacen que por una parte se incremente el número de nuevas soluciones software a construir, mientras que por otro lado aumente el tiempo y dinero destinado a la evolución de los sistemas existentes. La falta de información sobre el comportamiento preciso de los componentes utilizados dificulta la evolución de los sistemas desarrollados. De esta manera, añadir un nuevo componente o sustituir uno existente plantea problemas derivados por las nuevas interacciones que se dan para integrarlo en un sistema en funcionamiento.Palabras clave: componentes software, escenarios, reutilización, mantenimiento de sistemas, diagramas de paso de mensajes, autómatas