Please contact
Jonathan Bowen
if you know of relevant on-line information not included here
or would like to maintain information on a particular topic.
Use the
comp.specification.misc
newsgroup, for general
This document contains some pointers to information on
indicates new entries.
indicates a (subjectively!) recommended link for especially good
on-line information. If enough people email me,
I will add a star to entries recommended by others.
The following electronic mailing lists cover general issues
concerning formal methods:
There are a significant number of mailing lists concerning
individual formal methods. Please see the relevant pages
for the formal methods of interest for details.
Cited in W.W. Gibbs,
Software's Chronic Crisis,
Scientific American,
271(3):86-95, September 1994.
Search for
formal methods
links on
Vivisimo
Selected resources:
This space will be used to indicate selected new entries
and developments in the
formal methods pages.
Individual notations, methods and tools
See also:
Abstract State Machines (ASM).
Formerly known as
Evolving Algebras.
Alloy Analyzer, an object modelling notation that is
compatible with development approaches such as
UML, Catalysis, Fusion,
OMT and Syntropy, strongly influenced by the
Z specification language.
See
Alloy discussion group.
B-Method, including the B-Tool and B-Toolkit.
CASL: Common Algebraic Specification Language,
for algebraic specification and development, from
CoFI, the Common Framework Initiative.
CafeOBJ, an algebraic specification and programming language.
A successor of
OBJ.
Coq proof assistant:
checks proofs about assertions,
helps to find formal proofs and
extracts certified programs from constructive proofs.
CSP (Communicating Sequential Processes) including the
FDR2 (Failures-Divergence Refinement) tool.
Duration Calculus (DC), an interval logic for real-time systems.
ESC/Java2 Extended Static Checker for
Java tool,
using program verification technology.
See also
JML.
Esterel language and tools for synchronous reactive systems.
HOL mechanical theorem proving system, based on
Higher Order Logic.
IMPS, an Interactive Mathematical Proof System intended to provide
mechanical support for traditional mathematical techniques and styles
of practice.
Interval Temporal Logic (ITL).
See also
publications.
Isabelle, a generic theorem prover, supporting
higher-order logic, ZF set theory, etc.
JML (Java Modeling Language), a
behavioral interface specification language for
Java.
See also
ESC/Java2.
KIV (Karlsruhe Interactive Verifier).
An interactive theorem prover for higher-order logic, Dynamic Logic and
a compositional extension of ITL.
It can be used for ASM stepwise refinement.
Larch family of languages and tools supporting a two-tiered
definitional style of specification.
See especially
LP, the
Larch Prover.
LOTOS (Language of Temporal Ordering Specifications).
Model checking at CMU, a method for formally verifying
finite-state concurrent systems.
Available packages include:
NuSMV, a new symbolic model checker.
Nqthm 1992, the latest
Boyer-Moore theorem prover.
Also
accessible via FTP.
Includes the Pc-Nqthm interactive ``Proof-checker''.
Nuprl tool based on intuitionistic type theory.
OBJ family - OBJ3, 2OBJ,
CafeOBJ, etc. Term rewriting and algebraic specification.
Perfect Developer tool from
Escher Techologies Limited.
Petri Nets, a formal graphical notation
for modelling systems with concurrency.
See also
here.
Pi-calculus: calculi for mobile processes.
See also the
Mobility Workbench and a
searchable bibliography.
PVS (Prototype Verification System) tool based on classical typed
higher-order logic.
RAISE (Rigorous Approach to Industrial Software Engineering).
Includes RSL (RAISE Specification Language).
SDL (Specification and Description Language) from the
SDL Forum Society.
See also previous site
here.
SPARK secure subset of Ada, including the
SPADE static analysis toolset.
Spec#, an extension of the
C#
programming language from
Microsoft Research
with specification features allowing
static analysis using a program verifier.
SPIN is an automated verification tool
(model checker), using
PROMELA (PROcess MEta LAnguage), a language loosely based on
CSP, for finite state systems, such as protocols or
validation models of distributed systems, developed at
Bell Laboratories.
See also
p2b, a translation utility.
VDM (Vienna Development Method).
See also
Overture toolset.
Z notation for formal specification.
Formal methods entry
and
category
in the
Wikipedia free online encyclopedia.
Formal Methods Europe (FME) HUB.
Formal Methods Education Resources: Tool Pages.
Newsgroups and mailing lists
Search for newsgroup articles on
formal methods in
Google Groups.
Comp.specification.* Frequently Mentioned Resources
from
People Helping One Another Know Stuff (PHOAKS).
A count of and link to URLs mentioned in newsgroup articles.
See also
comp.software-eng resources.
Of related interest
See also information on:
Automated reasoning systems
(see also systems
developed in Germany)
BRICS Tools (a collection of automated verification tools)
and
Formal Methods
Some Formal Methods Humor
See also FormalMethods.com. :-)
Part of the Museophile archive. See also ProCoS resources.