add solvers

This commit is contained in:
Landon Taylor 2025-06-09 11:45:37 -06:00
parent 388d5fb8f9
commit a454011c40
9 changed files with 146 additions and 47 deletions

View File

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2025 FM Copyright (c) 2025 Landon Taylor.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

View File

@ -1,9 +1,23 @@
+++ +++
title = 'Home' title = 'The Ultimate Formal Methods Toolbox'
date = 2023-01-01T08:00:00-07:00 subtitle = 'Discover, Explore, and Contribute to the Worlds Largest Collection of Formal Methods Tools'
draft = false # date = 2023-01-01T08:00:00-07:00
# draft = false
+++ +++
Laborum voluptate pariatur ex culpa magna nostrud est incididunt fugiat Welcome to this collection of Formal Methods Tools, which aims to be the world's most comprehensive source for information on tools for formal methods.
pariatur do dolor ipsum enim. Consequat tempor do dolor eu. Non id id anim anim From decades-old classics to cutting-edge tools, this site aims to put as much information as possible into one convenient place.
excepteur excepteur pariatur nostrud qui irure ullamco. [Explore](/tools) a wide selection of tools, [contribute](/contribute) tools you make or love, and help grow the formal methods community.
Below are some quick links that may be helpful, plus a random selection of tools (refreshed every time I push updates to this site).
{{<button href="/applications/smt-solver/">}}
SMT Solvers
{{</button>}}
{{<button href="/applications/model-checker/">}}
Model Checkers
{{</button>}}
{{<button href="/contribute">}}
Contribute
{{</button>}}

26
about.md Normal file
View File

