Subset Coercions in Coq

@inproceedings{Sozeau2006SubsetCI,
  title={Subset Coercions in Coq},
  author={Matthieu Sozeau},
  booktitle={TYPES},
  year={2006}
}
We propose a new language for writing programs with dependent types on top of the COQ proof assistant. This language permits to establish a phase distinction between writing and proving algorithms in the COQ environment. Concretely, this means allowing to write algorithms as easily as in a practical functional programming language whilst giving them as rich a specification as desired and proving that the code meets the specification using the whole COQ proof apparatus. This is achieved by… Expand
The Implicit Calculus of Constructions as a Programming Language with Dependent Types
TLDR
This paper shows how Miquel's Implicit Calculus of Constructions can be used as a programming language featuring dependent types and introduces a more verbose variant, called ICC* which fixes the issue of an undecidable type-checking. Expand
Interactive typed tactic programming in the Coq proof assistant
TLDR
This dissertation develops two different approaches to typed tactic programming in the context of Coq: Lemma Overloading and Mtac, a lightweight yet powerful extension to Coq that supports dependently typed functional tactic programming, with additional imperative features. Expand
VeriML: typed computation of logical terms inside a language with effects
TLDR
VeriML is presented - a novel language design that couples a type-safe effectful computational language with first-class support for manipulating logical terms such as propositions and proofs inside a computational language inspired by ML. Expand
Towards a Proof-Irrelevant Calculus of Inductive Constructions
Through the Curry-Howard correspondence, dependent type theories are appealing to both the mathematical and the programming community. To the first, they provide an expressive logical framework, inExpand
Formally Proving the Correctness of Functional Programs
TLDR
Methods for proving functional programs correct in the proof assistant Coq, a small core dependently typed functional programming language with a proof assistant for specifying properties of these programs and proving them, are investigated and compared. Expand
Mtac: A monad for typed tactic programming in Coq
TLDR
Mtac is presented, a lightweight but powerful extension to Coq that supports dependently typed tactic programming, and avoids the need to touch the trusted kernel typechecker of Coq by encapsulating uses of these new tactical primitives in a monad, and instrumenting Coq so that it executes monadic tactics during type inference. Expand
On type-based termination and dependent pattern matching in the calculus of inductive constructions. (Terminaison basée sur les types et filtrage dépendant pour le calcul des constructions inductives)
TLDR
This thesis proposes an extension of CIC using a type-based mechanism for ensuring termination of recursive functions, and studies pattern-matching definitions in CIC, a functional programming language with an expressive type system. Expand
Mtac: a monad for typed tactic programming in Coq
TLDR
Mtac is presented, a lightweight but powerful extension to Coq that supports dependently-typed tactic programming, and avoids the need to touch the trusted kernel typechecker of Coq by encapsulating uses of these new tactical primitives in a *monad*, and instrumenting Coq so that it executes monadic tactics during type inference. Expand
Deferring the details and deriving programs
TLDR
Trip, the new language for Hoare-logic verification of imperative programs embedded in Agda, is applied, where the applicative functor is used as the basis for a verification condition generator, turning the typed holes of Agda into a method for stepwise derivation of a program from its specification in the form of a Hoare triple. Expand
Towards Certified Program Logics for the Verification of Imperative Programs
Modern proof assistants are mature tools with which several important mathematical problems were proved correct, and which are also being used as a support for the development of program logicsExpand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 29 REFERENCES
Extraction of Structured Programs from Specification Proofs
TLDR
This paper presents a method using an extended logical system for obtaining programs from specifications written in a sublanguage of CASL, and provides a method for producing a program module that maximally respects the original structure of the specification. Expand
Pure type systems with judgemental equality
  • Robin Adams
  • Computer Science
  • Journal of Functional Programming
  • 2005
TLDR
It is proved that the equivalence holds for all functional Pure Type Systems (PTSs) and the Church-Rosser Theorem for a typed version of parallel one-step reduction is proved. Expand
Dependent types in practical programming
We present an approach to enriching the type system of ML with a restricted form of dependent types, where type index objects are drawn from a constraint domain C, leading to the DML(C) languageExpand
Synthesizing Proofs from Programs in the Calculus of Inductive Constructions
  • C. Parent
  • Mathematics, Computer Science
  • MPC
  • 1995
TLDR
This work focuses on the inverse problem: is it possible to reconstruct proof obligations from a program and its specification, and introduces a notion of coherence between a specification and a program containing annotations as in the Hoare sense. Expand
Coercive Subtyping in Type Theory
TLDR
In this approach, subtyping with specified implicit coercions is treated as a feature at the level of the logical framework; in particular, subsumption and coercion are combined in such a way that the meaning of an object being in a supertype is given by coercive definition rules for the definitional equality. Expand
A logic of subtyping
TLDR
A simple (and linear) calculus of sequents for subtyping as logical entailment is proposed, which allows to derive a complete and coherent approach to subtyped from a few, logically meaningful, sequents. Expand
A Logic of Subtyping (Extended Abstract)
TLDR
A simple (and linear) calculus of sequents for subtyping as logical entailment is proposed, which allows to derive a complete and coherent approach to subtyped from a few, logically meaningful, sequents. Expand
The Formal Semantics of PVS
TLDR
The formal semantics of the specification language of SRI''s Prototype Verification System (PVS) is presented, based on the simply typed lambda calculus, which illuminates several of the design considerations underlying PVS, the interaction between theorem proving and typechecking. Expand
Logic of subtyping
  • Pavel Naumov
  • Computer Science, Mathematics
  • Theor. Comput. Sci.
  • 2006
TLDR
New modal logical calculi are introduced that describe subtyping properties of Cartesian product and disjoint union type constructors as well as mutually recursive types defined using those type Constructors with respect to appropriate type universes. Expand
Interactive Theorem Proving and Program Development
TLDR
The similarity between Fixpoint and fix makes it easier to understand the need for the various parts of this construct, and the construction of higher-order types and simple inductive types defined inside a section is helpful to understanding the form of the induction principle. Expand
...
1
2
3
...