use of com.sri.ai.grinder.sgdpllt.interpreter.BruteForceMultiIndexQuantifierEliminator in project aic-expresso by aic-sri-international.
the class BruteForceFunctionTheory method getSingleVariableConstraintQuantifierEliminatorStepSolver.
@Override
public ExpressionLiteralSplitterStepSolver getSingleVariableConstraintQuantifierEliminatorStepSolver(AssociativeCommutativeGroup group, SingleVariableConstraint constraint, Expression body, Context context) {
Expression variable = constraint.getVariable();
Expression type = GrinderUtil.getTypeExpression(variable, context);
Expression indexExpression = IndexExpressions.makeIndexExpression(variable, type);
ExtensionalIndexExpressionsSet indexExpressionsSet = new ExtensionalIndexExpressionsSet(indexExpression);
MultiIndexQuantifierEliminator quantifierEliminator = new BruteForceMultiIndexQuantifierEliminator(context.getTheory().getTopRewriter());
Expression solution = quantifierEliminator.solve(group, indexExpressionsSet, constraint, body, context);
return new ConstantExpressionStepSolver(solution);
}
Aggregations