9.10/3.93 MAYBE 11.11/4.51 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 11.11/4.51 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 11.11/4.51 11.11/4.51 11.11/4.51 H-Termination with start terms of the given HASKELL could not be shown: 11.11/4.51 11.11/4.51 (0) HASKELL 11.11/4.51 (1) BR [EQUIVALENT, 0 ms] 11.11/4.51 (2) HASKELL 11.11/4.51 (3) COR [EQUIVALENT, 0 ms] 11.11/4.51 (4) HASKELL 11.11/4.51 (5) Narrow [SOUND, 0 ms] 11.11/4.51 (6) AND 11.11/4.51 (7) QDP 11.11/4.51 (8) MRRProof [EQUIVALENT, 41 ms] 11.11/4.51 (9) QDP 11.11/4.51 (10) QReductionProof [EQUIVALENT, 0 ms] 11.11/4.51 (11) QDP 11.11/4.51 (12) MNOCProof [EQUIVALENT, 0 ms] 11.11/4.51 (13) QDP 11.11/4.51 (14) NonTerminationLoopProof [COMPLETE, 0 ms] 11.11/4.51 (15) NO 11.11/4.51 (16) QDP 11.11/4.51 (17) NonTerminationLoopProof [COMPLETE, 0 ms] 11.11/4.51 (18) NO 11.11/4.51 (19) QDP 11.11/4.51 (20) DependencyGraphProof [EQUIVALENT, 0 ms] 11.11/4.51 (21) QDP 11.11/4.51 (22) QDPSizeChangeProof [EQUIVALENT, 0 ms] 11.11/4.51 (23) YES 11.11/4.51 (24) QDP 11.11/4.51 (25) NonTerminationLoopProof [COMPLETE, 0 ms] 11.11/4.51 (26) NO 11.11/4.51 (27) QDP 11.11/4.51 (28) NonTerminationLoopProof [COMPLETE, 0 ms] 11.11/4.51 (29) NO 11.11/4.51 (30) QDP 11.11/4.51 (31) QDPSizeChangeProof [EQUIVALENT, 0 ms] 11.11/4.51 (32) YES 11.11/4.51 (33) Narrow [COMPLETE, 0 ms] 11.11/4.51 (34) TRUE 11.11/4.51 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (0) 11.11/4.51 Obligation: 11.11/4.51 mainModule Main 11.11/4.51 module Main where { 11.11/4.51 import qualified Prelude; 11.11/4.51 data Main.Char = Char MyInt ; 11.11/4.51 11.11/4.51 data Either b a = Left b | Right a ; 11.11/4.51 11.11/4.51 data Main.HugsException = HugsException ; 11.11/4.51 11.11/4.51 data Main.IO a = IO ((Main.IOError -> Main.IOResult) -> (a -> Main.IOResult) -> Main.IOResult) ; 11.11/4.51 11.11/4.51 data Main.IOError = IOError Main.IOErrorKind (List Main.Char) (List Main.Char) (Main.Maybe (List Main.Char)) ; 11.11/4.51 11.11/4.51 data Main.IOErrorKind = Junk ; 11.11/4.51 11.11/4.51 data IOFinished a = Finished_ExitWith MyInt | Finished_Error Main.IOError | Finished_Return a ; 11.11/4.51 11.11/4.51 data Main.IOResult = Hugs_ExitWith MyInt | Hugs_Error Main.IOError | Hugs_Catch Main.IOResult (Main.HugsException -> Main.IOResult) (Main.IOError -> Main.IOResult) (Main.Obj -> Main.IOResult) | Hugs_ForkThread Main.IOResult Main.IOResult | Hugs_DeadThread | Hugs_YieldThread Main.IOResult | Hugs_Return Main.Obj | Hugs_BlockThread (Main.Obj -> Main.IOResult) ((Main.Obj -> Main.IOResult) -> Main.IOResult) ; 11.11/4.51 11.11/4.51 data List a = Cons a (List a) | Nil ; 11.11/4.51 11.11/4.51 data Main.Maybe a = Nothing | Just a ; 11.11/4.51 11.11/4.51 data MyBool = MyTrue | MyFalse ; 11.11/4.51 11.11/4.51 data MyInt = Pos Main.Nat | Neg Main.Nat ; 11.11/4.51 11.11/4.51 data Main.Nat = Succ Main.Nat | Zero ; 11.11/4.51 11.11/4.51 data Main.Obj = Obj ; 11.11/4.51 11.11/4.51 basicIORun :: Main.IO a -> IOFinished a; 11.11/4.51 basicIORun (Main.IO m) = loop (Cons (m Main.Hugs_Error (pt Main.Hugs_Return toObj)) Nil); 11.11/4.51 11.11/4.51 error :: a; 11.11/4.51 error = stop MyTrue; 11.11/4.51 11.11/4.51 fromObj :: Main.Obj -> a; 11.11/4.51 fromObj = fromObj; 11.11/4.51 11.11/4.51 hugs_catch :: Main.IOResult -> (Main.HugsException -> Main.IOResult) -> (Main.IOError -> Main.IOResult) -> (Main.Obj -> Main.IOResult) -> Main.IOResult; 11.11/4.51 hugs_catch m f1 f2 s = hugs_catchHugs_catch1 f1 s f2 (primCatchException (hugs_catchCatch' m)); 11.11/4.51 11.11/4.51 hugs_catchCatch' :: Main.IOResult -> Main.IOResult; 11.11/4.51 hugs_catchCatch' (Main.Hugs_Catch m' f1' f2' s') = hugs_catchCatch' (hugs_catch m' f1' f2' s'); 11.11/4.51 hugs_catchCatch' x = x; 11.11/4.51 11.11/4.51 hugs_catchHugs_catch0 a f1 f2 s x = Main.Hugs_Catch (a x) f1 f2 s; 11.11/4.51 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Left exn) = f1 exn; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_Return a)) = s a; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_Error e)) = f2 e; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_ForkThread a b)) = Main.Hugs_ForkThread (Main.Hugs_Catch a f1 f2 s) b; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_YieldThread a)) = Main.Hugs_YieldThread (Main.Hugs_Catch a f1 f2 s); 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_BlockThread a b)) = Main.Hugs_BlockThread (hugs_catchHugs_catch0 a f1 f2 s) b; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right r) = r; 11.11/4.51 11.11/4.51 loop :: List Main.IOResult -> IOFinished a; 11.11/4.51 loop Nil = Main.error; 11.11/4.51 loop (Cons (Main.Hugs_Return a) Nil) = Finished_Return (fromObj a); 11.11/4.51 loop (Cons (Main.Hugs_Return a) r) = loop (psPs r (Cons (Main.Hugs_Return a) Nil)); 11.11/4.51 loop (Cons (Main.Hugs_Catch m f1 f2 s) r) = loop (Cons (hugs_catch m f1 f2 s) r); 11.11/4.51 loop (Cons (Main.Hugs_Error e) vv) = Finished_Error e; 11.11/4.51 loop (Cons (Main.Hugs_ExitWith i) vw) = Finished_ExitWith i; 11.11/4.51 loop (Cons Main.Hugs_DeadThread r) = loop r; 11.11/4.51 loop (Cons (Main.Hugs_ForkThread a b) r) = loop (Cons a (Cons b r)); 11.11/4.51 loop (Cons (Main.Hugs_YieldThread a) r) = loop (psPs r (Cons a Nil)); 11.11/4.51 loop (Cons (Main.Hugs_BlockThread a b) r) = loop (Cons (b a) r); 11.11/4.51 loop vx = Main.error; 11.11/4.51 11.11/4.51 primCatchException :: a -> Either Main.HugsException a; 11.11/4.51 primCatchException = primCatchException; 11.11/4.51 11.11/4.51 psPs :: List a -> List a -> List a; 11.11/4.51 psPs Nil ys = ys; 11.11/4.51 psPs (Cons x xs) ys = Cons x (psPs xs ys); 11.11/4.51 11.11/4.51 pt :: (b -> a) -> (c -> b) -> c -> a; 11.11/4.51 pt f g x = f (g x); 11.11/4.51 11.11/4.51 stop :: MyBool -> a; 11.11/4.51 stop MyFalse = stop MyFalse; 11.11/4.51 11.11/4.51 toObj :: a -> Main.Obj; 11.11/4.51 toObj = toObj; 11.11/4.51 11.11/4.51 } 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (1) BR (EQUIVALENT) 11.11/4.51 Replaced joker patterns by fresh variables and removed binding patterns. 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (2) 11.11/4.51 Obligation: 11.11/4.51 mainModule Main 11.11/4.51 module Main where { 11.11/4.51 import qualified Prelude; 11.11/4.51 data Main.Char = Char MyInt ; 11.11/4.51 11.11/4.51 data Either a b = Left a | Right b ; 11.11/4.51 11.11/4.51 data Main.HugsException = HugsException ; 11.11/4.51 11.11/4.51 data Main.IO a = IO ((Main.IOError -> Main.IOResult) -> (a -> Main.IOResult) -> Main.IOResult) ; 11.11/4.51 11.11/4.51 data Main.IOError = IOError Main.IOErrorKind (List Main.Char) (List Main.Char) (Main.Maybe (List Main.Char)) ; 11.11/4.51 11.11/4.51 data Main.IOErrorKind = Junk ; 11.11/4.51 11.11/4.51 data IOFinished a = Finished_ExitWith MyInt | Finished_Error Main.IOError | Finished_Return a ; 11.11/4.51 11.11/4.51 data Main.IOResult = Hugs_ExitWith MyInt | Hugs_Error Main.IOError | Hugs_Catch Main.IOResult (Main.HugsException -> Main.IOResult) (Main.IOError -> Main.IOResult) (Main.Obj -> Main.IOResult) | Hugs_ForkThread Main.IOResult Main.IOResult | Hugs_DeadThread | Hugs_YieldThread Main.IOResult | Hugs_Return Main.Obj | Hugs_BlockThread (Main.Obj -> Main.IOResult) ((Main.Obj -> Main.IOResult) -> Main.IOResult) ; 11.11/4.51 11.11/4.51 data List a = Cons a (List a) | Nil ; 11.11/4.51 11.11/4.51 data Main.Maybe a = Nothing | Just a ; 11.11/4.51 11.11/4.51 data MyBool = MyTrue | MyFalse ; 11.11/4.51 11.11/4.51 data MyInt = Pos Main.Nat | Neg Main.Nat ; 11.11/4.51 11.11/4.51 data Main.Nat = Succ Main.Nat | Zero ; 11.11/4.51 11.11/4.51 data Main.Obj = Obj ; 11.11/4.51 11.11/4.51 basicIORun :: Main.IO a -> IOFinished a; 11.11/4.51 basicIORun (Main.IO m) = loop (Cons (m Main.Hugs_Error (pt Main.Hugs_Return toObj)) Nil); 11.11/4.51 11.11/4.51 error :: a; 11.11/4.51 error = stop MyTrue; 11.11/4.51 11.11/4.51 fromObj :: Main.Obj -> a; 11.11/4.51 fromObj = fromObj; 11.11/4.51 11.11/4.51 hugs_catch :: Main.IOResult -> (Main.HugsException -> Main.IOResult) -> (Main.IOError -> Main.IOResult) -> (Main.Obj -> Main.IOResult) -> Main.IOResult; 11.11/4.51 hugs_catch m f1 f2 s = hugs_catchHugs_catch1 f1 s f2 (primCatchException (hugs_catchCatch' m)); 11.11/4.51 11.11/4.51 hugs_catchCatch' :: Main.IOResult -> Main.IOResult; 11.11/4.51 hugs_catchCatch' (Main.Hugs_Catch m' f1' f2' s') = hugs_catchCatch' (hugs_catch m' f1' f2' s'); 11.11/4.51 hugs_catchCatch' x = x; 11.11/4.51 11.11/4.51 hugs_catchHugs_catch0 a f1 f2 s x = Main.Hugs_Catch (a x) f1 f2 s; 11.11/4.51 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Left exn) = f1 exn; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_Return a)) = s a; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_Error e)) = f2 e; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_ForkThread a b)) = Main.Hugs_ForkThread (Main.Hugs_Catch a f1 f2 s) b; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_YieldThread a)) = Main.Hugs_YieldThread (Main.Hugs_Catch a f1 f2 s); 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_BlockThread a b)) = Main.Hugs_BlockThread (hugs_catchHugs_catch0 a f1 f2 s) b; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right r) = r; 11.11/4.51 11.11/4.51 loop :: List Main.IOResult -> IOFinished a; 11.11/4.51 loop Nil = Main.error; 11.11/4.51 loop (Cons (Main.Hugs_Return a) Nil) = Finished_Return (fromObj a); 11.11/4.51 loop (Cons (Main.Hugs_Return a) r) = loop (psPs r (Cons (Main.Hugs_Return a) Nil)); 11.11/4.51 loop (Cons (Main.Hugs_Catch m f1 f2 s) r) = loop (Cons (hugs_catch m f1 f2 s) r); 11.11/4.51 loop (Cons (Main.Hugs_Error e) vv) = Finished_Error e; 11.11/4.51 loop (Cons (Main.Hugs_ExitWith i) vw) = Finished_ExitWith i; 11.11/4.51 loop (Cons Main.Hugs_DeadThread r) = loop r; 11.11/4.51 loop (Cons (Main.Hugs_ForkThread a b) r) = loop (Cons a (Cons b r)); 11.11/4.51 loop (Cons (Main.Hugs_YieldThread a) r) = loop (psPs r (Cons a Nil)); 11.11/4.51 loop (Cons (Main.Hugs_BlockThread a b) r) = loop (Cons (b a) r); 11.11/4.51 loop vx = Main.error; 11.11/4.51 11.11/4.51 primCatchException :: a -> Either Main.HugsException a; 11.11/4.51 primCatchException = primCatchException; 11.11/4.51 11.11/4.51 psPs :: List a -> List a -> List a; 11.11/4.51 psPs Nil ys = ys; 11.11/4.51 psPs (Cons x xs) ys = Cons x (psPs xs ys); 11.11/4.51 11.11/4.51 pt :: (b -> a) -> (c -> b) -> c -> a; 11.11/4.51 pt f g x = f (g x); 11.11/4.51 11.11/4.51 stop :: MyBool -> a; 11.11/4.51 stop MyFalse = stop MyFalse; 11.11/4.51 11.11/4.51 toObj :: a -> Main.Obj; 11.11/4.51 toObj = toObj; 11.11/4.51 11.11/4.51 } 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (3) COR (EQUIVALENT) 11.11/4.51 Cond Reductions: 11.11/4.51 The following Function with conditions 11.11/4.51 "undefined |Falseundefined; 11.11/4.51 " 11.11/4.51 is transformed to 11.11/4.51 "undefined = undefined1; 11.11/4.51 " 11.11/4.51 "undefined0 True = undefined; 11.11/4.51 " 11.11/4.51 "undefined1 = undefined0 False; 11.11/4.51 " 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (4) 11.11/4.51 Obligation: 11.11/4.51 mainModule Main 11.11/4.51 module Main where { 11.11/4.51 import qualified Prelude; 11.11/4.51 data Main.Char = Char MyInt ; 11.11/4.51 11.11/4.51 data Either a b = Left a | Right b ; 11.11/4.51 11.11/4.51 data Main.HugsException = HugsException ; 11.11/4.51 11.11/4.51 data Main.IO a = IO ((Main.IOError -> Main.IOResult) -> (a -> Main.IOResult) -> Main.IOResult) ; 11.11/4.51 11.11/4.51 data Main.IOError = IOError Main.IOErrorKind (List Main.Char) (List Main.Char) (Main.Maybe (List Main.Char)) ; 11.11/4.51 11.11/4.51 data Main.IOErrorKind = Junk ; 11.11/4.51 11.11/4.51 data IOFinished a = Finished_ExitWith MyInt | Finished_Error Main.IOError | Finished_Return a ; 11.11/4.51 11.11/4.51 data Main.IOResult = Hugs_ExitWith MyInt | Hugs_Error Main.IOError | Hugs_Catch Main.IOResult (Main.HugsException -> Main.IOResult) (Main.IOError -> Main.IOResult) (Main.Obj -> Main.IOResult) | Hugs_ForkThread Main.IOResult Main.IOResult | Hugs_DeadThread | Hugs_YieldThread Main.IOResult | Hugs_Return Main.Obj | Hugs_BlockThread (Main.Obj -> Main.IOResult) ((Main.Obj -> Main.IOResult) -> Main.IOResult) ; 11.11/4.51 11.11/4.51 data List a = Cons a (List a) | Nil ; 11.11/4.51 11.11/4.51 data Main.Maybe a = Nothing | Just a ; 11.11/4.51 11.11/4.51 data MyBool = MyTrue | MyFalse ; 11.11/4.51 11.11/4.51 data MyInt = Pos Main.Nat | Neg Main.Nat ; 11.11/4.51 11.11/4.51 data Main.Nat = Succ Main.Nat | Zero ; 11.11/4.51 11.11/4.51 data Main.Obj = Obj ; 11.11/4.51 11.11/4.51 basicIORun :: Main.IO a -> IOFinished a; 11.11/4.51 basicIORun (Main.IO m) = loop (Cons (m Main.Hugs_Error (pt Main.Hugs_Return toObj)) Nil); 11.11/4.51 11.11/4.51 error :: a; 11.11/4.51 error = stop MyTrue; 11.11/4.51 11.11/4.51 fromObj :: Main.Obj -> a; 11.11/4.51 fromObj = fromObj; 11.11/4.51 11.11/4.51 hugs_catch :: Main.IOResult -> (Main.HugsException -> Main.IOResult) -> (Main.IOError -> Main.IOResult) -> (Main.Obj -> Main.IOResult) -> Main.IOResult; 11.11/4.51 hugs_catch m f1 f2 s = hugs_catchHugs_catch1 f1 s f2 (primCatchException (hugs_catchCatch' m)); 11.11/4.51 11.11/4.51 hugs_catchCatch' :: Main.IOResult -> Main.IOResult; 11.11/4.51 hugs_catchCatch' (Main.Hugs_Catch m' f1' f2' s') = hugs_catchCatch' (hugs_catch m' f1' f2' s'); 11.11/4.51 hugs_catchCatch' x = x; 11.11/4.51 11.11/4.51 hugs_catchHugs_catch0 a f1 f2 s x = Main.Hugs_Catch (a x) f1 f2 s; 11.11/4.51 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Left exn) = f1 exn; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_Return a)) = s a; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_Error e)) = f2 e; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_ForkThread a b)) = Main.Hugs_ForkThread (Main.Hugs_Catch a f1 f2 s) b; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_YieldThread a)) = Main.Hugs_YieldThread (Main.Hugs_Catch a f1 f2 s); 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right (Main.Hugs_BlockThread a b)) = Main.Hugs_BlockThread (hugs_catchHugs_catch0 a f1 f2 s) b; 11.11/4.51 hugs_catchHugs_catch1 f1 s f2 (Right r) = r; 11.11/4.51 11.11/4.51 loop :: List Main.IOResult -> IOFinished a; 11.11/4.51 loop Nil = Main.error; 11.11/4.51 loop (Cons (Main.Hugs_Return a) Nil) = Finished_Return (fromObj a); 11.11/4.51 loop (Cons (Main.Hugs_Return a) r) = loop (psPs r (Cons (Main.Hugs_Return a) Nil)); 11.11/4.51 loop (Cons (Main.Hugs_Catch m f1 f2 s) r) = loop (Cons (hugs_catch m f1 f2 s) r); 11.11/4.51 loop (Cons (Main.Hugs_Error e) vv) = Finished_Error e; 11.11/4.51 loop (Cons (Main.Hugs_ExitWith i) vw) = Finished_ExitWith i; 11.11/4.51 loop (Cons Main.Hugs_DeadThread r) = loop r; 11.11/4.51 loop (Cons (Main.Hugs_ForkThread a b) r) = loop (Cons a (Cons b r)); 11.11/4.51 loop (Cons (Main.Hugs_YieldThread a) r) = loop (psPs r (Cons a Nil)); 11.11/4.51 loop (Cons (Main.Hugs_BlockThread a b) r) = loop (Cons (b a) r); 11.11/4.51 loop vx = Main.error; 11.11/4.51 11.11/4.51 primCatchException :: a -> Either Main.HugsException a; 11.11/4.51 primCatchException = primCatchException; 11.11/4.51 11.11/4.51 psPs :: List a -> List a -> List a; 11.11/4.51 psPs Nil ys = ys; 11.11/4.51 psPs (Cons x xs) ys = Cons x (psPs xs ys); 11.11/4.51 11.11/4.51 pt :: (b -> c) -> (a -> b) -> a -> c; 11.11/4.51 pt f g x = f (g x); 11.11/4.51 11.11/4.51 stop :: MyBool -> a; 11.11/4.51 stop MyFalse = stop MyFalse; 11.11/4.51 11.11/4.51 toObj :: a -> Main.Obj; 11.11/4.51 toObj = toObj; 11.11/4.51 11.11/4.51 } 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (5) Narrow (SOUND) 11.11/4.51 Haskell To QDPs 11.11/4.51 11.11/4.51 digraph dp_graph { 11.11/4.51 node [outthreshold=100, inthreshold=100];1[label="basicIORun",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 11.11/4.51 3[label="basicIORun wu3",fontsize=16,color="burlywood",shape="triangle"];403[label="wu3/IO wu30",fontsize=10,color="white",style="solid",shape="box"];3 -> 403[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 403 -> 4[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 4[label="basicIORun (IO wu30)",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 11.11/4.51 5 -> 238[label="",style="dashed", color="red", weight=0]; 11.11/4.51 5[label="loop (Cons (wu30 Hugs_Error (pt Hugs_Return toObj)) Nil)",fontsize=16,color="magenta"];5 -> 239[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 5 -> 240[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 239[label="Nil",fontsize=16,color="green",shape="box"];240[label="wu30 Hugs_Error (pt Hugs_Return toObj)",fontsize=16,color="green",shape="box"];240 -> 315[label="",style="dashed", color="green", weight=3]; 11.11/4.51 240 -> 316[label="",style="dashed", color="green", weight=3]; 11.11/4.51 238[label="loop (Cons wu8 wu9)",fontsize=16,color="burlywood",shape="triangle"];404[label="wu8/Hugs_ExitWith wu80",fontsize=10,color="white",style="solid",shape="box"];238 -> 404[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 404 -> 317[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 405[label="wu8/Hugs_Error wu80",fontsize=10,color="white",style="solid",shape="box"];238 -> 405[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 405 -> 318[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 406[label="wu8/Hugs_Catch wu80 wu81 wu82 wu83",fontsize=10,color="white",style="solid",shape="box"];238 -> 406[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 406 -> 319[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 407[label="wu8/Hugs_ForkThread wu80 wu81",fontsize=10,color="white",style="solid",shape="box"];238 -> 407[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 407 -> 320[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 408[label="wu8/Hugs_DeadThread",fontsize=10,color="white",style="solid",shape="box"];238 -> 408[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 408 -> 321[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 409[label="wu8/Hugs_YieldThread wu80",fontsize=10,color="white",style="solid",shape="box"];238 -> 409[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 409 -> 322[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 410[label="wu8/Hugs_Return wu80",fontsize=10,color="white",style="solid",shape="box"];238 -> 410[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 410 -> 323[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 411[label="wu8/Hugs_BlockThread wu80 wu81",fontsize=10,color="white",style="solid",shape="box"];238 -> 411[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 411 -> 324[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 315[label="Hugs_Error",fontsize=16,color="green",shape="box"];316[label="pt Hugs_Return toObj",fontsize=16,color="grey",shape="box"];316 -> 325[label="",style="dashed", color="grey", weight=3]; 11.11/4.51 317[label="loop (Cons (Hugs_ExitWith wu80) wu9)",fontsize=16,color="black",shape="box"];317 -> 326[label="",style="solid", color="black", weight=3]; 11.11/4.51 318[label="loop (Cons (Hugs_Error wu80) wu9)",fontsize=16,color="black",shape="box"];318 -> 327[label="",style="solid", color="black", weight=3]; 11.11/4.51 319[label="loop (Cons (Hugs_Catch wu80 wu81 wu82 wu83) wu9)",fontsize=16,color="black",shape="box"];319 -> 328[label="",style="solid", color="black", weight=3]; 11.11/4.51 320[label="loop (Cons (Hugs_ForkThread wu80 wu81) wu9)",fontsize=16,color="black",shape="box"];320 -> 329[label="",style="solid", color="black", weight=3]; 11.11/4.51 321[label="loop (Cons Hugs_DeadThread wu9)",fontsize=16,color="black",shape="box"];321 -> 330[label="",style="solid", color="black", weight=3]; 11.11/4.51 322[label="loop (Cons (Hugs_YieldThread wu80) wu9)",fontsize=16,color="black",shape="box"];322 -> 331[label="",style="solid", color="black", weight=3]; 11.11/4.51 323[label="loop (Cons (Hugs_Return wu80) wu9)",fontsize=16,color="burlywood",shape="box"];412[label="wu9/Cons wu90 wu91",fontsize=10,color="white",style="solid",shape="box"];323 -> 412[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 412 -> 332[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 413[label="wu9/Nil",fontsize=10,color="white",style="solid",shape="box"];323 -> 413[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 413 -> 333[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 324[label="loop (Cons (Hugs_BlockThread wu80 wu81) wu9)",fontsize=16,color="black",shape="box"];324 -> 334[label="",style="solid", color="black", weight=3]; 11.11/4.51 325[label="pt Hugs_Return toObj wu10",fontsize=16,color="black",shape="triangle"];325 -> 335[label="",style="solid", color="black", weight=3]; 11.11/4.51 326[label="Finished_ExitWith wu80",fontsize=16,color="green",shape="box"];327[label="Finished_Error wu80",fontsize=16,color="green",shape="box"];328 -> 238[label="",style="dashed", color="red", weight=0]; 11.11/4.51 328[label="loop (Cons (hugs_catch wu80 wu81 wu82 wu83) wu9)",fontsize=16,color="magenta"];328 -> 336[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 329 -> 238[label="",style="dashed", color="red", weight=0]; 11.11/4.51 329[label="loop (Cons wu80 (Cons wu81 wu9))",fontsize=16,color="magenta"];329 -> 337[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 329 -> 338[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 330[label="loop wu9",fontsize=16,color="burlywood",shape="triangle"];414[label="wu9/Cons wu90 wu91",fontsize=10,color="white",style="solid",shape="box"];330 -> 414[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 414 -> 339[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 415[label="wu9/Nil",fontsize=10,color="white",style="solid",shape="box"];330 -> 415[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 415 -> 340[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 331 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 331[label="loop (psPs wu9 (Cons wu80 Nil))",fontsize=16,color="magenta"];331 -> 341[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 332[label="loop (Cons (Hugs_Return wu80) (Cons wu90 wu91))",fontsize=16,color="black",shape="box"];332 -> 342[label="",style="solid", color="black", weight=3]; 11.11/4.51 333[label="loop (Cons (Hugs_Return wu80) Nil)",fontsize=16,color="black",shape="box"];333 -> 343[label="",style="solid", color="black", weight=3]; 11.11/4.51 334 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 334[label="loop (Cons (wu81 wu80) wu9)",fontsize=16,color="magenta"];334 -> 344[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 335[label="Hugs_Return (toObj wu10)",fontsize=16,color="green",shape="box"];335 -> 345[label="",style="dashed", color="green", weight=3]; 11.11/4.51 336[label="hugs_catch wu80 wu81 wu82 wu83",fontsize=16,color="black",shape="triangle"];336 -> 346[label="",style="solid", color="black", weight=3]; 11.11/4.51 337[label="Cons wu81 wu9",fontsize=16,color="green",shape="box"];338[label="wu80",fontsize=16,color="green",shape="box"];339[label="loop (Cons wu90 wu91)",fontsize=16,color="burlywood",shape="box"];416[label="wu90/Hugs_ExitWith wu900",fontsize=10,color="white",style="solid",shape="box"];339 -> 416[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 416 -> 347[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 417[label="wu90/Hugs_Error wu900",fontsize=10,color="white",style="solid",shape="box"];339 -> 417[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 417 -> 348[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 418[label="wu90/Hugs_Catch wu900 wu901 wu902 wu903",fontsize=10,color="white",style="solid",shape="box"];339 -> 418[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 418 -> 349[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 419[label="wu90/Hugs_ForkThread wu900 wu901",fontsize=10,color="white",style="solid",shape="box"];339 -> 419[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 419 -> 350[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 420[label="wu90/Hugs_DeadThread",fontsize=10,color="white",style="solid",shape="box"];339 -> 420[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 420 -> 351[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 421[label="wu90/Hugs_YieldThread wu900",fontsize=10,color="white",style="solid",shape="box"];339 -> 421[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 421 -> 352[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 422[label="wu90/Hugs_Return wu900",fontsize=10,color="white",style="solid",shape="box"];339 -> 422[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 422 -> 353[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 423[label="wu90/Hugs_BlockThread wu900 wu901",fontsize=10,color="white",style="solid",shape="box"];339 -> 423[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 423 -> 354[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 340[label="loop Nil",fontsize=16,color="black",shape="box"];340 -> 355[label="",style="solid", color="black", weight=3]; 11.11/4.51 341[label="psPs wu9 (Cons wu80 Nil)",fontsize=16,color="burlywood",shape="triangle"];424[label="wu9/Cons wu90 wu91",fontsize=10,color="white",style="solid",shape="box"];341 -> 424[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 424 -> 356[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 425[label="wu9/Nil",fontsize=10,color="white",style="solid",shape="box"];341 -> 425[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 425 -> 357[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 342 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 342[label="loop (psPs (Cons wu90 wu91) (Cons (Hugs_Return wu80) Nil))",fontsize=16,color="magenta"];342 -> 358[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 343[label="Finished_Return (fromObj wu80)",fontsize=16,color="green",shape="box"];343 -> 359[label="",style="dashed", color="green", weight=3]; 11.11/4.51 344[label="Cons (wu81 wu80) wu9",fontsize=16,color="green",shape="box"];344 -> 360[label="",style="dashed", color="green", weight=3]; 11.11/4.51 345[label="toObj wu10",fontsize=16,color="black",shape="triangle"];345 -> 361[label="",style="solid", color="black", weight=3]; 11.11/4.51 346[label="hugs_catchHugs_catch1 wu81 wu83 wu82 (primCatchException (hugs_catchCatch' wu80))",fontsize=16,color="black",shape="triangle"];346 -> 362[label="",style="solid", color="black", weight=3]; 11.11/4.51 347[label="loop (Cons (Hugs_ExitWith wu900) wu91)",fontsize=16,color="black",shape="box"];347 -> 363[label="",style="solid", color="black", weight=3]; 11.11/4.51 348[label="loop (Cons (Hugs_Error wu900) wu91)",fontsize=16,color="black",shape="box"];348 -> 364[label="",style="solid", color="black", weight=3]; 11.11/4.51 349[label="loop (Cons (Hugs_Catch wu900 wu901 wu902 wu903) wu91)",fontsize=16,color="black",shape="box"];349 -> 365[label="",style="solid", color="black", weight=3]; 11.11/4.51 350[label="loop (Cons (Hugs_ForkThread wu900 wu901) wu91)",fontsize=16,color="black",shape="box"];350 -> 366[label="",style="solid", color="black", weight=3]; 11.11/4.51 351[label="loop (Cons Hugs_DeadThread wu91)",fontsize=16,color="black",shape="box"];351 -> 367[label="",style="solid", color="black", weight=3]; 11.11/4.51 352[label="loop (Cons (Hugs_YieldThread wu900) wu91)",fontsize=16,color="black",shape="box"];352 -> 368[label="",style="solid", color="black", weight=3]; 11.11/4.51 353[label="loop (Cons (Hugs_Return wu900) wu91)",fontsize=16,color="burlywood",shape="box"];426[label="wu91/Cons wu910 wu911",fontsize=10,color="white",style="solid",shape="box"];353 -> 426[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 426 -> 369[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 427[label="wu91/Nil",fontsize=10,color="white",style="solid",shape="box"];353 -> 427[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 427 -> 370[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 354[label="loop (Cons (Hugs_BlockThread wu900 wu901) wu91)",fontsize=16,color="black",shape="box"];354 -> 371[label="",style="solid", color="black", weight=3]; 11.11/4.51 355[label="error",fontsize=16,color="black",shape="box"];355 -> 372[label="",style="solid", color="black", weight=3]; 11.11/4.51 356[label="psPs (Cons wu90 wu91) (Cons wu80 Nil)",fontsize=16,color="black",shape="box"];356 -> 373[label="",style="solid", color="black", weight=3]; 11.11/4.51 357[label="psPs Nil (Cons wu80 Nil)",fontsize=16,color="black",shape="box"];357 -> 374[label="",style="solid", color="black", weight=3]; 11.11/4.51 358 -> 341[label="",style="dashed", color="red", weight=0]; 11.11/4.51 358[label="psPs (Cons wu90 wu91) (Cons (Hugs_Return wu80) Nil)",fontsize=16,color="magenta"];358 -> 375[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 358 -> 376[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 359[label="fromObj wu80",fontsize=16,color="black",shape="triangle"];359 -> 377[label="",style="solid", color="black", weight=3]; 11.11/4.51 360[label="wu81 wu80",fontsize=16,color="green",shape="box"];360 -> 378[label="",style="dashed", color="green", weight=3]; 11.11/4.51 361 -> 345[label="",style="dashed", color="red", weight=0]; 11.11/4.51 361[label="toObj wu10",fontsize=16,color="magenta"];362 -> 346[label="",style="dashed", color="red", weight=0]; 11.11/4.51 362[label="hugs_catchHugs_catch1 wu81 wu83 wu82 (primCatchException (hugs_catchCatch' wu80))",fontsize=16,color="magenta"];363[label="Finished_ExitWith wu900",fontsize=16,color="green",shape="box"];364[label="Finished_Error wu900",fontsize=16,color="green",shape="box"];365 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 365[label="loop (Cons (hugs_catch wu900 wu901 wu902 wu903) wu91)",fontsize=16,color="magenta"];365 -> 379[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 366 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 366[label="loop (Cons wu900 (Cons wu901 wu91))",fontsize=16,color="magenta"];366 -> 380[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 367 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 367[label="loop wu91",fontsize=16,color="magenta"];367 -> 381[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 368 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 368[label="loop (psPs wu91 (Cons wu900 Nil))",fontsize=16,color="magenta"];368 -> 382[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 369[label="loop (Cons (Hugs_Return wu900) (Cons wu910 wu911))",fontsize=16,color="black",shape="box"];369 -> 383[label="",style="solid", color="black", weight=3]; 11.11/4.51 370[label="loop (Cons (Hugs_Return wu900) Nil)",fontsize=16,color="black",shape="box"];370 -> 384[label="",style="solid", color="black", weight=3]; 11.11/4.51 371 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 371[label="loop (Cons (wu901 wu900) wu91)",fontsize=16,color="magenta"];371 -> 385[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 372[label="stop MyTrue",fontsize=16,color="black",shape="box"];372 -> 386[label="",style="solid", color="black", weight=3]; 11.11/4.51 373[label="Cons wu90 (psPs wu91 (Cons wu80 Nil))",fontsize=16,color="green",shape="box"];373 -> 387[label="",style="dashed", color="green", weight=3]; 11.11/4.51 374[label="Cons wu80 Nil",fontsize=16,color="green",shape="box"];375[label="Cons wu90 wu91",fontsize=16,color="green",shape="box"];376[label="Hugs_Return wu80",fontsize=16,color="green",shape="box"];377 -> 359[label="",style="dashed", color="red", weight=0]; 11.11/4.51 377[label="fromObj wu80",fontsize=16,color="magenta"];378[label="wu80",fontsize=16,color="green",shape="box"];379[label="Cons (hugs_catch wu900 wu901 wu902 wu903) wu91",fontsize=16,color="green",shape="box"];379 -> 388[label="",style="dashed", color="green", weight=3]; 11.11/4.51 380[label="Cons wu900 (Cons wu901 wu91)",fontsize=16,color="green",shape="box"];381[label="wu91",fontsize=16,color="green",shape="box"];382 -> 341[label="",style="dashed", color="red", weight=0]; 11.11/4.51 382[label="psPs wu91 (Cons wu900 Nil)",fontsize=16,color="magenta"];382 -> 389[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 382 -> 390[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 383 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 383[label="loop (psPs (Cons wu910 wu911) (Cons (Hugs_Return wu900) Nil))",fontsize=16,color="magenta"];383 -> 391[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 384[label="Finished_Return (fromObj wu900)",fontsize=16,color="green",shape="box"];384 -> 392[label="",style="dashed", color="green", weight=3]; 11.11/4.51 385[label="Cons (wu901 wu900) wu91",fontsize=16,color="green",shape="box"];385 -> 393[label="",style="dashed", color="green", weight=3]; 11.11/4.51 386[label="error []",fontsize=16,color="red",shape="box"];387 -> 341[label="",style="dashed", color="red", weight=0]; 11.11/4.51 387[label="psPs wu91 (Cons wu80 Nil)",fontsize=16,color="magenta"];387 -> 394[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 388 -> 336[label="",style="dashed", color="red", weight=0]; 11.11/4.51 388[label="hugs_catch wu900 wu901 wu902 wu903",fontsize=16,color="magenta"];388 -> 395[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 388 -> 396[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 388 -> 397[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 388 -> 398[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 389[label="wu91",fontsize=16,color="green",shape="box"];390[label="wu900",fontsize=16,color="green",shape="box"];391 -> 341[label="",style="dashed", color="red", weight=0]; 11.11/4.51 391[label="psPs (Cons wu910 wu911) (Cons (Hugs_Return wu900) Nil)",fontsize=16,color="magenta"];391 -> 399[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 391 -> 400[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 392 -> 359[label="",style="dashed", color="red", weight=0]; 11.11/4.51 392[label="fromObj wu900",fontsize=16,color="magenta"];392 -> 401[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 393[label="wu901 wu900",fontsize=16,color="green",shape="box"];393 -> 402[label="",style="dashed", color="green", weight=3]; 11.11/4.51 394[label="wu91",fontsize=16,color="green",shape="box"];395[label="wu901",fontsize=16,color="green",shape="box"];396[label="wu900",fontsize=16,color="green",shape="box"];397[label="wu902",fontsize=16,color="green",shape="box"];398[label="wu903",fontsize=16,color="green",shape="box"];399[label="Cons wu910 wu911",fontsize=16,color="green",shape="box"];400[label="Hugs_Return wu900",fontsize=16,color="green",shape="box"];401[label="wu900",fontsize=16,color="green",shape="box"];402[label="wu900",fontsize=16,color="green",shape="box"];} 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (6) 11.11/4.51 Complex Obligation (AND) 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (7) 11.11/4.51 Obligation: 11.11/4.51 Q DP problem: 11.11/4.51 The TRS P consists of the following rules: 11.11/4.51 11.11/4.51 new_loop(h) -> new_loop(h) 11.11/4.51 11.11/4.51 The TRS R consists of the following rules: 11.11/4.51 11.11/4.51 new_hugs_catch(wu80, wu81, wu82, wu83) -> new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) 11.11/4.51 new_psPs0(Cons(wu90, wu91), wu80) -> Cons(wu90, new_psPs0(wu91, wu80)) 11.11/4.51 new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) -> new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) 11.11/4.51 new_psPs0(Nil, wu80) -> Cons(wu80, Nil) 11.11/4.51 11.11/4.51 The set Q consists of the following terms: 11.11/4.51 11.11/4.51 new_hugs_catchHugs_catch10(x0, x1, x2, x3) 11.11/4.51 new_psPs0(Nil, x0) 11.11/4.51 new_hugs_catch(x0, x1, x2, x3) 11.11/4.51 new_psPs0(Cons(x0, x1), x2) 11.11/4.51 11.11/4.51 We have to consider all minimal (P,Q,R)-chains. 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (8) MRRProof (EQUIVALENT) 11.11/4.51 By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. 11.11/4.51 11.11/4.51 11.11/4.51 Strictly oriented rules of the TRS R: 11.11/4.51 11.11/4.51 new_hugs_catch(wu80, wu81, wu82, wu83) -> new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) 11.11/4.51 new_psPs0(Cons(wu90, wu91), wu80) -> Cons(wu90, new_psPs0(wu91, wu80)) 11.11/4.51 new_psPs0(Nil, wu80) -> Cons(wu80, Nil) 11.11/4.51 11.11/4.51 Used ordering: Polynomial interpretation [POLO]: 11.11/4.51 11.11/4.51 POL(Cons(x_1, x_2)) = 1 + x_1 + x_2 11.11/4.51 POL(Nil) = 2 11.11/4.51 POL(new_hugs_catch(x_1, x_2, x_3, x_4)) = 2 + 2*x_1 + x_2 + 2*x_3 + x_4 11.11/4.51 POL(new_hugs_catchHugs_catch10(x_1, x_2, x_3, x_4)) = 1 + x_1 + x_2 + x_3 + x_4 11.11/4.51 POL(new_loop(x_1)) = x_1 11.11/4.51 POL(new_psPs0(x_1, x_2)) = 2*x_1 + 2*x_2 11.11/4.51 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (9) 11.11/4.51 Obligation: 11.11/4.51 Q DP problem: 11.11/4.51 The TRS P consists of the following rules: 11.11/4.51 11.11/4.51 new_loop(h) -> new_loop(h) 11.11/4.51 11.11/4.51 The TRS R consists of the following rules: 11.11/4.51 11.11/4.51 new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) -> new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) 11.11/4.51 11.11/4.51 The set Q consists of the following terms: 11.11/4.51 11.11/4.51 new_hugs_catchHugs_catch10(x0, x1, x2, x3) 11.11/4.51 new_psPs0(Nil, x0) 11.11/4.51 new_hugs_catch(x0, x1, x2, x3) 11.11/4.51 new_psPs0(Cons(x0, x1), x2) 11.11/4.51 11.11/4.51 We have to consider all minimal (P,Q,R)-chains. 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (10) QReductionProof (EQUIVALENT) 11.11/4.51 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 11.11/4.51 11.11/4.51 new_psPs0(Nil, x0) 11.11/4.51 new_hugs_catch(x0, x1, x2, x3) 11.11/4.51 new_psPs0(Cons(x0, x1), x2) 11.11/4.51 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (11) 11.11/4.51 Obligation: 11.11/4.51 Q DP problem: 11.11/4.51 The TRS P consists of the following rules: 11.11/4.51 11.11/4.51 new_loop(h) -> new_loop(h) 11.11/4.51 11.11/4.51 The TRS R consists of the following rules: 11.11/4.51 11.11/4.51 new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) -> new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) 11.11/4.51 11.11/4.51 The set Q consists of the following terms: 11.11/4.51 11.11/4.51 new_hugs_catchHugs_catch10(x0, x1, x2, x3) 11.11/4.51 11.11/4.51 We have to consider all minimal (P,Q,R)-chains. 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (12) MNOCProof (EQUIVALENT) 11.11/4.51 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (13) 11.11/4.51 Obligation: 11.11/4.51 Q DP problem: 11.11/4.51 The TRS P consists of the following rules: 11.11/4.51 11.11/4.51 new_loop(h) -> new_loop(h) 11.11/4.51 11.11/4.51 The TRS R consists of the following rules: 11.11/4.51 11.11/4.51 new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) -> new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) 11.11/4.51 11.11/4.51 Q is empty. 11.11/4.51 We have to consider all (P,Q,R)-chains. 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (14) NonTerminationLoopProof (COMPLETE) 11.11/4.51 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 11.11/4.51 Found a loop by semiunifying a rule from P directly. 11.11/4.51 11.11/4.51 s = new_loop(h) evaluates to t =new_loop(h) 11.11/4.51 11.11/4.51 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 11.11/4.51 * Matcher: [ ] 11.11/4.51 * Semiunifier: [ ] 11.11/4.51 11.11/4.51 -------------------------------------------------------------------------------- 11.11/4.51 Rewriting sequence 11.11/4.51 11.11/4.51 The DP semiunifies directly so there is only one rewrite step from new_loop(h) to new_loop(h). 11.11/4.51 11.11/4.51 11.11/4.51 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (15) 11.11/4.51 NO 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (16) 11.11/4.51 Obligation: 11.11/4.51 Q DP problem: 11.11/4.51 The TRS P consists of the following rules: 11.11/4.51 11.11/4.51 new_toObj(wu10, h) -> new_toObj(wu10, h) 11.11/4.51 11.11/4.51 R is empty. 11.11/4.51 Q is empty. 11.11/4.51 We have to consider all minimal (P,Q,R)-chains. 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (17) NonTerminationLoopProof (COMPLETE) 11.11/4.51 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 11.11/4.51 Found a loop by semiunifying a rule from P directly. 11.11/4.51 11.11/4.51 s = new_toObj(wu10, h) evaluates to t =new_toObj(wu10, h) 11.11/4.51 11.11/4.51 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 11.11/4.51 * Matcher: [ ] 11.11/4.51 * Semiunifier: [ ] 11.11/4.51 11.11/4.51 -------------------------------------------------------------------------------- 11.11/4.51 Rewriting sequence 11.11/4.51 11.11/4.51 The DP semiunifies directly so there is only one rewrite step from new_toObj(wu10, h) to new_toObj(wu10, h). 11.11/4.51 11.11/4.51 11.11/4.51 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (18) 11.11/4.51 NO 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (19) 11.11/4.51 Obligation: 11.11/4.51 Q DP problem: 11.11/4.51 The TRS P consists of the following rules: 11.11/4.51 11.11/4.51 new_loop0(Main.Hugs_Catch(wu80, wu81, wu82, wu83), wu9, h) -> new_loop0(new_hugs_catch(wu80, wu81, wu82, wu83), wu9, h) 11.11/4.51 new_loop0(Main.Hugs_ForkThread(wu80, wu81), wu9, h) -> new_loop0(wu80, Cons(wu81, wu9), h) 11.11/4.51 11.11/4.51 The TRS R consists of the following rules: 11.11/4.51 11.11/4.51 new_hugs_catch(wu80, wu81, wu82, wu83) -> new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) 11.11/4.51 new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) -> new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) 11.11/4.51 11.11/4.51 The set Q consists of the following terms: 11.11/4.51 11.11/4.51 new_hugs_catchHugs_catch10(x0, x1, x2, x3) 11.11/4.51 new_hugs_catch(x0, x1, x2, x3) 11.11/4.51 11.11/4.51 We have to consider all minimal (P,Q,R)-chains. 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (20) DependencyGraphProof (EQUIVALENT) 11.11/4.51 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (21) 11.11/4.51 Obligation: 11.11/4.51 Q DP problem: 11.11/4.51 The TRS P consists of the following rules: 11.11/4.51 11.11/4.51 new_loop0(Main.Hugs_ForkThread(wu80, wu81), wu9, h) -> new_loop0(wu80, Cons(wu81, wu9), h) 11.11/4.51 11.11/4.51 The TRS R consists of the following rules: 11.11/4.51 11.11/4.51 new_hugs_catch(wu80, wu81, wu82, wu83) -> new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) 11.11/4.51 new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) -> new_hugs_catchHugs_catch10(wu81, wu83, wu82, wu80) 11.11/4.51 11.11/4.51 The set Q consists of the following terms: 11.11/4.51 11.11/4.51 new_hugs_catchHugs_catch10(x0, x1, x2, x3) 11.11/4.51 new_hugs_catch(x0, x1, x2, x3) 11.11/4.51 11.11/4.51 We have to consider all minimal (P,Q,R)-chains. 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (22) QDPSizeChangeProof (EQUIVALENT) 11.11/4.51 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 11.11/4.51 11.11/4.51 From the DPs we obtained the following set of size-change graphs: 11.11/4.51 *new_loop0(Main.Hugs_ForkThread(wu80, wu81), wu9, h) -> new_loop0(wu80, Cons(wu81, wu9), h) 11.11/4.51 The graph contains the following edges 1 > 1, 3 >= 3 11.11/4.51 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (23) 11.11/4.51 YES 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (24) 11.11/4.51 Obligation: 11.11/4.51 Q DP problem: 11.11/4.51 The TRS P consists of the following rules: 11.11/4.51 11.11/4.51 new_hugs_catchHugs_catch1(wu81, wu83, wu82, wu80) -> new_hugs_catchHugs_catch1(wu81, wu83, wu82, wu80) 11.11/4.51 11.11/4.51 R is empty. 11.11/4.51 Q is empty. 11.11/4.51 We have to consider all minimal (P,Q,R)-chains. 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (25) NonTerminationLoopProof (COMPLETE) 11.11/4.51 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 11.11/4.51 Found a loop by semiunifying a rule from P directly. 11.11/4.51 11.11/4.51 s = new_hugs_catchHugs_catch1(wu81, wu83, wu82, wu80) evaluates to t =new_hugs_catchHugs_catch1(wu81, wu83, wu82, wu80) 11.11/4.51 11.11/4.51 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 11.11/4.51 * Matcher: [ ] 11.11/4.51 * Semiunifier: [ ] 11.11/4.51 11.11/4.51 -------------------------------------------------------------------------------- 11.11/4.51 Rewriting sequence 11.11/4.51 11.11/4.51 The DP semiunifies directly so there is only one rewrite step from new_hugs_catchHugs_catch1(wu81, wu83, wu82, wu80) to new_hugs_catchHugs_catch1(wu81, wu83, wu82, wu80). 11.11/4.51 11.11/4.51 11.11/4.51 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (26) 11.11/4.51 NO 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (27) 11.11/4.51 Obligation: 11.11/4.51 Q DP problem: 11.11/4.51 The TRS P consists of the following rules: 11.11/4.51 11.11/4.51 new_fromObj(wu80, h) -> new_fromObj(wu80, h) 11.11/4.51 11.11/4.51 R is empty. 11.11/4.51 Q is empty. 11.11/4.51 We have to consider all minimal (P,Q,R)-chains. 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (28) NonTerminationLoopProof (COMPLETE) 11.11/4.51 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 11.11/4.51 Found a loop by semiunifying a rule from P directly. 11.11/4.51 11.11/4.51 s = new_fromObj(wu80, h) evaluates to t =new_fromObj(wu80, h) 11.11/4.51 11.11/4.51 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 11.11/4.51 * Matcher: [ ] 11.11/4.51 * Semiunifier: [ ] 11.11/4.51 11.11/4.51 -------------------------------------------------------------------------------- 11.11/4.51 Rewriting sequence 11.11/4.51 11.11/4.51 The DP semiunifies directly so there is only one rewrite step from new_fromObj(wu80, h) to new_fromObj(wu80, h). 11.11/4.51 11.11/4.51 11.11/4.51 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (29) 11.11/4.51 NO 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (30) 11.11/4.51 Obligation: 11.11/4.51 Q DP problem: 11.11/4.51 The TRS P consists of the following rules: 11.11/4.51 11.11/4.51 new_psPs(Cons(wu90, wu91), wu80) -> new_psPs(wu91, wu80) 11.11/4.51 11.11/4.51 R is empty. 11.11/4.51 Q is empty. 11.11/4.51 We have to consider all minimal (P,Q,R)-chains. 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (31) QDPSizeChangeProof (EQUIVALENT) 11.11/4.51 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 11.11/4.51 11.11/4.51 From the DPs we obtained the following set of size-change graphs: 11.11/4.51 *new_psPs(Cons(wu90, wu91), wu80) -> new_psPs(wu91, wu80) 11.11/4.51 The graph contains the following edges 1 > 1, 2 >= 2 11.11/4.51 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (32) 11.11/4.51 YES 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (33) Narrow (COMPLETE) 11.11/4.51 Haskell To QDPs 11.11/4.51 11.11/4.51 digraph dp_graph { 11.11/4.51 node [outthreshold=100, inthreshold=100];1[label="basicIORun",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 11.11/4.51 3[label="basicIORun wu3",fontsize=16,color="burlywood",shape="triangle"];403[label="wu3/IO wu30",fontsize=10,color="white",style="solid",shape="box"];3 -> 403[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 403 -> 4[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 4[label="basicIORun (IO wu30)",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 11.11/4.51 5 -> 238[label="",style="dashed", color="red", weight=0]; 11.11/4.51 5[label="loop (Cons (wu30 Hugs_Error (pt Hugs_Return toObj)) Nil)",fontsize=16,color="magenta"];5 -> 239[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 5 -> 240[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 239[label="Nil",fontsize=16,color="green",shape="box"];240[label="wu30 Hugs_Error (pt Hugs_Return toObj)",fontsize=16,color="green",shape="box"];240 -> 315[label="",style="dashed", color="green", weight=3]; 11.11/4.51 240 -> 316[label="",style="dashed", color="green", weight=3]; 11.11/4.51 238[label="loop (Cons wu8 wu9)",fontsize=16,color="burlywood",shape="triangle"];404[label="wu8/Hugs_ExitWith wu80",fontsize=10,color="white",style="solid",shape="box"];238 -> 404[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 404 -> 317[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 405[label="wu8/Hugs_Error wu80",fontsize=10,color="white",style="solid",shape="box"];238 -> 405[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 405 -> 318[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 406[label="wu8/Hugs_Catch wu80 wu81 wu82 wu83",fontsize=10,color="white",style="solid",shape="box"];238 -> 406[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 406 -> 319[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 407[label="wu8/Hugs_ForkThread wu80 wu81",fontsize=10,color="white",style="solid",shape="box"];238 -> 407[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 407 -> 320[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 408[label="wu8/Hugs_DeadThread",fontsize=10,color="white",style="solid",shape="box"];238 -> 408[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 408 -> 321[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 409[label="wu8/Hugs_YieldThread wu80",fontsize=10,color="white",style="solid",shape="box"];238 -> 409[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 409 -> 322[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 410[label="wu8/Hugs_Return wu80",fontsize=10,color="white",style="solid",shape="box"];238 -> 410[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 410 -> 323[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 411[label="wu8/Hugs_BlockThread wu80 wu81",fontsize=10,color="white",style="solid",shape="box"];238 -> 411[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 411 -> 324[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 315[label="Hugs_Error",fontsize=16,color="green",shape="box"];316[label="pt Hugs_Return toObj",fontsize=16,color="grey",shape="box"];316 -> 325[label="",style="dashed", color="grey", weight=3]; 11.11/4.51 317[label="loop (Cons (Hugs_ExitWith wu80) wu9)",fontsize=16,color="black",shape="box"];317 -> 326[label="",style="solid", color="black", weight=3]; 11.11/4.51 318[label="loop (Cons (Hugs_Error wu80) wu9)",fontsize=16,color="black",shape="box"];318 -> 327[label="",style="solid", color="black", weight=3]; 11.11/4.51 319[label="loop (Cons (Hugs_Catch wu80 wu81 wu82 wu83) wu9)",fontsize=16,color="black",shape="box"];319 -> 328[label="",style="solid", color="black", weight=3]; 11.11/4.51 320[label="loop (Cons (Hugs_ForkThread wu80 wu81) wu9)",fontsize=16,color="black",shape="box"];320 -> 329[label="",style="solid", color="black", weight=3]; 11.11/4.51 321[label="loop (Cons Hugs_DeadThread wu9)",fontsize=16,color="black",shape="box"];321 -> 330[label="",style="solid", color="black", weight=3]; 11.11/4.51 322[label="loop (Cons (Hugs_YieldThread wu80) wu9)",fontsize=16,color="black",shape="box"];322 -> 331[label="",style="solid", color="black", weight=3]; 11.11/4.51 323[label="loop (Cons (Hugs_Return wu80) wu9)",fontsize=16,color="burlywood",shape="box"];412[label="wu9/Cons wu90 wu91",fontsize=10,color="white",style="solid",shape="box"];323 -> 412[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 412 -> 332[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 413[label="wu9/Nil",fontsize=10,color="white",style="solid",shape="box"];323 -> 413[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 413 -> 333[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 324[label="loop (Cons (Hugs_BlockThread wu80 wu81) wu9)",fontsize=16,color="black",shape="box"];324 -> 334[label="",style="solid", color="black", weight=3]; 11.11/4.51 325[label="pt Hugs_Return toObj wu10",fontsize=16,color="black",shape="triangle"];325 -> 335[label="",style="solid", color="black", weight=3]; 11.11/4.51 326[label="Finished_ExitWith wu80",fontsize=16,color="green",shape="box"];327[label="Finished_Error wu80",fontsize=16,color="green",shape="box"];328 -> 238[label="",style="dashed", color="red", weight=0]; 11.11/4.51 328[label="loop (Cons (hugs_catch wu80 wu81 wu82 wu83) wu9)",fontsize=16,color="magenta"];328 -> 336[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 329 -> 238[label="",style="dashed", color="red", weight=0]; 11.11/4.51 329[label="loop (Cons wu80 (Cons wu81 wu9))",fontsize=16,color="magenta"];329 -> 337[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 329 -> 338[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 330[label="loop wu9",fontsize=16,color="burlywood",shape="triangle"];414[label="wu9/Cons wu90 wu91",fontsize=10,color="white",style="solid",shape="box"];330 -> 414[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 414 -> 339[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 415[label="wu9/Nil",fontsize=10,color="white",style="solid",shape="box"];330 -> 415[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 415 -> 340[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 331 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 331[label="loop (psPs wu9 (Cons wu80 Nil))",fontsize=16,color="magenta"];331 -> 341[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 332[label="loop (Cons (Hugs_Return wu80) (Cons wu90 wu91))",fontsize=16,color="black",shape="box"];332 -> 342[label="",style="solid", color="black", weight=3]; 11.11/4.51 333[label="loop (Cons (Hugs_Return wu80) Nil)",fontsize=16,color="black",shape="box"];333 -> 343[label="",style="solid", color="black", weight=3]; 11.11/4.51 334 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 334[label="loop (Cons (wu81 wu80) wu9)",fontsize=16,color="magenta"];334 -> 344[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 335[label="Hugs_Return (toObj wu10)",fontsize=16,color="green",shape="box"];335 -> 345[label="",style="dashed", color="green", weight=3]; 11.11/4.51 336[label="hugs_catch wu80 wu81 wu82 wu83",fontsize=16,color="black",shape="triangle"];336 -> 346[label="",style="solid", color="black", weight=3]; 11.11/4.51 337[label="Cons wu81 wu9",fontsize=16,color="green",shape="box"];338[label="wu80",fontsize=16,color="green",shape="box"];339[label="loop (Cons wu90 wu91)",fontsize=16,color="burlywood",shape="box"];416[label="wu90/Hugs_ExitWith wu900",fontsize=10,color="white",style="solid",shape="box"];339 -> 416[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 416 -> 347[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 417[label="wu90/Hugs_Error wu900",fontsize=10,color="white",style="solid",shape="box"];339 -> 417[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 417 -> 348[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 418[label="wu90/Hugs_Catch wu900 wu901 wu902 wu903",fontsize=10,color="white",style="solid",shape="box"];339 -> 418[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 418 -> 349[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 419[label="wu90/Hugs_ForkThread wu900 wu901",fontsize=10,color="white",style="solid",shape="box"];339 -> 419[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 419 -> 350[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 420[label="wu90/Hugs_DeadThread",fontsize=10,color="white",style="solid",shape="box"];339 -> 420[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 420 -> 351[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 421[label="wu90/Hugs_YieldThread wu900",fontsize=10,color="white",style="solid",shape="box"];339 -> 421[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 421 -> 352[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 422[label="wu90/Hugs_Return wu900",fontsize=10,color="white",style="solid",shape="box"];339 -> 422[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 422 -> 353[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 423[label="wu90/Hugs_BlockThread wu900 wu901",fontsize=10,color="white",style="solid",shape="box"];339 -> 423[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 423 -> 354[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 340[label="loop Nil",fontsize=16,color="black",shape="box"];340 -> 355[label="",style="solid", color="black", weight=3]; 11.11/4.51 341[label="psPs wu9 (Cons wu80 Nil)",fontsize=16,color="burlywood",shape="triangle"];424[label="wu9/Cons wu90 wu91",fontsize=10,color="white",style="solid",shape="box"];341 -> 424[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 424 -> 356[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 425[label="wu9/Nil",fontsize=10,color="white",style="solid",shape="box"];341 -> 425[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 425 -> 357[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 342 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 342[label="loop (psPs (Cons wu90 wu91) (Cons (Hugs_Return wu80) Nil))",fontsize=16,color="magenta"];342 -> 358[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 343[label="Finished_Return (fromObj wu80)",fontsize=16,color="green",shape="box"];343 -> 359[label="",style="dashed", color="green", weight=3]; 11.11/4.51 344[label="Cons (wu81 wu80) wu9",fontsize=16,color="green",shape="box"];344 -> 360[label="",style="dashed", color="green", weight=3]; 11.11/4.51 345[label="toObj wu10",fontsize=16,color="black",shape="triangle"];345 -> 361[label="",style="solid", color="black", weight=3]; 11.11/4.51 346[label="hugs_catchHugs_catch1 wu81 wu83 wu82 (primCatchException (hugs_catchCatch' wu80))",fontsize=16,color="black",shape="triangle"];346 -> 362[label="",style="solid", color="black", weight=3]; 11.11/4.51 347[label="loop (Cons (Hugs_ExitWith wu900) wu91)",fontsize=16,color="black",shape="box"];347 -> 363[label="",style="solid", color="black", weight=3]; 11.11/4.51 348[label="loop (Cons (Hugs_Error wu900) wu91)",fontsize=16,color="black",shape="box"];348 -> 364[label="",style="solid", color="black", weight=3]; 11.11/4.51 349[label="loop (Cons (Hugs_Catch wu900 wu901 wu902 wu903) wu91)",fontsize=16,color="black",shape="box"];349 -> 365[label="",style="solid", color="black", weight=3]; 11.11/4.51 350[label="loop (Cons (Hugs_ForkThread wu900 wu901) wu91)",fontsize=16,color="black",shape="box"];350 -> 366[label="",style="solid", color="black", weight=3]; 11.11/4.51 351[label="loop (Cons Hugs_DeadThread wu91)",fontsize=16,color="black",shape="box"];351 -> 367[label="",style="solid", color="black", weight=3]; 11.11/4.51 352[label="loop (Cons (Hugs_YieldThread wu900) wu91)",fontsize=16,color="black",shape="box"];352 -> 368[label="",style="solid", color="black", weight=3]; 11.11/4.51 353[label="loop (Cons (Hugs_Return wu900) wu91)",fontsize=16,color="burlywood",shape="box"];426[label="wu91/Cons wu910 wu911",fontsize=10,color="white",style="solid",shape="box"];353 -> 426[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 426 -> 369[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 427[label="wu91/Nil",fontsize=10,color="white",style="solid",shape="box"];353 -> 427[label="",style="solid", color="burlywood", weight=9]; 11.11/4.51 427 -> 370[label="",style="solid", color="burlywood", weight=3]; 11.11/4.51 354[label="loop (Cons (Hugs_BlockThread wu900 wu901) wu91)",fontsize=16,color="black",shape="box"];354 -> 371[label="",style="solid", color="black", weight=3]; 11.11/4.51 355[label="error",fontsize=16,color="black",shape="box"];355 -> 372[label="",style="solid", color="black", weight=3]; 11.11/4.51 356[label="psPs (Cons wu90 wu91) (Cons wu80 Nil)",fontsize=16,color="black",shape="box"];356 -> 373[label="",style="solid", color="black", weight=3]; 11.11/4.51 357[label="psPs Nil (Cons wu80 Nil)",fontsize=16,color="black",shape="box"];357 -> 374[label="",style="solid", color="black", weight=3]; 11.11/4.51 358 -> 341[label="",style="dashed", color="red", weight=0]; 11.11/4.51 358[label="psPs (Cons wu90 wu91) (Cons (Hugs_Return wu80) Nil)",fontsize=16,color="magenta"];358 -> 375[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 358 -> 376[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 359[label="fromObj wu80",fontsize=16,color="black",shape="triangle"];359 -> 377[label="",style="solid", color="black", weight=3]; 11.11/4.51 360[label="wu81 wu80",fontsize=16,color="green",shape="box"];360 -> 378[label="",style="dashed", color="green", weight=3]; 11.11/4.51 361 -> 345[label="",style="dashed", color="red", weight=0]; 11.11/4.51 361[label="toObj wu10",fontsize=16,color="magenta"];362 -> 346[label="",style="dashed", color="red", weight=0]; 11.11/4.51 362[label="hugs_catchHugs_catch1 wu81 wu83 wu82 (primCatchException (hugs_catchCatch' wu80))",fontsize=16,color="magenta"];363[label="Finished_ExitWith wu900",fontsize=16,color="green",shape="box"];364[label="Finished_Error wu900",fontsize=16,color="green",shape="box"];365 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 365[label="loop (Cons (hugs_catch wu900 wu901 wu902 wu903) wu91)",fontsize=16,color="magenta"];365 -> 379[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 366 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 366[label="loop (Cons wu900 (Cons wu901 wu91))",fontsize=16,color="magenta"];366 -> 380[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 367 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 367[label="loop wu91",fontsize=16,color="magenta"];367 -> 381[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 368 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 368[label="loop (psPs wu91 (Cons wu900 Nil))",fontsize=16,color="magenta"];368 -> 382[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 369[label="loop (Cons (Hugs_Return wu900) (Cons wu910 wu911))",fontsize=16,color="black",shape="box"];369 -> 383[label="",style="solid", color="black", weight=3]; 11.11/4.51 370[label="loop (Cons (Hugs_Return wu900) Nil)",fontsize=16,color="black",shape="box"];370 -> 384[label="",style="solid", color="black", weight=3]; 11.11/4.51 371 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 371[label="loop (Cons (wu901 wu900) wu91)",fontsize=16,color="magenta"];371 -> 385[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 372[label="stop MyTrue",fontsize=16,color="black",shape="box"];372 -> 386[label="",style="solid", color="black", weight=3]; 11.11/4.51 373[label="Cons wu90 (psPs wu91 (Cons wu80 Nil))",fontsize=16,color="green",shape="box"];373 -> 387[label="",style="dashed", color="green", weight=3]; 11.11/4.51 374[label="Cons wu80 Nil",fontsize=16,color="green",shape="box"];375[label="Cons wu90 wu91",fontsize=16,color="green",shape="box"];376[label="Hugs_Return wu80",fontsize=16,color="green",shape="box"];377 -> 359[label="",style="dashed", color="red", weight=0]; 11.11/4.51 377[label="fromObj wu80",fontsize=16,color="magenta"];378[label="wu80",fontsize=16,color="green",shape="box"];379[label="Cons (hugs_catch wu900 wu901 wu902 wu903) wu91",fontsize=16,color="green",shape="box"];379 -> 388[label="",style="dashed", color="green", weight=3]; 11.11/4.51 380[label="Cons wu900 (Cons wu901 wu91)",fontsize=16,color="green",shape="box"];381[label="wu91",fontsize=16,color="green",shape="box"];382 -> 341[label="",style="dashed", color="red", weight=0]; 11.11/4.51 382[label="psPs wu91 (Cons wu900 Nil)",fontsize=16,color="magenta"];382 -> 389[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 382 -> 390[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 383 -> 330[label="",style="dashed", color="red", weight=0]; 11.11/4.51 383[label="loop (psPs (Cons wu910 wu911) (Cons (Hugs_Return wu900) Nil))",fontsize=16,color="magenta"];383 -> 391[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 384[label="Finished_Return (fromObj wu900)",fontsize=16,color="green",shape="box"];384 -> 392[label="",style="dashed", color="green", weight=3]; 11.11/4.51 385[label="Cons (wu901 wu900) wu91",fontsize=16,color="green",shape="box"];385 -> 393[label="",style="dashed", color="green", weight=3]; 11.11/4.51 386[label="error []",fontsize=16,color="red",shape="box"];387 -> 341[label="",style="dashed", color="red", weight=0]; 11.11/4.51 387[label="psPs wu91 (Cons wu80 Nil)",fontsize=16,color="magenta"];387 -> 394[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 388 -> 336[label="",style="dashed", color="red", weight=0]; 11.11/4.51 388[label="hugs_catch wu900 wu901 wu902 wu903",fontsize=16,color="magenta"];388 -> 395[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 388 -> 396[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 388 -> 397[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 388 -> 398[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 389[label="wu91",fontsize=16,color="green",shape="box"];390[label="wu900",fontsize=16,color="green",shape="box"];391 -> 341[label="",style="dashed", color="red", weight=0]; 11.11/4.51 391[label="psPs (Cons wu910 wu911) (Cons (Hugs_Return wu900) Nil)",fontsize=16,color="magenta"];391 -> 399[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 391 -> 400[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 392 -> 359[label="",style="dashed", color="red", weight=0]; 11.11/4.51 392[label="fromObj wu900",fontsize=16,color="magenta"];392 -> 401[label="",style="dashed", color="magenta", weight=3]; 11.11/4.51 393[label="wu901 wu900",fontsize=16,color="green",shape="box"];393 -> 402[label="",style="dashed", color="green", weight=3]; 11.11/4.51 394[label="wu91",fontsize=16,color="green",shape="box"];395[label="wu901",fontsize=16,color="green",shape="box"];396[label="wu900",fontsize=16,color="green",shape="box"];397[label="wu902",fontsize=16,color="green",shape="box"];398[label="wu903",fontsize=16,color="green",shape="box"];399[label="Cons wu910 wu911",fontsize=16,color="green",shape="box"];400[label="Hugs_Return wu900",fontsize=16,color="green",shape="box"];401[label="wu900",fontsize=16,color="green",shape="box"];402[label="wu900",fontsize=16,color="green",shape="box"];} 11.11/4.51 11.11/4.51 ---------------------------------------- 11.11/4.51 11.11/4.51 (34) 11.11/4.51 TRUE 11.17/4.57 EOF