213 research outputs found
Program development in constructive type theory
AbstractWe present the program development concept in a logical framework including constructive type theory and then show how to use such theories to derive programs from proofs of formal specifications. We are interested in two important facts that are the mechanization of the proof construction and the possibility to express in the theory significant concepts for programming (like inductively defined types and general recursion). We give here a survey on some results and problems appearing in logical frameworks devoted to the programming with proofs approach
The Refined Calculus of Inductive Construction: Parametricity and Abstraction
We present a refinement of the Calculus of Inductive Constructions in which
one can easily define a notion of relational parametricity. It provides a new
way to automate proofs in an interactive theorem prover like Coq
Impredicative Encodings of (Higher) Inductive Types
Postulating an impredicative universe in dependent type theory allows System
F style encodings of finitary inductive types, but these fail to satisfy the
relevant {\eta}-equalities and consequently do not admit dependent eliminators.
To recover {\eta} and dependent elimination, we present a method to construct
refinements of these impredicative encodings, using ideas from homotopy type
theory. We then extend our method to construct impredicative encodings of some
higher inductive types, such as 1-truncation and the unit circle S1
Impossibility of Gathering, a Certification
Recent advances in Distributed Computing highlight models and algorithms for
autonomous swarms of mobile robots that self-organise and cooperate to solve
global objectives. The overwhelming majority of works so far considers handmade
algorithms and proofs of correctness. This paper builds upon a previously
proposed formal framework to certify the correctness of impossibility results
regarding distributed algorithms that are dedicated to autonomous mobile robots
evolving in a continuous space. As a case study, we consider the problem of
gathering all robots at a particular location, not known beforehand. A
fundamental (but not yet formally certified) result, due to Suzuki and
Yamashita, states that this simple task is impossible for two robots executing
deterministic code and initially located at distinct positions. Not only do we
obtain a certified proof of the original impossibility result, we also get the
more general impossibility of gathering with an even number of robots, when any
two robots are possibly initially at the same exact location.Comment: 10
On choice rules in dependent type theory
In a dependent type theory satisfying the propositions as
types correspondence together with the proofs-as-programs paradigm,
the validity of the unique choice rule or even more of the choice rule says
that the extraction of a computable witness from an existential statement
under hypothesis can be performed within the same theory.
Here we show that the unique choice rule, and hence the choice rule,
are not valid both in Coquand\u2019s Calculus of Constructions with indexed
sum types, list types and binary disjoint sums and in its predicative
version implemented in the intensional level of the Minimalist Founda-
tion. This means that in these theories the extraction of computational
witnesses from existential statements must be performed in a more ex-
pressive proofs-as-programs theory
On Modal Logics of Partial Recursive Functions
The classical propositional logic is known to be sound and complete with
respect to the set semantics that interprets connectives as set operations. The
paper extends propositional language by a new binary modality that corresponds
to partial recursive function type constructor under the above interpretation.
The cases of deterministic and non-deterministic functions are considered and
for both of them semantically complete modal logics are described and
decidability of these logics is established
Sequent Calculus and Equational Programming
Proof assistants and programming languages based on type theories usually
come in two flavours: one is based on the standard natural deduction
presentation of type theory and involves eliminators, while the other provides
a syntax in equational style. We show here that the equational approach
corresponds to the use of a focused presentation of a type theory expressed as
a sequent calculus. A typed functional language is presented, based on a
sequent calculus, that we relate to the syntax and internal language of Agda.
In particular, we discuss the use of patterns and case splittings, as well as
rules implementing inductive reasoning and dependent products and sums.Comment: In Proceedings LFMTP 2015, arXiv:1507.0759
General Recursion via Coinductive Types
A fertile field of research in theoretical computer science investigates the
representation of general recursive functions in intensional type theories.
Among the most successful approaches are: the use of wellfounded relations,
implementation of operational semantics, formalization of domain theory, and
inductive definition of domain predicates. Here, a different solution is
proposed: exploiting coinductive types to model infinite computations. To every
type A we associate a type of partial elements Partial(A), coinductively
generated by two constructors: the first, return(a) just returns an element
a:A; the second, step(x), adds a computation step to a recursive element
x:Partial(A). We show how this simple device is sufficient to formalize all
recursive functions between two given types. It allows the definition of fixed
points of finitary, that is, continuous, operators. We will compare this
approach to different ones from the literature. Finally, we mention that the
formalization, with appropriate structural maps, defines a strong monad.Comment: 28 page
A Certified Universal Gathering Algorithm for Oblivious Mobile Robots
We present a new algorithm for the problem of universal gathering mobile
oblivious robots (that is, starting from any initial configuration that is not
bivalent, using any number of robots, the robots reach in a finite number of
steps the same position, not known beforehand) without relying on a common
chirality. We give very strong guaranties on the correctness of our algorithm
by proving formally that it is correct, using the COQ proof assistant. To our
knowledge, this is the first certified positive (and constructive) result in
the context of oblivious mobile robots. It demonstrates both the effectiveness
of the approach to obtain new algorithms that are truly generic, and its
managability since the amount of developped code remains human readable
- …