Section: Scientific Foundations
Keywords : type theory, induction, co-induction, higher-order abstract syntax.
A type theory for proof search
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 -calculus  .
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.
Type theory is generally explained using natural deduction , whereas proof search usually relies on sequent calculus . Normalization of proofs in type theory correspond to computation. In contrast, proof search explores only normal proofs (cut-free proofs) and uses normalization (cut-elimination) for reasoning about computation.
Type theory provides a fixed, rich notion of proof, usually with dependent types, while there is no a-priori notion of proofs as objects in proof search, although most proof search systems provide primitives for building proof objects.
The development of proofs using relational specifications require the instantiation of quantified variables. Proof search systems provide unification and backtracking search to fully automate such instantiations. In type theory, such instantiations are usually done interactively.
In type theory, object level bindings are either coded as functions (a priori, a wrong choice) or names or deBruijn numbers (usually messy), while binding in syntax can be naturally supported by the meta logic in proof search (as in Prolog and Twelf).
The new quantifier in LINC describes the intensional behavior of abstraction, which has no (current) correspondence in type theory.
In their first experiments  ,  , 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  ,  ,  based on modal logic in which expressions live in the functional space AB while general functions (for case and iteration reasoning in the proposed systems) live in the full functional space . An initial attempt to extend the systems in  ,  to dependent types was given in  : 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 -trees) with recursion and induction principles.
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  ,  ,  and by Hofmann at the model level  . There is also the work by Miller and McDowell  and more recently the work by Momigliano and Tiu on LINC  .