let f = if b then U.mql_prod else U.set_union in
let g a s = (fst a, f (snd a) (eval_grp c z)) :: s in
List.fold_right g (eval_query c x) []
- | M.Property q0 q1 q2 mc ct cf el pat y ->
+ | M.Property q0 q1 q2 mc ct cfl el pat y ->
let subj, mct =
if q0 then [], (pat, q2 @ mc, eval_val c y)
else (q2 @ mc), (pat, [], eval_val c y)
in
let eval_cons (pat, p, y) = (pat, q2 @ p, eval_val c y) in
let cons_true = mct :: List.map eval_cons ct in
- let cons_false = List.map eval_cons cf in
+ let cons_false = List.map (List.map eval_cons) cfl in
let eval_exp (p, po) = (q2 @ p, po) in
let exp = List.map eval_exp el in
let t = U.start_time () in