bag ->
g_passives:t Terms.unit_clause list ->
passives:t Terms.unit_clause list -> szsontology
+ val demod :
+ state -> input* input -> szsontology
val fast_eq_check :
state -> input* input -> szsontology
val nparamod :
| Stop o -> o
;;
+let demod s goal =
+ let bag,maxvar,actives,passives,g_actives,g_passives = s in
+ let (bag,maxvar), g = mk_goal (bag,maxvar) goal in
+ if Terms.is_eq_clause g then
+ let bag, ((i,_,_,_) as g1) = Sup.demodulate bag g (snd actives) in
+ if g1 = g then GaveUp else compute_result bag i []
+ else GaveUp
+
let fast_eq_check s goal =
let (_,_,_,_,_,g_passives) as s = initialize_goal s goal in
if is_passive_g_set_empty g_passives then Error "not an equation"