aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2023-12-01 19:19:12 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2024-04-07 14:55:44 +0200
commitbc1be69d88600d87df55d84f4591292d4c7656c1 (patch)
tree77aed2a45394e182603d2b36700384132da33655
parentchore(z3): bump to z3 4.12.6 (diff)
downloadrefinery-bc1be69d88600d87df55d84f4591292d4c7656c1.tar.gz
refinery-bc1be69d88600d87df55d84f4591292d4c7656c1.tar.zst
refinery-bc1be69d88600d87df55d84f4591292d4c7656c1.zip
feat: subproject for z3 integration
-rw-r--r--gradle/libs.versions.toml1
-rw-r--r--settings.gradle.kts1
-rw-r--r--subprojects/store-reasoning-smt/build.gradle.kts15
-rw-r--r--subprojects/store-reasoning-smt/src/main/java/tools/refinery/store/reasoning/smt/SmtPropagator.java19
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
41mwe2-launch = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.launch", version.ref = "mwe2" } 41mwe2-launch = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.launch", version.ref = "mwe2" }
42mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" } 42mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" }
43ortools = { group = "com.google.ortools", name = "ortools-java", version = "9.9.3963" } 43ortools = { group = "com.google.ortools", name = "ortools-java", version = "9.9.3963" }
44refinery-z3 = { group = "tools.refinery.z3", name = "refinery-z3-solver", version = "4.12.2" }
44slf4j-api = { group = "org.slf4j", name = "slf4j-api", version.ref = "slf4j" } 45slf4j-api = { group = "org.slf4j", name = "slf4j-api", version.ref = "slf4j" }
45slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" } 46slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" }
46slf4j-log4j = { group = "org.slf4j", name = "log4j-over-slf4j", version.ref = "slf4j" } 47slf4j-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
31for (project in rootProject.children) { 32for (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
7plugins {
8 id("tools.refinery.gradle.java-library")
9}
10
11dependencies {
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 */
6package tools.refinery.store.reasoning.smt;
7
8import com.microsoft.z3.Context;
9import tools.refinery.z3.Z3SolverLoader;
10
11public 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}