This commit is contained in:
2025-06-09 11:45:24 -06:00
parent a87a4dbfbf
commit 3bb73fa9a7
176 changed files with 13421 additions and 12841 deletions

View File

@@ -1,10 +1,11 @@
<!DOCTYPE html>
<html lang="en-us" dir="ltr">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<head>
<meta charset="utf-8">
<meta name="viewport" content ="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Z3 | Formal Methods Tools</title>
@@ -12,17 +13,21 @@
<meta property="og:locale" content='en_US'>
<meta property="og:type" content="article">
<meta property="og:title" content="Z3">
<meta property="og:description" content="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">
<meta property="og:url" content="http://localhost:1313/tools/z3/">
<meta property="og:description" content="Z3 is a theorem prover developed by Microsoft Research, widely used for SAT &amp; SMT solving and related formal verification tasks. It supports a variety of">
<meta property="og:url" content="https://example.org/tools/z3/">
<meta property="og:image" content="images/%!s(&lt;nil&gt;)">
<link rel="canonical" href="http://localhost:1313/tools/z3/">
<link rel="canonical" href="https://example.org/tools/z3/">
<link rel="apple-touch-icon" sizes="180x180" href='http://localhost:1313/apple-touch-icon.png'>
<link rel="icon" type="image/png" sizes="32x32" href='http://localhost:1313/favicon-32x32.png'>
<link rel="icon" type="image/png" sizes='16x16' href='http://localhost:1313/favicon-16x16.png'>
<link rel="manifest" href='http://localhost:1313/site.webmanifest'>
<link rel="apple-touch-icon" sizes="180x180" href='https://example.org/apple-touch-icon.png'>
<link rel="icon" type="image/png" sizes="32x32" href='https://example.org/favicon-32x32.png'>
<link rel="icon" type="image/png" sizes='16x16' href='https://example.org/favicon-16x16.png'>
<link rel="manifest" href='https://example.org/site.webmanifest'>
<link rel="stylesheet" href="http://localhost:1313/css/styles.53038a37cec6ee9be2905762d98a91929a364edeef3cc14cbdb28c4a72d26b80952b218b41de771e704189d6ba0354eaded498090785092be247770e2fab407f.css" integrity="sha512-UwOKN87G7pvikFdi2YqRkpo2Tt7vPMFMvbKMSnLSa4CVKyGLQd53HnBBida6A1Tq3tSYCQeFCSviR3cOL6tAfw==">
<link rel="stylesheet" href="https://example.org/css/styles.8b49a669b444200848aa2fc88c4dc95a3d61d6c822e7ad08eecab8049173e085d2bfa16bf17fa8ec14eb95bb1f04f9a822b2fc4836b4d329140ddd03444ca0bf.css" integrity="sha512-i0mmabREIAhIqi/IjE3JWj1h1sgi560I7sq4BJFz4IXSv6Fr8X&#43;o7BTrlbsfBPmoIrL8SDa00ykUDd0DREygvw==">
<link href="/css/fontawesome.css" rel="stylesheet" />
<link href="/css/brands.css" rel="stylesheet" />
<link href="/css/solid.css" rel="stylesheet" />
@@ -35,14 +40,11 @@
<nav>
<ul>
<li>
<a href="/">Home</a>
</li>
<li>
<a href="/tools/">Tools</a>
</li>
<li>
<a href="/taxonomies/">Taxonomies</a>
<a href="/taxonomies/">Data</a>
</li>
<li>
<a href="/about/">About</a>
@@ -56,34 +58,28 @@
<div id="page-header">
<h1>Z3</h1>
<span class="time">Updated <time datetime="2024-02-02T04:14:54-08:00">February 2, 2024</time></span>
<h1>Z3</h1>
<span class="subtitle">Theorem Prover</span>
<div id="link-list">
<ul>
<li><a href="https://github.com/Z3Prover/z3" target="_blank" rel="noopener"><i class="fa-solid fa-home"></i>&nbsp;&nbsp;Homepage</a></li>
<li><a href="https://github.com/Z3Prover/z3" target="_blank" rel="noopener"><i class="fa-brands fa-github"></i>&nbsp;&nbsp;Source Code</a></li>
<li><a href="https://jfmc.github.io/z3-play/" target="_blank" rel="noopener"><i class="fa-solid fa-gamepad"></i>&nbsp;&nbsp;Playground</a></li>
</ul>
</div>
</div>
<section id="quick-links">
<h2>Quick Links</h2>
<div id="link-list">
<ul>
<li><a href="https://github.com/Z3Prover/z3" target="_blank" rel="noopener">Homepage</a></li>
<li><a href="https://github.com/Z3Prover/z3" target="_blank" rel="noopener">Source Code</a></li>
<li><a href="https://github.com/Z3Prover/z3/discussions" target="_blank" rel="noopener">Discussions</a></li>
<li><a href="https://z3prover.github.io/api/html/" target="_blank" rel="noopener">Documentation</a></li>
<li><a href="https://rise4fun.com/z3" target="_blank" rel="noopener">Playground</a></li>
</ul>
</div>
</section>
<section id="taxonomies">
<h2>At a Glance</h2>
@@ -93,6 +89,56 @@
<tr>
<td>
<a
class="taxonomy-name"
href="/applications">
Applications
</a>
</td>
<td>
<a
class="term-link"
id="applications_smt-solver"
style="background:rgba(190,107,118,0.4)"
href="/applications/smt-solver">
SMT Solver
</a>
<a
class="term-link"
id="applications_theorem-prover"
style="background:rgba(190,35,109,0.4)"
href="/applications/theorem-prover">
Theorem Prover
</a>
</td>
</tr>
<tr>
<td>
<a
@@ -126,12 +172,15 @@
<tr>
<td>
<a
class="taxonomy-name"
href="/domains">
Domains
href="/inputs">
Inputs
</a>
</td>
<td>
@@ -146,10 +195,10 @@
<a
class="term-link"
id="domains_software-verification"
style="background:rgba(127,54,56,0.4)"
href="/domains/software-verification">
Software Verification
id="inputs_smtlib2"
style="background:rgba(108,44,180,0.4)"
href="/inputs/smtlib2">
SMTLIB2
</a>
@@ -163,27 +212,10 @@
<a
class="term-link"
id="domains_hardware-verification"
style="background:rgba(35,59,44,0.4)"
href="/domains/hardware-verification">
Hardware Verification
</a>
<a
class="term-link"
id="domains_embedded-systems"
style="background:rgba(130,108,187,0.4)"
href="/domains/embedded-systems">
Embedded Systems
id="inputs_dimacs"
style="background:rgba(190,57,177,0.4)"
href="/inputs/dimacs">
DIMACS
</a>
@@ -197,8 +229,8 @@
<td>
<a
class="taxonomy-name"
href="/formalisms">
Formalisms
href="/interfaces">
Interfaces
</a>
</td>
<td>
@@ -213,144 +245,9 @@
<a
class="term-link"
id="formalisms_first-order-logic"
style="background:rgba(184,51,102,0.4)"
href="/formalisms/first-order-logic">
first-order logic
</a>
<a
class="term-link"
id="formalisms_smt-lib"
style="background:rgba(62,225,228,0.4)"
href="/formalisms/smt-lib">
SMT-LIB
</a>
<a
class="term-link"
id="formalisms_quantifier-logic"
style="background:rgba(201,150,70,0.4)"
href="/formalisms/quantifier-logic">
quantifier logic
</a>
<a
class="term-link"
id="formalisms_bit-vectors"
style="background:rgba(68,186,73,0.4)"
href="/formalisms/bit-vectors">
bit-vectors
</a>
<a
class="term-link"
id="formalisms_arrays"
style="background:rgba(163,203,195,0.4)"
href="/formalisms/arrays">
arrays
</a>
<a
class="term-link"
id="formalisms_uninterpreted-functions"
style="background:rgba(129,25,163,0.4)"
href="/formalisms/uninterpreted-functions">
uninterpreted functions
</a>
<a
class="term-link"
id="formalisms_arithmetic"
style="background:rgba(38,232,22,0.4)"
href="/formalisms/arithmetic">
arithmetic
</a>
</td>
</tr>
<tr>
<td>
<a
class="taxonomy-name"
href="/interactions">
Interactions
</a>
</td>
<td>
<a
class="term-link"
id="interactions_cli"
id="interfaces_cli"
style="background:rgba(145,175,87,0.4)"
href="/interactions/cli">
href="/interfaces/cli">
CLI
</a>
@@ -365,93 +262,9 @@
<a
class="term-link"
id="interactions_python-api"
style="background:rgba(2,212,135,0.4)"
href="/interactions/python-api">
Python API
</a>
<a
class="term-link"
id="interactions_rust-bindings"
style="background:rgba(124,204,243,0.4)"
href="/interactions/rust-bindings">
Rust Bindings
</a>
<a
class="term-link"
id="interactions_playground"
style="background:rgba(150,199,11,0.4)"
href="/interactions/playground">
playground
</a>
</td>
</tr>
<tr>
<td>
<a
class="taxonomy-name"
href="/languages">
Languages
</a>
</td>
<td>
<a
class="term-link"
id="languages_smt-lib"
style="background:rgba(62,225,228,0.4)"
href="/languages/smt-lib">
SMT-LIB
</a>
<a
class="term-link"
id="languages_python"
id="interfaces_python"
style="background:rgba(167,245,243,0.4)"
href="/languages/python">
href="/interfaces/python">
Python
</a>
@@ -466,9 +279,43 @@
<a
class="term-link"
id="languages_c&#43;&#43;"
id="interfaces_rust"
style="background:rgba(245,226,101,0.4)"
href="/interfaces/rust">
Rust
</a>
<a
class="term-link"
id="interfaces_c"
style="background:rgba(13,97,248,0.4)"
href="/interfaces/c">
C
</a>
<a
class="term-link"
id="interfaces_c&#43;&#43;"
style="background:rgba(246,248,124,0.4)"
href="/languages/c&#43;&#43;">
href="/interfaces/c&#43;&#43;">
C&#43;&#43;
</a>
@@ -483,9 +330,9 @@
<a
class="term-link"
id="languages_java"
id="interfaces_java"
style="background:rgba(213,35,135,0.4)"
href="/languages/java">
href="/interfaces/java">
Java
</a>
@@ -500,10 +347,27 @@
<a
class="term-link"
id="languages_c"
style="background:rgba(215,239,161,0.4)"
href="/languages/c">
C#
id="interfaces_.net"
style="background:rgba(48,60,176,0.4)"
href="/interfaces/.net">
.NET
</a>
<a
class="term-link"
id="interfaces_online"
style="background:rgba(84,246,100,0.4)"
href="/interfaces/online">
Online
</a>
@@ -550,8 +414,8 @@
<td>
<a
class="taxonomy-name"
href="/purposes">
Purposes
href="/maintenance">
Maintenance
</a>
</td>
<td>
@@ -566,27 +430,10 @@
<a
class="term-link"
id="purposes_verification-tools"
style="background:rgba(229,94,239,0.4)"
href="/purposes/verification-tools">
Verification Tools
</a>
<a
class="term-link"
id="purposes_analysis-tools"
style="background:rgba(26,123,112,0.4)"
href="/purposes/analysis-tools">
Analysis Tools
id="maintenance_actively-maintained"
style="background:rgba(177,86,105,0.4)"
href="/maintenance/actively-maintained">
Actively Maintained
</a>
@@ -596,140 +443,31 @@
<tr>
<td>
<a
class="taxonomy-name"
href="/systems">
Systems
</a>
</td>
<td>
<a
class="term-link"
id="systems_discrete-systems"
style="background:rgba(151,241,175,0.4)"
href="/systems/discrete-systems">
Discrete Systems
</a>
<a
class="term-link"
id="systems_concurrent-systems"
style="background:rgba(14,80,100,0.4)"
href="/systems/concurrent-systems">
Concurrent Systems
</a>
</td>
</tr>
<tr>
<td>
<a
class="taxonomy-name"
href="/techniques">
Techniques
</a>
</td>
<td>
<a
class="term-link"
id="techniques_theorem-proving"
style="background:rgba(162,224,131,0.4)"
href="/techniques/theorem-proving">
Theorem Proving
</a>
<a
class="term-link"
id="techniques_smt-solving"
style="background:rgba(85,102,128,0.4)"
href="/techniques/smt-solving">
SMT Solving
</a>
<a
class="term-link"
id="techniques_model-checking"
style="background:rgba(125,56,99,0.4)"
href="/techniques/model-checking">
Model Checking
</a>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h2>Description</h2>
<p>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.</p>
<h3 id="features">Features</h3>
<p>Z3 is a theorem prover developed by Microsoft Research, widely used for SAT &amp; 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.</p>
<h2 id="apis-and-bindings">APIs and Bindings</h2>
<p>Z3 is available through several interfaces, making it a convenient option to build into a project.</p>
<ul>
<li><strong>SMT Solver:</strong> Supports a wide range of theories and quantifiers.</li>
<li><strong>Multi-language APIs:</strong> Python, C++, Java, .NET, and more.</li>
<li><strong>Cross-platform:</strong> Available on Windows, Linux, and macOS.</li>
<li><strong>Active development:</strong> Open source and maintained by Microsoft Research.</li>
<li><strong>Web Playground:</strong> Try Z3 online at <a href="https://rise4fun.com/z3">Rise4Fun</a>.</li>
<li><strong>C API:</strong> <a href="https://z3prover.github.io/api/html/group__capi.html">Z3 C API Reference</a></li>
<li><strong>C++ API:</strong> <a href="https://z3prover.github.io/api/html/namespacez3.html">Z3 C++ Namespace Reference</a></li>
<li><strong>.NET API:</strong> <a href="https://z3prover.github.io/api/html/namespace_microsoft_1_1_z3.html">Z3 .NET Namespace Reference</a></li>
<li><strong>Java API:</strong> <a href="https://z3prover.github.io/api/html/namespacecom_1_1microsoft_1_1z3.html">Z3 Java API Reference</a></li>
<li><strong>Python bindings:</strong> <a href="https://pypi.org/project/z3-solver/">z3-solver PyPI package</a> (<a href="https://z3prover.github.io/api/html/z3.html">Documentation</a>)</li>
<li><strong>Rust bindings:</strong> <a href="https://crates.io/crates/z3">z3 crate on crates.io</a></li>
</ul>
</section>
<section id="publications">
<h2>Publications</h2>
<ul>
@@ -746,6 +484,10 @@
<li>
<strong>Z3: An Efficient SMT Solver</strong>
@@ -758,8 +500,8 @@
| Published by <em>Springer, Berlin, Heidelberg</em>
<br /><a href="https://doi.org/map[author:[de%20Moura,%20Leonardo%20Bj%c3%b8rner,%20Nikolaj]%20booktitle:TACAS%20copyright:https://www.microsoft.com/en-us/research/publication/z3-an-efficient-smt-solver/%20doi:10.1007/978-3-540-78800-3_24%20key:deMoura2008%20langid:english%20month:March%20publisher:Springer,%20Berlin,%20Heidelberg%20shorttitle:Z3%20SMT%20Solver%20title:Z3:%20An%20Efficient%20SMT%20Solver%20year:2008]" target="_blank" rel="noopener">10.1007/978-3-540-78800-3_24</a>
| Published by Springer, Berlin, Heidelberg
| <a href="https://doi.org/10.1007/978-3-540-78800-3_24" target="_blank" rel="noopener">10.1007/978-3-540-78800-3_24</a>
</li>
@@ -769,10 +511,19 @@
</section>
<p class="time">Updated <time datetime="2024-02-02T04:14:54-08:00">February 2, 2024</time></p>
</main>
<footer>
<p>Copyright 2025. All rights reserved.</p>
<p><a href="/contribute">Contribute</a> &nbsp;|&nbsp; <a href="/about">About</a> &nbsp;|&nbsp; <a href="/license">License</a> &nbsp;|&nbsp; <a href="/privacy">Privacy</a> </p>
<p>&copy; Copyright 2025. An open-source project.</p>
</footer>
</body>