| Atom _ -> 8
| And _ -> 6
| Or _ -> 1
+
+(* Begin Lucca Hirschi *)
+let rec eval_form ss f = match expr f with
+ | False -> false
+ | True -> true
+ | And(f1,f2) -> eval_form ss f1 && eval_form ss f2
+ | Or(f1,f2) -> eval_form ss f1 || eval_form ss f2
+ | Atom(dir, b, s) ->
+ let set = match dir with |`Left -> fst ss | `Right -> snd ss in
+ StateSet.mem s set
+(* End *)
let rec print ?(parent=false) ppf f =
if parent then fprintf ppf "(";