131 research outputs found
Classical realizability in the CPS target language
AbstractMotivated by considerations about Krivine's classical realizability, we introduce a term calculus for an intuitionistic logic with record types, which we call the CPS target language. We give a reformulation of the constructions of classical realizability in this language, using the categorical techniques of realizability triposes and toposes.We argue that the presentation of classical realizability in the CPS target language simplifies calculations in realizability toposes, in particular it admits a nice presentation of conjunction as intersection type which is inspired by Girard's ludics
Game semantics for first-order logic
We refine HO/N game semantics with an additional notion of pointer
(mu-pointers) and extend it to first-order classical logic with completeness
results. We use a Church style extension of Parigot's lambda-mu-calculus to
represent proofs of first-order classical logic. We present some relations with
Krivine's classical realizability and applications to type isomorphisms
A Classical Sequent Calculus with Dependent Types
International audienceDependent types are a key feature of type systems, typically used in the context of both richly-typed programming languages and proof assistants. Control operators, which are connected with classical logic along the proof-as-program correspondence, are known to misbehave in the presence of dependent types, unless dependencies are restricted to values. We place ourselves in the context of the sequent calculus which has the ability to smoothly provide control under the form of the µ operator dual to the common "let" operator, as well as to smoothly support abstract machine and continuation-passing style interpretations. We start from the call-by-value version of the λμμ̃ language and design a minimal language with a value restriction and a type system that includes a list of explicit dependencies and maintains type safety. We then show how to relax the value restriction and introduce delimited continuations to directly prove the consistency by means of a continuation-passing-style translation. Finally, we relate our calculus to a similar system by Lepigre , and present a methodology to transfer properties from this system to our own
The Definitional Side of the Forcing
International audienceThis paper studies forcing translations of proofs in dependent type theory, through the Curry-Howard correspondence. Based on a call-by-push-value decomposition, we synthesize two simply-typed translations: i) one call-by-value, corresponding to the translation derived from the presheaf construction as studied in a previous paper ; ii) one call-by-name, whose intuitions already appear in Kriv-ine and Miquel's work. Focusing on the call-by-name translation, we adapt it to the dependent case and prove that it is compatible with the definitional equality of our system, thus avoiding coherence problems. This allows us to use any category as forcing conditions , which is out of reach with the call-by-value translation. Our construction also exploits the notion of storage operators in order to interpret dependent elimination for inductive types. This is a novel example of a dependent theory with side-effects, clarifying how dependent elimination for inductive types must be restricted in a non-pure setting. Being implemented as a Coq plugin, this work gives the possibility to formalize easily consistency results, for instance the consistency of the negation of Voevodsky's univalence axiom
Proving termination of evaluation for System F with control operators
We present new proofs of termination of evaluation in reduction semantics
(i.e., a small-step operational semantics with explicit representation of
evaluation contexts) for System F with control operators. We introduce a
modified version of Girard's proof method based on reducibility candidates,
where the reducibility predicates are defined on values and on evaluation
contexts as prescribed by the reduction semantics format. We address both
abortive control operators (callcc) and delimited-control operators (shift and
reset) for which we introduce novel polymorphic type systems, and we consider
both the call-by-value and call-by-name evaluation strategies.Comment: In Proceedings COS 2013, arXiv:1309.092
Une Dialectica matérialiste
In this thesis, we give a computational interpretation to Gödel's Dialectica translation, in a fashion inspired by classical realizability. In particular, it can be shown that the Dialectica translation manipulates stacks of the Krivine machine as first-class objects and that the main effect at work lies in the accumulation of those stacks at each variable use. The original translation suffers from a handful of defects due to hacks used by Gödel to work around historical limitations. Once these defects are solved, the translation naturally extends to much more expressive settings such as dependent type theory. A few variants are studied thanks to the linear decomposition, and relationships with other translations such as forcing and CPS are scrutinized.Cette thèse fournit une interprétation calculatoire de la traduction dite Dialectica de Gödel, dans une démarche inspirée par la réalisabilité classique. On peut en particulier montrer que Dialectica manipule des piles de la machine de Krivine comme objets de première classe et que le principal effet de cette traduction consiste à accumuler ces piles à chaque utilisation de variables. La traduction d'origine souffre d'une certaine quantité de défauts dus aux hacks utilisés par Gödel pour contourner des limitations historiques. Une fois ces problèmes résolus, la traduction s'étend naturellement à des paradigmes beaucoup plus expressifs tels que la théorie des types dépendants. On étudie d'autres variantes par la suite grâce à la décomposition linéaire, ainsi que lien de parenté avec d'autres traductions tels que le forcing et les CPS
Temporal Stream Logic: Synthesis beyond the Bools
Reactive systems that operate in environments with complex data, such as
mobile apps or embedded controllers with many sensors, are difficult to
synthesize. Synthesis tools usually fail for such systems because the state
space resulting from the discretization of the data is too large. We introduce
TSL, a new temporal logic that separates control and data. We provide a
CEGAR-based synthesis approach for the construction of implementations that are
guaranteed to satisfy a TSL specification for all possible instantiations of
the data processing functions. TSL provides an attractive trade-off for
synthesis. On the one hand, synthesis from TSL, unlike synthesis from standard
temporal logics, is undecidable in general. On the other hand, however,
synthesis from TSL is scalable, because it is independent of the complexity of
the handled data. Among other benchmarks, we have successfully synthesized a
music player Android app and a controller for an autonomous vehicle in the Open
Race Car Simulator (TORCS.
The stack calculus
We introduce a functional calculus with simple syntax and operational
semantics in which the calculi introduced so far in the Curry-Howard
correspondence for Classical Logic can be faithfully encoded. Our calculus
enjoys confluence without any restriction. Its type system enforces strong
normalization of expressions and it is a sound and complete system for full
implicational Classical Logic. We give a very simple denotational semantics
which allows easy calculations of the interpretation of expressions.Comment: In Proceedings LSFA 2012, arXiv:1303.713
- …