public override Formula PartiallyGround(Dictionary <string, Constant> dBindings) { if (Predicate is ParametrizedPredicate) { ParametrizedPredicate ppred = (ParametrizedPredicate)Predicate; Predicate pGrounded = ppred.PartiallyGround(dBindings); return(new PredicateFormula(pGrounded)); } if (Predicate is KnowPredicate) { throw new NotImplementedException(); } if (Predicate is KnowGivenPredicate) { throw new NotImplementedException(); } return(this); }