fact: Definition intersect_env (neg:bool)(l:ab_env)(b:bexpr) : option ab_env := match b with blt (avar x) e => match Ab.add_test_constraint_right neg (ab_lookup l x) (ab_eval (ab_lookup l) e) with None => None | Some v => Some (ab_update l x v) end | blt e (avar x) => match Ab.add_test_constraint_left neg (ab_eval (ab_lookup l) e) (ab_lookup l x) with | None => None | Some v => Some (ab_update l x v) end | _ => Some l end.
imports: syntax little denot Bool List String ZArith axiom