/// <summary> /// <code> function INFER(clause, usable) returns clauses </code> /// </summary> /// <param name="clause"></param> /// <param name="usable"></param> /// <returns></returns> private ISet<Clause> Infer(Clause clause, ISet<Clause> usable) { ISet<Clause> resultingClauses = new HashedSet<Clause>(); // * resolve clause with each member of usable foreach (var c in usable) { ISet<Clause> resolvents = clause.BinaryResolvents(c); foreach (Clause rc in resolvents) { resultingClauses.Add(rc); } // if using paramodulation to handle equality if (this.UseParamodulation) { var paras = paramodulation.Apply(clause, c, true); foreach (var p in paras) { resultingClauses.Add(p); } } } // * return the resulting clauses after applying filter return ClauseFilter.Filter(resultingClauses); }
public void setClauseFilter(ClauseFilter clauseFilter) { this.clauseFilter = clauseFilter; }