Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
A syntactic approach to type soundness
Information and Computation
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
Modelling general recursion in type theory
Mathematical Structures in Computer Science
Polymorphism and separation in hoare type theory
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Ynot: dependent types for imperative programs
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Proceedings of the 3rd workshop on Programming languages meets program verification
Embedding a logical theory of constructions in Agda
Proceedings of the 3rd workshop on Programming languages meets program verification
A Brief Overview of Agda --- A Functional Language with Dependent Types
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification
Partial and Nested Recursive Function Definitions in Higher-order Logic
Journal of Automated Reasoning
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Erasure and polymorphism in pure type systems
FOSSACS'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Foundations of software science and computational structures
Program verification through characteristic formulae
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
System FC with explicit kind equality
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
A multivalued language with a dependent type system
Proceedings of the 2013 ACM SIGPLAN workshop on Dependently-typed programming
Combining proofs and programs in a dependently typed language
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
Dependently typed programming languages provide a mechanism for integrating verification and programming by encoding invariants as types. Traditionally, dependently typed languages have been based on constructive type theories, where the connection between proofs and programs is based on the Curry-Howard correspondence. This connection comes at a price, however, as it is necessary for the languages to be normalizing to preserve logical soundness. Trellys is a call-by-value dependently typed programming language currently in development that is designed to integrate a type theory with unsound programming features, such as general recursion, Type:Type, and others. In this paper we outline one core language design for Trellys, and demonstrate the use of the key language constructs to facilitate sound reasoning about potentially unsound programs.