Most dependently-typed programming languages either require that all expressions terminate (e.g. Coq, Agda, and Epigram), or al-low infinite loops but are inconsistent when viewed as logics (e.g. Haskell, ATS, Ωmega). Here, we combine these two approaches into a single dependently-typed core language. The language is composed of two fragments that share a common syntax and over-lapping semantics: a logic that guarantees total correctness, and a call-by-value programming language that guarantees type safety but not termination. The two fragments may interact: logical ex-pressions may be used as programs; the logic may soundly reason about potentially nonterminating programs; programs can require logical proofs as arguments; and “mobile ” pro...
Programmers don't just have to write programs, they are have to reason about them. Programming langu...
The definition of type equivalence is one of the most important design issues for any typed language...
Dependent types can be used to capture useful properties about programs at compile time. However, de...
Most dependently-typed programming languages either require that all expressions terminate (e.g. Coq...
Most dependently-typed programming languages either require that all expressions terminate (e.g. Coq...
Programming languages based on dependent type theory promise two great advances: flexibility and sec...
Dependently typed languages allow us to develop programs and write proofs quickly and without errors...
Most existing programming languages provide little support to formally state and prove properties ab...
We propose a full-spectrum dependently typed programming language, Zombie, which supports general re...
This paper presents a dependently-typed programming language that uses an adaptation of a congruence...
Dependently typed programming languages provide a way to write programs, specifications, and correct...
We define a dependent programming language in which program-mers can define and compute with domain-...
Types express a program's meaning, and checking types ensures that a program has the intended meanin...
In these lecture notes we give an introduction to functional programming with dependent types. We us...
This paper presents the design of ZOMBIE, a dependently-typed programming language that uses an adap...
Programmers don't just have to write programs, they are have to reason about them. Programming langu...
The definition of type equivalence is one of the most important design issues for any typed language...
Dependent types can be used to capture useful properties about programs at compile time. However, de...
Most dependently-typed programming languages either require that all expressions terminate (e.g. Coq...
Most dependently-typed programming languages either require that all expressions terminate (e.g. Coq...
Programming languages based on dependent type theory promise two great advances: flexibility and sec...
Dependently typed languages allow us to develop programs and write proofs quickly and without errors...
Most existing programming languages provide little support to formally state and prove properties ab...
We propose a full-spectrum dependently typed programming language, Zombie, which supports general re...
This paper presents a dependently-typed programming language that uses an adaptation of a congruence...
Dependently typed programming languages provide a way to write programs, specifications, and correct...
We define a dependent programming language in which program-mers can define and compute with domain-...
Types express a program's meaning, and checking types ensures that a program has the intended meanin...
In these lecture notes we give an introduction to functional programming with dependent types. We us...
This paper presents the design of ZOMBIE, a dependently-typed programming language that uses an adap...
Programmers don't just have to write programs, they are have to reason about them. Programming langu...
The definition of type equivalence is one of the most important design issues for any typed language...
Dependent types can be used to capture useful properties about programs at compile time. However, de...