From 4cb0aa5a0b9adac2bb8d4a995be015651bdd5628 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Tue, 30 Jul 2019 18:57:01 +0200 Subject: Polyhedron scope propagator for non-containment references --- .../dse/InconsistentScopeGlobalConstraint.xtend | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/InconsistentScopeGlobalConstraint.xtend (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/InconsistentScopeGlobalConstraint.xtend') diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/InconsistentScopeGlobalConstraint.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/InconsistentScopeGlobalConstraint.xtend new file mode 100644 index 00000000..2e039ca2 --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner/src/hu/bme/mit/inf/dslreasoner/viatrasolver/reasoner/dse/InconsistentScopeGlobalConstraint.xtend @@ -0,0 +1,25 @@ +package hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.dse + +import org.eclipse.viatra.dse.objectives.IGlobalConstraint +import org.eclipse.viatra.dse.base.ThreadContext +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation + +class InconsistentScopeGlobalConstraint implements IGlobalConstraint { + + override init(ThreadContext context) { + // Nothing to initialize. + } + + override createNew() { + this + } + + override getName() { + class.name + } + + override checkGlobalConstraint(ThreadContext context) { + val partialModel = context.model as PartialInterpretation + partialModel.minNewElements <= partialModel.maxNewElements || partialModel.maxNewElements < 0 + } +} -- cgit v1.2.3-70-g09d2