2,638 research outputs found
On Irrelevance and Algorithmic Equality in Predicative Type Theory
Dependently typed programs contain an excessive amount of static terms which
are necessary to please the type checker but irrelevant for computation. To
separate static and dynamic code, several static analyses and type systems have
been put forward. We consider Pfenning's type theory with irrelevant
quantification which is compatible with a type-based notion of equality that
respects eta-laws. We extend Pfenning's theory to universes and large
eliminations and develop its meta-theory. Subject reduction, normalization and
consistency are obtained by a Kripke model over the typed equality judgement.
Finally, a type-directed equality algorithm is described whose completeness is
proven by a second Kripke model.Comment: 36 pages, superseds the FoSSaCS 2011 paper of the first author,
titled "Irrelevance in Type Theory with a Heterogeneous Equality Judgement
On Equivalence and Canonical Forms in the LF Type Theory
Decidability of definitional equality and conversion of terms into canonical
form play a central role in the meta-theory of a type-theoretic logical
framework. Most studies of definitional equality are based on a confluent,
strongly-normalizing notion of reduction. Coquand has considered a different
approach, directly proving the correctness of a practical equivalance algorithm
based on the shape of terms. Neither approach appears to scale well to richer
languages with unit types or subtyping, and neither directly addresses the
problem of conversion to canonical.
In this paper we present a new, type-directed equivalence algorithm for the
LF type theory that overcomes the weaknesses of previous approaches. The
algorithm is practical, scales to richer languages, and yields a new notion of
canonical form sufficient for adequate encodings of logical systems. The
algorithm is proved complete by a Kripke-style logical relations argument
similar to that suggested by Coquand. Crucially, both the algorithm itself and
the logical relations rely only on the shapes of types, ignoring dependencies
on terms.Comment: 41 page
Refinement Types for Logical Frameworks and Their Interpretation as Proof Irrelevance
Refinement types sharpen systems of simple and dependent types by offering
expressive means to more precisely classify well-typed terms. We present a
system of refinement types for LF in the style of recent formulations where
only canonical forms are well-typed. Both the usual LF rules and the rules for
type refinements are bidirectional, leading to a straightforward proof of
decidability of typechecking even in the presence of intersection types.
Because we insist on canonical forms, structural rules for subtyping can now be
derived rather than being assumed as primitive. We illustrate the expressive
power of our system with examples and validate its design by demonstrating a
precise correspondence with traditional presentations of subtyping. Proof
irrelevance provides a mechanism for selectively hiding the identities of terms
in type theories. We show that LF refinement types can be interpreted as
predicates using proof irrelevance, establishing a uniform relationship between
two previously studied concepts in type theory. The interpretation and its
correctness proof are surprisingly complex, lending support to the claim that
refinement types are a fundamental construct rather than just a convenient
surface syntax for certain uses of proof irrelevance
An extensional Kleene realizability semantics for the Minimalist Foundation
We build a Kleene realizability semantics for the two-level Minimalist
Foundation MF, ideated by Maietti and Sambin in 2005 and completed by Maietti
in 2009. Thanks to this semantics we prove that both levels of MF are
consistent with the (Extended) formal Church Thesis CT. MF consists of two
levels, an intensional one, called mTT and an extensional one, called emTT,
based on versions of Martin-L\"of's type theory. Thanks to the link between the
two levels, it is enough to build a semantics for the intensional level to get
one also for the extensional level. Hence here we just build a realizability
semantics for the intensional level mTT. Such a semantics is a modification of
the realizability semantics in Beeson 1985 for extensional first order
Martin-L\"of's type theory with one universe. So it is formalised in Feferman's
classical arithmetic theory of inductive definitions. It is called extensional
Kleene realizability semantics since it validates extensional equality of
type-theoretic functions extFun, as in Beeson 1985. The main modification we
perform on Beeson's semantics is to interpret propositions, which are defined
primitively in MF, in a proof-irrelevant way. As a consequence, we gain the
validity of CT. Recalling that extFun+ CT+ AC are inconsistent over arithmetics
with finite types, we conclude that our semantics does not validate the full
Axiom of Choice AC. On the contrary, Beeson's semantics does validate AC, being
this a theorem of Martin-L\"of's theory, but it does not validate CT. The
semantics we present here appears to be the best Kleene realizability semantics
for the extensional level emTT of MF. Indeed Beeson's semantics is not an
option for emTT since the full AC added to it entails the excluded middle
Type Theory Unchained: Extending Agda with User-Defined Rewrite Rules
Dependently typed languages such as Coq and Agda can statically guarantee the correctness of our proofs and programs. To provide this guarantee, they restrict users to certain schemes - such as strictly positive datatypes, complete case analysis, and well-founded induction - that are known to be safe. However, these restrictions can be too strict, making programs and proofs harder to write than necessary. On a higher level, they also prevent us from imagining the different ways the language could be extended.
In this paper I show how to extend a dependently typed language with user-defined higher-order non-linear rewrite rules. Rewrite rules are a form of equality reflection that is applied automatically by the typechecker. I have implemented rewrite rules as an extension to Agda, and I give six examples how to use them both to make proofs easier and to experiment with extensions of type theory. I also show how to make rewrite rules interact well with other features of Agda such as ?-equality, implicit arguments, data and record types, irrelevance, and universe level polymorphism. Thus rewrite rules break the chains on computation and put its power back into the hands of its rightful owner: yours
On the strength of proof-irrelevant type theories
We present a type theory with some proof-irrelevance built into the
conversion rule. We argue that this feature is useful when type theory is used
as the logical formalism underlying a theorem prover. We also show a close
relation with the subset types of the theory of PVS. We show that in these
theories, because of the additional extentionality, the axiom of choice implies
the decidability of equality, that is, almost classical logic. Finally we
describe a simple set-theoretic semantics.Comment: 20 pages, Logical Methods in Computer Science, Long version of IJCAR
2006 pape
A framework for the description of a number of members of the AUTOMATH family
A framework for the description of a number of members of the AUTOMATH family by N.G. de Bruijn 1. Introduction. I
- …