diff options
author | Kristóf Marussy <kristof@marussy.com> | 2023-12-01 19:19:12 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2024-04-07 14:55:44 +0200 |
commit | bc1be69d88600d87df55d84f4591292d4c7656c1 (patch) | |
tree | 77aed2a45394e182603d2b36700384132da33655 | |
parent | chore(z3): bump to z3 4.12.6 (diff) | |
download | refinery-bc1be69d88600d87df55d84f4591292d4c7656c1.tar.gz refinery-bc1be69d88600d87df55d84f4591292d4c7656c1.tar.zst refinery-bc1be69d88600d87df55d84f4591292d4c7656c1.zip |
feat: subproject for z3 integration
-rw-r--r-- | gradle/libs.versions.toml | 1 | ||||
-rw-r--r-- | settings.gradle.kts | 1 | ||||
-rw-r--r-- | subprojects/store-reasoning-smt/build.gradle.kts | 15 | ||||
-rw-r--r-- | subprojects/store-reasoning-smt/src/main/java/tools/refinery/store/reasoning/smt/SmtPropagator.java | 19 |
4 files changed, 36 insertions, 0 deletions
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5f9dde6e..59d1ded5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml | |||
@@ -41,6 +41,7 @@ mwe-utils = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe.utils", ver | |||
41 | mwe2-launch = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.launch", version.ref = "mwe2" } | 41 | mwe2-launch = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.launch", version.ref = "mwe2" } |
42 | mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" } | 42 | mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" } |
43 | ortools = { group = "com.google.ortools", name = "ortools-java", version = "9.9.3963" } | 43 | ortools = { group = "com.google.ortools", name = "ortools-java", version = "9.9.3963" } |
44 | refinery-z3 = { group = "tools.refinery.z3", name = "refinery-z3-solver", version = "4.12.2" } | ||
44 | slf4j-api = { group = "org.slf4j", name = "slf4j-api", version.ref = "slf4j" } | 45 | slf4j-api = { group = "org.slf4j", name = "slf4j-api", version.ref = "slf4j" } |
45 | slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" } | 46 | slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" } |
46 | slf4j-log4j = { group = "org.slf4j", name = "log4j-over-slf4j", version.ref = "slf4j" } | 47 | slf4j-log4j = { group = "org.slf4j", name = "log4j-over-slf4j", version.ref = "slf4j" } |
diff --git a/settings.gradle.kts b/settings.gradle.kts index 11b188ea..6872b3b9 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts | |||
@@ -26,6 +26,7 @@ include( | |||
26 | "store-query-interpreter", | 26 | "store-query-interpreter", |
27 | "store-reasoning", | 27 | "store-reasoning", |
28 | "store-reasoning-scope", | 28 | "store-reasoning-scope", |
29 | "store-reasoning-smt", | ||
29 | ) | 30 | ) |
30 | 31 | ||
31 | for (project in rootProject.children) { | 32 | for (project in rootProject.children) { |
diff --git a/subprojects/store-reasoning-smt/build.gradle.kts b/subprojects/store-reasoning-smt/build.gradle.kts new file mode 100644 index 00000000..4a784e42 --- /dev/null +++ b/subprojects/store-reasoning-smt/build.gradle.kts | |||
@@ -0,0 +1,15 @@ | |||
1 | /* | ||
2 | * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> | ||
3 | * | ||
4 | * SPDX-License-Identifier: EPL-2.0 | ||
5 | */ | ||
6 | |||
7 | plugins { | ||
8 | id("tools.refinery.gradle.java-library") | ||
9 | } | ||
10 | |||
11 | dependencies { | ||
12 | api(project(":refinery-store-reasoning")) | ||
13 | implementation(libs.refinery.z3) | ||
14 | testImplementation(project(":refinery-store-query-interpreter")) | ||
15 | } | ||
diff --git a/subprojects/store-reasoning-smt/src/main/java/tools/refinery/store/reasoning/smt/SmtPropagator.java b/subprojects/store-reasoning-smt/src/main/java/tools/refinery/store/reasoning/smt/SmtPropagator.java new file mode 100644 index 00000000..b63ab561 --- /dev/null +++ b/subprojects/store-reasoning-smt/src/main/java/tools/refinery/store/reasoning/smt/SmtPropagator.java | |||
@@ -0,0 +1,19 @@ | |||
1 | /* | ||
2 | * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/> | ||
3 | * | ||
4 | * SPDX-License-Identifier: EPL-2.0 | ||
5 | */ | ||
6 | package tools.refinery.store.reasoning.smt; | ||
7 | |||
8 | import com.microsoft.z3.Context; | ||
9 | import tools.refinery.z3.Z3SolverLoader; | ||
10 | |||
11 | public class SmtPropagator { | ||
12 | public void propagate() { | ||
13 | Z3SolverLoader.loadNativeLibraries(); | ||
14 | try (var context = new Context()) { | ||
15 | var solver = context.mkSolver(); | ||
16 | solver.check(); | ||
17 | } | ||
18 | } | ||
19 | } | ||