From 4d08e8112264c289fdcc978ee81d9352e972edcf Mon Sep 17 00:00:00 2001 From: Enrico Tassi Date: Thu, 22 Apr 2004 12:33:35 +0000 Subject: [PATCH] Big bug fixed: in the case t - let fo_unif_subst = - let (lower,upper) = - match t1,t2 with - C.Meta (n,_), C.Meta (m,_) when n < m -> - (fun t1 t2 -> t1), (fun t1 t2 -> t2) - | _, C.Meta _ -> - (fun t1 t2 -> t1), (fun t1 t2 -> t2) - | _,_ -> - (fun t1 t2 -> t2), (fun t1 t2 -> t1) - in - fun subst context metasenv m1 m2 -> + let swap = + match t1,t2 with + C.Meta (n,_), C.Meta (m,_) when n < m -> false + | _, C.Meta _ -> false + | _,_ -> true + in + let lower = fun x y -> if swap then y else x in + let upper = fun x y -> if swap then x else y in + let fo_unif_subst_ordered subst context metasenv m1 m2 = fo_unif_subst subst context metasenv (lower m1 m2) (upper m1 m2) in let subst'',metasenv' = try let oldt = (List.assoc n subst) in let lifted_oldt = S.lift_meta l oldt in - fo_unif_subst subst context metasenv t lifted_oldt + fo_unif_subst_ordered subst context metasenv t lifted_oldt with Not_found -> let t',metasenv',subst' = try @@ -122,7 +120,7 @@ let rec fo_unif_subst subst context metasenv t1 t2 = (CicMetaSubst.MetaSubstFailure msg)-> raise(UnificationFailure msg) | (CicMetaSubst.Uncertain msg) -> raise (Uncertain msg) in - (n, t')::subst', metasenv' + (n, t')::subst', metasenv' in let (_,_,meta_type) = CicUtil.lookup_meta n metasenv' in (try -- 2.39.2