Team Parsifal

Members
Overall Objectives
Scientific Foundations
Application Domains
Software
New Results
Other Grants and Activities
Dissemination
Bibliography

Section: Scientific Foundations

Keywords : type theory, induction, co-induction, higher-order abstract syntax.

A type theory for proof search

Participants : Joëlle Despeyroux, Dale Miller.

Type theory can be used to specify and reason about computation using much as LINC is used as a to reason about computation. The meta-level would be, for example, CIC. The applications would in principle be the same, except that conventional type theories are often better suited for proofs in mathematics and less suited for encoding of languages with binders, although Coq can certainly code reachability of, say, the $ \pi$ -calculus [1] .

The type theory approach does not need to make a distinction between meta-logic and object-logic, which may make specifications more compactness and elegance. This approach also avoids the duplication of code. However, we like the flexibility given by the existence of two different meta-logics in LINC. Note that the Isabelle system also uses two meta-logics, giving rise to several systems that people can choose: Isabelle/ZF, Isabelle/HOL, etc. Having a single meta-logic is more natural in the context of a rich type theory. Outside this context, we think that both choices make sense.

More points of comparison between the two approaches are listed below.

In their first experiments [19] , [18] , Despeyroux, Hirschowitz, and Felty worked in the Coq system. They defined certain expressions in higher-order abstract syntax as ``valid'' expressions (using an inductively defined predicate ``valid'') to describe a well defined sub-part of all the functional terms corresponding roughly to syntactic expressions.

In a second step, Despeyroux, Pfenning, Leleu, and Schürmann proposed two different, yet similar type theories [20] , [23] , [21] based on modal logic in which expressions live in the functional space A$ \rightarrow$B while general functions (for case and iteration reasoning in the proposed systems) live in the full functional space Im1 ${\#9633 A\#8594 B}$ . An initial attempt to extend the systems in [20] , [21] to dependent types was given in [22] : clearly more work on that kind of extension is needed. These papers give a possible answer to the problem of extending the Edinburgh Logical Framework (LF is a sub-system of CC where the function space is restricted to $ \lambda$ -trees) with recursion and induction principles.

Pfenning and Schürmann then proposed a different (two levels) system to which it was easier to add dependent types [44] , [43] .

The previous works mentioned proposed principles for recursion. In the traditional functional approach, in a rich type theory like CIC, those principles naturally come with their counterparts at the level of types: the principles for induction. In proof search, the situation is less clear. Among the works proposing principles for induction in our context, let us cite the similar induction principles independently discovered by Despeyroux & co-workers at the proof level [19] , [20] , [21] and by Hofmann at the model level [32] . There is also the work by Miller and McDowell [35] and more recently the work by Momigliano and Tiu on LINC [41] .


previous
next

Logo Inria