awesome-provable
Formal proof library
A curated collection of resources and links for learning about formal methods in programming languages.
A curated set of links to formal methods involving provable code.
195 stars
10 watching
8 forks
last commit: almost 3 years ago
Linked from 2 awesome lists
agdacertified-programmingcoqformal-verificationidrisisabelleisabelle-holsel4
Provably Awesome. / Languages | |||
Idris docs | |||
Idris tutorial | |||
Theorem proving with Idris tutorial | |||
Agda Github | 2,512 | 6 days ago | |
Agda User Manual | |||
Provably Awesome. / Proof Assistants | |||
Coq | : Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs. [ ] [ ] | ||
Provably Awesome. / Proof Assistants / Coq | |||
https://github.com/Ptival/PeaCoq | 106 | over 3 years ago | |
https://math-comp.github.io/mcb/ | |||
Provably Awesome. / Proof Assistants | |||
Isabelle | : Isabelle is a generic proof assistant. It allows mathematical formulas to be expressed in a formal language and provides tools for proving those formulas in a logical calculus. [ ] | ||
HOL | : The HOL interactive theorem prover is a proof assistant for higher-order logic: a programming environment in which theorems can be proved and proof tools implemented. Built-in decision procedures and theorem provers can automatically establish many simple theorems (users may have to prove the hard theorems themselves!) An oracle mechanism gives access to external programs such as SMT and BDD engines. HOL is particularly suitable as a platform for implementing combinations of deduction, execution and property checking. [ ] | ||
LEAN | : Lean is a new open source theorem prover being developed at Microsoft Research, and its standard library at Carnegie Mellon University. Lean aims to bridge the gap between interactive and automated theorem proving, by situating automated tools and methods in a framework that supports user interaction and the construction of fully specified axiomatic proofs. The goal is to support both mathematical reasoning and reasoning about complex systems, and to verify claims in both domains | ||
K Framework | : The K framework is a rewrite-based executable semantic framework in which programming languages, type systems and formal analysis tools can be defined using configurations, computations and rules. Configurations organize the state in units called cells, which are labeled and can be nested. Computations carry computational meaning as special nested list structures sequentializing computational tasks, such as fragments of program. Computations extend the original language abstract syntax. K (rewrite) rules make it explicit which parts of the term they read-only, write-only, read-write, or do not care about. This makes K suitable for defining truly concurrent languages even in the presence of sharing. Computations are like any other terms in a rewriting environment: they can be matched, moved from one place to another, modified, or deleted. This makes K suitable for defining control-intensive features such as abrupt termination, exceptions or call/cc | ||
Provably Awesome. / Proof Assistants / K Framework | |||
K Tutorial | by , | ||
https://runtimeverification.com/ | ( ) : Company formed from K Framework people. Runtime Verification Inc. is currently developing three core products: | ||
Provably Awesome. / Proof Assistants | |||
Viper | : Viper (Verification Infrastructure for Permission-based Reasoning) is a language and suite of tools developed at ETH Zurich, providing an architecture on which new verification tools and prototypes can be developed simply and quickly. It comprises a novel intermediate verification language, also named Viper, and automatic verifiers for the language, as well as example front-end tools. The Viper toolset can be used to implement verification techniques for front-end programming languages via translations into the Viper language. ETH Zurich has built several verifiers on top of Viper, including the verifier for Go, for Python and for Rust | ||
Provably Awesome. / Books | |||
Vol. 1: |