Searcharxiv⌕ Search

arXiv subjects

Dominique Duval

Publications and source records attributed to Dominique Duval.

35 records · Page 2Linked to original sources

Graph rewriting with polarized cloning

We tackle the problem of graph transformation with a particular focus on node cloning. We propose a new approach to graph rewriting where nodes can be cloned zero, one or more times. A node can be cloned together with all its incident edges, with only its outgoing edges, with only its incoming edges or with none of its incident edges. We thus subsume previous works such as the sesqui-pushout, the heterogeneous pushout and the adaptive star grammars approaches. A rewrite rule is defined as a span where the right-hand and left-hand sides are graphs while the interface is a polarized graph. A polarized graph is a graph endowed with some annotations on nodes. The way a node is cloned is indicated by its polarization annotation. We use these annotations for designing graph transformation with polarized cloning. We show how a clone of a node can be built according to the different possible polarizations and define a rewrite step as a final pullback complement followed by a pushout. This is called the polarized sesqui-pushout approach. We also provide an algorithmic presentation of the proposed graph transformation with polarized cloning.

cs.LO↗

Decorated proofs for computational effects: Exceptions

We define a proof system for exceptions which is close to the syntax for exceptions, in the sense that the exceptions do not appear explicitly in the type of any expression. This proof system is sound with respect to the intended denotational semantics of exceptions. With this inference system we prove several properties of exceptions.

cs.LO↗

A duality between exceptions and states

In this short note we study the semantics of two basic computational effects, exceptions and states, from a new point of view. In the handling of exceptions we dissociate the control from the elementary operation which recovers from the exception. In this way it becomes apparent that there is a duality, in the categorical sense, between exceptions and states.

cs.LO↗

Categorical Abstract Rewriting Systems and Functoriality of Graph Transformation

Rewriting systems are often defined as binary relations over a given set of objects. This simple definition is used to describe various properties of rewriting such as termination, confluence, normal forms etc. In this paper, we introduce a new notion of abstract rewriting in the framework of categories. Then, we define the functoriality property of rewriting systems. This property is sometimes called vertical composition. We show that most of graph transformation systems are functorial and provide a counter-example of graph transformation systems which is not functorial.

cs.LO↗

States and exceptions considered as dual effects

In this paper we consider the two major computational effects of states and exceptions, from the point of view of diagrammatic logics. We get a surprising result: there exists a symmetry between these two effects, based on the well-known categorical duality between products and coproducts. More precisely, the lookup and update operations for states are respectively dual to the throw and catch operations for exceptions. This symmetry is deeply hidden in the programming languages; in order to unveil it, we start from the monoidal equational logic and we add progressively the logical features which are necessary for dealing with either effect. This approach gives rise to a new point of view on states and exceptions, which bypasses the problems due to the non-algebraicity of handling exceptions.

cs.LO↗

Deduction as Reduction

Deduction systems and graph rewriting systems are compared within a common categorical framework. This leads to an improved deduction method in diagrammatic logics.

cs.LO↗

Diagrammatic Inference

Diagrammatic logics were introduced in 2002, with emphasis on the notions of specifications and models. In this paper we improve the description of the inference process, which is seen as a Yoneda functor on a bicategory of fractions. A diagrammatic logic is defined from a morphism of limit sketches (called a propagator) which gives rise to an adjunction, which in turn determines a bicategory of fractions. The propagator, the adjunction and the bicategory provide respectively the syntax, the models and the inference process for the logic. Then diagrammatic logics and their morphisms are applied to the semantics of side effects in computer languages.

cs.LO↗

How to combine diagrammatic logics

This paper is a submission to the contest: How to combine logics? at the World Congress and School on Universal Logic III, 2010. We claim that combining "things", whatever these things are, is made easier if these things can be seen as the objects of a category. We define the category of diagrammatic logics, so that categorical constructions can be used for combining diagrammatic logics. As an example, a combination of logics using an opfibration is presented, in order to study computational side-effects due to the evolution of the state during the execution of an imperative program.

cs.LO↗

A parameterization process, functorially

The parameterization process used in the symbolic computation systems Kenzo and EAT is studied here as a general construction in a categorical framework. This parameterization process starts from a given specification and builds a parameterized specification by adding a parameter as a new variable to some operations. Given a model of the parameterized specification, each interpretation of the parameter, called an argument, provides a model of the given specification. Moreover, under some relevant terminality assumption, this correspondence between the arguments and the models of the given specification is a bijection. It is proved in this paper that the parameterization process is provided by a functor and the subsequent parameter passing process by a natural transformation. Various categorical notions are used, mainly adjoint functors, pushouts and lax colimits.

cs.LO↗

Diagrammatic logic applied to a parameterization process

