aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/logic/src/main/java/tools/refinery/logic/term/truthvalue/TruthValueDomain.java
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/logic/src/main/java/tools/refinery/logic/term/truthvalue/TruthValueDomain.java')
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/truthvalue/TruthValueDomain.java41
1 files changed, 7 insertions, 34 deletions
diff --git a/subprojects/logic/src/main/java/tools/refinery/logic/term/truthvalue/TruthValueDomain.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/truthvalue/TruthValueDomain.java
index 443f744f..de8a89be 100644
--- a/subprojects/logic/src/main/java/tools/refinery/logic/term/truthvalue/TruthValueDomain.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/truthvalue/TruthValueDomain.java
@@ -1,5 +1,5 @@
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 */
@@ -7,8 +7,6 @@ package tools.refinery.logic.term.truthvalue;
7 7
8import tools.refinery.logic.AbstractDomain; 8import tools.refinery.logic.AbstractDomain;
9 9
10import java.util.Optional;
11
12// Singleton pattern, because there is only one domain for truth values. 10// Singleton pattern, because there is only one domain for truth values.
13@SuppressWarnings("squid:S6548") 11@SuppressWarnings("squid:S6548")
14public final class TruthValueDomain implements AbstractDomain<TruthValue, Boolean> { 12public final class TruthValueDomain implements AbstractDomain<TruthValue, Boolean> {
@@ -28,42 +26,17 @@ public final class TruthValueDomain implements AbstractDomain<TruthValue, Boolea
28 } 26 }
29 27
30 @Override 28 @Override
31 public TruthValue toAbstract(Boolean concreteValue) { 29 public TruthValue unknown() {
32 return TruthValue.toTruthValue(concreteValue); 30 return TruthValue.UNKNOWN;
33 }
34
35 @Override
36 public Optional<Boolean> toConcrete(TruthValue abstractValue) {
37 return switch (abstractValue) {
38 case TRUE -> Optional.of(true);
39 case FALSE -> Optional.of(false);
40 default -> Optional.empty();
41 };
42 }
43
44 @Override
45 public boolean isConcrete(TruthValue abstractValue) {
46 return abstractValue.isConcrete();
47 }
48
49 @Override
50 public TruthValue commonRefinement(TruthValue leftValue, TruthValue rightValue) {
51 return leftValue.merge(rightValue);
52 } 31 }
53 32
54 @Override 33 @Override
55 public TruthValue commonAncestor(TruthValue leftValue, TruthValue rightValue) { 34 public TruthValue error() {
56 return leftValue.join(rightValue); 35 return TruthValue.ERROR;
57 } 36 }
58 37
59 @Override 38 @Override
60 public TruthValue unknown() { 39 public TruthValue toAbstract(Boolean concreteValue) {
61 return TruthValue.UNKNOWN; 40 return TruthValue.toTruthValue(concreteValue);
62 }
63
64 @Override
65 public boolean isError(TruthValue abstractValue) {
66 return !abstractValue.isConsistent();
67 } 41 }
68} 42}
69