diff options
Diffstat (limited to 'subprojects/store-reasoning/src/main/java/tools')
75 files changed, 322 insertions, 296 deletions
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 index 7f0ef8b4..a9b3141a 100644 --- 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 | |||
@@ -1,11 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning; | 6 | package tools.refinery.store.reasoning; |
7 | 7 | ||
8 | import org.jetbrains.annotations.Nullable; | 8 | import org.jetbrains.annotations.Nullable; |
9 | import tools.refinery.logic.AbstractValue; | ||
9 | import tools.refinery.store.adapter.ModelAdapter; | 10 | import tools.refinery.store.adapter.ModelAdapter; |
10 | import tools.refinery.store.reasoning.internal.ReasoningBuilderImpl; | 11 | import tools.refinery.store.reasoning.internal.ReasoningBuilderImpl; |
11 | import tools.refinery.store.reasoning.interpretation.AnyPartialInterpretation; | 12 | import tools.refinery.store.reasoning.interpretation.AnyPartialInterpretation; |
@@ -27,17 +28,19 @@ public interface ReasoningAdapter extends ModelAdapter { | |||
27 | 28 | ||
28 | default AnyPartialInterpretation getPartialInterpretation(Concreteness concreteness, | 29 | default AnyPartialInterpretation getPartialInterpretation(Concreteness concreteness, |
29 | AnyPartialSymbol partialSymbol) { | 30 | AnyPartialSymbol partialSymbol) { |
30 | return getPartialInterpretation(concreteness, (PartialSymbol<?, ?>) partialSymbol); | 31 | var typedPartialSymbol = (PartialSymbol<?, ?>) partialSymbol; |
32 | return getPartialInterpretation(concreteness, typedPartialSymbol); | ||
31 | } | 33 | } |
32 | 34 | ||
33 | <A, C> PartialInterpretation<A, C> getPartialInterpretation(Concreteness concreteness, | 35 | <A extends AbstractValue<A, C>, C> PartialInterpretation<A, C> getPartialInterpretation( |
34 | PartialSymbol<A, C> partialSymbol); | 36 | Concreteness concreteness, PartialSymbol<A, C> partialSymbol); |
35 | 37 | ||
36 | default AnyPartialInterpretationRefiner getRefiner(AnyPartialSymbol partialSymbol) { | 38 | default AnyPartialInterpretationRefiner getRefiner(AnyPartialSymbol partialSymbol) { |
37 | return getRefiner((PartialSymbol<?, ?>) partialSymbol); | 39 | var typedPartialSymbol = (PartialSymbol<?, ?>) partialSymbol; |
40 | return getRefiner(typedPartialSymbol); | ||
38 | } | 41 | } |
39 | 42 | ||
40 | <A, C> PartialInterpretationRefiner<A, C> getRefiner(PartialSymbol<A, C> partialSymbol); | 43 | <A extends AbstractValue<A, C>, C> PartialInterpretationRefiner<A, C> getRefiner(PartialSymbol<A, C> partialSymbol); |
41 | 44 | ||
42 | @Nullable | 45 | @Nullable |
43 | Tuple1 split(int parentMultiObject); | 46 | Tuple1 split(int parentMultiObject); |
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 index 79bce33e..7ffa6faa 100644 --- 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 | |||
@@ -8,10 +8,10 @@ package tools.refinery.store.reasoning; | |||
8 | import tools.refinery.store.adapter.ModelAdapterBuilder; | 8 | import tools.refinery.store.adapter.ModelAdapterBuilder; |
9 | import tools.refinery.store.dse.transition.objectives.Objective; | 9 | import tools.refinery.store.dse.transition.objectives.Objective; |
10 | import tools.refinery.store.model.ModelStore; | 10 | import tools.refinery.store.model.ModelStore; |
11 | import tools.refinery.store.query.dnf.Dnf; | 11 | import tools.refinery.logic.dnf.Dnf; |
12 | import tools.refinery.store.query.dnf.FunctionalQuery; | 12 | import tools.refinery.logic.dnf.FunctionalQuery; |
13 | import tools.refinery.store.query.dnf.Query; | 13 | import tools.refinery.logic.dnf.Query; |
14 | import tools.refinery.store.query.dnf.RelationalQuery; | 14 | import tools.refinery.logic.dnf.RelationalQuery; |
15 | import tools.refinery.store.reasoning.literal.Concreteness; | 15 | import tools.refinery.store.reasoning.literal.Concreteness; |
16 | import tools.refinery.store.reasoning.literal.Modality; | 16 | import tools.refinery.store.reasoning.literal.Modality; |
17 | import tools.refinery.store.reasoning.refinement.PartialModelInitializer; | 17 | import tools.refinery.store.reasoning.refinement.PartialModelInitializer; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/CleanupActionLiteral.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/CleanupActionLiteral.java index 62c35cee..6a0004d9 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/CleanupActionLiteral.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/CleanupActionLiteral.java | |||
@@ -8,7 +8,7 @@ package tools.refinery.store.reasoning.actions; | |||
8 | import tools.refinery.store.dse.transition.actions.AbstractActionLiteral; | 8 | import tools.refinery.store.dse.transition.actions.AbstractActionLiteral; |
9 | import tools.refinery.store.dse.transition.actions.BoundActionLiteral; | 9 | import tools.refinery.store.dse.transition.actions.BoundActionLiteral; |
10 | import tools.refinery.store.model.Model; | 10 | import tools.refinery.store.model.Model; |
11 | import tools.refinery.store.query.term.NodeVariable; | 11 | import tools.refinery.logic.term.NodeVariable; |
12 | import tools.refinery.store.reasoning.ReasoningAdapter; | 12 | import tools.refinery.store.reasoning.ReasoningAdapter; |
13 | import tools.refinery.store.tuple.Tuple; | 13 | import tools.refinery.store.tuple.Tuple; |
14 | 14 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/FocusActionLiteral.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/FocusActionLiteral.java index 5a6f22d2..c819a1f9 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/FocusActionLiteral.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/FocusActionLiteral.java | |||
@@ -8,7 +8,7 @@ package tools.refinery.store.reasoning.actions; | |||
8 | import tools.refinery.store.dse.transition.actions.AbstractActionLiteral; | 8 | import tools.refinery.store.dse.transition.actions.AbstractActionLiteral; |
9 | import tools.refinery.store.dse.transition.actions.BoundActionLiteral; | 9 | import tools.refinery.store.dse.transition.actions.BoundActionLiteral; |
10 | import tools.refinery.store.model.Model; | 10 | import tools.refinery.store.model.Model; |
11 | import tools.refinery.store.query.term.NodeVariable; | 11 | import tools.refinery.logic.term.NodeVariable; |
12 | import tools.refinery.store.reasoning.ReasoningAdapter; | 12 | import tools.refinery.store.reasoning.ReasoningAdapter; |
13 | 13 | ||
14 | import java.util.List; | 14 | import java.util.List; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/MergeActionLiteral.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/MergeActionLiteral.java index 8d0d7961..86256331 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/MergeActionLiteral.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/MergeActionLiteral.java | |||
@@ -1,21 +1,22 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2023-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.actions; | 6 | package tools.refinery.store.reasoning.actions; |
7 | 7 | ||
8 | import tools.refinery.logic.AbstractValue; | ||
8 | import tools.refinery.store.dse.transition.actions.AbstractActionLiteral; | 9 | import tools.refinery.store.dse.transition.actions.AbstractActionLiteral; |
9 | import tools.refinery.store.dse.transition.actions.BoundActionLiteral; | 10 | import tools.refinery.store.dse.transition.actions.BoundActionLiteral; |
10 | import tools.refinery.store.model.Model; | 11 | import tools.refinery.store.model.Model; |
11 | import tools.refinery.store.query.term.NodeVariable; | 12 | import tools.refinery.logic.term.NodeVariable; |
12 | import tools.refinery.store.reasoning.ReasoningAdapter; | 13 | import tools.refinery.store.reasoning.ReasoningAdapter; |
13 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 14 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
14 | import tools.refinery.store.tuple.Tuple; | 15 | import tools.refinery.store.tuple.Tuple; |
15 | 16 | ||
16 | import java.util.List; | 17 | import java.util.List; |
17 | 18 | ||
18 | public class MergeActionLiteral<A, C> extends AbstractActionLiteral { | 19 | public class MergeActionLiteral<A extends AbstractValue<A, C>, C> extends AbstractActionLiteral { |
19 | private final PartialSymbol<A, C> partialSymbol; | 20 | private final PartialSymbol<A, C> partialSymbol; |
20 | private final List<NodeVariable> parameters; | 21 | private final List<NodeVariable> parameters; |
21 | private final A value; | 22 | private final A value; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/PartialActionLiterals.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/PartialActionLiterals.java index f36fde44..e8e6880a 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/PartialActionLiterals.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/PartialActionLiterals.java | |||
@@ -5,10 +5,11 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.actions; | 6 | package tools.refinery.store.reasoning.actions; |
7 | 7 | ||
8 | import tools.refinery.store.query.term.NodeVariable; | 8 | import tools.refinery.logic.AbstractValue; |
9 | import tools.refinery.logic.term.NodeVariable; | ||
9 | import tools.refinery.store.reasoning.representation.PartialRelation; | 10 | import tools.refinery.store.reasoning.representation.PartialRelation; |
10 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 11 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
11 | import tools.refinery.store.representation.TruthValue; | 12 | import tools.refinery.logic.term.truthvalue.TruthValue; |
12 | 13 | ||
13 | import java.util.List; | 14 | import java.util.List; |
14 | 15 | ||
@@ -17,8 +18,8 @@ public final class PartialActionLiterals { | |||
17 | throw new IllegalStateException("This is a static utility class and should not be instantiated directly"); | 18 | throw new IllegalStateException("This is a static utility class and should not be instantiated directly"); |
18 | } | 19 | } |
19 | 20 | ||
20 | public static <A, C> MergeActionLiteral<A, C> merge(PartialSymbol<A, C> partialSymbol, A value, | 21 | public static <A extends AbstractValue<A, C>, C> MergeActionLiteral<A, C> merge( |
21 | NodeVariable... parameters) { | 22 | PartialSymbol<A, C> partialSymbol, A value, NodeVariable... parameters) { |
22 | return new MergeActionLiteral<>(partialSymbol, value, List.of(parameters)); | 23 | return new MergeActionLiteral<>(partialSymbol, value, List.of(parameters)); |
23 | } | 24 | } |
24 | 25 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/PartialClauseRewriter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/PartialClauseRewriter.java index 40993235..dc508a7b 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/PartialClauseRewriter.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/PartialClauseRewriter.java | |||
@@ -5,25 +5,25 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.internal; | 6 | package tools.refinery.store.reasoning.internal; |
7 | 7 | ||
8 | import tools.refinery.store.query.Constraint; | 8 | import tools.refinery.logic.Constraint; |
9 | import tools.refinery.store.query.dnf.Dnf; | 9 | import tools.refinery.logic.dnf.Dnf; |
10 | import tools.refinery.store.query.dnf.DnfBuilder; | 10 | import tools.refinery.logic.dnf.DnfBuilder; |
11 | import tools.refinery.store.query.dnf.DnfClause; | 11 | import tools.refinery.logic.dnf.DnfClause; |
12 | import tools.refinery.store.query.literal.AbstractCallLiteral; | 12 | import tools.refinery.logic.literal.AbstractCallLiteral; |
13 | import tools.refinery.store.query.literal.AbstractCountLiteral; | 13 | import tools.refinery.logic.literal.AbstractCountLiteral; |
14 | import tools.refinery.store.query.literal.CallPolarity; | 14 | import tools.refinery.logic.literal.CallPolarity; |
15 | import tools.refinery.store.query.literal.Literal; | 15 | import tools.refinery.logic.literal.Literal; |
16 | import tools.refinery.store.query.term.Aggregator; | 16 | import tools.refinery.logic.term.Aggregator; |
17 | import tools.refinery.store.query.term.ConstantTerm; | 17 | import tools.refinery.logic.term.ConstantTerm; |
18 | import tools.refinery.store.query.term.Term; | 18 | import tools.refinery.logic.term.Term; |
19 | import tools.refinery.store.query.term.Variable; | 19 | import tools.refinery.logic.term.Variable; |
20 | import tools.refinery.store.query.term.int_.IntTerms; | 20 | import tools.refinery.logic.term.int_.IntTerms; |
21 | import tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms; | 21 | import tools.refinery.logic.term.uppercardinality.UpperCardinalities; |
22 | import tools.refinery.logic.term.uppercardinality.UpperCardinalityTerms; | ||
22 | import tools.refinery.store.reasoning.ReasoningAdapter; | 23 | import tools.refinery.store.reasoning.ReasoningAdapter; |
23 | import tools.refinery.store.reasoning.literal.*; | 24 | import tools.refinery.store.reasoning.literal.*; |
24 | import tools.refinery.store.reasoning.representation.PartialRelation; | 25 | import tools.refinery.store.reasoning.representation.PartialRelation; |
25 | import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; | 26 | import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; |
26 | import tools.refinery.store.representation.cardinality.UpperCardinalities; | ||
27 | 27 | ||
28 | import java.util.*; | 28 | import java.util.*; |
29 | import java.util.function.BinaryOperator; | 29 | import java.util.function.BinaryOperator; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/PartialQueryRewriter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/PartialQueryRewriter.java index 79cba263..9a916b69 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/PartialQueryRewriter.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/PartialQueryRewriter.java | |||
@@ -5,8 +5,8 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.internal; | 6 | package tools.refinery.store.reasoning.internal; |
7 | 7 | ||
8 | import tools.refinery.store.query.dnf.Dnf; | 8 | import tools.refinery.logic.dnf.Dnf; |
9 | import tools.refinery.store.query.rewriter.AbstractRecursiveRewriter; | 9 | import tools.refinery.logic.rewriter.AbstractRecursiveRewriter; |
10 | import tools.refinery.store.reasoning.interpretation.PartialRelationRewriter; | 10 | import tools.refinery.store.reasoning.interpretation.PartialRelationRewriter; |
11 | import tools.refinery.store.reasoning.lifting.DnfLifter; | 11 | import tools.refinery.store.reasoning.lifting.DnfLifter; |
12 | import tools.refinery.store.reasoning.representation.PartialRelation; | 12 | import tools.refinery.store.reasoning.representation.PartialRelation; |
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 index bd16bdfa..386ae1d8 100644 --- 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 | |||
@@ -1,11 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.internal; | 6 | package tools.refinery.store.reasoning.internal; |
7 | 7 | ||
8 | import org.jetbrains.annotations.Nullable; | 8 | import org.jetbrains.annotations.Nullable; |
9 | import tools.refinery.logic.AbstractValue; | ||
9 | import tools.refinery.store.model.Interpretation; | 10 | import tools.refinery.store.model.Interpretation; |
10 | import tools.refinery.store.model.Model; | 11 | import tools.refinery.store.model.Model; |
11 | import tools.refinery.store.reasoning.ReasoningAdapter; | 12 | import tools.refinery.store.reasoning.ReasoningAdapter; |
@@ -19,8 +20,8 @@ import tools.refinery.store.reasoning.representation.AnyPartialSymbol; | |||
19 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 20 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
20 | import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; | 21 | import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; |
21 | import tools.refinery.store.representation.Symbol; | 22 | import tools.refinery.store.representation.Symbol; |
22 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | 23 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; |
23 | import tools.refinery.store.representation.cardinality.CardinalityIntervals; | 24 | import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals; |
24 | import tools.refinery.store.tuple.Tuple; | 25 | import tools.refinery.store.tuple.Tuple; |
25 | import tools.refinery.store.tuple.Tuple1; | 26 | import tools.refinery.store.tuple.Tuple1; |
26 | 27 | ||
@@ -49,7 +50,7 @@ class ReasoningAdapterImpl implements ReasoningAdapter { | |||
49 | createPartialInterpretations(); | 50 | createPartialInterpretations(); |
50 | 51 | ||
51 | var refinerFactories = storeAdapter.getSymbolRefiners(); | 52 | var refinerFactories = storeAdapter.getSymbolRefiners(); |
52 | refiners = new HashMap<>(refinerFactories.size()); | 53 | refiners = HashMap.newHashMap(refinerFactories.size()); |
53 | createRefiners(); | 54 | createRefiners(); |
54 | 55 | ||
55 | storageRefiners = storeAdapter.createStorageRefiner(model); | 56 | storageRefiners = storeAdapter.createStorageRefiner(model); |
@@ -69,7 +70,7 @@ class ReasoningAdapterImpl implements ReasoningAdapter { | |||
69 | for (int i = 0; i < concretenessLength; i++) { | 70 | for (int i = 0; i < concretenessLength; i++) { |
70 | var concreteness = Concreteness.values()[i]; | 71 | var concreteness = Concreteness.values()[i]; |
71 | if (supportedInterpretations.contains(concreteness)) { | 72 | if (supportedInterpretations.contains(concreteness)) { |
72 | partialInterpretations[i] = new HashMap<>(interpretationFactories.size()); | 73 | partialInterpretations[i] = HashMap.newHashMap(interpretationFactories.size()); |
73 | } | 74 | } |
74 | } | 75 | } |
75 | // Create the partial interpretations in order so that factories may refer to interpretations of symbols | 76 | // Create the partial interpretations in order so that factories may refer to interpretations of symbols |
@@ -87,7 +88,7 @@ class ReasoningAdapterImpl implements ReasoningAdapter { | |||
87 | } | 88 | } |
88 | } | 89 | } |
89 | 90 | ||
90 | private <A, C> PartialInterpretation<A, C> createPartialInterpretation( | 91 | private <A extends AbstractValue<A, C>, C> PartialInterpretation<A, C> createPartialInterpretation( |
91 | Concreteness concreteness, PartialInterpretation.Factory<A, C> interpreter, AnyPartialSymbol symbol) { | 92 | Concreteness concreteness, PartialInterpretation.Factory<A, C> interpreter, AnyPartialSymbol symbol) { |
92 | // The builder only allows well-typed assignment of interpreters to symbols. | 93 | // The builder only allows well-typed assignment of interpreters to symbols. |
93 | @SuppressWarnings("unchecked") | 94 | @SuppressWarnings("unchecked") |
@@ -107,7 +108,7 @@ class ReasoningAdapterImpl implements ReasoningAdapter { | |||
107 | } | 108 | } |
108 | } | 109 | } |
109 | 110 | ||
110 | private <A, C> PartialInterpretationRefiner<A, C> createRefiner( | 111 | private <A extends AbstractValue<A, C>, C> PartialInterpretationRefiner<A, C> createRefiner( |
111 | PartialInterpretationRefiner.Factory<A, C> factory, AnyPartialSymbol symbol) { | 112 | PartialInterpretationRefiner.Factory<A, C> factory, AnyPartialSymbol symbol) { |
112 | // The builder only allows well-typed assignment of interpreters to symbols. | 113 | // The builder only allows well-typed assignment of interpreters to symbols. |
113 | @SuppressWarnings("unchecked") | 114 | @SuppressWarnings("unchecked") |
@@ -126,8 +127,8 @@ class ReasoningAdapterImpl implements ReasoningAdapter { | |||
126 | } | 127 | } |
127 | 128 | ||
128 | @Override | 129 | @Override |
129 | public <A, C> PartialInterpretation<A, C> getPartialInterpretation(Concreteness concreteness, | 130 | public <A extends AbstractValue<A, C>, C> PartialInterpretation<A, C> getPartialInterpretation( |
130 | PartialSymbol<A, C> partialSymbol) { | 131 | Concreteness concreteness, PartialSymbol<A, C> partialSymbol) { |
131 | var map = partialInterpretations[concreteness.ordinal()]; | 132 | var map = partialInterpretations[concreteness.ordinal()]; |
132 | if (map == null) { | 133 | if (map == null) { |
133 | throw new IllegalArgumentException("No interpretation for concreteness: " + concreteness); | 134 | throw new IllegalArgumentException("No interpretation for concreteness: " + concreteness); |
@@ -143,7 +144,8 @@ class ReasoningAdapterImpl implements ReasoningAdapter { | |||
143 | } | 144 | } |
144 | 145 | ||
145 | @Override | 146 | @Override |
146 | public <A, C> PartialInterpretationRefiner<A, C> getRefiner(PartialSymbol<A, C> partialSymbol) { | 147 | public <A extends AbstractValue<A, C>, C> PartialInterpretationRefiner<A, C> getRefiner( |
148 | PartialSymbol<A, C> partialSymbol) { | ||
147 | var refiner = refiners.get(partialSymbol); | 149 | var refiner = refiners.get(partialSymbol); |
148 | if (refiner == null) { | 150 | if (refiner == null) { |
149 | throw new IllegalArgumentException("No refiner for partial symbol: " + partialSymbol); | 151 | throw new IllegalArgumentException("No refiner for partial symbol: " + partialSymbol); |
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 index 722458c8..87122b1d 100644 --- 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 | |||
@@ -12,10 +12,10 @@ import tools.refinery.store.dse.transition.objectives.Objectives; | |||
12 | import tools.refinery.store.model.ModelStore; | 12 | import tools.refinery.store.model.ModelStore; |
13 | import tools.refinery.store.model.ModelStoreBuilder; | 13 | import tools.refinery.store.model.ModelStoreBuilder; |
14 | import tools.refinery.store.query.ModelQueryBuilder; | 14 | import tools.refinery.store.query.ModelQueryBuilder; |
15 | import tools.refinery.store.query.dnf.Dnf; | 15 | import tools.refinery.logic.dnf.Dnf; |
16 | import tools.refinery.store.query.dnf.FunctionalQuery; | 16 | import tools.refinery.logic.dnf.FunctionalQuery; |
17 | import tools.refinery.store.query.dnf.Query; | 17 | import tools.refinery.logic.dnf.Query; |
18 | import tools.refinery.store.query.dnf.RelationalQuery; | 18 | import tools.refinery.logic.dnf.RelationalQuery; |
19 | import tools.refinery.store.reasoning.ReasoningBuilder; | 19 | import tools.refinery.store.reasoning.ReasoningBuilder; |
20 | import tools.refinery.store.reasoning.interpretation.PartialInterpretation; | 20 | import tools.refinery.store.reasoning.interpretation.PartialInterpretation; |
21 | import tools.refinery.store.reasoning.lifting.DnfLifter; | 21 | import tools.refinery.store.reasoning.lifting.DnfLifter; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/AbstractPartialInterpretation.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/AbstractPartialInterpretation.java index ed291eac..4f51957b 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/AbstractPartialInterpretation.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/AbstractPartialInterpretation.java | |||
@@ -5,11 +5,13 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.interpretation; | 6 | package tools.refinery.store.reasoning.interpretation; |
7 | 7 | ||
8 | import tools.refinery.logic.AbstractValue; | ||
8 | import tools.refinery.store.reasoning.ReasoningAdapter; | 9 | import tools.refinery.store.reasoning.ReasoningAdapter; |
9 | import tools.refinery.store.reasoning.literal.Concreteness; | 10 | import tools.refinery.store.reasoning.literal.Concreteness; |
10 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 11 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
11 | 12 | ||
12 | public abstract class AbstractPartialInterpretation<A, C> implements PartialInterpretation<A, C> { | 13 | public abstract class AbstractPartialInterpretation<A extends AbstractValue<A, C>, C> |
14 | implements PartialInterpretation<A, C> { | ||
13 | private final ReasoningAdapter adapter; | 15 | private final ReasoningAdapter adapter; |
14 | private final PartialSymbol<A, C> partialSymbol; | 16 | private final PartialSymbol<A, C> partialSymbol; |
15 | private final Concreteness concreteness; | 17 | private final Concreteness concreteness; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/PartialInterpretation.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/PartialInterpretation.java index 86ffe751..5a304030 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/PartialInterpretation.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/PartialInterpretation.java | |||
@@ -1,10 +1,11 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.interpretation; | 6 | package tools.refinery.store.reasoning.interpretation; |
7 | 7 | ||
8 | import tools.refinery.logic.AbstractValue; | ||
8 | import tools.refinery.store.map.Cursor; | 9 | import tools.refinery.store.map.Cursor; |
9 | import tools.refinery.store.model.ModelStoreBuilder; | 10 | import tools.refinery.store.model.ModelStoreBuilder; |
10 | import tools.refinery.store.reasoning.ReasoningAdapter; | 11 | import tools.refinery.store.reasoning.ReasoningAdapter; |
@@ -14,7 +15,7 @@ import tools.refinery.store.tuple.Tuple; | |||
14 | 15 | ||
15 | import java.util.Set; | 16 | import java.util.Set; |
16 | 17 | ||
17 | public non-sealed interface PartialInterpretation<A, C> extends AnyPartialInterpretation { | 18 | public non-sealed interface PartialInterpretation<A extends AbstractValue<A, C>, C> extends AnyPartialInterpretation { |
18 | @Override | 19 | @Override |
19 | PartialSymbol<A, C> getPartialSymbol(); | 20 | PartialSymbol<A, C> getPartialSymbol(); |
20 | 21 | ||
@@ -23,7 +24,7 @@ public non-sealed interface PartialInterpretation<A, C> extends AnyPartialInterp | |||
23 | Cursor<Tuple, A> getAll(); | 24 | Cursor<Tuple, A> getAll(); |
24 | 25 | ||
25 | @FunctionalInterface | 26 | @FunctionalInterface |
26 | interface Factory<A, C> { | 27 | interface Factory<A extends AbstractValue<A, C>, C> { |
27 | PartialInterpretation<A, C> create(ReasoningAdapter adapter, Concreteness concreteness, | 28 | PartialInterpretation<A, C> create(ReasoningAdapter adapter, Concreteness concreteness, |
28 | PartialSymbol<A, C> partialSymbol); | 29 | PartialSymbol<A, C> partialSymbol); |
29 | 30 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/PartialRelationRewriter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/PartialRelationRewriter.java index 6ad35c20..72ad386c 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/PartialRelationRewriter.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/PartialRelationRewriter.java | |||
@@ -5,9 +5,9 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.interpretation; | 6 | package tools.refinery.store.reasoning.interpretation; |
7 | 7 | ||
8 | import tools.refinery.store.query.literal.AbstractCallLiteral; | 8 | import tools.refinery.logic.literal.AbstractCallLiteral; |
9 | import tools.refinery.store.query.literal.Literal; | 9 | import tools.refinery.logic.literal.Literal; |
10 | import tools.refinery.store.query.term.Variable; | 10 | import tools.refinery.logic.term.Variable; |
11 | import tools.refinery.store.reasoning.literal.Concreteness; | 11 | import tools.refinery.store.reasoning.literal.Concreteness; |
12 | import tools.refinery.store.reasoning.literal.Modality; | 12 | import tools.refinery.store.reasoning.literal.Modality; |
13 | 13 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/QueryBasedRelationInterpretationFactory.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/QueryBasedRelationInterpretationFactory.java index 5cdaa185..8fe34b27 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/QueryBasedRelationInterpretationFactory.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/QueryBasedRelationInterpretationFactory.java | |||
@@ -9,12 +9,12 @@ import tools.refinery.store.map.Cursor; | |||
9 | import tools.refinery.store.model.ModelStoreBuilder; | 9 | import tools.refinery.store.model.ModelStoreBuilder; |
10 | import tools.refinery.store.query.ModelQueryAdapter; | 10 | import tools.refinery.store.query.ModelQueryAdapter; |
11 | import tools.refinery.store.query.ModelQueryBuilder; | 11 | import tools.refinery.store.query.ModelQueryBuilder; |
12 | import tools.refinery.store.query.dnf.Query; | 12 | import tools.refinery.logic.dnf.Query; |
13 | import tools.refinery.store.query.resultset.ResultSet; | 13 | import tools.refinery.store.query.resultset.ResultSet; |
14 | import tools.refinery.store.reasoning.ReasoningAdapter; | 14 | import tools.refinery.store.reasoning.ReasoningAdapter; |
15 | import tools.refinery.store.reasoning.literal.Concreteness; | 15 | import tools.refinery.store.reasoning.literal.Concreteness; |
16 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 16 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
17 | import tools.refinery.store.representation.TruthValue; | 17 | import tools.refinery.logic.term.truthvalue.TruthValue; |
18 | import tools.refinery.store.tuple.Tuple; | 18 | import tools.refinery.store.tuple.Tuple; |
19 | 19 | ||
20 | import java.util.Set; | 20 | import java.util.Set; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/QueryBasedRelationRewriter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/QueryBasedRelationRewriter.java index 78fdbb89..a6850e75 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/QueryBasedRelationRewriter.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/QueryBasedRelationRewriter.java | |||
@@ -5,10 +5,10 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.interpretation; | 6 | package tools.refinery.store.reasoning.interpretation; |
7 | 7 | ||
8 | import tools.refinery.store.query.dnf.RelationalQuery; | 8 | import tools.refinery.logic.dnf.RelationalQuery; |
9 | import tools.refinery.store.query.literal.AbstractCallLiteral; | 9 | import tools.refinery.logic.literal.AbstractCallLiteral; |
10 | import tools.refinery.store.query.literal.Literal; | 10 | import tools.refinery.logic.literal.Literal; |
11 | import tools.refinery.store.query.term.Variable; | 11 | import tools.refinery.logic.term.Variable; |
12 | import tools.refinery.store.reasoning.literal.Concreteness; | 12 | import tools.refinery.store.reasoning.literal.Concreteness; |
13 | import tools.refinery.store.reasoning.literal.Modality; | 13 | import tools.refinery.store.reasoning.literal.Modality; |
14 | 14 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/ClauseLifter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/ClauseLifter.java index 17916c02..02e16dc5 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/ClauseLifter.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/ClauseLifter.java | |||
@@ -5,13 +5,13 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.lifting; | 6 | package tools.refinery.store.reasoning.lifting; |
7 | 7 | ||
8 | import tools.refinery.store.query.Constraint; | 8 | import tools.refinery.logic.Constraint; |
9 | import tools.refinery.store.query.dnf.Dnf; | 9 | import tools.refinery.logic.dnf.Dnf; |
10 | import tools.refinery.store.query.dnf.DnfClause; | 10 | import tools.refinery.logic.dnf.DnfClause; |
11 | import tools.refinery.store.query.literal.*; | 11 | import tools.refinery.logic.literal.*; |
12 | import tools.refinery.store.query.term.NodeVariable; | 12 | import tools.refinery.logic.term.NodeVariable; |
13 | import tools.refinery.store.query.term.ParameterDirection; | 13 | import tools.refinery.logic.term.ParameterDirection; |
14 | import tools.refinery.store.query.term.Variable; | 14 | import tools.refinery.logic.term.Variable; |
15 | import tools.refinery.store.reasoning.ReasoningAdapter; | 15 | import tools.refinery.store.reasoning.ReasoningAdapter; |
16 | import tools.refinery.store.reasoning.literal.Concreteness; | 16 | import tools.refinery.store.reasoning.literal.Concreteness; |
17 | import tools.refinery.store.reasoning.literal.ModalConstraint; | 17 | import tools.refinery.store.reasoning.literal.ModalConstraint; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/DnfLifter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/DnfLifter.java index 889f595f..1eeb5de1 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/DnfLifter.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/DnfLifter.java | |||
@@ -5,9 +5,9 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.lifting; | 6 | package tools.refinery.store.reasoning.lifting; |
7 | 7 | ||
8 | import tools.refinery.store.query.dnf.*; | 8 | import tools.refinery.logic.dnf.*; |
9 | import tools.refinery.store.query.equality.DnfEqualityChecker; | 9 | import tools.refinery.logic.equality.DnfEqualityChecker; |
10 | import tools.refinery.store.query.literal.Literal; | 10 | import tools.refinery.logic.literal.Literal; |
11 | import tools.refinery.store.reasoning.literal.Concreteness; | 11 | import tools.refinery.store.reasoning.literal.Concreteness; |
12 | import tools.refinery.store.reasoning.literal.Modality; | 12 | import tools.refinery.store.reasoning.literal.Modality; |
13 | 13 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountCandidateLowerBoundLiteral.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountCandidateLowerBoundLiteral.java index 91dd2b72..e4c180fc 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountCandidateLowerBoundLiteral.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountCandidateLowerBoundLiteral.java | |||
@@ -5,13 +5,13 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.literal; | 6 | package tools.refinery.store.reasoning.literal; |
7 | 7 | ||
8 | import tools.refinery.store.query.Constraint; | 8 | import tools.refinery.logic.Constraint; |
9 | import tools.refinery.store.query.literal.AbstractCallLiteral; | 9 | import tools.refinery.logic.literal.AbstractCallLiteral; |
10 | import tools.refinery.store.query.literal.AbstractCountLiteral; | 10 | import tools.refinery.logic.literal.AbstractCountLiteral; |
11 | import tools.refinery.store.query.literal.Literal; | 11 | import tools.refinery.logic.literal.Literal; |
12 | import tools.refinery.store.query.substitution.Substitution; | 12 | import tools.refinery.logic.substitution.Substitution; |
13 | import tools.refinery.store.query.term.DataVariable; | 13 | import tools.refinery.logic.term.DataVariable; |
14 | import tools.refinery.store.query.term.Variable; | 14 | import tools.refinery.logic.term.Variable; |
15 | 15 | ||
16 | import java.util.List; | 16 | import java.util.List; |
17 | 17 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountCandidateUpperBoundLiteral.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountCandidateUpperBoundLiteral.java index 94c9399d..2faeda22 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountCandidateUpperBoundLiteral.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountCandidateUpperBoundLiteral.java | |||
@@ -5,13 +5,13 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.literal; | 6 | package tools.refinery.store.reasoning.literal; |
7 | 7 | ||
8 | import tools.refinery.store.query.Constraint; | 8 | import tools.refinery.logic.Constraint; |
9 | import tools.refinery.store.query.literal.AbstractCallLiteral; | 9 | import tools.refinery.logic.literal.AbstractCallLiteral; |
10 | import tools.refinery.store.query.literal.AbstractCountLiteral; | 10 | import tools.refinery.logic.literal.AbstractCountLiteral; |
11 | import tools.refinery.store.query.literal.Literal; | 11 | import tools.refinery.logic.literal.Literal; |
12 | import tools.refinery.store.query.substitution.Substitution; | 12 | import tools.refinery.logic.substitution.Substitution; |
13 | import tools.refinery.store.query.term.DataVariable; | 13 | import tools.refinery.logic.term.DataVariable; |
14 | import tools.refinery.store.query.term.Variable; | 14 | import tools.refinery.logic.term.Variable; |
15 | 15 | ||
16 | import java.util.List; | 16 | import java.util.List; |
17 | 17 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountLowerBoundLiteral.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountLowerBoundLiteral.java index b75b0cab..c009cfae 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountLowerBoundLiteral.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountLowerBoundLiteral.java | |||
@@ -5,13 +5,13 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.literal; | 6 | package tools.refinery.store.reasoning.literal; |
7 | 7 | ||
8 | import tools.refinery.store.query.Constraint; | 8 | import tools.refinery.logic.Constraint; |
9 | import tools.refinery.store.query.literal.AbstractCallLiteral; | 9 | import tools.refinery.logic.literal.AbstractCallLiteral; |
10 | import tools.refinery.store.query.literal.AbstractCountLiteral; | 10 | import tools.refinery.logic.literal.AbstractCountLiteral; |
11 | import tools.refinery.store.query.literal.Literal; | 11 | import tools.refinery.logic.literal.Literal; |
12 | import tools.refinery.store.query.substitution.Substitution; | 12 | import tools.refinery.logic.substitution.Substitution; |
13 | import tools.refinery.store.query.term.DataVariable; | 13 | import tools.refinery.logic.term.DataVariable; |
14 | import tools.refinery.store.query.term.Variable; | 14 | import tools.refinery.logic.term.Variable; |
15 | 15 | ||
16 | import java.util.List; | 16 | import java.util.List; |
17 | 17 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountUpperBoundLiteral.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountUpperBoundLiteral.java index 03842143..84bea8c0 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountUpperBoundLiteral.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountUpperBoundLiteral.java | |||
@@ -5,15 +5,15 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.literal; | 6 | package tools.refinery.store.reasoning.literal; |
7 | 7 | ||
8 | import tools.refinery.store.query.Constraint; | 8 | import tools.refinery.logic.Constraint; |
9 | import tools.refinery.store.query.literal.AbstractCallLiteral; | 9 | import tools.refinery.logic.literal.AbstractCallLiteral; |
10 | import tools.refinery.store.query.literal.AbstractCountLiteral; | 10 | import tools.refinery.logic.literal.AbstractCountLiteral; |
11 | import tools.refinery.store.query.literal.Literal; | 11 | import tools.refinery.logic.literal.Literal; |
12 | import tools.refinery.store.query.substitution.Substitution; | 12 | import tools.refinery.logic.substitution.Substitution; |
13 | import tools.refinery.store.query.term.DataVariable; | 13 | import tools.refinery.logic.term.DataVariable; |
14 | import tools.refinery.store.query.term.Variable; | 14 | import tools.refinery.logic.term.Variable; |
15 | import tools.refinery.store.representation.cardinality.UpperCardinalities; | 15 | import tools.refinery.logic.term.uppercardinality.UpperCardinalities; |
16 | import tools.refinery.store.representation.cardinality.UpperCardinality; | 16 | import tools.refinery.logic.term.uppercardinality.UpperCardinality; |
17 | 17 | ||
18 | import java.util.List; | 18 | import java.util.List; |
19 | 19 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java index 2235a95d..6b8af460 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java | |||
@@ -5,11 +5,11 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.literal; | 6 | package tools.refinery.store.reasoning.literal; |
7 | 7 | ||
8 | import tools.refinery.store.query.Constraint; | 8 | import tools.refinery.logic.Constraint; |
9 | import tools.refinery.store.query.InvalidQueryException; | 9 | import tools.refinery.logic.InvalidQueryException; |
10 | import tools.refinery.store.query.equality.LiteralEqualityHelper; | 10 | import tools.refinery.logic.equality.LiteralEqualityHelper; |
11 | import tools.refinery.store.query.literal.Reduction; | 11 | import tools.refinery.logic.literal.Reduction; |
12 | import tools.refinery.store.query.term.Parameter; | 12 | import tools.refinery.logic.term.Parameter; |
13 | import tools.refinery.store.query.view.AnySymbolView; | 13 | import tools.refinery.store.query.view.AnySymbolView; |
14 | 14 | ||
15 | import java.util.List; | 15 | import java.util.List; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/Modality.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/Modality.java index c99a0399..045b7147 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/Modality.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/Modality.java | |||
@@ -5,7 +5,8 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.literal; | 6 | package tools.refinery.store.reasoning.literal; |
7 | 7 | ||
8 | import tools.refinery.store.query.literal.CallPolarity; | 8 | |
9 | import tools.refinery.logic.literal.CallPolarity; | ||
9 | 10 | ||
10 | import java.util.Locale; | 11 | import java.util.Locale; |
11 | 12 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialLiterals.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialLiterals.java index 2614c26e..72b085a5 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialLiterals.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialLiterals.java | |||
@@ -5,8 +5,8 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.literal; | 6 | package tools.refinery.store.reasoning.literal; |
7 | 7 | ||
8 | import tools.refinery.store.query.InvalidQueryException; | 8 | import tools.refinery.logic.InvalidQueryException; |
9 | import tools.refinery.store.query.literal.CallLiteral; | 9 | import tools.refinery.logic.literal.CallLiteral; |
10 | 10 | ||
11 | public final class PartialLiterals { | 11 | public final class PartialLiterals { |
12 | private PartialLiterals() { | 12 | private PartialLiterals() { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/AbstractPartialInterpretationRefiner.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/AbstractPartialInterpretationRefiner.java index a7fc5b7e..42943490 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/AbstractPartialInterpretationRefiner.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/AbstractPartialInterpretationRefiner.java | |||
@@ -1,14 +1,16 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2023-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.refinement; | 6 | package tools.refinery.store.reasoning.refinement; |
7 | 7 | ||
8 | import tools.refinery.logic.AbstractValue; | ||
8 | import tools.refinery.store.reasoning.ReasoningAdapter; | 9 | import tools.refinery.store.reasoning.ReasoningAdapter; |
9 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 10 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
10 | 11 | ||
11 | public abstract class AbstractPartialInterpretationRefiner<A, C> implements PartialInterpretationRefiner<A, C> { | 12 | public abstract class AbstractPartialInterpretationRefiner<A extends AbstractValue<A, C>, C> |
13 | implements PartialInterpretationRefiner<A, C> { | ||
12 | private final ReasoningAdapter adapter; | 14 | private final ReasoningAdapter adapter; |
13 | private final PartialSymbol<A, C> partialSymbol; | 15 | private final PartialSymbol<A, C> partialSymbol; |
14 | 16 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/ConcreteSymbolRefiner.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/ConcreteSymbolRefiner.java index ebb9b824..d6ac0e9d 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/ConcreteSymbolRefiner.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/ConcreteSymbolRefiner.java | |||
@@ -1,10 +1,11 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2023-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.refinement; | 6 | package tools.refinery.store.reasoning.refinement; |
7 | 7 | ||
8 | import tools.refinery.logic.AbstractValue; | ||
8 | import tools.refinery.store.model.Interpretation; | 9 | import tools.refinery.store.model.Interpretation; |
9 | import tools.refinery.store.reasoning.ReasoningAdapter; | 10 | import tools.refinery.store.reasoning.ReasoningAdapter; |
10 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 11 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
@@ -13,7 +14,8 @@ import tools.refinery.store.tuple.Tuple; | |||
13 | 14 | ||
14 | import java.util.Objects; | 15 | import java.util.Objects; |
15 | 16 | ||
16 | public class ConcreteSymbolRefiner<A, C> extends AbstractPartialInterpretationRefiner<A, C> { | 17 | public class ConcreteSymbolRefiner<A extends AbstractValue<A, C>, C> |
18 | extends AbstractPartialInterpretationRefiner<A, C> { | ||
17 | private final Interpretation<A> interpretation; | 19 | private final Interpretation<A> interpretation; |
18 | 20 | ||
19 | public ConcreteSymbolRefiner(ReasoningAdapter adapter, PartialSymbol<A, C> partialSymbol, | 21 | public ConcreteSymbolRefiner(ReasoningAdapter adapter, PartialSymbol<A, C> partialSymbol, |
@@ -25,14 +27,14 @@ public class ConcreteSymbolRefiner<A, C> extends AbstractPartialInterpretationRe | |||
25 | @Override | 27 | @Override |
26 | public boolean merge(Tuple key, A value) { | 28 | public boolean merge(Tuple key, A value) { |
27 | var currentValue = interpretation.get(key); | 29 | var currentValue = interpretation.get(key); |
28 | var mergedValue = getPartialSymbol().abstractDomain().commonRefinement(currentValue, value); | 30 | var mergedValue = currentValue.meet(value); |
29 | if (!Objects.equals(currentValue, mergedValue)) { | 31 | if (!Objects.equals(currentValue, mergedValue)) { |
30 | interpretation.put(key, mergedValue); | 32 | interpretation.put(key, mergedValue); |
31 | } | 33 | } |
32 | return true; | 34 | return true; |
33 | } | 35 | } |
34 | 36 | ||
35 | public static <A1, C1> Factory<A1, C1> of(Symbol<A1> concreteSymbol) { | 37 | public static <A1 extends AbstractValue<A1, C1>, C1> Factory<A1, C1> of(Symbol<A1> concreteSymbol) { |
36 | return (adapter, partialSymbol) -> new ConcreteSymbolRefiner<>(adapter, partialSymbol, concreteSymbol); | 38 | return (adapter, partialSymbol) -> new ConcreteSymbolRefiner<>(adapter, partialSymbol, concreteSymbol); |
37 | } | 39 | } |
38 | } | 40 | } |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/PartialInterpretationRefiner.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/PartialInterpretationRefiner.java index f48d1d1f..c8b182b8 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/PartialInterpretationRefiner.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/PartialInterpretationRefiner.java | |||
@@ -1,22 +1,24 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2023-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.refinement; | 6 | package tools.refinery.store.reasoning.refinement; |
7 | 7 | ||
8 | import tools.refinery.logic.AbstractValue; | ||
8 | import tools.refinery.store.reasoning.ReasoningAdapter; | 9 | import tools.refinery.store.reasoning.ReasoningAdapter; |
9 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 10 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
10 | import tools.refinery.store.tuple.Tuple; | 11 | import tools.refinery.store.tuple.Tuple; |
11 | 12 | ||
12 | public non-sealed interface PartialInterpretationRefiner<A, C> extends AnyPartialInterpretationRefiner { | 13 | public non-sealed interface PartialInterpretationRefiner<A extends AbstractValue<A, C>, C> |
14 | extends AnyPartialInterpretationRefiner { | ||
13 | @Override | 15 | @Override |
14 | PartialSymbol<A, C> getPartialSymbol(); | 16 | PartialSymbol<A, C> getPartialSymbol(); |
15 | 17 | ||
16 | boolean merge(Tuple key, A value); | 18 | boolean merge(Tuple key, A value); |
17 | 19 | ||
18 | @FunctionalInterface | 20 | @FunctionalInterface |
19 | interface Factory<A, C> { | 21 | interface Factory<A extends AbstractValue<A, C>, C> { |
20 | PartialInterpretationRefiner<A, C> create(ReasoningAdapter adapter, PartialSymbol<A, C> partialSymbol); | 22 | PartialInterpretationRefiner<A, C> create(ReasoningAdapter adapter, PartialSymbol<A, C> partialSymbol); |
21 | } | 23 | } |
22 | } | 24 | } |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/RefinementBasedInitializer.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/RefinementBasedInitializer.java index b6bccb01..1a2c03a6 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/RefinementBasedInitializer.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/refinement/RefinementBasedInitializer.java | |||
@@ -1,16 +1,17 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2023-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.refinement; | 6 | package tools.refinery.store.reasoning.refinement; |
7 | 7 | ||
8 | import tools.refinery.logic.AbstractValue; | ||
8 | import tools.refinery.store.model.Model; | 9 | import tools.refinery.store.model.Model; |
9 | import tools.refinery.store.reasoning.ReasoningAdapter; | 10 | import tools.refinery.store.reasoning.ReasoningAdapter; |
10 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 11 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
11 | import tools.refinery.store.reasoning.seed.ModelSeed; | 12 | import tools.refinery.store.reasoning.seed.ModelSeed; |
12 | 13 | ||
13 | public class RefinementBasedInitializer<A, C> implements PartialModelInitializer { | 14 | public class RefinementBasedInitializer<A extends AbstractValue<A, C>, C> implements PartialModelInitializer { |
14 | private final PartialSymbol<A, C> partialSymbol; | 15 | private final PartialSymbol<A, C> partialSymbol; |
15 | 16 | ||
16 | public RefinementBasedInitializer(PartialSymbol<A, C> partialSymbol) { | 17 | public RefinementBasedInitializer(PartialSymbol<A, C> partialSymbol) { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialSymbol.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialSymbol.java index 788eef73..3e10c6c1 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialSymbol.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialSymbol.java | |||
@@ -5,7 +5,7 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.representation; | 6 | package tools.refinery.store.reasoning.representation; |
7 | 7 | ||
8 | import tools.refinery.store.representation.AnyAbstractDomain; | 8 | import tools.refinery.logic.AnyAbstractDomain; |
9 | 9 | ||
10 | public sealed interface AnyPartialSymbol permits AnyPartialFunction, PartialSymbol { | 10 | public sealed interface AnyPartialSymbol permits AnyPartialFunction, PartialSymbol { |
11 | String name(); | 11 | String name(); |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialFunction.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialFunction.java index e59c8af8..88b98da8 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialFunction.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialFunction.java | |||
@@ -1,14 +1,16 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.representation; | 6 | package tools.refinery.store.reasoning.representation; |
7 | 7 | ||
8 | import tools.refinery.store.representation.AbstractDomain; | 8 | import tools.refinery.logic.AbstractDomain; |
9 | import tools.refinery.logic.AbstractValue; | ||
9 | 10 | ||
10 | public record PartialFunction<A, C>(String name, int arity, AbstractDomain<A, C> abstractDomain) | 11 | public record PartialFunction<A extends AbstractValue<A, C>, C>( |
11 | implements AnyPartialFunction, PartialSymbol<A, C> { | 12 | String name, int arity, AbstractDomain<A, C> abstractDomain) implements AnyPartialFunction, |
13 | PartialSymbol<A, C> { | ||
12 | @Override | 14 | @Override |
13 | public A defaultValue() { | 15 | public A defaultValue() { |
14 | return null; | 16 | return null; |
@@ -21,7 +23,7 @@ public record PartialFunction<A, C>(String name, int arity, AbstractDomain<A, C> | |||
21 | 23 | ||
22 | @Override | 24 | @Override |
23 | public int hashCode() { | 25 | public int hashCode() { |
24 | // Compare by identity to make hash table lookups more efficient. | 26 | // Compare by identity to make hash table look-ups more efficient. |
25 | return System.identityHashCode(this); | 27 | return System.identityHashCode(this); |
26 | } | 28 | } |
27 | 29 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialRelation.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialRelation.java index 4ccb7033..0f108247 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialRelation.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialRelation.java | |||
@@ -5,11 +5,11 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.representation; | 6 | package tools.refinery.store.reasoning.representation; |
7 | 7 | ||
8 | import tools.refinery.store.query.Constraint; | 8 | import tools.refinery.logic.AbstractDomain; |
9 | import tools.refinery.store.query.term.Parameter; | 9 | import tools.refinery.logic.Constraint; |
10 | import tools.refinery.store.representation.AbstractDomain; | 10 | import tools.refinery.logic.term.Parameter; |
11 | import tools.refinery.store.representation.TruthValue; | 11 | import tools.refinery.logic.term.truthvalue.TruthValue; |
12 | import tools.refinery.store.representation.TruthValueDomain; | 12 | import tools.refinery.logic.term.truthvalue.TruthValueDomain; |
13 | 13 | ||
14 | import java.util.Arrays; | 14 | import java.util.Arrays; |
15 | import java.util.List; | 15 | import java.util.List; |
@@ -44,7 +44,7 @@ public record PartialRelation(String name, int arity) implements PartialSymbol<T | |||
44 | 44 | ||
45 | @Override | 45 | @Override |
46 | public int hashCode() { | 46 | public int hashCode() { |
47 | // Compare by identity to make hash table lookups more efficient. | 47 | // Compare by identity to make hash table look-ups more efficient. |
48 | return System.identityHashCode(this); | 48 | return System.identityHashCode(this); |
49 | } | 49 | } |
50 | 50 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialSymbol.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialSymbol.java index 38b2e466..21cbfefa 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialSymbol.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialSymbol.java | |||
@@ -1,13 +1,15 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.representation; | 6 | package tools.refinery.store.reasoning.representation; |
7 | 7 | ||
8 | import tools.refinery.store.representation.AbstractDomain; | 8 | import tools.refinery.logic.AbstractDomain; |
9 | import tools.refinery.logic.AbstractValue; | ||
9 | 10 | ||
10 | public sealed interface PartialSymbol<A, C> extends AnyPartialSymbol permits PartialFunction, PartialRelation { | 11 | public sealed interface PartialSymbol<A extends AbstractValue<A, C>, C> extends AnyPartialSymbol |
12 | permits PartialFunction, PartialRelation { | ||
11 | @Override | 13 | @Override |
12 | AbstractDomain<A, C> abstractDomain(); | 14 | AbstractDomain<A, C> abstractDomain(); |
13 | 15 | ||
@@ -17,7 +19,8 @@ public sealed interface PartialSymbol<A, C> extends AnyPartialSymbol permits Par | |||
17 | return new PartialRelation(name, arity); | 19 | return new PartialRelation(name, arity); |
18 | } | 20 | } |
19 | 21 | ||
20 | static <A, C> PartialFunction<A, C> of(String name, int arity, AbstractDomain<A, C> abstractDomain) { | 22 | static <A extends AbstractValue<A, C>, C> PartialFunction<A, C> of( |
23 | String name, int arity, AbstractDomain<A, C> abstractDomain) { | ||
21 | return new PartialFunction<>(name, arity, abstractDomain); | 24 | return new PartialFunction<>(name, arity, abstractDomain); |
22 | } | 25 | } |
23 | } | 26 | } |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/ModelSeed.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/ModelSeed.java index e6b3eaf9..9cd4862b 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/ModelSeed.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/ModelSeed.java | |||
@@ -1,10 +1,11 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2023-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.seed; | 6 | package tools.refinery.store.reasoning.seed; |
7 | 7 | ||
8 | import tools.refinery.logic.AbstractValue; | ||
8 | import tools.refinery.store.map.Cursor; | 9 | import tools.refinery.store.map.Cursor; |
9 | import tools.refinery.store.reasoning.representation.AnyPartialSymbol; | 10 | import tools.refinery.store.reasoning.representation.AnyPartialSymbol; |
10 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 11 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
@@ -29,7 +30,7 @@ public class ModelSeed { | |||
29 | return nodeCount; | 30 | return nodeCount; |
30 | } | 31 | } |
31 | 32 | ||
32 | public <A> Seed<A> getSeed(PartialSymbol<A, ?> partialSymbol) { | 33 | public <A extends AbstractValue<A, ?>> Seed<A> getSeed(PartialSymbol<A, ?> partialSymbol) { |
33 | var seed = seeds.get(partialSymbol); | 34 | var seed = seeds.get(partialSymbol); |
34 | if (seed == null) { | 35 | if (seed == null) { |
35 | throw new IllegalArgumentException("No seed for partial symbol " + partialSymbol); | 36 | throw new IllegalArgumentException("No seed for partial symbol " + partialSymbol); |
@@ -48,7 +49,8 @@ public class ModelSeed { | |||
48 | return Collections.unmodifiableSet(seeds.keySet()); | 49 | return Collections.unmodifiableSet(seeds.keySet()); |
49 | } | 50 | } |
50 | 51 | ||
51 | public <A> Cursor<Tuple, A> getCursor(PartialSymbol<A, ?> partialSymbol, A defaultValue) { | 52 | public <A extends AbstractValue<A, ?>> Cursor<Tuple, A> getCursor(PartialSymbol<A, ?> partialSymbol, |
53 | A defaultValue) { | ||
52 | return getSeed(partialSymbol).getCursor(defaultValue, nodeCount); | 54 | return getSeed(partialSymbol).getCursor(defaultValue, nodeCount); |
53 | } | 55 | } |
54 | 56 | ||
@@ -67,7 +69,7 @@ public class ModelSeed { | |||
67 | this.nodeCount = nodeCount; | 69 | this.nodeCount = nodeCount; |
68 | } | 70 | } |
69 | 71 | ||
70 | public <A> Builder seed(PartialSymbol<A, ?> partialSymbol, Seed<A> seed) { | 72 | public <A extends AbstractValue<A, ?>> Builder seed(PartialSymbol<A, ?> partialSymbol, Seed<A> seed) { |
71 | if (seed.arity() != partialSymbol.arity()) { | 73 | if (seed.arity() != partialSymbol.arity()) { |
72 | throw new IllegalStateException("Expected seed of arity %d for partial symbol %s, but got %d instead" | 74 | throw new IllegalStateException("Expected seed of arity %d for partial symbol %s, but got %d instead" |
73 | .formatted(partialSymbol.arity(), partialSymbol, seed.arity())); | 75 | .formatted(partialSymbol.arity(), partialSymbol, seed.arity())); |
@@ -82,7 +84,8 @@ public class ModelSeed { | |||
82 | return this; | 84 | return this; |
83 | } | 85 | } |
84 | 86 | ||
85 | public <A> Builder seed(PartialSymbol<A, ?> partialSymbol, Consumer<Seed.Builder<A>> callback) { | 87 | public <A extends AbstractValue<A, ?>> Builder seed(PartialSymbol<A, ?> partialSymbol, |
88 | Consumer<Seed.Builder<A>> callback) { | ||
86 | var builder = Seed.builder(partialSymbol); | 89 | var builder = Seed.builder(partialSymbol); |
87 | callback.accept(builder); | 90 | callback.accept(builder); |
88 | return seed(partialSymbol, builder.build()); | 91 | return seed(partialSymbol, builder.build()); |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/Seed.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/Seed.java index d9bad866..32562f01 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/Seed.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/Seed.java | |||
@@ -1,10 +1,11 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2021-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.seed; | 6 | package tools.refinery.store.reasoning.seed; |
7 | 7 | ||
8 | import tools.refinery.logic.AbstractValue; | ||
8 | import tools.refinery.store.map.Cursor; | 9 | import tools.refinery.store.map.Cursor; |
9 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 10 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
10 | import tools.refinery.store.representation.Symbol; | 11 | import tools.refinery.store.representation.Symbol; |
@@ -33,7 +34,7 @@ public interface Seed<T> { | |||
33 | return builder(symbol.arity(), symbol.valueType(), symbol.defaultValue()); | 34 | return builder(symbol.arity(), symbol.valueType(), symbol.defaultValue()); |
34 | } | 35 | } |
35 | 36 | ||
36 | static <T> Builder<T> builder(PartialSymbol<T, ?> partialSymbol) { | 37 | static <T extends AbstractValue<T, ?>> Builder<T> builder(PartialSymbol<T, ?> partialSymbol) { |
37 | return builder(partialSymbol.arity(), partialSymbol.abstractDomain().abstractType(), | 38 | return builder(partialSymbol.arity(), partialSymbol.abstractDomain().abstractType(), |
38 | partialSymbol.defaultValue()); | 39 | partialSymbol.defaultValue()); |
39 | } | 40 | } |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/SeedInitializer.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/SeedInitializer.java index 9af457d8..138e3a64 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/SeedInitializer.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/seed/SeedInitializer.java | |||
@@ -1,16 +1,17 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2023-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.seed; | 6 | package tools.refinery.store.reasoning.seed; |
7 | 7 | ||
8 | import tools.refinery.logic.AbstractValue; | ||
8 | import tools.refinery.store.model.Model; | 9 | import tools.refinery.store.model.Model; |
9 | import tools.refinery.store.reasoning.refinement.PartialModelInitializer; | 10 | import tools.refinery.store.reasoning.refinement.PartialModelInitializer; |
10 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 11 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
11 | import tools.refinery.store.representation.Symbol; | 12 | import tools.refinery.store.representation.Symbol; |
12 | 13 | ||
13 | public class SeedInitializer<T> implements PartialModelInitializer { | 14 | public class SeedInitializer<T extends AbstractValue<T, ?>> implements PartialModelInitializer { |
14 | private final Symbol<T> symbol; | 15 | private final Symbol<T> symbol; |
15 | private final PartialSymbol<T, ?> partialSymbol; | 16 | private final PartialSymbol<T, ?> partialSymbol; |
16 | 17 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/PartialRelationTranslator.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/PartialRelationTranslator.java index c2039afc..75fb3397 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/PartialRelationTranslator.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/PartialRelationTranslator.java | |||
@@ -5,18 +5,19 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator; | 6 | package tools.refinery.store.reasoning.translator; |
7 | 7 | ||
8 | import tools.refinery.logic.Constraint; | ||
9 | import tools.refinery.logic.dnf.Query; | ||
10 | import tools.refinery.logic.dnf.QueryBuilder; | ||
11 | import tools.refinery.logic.dnf.RelationalQuery; | ||
12 | import tools.refinery.logic.literal.Literal; | ||
13 | import tools.refinery.logic.term.NodeVariable; | ||
14 | import tools.refinery.logic.term.truthvalue.TruthValue; | ||
8 | import tools.refinery.store.dse.transition.Rule; | 15 | import tools.refinery.store.dse.transition.Rule; |
9 | import tools.refinery.store.dse.transition.objectives.Criteria; | 16 | import tools.refinery.store.dse.transition.objectives.Criteria; |
10 | import tools.refinery.store.dse.transition.objectives.Criterion; | 17 | import tools.refinery.store.dse.transition.objectives.Criterion; |
11 | import tools.refinery.store.dse.transition.objectives.Objective; | 18 | import tools.refinery.store.dse.transition.objectives.Objective; |
12 | import tools.refinery.store.dse.transition.objectives.Objectives; | 19 | import tools.refinery.store.dse.transition.objectives.Objectives; |
13 | import tools.refinery.store.model.ModelStoreBuilder; | 20 | import tools.refinery.store.model.ModelStoreBuilder; |
14 | import tools.refinery.store.query.Constraint; | ||
15 | import tools.refinery.store.query.dnf.Query; | ||
16 | import tools.refinery.store.query.dnf.QueryBuilder; | ||
17 | import tools.refinery.store.query.dnf.RelationalQuery; | ||
18 | import tools.refinery.store.query.literal.Literal; | ||
19 | import tools.refinery.store.query.term.NodeVariable; | ||
20 | import tools.refinery.store.query.view.MayView; | 21 | import tools.refinery.store.query.view.MayView; |
21 | import tools.refinery.store.query.view.MustView; | 22 | import tools.refinery.store.query.view.MustView; |
22 | import tools.refinery.store.reasoning.ReasoningAdapter; | 23 | import tools.refinery.store.reasoning.ReasoningAdapter; |
@@ -36,12 +37,11 @@ import tools.refinery.store.reasoning.refinement.StorageRefiner; | |||
36 | import tools.refinery.store.reasoning.representation.PartialRelation; | 37 | import tools.refinery.store.reasoning.representation.PartialRelation; |
37 | import tools.refinery.store.representation.AnySymbol; | 38 | import tools.refinery.store.representation.AnySymbol; |
38 | import tools.refinery.store.representation.Symbol; | 39 | import tools.refinery.store.representation.Symbol; |
39 | import tools.refinery.store.representation.TruthValue; | ||
40 | 40 | ||
41 | import java.util.ArrayList; | 41 | import java.util.ArrayList; |
42 | import java.util.function.BiConsumer; | 42 | import java.util.function.BiConsumer; |
43 | 43 | ||
44 | import static tools.refinery.store.query.literal.Literals.not; | 44 | import static tools.refinery.logic.literal.Literals.not; |
45 | 45 | ||
46 | @SuppressWarnings("UnusedReturnValue") | 46 | @SuppressWarnings("UnusedReturnValue") |
47 | public final class PartialRelationTranslator extends PartialSymbolTranslator<TruthValue, Boolean> { | 47 | public final class PartialRelationTranslator extends PartialSymbolTranslator<TruthValue, Boolean> { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/PartialSymbolTranslator.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/PartialSymbolTranslator.java index 6cdb287d..f2583098 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/PartialSymbolTranslator.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/PartialSymbolTranslator.java | |||
@@ -6,6 +6,7 @@ | |||
6 | package tools.refinery.store.reasoning.translator; | 6 | package tools.refinery.store.reasoning.translator; |
7 | 7 | ||
8 | import org.jetbrains.annotations.Nullable; | 8 | import org.jetbrains.annotations.Nullable; |
9 | import tools.refinery.logic.AbstractValue; | ||
9 | import tools.refinery.store.dse.transition.DesignSpaceExplorationBuilder; | 10 | import tools.refinery.store.dse.transition.DesignSpaceExplorationBuilder; |
10 | import tools.refinery.store.dse.transition.Rule; | 11 | import tools.refinery.store.dse.transition.Rule; |
11 | import tools.refinery.store.dse.transition.objectives.Criterion; | 12 | import tools.refinery.store.dse.transition.objectives.Criterion; |
@@ -25,8 +26,8 @@ import java.util.ArrayList; | |||
25 | import java.util.List; | 26 | import java.util.List; |
26 | 27 | ||
27 | @SuppressWarnings("UnusedReturnValue") | 28 | @SuppressWarnings("UnusedReturnValue") |
28 | public abstract sealed class PartialSymbolTranslator<A, C> implements AnyPartialSymbolTranslator | 29 | public abstract sealed class PartialSymbolTranslator<A extends AbstractValue<A, C>, C> |
29 | permits PartialRelationTranslator { | 30 | implements AnyPartialSymbolTranslator permits PartialRelationTranslator { |
30 | private final PartialSymbol<A, C> partialSymbol; | 31 | private final PartialSymbol<A, C> partialSymbol; |
31 | private boolean configured = false; | 32 | private boolean configured = false; |
32 | protected PartialInterpretationRefiner.Factory<A, C> interpretationRefiner; | 33 | protected PartialInterpretationRefiner.Factory<A, C> interpretationRefiner; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainmentHierarchyTranslator.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainmentHierarchyTranslator.java index c85bd8b7..1183d456 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainmentHierarchyTranslator.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainmentHierarchyTranslator.java | |||
@@ -5,16 +5,18 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.containment; | 6 | package tools.refinery.store.reasoning.translator.containment; |
7 | 7 | ||
8 | import tools.refinery.logic.dnf.Query; | ||
9 | import tools.refinery.logic.dnf.RelationalQuery; | ||
10 | import tools.refinery.logic.literal.Connectivity; | ||
11 | import tools.refinery.logic.literal.Literal; | ||
12 | import tools.refinery.logic.literal.RepresentativeElectionLiteral; | ||
13 | import tools.refinery.logic.term.Variable; | ||
14 | import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals; | ||
15 | import tools.refinery.logic.term.uppercardinality.FiniteUpperCardinality; | ||
8 | import tools.refinery.store.dse.transition.DesignSpaceExplorationBuilder; | 16 | import tools.refinery.store.dse.transition.DesignSpaceExplorationBuilder; |
9 | import tools.refinery.store.dse.transition.Rule; | 17 | import tools.refinery.store.dse.transition.Rule; |
10 | import tools.refinery.store.model.ModelStoreBuilder; | 18 | import tools.refinery.store.model.ModelStoreBuilder; |
11 | import tools.refinery.store.model.ModelStoreConfiguration; | 19 | import tools.refinery.store.model.ModelStoreConfiguration; |
12 | import tools.refinery.store.query.dnf.Query; | ||
13 | import tools.refinery.store.query.dnf.RelationalQuery; | ||
14 | import tools.refinery.store.query.literal.Connectivity; | ||
15 | import tools.refinery.store.query.literal.Literal; | ||
16 | import tools.refinery.store.query.literal.RepresentativeElectionLiteral; | ||
17 | import tools.refinery.store.query.term.Variable; | ||
18 | import tools.refinery.store.query.view.AnySymbolView; | 20 | import tools.refinery.store.query.view.AnySymbolView; |
19 | import tools.refinery.store.reasoning.lifting.DnfLifter; | 21 | import tools.refinery.store.reasoning.lifting.DnfLifter; |
20 | import tools.refinery.store.reasoning.literal.Concreteness; | 22 | import tools.refinery.store.reasoning.literal.Concreteness; |
@@ -28,17 +30,15 @@ import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslat | |||
28 | import tools.refinery.store.reasoning.translator.multiplicity.ConstrainedMultiplicity; | 30 | import tools.refinery.store.reasoning.translator.multiplicity.ConstrainedMultiplicity; |
29 | import tools.refinery.store.reasoning.translator.multiplicity.InvalidMultiplicityErrorTranslator; | 31 | import tools.refinery.store.reasoning.translator.multiplicity.InvalidMultiplicityErrorTranslator; |
30 | import tools.refinery.store.representation.Symbol; | 32 | import tools.refinery.store.representation.Symbol; |
31 | import tools.refinery.store.representation.cardinality.CardinalityIntervals; | ||
32 | import tools.refinery.store.representation.cardinality.FiniteUpperCardinality; | ||
33 | 33 | ||
34 | import java.util.ArrayList; | 34 | import java.util.ArrayList; |
35 | import java.util.List; | 35 | import java.util.List; |
36 | import java.util.Map; | 36 | import java.util.Map; |
37 | 37 | ||
38 | import static tools.refinery.store.query.literal.Literals.check; | 38 | import static tools.refinery.logic.term.int_.IntTerms.constant; |
39 | import static tools.refinery.store.query.literal.Literals.not; | 39 | import static tools.refinery.logic.term.int_.IntTerms.less; |
40 | import static tools.refinery.store.query.term.int_.IntTerms.constant; | 40 | import static tools.refinery.logic.literal.Literals.check; |
41 | import static tools.refinery.store.query.term.int_.IntTerms.less; | 41 | import static tools.refinery.logic.literal.Literals.not; |
42 | import static tools.refinery.store.reasoning.ReasoningAdapter.EXISTS_SYMBOL; | 42 | import static tools.refinery.store.reasoning.ReasoningAdapter.EXISTS_SYMBOL; |
43 | import static tools.refinery.store.reasoning.actions.PartialActionLiterals.add; | 43 | import static tools.refinery.store.reasoning.actions.PartialActionLiterals.add; |
44 | import static tools.refinery.store.reasoning.actions.PartialActionLiterals.focus; | 44 | import static tools.refinery.store.reasoning.actions.PartialActionLiterals.focus; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainmentLinkRefiner.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainmentLinkRefiner.java index e44fcffd..e83c33ac 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainmentLinkRefiner.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainmentLinkRefiner.java | |||
@@ -12,7 +12,7 @@ import tools.refinery.store.reasoning.refinement.PartialInterpretationRefiner; | |||
12 | import tools.refinery.store.reasoning.representation.PartialRelation; | 12 | import tools.refinery.store.reasoning.representation.PartialRelation; |
13 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 13 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
14 | import tools.refinery.store.representation.Symbol; | 14 | import tools.refinery.store.representation.Symbol; |
15 | import tools.refinery.store.representation.TruthValue; | 15 | import tools.refinery.logic.term.truthvalue.TruthValue; |
16 | import tools.refinery.store.tuple.Tuple; | 16 | import tools.refinery.store.tuple.Tuple; |
17 | 17 | ||
18 | import java.util.ArrayList; | 18 | import java.util.ArrayList; |
@@ -64,7 +64,7 @@ class ContainmentLinkRefiner extends AbstractPartialInterpretationRefiner<TruthV | |||
64 | if (mustLinks.contains(factory.linkType)) { | 64 | if (mustLinks.contains(factory.linkType)) { |
65 | return oldValue; | 65 | return oldValue; |
66 | } | 66 | } |
67 | return new InferredContainment(oldValue.contains().merge(TruthValue.TRUE), | 67 | return new InferredContainment(oldValue.contains().meet(TruthValue.TRUE), |
68 | addToSet(mustLinks, factory.linkType), oldValue.forbiddenLinks()); | 68 | addToSet(mustLinks, factory.linkType), oldValue.forbiddenLinks()); |
69 | } | 69 | } |
70 | 70 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainsRefiner.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainsRefiner.java index a7196a1c..00820040 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainsRefiner.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainsRefiner.java | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2023-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
@@ -11,7 +11,7 @@ import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRe | |||
11 | import tools.refinery.store.reasoning.refinement.PartialInterpretationRefiner; | 11 | import tools.refinery.store.reasoning.refinement.PartialInterpretationRefiner; |
12 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 12 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
13 | import tools.refinery.store.representation.Symbol; | 13 | import tools.refinery.store.representation.Symbol; |
14 | import tools.refinery.store.representation.TruthValue; | 14 | import tools.refinery.logic.term.truthvalue.TruthValue; |
15 | import tools.refinery.store.tuple.Tuple; | 15 | import tools.refinery.store.tuple.Tuple; |
16 | 16 | ||
17 | import java.util.LinkedHashMap; | 17 | import java.util.LinkedHashMap; |
@@ -23,7 +23,7 @@ class ContainsRefiner extends AbstractPartialInterpretationRefiner<TruthValue, B | |||
23 | 23 | ||
24 | static { | 24 | static { |
25 | var values = TruthValue.values(); | 25 | var values = TruthValue.values(); |
26 | EMPTY_VALUES = new LinkedHashMap<>(values.length); | 26 | EMPTY_VALUES = LinkedHashMap.newLinkedHashMap(values.length); |
27 | for (var value : values) { | 27 | for (var value : values) { |
28 | EMPTY_VALUES.put(value, new InferredContainment(value, Set.of(), Set.of())); | 28 | EMPTY_VALUES.put(value, new InferredContainment(value, Set.of(), Set.of())); |
29 | } | 29 | } |
@@ -53,7 +53,7 @@ class ContainsRefiner extends AbstractPartialInterpretationRefiner<TruthValue, B | |||
53 | } | 53 | } |
54 | 54 | ||
55 | public InferredContainment mergeLink(InferredContainment oldValue, TruthValue toMerge) { | 55 | public InferredContainment mergeLink(InferredContainment oldValue, TruthValue toMerge) { |
56 | var newContains = oldValue.contains().merge(toMerge); | 56 | var newContains = oldValue.contains().meet(toMerge); |
57 | if (newContains.equals(oldValue.contains())) { | 57 | if (newContains.equals(oldValue.contains())) { |
58 | return oldValue; | 58 | return oldValue; |
59 | } | 59 | } |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/InferredContainment.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/InferredContainment.java index 8a757ed2..0b6503c3 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/InferredContainment.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/InferredContainment.java | |||
@@ -6,7 +6,7 @@ | |||
6 | package tools.refinery.store.reasoning.translator.containment; | 6 | package tools.refinery.store.reasoning.translator.containment; |
7 | 7 | ||
8 | import tools.refinery.store.reasoning.representation.PartialRelation; | 8 | import tools.refinery.store.reasoning.representation.PartialRelation; |
9 | import tools.refinery.store.representation.TruthValue; | 9 | import tools.refinery.logic.term.truthvalue.TruthValue; |
10 | 10 | ||
11 | import java.util.Objects; | 11 | import java.util.Objects; |
12 | import java.util.Set; | 12 | import java.util.Set; |
@@ -31,11 +31,11 @@ final class InferredContainment { | |||
31 | Set<PartialRelation> forbiddenLinks) { | 31 | Set<PartialRelation> forbiddenLinks) { |
32 | var result = contains; | 32 | var result = contains; |
33 | if (!mustLinks.isEmpty()) { | 33 | if (!mustLinks.isEmpty()) { |
34 | result = result.merge(TruthValue.TRUE); | 34 | result = result.meet(TruthValue.TRUE); |
35 | } | 35 | } |
36 | boolean hasErrorLink = mustLinks.stream().anyMatch(forbiddenLinks::contains); | 36 | boolean hasErrorLink = mustLinks.stream().anyMatch(forbiddenLinks::contains); |
37 | if (mustLinks.size() >= 2 || hasErrorLink) { | 37 | if (mustLinks.size() >= 2 || hasErrorLink) { |
38 | result = result.merge(TruthValue.ERROR); | 38 | result = result.meet(TruthValue.ERROR); |
39 | } | 39 | } |
40 | return result; | 40 | return result; |
41 | } | 41 | } |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/CrossReferenceUtils.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/CrossReferenceUtils.java index c4a2f2b3..26449df5 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/CrossReferenceUtils.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/CrossReferenceUtils.java | |||
@@ -5,22 +5,22 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.crossreference; | 6 | package tools.refinery.store.reasoning.translator.crossreference; |
7 | 7 | ||
8 | import tools.refinery.store.query.dnf.Query; | 8 | import tools.refinery.logic.dnf.Query; |
9 | import tools.refinery.store.query.dnf.RelationalQuery; | 9 | import tools.refinery.logic.dnf.RelationalQuery; |
10 | import tools.refinery.store.query.literal.Literal; | 10 | import tools.refinery.logic.literal.Literal; |
11 | import tools.refinery.store.query.term.NodeVariable; | 11 | import tools.refinery.logic.term.NodeVariable; |
12 | import tools.refinery.store.query.term.Variable; | 12 | import tools.refinery.logic.term.Variable; |
13 | import tools.refinery.logic.term.uppercardinality.FiniteUpperCardinality; | ||
13 | import tools.refinery.store.reasoning.literal.CountLowerBoundLiteral; | 14 | import tools.refinery.store.reasoning.literal.CountLowerBoundLiteral; |
14 | import tools.refinery.store.reasoning.representation.PartialRelation; | 15 | import tools.refinery.store.reasoning.representation.PartialRelation; |
15 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; | 16 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; |
16 | import tools.refinery.store.representation.cardinality.FiniteUpperCardinality; | ||
17 | 17 | ||
18 | import java.util.ArrayList; | 18 | import java.util.ArrayList; |
19 | import java.util.List; | 19 | import java.util.List; |
20 | 20 | ||
21 | import static tools.refinery.store.query.literal.Literals.check; | 21 | import static tools.refinery.logic.literal.Literals.check; |
22 | import static tools.refinery.store.query.term.int_.IntTerms.constant; | 22 | import static tools.refinery.logic.term.int_.IntTerms.constant; |
23 | import static tools.refinery.store.query.term.int_.IntTerms.less; | 23 | import static tools.refinery.logic.term.int_.IntTerms.less; |
24 | import static tools.refinery.store.reasoning.literal.PartialLiterals.may; | 24 | import static tools.refinery.store.reasoning.literal.PartialLiterals.may; |
25 | 25 | ||
26 | class CrossReferenceUtils { | 26 | class CrossReferenceUtils { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceInfo.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceInfo.java index 7241b032..982f835f 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceInfo.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceInfo.java | |||
@@ -7,7 +7,7 @@ package tools.refinery.store.reasoning.translator.crossreference; | |||
7 | 7 | ||
8 | import tools.refinery.store.reasoning.representation.PartialRelation; | 8 | import tools.refinery.store.reasoning.representation.PartialRelation; |
9 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; | 9 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; |
10 | import tools.refinery.store.representation.TruthValue; | 10 | import tools.refinery.logic.term.truthvalue.TruthValue; |
11 | 11 | ||
12 | public record DirectedCrossReferenceInfo(PartialRelation sourceType, Multiplicity sourceMultiplicity, | 12 | public record DirectedCrossReferenceInfo(PartialRelation sourceType, Multiplicity sourceMultiplicity, |
13 | PartialRelation targetType, Multiplicity targetMultiplicity, | 13 | PartialRelation targetType, Multiplicity targetMultiplicity, |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceInitializer.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceInitializer.java index 9347e91e..7cb16a28 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceInitializer.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceInitializer.java | |||
@@ -11,7 +11,7 @@ import tools.refinery.store.reasoning.refinement.PartialModelInitializer; | |||
11 | import tools.refinery.store.reasoning.representation.PartialRelation; | 11 | import tools.refinery.store.reasoning.representation.PartialRelation; |
12 | import tools.refinery.store.reasoning.seed.ModelSeed; | 12 | import tools.refinery.store.reasoning.seed.ModelSeed; |
13 | import tools.refinery.store.representation.Symbol; | 13 | import tools.refinery.store.representation.Symbol; |
14 | import tools.refinery.store.representation.TruthValue; | 14 | import tools.refinery.logic.term.truthvalue.TruthValue; |
15 | import tools.refinery.store.tuple.Tuple; | 15 | import tools.refinery.store.tuple.Tuple; |
16 | 16 | ||
17 | class DirectedCrossReferenceInitializer implements PartialModelInitializer { | 17 | class DirectedCrossReferenceInitializer implements PartialModelInitializer { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceRefiner.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceRefiner.java index 2e804b44..75dd5dad 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceRefiner.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceRefiner.java | |||
@@ -11,7 +11,7 @@ import tools.refinery.store.reasoning.refinement.PartialInterpretationRefiner; | |||
11 | import tools.refinery.store.reasoning.representation.PartialRelation; | 11 | import tools.refinery.store.reasoning.representation.PartialRelation; |
12 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 12 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
13 | import tools.refinery.store.representation.Symbol; | 13 | import tools.refinery.store.representation.Symbol; |
14 | import tools.refinery.store.representation.TruthValue; | 14 | import tools.refinery.logic.term.truthvalue.TruthValue; |
15 | import tools.refinery.store.tuple.Tuple; | 15 | import tools.refinery.store.tuple.Tuple; |
16 | 16 | ||
17 | class DirectedCrossReferenceRefiner extends ConcreteSymbolRefiner<TruthValue, Boolean> { | 17 | class DirectedCrossReferenceRefiner extends ConcreteSymbolRefiner<TruthValue, Boolean> { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceTranslator.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceTranslator.java index fc7477f1..5bf1f5ab 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceTranslator.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceTranslator.java | |||
@@ -5,12 +5,13 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.crossreference; | 6 | package tools.refinery.store.reasoning.translator.crossreference; |
7 | 7 | ||
8 | import tools.refinery.logic.dnf.Query; | ||
9 | import tools.refinery.logic.dnf.RelationalQuery; | ||
10 | import tools.refinery.logic.term.truthvalue.TruthValue; | ||
8 | import tools.refinery.store.dse.propagation.PropagationBuilder; | 11 | import tools.refinery.store.dse.propagation.PropagationBuilder; |
9 | import tools.refinery.store.dse.transition.Rule; | 12 | import tools.refinery.store.dse.transition.Rule; |
10 | import tools.refinery.store.model.ModelStoreBuilder; | 13 | import tools.refinery.store.model.ModelStoreBuilder; |
11 | import tools.refinery.store.model.ModelStoreConfiguration; | 14 | import tools.refinery.store.model.ModelStoreConfiguration; |
12 | import tools.refinery.store.query.dnf.Query; | ||
13 | import tools.refinery.store.query.dnf.RelationalQuery; | ||
14 | import tools.refinery.store.query.view.ForbiddenView; | 15 | import tools.refinery.store.query.view.ForbiddenView; |
15 | import tools.refinery.store.reasoning.lifting.DnfLifter; | 16 | import tools.refinery.store.reasoning.lifting.DnfLifter; |
16 | import tools.refinery.store.reasoning.literal.Concreteness; | 17 | import tools.refinery.store.reasoning.literal.Concreteness; |
@@ -21,9 +22,8 @@ import tools.refinery.store.reasoning.translator.TranslationException; | |||
21 | import tools.refinery.store.reasoning.translator.multiplicity.InvalidMultiplicityErrorTranslator; | 22 | import tools.refinery.store.reasoning.translator.multiplicity.InvalidMultiplicityErrorTranslator; |
22 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; | 23 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; |
23 | import tools.refinery.store.representation.Symbol; | 24 | import tools.refinery.store.representation.Symbol; |
24 | import tools.refinery.store.representation.TruthValue; | ||
25 | 25 | ||
26 | import static tools.refinery.store.query.literal.Literals.not; | 26 | import static tools.refinery.logic.literal.Literals.not; |
27 | import static tools.refinery.store.reasoning.actions.PartialActionLiterals.add; | 27 | import static tools.refinery.store.reasoning.actions.PartialActionLiterals.add; |
28 | import static tools.refinery.store.reasoning.actions.PartialActionLiterals.merge; | 28 | import static tools.refinery.store.reasoning.actions.PartialActionLiterals.merge; |
29 | import static tools.refinery.store.reasoning.literal.PartialLiterals.*; | 29 | import static tools.refinery.store.reasoning.literal.PartialLiterals.*; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceInfo.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceInfo.java index 34e9032a..560eb04a 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceInfo.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceInfo.java | |||
@@ -7,7 +7,7 @@ package tools.refinery.store.reasoning.translator.crossreference; | |||
7 | 7 | ||
8 | import tools.refinery.store.reasoning.representation.PartialRelation; | 8 | import tools.refinery.store.reasoning.representation.PartialRelation; |
9 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; | 9 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; |
10 | import tools.refinery.store.representation.TruthValue; | 10 | import tools.refinery.logic.term.truthvalue.TruthValue; |
11 | 11 | ||
12 | public record UndirectedCrossReferenceInfo(PartialRelation type, Multiplicity multiplicity, TruthValue defaultValue) { | 12 | public record UndirectedCrossReferenceInfo(PartialRelation type, Multiplicity multiplicity, TruthValue defaultValue) { |
13 | public boolean isConstrained() { | 13 | public boolean isConstrained() { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceInitializer.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceInitializer.java index 77339aa0..84dcfdc5 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceInitializer.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceInitializer.java | |||
@@ -13,7 +13,7 @@ import tools.refinery.store.reasoning.representation.PartialRelation; | |||
13 | import tools.refinery.store.reasoning.seed.ModelSeed; | 13 | import tools.refinery.store.reasoning.seed.ModelSeed; |
14 | import tools.refinery.store.reasoning.translator.TranslationException; | 14 | import tools.refinery.store.reasoning.translator.TranslationException; |
15 | import tools.refinery.store.representation.Symbol; | 15 | import tools.refinery.store.representation.Symbol; |
16 | import tools.refinery.store.representation.TruthValue; | 16 | import tools.refinery.logic.term.truthvalue.TruthValue; |
17 | import tools.refinery.store.tuple.Tuple; | 17 | import tools.refinery.store.tuple.Tuple; |
18 | 18 | ||
19 | import java.util.LinkedHashMap; | 19 | import java.util.LinkedHashMap; |
@@ -73,7 +73,7 @@ class UndirectedCrossReferenceInitializer implements PartialModelInitializer { | |||
73 | // Already processed entry. | 73 | // Already processed entry. |
74 | continue; | 74 | continue; |
75 | } | 75 | } |
76 | var mergedValue = value.merge(oppositeValue == null ? defaultValue : oppositeValue); | 76 | var mergedValue = value.meet(oppositeValue == null ? defaultValue : oppositeValue); |
77 | mergedMap.put(key, mergedValue); | 77 | mergedMap.put(key, mergedValue); |
78 | if (first != second) { | 78 | if (first != second) { |
79 | mergedMap.put(oppositeKey, mergedValue); | 79 | mergedMap.put(oppositeKey, mergedValue); |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceRefiner.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceRefiner.java index 43c1462b..54aca80f 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceRefiner.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceRefiner.java | |||
@@ -11,7 +11,7 @@ import tools.refinery.store.reasoning.refinement.PartialInterpretationRefiner; | |||
11 | import tools.refinery.store.reasoning.representation.PartialRelation; | 11 | import tools.refinery.store.reasoning.representation.PartialRelation; |
12 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 12 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
13 | import tools.refinery.store.representation.Symbol; | 13 | import tools.refinery.store.representation.Symbol; |
14 | import tools.refinery.store.representation.TruthValue; | 14 | import tools.refinery.logic.term.truthvalue.TruthValue; |
15 | import tools.refinery.store.tuple.Tuple; | 15 | import tools.refinery.store.tuple.Tuple; |
16 | 16 | ||
17 | class UndirectedCrossReferenceRefiner extends ConcreteSymbolRefiner<TruthValue, Boolean> { | 17 | class UndirectedCrossReferenceRefiner extends ConcreteSymbolRefiner<TruthValue, Boolean> { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceTranslator.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceTranslator.java index b76838b3..97c0b800 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceTranslator.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceTranslator.java | |||
@@ -9,7 +9,7 @@ import tools.refinery.store.dse.propagation.PropagationBuilder; | |||
9 | import tools.refinery.store.dse.transition.Rule; | 9 | import tools.refinery.store.dse.transition.Rule; |
10 | import tools.refinery.store.model.ModelStoreBuilder; | 10 | import tools.refinery.store.model.ModelStoreBuilder; |
11 | import tools.refinery.store.model.ModelStoreConfiguration; | 11 | import tools.refinery.store.model.ModelStoreConfiguration; |
12 | import tools.refinery.store.query.dnf.Query; | 12 | import tools.refinery.logic.dnf.Query; |
13 | import tools.refinery.store.query.view.ForbiddenView; | 13 | import tools.refinery.store.query.view.ForbiddenView; |
14 | import tools.refinery.store.reasoning.lifting.DnfLifter; | 14 | import tools.refinery.store.reasoning.lifting.DnfLifter; |
15 | import tools.refinery.store.reasoning.literal.Concreteness; | 15 | import tools.refinery.store.reasoning.literal.Concreteness; |
@@ -19,9 +19,9 @@ import tools.refinery.store.reasoning.translator.PartialRelationTranslator; | |||
19 | import tools.refinery.store.reasoning.translator.TranslationException; | 19 | import tools.refinery.store.reasoning.translator.TranslationException; |
20 | import tools.refinery.store.reasoning.translator.multiplicity.InvalidMultiplicityErrorTranslator; | 20 | import tools.refinery.store.reasoning.translator.multiplicity.InvalidMultiplicityErrorTranslator; |
21 | import tools.refinery.store.representation.Symbol; | 21 | import tools.refinery.store.representation.Symbol; |
22 | import tools.refinery.store.representation.TruthValue; | 22 | import tools.refinery.logic.term.truthvalue.TruthValue; |
23 | 23 | ||
24 | import static tools.refinery.store.query.literal.Literals.not; | 24 | import static tools.refinery.logic.literal.Literals.not; |
25 | import static tools.refinery.store.reasoning.actions.PartialActionLiterals.add; | 25 | import static tools.refinery.store.reasoning.actions.PartialActionLiterals.add; |
26 | import static tools.refinery.store.reasoning.actions.PartialActionLiterals.merge; | 26 | import static tools.refinery.store.reasoning.actions.PartialActionLiterals.merge; |
27 | import static tools.refinery.store.reasoning.literal.PartialLiterals.*; | 27 | import static tools.refinery.store.reasoning.literal.PartialLiterals.*; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelBuilder.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelBuilder.java index a5047768..d1979b8c 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelBuilder.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelBuilder.java | |||
@@ -131,7 +131,7 @@ public class MetamodelBuilder { | |||
131 | var oppositeInfo = referenceInfoMap.get(opposite); | 131 | var oppositeInfo = referenceInfoMap.get(opposite); |
132 | validateOpposite(linkType, info, opposite, oppositeInfo); | 132 | validateOpposite(linkType, info, opposite, oppositeInfo); |
133 | targetMultiplicity = oppositeInfo.multiplicity(); | 133 | targetMultiplicity = oppositeInfo.multiplicity(); |
134 | defaultValue = defaultValue.merge(oppositeInfo.defaultValue()); | 134 | defaultValue = defaultValue.meet(oppositeInfo.defaultValue()); |
135 | if (oppositeInfo.containment()) { | 135 | if (oppositeInfo.containment()) { |
136 | // Skip processing this reference and process it once we encounter its containment opposite. | 136 | // Skip processing this reference and process it once we encounter its containment opposite. |
137 | return; | 137 | return; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/ReferenceInfo.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/ReferenceInfo.java index 9d7fc9c3..47a2e95f 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/ReferenceInfo.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/ReferenceInfo.java | |||
@@ -7,7 +7,7 @@ package tools.refinery.store.reasoning.translator.metamodel; | |||
7 | 7 | ||
8 | import tools.refinery.store.reasoning.representation.PartialRelation; | 8 | import tools.refinery.store.reasoning.representation.PartialRelation; |
9 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; | 9 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; |
10 | import tools.refinery.store.representation.TruthValue; | 10 | import tools.refinery.logic.term.truthvalue.TruthValue; |
11 | 11 | ||
12 | public record ReferenceInfo(boolean containment, PartialRelation sourceType, Multiplicity multiplicity, | 12 | public record ReferenceInfo(boolean containment, PartialRelation sourceType, Multiplicity multiplicity, |
13 | PartialRelation targetType, PartialRelation opposite, TruthValue defaultValue) { | 13 | PartialRelation targetType, PartialRelation opposite, TruthValue defaultValue) { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/ReferenceInfoBuilder.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/ReferenceInfoBuilder.java index 43d01503..39240d6b 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/ReferenceInfoBuilder.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/ReferenceInfoBuilder.java | |||
@@ -11,8 +11,8 @@ import tools.refinery.store.reasoning.representation.PartialRelation; | |||
11 | import tools.refinery.store.reasoning.translator.multiplicity.ConstrainedMultiplicity; | 11 | import tools.refinery.store.reasoning.translator.multiplicity.ConstrainedMultiplicity; |
12 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; | 12 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; |
13 | import tools.refinery.store.reasoning.translator.multiplicity.UnconstrainedMultiplicity; | 13 | import tools.refinery.store.reasoning.translator.multiplicity.UnconstrainedMultiplicity; |
14 | import tools.refinery.store.representation.TruthValue; | 14 | import tools.refinery.logic.term.truthvalue.TruthValue; |
15 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | 15 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; |
16 | 16 | ||
17 | public final class ReferenceInfoBuilder { | 17 | public final class ReferenceInfoBuilder { |
18 | private boolean containment; | 18 | private boolean containment; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/EqualsRefiner.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/EqualsRefiner.java index d8db4ec4..07595932 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/EqualsRefiner.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/EqualsRefiner.java | |||
@@ -10,9 +10,9 @@ import tools.refinery.store.reasoning.ReasoningAdapter; | |||
10 | import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner; | 10 | import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner; |
11 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 11 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
12 | import tools.refinery.store.representation.Symbol; | 12 | import tools.refinery.store.representation.Symbol; |
13 | import tools.refinery.store.representation.TruthValue; | 13 | import tools.refinery.logic.term.truthvalue.TruthValue; |
14 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | 14 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; |
15 | import tools.refinery.store.representation.cardinality.CardinalityIntervals; | 15 | import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals; |
16 | import tools.refinery.store.tuple.Tuple; | 16 | import tools.refinery.store.tuple.Tuple; |
17 | 17 | ||
18 | public class EqualsRefiner extends AbstractPartialInterpretationRefiner<TruthValue, Boolean> { | 18 | public class EqualsRefiner extends AbstractPartialInterpretationRefiner<TruthValue, Boolean> { |
@@ -51,7 +51,7 @@ public class EqualsRefiner extends AbstractPartialInterpretationRefiner<TruthVal | |||
51 | return false; | 51 | return false; |
52 | } | 52 | } |
53 | var newCount = currentCount.meet(CardinalityIntervals.LONE); | 53 | var newCount = currentCount.meet(CardinalityIntervals.LONE); |
54 | if (newCount.isEmpty()) { | 54 | if (newCount.isError()) { |
55 | return false; | 55 | return false; |
56 | } | 56 | } |
57 | countInterpretation.put(unaryKey, newCount); | 57 | countInterpretation.put(unaryKey, newCount); |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/EqualsRelationRewriter.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/EqualsRelationRewriter.java index 61b9488c..d4852f91 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/EqualsRelationRewriter.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/EqualsRelationRewriter.java | |||
@@ -5,25 +5,25 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.multiobject; | 6 | package tools.refinery.store.reasoning.translator.multiobject; |
7 | 7 | ||
8 | import tools.refinery.store.query.dnf.Query; | 8 | import tools.refinery.logic.dnf.Query; |
9 | import tools.refinery.store.query.dnf.RelationalQuery; | 9 | import tools.refinery.logic.dnf.RelationalQuery; |
10 | import tools.refinery.store.query.literal.AbstractCallLiteral; | 10 | import tools.refinery.logic.literal.AbstractCallLiteral; |
11 | import tools.refinery.store.query.literal.CallLiteral; | 11 | import tools.refinery.logic.literal.CallLiteral; |
12 | import tools.refinery.store.query.literal.Literal; | 12 | import tools.refinery.logic.literal.Literal; |
13 | import tools.refinery.store.query.term.Variable; | 13 | import tools.refinery.logic.term.Variable; |
14 | import tools.refinery.logic.term.uppercardinality.UpperCardinalities; | ||
15 | import tools.refinery.logic.term.uppercardinality.UpperCardinality; | ||
14 | import tools.refinery.store.query.view.AnySymbolView; | 16 | import tools.refinery.store.query.view.AnySymbolView; |
15 | import tools.refinery.store.reasoning.interpretation.QueryBasedRelationRewriter; | 17 | import tools.refinery.store.reasoning.interpretation.QueryBasedRelationRewriter; |
16 | import tools.refinery.store.reasoning.literal.Concreteness; | 18 | import tools.refinery.store.reasoning.literal.Concreteness; |
17 | import tools.refinery.store.reasoning.literal.Modality; | 19 | import tools.refinery.store.reasoning.literal.Modality; |
18 | import tools.refinery.store.representation.cardinality.UpperCardinalities; | ||
19 | import tools.refinery.store.representation.cardinality.UpperCardinality; | ||
20 | 20 | ||
21 | import java.util.List; | 21 | import java.util.List; |
22 | import java.util.Set; | 22 | import java.util.Set; |
23 | 23 | ||
24 | import static tools.refinery.store.query.literal.Literals.check; | 24 | import static tools.refinery.logic.literal.Literals.check; |
25 | import static tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms.constant; | 25 | import static tools.refinery.logic.term.uppercardinality.UpperCardinalityTerms.constant; |
26 | import static tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms.lessEq; | 26 | import static tools.refinery.logic.term.uppercardinality.UpperCardinalityTerms.lessEq; |
27 | 27 | ||
28 | class EqualsRelationRewriter extends QueryBasedRelationRewriter { | 28 | class EqualsRelationRewriter extends QueryBasedRelationRewriter { |
29 | private EqualsRelationRewriter(RelationalQuery may, RelationalQuery must) { | 29 | private EqualsRelationRewriter(RelationalQuery may, RelationalQuery must) { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/ExistsRefiner.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/ExistsRefiner.java index f134fe92..83fa4377 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/ExistsRefiner.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/ExistsRefiner.java | |||
@@ -10,9 +10,9 @@ import tools.refinery.store.reasoning.ReasoningAdapter; | |||
10 | import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner; | 10 | import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner; |
11 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 11 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
12 | import tools.refinery.store.representation.Symbol; | 12 | import tools.refinery.store.representation.Symbol; |
13 | import tools.refinery.store.representation.TruthValue; | 13 | import tools.refinery.logic.term.truthvalue.TruthValue; |
14 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | 14 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; |
15 | import tools.refinery.store.representation.cardinality.CardinalityIntervals; | 15 | import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals; |
16 | import tools.refinery.store.tuple.Tuple; | 16 | import tools.refinery.store.tuple.Tuple; |
17 | 17 | ||
18 | public class ExistsRefiner extends AbstractPartialInterpretationRefiner<TruthValue, Boolean> { | 18 | public class ExistsRefiner extends AbstractPartialInterpretationRefiner<TruthValue, Boolean> { |
@@ -42,7 +42,7 @@ public class ExistsRefiner extends AbstractPartialInterpretationRefiner<TruthVal | |||
42 | } | 42 | } |
43 | default -> throw new IllegalArgumentException("Unknown TruthValue: " + value); | 43 | default -> throw new IllegalArgumentException("Unknown TruthValue: " + value); |
44 | } | 44 | } |
45 | if (newCount.isEmpty()) { | 45 | if (newCount.isError()) { |
46 | return false; | 46 | return false; |
47 | } | 47 | } |
48 | countInterpretation.put(key, newCount); | 48 | countInterpretation.put(key, newCount); |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/LowerCardinalityView.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/LowerCardinalityView.java index 9873888c..5691b9e3 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/LowerCardinalityView.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/LowerCardinalityView.java | |||
@@ -5,10 +5,10 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.multiobject; | 6 | package tools.refinery.store.reasoning.translator.multiobject; |
7 | 7 | ||
8 | import tools.refinery.store.query.term.Parameter; | 8 | import tools.refinery.logic.term.Parameter; |
9 | import tools.refinery.store.query.view.AbstractFunctionView; | 9 | import tools.refinery.store.query.view.AbstractFunctionView; |
10 | import tools.refinery.store.representation.Symbol; | 10 | import tools.refinery.store.representation.Symbol; |
11 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | 11 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; |
12 | 12 | ||
13 | class LowerCardinalityView extends AbstractFunctionView<CardinalityInterval> { | 13 | class LowerCardinalityView extends AbstractFunctionView<CardinalityInterval> { |
14 | public LowerCardinalityView(Symbol<CardinalityInterval> symbol) { | 14 | public LowerCardinalityView(Symbol<CardinalityInterval> symbol) { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectInitializer.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectInitializer.java index 89918155..eb13174c 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectInitializer.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectInitializer.java | |||
@@ -12,9 +12,9 @@ import tools.refinery.store.reasoning.refinement.PartialModelInitializer; | |||
12 | import tools.refinery.store.reasoning.seed.ModelSeed; | 12 | import tools.refinery.store.reasoning.seed.ModelSeed; |
13 | import tools.refinery.store.reasoning.translator.TranslationException; | 13 | import tools.refinery.store.reasoning.translator.TranslationException; |
14 | import tools.refinery.store.representation.Symbol; | 14 | import tools.refinery.store.representation.Symbol; |
15 | import tools.refinery.store.representation.TruthValue; | 15 | import tools.refinery.logic.term.truthvalue.TruthValue; |
16 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | 16 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; |
17 | import tools.refinery.store.representation.cardinality.CardinalityIntervals; | 17 | import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals; |
18 | import tools.refinery.store.tuple.Tuple; | 18 | import tools.refinery.store.tuple.Tuple; |
19 | 19 | ||
20 | import java.util.Arrays; | 20 | import java.util.Arrays; |
@@ -37,7 +37,7 @@ class MultiObjectInitializer implements PartialModelInitializer { | |||
37 | var uniqueTable = new HashMap<CardinalityInterval, CardinalityInterval>(); | 37 | var uniqueTable = new HashMap<CardinalityInterval, CardinalityInterval>(); |
38 | for (int i = 0; i < intervals.length; i++) { | 38 | for (int i = 0; i < intervals.length; i++) { |
39 | var interval = intervals[i]; | 39 | var interval = intervals[i]; |
40 | if (interval.isEmpty()) { | 40 | if (interval.isError()) { |
41 | throw new TranslationException(ReasoningAdapter.EXISTS_SYMBOL, | 41 | throw new TranslationException(ReasoningAdapter.EXISTS_SYMBOL, |
42 | "Inconsistent existence or equality for node " + i); | 42 | "Inconsistent existence or equality for node " + i); |
43 | } | 43 | } |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectStorageRefiner.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectStorageRefiner.java index e48934d8..ab401f9e 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectStorageRefiner.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectStorageRefiner.java | |||
@@ -9,8 +9,8 @@ import tools.refinery.store.model.Interpretation; | |||
9 | import tools.refinery.store.model.Model; | 9 | import tools.refinery.store.model.Model; |
10 | import tools.refinery.store.reasoning.refinement.StorageRefiner; | 10 | import tools.refinery.store.reasoning.refinement.StorageRefiner; |
11 | import tools.refinery.store.representation.Symbol; | 11 | import tools.refinery.store.representation.Symbol; |
12 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | 12 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; |
13 | import tools.refinery.store.representation.cardinality.CardinalityIntervals; | 13 | import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals; |
14 | import tools.refinery.store.tuple.Tuple; | 14 | import tools.refinery.store.tuple.Tuple; |
15 | 15 | ||
16 | class MultiObjectStorageRefiner implements StorageRefiner { | 16 | class MultiObjectStorageRefiner implements StorageRefiner { |
@@ -28,7 +28,7 @@ class MultiObjectStorageRefiner implements StorageRefiner { | |||
28 | return false; | 28 | return false; |
29 | } | 29 | } |
30 | var newParentCount = parentCount.take(1); | 30 | var newParentCount = parentCount.take(1); |
31 | if (newParentCount.isEmpty()) { | 31 | if (newParentCount.isError()) { |
32 | return false; | 32 | return false; |
33 | } | 33 | } |
34 | var childKey = Tuple.of(childNode); | 34 | var childKey = Tuple.of(childNode); |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectTranslator.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectTranslator.java index 97fda9d5..be15b6d7 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectTranslator.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectTranslator.java | |||
@@ -5,17 +5,21 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.multiobject; | 6 | package tools.refinery.store.reasoning.translator.multiobject; |
7 | 7 | ||
8 | import tools.refinery.logic.dnf.Query; | ||
9 | import tools.refinery.logic.literal.Literals; | ||
10 | import tools.refinery.logic.term.Variable; | ||
11 | import tools.refinery.logic.term.cardinalityinterval.CardinalityDomain; | ||
12 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; | ||
13 | import tools.refinery.logic.term.int_.IntTerms; | ||
14 | import tools.refinery.logic.term.uppercardinality.UpperCardinalities; | ||
15 | import tools.refinery.logic.term.uppercardinality.UpperCardinality; | ||
16 | import tools.refinery.logic.term.uppercardinality.UpperCardinalityTerms; | ||
8 | import tools.refinery.store.dse.propagation.PropagationBuilder; | 17 | import tools.refinery.store.dse.propagation.PropagationBuilder; |
9 | import tools.refinery.store.dse.transition.Rule; | 18 | import tools.refinery.store.dse.transition.Rule; |
10 | import tools.refinery.store.dse.transition.objectives.Criteria; | 19 | import tools.refinery.store.dse.transition.objectives.Criteria; |
11 | import tools.refinery.store.dse.transition.objectives.Objectives; | 20 | import tools.refinery.store.dse.transition.objectives.Objectives; |
12 | import tools.refinery.store.model.ModelStoreBuilder; | 21 | import tools.refinery.store.model.ModelStoreBuilder; |
13 | import tools.refinery.store.model.ModelStoreConfiguration; | 22 | import tools.refinery.store.model.ModelStoreConfiguration; |
14 | import tools.refinery.store.query.dnf.Query; | ||
15 | import tools.refinery.store.query.literal.Literals; | ||
16 | import tools.refinery.store.query.term.Variable; | ||
17 | import tools.refinery.store.query.term.int_.IntTerms; | ||
18 | import tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms; | ||
19 | import tools.refinery.store.query.view.AnySymbolView; | 23 | import tools.refinery.store.query.view.AnySymbolView; |
20 | import tools.refinery.store.reasoning.ReasoningAdapter; | 24 | import tools.refinery.store.reasoning.ReasoningAdapter; |
21 | import tools.refinery.store.reasoning.ReasoningBuilder; | 25 | import tools.refinery.store.reasoning.ReasoningBuilder; |
@@ -24,15 +28,11 @@ import tools.refinery.store.reasoning.representation.PartialFunction; | |||
24 | import tools.refinery.store.reasoning.translator.PartialRelationTranslator; | 28 | import tools.refinery.store.reasoning.translator.PartialRelationTranslator; |
25 | import tools.refinery.store.reasoning.translator.RoundingMode; | 29 | import tools.refinery.store.reasoning.translator.RoundingMode; |
26 | import tools.refinery.store.representation.Symbol; | 30 | import tools.refinery.store.representation.Symbol; |
27 | import tools.refinery.store.representation.cardinality.CardinalityDomain; | ||
28 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | ||
29 | import tools.refinery.store.representation.cardinality.UpperCardinalities; | ||
30 | import tools.refinery.store.representation.cardinality.UpperCardinality; | ||
31 | 31 | ||
32 | import java.util.List; | 32 | import java.util.List; |
33 | 33 | ||
34 | import static tools.refinery.store.query.literal.Literals.check; | 34 | import static tools.refinery.logic.literal.Literals.check; |
35 | import static tools.refinery.store.query.term.int_.IntTerms.*; | 35 | import static tools.refinery.logic.term.int_.IntTerms.*; |
36 | 36 | ||
37 | public class MultiObjectTranslator implements ModelStoreConfiguration { | 37 | public class MultiObjectTranslator implements ModelStoreConfiguration { |
38 | public static final Symbol<CardinalityInterval> COUNT_STORAGE = Symbol.of("COUNT", 1, CardinalityInterval.class, | 38 | public static final Symbol<CardinalityInterval> COUNT_STORAGE = Symbol.of("COUNT", 1, CardinalityInterval.class, |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiView.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiView.java index 498bcd83..d81274b3 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiView.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiView.java | |||
@@ -7,8 +7,8 @@ package tools.refinery.store.reasoning.translator.multiobject; | |||
7 | 7 | ||
8 | import tools.refinery.store.query.view.TuplePreservingView; | 8 | import tools.refinery.store.query.view.TuplePreservingView; |
9 | import tools.refinery.store.representation.Symbol; | 9 | import tools.refinery.store.representation.Symbol; |
10 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | 10 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; |
11 | import tools.refinery.store.representation.cardinality.CardinalityIntervals; | 11 | import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals; |
12 | import tools.refinery.store.tuple.Tuple; | 12 | import tools.refinery.store.tuple.Tuple; |
13 | 13 | ||
14 | class MultiView extends TuplePreservingView<CardinalityInterval> { | 14 | class MultiView extends TuplePreservingView<CardinalityInterval> { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/UpperCardinalityView.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/UpperCardinalityView.java index 6be6ae1b..5797c4b0 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/UpperCardinalityView.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/UpperCardinalityView.java | |||
@@ -5,11 +5,11 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.multiobject; | 6 | package tools.refinery.store.reasoning.translator.multiobject; |
7 | 7 | ||
8 | import tools.refinery.store.query.term.Parameter; | 8 | import tools.refinery.logic.term.Parameter; |
9 | import tools.refinery.store.query.view.AbstractFunctionView; | 9 | import tools.refinery.store.query.view.AbstractFunctionView; |
10 | import tools.refinery.store.representation.Symbol; | 10 | import tools.refinery.store.representation.Symbol; |
11 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | 11 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; |
12 | import tools.refinery.store.representation.cardinality.UpperCardinality; | 12 | import tools.refinery.logic.term.uppercardinality.UpperCardinality; |
13 | 13 | ||
14 | class UpperCardinalityView extends AbstractFunctionView<CardinalityInterval> { | 14 | class UpperCardinalityView extends AbstractFunctionView<CardinalityInterval> { |
15 | public UpperCardinalityView(Symbol<CardinalityInterval> symbol) { | 15 | public UpperCardinalityView(Symbol<CardinalityInterval> symbol) { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/ConstrainedMultiplicity.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/ConstrainedMultiplicity.java index 9db9cc96..c327aac8 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/ConstrainedMultiplicity.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/ConstrainedMultiplicity.java | |||
@@ -7,9 +7,9 @@ package tools.refinery.store.reasoning.translator.multiplicity; | |||
7 | 7 | ||
8 | import tools.refinery.store.reasoning.representation.PartialRelation; | 8 | import tools.refinery.store.reasoning.representation.PartialRelation; |
9 | import tools.refinery.store.reasoning.translator.TranslationException; | 9 | import tools.refinery.store.reasoning.translator.TranslationException; |
10 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | 10 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; |
11 | import tools.refinery.store.representation.cardinality.CardinalityIntervals; | 11 | import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals; |
12 | import tools.refinery.store.representation.cardinality.NonEmptyCardinalityInterval; | 12 | import tools.refinery.logic.term.cardinalityinterval.NonEmptyCardinalityInterval; |
13 | 13 | ||
14 | public record ConstrainedMultiplicity(NonEmptyCardinalityInterval multiplicity, PartialRelation errorSymbol) | 14 | public record ConstrainedMultiplicity(NonEmptyCardinalityInterval multiplicity, PartialRelation errorSymbol) |
15 | implements Multiplicity { | 15 | implements Multiplicity { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/InvalidMultiplicityErrorTranslator.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/InvalidMultiplicityErrorTranslator.java index a506d802..0ca6eac2 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/InvalidMultiplicityErrorTranslator.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/InvalidMultiplicityErrorTranslator.java | |||
@@ -5,31 +5,26 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.multiplicity; | 6 | package tools.refinery.store.reasoning.translator.multiplicity; |
7 | 7 | ||
8 | import tools.refinery.logic.dnf.Query; | ||
9 | import tools.refinery.logic.term.Variable; | ||
10 | import tools.refinery.logic.term.uppercardinality.FiniteUpperCardinality; | ||
11 | import tools.refinery.logic.term.uppercardinality.UpperCardinalities; | ||
12 | import tools.refinery.logic.term.uppercardinality.UpperCardinality; | ||
13 | import tools.refinery.logic.term.uppercardinality.UpperCardinalityTerms; | ||
8 | import tools.refinery.store.dse.transition.objectives.Objectives; | 14 | import tools.refinery.store.dse.transition.objectives.Objectives; |
9 | import tools.refinery.store.model.ModelStoreBuilder; | 15 | import tools.refinery.store.model.ModelStoreBuilder; |
10 | import tools.refinery.store.model.ModelStoreConfiguration; | 16 | import tools.refinery.store.model.ModelStoreConfiguration; |
11 | import tools.refinery.store.query.dnf.Query; | ||
12 | import tools.refinery.store.query.term.Variable; | ||
13 | import tools.refinery.store.query.term.int_.IntTerms; | ||
14 | import tools.refinery.store.reasoning.ReasoningAdapter; | 17 | import tools.refinery.store.reasoning.ReasoningAdapter; |
15 | import tools.refinery.store.reasoning.lifting.DnfLifter; | 18 | import tools.refinery.store.reasoning.lifting.DnfLifter; |
16 | import tools.refinery.store.reasoning.literal.*; | 19 | import tools.refinery.store.reasoning.literal.*; |
17 | import tools.refinery.store.reasoning.representation.PartialRelation; | 20 | import tools.refinery.store.reasoning.representation.PartialRelation; |
18 | import tools.refinery.store.reasoning.translator.PartialRelationTranslator; | 21 | import tools.refinery.store.reasoning.translator.PartialRelationTranslator; |
19 | import tools.refinery.store.reasoning.translator.TranslationException; | 22 | import tools.refinery.store.reasoning.translator.TranslationException; |
20 | import tools.refinery.store.representation.cardinality.FiniteUpperCardinality; | ||
21 | import tools.refinery.store.representation.cardinality.UpperCardinalities; | ||
22 | import tools.refinery.store.representation.cardinality.UpperCardinality; | ||
23 | 23 | ||
24 | import java.util.List; | 24 | import java.util.List; |
25 | 25 | ||
26 | import static tools.refinery.store.query.literal.Literals.check; | 26 | import static tools.refinery.logic.literal.Literals.check; |
27 | import static tools.refinery.store.query.term.int_.IntTerms.INT_SUM; | 27 | import static tools.refinery.logic.term.int_.IntTerms.*; |
28 | import static tools.refinery.store.query.term.int_.IntTerms.constant; | ||
29 | import static tools.refinery.store.query.term.int_.IntTerms.greater; | ||
30 | import static tools.refinery.store.query.term.int_.IntTerms.sub; | ||
31 | import static tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms.constant; | ||
32 | import static tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms.less; | ||
33 | import static tools.refinery.store.reasoning.literal.PartialLiterals.candidateMust; | 28 | import static tools.refinery.store.reasoning.literal.PartialLiterals.candidateMust; |
34 | import static tools.refinery.store.reasoning.literal.PartialLiterals.must; | 29 | import static tools.refinery.store.reasoning.literal.PartialLiterals.must; |
35 | 30 | ||
@@ -81,17 +76,18 @@ public class InvalidMultiplicityErrorTranslator implements ModelStoreConfigurati | |||
81 | mustBuilder.clause(UpperCardinality.class, existingContents -> List.of( | 76 | mustBuilder.clause(UpperCardinality.class, existingContents -> List.of( |
82 | must(nodeType.call(node)), | 77 | must(nodeType.call(node)), |
83 | new CountUpperBoundLiteral(existingContents, linkType, arguments), | 78 | new CountUpperBoundLiteral(existingContents, linkType, arguments), |
84 | check(less(existingContents, constant(lowerBoundCardinality))) | 79 | check(UpperCardinalityTerms.less(existingContents, |
80 | UpperCardinalityTerms.constant(lowerBoundCardinality))) | ||
85 | )); | 81 | )); |
86 | candidateMayBuilder.clause(Integer.class, existingContents -> List.of( | 82 | candidateMayBuilder.clause(Integer.class, existingContents -> List.of( |
87 | candidateMust(nodeType.call(node)), | 83 | candidateMust(nodeType.call(node)), |
88 | new CountCandidateLowerBoundLiteral(existingContents, linkType, arguments), | 84 | new CountCandidateLowerBoundLiteral(existingContents, linkType, arguments), |
89 | check(IntTerms.less(existingContents, constant(lowerBound))) | 85 | check(less(existingContents, constant(lowerBound))) |
90 | )); | 86 | )); |
91 | candidateMustBuilder.clause(Integer.class, existingContents -> List.of( | 87 | candidateMustBuilder.clause(Integer.class, existingContents -> List.of( |
92 | candidateMust(nodeType.call(node)), | 88 | candidateMust(nodeType.call(node)), |
93 | new CountCandidateUpperBoundLiteral(existingContents, linkType, arguments), | 89 | new CountCandidateUpperBoundLiteral(existingContents, linkType, arguments), |
94 | check(IntTerms.less(existingContents, constant(lowerBound))) | 90 | check(less(existingContents, constant(lowerBound))) |
95 | )); | 91 | )); |
96 | missingBuilder.clause(Integer.class, existingContents -> List.of( | 92 | missingBuilder.clause(Integer.class, existingContents -> List.of( |
97 | candidateMust(nodeType.call(node)), | 93 | candidateMust(nodeType.call(node)), |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/Multiplicity.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/Multiplicity.java index d1d6dd1e..d6035781 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/Multiplicity.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/Multiplicity.java | |||
@@ -5,7 +5,7 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.multiplicity; | 6 | package tools.refinery.store.reasoning.translator.multiplicity; |
7 | 7 | ||
8 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | 8 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; |
9 | 9 | ||
10 | public sealed interface Multiplicity permits ConstrainedMultiplicity, UnconstrainedMultiplicity { | 10 | public sealed interface Multiplicity permits ConstrainedMultiplicity, UnconstrainedMultiplicity { |
11 | CardinalityInterval multiplicity(); | 11 | CardinalityInterval multiplicity(); |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/UnconstrainedMultiplicity.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/UnconstrainedMultiplicity.java index 2159b88c..fb669a79 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/UnconstrainedMultiplicity.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/UnconstrainedMultiplicity.java | |||
@@ -5,8 +5,8 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.multiplicity; | 6 | package tools.refinery.store.reasoning.translator.multiplicity; |
7 | 7 | ||
8 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | 8 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; |
9 | import tools.refinery.store.representation.cardinality.CardinalityIntervals; | 9 | import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals; |
10 | 10 | ||
11 | // Singleton implementation, because there is only a single complete interval. | 11 | // Singleton implementation, because there is only a single complete interval. |
12 | @SuppressWarnings("squid:S6548") | 12 | @SuppressWarnings("squid:S6548") |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/opposite/OppositeInterpretation.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/opposite/OppositeInterpretation.java index 7290ab40..75828086 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/opposite/OppositeInterpretation.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/opposite/OppositeInterpretation.java | |||
@@ -1,11 +1,11 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2023-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.opposite; | 6 | package tools.refinery.store.reasoning.translator.opposite; |
7 | 7 | ||
8 | 8 | import tools.refinery.logic.AbstractValue; | |
9 | import tools.refinery.store.map.AnyVersionedMap; | 9 | import tools.refinery.store.map.AnyVersionedMap; |
10 | import tools.refinery.store.map.Cursor; | 10 | import tools.refinery.store.map.Cursor; |
11 | import tools.refinery.store.reasoning.ReasoningAdapter; | 11 | import tools.refinery.store.reasoning.ReasoningAdapter; |
@@ -17,7 +17,7 @@ import tools.refinery.store.tuple.Tuple; | |||
17 | 17 | ||
18 | import java.util.Set; | 18 | import java.util.Set; |
19 | 19 | ||
20 | class OppositeInterpretation<A, C> extends AbstractPartialInterpretation<A, C> { | 20 | class OppositeInterpretation<A extends AbstractValue<A, C>, C> extends AbstractPartialInterpretation<A, C> { |
21 | private final PartialInterpretation<A, C> opposite; | 21 | private final PartialInterpretation<A, C> opposite; |
22 | 22 | ||
23 | private OppositeInterpretation(ReasoningAdapter adapter, Concreteness concreteness, | 23 | private OppositeInterpretation(ReasoningAdapter adapter, Concreteness concreteness, |
@@ -36,7 +36,7 @@ class OppositeInterpretation<A, C> extends AbstractPartialInterpretation<A, C> { | |||
36 | return new OppositeCursor<>(opposite.getAll()); | 36 | return new OppositeCursor<>(opposite.getAll()); |
37 | } | 37 | } |
38 | 38 | ||
39 | public static <A1, C1> Factory<A1, C1> of(PartialSymbol<A1, C1> oppositeSymbol) { | 39 | public static <A1 extends AbstractValue<A1, C1>, C1> Factory<A1, C1> of(PartialSymbol<A1, C1> oppositeSymbol) { |
40 | return (adapter, concreteness, partialSymbol) -> { | 40 | return (adapter, concreteness, partialSymbol) -> { |
41 | var opposite = adapter.getPartialInterpretation(concreteness, oppositeSymbol); | 41 | var opposite = adapter.getPartialInterpretation(concreteness, oppositeSymbol); |
42 | return new OppositeInterpretation<>(adapter, concreteness, partialSymbol, opposite); | 42 | return new OppositeInterpretation<>(adapter, concreteness, partialSymbol, opposite); |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/opposite/OppositeRefiner.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/opposite/OppositeRefiner.java index d09684df..47e3ac6a 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/opposite/OppositeRefiner.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/opposite/OppositeRefiner.java | |||
@@ -1,17 +1,18 @@ | |||
1 | /* | 1 | /* |
2 | * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/> | 2 | * SPDX-FileCopyrightText: 2023-2024 The Refinery Authors <https://refinery.tools/> |
3 | * | 3 | * |
4 | * SPDX-License-Identifier: EPL-2.0 | 4 | * SPDX-License-Identifier: EPL-2.0 |
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.opposite; | 6 | package tools.refinery.store.reasoning.translator.opposite; |
7 | 7 | ||
8 | import tools.refinery.logic.AbstractValue; | ||
8 | import tools.refinery.store.reasoning.ReasoningAdapter; | 9 | import tools.refinery.store.reasoning.ReasoningAdapter; |
9 | import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner; | 10 | import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner; |
10 | import tools.refinery.store.reasoning.refinement.PartialInterpretationRefiner; | 11 | import tools.refinery.store.reasoning.refinement.PartialInterpretationRefiner; |
11 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 12 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
12 | import tools.refinery.store.tuple.Tuple; | 13 | import tools.refinery.store.tuple.Tuple; |
13 | 14 | ||
14 | public class OppositeRefiner<A, C> extends AbstractPartialInterpretationRefiner<A, C> { | 15 | public class OppositeRefiner<A extends AbstractValue<A, C>, C> extends AbstractPartialInterpretationRefiner<A, C> { |
15 | private final PartialInterpretationRefiner<A, C> opposite; | 16 | private final PartialInterpretationRefiner<A, C> opposite; |
16 | 17 | ||
17 | protected OppositeRefiner(ReasoningAdapter adapter, PartialSymbol<A, C> partialSymbol, | 18 | protected OppositeRefiner(ReasoningAdapter adapter, PartialSymbol<A, C> partialSymbol, |
@@ -26,7 +27,7 @@ public class OppositeRefiner<A, C> extends AbstractPartialInterpretationRefiner< | |||
26 | return opposite.merge(oppositeKey, value); | 27 | return opposite.merge(oppositeKey, value); |
27 | } | 28 | } |
28 | 29 | ||
29 | public static <A1, C1> Factory<A1, C1> of(PartialSymbol<A1, C1> oppositeSymbol) { | 30 | public static <A1 extends AbstractValue<A1, C1>, C1> Factory<A1, C1> of(PartialSymbol<A1, C1> oppositeSymbol) { |
30 | return (adapter, partialSymbol) -> new OppositeRefiner<>(adapter, partialSymbol, oppositeSymbol); | 31 | return (adapter, partialSymbol) -> new OppositeRefiner<>(adapter, partialSymbol, oppositeSymbol); |
31 | } | 32 | } |
32 | } | 33 | } |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/opposite/OppositeRelationTranslator.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/opposite/OppositeRelationTranslator.java index 6e15a628..29abed7a 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/opposite/OppositeRelationTranslator.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/opposite/OppositeRelationTranslator.java | |||
@@ -5,11 +5,11 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.opposite; | 6 | package tools.refinery.store.reasoning.translator.opposite; |
7 | 7 | ||
8 | import tools.refinery.logic.literal.AbstractCallLiteral; | ||
9 | import tools.refinery.logic.literal.Literal; | ||
10 | import tools.refinery.logic.term.Variable; | ||
8 | import tools.refinery.store.model.ModelStoreBuilder; | 11 | import tools.refinery.store.model.ModelStoreBuilder; |
9 | import tools.refinery.store.model.ModelStoreConfiguration; | 12 | import tools.refinery.store.model.ModelStoreConfiguration; |
10 | import tools.refinery.store.query.literal.AbstractCallLiteral; | ||
11 | import tools.refinery.store.query.literal.Literal; | ||
12 | import tools.refinery.store.query.term.Variable; | ||
13 | import tools.refinery.store.reasoning.interpretation.PartialRelationRewriter; | 13 | import tools.refinery.store.reasoning.interpretation.PartialRelationRewriter; |
14 | import tools.refinery.store.reasoning.literal.Concreteness; | 14 | import tools.refinery.store.reasoning.literal.Concreteness; |
15 | import tools.refinery.store.reasoning.literal.ModalConstraint; | 15 | import tools.refinery.store.reasoning.literal.ModalConstraint; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/predicate/PredicateTranslator.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/predicate/PredicateTranslator.java index b401118e..010ce977 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/predicate/PredicateTranslator.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/predicate/PredicateTranslator.java | |||
@@ -5,13 +5,14 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.predicate; | 6 | package tools.refinery.store.reasoning.translator.predicate; |
7 | 7 | ||
8 | import tools.refinery.logic.dnf.Query; | ||
9 | import tools.refinery.logic.dnf.RelationalQuery; | ||
10 | import tools.refinery.logic.literal.Literal; | ||
11 | import tools.refinery.logic.term.NodeVariable; | ||
12 | import tools.refinery.logic.term.Variable; | ||
13 | import tools.refinery.logic.term.truthvalue.TruthValue; | ||
8 | import tools.refinery.store.model.ModelStoreBuilder; | 14 | import tools.refinery.store.model.ModelStoreBuilder; |
9 | import tools.refinery.store.model.ModelStoreConfiguration; | 15 | import tools.refinery.store.model.ModelStoreConfiguration; |
10 | import tools.refinery.store.query.dnf.Query; | ||
11 | import tools.refinery.store.query.dnf.RelationalQuery; | ||
12 | import tools.refinery.store.query.literal.Literal; | ||
13 | import tools.refinery.store.query.term.NodeVariable; | ||
14 | import tools.refinery.store.query.term.Variable; | ||
15 | import tools.refinery.store.query.view.ForbiddenView; | 16 | import tools.refinery.store.query.view.ForbiddenView; |
16 | import tools.refinery.store.query.view.MayView; | 17 | import tools.refinery.store.query.view.MayView; |
17 | import tools.refinery.store.query.view.MustView; | 18 | import tools.refinery.store.query.view.MustView; |
@@ -19,9 +20,8 @@ import tools.refinery.store.reasoning.representation.PartialRelation; | |||
19 | import tools.refinery.store.reasoning.translator.PartialRelationTranslator; | 20 | import tools.refinery.store.reasoning.translator.PartialRelationTranslator; |
20 | import tools.refinery.store.reasoning.translator.TranslationException; | 21 | import tools.refinery.store.reasoning.translator.TranslationException; |
21 | import tools.refinery.store.representation.Symbol; | 22 | import tools.refinery.store.representation.Symbol; |
22 | import tools.refinery.store.representation.TruthValue; | ||
23 | 23 | ||
24 | import static tools.refinery.store.query.literal.Literals.not; | 24 | import static tools.refinery.logic.literal.Literals.not; |
25 | import static tools.refinery.store.reasoning.literal.PartialLiterals.may; | 25 | import static tools.refinery.store.reasoning.literal.PartialLiterals.may; |
26 | import static tools.refinery.store.reasoning.literal.PartialLiterals.must; | 26 | import static tools.refinery.store.reasoning.literal.PartialLiterals.must; |
27 | 27 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/proxy/PartialRelationTranslatorProxy.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/proxy/PartialRelationTranslatorProxy.java index 45dc5bd2..50873993 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/proxy/PartialRelationTranslatorProxy.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/proxy/PartialRelationTranslatorProxy.java | |||
@@ -5,11 +5,11 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.proxy; | 6 | package tools.refinery.store.reasoning.translator.proxy; |
7 | 7 | ||
8 | import tools.refinery.logic.literal.AbstractCallLiteral; | ||
9 | import tools.refinery.logic.literal.Literal; | ||
10 | import tools.refinery.logic.term.Variable; | ||
8 | import tools.refinery.store.model.ModelStoreBuilder; | 11 | import tools.refinery.store.model.ModelStoreBuilder; |
9 | import tools.refinery.store.model.ModelStoreConfiguration; | 12 | import tools.refinery.store.model.ModelStoreConfiguration; |
10 | import tools.refinery.store.query.literal.AbstractCallLiteral; | ||
11 | import tools.refinery.store.query.literal.Literal; | ||
12 | import tools.refinery.store.query.term.Variable; | ||
13 | import tools.refinery.store.reasoning.interpretation.PartialRelationRewriter; | 13 | import tools.refinery.store.reasoning.interpretation.PartialRelationRewriter; |
14 | import tools.refinery.store.reasoning.literal.Concreteness; | 14 | import tools.refinery.store.reasoning.literal.Concreteness; |
15 | import tools.refinery.store.reasoning.literal.ModalConstraint; | 15 | import tools.refinery.store.reasoning.literal.ModalConstraint; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredTypeRefiner.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredTypeRefiner.java index 40a7b3fa..257b9136 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredTypeRefiner.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredTypeRefiner.java | |||
@@ -10,7 +10,7 @@ import tools.refinery.store.reasoning.ReasoningAdapter; | |||
10 | import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner; | 10 | import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner; |
11 | import tools.refinery.store.reasoning.representation.PartialSymbol; | 11 | import tools.refinery.store.reasoning.representation.PartialSymbol; |
12 | import tools.refinery.store.representation.Symbol; | 12 | import tools.refinery.store.representation.Symbol; |
13 | import tools.refinery.store.representation.TruthValue; | 13 | import tools.refinery.logic.term.truthvalue.TruthValue; |
14 | import tools.refinery.store.tuple.Tuple; | 14 | import tools.refinery.store.tuple.Tuple; |
15 | 15 | ||
16 | class InferredTypeRefiner extends AbstractPartialInterpretationRefiner<TruthValue, Boolean> { | 16 | class InferredTypeRefiner extends AbstractPartialInterpretationRefiner<TruthValue, Boolean> { |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisResult.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisResult.java index ebe0d1b9..324e2b9e 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisResult.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisResult.java | |||
@@ -6,7 +6,7 @@ | |||
6 | package tools.refinery.store.reasoning.translator.typehierarchy; | 6 | package tools.refinery.store.reasoning.translator.typehierarchy; |
7 | 7 | ||
8 | import tools.refinery.store.reasoning.representation.PartialRelation; | 8 | import tools.refinery.store.reasoning.representation.PartialRelation; |
9 | import tools.refinery.store.representation.TruthValue; | 9 | import tools.refinery.logic.term.truthvalue.TruthValue; |
10 | 10 | ||
11 | import java.util.*; | 11 | import java.util.*; |
12 | 12 | ||
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyInitializer.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyInitializer.java index 233e43f0..aa76d927 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyInitializer.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyInitializer.java | |||
@@ -10,7 +10,7 @@ import tools.refinery.store.reasoning.refinement.PartialModelInitializer; | |||
10 | import tools.refinery.store.reasoning.representation.PartialRelation; | 10 | import tools.refinery.store.reasoning.representation.PartialRelation; |
11 | import tools.refinery.store.reasoning.seed.ModelSeed; | 11 | import tools.refinery.store.reasoning.seed.ModelSeed; |
12 | import tools.refinery.store.representation.Symbol; | 12 | import tools.refinery.store.representation.Symbol; |
13 | import tools.refinery.store.representation.TruthValue; | 13 | import tools.refinery.logic.term.truthvalue.TruthValue; |
14 | import tools.refinery.store.tuple.Tuple; | 14 | import tools.refinery.store.tuple.Tuple; |
15 | 15 | ||
16 | import java.util.Arrays; | 16 | import java.util.Arrays; |
diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslator.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslator.java index 37ea1448..700bbe88 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslator.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslator.java | |||
@@ -5,11 +5,11 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.store.reasoning.translator.typehierarchy; | 6 | package tools.refinery.store.reasoning.translator.typehierarchy; |
7 | 7 | ||
8 | import tools.refinery.logic.dnf.Query; | ||
8 | import tools.refinery.store.dse.transition.Rule; | 9 | import tools.refinery.store.dse.transition.Rule; |
9 | import tools.refinery.store.dse.transition.actions.ActionLiteral; | 10 | import tools.refinery.store.dse.transition.actions.ActionLiteral; |
10 | import tools.refinery.store.model.ModelStoreBuilder; | 11 | import tools.refinery.store.model.ModelStoreBuilder; |
11 | import tools.refinery.store.model.ModelStoreConfiguration; | 12 | import tools.refinery.store.model.ModelStoreConfiguration; |
12 | import tools.refinery.store.query.dnf.Query; | ||
13 | import tools.refinery.store.reasoning.ReasoningBuilder; | 13 | import tools.refinery.store.reasoning.ReasoningBuilder; |
14 | import tools.refinery.store.reasoning.actions.PartialActionLiterals; | 14 | import tools.refinery.store.reasoning.actions.PartialActionLiterals; |
15 | import tools.refinery.store.reasoning.literal.PartialLiterals; | 15 | import tools.refinery.store.reasoning.literal.PartialLiterals; |
@@ -21,7 +21,7 @@ import tools.refinery.store.representation.Symbol; | |||
21 | 21 | ||
22 | import java.util.ArrayList; | 22 | import java.util.ArrayList; |
23 | 23 | ||
24 | import static tools.refinery.store.query.literal.Literals.not; | 24 | import static tools.refinery.logic.literal.Literals.not; |
25 | import static tools.refinery.store.reasoning.literal.PartialLiterals.candidateMust; | 25 | import static tools.refinery.store.reasoning.literal.PartialLiterals.candidateMust; |
26 | import static tools.refinery.store.reasoning.literal.PartialLiterals.may; | 26 | import static tools.refinery.store.reasoning.literal.PartialLiterals.may; |
27 | 27 | ||