aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2023-02-25 00:55:36 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2023-02-25 00:56:29 +0100
commit71372b4d57b1c51cd892aa07343c3dbc8de3e727 (patch)
treeae3fadaa0a2558dd4c7c0779e399435c7f30f5ba
parentfeat: Dnf reduction and structural equality (diff)
downloadrefinery-71372b4d57b1c51cd892aa07343c3dbc8de3e727.tar.gz
refinery-71372b4d57b1c51cd892aa07343c3dbc8de3e727.tar.zst
refinery-71372b4d57b1c51cd892aa07343c3dbc8de3e727.zip
refactor: rename PartialInterpretation adapter
-rw-r--r--settings.gradle2
-rw-r--r--subprojects/store-partial/src/main/java/tools/refinery/store/partial/AnyPartialSymbolInterpretation.java13
-rw-r--r--subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretation.java24
-rw-r--r--subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretationAdapter.java20
-rw-r--r--subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretationBuilder.java28
-rw-r--r--subprojects/store-partial/src/main/java/tools/refinery/store/partial/internal/PartialInterpretationAdapterImpl.java38
-rw-r--r--subprojects/store-partial/src/main/java/tools/refinery/store/partial/internal/PartialInterpretationBuilderImpl.java29
-rw-r--r--subprojects/store-partial/src/main/java/tools/refinery/store/partial/internal/PartialInterpretationStoreAdapterImpl.java37
-rw-r--r--subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/TranslationUnit.java48
-rw-r--r--subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/EliminatedType.java6
-rw-r--r--subprojects/store-reasoning/build.gradle (renamed from subprojects/store-partial/build.gradle)0
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/AnyPartialInterpretation.java13
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/MergeResult.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/MergeResult.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/PartialInterpretation.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialSymbolInterpretation.java)6
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/Reasoning.java24
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java22
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningBuilder.java28
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningStoreAdapter.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretationStoreAdapter.java)8
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java38
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningBuilderImpl.java29
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningStoreAdapterImpl.java37
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/DnfLifter.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/lifting/DnfLifter.java)16
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/ModalDnf.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/lifting/ModalDnf.java)4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalDnfCallLiteral.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/ModalDnfCallLiteral.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalLiteral.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/ModalLiteral.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalRelationLiteral.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/ModalRelationLiteral.java)4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/Modality.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/Modality.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialLiterals.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/PartialLiterals.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialRelationLiteral.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/PartialRelationLiteral.java)4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialFunction.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/AnyPartialFunction.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialSymbol.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/AnyPartialSymbol.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialFunction.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/PartialFunction.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialRelation.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/PartialRelation.java)8
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialSymbol.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/PartialSymbol.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RelationRefinementAction.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/RelationRefinementAction.java)8
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/Rule.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/Rule.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleAction.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/RuleAction.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleActionExecutor.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/RuleActionExecutor.java)4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleExecutor.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/RuleExecutor.java)4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Advice.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/Advice.java)14
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/AdviceSlot.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/AdviceSlot.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Seed.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/Seed.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslationUnit.java48
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/EliminatedType.java6
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/ExtendedTypeInfo.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/ExtendedTypeInfo.java)4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMayTypeRelationView.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/InferredMayTypeRelationView.java)4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMustTypeRelationView.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/InferredMustTypeRelationView.java)4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredType.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/InferredType.java)4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/PreservedType.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/PreservedType.java)4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisResult.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalysisResult.java)2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzer.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalyzer.java)4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslationUnit.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/TypeHierarchyTranslationUnit.java)22
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeInfo.java (renamed from subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/TypeInfo.java)4
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredTypeTest.java (renamed from subprojects/store-partial/src/test/java/tools/refinery/store/partial/translator/typehierarchy/InferredTypeTest.java)4
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerExampleHierarchyTest.java (renamed from subprojects/store-partial/src/test/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalyzerExampleHierarchyTest.java)4
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTest.java (renamed from subprojects/store-partial/src/test/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalyzerTest.java)4
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTester.java (renamed from subprojects/store-partial/src/test/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalyzerTester.java)4
57 files changed, 335 insertions, 329 deletions
diff --git a/settings.gradle b/settings.gradle
index 94a3c2e6..81bcb53b 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -7,9 +7,9 @@ include 'language-model'
7include 'language-semantics' 7include 'language-semantics'
8include 'language-web' 8include 'language-web'
9include 'store' 9include 'store'
10include 'store-partial'
11include 'store-query' 10include 'store-query'
12include 'store-query-viatra' 11include 'store-query-viatra'
12include 'store-reasoning'
13 13
14for (project in rootProject.children) { 14for (project in rootProject.children) {
15 def projectName = project.name 15 def projectName = project.name
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/AnyPartialSymbolInterpretation.java b/subprojects/store-partial/src/main/java/tools/refinery/store/partial/AnyPartialSymbolInterpretation.java
deleted file mode 100644
index b6b1f2be..00000000
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/AnyPartialSymbolInterpretation.java
+++ /dev/null
@@ -1,13 +0,0 @@
1package tools.refinery.store.partial;
2
3import tools.refinery.store.partial.representation.AnyPartialSymbol;
4
5public sealed interface AnyPartialSymbolInterpretation permits PartialSymbolInterpretation {
6 PartialInterpretationAdapter getAdapter();
7
8 AnyPartialSymbol getPartialSymbol();
9
10 int countUnfinished();
11
12 int countErrors();
13}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretation.java b/subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretation.java
deleted file mode 100644
index d76f8728..00000000
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretation.java
+++ /dev/null
@@ -1,24 +0,0 @@
1package tools.refinery.store.partial;
2
3import tools.refinery.store.partial.internal.PartialInterpretationBuilderImpl;
4import tools.refinery.store.adapter.ModelAdapterBuilderFactory;
5import tools.refinery.store.model.ModelStoreBuilder;
6import tools.refinery.store.partial.representation.PartialRelation;
7
8public final class PartialInterpretation extends ModelAdapterBuilderFactory<PartialInterpretationAdapter,
9 PartialInterpretationStoreAdapter, PartialInterpretationBuilder> {
10 public static final PartialInterpretation ADAPTER = new PartialInterpretation();
11
12 public static final PartialRelation EXISTS = new PartialRelation("exists", 1);
13
14 public static final PartialRelation EQUALS = new PartialRelation("equals", 1);
15
16 private PartialInterpretation() {
17 super(PartialInterpretationAdapter.class, PartialInterpretationStoreAdapter.class, PartialInterpretationBuilder.class);
18 }
19
20 @Override
21 public PartialInterpretationBuilder createBuilder(ModelStoreBuilder storeBuilder) {
22 return new PartialInterpretationBuilderImpl(storeBuilder);
23 }
24}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretationAdapter.java b/subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretationAdapter.java
deleted file mode 100644
index b811ae7a..00000000
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretationAdapter.java
+++ /dev/null
@@ -1,20 +0,0 @@
1package tools.refinery.store.partial;
2
3import tools.refinery.store.adapter.ModelAdapter;
4import tools.refinery.store.partial.representation.AnyPartialSymbol;
5import tools.refinery.store.partial.representation.PartialSymbol;
6import tools.refinery.store.query.Dnf;
7import tools.refinery.store.query.ResultSet;
8
9public interface PartialInterpretationAdapter extends ModelAdapter {
10 @Override
11 PartialInterpretationStoreAdapter getStoreAdapter();
12
13 default AnyPartialSymbolInterpretation getPartialInterpretation(AnyPartialSymbol partialSymbol) {
14 return getPartialInterpretation((PartialSymbol<?, ?>) partialSymbol);
15 }
16
17 <A, C> PartialSymbolInterpretation<A, C> getPartialInterpretation(PartialSymbol<A, C> partialSymbol);
18
19 ResultSet getLiftedResultSet(Dnf query);
20}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretationBuilder.java b/subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretationBuilder.java
deleted file mode 100644
index db042466..00000000
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretationBuilder.java
+++ /dev/null
@@ -1,28 +0,0 @@
1package tools.refinery.store.partial;
2
3import tools.refinery.store.adapter.ModelAdapterBuilder;
4import tools.refinery.store.model.ModelStore;
5import tools.refinery.store.query.Dnf;
6import tools.refinery.store.partial.literal.Modality;
7
8import java.util.Collection;
9import java.util.List;
10
11@SuppressWarnings("UnusedReturnValue")
12public interface PartialInterpretationBuilder extends ModelAdapterBuilder {
13 default PartialInterpretationBuilder liftedQueries(Dnf... liftedQueries) {
14 return liftedQueries(List.of(liftedQueries));
15 }
16
17 default PartialInterpretationBuilder liftedQueries(Collection<Dnf> liftedQueries) {
18 liftedQueries.forEach(this::liftedQuery);
19 return this;
20 }
21
22 PartialInterpretationBuilder liftedQuery(Dnf liftedQuery);
23
24 Dnf lift(Modality modality, Dnf query);
25
26 @Override
27 PartialInterpretationStoreAdapter createStoreAdapter(ModelStore store);
28}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/internal/PartialInterpretationAdapterImpl.java b/subprojects/store-partial/src/main/java/tools/refinery/store/partial/internal/PartialInterpretationAdapterImpl.java
deleted file mode 100644
index c482d8a2..00000000
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/internal/PartialInterpretationAdapterImpl.java
+++ /dev/null
@@ -1,38 +0,0 @@
1package tools.refinery.store.partial.internal;
2
3import tools.refinery.store.model.Model;
4import tools.refinery.store.partial.PartialInterpretationAdapter;
5import tools.refinery.store.partial.PartialSymbolInterpretation;
6import tools.refinery.store.partial.representation.PartialSymbol;
7import tools.refinery.store.query.Dnf;
8import tools.refinery.store.query.ResultSet;
9
10public class PartialInterpretationAdapterImpl implements PartialInterpretationAdapter {
11 private final Model model;
12 private final PartialInterpretationStoreAdapterImpl storeAdapter;
13
14 PartialInterpretationAdapterImpl(Model model, PartialInterpretationStoreAdapterImpl storeAdapter) {
15 this.model = model;
16 this.storeAdapter = storeAdapter;
17 }
18
19 @Override
20 public Model getModel() {
21 return model;
22 }
23
24 @Override
25 public PartialInterpretationStoreAdapterImpl getStoreAdapter() {
26 return storeAdapter;
27 }
28
29 @Override
30 public <A, C> PartialSymbolInterpretation<A, C> getPartialInterpretation(PartialSymbol<A, C> partialSymbol) {
31 return null;
32 }
33
34 @Override
35 public ResultSet getLiftedResultSet(Dnf query) {
36 return null;
37 }
38}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/internal/PartialInterpretationBuilderImpl.java b/subprojects/store-partial/src/main/java/tools/refinery/store/partial/internal/PartialInterpretationBuilderImpl.java
deleted file mode 100644
index 5853aeaf..00000000
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/internal/PartialInterpretationBuilderImpl.java
+++ /dev/null
@@ -1,29 +0,0 @@
1package tools.refinery.store.partial.internal;
2
3import tools.refinery.store.adapter.AbstractModelAdapterBuilder;
4import tools.refinery.store.model.ModelStore;
5import tools.refinery.store.model.ModelStoreBuilder;
6import tools.refinery.store.partial.PartialInterpretationBuilder;
7import tools.refinery.store.partial.literal.Modality;
8import tools.refinery.store.query.Dnf;
9
10public class PartialInterpretationBuilderImpl extends AbstractModelAdapterBuilder implements PartialInterpretationBuilder {
11 public PartialInterpretationBuilderImpl(ModelStoreBuilder storeBuilder) {
12 super(storeBuilder);
13 }
14
15 @Override
16 public PartialInterpretationBuilder liftedQuery(Dnf liftedQuery) {
17 return null;
18 }
19
20 @Override
21 public Dnf lift(Modality modality, Dnf query) {
22 return null;
23 }
24
25 @Override
26 public PartialInterpretationStoreAdapterImpl createStoreAdapter(ModelStore store) {
27 return null;
28 }
29}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/internal/PartialInterpretationStoreAdapterImpl.java b/subprojects/store-partial/src/main/java/tools/refinery/store/partial/internal/PartialInterpretationStoreAdapterImpl.java
deleted file mode 100644
index 0486af6e..00000000
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/internal/PartialInterpretationStoreAdapterImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
1package tools.refinery.store.partial.internal;
2
3import tools.refinery.store.partial.PartialInterpretationStoreAdapter;
4import tools.refinery.store.model.Model;
5import tools.refinery.store.model.ModelStore;
6import tools.refinery.store.partial.representation.AnyPartialSymbol;
7import tools.refinery.store.query.Dnf;
8
9import java.util.Collection;
10
11public class PartialInterpretationStoreAdapterImpl implements PartialInterpretationStoreAdapter {
12 private final ModelStore store;
13
14 PartialInterpretationStoreAdapterImpl(ModelStore store) {
15 this.store = store;
16 }
17
18 @Override
19 public ModelStore getStore() {
20 return store;
21 }
22
23 @Override
24 public Collection<AnyPartialSymbol> getPartialSymbols() {
25 return null;
26 }
27
28 @Override
29 public Collection<Dnf> getLiftedQueries() {
30 return null;
31 }
32
33 @Override
34 public PartialInterpretationAdapterImpl createModelAdapter(Model model) {
35 return new PartialInterpretationAdapterImpl(model, this);
36 }
37}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/TranslationUnit.java b/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/TranslationUnit.java
deleted file mode 100644
index 26bd909b..00000000
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/TranslationUnit.java
+++ /dev/null
@@ -1,48 +0,0 @@
1package tools.refinery.store.partial.translator;
2
3import tools.refinery.store.partial.PartialInterpretationBuilder;
4import tools.refinery.store.model.Model;
5import tools.refinery.store.model.ModelStoreBuilder;
6import tools.refinery.store.partial.AnyPartialSymbolInterpretation;
7import tools.refinery.store.partial.literal.Modality;
8import tools.refinery.store.partial.representation.AnyPartialSymbol;
9import tools.refinery.store.partial.representation.PartialRelation;
10import tools.refinery.store.query.Variable;
11import tools.refinery.store.query.literal.CallPolarity;
12import tools.refinery.store.query.literal.Literal;
13
14import java.util.Collection;
15import java.util.List;
16import java.util.Map;
17
18public abstract class TranslationUnit {
19 private PartialInterpretationBuilder partialInterpretationBuilder;
20
21 protected PartialInterpretationBuilder getPartialInterpretationBuilder() {
22 return partialInterpretationBuilder;
23 }
24
25 public void setPartialInterpretationBuilder(PartialInterpretationBuilder partialInterpretationBuilder) {
26 this.partialInterpretationBuilder = partialInterpretationBuilder;
27 }
28
29 protected ModelStoreBuilder getModelStoreBuilder() {
30 return partialInterpretationBuilder.getStoreBuilder();
31 }
32
33 public abstract Collection<AnyPartialSymbol> getTranslatedPartialSymbols();
34
35 public Collection<Advice> computeAdvices() {
36 // No advices to give by default.
37 return List.of();
38 }
39
40 public abstract void configure(Collection<Advice> advices);
41
42 public abstract List<Literal> call(CallPolarity polarity, Modality modality, PartialRelation target,
43 List<Variable> arguments);
44
45 public abstract Map<AnyPartialSymbol, AnyPartialSymbolInterpretation> createPartialInterpretations(Model model);
46
47 public abstract void initializeModel(Model model, int nodeCount);
48}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/EliminatedType.java b/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/EliminatedType.java
deleted file mode 100644
index 9adf6bc8..00000000
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/EliminatedType.java
+++ /dev/null
@@ -1,6 +0,0 @@
1package tools.refinery.store.partial.translator.typehierarchy;
2
3import tools.refinery.store.partial.representation.PartialRelation;
4
5record EliminatedType(PartialRelation replacement) implements TypeAnalysisResult {
6}
diff --git a/subprojects/store-partial/build.gradle b/subprojects/store-reasoning/build.gradle
index cb440d9f..cb440d9f 100644
--- a/subprojects/store-partial/build.gradle
+++ b/subprojects/store-reasoning/build.gradle
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/AnyPartialInterpretation.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/AnyPartialInterpretation.java
new file mode 100644
index 00000000..ebe82c8b
--- /dev/null
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/AnyPartialInterpretation.java
@@ -0,0 +1,13 @@
1package tools.refinery.store.reasoning;
2
3import tools.refinery.store.reasoning.representation.AnyPartialSymbol;
4
5public sealed interface AnyPartialInterpretation permits PartialInterpretation {
6 ReasoningAdapter getAdapter();
7
8 AnyPartialSymbol getPartialSymbol();
9
10 int countUnfinished();
11
12 int countErrors();
13}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/MergeResult.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/MergeResult.java
index 82414d87..0d51598b 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/MergeResult.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/MergeResult.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial; 1package tools.refinery.store.reasoning;
2 2
3public enum MergeResult { 3public enum MergeResult {
4 UNCHANGED, 4 UNCHANGED,
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialSymbolInterpretation.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/PartialInterpretation.java
index fa9e9216..99656da8 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialSymbolInterpretation.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/PartialInterpretation.java
@@ -1,10 +1,10 @@
1package tools.refinery.store.partial; 1package tools.refinery.store.reasoning;
2 2
3import tools.refinery.store.partial.representation.PartialSymbol; 3import tools.refinery.store.reasoning.representation.PartialSymbol;
4import tools.refinery.store.map.Cursor; 4import tools.refinery.store.map.Cursor;
5import tools.refinery.store.tuple.Tuple; 5import tools.refinery.store.tuple.Tuple;
6 6
7public non-sealed interface PartialSymbolInterpretation<A, C> extends AnyPartialSymbolInterpretation { 7public non-sealed interface PartialInterpretation<A, C> extends AnyPartialInterpretation {
8 @Override 8 @Override
9 PartialSymbol<A, C> getPartialSymbol(); 9 PartialSymbol<A, C> getPartialSymbol();
10 10
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/Reasoning.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/Reasoning.java
new file mode 100644
index 00000000..d7d0a999
--- /dev/null
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/Reasoning.java
@@ -0,0 +1,24 @@
1package tools.refinery.store.reasoning;
2
3import tools.refinery.store.reasoning.internal.ReasoningBuilderImpl;
4import tools.refinery.store.adapter.ModelAdapterBuilderFactory;
5import tools.refinery.store.model.ModelStoreBuilder;
6import tools.refinery.store.reasoning.representation.PartialRelation;
7
8public final class Reasoning extends ModelAdapterBuilderFactory<ReasoningAdapter,
9 ReasoningStoreAdapter, ReasoningBuilder> {
10 public static final Reasoning ADAPTER = new Reasoning();
11
12 public static final PartialRelation EXISTS = new PartialRelation("exists", 1);
13
14 public static final PartialRelation EQUALS = new PartialRelation("equals", 1);
15
16 private Reasoning() {
17 super(ReasoningAdapter.class, ReasoningStoreAdapter.class, ReasoningBuilder.class);
18 }
19
20 @Override
21 public ReasoningBuilder createBuilder(ModelStoreBuilder storeBuilder) {
22 return new ReasoningBuilderImpl(storeBuilder);
23 }
24}
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java
new file mode 100644
index 00000000..e602242e
--- /dev/null
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningAdapter.java
@@ -0,0 +1,22 @@
1package tools.refinery.store.reasoning;
2
3import tools.refinery.store.adapter.ModelAdapter;
4import tools.refinery.store.reasoning.representation.AnyPartialSymbol;
5import tools.refinery.store.reasoning.representation.PartialSymbol;
6import tools.refinery.store.query.Dnf;
7import tools.refinery.store.query.ResultSet;
8
9public interface ReasoningAdapter extends ModelAdapter {
10 @Override
11 ReasoningStoreAdapter getStoreAdapter();
12
13 default AnyPartialInterpretation getPartialInterpretation(AnyPartialSymbol partialSymbol) {
14 // Cast to disambiguate overloads.
15 var typedPartialSymbol = (PartialSymbol<?, ?>) partialSymbol;
16 return getPartialInterpretation(typedPartialSymbol);
17 }
18
19 <A, C> PartialInterpretation<A, C> getPartialInterpretation(PartialSymbol<A, C> partialSymbol);
20
21 ResultSet getLiftedResultSet(Dnf query);
22}
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningBuilder.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningBuilder.java
new file mode 100644
index 00000000..588c2711
--- /dev/null
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningBuilder.java
@@ -0,0 +1,28 @@
1package tools.refinery.store.reasoning;
2
3import tools.refinery.store.adapter.ModelAdapterBuilder;
4import tools.refinery.store.model.ModelStore;
5import tools.refinery.store.reasoning.literal.Modality;
6import tools.refinery.store.query.Dnf;
7
8import java.util.Collection;
9import java.util.List;
10
11@SuppressWarnings("UnusedReturnValue")
12public interface ReasoningBuilder extends ModelAdapterBuilder {
13 default ReasoningBuilder liftedQueries(Dnf... liftedQueries) {
14 return liftedQueries(List.of(liftedQueries));
15 }
16
17 default ReasoningBuilder liftedQueries(Collection<Dnf> liftedQueries) {
18 liftedQueries.forEach(this::liftedQuery);
19 return this;
20 }
21
22 ReasoningBuilder liftedQuery(Dnf liftedQuery);
23
24 Dnf lift(Modality modality, Dnf query);
25
26 @Override
27 ReasoningStoreAdapter createStoreAdapter(ModelStore store);
28}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretationStoreAdapter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningStoreAdapter.java
index a1813671..69c0f5eb 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/PartialInterpretationStoreAdapter.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningStoreAdapter.java
@@ -1,17 +1,17 @@
1package tools.refinery.store.partial; 1package tools.refinery.store.reasoning;
2 2
3import tools.refinery.store.adapter.ModelStoreAdapter; 3import tools.refinery.store.adapter.ModelStoreAdapter;
4import tools.refinery.store.model.Model; 4import tools.refinery.store.model.Model;
5import tools.refinery.store.partial.representation.AnyPartialSymbol; 5import tools.refinery.store.reasoning.representation.AnyPartialSymbol;
6import tools.refinery.store.query.Dnf; 6import tools.refinery.store.query.Dnf;
7 7
8import java.util.Collection; 8import java.util.Collection;
9 9
10public interface PartialInterpretationStoreAdapter extends ModelStoreAdapter { 10public interface ReasoningStoreAdapter extends ModelStoreAdapter {
11 Collection<AnyPartialSymbol> getPartialSymbols(); 11 Collection<AnyPartialSymbol> getPartialSymbols();
12 12
13 Collection<Dnf> getLiftedQueries(); 13 Collection<Dnf> getLiftedQueries();
14 14
15 @Override 15 @Override
16 PartialInterpretationAdapter createModelAdapter(Model model); 16 ReasoningAdapter createModelAdapter(Model model);
17} 17}
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java
new file mode 100644
index 00000000..a7a56680
--- /dev/null
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java
@@ -0,0 +1,38 @@
1package tools.refinery.store.reasoning.internal;
2
3import tools.refinery.store.model.Model;
4import tools.refinery.store.reasoning.ReasoningAdapter;
5import tools.refinery.store.reasoning.PartialInterpretation;
6import tools.refinery.store.reasoning.representation.PartialSymbol;
7import tools.refinery.store.query.Dnf;
8import tools.refinery.store.query.ResultSet;
9
10public class ReasoningAdapterImpl implements ReasoningAdapter {
11 private final Model model;
12 private final ReasoningStoreAdapterImpl storeAdapter;
13
14 ReasoningAdapterImpl(Model model, ReasoningStoreAdapterImpl storeAdapter) {
15 this.model = model;
16 this.storeAdapter = storeAdapter;
17 }
18
19 @Override
20 public Model getModel() {
21 return model;
22 }
23
24 @Override
25 public ReasoningStoreAdapterImpl getStoreAdapter() {
26 return storeAdapter;
27 }
28
29 @Override
30 public <A, C> PartialInterpretation<A, C> getPartialInterpretation(PartialSymbol<A, C> partialSymbol) {
31 return null;
32 }
33
34 @Override
35 public ResultSet getLiftedResultSet(Dnf query) {
36 return null;
37 }
38}
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningBuilderImpl.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningBuilderImpl.java
new file mode 100644
index 00000000..2860e2b9
--- /dev/null
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningBuilderImpl.java
@@ -0,0 +1,29 @@
1package tools.refinery.store.reasoning.internal;
2
3import tools.refinery.store.adapter.AbstractModelAdapterBuilder;
4import tools.refinery.store.model.ModelStore;
5import tools.refinery.store.model.ModelStoreBuilder;
6import tools.refinery.store.reasoning.ReasoningBuilder;
7import tools.refinery.store.reasoning.literal.Modality;
8import tools.refinery.store.query.Dnf;
9
10public class ReasoningBuilderImpl extends AbstractModelAdapterBuilder implements ReasoningBuilder {
11 public ReasoningBuilderImpl(ModelStoreBuilder storeBuilder) {
12 super(storeBuilder);
13 }
14
15 @Override
16 public ReasoningBuilder liftedQuery(Dnf liftedQuery) {
17 return null;
18 }
19
20 @Override
21 public Dnf lift(Modality modality, Dnf query) {
22 return null;
23 }
24
25 @Override
26 public ReasoningStoreAdapterImpl createStoreAdapter(ModelStore store) {
27 return null;
28 }
29}
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningStoreAdapterImpl.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningStoreAdapterImpl.java
new file mode 100644
index 00000000..763dad6d
--- /dev/null
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningStoreAdapterImpl.java
@@ -0,0 +1,37 @@
1package tools.refinery.store.reasoning.internal;
2
3import tools.refinery.store.reasoning.ReasoningStoreAdapter;
4import tools.refinery.store.model.Model;
5import tools.refinery.store.model.ModelStore;
6import tools.refinery.store.reasoning.representation.AnyPartialSymbol;
7import tools.refinery.store.query.Dnf;
8
9import java.util.Collection;
10
11public class ReasoningStoreAdapterImpl implements ReasoningStoreAdapter {
12 private final ModelStore store;
13
14 ReasoningStoreAdapterImpl(ModelStore store) {
15 this.store = store;
16 }
17
18 @Override
19 public ModelStore getStore() {
20 return store;
21 }
22
23 @Override
24 public Collection<AnyPartialSymbol> getPartialSymbols() {
25 return null;
26 }
27
28 @Override
29 public Collection<Dnf> getLiftedQueries() {
30 return null;
31 }
32
33 @Override
34 public ReasoningAdapterImpl createModelAdapter(Model model) {
35 return new ReasoningAdapterImpl(model, this);
36 }
37}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/lifting/DnfLifter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/DnfLifter.java
index 1c35b925..966e080a 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/lifting/DnfLifter.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/DnfLifter.java
@@ -1,10 +1,10 @@
1package tools.refinery.store.partial.lifting; 1package tools.refinery.store.reasoning.lifting;
2 2
3import org.jetbrains.annotations.Nullable; 3import org.jetbrains.annotations.Nullable;
4import tools.refinery.store.partial.literal.ModalDnfCallLiteral; 4import tools.refinery.store.reasoning.literal.ModalDnfCallLiteral;
5import tools.refinery.store.partial.PartialInterpretation; 5import tools.refinery.store.reasoning.Reasoning;
6import tools.refinery.store.partial.literal.ModalRelationLiteral; 6import tools.refinery.store.reasoning.literal.ModalRelationLiteral;
7import tools.refinery.store.partial.literal.PartialRelationLiteral; 7import tools.refinery.store.reasoning.literal.PartialRelationLiteral;
8import tools.refinery.store.query.Dnf; 8import tools.refinery.store.query.Dnf;
9import tools.refinery.store.query.DnfBuilder; 9import tools.refinery.store.query.DnfBuilder;
10import tools.refinery.store.query.DnfClause; 10import tools.refinery.store.query.DnfClause;
@@ -12,7 +12,7 @@ import tools.refinery.store.query.Variable;
12import tools.refinery.store.query.literal.CallPolarity; 12import tools.refinery.store.query.literal.CallPolarity;
13import tools.refinery.store.query.literal.DnfCallLiteral; 13import tools.refinery.store.query.literal.DnfCallLiteral;
14import tools.refinery.store.query.literal.Literal; 14import tools.refinery.store.query.literal.Literal;
15import tools.refinery.store.partial.literal.Modality; 15import tools.refinery.store.reasoning.literal.Modality;
16import tools.refinery.store.util.CycleDetectingMapper; 16import tools.refinery.store.util.CycleDetectingMapper;
17 17
18import java.util.ArrayList; 18import java.util.ArrayList;
@@ -66,7 +66,7 @@ public class DnfLifter {
66 } 66 }
67 for (var quantifiedVariable : quantifiedVariables) { 67 for (var quantifiedVariable : quantifiedVariables) {
68 // Quantify over variables that are not already quantified with the expected modality. 68 // Quantify over variables that are not already quantified with the expected modality.
69 liftedLiterals.add(PartialInterpretation.EXISTS.call(CallPolarity.POSITIVE, modality, 69 liftedLiterals.add(Reasoning.EXISTS.call(CallPolarity.POSITIVE, modality,
70 List.of(quantifiedVariable))); 70 List.of(quantifiedVariable)));
71 } 71 }
72 builder.clause(liftedLiterals); 72 builder.clause(liftedLiterals);
@@ -78,7 +78,7 @@ public class DnfLifter {
78 if (literal instanceof ModalRelationLiteral modalRelationLiteral && 78 if (literal instanceof ModalRelationLiteral modalRelationLiteral &&
79 modalRelationLiteral.getPolarity() == CallPolarity.POSITIVE && 79 modalRelationLiteral.getPolarity() == CallPolarity.POSITIVE &&
80 modalRelationLiteral.getModality() == modality && 80 modalRelationLiteral.getModality() == modality &&
81 modalRelationLiteral.getTarget().equals(PartialInterpretation.EXISTS)) { 81 modalRelationLiteral.getTarget().equals(Reasoning.EXISTS)) {
82 return modalRelationLiteral.getArguments().get(0); 82 return modalRelationLiteral.getArguments().get(0);
83 } 83 }
84 return null; 84 return null;
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/lifting/ModalDnf.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/ModalDnf.java
index 6fe54ad9..7aa98bf2 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/lifting/ModalDnf.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/ModalDnf.java
@@ -1,7 +1,7 @@
1package tools.refinery.store.partial.lifting; 1package tools.refinery.store.reasoning.lifting;
2 2
3import tools.refinery.store.query.Dnf; 3import tools.refinery.store.query.Dnf;
4import tools.refinery.store.partial.literal.Modality; 4import tools.refinery.store.reasoning.literal.Modality;
5 5
6public record ModalDnf(Modality modality, Dnf dnf) { 6public record ModalDnf(Modality modality, Dnf dnf) {
7 @Override 7 @Override
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/ModalDnfCallLiteral.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalDnfCallLiteral.java
index 8c157187..1090f1ae 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/ModalDnfCallLiteral.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalDnfCallLiteral.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial.literal; 1package tools.refinery.store.reasoning.literal;
2 2
3import tools.refinery.store.query.Dnf; 3import tools.refinery.store.query.Dnf;
4import tools.refinery.store.query.Variable; 4import tools.refinery.store.query.Variable;
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/ModalLiteral.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalLiteral.java
index cebe9c9d..5992f172 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/ModalLiteral.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalLiteral.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial.literal; 1package tools.refinery.store.reasoning.literal;
2 2
3import tools.refinery.store.query.RelationLike; 3import tools.refinery.store.query.RelationLike;
4import tools.refinery.store.query.Variable; 4import tools.refinery.store.query.Variable;
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/ModalRelationLiteral.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalRelationLiteral.java
index 39054f22..9c72bd37 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/ModalRelationLiteral.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalRelationLiteral.java
@@ -1,6 +1,6 @@
1package tools.refinery.store.partial.literal; 1package tools.refinery.store.reasoning.literal;
2 2
3import tools.refinery.store.partial.representation.PartialRelation; 3import tools.refinery.store.reasoning.representation.PartialRelation;
4import tools.refinery.store.query.Variable; 4import tools.refinery.store.query.Variable;
5import tools.refinery.store.query.literal.CallPolarity; 5import tools.refinery.store.query.literal.CallPolarity;
6import tools.refinery.store.query.literal.PolarLiteral; 6import tools.refinery.store.query.literal.PolarLiteral;
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/Modality.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/Modality.java
index d647ef0a..f0cb59de 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/Modality.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/Modality.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial.literal; 1package tools.refinery.store.reasoning.literal;
2 2
3import tools.refinery.store.query.literal.CallPolarity; 3import tools.refinery.store.query.literal.CallPolarity;
4 4
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/PartialLiterals.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialLiterals.java
index 51d388d3..10e4c7f7 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/PartialLiterals.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialLiterals.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial.literal; 1package tools.refinery.store.reasoning.literal;
2 2
3import tools.refinery.store.query.literal.DnfCallLiteral; 3import tools.refinery.store.query.literal.DnfCallLiteral;
4 4
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/PartialRelationLiteral.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialRelationLiteral.java
index b81d9a3d..aff84538 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/literal/PartialRelationLiteral.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialRelationLiteral.java
@@ -1,6 +1,6 @@
1package tools.refinery.store.partial.literal; 1package tools.refinery.store.reasoning.literal;
2 2
3import tools.refinery.store.partial.representation.PartialRelation; 3import tools.refinery.store.reasoning.representation.PartialRelation;
4import tools.refinery.store.query.Variable; 4import tools.refinery.store.query.Variable;
5import tools.refinery.store.query.literal.CallLiteral; 5import tools.refinery.store.query.literal.CallLiteral;
6import tools.refinery.store.query.literal.CallPolarity; 6import tools.refinery.store.query.literal.CallPolarity;
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/AnyPartialFunction.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialFunction.java
index 1113245e..e74cd58b 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/AnyPartialFunction.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialFunction.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial.representation; 1package tools.refinery.store.reasoning.representation;
2 2
3public sealed interface AnyPartialFunction extends AnyPartialSymbol permits PartialFunction { 3public sealed interface AnyPartialFunction extends AnyPartialSymbol permits PartialFunction {
4} 4}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/AnyPartialSymbol.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialSymbol.java
index 25096e74..6ff5031b 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/AnyPartialSymbol.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialSymbol.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial.representation; 1package tools.refinery.store.reasoning.representation;
2 2
3import tools.refinery.store.representation.AnyAbstractDomain; 3import tools.refinery.store.representation.AnyAbstractDomain;
4 4
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/PartialFunction.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialFunction.java
index 3c186f6f..59eeeefe 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/PartialFunction.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialFunction.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial.representation; 1package tools.refinery.store.reasoning.representation;
2 2
3import tools.refinery.store.representation.AbstractDomain; 3import tools.refinery.store.representation.AbstractDomain;
4 4
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/PartialRelation.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialRelation.java
index 51c2f28d..f884f8d6 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/PartialRelation.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialRelation.java
@@ -1,8 +1,8 @@
1package tools.refinery.store.partial.representation; 1package tools.refinery.store.reasoning.representation;
2 2
3import tools.refinery.store.partial.literal.Modality; 3import tools.refinery.store.reasoning.literal.Modality;
4import tools.refinery.store.partial.literal.PartialRelationLiteral; 4import tools.refinery.store.reasoning.literal.PartialRelationLiteral;
5import tools.refinery.store.partial.literal.ModalRelationLiteral; 5import tools.refinery.store.reasoning.literal.ModalRelationLiteral;
6import tools.refinery.store.query.RelationLike; 6import tools.refinery.store.query.RelationLike;
7import tools.refinery.store.query.Variable; 7import tools.refinery.store.query.Variable;
8import tools.refinery.store.query.literal.CallPolarity; 8import tools.refinery.store.query.literal.CallPolarity;
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/PartialSymbol.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialSymbol.java
index 38533fa9..1af11f2e 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/representation/PartialSymbol.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialSymbol.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial.representation; 1package tools.refinery.store.reasoning.representation;
2 2
3import tools.refinery.store.representation.AbstractDomain; 3import tools.refinery.store.representation.AbstractDomain;
4 4
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/RelationRefinementAction.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RelationRefinementAction.java
index 6c89653d..c7681b53 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/RelationRefinementAction.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RelationRefinementAction.java
@@ -1,7 +1,7 @@
1package tools.refinery.store.partial.rule; 1package tools.refinery.store.reasoning.rule;
2 2
3import tools.refinery.store.partial.PartialInterpretation; 3import tools.refinery.store.reasoning.Reasoning;
4import tools.refinery.store.partial.representation.PartialRelation; 4import tools.refinery.store.reasoning.representation.PartialRelation;
5import tools.refinery.store.model.Model; 5import tools.refinery.store.model.Model;
6import tools.refinery.store.query.Variable; 6import tools.refinery.store.query.Variable;
7import tools.refinery.store.representation.TruthValue; 7import tools.refinery.store.representation.TruthValue;
@@ -23,7 +23,7 @@ public record RelationRefinementAction(PartialRelation target, List<Variable> ar
23 23
24 @Override 24 @Override
25 public RuleActionExecutor createExecutor(int[] argumentIndices, Model model) { 25 public RuleActionExecutor createExecutor(int[] argumentIndices, Model model) {
26 var targetInterpretation = model.getAdapter(PartialInterpretation.ADAPTER).getPartialInterpretation(target); 26 var targetInterpretation = model.getAdapter(Reasoning.ADAPTER).getPartialInterpretation(target);
27 return activationTuple -> { 27 return activationTuple -> {
28 int arity = argumentIndices.length; 28 int arity = argumentIndices.length;
29 var arguments = new int[arity]; 29 var arguments = new int[arity];
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/Rule.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/Rule.java
index c114b8cf..8a812518 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/Rule.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/Rule.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial.rule; 1package tools.refinery.store.reasoning.rule;
2 2
3import tools.refinery.store.model.Model; 3import tools.refinery.store.model.Model;
4import tools.refinery.store.query.Dnf; 4import tools.refinery.store.query.Dnf;
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/RuleAction.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleAction.java
index 7a8ede40..bf980759 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/RuleAction.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleAction.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial.rule; 1package tools.refinery.store.reasoning.rule;
2 2
3import tools.refinery.store.model.Model; 3import tools.refinery.store.model.Model;
4import tools.refinery.store.query.Variable; 4import tools.refinery.store.query.Variable;
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/RuleActionExecutor.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleActionExecutor.java
index 1c2db5f1..80bfa6f8 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/RuleActionExecutor.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleActionExecutor.java
@@ -1,6 +1,6 @@
1package tools.refinery.store.partial.rule; 1package tools.refinery.store.reasoning.rule;
2 2
3import tools.refinery.store.partial.MergeResult; 3import tools.refinery.store.reasoning.MergeResult;
4import tools.refinery.store.tuple.TupleLike; 4import tools.refinery.store.tuple.TupleLike;
5 5
6@FunctionalInterface 6@FunctionalInterface
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/RuleExecutor.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleExecutor.java
index 41d79306..1e5322b4 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/rule/RuleExecutor.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleExecutor.java
@@ -1,6 +1,6 @@
1package tools.refinery.store.partial.rule; 1package tools.refinery.store.reasoning.rule;
2 2
3import tools.refinery.store.partial.MergeResult; 3import tools.refinery.store.reasoning.MergeResult;
4import tools.refinery.store.model.Model; 4import tools.refinery.store.model.Model;
5import tools.refinery.store.tuple.TupleLike; 5import tools.refinery.store.tuple.TupleLike;
6 6
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/Advice.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Advice.java
index 65040a8e..7909a7e1 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/Advice.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Advice.java
@@ -1,9 +1,10 @@
1package tools.refinery.store.partial.translator; 1package tools.refinery.store.reasoning.translator;
2 2
3import tools.refinery.store.partial.representation.AnyPartialSymbol; 3import tools.refinery.store.reasoning.representation.AnyPartialSymbol;
4import tools.refinery.store.partial.representation.PartialRelation; 4import tools.refinery.store.reasoning.representation.PartialRelation;
5import tools.refinery.store.query.Variable; 5import tools.refinery.store.query.Variable;
6import tools.refinery.store.query.literal.Literal; 6import tools.refinery.store.query.literal.Literal;
7import tools.refinery.store.query.substitution.Substitutions;
7 8
8import java.util.*; 9import java.util.*;
9 10
@@ -61,10 +62,13 @@ public final class Advice {
61 checkArity(substituteParameters); 62 checkArity(substituteParameters);
62 markProcessed(); 63 markProcessed();
63 int arity = parameters.size(); 64 int arity = parameters.size();
64 var substitution = new HashMap<Variable, Variable>(arity); 65 var variableMap = new HashMap<Variable, Variable>(arity);
65 for (int i = 0; i < arity; i++) { 66 for (int i = 0; i < arity; i++) {
66 substitution.put(parameters.get(i), substituteParameters.get(i)); 67 variableMap.put(parameters.get(i), substituteParameters.get(i));
67 } 68 }
69 // Use a renewing substitution to remove any non-parameter variables and avoid clashed between variables
70 // coming from different advice in the same clause.
71 var substitution = Substitutions.renewing(variableMap);
68 return literals.stream().map(literal -> literal.substitute(substitution)).toList(); 72 return literals.stream().map(literal -> literal.substitute(substitution)).toList();
69 } 73 }
70 74
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/AdviceSlot.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/AdviceSlot.java
index 3702a8ac..f3bd9c5e 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/AdviceSlot.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/AdviceSlot.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial.translator; 1package tools.refinery.store.reasoning.translator;
2 2
3import tools.refinery.store.representation.TruthValue; 3import tools.refinery.store.representation.TruthValue;
4 4
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/Seed.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Seed.java
index c56b06ed..779eadbe 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/Seed.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/Seed.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial.translator; 1package tools.refinery.store.reasoning.translator;
2 2
3import tools.refinery.store.map.Cursor; 3import tools.refinery.store.map.Cursor;
4import tools.refinery.store.tuple.Tuple; 4import tools.refinery.store.tuple.Tuple;
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslationUnit.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslationUnit.java
new file mode 100644
index 00000000..e45d20c8
--- /dev/null
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/TranslationUnit.java
@@ -0,0 +1,48 @@
1package tools.refinery.store.reasoning.translator;
2
3import tools.refinery.store.reasoning.ReasoningBuilder;
4import tools.refinery.store.model.Model;
5import tools.refinery.store.model.ModelStoreBuilder;
6import tools.refinery.store.reasoning.AnyPartialInterpretation;
7import tools.refinery.store.reasoning.literal.Modality;
8import tools.refinery.store.reasoning.representation.AnyPartialSymbol;
9import tools.refinery.store.reasoning.representation.PartialRelation;
10import tools.refinery.store.query.Variable;
11import tools.refinery.store.query.literal.CallPolarity;
12import tools.refinery.store.query.literal.Literal;
13
14import java.util.Collection;
15import java.util.List;
16import java.util.Map;
17
18public abstract class TranslationUnit {
19 private ReasoningBuilder reasoningBuilder;
20
21 protected ReasoningBuilder getPartialInterpretationBuilder() {
22 return reasoningBuilder;
23 }
24
25 public void setPartialInterpretationBuilder(ReasoningBuilder reasoningBuilder) {
26 this.reasoningBuilder = reasoningBuilder;
27 }
28
29 protected ModelStoreBuilder getModelStoreBuilder() {
30 return reasoningBuilder.getStoreBuilder();
31 }
32
33 public abstract Collection<AnyPartialSymbol> getTranslatedPartialSymbols();
34
35 public Collection<Advice> computeAdvices() {
36 // No advices to give by default.
37 return List.of();
38 }
39
40 public abstract void configure(Collection<Advice> advices);
41
42 public abstract List<Literal> call(CallPolarity polarity, Modality modality, PartialRelation target,
43 List<Variable> arguments);
44
45 public abstract Map<AnyPartialSymbol, AnyPartialInterpretation> createPartialInterpretations(Model model);
46
47 public abstract void initializeModel(Model model, int nodeCount);
48}
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/EliminatedType.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/EliminatedType.java
new file mode 100644
index 00000000..1b8d7cc9
--- /dev/null
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/EliminatedType.java
@@ -0,0 +1,6 @@
1package tools.refinery.store.reasoning.translator.typehierarchy;
2
3import tools.refinery.store.reasoning.representation.PartialRelation;
4
5record EliminatedType(PartialRelation replacement) implements TypeAnalysisResult {
6}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/ExtendedTypeInfo.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/ExtendedTypeInfo.java
index d3f66a4c..43b8e1dd 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/ExtendedTypeInfo.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/ExtendedTypeInfo.java
@@ -1,7 +1,7 @@
1package tools.refinery.store.partial.translator.typehierarchy; 1package tools.refinery.store.reasoning.translator.typehierarchy;
2 2
3import org.jetbrains.annotations.NotNull; 3import org.jetbrains.annotations.NotNull;
4import tools.refinery.store.partial.representation.PartialRelation; 4import tools.refinery.store.reasoning.representation.PartialRelation;
5 5
6import java.util.HashSet; 6import java.util.HashSet;
7import java.util.LinkedHashSet; 7import java.util.LinkedHashSet;
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/InferredMayTypeRelationView.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMayTypeRelationView.java
index ff761936..12c37c86 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/InferredMayTypeRelationView.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMayTypeRelationView.java
@@ -1,6 +1,6 @@
1package tools.refinery.store.partial.translator.typehierarchy; 1package tools.refinery.store.reasoning.translator.typehierarchy;
2 2
3import tools.refinery.store.partial.representation.PartialRelation; 3import tools.refinery.store.reasoning.representation.PartialRelation;
4import tools.refinery.store.query.view.TuplePreservingRelationView; 4import tools.refinery.store.query.view.TuplePreservingRelationView;
5import tools.refinery.store.tuple.Tuple; 5import tools.refinery.store.tuple.Tuple;
6 6
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/InferredMustTypeRelationView.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMustTypeRelationView.java
index 4eca0a1c..975f627e 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/InferredMustTypeRelationView.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMustTypeRelationView.java
@@ -1,6 +1,6 @@
1package tools.refinery.store.partial.translator.typehierarchy; 1package tools.refinery.store.reasoning.translator.typehierarchy;
2 2
3import tools.refinery.store.partial.representation.PartialRelation; 3import tools.refinery.store.reasoning.representation.PartialRelation;
4import tools.refinery.store.query.view.TuplePreservingRelationView; 4import tools.refinery.store.query.view.TuplePreservingRelationView;
5import tools.refinery.store.tuple.Tuple; 5import tools.refinery.store.tuple.Tuple;
6 6
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/InferredType.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredType.java
index 729b1fb5..a366e262 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/InferredType.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredType.java
@@ -1,6 +1,6 @@
1package tools.refinery.store.partial.translator.typehierarchy; 1package tools.refinery.store.reasoning.translator.typehierarchy;
2 2
3import tools.refinery.store.partial.representation.PartialRelation; 3import tools.refinery.store.reasoning.representation.PartialRelation;
4 4
5import java.util.Collections; 5import java.util.Collections;
6import java.util.Set; 6import java.util.Set;
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/PreservedType.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/PreservedType.java
index 0299ae03..63dba964 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/PreservedType.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/PreservedType.java
@@ -1,6 +1,6 @@
1package tools.refinery.store.partial.translator.typehierarchy; 1package tools.refinery.store.reasoning.translator.typehierarchy;
2 2
3import tools.refinery.store.partial.representation.PartialRelation; 3import tools.refinery.store.reasoning.representation.PartialRelation;
4import tools.refinery.store.representation.TruthValue; 4import tools.refinery.store.representation.TruthValue;
5 5
6import java.util.*; 6import java.util.*;
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalysisResult.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisResult.java
index 0745f84e..4f915108 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalysisResult.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisResult.java
@@ -1,4 +1,4 @@
1package tools.refinery.store.partial.translator.typehierarchy; 1package tools.refinery.store.reasoning.translator.typehierarchy;
2 2
3sealed interface TypeAnalysisResult permits EliminatedType, PreservedType { 3sealed interface TypeAnalysisResult permits EliminatedType, PreservedType {
4} 4}
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalyzer.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzer.java
index 062b4c49..62f8e750 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalyzer.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzer.java
@@ -1,6 +1,6 @@
1package tools.refinery.store.partial.translator.typehierarchy; 1package tools.refinery.store.reasoning.translator.typehierarchy;
2 2
3import tools.refinery.store.partial.representation.PartialRelation; 3import tools.refinery.store.reasoning.representation.PartialRelation;
4 4
5import java.util.*; 5import java.util.*;
6 6
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/TypeHierarchyTranslationUnit.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslationUnit.java
index 7f438f71..c800b4cd 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/TypeHierarchyTranslationUnit.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslationUnit.java
@@ -1,11 +1,11 @@
1package tools.refinery.store.partial.translator.typehierarchy; 1package tools.refinery.store.reasoning.translator.typehierarchy;
2 2
3import tools.refinery.store.partial.AnyPartialSymbolInterpretation; 3import tools.refinery.store.reasoning.AnyPartialInterpretation;
4import tools.refinery.store.partial.literal.Modality; 4import tools.refinery.store.reasoning.literal.Modality;
5import tools.refinery.store.partial.representation.AnyPartialSymbol; 5import tools.refinery.store.reasoning.representation.AnyPartialSymbol;
6import tools.refinery.store.partial.representation.PartialRelation; 6import tools.refinery.store.reasoning.representation.PartialRelation;
7import tools.refinery.store.partial.translator.Advice; 7import tools.refinery.store.reasoning.translator.Advice;
8import tools.refinery.store.partial.translator.TranslationUnit; 8import tools.refinery.store.reasoning.translator.TranslationUnit;
9import tools.refinery.store.model.Model; 9import tools.refinery.store.model.Model;
10import tools.refinery.store.query.Variable; 10import tools.refinery.store.query.Variable;
11import tools.refinery.store.query.literal.CallPolarity; 11import tools.refinery.store.query.literal.CallPolarity;
@@ -18,10 +18,10 @@ public class TypeHierarchyTranslationUnit extends TranslationUnit {
18 static final Symbol<InferredType> INFERRED_TYPE_SYMBOL = new Symbol<>("inferredType", 1, 18 static final Symbol<InferredType> INFERRED_TYPE_SYMBOL = new Symbol<>("inferredType", 1,
19 InferredType.class, InferredType.UNTYPED); 19 InferredType.class, InferredType.UNTYPED);
20 20
21 private final Map<PartialRelation, TypeInfo> typeInfoMap; 21 private final TypeAnalyzer typeAnalyzer;
22 22
23 public TypeHierarchyTranslationUnit(Map<PartialRelation, TypeInfo> typeInfoMap) { 23 public TypeHierarchyTranslationUnit(Map<PartialRelation, TypeInfo> typeInfoMap) {
24 this.typeInfoMap = new LinkedHashMap<>(typeInfoMap); 24 typeAnalyzer = new TypeAnalyzer(typeInfoMap);
25 } 25 }
26 26
27 @Override 27 @Override
@@ -41,7 +41,7 @@ public class TypeHierarchyTranslationUnit extends TranslationUnit {
41 } 41 }
42 42
43 @Override 43 @Override
44 public Map<AnyPartialSymbol, AnyPartialSymbolInterpretation> createPartialInterpretations(Model model) { 44 public Map<AnyPartialSymbol, AnyPartialInterpretation> createPartialInterpretations(Model model) {
45 return null; 45 return null;
46 } 46 }
47 47
diff --git a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/TypeInfo.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeInfo.java
index 1b0922fe..313df4df 100644
--- a/subprojects/store-partial/src/main/java/tools/refinery/store/partial/translator/typehierarchy/TypeInfo.java
+++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeInfo.java
@@ -1,6 +1,6 @@
1package tools.refinery.store.partial.translator.typehierarchy; 1package tools.refinery.store.reasoning.translator.typehierarchy;
2 2
3import tools.refinery.store.partial.representation.PartialRelation; 3import tools.refinery.store.reasoning.representation.PartialRelation;
4 4
5import java.util.*; 5import java.util.*;
6 6
diff --git a/subprojects/store-partial/src/test/java/tools/refinery/store/partial/translator/typehierarchy/InferredTypeTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredTypeTest.java
index 9efa76ef..a8df2312 100644
--- a/subprojects/store-partial/src/test/java/tools/refinery/store/partial/translator/typehierarchy/InferredTypeTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredTypeTest.java
@@ -1,7 +1,7 @@
1package tools.refinery.store.partial.translator.typehierarchy; 1package tools.refinery.store.reasoning.translator.typehierarchy;
2 2
3import org.junit.jupiter.api.Test; 3import org.junit.jupiter.api.Test;
4import tools.refinery.store.partial.representation.PartialRelation; 4import tools.refinery.store.reasoning.representation.PartialRelation;
5 5
6import java.util.Set; 6import java.util.Set;
7 7
diff --git a/subprojects/store-partial/src/test/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalyzerExampleHierarchyTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerExampleHierarchyTest.java
index 5f528328..b2c1ef1b 100644
--- a/subprojects/store-partial/src/test/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalyzerExampleHierarchyTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerExampleHierarchyTest.java
@@ -1,8 +1,8 @@
1package tools.refinery.store.partial.translator.typehierarchy; 1package tools.refinery.store.reasoning.translator.typehierarchy;
2 2
3import org.junit.jupiter.api.BeforeEach; 3import org.junit.jupiter.api.BeforeEach;
4import org.junit.jupiter.api.Test; 4import org.junit.jupiter.api.Test;
5import tools.refinery.store.partial.representation.PartialRelation; 5import tools.refinery.store.reasoning.representation.PartialRelation;
6import tools.refinery.store.representation.TruthValue; 6import tools.refinery.store.representation.TruthValue;
7 7
8import java.util.LinkedHashMap; 8import java.util.LinkedHashMap;
diff --git a/subprojects/store-partial/src/test/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalyzerTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTest.java
index 02903026..b7b69ed8 100644
--- a/subprojects/store-partial/src/test/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalyzerTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTest.java
@@ -1,7 +1,7 @@
1package tools.refinery.store.partial.translator.typehierarchy; 1package tools.refinery.store.reasoning.translator.typehierarchy;
2 2
3import org.junit.jupiter.api.Test; 3import org.junit.jupiter.api.Test;
4import tools.refinery.store.partial.representation.PartialRelation; 4import tools.refinery.store.reasoning.representation.PartialRelation;
5import tools.refinery.store.representation.TruthValue; 5import tools.refinery.store.representation.TruthValue;
6 6
7import java.util.LinkedHashMap; 7import java.util.LinkedHashMap;
diff --git a/subprojects/store-partial/src/test/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalyzerTester.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTester.java
index ce600ea6..56407730 100644
--- a/subprojects/store-partial/src/test/java/tools/refinery/store/partial/translator/typehierarchy/TypeAnalyzerTester.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalyzerTester.java
@@ -1,6 +1,6 @@
1package tools.refinery.store.partial.translator.typehierarchy; 1package tools.refinery.store.reasoning.translator.typehierarchy;
2 2
3import tools.refinery.store.partial.representation.PartialRelation; 3import tools.refinery.store.reasoning.representation.PartialRelation;
4 4
5import static org.hamcrest.MatcherAssert.assertThat; 5import static org.hamcrest.MatcherAssert.assertThat;
6import static org.hamcrest.Matchers.*; 6import static org.hamcrest.Matchers.*;