2014
DOI: 10.1145/2578855.2535883
|View full text |Cite
|
Sign up to set email alerts
|

Combining proofs and programs in a dependently typed language

Abstract: Most dependently-typed programming languages either require that all expressions terminate (e.g. Coq, Agda, and Epigram), or allow 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 overlapping semantics: a logic that guarantees total correctness, and a call-by-value programming language that guarantees type safety but no… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
13
0

Year Published

2016
2016
2019
2019

Publication Types

Select...
6
1

Relationship

0
7

Authors

Journals

citations
Cited by 8 publications
(13 citation statements)
references
References 28 publications
0
13
0
Order By: Relevance
“…We combined natural deduction principles with PLE-search to prove universality of right-folds, as described in [25] and formalized in Agda [34]. • Functional Correctness We proved correctness of a SAT solver and a unification algorithm as implemented in Zombie [11]. We proved that the SAT solver takes as input a formula f and either returns Nothing or an assignment that satisfies f, by reflecting the notion of satisfaction.…”
Section: Discussionmentioning
confidence: 99%
“…We combined natural deduction principles with PLE-search to prove universality of right-folds, as described in [25] and formalized in Agda [34]. • Functional Correctness We proved correctness of a SAT solver and a unification algorithm as implemented in Zombie [11]. We proved that the SAT solver takes as input a formula f and either returns Nothing or an assignment that satisfies f, by reflecting the notion of satisfaction.…”
Section: Discussionmentioning
confidence: 99%
“…The termination argument uses logical relations and is similar to the arguments of System T (Harper 2015) and Trellys/Zombie (Casinghino et al 2014). The logical relation is defined as 4 mutually recursive functions: E for computation types, V for regular types, W for wps, and P for formulas.…”
Section: Consistency and Weak Normalization Of Pf ⋆mentioning
confidence: 99%
“…For example, with Hoare Type Theory, Nanevski et al (2008) extend Coq with support for interactive proofs of imperative programs. With Trellys and Zombie, Casinghino et al (2014) design new dependently typed languages for interactive proving and programming while accounting for non-termination as an effect. With prior versions of F ⋆ , Swamy et al (2013a) provide SMT-based automated proving for an ML-like programming language, but lack the ability to do interactive proofs.…”
Section: Introductionmentioning
confidence: 99%
“…The second set of benchmarks corresponds to a set of programs corresponding to such proofs. Arith includes theorems about the growth of the fibonacci and ackermann functions; Fold includes theorems about the universality of traversals; Monoid, Functor, Applicative and Monad includes proofs of the respective category-theoretic laws for the Maybe, List, and Id instances of the respective typeclasses; and finally, SatSolver and Unification are fully verified implementations of the respective algorithms from the Zombie suite which, absent SMT support, requires significantly more local annotations (proof terms) from the user [Casinghino et al 2014;Sjöberg and Weirich 2015].…”
Section: Safety Property Benchmarksmentioning
confidence: 99%