@ -0,0 +1,26 @@
+++
title = 'About'
subtitle = 'Learn more about the Formal Methods Tools project'
+++
The Formal Methods Tools project is dedicated to developing, maintaining, and promoting tools that support the application of formal methods in software engineering. Our goal is to make formal verification, specification, and analysis techniques accessible and practical for both researchers and practitioners.
## Key Objectives
- Provide a comprehensive list of tools for formal methods.
- Group tools by rich metadata to support collaboration and boost tools' strengths.
- Foster a collaborative community for tool development and support.
## Who's Behind This?
Howdy. My name is Landon Taylor. I sometimes go by mossBiscuits.
This is one of my hobby projects.
I have a passion for formal methods. When I started learning about verification, there was a sharp barrier to entry due partially to the sprawl of content online.
I wanted to solve this problem, so I have been chipping away at this website for a while now.
I love to collaborate, either on this website or on any of my other formal methods projects. Please feel free to [reach out](https://landonjtaylor.net/contact/) if you want to talk.
## Get Involved
I welcome contributions from anyone interested in formal methods. Add tools you love or maintain, report issues, or fix a typo. Learn more on the [Contribute](/contribute) page.

5
contribute.md Normal file
View File

@ -0,0 +1,5 @@
+++
title = 'Contribute'
+++
Instructions coming soon. Please see https://gitmoss.fyi/fmtools/content/wiki/Contribute for temporary instructions.

14
license.md Normal file
View File

@ -0,0 +1,14 @@
+++
title = 'MIT License'
subtitle = 'Open-Source and Free to Use'
+++
MIT License
Copyright (c) 2025 Landon Taylor.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

12
privacy.md Normal file
View File

@ -0,0 +1,12 @@
+++
title = 'Privacy'
subtitle = "tl;dr: I won't know you were here."
+++
This website does not collect or track any personal data from visitors. No cookies, personalized analytics, or tracking scripts are used. No ads are shown on this website, and
If you choose to contribute content (such as submitting an article or comment), any information you voluntarily provide will be stored as part of the website's content and source code. Only the data you explicitly submit will be saved, and data is not sold by the website's owner. Any information you voluntarily provide as part of a code contribution becomes public information and may be used by the general public as allowed by respective laws and policies.
Your privacy is respected, and no unnecessary data is collected or shared. If you or your tool is listed on this page and you would like to remove it, please contact `fmtools@mossbiscuits.com` with the subject `Please remove my data`.
*Look at you, reading privacy policies. Thanks for being a responsible internet user.*

24
tools/verit.md Normal file
View File

@ -0,0 +1,24 @@
+++
date = 2025-06-07
draft = false
title = 'veriT'
subtitle = 'SMT Solver'
links = [
{ title = "Homepage", url = "https://www.verit-solver.org/", icon = 'fa-solid fa-home'},
{ title = "Source Code", url = "https://github.com/SRI-CSL/yices2", icon = 'fa-brands fa-github' },
# { title = "Documentation", url = "https://yices.csl.sri.com/yices2-documentation.html" }
]
applications = ['SMT Solver']
developers = ['LORIA', 'ULiege']
licenses = ['BSD']
inputs = ['SMTLIB2', 'DIMACS']
interfaces = ['CLI']
maintenance = ['Actively Maintained']
publications = ['Schurr2021']
+++
veriT is an SMT solver developed by LORIA and ULiege. It supports a wide range of theories and is designed for use in formal verification, automated reasoning, and related research areas. veriT accepts input in SMT-LIB2 and DIMACS formats and provides a command-line interface for ease of integration into verification workflows. The solver is actively maintained and distributed under the BSD license, making it suitable for both academic and industrial applications.

View File

@ -1,29 +1,31 @@
+++ +++
date = 2024-02-02T04:14:54-08:00 date = 2025-06-07
draft = false draft = false
title = 'Yices 2' title = 'Yices 2'
purposes = ['Verification Tools', 'Analysis Tools'] subtitle = 'SMT Solver'
techniques = ['Theorem Proving', 'SMT Solving', 'Model Checking']
domains = ['Software Verification', 'Hardware Verification', 'Embedded Systems']
languages = ['SMT-LIB', 'Yices language', 'C', 'OCaml', 'Python']
systems = ['Discrete Systems', 'Concurrent Systems']
interactions = ['CLI', 'C API', 'OCaml API', 'Python Bindings']
formalisms = ['first-order logic', 'SMT-LIB', 'quantifier logic', 'bit-vectors', 'arrays', 'uninterpreted functions', 'arithmetic']
developers = ['SRI International']
links = [ links = [
{ title = "Homepage", url = "https://yices.csl.sri.com/" }, { title = "Homepage", url = "https://yices.csl.sri.com/", icon = 'fa-solid fa-home'},
{ title = "Source Code", url = "https://github.com/SRI-CSL/yices2" }, { title = "Source Code", url = "https://github.com/SRI-CSL/yices2", icon = 'fa-brands fa-github' },
{ title = "Documentation", url = "https://yices.csl.sri.com/yices2-documentation.html" } # { title = "Documentation", url = "https://yices.csl.sri.com/yices2-documentation.html" }
] ]
applications = ['SMT Solver']
developers = ['SRI International']
licenses = ['GPLv3']
inputs = ['SMTLIB2', 'Yices 2']
interfaces = ['CLI', 'Python', 'Rust']
maintenance = ['Actively Maintained']
publications = ['Dutertre2014'] publications = ['Dutertre2014']
+++ +++
Yices is a high-performance SMT solver and theorem prover developed by SRI International. It is widely used for checking the satisfiability of logical formulas over various theories, including arithmetic, bit-vectors, arrays, and uninterpreted functions. Yices supports the SMT-LIB standard and its own input language, and provides APIs for several programming languages, making it suitable for integration into formal verification, program analysis, and constraint solving tools. Yices is an SMT solver developed by SRI International. It is widely used for checking the satisfiability of logical formulas over various theories. It supports the SMT-LIB standard and its own input language, and provides APIs for several programming languages, making it suitable for research and industrial applications in software and hardware verification.
### Features ## APIs and Bindings
Yices is available through several interfaces, making it a convenient option to build into a project.
- **SMT Solver:** Supports a wide range of theories and quantifiers.
- **Multi-language APIs:** C, OCaml, Python, and more.
- **Cross-platform:** Available on Windows, Linux, and macOS.
- **Active development:** Open source and maintained by SRI International.
- **General API:** [Yices API Reference](https://yices.csl.sri.com/doc/index.html)
- **Python bindings:** [yices2 PyPI package](https://pypi.org/project/yices/)
- **Rust bindings:** [yices2 crate on crates.io](https://crates.io/crates/yices2)

View File

@ -2,31 +2,33 @@
date = 2024-02-02T04:14:54-08:00 date = 2024-02-02T04:14:54-08:00
draft = false draft = false
title = 'Z3' title = 'Z3'
purposes = ['Verification Tools', 'Analysis Tools'] subtitle = 'Theorem Prover'
techniques = ['Theorem Proving', 'SMT Solving', 'Model Checking'] links = [
domains = ['Software Verification', 'Hardware Verification', 'Embedded Systems'] { title = "Homepage", url = "https://github.com/Z3Prover/z3", icon = 'fa-solid fa-home' },
languages = ['SMT-LIB', 'Python', 'C++', 'Java', 'C#'] { title = "Source Code", url = "https://github.com/Z3Prover/z3", icon = 'fa-brands fa-github' },
systems = ['Discrete Systems', 'Concurrent Systems'] { title = "Playground", url = "https://jfmc.github.io/z3-play/", icon = 'fa-solid fa-gamepad' }
interactions = ['CLI', 'Python API', 'Rust Bindings', 'playground'] ]
formalisms = ['first-order logic', 'SMT-LIB', 'quantifier logic', 'bit-vectors', 'arrays', 'uninterpreted functions', 'arithmetic'] applications = ['SMT Solver', 'Theorem Prover']
developers = ['Microsoft Research'] developers = ['Microsoft Research']
licenses = ['MIT'] licenses = ['MIT']
links = [ inputs = ['SMTLIB2', 'DIMACS']
{ title = "Homepage", url = "https://github.com/Z3Prover/z3" }, interfaces = ['CLI', 'Python', 'Rust', 'C', 'C++', 'Java', '.NET', 'Online']
{ title = "Source Code", url = "https://github.com/Z3Prover/z3" }, maintenance = ['Actively Maintained']
{ title = "Discussions", url = "https://github.com/Z3Prover/z3/discussions" }, # techniques = ['CDCL']
{ title = "Documentation", url = "https://z3prover.github.io/api/html/" },
{ title = "Playground", url = "https://rise4fun.com/z3" }
]
publications = ['deMoura2008'] publications = ['deMoura2008']
+++ +++
Z3 is a high-performance SMT solver and theorem prover developed by Microsoft Research. It is widely used for checking the satisfiability of logical formulas over various theories, including arithmetic, bit-vectors, arrays, and uninterpreted functions. Z3 supports the SMT-LIB standard and provides APIs for several programming languages, making it suitable for integration into formal verification, program analysis, and constraint solving tools. Z3 is a theorem prover developed by Microsoft Research, widely used for SAT & SMT solving and related formal verification tasks. It supports a variety of input languages, including SMT-LIB, and offers APIs for multiple programming languages.
Z3 is open source under the MIT license and is actively maintained, making it a popular choice for research and industrial applications in software and hardware verification.
## APIs and Bindings
Z3 is available through several interfaces, making it a convenient option to build into a project.
- **C API:** [Z3 C API Reference](https://z3prover.github.io/api/html/group__capi.html)
- **C++ API:** [Z3 C++ Namespace Reference](https://z3prover.github.io/api/html/namespacez3.html)
- **.NET API:** [Z3 .NET Namespace Reference](https://z3prover.github.io/api/html/namespace_microsoft_1_1_z3.html)
- **Java API:** [Z3 Java API Reference](https://z3prover.github.io/api/html/namespacecom_1_1microsoft_1_1z3.html)
- **Python bindings:** [z3-solver PyPI package](https://pypi.org/project/z3-solver/) ([Documentation](https://z3prover.github.io/api/html/z3.html))
- **Rust bindings:** [z3 crate on crates.io](https://crates.io/crates/z3)
### Features
- **SMT Solver:** Supports a wide range of theories and quantifiers.
- **Multi-language APIs:** Python, C++, Java, .NET, and more.
- **Cross-platform:** Available on Windows, Linux, and macOS.
- **Active development:** Open source and maintained by Microsoft Research.
- **Web Playground:** Try Z3 online at [Rise4Fun](https://rise4fun.com/z3).