Total haskell is reasonable coq
A Spector-Zabusky, J Breitner, C Rizkallah… - Proceedings of the 7th …, 2018 - dl.acm.org
We would like to use the Coq proof assistant to mechanically verify properties of Haskell
programs. To that end, we present a tool, named hs-to-coq, that translates total Haskell …
programs. To that end, we present a tool, named hs-to-coq, that translates total Haskell …
A Hoare logic for call-by-value functional programs
Y Régis-Gianas, F Pottier - International Conference on Mathematics of …, 2008 - Springer
We present a Hoare logic for a call-by-value programming language equipped with
recursive, higher-order functions, algebraic data types, and a polymorphic type system in the …
recursive, higher-order functions, algebraic data types, and a polymorphic type system in the …
Running the manual: An approach to high-assurance microkernel development
P Derrin, K Elphinstone, G Klein, D Cock… - Proceedings of the …, 2006 - dl.acm.org
We propose a development methodology for designing and prototyping high assurance
microkernels, and describe our application of it. The methodology is based on rapid …
microkernels, and describe our application of it. The methodology is based on rapid …
Ready, Set, Verify! Applying hs-to-coq to real-world Haskell code
J Breitner, A Spector-Zabusky, Y Li… - Journal of Functional …, 2021 - cambridge.org
Good tools can bring mechanical verification to programs written in mainstream functional
languages. We use hs-to-coq to translate significant portions of Haskell's containers library …
languages. We use hs-to-coq to translate significant portions of Haskell's containers library …
Reasoning about the garden of forking paths
Lazy evaluation is a powerful tool for functional programmers. It enables the concise
expression of on-demand computation and a form of compositionality not available under …
expression of on-demand computation and a form of compositionality not available under …
Modular verification of programs with effects and effects handlers
T Letan, Y Régis-Gianas, P Chifflier, G Hiet - Formal Aspects of Computing, 2021 - Springer
Modern computing systems have grown in complexity, and even though system components
are generally carefully designed and even verified by different groups of people, the …
are generally carefully designed and even verified by different groups of people, the …
A monadic implementation of functional logic programs
M Hanus, KO Prott, F Teegen - … of the 24th International Symposium on …, 2022 - dl.acm.org
Functional logic languages are a high-level approach to programming by combining the
most important declarative features. They abstract from small-step operational details so that …
most important declarative features. They abstract from small-step operational details so that …
A model of Solidity-style smart contracts in the theorem prover Agda
F Alhabardi, A Setzer - 2023 IEEE International Conference on …, 2023 - ieeexplore.ieee.org
The use of smart contracts is transforming traditional industry and business practices. It
enables the automatic enforcement of contractual terms without the need for a trusted third …
enables the automatic enforcement of contractual terms without the need for a trusted third …
Regularity and quantification: a new approach to verify distributed protocols
A Goel, KA Sakallah - Innovations in Systems and Software Engineering, 2023 - Springer
Proving that an unbounded distributed protocol satisfies a given safety property amounts to
finding a quantified inductive invariant that implies the property for all possible instance …
finding a quantified inductive invariant that implies the property for all possible instance …
Verifying effectful Haskell programs in Coq
J Christiansen, S Dylus, N Bunkenburg - Proceedings of the 12th ACM …, 2019 - dl.acm.org
We show how various Haskell language features that are related to ambient effects can be
modeled in Coq. For this purpose we build on previous work that demonstrates how to …
modeled in Coq. For this purpose we build on previous work that demonstrates how to …