Fedora Formal Methods Special Interest Group (SIG)
What are Formal Methods?
"Formal Methods" are techniques that apply Formal Proof techniques from Mathematics to prove that models of software, hardware, or systems will or will not have certain properties, or exhibit certain behaviors. Many Free/Libre/Open Source Software (FLOSS) tools for formal methods are becoming available, including automated theorem provers and model-checkers, but the tools can be difficult to install and apply.
Goal and Scope
The goal of the Formal Methods SIG is to make it easy to install formal methods tools in Fedora, to ease the process of learning how to apply them, to encourage the development of "open proofs" (where an implementation, proofs, and the required tools are all FLOSS), and to provide feedback to tool developers so that the tools in Fedora can become more powerful, more scaleable, and easier to use together.
Mission and Plan
For more details, see the Mission Statement and Plan for the Formal Methods Fedora SIG.
- Alan Dunn
- Klaus Grue
- Richard Jones
- Tim Colles
- Martin Nagy
- Adam Goode
- Nikos Arechiga
- John C. Peterson
- Andrew V. Jones
- Brock Organ
- Camilo Rocha
- Please add your name here!
The SIG will naturally use the Fedora Wiki. Material of a more general nature that crosses beyond Fedora to other Linux distributions may also go on the Open Proofs site. The mailing list to use is TBD:
- We could create a Fedora Formal Methods List.
- Alternatively, we could just use the existing Open Proofs mailing list. Two advantages of using this: (1) it already exists, and (2) it will help us re-use and coordinate with other distros.
- Anyone have a preference?
Currently Available Packages
The Formal Methods Tool Suite page identifies the tools that have already been packaged for Fedora. The list is organized in a way that (hopefully) makes what they can do, and how they do it easier to understand.
Active Packaging Efforts
The following packages are our current focus and have someone actively working on them:
- ACL2 (Jerry James)
- BLAST (Jerry James, David Wheeler, see ticket 555162)
- EQP (John Peterson, see ticket 769958)
- Isabelle / HOL (Tim Colles?)
Package Want List
Here are some upstream projects that we would like to see packaged. Jerry James has draft packages for some of these on his Fedora People page. For some more ideas, see the Packaging Status page at the Open Proofs site.
- APRON (a draft is available)
- Community Z Tools (Anyone?)
- DiVinE (Anyone?)
- Maude (Anyone?)
- SPASS (Anyone?)
We intend to create a "formal methods" yum group soon, so that 'yum groupinstall "Formal methods"' will get you lots of package goodness. The current plan is to wait until Frama-C is packaged. However, if that takes too long, we might proceed sooner than that. See the Formal Methods Tool Suite page for a list of the packages that would be in this group (along with their dependencies).
We might also include some symbolic mathematics packages, since they can also be used for such purposes. These include: mathomatic, maxima, wxMaxima, pari, sympy.
Formal Methods Spin
In the longer term, we hope to create a Fedora Spin with these packages. This will need to wait until after the yum group has been created. The Haskell Spin kickstart file might be a useful place to start.
Recently Completed Tasks
- Approved package Frama-C (frama-c)
- Package "Why" updated to version 2.23 (needed for Frama-C)
- Approved package PVS (pvs-sbcl)
- Approved packages csisat, picosat (needed for BLAST)
- Created the Formal Methods Tool Suite page