aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2024-03-07 22:10:42 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2024-04-07 14:55:46 +0200
commit16a9b534adec2c53b50f92a43c1623918b1c59c0 (patch)
tree690b299a2ca31e302ddad219a7aa94bcf86d5d0b
parentfix(frontend): * operator highlighting (diff)
downloadrefinery-16a9b534adec2c53b50f92a43c1623918b1c59c0.tar.gz
refinery-16a9b534adec2c53b50f92a43c1623918b1c59c0.tar.zst
refinery-16a9b534adec2c53b50f92a43c1623918b1c59c0.zip
refactor: move terms and DNF into logic subproject
-rw-r--r--settings.gradle.kts1
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/ModelInitializer.java74
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTree.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeCursor.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeNode.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeValue.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/IntermediateNode.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/MutableSeed.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/NullaryMutableSeed.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/TerminalNode.java2
-rw-r--r--subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/CountPropagationTest.java4
-rw-r--r--subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java2
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/metadata/NodeMetadataFactory.java2
-rw-r--r--subprojects/logic/build.gradle.kts14
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/AbstractDomain.java (renamed from subprojects/store/src/main/java/tools/refinery/store/representation/AbstractDomain.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/AnyAbstractDomain.java (renamed from subprojects/store/src/main/java/tools/refinery/store/representation/AnyAbstractDomain.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/Constraint.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/Constraint.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/InvalidQueryException.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/InvalidQueryException.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/AbstractQueryBuilder.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AbstractQueryBuilder.java)12
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/AnyQuery.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AnyQuery.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/ClausePostProcessor.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/ClausePostProcessor.java)18
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/Dnf.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Dnf.java)22
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/DnfBuilder.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java)10
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/DnfClause.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfClause.java)10
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/DnfPostProcessor.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfPostProcessor.java)16
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/DnfUtils.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfUtils.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/FunctionalDependency.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalDependency.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/FunctionalQuery.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQuery.java)16
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/FunctionalQueryBuilder.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQueryBuilder.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/InvalidClauseException.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/InvalidClauseException.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/Query.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Query.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/QueryBuilder.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/QueryBuilder.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/RelationalQuery.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/RelationalQuery.java)12
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/SymbolicParameter.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/SymbolicParameter.java)10
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback0.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback0.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback1Data0.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data0.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback1Data1.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data1.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback2Data0.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data0.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback2Data1.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data1.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback2Data2.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data2.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback3Data0.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data0.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback3Data1.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data1.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback3Data2.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data2.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback3Data3.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data3.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data0.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data0.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data1.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data1.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data2.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data2.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data3.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data3.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data4.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data4.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback0.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback0.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback1.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback1.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback2.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback2.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback3.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback3.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback4.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback4.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback0.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback0.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback1.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback1.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback2.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback2.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback3.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback3.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback4.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback4.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/equality/DeepDnfEqualityChecker.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DeepDnfEqualityChecker.java)12
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/equality/DnfEqualityChecker.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DnfEqualityChecker.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/equality/LiteralEqualityHelper.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/equality/LiteralEqualityHelper.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/equality/LiteralHashCodeHelper.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/equality/LiteralHashCodeHelper.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/equality/SubstitutingLiteralEqualityHelper.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/equality/SubstitutingLiteralEqualityHelper.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/equality/SubstitutingLiteralHashCodeHelper.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/equality/SubstitutingLiteralHashCodeHelper.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/AbstractCallLiteral.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractCallLiteral.java)24
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/AbstractCountLiteral.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractCountLiteral.java)16
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/AbstractLiteral.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractLiteral.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/AggregationLiteral.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AggregationLiteral.java)14
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/AssignLiteral.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AssignLiteral.java)16
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/BooleanLiteral.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/BooleanLiteral.java)10
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/CallLiteral.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallLiteral.java)16
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/CallPolarity.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallPolarity.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/CanNegate.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CanNegate.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/CheckLiteral.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CheckLiteral.java)20
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/Connectivity.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Connectivity.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/ConstantLiteral.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java)12
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/CountLiteral.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CountLiteral.java)10
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/EquivalenceLiteral.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/EquivalenceLiteral.java)12
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/LeftJoinLiteral.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/LeftJoinLiteral.java)22
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/Literal.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literal.java)10
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/Literals.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literals.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/Reduction.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Reduction.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/literal/RepresentativeElectionLiteral.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/literal/RepresentativeElectionLiteral.java)18
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/rewriter/AbstractRecursiveRewriter.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/AbstractRecursiveRewriter.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/rewriter/ClauseInputParameterResolver.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/ClauseInputParameterResolver.java)14
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/rewriter/CompositeRewriter.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/CompositeRewriter.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/rewriter/DnfRewriter.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/DnfRewriter.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/rewriter/DuplicateDnfRemover.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/DuplicateDnfRemover.java)14
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/rewriter/InputParameterResolver.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/InputParameterResolver.java)12
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/substitution/MapBasedSubstitution.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/MapBasedSubstitution.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/substitution/RenewingSubstitution.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/RenewingSubstitution.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/substitution/StatelessSubstitution.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/StatelessSubstitution.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/substitution/Substitution.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/Substitution.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/substitution/SubstitutionBuilder.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/SubstitutionBuilder.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/AbstractTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/AbstractTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/Aggregator.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/Aggregator.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/AnyDataVariable.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyDataVariable.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/AnyTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyTerm.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/AssignedValue.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/AssignedValue.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/BinaryTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/BinaryTerm.java)12
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/ConstantTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/ConstantTerm.java)12
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/DataVariable.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/DataVariable.java)16
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/ExtremeValueAggregator.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/ExtremeValueAggregator.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/NodeVariable.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/NodeVariable.java)10
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/Parameter.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/Parameter.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/ParameterDirection.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/ParameterDirection.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/StatefulAggregate.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregate.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/StatefulAggregator.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregator.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/StatelessAggregator.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatelessAggregator.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/Term.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/Term.java)10
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/UnaryTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/UnaryTerm.java)12
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/Variable.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/Variable.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolAndTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolAndTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolBinaryTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolBinaryTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolNotTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolNotTerm.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolOrTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolOrTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolTerms.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolTerms.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolXorTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolXorTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityDomain.java (renamed from subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityDomain.java)5
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityInterval.java (renamed from subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityInterval.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityIntervals.java (renamed from subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityIntervals.java)5
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/EmptyCardinalityInterval.java (renamed from subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/EmptyCardinalityInterval.java)5
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/NonEmptyCardinalityInterval.java (renamed from subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/NonEmptyCardinalityInterval.java)5
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/ComparisonTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/ComparisonTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/EqTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/EqTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/GreaterEqTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterEqTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/GreaterTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/LessEqTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessEqTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/LessTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/NotEqTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/NotEqTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntAddTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntAddTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntBinaryTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntBinaryTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntDivTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntDivTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntMaxTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMaxTerm.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntMinTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntMinusTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinusTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntMulTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMulTerm.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntPlusTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPlusTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntPowTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPowTerm.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntSubTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSubTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntSumAggregator.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSumAggregator.java)4
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntTerms.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntTerms.java)15
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntUnaryTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntUnaryTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/int_/RealToIntTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/RealToIntTerm.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/IntToRealTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/IntToRealTerm.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealAddTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealAddTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealBinaryTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealBinaryTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealDivTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealDivTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealMaxTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMaxTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealMinTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealMinusTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinusTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealMulTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMulTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealPlusTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPlusTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealPowTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPowTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealSubTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSubTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealSumAggregator.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSumAggregator.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealTerms.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealTerms.java)15
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealUnaryTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealUnaryTerm.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/truthvalue/TruthValue.java (renamed from subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/truthvalue/TruthValueDomain.java (renamed from subprojects/store/src/main/java/tools/refinery/store/representation/TruthValueDomain.java)5
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/FiniteUpperCardinality.java (renamed from subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinality.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UnboundedUpperCardinality.java (renamed from subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UnboundedUpperCardinality.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalities.java (renamed from subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinalities.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinality.java (renamed from subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinality.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityAddTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityAddTerm.java)7
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityBinaryTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityBinaryTerm.java)7
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityMaxTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMaxTerm.java)7
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityMinTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMinTerm.java)7
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityMulTerm.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMulTerm.java)7
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregator.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregator.java)12
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityTerms.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTerms.java)14
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/util/CycleDetectingMapper.java (renamed from subprojects/store/src/main/java/tools/refinery/store/util/CycleDetectingMapper.java)2
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/valuation/MapBasedValuation.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/MapBasedValuation.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/valuation/RestrictedValuation.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/RestrictedValuation.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/valuation/SubstitutedValuation.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/SubstitutedValuation.java)6
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/valuation/Valuation.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java)8
-rw-r--r--subprojects/logic/src/main/java/tools/refinery/logic/valuation/ValuationBuilder.java (renamed from subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/ValuationBuilder.java)6
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/dnf/DnfBuilderLiteralEliminationTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderLiteralEliminationTest.java)26
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/dnf/DnfBuilderVariableUnificationTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderVariableUnificationTest.java)19
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/dnf/DnfToDefinitionStringTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfToDefinitionStringTest.java)45
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/dnf/HashCodeTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/HashCodeTest.java)17
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/dnf/TopologicalSortTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/TopologicalSortTest.java)22
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/dnf/VariableDirectionTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/VariableDirectionTest.java)58
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/literal/AggregationLiteralTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/literal/AggregationLiteralTest.java)18
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/literal/CallLiteralTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/literal/CallLiteralTest.java)14
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/rewriter/DuplicateDnfRemoverTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/rewriter/DuplicateDnfRemoverTest.java)24
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/rewriter/InputParameterResolverTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/rewriter/InputParameterResolverTest.java)25
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/TermSubstitutionTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/term/TermSubstitutionTest.java)18
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/bool/BoolTermsEvaluateTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/term/bool/BoolTermsEvaluateTest.java)5
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/cardinalityinterval/CardinalityIntervalTest.java (renamed from subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalTest.java)5
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/cardinalityinterval/CardinalityIntervalsTest.java (renamed from subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalsTest.java)7
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/cardinalityinterval/EmptyCardinalityIntervalTest.java (renamed from subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/EmptyCardinalityIntervalTest.java)3
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/cardinalityinterval/FiniteCardinalityIntervalTest.java (renamed from subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteCardinalityIntervalTest.java)7
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/int_/IntTermsEvaluateTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/term/int_/IntTermsEvaluateTest.java)7
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/real/RealTermEvaluateTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/term/real/RealTermEvaluateTest.java)7
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/FiniteUpperCardinalityTest.java (renamed from subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinalityTest.java)3
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitiesTest.java (renamed from subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalitiesTest.java)2
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregatorStreamTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregatorStreamTest.java)8
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregatorTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregatorTest.java)25
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityTermsEvaluateTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTermsEvaluateTest.java)15
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityTest.java (renamed from subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalityTest.java)4
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/tests/FakeFunctionView.java57
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/tests/FakeKeyOnlyView.java21
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/tests/StructurallyEqualToRawTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToRawTest.java)24
-rw-r--r--subprojects/logic/src/test/java/tools/refinery/logic/tests/StructurallyEqualToTest.java (renamed from subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToTest.java)22
-rw-r--r--subprojects/logic/src/testFixtures/java/tools/refinery/logic/tests/MismatchDescribingDnfEqualityChecker.java (renamed from subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/MismatchDescribingDnfEqualityChecker.java)10
-rw-r--r--subprojects/logic/src/testFixtures/java/tools/refinery/logic/tests/QueryMatchers.java (renamed from subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/QueryMatchers.java)8
-rw-r--r--subprojects/logic/src/testFixtures/java/tools/refinery/logic/tests/StructurallyEqualTo.java (renamed from subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualTo.java)6
-rw-r--r--subprojects/logic/src/testFixtures/java/tools/refinery/logic/tests/StructurallyEqualToRaw.java (renamed from subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualToRaw.java)10
-rw-r--r--subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerAdapterImpl.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/CreateActionLiteral.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/DeleteActionLiteral.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/ModificationActionLiterals.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/Rule.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/RuleBuilder.java6
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/Action.java6
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/ActionLiteral.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/ActionLiterals.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/PutActionLiteral.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback1.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback2.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback3.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback4.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback1.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback2.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback3.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback4.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/AndCriterion.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/CompositeCriterion.java9
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/CountObjective.java4
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Criteria.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Criterion.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Objectives.java4
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/OrCriterion.java2
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/QueryCriterion.java4
-rw-r--r--subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/QueryObjective.java2
-rw-r--r--subprojects/store-dse/src/test/java/tools/refinery/store/dse/CRAExamplesTest.java8
-rw-r--r--subprojects/store-dse/src/test/java/tools/refinery/store/dse/transition/TransitionTests.java14
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/QueryInterpreterBuilder.java6
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterAdapterImpl.java8
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterBuilderImpl.java12
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterStoreAdapterImpl.java4
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/context/RelationalQueryMetaContext.java6
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/AbstractInterpretedMatcher.java2
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/InterpretedFunctionalMatcher.java2
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/InterpretedRelationalMatcher.java2
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/CheckEvaluator.java2
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/Dnf2PQuery.java22
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/QueryWrapperFactory.java14
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/StatefulMultisetAggregator.java4
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/StatelessMultisetAggregator.java2
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/TermEvaluator.java4
-rw-r--r--subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/ValueProviderBasedValuation.java4
-rw-r--r--subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/AggregatorBatchingTest.java8
-rw-r--r--subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/DiagonalQueryTest.java8
-rw-r--r--subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/FunctionalQueryTest.java10
-rw-r--r--subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/LeftJoinTest.java4
-rw-r--r--subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/OrderedResultSetTest.java4
-rw-r--r--subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/QueryTest.java18
-rw-r--r--subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/QueryTransactionTest.java4
-rw-r--r--subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/StronglyConnectedComponentsTest.java6
-rw-r--r--subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/WeaklyConnectedComponentsTest.java6
-rw-r--r--subprojects/store-query/build.gradle.kts3
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryAdapter.java4
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryBuilder.java4
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryStoreAdapter.java4
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/AbstractResultSet.java2
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/AnyResultSet.java2
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/EmptyResultSet.java2
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/OrderedResultSet.java2
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/ResultSet.java2
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/AbstractFunctionView.java4
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/AnySymbolView.java4
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/FilteredView.java2
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/ForbiddenView.java2
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java2
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/MayView.java2
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/MustView.java2
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/NodeFunctionView.java2
-rw-r--r--subprojects/store-query/src/main/java/tools/refinery/store/query/view/TuplePreservingView.java2
-rw-r--r--subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/BoundScopePropagator.java7
-rw-r--r--subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/LowerTypeScopePropagator.java16
-rw-r--r--subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/ScopePropagator.java4
-rw-r--r--subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/TypeScopePropagator.java4
-rw-r--r--subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/UpperTypeScopePropagator.java12
-rw-r--r--subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/MultiObjectTest.java6
-rw-r--r--subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/PredicateScopeTest.java10
-rw-r--r--subprojects/store-reasoning/build.gradle.kts2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/ReasoningBuilder.java8
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/CleanupActionLiteral.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/FocusActionLiteral.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/MergeActionLiteral.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/actions/PartialActionLiterals.java4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/PartialClauseRewriter.java30
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/PartialQueryRewriter.java4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningAdapterImpl.java4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/internal/ReasoningBuilderImpl.java8
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/PartialRelationRewriter.java6
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/QueryBasedRelationInterpretationFactory.java4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/interpretation/QueryBasedRelationRewriter.java8
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/ClauseLifter.java14
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/lifting/DnfLifter.java6
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountCandidateLowerBoundLiteral.java14
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountCandidateUpperBoundLiteral.java14
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountLowerBoundLiteral.java14
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/CountUpperBoundLiteral.java18
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/ModalConstraint.java10
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/Modality.java3
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/literal/PartialLiterals.java4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/AnyPartialSymbol.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialFunction.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialRelation.java12
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/representation/PartialSymbol.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/PartialRelationTranslator.java16
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainmentHierarchyTranslator.java24
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainmentLinkRefiner.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/ContainsRefiner.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/containment/InferredContainment.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/CrossReferenceUtils.java18
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceInfo.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceInitializer.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceRefiner.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/DirectedCrossReferenceTranslator.java8
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceInfo.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceInitializer.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceRefiner.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/crossreference/UndirectedCrossReferenceTranslator.java6
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/ReferenceInfo.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/metamodel/ReferenceInfoBuilder.java4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/EqualsRefiner.java6
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/EqualsRelationRewriter.java22
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/ExistsRefiner.java6
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/LowerCardinalityView.java4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectInitializer.java6
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectStorageRefiner.java4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiObjectTranslator.java22
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/MultiView.java4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiobject/UpperCardinalityView.java6
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/ConstrainedMultiplicity.java6
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/InvalidMultiplicityErrorTranslator.java28
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/Multiplicity.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/multiplicity/UnconstrainedMultiplicity.java4
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/opposite/OppositeRelationTranslator.java6
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/predicate/PredicateTranslator.java14
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/proxy/PartialRelationTranslatorProxy.java6
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredTypeRefiner.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisResult.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyInitializer.java2
-rw-r--r--subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTranslator.java4
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/PartialModelTest.java8
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/lifting/DnfLifterTest.java25
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/containment/ContainmentHierarchyTranslatorTest.java4
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelBuilderTest.java2
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelTest.java4
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/multiobject/PartialCountTest.java14
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/ConcreteSupertypeTest.java2
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisExampleHierarchyTest.java2
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyPartialModelTest.java2
-rw-r--r--subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTest.java2
361 files changed, 1406 insertions, 1336 deletions
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 6872b3b9..50ca1f24 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -19,6 +19,7 @@ include(
19 "language-model", 19 "language-model",
20 "language-semantics", 20 "language-semantics",
21 "language-web", 21 "language-web",
22 "logic",
22 "store", 23 "store",
23 "store-dse", 24 "store-dse",
24 "store-dse-visualization", 25 "store-dse-visualization",
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/ModelInitializer.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/ModelInitializer.java
index 2a623cf1..ccfb630f 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/ModelInitializer.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/ModelInitializer.java
@@ -13,15 +13,19 @@ import tools.refinery.language.scoping.imports.ImportCollector;
13import tools.refinery.language.semantics.internal.MutableSeed; 13import tools.refinery.language.semantics.internal.MutableSeed;
14import tools.refinery.language.utils.BuiltinSymbols; 14import tools.refinery.language.utils.BuiltinSymbols;
15import tools.refinery.language.utils.ProblemUtil; 15import tools.refinery.language.utils.ProblemUtil;
16import tools.refinery.logic.Constraint;
17import tools.refinery.logic.dnf.InvalidClauseException;
18import tools.refinery.logic.dnf.Query;
19import tools.refinery.logic.dnf.RelationalQuery;
20import tools.refinery.logic.literal.*;
21import tools.refinery.logic.term.NodeVariable;
22import tools.refinery.logic.term.Variable;
23import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
24import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
25import tools.refinery.logic.term.truthvalue.TruthValue;
26import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
16import tools.refinery.store.dse.propagation.PropagationBuilder; 27import tools.refinery.store.dse.propagation.PropagationBuilder;
17import tools.refinery.store.model.ModelStoreBuilder; 28import tools.refinery.store.model.ModelStoreBuilder;
18import tools.refinery.store.query.Constraint;
19import tools.refinery.store.query.dnf.InvalidClauseException;
20import tools.refinery.store.query.dnf.Query;
21import tools.refinery.store.query.dnf.RelationalQuery;
22import tools.refinery.store.query.literal.*;
23import tools.refinery.store.query.term.NodeVariable;
24import tools.refinery.store.query.term.Variable;
25import tools.refinery.store.reasoning.ReasoningAdapter; 29import tools.refinery.store.reasoning.ReasoningAdapter;
26import tools.refinery.store.reasoning.representation.PartialRelation; 30import tools.refinery.store.reasoning.representation.PartialRelation;
27import tools.refinery.store.reasoning.scope.ScopePropagator; 31import tools.refinery.store.reasoning.scope.ScopePropagator;
@@ -38,10 +42,6 @@ import tools.refinery.store.reasoning.translator.multiplicity.ConstrainedMultipl
38import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; 42import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity;
39import tools.refinery.store.reasoning.translator.multiplicity.UnconstrainedMultiplicity; 43import tools.refinery.store.reasoning.translator.multiplicity.UnconstrainedMultiplicity;
40import tools.refinery.store.reasoning.translator.predicate.PredicateTranslator; 44import tools.refinery.store.reasoning.translator.predicate.PredicateTranslator;
41import tools.refinery.store.representation.TruthValue;
42import tools.refinery.store.representation.cardinality.CardinalityInterval;
43import tools.refinery.store.representation.cardinality.CardinalityIntervals;
44import tools.refinery.store.representation.cardinality.UpperCardinalities;
45import tools.refinery.store.tuple.Tuple; 45import tools.refinery.store.tuple.Tuple;
46 46
47import java.util.*; 47import java.util.*;
@@ -204,20 +204,7 @@ public class ModelInitializer {
204 private void collectNodes() { 204 private void collectNodes() {
205 for (var importedProblem : importedProblems) { 205 for (var importedProblem : importedProblems) {
206 for (var statement : importedProblem.getStatements()) { 206 for (var statement : importedProblem.getStatements()) {
207 if (statement instanceof NodeDeclaration nodeDeclaration) { 207 collectNodes(statement);
208 for (var node : nodeDeclaration.getNodes()) {
209 collectNode(node);
210 }
211 } else if (statement instanceof ClassDeclaration classDeclaration) {
212 var newNode = classDeclaration.getNewNode();
213 if (newNode != null) {
214 collectNode(newNode);
215 }
216 } else if (statement instanceof EnumDeclaration enumDeclaration) {
217 for (var literal : enumDeclaration.getLiterals()) {
218 collectNode(literal);
219 }
220 }
221 } 208 }
222 } 209 }
223 for (var node : problem.getNodes()) { 210 for (var node : problem.getNodes()) {
@@ -225,6 +212,23 @@ public class ModelInitializer {
225 } 212 }
226 } 213 }
227 214
215 private void collectNodes(Statement statement) {
216 if (statement instanceof NodeDeclaration nodeDeclaration) {
217 for (var node : nodeDeclaration.getNodes()) {
218 collectNode(node);
219 }
220 } else if (statement instanceof ClassDeclaration classDeclaration) {
221 var newNode = classDeclaration.getNewNode();
222 if (newNode != null) {
223 collectNode(newNode);
224 }
225 } else if (statement instanceof EnumDeclaration enumDeclaration) {
226 for (var literal : enumDeclaration.getLiterals()) {
227 collectNode(literal);
228 }
229 }
230 }
231
228 private void collectNode(Node node) { 232 private void collectNode(Node node) {
229 problemTrace.collectNode(node); 233 problemTrace.collectNode(node);
230 } 234 }
@@ -725,14 +729,18 @@ public class ModelInitializer {
725 private void collectScopes() { 729 private void collectScopes() {
726 for (var importedProblem : importedProblems) { 730 for (var importedProblem : importedProblems) {
727 for (var statement : importedProblem.getStatements()) { 731 for (var statement : importedProblem.getStatements()) {
728 if (statement instanceof ScopeDeclaration scopeDeclaration) { 732 collectScopes(statement);
729 for (var typeScope : scopeDeclaration.getTypeScopes()) { 733 }
730 if (typeScope.isIncrement()) { 734 }
731 collectTypeScopeIncrement(typeScope); 735 }
732 } else { 736
733 collectTypeScope(typeScope); 737 private void collectScopes(Statement statement) {
734 } 738 if (statement instanceof ScopeDeclaration scopeDeclaration) {
735 } 739 for (var typeScope : scopeDeclaration.getTypeScopes()) {
740 if (typeScope.isIncrement()) {
741 collectTypeScopeIncrement(typeScope);
742 } else {
743 collectTypeScope(typeScope);
736 } 744 }
737 } 745 }
738 } 746 }
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java
index 61e70bcd..f097143f 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java
@@ -31,7 +31,7 @@ import tools.refinery.store.reasoning.literal.Concreteness;
31import tools.refinery.store.reasoning.representation.PartialRelation; 31import tools.refinery.store.reasoning.representation.PartialRelation;
32import tools.refinery.store.reasoning.translator.typehierarchy.InferredType; 32import tools.refinery.store.reasoning.translator.typehierarchy.InferredType;
33import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator; 33import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator;
34import tools.refinery.store.representation.TruthValue; 34import tools.refinery.logic.term.truthvalue.TruthValue;
35import tools.refinery.store.tuple.Tuple; 35import tools.refinery.store.tuple.Tuple;
36 36
37import java.io.ByteArrayInputStream; 37import java.io.ByteArrayInputStream;
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTree.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTree.java
index 5d25f148..8aa1af28 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTree.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTree.java
@@ -7,7 +7,7 @@ package tools.refinery.language.semantics.internal;
7 7
8import org.eclipse.collections.api.factory.primitive.IntObjectMaps; 8import org.eclipse.collections.api.factory.primitive.IntObjectMaps;
9import tools.refinery.store.map.Cursor; 9import tools.refinery.store.map.Cursor;
10import tools.refinery.store.representation.TruthValue; 10import tools.refinery.logic.term.truthvalue.TruthValue;
11import tools.refinery.store.tuple.Tuple; 11import tools.refinery.store.tuple.Tuple;
12 12
13class DecisionTree implements MutableSeed<TruthValue> { 13class DecisionTree implements MutableSeed<TruthValue> {
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeCursor.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeCursor.java
index 71b54cbd..8b8fed36 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeCursor.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeCursor.java
@@ -6,7 +6,7 @@
6package tools.refinery.language.semantics.internal; 6package tools.refinery.language.semantics.internal;
7 7
8import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
9import tools.refinery.store.representation.TruthValue; 9import tools.refinery.logic.term.truthvalue.TruthValue;
10import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
11 11
12import java.util.ArrayDeque; 12import java.util.ArrayDeque;
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeNode.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeNode.java
index 31d6fc78..eb79e0c8 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeNode.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeNode.java
@@ -7,7 +7,7 @@ package tools.refinery.language.semantics.internal;
7 7
8import org.eclipse.collections.api.LazyIntIterable; 8import org.eclipse.collections.api.LazyIntIterable;
9import tools.refinery.store.tuple.Tuple; 9import tools.refinery.store.tuple.Tuple;
10import tools.refinery.store.representation.TruthValue; 10import tools.refinery.logic.term.truthvalue.TruthValue;
11 11
12abstract class DecisionTreeNode { 12abstract class DecisionTreeNode {
13 public DecisionTreeValue getReducedValue() { 13 public DecisionTreeValue getReducedValue() {
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeValue.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeValue.java
index 5053e7ac..3260ef3d 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeValue.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeValue.java
@@ -5,7 +5,7 @@
5 */ 5 */
6package tools.refinery.language.semantics.internal; 6package tools.refinery.language.semantics.internal;
7 7
8import tools.refinery.store.representation.TruthValue; 8import tools.refinery.logic.term.truthvalue.TruthValue;
9 9
10public enum DecisionTreeValue { 10public enum DecisionTreeValue {
11 UNSET(null), 11 UNSET(null),
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/IntermediateNode.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/IntermediateNode.java
index 2ad216ce..8942068c 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/IntermediateNode.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/IntermediateNode.java
@@ -10,7 +10,7 @@ import org.eclipse.collections.api.factory.primitive.IntObjectMaps;
10import org.eclipse.collections.api.map.primitive.MutableIntObjectMap; 10import org.eclipse.collections.api.map.primitive.MutableIntObjectMap;
11import org.eclipse.collections.api.tuple.primitive.IntObjectPair; 11import org.eclipse.collections.api.tuple.primitive.IntObjectPair;
12import tools.refinery.store.tuple.Tuple; 12import tools.refinery.store.tuple.Tuple;
13import tools.refinery.store.representation.TruthValue; 13import tools.refinery.logic.term.truthvalue.TruthValue;
14 14
15final class IntermediateNode extends DecisionTreeNode { 15final class IntermediateNode extends DecisionTreeNode {
16 private final MutableIntObjectMap<DecisionTreeNode> children; 16 private final MutableIntObjectMap<DecisionTreeNode> children;
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/MutableSeed.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/MutableSeed.java
index 693b9e1f..85611059 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/MutableSeed.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/MutableSeed.java
@@ -6,7 +6,7 @@
6package tools.refinery.language.semantics.internal; 6package tools.refinery.language.semantics.internal;
7 7
8import tools.refinery.store.reasoning.seed.Seed; 8import tools.refinery.store.reasoning.seed.Seed;
9import tools.refinery.store.representation.TruthValue; 9import tools.refinery.logic.term.truthvalue.TruthValue;
10import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
11 11
12public interface MutableSeed<T> extends Seed<T> { 12public interface MutableSeed<T> extends Seed<T> {
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/NullaryMutableSeed.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/NullaryMutableSeed.java
index f100c5a6..09107a37 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/NullaryMutableSeed.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/NullaryMutableSeed.java
@@ -7,7 +7,7 @@ package tools.refinery.language.semantics.internal;
7 7
8import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
9import tools.refinery.store.map.Cursors; 9import tools.refinery.store.map.Cursors;
10import tools.refinery.store.representation.TruthValue; 10import tools.refinery.logic.term.truthvalue.TruthValue;
11import tools.refinery.store.tuple.Tuple; 11import tools.refinery.store.tuple.Tuple;
12 12
13class NullaryMutableSeed implements MutableSeed<TruthValue> { 13class NullaryMutableSeed implements MutableSeed<TruthValue> {
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/TerminalNode.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/TerminalNode.java
index dc501479..2ebaecef 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/TerminalNode.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/TerminalNode.java
@@ -10,7 +10,7 @@ import org.eclipse.collections.api.factory.primitive.IntObjectMaps;
10import org.eclipse.collections.api.map.primitive.MutableIntObjectMap; 10import org.eclipse.collections.api.map.primitive.MutableIntObjectMap;
11import org.eclipse.collections.api.tuple.primitive.IntObjectPair; 11import org.eclipse.collections.api.tuple.primitive.IntObjectPair;
12import tools.refinery.store.tuple.Tuple; 12import tools.refinery.store.tuple.Tuple;
13import tools.refinery.store.representation.TruthValue; 13import tools.refinery.logic.term.truthvalue.TruthValue;
14 14
15class TerminalNode extends DecisionTreeNode { 15class TerminalNode extends DecisionTreeNode {
16 private MutableIntObjectMap<TruthValue> children; 16 private MutableIntObjectMap<TruthValue> children;
diff --git a/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/CountPropagationTest.java b/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/CountPropagationTest.java
index b679c1ef..207bc7ff 100644
--- a/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/CountPropagationTest.java
+++ b/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/CountPropagationTest.java
@@ -19,8 +19,8 @@ import tools.refinery.store.reasoning.seed.ModelSeed;
19import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; 19import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator;
20import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchy; 20import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchy;
21import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator; 21import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator;
22import tools.refinery.store.representation.TruthValue; 22import tools.refinery.logic.term.truthvalue.TruthValue;
23import tools.refinery.store.representation.cardinality.CardinalityIntervals; 23import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
24import tools.refinery.store.tuple.Tuple; 24import tools.refinery.store.tuple.Tuple;
25 25
26import static org.hamcrest.MatcherAssert.assertThat; 26import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java b/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java
index 61ce850f..cb0885c1 100644
--- a/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java
+++ b/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java
@@ -6,7 +6,7 @@
6package tools.refinery.language.semantics.internal; 6package tools.refinery.language.semantics.internal;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.representation.TruthValue; 9import tools.refinery.logic.term.truthvalue.TruthValue;
10import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
11 11
12import java.util.LinkedHashMap; 12import java.util.LinkedHashMap;
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/metadata/NodeMetadataFactory.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/metadata/NodeMetadataFactory.java
index ce0e50c1..f469d2dd 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/metadata/NodeMetadataFactory.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/semantics/metadata/NodeMetadataFactory.java
@@ -17,7 +17,7 @@ import tools.refinery.store.reasoning.literal.Concreteness;
17import tools.refinery.store.reasoning.representation.PartialRelation; 17import tools.refinery.store.reasoning.representation.PartialRelation;
18import tools.refinery.store.reasoning.translator.typehierarchy.InferredType; 18import tools.refinery.store.reasoning.translator.typehierarchy.InferredType;
19import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator; 19import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator;
20import tools.refinery.store.representation.TruthValue; 20import tools.refinery.logic.term.truthvalue.TruthValue;
21import tools.refinery.store.tuple.Tuple; 21import tools.refinery.store.tuple.Tuple;
22 22
23public class NodeMetadataFactory { 23public class NodeMetadataFactory {
diff --git a/subprojects/logic/build.gradle.kts b/subprojects/logic/build.gradle.kts
new file mode 100644
index 00000000..57de8e5d
--- /dev/null
+++ b/subprojects/logic/build.gradle.kts
@@ -0,0 +1,14 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7plugins {
8 id("tools.refinery.gradle.java-library")
9 id("tools.refinery.gradle.java-test-fixtures")
10}
11
12dependencies {
13 testFixturesApi(libs.hamcrest)
14}
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/AbstractDomain.java b/subprojects/logic/src/main/java/tools/refinery/logic/AbstractDomain.java
index dfdb43bd..607caa48 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/AbstractDomain.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/AbstractDomain.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation; 6package tools.refinery.logic;
7 7
8import java.util.Objects; 8import java.util.Objects;
9import java.util.Optional; 9import java.util.Optional;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/AnyAbstractDomain.java b/subprojects/logic/src/main/java/tools/refinery/logic/AnyAbstractDomain.java
index c354fab7..a296f4b2 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/AnyAbstractDomain.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/AnyAbstractDomain.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation; 6package tools.refinery.logic;
7 7
8public sealed interface AnyAbstractDomain permits AbstractDomain { 8public sealed interface AnyAbstractDomain permits AbstractDomain {
9 Class<?> abstractType(); 9 Class<?> abstractType();
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/Constraint.java b/subprojects/logic/src/main/java/tools/refinery/logic/Constraint.java
index 375c582a..89c8760b 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/Constraint.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/Constraint.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query; 6package tools.refinery.logic;
7 7
8import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.logic.equality.LiteralEqualityHelper;
9import tools.refinery.store.query.literal.*; 9import tools.refinery.logic.literal.*;
10import tools.refinery.store.query.term.*; 10import tools.refinery.logic.term.*;
11 11
12import java.util.List; 12import java.util.List;
13 13
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/InvalidQueryException.java b/subprojects/logic/src/main/java/tools/refinery/logic/InvalidQueryException.java
index c39277a0..b5460e0d 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/InvalidQueryException.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/InvalidQueryException.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query; 6package tools.refinery.logic;
7 7
8public class InvalidQueryException extends RuntimeException { 8public class InvalidQueryException extends RuntimeException {
9 public InvalidQueryException() { 9 public InvalidQueryException() {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AbstractQueryBuilder.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/AbstractQueryBuilder.java
index 2a3e3ce0..68712b98 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AbstractQueryBuilder.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/AbstractQueryBuilder.java
@@ -3,13 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import tools.refinery.store.query.dnf.callback.*; 8import tools.refinery.logic.dnf.callback.*;
9import tools.refinery.store.query.literal.Literal; 9import tools.refinery.logic.literal.Literal;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.term.NodeVariable;
11import tools.refinery.store.query.term.ParameterDirection; 11import tools.refinery.logic.term.ParameterDirection;
12import tools.refinery.store.query.term.Variable; 12import tools.refinery.logic.term.Variable;
13 13
14import java.util.Collection; 14import java.util.Collection;
15import java.util.List; 15import java.util.List;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AnyQuery.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/AnyQuery.java
index 5e28af68..aebfd73f 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/AnyQuery.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/AnyQuery.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8public sealed interface AnyQuery permits Query { 8public sealed interface AnyQuery permits Query {
9 String name(); 9 String name();
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/ClausePostProcessor.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/ClausePostProcessor.java
index 7cd05364..00d15a0c 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/ClausePostProcessor.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/ClausePostProcessor.java
@@ -3,17 +3,17 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import org.jetbrains.annotations.NotNull; 8import org.jetbrains.annotations.NotNull;
9import tools.refinery.store.query.Constraint; 9import tools.refinery.logic.Constraint;
10import tools.refinery.store.query.InvalidQueryException; 10import tools.refinery.logic.InvalidQueryException;
11import tools.refinery.store.query.literal.*; 11import tools.refinery.logic.literal.*;
12import tools.refinery.store.query.substitution.MapBasedSubstitution; 12import tools.refinery.logic.substitution.MapBasedSubstitution;
13import tools.refinery.store.query.substitution.StatelessSubstitution; 13import tools.refinery.logic.substitution.StatelessSubstitution;
14import tools.refinery.store.query.substitution.Substitution; 14import tools.refinery.logic.substitution.Substitution;
15import tools.refinery.store.query.term.ParameterDirection; 15import tools.refinery.logic.term.ParameterDirection;
16import tools.refinery.store.query.term.Variable; 16import tools.refinery.logic.term.Variable;
17 17
18import java.util.*; 18import java.util.*;
19import java.util.function.Function; 19import java.util.function.Function;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Dnf.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/Dnf.java
index 86a1b6b2..0fc2a1cc 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Dnf.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/Dnf.java
@@ -3,17 +3,17 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.InvalidQueryException; 9import tools.refinery.logic.InvalidQueryException;
10import tools.refinery.store.query.equality.DnfEqualityChecker; 10import tools.refinery.logic.equality.DnfEqualityChecker;
11import tools.refinery.store.query.equality.LiteralEqualityHelper; 11import tools.refinery.logic.equality.LiteralEqualityHelper;
12import tools.refinery.store.query.equality.SubstitutingLiteralEqualityHelper; 12import tools.refinery.logic.equality.SubstitutingLiteralEqualityHelper;
13import tools.refinery.store.query.equality.SubstitutingLiteralHashCodeHelper; 13import tools.refinery.logic.equality.SubstitutingLiteralHashCodeHelper;
14import tools.refinery.store.query.literal.Reduction; 14import tools.refinery.logic.literal.Reduction;
15import tools.refinery.store.query.term.Parameter; 15import tools.refinery.logic.term.Parameter;
16import tools.refinery.store.query.term.Variable; 16import tools.refinery.logic.term.Variable;
17 17
18import java.util.Collection; 18import java.util.Collection;
19import java.util.Collections; 19import java.util.Collections;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/DnfBuilder.java
index 0f9fd366..b58c5c45 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfBuilder.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/DnfBuilder.java
@@ -3,12 +3,12 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.InvalidQueryException;
9import tools.refinery.store.query.dnf.callback.*; 9import tools.refinery.logic.dnf.callback.*;
10import tools.refinery.store.query.literal.Literal; 10import tools.refinery.logic.literal.Literal;
11import tools.refinery.store.query.term.*; 11import tools.refinery.logic.term.*;
12 12
13import java.util.*; 13import java.util.*;
14 14
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfClause.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/DnfClause.java
index 94327bad..92755d4d 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfClause.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/DnfClause.java
@@ -3,12 +3,12 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.logic.equality.LiteralEqualityHelper;
9import tools.refinery.store.query.equality.LiteralHashCodeHelper; 9import tools.refinery.logic.equality.LiteralHashCodeHelper;
10import tools.refinery.store.query.literal.Literal; 10import tools.refinery.logic.literal.Literal;
11import tools.refinery.store.query.term.Variable; 11import tools.refinery.logic.term.Variable;
12 12
13import java.util.List; 13import java.util.List;
14import java.util.Set; 14import java.util.Set;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfPostProcessor.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/DnfPostProcessor.java
index 01344b59..87d07187 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfPostProcessor.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/DnfPostProcessor.java
@@ -3,15 +3,15 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.InvalidQueryException;
9import tools.refinery.store.query.equality.DnfEqualityChecker; 9import tools.refinery.logic.equality.DnfEqualityChecker;
10import tools.refinery.store.query.equality.SubstitutingLiteralEqualityHelper; 10import tools.refinery.logic.equality.SubstitutingLiteralEqualityHelper;
11import tools.refinery.store.query.equality.SubstitutingLiteralHashCodeHelper; 11import tools.refinery.logic.equality.SubstitutingLiteralHashCodeHelper;
12import tools.refinery.store.query.literal.Literal; 12import tools.refinery.logic.literal.Literal;
13import tools.refinery.store.query.term.ParameterDirection; 13import tools.refinery.logic.term.ParameterDirection;
14import tools.refinery.store.query.term.Variable; 14import tools.refinery.logic.term.Variable;
15 15
16import java.util.*; 16import java.util.*;
17 17
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfUtils.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/DnfUtils.java
index 65ab3634..02a619a6 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/DnfUtils.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/DnfUtils.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import java.util.UUID; 8import java.util.UUID;
9 9
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalDependency.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/FunctionalDependency.java
index aef07ee3..c3fc87ab 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalDependency.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/FunctionalDependency.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.InvalidQueryException;
9 9
10import java.util.HashSet; 10import java.util.HashSet;
11import java.util.Set; 11import java.util.Set;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQuery.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/FunctionalQuery.java
index b0a03c7d..1df63fbd 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQuery.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/FunctionalQuery.java
@@ -3,14 +3,14 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.InvalidQueryException;
9import tools.refinery.store.query.literal.CallPolarity; 9import tools.refinery.logic.literal.CallPolarity;
10import tools.refinery.store.query.term.Aggregator; 10import tools.refinery.logic.term.Aggregator;
11import tools.refinery.store.query.term.AssignedValue; 11import tools.refinery.logic.term.AssignedValue;
12import tools.refinery.store.query.term.NodeVariable; 12import tools.refinery.logic.term.NodeVariable;
13import tools.refinery.store.query.term.Variable; 13import tools.refinery.logic.term.Variable;
14 14
15import java.util.ArrayList; 15import java.util.ArrayList;
16import java.util.List; 16import java.util.List;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQueryBuilder.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/FunctionalQueryBuilder.java
index d1cd7ba8..476f3c83 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/FunctionalQueryBuilder.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/FunctionalQueryBuilder.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import tools.refinery.store.query.term.DataVariable; 8import tools.refinery.logic.term.DataVariable;
9 9
10public final class FunctionalQueryBuilder<T> extends AbstractQueryBuilder<FunctionalQueryBuilder<T>> { 10public final class FunctionalQueryBuilder<T> extends AbstractQueryBuilder<FunctionalQueryBuilder<T>> {
11 private final DataVariable<T> outputVariable; 11 private final DataVariable<T> outputVariable;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/InvalidClauseException.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/InvalidClauseException.java
index 747574b9..51a42d02 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/InvalidClauseException.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/InvalidClauseException.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.InvalidQueryException;
9 9
10public class InvalidClauseException extends InvalidQueryException { 10public class InvalidClauseException extends InvalidQueryException {
11 private final int clauseIndex; 11 private final int clauseIndex;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Query.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/Query.java
index 83fe6ccd..1f913ea0 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/Query.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/Query.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import tools.refinery.store.query.dnf.callback.*; 8import tools.refinery.logic.dnf.callback.*;
9import tools.refinery.store.query.term.ParameterDirection; 9import tools.refinery.logic.term.ParameterDirection;
10import tools.refinery.store.query.term.Variable; 10import tools.refinery.logic.term.Variable;
11 11
12import java.util.Objects; 12import java.util.Objects;
13 13
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/QueryBuilder.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/QueryBuilder.java
index 138911bc..a74295ba 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/QueryBuilder.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/QueryBuilder.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import tools.refinery.store.query.term.DataVariable; 8import tools.refinery.logic.term.DataVariable;
9 9
10public final class QueryBuilder extends AbstractQueryBuilder<QueryBuilder> { 10public final class QueryBuilder extends AbstractQueryBuilder<QueryBuilder> {
11 QueryBuilder(String name) { 11 QueryBuilder(String name) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/RelationalQuery.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/RelationalQuery.java
index 98f71e11..dc2b8eb6 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/RelationalQuery.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/RelationalQuery.java
@@ -3,13 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.InvalidQueryException;
9import tools.refinery.store.query.literal.CallLiteral; 9import tools.refinery.logic.literal.CallLiteral;
10import tools.refinery.store.query.literal.CallPolarity; 10import tools.refinery.logic.literal.CallPolarity;
11import tools.refinery.store.query.term.AssignedValue; 11import tools.refinery.logic.term.AssignedValue;
12import tools.refinery.store.query.term.NodeVariable; 12import tools.refinery.logic.term.NodeVariable;
13 13
14import java.util.Collections; 14import java.util.Collections;
15import java.util.List; 15import java.util.List;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/SymbolicParameter.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/SymbolicParameter.java
index fe9cefcc..acc775a7 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/SymbolicParameter.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/SymbolicParameter.java
@@ -3,12 +3,12 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import tools.refinery.store.query.equality.LiteralHashCodeHelper; 8import tools.refinery.logic.equality.LiteralHashCodeHelper;
9import tools.refinery.store.query.term.Parameter; 9import tools.refinery.logic.term.Parameter;
10import tools.refinery.store.query.term.ParameterDirection; 10import tools.refinery.logic.term.ParameterDirection;
11import tools.refinery.store.query.term.Variable; 11import tools.refinery.logic.term.Variable;
12 12
13import java.util.Objects; 13import java.util.Objects;
14 14
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback0.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback0.java
index d98dda2e..2e276030 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback0.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback0.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9 9
10import java.util.Collection; 10import java.util.Collection;
11 11
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data0.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback1Data0.java
index 4c01a527..f2e174b0 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data0.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback1Data0.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11import java.util.Collection; 11import java.util.Collection;
12 12
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data1.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback1Data1.java
index 2c0cb6eb..4e6b5a06 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback1Data1.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback1Data1.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10 10
11import java.util.Collection; 11import java.util.Collection;
12 12
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data0.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback2Data0.java
index d764bdba..42b7cb08 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data0.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback2Data0.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11import java.util.Collection; 11import java.util.Collection;
12 12
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data1.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback2Data1.java
index 140af03a..59e53744 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data1.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback2Data1.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.term.NodeVariable;
11 11
12import java.util.Collection; 12import java.util.Collection;
13 13
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data2.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback2Data2.java
index bfc8637c..d9550d49 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback2Data2.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback2Data2.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10 10
11import java.util.Collection; 11import java.util.Collection;
12 12
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data0.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback3Data0.java
index 074df65b..e36f05db 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data0.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback3Data0.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11import java.util.Collection; 11import java.util.Collection;
12 12
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data1.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback3Data1.java
index 24ba5187..7227bada 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data1.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback3Data1.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.term.NodeVariable;
11 11
12import java.util.Collection; 12import java.util.Collection;
13 13
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data2.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback3Data2.java
index 2a2e837a..7d842655 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data2.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback3Data2.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.term.NodeVariable;
11 11
12import java.util.Collection; 12import java.util.Collection;
13 13
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data3.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback3Data3.java
index 8f4bdd01..3bc895d5 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback3Data3.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback3Data3.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10 10
11import java.util.Collection; 11import java.util.Collection;
12 12
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data0.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data0.java
index ed0f87b2..164c3208 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data0.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data0.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11import java.util.Collection; 11import java.util.Collection;
12 12
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data1.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data1.java
index 9b27e2e1..d7454135 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data1.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data1.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.term.NodeVariable;
11 11
12import java.util.Collection; 12import java.util.Collection;
13 13
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data2.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data2.java
index cbc4808e..829dbcf8 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data2.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data2.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.term.NodeVariable;
11 11
12import java.util.Collection; 12import java.util.Collection;
13 13
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data3.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data3.java
index a6258f36..50da829b 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data3.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data3.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.term.NodeVariable;
11 11
12import java.util.Collection; 12import java.util.Collection;
13 13
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data4.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data4.java
index b52a911a..46f8fbe9 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/ClauseCallback4Data4.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/ClauseCallback4Data4.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10 10
11import java.util.Collection; 11import java.util.Collection;
12 12
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback0.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback0.java
index 63b3eee6..689a5b53 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback0.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback0.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.dnf.FunctionalQueryBuilder; 8import tools.refinery.logic.dnf.FunctionalQueryBuilder;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10 10
11@FunctionalInterface 11@FunctionalInterface
12public interface FunctionalQueryCallback0<T> { 12public interface FunctionalQueryCallback0<T> {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback1.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback1.java
index 1295a118..b7d69a50 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback1.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback1.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.dnf.FunctionalQueryBuilder; 8import tools.refinery.logic.dnf.FunctionalQueryBuilder;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.term.NodeVariable;
11 11
12@FunctionalInterface 12@FunctionalInterface
13public interface FunctionalQueryCallback1<T> { 13public interface FunctionalQueryCallback1<T> {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback2.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback2.java
index d5b7f9ff..38fb265b 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback2.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback2.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.dnf.FunctionalQueryBuilder; 8import tools.refinery.logic.dnf.FunctionalQueryBuilder;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.term.NodeVariable;
11 11
12@FunctionalInterface 12@FunctionalInterface
13public interface FunctionalQueryCallback2<T> { 13public interface FunctionalQueryCallback2<T> {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback3.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback3.java
index dc8404a0..04451657 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback3.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback3.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.dnf.FunctionalQueryBuilder; 8import tools.refinery.logic.dnf.FunctionalQueryBuilder;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.term.NodeVariable;
11 11
12@FunctionalInterface 12@FunctionalInterface
13public interface FunctionalQueryCallback3<T> { 13public interface FunctionalQueryCallback3<T> {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback4.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback4.java
index b6d3ddb0..a39c389d 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/FunctionalQueryCallback4.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/FunctionalQueryCallback4.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.dnf.FunctionalQueryBuilder; 8import tools.refinery.logic.dnf.FunctionalQueryBuilder;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.term.NodeVariable;
11 11
12@FunctionalInterface 12@FunctionalInterface
13public interface FunctionalQueryCallback4<T> { 13public interface FunctionalQueryCallback4<T> {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback0.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback0.java
index 3cf1de48..bc9a6ee4 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback0.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback0.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.dnf.QueryBuilder; 8import tools.refinery.logic.dnf.QueryBuilder;
9 9
10@FunctionalInterface 10@FunctionalInterface
11public interface QueryCallback0 { 11public interface QueryCallback0 {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback1.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback1.java
index 0a150955..80763171 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback1.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback1.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.dnf.QueryBuilder; 8import tools.refinery.logic.dnf.QueryBuilder;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11@FunctionalInterface 11@FunctionalInterface
12public interface QueryCallback1 { 12public interface QueryCallback1 {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback2.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback2.java
index 9493a7b4..54423104 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback2.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback2.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.dnf.QueryBuilder; 8import tools.refinery.logic.dnf.QueryBuilder;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11@FunctionalInterface 11@FunctionalInterface
12public interface QueryCallback2 { 12public interface QueryCallback2 {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback3.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback3.java
index 358c7da7..eb68d493 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback3.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback3.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.dnf.QueryBuilder; 8import tools.refinery.logic.dnf.QueryBuilder;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11@FunctionalInterface 11@FunctionalInterface
12public interface QueryCallback3 { 12public interface QueryCallback3 {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback4.java b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback4.java
index 890dda16..59690af9 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/dnf/callback/QueryCallback4.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/dnf/callback/QueryCallback4.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf.callback; 6package tools.refinery.logic.dnf.callback;
7 7
8import tools.refinery.store.query.dnf.QueryBuilder; 8import tools.refinery.logic.dnf.QueryBuilder;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11@FunctionalInterface 11@FunctionalInterface
12public interface QueryCallback4 { 12public interface QueryCallback4 {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DeepDnfEqualityChecker.java b/subprojects/logic/src/main/java/tools/refinery/logic/equality/DeepDnfEqualityChecker.java
index d6171314..a49ef080 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DeepDnfEqualityChecker.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/equality/DeepDnfEqualityChecker.java
@@ -3,13 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.equality; 6package tools.refinery.logic.equality;
7 7
8import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.logic.dnf.Dnf;
9import tools.refinery.store.query.dnf.DnfClause; 9import tools.refinery.logic.dnf.DnfClause;
10import tools.refinery.store.query.dnf.SymbolicParameter; 10import tools.refinery.logic.dnf.SymbolicParameter;
11import tools.refinery.store.query.literal.Literal; 11import tools.refinery.logic.literal.Literal;
12import tools.refinery.store.util.CycleDetectingMapper; 12import tools.refinery.logic.util.CycleDetectingMapper;
13 13
14import java.util.List; 14import java.util.List;
15 15
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DnfEqualityChecker.java b/subprojects/logic/src/main/java/tools/refinery/logic/equality/DnfEqualityChecker.java
index e2cfd79b..3162b019 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/DnfEqualityChecker.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/equality/DnfEqualityChecker.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.equality; 6package tools.refinery.logic.equality;
7 7
8import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.logic.dnf.Dnf;
9 9
10import java.util.Objects; 10import java.util.Objects;
11 11
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/LiteralEqualityHelper.java b/subprojects/logic/src/main/java/tools/refinery/logic/equality/LiteralEqualityHelper.java
index 5abc76ce..ea62061e 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/LiteralEqualityHelper.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/equality/LiteralEqualityHelper.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.equality; 6package tools.refinery.logic.equality;
7 7
8import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.logic.dnf.Dnf;
9import tools.refinery.store.query.term.Variable; 9import tools.refinery.logic.term.Variable;
10 10
11import java.util.Objects; 11import java.util.Objects;
12 12
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/LiteralHashCodeHelper.java b/subprojects/logic/src/main/java/tools/refinery/logic/equality/LiteralHashCodeHelper.java
index 5495160a..fccadd08 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/LiteralHashCodeHelper.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/equality/LiteralHashCodeHelper.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.equality; 6package tools.refinery.logic.equality;
7 7
8import tools.refinery.store.query.term.Variable; 8import tools.refinery.logic.term.Variable;
9 9
10import java.util.Objects; 10import java.util.Objects;
11 11
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/SubstitutingLiteralEqualityHelper.java b/subprojects/logic/src/main/java/tools/refinery/logic/equality/SubstitutingLiteralEqualityHelper.java
index 50a79e07..7a16b5c9 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/SubstitutingLiteralEqualityHelper.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/equality/SubstitutingLiteralEqualityHelper.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.equality; 6package tools.refinery.logic.equality;
7 7
8import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.logic.dnf.Dnf;
9import tools.refinery.store.query.dnf.SymbolicParameter; 9import tools.refinery.logic.dnf.SymbolicParameter;
10import tools.refinery.store.query.term.Variable; 10import tools.refinery.logic.term.Variable;
11 11
12import java.util.HashMap; 12import java.util.HashMap;
13import java.util.List; 13import java.util.List;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/SubstitutingLiteralHashCodeHelper.java b/subprojects/logic/src/main/java/tools/refinery/logic/equality/SubstitutingLiteralHashCodeHelper.java
index 754f6976..64bd9784 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/equality/SubstitutingLiteralHashCodeHelper.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/equality/SubstitutingLiteralHashCodeHelper.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.equality; 6package tools.refinery.logic.equality;
7 7
8import tools.refinery.store.query.dnf.SymbolicParameter; 8import tools.refinery.logic.dnf.SymbolicParameter;
9import tools.refinery.store.query.term.Variable; 9import tools.refinery.logic.term.Variable;
10 10
11import java.util.LinkedHashMap; 11import java.util.LinkedHashMap;
12import java.util.List; 12import java.util.List;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractCallLiteral.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/AbstractCallLiteral.java
index 0e99d441..9ae84547 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractCallLiteral.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/AbstractCallLiteral.java
@@ -3,21 +3,21 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.InvalidQueryException; 9import tools.refinery.logic.InvalidQueryException;
10import tools.refinery.store.query.equality.LiteralEqualityHelper; 10import tools.refinery.logic.equality.LiteralEqualityHelper;
11import tools.refinery.store.query.equality.LiteralHashCodeHelper; 11import tools.refinery.logic.equality.LiteralHashCodeHelper;
12import tools.refinery.store.query.substitution.Substitution; 12import tools.refinery.logic.substitution.Substitution;
13import tools.refinery.store.query.term.ParameterDirection; 13import tools.refinery.logic.term.ParameterDirection;
14import tools.refinery.store.query.term.Variable; 14import tools.refinery.logic.term.Variable;
15 15
16import java.util.*; 16import java.util.*;
17 17
18// {@link Object#equals(Object)} is implemented by {@link AbstractLiteral}. 18// {@link Object#equals(Object)} is implemented by {@link AbstractLiteral}.
19@SuppressWarnings("squid:S2160") 19@SuppressWarnings("squid:S2160")
20public abstract class AbstractCallLiteral extends AbstractLiteral { 20public abstract class AbstractCallLiteral extends tools.refinery.logic.literal.AbstractLiteral {
21 private final Constraint target; 21 private final Constraint target;
22 private final List<Variable> arguments; 22 private final List<Variable> arguments;
23 private final Set<Variable> inArguments; 23 private final Set<Variable> inArguments;
@@ -90,12 +90,12 @@ public abstract class AbstractCallLiteral extends AbstractLiteral {
90 } 90 }
91 91
92 @Override 92 @Override
93 public Literal substitute(Substitution substitution) { 93 public tools.refinery.logic.literal.Literal substitute(Substitution substitution) {
94 var substitutedArguments = arguments.stream().map(substitution::getSubstitute).toList(); 94 var substitutedArguments = arguments.stream().map(substitution::getSubstitute).toList();
95 return doSubstitute(substitution, substitutedArguments); 95 return doSubstitute(substitution, substitutedArguments);
96 } 96 }
97 97
98 protected abstract Literal doSubstitute(Substitution substitution, List<Variable> substitutedArguments); 98 protected abstract tools.refinery.logic.literal.Literal doSubstitute(Substitution substitution, List<Variable> substitutedArguments);
99 99
100 public AbstractCallLiteral withTarget(Constraint newTarget) { 100 public AbstractCallLiteral withTarget(Constraint newTarget) {
101 if (Objects.equals(target, newTarget)) { 101 if (Objects.equals(target, newTarget)) {
@@ -107,7 +107,7 @@ public abstract class AbstractCallLiteral extends AbstractLiteral {
107 public abstract AbstractCallLiteral withArguments(Constraint newTarget, List<Variable> newArguments); 107 public abstract AbstractCallLiteral withArguments(Constraint newTarget, List<Variable> newArguments);
108 108
109 @Override 109 @Override
110 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, Literal other) { 110 public boolean equalsWithSubstitution(LiteralEqualityHelper helper, tools.refinery.logic.literal.Literal other) {
111 if (!super.equalsWithSubstitution(helper, other)) { 111 if (!super.equalsWithSubstitution(helper, other)) {
112 return false; 112 return false;
113 } 113 }
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractCountLiteral.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/AbstractCountLiteral.java
index 9bb572c0..ee932598 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractCountLiteral.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/AbstractCountLiteral.java
@@ -3,15 +3,15 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.InvalidQueryException; 9import tools.refinery.logic.InvalidQueryException;
10import tools.refinery.store.query.equality.LiteralEqualityHelper; 10import tools.refinery.logic.equality.LiteralEqualityHelper;
11import tools.refinery.store.query.equality.LiteralHashCodeHelper; 11import tools.refinery.logic.equality.LiteralHashCodeHelper;
12import tools.refinery.store.query.term.ConstantTerm; 12import tools.refinery.logic.term.ConstantTerm;
13import tools.refinery.store.query.term.DataVariable; 13import tools.refinery.logic.term.DataVariable;
14import tools.refinery.store.query.term.Variable; 14import tools.refinery.logic.term.Variable;
15 15
16import java.util.List; 16import java.util.List;
17import java.util.Objects; 17import java.util.Objects;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractLiteral.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/AbstractLiteral.java
index 7d3cabd7..79100e40 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AbstractLiteral.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/AbstractLiteral.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.logic.equality.LiteralEqualityHelper;
9import tools.refinery.store.query.equality.LiteralHashCodeHelper; 9import tools.refinery.logic.equality.LiteralHashCodeHelper;
10 10
11public abstract class AbstractLiteral implements Literal { 11public abstract class AbstractLiteral implements Literal {
12 @Override 12 @Override
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AggregationLiteral.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/AggregationLiteral.java
index b6861de0..d2cc23f9 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AggregationLiteral.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/AggregationLiteral.java
@@ -3,14 +3,14 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.InvalidQueryException; 9import tools.refinery.logic.InvalidQueryException;
10import tools.refinery.store.query.equality.LiteralEqualityHelper; 10import tools.refinery.logic.equality.LiteralEqualityHelper;
11import tools.refinery.store.query.equality.LiteralHashCodeHelper; 11import tools.refinery.logic.equality.LiteralHashCodeHelper;
12import tools.refinery.store.query.substitution.Substitution; 12import tools.refinery.logic.substitution.Substitution;
13import tools.refinery.store.query.term.*; 13import tools.refinery.logic.term.*;
14 14
15import java.util.List; 15import java.util.List;
16import java.util.Objects; 16import java.util.Objects;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AssignLiteral.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/AssignLiteral.java
index dadf487f..4929e74c 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/AssignLiteral.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/AssignLiteral.java
@@ -3,15 +3,15 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.InvalidQueryException;
9import tools.refinery.store.query.equality.LiteralEqualityHelper; 9import tools.refinery.logic.equality.LiteralEqualityHelper;
10import tools.refinery.store.query.equality.LiteralHashCodeHelper; 10import tools.refinery.logic.equality.LiteralHashCodeHelper;
11import tools.refinery.store.query.substitution.Substitution; 11import tools.refinery.logic.substitution.Substitution;
12import tools.refinery.store.query.term.DataVariable; 12import tools.refinery.logic.term.DataVariable;
13import tools.refinery.store.query.term.Term; 13import tools.refinery.logic.term.Term;
14import tools.refinery.store.query.term.Variable; 14import tools.refinery.logic.term.Variable;
15 15
16import java.util.Collections; 16import java.util.Collections;
17import java.util.Objects; 17import java.util.Objects;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/BooleanLiteral.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/BooleanLiteral.java
index 6cd320da..fd1dbf91 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/BooleanLiteral.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/BooleanLiteral.java
@@ -3,12 +3,12 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.logic.equality.LiteralEqualityHelper;
9import tools.refinery.store.query.equality.LiteralHashCodeHelper; 9import tools.refinery.logic.equality.LiteralHashCodeHelper;
10import tools.refinery.store.query.substitution.Substitution; 10import tools.refinery.logic.substitution.Substitution;
11import tools.refinery.store.query.term.Variable; 11import tools.refinery.logic.term.Variable;
12 12
13import java.util.Set; 13import java.util.Set;
14 14
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallLiteral.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/CallLiteral.java
index 2d0e4e97..d93afdc7 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallLiteral.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/CallLiteral.java
@@ -3,15 +3,15 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.InvalidQueryException; 9import tools.refinery.logic.InvalidQueryException;
10import tools.refinery.store.query.equality.LiteralEqualityHelper; 10import tools.refinery.logic.equality.LiteralEqualityHelper;
11import tools.refinery.store.query.equality.LiteralHashCodeHelper; 11import tools.refinery.logic.equality.LiteralHashCodeHelper;
12import tools.refinery.store.query.substitution.Substitution; 12import tools.refinery.logic.substitution.Substitution;
13import tools.refinery.store.query.term.ParameterDirection; 13import tools.refinery.logic.term.ParameterDirection;
14import tools.refinery.store.query.term.Variable; 14import tools.refinery.logic.term.Variable;
15 15
16import java.util.*; 16import java.util.*;
17 17
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallPolarity.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/CallPolarity.java
index 716c7109..4f3bca15 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CallPolarity.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/CallPolarity.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.InvalidQueryException;
9 9
10public enum CallPolarity { 10public enum CallPolarity {
11 POSITIVE(true, false), 11 POSITIVE(true, false),
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CanNegate.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/CanNegate.java
index 35dcb3fb..649f0505 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CanNegate.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/CanNegate.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8public interface CanNegate<T extends CanNegate<T>> extends Literal { 8public interface CanNegate<T extends CanNegate<T>> extends Literal {
9 T negate(); 9 T negate();
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CheckLiteral.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/CheckLiteral.java
index dfedd2cb..86bf7eba 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CheckLiteral.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/CheckLiteral.java
@@ -3,17 +3,17 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.InvalidQueryException;
9import tools.refinery.store.query.equality.LiteralEqualityHelper; 9import tools.refinery.logic.equality.LiteralEqualityHelper;
10import tools.refinery.store.query.equality.LiteralHashCodeHelper; 10import tools.refinery.logic.equality.LiteralHashCodeHelper;
11import tools.refinery.store.query.substitution.Substitution; 11import tools.refinery.logic.substitution.Substitution;
12import tools.refinery.store.query.term.ConstantTerm; 12import tools.refinery.logic.term.ConstantTerm;
13import tools.refinery.store.query.term.Term; 13import tools.refinery.logic.term.Term;
14import tools.refinery.store.query.term.Variable; 14import tools.refinery.logic.term.Variable;
15import tools.refinery.store.query.term.bool.BoolNotTerm; 15import tools.refinery.logic.term.bool.BoolNotTerm;
16import tools.refinery.store.query.term.bool.BoolTerms; 16import tools.refinery.logic.term.bool.BoolTerms;
17 17
18import java.util.Collections; 18import java.util.Collections;
19import java.util.Objects; 19import java.util.Objects;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Connectivity.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/Connectivity.java
index a058094d..c0465716 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Connectivity.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/Connectivity.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import java.util.Locale; 8import java.util.Locale;
9 9
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/ConstantLiteral.java
index d83bd584..688ddfa0 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/ConstantLiteral.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/ConstantLiteral.java
@@ -3,13 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.logic.equality.LiteralEqualityHelper;
9import tools.refinery.store.query.equality.LiteralHashCodeHelper; 9import tools.refinery.logic.equality.LiteralHashCodeHelper;
10import tools.refinery.store.query.substitution.Substitution; 10import tools.refinery.logic.substitution.Substitution;
11import tools.refinery.store.query.term.NodeVariable; 11import tools.refinery.logic.term.NodeVariable;
12import tools.refinery.store.query.term.Variable; 12import tools.refinery.logic.term.Variable;
13 13
14import java.util.Objects; 14import java.util.Objects;
15import java.util.Set; 15import java.util.Set;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CountLiteral.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/CountLiteral.java
index 3d078d89..19879692 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/CountLiteral.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/CountLiteral.java
@@ -3,12 +3,12 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.substitution.Substitution; 9import tools.refinery.logic.substitution.Substitution;
10import tools.refinery.store.query.term.DataVariable; 10import tools.refinery.logic.term.DataVariable;
11import tools.refinery.store.query.term.Variable; 11import tools.refinery.logic.term.Variable;
12 12
13import java.util.List; 13import java.util.List;
14 14
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/EquivalenceLiteral.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/EquivalenceLiteral.java
index 7343f709..48e85b38 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/EquivalenceLiteral.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/EquivalenceLiteral.java
@@ -3,13 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.InvalidQueryException;
9import tools.refinery.store.query.equality.LiteralEqualityHelper; 9import tools.refinery.logic.equality.LiteralEqualityHelper;
10import tools.refinery.store.query.equality.LiteralHashCodeHelper; 10import tools.refinery.logic.equality.LiteralHashCodeHelper;
11import tools.refinery.store.query.substitution.Substitution; 11import tools.refinery.logic.substitution.Substitution;
12import tools.refinery.store.query.term.Variable; 12import tools.refinery.logic.term.Variable;
13 13
14import java.util.Objects; 14import java.util.Objects;
15import java.util.Set; 15import java.util.Set;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/LeftJoinLiteral.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/LeftJoinLiteral.java
index bdddf120..593904c5 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/LeftJoinLiteral.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/LeftJoinLiteral.java
@@ -3,17 +3,17 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.InvalidQueryException; 9import tools.refinery.logic.InvalidQueryException;
10import tools.refinery.store.query.equality.LiteralEqualityHelper; 10import tools.refinery.logic.equality.LiteralEqualityHelper;
11import tools.refinery.store.query.equality.LiteralHashCodeHelper; 11import tools.refinery.logic.equality.LiteralHashCodeHelper;
12import tools.refinery.store.query.substitution.Substitution; 12import tools.refinery.logic.substitution.Substitution;
13import tools.refinery.store.query.term.ConstantTerm; 13import tools.refinery.logic.term.ConstantTerm;
14import tools.refinery.store.query.term.DataVariable; 14import tools.refinery.logic.term.DataVariable;
15import tools.refinery.store.query.term.ParameterDirection; 15import tools.refinery.logic.term.ParameterDirection;
16import tools.refinery.store.query.term.Variable; 16import tools.refinery.logic.term.Variable;
17 17
18import java.util.*; 18import java.util.*;
19 19
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literal.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/Literal.java
index cb16ab00..08a0241c 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literal.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/Literal.java
@@ -3,12 +3,12 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.logic.equality.LiteralEqualityHelper;
9import tools.refinery.store.query.equality.LiteralHashCodeHelper; 9import tools.refinery.logic.equality.LiteralHashCodeHelper;
10import tools.refinery.store.query.substitution.Substitution; 10import tools.refinery.logic.substitution.Substitution;
11import tools.refinery.store.query.term.Variable; 11import tools.refinery.logic.term.Variable;
12 12
13import java.util.Set; 13import java.util.Set;
14 14
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literals.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/Literals.java
index 6056da45..2f7ddb5d 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Literals.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/Literals.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.term.Term; 8import tools.refinery.logic.term.Term;
9 9
10public final class Literals { 10public final class Literals {
11 private Literals() { 11 private Literals() {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Reduction.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/Reduction.java
index ee155a9a..1f7d9a2f 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/Reduction.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/Reduction.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8public enum Reduction { 8public enum Reduction {
9 /** 9 /**
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/RepresentativeElectionLiteral.java b/subprojects/logic/src/main/java/tools/refinery/logic/literal/RepresentativeElectionLiteral.java
index f7323947..ff9a6bed 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/literal/RepresentativeElectionLiteral.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/literal/RepresentativeElectionLiteral.java
@@ -3,16 +3,16 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.InvalidQueryException; 9import tools.refinery.logic.InvalidQueryException;
10import tools.refinery.store.query.equality.LiteralEqualityHelper; 10import tools.refinery.logic.equality.LiteralEqualityHelper;
11import tools.refinery.store.query.equality.LiteralHashCodeHelper; 11import tools.refinery.logic.equality.LiteralHashCodeHelper;
12import tools.refinery.store.query.substitution.Substitution; 12import tools.refinery.logic.substitution.Substitution;
13import tools.refinery.store.query.term.NodeVariable; 13import tools.refinery.logic.term.NodeVariable;
14import tools.refinery.store.query.term.ParameterDirection; 14import tools.refinery.logic.term.ParameterDirection;
15import tools.refinery.store.query.term.Variable; 15import tools.refinery.logic.term.Variable;
16 16
17import java.util.List; 17import java.util.List;
18import java.util.Set; 18import java.util.Set;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/AbstractRecursiveRewriter.java b/subprojects/logic/src/main/java/tools/refinery/logic/rewriter/AbstractRecursiveRewriter.java
index fb4c14a7..073705f8 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/AbstractRecursiveRewriter.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/rewriter/AbstractRecursiveRewriter.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.rewriter; 6package tools.refinery.logic.rewriter;
7 7
8import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.logic.dnf.Dnf;
9import tools.refinery.store.query.equality.DnfEqualityChecker; 9import tools.refinery.logic.equality.DnfEqualityChecker;
10import tools.refinery.store.util.CycleDetectingMapper; 10import tools.refinery.logic.util.CycleDetectingMapper;
11 11
12public abstract class AbstractRecursiveRewriter implements DnfRewriter { 12public abstract class AbstractRecursiveRewriter implements DnfRewriter {
13 private final CycleDetectingMapper<Dnf, Dnf> mapper = new CycleDetectingMapper<>(Dnf::name, this::map); 13 private final CycleDetectingMapper<Dnf, Dnf> mapper = new CycleDetectingMapper<>(Dnf::name, this::map);
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/ClauseInputParameterResolver.java b/subprojects/logic/src/main/java/tools/refinery/logic/rewriter/ClauseInputParameterResolver.java
index aa06a05a..83fd44c5 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/ClauseInputParameterResolver.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/rewriter/ClauseInputParameterResolver.java
@@ -3,14 +3,14 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.rewriter; 6package tools.refinery.logic.rewriter;
7 7
8import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.logic.dnf.Dnf;
9import tools.refinery.store.query.dnf.DnfClause; 9import tools.refinery.logic.dnf.DnfClause;
10import tools.refinery.store.query.literal.*; 10import tools.refinery.logic.substitution.Substitution;
11import tools.refinery.store.query.substitution.Substitution; 11import tools.refinery.logic.term.Variable;
12import tools.refinery.store.query.term.ParameterDirection; 12import tools.refinery.logic.literal.*;
13import tools.refinery.store.query.term.Variable; 13import tools.refinery.logic.term.ParameterDirection;
14 14
15import java.util.*; 15import java.util.*;
16 16
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/CompositeRewriter.java b/subprojects/logic/src/main/java/tools/refinery/logic/rewriter/CompositeRewriter.java
index 5b4f65e5..2e681093 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/CompositeRewriter.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/rewriter/CompositeRewriter.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.rewriter; 6package tools.refinery.logic.rewriter;
7 7
8import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.logic.dnf.Dnf;
9 9
10import java.util.ArrayList; 10import java.util.ArrayList;
11import java.util.List; 11import java.util.List;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/DnfRewriter.java b/subprojects/logic/src/main/java/tools/refinery/logic/rewriter/DnfRewriter.java
index 5d8359d1..f4605895 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/DnfRewriter.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/rewriter/DnfRewriter.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.rewriter; 6package tools.refinery.logic.rewriter;
7 7
8import tools.refinery.store.query.dnf.AnyQuery; 8import tools.refinery.logic.dnf.AnyQuery;
9import tools.refinery.store.query.dnf.Dnf; 9import tools.refinery.logic.dnf.Dnf;
10import tools.refinery.store.query.dnf.Query; 10import tools.refinery.logic.dnf.Query;
11 11
12@FunctionalInterface 12@FunctionalInterface
13public interface DnfRewriter { 13public interface DnfRewriter {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/DuplicateDnfRemover.java b/subprojects/logic/src/main/java/tools/refinery/logic/rewriter/DuplicateDnfRemover.java
index 0c786470..43317338 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/DuplicateDnfRemover.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/rewriter/DuplicateDnfRemover.java
@@ -3,14 +3,14 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.rewriter; 6package tools.refinery.logic.rewriter;
7 7
8import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.logic.dnf.Dnf;
9import tools.refinery.store.query.dnf.DnfClause; 9import tools.refinery.logic.dnf.DnfClause;
10import tools.refinery.store.query.dnf.Query; 10import tools.refinery.logic.dnf.Query;
11import tools.refinery.store.query.equality.DnfEqualityChecker; 11import tools.refinery.logic.equality.DnfEqualityChecker;
12import tools.refinery.store.query.literal.AbstractCallLiteral; 12import tools.refinery.logic.literal.AbstractCallLiteral;
13import tools.refinery.store.query.literal.Literal; 13import tools.refinery.logic.literal.Literal;
14 14
15import java.util.ArrayList; 15import java.util.ArrayList;
16import java.util.HashMap; 16import java.util.HashMap;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/InputParameterResolver.java b/subprojects/logic/src/main/java/tools/refinery/logic/rewriter/InputParameterResolver.java
index cd8a2e7d..89aa43c7 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/rewriter/InputParameterResolver.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/rewriter/InputParameterResolver.java
@@ -3,13 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.rewriter; 6package tools.refinery.logic.rewriter;
7 7
8import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.logic.dnf.Dnf;
9import tools.refinery.store.query.dnf.DnfBuilder; 9import tools.refinery.logic.dnf.DnfBuilder;
10import tools.refinery.store.query.literal.Literal; 10import tools.refinery.logic.term.Variable;
11import tools.refinery.store.query.term.ParameterDirection; 11import tools.refinery.logic.literal.Literal;
12import tools.refinery.store.query.term.Variable; 12import tools.refinery.logic.term.ParameterDirection;
13 13
14import java.util.HashSet; 14import java.util.HashSet;
15import java.util.List; 15import java.util.List;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/MapBasedSubstitution.java b/subprojects/logic/src/main/java/tools/refinery/logic/substitution/MapBasedSubstitution.java
index a8201eef..2977bd57 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/MapBasedSubstitution.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/substitution/MapBasedSubstitution.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.substitution; 6package tools.refinery.logic.substitution;
7 7
8import tools.refinery.store.query.term.Variable; 8import tools.refinery.logic.term.Variable;
9 9
10import java.util.Map; 10import java.util.Map;
11 11
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/RenewingSubstitution.java b/subprojects/logic/src/main/java/tools/refinery/logic/substitution/RenewingSubstitution.java
index 9b737ceb..ca40ee50 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/RenewingSubstitution.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/substitution/RenewingSubstitution.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.substitution; 6package tools.refinery.logic.substitution;
7 7
8import tools.refinery.store.query.term.Variable; 8import tools.refinery.logic.term.Variable;
9 9
10import java.util.HashMap; 10import java.util.HashMap;
11import java.util.Map; 11import java.util.Map;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/StatelessSubstitution.java b/subprojects/logic/src/main/java/tools/refinery/logic/substitution/StatelessSubstitution.java
index bb3803d3..ab36d3db 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/StatelessSubstitution.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/substitution/StatelessSubstitution.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.substitution; 6package tools.refinery.logic.substitution;
7 7
8import tools.refinery.store.query.term.Variable; 8import tools.refinery.logic.term.Variable;
9 9
10public enum StatelessSubstitution implements Substitution { 10public enum StatelessSubstitution implements Substitution {
11 FAILING { 11 FAILING {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/Substitution.java b/subprojects/logic/src/main/java/tools/refinery/logic/substitution/Substitution.java
index 834fce12..8fc700bc 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/Substitution.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/substitution/Substitution.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.substitution; 6package tools.refinery.logic.substitution;
7 7
8import tools.refinery.store.query.term.DataVariable; 8import tools.refinery.logic.term.DataVariable;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10import tools.refinery.store.query.term.Variable; 10import tools.refinery.logic.term.Variable;
11 11
12@FunctionalInterface 12@FunctionalInterface
13public interface Substitution { 13public interface Substitution {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/SubstitutionBuilder.java b/subprojects/logic/src/main/java/tools/refinery/logic/substitution/SubstitutionBuilder.java
index 37fb6908..f30b1a5d 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/substitution/SubstitutionBuilder.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/substitution/SubstitutionBuilder.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.substitution; 6package tools.refinery.logic.substitution;
7 7
8import tools.refinery.store.query.term.DataVariable; 8import tools.refinery.logic.term.DataVariable;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10import tools.refinery.store.query.term.Variable; 10import tools.refinery.logic.term.Variable;
11 11
12import java.util.Collections; 12import java.util.Collections;
13import java.util.HashMap; 13import java.util.HashMap;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AbstractTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/AbstractTerm.java
index 5cecc35b..293f7e9e 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AbstractTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/AbstractTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.logic.equality.LiteralEqualityHelper;
9import tools.refinery.store.query.equality.LiteralHashCodeHelper; 9import tools.refinery.logic.equality.LiteralHashCodeHelper;
10 10
11import java.util.Objects; 11import java.util.Objects;
12 12
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Aggregator.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/Aggregator.java
index 0684a9d9..40189ebc 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Aggregator.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/Aggregator.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import java.util.stream.Stream; 8import java.util.stream.Stream;
9 9
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyDataVariable.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/AnyDataVariable.java
index 3801bc11..3376bdc9 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyDataVariable.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/AnyDataVariable.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import org.jetbrains.annotations.Nullable; 8import org.jetbrains.annotations.Nullable;
9import tools.refinery.store.query.InvalidQueryException; 9import tools.refinery.logic.InvalidQueryException;
10import tools.refinery.store.query.equality.LiteralEqualityHelper; 10import tools.refinery.logic.equality.LiteralEqualityHelper;
11 11
12import java.util.Optional; 12import java.util.Optional;
13import java.util.Set; 13import java.util.Set;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/AnyTerm.java
index f136b68d..58b4cb1d 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AnyTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/AnyTerm.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import tools.refinery.store.query.equality.LiteralEqualityHelper; 8import tools.refinery.logic.equality.LiteralEqualityHelper;
9import tools.refinery.store.query.equality.LiteralHashCodeHelper; 9import tools.refinery.logic.equality.LiteralHashCodeHelper;
10import tools.refinery.store.query.substitution.Substitution; 10import tools.refinery.logic.substitution.Substitution;
11 11
12import java.util.Set; 12import java.util.Set;
13 13
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AssignedValue.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/AssignedValue.java
index 0cf30aa6..78900cd6 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/AssignedValue.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/AssignedValue.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import tools.refinery.store.query.literal.Literal; 8import tools.refinery.logic.literal.Literal;
9 9
10@FunctionalInterface 10@FunctionalInterface
11public interface AssignedValue<T> { 11public interface AssignedValue<T> {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/BinaryTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/BinaryTerm.java
index cdbf592a..356fd807 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/BinaryTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/BinaryTerm.java
@@ -3,13 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.equality.LiteralHashCodeHelper;
9import tools.refinery.store.query.equality.LiteralEqualityHelper; 9import tools.refinery.logic.InvalidQueryException;
10import tools.refinery.store.query.equality.LiteralHashCodeHelper; 10import tools.refinery.logic.equality.LiteralEqualityHelper;
11import tools.refinery.store.query.substitution.Substitution; 11import tools.refinery.logic.substitution.Substitution;
12import tools.refinery.store.query.valuation.Valuation; 12import tools.refinery.logic.valuation.Valuation;
13 13
14import java.util.Collections; 14import java.util.Collections;
15import java.util.HashSet; 15import java.util.HashSet;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ConstantTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/ConstantTerm.java
index 415ae286..69c7e5f6 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ConstantTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/ConstantTerm.java
@@ -3,13 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.equality.LiteralHashCodeHelper;
9import tools.refinery.store.query.equality.LiteralEqualityHelper; 9import tools.refinery.logic.InvalidQueryException;
10import tools.refinery.store.query.equality.LiteralHashCodeHelper; 10import tools.refinery.logic.equality.LiteralEqualityHelper;
11import tools.refinery.store.query.substitution.Substitution; 11import tools.refinery.logic.substitution.Substitution;
12import tools.refinery.store.query.valuation.Valuation; 12import tools.refinery.logic.valuation.Valuation;
13 13
14import java.util.Objects; 14import java.util.Objects;
15import java.util.Set; 15import java.util.Set;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/DataVariable.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/DataVariable.java
index 2206b522..7ef69d05 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/DataVariable.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/DataVariable.java
@@ -3,16 +3,16 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import org.jetbrains.annotations.Nullable; 8import org.jetbrains.annotations.Nullable;
9import tools.refinery.store.query.InvalidQueryException; 9import tools.refinery.logic.InvalidQueryException;
10import tools.refinery.store.query.equality.LiteralEqualityHelper; 10import tools.refinery.logic.equality.LiteralEqualityHelper;
11import tools.refinery.store.query.equality.LiteralHashCodeHelper; 11import tools.refinery.logic.equality.LiteralHashCodeHelper;
12import tools.refinery.store.query.literal.EquivalenceLiteral; 12import tools.refinery.logic.literal.EquivalenceLiteral;
13import tools.refinery.store.query.literal.Literal; 13import tools.refinery.logic.literal.Literal;
14import tools.refinery.store.query.substitution.Substitution; 14import tools.refinery.logic.substitution.Substitution;
15import tools.refinery.store.query.valuation.Valuation; 15import tools.refinery.logic.valuation.Valuation;
16 16
17import java.util.Objects; 17import java.util.Objects;
18 18
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ExtremeValueAggregator.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/ExtremeValueAggregator.java
index 657cb631..31c61b6a 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ExtremeValueAggregator.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/ExtremeValueAggregator.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import java.util.Comparator; 8import java.util.Comparator;
9import java.util.Objects; 9import java.util.Objects;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/NodeVariable.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/NodeVariable.java
index 53c32e20..1a5f2657 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/NodeVariable.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/NodeVariable.java
@@ -3,12 +3,12 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import org.jetbrains.annotations.Nullable; 8import org.jetbrains.annotations.Nullable;
9import tools.refinery.store.query.InvalidQueryException; 9import tools.refinery.logic.InvalidQueryException;
10import tools.refinery.store.query.literal.ConstantLiteral; 10import tools.refinery.logic.literal.ConstantLiteral;
11import tools.refinery.store.query.literal.EquivalenceLiteral; 11import tools.refinery.logic.literal.EquivalenceLiteral;
12 12
13import java.util.Optional; 13import java.util.Optional;
14 14
@@ -24,7 +24,7 @@ public final class NodeVariable extends Variable {
24 24
25 @Override 25 @Override
26 public NodeVariable renew(@Nullable String name) { 26 public NodeVariable renew(@Nullable String name) {
27 return Variable.of(name); 27 return of(name);
28 } 28 }
29 29
30 @Override 30 @Override
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Parameter.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/Parameter.java
index 577ac6e0..d4a651e1 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Parameter.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/Parameter.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import java.util.Objects; 8import java.util.Objects;
9import java.util.Optional; 9import java.util.Optional;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ParameterDirection.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/ParameterDirection.java
index da83f3c3..75ee06e6 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/ParameterDirection.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/ParameterDirection.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8public enum ParameterDirection { 8public enum ParameterDirection {
9 OUT("out"), 9 OUT("out"),
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregate.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/StatefulAggregate.java
index ab310556..75e7ecff 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregate.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/StatefulAggregate.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8public interface StatefulAggregate<R, T> { 8public interface StatefulAggregate<R, T> {
9 void add(T value); 9 void add(T value);
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregator.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/StatefulAggregator.java
index df746a90..79d32535 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatefulAggregator.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/StatefulAggregator.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import java.util.stream.Stream; 8import java.util.stream.Stream;
9 9
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatelessAggregator.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/StatelessAggregator.java
index a094919e..37db262e 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/StatelessAggregator.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/StatelessAggregator.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import java.util.stream.Stream; 8import java.util.stream.Stream;
9 9
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Term.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/Term.java
index e6818b88..0eaa36d8 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Term.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/Term.java
@@ -3,12 +3,12 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import tools.refinery.store.query.literal.AssignLiteral; 8import tools.refinery.logic.literal.AssignLiteral;
9import tools.refinery.store.query.literal.Literal; 9import tools.refinery.logic.literal.Literal;
10import tools.refinery.store.query.substitution.Substitution; 10import tools.refinery.logic.substitution.Substitution;
11import tools.refinery.store.query.valuation.Valuation; 11import tools.refinery.logic.valuation.Valuation;
12 12
13public non-sealed interface Term<T> extends AnyTerm, AssignedValue<T> { 13public non-sealed interface Term<T> extends AnyTerm, AssignedValue<T> {
14 @Override 14 @Override
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/UnaryTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/UnaryTerm.java
index a464ece5..e173de3e 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/UnaryTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/UnaryTerm.java
@@ -3,13 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.InvalidQueryException;
9import tools.refinery.store.query.equality.LiteralEqualityHelper; 9import tools.refinery.logic.equality.LiteralEqualityHelper;
10import tools.refinery.store.query.equality.LiteralHashCodeHelper; 10import tools.refinery.logic.equality.LiteralHashCodeHelper;
11import tools.refinery.store.query.substitution.Substitution; 11import tools.refinery.logic.substitution.Substitution;
12import tools.refinery.store.query.valuation.Valuation; 12import tools.refinery.logic.valuation.Valuation;
13 13
14import java.util.Objects; 14import java.util.Objects;
15import java.util.Set; 15import java.util.Set;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Variable.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/Variable.java
index 1b553704..28aad21b 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/Variable.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/Variable.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import org.jetbrains.annotations.Nullable; 8import org.jetbrains.annotations.Nullable;
9import tools.refinery.store.query.dnf.DnfUtils; 9import tools.refinery.logic.dnf.DnfUtils;
10 10
11import java.util.Objects; 11import java.util.Objects;
12import java.util.Optional; 12import java.util.Optional;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolAndTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolAndTerm.java
index f9e1c06f..88c2081b 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolAndTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolAndTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.bool; 6package tools.refinery.logic.term.bool;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class BoolAndTerm extends BoolBinaryTerm { 11public class BoolAndTerm extends BoolBinaryTerm {
12 public BoolAndTerm(Term<Boolean> left, Term<Boolean> right) { 12 public BoolAndTerm(Term<Boolean> left, Term<Boolean> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolBinaryTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolBinaryTerm.java
index a85aa63a..6d53fb43 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolBinaryTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolBinaryTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.bool; 6package tools.refinery.logic.term.bool;
7 7
8import tools.refinery.store.query.term.BinaryTerm; 8import tools.refinery.logic.term.BinaryTerm;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public abstract class BoolBinaryTerm extends BinaryTerm<Boolean, Boolean, Boolean> { 11public abstract class BoolBinaryTerm extends BinaryTerm<Boolean, Boolean, Boolean> {
12 protected BoolBinaryTerm(Term<Boolean> left, Term<Boolean> right) { 12 protected BoolBinaryTerm(Term<Boolean> left, Term<Boolean> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolNotTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolNotTerm.java
index 8d3382b3..ec80484f 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolNotTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolNotTerm.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.bool; 6package tools.refinery.logic.term.bool;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10import tools.refinery.store.query.term.UnaryTerm; 10import tools.refinery.logic.term.UnaryTerm;
11 11
12public class BoolNotTerm extends UnaryTerm<Boolean, Boolean> { 12public class BoolNotTerm extends UnaryTerm<Boolean, Boolean> {
13 protected BoolNotTerm(Term<Boolean> body) { 13 protected BoolNotTerm(Term<Boolean> body) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolOrTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolOrTerm.java
index b5195d52..10c61bf2 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolOrTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolOrTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.bool; 6package tools.refinery.logic.term.bool;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class BoolOrTerm extends BoolBinaryTerm { 11public class BoolOrTerm extends BoolBinaryTerm {
12 public BoolOrTerm(Term<Boolean> left, Term<Boolean> right) { 12 public BoolOrTerm(Term<Boolean> left, Term<Boolean> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolTerms.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolTerms.java
index fa54f686..5bdc3207 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolTerms.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolTerms.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.bool; 6package tools.refinery.logic.term.bool;
7 7
8import tools.refinery.store.query.term.ConstantTerm; 8import tools.refinery.logic.term.ConstantTerm;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public final class BoolTerms { 11public final class BoolTerms {
12 private BoolTerms() { 12 private BoolTerms() {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolXorTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolXorTerm.java
index 7478b8a5..3d5247a7 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/bool/BoolXorTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/bool/BoolXorTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.bool; 6package tools.refinery.logic.term.bool;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class BoolXorTerm extends BoolBinaryTerm { 11public class BoolXorTerm extends BoolBinaryTerm {
12 public BoolXorTerm(Term<Boolean> left, Term<Boolean> right) { 12 public BoolXorTerm(Term<Boolean> left, Term<Boolean> right) {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityDomain.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityDomain.java
index 7ae2d935..508a454b 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityDomain.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityDomain.java
@@ -3,9 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.cardinalityinterval;
7 7
8import tools.refinery.store.representation.AbstractDomain; 8import tools.refinery.logic.term.uppercardinality.FiniteUpperCardinality;
9import tools.refinery.logic.AbstractDomain;
9 10
10import java.util.Optional; 11import java.util.Optional;
11 12
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityInterval.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityInterval.java
index b20c685a..dbf30def 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityInterval.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityInterval.java
@@ -3,7 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.cardinalityinterval;
7
8import tools.refinery.logic.term.uppercardinality.UpperCardinality;
7 9
8public sealed interface CardinalityInterval permits NonEmptyCardinalityInterval, EmptyCardinalityInterval { 10public sealed interface CardinalityInterval permits NonEmptyCardinalityInterval, EmptyCardinalityInterval {
9 int lowerBound(); 11 int lowerBound();
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityIntervals.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityIntervals.java
index 855fd248..cb64cc0d 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/CardinalityIntervals.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/CardinalityIntervals.java
@@ -3,7 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.cardinalityinterval;
7
8import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
9import tools.refinery.logic.term.uppercardinality.UpperCardinality;
7 10
8public final class CardinalityIntervals { 11public final class CardinalityIntervals {
9 public static final CardinalityInterval NONE = exactly(0); 12 public static final CardinalityInterval NONE = exactly(0);
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/EmptyCardinalityInterval.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/EmptyCardinalityInterval.java
index 9e371e21..29a7f69d 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/EmptyCardinalityInterval.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/EmptyCardinalityInterval.java
@@ -3,7 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.cardinalityinterval;
7
8import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
9import tools.refinery.logic.term.uppercardinality.UpperCardinality;
7 10
8// Singleton implementation, because there is only a single empty interval. 11// Singleton implementation, because there is only a single empty interval.
9@SuppressWarnings("squid:S6548") 12@SuppressWarnings("squid:S6548")
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/NonEmptyCardinalityInterval.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/NonEmptyCardinalityInterval.java
index 6bd66df7..0919fc36 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/NonEmptyCardinalityInterval.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/cardinalityinterval/NonEmptyCardinalityInterval.java
@@ -3,7 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.cardinalityinterval;
7
8import tools.refinery.logic.term.uppercardinality.FiniteUpperCardinality;
9import tools.refinery.logic.term.uppercardinality.UpperCardinality;
7 10
8import java.util.Objects; 11import java.util.Objects;
9import java.util.function.BinaryOperator; 12import java.util.function.BinaryOperator;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/ComparisonTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/ComparisonTerm.java
index 5ca5a0a1..0401f984 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/ComparisonTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/ComparisonTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.comparable; 6package tools.refinery.logic.term.comparable;
7 7
8import tools.refinery.store.query.term.BinaryTerm; 8import tools.refinery.logic.term.BinaryTerm;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public abstract class ComparisonTerm<T> extends BinaryTerm<Boolean, T, T> { 11public abstract class ComparisonTerm<T> extends BinaryTerm<Boolean, T, T> {
12 protected ComparisonTerm(Class<T> argumentType, Term<T> left, Term<T> right) { 12 protected ComparisonTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/EqTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/EqTerm.java
index b8cf36f8..7a1315e6 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/EqTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/EqTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.comparable; 6package tools.refinery.logic.term.comparable;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class EqTerm<T> extends ComparisonTerm<T> { 11public class EqTerm<T> extends ComparisonTerm<T> {
12 public EqTerm(Class<T> argumentType, Term<T> left, Term<T> right) { 12 public EqTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterEqTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/GreaterEqTerm.java
index b109eb1a..38323999 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterEqTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/GreaterEqTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.comparable; 6package tools.refinery.logic.term.comparable;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class GreaterEqTerm<T extends Comparable<T>> extends ComparisonTerm<T> { 11public class GreaterEqTerm<T extends Comparable<T>> extends ComparisonTerm<T> {
12 public GreaterEqTerm(Class<T> argumentType, Term<T> left, Term<T> right) { 12 public GreaterEqTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/GreaterTerm.java
index 1b67f8b5..7174372e 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/GreaterTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/GreaterTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.comparable; 6package tools.refinery.logic.term.comparable;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class GreaterTerm<T extends Comparable<T>> extends ComparisonTerm<T> { 11public class GreaterTerm<T extends Comparable<T>> extends ComparisonTerm<T> {
12 public GreaterTerm(Class<T> argumentType, Term<T> left, Term<T> right) { 12 public GreaterTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessEqTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/LessEqTerm.java
index 1b34535f..7a07b7b2 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessEqTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/LessEqTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.comparable; 6package tools.refinery.logic.term.comparable;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class LessEqTerm<T extends Comparable<T>> extends ComparisonTerm<T> { 11public class LessEqTerm<T extends Comparable<T>> extends ComparisonTerm<T> {
12 public LessEqTerm(Class<T> argumentType, Term<T> left, Term<T> right) { 12 public LessEqTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/LessTerm.java
index 44e70902..b402f54d 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/LessTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/LessTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.comparable; 6package tools.refinery.logic.term.comparable;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class LessTerm<T extends Comparable<T>> extends ComparisonTerm<T> { 11public class LessTerm<T extends Comparable<T>> extends ComparisonTerm<T> {
12 public LessTerm(Class<T> argumentType, Term<T> left, Term<T> right) { 12 public LessTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/NotEqTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/NotEqTerm.java
index 1f9734c4..d2c697f4 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/comparable/NotEqTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/comparable/NotEqTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.comparable; 6package tools.refinery.logic.term.comparable;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class NotEqTerm<T> extends ComparisonTerm<T> { 11public class NotEqTerm<T> extends ComparisonTerm<T> {
12 public NotEqTerm(Class<T> argumentType, Term<T> left, Term<T> right) { 12 public NotEqTerm(Class<T> argumentType, Term<T> left, Term<T> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntAddTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntAddTerm.java
index dbea3efc..73533d9b 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntAddTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntAddTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class IntAddTerm extends IntBinaryTerm { 11public class IntAddTerm extends IntBinaryTerm {
12 public IntAddTerm(Term<Integer> left, Term<Integer> right) { 12 public IntAddTerm(Term<Integer> left, Term<Integer> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntBinaryTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntBinaryTerm.java
index 27ced4e4..9543c21f 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntBinaryTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntBinaryTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.term.BinaryTerm; 8import tools.refinery.logic.term.BinaryTerm;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public abstract class IntBinaryTerm extends BinaryTerm<Integer, Integer, Integer> { 11public abstract class IntBinaryTerm extends BinaryTerm<Integer, Integer, Integer> {
12 protected IntBinaryTerm(Term<Integer> left, Term<Integer> right) { 12 protected IntBinaryTerm(Term<Integer> left, Term<Integer> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntDivTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntDivTerm.java
index 2a35058c..f9fa70ef 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntDivTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntDivTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class IntDivTerm extends IntBinaryTerm { 11public class IntDivTerm extends IntBinaryTerm {
12 public IntDivTerm(Term<Integer> left, Term<Integer> right) { 12 public IntDivTerm(Term<Integer> left, Term<Integer> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMaxTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntMaxTerm.java
index f81fc509..f7b315df 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMaxTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntMaxTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class IntMaxTerm extends IntBinaryTerm { 11public class IntMaxTerm extends IntBinaryTerm {
12 public IntMaxTerm(Term<Integer> left, Term<Integer> right) { 12 public IntMaxTerm(Term<Integer> left, Term<Integer> right) {
@@ -15,7 +15,7 @@ public class IntMaxTerm extends IntBinaryTerm {
15 15
16 @Override 16 @Override
17 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft, 17 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft,
18 Term<Integer> substitutedRight) { 18 Term<Integer> substitutedRight) {
19 return new IntMaxTerm(substitutedLeft, substitutedRight); 19 return new IntMaxTerm(substitutedLeft, substitutedRight);
20 } 20 }
21 21
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntMinTerm.java
index 89182e26..73247db1 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntMinTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class IntMinTerm extends IntBinaryTerm { 11public class IntMinTerm extends IntBinaryTerm {
12 public IntMinTerm(Term<Integer> left, Term<Integer> right) { 12 public IntMinTerm(Term<Integer> left, Term<Integer> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinusTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntMinusTerm.java
index 709aa5ba..006e1977 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMinusTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntMinusTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class IntMinusTerm extends IntUnaryTerm { 11public class IntMinusTerm extends IntUnaryTerm {
12 public IntMinusTerm(Term<Integer> body) { 12 public IntMinusTerm(Term<Integer> body) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMulTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntMulTerm.java
index 89d4c5f4..18fdcb45 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntMulTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntMulTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class IntMulTerm extends IntBinaryTerm { 11public class IntMulTerm extends IntBinaryTerm {
12 public IntMulTerm(Term<Integer> left, Term<Integer> right) { 12 public IntMulTerm(Term<Integer> left, Term<Integer> right) {
@@ -15,7 +15,7 @@ public class IntMulTerm extends IntBinaryTerm {
15 15
16 @Override 16 @Override
17 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft, 17 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft,
18 Term<Integer> substitutedRight) { 18 Term<Integer> substitutedRight) {
19 return new IntMulTerm(substitutedLeft, substitutedRight); 19 return new IntMulTerm(substitutedLeft, substitutedRight);
20 } 20 }
21 21
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPlusTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntPlusTerm.java
index aef83bb4..1a905293 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPlusTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntPlusTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class IntPlusTerm extends IntUnaryTerm { 11public class IntPlusTerm extends IntUnaryTerm {
12 public IntPlusTerm(Term<Integer> body) { 12 public IntPlusTerm(Term<Integer> body) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPowTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntPowTerm.java
index d5af97a1..dac490b0 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntPowTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntPowTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class IntPowTerm extends IntBinaryTerm { 11public class IntPowTerm extends IntBinaryTerm {
12 public IntPowTerm(Term<Integer> left, Term<Integer> right) { 12 public IntPowTerm(Term<Integer> left, Term<Integer> right) {
@@ -15,7 +15,7 @@ public class IntPowTerm extends IntBinaryTerm {
15 15
16 @Override 16 @Override
17 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft, 17 public Term<Integer> doSubstitute(Substitution substitution, Term<Integer> substitutedLeft,
18 Term<Integer> substitutedRight) { 18 Term<Integer> substitutedRight) {
19 return new IntPowTerm(substitutedLeft, substitutedRight); 19 return new IntPowTerm(substitutedLeft, substitutedRight);
20 } 20 }
21 21
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSubTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntSubTerm.java
index 2c27afb1..94326677 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSubTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntSubTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class IntSubTerm extends IntBinaryTerm { 11public class IntSubTerm extends IntBinaryTerm {
12 public IntSubTerm(Term<Integer> left, Term<Integer> right) { 12 public IntSubTerm(Term<Integer> left, Term<Integer> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSumAggregator.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntSumAggregator.java
index cd718c53..b42038ab 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntSumAggregator.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntSumAggregator.java
@@ -3,9 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.term.StatelessAggregator; 8import tools.refinery.logic.term.StatelessAggregator;
9 9
10public final class IntSumAggregator implements StatelessAggregator<Integer, Integer> { 10public final class IntSumAggregator implements StatelessAggregator<Integer, Integer> {
11 public static final IntSumAggregator INSTANCE = new IntSumAggregator(); 11 public static final IntSumAggregator INSTANCE = new IntSumAggregator();
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntTerms.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntTerms.java
index acb98b94..b152a138 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntTerms.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntTerms.java
@@ -3,13 +3,14 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.term.Aggregator; 8import tools.refinery.logic.term.Aggregator;
9import tools.refinery.store.query.term.ConstantTerm; 9import tools.refinery.logic.term.ConstantTerm;
10import tools.refinery.store.query.term.ExtremeValueAggregator; 10import tools.refinery.logic.term.ExtremeValueAggregator;
11import tools.refinery.store.query.term.Term; 11import tools.refinery.logic.term.Term;
12import tools.refinery.store.query.term.comparable.*; 12import tools.refinery.logic.term.comparable.*;
13import tools.refinery.logic.term.comparable.*;
13 14
14import java.util.Comparator; 15import java.util.Comparator;
15 16
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntUnaryTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntUnaryTerm.java
index 49b4c647..20449e67 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/IntUnaryTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/IntUnaryTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.term.Term; 8import tools.refinery.logic.term.UnaryTerm;
9import tools.refinery.store.query.term.UnaryTerm; 9import tools.refinery.logic.term.Term;
10 10
11public abstract class IntUnaryTerm extends UnaryTerm<Integer, Integer> { 11public abstract class IntUnaryTerm extends UnaryTerm<Integer, Integer> {
12 protected IntUnaryTerm(Term<Integer> body) { 12 protected IntUnaryTerm(Term<Integer> body) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/RealToIntTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/RealToIntTerm.java
index 7d383562..7611af90 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/int_/RealToIntTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/int_/RealToIntTerm.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.term.Term;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.UnaryTerm;
10import tools.refinery.store.query.term.UnaryTerm; 10import tools.refinery.logic.substitution.Substitution;
11 11
12public class RealToIntTerm extends UnaryTerm<Integer, Double> { 12public class RealToIntTerm extends UnaryTerm<Integer, Double> {
13 protected RealToIntTerm(Term<Double> body) { 13 protected RealToIntTerm(Term<Double> body) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/IntToRealTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/IntToRealTerm.java
index 2f53117a..23c6893c 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/IntToRealTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/IntToRealTerm.java
@@ -3,11 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.term.UnaryTerm;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.substitution.Substitution;
10import tools.refinery.store.query.term.UnaryTerm; 10import tools.refinery.logic.term.Term;
11 11
12public class IntToRealTerm extends UnaryTerm<Double, Integer> { 12public class IntToRealTerm extends UnaryTerm<Double, Integer> {
13 protected IntToRealTerm(Term<Integer> body) { 13 protected IntToRealTerm(Term<Integer> body) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealAddTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealAddTerm.java
index 33fc9e41..82b97228 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealAddTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealAddTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class RealAddTerm extends RealBinaryTerm { 11public class RealAddTerm extends RealBinaryTerm {
12 public RealAddTerm(Term<Double> left, Term<Double> right) { 12 public RealAddTerm(Term<Double> left, Term<Double> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealBinaryTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealBinaryTerm.java
index 000f3623..3c23e767 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealBinaryTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealBinaryTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.term.BinaryTerm; 8import tools.refinery.logic.term.BinaryTerm;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public abstract class RealBinaryTerm extends BinaryTerm<Double, Double, Double> { 11public abstract class RealBinaryTerm extends BinaryTerm<Double, Double, Double> {
12 protected RealBinaryTerm(Term<Double> left, Term<Double> right) { 12 protected RealBinaryTerm(Term<Double> left, Term<Double> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealDivTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealDivTerm.java
index 1e55bf42..c22399e3 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealDivTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealDivTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class RealDivTerm extends RealBinaryTerm { 11public class RealDivTerm extends RealBinaryTerm {
12 public RealDivTerm(Term<Double> left, Term<Double> right) { 12 public RealDivTerm(Term<Double> left, Term<Double> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMaxTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealMaxTerm.java
index 2a249496..0c609c6d 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMaxTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealMaxTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class RealMaxTerm extends RealBinaryTerm { 11public class RealMaxTerm extends RealBinaryTerm {
12 public RealMaxTerm(Term<Double> left, Term<Double> right) { 12 public RealMaxTerm(Term<Double> left, Term<Double> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealMinTerm.java
index 2eb4cc1e..af2c3a52 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealMinTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class RealMinTerm extends RealBinaryTerm { 11public class RealMinTerm extends RealBinaryTerm {
12 public RealMinTerm(Term<Double> left, Term<Double> right) { 12 public RealMinTerm(Term<Double> left, Term<Double> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinusTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealMinusTerm.java
index 4afec7a1..e3e371c2 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMinusTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealMinusTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class RealMinusTerm extends RealUnaryTerm { 11public class RealMinusTerm extends RealUnaryTerm {
12 public RealMinusTerm(Term<Double> body) { 12 public RealMinusTerm(Term<Double> body) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMulTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealMulTerm.java
index ec95ac6f..ce8f2cd4 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealMulTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealMulTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class RealMulTerm extends RealBinaryTerm { 11public class RealMulTerm extends RealBinaryTerm {
12 public RealMulTerm(Term<Double> left, Term<Double> right) { 12 public RealMulTerm(Term<Double> left, Term<Double> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPlusTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealPlusTerm.java
index 64dd2e70..60efc5fd 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPlusTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealPlusTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class RealPlusTerm extends RealUnaryTerm { 11public class RealPlusTerm extends RealUnaryTerm {
12 public RealPlusTerm(Term<Double> body) { 12 public RealPlusTerm(Term<Double> body) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPowTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealPowTerm.java
index 11c952ea..6cb50362 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealPowTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealPowTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class RealPowTerm extends RealBinaryTerm { 11public class RealPowTerm extends RealBinaryTerm {
12 public RealPowTerm(Term<Double> left, Term<Double> right) { 12 public RealPowTerm(Term<Double> left, Term<Double> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSubTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealSubTerm.java
index 8cc701ed..32315e8e 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSubTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealSubTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11public class RealSubTerm extends RealBinaryTerm { 11public class RealSubTerm extends RealBinaryTerm {
12 public RealSubTerm(Term<Double> left, Term<Double> right) { 12 public RealSubTerm(Term<Double> left, Term<Double> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSumAggregator.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealSumAggregator.java
index d21048e9..4b090188 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealSumAggregator.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealSumAggregator.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.term.StatefulAggregate; 8import tools.refinery.logic.term.StatefulAggregate;
9import tools.refinery.store.query.term.StatefulAggregator; 9import tools.refinery.logic.term.StatefulAggregator;
10 10
11import java.util.Map; 11import java.util.Map;
12import java.util.TreeMap; 12import java.util.TreeMap;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealTerms.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealTerms.java
index 79220358..07dfa96b 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealTerms.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealTerms.java
@@ -3,13 +3,14 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.term.Aggregator; 8import tools.refinery.logic.term.Aggregator;
9import tools.refinery.store.query.term.ConstantTerm; 9import tools.refinery.logic.term.ConstantTerm;
10import tools.refinery.store.query.term.ExtremeValueAggregator; 10import tools.refinery.logic.term.ExtremeValueAggregator;
11import tools.refinery.store.query.term.Term; 11import tools.refinery.logic.term.Term;
12import tools.refinery.store.query.term.comparable.*; 12import tools.refinery.logic.term.comparable.*;
13import tools.refinery.logic.term.comparable.*;
13 14
14import java.util.Comparator; 15import java.util.Comparator;
15 16
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealUnaryTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealUnaryTerm.java
index d41c4ed9..14772411 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/real/RealUnaryTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/real/RealUnaryTerm.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import tools.refinery.store.query.term.Term; 8import tools.refinery.logic.term.UnaryTerm;
9import tools.refinery.store.query.term.UnaryTerm; 9import tools.refinery.logic.term.Term;
10 10
11public abstract class RealUnaryTerm extends UnaryTerm<Double, Double> { 11public abstract class RealUnaryTerm extends UnaryTerm<Double, Double> {
12 protected RealUnaryTerm(Term<Double> body) { 12 protected RealUnaryTerm(Term<Double> body) {
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/truthvalue/TruthValue.java
index f81ee9a4..bbdd3f97 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValue.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/truthvalue/TruthValue.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation; 6package tools.refinery.logic.term.truthvalue;
7 7
8public enum TruthValue { 8public enum TruthValue {
9 TRUE("true"), 9 TRUE("true"),
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValueDomain.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/truthvalue/TruthValueDomain.java
index 61696dca..443f744f 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/TruthValueDomain.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/truthvalue/TruthValueDomain.java
@@ -3,7 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation; 6package tools.refinery.logic.term.truthvalue;
7
8import tools.refinery.logic.AbstractDomain;
7 9
8import java.util.Optional; 10import java.util.Optional;
9 11
@@ -64,3 +66,4 @@ public final class TruthValueDomain implements AbstractDomain<TruthValue, Boolea
64 return !abstractValue.isConsistent(); 66 return !abstractValue.isConsistent();
65 } 67 }
66} 68}
69
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinality.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/FiniteUpperCardinality.java
index b63a8637..478d456b 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinality.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/FiniteUpperCardinality.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import org.jetbrains.annotations.NotNull; 8import org.jetbrains.annotations.NotNull;
9import org.jetbrains.annotations.Nullable; 9import org.jetbrains.annotations.Nullable;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UnboundedUpperCardinality.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UnboundedUpperCardinality.java
index 03c701ae..b6ecc1bd 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UnboundedUpperCardinality.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UnboundedUpperCardinality.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import org.jetbrains.annotations.NotNull; 8import org.jetbrains.annotations.NotNull;
9 9
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinalities.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalities.java
index 17d1b292..edf0afd2 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinalities.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalities.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8public final class UpperCardinalities { 8public final class UpperCardinalities {
9 public static final UpperCardinality UNBOUNDED = UnboundedUpperCardinality.INSTANCE; 9 public static final UpperCardinality UNBOUNDED = UnboundedUpperCardinality.INSTANCE;
diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinality.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinality.java
index 3f0db028..5a3dcfb9 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/representation/cardinality/UpperCardinality.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinality.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import org.jetbrains.annotations.Nullable; 8import org.jetbrains.annotations.Nullable;
9 9
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityAddTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityAddTerm.java
index 68905f51..5c849b0a 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityAddTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityAddTerm.java
@@ -3,11 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.uppercardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10import tools.refinery.store.representation.cardinality.UpperCardinality;
11 10
12public class UpperCardinalityAddTerm extends UpperCardinalityBinaryTerm { 11public class UpperCardinalityAddTerm extends UpperCardinalityBinaryTerm {
13 protected UpperCardinalityAddTerm(Term<UpperCardinality> left, Term<UpperCardinality> right) { 12 protected UpperCardinalityAddTerm(Term<UpperCardinality> left, Term<UpperCardinality> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityBinaryTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityBinaryTerm.java
index 0cf8fe44..976d6115 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityBinaryTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityBinaryTerm.java
@@ -3,11 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.uppercardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import tools.refinery.store.query.term.BinaryTerm; 8import tools.refinery.logic.term.BinaryTerm;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10import tools.refinery.store.representation.cardinality.UpperCardinality;
11 10
12public abstract class UpperCardinalityBinaryTerm extends BinaryTerm<UpperCardinality, UpperCardinality, 11public abstract class UpperCardinalityBinaryTerm extends BinaryTerm<UpperCardinality, UpperCardinality,
13 UpperCardinality> { 12 UpperCardinality> {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMaxTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityMaxTerm.java
index ff75f64e..0a0c5ee4 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMaxTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityMaxTerm.java
@@ -3,11 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.uppercardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10import tools.refinery.store.representation.cardinality.UpperCardinality;
11 10
12public class UpperCardinalityMaxTerm extends UpperCardinalityBinaryTerm { 11public class UpperCardinalityMaxTerm extends UpperCardinalityBinaryTerm {
13 protected UpperCardinalityMaxTerm(Term<UpperCardinality> left, Term<UpperCardinality> right) { 12 protected UpperCardinalityMaxTerm(Term<UpperCardinality> left, Term<UpperCardinality> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMinTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityMinTerm.java
index 1e89e9f4..d6879595 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMinTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityMinTerm.java
@@ -3,11 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.uppercardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10import tools.refinery.store.representation.cardinality.UpperCardinality;
11 10
12public class UpperCardinalityMinTerm extends UpperCardinalityBinaryTerm { 11public class UpperCardinalityMinTerm extends UpperCardinalityBinaryTerm {
13 protected UpperCardinalityMinTerm(Term<UpperCardinality> left, Term<UpperCardinality> right) { 12 protected UpperCardinalityMinTerm(Term<UpperCardinality> left, Term<UpperCardinality> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMulTerm.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityMulTerm.java
index 3b4970f4..cb0d685f 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityMulTerm.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityMulTerm.java
@@ -3,11 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.uppercardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10import tools.refinery.store.representation.cardinality.UpperCardinality;
11 10
12public class UpperCardinalityMulTerm extends UpperCardinalityBinaryTerm { 11public class UpperCardinalityMulTerm extends UpperCardinalityBinaryTerm {
13 protected UpperCardinalityMulTerm(Term<UpperCardinality> left, Term<UpperCardinality> right) { 12 protected UpperCardinalityMulTerm(Term<UpperCardinality> left, Term<UpperCardinality> right) {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregator.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregator.java
index d31f00a2..7c45e6ef 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregator.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregator.java
@@ -3,15 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.uppercardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import tools.refinery.store.query.term.StatefulAggregate; 8import tools.refinery.logic.term.StatefulAggregate;
9import tools.refinery.store.query.term.StatefulAggregator; 9import tools.refinery.logic.term.StatefulAggregator;
10import tools.refinery.store.representation.cardinality.FiniteUpperCardinality;
11import tools.refinery.store.representation.cardinality.UnboundedUpperCardinality;
12import tools.refinery.store.representation.cardinality.UpperCardinalities;
13import tools.refinery.store.representation.cardinality.UpperCardinality;
14 10
11// Singleton implementation, since there is only one way to aggregate upper cardinalities.
12@SuppressWarnings("squid:S6548")
15public class UpperCardinalitySumAggregator implements StatefulAggregator<UpperCardinality, UpperCardinality> { 13public class UpperCardinalitySumAggregator implements StatefulAggregator<UpperCardinality, UpperCardinality> {
16 public static final UpperCardinalitySumAggregator INSTANCE = new UpperCardinalitySumAggregator(); 14 public static final UpperCardinalitySumAggregator INSTANCE = new UpperCardinalitySumAggregator();
17 15
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTerms.java b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityTerms.java
index 13914f2d..7ec61cac 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTerms.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityTerms.java
@@ -3,15 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.uppercardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import tools.refinery.store.query.term.Aggregator; 8import tools.refinery.logic.term.Aggregator;
9import tools.refinery.store.query.term.ConstantTerm; 9import tools.refinery.logic.term.ConstantTerm;
10import tools.refinery.store.query.term.ExtremeValueAggregator; 10import tools.refinery.logic.term.ExtremeValueAggregator;
11import tools.refinery.store.query.term.Term; 11import tools.refinery.logic.term.Term;
12import tools.refinery.store.query.term.comparable.*; 12import tools.refinery.logic.term.comparable.*;
13import tools.refinery.store.representation.cardinality.UpperCardinalities;
14import tools.refinery.store.representation.cardinality.UpperCardinality;
15 13
16import java.util.Comparator; 14import java.util.Comparator;
17 15
diff --git a/subprojects/store/src/main/java/tools/refinery/store/util/CycleDetectingMapper.java b/subprojects/logic/src/main/java/tools/refinery/logic/util/CycleDetectingMapper.java
index 2e302663..8a9efdd6 100644
--- a/subprojects/store/src/main/java/tools/refinery/store/util/CycleDetectingMapper.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/util/CycleDetectingMapper.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.util; 6package tools.refinery.logic.util;
7 7
8import java.util.*; 8import java.util.*;
9import java.util.function.Function; 9import java.util.function.Function;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/MapBasedValuation.java b/subprojects/logic/src/main/java/tools/refinery/logic/valuation/MapBasedValuation.java
index 261ceaa5..be1862d2 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/MapBasedValuation.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/valuation/MapBasedValuation.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.valuation; 6package tools.refinery.logic.valuation;
7 7
8import tools.refinery.store.query.term.AnyDataVariable; 8import tools.refinery.logic.term.AnyDataVariable;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10 10
11import java.util.Map; 11import java.util.Map;
12 12
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/RestrictedValuation.java b/subprojects/logic/src/main/java/tools/refinery/logic/valuation/RestrictedValuation.java
index fc8406aa..b6ac7cc9 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/RestrictedValuation.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/valuation/RestrictedValuation.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.valuation; 6package tools.refinery.logic.valuation;
7 7
8import tools.refinery.store.query.term.AnyDataVariable; 8import tools.refinery.logic.term.AnyDataVariable;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10 10
11import java.util.Set; 11import java.util.Set;
12 12
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/SubstitutedValuation.java b/subprojects/logic/src/main/java/tools/refinery/logic/valuation/SubstitutedValuation.java
index 1c14112c..38491481 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/SubstitutedValuation.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/valuation/SubstitutedValuation.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.valuation; 6package tools.refinery.logic.valuation;
7 7
8import tools.refinery.store.query.substitution.Substitution; 8import tools.refinery.logic.substitution.Substitution;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10 10
11public record SubstitutedValuation(Valuation originalValuation, Substitution substitution) implements Valuation { 11public record SubstitutedValuation(Valuation originalValuation, Substitution substitution) implements Valuation {
12 @Override 12 @Override
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java b/subprojects/logic/src/main/java/tools/refinery/logic/valuation/Valuation.java
index 1588e957..95ee887e 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/Valuation.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/valuation/Valuation.java
@@ -3,12 +3,12 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.valuation; 6package tools.refinery.logic.valuation;
7 7
8import org.jetbrains.annotations.Nullable; 8import org.jetbrains.annotations.Nullable;
9import tools.refinery.store.query.substitution.Substitution; 9import tools.refinery.logic.substitution.Substitution;
10import tools.refinery.store.query.term.AnyDataVariable; 10import tools.refinery.logic.term.AnyDataVariable;
11import tools.refinery.store.query.term.DataVariable; 11import tools.refinery.logic.term.DataVariable;
12 12
13import java.util.Map; 13import java.util.Map;
14import java.util.Set; 14import java.util.Set;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/ValuationBuilder.java b/subprojects/logic/src/main/java/tools/refinery/logic/valuation/ValuationBuilder.java
index 7337dbc3..46459ac7 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/valuation/ValuationBuilder.java
+++ b/subprojects/logic/src/main/java/tools/refinery/logic/valuation/ValuationBuilder.java
@@ -3,10 +3,10 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.valuation; 6package tools.refinery.logic.valuation;
7 7
8import tools.refinery.store.query.term.AnyDataVariable; 8import tools.refinery.logic.term.AnyDataVariable;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10 10
11import java.util.Collections; 11import java.util.Collections;
12import java.util.HashMap; 12import java.util.HashMap;
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderLiteralEliminationTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/dnf/DnfBuilderLiteralEliminationTest.java
index 6a2dc0c7..d5a9ccad 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderLiteralEliminationTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/dnf/DnfBuilderLiteralEliminationTest.java
@@ -3,30 +3,28 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import org.junit.jupiter.params.ParameterizedTest; 9import org.junit.jupiter.params.ParameterizedTest;
10import org.junit.jupiter.params.provider.CsvSource; 10import org.junit.jupiter.params.provider.CsvSource;
11import tools.refinery.store.query.literal.BooleanLiteral; 11import tools.refinery.logic.Constraint;
12import tools.refinery.store.query.term.NodeVariable; 12import tools.refinery.logic.literal.BooleanLiteral;
13import tools.refinery.store.query.term.ParameterDirection; 13import tools.refinery.logic.term.NodeVariable;
14import tools.refinery.store.query.term.Variable; 14import tools.refinery.logic.term.ParameterDirection;
15import tools.refinery.store.query.term.bool.BoolTerms; 15import tools.refinery.logic.term.Variable;
16import tools.refinery.store.query.view.KeyOnlyView; 16import tools.refinery.logic.term.bool.BoolTerms;
17import tools.refinery.store.query.view.SymbolView; 17import tools.refinery.logic.tests.FakeKeyOnlyView;
18import tools.refinery.store.representation.Symbol;
19 18
20import java.util.List; 19import java.util.List;
21 20
22import static org.hamcrest.MatcherAssert.assertThat; 21import static org.hamcrest.MatcherAssert.assertThat;
23import static tools.refinery.store.query.literal.Literals.check; 22import static tools.refinery.logic.literal.Literals.check;
24import static tools.refinery.store.query.literal.Literals.not; 23import static tools.refinery.logic.literal.Literals.not;
25import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 24import static tools.refinery.logic.tests.QueryMatchers.structurallyEqualTo;
26 25
27class DnfBuilderLiteralEliminationTest { 26class DnfBuilderLiteralEliminationTest {
28 private final Symbol<Boolean> friend = Symbol.of("friend", 2); 27 private final Constraint friendView = new FakeKeyOnlyView("friend", 2);
29 private final SymbolView<Boolean> friendView = new KeyOnlyView<>(friend);
30 private final NodeVariable p = Variable.of("p"); 28 private final NodeVariable p = Variable.of("p");
31 private final NodeVariable q = Variable.of("q"); 29 private final NodeVariable q = Variable.of("q");
32 private final Dnf trueDnf = Dnf.builder().parameter(p, ParameterDirection.IN).clause().build(); 30 private final Dnf trueDnf = Dnf.builder().parameter(p, ParameterDirection.IN).clause().build();
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderVariableUnificationTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/dnf/DnfBuilderVariableUnificationTest.java
index fc40c7b3..0e1f77e2 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfBuilderVariableUnificationTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/dnf/DnfBuilderVariableUnificationTest.java
@@ -3,25 +3,22 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.term.ParameterDirection; 9import tools.refinery.logic.Constraint;
10import tools.refinery.store.query.term.Variable; 10import tools.refinery.logic.term.ParameterDirection;
11import tools.refinery.store.query.view.KeyOnlyView; 11import tools.refinery.logic.term.Variable;
12import tools.refinery.store.query.view.SymbolView; 12import tools.refinery.logic.tests.FakeKeyOnlyView;
13import tools.refinery.store.representation.Symbol;
14 13
15import java.util.List; 14import java.util.List;
16 15
17import static org.hamcrest.MatcherAssert.assertThat; 16import static org.hamcrest.MatcherAssert.assertThat;
18import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 17import static tools.refinery.logic.tests.QueryMatchers.structurallyEqualTo;
19 18
20class DnfBuilderVariableUnificationTest { 19class DnfBuilderVariableUnificationTest {
21 private final Symbol<Boolean> friend = Symbol.of("friend", 2); 20 private final Constraint friendView = new FakeKeyOnlyView("friend", 2);
22 private final Symbol<Boolean> children = Symbol.of("children", 2); 21 private final Constraint childrenView = new FakeKeyOnlyView("children", 2);
23 private final SymbolView<Boolean> friendView = new KeyOnlyView<>(friend);
24 private final SymbolView<Boolean> childrenView = new KeyOnlyView<>(children);
25 22
26 @Test 23 @Test
27 void equalToParameterTest() { 24 void equalToParameterTest() {
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfToDefinitionStringTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/dnf/DnfToDefinitionStringTest.java
index 12cfaa4e..dd624548 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/DnfToDefinitionStringTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/dnf/DnfToDefinitionStringTest.java
@@ -1,27 +1,24 @@
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 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.Constraint;
10import tools.refinery.store.query.term.ParameterDirection; 10import tools.refinery.logic.term.NodeVariable;
11import tools.refinery.store.query.term.Variable; 11import tools.refinery.logic.term.ParameterDirection;
12import tools.refinery.store.query.view.AnySymbolView; 12import tools.refinery.logic.term.Variable;
13import tools.refinery.store.query.view.KeyOnlyView; 13import tools.refinery.logic.tests.FakeKeyOnlyView;
14import tools.refinery.store.representation.Symbol;
15 14
16import static org.hamcrest.MatcherAssert.assertThat; 15import static org.hamcrest.MatcherAssert.assertThat;
17import static org.hamcrest.Matchers.is; 16import static org.hamcrest.Matchers.is;
18import static tools.refinery.store.query.literal.Literals.not; 17import static tools.refinery.logic.literal.Literals.not;
19 18
20class DnfToDefinitionStringTest { 19class DnfToDefinitionStringTest {
21 private static final Symbol<Boolean> person = Symbol.of("person", 1); 20 private static final Constraint personView = new FakeKeyOnlyView("person", 1);
22 private static final Symbol<Boolean> friend = Symbol.of("friend", 2); 21 private static final Constraint friendView = new FakeKeyOnlyView("friend", 2);
23 private static final AnySymbolView personView = new KeyOnlyView<>(person);
24 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
25 private static final NodeVariable p = Variable.of("p"); 22 private static final NodeVariable p = Variable.of("p");
26 private static final NodeVariable q = Variable.of("q"); 23 private static final NodeVariable q = Variable.of("q");
27 24
@@ -61,7 +58,7 @@ class DnfToDefinitionStringTest {
61 58
62 assertThat(dnf.toDefinitionString(), is(""" 59 assertThat(dnf.toDefinitionString(), is("""
63 pred Example(p) <-> 60 pred Example(p) <->
64 @RelationView("key") friend(p, q). 61 friend(p, q).
65 """)); 62 """));
66 } 63 }
67 64
@@ -74,7 +71,7 @@ class DnfToDefinitionStringTest {
74 71
75 assertThat(dnf.toDefinitionString(), is(""" 72 assertThat(dnf.toDefinitionString(), is("""
76 pred Example(in p) <-> 73 pred Example(in p) <->
77 !(@RelationView("key") friend(p, q)). 74 !(friend(p, q)).
78 """)); 75 """));
79 } 76 }
80 77
@@ -84,7 +81,7 @@ class DnfToDefinitionStringTest {
84 81
85 assertThat(dnf.toDefinitionString(), is(""" 82 assertThat(dnf.toDefinitionString(), is("""
86 pred Example(p) <-> 83 pred Example(p) <->
87 @RelationView("key") friend+(p, q). 84 friend+(p, q).
88 """)); 85 """));
89 } 86 }
90 87
@@ -94,7 +91,7 @@ class DnfToDefinitionStringTest {
94 91
95 assertThat(dnf.toDefinitionString(), is(""" 92 assertThat(dnf.toDefinitionString(), is("""
96 pred Example(p, q) <-> 93 pred Example(p, q) <->
97 @RelationView("key") friend(p, q). 94 friend(p, q).
98 """)); 95 """));
99 } 96 }
100 97
@@ -111,9 +108,9 @@ class DnfToDefinitionStringTest {
111 108
112 assertThat(dnf.toDefinitionString(), is(""" 109 assertThat(dnf.toDefinitionString(), is("""
113 pred Example(p) <-> 110 pred Example(p) <->
114 @RelationView("key") person(p), 111 person(p),
115 @RelationView("key") person(q), 112 person(q),
116 @RelationView("key") friend(p, q). 113 friend(p, q).
117 """)); 114 """));
118 } 115 }
119 116
@@ -127,9 +124,9 @@ class DnfToDefinitionStringTest {
127 124
128 assertThat(dnf.toDefinitionString(), is(""" 125 assertThat(dnf.toDefinitionString(), is("""
129 pred Example(p) <-> 126 pred Example(p) <->
130 @RelationView("key") friend(p, q) 127 friend(p, q)
131 ; 128 ;
132 @RelationView("key") friend(q, p). 129 friend(q, p).
133 """)); 130 """));
134 } 131 }
135 132
@@ -149,8 +146,8 @@ class DnfToDefinitionStringTest {
149 146
150 assertThat(dnf.toDefinitionString(), is(""" 147 assertThat(dnf.toDefinitionString(), is("""
151 pred Example(p) <-> 148 pred Example(p) <->
152 @RelationView("key") person(p), 149 person(p),
153 @RelationView("key") person(q), 150 person(q),
154 !(@Dnf Called(p, q)). 151 !(@Dnf Called(p, q)).
155 """)); 152 """));
156 } 153 }
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/HashCodeTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/dnf/HashCodeTest.java
index 0c8eaeed..e140be1e 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/HashCodeTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/dnf/HashCodeTest.java
@@ -3,24 +3,21 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.Constraint;
10import tools.refinery.store.query.term.Variable; 10import tools.refinery.logic.term.NodeVariable;
11import tools.refinery.store.query.view.AnySymbolView; 11import tools.refinery.logic.term.Variable;
12import tools.refinery.store.query.view.KeyOnlyView; 12import tools.refinery.logic.tests.FakeKeyOnlyView;
13import tools.refinery.store.representation.Symbol;
14 13
15import static org.hamcrest.MatcherAssert.assertThat; 14import static org.hamcrest.MatcherAssert.assertThat;
16import static org.hamcrest.Matchers.is; 15import static org.hamcrest.Matchers.is;
17import static org.hamcrest.Matchers.not; 16import static org.hamcrest.Matchers.not;
18 17
19class HashCodeTest { 18class HashCodeTest {
20 private static final Symbol<Boolean> person = Symbol.of("Person", 1); 19 private static final Constraint personView = new FakeKeyOnlyView("Person", 1);
21 private static final Symbol<Boolean> friend = Symbol.of("friend", 2); 20 private static final Constraint friendView = new FakeKeyOnlyView("friend", 2);
22 private static final AnySymbolView personView = new KeyOnlyView<>(person);
23 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
24 private static final NodeVariable p = Variable.of("p"); 21 private static final NodeVariable p = Variable.of("p");
25 private static final NodeVariable q = Variable.of("q"); 22 private static final NodeVariable q = Variable.of("q");
26 23
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/TopologicalSortTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/dnf/TopologicalSortTest.java
index 854bd469..8ea27cc9 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/TopologicalSortTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/dnf/TopologicalSortTest.java
@@ -3,27 +3,25 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.InvalidQueryException; 9import tools.refinery.logic.Constraint;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.InvalidQueryException;
11import tools.refinery.store.query.term.ParameterDirection; 11import tools.refinery.logic.term.NodeVariable;
12import tools.refinery.store.query.term.Variable; 12import tools.refinery.logic.term.ParameterDirection;
13import tools.refinery.store.query.view.AnySymbolView; 13import tools.refinery.logic.term.Variable;
14import tools.refinery.store.query.view.KeyOnlyView; 14import tools.refinery.logic.tests.FakeKeyOnlyView;
15import tools.refinery.store.representation.Symbol;
16 15
17import java.util.List; 16import java.util.List;
18 17
19import static org.hamcrest.MatcherAssert.assertThat; 18import static org.hamcrest.MatcherAssert.assertThat;
20import static org.junit.jupiter.api.Assertions.assertThrows; 19import static org.junit.jupiter.api.Assertions.assertThrows;
21import static tools.refinery.store.query.literal.Literals.not; 20import static tools.refinery.logic.literal.Literals.not;
22import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 21import static tools.refinery.logic.tests.QueryMatchers.structurallyEqualTo;
23 22
24class TopologicalSortTest { 23class TopologicalSortTest {
25 private static final Symbol<Boolean> friend = Symbol.of("friend", 2); 24 private static final Constraint friendView = new FakeKeyOnlyView("friend", 2);
26 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
27 private static final Dnf example = Dnf.of("example", builder -> { 25 private static final Dnf example = Dnf.of("example", builder -> {
28 var a = builder.parameter("a", ParameterDirection.IN); 26 var a = builder.parameter("a", ParameterDirection.IN);
29 var b = builder.parameter("b", ParameterDirection.IN); 27 var b = builder.parameter("b", ParameterDirection.IN);
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/VariableDirectionTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/dnf/VariableDirectionTest.java
index fc3f5d48..f9f39b8a 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/dnf/VariableDirectionTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/dnf/VariableDirectionTest.java
@@ -1,23 +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 */
6package tools.refinery.store.query.dnf; 6package tools.refinery.logic.dnf;
7 7
8import org.junit.jupiter.params.ParameterizedTest; 8import org.junit.jupiter.params.ParameterizedTest;
9import org.junit.jupiter.params.provider.Arguments; 9import org.junit.jupiter.params.provider.Arguments;
10import org.junit.jupiter.params.provider.MethodSource; 10import org.junit.jupiter.params.provider.MethodSource;
11import tools.refinery.store.query.literal.BooleanLiteral; 11import tools.refinery.logic.Constraint;
12import tools.refinery.store.query.literal.Literal; 12import tools.refinery.logic.literal.BooleanLiteral;
13import tools.refinery.store.query.term.DataVariable; 13import tools.refinery.logic.literal.Literal;
14import tools.refinery.store.query.term.NodeVariable; 14import tools.refinery.logic.term.DataVariable;
15import tools.refinery.store.query.term.ParameterDirection; 15import tools.refinery.logic.term.NodeVariable;
16import tools.refinery.store.query.term.Variable; 16import tools.refinery.logic.term.ParameterDirection;
17import tools.refinery.store.query.view.AnySymbolView; 17import tools.refinery.logic.term.Variable;
18import tools.refinery.store.query.view.FunctionView; 18import tools.refinery.logic.tests.FakeFunctionView;
19import tools.refinery.store.query.view.KeyOnlyView; 19import tools.refinery.logic.tests.FakeKeyOnlyView;
20import tools.refinery.store.representation.Symbol;
21 20
22import java.util.ArrayList; 21import java.util.ArrayList;
23import java.util.List; 22import java.util.List;
@@ -28,16 +27,13 @@ import static org.hamcrest.Matchers.hasItem;
28import static org.hamcrest.Matchers.not; 27import static org.hamcrest.Matchers.not;
29import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; 28import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
30import static org.junit.jupiter.api.Assertions.assertThrows; 29import static org.junit.jupiter.api.Assertions.assertThrows;
31import static tools.refinery.store.query.literal.Literals.not; 30import static tools.refinery.logic.literal.Literals.not;
32import static tools.refinery.store.query.term.int_.IntTerms.INT_SUM; 31import static tools.refinery.logic.term.int_.IntTerms.INT_SUM;
33 32
34class VariableDirectionTest { 33class VariableDirectionTest {
35 private static final Symbol<Boolean> person = Symbol.of("Person", 1); 34 private static final Constraint personView = new FakeKeyOnlyView("Person", 1);
36 private static final Symbol<Boolean> friend = Symbol.of("friend", 2); 35 private static final Constraint friendView = new FakeKeyOnlyView("friend", 2);
37 private static final Symbol<Integer> age = Symbol.of("age", 1, Integer.class); 36 private static final FakeFunctionView<Integer> ageView = new FakeFunctionView<>("age", 1, Integer.class);
38 private static final AnySymbolView personView = new KeyOnlyView<>(person);
39 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
40 private static final FunctionView<Integer> ageView = new FunctionView<>(age);
41 private static final NodeVariable p = Variable.of("p"); 37 private static final NodeVariable p = Variable.of("p");
42 private static final NodeVariable q = Variable.of("q"); 38 private static final NodeVariable q = Variable.of("q");
43 private static final DataVariable<Integer> x = Variable.of("x", Integer.class); 39 private static final DataVariable<Integer> x = Variable.of("x", Integer.class);
@@ -57,8 +53,8 @@ class VariableDirectionTest {
57 var builder = Dnf.builder().parameter(p, ParameterDirection.IN).clause(clause); 53 var builder = Dnf.builder().parameter(p, ParameterDirection.IN).clause(clause);
58 var dnf = assertDoesNotThrow(builder::build); 54 var dnf = assertDoesNotThrow(builder::build);
59 var clauses = dnf.getClauses(); 55 var clauses = dnf.getClauses();
60 if (clauses.size() > 0) { 56 if (!clauses.isEmpty()) {
61 assertThat(clauses.get(0).positiveVariables(), hasItem(p)); 57 assertThat(clauses.getFirst().positiveVariables(), hasItem(p));
62 } 58 }
63 } 59 }
64 60
@@ -70,8 +66,8 @@ class VariableDirectionTest {
70 var builder = Dnf.builder().clause(clauseWithBinding); 66 var builder = Dnf.builder().clause(clauseWithBinding);
71 var dnf = assertDoesNotThrow(builder::build); 67 var dnf = assertDoesNotThrow(builder::build);
72 var clauses = dnf.getClauses(); 68 var clauses = dnf.getClauses();
73 if (clauses.size() > 0) { 69 if (!clauses.isEmpty()) {
74 assertThat(clauses.get(0).positiveVariables(), hasItem(p)); 70 assertThat(clauses.getFirst().positiveVariables(), hasItem(p));
75 } 71 }
76 } 72 }
77 73
@@ -88,8 +84,8 @@ class VariableDirectionTest {
88 var builder = Dnf.builder().clause(clause); 84 var builder = Dnf.builder().clause(clause);
89 var dnf = assertDoesNotThrow(builder::build); 85 var dnf = assertDoesNotThrow(builder::build);
90 var clauses = dnf.getClauses(); 86 var clauses = dnf.getClauses();
91 if (clauses.size() > 0) { 87 if (!clauses.isEmpty()) {
92 assertThat(clauses.get(0).positiveVariables(), not(hasItem(p))); 88 assertThat(clauses.getFirst().positiveVariables(), not(hasItem(p)));
93 } 89 }
94 } 90 }
95 91
@@ -167,7 +163,7 @@ class VariableDirectionTest {
167 void boundPrivateVariableInputTest(Literal literal) { 163 void boundPrivateVariableInputTest(Literal literal) {
168 var builder = Dnf.builder().clause(personView.call(p), literal); 164 var builder = Dnf.builder().clause(personView.call(p), literal);
169 var dnf = assertDoesNotThrow(builder::build); 165 var dnf = assertDoesNotThrow(builder::build);
170 assertThat(dnf.getClauses().get(0).positiveVariables(), hasItem(p)); 166 assertThat(dnf.getClauses().getFirst().positiveVariables(), hasItem(p));
171 } 167 }
172 168
173 static Stream<Arguments> literalsWithRequiredVariableInput() { 169 static Stream<Arguments> literalsWithRequiredVariableInput() {
@@ -201,7 +197,7 @@ class VariableDirectionTest {
201 void boundParameterTest(Literal literal) { 197 void boundParameterTest(Literal literal) {
202 var builder = Dnf.builder().parameter(p, ParameterDirection.OUT).clause(literal); 198 var builder = Dnf.builder().parameter(p, ParameterDirection.OUT).clause(literal);
203 var dnf = assertDoesNotThrow(builder::build); 199 var dnf = assertDoesNotThrow(builder::build);
204 assertThat(dnf.getClauses().get(0).positiveVariables(), hasItem(p)); 200 assertThat(dnf.getClauses().getFirst().positiveVariables(), hasItem(p));
205 } 201 }
206 202
207 @ParameterizedTest 203 @ParameterizedTest
@@ -209,7 +205,7 @@ class VariableDirectionTest {
209 void boundTwiceParameterTest(Literal literal) { 205 void boundTwiceParameterTest(Literal literal) {
210 var builder = Dnf.builder().parameter(p, ParameterDirection.IN).clause(literal); 206 var builder = Dnf.builder().parameter(p, ParameterDirection.IN).clause(literal);
211 var dnf = assertDoesNotThrow(builder::build); 207 var dnf = assertDoesNotThrow(builder::build);
212 assertThat(dnf.getClauses().get(0).positiveVariables(), hasItem(p)); 208 assertThat(dnf.getClauses().getFirst().positiveVariables(), hasItem(p));
213 } 209 }
214 210
215 @ParameterizedTest 211 @ParameterizedTest
@@ -221,7 +217,7 @@ class VariableDirectionTest {
221 .build(); 217 .build();
222 var builder = Dnf.builder().clause(dnfWithInput.call(p), literal); 218 var builder = Dnf.builder().clause(dnfWithInput.call(p), literal);
223 var dnf = assertDoesNotThrow(builder::build); 219 var dnf = assertDoesNotThrow(builder::build);
224 assertThat(dnf.getClauses().get(0).positiveVariables(), hasItem(p)); 220 assertThat(dnf.getClauses().getFirst().positiveVariables(), hasItem(p));
225 } 221 }
226 222
227 @ParameterizedTest 223 @ParameterizedTest
@@ -229,7 +225,7 @@ class VariableDirectionTest {
229 void boundTwicePrivateVariableOutputTest(Literal literal) { 225 void boundTwicePrivateVariableOutputTest(Literal literal) {
230 var builder = Dnf.builder().clause(personView.call(p), literal); 226 var builder = Dnf.builder().clause(personView.call(p), literal);
231 var dnf = assertDoesNotThrow(builder::build); 227 var dnf = assertDoesNotThrow(builder::build);
232 assertThat(dnf.getClauses().get(0).positiveVariables(), hasItem(p)); 228 assertThat(dnf.getClauses().getFirst().positiveVariables(), hasItem(p));
233 } 229 }
234 230
235 static Stream<Arguments> literalsWithVariableOutput() { 231 static Stream<Arguments> literalsWithVariableOutput() {
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/literal/AggregationLiteralTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/literal/AggregationLiteralTest.java
index ddd57e96..76639e18 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/literal/AggregationLiteralTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/literal/AggregationLiteralTest.java
@@ -3,14 +3,14 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.Constraint; 9import tools.refinery.logic.Constraint;
10import tools.refinery.store.query.InvalidQueryException; 10import tools.refinery.logic.InvalidQueryException;
11import tools.refinery.store.query.dnf.Dnf; 11import tools.refinery.logic.dnf.Dnf;
12import tools.refinery.store.query.dnf.InvalidClauseException; 12import tools.refinery.logic.dnf.InvalidClauseException;
13import tools.refinery.store.query.term.*; 13import tools.refinery.logic.term.*;
14 14
15import java.util.List; 15import java.util.List;
16import java.util.Set; 16import java.util.Set;
@@ -19,9 +19,9 @@ import static org.hamcrest.MatcherAssert.assertThat;
19import static org.hamcrest.Matchers.*; 19import static org.hamcrest.Matchers.*;
20import static org.junit.jupiter.api.Assertions.assertAll; 20import static org.junit.jupiter.api.Assertions.assertAll;
21import static org.junit.jupiter.api.Assertions.assertThrows; 21import static org.junit.jupiter.api.Assertions.assertThrows;
22import static tools.refinery.store.query.literal.Literals.not; 22import static tools.refinery.logic.literal.Literals.not;
23import static tools.refinery.store.query.term.int_.IntTerms.INT_SUM; 23import static tools.refinery.logic.term.int_.IntTerms.INT_SUM;
24import static tools.refinery.store.query.term.int_.IntTerms.constant; 24import static tools.refinery.logic.term.int_.IntTerms.constant;
25 25
26class AggregationLiteralTest { 26class AggregationLiteralTest {
27 private static final NodeVariable p = Variable.of("p"); 27 private static final NodeVariable p = Variable.of("p");
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/literal/CallLiteralTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/literal/CallLiteralTest.java
index a01c6586..0fb2e7c9 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/literal/CallLiteralTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/literal/CallLiteralTest.java
@@ -3,14 +3,14 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.literal; 6package tools.refinery.logic.literal;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.Constraint; 9import tools.refinery.logic.Constraint;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.term.NodeVariable;
11import tools.refinery.store.query.term.Parameter; 11import tools.refinery.logic.term.Parameter;
12import tools.refinery.store.query.term.ParameterDirection; 12import tools.refinery.logic.term.ParameterDirection;
13import tools.refinery.store.query.term.Variable; 13import tools.refinery.logic.term.Variable;
14 14
15import java.util.List; 15import java.util.List;
16import java.util.Set; 16import java.util.Set;
@@ -19,7 +19,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
19import static org.hamcrest.Matchers.containsInAnyOrder; 19import static org.hamcrest.Matchers.containsInAnyOrder;
20import static org.hamcrest.Matchers.empty; 20import static org.hamcrest.Matchers.empty;
21import static org.junit.jupiter.api.Assertions.assertAll; 21import static org.junit.jupiter.api.Assertions.assertAll;
22import static tools.refinery.store.query.literal.Literals.not; 22import static tools.refinery.logic.literal.Literals.not;
23 23
24class CallLiteralTest { 24class CallLiteralTest {
25 private static final NodeVariable p = Variable.of("p"); 25 private static final NodeVariable p = Variable.of("p");
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/rewriter/DuplicateDnfRemoverTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/rewriter/DuplicateDnfRemoverTest.java
index ebb24ab5..7b2ce8b2 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/rewriter/DuplicateDnfRemoverTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/rewriter/DuplicateDnfRemoverTest.java
@@ -3,28 +3,26 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.rewriter; 6package tools.refinery.logic.rewriter;
7 7
8import org.junit.jupiter.api.BeforeEach; 8import org.junit.jupiter.api.BeforeEach;
9import org.junit.jupiter.api.Test; 9import org.junit.jupiter.api.Test;
10import tools.refinery.store.query.dnf.Query; 10import tools.refinery.logic.Constraint;
11import tools.refinery.store.query.literal.AbstractCallLiteral; 11import tools.refinery.logic.dnf.Query;
12import tools.refinery.store.query.literal.Reduction; 12import tools.refinery.logic.literal.AbstractCallLiteral;
13import tools.refinery.store.query.term.Variable; 13import tools.refinery.logic.literal.Reduction;
14import tools.refinery.store.query.view.AnySymbolView; 14import tools.refinery.logic.term.Variable;
15import tools.refinery.store.query.view.KeyOnlyView; 15import tools.refinery.logic.tests.FakeKeyOnlyView;
16import tools.refinery.store.representation.Symbol;
17 16
18import java.util.List; 17import java.util.List;
19 18
20import static org.hamcrest.MatcherAssert.assertThat; 19import static org.hamcrest.MatcherAssert.assertThat;
21import static org.hamcrest.Matchers.is; 20import static org.hamcrest.Matchers.is;
22import static org.hamcrest.Matchers.not; 21import static org.hamcrest.Matchers.not;
23import static tools.refinery.store.query.literal.Literals.not; 22import static tools.refinery.logic.literal.Literals.not;
24 23
25class DuplicateDnfRemoverTest { 24class DuplicateDnfRemoverTest {
26 private final static Symbol<Boolean> friend = Symbol.of("friend", 2); 25 private final static Constraint friendView = new FakeKeyOnlyView("friend", 2);
27 private final static AnySymbolView friendView = new KeyOnlyView<>(friend);
28 26
29 private DuplicateDnfRemover sut; 27 private DuplicateDnfRemover sut;
30 28
@@ -116,8 +114,8 @@ class DuplicateDnfRemoverTest {
116 assertThat(one, is(oneResult)); 114 assertThat(one, is(oneResult));
117 assertThat(oneResult, is(not(twoResult))); 115 assertThat(oneResult, is(not(twoResult)));
118 116
119 var oneCall = (AbstractCallLiteral) oneResult.getDnf().getClauses().get(0).literals().get(0); 117 var oneCall = (AbstractCallLiteral) oneResult.getDnf().getClauses().getFirst().literals().getFirst();
120 var twoCall = (AbstractCallLiteral) twoResult.getDnf().getClauses().get(0).literals().get(0); 118 var twoCall = (AbstractCallLiteral) twoResult.getDnf().getClauses().getFirst().literals().getFirst();
121 119
122 assertThat(oneCall.getTarget(), is(twoCall.getTarget())); 120 assertThat(oneCall.getTarget(), is(twoCall.getTarget()));
123 } 121 }
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/rewriter/InputParameterResolverTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/rewriter/InputParameterResolverTest.java
index ef0077e4..5e5fdb64 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/rewriter/InputParameterResolverTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/rewriter/InputParameterResolverTest.java
@@ -3,30 +3,27 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.rewriter; 6package tools.refinery.logic.rewriter;
7 7
8import org.junit.jupiter.api.BeforeEach; 8import org.junit.jupiter.api.BeforeEach;
9import org.junit.jupiter.api.Test; 9import org.junit.jupiter.api.Test;
10import tools.refinery.store.query.dnf.Dnf; 10import tools.refinery.logic.Constraint;
11import tools.refinery.store.query.dnf.Query; 11import tools.refinery.logic.dnf.Dnf;
12import tools.refinery.store.query.term.ParameterDirection; 12import tools.refinery.logic.dnf.Query;
13import tools.refinery.store.query.term.Variable; 13import tools.refinery.logic.term.ParameterDirection;
14import tools.refinery.store.query.view.AnySymbolView; 14import tools.refinery.logic.term.Variable;
15import tools.refinery.store.query.view.KeyOnlyView; 15import tools.refinery.logic.tests.FakeKeyOnlyView;
16import tools.refinery.store.representation.Symbol;
17 16
18import java.util.List; 17import java.util.List;
19 18
20import static org.hamcrest.MatcherAssert.assertThat; 19import static org.hamcrest.MatcherAssert.assertThat;
21import static org.hamcrest.Matchers.is; 20import static org.hamcrest.Matchers.is;
22import static tools.refinery.store.query.literal.Literals.not; 21import static tools.refinery.logic.literal.Literals.not;
23import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 22import static tools.refinery.logic.tests.QueryMatchers.structurallyEqualTo;
24 23
25class InputParameterResolverTest { 24class InputParameterResolverTest {
26 private final static Symbol<Boolean> person = Symbol.of("Person", 1); 25 private final static Constraint personView = new FakeKeyOnlyView("Person", 1);
27 private final static Symbol<Boolean> friend = Symbol.of("friend", 2); 26 private final static Constraint friendView = new FakeKeyOnlyView("friend", 2);
28 private final static AnySymbolView personView = new KeyOnlyView<>(person);
29 private final static AnySymbolView friendView = new KeyOnlyView<>(friend);
30 27
31 private InputParameterResolver sut; 28 private InputParameterResolver sut;
32 29
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/TermSubstitutionTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/TermSubstitutionTest.java
index 1fae2492..52b21692 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/TermSubstitutionTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/TermSubstitutionTest.java
@@ -3,20 +3,20 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term; 6package tools.refinery.logic.term;
7 7
8import org.junit.jupiter.api.Assertions; 8import org.junit.jupiter.api.Assertions;
9import org.junit.jupiter.params.ParameterizedTest; 9import org.junit.jupiter.params.ParameterizedTest;
10import org.junit.jupiter.params.provider.Arguments; 10import org.junit.jupiter.params.provider.Arguments;
11import org.junit.jupiter.params.provider.MethodSource; 11import org.junit.jupiter.params.provider.MethodSource;
12import tools.refinery.store.query.equality.DnfEqualityChecker; 12import tools.refinery.logic.equality.DnfEqualityChecker;
13import tools.refinery.store.query.equality.SubstitutingLiteralEqualityHelper; 13import tools.refinery.logic.equality.SubstitutingLiteralEqualityHelper;
14import tools.refinery.store.query.substitution.Substitution; 14import tools.refinery.logic.substitution.Substitution;
15import tools.refinery.store.query.term.bool.BoolTerms; 15import tools.refinery.logic.term.bool.BoolTerms;
16import tools.refinery.store.query.term.int_.IntTerms; 16import tools.refinery.logic.term.int_.IntTerms;
17import tools.refinery.store.query.term.real.RealTerms; 17import tools.refinery.logic.term.real.RealTerms;
18import tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms; 18import tools.refinery.logic.term.uppercardinality.UpperCardinality;
19import tools.refinery.store.representation.cardinality.UpperCardinality; 19import tools.refinery.logic.term.uppercardinality.UpperCardinalityTerms;
20 20
21import java.util.List; 21import java.util.List;
22import java.util.stream.Stream; 22import java.util.stream.Stream;
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/bool/BoolTermsEvaluateTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/bool/BoolTermsEvaluateTest.java
index beff705e..7f65591f 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/bool/BoolTermsEvaluateTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/bool/BoolTermsEvaluateTest.java
@@ -3,11 +3,12 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.bool; 6package tools.refinery.logic.term.bool;
7 7
8import org.junit.jupiter.params.ParameterizedTest; 8import org.junit.jupiter.params.ParameterizedTest;
9import org.junit.jupiter.params.provider.CsvSource; 9import org.junit.jupiter.params.provider.CsvSource;
10import tools.refinery.store.query.valuation.Valuation; 10import tools.refinery.logic.term.bool.BoolTerms;
11import tools.refinery.logic.valuation.Valuation;
11 12
12import static org.hamcrest.MatcherAssert.assertThat; 13import static org.hamcrest.MatcherAssert.assertThat;
13import static org.hamcrest.Matchers.is; 14import static org.hamcrest.Matchers.is;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/cardinalityinterval/CardinalityIntervalTest.java
index 6a66fa84..ee2dd61c 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/cardinalityinterval/CardinalityIntervalTest.java
@@ -3,18 +3,17 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.cardinalityinterval;
7 7
8import org.junit.jupiter.params.ParameterizedTest; 8import org.junit.jupiter.params.ParameterizedTest;
9import org.junit.jupiter.params.provider.Arguments; 9import org.junit.jupiter.params.provider.Arguments;
10import org.junit.jupiter.params.provider.MethodSource; 10import org.junit.jupiter.params.provider.MethodSource;
11import tools.refinery.store.representation.cardinality.CardinalityInterval;
12 11
13import java.util.stream.Stream; 12import java.util.stream.Stream;
14 13
15import static org.hamcrest.MatcherAssert.assertThat; 14import static org.hamcrest.MatcherAssert.assertThat;
16import static org.hamcrest.Matchers.equalTo; 15import static org.hamcrest.Matchers.equalTo;
17import static tools.refinery.store.representation.cardinality.CardinalityIntervals.*; 16import static tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals.*;
18 17
19class CardinalityIntervalTest { 18class CardinalityIntervalTest {
20 @ParameterizedTest(name = "min({0}, {1}) == {2}") 19 @ParameterizedTest(name = "min({0}, {1}) == {2}")
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalsTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/cardinalityinterval/CardinalityIntervalsTest.java
index 9fe76159..5441c837 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/CardinalityIntervalsTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/cardinalityinterval/CardinalityIntervalsTest.java
@@ -3,14 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.cardinalityinterval;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.representation.cardinality.CardinalityIntervals; 9import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
10import tools.refinery.store.representation.cardinality.UpperCardinalities;
11 10
12import static org.hamcrest.MatcherAssert.assertThat; 11import static org.hamcrest.MatcherAssert.assertThat;
13import static org.hamcrest.Matchers.*; 12import static org.hamcrest.Matchers.equalTo;
14 13
15class CardinalityIntervalsTest { 14class CardinalityIntervalsTest {
16 @Test 15 @Test
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/EmptyCardinalityIntervalTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/cardinalityinterval/EmptyCardinalityIntervalTest.java
index 24a788a8..0dbc7f61 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/EmptyCardinalityIntervalTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/cardinalityinterval/EmptyCardinalityIntervalTest.java
@@ -3,10 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.cardinalityinterval;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.representation.cardinality.CardinalityIntervals;
10 9
11import static org.hamcrest.MatcherAssert.assertThat; 10import static org.hamcrest.MatcherAssert.assertThat;
12import static org.hamcrest.Matchers.lessThan; 11import static org.hamcrest.Matchers.lessThan;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteCardinalityIntervalTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/cardinalityinterval/FiniteCardinalityIntervalTest.java
index 6cf56fae..588b25ab 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteCardinalityIntervalTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/cardinalityinterval/FiniteCardinalityIntervalTest.java
@@ -3,12 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.cardinalityinterval;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.representation.cardinality.NonEmptyCardinalityInterval; 9import tools.refinery.logic.term.uppercardinality.UpperCardinality;
10import tools.refinery.store.representation.cardinality.UpperCardinalities; 10import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
11import tools.refinery.store.representation.cardinality.UpperCardinality;
12 11
13import static org.junit.jupiter.api.Assertions.assertThrows; 12import static org.junit.jupiter.api.Assertions.assertThrows;
14 13
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/int_/IntTermsEvaluateTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/int_/IntTermsEvaluateTest.java
index abe50d75..55d9b740 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/int_/IntTermsEvaluateTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/int_/IntTermsEvaluateTest.java
@@ -3,14 +3,15 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.int_; 6package tools.refinery.logic.term.int_;
7 7
8import org.junit.jupiter.params.ParameterizedTest; 8import org.junit.jupiter.params.ParameterizedTest;
9import org.junit.jupiter.params.provider.Arguments; 9import org.junit.jupiter.params.provider.Arguments;
10import org.junit.jupiter.params.provider.CsvSource; 10import org.junit.jupiter.params.provider.CsvSource;
11import org.junit.jupiter.params.provider.MethodSource; 11import org.junit.jupiter.params.provider.MethodSource;
12import tools.refinery.store.query.term.real.RealTerms; 12import tools.refinery.logic.term.int_.IntTerms;
13import tools.refinery.store.query.valuation.Valuation; 13import tools.refinery.logic.term.real.RealTerms;
14import tools.refinery.logic.valuation.Valuation;
14 15
15import java.util.stream.Stream; 16import java.util.stream.Stream;
16 17
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/real/RealTermEvaluateTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/real/RealTermEvaluateTest.java
index 6a8eebf1..042d1807 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/real/RealTermEvaluateTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/real/RealTermEvaluateTest.java
@@ -3,13 +3,14 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.real; 6package tools.refinery.logic.term.real;
7 7
8import org.hamcrest.Matcher; 8import org.hamcrest.Matcher;
9import org.junit.jupiter.params.ParameterizedTest; 9import org.junit.jupiter.params.ParameterizedTest;
10import org.junit.jupiter.params.provider.CsvSource; 10import org.junit.jupiter.params.provider.CsvSource;
11import tools.refinery.store.query.term.int_.IntTerms; 11import tools.refinery.logic.term.int_.IntTerms;
12import tools.refinery.store.query.valuation.Valuation; 12import tools.refinery.logic.term.real.RealTerms;
13import tools.refinery.logic.valuation.Valuation;
13 14
14import static org.hamcrest.MatcherAssert.assertThat; 15import static org.hamcrest.MatcherAssert.assertThat;
15import static org.hamcrest.Matchers.*; 16import static org.hamcrest.Matchers.*;
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinalityTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/FiniteUpperCardinalityTest.java
index 7c641c47..8a57f029 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/FiniteUpperCardinalityTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/FiniteUpperCardinalityTest.java
@@ -3,10 +3,9 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.representation.cardinality.FiniteUpperCardinality;
10 9
11import static org.junit.jupiter.api.Assertions.assertThrows; 10import static org.junit.jupiter.api.Assertions.assertThrows;
12 11
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalitiesTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitiesTest.java
index e403eec2..bdb6a833 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalitiesTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitiesTest.java
@@ -3,7 +3,7 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import org.junit.jupiter.params.ParameterizedTest; 9import org.junit.jupiter.params.ParameterizedTest;
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregatorStreamTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregatorStreamTest.java
index 31baf36e..fc8522d4 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregatorStreamTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregatorStreamTest.java
@@ -3,26 +3,24 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.uppercardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import org.hamcrest.Matchers;
8import org.junit.jupiter.params.ParameterizedTest; 9import org.junit.jupiter.params.ParameterizedTest;
9import org.junit.jupiter.params.provider.Arguments; 10import org.junit.jupiter.params.provider.Arguments;
10import org.junit.jupiter.params.provider.MethodSource; 11import org.junit.jupiter.params.provider.MethodSource;
11import tools.refinery.store.representation.cardinality.UpperCardinalities;
12import tools.refinery.store.representation.cardinality.UpperCardinality;
13 12
14import java.util.List; 13import java.util.List;
15import java.util.stream.Stream; 14import java.util.stream.Stream;
16 15
17import static org.hamcrest.MatcherAssert.assertThat; 16import static org.hamcrest.MatcherAssert.assertThat;
18import static org.hamcrest.Matchers.is;
19 17
20class UpperCardinalitySumAggregatorStreamTest { 18class UpperCardinalitySumAggregatorStreamTest {
21 @ParameterizedTest 19 @ParameterizedTest
22 @MethodSource 20 @MethodSource
23 void testStream(List<UpperCardinality> list, UpperCardinality expected) { 21 void testStream(List<UpperCardinality> list, UpperCardinality expected) {
24 var result = UpperCardinalitySumAggregator.INSTANCE.aggregateStream(list.stream()); 22 var result = UpperCardinalitySumAggregator.INSTANCE.aggregateStream(list.stream());
25 assertThat(result, is(expected)); 23 assertThat(result, Matchers.is(expected));
26 } 24 }
27 25
28 static Stream<Arguments> testStream() { 26 static Stream<Arguments> testStream() {
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregatorTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregatorTest.java
index 780cd0ab..e252b097 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalitySumAggregatorTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalitySumAggregatorTest.java
@@ -3,16 +3,15 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.uppercardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import org.hamcrest.MatcherAssert;
9import org.hamcrest.Matchers;
8import org.junit.jupiter.api.BeforeEach; 10import org.junit.jupiter.api.BeforeEach;
9import org.junit.jupiter.api.Test; 11import org.junit.jupiter.api.Test;
10import tools.refinery.store.query.term.StatefulAggregate; 12import tools.refinery.logic.term.StatefulAggregate;
11import tools.refinery.store.representation.cardinality.UpperCardinalities;
12import tools.refinery.store.representation.cardinality.UpperCardinality;
13 13
14import static org.hamcrest.MatcherAssert.assertThat; 14import static org.hamcrest.MatcherAssert.assertThat;
15import static org.hamcrest.Matchers.is;
16 15
17class UpperCardinalitySumAggregatorTest { 16class UpperCardinalitySumAggregatorTest {
18 private StatefulAggregate<UpperCardinality, UpperCardinality> accumulator; 17 private StatefulAggregate<UpperCardinality, UpperCardinality> accumulator;
@@ -24,33 +23,33 @@ class UpperCardinalitySumAggregatorTest {
24 23
25 @Test 24 @Test
26 void emptyAggregationTest() { 25 void emptyAggregationTest() {
27 assertThat(accumulator.getResult(), is(UpperCardinality.of(0))); 26 MatcherAssert.assertThat(accumulator.getResult(), Matchers.is(UpperCardinality.of(0)));
28 } 27 }
29 28
30 @Test 29 @Test
31 void singleBoundedTest() { 30 void singleBoundedTest() {
32 accumulator.add(UpperCardinality.of(3)); 31 accumulator.add(UpperCardinality.of(3));
33 assertThat(accumulator.getResult(), is(UpperCardinality.of(3))); 32 MatcherAssert.assertThat(accumulator.getResult(), Matchers.is(UpperCardinality.of(3)));
34 } 33 }
35 34
36 @Test 35 @Test
37 void multipleBoundedTest() { 36 void multipleBoundedTest() {
38 accumulator.add(UpperCardinality.of(2)); 37 accumulator.add(UpperCardinality.of(2));
39 accumulator.add(UpperCardinality.of(3)); 38 accumulator.add(UpperCardinality.of(3));
40 assertThat(accumulator.getResult(), is(UpperCardinality.of(5))); 39 MatcherAssert.assertThat(accumulator.getResult(), Matchers.is(UpperCardinality.of(5)));
41 } 40 }
42 41
43 @Test 42 @Test
44 void singleUnboundedTest() { 43 void singleUnboundedTest() {
45 accumulator.add(UpperCardinalities.UNBOUNDED); 44 accumulator.add(UpperCardinalities.UNBOUNDED);
46 assertThat(accumulator.getResult(), is(UpperCardinalities.UNBOUNDED)); 45 assertThat(accumulator.getResult(), Matchers.is(UpperCardinalities.UNBOUNDED));
47 } 46 }
48 47
49 @Test 48 @Test
50 void multipleUnboundedTest() { 49 void multipleUnboundedTest() {
51 accumulator.add(UpperCardinalities.UNBOUNDED); 50 accumulator.add(UpperCardinalities.UNBOUNDED);
52 accumulator.add(UpperCardinalities.UNBOUNDED); 51 accumulator.add(UpperCardinalities.UNBOUNDED);
53 assertThat(accumulator.getResult(), is(UpperCardinalities.UNBOUNDED)); 52 assertThat(accumulator.getResult(), Matchers.is(UpperCardinalities.UNBOUNDED));
54 } 53 }
55 54
56 @Test 55 @Test
@@ -58,7 +57,7 @@ class UpperCardinalitySumAggregatorTest {
58 accumulator.add(UpperCardinality.of(2)); 57 accumulator.add(UpperCardinality.of(2));
59 accumulator.add(UpperCardinality.of(3)); 58 accumulator.add(UpperCardinality.of(3));
60 accumulator.remove(UpperCardinality.of(2)); 59 accumulator.remove(UpperCardinality.of(2));
61 assertThat(accumulator.getResult(), is(UpperCardinality.of(3))); 60 MatcherAssert.assertThat(accumulator.getResult(), Matchers.is(UpperCardinality.of(3)));
62 } 61 }
63 62
64 @Test 63 @Test
@@ -66,7 +65,7 @@ class UpperCardinalitySumAggregatorTest {
66 accumulator.add(UpperCardinalities.UNBOUNDED); 65 accumulator.add(UpperCardinalities.UNBOUNDED);
67 accumulator.add(UpperCardinality.of(3)); 66 accumulator.add(UpperCardinality.of(3));
68 accumulator.remove(UpperCardinalities.UNBOUNDED); 67 accumulator.remove(UpperCardinalities.UNBOUNDED);
69 assertThat(accumulator.getResult(), is(UpperCardinality.of(3))); 68 MatcherAssert.assertThat(accumulator.getResult(), Matchers.is(UpperCardinality.of(3)));
70 } 69 }
71 70
72 @Test 71 @Test
@@ -75,6 +74,6 @@ class UpperCardinalitySumAggregatorTest {
75 accumulator.add(UpperCardinalities.UNBOUNDED); 74 accumulator.add(UpperCardinalities.UNBOUNDED);
76 accumulator.add(UpperCardinality.of(3)); 75 accumulator.add(UpperCardinality.of(3));
77 accumulator.remove(UpperCardinalities.UNBOUNDED); 76 accumulator.remove(UpperCardinalities.UNBOUNDED);
78 assertThat(accumulator.getResult(), is(UpperCardinalities.UNBOUNDED)); 77 assertThat(accumulator.getResult(), Matchers.is(UpperCardinalities.UNBOUNDED));
79 } 78 }
80} 79}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTermsEvaluateTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityTermsEvaluateTest.java
index 9d0f3bde..ab71b716 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/term/uppercardinality/UpperCardinalityTermsEvaluateTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityTermsEvaluateTest.java
@@ -3,14 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.term.uppercardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import org.hamcrest.Matchers;
8import org.junit.jupiter.params.ParameterizedTest; 9import org.junit.jupiter.params.ParameterizedTest;
9import org.junit.jupiter.params.provider.Arguments; 10import org.junit.jupiter.params.provider.Arguments;
10import org.junit.jupiter.params.provider.MethodSource; 11import org.junit.jupiter.params.provider.MethodSource;
11import tools.refinery.store.query.valuation.Valuation; 12import tools.refinery.logic.valuation.Valuation;
12import tools.refinery.store.representation.cardinality.UpperCardinalities;
13import tools.refinery.store.representation.cardinality.UpperCardinality;
14 13
15import java.util.stream.Stream; 14import java.util.stream.Stream;
16 15
@@ -23,7 +22,7 @@ class UpperCardinalityTermsEvaluateTest {
23 void minTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) { 22 void minTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) {
24 var term = UpperCardinalityTerms.min(UpperCardinalityTerms.constant(a), UpperCardinalityTerms.constant(b)); 23 var term = UpperCardinalityTerms.min(UpperCardinalityTerms.constant(a), UpperCardinalityTerms.constant(b));
25 assertThat(term.getType(), is(UpperCardinality.class)); 24 assertThat(term.getType(), is(UpperCardinality.class));
26 assertThat(term.evaluate(Valuation.empty()), is(expected)); 25 assertThat(term.evaluate(Valuation.empty()), Matchers.is(expected));
27 } 26 }
28 27
29 static Stream<Arguments> minTest() { 28 static Stream<Arguments> minTest() {
@@ -45,7 +44,7 @@ class UpperCardinalityTermsEvaluateTest {
45 void maxTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) { 44 void maxTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) {
46 var term = UpperCardinalityTerms.max(UpperCardinalityTerms.constant(a), UpperCardinalityTerms.constant(b)); 45 var term = UpperCardinalityTerms.max(UpperCardinalityTerms.constant(a), UpperCardinalityTerms.constant(b));
47 assertThat(term.getType(), is(UpperCardinality.class)); 46 assertThat(term.getType(), is(UpperCardinality.class));
48 assertThat(term.evaluate(Valuation.empty()), is(expected)); 47 assertThat(term.evaluate(Valuation.empty()), Matchers.is(expected));
49 } 48 }
50 49
51 static Stream<Arguments> maxTest() { 50 static Stream<Arguments> maxTest() {
@@ -67,7 +66,7 @@ class UpperCardinalityTermsEvaluateTest {
67 void addTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) { 66 void addTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) {
68 var term = UpperCardinalityTerms.add(UpperCardinalityTerms.constant(a), UpperCardinalityTerms.constant(b)); 67 var term = UpperCardinalityTerms.add(UpperCardinalityTerms.constant(a), UpperCardinalityTerms.constant(b));
69 assertThat(term.getType(), is(UpperCardinality.class)); 68 assertThat(term.getType(), is(UpperCardinality.class));
70 assertThat(term.evaluate(Valuation.empty()), is(expected)); 69 assertThat(term.evaluate(Valuation.empty()), Matchers.is(expected));
71 } 70 }
72 71
73 static Stream<Arguments> addTest() { 72 static Stream<Arguments> addTest() {
@@ -87,7 +86,7 @@ class UpperCardinalityTermsEvaluateTest {
87 void mulTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) { 86 void mulTest(UpperCardinality a, UpperCardinality b, UpperCardinality expected) {
88 var term = UpperCardinalityTerms.mul(UpperCardinalityTerms.constant(a), UpperCardinalityTerms.constant(b)); 87 var term = UpperCardinalityTerms.mul(UpperCardinalityTerms.constant(a), UpperCardinalityTerms.constant(b));
89 assertThat(term.getType(), is(UpperCardinality.class)); 88 assertThat(term.getType(), is(UpperCardinality.class));
90 assertThat(term.evaluate(Valuation.empty()), is(expected)); 89 assertThat(term.evaluate(Valuation.empty()), Matchers.is(expected));
91 } 90 }
92 91
93 static Stream<Arguments> mulTest() { 92 static Stream<Arguments> mulTest() {
diff --git a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalityTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityTest.java
index 10b4dd20..70cb6695 100644
--- a/subprojects/store/src/test/java/tools/refinery/store/representation/cardinality/UpperCardinalityTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/term/uppercardinality/UpperCardinalityTest.java
@@ -3,13 +3,11 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.representation.cardinality; 6package tools.refinery.logic.term.uppercardinality;
7 7
8import org.junit.jupiter.params.ParameterizedTest; 8import org.junit.jupiter.params.ParameterizedTest;
9import org.junit.jupiter.params.provider.Arguments; 9import org.junit.jupiter.params.provider.Arguments;
10import org.junit.jupiter.params.provider.MethodSource; 10import org.junit.jupiter.params.provider.MethodSource;
11import tools.refinery.store.representation.cardinality.UpperCardinalities;
12import tools.refinery.store.representation.cardinality.UpperCardinality;
13 11
14import java.util.stream.Stream; 12import java.util.stream.Stream;
15 13
diff --git a/subprojects/logic/src/test/java/tools/refinery/logic/tests/FakeFunctionView.java b/subprojects/logic/src/test/java/tools/refinery/logic/tests/FakeFunctionView.java
new file mode 100644
index 00000000..4a55f561
--- /dev/null
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/tests/FakeFunctionView.java
@@ -0,0 +1,57 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.logic.tests;
7
8import tools.refinery.logic.Constraint;
9import tools.refinery.logic.term.*;
10
11import java.util.ArrayList;
12import java.util.Arrays;
13import java.util.List;
14
15public record FakeFunctionView<T>(String name, int keyArity, Class<T> valueType) implements Constraint {
16 @Override
17 public int arity() {
18 return keyArity + 1;
19 }
20
21 @Override
22 public List<Parameter> getParameters() {
23 var parameters = new Parameter[keyArity + 1];
24 Arrays.fill(parameters, Parameter.NODE_OUT);
25 parameters[keyArity] = new Parameter(valueType, ParameterDirection.OUT);
26 return List.of(parameters);
27 }
28
29 public <R> AssignedValue<R> aggregate(Aggregator<R, T> aggregator, List<NodeVariable> arguments) {
30 return targetVariable -> {
31 var placeholderVariable = Variable.of(valueType);
32 var argumentsWithPlaceholder = new ArrayList<Variable>(arguments.size() + 1);
33 argumentsWithPlaceholder.addAll(arguments);
34 argumentsWithPlaceholder.add(placeholderVariable);
35 return aggregateBy(placeholderVariable, aggregator, argumentsWithPlaceholder).toLiteral(targetVariable);
36 };
37 }
38
39 public <R> AssignedValue<R> aggregate(Aggregator<R, T> aggregator, NodeVariable... arguments) {
40 return aggregate(aggregator, List.of(arguments));
41 }
42
43 public AssignedValue<T> leftJoin(T defaultValue, List<NodeVariable> arguments) {
44 return targetVariable -> {
45 var placeholderVariable = Variable.of(valueType);
46 var argumentsWithPlaceholder = new ArrayList<Variable>(arguments.size() + 1);
47 argumentsWithPlaceholder.addAll(arguments);
48 argumentsWithPlaceholder.add(placeholderVariable);
49 return leftJoinBy(placeholderVariable, defaultValue, argumentsWithPlaceholder).toLiteral(targetVariable);
50 };
51 }
52
53 public AssignedValue<T> leftJoin(T defaultValue, NodeVariable... arguments) {
54 return leftJoin(defaultValue, List.of(arguments));
55
56 }
57}
diff --git a/subprojects/logic/src/test/java/tools/refinery/logic/tests/FakeKeyOnlyView.java b/subprojects/logic/src/test/java/tools/refinery/logic/tests/FakeKeyOnlyView.java
new file mode 100644
index 00000000..7e09ddab
--- /dev/null
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/tests/FakeKeyOnlyView.java
@@ -0,0 +1,21 @@
1/*
2 * SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6package tools.refinery.logic.tests;
7
8import tools.refinery.logic.Constraint;
9import tools.refinery.logic.term.Parameter;
10
11import java.util.Arrays;
12import java.util.List;
13
14public record FakeKeyOnlyView(String name, int arity) implements Constraint {
15 @Override
16 public List<Parameter> getParameters() {
17 var parameters = new Parameter[arity];
18 Arrays.fill(parameters, Parameter.NODE_OUT);
19 return List.of(parameters);
20 }
21}
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToRawTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/tests/StructurallyEqualToRawTest.java
index d447e99c..52a22ce1 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToRawTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/tests/StructurallyEqualToRawTest.java
@@ -3,17 +3,15 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.tests; 6package tools.refinery.logic.tests;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.dnf.Dnf; 9import tools.refinery.logic.Constraint;
10import tools.refinery.store.query.dnf.SymbolicParameter; 10import tools.refinery.logic.dnf.Dnf;
11import tools.refinery.store.query.term.NodeVariable; 11import tools.refinery.logic.dnf.SymbolicParameter;
12import tools.refinery.store.query.term.ParameterDirection; 12import tools.refinery.logic.term.NodeVariable;
13import tools.refinery.store.query.term.Variable; 13import tools.refinery.logic.term.ParameterDirection;
14import tools.refinery.store.query.view.AnySymbolView; 14import tools.refinery.logic.term.Variable;
15import tools.refinery.store.query.view.KeyOnlyView;
16import tools.refinery.store.representation.Symbol;
17 15
18import java.util.List; 16import java.util.List;
19 17
@@ -21,13 +19,11 @@ import static org.hamcrest.CoreMatchers.containsString;
21import static org.hamcrest.MatcherAssert.assertThat; 19import static org.hamcrest.MatcherAssert.assertThat;
22import static org.hamcrest.Matchers.allOf; 20import static org.hamcrest.Matchers.allOf;
23import static org.junit.jupiter.api.Assertions.assertThrows; 21import static org.junit.jupiter.api.Assertions.assertThrows;
24import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 22import static tools.refinery.logic.tests.QueryMatchers.structurallyEqualTo;
25 23
26class StructurallyEqualToRawTest { 24class StructurallyEqualToRawTest {
27 private static final Symbol<Boolean> person = Symbol.of("Person", 1); 25 private static final Constraint personView = new FakeKeyOnlyView("Person", 1);
28 private static final Symbol<Boolean> friend = Symbol.of("friend", 2); 26 private static final Constraint friendView = new FakeKeyOnlyView("friend", 2);
29 private static final AnySymbolView personView = new KeyOnlyView<>(person);
30 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
31 private static final NodeVariable p = Variable.of("p"); 27 private static final NodeVariable p = Variable.of("p");
32 private static final NodeVariable q = Variable.of("q"); 28 private static final NodeVariable q = Variable.of("q");
33 29
diff --git a/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToTest.java b/subprojects/logic/src/test/java/tools/refinery/logic/tests/StructurallyEqualToTest.java
index f716b805..663b115a 100644
--- a/subprojects/store-query/src/test/java/tools/refinery/store/query/tests/StructurallyEqualToTest.java
+++ b/subprojects/logic/src/test/java/tools/refinery/logic/tests/StructurallyEqualToTest.java
@@ -3,27 +3,23 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.tests; 6package tools.refinery.logic.tests;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.query.dnf.Dnf; 9import tools.refinery.logic.Constraint;
10import tools.refinery.store.query.term.NodeVariable; 10import tools.refinery.logic.dnf.Dnf;
11import tools.refinery.store.query.term.ParameterDirection; 11import tools.refinery.logic.term.NodeVariable;
12import tools.refinery.store.query.term.Variable; 12import tools.refinery.logic.term.ParameterDirection;
13import tools.refinery.store.query.view.AnySymbolView; 13import tools.refinery.logic.term.Variable;
14import tools.refinery.store.query.view.KeyOnlyView;
15import tools.refinery.store.representation.Symbol;
16 14
17import static org.hamcrest.CoreMatchers.containsString; 15import static org.hamcrest.CoreMatchers.containsString;
18import static org.hamcrest.MatcherAssert.assertThat; 16import static org.hamcrest.MatcherAssert.assertThat;
19import static org.junit.jupiter.api.Assertions.assertThrows; 17import static org.junit.jupiter.api.Assertions.assertThrows;
20import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 18import static tools.refinery.logic.tests.QueryMatchers.structurallyEqualTo;
21 19
22class StructurallyEqualToTest { 20class StructurallyEqualToTest {
23 private static final Symbol<Boolean> person = Symbol.of("Person", 1); 21 private static final Constraint personView = new FakeKeyOnlyView("Person", 1);
24 private static final Symbol<Boolean> friend = Symbol.of("friend", 2); 22 private static final Constraint friendView = new FakeKeyOnlyView("friend", 2);
25 private static final AnySymbolView personView = new KeyOnlyView<>(person);
26 private static final AnySymbolView friendView = new KeyOnlyView<>(friend);
27 private static final NodeVariable p = Variable.of("p"); 23 private static final NodeVariable p = Variable.of("p");
28 private static final NodeVariable q = Variable.of("q"); 24 private static final NodeVariable q = Variable.of("q");
29 25
diff --git a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/MismatchDescribingDnfEqualityChecker.java b/subprojects/logic/src/testFixtures/java/tools/refinery/logic/tests/MismatchDescribingDnfEqualityChecker.java
index 6a3301b3..aa73baec 100644
--- a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/MismatchDescribingDnfEqualityChecker.java
+++ b/subprojects/logic/src/testFixtures/java/tools/refinery/logic/tests/MismatchDescribingDnfEqualityChecker.java
@@ -3,13 +3,13 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.tests; 6package tools.refinery.logic.tests;
7 7
8import org.hamcrest.Description; 8import org.hamcrest.Description;
9import tools.refinery.store.query.dnf.Dnf; 9import tools.refinery.logic.dnf.Dnf;
10import tools.refinery.store.query.dnf.SymbolicParameter; 10import tools.refinery.logic.dnf.SymbolicParameter;
11import tools.refinery.store.query.equality.DeepDnfEqualityChecker; 11import tools.refinery.logic.equality.DeepDnfEqualityChecker;
12import tools.refinery.store.query.literal.Literal; 12import tools.refinery.logic.literal.Literal;
13 13
14import java.util.List; 14import java.util.List;
15 15
diff --git a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/QueryMatchers.java b/subprojects/logic/src/testFixtures/java/tools/refinery/logic/tests/QueryMatchers.java
index cd449a6a..40332a8c 100644
--- a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/QueryMatchers.java
+++ b/subprojects/logic/src/testFixtures/java/tools/refinery/logic/tests/QueryMatchers.java
@@ -3,12 +3,12 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.tests; 6package tools.refinery.logic.tests;
7 7
8import org.hamcrest.Matcher; 8import org.hamcrest.Matcher;
9import tools.refinery.store.query.dnf.Dnf; 9import tools.refinery.logic.dnf.Dnf;
10import tools.refinery.store.query.dnf.SymbolicParameter; 10import tools.refinery.logic.dnf.SymbolicParameter;
11import tools.refinery.store.query.literal.Literal; 11import tools.refinery.logic.literal.Literal;
12 12
13import java.util.List; 13import java.util.List;
14 14
diff --git a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualTo.java b/subprojects/logic/src/testFixtures/java/tools/refinery/logic/tests/StructurallyEqualTo.java
index 86149141..257e6850 100644
--- a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualTo.java
+++ b/subprojects/logic/src/testFixtures/java/tools/refinery/logic/tests/StructurallyEqualTo.java
@@ -3,12 +3,12 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.tests; 6package tools.refinery.logic.tests;
7 7
8import org.hamcrest.Description; 8import org.hamcrest.Description;
9import org.hamcrest.TypeSafeMatcher; 9import org.hamcrest.TypeSafeMatcher;
10import tools.refinery.store.query.dnf.Dnf; 10import tools.refinery.logic.dnf.Dnf;
11import tools.refinery.store.query.equality.DeepDnfEqualityChecker; 11import tools.refinery.logic.equality.DeepDnfEqualityChecker;
12 12
13public class StructurallyEqualTo extends TypeSafeMatcher<Dnf> { 13public class StructurallyEqualTo extends TypeSafeMatcher<Dnf> {
14 private final Dnf expected; 14 private final Dnf expected;
diff --git a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualToRaw.java b/subprojects/logic/src/testFixtures/java/tools/refinery/logic/tests/StructurallyEqualToRaw.java
index 2f8c2944..944ab1ac 100644
--- a/subprojects/store-query/src/testFixtures/java/tools/refinery/store/query/tests/StructurallyEqualToRaw.java
+++ b/subprojects/logic/src/testFixtures/java/tools/refinery/logic/tests/StructurallyEqualToRaw.java
@@ -3,14 +3,14 @@
3 * 3 *
4 * SPDX-License-Identifier: EPL-2.0 4 * SPDX-License-Identifier: EPL-2.0
5 */ 5 */
6package tools.refinery.store.query.tests; 6package tools.refinery.logic.tests;
7 7
8import org.hamcrest.Description; 8import org.hamcrest.Description;
9import org.hamcrest.TypeSafeMatcher; 9import org.hamcrest.TypeSafeMatcher;
10import tools.refinery.store.query.dnf.Dnf; 10import tools.refinery.logic.dnf.Dnf;
11import tools.refinery.store.query.dnf.SymbolicParameter; 11import tools.refinery.logic.dnf.SymbolicParameter;
12import tools.refinery.store.query.equality.DeepDnfEqualityChecker; 12import tools.refinery.logic.equality.DeepDnfEqualityChecker;
13import tools.refinery.store.query.literal.Literal; 13import tools.refinery.logic.literal.Literal;
14 14
15import java.util.List; 15import java.util.List;
16 16
diff --git a/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerAdapterImpl.java b/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerAdapterImpl.java
index ef10dd30..5d0a3292 100644
--- a/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerAdapterImpl.java
+++ b/subprojects/store-dse-visualization/src/main/java/tools/refinery/visualization/internal/ModelVisualizerAdapterImpl.java
@@ -11,7 +11,7 @@ import tools.refinery.store.map.Version;
11import tools.refinery.store.model.Interpretation; 11import tools.refinery.store.model.Interpretation;
12import tools.refinery.store.model.Model; 12import tools.refinery.store.model.Model;
13import tools.refinery.store.representation.AnySymbol; 13import tools.refinery.store.representation.AnySymbol;
14import tools.refinery.store.representation.TruthValue; 14import tools.refinery.logic.term.truthvalue.TruthValue;
15import tools.refinery.store.tuple.Tuple; 15import tools.refinery.store.tuple.Tuple;
16import tools.refinery.visualization.ModelVisualizerAdapter; 16import tools.refinery.visualization.ModelVisualizerAdapter;
17import tools.refinery.visualization.ModelVisualizerStoreAdapter; 17import tools.refinery.visualization.ModelVisualizerStoreAdapter;
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/CreateActionLiteral.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/CreateActionLiteral.java
index 5b86a5e1..a6c58381 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/CreateActionLiteral.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/CreateActionLiteral.java
@@ -9,7 +9,7 @@ import tools.refinery.store.dse.modification.ModificationAdapter;
9import tools.refinery.store.dse.transition.actions.AbstractActionLiteral; 9import tools.refinery.store.dse.transition.actions.AbstractActionLiteral;
10import tools.refinery.store.dse.transition.actions.BoundActionLiteral; 10import tools.refinery.store.dse.transition.actions.BoundActionLiteral;
11import tools.refinery.store.model.Model; 11import tools.refinery.store.model.Model;
12import tools.refinery.store.query.term.NodeVariable; 12import tools.refinery.logic.term.NodeVariable;
13 13
14import java.util.List; 14import java.util.List;
15 15
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/DeleteActionLiteral.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/DeleteActionLiteral.java
index 18ad2b9d..e13e9c11 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/DeleteActionLiteral.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/DeleteActionLiteral.java
@@ -10,7 +10,7 @@ import tools.refinery.store.dse.modification.ModificationAdapter;
10import tools.refinery.store.dse.transition.actions.AbstractActionLiteral; 10import tools.refinery.store.dse.transition.actions.AbstractActionLiteral;
11import tools.refinery.store.dse.transition.actions.BoundActionLiteral; 11import tools.refinery.store.dse.transition.actions.BoundActionLiteral;
12import tools.refinery.store.model.Model; 12import tools.refinery.store.model.Model;
13import tools.refinery.store.query.term.NodeVariable; 13import tools.refinery.logic.term.NodeVariable;
14import tools.refinery.store.tuple.Tuple; 14import tools.refinery.store.tuple.Tuple;
15 15
16import java.util.List; 16import java.util.List;
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/ModificationActionLiterals.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/ModificationActionLiterals.java
index 31f50ac7..4de482f0 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/ModificationActionLiterals.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/modification/actions/ModificationActionLiterals.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.dse.modification.actions; 6package tools.refinery.store.dse.modification.actions;
7 7
8import tools.refinery.store.dse.modification.DanglingEdges; 8import tools.refinery.store.dse.modification.DanglingEdges;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11public class ModificationActionLiterals { 11public class ModificationActionLiterals {
12 private ModificationActionLiterals() { 12 private ModificationActionLiterals() {
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/Rule.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/Rule.java
index ff45ed3e..14a9c556 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/Rule.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/Rule.java
@@ -9,7 +9,7 @@ import tools.refinery.store.dse.transition.actions.Action;
9import tools.refinery.store.dse.transition.actions.BoundAction; 9import tools.refinery.store.dse.transition.actions.BoundAction;
10import tools.refinery.store.dse.transition.callback.*; 10import tools.refinery.store.dse.transition.callback.*;
11import tools.refinery.store.model.Model; 11import tools.refinery.store.model.Model;
12import tools.refinery.store.query.dnf.RelationalQuery; 12import tools.refinery.logic.dnf.RelationalQuery;
13 13
14public class Rule { 14public class Rule {
15 private final String name; 15 private final String name;
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/RuleBuilder.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/RuleBuilder.java
index 865ac369..c2e43e0d 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/RuleBuilder.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/RuleBuilder.java
@@ -8,9 +8,9 @@ package tools.refinery.store.dse.transition;
8import tools.refinery.store.dse.transition.actions.Action; 8import tools.refinery.store.dse.transition.actions.Action;
9import tools.refinery.store.dse.transition.actions.ActionLiteral; 9import tools.refinery.store.dse.transition.actions.ActionLiteral;
10import tools.refinery.store.dse.transition.callback.*; 10import tools.refinery.store.dse.transition.callback.*;
11import tools.refinery.store.query.dnf.AbstractQueryBuilder; 11import tools.refinery.logic.dnf.AbstractQueryBuilder;
12import tools.refinery.store.query.dnf.Dnf; 12import tools.refinery.logic.dnf.Dnf;
13import tools.refinery.store.query.term.Variable; 13import tools.refinery.logic.term.Variable;
14 14
15import java.util.List; 15import java.util.List;
16 16
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/Action.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/Action.java
index d63ddfdd..0ce0c3a4 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/Action.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/Action.java
@@ -9,9 +9,9 @@ import org.eclipse.collections.api.factory.primitive.ObjectIntMaps;
9import org.eclipse.collections.api.map.primitive.MutableObjectIntMap; 9import org.eclipse.collections.api.map.primitive.MutableObjectIntMap;
10import org.jetbrains.annotations.Nullable; 10import org.jetbrains.annotations.Nullable;
11import tools.refinery.store.model.Model; 11import tools.refinery.store.model.Model;
12import tools.refinery.store.query.dnf.RelationalQuery; 12import tools.refinery.logic.dnf.RelationalQuery;
13import tools.refinery.store.query.dnf.SymbolicParameter; 13import tools.refinery.logic.dnf.SymbolicParameter;
14import tools.refinery.store.query.term.NodeVariable; 14import tools.refinery.logic.term.NodeVariable;
15 15
16import java.util.*; 16import java.util.*;
17 17
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/ActionLiteral.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/ActionLiteral.java
index a721ef73..86b4e3cd 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/ActionLiteral.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/ActionLiteral.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.dse.transition.actions; 6package tools.refinery.store.dse.transition.actions;
7 7
8import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11import java.util.List; 11import java.util.List;
12 12
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/ActionLiterals.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/ActionLiterals.java
index 275e1e25..d06e2479 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/ActionLiterals.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/ActionLiterals.java
@@ -5,7 +5,7 @@
5 */ 5 */
6package tools.refinery.store.dse.transition.actions; 6package tools.refinery.store.dse.transition.actions;
7 7
8import tools.refinery.store.query.term.NodeVariable; 8import tools.refinery.logic.term.NodeVariable;
9import tools.refinery.store.representation.Symbol; 9import tools.refinery.store.representation.Symbol;
10 10
11import java.util.List; 11import java.util.List;
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/PutActionLiteral.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/PutActionLiteral.java
index 86288921..6657b157 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/PutActionLiteral.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/actions/PutActionLiteral.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.dse.transition.actions; 6package tools.refinery.store.dse.transition.actions;
7 7
8import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10import tools.refinery.store.representation.Symbol; 10import tools.refinery.store.representation.Symbol;
11import tools.refinery.store.tuple.Tuple; 11import tools.refinery.store.tuple.Tuple;
12 12
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback1.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback1.java
index 869f1a96..7e1dd5b7 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback1.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback1.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.dse.transition.callback; 6package tools.refinery.store.dse.transition.callback;
7 7
8import tools.refinery.store.dse.transition.actions.ActionLiteral; 8import tools.refinery.store.dse.transition.actions.ActionLiteral;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11import java.util.List; 11import java.util.List;
12 12
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback2.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback2.java
index a648fc93..1361482d 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback2.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback2.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.dse.transition.callback; 6package tools.refinery.store.dse.transition.callback;
7 7
8import tools.refinery.store.dse.transition.actions.ActionLiteral; 8import tools.refinery.store.dse.transition.actions.ActionLiteral;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11import java.util.List; 11import java.util.List;
12 12
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback3.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback3.java
index a9b1d334..870ba088 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback3.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback3.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.dse.transition.callback; 6package tools.refinery.store.dse.transition.callback;
7 7
8import tools.refinery.store.dse.transition.actions.ActionLiteral; 8import tools.refinery.store.dse.transition.actions.ActionLiteral;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11import java.util.List; 11import java.util.List;
12 12
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback4.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback4.java
index aef1351c..46c056ef 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback4.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/ActionCallback4.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.dse.transition.callback; 6package tools.refinery.store.dse.transition.callback;
7 7
8import tools.refinery.store.dse.transition.actions.ActionLiteral; 8import tools.refinery.store.dse.transition.actions.ActionLiteral;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11import java.util.List; 11import java.util.List;
12 12
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback1.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback1.java
index bd7bf4f5..603500ae 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback1.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback1.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.dse.transition.callback; 6package tools.refinery.store.dse.transition.callback;
7 7
8import tools.refinery.store.dse.transition.RuleBuilder; 8import tools.refinery.store.dse.transition.RuleBuilder;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11@FunctionalInterface 11@FunctionalInterface
12public interface RuleCallback1 { 12public interface RuleCallback1 {
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback2.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback2.java
index 7b02b68a..88d3e43c 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback2.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback2.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.dse.transition.callback; 6package tools.refinery.store.dse.transition.callback;
7 7
8import tools.refinery.store.dse.transition.RuleBuilder; 8import tools.refinery.store.dse.transition.RuleBuilder;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11@FunctionalInterface 11@FunctionalInterface
12public interface RuleCallback2 { 12public interface RuleCallback2 {
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback3.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback3.java
index 6f112d48..d4d35e19 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback3.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback3.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.dse.transition.callback; 6package tools.refinery.store.dse.transition.callback;
7 7
8import tools.refinery.store.dse.transition.RuleBuilder; 8import tools.refinery.store.dse.transition.RuleBuilder;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11@FunctionalInterface 11@FunctionalInterface
12public interface RuleCallback3 { 12public interface RuleCallback3 {
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback4.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback4.java
index dbcf8567..67690169 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback4.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/callback/RuleCallback4.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.dse.transition.callback; 6package tools.refinery.store.dse.transition.callback;
7 7
8import tools.refinery.store.dse.transition.RuleBuilder; 8import tools.refinery.store.dse.transition.RuleBuilder;
9import tools.refinery.store.query.term.NodeVariable; 9import tools.refinery.logic.term.NodeVariable;
10 10
11@FunctionalInterface 11@FunctionalInterface
12public interface RuleCallback4 { 12public interface RuleCallback4 {
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/AndCriterion.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/AndCriterion.java
index 0ad2b7a4..2a02ff14 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/AndCriterion.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/AndCriterion.java
@@ -5,9 +5,9 @@
5 */ 5 */
6package tools.refinery.store.dse.transition.objectives; 6package tools.refinery.store.dse.transition.objectives;
7 7
8import tools.refinery.logic.literal.Reduction;
8import tools.refinery.store.model.Model; 9import tools.refinery.store.model.Model;
9import tools.refinery.store.model.ModelStore; 10import tools.refinery.store.model.ModelStore;
10import tools.refinery.store.query.literal.Reduction;
11 11
12import java.util.ArrayList; 12import java.util.ArrayList;
13import java.util.Collection; 13import java.util.Collection;
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/CompositeCriterion.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/CompositeCriterion.java
index 5746cc7e..1f2defab 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/CompositeCriterion.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/CompositeCriterion.java
@@ -5,11 +5,11 @@
5 */ 5 */
6package tools.refinery.store.dse.transition.objectives; 6package tools.refinery.store.dse.transition.objectives;
7 7
8import tools.refinery.store.model.ModelStore;
9import tools.refinery.store.model.ModelStoreBuilder; 8import tools.refinery.store.model.ModelStoreBuilder;
10import tools.refinery.store.query.literal.Reduction;
11 9
12import java.util.*; 10import java.util.Collection;
11import java.util.LinkedHashSet;
12import java.util.List;
13 13
14public abstract sealed class CompositeCriterion implements Criterion permits AndCriterion, OrCriterion { 14public abstract sealed class CompositeCriterion implements Criterion permits AndCriterion, OrCriterion {
15 private final List<Criterion> criteria; 15 private final List<Criterion> criteria;
@@ -32,9 +32,6 @@ public abstract sealed class CompositeCriterion implements Criterion permits And
32 } 32 }
33 33
34 @Override 34 @Override
35 public abstract Reduction getReduction(ModelStore store);
36
37 @Override
38 public void configure(ModelStoreBuilder storeBuilder) { 35 public void configure(ModelStoreBuilder storeBuilder) {
39 for (var criterion : criteria) { 36 for (var criterion : criteria) {
40 criterion.configure(storeBuilder); 37 criterion.configure(storeBuilder);
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/CountObjective.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/CountObjective.java
index fbd05ded..f9fe1459 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/CountObjective.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/CountObjective.java
@@ -5,14 +5,14 @@
5 */ 5 */
6package tools.refinery.store.dse.transition.objectives; 6package tools.refinery.store.dse.transition.objectives;
7 7
8import tools.refinery.logic.dnf.RelationalQuery;
9import tools.refinery.logic.literal.Reduction;
8import tools.refinery.store.model.Model; 10import tools.refinery.store.model.Model;
9import tools.refinery.store.model.ModelStore; 11import tools.refinery.store.model.ModelStore;
10import tools.refinery.store.model.ModelStoreBuilder; 12import tools.refinery.store.model.ModelStoreBuilder;
11import tools.refinery.store.query.ModelQueryAdapter; 13import tools.refinery.store.query.ModelQueryAdapter;
12import tools.refinery.store.query.ModelQueryBuilder; 14import tools.refinery.store.query.ModelQueryBuilder;
13import tools.refinery.store.query.ModelQueryStoreAdapter; 15import tools.refinery.store.query.ModelQueryStoreAdapter;
14import tools.refinery.store.query.dnf.RelationalQuery;
15import tools.refinery.store.query.literal.Reduction;
16 16
17public class CountObjective implements Objective { 17public class CountObjective implements Objective {
18 private final RelationalQuery query; 18 private final RelationalQuery query;
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Criteria.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Criteria.java
index 0e4ec5c9..7d4c97ad 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Criteria.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Criteria.java
@@ -5,7 +5,7 @@
5 */ 5 */
6package tools.refinery.store.dse.transition.objectives; 6package tools.refinery.store.dse.transition.objectives;
7 7
8import tools.refinery.store.query.dnf.AnyQuery; 8import tools.refinery.logic.dnf.AnyQuery;
9 9
10import java.util.Collection; 10import java.util.Collection;
11import java.util.List; 11import java.util.List;
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Criterion.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Criterion.java
index c827f20e..da6b2102 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Criterion.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Criterion.java
@@ -5,10 +5,10 @@
5 */ 5 */
6package tools.refinery.store.dse.transition.objectives; 6package tools.refinery.store.dse.transition.objectives;
7 7
8import tools.refinery.logic.literal.Reduction;
8import tools.refinery.store.model.Model; 9import tools.refinery.store.model.Model;
9import tools.refinery.store.model.ModelStore; 10import tools.refinery.store.model.ModelStore;
10import tools.refinery.store.model.ModelStoreBuilder; 11import tools.refinery.store.model.ModelStoreBuilder;
11import tools.refinery.store.query.literal.Reduction;
12 12
13public interface Criterion { 13public interface Criterion {
14 default void configure(ModelStoreBuilder storeBuilder) { 14 default void configure(ModelStoreBuilder storeBuilder) {
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Objectives.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Objectives.java
index e552d14c..d2364c6a 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Objectives.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/Objectives.java
@@ -5,8 +5,8 @@
5 */ 5 */
6package tools.refinery.store.dse.transition.objectives; 6package tools.refinery.store.dse.transition.objectives;
7 7
8import tools.refinery.store.query.dnf.FunctionalQuery; 8import tools.refinery.logic.dnf.FunctionalQuery;
9import tools.refinery.store.query.dnf.RelationalQuery; 9import tools.refinery.logic.dnf.RelationalQuery;
10 10
11import java.util.Collection; 11import java.util.Collection;
12import java.util.List; 12import java.util.List;
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/OrCriterion.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/OrCriterion.java
index 7a8d7778..4f7fcb26 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/OrCriterion.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/OrCriterion.java
@@ -5,9 +5,9 @@
5 */ 5 */
6package tools.refinery.store.dse.transition.objectives; 6package tools.refinery.store.dse.transition.objectives;
7 7
8import tools.refinery.logic.literal.Reduction;
8import tools.refinery.store.model.Model; 9import tools.refinery.store.model.Model;
9import tools.refinery.store.model.ModelStore; 10import tools.refinery.store.model.ModelStore;
10import tools.refinery.store.query.literal.Reduction;
11 11
12import java.util.ArrayList; 12import java.util.ArrayList;
13import java.util.Collection; 13import java.util.Collection;
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/QueryCriterion.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/QueryCriterion.java
index e15e4e41..82dd8712 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/QueryCriterion.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/QueryCriterion.java
@@ -5,14 +5,14 @@
5 */ 5 */
6package tools.refinery.store.dse.transition.objectives; 6package tools.refinery.store.dse.transition.objectives;
7 7
8import tools.refinery.logic.dnf.AnyQuery;
9import tools.refinery.logic.literal.Reduction;
8import tools.refinery.store.model.Model; 10import tools.refinery.store.model.Model;
9import tools.refinery.store.model.ModelStore; 11import tools.refinery.store.model.ModelStore;
10import tools.refinery.store.model.ModelStoreBuilder; 12import tools.refinery.store.model.ModelStoreBuilder;
11import tools.refinery.store.query.ModelQueryAdapter; 13import tools.refinery.store.query.ModelQueryAdapter;
12import tools.refinery.store.query.ModelQueryBuilder; 14import tools.refinery.store.query.ModelQueryBuilder;
13import tools.refinery.store.query.ModelQueryStoreAdapter; 15import tools.refinery.store.query.ModelQueryStoreAdapter;
14import tools.refinery.store.query.dnf.AnyQuery;
15import tools.refinery.store.query.literal.Reduction;
16 16
17public class QueryCriterion implements Criterion { 17public class QueryCriterion implements Criterion {
18 protected final boolean satisfiedIfHasMatch; 18 protected final boolean satisfiedIfHasMatch;
diff --git a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/QueryObjective.java b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/QueryObjective.java
index 5a7ba8f4..1fa6327e 100644
--- a/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/QueryObjective.java
+++ b/subprojects/store-dse/src/main/java/tools/refinery/store/dse/transition/objectives/QueryObjective.java
@@ -9,7 +9,7 @@ import tools.refinery.store.model.Model;
9import tools.refinery.store.model.ModelStoreBuilder; 9import tools.refinery.store.model.ModelStoreBuilder;
10import tools.refinery.store.query.ModelQueryAdapter; 10import tools.refinery.store.query.ModelQueryAdapter;
11import tools.refinery.store.query.ModelQueryBuilder; 11import tools.refinery.store.query.ModelQueryBuilder;
12import tools.refinery.store.query.dnf.FunctionalQuery; 12import tools.refinery.logic.dnf.FunctionalQuery;
13 13
14public class QueryObjective implements Objective { 14public class QueryObjective implements Objective {
15 protected final FunctionalQuery<? extends Number> objectiveFunction; 15 protected final FunctionalQuery<? extends Number> objectiveFunction;
diff --git a/subprojects/store-dse/src/test/java/tools/refinery/store/dse/CRAExamplesTest.java b/subprojects/store-dse/src/test/java/tools/refinery/store/dse/CRAExamplesTest.java
index fa0b3c73..7502f350 100644
--- a/subprojects/store-dse/src/test/java/tools/refinery/store/dse/CRAExamplesTest.java
+++ b/subprojects/store-dse/src/test/java/tools/refinery/store/dse/CRAExamplesTest.java
@@ -18,9 +18,9 @@ import tools.refinery.store.dse.transition.objectives.Criteria;
18import tools.refinery.store.dse.transition.objectives.Objectives; 18import tools.refinery.store.dse.transition.objectives.Objectives;
19import tools.refinery.store.model.ModelStore; 19import tools.refinery.store.model.ModelStore;
20import tools.refinery.store.query.ModelQueryAdapter; 20import tools.refinery.store.query.ModelQueryAdapter;
21import tools.refinery.store.query.dnf.Query; 21import tools.refinery.logic.dnf.Query;
22import tools.refinery.store.query.dnf.RelationalQuery; 22import tools.refinery.logic.dnf.RelationalQuery;
23import tools.refinery.store.query.term.Variable; 23import tools.refinery.logic.term.Variable;
24import tools.refinery.store.query.interpreter.QueryInterpreterAdapter; 24import tools.refinery.store.query.interpreter.QueryInterpreterAdapter;
25import tools.refinery.store.query.view.AnySymbolView; 25import tools.refinery.store.query.view.AnySymbolView;
26import tools.refinery.store.query.view.KeyOnlyView; 26import tools.refinery.store.query.view.KeyOnlyView;
@@ -36,7 +36,7 @@ import static tools.refinery.store.dse.modification.actions.ModificationActionLi
36import static tools.refinery.store.dse.modification.actions.ModificationActionLiterals.delete; 36import static tools.refinery.store.dse.modification.actions.ModificationActionLiterals.delete;
37import static tools.refinery.store.dse.transition.actions.ActionLiterals.add; 37import static tools.refinery.store.dse.transition.actions.ActionLiterals.add;
38import static tools.refinery.store.dse.transition.actions.ActionLiterals.remove; 38import static tools.refinery.store.dse.transition.actions.ActionLiterals.remove;
39import static tools.refinery.store.query.literal.Literals.not; 39import static tools.refinery.logic.literal.Literals.not;
40 40
41class CRAExamplesTest { 41class CRAExamplesTest {
42 private static final Symbol<String> name = Symbol.of("Name", 1, String.class); 42 private static final Symbol<String> name = Symbol.of("Name", 1, String.class);
diff --git a/subprojects/store-dse/src/test/java/tools/refinery/store/dse/transition/TransitionTests.java b/subprojects/store-dse/src/test/java/tools/refinery/store/dse/transition/TransitionTests.java
index a79547ec..eb0ca8f9 100644
--- a/subprojects/store-dse/src/test/java/tools/refinery/store/dse/transition/TransitionTests.java
+++ b/subprojects/store-dse/src/test/java/tools/refinery/store/dse/transition/TransitionTests.java
@@ -6,17 +6,17 @@
6package tools.refinery.store.dse.transition; 6package tools.refinery.store.dse.transition;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.logic.dnf.FunctionalQuery;
10import tools.refinery.logic.dnf.Query;
11import tools.refinery.logic.dnf.RelationalQuery;
12import tools.refinery.logic.term.Variable;
13import tools.refinery.logic.term.int_.IntTerms;
9import tools.refinery.store.dse.modification.ModificationAdapter; 14import tools.refinery.store.dse.modification.ModificationAdapter;
10import tools.refinery.store.dse.transition.objectives.Criteria; 15import tools.refinery.store.dse.transition.objectives.Criteria;
11import tools.refinery.store.dse.transition.objectives.Objectives; 16import tools.refinery.store.dse.transition.objectives.Objectives;
12import tools.refinery.store.model.Model; 17import tools.refinery.store.model.Model;
13import tools.refinery.store.model.ModelStore; 18import tools.refinery.store.model.ModelStore;
14import tools.refinery.store.query.ModelQueryAdapter; 19import tools.refinery.store.query.ModelQueryAdapter;
15import tools.refinery.store.query.dnf.FunctionalQuery;
16import tools.refinery.store.query.dnf.Query;
17import tools.refinery.store.query.dnf.RelationalQuery;
18import tools.refinery.store.query.term.Variable;
19import tools.refinery.store.query.term.int_.IntTerms;
20import tools.refinery.store.query.interpreter.QueryInterpreterAdapter; 20import tools.refinery.store.query.interpreter.QueryInterpreterAdapter;
21import tools.refinery.store.query.view.AnySymbolView; 21import tools.refinery.store.query.view.AnySymbolView;
22import tools.refinery.store.query.view.KeyOnlyView; 22import tools.refinery.store.query.view.KeyOnlyView;
@@ -27,8 +27,8 @@ import tools.refinery.store.tuple.Tuple;
27import java.util.List; 27import java.util.List;
28 28
29import static org.junit.jupiter.api.Assertions.*; 29import static org.junit.jupiter.api.Assertions.*;
30import static tools.refinery.store.query.literal.Literals.check; 30import static tools.refinery.logic.literal.Literals.check;
31import static tools.refinery.store.query.literal.Literals.not; 31import static tools.refinery.logic.literal.Literals.not;
32 32
33class TransitionBuildTests { 33class TransitionBuildTests {
34 Symbol<Boolean> person = new Symbol<>("Person", 1, Boolean.class, false); 34 Symbol<Boolean> person = new Symbol<>("Person", 1, Boolean.class, false);
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/QueryInterpreterBuilder.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/QueryInterpreterBuilder.java
index 6e167d0d..010164e2 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/QueryInterpreterBuilder.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/QueryInterpreterBuilder.java
@@ -7,9 +7,9 @@ package tools.refinery.store.query.interpreter;
7 7
8import tools.refinery.store.model.ModelStore; 8import tools.refinery.store.model.ModelStore;
9import tools.refinery.store.query.ModelQueryBuilder; 9import tools.refinery.store.query.ModelQueryBuilder;
10import tools.refinery.store.query.dnf.AnyQuery; 10import tools.refinery.logic.dnf.AnyQuery;
11import tools.refinery.store.query.dnf.Dnf; 11import tools.refinery.logic.dnf.Dnf;
12import tools.refinery.store.query.rewriter.DnfRewriter; 12import tools.refinery.logic.rewriter.DnfRewriter;
13import tools.refinery.interpreter.api.InterpreterEngineOptions; 13import tools.refinery.interpreter.api.InterpreterEngineOptions;
14import tools.refinery.interpreter.matchers.backend.IQueryBackendFactory; 14import tools.refinery.interpreter.matchers.backend.IQueryBackendFactory;
15import tools.refinery.interpreter.matchers.backend.QueryEvaluationHint; 15import tools.refinery.interpreter.matchers.backend.QueryEvaluationHint;
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterAdapterImpl.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterAdapterImpl.java
index ee527fd3..c5423223 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterAdapterImpl.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterAdapterImpl.java
@@ -7,10 +7,10 @@ package tools.refinery.store.query.interpreter.internal;
7 7
8import tools.refinery.store.model.Model; 8import tools.refinery.store.model.Model;
9import tools.refinery.store.model.ModelListener; 9import tools.refinery.store.model.ModelListener;
10import tools.refinery.store.query.dnf.AnyQuery; 10import tools.refinery.logic.dnf.AnyQuery;
11import tools.refinery.store.query.dnf.FunctionalQuery; 11import tools.refinery.logic.dnf.FunctionalQuery;
12import tools.refinery.store.query.dnf.Query; 12import tools.refinery.logic.dnf.Query;
13import tools.refinery.store.query.dnf.RelationalQuery; 13import tools.refinery.logic.dnf.RelationalQuery;
14import tools.refinery.store.query.resultset.AnyResultSet; 14import tools.refinery.store.query.resultset.AnyResultSet;
15import tools.refinery.store.query.resultset.EmptyResultSet; 15import tools.refinery.store.query.resultset.EmptyResultSet;
16import tools.refinery.store.query.resultset.ResultSet; 16import tools.refinery.store.query.resultset.ResultSet;
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterBuilderImpl.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterBuilderImpl.java
index 4e839b43..1791e626 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterBuilderImpl.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterBuilderImpl.java
@@ -9,12 +9,12 @@ import org.eclipse.emf.ecore.EPackage;
9import tools.refinery.interpreter.rete.recipes.RecipesPackage; 9import tools.refinery.interpreter.rete.recipes.RecipesPackage;
10import tools.refinery.store.adapter.AbstractModelAdapterBuilder; 10import tools.refinery.store.adapter.AbstractModelAdapterBuilder;
11import tools.refinery.store.model.ModelStore; 11import tools.refinery.store.model.ModelStore;
12import tools.refinery.store.query.dnf.AnyQuery; 12import tools.refinery.logic.dnf.AnyQuery;
13import tools.refinery.store.query.dnf.Dnf; 13import tools.refinery.logic.dnf.Dnf;
14import tools.refinery.store.query.rewriter.CompositeRewriter; 14import tools.refinery.logic.rewriter.CompositeRewriter;
15import tools.refinery.store.query.rewriter.DnfRewriter; 15import tools.refinery.logic.rewriter.DnfRewriter;
16import tools.refinery.store.query.rewriter.DuplicateDnfRemover; 16import tools.refinery.logic.rewriter.DuplicateDnfRemover;
17import tools.refinery.store.query.rewriter.InputParameterResolver; 17import tools.refinery.logic.rewriter.InputParameterResolver;
18import tools.refinery.store.query.interpreter.QueryInterpreterBuilder; 18import tools.refinery.store.query.interpreter.QueryInterpreterBuilder;
19import tools.refinery.store.query.interpreter.internal.localsearch.FlatCostFunction; 19import tools.refinery.store.query.interpreter.internal.localsearch.FlatCostFunction;
20import tools.refinery.store.query.interpreter.internal.matcher.RawPatternMatcher; 20import tools.refinery.store.query.interpreter.internal.matcher.RawPatternMatcher;
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterStoreAdapterImpl.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterStoreAdapterImpl.java
index 10e7a402..d1ec3e3e 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterStoreAdapterImpl.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/QueryInterpreterStoreAdapterImpl.java
@@ -11,8 +11,8 @@ import tools.refinery.interpreter.api.InterpreterEngineOptions;
11import tools.refinery.interpreter.matchers.context.IInputKey; 11import tools.refinery.interpreter.matchers.context.IInputKey;
12import tools.refinery.store.model.Model; 12import tools.refinery.store.model.Model;
13import tools.refinery.store.model.ModelStore; 13import tools.refinery.store.model.ModelStore;
14import tools.refinery.store.query.dnf.AnyQuery; 14import tools.refinery.logic.dnf.AnyQuery;
15import tools.refinery.store.query.dnf.Query; 15import tools.refinery.logic.dnf.Query;
16import tools.refinery.store.query.interpreter.QueryInterpreterStoreAdapter; 16import tools.refinery.store.query.interpreter.QueryInterpreterStoreAdapter;
17import tools.refinery.store.query.interpreter.internal.matcher.RawPatternMatcher; 17import tools.refinery.store.query.interpreter.internal.matcher.RawPatternMatcher;
18import tools.refinery.store.query.view.AnySymbolView; 18import tools.refinery.store.query.view.AnySymbolView;
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/context/RelationalQueryMetaContext.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/context/RelationalQueryMetaContext.java
index 2b1ff2b4..117e81ba 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/context/RelationalQueryMetaContext.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/context/RelationalQueryMetaContext.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 */
@@ -48,7 +48,7 @@ public class RelationalQueryMetaContext extends AbstractQueryMetaContext {
48 } 48 }
49 var symbolView = checkKey(implyingKey); 49 var symbolView = checkKey(implyingKey);
50 var relationViewImplications = symbolView.getImpliedRelationViews(); 50 var relationViewImplications = symbolView.getImpliedRelationViews();
51 var inputKeyImplications = new HashSet<InputKeyImplication>(relationViewImplications.size()); 51 var inputKeyImplications = HashSet.<InputKeyImplication>newHashSet(relationViewImplications.size());
52 for (var relationViewImplication : relationViewImplications) { 52 for (var relationViewImplication : relationViewImplications) {
53 if (!symbolView.equals(relationViewImplication.implyingView())) { 53 if (!symbolView.equals(relationViewImplication.implyingView())) {
54 throw new IllegalArgumentException("Relation view %s returned unrelated implication %s".formatted( 54 throw new IllegalArgumentException("Relation view %s returned unrelated implication %s".formatted(
@@ -82,7 +82,7 @@ public class RelationalQueryMetaContext extends AbstractQueryMetaContext {
82 } 82 }
83 var relationView = checkKey(key); 83 var relationView = checkKey(key);
84 var functionalDependencies = relationView.getFunctionalDependencies(); 84 var functionalDependencies = relationView.getFunctionalDependencies();
85 var flattened = new HashMap<Set<Integer>, Set<Integer>>(functionalDependencies.size()); 85 var flattened = HashMap.<Set<Integer>, Set<Integer>>newHashMap(functionalDependencies.size());
86 for (var functionalDependency : functionalDependencies) { 86 for (var functionalDependency : functionalDependencies) {
87 var forEach = functionalDependency.forEach(); 87 var forEach = functionalDependency.forEach();
88 checkValidIndices(relationView, forEach); 88 checkValidIndices(relationView, forEach);
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/AbstractInterpretedMatcher.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/AbstractInterpretedMatcher.java
index 8cec0bf6..8e6a74ed 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/AbstractInterpretedMatcher.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/AbstractInterpretedMatcher.java
@@ -7,7 +7,7 @@ package tools.refinery.store.query.interpreter.internal.matcher;
7 7
8import tools.refinery.interpreter.matchers.backend.IQueryResultProvider; 8import tools.refinery.interpreter.matchers.backend.IQueryResultProvider;
9import tools.refinery.interpreter.matchers.backend.IUpdateable; 9import tools.refinery.interpreter.matchers.backend.IUpdateable;
10import tools.refinery.store.query.dnf.Query; 10import tools.refinery.logic.dnf.Query;
11import tools.refinery.store.query.resultset.AbstractResultSet; 11import tools.refinery.store.query.resultset.AbstractResultSet;
12import tools.refinery.store.query.interpreter.internal.QueryInterpreterAdapterImpl; 12import tools.refinery.store.query.interpreter.internal.QueryInterpreterAdapterImpl;
13 13
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/InterpretedFunctionalMatcher.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/InterpretedFunctionalMatcher.java
index 249664a4..bf707487 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/InterpretedFunctionalMatcher.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/InterpretedFunctionalMatcher.java
@@ -11,7 +11,7 @@ import tools.refinery.interpreter.matchers.tuple.Tuples;
11import tools.refinery.interpreter.rete.index.IterableIndexer; 11import tools.refinery.interpreter.rete.index.IterableIndexer;
12import tools.refinery.interpreter.rete.matcher.RetePatternMatcher; 12import tools.refinery.interpreter.rete.matcher.RetePatternMatcher;
13import tools.refinery.store.map.Cursor; 13import tools.refinery.store.map.Cursor;
14import tools.refinery.store.query.dnf.FunctionalQuery; 14import tools.refinery.logic.dnf.FunctionalQuery;
15import tools.refinery.store.query.interpreter.internal.QueryInterpreterAdapterImpl; 15import tools.refinery.store.query.interpreter.internal.QueryInterpreterAdapterImpl;
16import tools.refinery.store.tuple.Tuple; 16import tools.refinery.store.tuple.Tuple;
17 17
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/InterpretedRelationalMatcher.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/InterpretedRelationalMatcher.java
index 9278b46d..9d9c3042 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/InterpretedRelationalMatcher.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/matcher/InterpretedRelationalMatcher.java
@@ -12,7 +12,7 @@ import tools.refinery.interpreter.rete.index.Indexer;
12import tools.refinery.interpreter.rete.matcher.RetePatternMatcher; 12import tools.refinery.interpreter.rete.matcher.RetePatternMatcher;
13import tools.refinery.store.map.Cursor; 13import tools.refinery.store.map.Cursor;
14import tools.refinery.store.map.Cursors; 14import tools.refinery.store.map.Cursors;
15import tools.refinery.store.query.dnf.RelationalQuery; 15import tools.refinery.logic.dnf.RelationalQuery;
16import tools.refinery.store.query.interpreter.internal.QueryInterpreterAdapterImpl; 16import tools.refinery.store.query.interpreter.internal.QueryInterpreterAdapterImpl;
17import tools.refinery.store.tuple.Tuple; 17import tools.refinery.store.tuple.Tuple;
18 18
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/CheckEvaluator.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/CheckEvaluator.java
index 4a71e879..8cfc2226 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/CheckEvaluator.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/CheckEvaluator.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.query.interpreter.internal.pquery; 6package tools.refinery.store.query.interpreter.internal.pquery;
7 7
8import tools.refinery.interpreter.matchers.psystem.IValueProvider; 8import tools.refinery.interpreter.matchers.psystem.IValueProvider;
9import tools.refinery.store.query.term.Term; 9import tools.refinery.logic.term.Term;
10 10
11class CheckEvaluator extends TermEvaluator<Boolean> { 11class CheckEvaluator extends TermEvaluator<Boolean> {
12 public CheckEvaluator(Term<Boolean> term) { 12 public CheckEvaluator(Term<Boolean> term) {
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/Dnf2PQuery.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/Dnf2PQuery.java
index 4d30f998..0ffaa6b2 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/Dnf2PQuery.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/Dnf2PQuery.java
@@ -22,18 +22,18 @@ import tools.refinery.interpreter.matchers.psystem.queries.PParameterDirection;
22import tools.refinery.interpreter.matchers.psystem.queries.PQuery; 22import tools.refinery.interpreter.matchers.psystem.queries.PQuery;
23import tools.refinery.interpreter.matchers.tuple.Tuple; 23import tools.refinery.interpreter.matchers.tuple.Tuple;
24import tools.refinery.interpreter.matchers.tuple.Tuples; 24import tools.refinery.interpreter.matchers.tuple.Tuples;
25import tools.refinery.store.query.Constraint; 25import tools.refinery.logic.Constraint;
26import tools.refinery.store.query.dnf.Dnf; 26import tools.refinery.logic.dnf.Dnf;
27import tools.refinery.store.query.dnf.DnfClause; 27import tools.refinery.logic.dnf.DnfClause;
28import tools.refinery.store.query.dnf.FunctionalDependency; 28import tools.refinery.logic.dnf.FunctionalDependency;
29import tools.refinery.store.query.dnf.SymbolicParameter; 29import tools.refinery.logic.dnf.SymbolicParameter;
30import tools.refinery.store.query.literal.*; 30import tools.refinery.logic.literal.*;
31import tools.refinery.store.query.term.ConstantTerm; 31import tools.refinery.logic.term.ConstantTerm;
32import tools.refinery.store.query.term.StatefulAggregator; 32import tools.refinery.logic.term.StatefulAggregator;
33import tools.refinery.store.query.term.StatelessAggregator; 33import tools.refinery.logic.term.StatelessAggregator;
34import tools.refinery.store.query.term.Variable; 34import tools.refinery.logic.term.Variable;
35import tools.refinery.logic.util.CycleDetectingMapper;
35import tools.refinery.store.query.view.AnySymbolView; 36import tools.refinery.store.query.view.AnySymbolView;
36import tools.refinery.store.util.CycleDetectingMapper;
37 37
38import java.util.ArrayList; 38import java.util.ArrayList;
39import java.util.HashMap; 39import java.util.HashMap;
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/QueryWrapperFactory.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/QueryWrapperFactory.java
index a710dab3..f855f1f0 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/QueryWrapperFactory.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/QueryWrapperFactory.java
@@ -16,15 +16,15 @@ import tools.refinery.interpreter.matchers.psystem.queries.PQuery;
16import tools.refinery.interpreter.matchers.psystem.queries.PVisibility; 16import tools.refinery.interpreter.matchers.psystem.queries.PVisibility;
17import tools.refinery.interpreter.matchers.tuple.Tuple; 17import tools.refinery.interpreter.matchers.tuple.Tuple;
18import tools.refinery.interpreter.matchers.tuple.Tuples; 18import tools.refinery.interpreter.matchers.tuple.Tuples;
19import tools.refinery.store.query.Constraint; 19import tools.refinery.logic.Constraint;
20import tools.refinery.store.query.dnf.Dnf; 20import tools.refinery.logic.dnf.Dnf;
21import tools.refinery.store.query.dnf.DnfUtils; 21import tools.refinery.logic.dnf.DnfUtils;
22import tools.refinery.store.query.literal.AbstractCallLiteral; 22import tools.refinery.logic.literal.AbstractCallLiteral;
23import tools.refinery.store.query.term.ParameterDirection; 23import tools.refinery.logic.term.ParameterDirection;
24import tools.refinery.store.query.term.Variable; 24import tools.refinery.logic.term.Variable;
25import tools.refinery.store.query.view.AnySymbolView; 25import tools.refinery.store.query.view.AnySymbolView;
26import tools.refinery.store.query.view.SymbolView; 26import tools.refinery.store.query.view.SymbolView;
27import tools.refinery.store.util.CycleDetectingMapper; 27import tools.refinery.logic.util.CycleDetectingMapper;
28 28
29import java.util.*; 29import java.util.*;
30import java.util.function.ToIntFunction; 30import java.util.function.ToIntFunction;
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/StatefulMultisetAggregator.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/StatefulMultisetAggregator.java
index 7552117b..936b3513 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/StatefulMultisetAggregator.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/StatefulMultisetAggregator.java
@@ -6,8 +6,8 @@
6package tools.refinery.store.query.interpreter.internal.pquery; 6package tools.refinery.store.query.interpreter.internal.pquery;
7 7
8import tools.refinery.interpreter.matchers.psystem.aggregations.IMultisetAggregationOperator; 8import tools.refinery.interpreter.matchers.psystem.aggregations.IMultisetAggregationOperator;
9import tools.refinery.store.query.term.StatefulAggregate; 9import tools.refinery.logic.term.StatefulAggregate;
10import tools.refinery.store.query.term.StatefulAggregator; 10import tools.refinery.logic.term.StatefulAggregator;
11 11
12import java.util.stream.Stream; 12import java.util.stream.Stream;
13 13
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/StatelessMultisetAggregator.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/StatelessMultisetAggregator.java
index 2da7ba87..01432a5b 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/StatelessMultisetAggregator.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/StatelessMultisetAggregator.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.query.interpreter.internal.pquery; 6package tools.refinery.store.query.interpreter.internal.pquery;
7 7
8import tools.refinery.interpreter.matchers.psystem.aggregations.IMultisetAggregationOperator; 8import tools.refinery.interpreter.matchers.psystem.aggregations.IMultisetAggregationOperator;
9import tools.refinery.store.query.term.StatelessAggregator; 9import tools.refinery.logic.term.StatelessAggregator;
10 10
11import java.util.stream.Stream; 11import java.util.stream.Stream;
12 12
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/TermEvaluator.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/TermEvaluator.java
index ed991091..8da9ece7 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/TermEvaluator.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/TermEvaluator.java
@@ -5,8 +5,8 @@
5 */ 5 */
6package tools.refinery.store.query.interpreter.internal.pquery; 6package tools.refinery.store.query.interpreter.internal.pquery;
7 7
8import tools.refinery.store.query.term.Term; 8import tools.refinery.logic.term.Term;
9import tools.refinery.store.query.term.Variable; 9import tools.refinery.logic.term.Variable;
10import tools.refinery.interpreter.matchers.psystem.IExpressionEvaluator; 10import tools.refinery.interpreter.matchers.psystem.IExpressionEvaluator;
11import tools.refinery.interpreter.matchers.psystem.IValueProvider; 11import tools.refinery.interpreter.matchers.psystem.IValueProvider;
12 12
diff --git a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/ValueProviderBasedValuation.java b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/ValueProviderBasedValuation.java
index 4124c9bb..a69c8bd2 100644
--- a/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/ValueProviderBasedValuation.java
+++ b/subprojects/store-query-interpreter/src/main/java/tools/refinery/store/query/interpreter/internal/pquery/ValueProviderBasedValuation.java
@@ -6,8 +6,8 @@
6package tools.refinery.store.query.interpreter.internal.pquery; 6package tools.refinery.store.query.interpreter.internal.pquery;
7 7
8import tools.refinery.interpreter.matchers.psystem.IValueProvider; 8import tools.refinery.interpreter.matchers.psystem.IValueProvider;
9import tools.refinery.store.query.term.DataVariable; 9import tools.refinery.logic.term.DataVariable;
10import tools.refinery.store.query.valuation.Valuation; 10import tools.refinery.logic.valuation.Valuation;
11 11
12public record ValueProviderBasedValuation(IValueProvider valueProvider) implements Valuation { 12public record ValueProviderBasedValuation(IValueProvider valueProvider) implements Valuation {
13 @Override 13 @Override
diff --git a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/AggregatorBatchingTest.java b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/AggregatorBatchingTest.java
index d8e06d82..209d7ac0 100644
--- a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/AggregatorBatchingTest.java
+++ b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/AggregatorBatchingTest.java
@@ -9,10 +9,10 @@ import org.junit.jupiter.api.Test;
9import tools.refinery.store.model.Model; 9import tools.refinery.store.model.Model;
10import tools.refinery.store.model.ModelStore; 10import tools.refinery.store.model.ModelStore;
11import tools.refinery.store.query.ModelQueryAdapter; 11import tools.refinery.store.query.ModelQueryAdapter;
12import tools.refinery.store.query.dnf.Query; 12import tools.refinery.logic.dnf.Query;
13import tools.refinery.store.query.term.StatefulAggregate; 13import tools.refinery.logic.term.StatefulAggregate;
14import tools.refinery.store.query.term.StatefulAggregator; 14import tools.refinery.logic.term.StatefulAggregator;
15import tools.refinery.store.query.term.Variable; 15import tools.refinery.logic.term.Variable;
16import tools.refinery.store.query.view.AnySymbolView; 16import tools.refinery.store.query.view.AnySymbolView;
17import tools.refinery.store.query.view.FunctionView; 17import tools.refinery.store.query.view.FunctionView;
18import tools.refinery.store.query.view.KeyOnlyView; 18import tools.refinery.store.query.view.KeyOnlyView;
diff --git a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/DiagonalQueryTest.java b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/DiagonalQueryTest.java
index 76de8679..eba7173b 100644
--- a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/DiagonalQueryTest.java
+++ b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/DiagonalQueryTest.java
@@ -8,8 +8,8 @@ package tools.refinery.store.query.interpreter;
8import tools.refinery.interpreter.matchers.backend.QueryEvaluationHint; 8import tools.refinery.interpreter.matchers.backend.QueryEvaluationHint;
9import tools.refinery.store.model.ModelStore; 9import tools.refinery.store.model.ModelStore;
10import tools.refinery.store.query.ModelQueryAdapter; 10import tools.refinery.store.query.ModelQueryAdapter;
11import tools.refinery.store.query.dnf.Dnf; 11import tools.refinery.logic.dnf.Dnf;
12import tools.refinery.store.query.dnf.Query; 12import tools.refinery.logic.dnf.Query;
13import tools.refinery.store.query.interpreter.tests.QueryEngineTest; 13import tools.refinery.store.query.interpreter.tests.QueryEngineTest;
14import tools.refinery.store.query.view.AnySymbolView; 14import tools.refinery.store.query.view.AnySymbolView;
15import tools.refinery.store.query.view.FunctionView; 15import tools.refinery.store.query.view.FunctionView;
@@ -21,8 +21,8 @@ import java.util.List;
21import java.util.Map; 21import java.util.Map;
22import java.util.Optional; 22import java.util.Optional;
23 23
24import static tools.refinery.store.query.literal.Literals.not; 24import static tools.refinery.logic.literal.Literals.not;
25import static tools.refinery.store.query.term.int_.IntTerms.INT_SUM; 25import static tools.refinery.logic.term.int_.IntTerms.INT_SUM;
26import static tools.refinery.store.query.interpreter.tests.QueryAssertions.assertNullableResults; 26import static tools.refinery.store.query.interpreter.tests.QueryAssertions.assertNullableResults;
27import static tools.refinery.store.query.interpreter.tests.QueryAssertions.assertResults; 27import static tools.refinery.store.query.interpreter.tests.QueryAssertions.assertResults;
28 28
diff --git a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/FunctionalQueryTest.java b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/FunctionalQueryTest.java
index ca1512d8..c845e5ff 100644
--- a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/FunctionalQueryTest.java
+++ b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/FunctionalQueryTest.java
@@ -9,15 +9,15 @@ import tools.refinery.interpreter.matchers.backend.QueryEvaluationHint;
9import tools.refinery.store.map.Cursor; 9import tools.refinery.store.map.Cursor;
10import tools.refinery.store.model.ModelStore; 10import tools.refinery.store.model.ModelStore;
11import tools.refinery.store.query.ModelQueryAdapter; 11import tools.refinery.store.query.ModelQueryAdapter;
12import tools.refinery.store.query.dnf.Query; 12import tools.refinery.logic.dnf.Query;
13import tools.refinery.store.query.term.Variable; 13import tools.refinery.logic.term.Variable;
14import tools.refinery.store.query.interpreter.tests.QueryEngineTest; 14import tools.refinery.store.query.interpreter.tests.QueryEngineTest;
15import tools.refinery.store.query.view.AnySymbolView; 15import tools.refinery.store.query.view.AnySymbolView;
16import tools.refinery.store.query.view.FilteredView; 16import tools.refinery.store.query.view.FilteredView;
17import tools.refinery.store.query.view.FunctionView; 17import tools.refinery.store.query.view.FunctionView;
18import tools.refinery.store.query.view.KeyOnlyView; 18import tools.refinery.store.query.view.KeyOnlyView;
19import tools.refinery.store.representation.Symbol; 19import tools.refinery.store.representation.Symbol;
20import tools.refinery.store.representation.TruthValue; 20import tools.refinery.logic.term.truthvalue.TruthValue;
21import tools.refinery.store.tuple.Tuple; 21import tools.refinery.store.tuple.Tuple;
22 22
23import java.util.List; 23import java.util.List;
@@ -29,8 +29,8 @@ import static org.hamcrest.Matchers.is;
29import static org.hamcrest.Matchers.nullValue; 29import static org.hamcrest.Matchers.nullValue;
30import static org.junit.jupiter.api.Assertions.assertAll; 30import static org.junit.jupiter.api.Assertions.assertAll;
31import static org.junit.jupiter.api.Assertions.assertThrows; 31import static org.junit.jupiter.api.Assertions.assertThrows;
32import static tools.refinery.store.query.literal.Literals.check; 32import static tools.refinery.logic.literal.Literals.check;
33import static tools.refinery.store.query.term.int_.IntTerms.*; 33import static tools.refinery.logic.term.int_.IntTerms.*;
34import static tools.refinery.store.query.interpreter.tests.QueryAssertions.assertNullableResults; 34import static tools.refinery.store.query.interpreter.tests.QueryAssertions.assertNullableResults;
35import static tools.refinery.store.query.interpreter.tests.QueryAssertions.assertResults; 35import static tools.refinery.store.query.interpreter.tests.QueryAssertions.assertResults;
36 36
diff --git a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/LeftJoinTest.java b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/LeftJoinTest.java
index 4c849e9d..6633b3b1 100644
--- a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/LeftJoinTest.java
+++ b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/LeftJoinTest.java
@@ -8,8 +8,8 @@ package tools.refinery.store.query.interpreter;
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.model.ModelStore; 9import tools.refinery.store.model.ModelStore;
10import tools.refinery.store.query.ModelQueryAdapter; 10import tools.refinery.store.query.ModelQueryAdapter;
11import tools.refinery.store.query.dnf.Query; 11import tools.refinery.logic.dnf.Query;
12import tools.refinery.store.query.term.int_.IntTerms; 12import tools.refinery.logic.term.int_.IntTerms;
13import tools.refinery.store.query.view.AnySymbolView; 13import tools.refinery.store.query.view.AnySymbolView;
14import tools.refinery.store.query.view.FunctionView; 14import tools.refinery.store.query.view.FunctionView;
15import tools.refinery.store.query.view.KeyOnlyView; 15import tools.refinery.store.query.view.KeyOnlyView;
diff --git a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/OrderedResultSetTest.java b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/OrderedResultSetTest.java
index 96d0f302..cc3ddc10 100644
--- a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/OrderedResultSetTest.java
+++ b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/OrderedResultSetTest.java
@@ -8,9 +8,9 @@ package tools.refinery.store.query.interpreter;
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.model.ModelStore; 9import tools.refinery.store.model.ModelStore;
10import tools.refinery.store.query.ModelQueryAdapter; 10import tools.refinery.store.query.ModelQueryAdapter;
11import tools.refinery.store.query.dnf.Query; 11import tools.refinery.logic.dnf.Query;
12import tools.refinery.store.query.resultset.OrderedResultSet; 12import tools.refinery.store.query.resultset.OrderedResultSet;
13import tools.refinery.store.query.term.Variable; 13import tools.refinery.logic.term.Variable;
14import tools.refinery.store.query.view.AnySymbolView; 14import tools.refinery.store.query.view.AnySymbolView;
15import tools.refinery.store.query.view.KeyOnlyView; 15import tools.refinery.store.query.view.KeyOnlyView;
16import tools.refinery.store.representation.Symbol; 16import tools.refinery.store.representation.Symbol;
diff --git a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/QueryTest.java b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/QueryTest.java
index 72728dcd..59f43147 100644
--- a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/QueryTest.java
+++ b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/QueryTest.java
@@ -9,26 +9,26 @@ import tools.refinery.interpreter.matchers.backend.QueryEvaluationHint;
9import org.junit.jupiter.api.Test; 9import org.junit.jupiter.api.Test;
10import tools.refinery.store.model.ModelStore; 10import tools.refinery.store.model.ModelStore;
11import tools.refinery.store.query.ModelQueryAdapter; 11import tools.refinery.store.query.ModelQueryAdapter;
12import tools.refinery.store.query.dnf.Dnf; 12import tools.refinery.logic.dnf.Dnf;
13import tools.refinery.store.query.dnf.Query; 13import tools.refinery.logic.dnf.Query;
14import tools.refinery.store.query.term.ParameterDirection; 14import tools.refinery.logic.term.ParameterDirection;
15import tools.refinery.store.query.term.Variable; 15import tools.refinery.logic.term.Variable;
16import tools.refinery.store.query.interpreter.tests.QueryEngineTest; 16import tools.refinery.store.query.interpreter.tests.QueryEngineTest;
17import tools.refinery.store.query.view.AnySymbolView; 17import tools.refinery.store.query.view.AnySymbolView;
18import tools.refinery.store.query.view.FilteredView; 18import tools.refinery.store.query.view.FilteredView;
19import tools.refinery.store.query.view.FunctionView; 19import tools.refinery.store.query.view.FunctionView;
20import tools.refinery.store.query.view.KeyOnlyView; 20import tools.refinery.store.query.view.KeyOnlyView;
21import tools.refinery.store.representation.Symbol; 21import tools.refinery.store.representation.Symbol;
22import tools.refinery.store.representation.TruthValue; 22import tools.refinery.logic.term.truthvalue.TruthValue;
23import tools.refinery.store.tuple.Tuple; 23import tools.refinery.store.tuple.Tuple;
24 24
25import java.util.List; 25import java.util.List;
26import java.util.Map; 26import java.util.Map;
27 27
28import static tools.refinery.store.query.literal.Literals.check; 28import static tools.refinery.logic.literal.Literals.check;
29import static tools.refinery.store.query.literal.Literals.not; 29import static tools.refinery.logic.literal.Literals.not;
30import static tools.refinery.store.query.term.int_.IntTerms.constant; 30import static tools.refinery.logic.term.int_.IntTerms.constant;
31import static tools.refinery.store.query.term.int_.IntTerms.greaterEq; 31import static tools.refinery.logic.term.int_.IntTerms.greaterEq;
32import static tools.refinery.store.query.interpreter.tests.QueryAssertions.assertResults; 32import static tools.refinery.store.query.interpreter.tests.QueryAssertions.assertResults;
33 33
34class QueryTest { 34class QueryTest {
diff --git a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/QueryTransactionTest.java b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/QueryTransactionTest.java
index 1cd05d91..eb1ed68a 100644
--- a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/QueryTransactionTest.java
+++ b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/QueryTransactionTest.java
@@ -9,8 +9,8 @@ import tools.refinery.interpreter.matchers.backend.QueryEvaluationHint;
9import org.junit.jupiter.api.Test; 9import org.junit.jupiter.api.Test;
10import tools.refinery.store.model.ModelStore; 10import tools.refinery.store.model.ModelStore;
11import tools.refinery.store.query.ModelQueryAdapter; 11import tools.refinery.store.query.ModelQueryAdapter;
12import tools.refinery.store.query.dnf.Query; 12import tools.refinery.logic.dnf.Query;
13import tools.refinery.store.query.dnf.RelationalQuery; 13import tools.refinery.logic.dnf.RelationalQuery;
14import tools.refinery.store.query.view.AnySymbolView; 14import tools.refinery.store.query.view.AnySymbolView;
15import tools.refinery.store.query.view.FilteredView; 15import tools.refinery.store.query.view.FilteredView;
16import tools.refinery.store.query.view.FunctionView; 16import tools.refinery.store.query.view.FunctionView;
diff --git a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/StronglyConnectedComponentsTest.java b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/StronglyConnectedComponentsTest.java
index edbd9aff..f8b12d19 100644
--- a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/StronglyConnectedComponentsTest.java
+++ b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/StronglyConnectedComponentsTest.java
@@ -6,11 +6,11 @@
6package tools.refinery.store.query.interpreter; 6package tools.refinery.store.query.interpreter;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.logic.dnf.Query;
10import tools.refinery.logic.literal.Connectivity;
11import tools.refinery.logic.literal.RepresentativeElectionLiteral;
9import tools.refinery.store.model.ModelStore; 12import tools.refinery.store.model.ModelStore;
10import tools.refinery.store.query.ModelQueryAdapter; 13import tools.refinery.store.query.ModelQueryAdapter;
11import tools.refinery.store.query.dnf.Query;
12import tools.refinery.store.query.literal.Connectivity;
13import tools.refinery.store.query.literal.RepresentativeElectionLiteral;
14import tools.refinery.store.query.view.AnySymbolView; 14import tools.refinery.store.query.view.AnySymbolView;
15import tools.refinery.store.query.view.KeyOnlyView; 15import tools.refinery.store.query.view.KeyOnlyView;
16import tools.refinery.store.representation.Symbol; 16import tools.refinery.store.representation.Symbol;
diff --git a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/WeaklyConnectedComponentsTest.java b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/WeaklyConnectedComponentsTest.java
index 3fc85480..95b37f09 100644
--- a/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/WeaklyConnectedComponentsTest.java
+++ b/subprojects/store-query-interpreter/src/test/java/tools/refinery/store/query/interpreter/WeaklyConnectedComponentsTest.java
@@ -6,11 +6,11 @@
6package tools.refinery.store.query.interpreter; 6package tools.refinery.store.query.interpreter;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.logic.dnf.Query;
10import tools.refinery.logic.literal.Connectivity;
11import tools.refinery.logic.literal.RepresentativeElectionLiteral;
9import tools.refinery.store.model.ModelStore; 12import tools.refinery.store.model.ModelStore;
10import tools.refinery.store.query.ModelQueryAdapter; 13import tools.refinery.store.query.ModelQueryAdapter;
11import tools.refinery.store.query.dnf.Query;
12import tools.refinery.store.query.literal.Connectivity;
13import tools.refinery.store.query.literal.RepresentativeElectionLiteral;
14import tools.refinery.store.query.view.AnySymbolView; 14import tools.refinery.store.query.view.AnySymbolView;
15import tools.refinery.store.query.view.KeyOnlyView; 15import tools.refinery.store.query.view.KeyOnlyView;
16import tools.refinery.store.representation.Symbol; 16import tools.refinery.store.representation.Symbol;
diff --git a/subprojects/store-query/build.gradle.kts b/subprojects/store-query/build.gradle.kts
index 4d8e2605..f5cbdebc 100644
--- a/subprojects/store-query/build.gradle.kts
+++ b/subprojects/store-query/build.gradle.kts
@@ -6,10 +6,9 @@
6 6
7plugins { 7plugins {
8 id("tools.refinery.gradle.java-library") 8 id("tools.refinery.gradle.java-library")
9 id("tools.refinery.gradle.java-test-fixtures")
10} 9}
11 10
12dependencies { 11dependencies {
12 api(project(":refinery-logic"))
13 api(project(":refinery-store")) 13 api(project(":refinery-store"))
14 testFixturesApi(libs.hamcrest)
15} 14}
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryAdapter.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryAdapter.java
index 1fa96a07..513825b7 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryAdapter.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryAdapter.java
@@ -6,8 +6,8 @@
6package tools.refinery.store.query; 6package tools.refinery.store.query;
7 7
8import tools.refinery.store.adapter.ModelAdapter; 8import tools.refinery.store.adapter.ModelAdapter;
9import tools.refinery.store.query.dnf.AnyQuery; 9import tools.refinery.logic.dnf.AnyQuery;
10import tools.refinery.store.query.dnf.Query; 10import tools.refinery.logic.dnf.Query;
11import tools.refinery.store.query.resultset.AnyResultSet; 11import tools.refinery.store.query.resultset.AnyResultSet;
12import tools.refinery.store.query.resultset.ResultSet; 12import tools.refinery.store.query.resultset.ResultSet;
13 13
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryBuilder.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryBuilder.java
index 332e6381..71e2c5bf 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryBuilder.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryBuilder.java
@@ -7,8 +7,8 @@ package tools.refinery.store.query;
7 7
8import tools.refinery.store.adapter.ModelAdapterBuilder; 8import tools.refinery.store.adapter.ModelAdapterBuilder;
9import tools.refinery.store.model.ModelStore; 9import tools.refinery.store.model.ModelStore;
10import tools.refinery.store.query.dnf.AnyQuery; 10import tools.refinery.logic.dnf.AnyQuery;
11import tools.refinery.store.query.rewriter.DnfRewriter; 11import tools.refinery.logic.rewriter.DnfRewriter;
12 12
13import java.util.Collection; 13import java.util.Collection;
14import java.util.List; 14import java.util.List;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryStoreAdapter.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryStoreAdapter.java
index 8b67c5c1..fec8c999 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryStoreAdapter.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/ModelQueryStoreAdapter.java
@@ -7,8 +7,8 @@ package tools.refinery.store.query;
7 7
8import tools.refinery.store.adapter.ModelStoreAdapter; 8import tools.refinery.store.adapter.ModelStoreAdapter;
9import tools.refinery.store.model.Model; 9import tools.refinery.store.model.Model;
10import tools.refinery.store.query.dnf.AnyQuery; 10import tools.refinery.logic.dnf.AnyQuery;
11import tools.refinery.store.query.dnf.Query; 11import tools.refinery.logic.dnf.Query;
12import tools.refinery.store.query.view.AnySymbolView; 12import tools.refinery.store.query.view.AnySymbolView;
13 13
14import java.util.Collection; 14import java.util.Collection;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/AbstractResultSet.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/AbstractResultSet.java
index dcfe6cc5..f8290b48 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/AbstractResultSet.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/AbstractResultSet.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.query.resultset; 6package tools.refinery.store.query.resultset;
7 7
8import tools.refinery.store.query.ModelQueryAdapter; 8import tools.refinery.store.query.ModelQueryAdapter;
9import tools.refinery.store.query.dnf.Query; 9import tools.refinery.logic.dnf.Query;
10import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
11 11
12import java.util.ArrayList; 12import java.util.ArrayList;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/AnyResultSet.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/AnyResultSet.java
index 5b75b103..038ca7f9 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/AnyResultSet.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/AnyResultSet.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.query.resultset; 6package tools.refinery.store.query.resultset;
7 7
8import tools.refinery.store.query.ModelQueryAdapter; 8import tools.refinery.store.query.ModelQueryAdapter;
9import tools.refinery.store.query.dnf.AnyQuery; 9import tools.refinery.logic.dnf.AnyQuery;
10 10
11public sealed interface AnyResultSet permits ResultSet { 11public sealed interface AnyResultSet permits ResultSet {
12 ModelQueryAdapter getAdapter(); 12 ModelQueryAdapter getAdapter();
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/EmptyResultSet.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/EmptyResultSet.java
index 991b1e32..daebfe7c 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/EmptyResultSet.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/EmptyResultSet.java
@@ -8,7 +8,7 @@ package tools.refinery.store.query.resultset;
8import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
9import tools.refinery.store.map.Cursors; 9import tools.refinery.store.map.Cursors;
10import tools.refinery.store.query.ModelQueryAdapter; 10import tools.refinery.store.query.ModelQueryAdapter;
11import tools.refinery.store.query.dnf.Query; 11import tools.refinery.logic.dnf.Query;
12import tools.refinery.store.tuple.Tuple; 12import tools.refinery.store.tuple.Tuple;
13 13
14public record EmptyResultSet<T>(ModelQueryAdapter adapter, Query<T> query) implements ResultSet<T> { 14public record EmptyResultSet<T>(ModelQueryAdapter adapter, Query<T> query) implements ResultSet<T> {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/OrderedResultSet.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/OrderedResultSet.java
index df12b967..606e197c 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/OrderedResultSet.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/OrderedResultSet.java
@@ -7,7 +7,7 @@ package tools.refinery.store.query.resultset;
7 7
8import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
9import tools.refinery.store.query.ModelQueryAdapter; 9import tools.refinery.store.query.ModelQueryAdapter;
10import tools.refinery.store.query.dnf.Query; 10import tools.refinery.logic.dnf.Query;
11import tools.refinery.store.query.utils.OrderStatisticTree; 11import tools.refinery.store.query.utils.OrderStatisticTree;
12import tools.refinery.store.tuple.Tuple; 12import tools.refinery.store.tuple.Tuple;
13 13
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/ResultSet.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/ResultSet.java
index a6e99784..e84634ac 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/ResultSet.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/resultset/ResultSet.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.query.resultset; 6package tools.refinery.store.query.resultset;
7 7
8import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
9import tools.refinery.store.query.dnf.Query; 9import tools.refinery.logic.dnf.Query;
10import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
11 11
12public non-sealed interface ResultSet<T> extends AnyResultSet { 12public non-sealed interface ResultSet<T> extends AnyResultSet {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AbstractFunctionView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AbstractFunctionView.java
index f130fa59..d9809991 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AbstractFunctionView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AbstractFunctionView.java
@@ -7,8 +7,8 @@ package tools.refinery.store.query.view;
7 7
8import tools.refinery.store.map.CursorAsIterator; 8import tools.refinery.store.map.CursorAsIterator;
9import tools.refinery.store.model.Model; 9import tools.refinery.store.model.Model;
10import tools.refinery.store.query.dnf.FunctionalDependency; 10import tools.refinery.logic.dnf.FunctionalDependency;
11import tools.refinery.store.query.term.Parameter; 11import tools.refinery.logic.term.Parameter;
12import tools.refinery.store.representation.Symbol; 12import tools.refinery.store.representation.Symbol;
13import tools.refinery.store.tuple.Tuple; 13import tools.refinery.store.tuple.Tuple;
14import tools.refinery.store.tuple.Tuple1; 14import tools.refinery.store.tuple.Tuple1;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AnySymbolView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AnySymbolView.java
index 7e9bf6df..b01c3988 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AnySymbolView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/AnySymbolView.java
@@ -5,10 +5,10 @@
5 */ 5 */
6package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
7 7
8import tools.refinery.logic.dnf.FunctionalDependency;
8import tools.refinery.store.model.Model; 9import tools.refinery.store.model.Model;
9import tools.refinery.store.query.dnf.FunctionalDependency; 10import tools.refinery.logic.Constraint;
10import tools.refinery.store.representation.AnySymbol; 11import tools.refinery.store.representation.AnySymbol;
11import tools.refinery.store.query.Constraint;
12 12
13import java.util.Set; 13import java.util.Set;
14 14
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FilteredView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FilteredView.java
index 924277ed..7ce07442 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FilteredView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FilteredView.java
@@ -5,7 +5,7 @@
5 */ 5 */
6package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.InvalidQueryException;
9import tools.refinery.store.tuple.Tuple; 9import tools.refinery.store.tuple.Tuple;
10import tools.refinery.store.representation.Symbol; 10import tools.refinery.store.representation.Symbol;
11 11
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/ForbiddenView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/ForbiddenView.java
index c312330e..8323ace7 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/ForbiddenView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/ForbiddenView.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
7 7
8import tools.refinery.store.representation.Symbol; 8import tools.refinery.store.representation.Symbol;
9import tools.refinery.store.representation.TruthValue; 9import tools.refinery.logic.term.truthvalue.TruthValue;
10import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
11 11
12public class ForbiddenView extends TuplePreservingView<TruthValue> { 12public class ForbiddenView extends TuplePreservingView<TruthValue> {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java
index 3dfb6777..5585f5f2 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/FunctionView.java
@@ -5,7 +5,7 @@
5 */ 5 */
6package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
7 7
8import tools.refinery.store.query.term.*; 8import tools.refinery.logic.term.*;
9import tools.refinery.store.representation.Symbol; 9import tools.refinery.store.representation.Symbol;
10 10
11import java.util.ArrayList; 11import java.util.ArrayList;
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MayView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MayView.java
index c322e220..3a6cc93b 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MayView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MayView.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
7 7
8import tools.refinery.store.representation.Symbol; 8import tools.refinery.store.representation.Symbol;
9import tools.refinery.store.representation.TruthValue; 9import tools.refinery.logic.term.truthvalue.TruthValue;
10import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
11 11
12public class MayView extends TuplePreservingView<TruthValue> { 12public class MayView extends TuplePreservingView<TruthValue> {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MustView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MustView.java
index 65bb4e4c..af984327 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MustView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/MustView.java
@@ -6,7 +6,7 @@
6package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
7 7
8import tools.refinery.store.representation.Symbol; 8import tools.refinery.store.representation.Symbol;
9import tools.refinery.store.representation.TruthValue; 9import tools.refinery.logic.term.truthvalue.TruthValue;
10import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
11 11
12public class MustView extends TuplePreservingView<TruthValue> { 12public class MustView extends TuplePreservingView<TruthValue> {
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/NodeFunctionView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/NodeFunctionView.java
index fcf11506..01865cbe 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/NodeFunctionView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/NodeFunctionView.java
@@ -5,7 +5,7 @@
5 */ 5 */
6package tools.refinery.store.query.view; 6package tools.refinery.store.query.view;
7 7
8import tools.refinery.store.query.term.Parameter; 8import tools.refinery.logic.term.Parameter;
9import tools.refinery.store.representation.Symbol; 9import tools.refinery.store.representation.Symbol;
10import tools.refinery.store.tuple.Tuple1; 10import tools.refinery.store.tuple.Tuple1;
11 11
diff --git a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/TuplePreservingView.java b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/TuplePreservingView.java
index ed12cd9d..6841488d 100644
--- a/subprojects/store-query/src/main/java/tools/refinery/store/query/view/TuplePreservingView.java
+++ b/subprojects/store-query/src/main/java/tools/refinery/store/query/view/TuplePreservingView.java
@@ -7,7 +7,7 @@ package tools.refinery.store.query.view;
7 7
8import tools.refinery.store.map.CursorAsIterator; 8import tools.refinery.store.map.CursorAsIterator;
9import tools.refinery.store.model.Model; 9import tools.refinery.store.model.Model;
10import tools.refinery.store.query.term.Parameter; 10import tools.refinery.logic.term.Parameter;
11import tools.refinery.store.representation.Symbol; 11import tools.refinery.store.representation.Symbol;
12import tools.refinery.store.tuple.Tuple; 12import tools.refinery.store.tuple.Tuple;
13import tools.refinery.store.tuple.Tuple1; 13import tools.refinery.store.tuple.Tuple1;
diff --git a/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/BoundScopePropagator.java b/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/BoundScopePropagator.java
index ecca6117..3a9efa58 100644
--- a/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/BoundScopePropagator.java
+++ b/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/BoundScopePropagator.java
@@ -13,12 +13,17 @@ import org.eclipse.collections.api.factory.primitive.IntObjectMaps;
13import org.eclipse.collections.api.factory.primitive.IntSets; 13import org.eclipse.collections.api.factory.primitive.IntSets;
14import org.eclipse.collections.api.map.primitive.MutableIntObjectMap; 14import org.eclipse.collections.api.map.primitive.MutableIntObjectMap;
15import org.eclipse.collections.api.set.primitive.MutableIntSet; 15import org.eclipse.collections.api.set.primitive.MutableIntSet;
16import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
17import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
18import tools.refinery.logic.term.uppercardinality.FiniteUpperCardinality;
19import tools.refinery.logic.term.uppercardinality.UnboundedUpperCardinality;
20import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
21import tools.refinery.logic.term.uppercardinality.UpperCardinality;
16import tools.refinery.store.dse.propagation.BoundPropagator; 22import tools.refinery.store.dse.propagation.BoundPropagator;
17import tools.refinery.store.dse.propagation.PropagationResult; 23import tools.refinery.store.dse.propagation.PropagationResult;
18import tools.refinery.store.model.Interpretation; 24import tools.refinery.store.model.Interpretation;
19import tools.refinery.store.model.Model; 25import tools.refinery.store.model.Model;
20import tools.refinery.store.query.ModelQueryAdapter; 26import tools.refinery.store.query.ModelQueryAdapter;
21import tools.refinery.store.representation.cardinality.*;
22import tools.refinery.store.tuple.Tuple; 27import tools.refinery.store.tuple.Tuple;
23 28
24class BoundScopePropagator implements BoundPropagator { 29class BoundScopePropagator implements BoundPropagator {
diff --git a/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/LowerTypeScopePropagator.java b/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/LowerTypeScopePropagator.java
index 702e570f..0700c696 100644
--- a/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/LowerTypeScopePropagator.java
+++ b/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/LowerTypeScopePropagator.java
@@ -5,26 +5,26 @@
5 */ 5 */
6package tools.refinery.store.reasoning.scope; 6package tools.refinery.store.reasoning.scope;
7 7
8import tools.refinery.logic.dnf.AnyQuery;
9import tools.refinery.logic.dnf.Query;
10import tools.refinery.logic.dnf.RelationalQuery;
11import tools.refinery.logic.term.Variable;
12import tools.refinery.logic.term.uppercardinality.UpperCardinality;
13import tools.refinery.logic.term.uppercardinality.UpperCardinalityTerms;
8import tools.refinery.store.dse.transition.DesignSpaceExplorationBuilder; 14import tools.refinery.store.dse.transition.DesignSpaceExplorationBuilder;
9import tools.refinery.store.dse.transition.objectives.Criteria; 15import tools.refinery.store.dse.transition.objectives.Criteria;
10import tools.refinery.store.dse.transition.objectives.Objectives; 16import tools.refinery.store.dse.transition.objectives.Objectives;
11import tools.refinery.store.model.ModelStoreBuilder; 17import tools.refinery.store.model.ModelStoreBuilder;
12import tools.refinery.store.query.dnf.AnyQuery;
13import tools.refinery.store.query.dnf.Query;
14import tools.refinery.store.query.dnf.RelationalQuery;
15import tools.refinery.store.query.term.Variable;
16import tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms;
17import tools.refinery.store.reasoning.ReasoningBuilder; 18import tools.refinery.store.reasoning.ReasoningBuilder;
18import tools.refinery.store.reasoning.literal.CountCandidateLowerBoundLiteral; 19import tools.refinery.store.reasoning.literal.CountCandidateLowerBoundLiteral;
19import tools.refinery.store.reasoning.literal.CountUpperBoundLiteral; 20import tools.refinery.store.reasoning.literal.CountUpperBoundLiteral;
20import tools.refinery.store.reasoning.representation.PartialRelation; 21import tools.refinery.store.reasoning.representation.PartialRelation;
21import tools.refinery.store.representation.cardinality.UpperCardinality;
22 22
23import java.util.Collection; 23import java.util.Collection;
24import java.util.List; 24import java.util.List;
25 25
26import static tools.refinery.store.query.literal.Literals.check; 26import static tools.refinery.logic.literal.Literals.check;
27import static tools.refinery.store.query.term.int_.IntTerms.*; 27import static tools.refinery.logic.term.int_.IntTerms.*;
28import static tools.refinery.store.reasoning.literal.PartialLiterals.may; 28import static tools.refinery.store.reasoning.literal.PartialLiterals.may;
29import static tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator.MULTI_VIEW; 29import static tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator.MULTI_VIEW;
30 30
diff --git a/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/ScopePropagator.java b/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/ScopePropagator.java
index 25b1966c..bfe2ca41 100644
--- a/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/ScopePropagator.java
+++ b/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/ScopePropagator.java
@@ -13,8 +13,8 @@ import tools.refinery.store.reasoning.representation.PartialRelation;
13import tools.refinery.store.reasoning.translator.TranslationException; 13import tools.refinery.store.reasoning.translator.TranslationException;
14import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; 14import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator;
15import tools.refinery.store.representation.Symbol; 15import tools.refinery.store.representation.Symbol;
16import tools.refinery.store.representation.cardinality.CardinalityInterval; 16import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
17import tools.refinery.store.representation.cardinality.FiniteUpperCardinality; 17import tools.refinery.logic.term.uppercardinality.FiniteUpperCardinality;
18 18
19import java.util.*; 19import java.util.*;
20 20
diff --git a/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/TypeScopePropagator.java b/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/TypeScopePropagator.java
index 193c132c..d117b0e2 100644
--- a/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/TypeScopePropagator.java
+++ b/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/TypeScopePropagator.java
@@ -8,8 +8,8 @@ package tools.refinery.store.reasoning.scope;
8import com.google.ortools.linearsolver.MPConstraint; 8import com.google.ortools.linearsolver.MPConstraint;
9import tools.refinery.store.model.ModelStoreBuilder; 9import tools.refinery.store.model.ModelStoreBuilder;
10import tools.refinery.store.query.ModelQueryBuilder; 10import tools.refinery.store.query.ModelQueryBuilder;
11import tools.refinery.store.query.dnf.AnyQuery; 11import tools.refinery.logic.dnf.AnyQuery;
12import tools.refinery.store.query.dnf.RelationalQuery; 12import tools.refinery.logic.dnf.RelationalQuery;
13import tools.refinery.store.query.resultset.ResultSet; 13import tools.refinery.store.query.resultset.ResultSet;
14import tools.refinery.store.tuple.Tuple; 14import tools.refinery.store.tuple.Tuple;
15 15
diff --git a/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/UpperTypeScopePropagator.java b/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/UpperTypeScopePropagator.java
index b2f8d39b..ad56b9bd 100644
--- a/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/UpperTypeScopePropagator.java
+++ b/subprojects/store-reasoning-scope/src/main/java/tools/refinery/store/reasoning/scope/UpperTypeScopePropagator.java
@@ -5,14 +5,14 @@
5 */ 5 */
6package tools.refinery.store.reasoning.scope; 6package tools.refinery.store.reasoning.scope;
7 7
8import tools.refinery.logic.dnf.AnyQuery;
9import tools.refinery.logic.dnf.Query;
10import tools.refinery.logic.dnf.RelationalQuery;
11import tools.refinery.logic.term.Variable;
8import tools.refinery.store.dse.transition.DesignSpaceExplorationBuilder; 12import tools.refinery.store.dse.transition.DesignSpaceExplorationBuilder;
9import tools.refinery.store.dse.transition.objectives.Criteria; 13import tools.refinery.store.dse.transition.objectives.Criteria;
10import tools.refinery.store.dse.transition.objectives.Objectives; 14import tools.refinery.store.dse.transition.objectives.Objectives;
11import tools.refinery.store.model.ModelStoreBuilder; 15import tools.refinery.store.model.ModelStoreBuilder;
12import tools.refinery.store.query.dnf.AnyQuery;
13import tools.refinery.store.query.dnf.Query;
14import tools.refinery.store.query.dnf.RelationalQuery;
15import tools.refinery.store.query.term.Variable;
16import tools.refinery.store.reasoning.ReasoningBuilder; 16import tools.refinery.store.reasoning.ReasoningBuilder;
17import tools.refinery.store.reasoning.literal.CountCandidateUpperBoundLiteral; 17import tools.refinery.store.reasoning.literal.CountCandidateUpperBoundLiteral;
18import tools.refinery.store.reasoning.literal.CountLowerBoundLiteral; 18import tools.refinery.store.reasoning.literal.CountLowerBoundLiteral;
@@ -21,8 +21,8 @@ import tools.refinery.store.reasoning.representation.PartialRelation;
21import java.util.Collection; 21import java.util.Collection;
22import java.util.List; 22import java.util.List;
23 23
24import static tools.refinery.store.query.literal.Literals.check; 24import static tools.refinery.logic.literal.Literals.check;
25import static tools.refinery.store.query.term.int_.IntTerms.*; 25import static tools.refinery.logic.term.int_.IntTerms.*;
26import static tools.refinery.store.reasoning.literal.PartialLiterals.must; 26import static tools.refinery.store.reasoning.literal.PartialLiterals.must;
27import static tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator.MULTI_VIEW; 27import static tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator.MULTI_VIEW;
28 28
diff --git a/subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/MultiObjectTest.java b/subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/MultiObjectTest.java
index 97b9fa5e..2b8b4557 100644
--- a/subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/MultiObjectTest.java
+++ b/subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/MultiObjectTest.java
@@ -20,9 +20,9 @@ import tools.refinery.store.reasoning.seed.ModelSeed;
20import tools.refinery.store.reasoning.translator.PartialRelationTranslator; 20import tools.refinery.store.reasoning.translator.PartialRelationTranslator;
21import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; 21import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator;
22import tools.refinery.store.representation.Symbol; 22import tools.refinery.store.representation.Symbol;
23import tools.refinery.store.representation.TruthValue; 23import tools.refinery.logic.term.truthvalue.TruthValue;
24import tools.refinery.store.representation.cardinality.CardinalityInterval; 24import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
25import tools.refinery.store.representation.cardinality.CardinalityIntervals; 25import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
26import tools.refinery.store.tuple.Tuple; 26import tools.refinery.store.tuple.Tuple;
27 27
28import static org.hamcrest.MatcherAssert.assertThat; 28import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/PredicateScopeTest.java b/subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/PredicateScopeTest.java
index 5ee97ce1..f4d5fb60 100644
--- a/subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/PredicateScopeTest.java
+++ b/subprojects/store-reasoning-scope/src/test/java/tools/refinery/store/reasoning/scope/PredicateScopeTest.java
@@ -9,13 +9,15 @@ import org.junit.jupiter.api.Tag;
9import org.junit.jupiter.api.Test; 9import org.junit.jupiter.api.Test;
10import org.junit.jupiter.params.ParameterizedTest; 10import org.junit.jupiter.params.ParameterizedTest;
11import org.junit.jupiter.params.provider.ValueSource; 11import org.junit.jupiter.params.provider.ValueSource;
12import tools.refinery.logic.dnf.Query;
13import tools.refinery.logic.term.Variable;
14import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
15import tools.refinery.logic.term.truthvalue.TruthValue;
12import tools.refinery.store.dse.propagation.PropagationAdapter; 16import tools.refinery.store.dse.propagation.PropagationAdapter;
13import tools.refinery.store.dse.strategy.BestFirstStoreManager; 17import tools.refinery.store.dse.strategy.BestFirstStoreManager;
14import tools.refinery.store.dse.transition.DesignSpaceExplorationAdapter; 18import tools.refinery.store.dse.transition.DesignSpaceExplorationAdapter;
15import tools.refinery.store.model.ModelStore; 19import tools.refinery.store.model.ModelStore;
16import tools.refinery.store.query.dnf.Query;
17import tools.refinery.store.query.interpreter.QueryInterpreterAdapter; 20import tools.refinery.store.query.interpreter.QueryInterpreterAdapter;
18import tools.refinery.store.query.term.Variable;
19import tools.refinery.store.reasoning.ReasoningAdapter; 21import tools.refinery.store.reasoning.ReasoningAdapter;
20import tools.refinery.store.reasoning.ReasoningStoreAdapter; 22import tools.refinery.store.reasoning.ReasoningStoreAdapter;
21import tools.refinery.store.reasoning.interpretation.PartialInterpretation; 23import tools.refinery.store.reasoning.interpretation.PartialInterpretation;
@@ -27,14 +29,12 @@ import tools.refinery.store.reasoning.translator.containment.ContainmentHierarch
27import tools.refinery.store.reasoning.translator.metamodel.Metamodel; 29import tools.refinery.store.reasoning.translator.metamodel.Metamodel;
28import tools.refinery.store.reasoning.translator.metamodel.MetamodelTranslator; 30import tools.refinery.store.reasoning.translator.metamodel.MetamodelTranslator;
29import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; 31import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator;
30import tools.refinery.store.representation.TruthValue;
31import tools.refinery.store.representation.cardinality.CardinalityIntervals;
32import tools.refinery.store.statecoding.StateCoderAdapter; 32import tools.refinery.store.statecoding.StateCoderAdapter;
33import tools.refinery.store.tuple.Tuple; 33import tools.refinery.store.tuple.Tuple;
34 34
35import static org.hamcrest.MatcherAssert.assertThat; 35import static org.hamcrest.MatcherAssert.assertThat;
36import static org.hamcrest.Matchers.is; 36import static org.hamcrest.Matchers.is;
37import static tools.refinery.store.query.literal.Literals.not; 37import static tools.refinery.logic.literal.Literals.not;
38 38
39class PredicateScopeTest { 39class PredicateScopeTest {
40 private static final PartialRelation index = new PartialRelation("Index", 1); 40 private static final PartialRelation index = new PartialRelation("Index", 1);
diff --git a/subprojects/store-reasoning/build.gradle.kts b/subprojects/store-reasoning/build.gradle.kts
index 068256c2..d1d3c2e5 100644
--- a/subprojects/store-reasoning/build.gradle.kts
+++ b/subprojects/store-reasoning/build.gradle.kts
@@ -10,6 +10,6 @@ plugins {
10 10
11dependencies { 11dependencies {
12 api(project(":refinery-store-dse")) 12 api(project(":refinery-store-dse"))
13 testImplementation(testFixtures(project(":refinery-store-query"))) 13 testImplementation(testFixtures(project(":refinery-logic")))
14 testImplementation(project(":refinery-store-query-interpreter")) 14 testImplementation(project(":refinery-store-query-interpreter"))
15} 15}
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;
8import tools.refinery.store.adapter.ModelAdapterBuilder; 8import tools.refinery.store.adapter.ModelAdapterBuilder;
9import tools.refinery.store.dse.transition.objectives.Objective; 9import tools.refinery.store.dse.transition.objectives.Objective;
10import tools.refinery.store.model.ModelStore; 10import tools.refinery.store.model.ModelStore;
11import tools.refinery.store.query.dnf.Dnf; 11import tools.refinery.logic.dnf.Dnf;
12import tools.refinery.store.query.dnf.FunctionalQuery; 12import tools.refinery.logic.dnf.FunctionalQuery;
13import tools.refinery.store.query.dnf.Query; 13import tools.refinery.logic.dnf.Query;
14import tools.refinery.store.query.dnf.RelationalQuery; 14import tools.refinery.logic.dnf.RelationalQuery;
15import tools.refinery.store.reasoning.literal.Concreteness; 15import tools.refinery.store.reasoning.literal.Concreteness;
16import tools.refinery.store.reasoning.literal.Modality; 16import tools.refinery.store.reasoning.literal.Modality;
17import tools.refinery.store.reasoning.refinement.PartialModelInitializer; 17import 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;
8import tools.refinery.store.dse.transition.actions.AbstractActionLiteral; 8import tools.refinery.store.dse.transition.actions.AbstractActionLiteral;
9import tools.refinery.store.dse.transition.actions.BoundActionLiteral; 9import tools.refinery.store.dse.transition.actions.BoundActionLiteral;
10import tools.refinery.store.model.Model; 10import tools.refinery.store.model.Model;
11import tools.refinery.store.query.term.NodeVariable; 11import tools.refinery.logic.term.NodeVariable;
12import tools.refinery.store.reasoning.ReasoningAdapter; 12import tools.refinery.store.reasoning.ReasoningAdapter;
13import tools.refinery.store.tuple.Tuple; 13import 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;
8import tools.refinery.store.dse.transition.actions.AbstractActionLiteral; 8import tools.refinery.store.dse.transition.actions.AbstractActionLiteral;
9import tools.refinery.store.dse.transition.actions.BoundActionLiteral; 9import tools.refinery.store.dse.transition.actions.BoundActionLiteral;
10import tools.refinery.store.model.Model; 10import tools.refinery.store.model.Model;
11import tools.refinery.store.query.term.NodeVariable; 11import tools.refinery.logic.term.NodeVariable;
12import tools.refinery.store.reasoning.ReasoningAdapter; 12import tools.refinery.store.reasoning.ReasoningAdapter;
13 13
14import java.util.List; 14import 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..79e0237c 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
@@ -8,7 +8,7 @@ package tools.refinery.store.reasoning.actions;
8import tools.refinery.store.dse.transition.actions.AbstractActionLiteral; 8import tools.refinery.store.dse.transition.actions.AbstractActionLiteral;
9import tools.refinery.store.dse.transition.actions.BoundActionLiteral; 9import tools.refinery.store.dse.transition.actions.BoundActionLiteral;
10import tools.refinery.store.model.Model; 10import tools.refinery.store.model.Model;
11import tools.refinery.store.query.term.NodeVariable; 11import tools.refinery.logic.term.NodeVariable;
12import tools.refinery.store.reasoning.ReasoningAdapter; 12import tools.refinery.store.reasoning.ReasoningAdapter;
13import tools.refinery.store.reasoning.representation.PartialSymbol; 13import tools.refinery.store.reasoning.representation.PartialSymbol;
14import tools.refinery.store.tuple.Tuple; 14import tools.refinery.store.tuple.Tuple;
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..7b4c5446 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,10 @@
5 */ 5 */
6package tools.refinery.store.reasoning.actions; 6package tools.refinery.store.reasoning.actions;
7 7
8import tools.refinery.store.query.term.NodeVariable; 8import tools.refinery.logic.term.NodeVariable;
9import tools.refinery.store.reasoning.representation.PartialRelation; 9import tools.refinery.store.reasoning.representation.PartialRelation;
10import tools.refinery.store.reasoning.representation.PartialSymbol; 10import tools.refinery.store.reasoning.representation.PartialSymbol;
11import tools.refinery.store.representation.TruthValue; 11import tools.refinery.logic.term.truthvalue.TruthValue;
12 12
13import java.util.List; 13import java.util.List;
14 14
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 */
6package tools.refinery.store.reasoning.internal; 6package tools.refinery.store.reasoning.internal;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.dnf.Dnf; 9import tools.refinery.logic.dnf.Dnf;
10import tools.refinery.store.query.dnf.DnfBuilder; 10import tools.refinery.logic.dnf.DnfBuilder;
11import tools.refinery.store.query.dnf.DnfClause; 11import tools.refinery.logic.dnf.DnfClause;
12import tools.refinery.store.query.literal.AbstractCallLiteral; 12import tools.refinery.logic.literal.AbstractCallLiteral;
13import tools.refinery.store.query.literal.AbstractCountLiteral; 13import tools.refinery.logic.literal.AbstractCountLiteral;
14import tools.refinery.store.query.literal.CallPolarity; 14import tools.refinery.logic.literal.CallPolarity;
15import tools.refinery.store.query.literal.Literal; 15import tools.refinery.logic.literal.Literal;
16import tools.refinery.store.query.term.Aggregator; 16import tools.refinery.logic.term.Aggregator;
17import tools.refinery.store.query.term.ConstantTerm; 17import tools.refinery.logic.term.ConstantTerm;
18import tools.refinery.store.query.term.Term; 18import tools.refinery.logic.term.Term;
19import tools.refinery.store.query.term.Variable; 19import tools.refinery.logic.term.Variable;
20import tools.refinery.store.query.term.int_.IntTerms; 20import tools.refinery.logic.term.int_.IntTerms;
21import tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms; 21import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
22import tools.refinery.logic.term.uppercardinality.UpperCardinalityTerms;
22import tools.refinery.store.reasoning.ReasoningAdapter; 23import tools.refinery.store.reasoning.ReasoningAdapter;
23import tools.refinery.store.reasoning.literal.*; 24import tools.refinery.store.reasoning.literal.*;
24import tools.refinery.store.reasoning.representation.PartialRelation; 25import tools.refinery.store.reasoning.representation.PartialRelation;
25import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; 26import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator;
26import tools.refinery.store.representation.cardinality.UpperCardinalities;
27 27
28import java.util.*; 28import java.util.*;
29import java.util.function.BinaryOperator; 29import 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 */
6package tools.refinery.store.reasoning.internal; 6package tools.refinery.store.reasoning.internal;
7 7
8import tools.refinery.store.query.dnf.Dnf; 8import tools.refinery.logic.dnf.Dnf;
9import tools.refinery.store.query.rewriter.AbstractRecursiveRewriter; 9import tools.refinery.logic.rewriter.AbstractRecursiveRewriter;
10import tools.refinery.store.reasoning.interpretation.PartialRelationRewriter; 10import tools.refinery.store.reasoning.interpretation.PartialRelationRewriter;
11import tools.refinery.store.reasoning.lifting.DnfLifter; 11import tools.refinery.store.reasoning.lifting.DnfLifter;
12import tools.refinery.store.reasoning.representation.PartialRelation; 12import 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..a287cce3 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
@@ -19,8 +19,8 @@ import tools.refinery.store.reasoning.representation.AnyPartialSymbol;
19import tools.refinery.store.reasoning.representation.PartialSymbol; 19import tools.refinery.store.reasoning.representation.PartialSymbol;
20import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; 20import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator;
21import tools.refinery.store.representation.Symbol; 21import tools.refinery.store.representation.Symbol;
22import tools.refinery.store.representation.cardinality.CardinalityInterval; 22import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
23import tools.refinery.store.representation.cardinality.CardinalityIntervals; 23import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
24import tools.refinery.store.tuple.Tuple; 24import tools.refinery.store.tuple.Tuple;
25import tools.refinery.store.tuple.Tuple1; 25import tools.refinery.store.tuple.Tuple1;
26 26
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;
12import tools.refinery.store.model.ModelStore; 12import tools.refinery.store.model.ModelStore;
13import tools.refinery.store.model.ModelStoreBuilder; 13import tools.refinery.store.model.ModelStoreBuilder;
14import tools.refinery.store.query.ModelQueryBuilder; 14import tools.refinery.store.query.ModelQueryBuilder;
15import tools.refinery.store.query.dnf.Dnf; 15import tools.refinery.logic.dnf.Dnf;
16import tools.refinery.store.query.dnf.FunctionalQuery; 16import tools.refinery.logic.dnf.FunctionalQuery;
17import tools.refinery.store.query.dnf.Query; 17import tools.refinery.logic.dnf.Query;
18import tools.refinery.store.query.dnf.RelationalQuery; 18import tools.refinery.logic.dnf.RelationalQuery;
19import tools.refinery.store.reasoning.ReasoningBuilder; 19import tools.refinery.store.reasoning.ReasoningBuilder;
20import tools.refinery.store.reasoning.interpretation.PartialInterpretation; 20import tools.refinery.store.reasoning.interpretation.PartialInterpretation;
21import tools.refinery.store.reasoning.lifting.DnfLifter; 21import tools.refinery.store.reasoning.lifting.DnfLifter;
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 */
6package tools.refinery.store.reasoning.interpretation; 6package tools.refinery.store.reasoning.interpretation;
7 7
8import tools.refinery.store.query.literal.AbstractCallLiteral; 8import tools.refinery.logic.literal.AbstractCallLiteral;
9import tools.refinery.store.query.literal.Literal; 9import tools.refinery.logic.literal.Literal;
10import tools.refinery.store.query.term.Variable; 10import tools.refinery.logic.term.Variable;
11import tools.refinery.store.reasoning.literal.Concreteness; 11import tools.refinery.store.reasoning.literal.Concreteness;
12import tools.refinery.store.reasoning.literal.Modality; 12import 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;
9import tools.refinery.store.model.ModelStoreBuilder; 9import tools.refinery.store.model.ModelStoreBuilder;
10import tools.refinery.store.query.ModelQueryAdapter; 10import tools.refinery.store.query.ModelQueryAdapter;
11import tools.refinery.store.query.ModelQueryBuilder; 11import tools.refinery.store.query.ModelQueryBuilder;
12import tools.refinery.store.query.dnf.Query; 12import tools.refinery.logic.dnf.Query;
13import tools.refinery.store.query.resultset.ResultSet; 13import tools.refinery.store.query.resultset.ResultSet;
14import tools.refinery.store.reasoning.ReasoningAdapter; 14import tools.refinery.store.reasoning.ReasoningAdapter;
15import tools.refinery.store.reasoning.literal.Concreteness; 15import tools.refinery.store.reasoning.literal.Concreteness;
16import tools.refinery.store.reasoning.representation.PartialSymbol; 16import tools.refinery.store.reasoning.representation.PartialSymbol;
17import tools.refinery.store.representation.TruthValue; 17import tools.refinery.logic.term.truthvalue.TruthValue;
18import tools.refinery.store.tuple.Tuple; 18import tools.refinery.store.tuple.Tuple;
19 19
20import java.util.Set; 20import 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 */
6package tools.refinery.store.reasoning.interpretation; 6package tools.refinery.store.reasoning.interpretation;
7 7
8import tools.refinery.store.query.dnf.RelationalQuery; 8import tools.refinery.logic.dnf.RelationalQuery;
9import tools.refinery.store.query.literal.AbstractCallLiteral; 9import tools.refinery.logic.literal.AbstractCallLiteral;
10import tools.refinery.store.query.literal.Literal; 10import tools.refinery.logic.literal.Literal;
11import tools.refinery.store.query.term.Variable; 11import tools.refinery.logic.term.Variable;
12import tools.refinery.store.reasoning.literal.Concreteness; 12import tools.refinery.store.reasoning.literal.Concreteness;
13import tools.refinery.store.reasoning.literal.Modality; 13import 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 */
6package tools.refinery.store.reasoning.lifting; 6package tools.refinery.store.reasoning.lifting;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.dnf.Dnf; 9import tools.refinery.logic.dnf.Dnf;
10import tools.refinery.store.query.dnf.DnfClause; 10import tools.refinery.logic.dnf.DnfClause;
11import tools.refinery.store.query.literal.*; 11import tools.refinery.logic.literal.*;
12import tools.refinery.store.query.term.NodeVariable; 12import tools.refinery.logic.term.NodeVariable;
13import tools.refinery.store.query.term.ParameterDirection; 13import tools.refinery.logic.term.ParameterDirection;
14import tools.refinery.store.query.term.Variable; 14import tools.refinery.logic.term.Variable;
15import tools.refinery.store.reasoning.ReasoningAdapter; 15import tools.refinery.store.reasoning.ReasoningAdapter;
16import tools.refinery.store.reasoning.literal.Concreteness; 16import tools.refinery.store.reasoning.literal.Concreteness;
17import tools.refinery.store.reasoning.literal.ModalConstraint; 17import 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 */
6package tools.refinery.store.reasoning.lifting; 6package tools.refinery.store.reasoning.lifting;
7 7
8import tools.refinery.store.query.dnf.*; 8import tools.refinery.logic.dnf.*;
9import tools.refinery.store.query.equality.DnfEqualityChecker; 9import tools.refinery.logic.equality.DnfEqualityChecker;
10import tools.refinery.store.query.literal.Literal; 10import tools.refinery.logic.literal.Literal;
11import tools.refinery.store.reasoning.literal.Concreteness; 11import tools.refinery.store.reasoning.literal.Concreteness;
12import tools.refinery.store.reasoning.literal.Modality; 12import 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 */
6package tools.refinery.store.reasoning.literal; 6package tools.refinery.store.reasoning.literal;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.literal.AbstractCallLiteral; 9import tools.refinery.logic.literal.AbstractCallLiteral;
10import tools.refinery.store.query.literal.AbstractCountLiteral; 10import tools.refinery.logic.literal.AbstractCountLiteral;
11import tools.refinery.store.query.literal.Literal; 11import tools.refinery.logic.literal.Literal;
12import tools.refinery.store.query.substitution.Substitution; 12import tools.refinery.logic.substitution.Substitution;
13import tools.refinery.store.query.term.DataVariable; 13import tools.refinery.logic.term.DataVariable;
14import tools.refinery.store.query.term.Variable; 14import tools.refinery.logic.term.Variable;
15 15
16import java.util.List; 16import 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 */
6package tools.refinery.store.reasoning.literal; 6package tools.refinery.store.reasoning.literal;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.literal.AbstractCallLiteral; 9import tools.refinery.logic.literal.AbstractCallLiteral;
10import tools.refinery.store.query.literal.AbstractCountLiteral; 10import tools.refinery.logic.literal.AbstractCountLiteral;
11import tools.refinery.store.query.literal.Literal; 11import tools.refinery.logic.literal.Literal;
12import tools.refinery.store.query.substitution.Substitution; 12import tools.refinery.logic.substitution.Substitution;
13import tools.refinery.store.query.term.DataVariable; 13import tools.refinery.logic.term.DataVariable;
14import tools.refinery.store.query.term.Variable; 14import tools.refinery.logic.term.Variable;
15 15
16import java.util.List; 16import 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 */
6package tools.refinery.store.reasoning.literal; 6package tools.refinery.store.reasoning.literal;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.literal.AbstractCallLiteral; 9import tools.refinery.logic.literal.AbstractCallLiteral;
10import tools.refinery.store.query.literal.AbstractCountLiteral; 10import tools.refinery.logic.literal.AbstractCountLiteral;
11import tools.refinery.store.query.literal.Literal; 11import tools.refinery.logic.literal.Literal;
12import tools.refinery.store.query.substitution.Substitution; 12import tools.refinery.logic.substitution.Substitution;
13import tools.refinery.store.query.term.DataVariable; 13import tools.refinery.logic.term.DataVariable;
14import tools.refinery.store.query.term.Variable; 14import tools.refinery.logic.term.Variable;
15 15
16import java.util.List; 16import 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 */
6package tools.refinery.store.reasoning.literal; 6package tools.refinery.store.reasoning.literal;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.literal.AbstractCallLiteral; 9import tools.refinery.logic.literal.AbstractCallLiteral;
10import tools.refinery.store.query.literal.AbstractCountLiteral; 10import tools.refinery.logic.literal.AbstractCountLiteral;
11import tools.refinery.store.query.literal.Literal; 11import tools.refinery.logic.literal.Literal;
12import tools.refinery.store.query.substitution.Substitution; 12import tools.refinery.logic.substitution.Substitution;
13import tools.refinery.store.query.term.DataVariable; 13import tools.refinery.logic.term.DataVariable;
14import tools.refinery.store.query.term.Variable; 14import tools.refinery.logic.term.Variable;
15import tools.refinery.store.representation.cardinality.UpperCardinalities; 15import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
16import tools.refinery.store.representation.cardinality.UpperCardinality; 16import tools.refinery.logic.term.uppercardinality.UpperCardinality;
17 17
18import java.util.List; 18import 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 */
6package tools.refinery.store.reasoning.literal; 6package tools.refinery.store.reasoning.literal;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.Constraint;
9import tools.refinery.store.query.InvalidQueryException; 9import tools.refinery.logic.InvalidQueryException;
10import tools.refinery.store.query.equality.LiteralEqualityHelper; 10import tools.refinery.logic.equality.LiteralEqualityHelper;
11import tools.refinery.store.query.literal.Reduction; 11import tools.refinery.logic.literal.Reduction;
12import tools.refinery.store.query.term.Parameter; 12import tools.refinery.logic.term.Parameter;
13import tools.refinery.store.query.view.AnySymbolView; 13import tools.refinery.store.query.view.AnySymbolView;
14 14
15import java.util.List; 15import 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 */
6package tools.refinery.store.reasoning.literal; 6package tools.refinery.store.reasoning.literal;
7 7
8import tools.refinery.store.query.literal.CallPolarity; 8
9import tools.refinery.logic.literal.CallPolarity;
9 10
10import java.util.Locale; 11import 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 */
6package tools.refinery.store.reasoning.literal; 6package tools.refinery.store.reasoning.literal;
7 7
8import tools.refinery.store.query.InvalidQueryException; 8import tools.refinery.logic.InvalidQueryException;
9import tools.refinery.store.query.literal.CallLiteral; 9import tools.refinery.logic.literal.CallLiteral;
10 10
11public final class PartialLiterals { 11public final class PartialLiterals {
12 private PartialLiterals() { 12 private PartialLiterals() {
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 */
6package tools.refinery.store.reasoning.representation; 6package tools.refinery.store.reasoning.representation;
7 7
8import tools.refinery.store.representation.AnyAbstractDomain; 8import tools.refinery.logic.AnyAbstractDomain;
9 9
10public sealed interface AnyPartialSymbol permits AnyPartialFunction, PartialSymbol { 10public 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..236be7f8 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
@@ -5,7 +5,7 @@
5 */ 5 */
6package tools.refinery.store.reasoning.representation; 6package tools.refinery.store.reasoning.representation;
7 7
8import tools.refinery.store.representation.AbstractDomain; 8import tools.refinery.logic.AbstractDomain;
9 9
10public record PartialFunction<A, C>(String name, int arity, AbstractDomain<A, C> abstractDomain) 10public record PartialFunction<A, C>(String name, int arity, AbstractDomain<A, C> abstractDomain)
11 implements AnyPartialFunction, PartialSymbol<A, C> { 11 implements AnyPartialFunction, PartialSymbol<A, C> {
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 */
6package tools.refinery.store.reasoning.representation; 6package tools.refinery.store.reasoning.representation;
7 7
8import tools.refinery.store.query.Constraint; 8import tools.refinery.logic.AbstractDomain;
9import tools.refinery.store.query.term.Parameter; 9import tools.refinery.logic.Constraint;
10import tools.refinery.store.representation.AbstractDomain; 10import tools.refinery.logic.term.Parameter;
11import tools.refinery.store.representation.TruthValue; 11import tools.refinery.logic.term.truthvalue.TruthValue;
12import tools.refinery.store.representation.TruthValueDomain; 12import tools.refinery.logic.term.truthvalue.TruthValueDomain;
13 13
14import java.util.Arrays; 14import java.util.Arrays;
15import java.util.List; 15import 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..6986d518 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
@@ -5,7 +5,7 @@
5 */ 5 */
6package tools.refinery.store.reasoning.representation; 6package tools.refinery.store.reasoning.representation;
7 7
8import tools.refinery.store.representation.AbstractDomain; 8import tools.refinery.logic.AbstractDomain;
9 9
10public sealed interface PartialSymbol<A, C> extends AnyPartialSymbol permits PartialFunction, PartialRelation { 10public sealed interface PartialSymbol<A, C> extends AnyPartialSymbol permits PartialFunction, PartialRelation {
11 @Override 11 @Override
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 */
6package tools.refinery.store.reasoning.translator; 6package tools.refinery.store.reasoning.translator;
7 7
8import tools.refinery.logic.Constraint;
9import tools.refinery.logic.dnf.Query;
10import tools.refinery.logic.dnf.QueryBuilder;
11import tools.refinery.logic.dnf.RelationalQuery;
12import tools.refinery.logic.literal.Literal;
13import tools.refinery.logic.term.NodeVariable;
14import tools.refinery.logic.term.truthvalue.TruthValue;
8import tools.refinery.store.dse.transition.Rule; 15import tools.refinery.store.dse.transition.Rule;
9import tools.refinery.store.dse.transition.objectives.Criteria; 16import tools.refinery.store.dse.transition.objectives.Criteria;
10import tools.refinery.store.dse.transition.objectives.Criterion; 17import tools.refinery.store.dse.transition.objectives.Criterion;
11import tools.refinery.store.dse.transition.objectives.Objective; 18import tools.refinery.store.dse.transition.objectives.Objective;
12import tools.refinery.store.dse.transition.objectives.Objectives; 19import tools.refinery.store.dse.transition.objectives.Objectives;
13import tools.refinery.store.model.ModelStoreBuilder; 20import tools.refinery.store.model.ModelStoreBuilder;
14import tools.refinery.store.query.Constraint;
15import tools.refinery.store.query.dnf.Query;
16import tools.refinery.store.query.dnf.QueryBuilder;
17import tools.refinery.store.query.dnf.RelationalQuery;
18import tools.refinery.store.query.literal.Literal;
19import tools.refinery.store.query.term.NodeVariable;
20import tools.refinery.store.query.view.MayView; 21import tools.refinery.store.query.view.MayView;
21import tools.refinery.store.query.view.MustView; 22import tools.refinery.store.query.view.MustView;
22import tools.refinery.store.reasoning.ReasoningAdapter; 23import tools.refinery.store.reasoning.ReasoningAdapter;
@@ -36,12 +37,11 @@ import tools.refinery.store.reasoning.refinement.StorageRefiner;
36import tools.refinery.store.reasoning.representation.PartialRelation; 37import tools.refinery.store.reasoning.representation.PartialRelation;
37import tools.refinery.store.representation.AnySymbol; 38import tools.refinery.store.representation.AnySymbol;
38import tools.refinery.store.representation.Symbol; 39import tools.refinery.store.representation.Symbol;
39import tools.refinery.store.representation.TruthValue;
40 40
41import java.util.ArrayList; 41import java.util.ArrayList;
42import java.util.function.BiConsumer; 42import java.util.function.BiConsumer;
43 43
44import static tools.refinery.store.query.literal.Literals.not; 44import static tools.refinery.logic.literal.Literals.not;
45 45
46@SuppressWarnings("UnusedReturnValue") 46@SuppressWarnings("UnusedReturnValue")
47public final class PartialRelationTranslator extends PartialSymbolTranslator<TruthValue, Boolean> { 47public final class PartialRelationTranslator extends PartialSymbolTranslator<TruthValue, Boolean> {
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 */
6package tools.refinery.store.reasoning.translator.containment; 6package tools.refinery.store.reasoning.translator.containment;
7 7
8import tools.refinery.logic.dnf.Query;
9import tools.refinery.logic.dnf.RelationalQuery;
10import tools.refinery.logic.literal.Connectivity;
11import tools.refinery.logic.literal.Literal;
12import tools.refinery.logic.literal.RepresentativeElectionLiteral;
13import tools.refinery.logic.term.Variable;
14import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
15import tools.refinery.logic.term.uppercardinality.FiniteUpperCardinality;
8import tools.refinery.store.dse.transition.DesignSpaceExplorationBuilder; 16import tools.refinery.store.dse.transition.DesignSpaceExplorationBuilder;
9import tools.refinery.store.dse.transition.Rule; 17import tools.refinery.store.dse.transition.Rule;
10import tools.refinery.store.model.ModelStoreBuilder; 18import tools.refinery.store.model.ModelStoreBuilder;
11import tools.refinery.store.model.ModelStoreConfiguration; 19import tools.refinery.store.model.ModelStoreConfiguration;
12import tools.refinery.store.query.dnf.Query;
13import tools.refinery.store.query.dnf.RelationalQuery;
14import tools.refinery.store.query.literal.Connectivity;
15import tools.refinery.store.query.literal.Literal;
16import tools.refinery.store.query.literal.RepresentativeElectionLiteral;
17import tools.refinery.store.query.term.Variable;
18import tools.refinery.store.query.view.AnySymbolView; 20import tools.refinery.store.query.view.AnySymbolView;
19import tools.refinery.store.reasoning.lifting.DnfLifter; 21import tools.refinery.store.reasoning.lifting.DnfLifter;
20import tools.refinery.store.reasoning.literal.Concreteness; 22import tools.refinery.store.reasoning.literal.Concreteness;
@@ -28,17 +30,15 @@ import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslat
28import tools.refinery.store.reasoning.translator.multiplicity.ConstrainedMultiplicity; 30import tools.refinery.store.reasoning.translator.multiplicity.ConstrainedMultiplicity;
29import tools.refinery.store.reasoning.translator.multiplicity.InvalidMultiplicityErrorTranslator; 31import tools.refinery.store.reasoning.translator.multiplicity.InvalidMultiplicityErrorTranslator;
30import tools.refinery.store.representation.Symbol; 32import tools.refinery.store.representation.Symbol;
31import tools.refinery.store.representation.cardinality.CardinalityIntervals;
32import tools.refinery.store.representation.cardinality.FiniteUpperCardinality;
33 33
34import java.util.ArrayList; 34import java.util.ArrayList;
35import java.util.List; 35import java.util.List;
36import java.util.Map; 36import java.util.Map;
37 37
38import static tools.refinery.store.query.literal.Literals.check; 38import static tools.refinery.logic.term.int_.IntTerms.constant;
39import static tools.refinery.store.query.literal.Literals.not; 39import static tools.refinery.logic.term.int_.IntTerms.less;
40import static tools.refinery.store.query.term.int_.IntTerms.constant; 40import static tools.refinery.logic.literal.Literals.check;
41import static tools.refinery.store.query.term.int_.IntTerms.less; 41import static tools.refinery.logic.literal.Literals.not;
42import static tools.refinery.store.reasoning.ReasoningAdapter.EXISTS_SYMBOL; 42import static tools.refinery.store.reasoning.ReasoningAdapter.EXISTS_SYMBOL;
43import static tools.refinery.store.reasoning.actions.PartialActionLiterals.add; 43import static tools.refinery.store.reasoning.actions.PartialActionLiterals.add;
44import static tools.refinery.store.reasoning.actions.PartialActionLiterals.focus; 44import 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..ef007efc 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;
12import tools.refinery.store.reasoning.representation.PartialRelation; 12import tools.refinery.store.reasoning.representation.PartialRelation;
13import tools.refinery.store.reasoning.representation.PartialSymbol; 13import tools.refinery.store.reasoning.representation.PartialSymbol;
14import tools.refinery.store.representation.Symbol; 14import tools.refinery.store.representation.Symbol;
15import tools.refinery.store.representation.TruthValue; 15import tools.refinery.logic.term.truthvalue.TruthValue;
16import tools.refinery.store.tuple.Tuple; 16import tools.refinery.store.tuple.Tuple;
17 17
18import java.util.ArrayList; 18import java.util.ArrayList;
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..3fe63339 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
@@ -11,7 +11,7 @@ import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRe
11import tools.refinery.store.reasoning.refinement.PartialInterpretationRefiner; 11import tools.refinery.store.reasoning.refinement.PartialInterpretationRefiner;
12import tools.refinery.store.reasoning.representation.PartialSymbol; 12import tools.refinery.store.reasoning.representation.PartialSymbol;
13import tools.refinery.store.representation.Symbol; 13import tools.refinery.store.representation.Symbol;
14import tools.refinery.store.representation.TruthValue; 14import tools.refinery.logic.term.truthvalue.TruthValue;
15import tools.refinery.store.tuple.Tuple; 15import tools.refinery.store.tuple.Tuple;
16 16
17import java.util.LinkedHashMap; 17import java.util.LinkedHashMap;
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..77c7aaf4 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 @@
6package tools.refinery.store.reasoning.translator.containment; 6package tools.refinery.store.reasoning.translator.containment;
7 7
8import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
9import tools.refinery.store.representation.TruthValue; 9import tools.refinery.logic.term.truthvalue.TruthValue;
10 10
11import java.util.Objects; 11import java.util.Objects;
12import java.util.Set; 12import java.util.Set;
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 */
6package tools.refinery.store.reasoning.translator.crossreference; 6package tools.refinery.store.reasoning.translator.crossreference;
7 7
8import tools.refinery.store.query.dnf.Query; 8import tools.refinery.logic.dnf.Query;
9import tools.refinery.store.query.dnf.RelationalQuery; 9import tools.refinery.logic.dnf.RelationalQuery;
10import tools.refinery.store.query.literal.Literal; 10import tools.refinery.logic.literal.Literal;
11import tools.refinery.store.query.term.NodeVariable; 11import tools.refinery.logic.term.NodeVariable;
12import tools.refinery.store.query.term.Variable; 12import tools.refinery.logic.term.Variable;
13import tools.refinery.logic.term.uppercardinality.FiniteUpperCardinality;
13import tools.refinery.store.reasoning.literal.CountLowerBoundLiteral; 14import tools.refinery.store.reasoning.literal.CountLowerBoundLiteral;
14import tools.refinery.store.reasoning.representation.PartialRelation; 15import tools.refinery.store.reasoning.representation.PartialRelation;
15import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; 16import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity;
16import tools.refinery.store.representation.cardinality.FiniteUpperCardinality;
17 17
18import java.util.ArrayList; 18import java.util.ArrayList;
19import java.util.List; 19import java.util.List;
20 20
21import static tools.refinery.store.query.literal.Literals.check; 21import static tools.refinery.logic.literal.Literals.check;
22import static tools.refinery.store.query.term.int_.IntTerms.constant; 22import static tools.refinery.logic.term.int_.IntTerms.constant;
23import static tools.refinery.store.query.term.int_.IntTerms.less; 23import static tools.refinery.logic.term.int_.IntTerms.less;
24import static tools.refinery.store.reasoning.literal.PartialLiterals.may; 24import static tools.refinery.store.reasoning.literal.PartialLiterals.may;
25 25
26class CrossReferenceUtils { 26class 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
8import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
9import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; 9import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity;
10import tools.refinery.store.representation.TruthValue; 10import tools.refinery.logic.term.truthvalue.TruthValue;
11 11
12public record DirectedCrossReferenceInfo(PartialRelation sourceType, Multiplicity sourceMultiplicity, 12public 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;
11import tools.refinery.store.reasoning.representation.PartialRelation; 11import tools.refinery.store.reasoning.representation.PartialRelation;
12import tools.refinery.store.reasoning.seed.ModelSeed; 12import tools.refinery.store.reasoning.seed.ModelSeed;
13import tools.refinery.store.representation.Symbol; 13import tools.refinery.store.representation.Symbol;
14import tools.refinery.store.representation.TruthValue; 14import tools.refinery.logic.term.truthvalue.TruthValue;
15import tools.refinery.store.tuple.Tuple; 15import tools.refinery.store.tuple.Tuple;
16 16
17class DirectedCrossReferenceInitializer implements PartialModelInitializer { 17class 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;
11import tools.refinery.store.reasoning.representation.PartialRelation; 11import tools.refinery.store.reasoning.representation.PartialRelation;
12import tools.refinery.store.reasoning.representation.PartialSymbol; 12import tools.refinery.store.reasoning.representation.PartialSymbol;
13import tools.refinery.store.representation.Symbol; 13import tools.refinery.store.representation.Symbol;
14import tools.refinery.store.representation.TruthValue; 14import tools.refinery.logic.term.truthvalue.TruthValue;
15import tools.refinery.store.tuple.Tuple; 15import tools.refinery.store.tuple.Tuple;
16 16
17class DirectedCrossReferenceRefiner extends ConcreteSymbolRefiner<TruthValue, Boolean> { 17class 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 */
6package tools.refinery.store.reasoning.translator.crossreference; 6package tools.refinery.store.reasoning.translator.crossreference;
7 7
8import tools.refinery.logic.dnf.Query;
9import tools.refinery.logic.dnf.RelationalQuery;
10import tools.refinery.logic.term.truthvalue.TruthValue;
8import tools.refinery.store.dse.propagation.PropagationBuilder; 11import tools.refinery.store.dse.propagation.PropagationBuilder;
9import tools.refinery.store.dse.transition.Rule; 12import tools.refinery.store.dse.transition.Rule;
10import tools.refinery.store.model.ModelStoreBuilder; 13import tools.refinery.store.model.ModelStoreBuilder;
11import tools.refinery.store.model.ModelStoreConfiguration; 14import tools.refinery.store.model.ModelStoreConfiguration;
12import tools.refinery.store.query.dnf.Query;
13import tools.refinery.store.query.dnf.RelationalQuery;
14import tools.refinery.store.query.view.ForbiddenView; 15import tools.refinery.store.query.view.ForbiddenView;
15import tools.refinery.store.reasoning.lifting.DnfLifter; 16import tools.refinery.store.reasoning.lifting.DnfLifter;
16import tools.refinery.store.reasoning.literal.Concreteness; 17import tools.refinery.store.reasoning.literal.Concreteness;
@@ -21,9 +22,8 @@ import tools.refinery.store.reasoning.translator.TranslationException;
21import tools.refinery.store.reasoning.translator.multiplicity.InvalidMultiplicityErrorTranslator; 22import tools.refinery.store.reasoning.translator.multiplicity.InvalidMultiplicityErrorTranslator;
22import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; 23import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity;
23import tools.refinery.store.representation.Symbol; 24import tools.refinery.store.representation.Symbol;
24import tools.refinery.store.representation.TruthValue;
25 25
26import static tools.refinery.store.query.literal.Literals.not; 26import static tools.refinery.logic.literal.Literals.not;
27import static tools.refinery.store.reasoning.actions.PartialActionLiterals.add; 27import static tools.refinery.store.reasoning.actions.PartialActionLiterals.add;
28import static tools.refinery.store.reasoning.actions.PartialActionLiterals.merge; 28import static tools.refinery.store.reasoning.actions.PartialActionLiterals.merge;
29import static tools.refinery.store.reasoning.literal.PartialLiterals.*; 29import 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
8import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
9import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; 9import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity;
10import tools.refinery.store.representation.TruthValue; 10import tools.refinery.logic.term.truthvalue.TruthValue;
11 11
12public record UndirectedCrossReferenceInfo(PartialRelation type, Multiplicity multiplicity, TruthValue defaultValue) { 12public 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..5bb1b967 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;
13import tools.refinery.store.reasoning.seed.ModelSeed; 13import tools.refinery.store.reasoning.seed.ModelSeed;
14import tools.refinery.store.reasoning.translator.TranslationException; 14import tools.refinery.store.reasoning.translator.TranslationException;
15import tools.refinery.store.representation.Symbol; 15import tools.refinery.store.representation.Symbol;
16import tools.refinery.store.representation.TruthValue; 16import tools.refinery.logic.term.truthvalue.TruthValue;
17import tools.refinery.store.tuple.Tuple; 17import tools.refinery.store.tuple.Tuple;
18 18
19import java.util.LinkedHashMap; 19import java.util.LinkedHashMap;
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;
11import tools.refinery.store.reasoning.representation.PartialRelation; 11import tools.refinery.store.reasoning.representation.PartialRelation;
12import tools.refinery.store.reasoning.representation.PartialSymbol; 12import tools.refinery.store.reasoning.representation.PartialSymbol;
13import tools.refinery.store.representation.Symbol; 13import tools.refinery.store.representation.Symbol;
14import tools.refinery.store.representation.TruthValue; 14import tools.refinery.logic.term.truthvalue.TruthValue;
15import tools.refinery.store.tuple.Tuple; 15import tools.refinery.store.tuple.Tuple;
16 16
17class UndirectedCrossReferenceRefiner extends ConcreteSymbolRefiner<TruthValue, Boolean> { 17class 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;
9import tools.refinery.store.dse.transition.Rule; 9import tools.refinery.store.dse.transition.Rule;
10import tools.refinery.store.model.ModelStoreBuilder; 10import tools.refinery.store.model.ModelStoreBuilder;
11import tools.refinery.store.model.ModelStoreConfiguration; 11import tools.refinery.store.model.ModelStoreConfiguration;
12import tools.refinery.store.query.dnf.Query; 12import tools.refinery.logic.dnf.Query;
13import tools.refinery.store.query.view.ForbiddenView; 13import tools.refinery.store.query.view.ForbiddenView;
14import tools.refinery.store.reasoning.lifting.DnfLifter; 14import tools.refinery.store.reasoning.lifting.DnfLifter;
15import tools.refinery.store.reasoning.literal.Concreteness; 15import tools.refinery.store.reasoning.literal.Concreteness;
@@ -19,9 +19,9 @@ import tools.refinery.store.reasoning.translator.PartialRelationTranslator;
19import tools.refinery.store.reasoning.translator.TranslationException; 19import tools.refinery.store.reasoning.translator.TranslationException;
20import tools.refinery.store.reasoning.translator.multiplicity.InvalidMultiplicityErrorTranslator; 20import tools.refinery.store.reasoning.translator.multiplicity.InvalidMultiplicityErrorTranslator;
21import tools.refinery.store.representation.Symbol; 21import tools.refinery.store.representation.Symbol;
22import tools.refinery.store.representation.TruthValue; 22import tools.refinery.logic.term.truthvalue.TruthValue;
23 23
24import static tools.refinery.store.query.literal.Literals.not; 24import static tools.refinery.logic.literal.Literals.not;
25import static tools.refinery.store.reasoning.actions.PartialActionLiterals.add; 25import static tools.refinery.store.reasoning.actions.PartialActionLiterals.add;
26import static tools.refinery.store.reasoning.actions.PartialActionLiterals.merge; 26import static tools.refinery.store.reasoning.actions.PartialActionLiterals.merge;
27import static tools.refinery.store.reasoning.literal.PartialLiterals.*; 27import static tools.refinery.store.reasoning.literal.PartialLiterals.*;
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
8import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
9import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; 9import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity;
10import tools.refinery.store.representation.TruthValue; 10import tools.refinery.logic.term.truthvalue.TruthValue;
11 11
12public record ReferenceInfo(boolean containment, PartialRelation sourceType, Multiplicity multiplicity, 12public 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;
11import tools.refinery.store.reasoning.translator.multiplicity.ConstrainedMultiplicity; 11import tools.refinery.store.reasoning.translator.multiplicity.ConstrainedMultiplicity;
12import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; 12import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity;
13import tools.refinery.store.reasoning.translator.multiplicity.UnconstrainedMultiplicity; 13import tools.refinery.store.reasoning.translator.multiplicity.UnconstrainedMultiplicity;
14import tools.refinery.store.representation.TruthValue; 14import tools.refinery.logic.term.truthvalue.TruthValue;
15import tools.refinery.store.representation.cardinality.CardinalityInterval; 15import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
16 16
17public final class ReferenceInfoBuilder { 17public 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..0b89ec58 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;
10import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner; 10import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner;
11import tools.refinery.store.reasoning.representation.PartialSymbol; 11import tools.refinery.store.reasoning.representation.PartialSymbol;
12import tools.refinery.store.representation.Symbol; 12import tools.refinery.store.representation.Symbol;
13import tools.refinery.store.representation.TruthValue; 13import tools.refinery.logic.term.truthvalue.TruthValue;
14import tools.refinery.store.representation.cardinality.CardinalityInterval; 14import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
15import tools.refinery.store.representation.cardinality.CardinalityIntervals; 15import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
16import tools.refinery.store.tuple.Tuple; 16import tools.refinery.store.tuple.Tuple;
17 17
18public class EqualsRefiner extends AbstractPartialInterpretationRefiner<TruthValue, Boolean> { 18public class EqualsRefiner extends AbstractPartialInterpretationRefiner<TruthValue, Boolean> {
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 */
6package tools.refinery.store.reasoning.translator.multiobject; 6package tools.refinery.store.reasoning.translator.multiobject;
7 7
8import tools.refinery.store.query.dnf.Query; 8import tools.refinery.logic.dnf.Query;
9import tools.refinery.store.query.dnf.RelationalQuery; 9import tools.refinery.logic.dnf.RelationalQuery;
10import tools.refinery.store.query.literal.AbstractCallLiteral; 10import tools.refinery.logic.literal.AbstractCallLiteral;
11import tools.refinery.store.query.literal.CallLiteral; 11import tools.refinery.logic.literal.CallLiteral;
12import tools.refinery.store.query.literal.Literal; 12import tools.refinery.logic.literal.Literal;
13import tools.refinery.store.query.term.Variable; 13import tools.refinery.logic.term.Variable;
14import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
15import tools.refinery.logic.term.uppercardinality.UpperCardinality;
14import tools.refinery.store.query.view.AnySymbolView; 16import tools.refinery.store.query.view.AnySymbolView;
15import tools.refinery.store.reasoning.interpretation.QueryBasedRelationRewriter; 17import tools.refinery.store.reasoning.interpretation.QueryBasedRelationRewriter;
16import tools.refinery.store.reasoning.literal.Concreteness; 18import tools.refinery.store.reasoning.literal.Concreteness;
17import tools.refinery.store.reasoning.literal.Modality; 19import tools.refinery.store.reasoning.literal.Modality;
18import tools.refinery.store.representation.cardinality.UpperCardinalities;
19import tools.refinery.store.representation.cardinality.UpperCardinality;
20 20
21import java.util.List; 21import java.util.List;
22import java.util.Set; 22import java.util.Set;
23 23
24import static tools.refinery.store.query.literal.Literals.check; 24import static tools.refinery.logic.literal.Literals.check;
25import static tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms.constant; 25import static tools.refinery.logic.term.uppercardinality.UpperCardinalityTerms.constant;
26import static tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms.lessEq; 26import static tools.refinery.logic.term.uppercardinality.UpperCardinalityTerms.lessEq;
27 27
28class EqualsRelationRewriter extends QueryBasedRelationRewriter { 28class 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..3908fedb 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;
10import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner; 10import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner;
11import tools.refinery.store.reasoning.representation.PartialSymbol; 11import tools.refinery.store.reasoning.representation.PartialSymbol;
12import tools.refinery.store.representation.Symbol; 12import tools.refinery.store.representation.Symbol;
13import tools.refinery.store.representation.TruthValue; 13import tools.refinery.logic.term.truthvalue.TruthValue;
14import tools.refinery.store.representation.cardinality.CardinalityInterval; 14import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
15import tools.refinery.store.representation.cardinality.CardinalityIntervals; 15import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
16import tools.refinery.store.tuple.Tuple; 16import tools.refinery.store.tuple.Tuple;
17 17
18public class ExistsRefiner extends AbstractPartialInterpretationRefiner<TruthValue, Boolean> { 18public class ExistsRefiner extends AbstractPartialInterpretationRefiner<TruthValue, Boolean> {
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 */
6package tools.refinery.store.reasoning.translator.multiobject; 6package tools.refinery.store.reasoning.translator.multiobject;
7 7
8import tools.refinery.store.query.term.Parameter; 8import tools.refinery.logic.term.Parameter;
9import tools.refinery.store.query.view.AbstractFunctionView; 9import tools.refinery.store.query.view.AbstractFunctionView;
10import tools.refinery.store.representation.Symbol; 10import tools.refinery.store.representation.Symbol;
11import tools.refinery.store.representation.cardinality.CardinalityInterval; 11import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
12 12
13class LowerCardinalityView extends AbstractFunctionView<CardinalityInterval> { 13class 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..694a800b 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;
12import tools.refinery.store.reasoning.seed.ModelSeed; 12import tools.refinery.store.reasoning.seed.ModelSeed;
13import tools.refinery.store.reasoning.translator.TranslationException; 13import tools.refinery.store.reasoning.translator.TranslationException;
14import tools.refinery.store.representation.Symbol; 14import tools.refinery.store.representation.Symbol;
15import tools.refinery.store.representation.TruthValue; 15import tools.refinery.logic.term.truthvalue.TruthValue;
16import tools.refinery.store.representation.cardinality.CardinalityInterval; 16import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
17import tools.refinery.store.representation.cardinality.CardinalityIntervals; 17import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
18import tools.refinery.store.tuple.Tuple; 18import tools.refinery.store.tuple.Tuple;
19 19
20import java.util.Arrays; 20import java.util.Arrays;
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..147ae486 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;
9import tools.refinery.store.model.Model; 9import tools.refinery.store.model.Model;
10import tools.refinery.store.reasoning.refinement.StorageRefiner; 10import tools.refinery.store.reasoning.refinement.StorageRefiner;
11import tools.refinery.store.representation.Symbol; 11import tools.refinery.store.representation.Symbol;
12import tools.refinery.store.representation.cardinality.CardinalityInterval; 12import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
13import tools.refinery.store.representation.cardinality.CardinalityIntervals; 13import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
14import tools.refinery.store.tuple.Tuple; 14import tools.refinery.store.tuple.Tuple;
15 15
16class MultiObjectStorageRefiner implements StorageRefiner { 16class MultiObjectStorageRefiner implements StorageRefiner {
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 */
6package tools.refinery.store.reasoning.translator.multiobject; 6package tools.refinery.store.reasoning.translator.multiobject;
7 7
8import tools.refinery.logic.dnf.Query;
9import tools.refinery.logic.literal.Literals;
10import tools.refinery.logic.term.Variable;
11import tools.refinery.logic.term.cardinalityinterval.CardinalityDomain;
12import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
13import tools.refinery.logic.term.int_.IntTerms;
14import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
15import tools.refinery.logic.term.uppercardinality.UpperCardinality;
16import tools.refinery.logic.term.uppercardinality.UpperCardinalityTerms;
8import tools.refinery.store.dse.propagation.PropagationBuilder; 17import tools.refinery.store.dse.propagation.PropagationBuilder;
9import tools.refinery.store.dse.transition.Rule; 18import tools.refinery.store.dse.transition.Rule;
10import tools.refinery.store.dse.transition.objectives.Criteria; 19import tools.refinery.store.dse.transition.objectives.Criteria;
11import tools.refinery.store.dse.transition.objectives.Objectives; 20import tools.refinery.store.dse.transition.objectives.Objectives;
12import tools.refinery.store.model.ModelStoreBuilder; 21import tools.refinery.store.model.ModelStoreBuilder;
13import tools.refinery.store.model.ModelStoreConfiguration; 22import tools.refinery.store.model.ModelStoreConfiguration;
14import tools.refinery.store.query.dnf.Query;
15import tools.refinery.store.query.literal.Literals;
16import tools.refinery.store.query.term.Variable;
17import tools.refinery.store.query.term.int_.IntTerms;
18import tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms;
19import tools.refinery.store.query.view.AnySymbolView; 23import tools.refinery.store.query.view.AnySymbolView;
20import tools.refinery.store.reasoning.ReasoningAdapter; 24import tools.refinery.store.reasoning.ReasoningAdapter;
21import tools.refinery.store.reasoning.ReasoningBuilder; 25import tools.refinery.store.reasoning.ReasoningBuilder;
@@ -24,15 +28,11 @@ import tools.refinery.store.reasoning.representation.PartialFunction;
24import tools.refinery.store.reasoning.translator.PartialRelationTranslator; 28import tools.refinery.store.reasoning.translator.PartialRelationTranslator;
25import tools.refinery.store.reasoning.translator.RoundingMode; 29import tools.refinery.store.reasoning.translator.RoundingMode;
26import tools.refinery.store.representation.Symbol; 30import tools.refinery.store.representation.Symbol;
27import tools.refinery.store.representation.cardinality.CardinalityDomain;
28import tools.refinery.store.representation.cardinality.CardinalityInterval;
29import tools.refinery.store.representation.cardinality.UpperCardinalities;
30import tools.refinery.store.representation.cardinality.UpperCardinality;
31 31
32import java.util.List; 32import java.util.List;
33 33
34import static tools.refinery.store.query.literal.Literals.check; 34import static tools.refinery.logic.literal.Literals.check;
35import static tools.refinery.store.query.term.int_.IntTerms.*; 35import static tools.refinery.logic.term.int_.IntTerms.*;
36 36
37public class MultiObjectTranslator implements ModelStoreConfiguration { 37public 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
8import tools.refinery.store.query.view.TuplePreservingView; 8import tools.refinery.store.query.view.TuplePreservingView;
9import tools.refinery.store.representation.Symbol; 9import tools.refinery.store.representation.Symbol;
10import tools.refinery.store.representation.cardinality.CardinalityInterval; 10import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
11import tools.refinery.store.representation.cardinality.CardinalityIntervals; 11import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
12import tools.refinery.store.tuple.Tuple; 12import tools.refinery.store.tuple.Tuple;
13 13
14class MultiView extends TuplePreservingView<CardinalityInterval> { 14class 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 */
6package tools.refinery.store.reasoning.translator.multiobject; 6package tools.refinery.store.reasoning.translator.multiobject;
7 7
8import tools.refinery.store.query.term.Parameter; 8import tools.refinery.logic.term.Parameter;
9import tools.refinery.store.query.view.AbstractFunctionView; 9import tools.refinery.store.query.view.AbstractFunctionView;
10import tools.refinery.store.representation.Symbol; 10import tools.refinery.store.representation.Symbol;
11import tools.refinery.store.representation.cardinality.CardinalityInterval; 11import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
12import tools.refinery.store.representation.cardinality.UpperCardinality; 12import tools.refinery.logic.term.uppercardinality.UpperCardinality;
13 13
14class UpperCardinalityView extends AbstractFunctionView<CardinalityInterval> { 14class 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
8import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
9import tools.refinery.store.reasoning.translator.TranslationException; 9import tools.refinery.store.reasoning.translator.TranslationException;
10import tools.refinery.store.representation.cardinality.CardinalityInterval; 10import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
11import tools.refinery.store.representation.cardinality.CardinalityIntervals; 11import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
12import tools.refinery.store.representation.cardinality.NonEmptyCardinalityInterval; 12import tools.refinery.logic.term.cardinalityinterval.NonEmptyCardinalityInterval;
13 13
14public record ConstrainedMultiplicity(NonEmptyCardinalityInterval multiplicity, PartialRelation errorSymbol) 14public 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 */
6package tools.refinery.store.reasoning.translator.multiplicity; 6package tools.refinery.store.reasoning.translator.multiplicity;
7 7
8import tools.refinery.logic.dnf.Query;
9import tools.refinery.logic.term.Variable;
10import tools.refinery.logic.term.uppercardinality.FiniteUpperCardinality;
11import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
12import tools.refinery.logic.term.uppercardinality.UpperCardinality;
13import tools.refinery.logic.term.uppercardinality.UpperCardinalityTerms;
8import tools.refinery.store.dse.transition.objectives.Objectives; 14import tools.refinery.store.dse.transition.objectives.Objectives;
9import tools.refinery.store.model.ModelStoreBuilder; 15import tools.refinery.store.model.ModelStoreBuilder;
10import tools.refinery.store.model.ModelStoreConfiguration; 16import tools.refinery.store.model.ModelStoreConfiguration;
11import tools.refinery.store.query.dnf.Query;
12import tools.refinery.store.query.term.Variable;
13import tools.refinery.store.query.term.int_.IntTerms;
14import tools.refinery.store.reasoning.ReasoningAdapter; 17import tools.refinery.store.reasoning.ReasoningAdapter;
15import tools.refinery.store.reasoning.lifting.DnfLifter; 18import tools.refinery.store.reasoning.lifting.DnfLifter;
16import tools.refinery.store.reasoning.literal.*; 19import tools.refinery.store.reasoning.literal.*;
17import tools.refinery.store.reasoning.representation.PartialRelation; 20import tools.refinery.store.reasoning.representation.PartialRelation;
18import tools.refinery.store.reasoning.translator.PartialRelationTranslator; 21import tools.refinery.store.reasoning.translator.PartialRelationTranslator;
19import tools.refinery.store.reasoning.translator.TranslationException; 22import tools.refinery.store.reasoning.translator.TranslationException;
20import tools.refinery.store.representation.cardinality.FiniteUpperCardinality;
21import tools.refinery.store.representation.cardinality.UpperCardinalities;
22import tools.refinery.store.representation.cardinality.UpperCardinality;
23 23
24import java.util.List; 24import java.util.List;
25 25
26import static tools.refinery.store.query.literal.Literals.check; 26import static tools.refinery.logic.literal.Literals.check;
27import static tools.refinery.store.query.term.int_.IntTerms.INT_SUM; 27import static tools.refinery.logic.term.int_.IntTerms.*;
28import static tools.refinery.store.query.term.int_.IntTerms.constant;
29import static tools.refinery.store.query.term.int_.IntTerms.greater;
30import static tools.refinery.store.query.term.int_.IntTerms.sub;
31import static tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms.constant;
32import static tools.refinery.store.query.term.uppercardinality.UpperCardinalityTerms.less;
33import static tools.refinery.store.reasoning.literal.PartialLiterals.candidateMust; 28import static tools.refinery.store.reasoning.literal.PartialLiterals.candidateMust;
34import static tools.refinery.store.reasoning.literal.PartialLiterals.must; 29import 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 */
6package tools.refinery.store.reasoning.translator.multiplicity; 6package tools.refinery.store.reasoning.translator.multiplicity;
7 7
8import tools.refinery.store.representation.cardinality.CardinalityInterval; 8import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
9 9
10public sealed interface Multiplicity permits ConstrainedMultiplicity, UnconstrainedMultiplicity { 10public 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 */
6package tools.refinery.store.reasoning.translator.multiplicity; 6package tools.refinery.store.reasoning.translator.multiplicity;
7 7
8import tools.refinery.store.representation.cardinality.CardinalityInterval; 8import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
9import tools.refinery.store.representation.cardinality.CardinalityIntervals; 9import 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/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 */
6package tools.refinery.store.reasoning.translator.opposite; 6package tools.refinery.store.reasoning.translator.opposite;
7 7
8import tools.refinery.logic.literal.AbstractCallLiteral;
9import tools.refinery.logic.literal.Literal;
10import tools.refinery.logic.term.Variable;
8import tools.refinery.store.model.ModelStoreBuilder; 11import tools.refinery.store.model.ModelStoreBuilder;
9import tools.refinery.store.model.ModelStoreConfiguration; 12import tools.refinery.store.model.ModelStoreConfiguration;
10import tools.refinery.store.query.literal.AbstractCallLiteral;
11import tools.refinery.store.query.literal.Literal;
12import tools.refinery.store.query.term.Variable;
13import tools.refinery.store.reasoning.interpretation.PartialRelationRewriter; 13import tools.refinery.store.reasoning.interpretation.PartialRelationRewriter;
14import tools.refinery.store.reasoning.literal.Concreteness; 14import tools.refinery.store.reasoning.literal.Concreteness;
15import tools.refinery.store.reasoning.literal.ModalConstraint; 15import 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 */
6package tools.refinery.store.reasoning.translator.predicate; 6package tools.refinery.store.reasoning.translator.predicate;
7 7
8import tools.refinery.logic.dnf.Query;
9import tools.refinery.logic.dnf.RelationalQuery;
10import tools.refinery.logic.literal.Literal;
11import tools.refinery.logic.term.NodeVariable;
12import tools.refinery.logic.term.Variable;
13import tools.refinery.logic.term.truthvalue.TruthValue;
8import tools.refinery.store.model.ModelStoreBuilder; 14import tools.refinery.store.model.ModelStoreBuilder;
9import tools.refinery.store.model.ModelStoreConfiguration; 15import tools.refinery.store.model.ModelStoreConfiguration;
10import tools.refinery.store.query.dnf.Query;
11import tools.refinery.store.query.dnf.RelationalQuery;
12import tools.refinery.store.query.literal.Literal;
13import tools.refinery.store.query.term.NodeVariable;
14import tools.refinery.store.query.term.Variable;
15import tools.refinery.store.query.view.ForbiddenView; 16import tools.refinery.store.query.view.ForbiddenView;
16import tools.refinery.store.query.view.MayView; 17import tools.refinery.store.query.view.MayView;
17import tools.refinery.store.query.view.MustView; 18import tools.refinery.store.query.view.MustView;
@@ -19,9 +20,8 @@ import tools.refinery.store.reasoning.representation.PartialRelation;
19import tools.refinery.store.reasoning.translator.PartialRelationTranslator; 20import tools.refinery.store.reasoning.translator.PartialRelationTranslator;
20import tools.refinery.store.reasoning.translator.TranslationException; 21import tools.refinery.store.reasoning.translator.TranslationException;
21import tools.refinery.store.representation.Symbol; 22import tools.refinery.store.representation.Symbol;
22import tools.refinery.store.representation.TruthValue;
23 23
24import static tools.refinery.store.query.literal.Literals.not; 24import static tools.refinery.logic.literal.Literals.not;
25import static tools.refinery.store.reasoning.literal.PartialLiterals.may; 25import static tools.refinery.store.reasoning.literal.PartialLiterals.may;
26import static tools.refinery.store.reasoning.literal.PartialLiterals.must; 26import 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 */
6package tools.refinery.store.reasoning.translator.proxy; 6package tools.refinery.store.reasoning.translator.proxy;
7 7
8import tools.refinery.logic.literal.AbstractCallLiteral;
9import tools.refinery.logic.literal.Literal;
10import tools.refinery.logic.term.Variable;
8import tools.refinery.store.model.ModelStoreBuilder; 11import tools.refinery.store.model.ModelStoreBuilder;
9import tools.refinery.store.model.ModelStoreConfiguration; 12import tools.refinery.store.model.ModelStoreConfiguration;
10import tools.refinery.store.query.literal.AbstractCallLiteral;
11import tools.refinery.store.query.literal.Literal;
12import tools.refinery.store.query.term.Variable;
13import tools.refinery.store.reasoning.interpretation.PartialRelationRewriter; 13import tools.refinery.store.reasoning.interpretation.PartialRelationRewriter;
14import tools.refinery.store.reasoning.literal.Concreteness; 14import tools.refinery.store.reasoning.literal.Concreteness;
15import tools.refinery.store.reasoning.literal.ModalConstraint; 15import 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;
10import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner; 10import tools.refinery.store.reasoning.refinement.AbstractPartialInterpretationRefiner;
11import tools.refinery.store.reasoning.representation.PartialSymbol; 11import tools.refinery.store.reasoning.representation.PartialSymbol;
12import tools.refinery.store.representation.Symbol; 12import tools.refinery.store.representation.Symbol;
13import tools.refinery.store.representation.TruthValue; 13import tools.refinery.logic.term.truthvalue.TruthValue;
14import tools.refinery.store.tuple.Tuple; 14import tools.refinery.store.tuple.Tuple;
15 15
16class InferredTypeRefiner extends AbstractPartialInterpretationRefiner<TruthValue, Boolean> { 16class 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 @@
6package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
7 7
8import tools.refinery.store.reasoning.representation.PartialRelation; 8import tools.refinery.store.reasoning.representation.PartialRelation;
9import tools.refinery.store.representation.TruthValue; 9import tools.refinery.logic.term.truthvalue.TruthValue;
10 10
11import java.util.*; 11import 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;
10import tools.refinery.store.reasoning.representation.PartialRelation; 10import tools.refinery.store.reasoning.representation.PartialRelation;
11import tools.refinery.store.reasoning.seed.ModelSeed; 11import tools.refinery.store.reasoning.seed.ModelSeed;
12import tools.refinery.store.representation.Symbol; 12import tools.refinery.store.representation.Symbol;
13import tools.refinery.store.representation.TruthValue; 13import tools.refinery.logic.term.truthvalue.TruthValue;
14import tools.refinery.store.tuple.Tuple; 14import tools.refinery.store.tuple.Tuple;
15 15
16import java.util.Arrays; 16import 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 */
6package tools.refinery.store.reasoning.translator.typehierarchy; 6package tools.refinery.store.reasoning.translator.typehierarchy;
7 7
8import tools.refinery.logic.dnf.Query;
8import tools.refinery.store.dse.transition.Rule; 9import tools.refinery.store.dse.transition.Rule;
9import tools.refinery.store.dse.transition.actions.ActionLiteral; 10import tools.refinery.store.dse.transition.actions.ActionLiteral;
10import tools.refinery.store.model.ModelStoreBuilder; 11import tools.refinery.store.model.ModelStoreBuilder;
11import tools.refinery.store.model.ModelStoreConfiguration; 12import tools.refinery.store.model.ModelStoreConfiguration;
12import tools.refinery.store.query.dnf.Query;
13import tools.refinery.store.reasoning.ReasoningBuilder; 13import tools.refinery.store.reasoning.ReasoningBuilder;
14import tools.refinery.store.reasoning.actions.PartialActionLiterals; 14import tools.refinery.store.reasoning.actions.PartialActionLiterals;
15import tools.refinery.store.reasoning.literal.PartialLiterals; 15import tools.refinery.store.reasoning.literal.PartialLiterals;
@@ -21,7 +21,7 @@ import tools.refinery.store.representation.Symbol;
21 21
22import java.util.ArrayList; 22import java.util.ArrayList;
23 23
24import static tools.refinery.store.query.literal.Literals.not; 24import static tools.refinery.logic.literal.Literals.not;
25import static tools.refinery.store.reasoning.literal.PartialLiterals.candidateMust; 25import static tools.refinery.store.reasoning.literal.PartialLiterals.candidateMust;
26import static tools.refinery.store.reasoning.literal.PartialLiterals.may; 26import static tools.refinery.store.reasoning.literal.PartialLiterals.may;
27 27
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/PartialModelTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/PartialModelTest.java
index f8135102..2aa058a4 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/PartialModelTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/PartialModelTest.java
@@ -6,10 +6,11 @@
6package tools.refinery.store.reasoning; 6package tools.refinery.store.reasoning;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.logic.dnf.Query;
10import tools.refinery.logic.term.Variable;
11import tools.refinery.logic.term.truthvalue.TruthValue;
9import tools.refinery.store.model.ModelStore; 12import tools.refinery.store.model.ModelStore;
10import tools.refinery.store.query.ModelQueryAdapter; 13import tools.refinery.store.query.ModelQueryAdapter;
11import tools.refinery.store.query.dnf.Query;
12import tools.refinery.store.query.term.Variable;
13import tools.refinery.store.query.interpreter.QueryInterpreterAdapter; 14import tools.refinery.store.query.interpreter.QueryInterpreterAdapter;
14import tools.refinery.store.query.view.ForbiddenView; 15import tools.refinery.store.query.view.ForbiddenView;
15import tools.refinery.store.reasoning.literal.Concreteness; 16import tools.refinery.store.reasoning.literal.Concreteness;
@@ -18,14 +19,13 @@ import tools.refinery.store.reasoning.seed.ModelSeed;
18import tools.refinery.store.reasoning.translator.PartialRelationTranslator; 19import tools.refinery.store.reasoning.translator.PartialRelationTranslator;
19import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; 20import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator;
20import tools.refinery.store.representation.Symbol; 21import tools.refinery.store.representation.Symbol;
21import tools.refinery.store.representation.TruthValue;
22import tools.refinery.store.tuple.Tuple; 22import tools.refinery.store.tuple.Tuple;
23 23
24import static org.hamcrest.MatcherAssert.assertThat; 24import static org.hamcrest.MatcherAssert.assertThat;
25import static org.hamcrest.Matchers.is; 25import static org.hamcrest.Matchers.is;
26import static org.hamcrest.Matchers.not; 26import static org.hamcrest.Matchers.not;
27import static org.hamcrest.Matchers.nullValue; 27import static org.hamcrest.Matchers.nullValue;
28import static tools.refinery.store.query.literal.Literals.not; 28import static tools.refinery.logic.literal.Literals.not;
29import static tools.refinery.store.reasoning.ReasoningAdapter.EQUALS_SYMBOL; 29import static tools.refinery.store.reasoning.ReasoningAdapter.EQUALS_SYMBOL;
30import static tools.refinery.store.reasoning.ReasoningAdapter.EXISTS_SYMBOL; 30import static tools.refinery.store.reasoning.ReasoningAdapter.EXISTS_SYMBOL;
31import static tools.refinery.store.reasoning.literal.PartialLiterals.may; 31import static tools.refinery.store.reasoning.literal.PartialLiterals.may;
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/lifting/DnfLifterTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/lifting/DnfLifterTest.java
index 793d1cec..f3e4d3b0 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/lifting/DnfLifterTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/lifting/DnfLifterTest.java
@@ -7,9 +7,10 @@ package tools.refinery.store.reasoning.lifting;
7 7
8import org.junit.jupiter.api.BeforeEach; 8import org.junit.jupiter.api.BeforeEach;
9import org.junit.jupiter.api.Test; 9import org.junit.jupiter.api.Test;
10import tools.refinery.store.query.dnf.Dnf; 10import tools.refinery.logic.dnf.Dnf;
11import tools.refinery.store.query.dnf.Query; 11import tools.refinery.logic.dnf.Query;
12import tools.refinery.store.query.term.ParameterDirection; 12import tools.refinery.logic.term.ParameterDirection;
13import tools.refinery.logic.term.truthvalue.TruthValue;
13import tools.refinery.store.query.view.AnySymbolView; 14import tools.refinery.store.query.view.AnySymbolView;
14import tools.refinery.store.query.view.FunctionView; 15import tools.refinery.store.query.view.FunctionView;
15import tools.refinery.store.query.view.MustView; 16import tools.refinery.store.query.view.MustView;
@@ -20,15 +21,14 @@ import tools.refinery.store.reasoning.literal.Modality;
20import tools.refinery.store.reasoning.representation.PartialRelation; 21import tools.refinery.store.reasoning.representation.PartialRelation;
21import tools.refinery.store.reasoning.representation.PartialSymbol; 22import tools.refinery.store.reasoning.representation.PartialSymbol;
22import tools.refinery.store.representation.Symbol; 23import tools.refinery.store.representation.Symbol;
23import tools.refinery.store.representation.TruthValue;
24 24
25import java.util.List; 25import java.util.List;
26 26
27import static org.hamcrest.MatcherAssert.assertThat; 27import static org.hamcrest.MatcherAssert.assertThat;
28import static tools.refinery.store.query.literal.Literals.check; 28import static tools.refinery.logic.literal.Literals.check;
29import static tools.refinery.store.query.literal.Literals.not; 29import static tools.refinery.logic.literal.Literals.not;
30import static tools.refinery.store.query.term.int_.IntTerms.*; 30import static tools.refinery.logic.term.int_.IntTerms.*;
31import static tools.refinery.store.query.tests.QueryMatchers.structurallyEqualTo; 31import static tools.refinery.logic.tests.QueryMatchers.structurallyEqualTo;
32 32
33class DnfLifterTest { 33class DnfLifterTest {
34 private static final Symbol<TruthValue> friendSymbol = Symbol.of("friend", 2, TruthValue.class, 34 private static final Symbol<TruthValue> friendSymbol = Symbol.of("friend", 2, TruthValue.class,
@@ -49,7 +49,7 @@ class DnfLifterTest {
49 @Test 49 @Test
50 void liftPartialRelationCallTest() { 50 void liftPartialRelationCallTest() {
51 var input = Query.of("Actual", (builder, p1) -> builder.clause((v1) -> List.of( 51 var input = Query.of("Actual", (builder, p1) -> builder.clause((v1) -> List.of(
52 friend.call(p1, v1) 52 friend.call(p1, v1)
53 ))).getDnf(); 53 ))).getDnf();
54 var actual = sut.lift(Modality.MUST, Concreteness.PARTIAL, input); 54 var actual = sut.lift(Modality.MUST, Concreteness.PARTIAL, input);
55 55
@@ -204,7 +204,7 @@ class DnfLifterTest {
204 204
205 @Test 205 @Test
206 void liftPartialRelationTransitiveCallTest() { 206 void liftPartialRelationTransitiveCallTest() {
207 var input = Query.of("Actual", (builder, p1, p2)-> builder.clause( 207 var input = Query.of("Actual", (builder, p1, p2) -> builder.clause(
208 friend.callTransitive(p1, p2), 208 friend.callTransitive(p1, p2),
209 not(person.call(p2)) 209 not(person.call(p2))
210 )).getDnf(); 210 )).getDnf();
@@ -233,7 +233,7 @@ class DnfLifterTest {
233 233
234 @Test 234 @Test
235 void liftPartialSymbolTransitiveCallTest() { 235 void liftPartialSymbolTransitiveCallTest() {
236 var input = Query.of("Actual", (builder, p1, p2)-> builder.clause( 236 var input = Query.of("Actual", (builder, p1, p2) -> builder.clause(
237 friendMustView.callTransitive(p1, p2), 237 friendMustView.callTransitive(p1, p2),
238 not(person.call(p2)) 238 not(person.call(p2))
239 )).getDnf(); 239 )).getDnf();
@@ -332,7 +332,8 @@ class DnfLifterTest {
332 332
333 var expected = Query.of("Expected", (builder, p1, p2) -> builder.clause( 333 var expected = Query.of("Expected", (builder, p1, p2) -> builder.clause(
334 ModalConstraint.of(Modality.MAY, Concreteness.PARTIAL, friend).call(p1, p2), 334 ModalConstraint.of(Modality.MAY, Concreteness.PARTIAL, friend).call(p1, p2),
335 not(ModalConstraint.of(Modality.MUST, Concreteness.PARTIAL, ReasoningAdapter.EQUALS_SYMBOL).call(p1, p2)) 335 not(ModalConstraint.of(Modality.MUST, Concreteness.PARTIAL, ReasoningAdapter.EQUALS_SYMBOL).call(p1,
336 p2))
336 )).getDnf(); 337 )).getDnf();
337 338
338 assertThat(actual, structurallyEqualTo(expected)); 339 assertThat(actual, structurallyEqualTo(expected));
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/containment/ContainmentHierarchyTranslatorTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/containment/ContainmentHierarchyTranslatorTest.java
index 1d0ac02d..e889b80d 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/containment/ContainmentHierarchyTranslatorTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/containment/ContainmentHierarchyTranslatorTest.java
@@ -18,8 +18,8 @@ import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslat
18import tools.refinery.store.reasoning.translator.multiplicity.UnconstrainedMultiplicity; 18import tools.refinery.store.reasoning.translator.multiplicity.UnconstrainedMultiplicity;
19import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchy; 19import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchy;
20import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator; 20import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator;
21import tools.refinery.store.representation.TruthValue; 21import tools.refinery.logic.term.truthvalue.TruthValue;
22import tools.refinery.store.representation.cardinality.CardinalityIntervals; 22import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
23import tools.refinery.store.tuple.Tuple; 23import tools.refinery.store.tuple.Tuple;
24 24
25import java.util.Map; 25import java.util.Map;
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelBuilderTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelBuilderTest.java
index ba6ba6da..e2b3f31e 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelBuilderTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelBuilderTest.java
@@ -8,7 +8,7 @@ package tools.refinery.store.reasoning.translator.metamodel;
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.reasoning.representation.PartialRelation; 9import tools.refinery.store.reasoning.representation.PartialRelation;
10import tools.refinery.store.reasoning.translator.TranslationException; 10import tools.refinery.store.reasoning.translator.TranslationException;
11import tools.refinery.store.representation.cardinality.CardinalityIntervals; 11import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
12 12
13import static org.junit.jupiter.api.Assertions.assertThrows; 13import static org.junit.jupiter.api.Assertions.assertThrows;
14 14
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelTest.java
index 88e6a4d7..f8e9e1b5 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/metamodel/MetamodelTest.java
@@ -16,8 +16,8 @@ import tools.refinery.store.reasoning.representation.PartialRelation;
16import tools.refinery.store.reasoning.seed.ModelSeed; 16import tools.refinery.store.reasoning.seed.ModelSeed;
17import tools.refinery.store.reasoning.translator.containment.ContainmentHierarchyTranslator; 17import tools.refinery.store.reasoning.translator.containment.ContainmentHierarchyTranslator;
18import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; 18import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator;
19import tools.refinery.store.representation.TruthValue; 19import tools.refinery.logic.term.truthvalue.TruthValue;
20import tools.refinery.store.representation.cardinality.CardinalityIntervals; 20import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
21import tools.refinery.store.tuple.Tuple; 21import tools.refinery.store.tuple.Tuple;
22 22
23import static org.hamcrest.MatcherAssert.assertThat; 23import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/multiobject/PartialCountTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/multiobject/PartialCountTest.java
index 48a046fc..5ef189d5 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/multiobject/PartialCountTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/multiobject/PartialCountTest.java
@@ -8,9 +8,9 @@ package tools.refinery.store.reasoning.translator.multiobject;
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.model.ModelStore; 9import tools.refinery.store.model.ModelStore;
10import tools.refinery.store.query.ModelQueryAdapter; 10import tools.refinery.store.query.ModelQueryAdapter;
11import tools.refinery.store.query.dnf.Query; 11import tools.refinery.logic.dnf.Query;
12import tools.refinery.store.query.resultset.ResultSet; 12import tools.refinery.store.query.resultset.ResultSet;
13import tools.refinery.store.query.term.Variable; 13import tools.refinery.logic.term.Variable;
14import tools.refinery.store.query.interpreter.QueryInterpreterAdapter; 14import tools.refinery.store.query.interpreter.QueryInterpreterAdapter;
15import tools.refinery.store.reasoning.ReasoningAdapter; 15import tools.refinery.store.reasoning.ReasoningAdapter;
16import tools.refinery.store.reasoning.ReasoningStoreAdapter; 16import tools.refinery.store.reasoning.ReasoningStoreAdapter;
@@ -20,17 +20,17 @@ import tools.refinery.store.reasoning.representation.PartialRelation;
20import tools.refinery.store.reasoning.seed.ModelSeed; 20import tools.refinery.store.reasoning.seed.ModelSeed;
21import tools.refinery.store.reasoning.translator.PartialRelationTranslator; 21import tools.refinery.store.reasoning.translator.PartialRelationTranslator;
22import tools.refinery.store.representation.Symbol; 22import tools.refinery.store.representation.Symbol;
23import tools.refinery.store.representation.TruthValue; 23import tools.refinery.logic.term.truthvalue.TruthValue;
24import tools.refinery.store.representation.cardinality.CardinalityIntervals; 24import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
25import tools.refinery.store.representation.cardinality.UpperCardinalities; 25import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
26import tools.refinery.store.representation.cardinality.UpperCardinality; 26import tools.refinery.logic.term.uppercardinality.UpperCardinality;
27import tools.refinery.store.tuple.Tuple; 27import tools.refinery.store.tuple.Tuple;
28 28
29import java.util.List; 29import java.util.List;
30 30
31import static org.hamcrest.MatcherAssert.assertThat; 31import static org.hamcrest.MatcherAssert.assertThat;
32import static org.hamcrest.Matchers.is; 32import static org.hamcrest.Matchers.is;
33import static tools.refinery.store.query.literal.Literals.not; 33import static tools.refinery.logic.literal.Literals.not;
34import static tools.refinery.store.reasoning.literal.PartialLiterals.must; 34import static tools.refinery.store.reasoning.literal.PartialLiterals.must;
35 35
36class PartialCountTest { 36class PartialCountTest {
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/ConcreteSupertypeTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/ConcreteSupertypeTest.java
index 4bef9d8e..b9edcf75 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/ConcreteSupertypeTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/ConcreteSupertypeTest.java
@@ -14,7 +14,7 @@ import tools.refinery.store.reasoning.ReasoningStoreAdapter;
14import tools.refinery.store.reasoning.literal.Concreteness; 14import tools.refinery.store.reasoning.literal.Concreteness;
15import tools.refinery.store.reasoning.representation.PartialRelation; 15import tools.refinery.store.reasoning.representation.PartialRelation;
16import tools.refinery.store.reasoning.seed.ModelSeed; 16import tools.refinery.store.reasoning.seed.ModelSeed;
17import tools.refinery.store.representation.TruthValue; 17import tools.refinery.logic.term.truthvalue.TruthValue;
18import tools.refinery.store.tuple.Tuple; 18import tools.refinery.store.tuple.Tuple;
19 19
20import static org.hamcrest.MatcherAssert.assertThat; 20import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisExampleHierarchyTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisExampleHierarchyTest.java
index d9a5477e..d860c7d6 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisExampleHierarchyTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeAnalysisExampleHierarchyTest.java
@@ -9,7 +9,7 @@ import org.hamcrest.Matchers;
9import org.junit.jupiter.api.BeforeEach; 9import org.junit.jupiter.api.BeforeEach;
10import org.junit.jupiter.api.Test; 10import org.junit.jupiter.api.Test;
11import tools.refinery.store.reasoning.representation.PartialRelation; 11import tools.refinery.store.reasoning.representation.PartialRelation;
12import tools.refinery.store.representation.TruthValue; 12import tools.refinery.logic.term.truthvalue.TruthValue;
13 13
14import java.util.Set; 14import java.util.Set;
15 15
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyPartialModelTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyPartialModelTest.java
index 5af725bb..e87b2684 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyPartialModelTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyPartialModelTest.java
@@ -16,7 +16,7 @@ import tools.refinery.store.reasoning.ReasoningStoreAdapter;
16import tools.refinery.store.reasoning.literal.Concreteness; 16import tools.refinery.store.reasoning.literal.Concreteness;
17import tools.refinery.store.reasoning.representation.PartialRelation; 17import tools.refinery.store.reasoning.representation.PartialRelation;
18import tools.refinery.store.reasoning.seed.ModelSeed; 18import tools.refinery.store.reasoning.seed.ModelSeed;
19import tools.refinery.store.representation.TruthValue; 19import tools.refinery.logic.term.truthvalue.TruthValue;
20import tools.refinery.store.tuple.Tuple; 20import tools.refinery.store.tuple.Tuple;
21 21
22import static org.hamcrest.MatcherAssert.assertThat; 22import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTest.java b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTest.java
index 931c62dd..b7c99d2d 100644
--- a/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTest.java
+++ b/subprojects/store-reasoning/src/test/java/tools/refinery/store/reasoning/translator/typehierarchy/TypeHierarchyTest.java
@@ -9,7 +9,7 @@ import org.hamcrest.Matchers;
9import org.junit.jupiter.api.Test; 9import org.junit.jupiter.api.Test;
10import tools.refinery.store.reasoning.representation.PartialRelation; 10import tools.refinery.store.reasoning.representation.PartialRelation;
11import tools.refinery.store.reasoning.translator.TranslationException; 11import tools.refinery.store.reasoning.translator.TranslationException;
12import tools.refinery.store.representation.TruthValue; 12import tools.refinery.logic.term.truthvalue.TruthValue;
13 13
14import java.util.Set; 14import java.util.Set;
15 15