SARLProverAdaptor.java
package edu.udel.cis.vsl.sarl.reason.common;
import edu.udel.cis.vsl.sarl.IF.expr.BooleanExpression;
import edu.udel.cis.vsl.sarl.preuniverse.IF.PreUniverse;
/**
* Transforms some special SARL expresisons (e.g. array lambda, sigma
* expression) to forms that can be accepted by all provers.
*
* @author ziqing
*/
class SARLProverAdaptor {
private PreUniverse pu;
/* **** Specific Transformers for Adapting Prover Languages *****/
private StatefulArrayLambdaAdaptor arrayLambdaAdaptor;
private StatefulSigmaAdaptor sigmaAdaptor;
SARLProverAdaptor(PreUniverse pu) {
this.pu = pu;
this.arrayLambdaAdaptor = new StatefulArrayLambdaAdaptor(pu);
this.sigmaAdaptor = new StatefulSigmaAdaptor(pu);
}
BooleanExpression apply(BooleanExpression formula) {
formula = (BooleanExpression) arrayLambdaAdaptor.apply(formula);
return (BooleanExpression) sigmaAdaptor.apply(formula);
}
BooleanExpression getAxioms() {
return pu.and(arrayLambdaAdaptor.getIndependentArrayLambdaAxioms(),
pu.and(sigmaAdaptor.getAxioms()));
}
}