diff options
Diffstat (limited to 'abstract/enum_domain.ml')
-rw-r--r-- | abstract/enum_domain.ml | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/abstract/enum_domain.ml b/abstract/enum_domain.ml index 4f6aacd..77d7e3f 100644 --- a/abstract/enum_domain.ml +++ b/abstract/enum_domain.ml @@ -119,11 +119,14 @@ module Valuation : ENUM_ENVIRONMENT_DOMAIN = struct if cc op s t then [x] else [] let apply_cl x l = - List.fold_left - (fun k c -> match apply_cons k c with - | [] -> raise Bot - | p::q -> List.fold_left join p q ) - x l + let f x = + List.fold_left + (fun k c -> match apply_cons k c with + | [] -> raise Bot + | p::q -> List.fold_left join p q ) + x l + in + fix eq f x let assign x idl = let v = List.fold_left @@ -242,11 +245,14 @@ module MultiValuation : ENUM_ENVIRONMENT_DOMAIN = struct [] v1 let apply_cl x l = - List.fold_left - (fun k c -> match apply_cons k c with - | [] -> raise Bot - | p::q -> List.fold_left join p q ) - x l + let f x = + List.fold_left + (fun k c -> match apply_cons k c with + | [] -> raise Bot + | p::q -> List.fold_left join p q ) + x l + in + fix eq f x let assign x idl = let v = List.fold_left |