[BOOK][B] Towards a practical programming language based on dependent type theory
U Norell - 2007 - ncatlab.org
Dependent type theories [ML72] have a long history of being used for theorem proving. One
aspect of type theory which makes it very powerful as a proof language is that it mixes …
aspect of type theory which makes it very powerful as a proof language is that it mixes …
Data types à la carte
W Swierstra - Journal of functional programming, 2008 - cambridge.org
FUNCTIONAL PEARL Data types `a la carte Page 1 JFP 18 (4): 423–436, 2008. c 2008
Cambridge University Press doi:10.1017/S0956796808006758 First published online 18 March …
Cambridge University Press doi:10.1017/S0956796808006758 First published online 18 March …
Ynot: dependent types for imperative programs
We describe an axiomatic extension to the Coq proof assistant, that supports writing,
reasoning about, and extracting higher-order, dependently-typed programs with side-effects …
reasoning about, and extracting higher-order, dependently-typed programs with side-effects …
Just do it: simple monadic equational reasoning
One of the appeals of pure functional programming is that it is so amenable to equational
reasoning. One of the problems of pure functional programming is that it rules out …
reasoning. One of the problems of pure functional programming is that it rules out …
Effective interactive proofs for higher-order imperative programs
We present a new approach for constructing and verifying higher-order, imperative
programs using the Coq proof assistant. We build on the past work on the Ynot system …
programs using the Coq proof assistant. We build on the past work on the Ynot system …
There is no fork: An abstraction for efficient, concurrent, and concise data access
S Marlow, L Brandy, J Coens, J Purdy - Proceedings of the 19th ACM …, 2014 - dl.acm.org
We describe a new programming idiom for concurrency, based on Applicative Functors,
where concurrency is implicit in the Applicative<*> operator. The result is that concurrent …
where concurrency is implicit in the Applicative<*> operator. The result is that concurrent …
A Verified Foreign Function Interface between Coq and C
One can write dependently typed functional programs in Coq, and prove them correct in
Coq; one can write low-level programs in C, and prove them correct with a C verification tool …
Coq; one can write low-level programs in C, and prove them correct with a C verification tool …
A predicate transformer semantics for effects (functional pearl)
W Swierstra, T Baanen - Proceedings of the ACM on Programming …, 2019 - dl.acm.org
Reasoning about programs that use effects can be much harder than reasoning about their
pure counterparts. This paper presents a predicate transformer semantics for a variety of …
pure counterparts. This paper presents a predicate transformer semantics for a variety of …
Faceted secure multi execution
To enforce non-interference, both Secure Multi-Execution (SME) and Multiple Facets (MF)
rely on the introduction of multi-executions. The attractiveness of these techniques is that …
rely on the introduction of multi-executions. The attractiveness of these techniques is that …
Securing Verified IO Programs Against Unverified Code in F
We introduce SCIO*, a formally secure compilation framework for statically verified programs
performing input-output (IO). The source language is an F* subset in which a verified …
performing input-output (IO). The source language is an F* subset in which a verified …