Skip to content

Commit f5c0c1a

Browse files
Saloedvavilovm
andauthored
Symfpu module (#124)
* add symfpu module to support fp * implement symfpu * Fix casts * Fix tests and configs * Refactor tests * Refactor tests * Handle more exceptions in library loader * Fix previousPowerOfTwo * Refactor tests * Remove debug prints * Fix bv operations in utils * Fix bv operations in utils * Handle more exceptions in library loader * Rework symfpu transformer * ignore test data * Remove redundant execution mode annotation * Ignore all gradle builds * Fix nan in packed bv * Update docs --------- Co-authored-by: Mark Vavilov <40399190+vavilovm@users.noreply.github.com>
1 parent c5fee2c commit f5c0c1a

47 files changed

Lines changed: 4629 additions & 252 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,9 @@
33

44
# Ignore Gradle build output directory
55
build
6+
**/build/
67

78
.idea
9+
10+
# ignore ksmt test data
11+
ksmt-test/testData

README.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Get the most out of SMT solving with KSMT features:
1111
* Streamlined [solver delivery](#ksmt-distribution) with no need for building a solver or implementing JVM bindings
1212

1313
[![KSMT: build](https://github.com/UnitTestBot/ksmt/actions/workflows/build-and-run-tests.yml/badge.svg)](https://github.com/UnitTestBot/ksmt/actions/workflows/build-and-run-tests.yml)
14-
[![Maven Central](https://img.shields.io/maven-central/v/io.ksmt/ksmt-core)](https://central.sonatype.com/artifact/io.ksmt/ksmt-core/0.5.5)
14+
[![Maven Central](https://img.shields.io/maven-central/v/io.ksmt/ksmt-core)](https://central.sonatype.com/artifact/io.ksmt/ksmt-core/0.5.6)
1515
[![javadoc](https://javadoc.io/badge2/io.ksmt/ksmt-core/javadoc.svg)](https://javadoc.io/doc/io.ksmt/ksmt-core)
1616

1717
## Get started
@@ -20,9 +20,9 @@ To start using KSMT, install it via [Gradle](https://gradle.org/):
2020

2121
```kotlin
2222
// core
23-
implementation("io.ksmt:ksmt-core:0.5.5")
23+
implementation("io.ksmt:ksmt-core:0.5.6")
2424
// z3 solver
25-
implementation("io.ksmt:ksmt-z3:0.5.5")
25+
implementation("io.ksmt:ksmt-z3:0.5.6")
2626
```
2727

2828
Find basic instructions in the [Getting started](docs/getting-started.md) guide and try it out with the
@@ -52,13 +52,15 @@ KSMT provides support for various solvers:
5252

5353
You can also use SMT solvers across multiple theories:
5454

55-
| Theory | Z3 | Bitwuzla | Yices2 | cvc5 |
56-
|-------------------------|:------------------:|:------------------:|:------------------:|:------------------:|
57-
| Bitvectors | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
58-
| Arrays | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
59-
| IEEE Floats | :heavy_check_mark: | :heavy_check_mark: | | :heavy_check_mark: |
60-
| Uninterpreted Functions | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
61-
| Arithmetic | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: |
55+
| Theory | Z3 | Bitwuzla | Yices2 | cvc5 |
56+
|-------------------------|:------------------:|:------------------:|:-----------------------:|:------------------:|
57+
| Bitvectors | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
58+
| Arrays | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
59+
| IEEE Floats | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: [^1] | :heavy_check_mark: |
60+
| Uninterpreted Functions | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
61+
| Arithmetic | :heavy_check_mark: | | :heavy_check_mark: | :heavy_check_mark: |
62+
63+
[^1]: IEEE Floats are supported in Yices2 using ksmt-symfpu
6264

6365
### Solver-agnostic formula representation
6466

Requirements.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
| [Model based projection](#model-based-projection) | TODO |
2626
| [Support more theories](#support-more-theories) | TODO |
2727
| [Solver proofs](#solver-proofs) | TODO |
28-
| [SymFpu](#symfpu) | In progress |
28+
| [SymFpu](#symfpu) | Done |
2929
| ... | - |
3030

3131

buildSrc/src/main/kotlin/io.ksmt.ksmt-base.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ plugins {
1111
}
1212

1313
group = "io.ksmt"
14-
version = "0.5.5"
14+
version = "0.5.6"
1515

1616
repositories {
1717
mavenCentral()

docs/getting-started.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ repositories {
3434
```kotlin
3535
dependencies {
3636
// core
37-
implementation("io.ksmt:ksmt-core:0.5.5")
37+
implementation("io.ksmt:ksmt-core:0.5.6")
3838
}
3939
```
4040

@@ -43,9 +43,9 @@ dependencies {
4343
```kotlin
4444
dependencies {
4545
// z3
46-
implementation("io.ksmt:ksmt-z3:0.5.5")
46+
implementation("io.ksmt:ksmt-z3:0.5.6")
4747
// bitwuzla
48-
implementation("io.ksmt:ksmt-bitwuzla:0.5.5")
48+
implementation("io.ksmt:ksmt-bitwuzla:0.5.6")
4949
}
5050
```
5151

examples/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ repositories {
99

1010
dependencies {
1111
// core
12-
implementation("io.ksmt:ksmt-core:0.5.5")
12+
implementation("io.ksmt:ksmt-core:0.5.6")
1313
// z3 solver
14-
implementation("io.ksmt:ksmt-z3:0.5.5")
14+
implementation("io.ksmt:ksmt-z3:0.5.6")
1515
// Runner and portfolio solver
16-
implementation("io.ksmt:ksmt-runner:0.5.5")
16+
implementation("io.ksmt:ksmt-runner:0.5.6")
1717
}
1818

1919
java {

0 commit comments

Comments
 (0)