This paper provides an abstract definition of some kinds of logics, called diagrammatic logics, together with a definition of morphisms and of 2-morphisms between diagrammatic logics. The definition of the 2-category of diagrammatic logics rely on category theory, mainly on adjunction, categories of fractions and limit sketches. This framework is applied to the formalization of a parameterization process. This process, which consists in adding a formal parameter to some operations in a given specification, is presented as a morphism of logics. Then the parameter passing process, for recovering a model of the given specification from a model of the parameterized specification and an actual parameter, is seen as a 2-morphism of logics.

cs.LO↗

A parameterization process as a categorical construction

The parameterization process used in the symbolic computation systems Kenzo and EAT is studied here as a general construction in a categorical framework. This parameterization process starts from a given specification and builds a parameterized specification by transforming some operations into parameterized operations, which depend on one additional variable called the parameter. Given a model of the parameterized specification, each interpretation of the parameter, called an argument, provides a model of the given specification. Moreover, under some relevant terminality assumption, this correspondence between the arguments and the models of the given specification is a bijection. It is proved in this paper that the parameterization process is provided by a free functor and the subsequent parameter passing process by a natural transformation. Various categorical notions are used, mainly adjoint functors, pushouts and lax colimits.

cs.LO↗

Cartesian effect categories are Freyd-categories

Most often, in a categorical semantics for a programming language, the substitution of terms is expressed by composition and finite products. However this does not deal with the order of evaluation of arguments, which may have major consequences when there are side-effects. In this paper Cartesian effect categories are introduced for solving this issue, and they are compared with strong monads, Freyd-categories and Haskell's Arrows. It is proved that a Cartesian effect category is a Freyd-category where the premonoidal structure is provided by a kind of binary product, called the sequential product. The universal property of the sequential product provides Cartesian effect categories with a powerful tool for constructions and proofs. To our knowledge, both effect categories and sequential products are new notions.

cs.LO↗

About raising and handling exceptions

This paper presents a unified framework for dealing with a deduction system and a denotational semantics of exceptions. It is based on the fact that handling exceptions can be seen as a kind of generalized case distinction. This point of view on exceptions has been introduced in 2004, it is based on the notion of diagrammatic logic, which assumes some familiarity with category theory. Extensive sums of types can be used for dealing with case distinctions. The aim of this new paper is to focus on the role of generalized extensivity property for dealing with exceptions. Moreover, the presentation of this paper makes only a restricted use of category theory.

cs.PL↗

A Cloning Pushout Approach to Term-Graph Transformation

We address the problem of cyclic termgraph rewriting. We propose a new framework where rewrite rules are tuples of the form $(L,R,τ,σ)$ such that $L$ and $R$ are termgraphs representing the left-hand and the right-hand sides of the rule, $τ$ is a mapping from the nodes of $L$ to those of $R$ and $σ$ is a partial function from nodes of $R$ to nodes of $L$. $τ$ describes how incident edges of the nodes in $L$ are connected in $R$. $τ$ is not required to be a graph morphism as in classical algebraic approaches of graph transformation. The role of $σ$ is to indicate the parts of $L$ to be cloned (copied). Furthermore, we introduce a new notion of \emph{cloning pushout} and define rewrite steps as cloning pushouts in a given category. Among the features of the proposed rewrite systems, we quote the ability to perform local and global redirection of pointers, addition and deletion of nodes as well as cloning and collapsing substructures.

cs.LO↗

Sequential products in effect categories

A new categorical framework is provided for dealing with multiple arguments in a programming language with effects, for example in a language with imperative features. Like related frameworks (Monads, Arrows, Freyd categories), we distinguish two kinds of functions. In addition, we also distinguish two kinds of equations. Then, we are able to define a kind of product, that generalizes the usual categorical product. This yields a powerful tool for deriving many results about languages with effects.

math.CT↗

Towards a diagrammatic modeling of the LinBox C++ linear algebra library

We propose a new diagrammatic modeling language, DML. The paradigm used is that of the category theory and in particular of the pushout tool. We show that most of the object-oriented structures can be described with this tool and have many examples in C++, ranging from virtual inheritance and polymorphism to template genericity. With this powerful tool, we propose a quite simple description of the C++ LinBox library. This library has been designed for efficiency and genericity and therefore makes heavy usage of complex template and polymorphic mecanism. Be reverse engineering, we are able to describe in a simple manner the complex structure of archetypes in LinBox.

cs.SC↗

Data-Structure Rewriting

We tackle the problem of data-structure rewriting including pointer redirections. We propose two basic rewrite steps: (i) Local Redirection and Replacement steps the aim of which is redirecting specific pointers determined by means of a pattern, as well as adding new information to an existing data ; and (ii) Global Redirection steps which are aimed to redirect all pointers targeting a node towards another one. We define these two rewriting steps following the double pushout approach. We define first the category of graphs we consider and then define rewrite rules as pairs of graph homomorphisms of the form "L <- K ->R". Unfortunately, inverse pushouts (complement pushouts) are not unique in our setting and pushouts do not always exist. Therefore, we define rewriting steps so that a rewrite rule can always be performed once a matching is found.

cs.PL↗