in
aux bag pos ctx id t
;;
-
- let vars_of_term t =
- let rec aux acc = function
- | Terms.Leaf _ -> acc
- | Terms.Var i -> if (List.mem i acc) then acc else i::acc
- | Terms.Node l -> List.fold_left aux acc l
- in aux [] t
- ;;
let build_clause bag filter rule t subst vl id id2 pos dir =
let proof = Terms.Step(rule,id,id2,dir,pos,subst) in
| t -> Terms.Predicate t
in
let bag, uc =
- Terms.add_to_bag (0, literal, vars_of_term t, proof) bag
+ Terms.add_to_bag (0, literal, Terms.vars_of_term t, proof) bag
in
Some (bag, uc)
else