summaryrefslogtreecommitdiff
path: root/abstract/enum_domain.ml
diff options
context:
space:
mode:
Diffstat (limited to 'abstract/enum_domain.ml')
-rw-r--r--abstract/enum_domain.ml26
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