public override Formula Negate(bool keepAND) { CompoundFormula cfNegate = new ParametrizedFormula(this); foreach (Formula fOperand in Operands) { cfNegate.AddOperand(fOperand.Negate(keepAND)); } return(cfNegate); }
public override Formula PartiallyGround(Dictionary <string, Constant> dBindings) { ParametrizedFormula cfGrounded = new ParametrizedFormula(this); foreach (Formula fSub in Operands) { Formula fGrounded = fSub.PartiallyGround(dBindings); cfGrounded.AddOperand(fGrounded); } return(cfGrounded); }
public override Formula Simplify() { if (Simplified) { return(this); } ParametrizedFormula pf = new ParametrizedFormula(this); foreach (Formula f in Operands) { pf.AddOperand(f.Simplify()); } return(pf); }
public ParametrizedFormula(ParametrizedFormula cf) : this(cf.Operator) { Parameters = new Dictionary <string, string>(cf.Parameters); }