Difference between revisions of "Applications and libraries/Theorem provers"
From HaskellWiki
(Hets) 
m (Libraries and tools/Theorem provers moved to Applications and libraries/Theorem provers) 
(No difference)

Revision as of 18:29, 2 May 2007
Tools for formal reasoning, written in Haskell.
Applications
 Agda
 Agda is a system for incrementally developing proofs and programs. Agda is also a functional language with Dependent types. This language is very similar to cayenne and agda is intended to be a (almost) full implementation of it in the future.
 A resolutionbased theorem prover for FOL
 Haskell implementation of a resolution based theorem prover for first order logic.
 Camila
 Camila is a system for software development using formal methods. Other materials on formal methods can be found also on the analysis and design page.
 Cayenne
 Cayenne is a functional language with a powerful dependent type system. The basic types are functions, products, and sums. Functions and products use dependent types to gain additional power. As with Epigram, a dependently typed language may be used to encode strong proofs in the type system.
 DEMO
 Model checking for dynamic epistemic logic. DEMO is a tool for modelling change in epistemic logic (the logic of knowledge). Among other things, DEMO allows modeling epistemic updates, graphical display of update results, graphical display of action models, formula evaluation in epistemic models, translation of dynamic epistemic formulas to PDL (propositional dynamic logic) formulas. More materials and other Haskell resources on dynamic epistemic modelling (and more generally on logic and linguistics) can be found on Jan van Eijck's page.
 Djinn
 Djinn generates Haskell code from a type declaration, using a decision procedure from intuitionistic propositional calculus.
 Dumatel
 Dumatel is a prover based on manysorted term rewriting (TRW) and equational reasoning
 Epigram
 Epigram is a prototype dependently typed functional programming language, equipped with an interactive editing and typechecking environment. Highlevel Epigram source code elaborates into a dependent type theory based on Zhaohui Luo's UTT. Programming with evidence lies at the heart of Epigram's design.
 Equinox
 Equinox is a new theorem prover for pure firstorder logic with equality. It finds ground proofs of the input theory, by solving successive ground instantiations of the theory using an incremental SATsolver. Equality is dealt with using a NelsonOppen framework.
 Expander2
 Expander2 is a flexible multipurpose workbench for rewriting, verification, constraint solving, flow graph analysis and related procedures that build up proofs or computation sequences. Moreover, tailormade interpreters display terms as 2D structures ranging from trees and rooted graphs to tables, fractals and other turtlesystemgenerated pictures.
 FOL Resolution Theorem Prover
 An implementation of a simple theorem prover in firstorder logic using Haskell.
 Halp
 Haskell Logic Prover is written in Haskell supports first order logic with plans to add predicates. Also included is a simple frontend written with gtk2hs
 Hets
 The Heterogeneous Tool Set (Hets) is a parsing, static analysis and proof management tool combining various tools for different specification languages, thus providing a tool for heterogeneous specifications.
 Paradox
 Paradox processes firstorder logic problems and tries to find finitedomain models for them.
 Proof General Kit
 The Proof General Kit designs and implements a componentbased framework for interactive theorem proving. The central middleware of the toolkit is implemented in Haskell. The project is the sucessor of the highly successful Emacsbased Proof General interface.
 Yarrow
 Yarrow is a proofassistant for Pure Type Systems (PTSs) with several extensions. In Yarrow you can experiment with various pure type systems, representing different logics and programming languages.
Libraries
 Ivor
 is type theory based theorem proving library  written by Edwin Brady (see also the author's homepage, there are a lot of materials concerning dependent type theory there).
This page contains a list of libraries and tools in a certain category. For a comprehensive list of such pages, see Applications and libraries.