From ad61863eee6184f58adbe8900372cccfd2cb9d63 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Wed, 13 Sep 2023 01:11:28 +0200 Subject: fix: multi-objects with lower bound of 1 If an object has a lower bound of 1, but it is still a multi-object, model generation can't be finished yet. --- .../reasoning/translator/multiobject/MultiObjectTranslator.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'subprojects/store-reasoning/src/main/java') 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 bad96a66..97fda9d5 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 @@ -48,11 +48,11 @@ public class MultiObjectTranslator implements ModelStoreConfiguration { storeBuilder.symbol(COUNT_STORAGE); var aboveLowerBound = Query.of("count#aboveLowerBound", Integer.class, (builder, node, output) -> builder - .clause(Integer.class, lowerBound -> List.of( - LOWER_CARDINALITY_VIEW.call(node, lowerBound), - output.assign(sub(lowerBound, IntTerms.constant(1))), + .clause( + MULTI_VIEW.call(node), + LOWER_CARDINALITY_VIEW.call(node, output), check(greater(output, IntTerms.constant(0))) - ))); + )); var missingCardinality = Query.of("count#missing", Integer.class, (builder, output) -> builder .clause( output.assign(aboveLowerBound.aggregate(INT_SUM, Variable.of())) -- cgit v1.2.3-54-g00ecf