package org.eclipse.viatra.solver.data.query.building; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; public class DNFAnd { private Set existentiallyQuantified; private List constraints; public DNFAnd(Set quantifiedVariables, List constraints) { super(); this.existentiallyQuantified = quantifiedVariables; this.constraints = constraints; } public Set getExistentiallyQuantified() { return existentiallyQuantified; } public List getConstraints() { return constraints; } void unifyVariables(Map uniqueVariableMap) { Map uniqueVariableMapForClause = new HashMap<>(uniqueVariableMap); for(DNFAtom atom : constraints) { atom.unifyVariables(uniqueVariableMapForClause); } } void collectQuantifiedVariables(Set parameters) { Set result = new HashSet<>(); for(DNFAtom constraint : constraints) { constraint.collectAllVariables(result); } result.removeAll(parameters); existentiallyQuantified = result; } }