From e08cd8a9c9971dd0897200e1137596aecd83c4cb Mon Sep 17 00:00:00 2001 From: Christoph Egger <Christoph.Egger@fau.de> Date: Thu, 12 May 2016 17:33:39 +0200 Subject: [PATCH] Fix deferral tracking when "empty" least fixpoints appear --- src/lib/CoAlgMisc.ml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/lib/CoAlgMisc.ml b/src/lib/CoAlgMisc.ml index 8fd1f68..85d08bc 100644 --- a/src/lib/CoAlgMisc.ml +++ b/src/lib/CoAlgMisc.ml @@ -1017,10 +1017,15 @@ let rec detClosure vars nomTbl hcF fset vset atset nomset s f = FL(μ X . φ) = {μ X . φ} ∪ FL(φ[X|->μ X . φ]) *) | C.HCMU (name, f1) -> - let () = C.HcFHt.replace vset.(s) f name in - let unfold = C.hc_replace hcF name f f1 in - let appendvars = List.append newvars [name] in - detClosure appendvars nomTbl hcF fset vset atset nomset s unfold + begin + if C.hc_freeIn name f1 + then + C.HcFHt.replace vset.(s) f name + else (); + let unfold = C.hc_replace hcF name f f1 in + let appendvars = List.append newvars [name] in + detClosure appendvars nomTbl hcF fset vset atset nomset s unfold + end | C.HCNU (name, f1) -> let unfold = C.hc_replace hcF name f f1 in detClosure_ nomTbl hcF fset vset atset nomset s unfold -- GitLab