From 91b772506f00ce2e317027dd384b82dc7a1295fd Mon Sep 17 00:00:00 2001 From: Oszkar Semerath Date: Mon, 11 May 2020 02:22:15 +0200 Subject: separated must and current UP rules to support non-prop neg finds --- .../logic2viatra/patterns/PatternProvider.xtend | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend') diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend index 18e3018a..750107f6 100644 --- a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra/src/hu/bme/mit/inf/dslreasoner/viatrasolver/logic2viatra/patterns/PatternProvider.xtend @@ -31,7 +31,8 @@ import java.util.HashMap public Map>> refineObjectQueries public Map>> refineTypeQueries public Map, IQuerySpecification>> refinerelationQueries - public Map>> unitPropagationPreconditionPatterns + public Map>> mustUnitPropagationPreconditionPatterns + public Map>> currentUnitPropagationPreconditionPatterns public Collection>> allQueries } @@ -60,14 +61,15 @@ class PatternProvider { null } val patternGeneratorResult = patternGenerator.transformBaseProperties(problem,emptySolution,fqn2Query,typeAnalysisResult) - val baseIndexerFile = patternGeneratorResult.key - val unitPropagationTrace = patternGeneratorResult.value + val baseIndexerFile = patternGeneratorResult.patternText + val mustUnitPropagationTrace = patternGeneratorResult.constraint2MustPreconditionName + val currentUnitPropagationTrace = patternGeneratorResult.constraint2CurrentPreconditionName if(writeToFile) { workspace.writeText('''generated3valued.vql_deactivated''',baseIndexerFile) } val ParseUtil parseUtil = new ParseUtil val generatedQueries = parseUtil.parse(baseIndexerFile) - val runtimeQueries = calclulateRuntimeQueries(patternGenerator,problem,emptySolution,typeAnalysisResult,unitPropagationTrace,generatedQueries); + val runtimeQueries = calclulateRuntimeQueries(patternGenerator,problem,emptySolution,typeAnalysisResult,mustUnitPropagationTrace,currentUnitPropagationTrace,generatedQueries); return runtimeQueries } @@ -76,7 +78,8 @@ class PatternProvider { LogicProblem problem, PartialInterpretation emptySolution, TypeAnalysisResult typeAnalysisResult, - HashMap unitPropagationTrace, + HashMap mustUnitPropagationTrace, + HashMap currentUnitPropagationTrace, Map>> queries ) { val Map>> @@ -92,7 +95,9 @@ class PatternProvider { val Map, IQuerySpecification>> refineRelationQueries = patternGenerator.relationRefinementGenerator.getRefineRelationQueries(problem).mapValues[it.lookup(queries)] val Map>> - unitPropagationPreconditionPatterns = unitPropagationTrace.mapValues[it.lookup(queries)] + mustUnitPropagationPreconditionPatterns = mustUnitPropagationTrace.mapValues[it.lookup(queries)] + val Map>> + currentUnitPropagationPreconditionPatterns = currentUnitPropagationTrace.mapValues[it.lookup(queries)] return new GeneratedPatterns( invalidWFQueries, unfinishedWFQueries, @@ -100,7 +105,8 @@ class PatternProvider { refineObjectsQueries, refineTypeQueries, refineRelationQueries, - unitPropagationPreconditionPatterns, + mustUnitPropagationPreconditionPatterns, + currentUnitPropagationPreconditionPatterns, queries.values ) } -- cgit v1.2.3-70-g09d2