12.23/4.85 YES 14.42/5.48 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 14.42/5.48 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 14.42/5.48 14.42/5.48 14.42/5.48 H-Termination with start terms of the given HASKELL could be proven: 14.42/5.48 14.42/5.48 (0) HASKELL 14.42/5.48 (1) CR [EQUIVALENT, 0 ms] 14.42/5.48 (2) HASKELL 14.42/5.48 (3) BR [EQUIVALENT, 0 ms] 14.42/5.48 (4) HASKELL 14.42/5.48 (5) COR [EQUIVALENT, 15 ms] 14.42/5.48 (6) HASKELL 14.42/5.48 (7) Narrow [SOUND, 0 ms] 14.42/5.48 (8) AND 14.42/5.48 (9) QDP 14.42/5.48 (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.42/5.48 (11) YES 14.42/5.48 (12) QDP 14.42/5.48 (13) TransformationProof [EQUIVALENT, 0 ms] 14.42/5.48 (14) QDP 14.42/5.48 (15) DependencyGraphProof [EQUIVALENT, 0 ms] 14.42/5.48 (16) QDP 14.42/5.48 (17) UsableRulesProof [EQUIVALENT, 0 ms] 14.42/5.48 (18) QDP 14.42/5.48 (19) QReductionProof [EQUIVALENT, 0 ms] 14.42/5.48 (20) QDP 14.42/5.48 (21) TransformationProof [EQUIVALENT, 0 ms] 14.42/5.48 (22) QDP 14.42/5.48 (23) UsableRulesProof [EQUIVALENT, 0 ms] 14.42/5.48 (24) QDP 14.42/5.48 (25) QReductionProof [EQUIVALENT, 0 ms] 14.42/5.48 (26) QDP 14.42/5.48 (27) TransformationProof [EQUIVALENT, 0 ms] 14.42/5.48 (28) QDP 14.42/5.48 (29) TransformationProof [EQUIVALENT, 0 ms] 14.42/5.48 (30) QDP 14.42/5.48 (31) TransformationProof [EQUIVALENT, 0 ms] 14.42/5.48 (32) QDP 14.42/5.48 (33) DependencyGraphProof [EQUIVALENT, 0 ms] 14.42/5.48 (34) AND 14.42/5.48 (35) QDP 14.42/5.48 (36) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.42/5.48 (37) YES 14.42/5.48 (38) QDP 14.42/5.48 (39) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.42/5.48 (40) YES 14.42/5.48 (41) QDP 14.42/5.48 (42) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.42/5.48 (43) YES 14.42/5.48 (44) QDP 14.42/5.48 (45) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.42/5.48 (46) YES 14.42/5.48 (47) QDP 14.42/5.48 (48) DependencyGraphProof [EQUIVALENT, 0 ms] 14.42/5.48 (49) QDP 14.42/5.48 (50) QDPSizeChangeProof [EQUIVALENT, 54 ms] 14.42/5.48 (51) YES 14.42/5.48 14.42/5.48 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (0) 14.42/5.48 Obligation: 14.42/5.48 mainModule Main 14.42/5.48 module Maybe where { 14.42/5.48 import qualified List; 14.42/5.48 import qualified Main; 14.42/5.48 import qualified Prelude; 14.42/5.48 } 14.42/5.48 module List where { 14.42/5.48 import qualified Main; 14.42/5.48 import qualified Maybe; 14.42/5.48 import qualified Prelude; 14.42/5.48 merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; 14.42/5.48 merge cmp xs [] = xs; 14.42/5.48 merge cmp [] ys = ys; 14.42/5.48 merge cmp (x : xs) (y : ys) = case x `cmp` y of { 14.42/5.48 GT-> y : merge cmp (x : xs) ys; 14.42/5.48 _-> x : merge cmp xs (y : ys); 14.42/5.48 } ; 14.42/5.48 14.42/5.48 merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; 14.42/5.48 merge_pairs cmp [] = []; 14.42/5.48 merge_pairs cmp (xs : []) = xs : []; 14.42/5.48 merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; 14.42/5.48 14.42/5.48 mergesort :: (a -> a -> Ordering) -> [a] -> [a]; 14.42/5.48 mergesort cmp = mergesort' cmp . map wrap; 14.42/5.48 14.42/5.48 mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; 14.42/5.48 mergesort' cmp [] = []; 14.42/5.48 mergesort' cmp (xs : []) = xs; 14.42/5.48 mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); 14.42/5.48 14.42/5.48 sort :: Ord a => [a] -> [a]; 14.42/5.48 sort l = mergesort compare l; 14.42/5.48 14.42/5.48 wrap :: a -> [a]; 14.42/5.48 wrap x = x : []; 14.42/5.48 14.42/5.48 } 14.42/5.48 module Main where { 14.42/5.48 import qualified List; 14.42/5.48 import qualified Maybe; 14.42/5.48 import qualified Prelude; 14.42/5.48 } 14.42/5.48 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (1) CR (EQUIVALENT) 14.42/5.48 Case Reductions: 14.42/5.48 The following Case expression 14.42/5.48 "case cmp x y of { 14.42/5.48 GT -> y : merge cmp (x : xs) ys; 14.42/5.48 _ -> x : merge cmp xs (y : ys)} 14.42/5.48 " 14.42/5.48 is transformed to 14.42/5.48 "merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; 14.42/5.48 merge0 y cmp x xs ys _ = x : merge cmp xs (y : ys); 14.42/5.48 " 14.42/5.48 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (2) 14.42/5.48 Obligation: 14.42/5.48 mainModule Main 14.42/5.48 module Maybe where { 14.42/5.48 import qualified List; 14.42/5.48 import qualified Main; 14.42/5.48 import qualified Prelude; 14.42/5.48 } 14.42/5.48 module List where { 14.42/5.48 import qualified Main; 14.42/5.48 import qualified Maybe; 14.42/5.48 import qualified Prelude; 14.42/5.48 merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; 14.42/5.48 merge cmp xs [] = xs; 14.42/5.48 merge cmp [] ys = ys; 14.42/5.48 merge cmp (x : xs) (y : ys) = merge0 y cmp x xs ys (x `cmp` y); 14.42/5.48 14.42/5.48 merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; 14.42/5.48 merge0 y cmp x xs ys _ = x : merge cmp xs (y : ys); 14.42/5.48 14.42/5.48 merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; 14.42/5.48 merge_pairs cmp [] = []; 14.42/5.48 merge_pairs cmp (xs : []) = xs : []; 14.42/5.48 merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; 14.42/5.48 14.42/5.48 mergesort :: (a -> a -> Ordering) -> [a] -> [a]; 14.42/5.48 mergesort cmp = mergesort' cmp . map wrap; 14.42/5.48 14.42/5.48 mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; 14.42/5.48 mergesort' cmp [] = []; 14.42/5.48 mergesort' cmp (xs : []) = xs; 14.42/5.48 mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); 14.42/5.48 14.42/5.48 sort :: Ord a => [a] -> [a]; 14.42/5.48 sort l = mergesort compare l; 14.42/5.48 14.42/5.48 wrap :: a -> [a]; 14.42/5.48 wrap x = x : []; 14.42/5.48 14.42/5.48 } 14.42/5.48 module Main where { 14.42/5.48 import qualified List; 14.42/5.48 import qualified Maybe; 14.42/5.48 import qualified Prelude; 14.42/5.48 } 14.42/5.48 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (3) BR (EQUIVALENT) 14.42/5.48 Replaced joker patterns by fresh variables and removed binding patterns. 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (4) 14.42/5.48 Obligation: 14.42/5.48 mainModule Main 14.42/5.48 module Maybe where { 14.42/5.48 import qualified List; 14.42/5.48 import qualified Main; 14.42/5.48 import qualified Prelude; 14.42/5.48 } 14.42/5.48 module List where { 14.42/5.48 import qualified Main; 14.42/5.48 import qualified Maybe; 14.42/5.48 import qualified Prelude; 14.42/5.48 merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; 14.42/5.48 merge cmp xs [] = xs; 14.42/5.48 merge cmp [] ys = ys; 14.42/5.48 merge cmp (x : xs) (y : ys) = merge0 y cmp x xs ys (x `cmp` y); 14.42/5.48 14.42/5.48 merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; 14.42/5.48 merge0 y cmp x xs ys vy = x : merge cmp xs (y : ys); 14.42/5.48 14.42/5.48 merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; 14.42/5.48 merge_pairs cmp [] = []; 14.42/5.48 merge_pairs cmp (xs : []) = xs : []; 14.42/5.48 merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; 14.42/5.48 14.42/5.48 mergesort :: (a -> a -> Ordering) -> [a] -> [a]; 14.42/5.48 mergesort cmp = mergesort' cmp . map wrap; 14.42/5.48 14.42/5.48 mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; 14.42/5.48 mergesort' cmp [] = []; 14.42/5.48 mergesort' cmp (xs : []) = xs; 14.42/5.48 mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); 14.42/5.48 14.42/5.48 sort :: Ord a => [a] -> [a]; 14.42/5.48 sort l = mergesort compare l; 14.42/5.48 14.42/5.48 wrap :: a -> [a]; 14.42/5.48 wrap x = x : []; 14.42/5.48 14.42/5.48 } 14.42/5.48 module Main where { 14.42/5.48 import qualified List; 14.42/5.48 import qualified Maybe; 14.42/5.48 import qualified Prelude; 14.42/5.48 } 14.42/5.48 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (5) COR (EQUIVALENT) 14.42/5.48 Cond Reductions: 14.42/5.48 The following Function with conditions 14.42/5.48 "compare x y|x == yEQ|x <= yLT|otherwiseGT; 14.42/5.48 " 14.42/5.48 is transformed to 14.42/5.48 "compare x y = compare3 x y; 14.42/5.48 " 14.42/5.48 "compare1 x y True = LT; 14.42/5.48 compare1 x y False = compare0 x y otherwise; 14.42/5.48 " 14.42/5.48 "compare2 x y True = EQ; 14.42/5.48 compare2 x y False = compare1 x y (x <= y); 14.42/5.48 " 14.42/5.48 "compare0 x y True = GT; 14.42/5.48 " 14.42/5.48 "compare3 x y = compare2 x y (x == y); 14.42/5.48 " 14.42/5.48 The following Function with conditions 14.42/5.48 "undefined |Falseundefined; 14.42/5.48 " 14.42/5.48 is transformed to 14.42/5.48 "undefined = undefined1; 14.42/5.48 " 14.42/5.48 "undefined0 True = undefined; 14.42/5.48 " 14.42/5.48 "undefined1 = undefined0 False; 14.42/5.48 " 14.42/5.48 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (6) 14.42/5.48 Obligation: 14.42/5.48 mainModule Main 14.42/5.48 module Maybe where { 14.42/5.48 import qualified List; 14.42/5.48 import qualified Main; 14.42/5.48 import qualified Prelude; 14.42/5.48 } 14.42/5.48 module List where { 14.42/5.48 import qualified Main; 14.42/5.48 import qualified Maybe; 14.42/5.48 import qualified Prelude; 14.42/5.48 merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; 14.42/5.48 merge cmp xs [] = xs; 14.42/5.48 merge cmp [] ys = ys; 14.42/5.48 merge cmp (x : xs) (y : ys) = merge0 y cmp x xs ys (x `cmp` y); 14.42/5.48 14.42/5.48 merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; 14.42/5.48 merge0 y cmp x xs ys vy = x : merge cmp xs (y : ys); 14.42/5.48 14.42/5.48 merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; 14.42/5.48 merge_pairs cmp [] = []; 14.42/5.48 merge_pairs cmp (xs : []) = xs : []; 14.42/5.48 merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; 14.42/5.48 14.42/5.48 mergesort :: (a -> a -> Ordering) -> [a] -> [a]; 14.42/5.48 mergesort cmp = mergesort' cmp . map wrap; 14.42/5.48 14.42/5.48 mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; 14.42/5.48 mergesort' cmp [] = []; 14.42/5.48 mergesort' cmp (xs : []) = xs; 14.42/5.48 mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); 14.42/5.48 14.42/5.48 sort :: Ord a => [a] -> [a]; 14.42/5.48 sort l = mergesort compare l; 14.42/5.48 14.42/5.48 wrap :: a -> [a]; 14.42/5.48 wrap x = x : []; 14.42/5.48 14.42/5.48 } 14.42/5.48 module Main where { 14.42/5.48 import qualified List; 14.42/5.48 import qualified Maybe; 14.42/5.48 import qualified Prelude; 14.42/5.48 } 14.42/5.48 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (7) Narrow (SOUND) 14.42/5.48 Haskell To QDPs 14.42/5.48 14.42/5.48 digraph dp_graph { 14.42/5.48 node [outthreshold=100, inthreshold=100];1[label="List.sort",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 14.42/5.48 3[label="List.sort vz3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 14.42/5.48 4[label="List.mergesort compare vz3",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 14.42/5.48 5[label="(List.mergesort' compare) . map List.wrap",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 14.42/5.48 6[label="List.mergesort' compare (map List.wrap vz3)",fontsize=16,color="burlywood",shape="box"];710[label="vz3/vz30 : vz31",fontsize=10,color="white",style="solid",shape="box"];6 -> 710[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 710 -> 7[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 711[label="vz3/[]",fontsize=10,color="white",style="solid",shape="box"];6 -> 711[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 711 -> 8[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 7[label="List.mergesort' compare (map List.wrap (vz30 : vz31))",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 14.42/5.48 8[label="List.mergesort' compare (map List.wrap [])",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 14.42/5.48 9[label="List.mergesort' compare (List.wrap vz30 : map List.wrap vz31)",fontsize=16,color="burlywood",shape="box"];712[label="vz31/vz310 : vz311",fontsize=10,color="white",style="solid",shape="box"];9 -> 712[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 712 -> 11[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 713[label="vz31/[]",fontsize=10,color="white",style="solid",shape="box"];9 -> 713[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 713 -> 12[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 10[label="List.mergesort' compare []",fontsize=16,color="black",shape="box"];10 -> 13[label="",style="solid", color="black", weight=3]; 14.42/5.48 11[label="List.mergesort' compare (List.wrap vz30 : map List.wrap (vz310 : vz311))",fontsize=16,color="black",shape="box"];11 -> 14[label="",style="solid", color="black", weight=3]; 14.42/5.48 12[label="List.mergesort' compare (List.wrap vz30 : map List.wrap [])",fontsize=16,color="black",shape="box"];12 -> 15[label="",style="solid", color="black", weight=3]; 14.42/5.48 13[label="[]",fontsize=16,color="green",shape="box"];14[label="List.mergesort' compare (List.wrap vz30 : List.wrap vz310 : map List.wrap vz311)",fontsize=16,color="black",shape="box"];14 -> 16[label="",style="solid", color="black", weight=3]; 14.42/5.48 15[label="List.mergesort' compare (List.wrap vz30 : [])",fontsize=16,color="black",shape="box"];15 -> 17[label="",style="solid", color="black", weight=3]; 14.42/5.48 16[label="List.mergesort' compare (List.merge_pairs compare (List.wrap vz30 : List.wrap vz310 : map List.wrap vz311))",fontsize=16,color="black",shape="box"];16 -> 18[label="",style="solid", color="black", weight=3]; 14.42/5.48 17[label="List.wrap vz30",fontsize=16,color="black",shape="triangle"];17 -> 19[label="",style="solid", color="black", weight=3]; 14.42/5.48 18 -> 276[label="",style="dashed", color="red", weight=0]; 14.42/5.48 18[label="List.mergesort' compare (List.merge compare (List.wrap vz30) (List.wrap vz310) : List.merge_pairs compare (map List.wrap vz311))",fontsize=16,color="magenta"];18 -> 277[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 18 -> 278[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 19[label="vz30 : []",fontsize=16,color="green",shape="box"];277[label="map List.wrap vz311",fontsize=16,color="burlywood",shape="triangle"];714[label="vz311/vz3110 : vz3111",fontsize=10,color="white",style="solid",shape="box"];277 -> 714[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 714 -> 431[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 715[label="vz311/[]",fontsize=10,color="white",style="solid",shape="box"];277 -> 715[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 715 -> 432[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 278 -> 433[label="",style="dashed", color="red", weight=0]; 14.42/5.48 278[label="List.merge compare (List.wrap vz30) (List.wrap vz310)",fontsize=16,color="magenta"];278 -> 434[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 278 -> 435[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 276[label="List.mergesort' compare (vz34 : List.merge_pairs compare vz35)",fontsize=16,color="burlywood",shape="triangle"];716[label="vz35/vz350 : vz351",fontsize=10,color="white",style="solid",shape="box"];276 -> 716[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 716 -> 436[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 717[label="vz35/[]",fontsize=10,color="white",style="solid",shape="box"];276 -> 717[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 717 -> 437[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 431[label="map List.wrap (vz3110 : vz3111)",fontsize=16,color="black",shape="box"];431 -> 438[label="",style="solid", color="black", weight=3]; 14.42/5.48 432[label="map List.wrap []",fontsize=16,color="black",shape="box"];432 -> 439[label="",style="solid", color="black", weight=3]; 14.42/5.48 434 -> 17[label="",style="dashed", color="red", weight=0]; 14.42/5.48 434[label="List.wrap vz30",fontsize=16,color="magenta"];435 -> 17[label="",style="dashed", color="red", weight=0]; 14.42/5.48 435[label="List.wrap vz310",fontsize=16,color="magenta"];435 -> 440[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 433[label="List.merge compare vz37 vz36",fontsize=16,color="burlywood",shape="triangle"];718[label="vz36/vz360 : vz361",fontsize=10,color="white",style="solid",shape="box"];433 -> 718[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 718 -> 441[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 719[label="vz36/[]",fontsize=10,color="white",style="solid",shape="box"];433 -> 719[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 719 -> 442[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 436[label="List.mergesort' compare (vz34 : List.merge_pairs compare (vz350 : vz351))",fontsize=16,color="burlywood",shape="box"];720[label="vz351/vz3510 : vz3511",fontsize=10,color="white",style="solid",shape="box"];436 -> 720[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 720 -> 443[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 721[label="vz351/[]",fontsize=10,color="white",style="solid",shape="box"];436 -> 721[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 721 -> 444[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 437[label="List.mergesort' compare (vz34 : List.merge_pairs compare [])",fontsize=16,color="black",shape="box"];437 -> 445[label="",style="solid", color="black", weight=3]; 14.42/5.48 438[label="List.wrap vz3110 : map List.wrap vz3111",fontsize=16,color="green",shape="box"];438 -> 446[label="",style="dashed", color="green", weight=3]; 14.42/5.48 438 -> 447[label="",style="dashed", color="green", weight=3]; 14.42/5.48 439[label="[]",fontsize=16,color="green",shape="box"];440[label="vz310",fontsize=16,color="green",shape="box"];441[label="List.merge compare vz37 (vz360 : vz361)",fontsize=16,color="burlywood",shape="box"];722[label="vz37/vz370 : vz371",fontsize=10,color="white",style="solid",shape="box"];441 -> 722[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 722 -> 448[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 723[label="vz37/[]",fontsize=10,color="white",style="solid",shape="box"];441 -> 723[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 723 -> 449[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 442[label="List.merge compare vz37 []",fontsize=16,color="black",shape="box"];442 -> 450[label="",style="solid", color="black", weight=3]; 14.42/5.48 443[label="List.mergesort' compare (vz34 : List.merge_pairs compare (vz350 : vz3510 : vz3511))",fontsize=16,color="black",shape="box"];443 -> 451[label="",style="solid", color="black", weight=3]; 14.42/5.48 444[label="List.mergesort' compare (vz34 : List.merge_pairs compare (vz350 : []))",fontsize=16,color="black",shape="box"];444 -> 452[label="",style="solid", color="black", weight=3]; 14.42/5.48 445[label="List.mergesort' compare (vz34 : [])",fontsize=16,color="black",shape="box"];445 -> 453[label="",style="solid", color="black", weight=3]; 14.42/5.48 446 -> 17[label="",style="dashed", color="red", weight=0]; 14.42/5.48 446[label="List.wrap vz3110",fontsize=16,color="magenta"];446 -> 454[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 447 -> 277[label="",style="dashed", color="red", weight=0]; 14.42/5.48 447[label="map List.wrap vz3111",fontsize=16,color="magenta"];447 -> 455[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 448[label="List.merge compare (vz370 : vz371) (vz360 : vz361)",fontsize=16,color="black",shape="box"];448 -> 456[label="",style="solid", color="black", weight=3]; 14.42/5.48 449[label="List.merge compare [] (vz360 : vz361)",fontsize=16,color="black",shape="box"];449 -> 457[label="",style="solid", color="black", weight=3]; 14.42/5.48 450[label="vz37",fontsize=16,color="green",shape="box"];451[label="List.mergesort' compare (vz34 : List.merge compare vz350 vz3510 : List.merge_pairs compare vz3511)",fontsize=16,color="black",shape="box"];451 -> 458[label="",style="solid", color="black", weight=3]; 14.42/5.48 452[label="List.mergesort' compare (vz34 : vz350 : [])",fontsize=16,color="black",shape="box"];452 -> 459[label="",style="solid", color="black", weight=3]; 14.42/5.48 453[label="vz34",fontsize=16,color="green",shape="box"];454[label="vz3110",fontsize=16,color="green",shape="box"];455[label="vz3111",fontsize=16,color="green",shape="box"];456 -> 507[label="",style="dashed", color="red", weight=0]; 14.42/5.48 456[label="List.merge0 vz360 compare vz370 vz371 vz361 (compare vz370 vz360)",fontsize=16,color="magenta"];456 -> 508[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 456 -> 509[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 456 -> 510[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 456 -> 511[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 456 -> 512[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 457[label="vz360 : vz361",fontsize=16,color="green",shape="box"];458[label="List.mergesort' compare (List.merge_pairs compare (vz34 : List.merge compare vz350 vz3510 : List.merge_pairs compare vz3511))",fontsize=16,color="black",shape="box"];458 -> 461[label="",style="solid", color="black", weight=3]; 14.42/5.48 459[label="List.mergesort' compare (List.merge_pairs compare (vz34 : vz350 : []))",fontsize=16,color="black",shape="box"];459 -> 462[label="",style="solid", color="black", weight=3]; 14.42/5.48 508[label="vz371",fontsize=16,color="green",shape="box"];509[label="compare vz370 vz360",fontsize=16,color="black",shape="triangle"];509 -> 573[label="",style="solid", color="black", weight=3]; 14.42/5.48 510[label="vz360",fontsize=16,color="green",shape="box"];511[label="vz370",fontsize=16,color="green",shape="box"];512[label="vz361",fontsize=16,color="green",shape="box"];507[label="List.merge0 vz44 compare vz45 vz46 vz47 vz48",fontsize=16,color="burlywood",shape="triangle"];724[label="vz48/LT",fontsize=10,color="white",style="solid",shape="box"];507 -> 724[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 724 -> 574[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 725[label="vz48/EQ",fontsize=10,color="white",style="solid",shape="box"];507 -> 725[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 725 -> 575[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 726[label="vz48/GT",fontsize=10,color="white",style="solid",shape="box"];507 -> 726[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 726 -> 576[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 461 -> 276[label="",style="dashed", color="red", weight=0]; 14.42/5.48 461[label="List.mergesort' compare (List.merge compare vz34 (List.merge compare vz350 vz3510) : List.merge_pairs compare (List.merge_pairs compare vz3511))",fontsize=16,color="magenta"];461 -> 464[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 461 -> 465[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 462 -> 276[label="",style="dashed", color="red", weight=0]; 14.42/5.48 462[label="List.mergesort' compare (List.merge compare vz34 vz350 : List.merge_pairs compare [])",fontsize=16,color="magenta"];462 -> 466[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 462 -> 467[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 573[label="compare3 vz370 vz360",fontsize=16,color="black",shape="box"];573 -> 608[label="",style="solid", color="black", weight=3]; 14.42/5.48 574[label="List.merge0 vz44 compare vz45 vz46 vz47 LT",fontsize=16,color="black",shape="box"];574 -> 609[label="",style="solid", color="black", weight=3]; 14.42/5.48 575[label="List.merge0 vz44 compare vz45 vz46 vz47 EQ",fontsize=16,color="black",shape="box"];575 -> 610[label="",style="solid", color="black", weight=3]; 14.42/5.48 576[label="List.merge0 vz44 compare vz45 vz46 vz47 GT",fontsize=16,color="black",shape="box"];576 -> 611[label="",style="solid", color="black", weight=3]; 14.42/5.48 464[label="List.merge_pairs compare vz3511",fontsize=16,color="burlywood",shape="triangle"];727[label="vz3511/vz35110 : vz35111",fontsize=10,color="white",style="solid",shape="box"];464 -> 727[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 727 -> 470[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 728[label="vz3511/[]",fontsize=10,color="white",style="solid",shape="box"];464 -> 728[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 728 -> 471[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 465[label="List.merge compare vz34 (List.merge compare vz350 vz3510)",fontsize=16,color="burlywood",shape="box"];729[label="vz3510/vz35100 : vz35101",fontsize=10,color="white",style="solid",shape="box"];465 -> 729[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 729 -> 472[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 730[label="vz3510/[]",fontsize=10,color="white",style="solid",shape="box"];465 -> 730[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 730 -> 473[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 466[label="[]",fontsize=16,color="green",shape="box"];467[label="List.merge compare vz34 vz350",fontsize=16,color="burlywood",shape="triangle"];731[label="vz350/vz3500 : vz3501",fontsize=10,color="white",style="solid",shape="box"];467 -> 731[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 731 -> 474[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 732[label="vz350/[]",fontsize=10,color="white",style="solid",shape="box"];467 -> 732[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 732 -> 475[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 608[label="compare2 vz370 vz360 (vz370 == vz360)",fontsize=16,color="burlywood",shape="box"];733[label="vz370/False",fontsize=10,color="white",style="solid",shape="box"];608 -> 733[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 733 -> 655[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 734[label="vz370/True",fontsize=10,color="white",style="solid",shape="box"];608 -> 734[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 734 -> 656[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 609[label="vz45 : List.merge compare vz46 (vz44 : vz47)",fontsize=16,color="green",shape="box"];609 -> 657[label="",style="dashed", color="green", weight=3]; 14.42/5.48 610[label="vz45 : List.merge compare vz46 (vz44 : vz47)",fontsize=16,color="green",shape="box"];610 -> 658[label="",style="dashed", color="green", weight=3]; 14.42/5.48 611[label="vz44 : List.merge compare (vz45 : vz46) vz47",fontsize=16,color="green",shape="box"];611 -> 659[label="",style="dashed", color="green", weight=3]; 14.42/5.48 470[label="List.merge_pairs compare (vz35110 : vz35111)",fontsize=16,color="burlywood",shape="box"];735[label="vz35111/vz351110 : vz351111",fontsize=10,color="white",style="solid",shape="box"];470 -> 735[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 735 -> 480[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 736[label="vz35111/[]",fontsize=10,color="white",style="solid",shape="box"];470 -> 736[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 736 -> 481[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 471[label="List.merge_pairs compare []",fontsize=16,color="black",shape="box"];471 -> 482[label="",style="solid", color="black", weight=3]; 14.42/5.48 472[label="List.merge compare vz34 (List.merge compare vz350 (vz35100 : vz35101))",fontsize=16,color="burlywood",shape="box"];737[label="vz350/vz3500 : vz3501",fontsize=10,color="white",style="solid",shape="box"];472 -> 737[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 737 -> 483[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 738[label="vz350/[]",fontsize=10,color="white",style="solid",shape="box"];472 -> 738[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 738 -> 484[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 473[label="List.merge compare vz34 (List.merge compare vz350 [])",fontsize=16,color="black",shape="box"];473 -> 485[label="",style="solid", color="black", weight=3]; 14.42/5.48 474[label="List.merge compare vz34 (vz3500 : vz3501)",fontsize=16,color="burlywood",shape="box"];739[label="vz34/vz340 : vz341",fontsize=10,color="white",style="solid",shape="box"];474 -> 739[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 739 -> 486[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 740[label="vz34/[]",fontsize=10,color="white",style="solid",shape="box"];474 -> 740[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 740 -> 487[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 475[label="List.merge compare vz34 []",fontsize=16,color="black",shape="box"];475 -> 488[label="",style="solid", color="black", weight=3]; 14.42/5.48 655[label="compare2 False vz360 (False == vz360)",fontsize=16,color="burlywood",shape="box"];741[label="vz360/False",fontsize=10,color="white",style="solid",shape="box"];655 -> 741[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 741 -> 673[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 742[label="vz360/True",fontsize=10,color="white",style="solid",shape="box"];655 -> 742[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 742 -> 674[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 656[label="compare2 True vz360 (True == vz360)",fontsize=16,color="burlywood",shape="box"];743[label="vz360/False",fontsize=10,color="white",style="solid",shape="box"];656 -> 743[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 743 -> 675[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 744[label="vz360/True",fontsize=10,color="white",style="solid",shape="box"];656 -> 744[label="",style="solid", color="burlywood", weight=9]; 14.42/5.48 744 -> 676[label="",style="solid", color="burlywood", weight=3]; 14.42/5.48 657 -> 467[label="",style="dashed", color="red", weight=0]; 14.42/5.48 657[label="List.merge compare vz46 (vz44 : vz47)",fontsize=16,color="magenta"];657 -> 677[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 657 -> 678[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 658 -> 467[label="",style="dashed", color="red", weight=0]; 14.42/5.48 658[label="List.merge compare vz46 (vz44 : vz47)",fontsize=16,color="magenta"];658 -> 679[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 658 -> 680[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 659 -> 467[label="",style="dashed", color="red", weight=0]; 14.42/5.48 659[label="List.merge compare (vz45 : vz46) vz47",fontsize=16,color="magenta"];659 -> 681[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 659 -> 682[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 480[label="List.merge_pairs compare (vz35110 : vz351110 : vz351111)",fontsize=16,color="black",shape="box"];480 -> 493[label="",style="solid", color="black", weight=3]; 14.42/5.48 481[label="List.merge_pairs compare (vz35110 : [])",fontsize=16,color="black",shape="box"];481 -> 494[label="",style="solid", color="black", weight=3]; 14.42/5.48 482[label="[]",fontsize=16,color="green",shape="box"];483[label="List.merge compare vz34 (List.merge compare (vz3500 : vz3501) (vz35100 : vz35101))",fontsize=16,color="black",shape="box"];483 -> 495[label="",style="solid", color="black", weight=3]; 14.42/5.48 484[label="List.merge compare vz34 (List.merge compare [] (vz35100 : vz35101))",fontsize=16,color="black",shape="box"];484 -> 496[label="",style="solid", color="black", weight=3]; 14.42/5.48 485 -> 467[label="",style="dashed", color="red", weight=0]; 14.42/5.48 485[label="List.merge compare vz34 vz350",fontsize=16,color="magenta"];486[label="List.merge compare (vz340 : vz341) (vz3500 : vz3501)",fontsize=16,color="black",shape="box"];486 -> 497[label="",style="solid", color="black", weight=3]; 14.42/5.48 487[label="List.merge compare [] (vz3500 : vz3501)",fontsize=16,color="black",shape="box"];487 -> 498[label="",style="solid", color="black", weight=3]; 14.42/5.48 488[label="vz34",fontsize=16,color="green",shape="box"];673[label="compare2 False False (False == False)",fontsize=16,color="black",shape="box"];673 -> 696[label="",style="solid", color="black", weight=3]; 14.42/5.48 674[label="compare2 False True (False == True)",fontsize=16,color="black",shape="box"];674 -> 697[label="",style="solid", color="black", weight=3]; 14.42/5.48 675[label="compare2 True False (True == False)",fontsize=16,color="black",shape="box"];675 -> 698[label="",style="solid", color="black", weight=3]; 14.42/5.48 676[label="compare2 True True (True == True)",fontsize=16,color="black",shape="box"];676 -> 699[label="",style="solid", color="black", weight=3]; 14.42/5.48 677[label="vz44 : vz47",fontsize=16,color="green",shape="box"];678[label="vz46",fontsize=16,color="green",shape="box"];679[label="vz44 : vz47",fontsize=16,color="green",shape="box"];680[label="vz46",fontsize=16,color="green",shape="box"];681[label="vz47",fontsize=16,color="green",shape="box"];682[label="vz45 : vz46",fontsize=16,color="green",shape="box"];493[label="List.merge compare vz35110 vz351110 : List.merge_pairs compare vz351111",fontsize=16,color="green",shape="box"];493 -> 503[label="",style="dashed", color="green", weight=3]; 14.42/5.48 493 -> 504[label="",style="dashed", color="green", weight=3]; 14.42/5.48 494[label="vz35110 : []",fontsize=16,color="green",shape="box"];495 -> 467[label="",style="dashed", color="red", weight=0]; 14.42/5.48 495[label="List.merge compare vz34 (List.merge0 vz35100 compare vz3500 vz3501 vz35101 (compare vz3500 vz35100))",fontsize=16,color="magenta"];495 -> 505[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 496 -> 467[label="",style="dashed", color="red", weight=0]; 14.42/5.48 496[label="List.merge compare vz34 (vz35100 : vz35101)",fontsize=16,color="magenta"];496 -> 506[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 497 -> 507[label="",style="dashed", color="red", weight=0]; 14.42/5.48 497[label="List.merge0 vz3500 compare vz340 vz341 vz3501 (compare vz340 vz3500)",fontsize=16,color="magenta"];497 -> 543[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 497 -> 544[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 497 -> 545[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 497 -> 546[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 497 -> 547[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 498[label="vz3500 : vz3501",fontsize=16,color="green",shape="box"];696[label="compare2 False False True",fontsize=16,color="black",shape="box"];696 -> 700[label="",style="solid", color="black", weight=3]; 14.42/5.48 697[label="compare2 False True False",fontsize=16,color="black",shape="box"];697 -> 701[label="",style="solid", color="black", weight=3]; 14.42/5.48 698[label="compare2 True False False",fontsize=16,color="black",shape="box"];698 -> 702[label="",style="solid", color="black", weight=3]; 14.42/5.48 699[label="compare2 True True True",fontsize=16,color="black",shape="box"];699 -> 703[label="",style="solid", color="black", weight=3]; 14.42/5.48 503 -> 467[label="",style="dashed", color="red", weight=0]; 14.42/5.48 503[label="List.merge compare vz35110 vz351110",fontsize=16,color="magenta"];503 -> 577[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 503 -> 578[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 504 -> 464[label="",style="dashed", color="red", weight=0]; 14.42/5.48 504[label="List.merge_pairs compare vz351111",fontsize=16,color="magenta"];504 -> 579[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 505 -> 507[label="",style="dashed", color="red", weight=0]; 14.42/5.48 505[label="List.merge0 vz35100 compare vz3500 vz3501 vz35101 (compare vz3500 vz35100)",fontsize=16,color="magenta"];505 -> 568[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 505 -> 569[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 505 -> 570[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 505 -> 571[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 505 -> 572[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 506[label="vz35100 : vz35101",fontsize=16,color="green",shape="box"];543[label="vz341",fontsize=16,color="green",shape="box"];544[label="compare vz340 vz3500",fontsize=16,color="blue",shape="box"];745[label="compare :: Bool -> Bool -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 745[label="",style="solid", color="blue", weight=9]; 14.42/5.48 745 -> 580[label="",style="solid", color="blue", weight=3]; 14.42/5.48 746[label="compare :: Double -> Double -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 746[label="",style="solid", color="blue", weight=9]; 14.42/5.48 746 -> 581[label="",style="solid", color="blue", weight=3]; 14.42/5.48 747[label="compare :: (Ratio a) -> (Ratio a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 747[label="",style="solid", color="blue", weight=9]; 14.42/5.48 747 -> 582[label="",style="solid", color="blue", weight=3]; 14.42/5.48 748[label="compare :: ((@3) a b c) -> ((@3) a b c) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 748[label="",style="solid", color="blue", weight=9]; 14.42/5.48 748 -> 583[label="",style="solid", color="blue", weight=3]; 14.42/5.48 749[label="compare :: ([] a) -> ([] a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 749[label="",style="solid", color="blue", weight=9]; 14.42/5.48 749 -> 584[label="",style="solid", color="blue", weight=3]; 14.42/5.48 750[label="compare :: Integer -> Integer -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 750[label="",style="solid", color="blue", weight=9]; 14.42/5.48 750 -> 585[label="",style="solid", color="blue", weight=3]; 14.42/5.48 751[label="compare :: Char -> Char -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 751[label="",style="solid", color="blue", weight=9]; 14.42/5.48 751 -> 586[label="",style="solid", color="blue", weight=3]; 14.42/5.48 752[label="compare :: (Either a b) -> (Either a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 752[label="",style="solid", color="blue", weight=9]; 14.42/5.48 752 -> 587[label="",style="solid", color="blue", weight=3]; 14.42/5.48 753[label="compare :: Float -> Float -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 753[label="",style="solid", color="blue", weight=9]; 14.42/5.48 753 -> 588[label="",style="solid", color="blue", weight=3]; 14.42/5.48 754[label="compare :: Int -> Int -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 754[label="",style="solid", color="blue", weight=9]; 14.42/5.48 754 -> 589[label="",style="solid", color="blue", weight=3]; 14.42/5.48 755[label="compare :: (Maybe a) -> (Maybe a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 755[label="",style="solid", color="blue", weight=9]; 14.42/5.48 755 -> 590[label="",style="solid", color="blue", weight=3]; 14.42/5.48 756[label="compare :: ((@2) a b) -> ((@2) a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 756[label="",style="solid", color="blue", weight=9]; 14.42/5.48 756 -> 591[label="",style="solid", color="blue", weight=3]; 14.42/5.48 757[label="compare :: Ordering -> Ordering -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 757[label="",style="solid", color="blue", weight=9]; 14.42/5.48 757 -> 592[label="",style="solid", color="blue", weight=3]; 14.42/5.48 758[label="compare :: () -> () -> Ordering",fontsize=10,color="white",style="solid",shape="box"];544 -> 758[label="",style="solid", color="blue", weight=9]; 14.42/5.48 758 -> 593[label="",style="solid", color="blue", weight=3]; 14.42/5.48 545[label="vz3500",fontsize=16,color="green",shape="box"];546[label="vz340",fontsize=16,color="green",shape="box"];547[label="vz3501",fontsize=16,color="green",shape="box"];700[label="EQ",fontsize=16,color="green",shape="box"];701[label="compare1 False True (False <= True)",fontsize=16,color="black",shape="box"];701 -> 704[label="",style="solid", color="black", weight=3]; 14.42/5.48 702[label="compare1 True False (True <= False)",fontsize=16,color="black",shape="box"];702 -> 705[label="",style="solid", color="black", weight=3]; 14.42/5.48 703[label="EQ",fontsize=16,color="green",shape="box"];577[label="vz351110",fontsize=16,color="green",shape="box"];578[label="vz35110",fontsize=16,color="green",shape="box"];579[label="vz351111",fontsize=16,color="green",shape="box"];568[label="vz3501",fontsize=16,color="green",shape="box"];569[label="compare vz3500 vz35100",fontsize=16,color="blue",shape="box"];759[label="compare :: Bool -> Bool -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 759[label="",style="solid", color="blue", weight=9]; 14.42/5.48 759 -> 594[label="",style="solid", color="blue", weight=3]; 14.42/5.48 760[label="compare :: Double -> Double -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 760[label="",style="solid", color="blue", weight=9]; 14.42/5.48 760 -> 595[label="",style="solid", color="blue", weight=3]; 14.42/5.48 761[label="compare :: (Ratio a) -> (Ratio a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 761[label="",style="solid", color="blue", weight=9]; 14.42/5.48 761 -> 596[label="",style="solid", color="blue", weight=3]; 14.42/5.48 762[label="compare :: ((@3) a b c) -> ((@3) a b c) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 762[label="",style="solid", color="blue", weight=9]; 14.42/5.48 762 -> 597[label="",style="solid", color="blue", weight=3]; 14.42/5.48 763[label="compare :: ([] a) -> ([] a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 763[label="",style="solid", color="blue", weight=9]; 14.42/5.48 763 -> 598[label="",style="solid", color="blue", weight=3]; 14.42/5.48 764[label="compare :: Integer -> Integer -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 764[label="",style="solid", color="blue", weight=9]; 14.42/5.48 764 -> 599[label="",style="solid", color="blue", weight=3]; 14.42/5.48 765[label="compare :: Char -> Char -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 765[label="",style="solid", color="blue", weight=9]; 14.42/5.48 765 -> 600[label="",style="solid", color="blue", weight=3]; 14.42/5.48 766[label="compare :: (Either a b) -> (Either a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 766[label="",style="solid", color="blue", weight=9]; 14.42/5.48 766 -> 601[label="",style="solid", color="blue", weight=3]; 14.42/5.48 767[label="compare :: Float -> Float -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 767[label="",style="solid", color="blue", weight=9]; 14.42/5.48 767 -> 602[label="",style="solid", color="blue", weight=3]; 14.42/5.48 768[label="compare :: Int -> Int -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 768[label="",style="solid", color="blue", weight=9]; 14.42/5.48 768 -> 603[label="",style="solid", color="blue", weight=3]; 14.42/5.48 769[label="compare :: (Maybe a) -> (Maybe a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 769[label="",style="solid", color="blue", weight=9]; 14.42/5.48 769 -> 604[label="",style="solid", color="blue", weight=3]; 14.42/5.48 770[label="compare :: ((@2) a b) -> ((@2) a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 770[label="",style="solid", color="blue", weight=9]; 14.42/5.48 770 -> 605[label="",style="solid", color="blue", weight=3]; 14.42/5.48 771[label="compare :: Ordering -> Ordering -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 771[label="",style="solid", color="blue", weight=9]; 14.42/5.48 771 -> 606[label="",style="solid", color="blue", weight=3]; 14.42/5.48 772[label="compare :: () -> () -> Ordering",fontsize=10,color="white",style="solid",shape="box"];569 -> 772[label="",style="solid", color="blue", weight=9]; 14.42/5.48 772 -> 607[label="",style="solid", color="blue", weight=3]; 14.42/5.48 570[label="vz35100",fontsize=16,color="green",shape="box"];571[label="vz3500",fontsize=16,color="green",shape="box"];572[label="vz35101",fontsize=16,color="green",shape="box"];580 -> 509[label="",style="dashed", color="red", weight=0]; 14.42/5.48 580[label="compare vz340 vz3500",fontsize=16,color="magenta"];580 -> 612[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 580 -> 613[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 581[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];581 -> 614[label="",style="solid", color="black", weight=3]; 14.42/5.48 582[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];582 -> 615[label="",style="solid", color="black", weight=3]; 14.42/5.48 583[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];583 -> 616[label="",style="solid", color="black", weight=3]; 14.42/5.48 584[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];584 -> 617[label="",style="solid", color="black", weight=3]; 14.42/5.48 585[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];585 -> 618[label="",style="solid", color="black", weight=3]; 14.42/5.48 586[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];586 -> 619[label="",style="solid", color="black", weight=3]; 14.42/5.48 587[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];587 -> 620[label="",style="solid", color="black", weight=3]; 14.42/5.48 588[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];588 -> 621[label="",style="solid", color="black", weight=3]; 14.42/5.48 589[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];589 -> 622[label="",style="solid", color="black", weight=3]; 14.42/5.48 590[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];590 -> 623[label="",style="solid", color="black", weight=3]; 14.42/5.48 591[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];591 -> 624[label="",style="solid", color="black", weight=3]; 14.42/5.48 592[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];592 -> 625[label="",style="solid", color="black", weight=3]; 14.42/5.48 593[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];593 -> 626[label="",style="solid", color="black", weight=3]; 14.42/5.48 704[label="compare1 False True True",fontsize=16,color="black",shape="box"];704 -> 706[label="",style="solid", color="black", weight=3]; 14.42/5.48 705[label="compare1 True False False",fontsize=16,color="black",shape="box"];705 -> 707[label="",style="solid", color="black", weight=3]; 14.42/5.48 594 -> 509[label="",style="dashed", color="red", weight=0]; 14.42/5.48 594[label="compare vz3500 vz35100",fontsize=16,color="magenta"];594 -> 627[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 594 -> 628[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 595 -> 581[label="",style="dashed", color="red", weight=0]; 14.42/5.48 595[label="compare vz3500 vz35100",fontsize=16,color="magenta"];595 -> 629[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 595 -> 630[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 596 -> 582[label="",style="dashed", color="red", weight=0]; 14.42/5.48 596[label="compare vz3500 vz35100",fontsize=16,color="magenta"];596 -> 631[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 596 -> 632[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 597 -> 583[label="",style="dashed", color="red", weight=0]; 14.42/5.48 597[label="compare vz3500 vz35100",fontsize=16,color="magenta"];597 -> 633[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 597 -> 634[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 598 -> 584[label="",style="dashed", color="red", weight=0]; 14.42/5.48 598[label="compare vz3500 vz35100",fontsize=16,color="magenta"];598 -> 635[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 598 -> 636[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 599 -> 585[label="",style="dashed", color="red", weight=0]; 14.42/5.48 599[label="compare vz3500 vz35100",fontsize=16,color="magenta"];599 -> 637[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 599 -> 638[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 600 -> 586[label="",style="dashed", color="red", weight=0]; 14.42/5.48 600[label="compare vz3500 vz35100",fontsize=16,color="magenta"];600 -> 639[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 600 -> 640[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 601 -> 587[label="",style="dashed", color="red", weight=0]; 14.42/5.48 601[label="compare vz3500 vz35100",fontsize=16,color="magenta"];601 -> 641[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 601 -> 642[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 602 -> 588[label="",style="dashed", color="red", weight=0]; 14.42/5.48 602[label="compare vz3500 vz35100",fontsize=16,color="magenta"];602 -> 643[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 602 -> 644[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 603 -> 589[label="",style="dashed", color="red", weight=0]; 14.42/5.48 603[label="compare vz3500 vz35100",fontsize=16,color="magenta"];603 -> 645[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 603 -> 646[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 604 -> 590[label="",style="dashed", color="red", weight=0]; 14.42/5.48 604[label="compare vz3500 vz35100",fontsize=16,color="magenta"];604 -> 647[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 604 -> 648[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 605 -> 591[label="",style="dashed", color="red", weight=0]; 14.42/5.48 605[label="compare vz3500 vz35100",fontsize=16,color="magenta"];605 -> 649[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 605 -> 650[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 606 -> 592[label="",style="dashed", color="red", weight=0]; 14.42/5.48 606[label="compare vz3500 vz35100",fontsize=16,color="magenta"];606 -> 651[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 606 -> 652[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 607 -> 593[label="",style="dashed", color="red", weight=0]; 14.42/5.48 607[label="compare vz3500 vz35100",fontsize=16,color="magenta"];607 -> 653[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 607 -> 654[label="",style="dashed", color="magenta", weight=3]; 14.42/5.48 612[label="vz340",fontsize=16,color="green",shape="box"];613[label="vz3500",fontsize=16,color="green",shape="box"];614[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];614 -> 660[label="",style="solid", color="black", weight=3]; 14.42/5.48 615[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];615 -> 661[label="",style="solid", color="black", weight=3]; 14.42/5.48 616[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];616 -> 662[label="",style="solid", color="black", weight=3]; 14.42/5.48 617[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];617 -> 663[label="",style="solid", color="black", weight=3]; 14.42/5.48 618[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];618 -> 664[label="",style="solid", color="black", weight=3]; 14.42/5.48 619[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];619 -> 665[label="",style="solid", color="black", weight=3]; 14.42/5.48 620[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];620 -> 666[label="",style="solid", color="black", weight=3]; 14.42/5.48 621[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];621 -> 667[label="",style="solid", color="black", weight=3]; 14.42/5.48 622[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];622 -> 668[label="",style="solid", color="black", weight=3]; 14.42/5.48 623[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];623 -> 669[label="",style="solid", color="black", weight=3]; 14.42/5.48 624[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];624 -> 670[label="",style="solid", color="black", weight=3]; 14.42/5.48 625[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];625 -> 671[label="",style="solid", color="black", weight=3]; 14.42/5.48 626[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];626 -> 672[label="",style="solid", color="black", weight=3]; 14.42/5.48 706[label="LT",fontsize=16,color="green",shape="box"];707[label="compare0 True False otherwise",fontsize=16,color="black",shape="box"];707 -> 708[label="",style="solid", color="black", weight=3]; 14.42/5.48 627[label="vz3500",fontsize=16,color="green",shape="box"];628[label="vz35100",fontsize=16,color="green",shape="box"];629[label="vz3500",fontsize=16,color="green",shape="box"];630[label="vz35100",fontsize=16,color="green",shape="box"];631[label="vz3500",fontsize=16,color="green",shape="box"];632[label="vz35100",fontsize=16,color="green",shape="box"];633[label="vz3500",fontsize=16,color="green",shape="box"];634[label="vz35100",fontsize=16,color="green",shape="box"];635[label="vz3500",fontsize=16,color="green",shape="box"];636[label="vz35100",fontsize=16,color="green",shape="box"];637[label="vz3500",fontsize=16,color="green",shape="box"];638[label="vz35100",fontsize=16,color="green",shape="box"];639[label="vz3500",fontsize=16,color="green",shape="box"];640[label="vz35100",fontsize=16,color="green",shape="box"];641[label="vz3500",fontsize=16,color="green",shape="box"];642[label="vz35100",fontsize=16,color="green",shape="box"];643[label="vz3500",fontsize=16,color="green",shape="box"];644[label="vz35100",fontsize=16,color="green",shape="box"];645[label="vz3500",fontsize=16,color="green",shape="box"];646[label="vz35100",fontsize=16,color="green",shape="box"];647[label="vz3500",fontsize=16,color="green",shape="box"];648[label="vz35100",fontsize=16,color="green",shape="box"];649[label="vz3500",fontsize=16,color="green",shape="box"];650[label="vz35100",fontsize=16,color="green",shape="box"];651[label="vz3500",fontsize=16,color="green",shape="box"];652[label="vz35100",fontsize=16,color="green",shape="box"];653[label="vz3500",fontsize=16,color="green",shape="box"];654[label="vz35100",fontsize=16,color="green",shape="box"];660[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];660 -> 683[label="",style="solid", color="black", weight=3]; 14.42/5.48 661[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];661 -> 684[label="",style="solid", color="black", weight=3]; 14.42/5.48 662[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];662 -> 685[label="",style="solid", color="black", weight=3]; 14.42/5.48 663[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];663 -> 686[label="",style="solid", color="black", weight=3]; 14.42/5.48 664[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];664 -> 687[label="",style="solid", color="black", weight=3]; 14.42/5.48 665[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];665 -> 688[label="",style="solid", color="black", weight=3]; 14.42/5.48 666[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];666 -> 689[label="",style="solid", color="black", weight=3]; 14.42/5.48 667[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];667 -> 690[label="",style="solid", color="black", weight=3]; 14.42/5.48 668[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];668 -> 691[label="",style="solid", color="black", weight=3]; 14.42/5.48 669[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];669 -> 692[label="",style="solid", color="black", weight=3]; 14.42/5.48 670[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];670 -> 693[label="",style="solid", color="black", weight=3]; 14.42/5.48 671[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];671 -> 694[label="",style="solid", color="black", weight=3]; 14.42/5.48 672[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];672 -> 695[label="",style="solid", color="black", weight=3]; 14.42/5.48 708[label="compare0 True False True",fontsize=16,color="black",shape="box"];708 -> 709[label="",style="solid", color="black", weight=3]; 14.42/5.48 683[label="error []",fontsize=16,color="red",shape="box"];684[label="error []",fontsize=16,color="red",shape="box"];685[label="error []",fontsize=16,color="red",shape="box"];686[label="error []",fontsize=16,color="red",shape="box"];687[label="error []",fontsize=16,color="red",shape="box"];688[label="error []",fontsize=16,color="red",shape="box"];689[label="error []",fontsize=16,color="red",shape="box"];690[label="error []",fontsize=16,color="red",shape="box"];691[label="error []",fontsize=16,color="red",shape="box"];692[label="error []",fontsize=16,color="red",shape="box"];693[label="error []",fontsize=16,color="red",shape="box"];694[label="error []",fontsize=16,color="red",shape="box"];695[label="error []",fontsize=16,color="red",shape="box"];709[label="GT",fontsize=16,color="green",shape="box"];} 14.42/5.48 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (8) 14.42/5.48 Complex Obligation (AND) 14.42/5.48 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (9) 14.42/5.48 Obligation: 14.42/5.48 Q DP problem: 14.42/5.48 The TRS P consists of the following rules: 14.42/5.48 14.42/5.48 new_merge_pairs(:(vz35110, :(vz351110, vz351111)), ba) -> new_merge_pairs(vz351111, ba) 14.42/5.48 14.42/5.48 R is empty. 14.42/5.48 Q is empty. 14.42/5.48 We have to consider all minimal (P,Q,R)-chains. 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (10) QDPSizeChangeProof (EQUIVALENT) 14.42/5.48 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. 14.42/5.48 14.42/5.48 From the DPs we obtained the following set of size-change graphs: 14.42/5.48 *new_merge_pairs(:(vz35110, :(vz351110, vz351111)), ba) -> new_merge_pairs(vz351111, ba) 14.42/5.48 The graph contains the following edges 1 > 1, 2 >= 2 14.42/5.48 14.42/5.48 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (11) 14.42/5.48 YES 14.42/5.48 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (12) 14.42/5.48 Obligation: 14.42/5.48 Q DP problem: 14.42/5.48 The TRS P consists of the following rules: 14.42/5.48 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.48 new_merge(:(vz340, vz341), :(vz3500, vz3501), bb) -> new_merge0(vz3500, vz340, vz341, vz3501, new_compare(vz340, vz3500, bb), bb) 14.42/5.48 14.42/5.48 The TRS R consists of the following rules: 14.42/5.48 14.42/5.48 new_compare7(False, True) -> LT 14.42/5.48 new_compare7(True, True) -> EQ 14.42/5.48 new_compare9(vz340, vz3500, bg) -> error([]) 14.42/5.48 new_compare7(False, False) -> EQ 14.42/5.48 new_compare(vz340, vz3500, ty_Bool) -> new_compare7(vz340, vz3500) 14.42/5.48 new_compare(vz340, vz3500, ty_Ordering) -> new_compare13(vz340, vz3500) 14.42/5.48 new_compare4(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Integer) -> new_compare0(vz340, vz3500) 14.42/5.48 new_compare10(vz340, vz3500, bh, ca) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(ty_Ratio, bg)) -> new_compare9(vz340, vz3500, bg) 14.42/5.48 new_compare11(vz340, vz3500, cb) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(app(app(ty_@3, bd), be), bf)) -> new_compare6(vz340, vz3500, bd, be, bf) 14.42/5.48 new_compare(vz340, vz3500, app(app(ty_@2, cc), cd)) -> new_compare12(vz340, vz3500, cc, cd) 14.42/5.48 new_compare13(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(ty_[], bc)) -> new_compare5(vz340, vz3500, bc) 14.42/5.48 new_compare12(vz340, vz3500, cc, cd) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(ty_Maybe, cb)) -> new_compare11(vz340, vz3500, cb) 14.42/5.48 new_compare2(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Char) -> new_compare1(vz340, vz3500) 14.42/5.48 new_compare5(vz340, vz3500, bc) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Double) -> new_compare8(vz340, vz3500) 14.42/5.48 new_compare(vz340, vz3500, ty_@0) -> new_compare4(vz340, vz3500) 14.42/5.48 new_compare8(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(app(ty_Either, bh), ca)) -> new_compare10(vz340, vz3500, bh, ca) 14.42/5.48 new_compare0(vz340, vz3500) -> error([]) 14.42/5.48 new_compare6(vz340, vz3500, bd, be, bf) -> error([]) 14.42/5.48 new_compare7(True, False) -> GT 14.42/5.48 new_compare1(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Int) -> new_compare2(vz340, vz3500) 14.42/5.48 new_compare3(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Float) -> new_compare3(vz340, vz3500) 14.42/5.48 14.42/5.48 The set Q consists of the following terms: 14.42/5.48 14.42/5.48 new_compare7(False, False) 14.42/5.48 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.42/5.48 new_compare(x0, x1, app(ty_Ratio, x2)) 14.42/5.48 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.42/5.48 new_compare6(x0, x1, x2, x3, x4) 14.42/5.48 new_compare10(x0, x1, x2, x3) 14.42/5.48 new_compare11(x0, x1, x2) 14.42/5.48 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.42/5.48 new_compare(x0, x1, ty_Integer) 14.42/5.48 new_compare(x0, x1, ty_Bool) 14.42/5.48 new_compare7(False, True) 14.42/5.48 new_compare2(x0, x1) 14.42/5.48 new_compare7(True, False) 14.42/5.48 new_compare(x0, x1, ty_Float) 14.42/5.48 new_compare(x0, x1, app(ty_Maybe, x2)) 14.42/5.48 new_compare13(x0, x1) 14.42/5.48 new_compare8(x0, x1) 14.42/5.48 new_compare12(x0, x1, x2, x3) 14.42/5.48 new_compare5(x0, x1, x2) 14.42/5.48 new_compare1(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Int) 14.42/5.48 new_compare3(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Char) 14.42/5.48 new_compare7(True, True) 14.42/5.48 new_compare9(x0, x1, x2) 14.42/5.48 new_compare4(x0, x1) 14.42/5.48 new_compare0(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Double) 14.42/5.48 new_compare(x0, x1, ty_@0) 14.42/5.48 new_compare(x0, x1, app(ty_[], x2)) 14.42/5.48 new_compare(x0, x1, ty_Ordering) 14.42/5.48 14.42/5.48 We have to consider all minimal (P,Q,R)-chains. 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (13) TransformationProof (EQUIVALENT) 14.42/5.48 By narrowing [LPAR04] the rule new_merge(:(vz340, vz341), :(vz3500, vz3501), bb) -> new_merge0(vz3500, vz340, vz341, vz3501, new_compare(vz340, vz3500, bb), bb) at position [4] we obtained the following new rules [LPAR04]: 14.42/5.48 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), ty_Bool) -> new_merge0(x1, x0, y1, y3, new_compare7(x0, x1), ty_Bool),new_merge(:(x0, y1), :(x1, y3), ty_Bool) -> new_merge0(x1, x0, y1, y3, new_compare7(x0, x1), ty_Bool)) 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), ty_Ordering) -> new_merge0(x1, x0, y1, y3, new_compare13(x0, x1), ty_Ordering),new_merge(:(x0, y1), :(x1, y3), ty_Ordering) -> new_merge0(x1, x0, y1, y3, new_compare13(x0, x1), ty_Ordering)) 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), ty_Integer) -> new_merge0(x1, x0, y1, y3, new_compare0(x0, x1), ty_Integer),new_merge(:(x0, y1), :(x1, y3), ty_Integer) -> new_merge0(x1, x0, y1, y3, new_compare0(x0, x1), ty_Integer)) 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), app(ty_Ratio, x2)) -> new_merge0(x1, x0, y1, y3, new_compare9(x0, x1, x2), app(ty_Ratio, x2)),new_merge(:(x0, y1), :(x1, y3), app(ty_Ratio, x2)) -> new_merge0(x1, x0, y1, y3, new_compare9(x0, x1, x2), app(ty_Ratio, x2))) 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), app(app(app(ty_@3, x2), x3), x4)) -> new_merge0(x1, x0, y1, y3, new_compare6(x0, x1, x2, x3, x4), app(app(app(ty_@3, x2), x3), x4)),new_merge(:(x0, y1), :(x1, y3), app(app(app(ty_@3, x2), x3), x4)) -> new_merge0(x1, x0, y1, y3, new_compare6(x0, x1, x2, x3, x4), app(app(app(ty_@3, x2), x3), x4))) 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), app(app(ty_@2, x2), x3)) -> new_merge0(x1, x0, y1, y3, new_compare12(x0, x1, x2, x3), app(app(ty_@2, x2), x3)),new_merge(:(x0, y1), :(x1, y3), app(app(ty_@2, x2), x3)) -> new_merge0(x1, x0, y1, y3, new_compare12(x0, x1, x2, x3), app(app(ty_@2, x2), x3))) 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), app(ty_[], x2)) -> new_merge0(x1, x0, y1, y3, new_compare5(x0, x1, x2), app(ty_[], x2)),new_merge(:(x0, y1), :(x1, y3), app(ty_[], x2)) -> new_merge0(x1, x0, y1, y3, new_compare5(x0, x1, x2), app(ty_[], x2))) 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), app(ty_Maybe, x2)) -> new_merge0(x1, x0, y1, y3, new_compare11(x0, x1, x2), app(ty_Maybe, x2)),new_merge(:(x0, y1), :(x1, y3), app(ty_Maybe, x2)) -> new_merge0(x1, x0, y1, y3, new_compare11(x0, x1, x2), app(ty_Maybe, x2))) 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), ty_Char) -> new_merge0(x1, x0, y1, y3, new_compare1(x0, x1), ty_Char),new_merge(:(x0, y1), :(x1, y3), ty_Char) -> new_merge0(x1, x0, y1, y3, new_compare1(x0, x1), ty_Char)) 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), ty_Double) -> new_merge0(x1, x0, y1, y3, new_compare8(x0, x1), ty_Double),new_merge(:(x0, y1), :(x1, y3), ty_Double) -> new_merge0(x1, x0, y1, y3, new_compare8(x0, x1), ty_Double)) 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), ty_@0) -> new_merge0(x1, x0, y1, y3, new_compare4(x0, x1), ty_@0),new_merge(:(x0, y1), :(x1, y3), ty_@0) -> new_merge0(x1, x0, y1, y3, new_compare4(x0, x1), ty_@0)) 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), app(app(ty_Either, x2), x3)) -> new_merge0(x1, x0, y1, y3, new_compare10(x0, x1, x2, x3), app(app(ty_Either, x2), x3)),new_merge(:(x0, y1), :(x1, y3), app(app(ty_Either, x2), x3)) -> new_merge0(x1, x0, y1, y3, new_compare10(x0, x1, x2, x3), app(app(ty_Either, x2), x3))) 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), ty_Int) -> new_merge0(x1, x0, y1, y3, new_compare2(x0, x1), ty_Int),new_merge(:(x0, y1), :(x1, y3), ty_Int) -> new_merge0(x1, x0, y1, y3, new_compare2(x0, x1), ty_Int)) 14.42/5.48 (new_merge(:(x0, y1), :(x1, y3), ty_Float) -> new_merge0(x1, x0, y1, y3, new_compare3(x0, x1), ty_Float),new_merge(:(x0, y1), :(x1, y3), ty_Float) -> new_merge0(x1, x0, y1, y3, new_compare3(x0, x1), ty_Float)) 14.42/5.48 14.42/5.48 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (14) 14.42/5.48 Obligation: 14.42/5.48 Q DP problem: 14.42/5.48 The TRS P consists of the following rules: 14.42/5.48 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), ty_Bool) -> new_merge0(x1, x0, y1, y3, new_compare7(x0, x1), ty_Bool) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), ty_Ordering) -> new_merge0(x1, x0, y1, y3, new_compare13(x0, x1), ty_Ordering) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), ty_Integer) -> new_merge0(x1, x0, y1, y3, new_compare0(x0, x1), ty_Integer) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), app(ty_Ratio, x2)) -> new_merge0(x1, x0, y1, y3, new_compare9(x0, x1, x2), app(ty_Ratio, x2)) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), app(app(app(ty_@3, x2), x3), x4)) -> new_merge0(x1, x0, y1, y3, new_compare6(x0, x1, x2, x3, x4), app(app(app(ty_@3, x2), x3), x4)) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), app(app(ty_@2, x2), x3)) -> new_merge0(x1, x0, y1, y3, new_compare12(x0, x1, x2, x3), app(app(ty_@2, x2), x3)) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), app(ty_[], x2)) -> new_merge0(x1, x0, y1, y3, new_compare5(x0, x1, x2), app(ty_[], x2)) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), app(ty_Maybe, x2)) -> new_merge0(x1, x0, y1, y3, new_compare11(x0, x1, x2), app(ty_Maybe, x2)) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), ty_Char) -> new_merge0(x1, x0, y1, y3, new_compare1(x0, x1), ty_Char) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), ty_Double) -> new_merge0(x1, x0, y1, y3, new_compare8(x0, x1), ty_Double) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), ty_@0) -> new_merge0(x1, x0, y1, y3, new_compare4(x0, x1), ty_@0) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), app(app(ty_Either, x2), x3)) -> new_merge0(x1, x0, y1, y3, new_compare10(x0, x1, x2, x3), app(app(ty_Either, x2), x3)) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), ty_Int) -> new_merge0(x1, x0, y1, y3, new_compare2(x0, x1), ty_Int) 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), ty_Float) -> new_merge0(x1, x0, y1, y3, new_compare3(x0, x1), ty_Float) 14.42/5.48 14.42/5.48 The TRS R consists of the following rules: 14.42/5.48 14.42/5.48 new_compare7(False, True) -> LT 14.42/5.48 new_compare7(True, True) -> EQ 14.42/5.48 new_compare9(vz340, vz3500, bg) -> error([]) 14.42/5.48 new_compare7(False, False) -> EQ 14.42/5.48 new_compare(vz340, vz3500, ty_Bool) -> new_compare7(vz340, vz3500) 14.42/5.48 new_compare(vz340, vz3500, ty_Ordering) -> new_compare13(vz340, vz3500) 14.42/5.48 new_compare4(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Integer) -> new_compare0(vz340, vz3500) 14.42/5.48 new_compare10(vz340, vz3500, bh, ca) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(ty_Ratio, bg)) -> new_compare9(vz340, vz3500, bg) 14.42/5.48 new_compare11(vz340, vz3500, cb) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(app(app(ty_@3, bd), be), bf)) -> new_compare6(vz340, vz3500, bd, be, bf) 14.42/5.48 new_compare(vz340, vz3500, app(app(ty_@2, cc), cd)) -> new_compare12(vz340, vz3500, cc, cd) 14.42/5.48 new_compare13(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(ty_[], bc)) -> new_compare5(vz340, vz3500, bc) 14.42/5.48 new_compare12(vz340, vz3500, cc, cd) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(ty_Maybe, cb)) -> new_compare11(vz340, vz3500, cb) 14.42/5.48 new_compare2(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Char) -> new_compare1(vz340, vz3500) 14.42/5.48 new_compare5(vz340, vz3500, bc) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Double) -> new_compare8(vz340, vz3500) 14.42/5.48 new_compare(vz340, vz3500, ty_@0) -> new_compare4(vz340, vz3500) 14.42/5.48 new_compare8(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(app(ty_Either, bh), ca)) -> new_compare10(vz340, vz3500, bh, ca) 14.42/5.48 new_compare0(vz340, vz3500) -> error([]) 14.42/5.48 new_compare6(vz340, vz3500, bd, be, bf) -> error([]) 14.42/5.48 new_compare7(True, False) -> GT 14.42/5.48 new_compare1(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Int) -> new_compare2(vz340, vz3500) 14.42/5.48 new_compare3(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Float) -> new_compare3(vz340, vz3500) 14.42/5.48 14.42/5.48 The set Q consists of the following terms: 14.42/5.48 14.42/5.48 new_compare7(False, False) 14.42/5.48 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.42/5.48 new_compare(x0, x1, app(ty_Ratio, x2)) 14.42/5.48 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.42/5.48 new_compare6(x0, x1, x2, x3, x4) 14.42/5.48 new_compare10(x0, x1, x2, x3) 14.42/5.48 new_compare11(x0, x1, x2) 14.42/5.48 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.42/5.48 new_compare(x0, x1, ty_Integer) 14.42/5.48 new_compare(x0, x1, ty_Bool) 14.42/5.48 new_compare7(False, True) 14.42/5.48 new_compare2(x0, x1) 14.42/5.48 new_compare7(True, False) 14.42/5.48 new_compare(x0, x1, ty_Float) 14.42/5.48 new_compare(x0, x1, app(ty_Maybe, x2)) 14.42/5.48 new_compare13(x0, x1) 14.42/5.48 new_compare8(x0, x1) 14.42/5.48 new_compare12(x0, x1, x2, x3) 14.42/5.48 new_compare5(x0, x1, x2) 14.42/5.48 new_compare1(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Int) 14.42/5.48 new_compare3(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Char) 14.42/5.48 new_compare7(True, True) 14.42/5.48 new_compare9(x0, x1, x2) 14.42/5.48 new_compare4(x0, x1) 14.42/5.48 new_compare0(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Double) 14.42/5.48 new_compare(x0, x1, ty_@0) 14.42/5.48 new_compare(x0, x1, app(ty_[], x2)) 14.42/5.48 new_compare(x0, x1, ty_Ordering) 14.42/5.48 14.42/5.48 We have to consider all minimal (P,Q,R)-chains. 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (15) DependencyGraphProof (EQUIVALENT) 14.42/5.48 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 13 less nodes. 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (16) 14.42/5.48 Obligation: 14.42/5.48 Q DP problem: 14.42/5.48 The TRS P consists of the following rules: 14.42/5.48 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), ty_Bool) -> new_merge0(x1, x0, y1, y3, new_compare7(x0, x1), ty_Bool) 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.48 14.42/5.48 The TRS R consists of the following rules: 14.42/5.48 14.42/5.48 new_compare7(False, True) -> LT 14.42/5.48 new_compare7(True, True) -> EQ 14.42/5.48 new_compare9(vz340, vz3500, bg) -> error([]) 14.42/5.48 new_compare7(False, False) -> EQ 14.42/5.48 new_compare(vz340, vz3500, ty_Bool) -> new_compare7(vz340, vz3500) 14.42/5.48 new_compare(vz340, vz3500, ty_Ordering) -> new_compare13(vz340, vz3500) 14.42/5.48 new_compare4(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Integer) -> new_compare0(vz340, vz3500) 14.42/5.48 new_compare10(vz340, vz3500, bh, ca) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(ty_Ratio, bg)) -> new_compare9(vz340, vz3500, bg) 14.42/5.48 new_compare11(vz340, vz3500, cb) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(app(app(ty_@3, bd), be), bf)) -> new_compare6(vz340, vz3500, bd, be, bf) 14.42/5.48 new_compare(vz340, vz3500, app(app(ty_@2, cc), cd)) -> new_compare12(vz340, vz3500, cc, cd) 14.42/5.48 new_compare13(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(ty_[], bc)) -> new_compare5(vz340, vz3500, bc) 14.42/5.48 new_compare12(vz340, vz3500, cc, cd) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(ty_Maybe, cb)) -> new_compare11(vz340, vz3500, cb) 14.42/5.48 new_compare2(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Char) -> new_compare1(vz340, vz3500) 14.42/5.48 new_compare5(vz340, vz3500, bc) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Double) -> new_compare8(vz340, vz3500) 14.42/5.48 new_compare(vz340, vz3500, ty_@0) -> new_compare4(vz340, vz3500) 14.42/5.48 new_compare8(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, app(app(ty_Either, bh), ca)) -> new_compare10(vz340, vz3500, bh, ca) 14.42/5.48 new_compare0(vz340, vz3500) -> error([]) 14.42/5.48 new_compare6(vz340, vz3500, bd, be, bf) -> error([]) 14.42/5.48 new_compare7(True, False) -> GT 14.42/5.48 new_compare1(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Int) -> new_compare2(vz340, vz3500) 14.42/5.48 new_compare3(vz340, vz3500) -> error([]) 14.42/5.48 new_compare(vz340, vz3500, ty_Float) -> new_compare3(vz340, vz3500) 14.42/5.48 14.42/5.48 The set Q consists of the following terms: 14.42/5.48 14.42/5.48 new_compare7(False, False) 14.42/5.48 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.42/5.48 new_compare(x0, x1, app(ty_Ratio, x2)) 14.42/5.48 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.42/5.48 new_compare6(x0, x1, x2, x3, x4) 14.42/5.48 new_compare10(x0, x1, x2, x3) 14.42/5.48 new_compare11(x0, x1, x2) 14.42/5.48 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.42/5.48 new_compare(x0, x1, ty_Integer) 14.42/5.48 new_compare(x0, x1, ty_Bool) 14.42/5.48 new_compare7(False, True) 14.42/5.48 new_compare2(x0, x1) 14.42/5.48 new_compare7(True, False) 14.42/5.48 new_compare(x0, x1, ty_Float) 14.42/5.48 new_compare(x0, x1, app(ty_Maybe, x2)) 14.42/5.48 new_compare13(x0, x1) 14.42/5.48 new_compare8(x0, x1) 14.42/5.48 new_compare12(x0, x1, x2, x3) 14.42/5.48 new_compare5(x0, x1, x2) 14.42/5.48 new_compare1(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Int) 14.42/5.48 new_compare3(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Char) 14.42/5.48 new_compare7(True, True) 14.42/5.48 new_compare9(x0, x1, x2) 14.42/5.48 new_compare4(x0, x1) 14.42/5.48 new_compare0(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Double) 14.42/5.48 new_compare(x0, x1, ty_@0) 14.42/5.48 new_compare(x0, x1, app(ty_[], x2)) 14.42/5.48 new_compare(x0, x1, ty_Ordering) 14.42/5.48 14.42/5.48 We have to consider all minimal (P,Q,R)-chains. 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (17) UsableRulesProof (EQUIVALENT) 14.42/5.48 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (18) 14.42/5.48 Obligation: 14.42/5.48 Q DP problem: 14.42/5.48 The TRS P consists of the following rules: 14.42/5.48 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), ty_Bool) -> new_merge0(x1, x0, y1, y3, new_compare7(x0, x1), ty_Bool) 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.48 14.42/5.48 The TRS R consists of the following rules: 14.42/5.48 14.42/5.48 new_compare7(False, True) -> LT 14.42/5.48 new_compare7(True, True) -> EQ 14.42/5.48 new_compare7(False, False) -> EQ 14.42/5.48 new_compare7(True, False) -> GT 14.42/5.48 14.42/5.48 The set Q consists of the following terms: 14.42/5.48 14.42/5.48 new_compare7(False, False) 14.42/5.48 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.42/5.48 new_compare(x0, x1, app(ty_Ratio, x2)) 14.42/5.48 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.42/5.48 new_compare6(x0, x1, x2, x3, x4) 14.42/5.48 new_compare10(x0, x1, x2, x3) 14.42/5.48 new_compare11(x0, x1, x2) 14.42/5.48 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.42/5.48 new_compare(x0, x1, ty_Integer) 14.42/5.48 new_compare(x0, x1, ty_Bool) 14.42/5.48 new_compare7(False, True) 14.42/5.48 new_compare2(x0, x1) 14.42/5.48 new_compare7(True, False) 14.42/5.48 new_compare(x0, x1, ty_Float) 14.42/5.48 new_compare(x0, x1, app(ty_Maybe, x2)) 14.42/5.48 new_compare13(x0, x1) 14.42/5.48 new_compare8(x0, x1) 14.42/5.48 new_compare12(x0, x1, x2, x3) 14.42/5.48 new_compare5(x0, x1, x2) 14.42/5.48 new_compare1(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Int) 14.42/5.48 new_compare3(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Char) 14.42/5.48 new_compare7(True, True) 14.42/5.48 new_compare9(x0, x1, x2) 14.42/5.48 new_compare4(x0, x1) 14.42/5.48 new_compare0(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Double) 14.42/5.48 new_compare(x0, x1, ty_@0) 14.42/5.48 new_compare(x0, x1, app(ty_[], x2)) 14.42/5.48 new_compare(x0, x1, ty_Ordering) 14.42/5.48 14.42/5.48 We have to consider all minimal (P,Q,R)-chains. 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (19) QReductionProof (EQUIVALENT) 14.42/5.48 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 14.42/5.48 14.42/5.48 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.42/5.48 new_compare(x0, x1, app(ty_Ratio, x2)) 14.42/5.48 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.42/5.48 new_compare6(x0, x1, x2, x3, x4) 14.42/5.48 new_compare10(x0, x1, x2, x3) 14.42/5.48 new_compare11(x0, x1, x2) 14.42/5.48 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.42/5.48 new_compare(x0, x1, ty_Integer) 14.42/5.48 new_compare(x0, x1, ty_Bool) 14.42/5.48 new_compare2(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Float) 14.42/5.48 new_compare(x0, x1, app(ty_Maybe, x2)) 14.42/5.48 new_compare13(x0, x1) 14.42/5.48 new_compare8(x0, x1) 14.42/5.48 new_compare12(x0, x1, x2, x3) 14.42/5.48 new_compare5(x0, x1, x2) 14.42/5.48 new_compare1(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Int) 14.42/5.48 new_compare3(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Char) 14.42/5.48 new_compare9(x0, x1, x2) 14.42/5.48 new_compare4(x0, x1) 14.42/5.48 new_compare0(x0, x1) 14.42/5.48 new_compare(x0, x1, ty_Double) 14.42/5.48 new_compare(x0, x1, ty_@0) 14.42/5.48 new_compare(x0, x1, app(ty_[], x2)) 14.42/5.48 new_compare(x0, x1, ty_Ordering) 14.42/5.48 14.42/5.48 14.42/5.48 ---------------------------------------- 14.42/5.48 14.42/5.48 (20) 14.42/5.48 Obligation: 14.42/5.48 Q DP problem: 14.42/5.48 The TRS P consists of the following rules: 14.42/5.48 14.42/5.48 new_merge(:(x0, y1), :(x1, y3), ty_Bool) -> new_merge0(x1, x0, y1, y3, new_compare7(x0, x1), ty_Bool) 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.42/5.48 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.48 14.42/5.48 The TRS R consists of the following rules: 14.42/5.48 14.42/5.48 new_compare7(False, True) -> LT 14.42/5.48 new_compare7(True, True) -> EQ 14.42/5.48 new_compare7(False, False) -> EQ 14.42/5.49 new_compare7(True, False) -> GT 14.42/5.49 14.42/5.49 The set Q consists of the following terms: 14.42/5.49 14.42/5.49 new_compare7(False, False) 14.42/5.49 new_compare7(False, True) 14.42/5.49 new_compare7(True, False) 14.42/5.49 new_compare7(True, True) 14.42/5.49 14.42/5.49 We have to consider all minimal (P,Q,R)-chains. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (21) TransformationProof (EQUIVALENT) 14.42/5.49 By narrowing [LPAR04] the rule new_merge(:(x0, y1), :(x1, y3), ty_Bool) -> new_merge0(x1, x0, y1, y3, new_compare7(x0, x1), ty_Bool) at position [4] we obtained the following new rules [LPAR04]: 14.42/5.49 14.42/5.49 (new_merge(:(False, y1), :(True, y3), ty_Bool) -> new_merge0(True, False, y1, y3, LT, ty_Bool),new_merge(:(False, y1), :(True, y3), ty_Bool) -> new_merge0(True, False, y1, y3, LT, ty_Bool)) 14.42/5.49 (new_merge(:(True, y1), :(True, y3), ty_Bool) -> new_merge0(True, True, y1, y3, EQ, ty_Bool),new_merge(:(True, y1), :(True, y3), ty_Bool) -> new_merge0(True, True, y1, y3, EQ, ty_Bool)) 14.42/5.49 (new_merge(:(False, y1), :(False, y3), ty_Bool) -> new_merge0(False, False, y1, y3, EQ, ty_Bool),new_merge(:(False, y1), :(False, y3), ty_Bool) -> new_merge0(False, False, y1, y3, EQ, ty_Bool)) 14.42/5.49 (new_merge(:(True, y1), :(False, y3), ty_Bool) -> new_merge0(False, True, y1, y3, GT, ty_Bool),new_merge(:(True, y1), :(False, y3), ty_Bool) -> new_merge0(False, True, y1, y3, GT, ty_Bool)) 14.42/5.49 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (22) 14.42/5.49 Obligation: 14.42/5.49 Q DP problem: 14.42/5.49 The TRS P consists of the following rules: 14.42/5.49 14.42/5.49 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.49 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.42/5.49 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.49 new_merge(:(False, y1), :(True, y3), ty_Bool) -> new_merge0(True, False, y1, y3, LT, ty_Bool) 14.42/5.49 new_merge(:(True, y1), :(True, y3), ty_Bool) -> new_merge0(True, True, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge(:(False, y1), :(False, y3), ty_Bool) -> new_merge0(False, False, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge(:(True, y1), :(False, y3), ty_Bool) -> new_merge0(False, True, y1, y3, GT, ty_Bool) 14.42/5.49 14.42/5.49 The TRS R consists of the following rules: 14.42/5.49 14.42/5.49 new_compare7(False, True) -> LT 14.42/5.49 new_compare7(True, True) -> EQ 14.42/5.49 new_compare7(False, False) -> EQ 14.42/5.49 new_compare7(True, False) -> GT 14.42/5.49 14.42/5.49 The set Q consists of the following terms: 14.42/5.49 14.42/5.49 new_compare7(False, False) 14.42/5.49 new_compare7(False, True) 14.42/5.49 new_compare7(True, False) 14.42/5.49 new_compare7(True, True) 14.42/5.49 14.42/5.49 We have to consider all minimal (P,Q,R)-chains. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (23) UsableRulesProof (EQUIVALENT) 14.42/5.49 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (24) 14.42/5.49 Obligation: 14.42/5.49 Q DP problem: 14.42/5.49 The TRS P consists of the following rules: 14.42/5.49 14.42/5.49 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.49 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.42/5.49 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.49 new_merge(:(False, y1), :(True, y3), ty_Bool) -> new_merge0(True, False, y1, y3, LT, ty_Bool) 14.42/5.49 new_merge(:(True, y1), :(True, y3), ty_Bool) -> new_merge0(True, True, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge(:(False, y1), :(False, y3), ty_Bool) -> new_merge0(False, False, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge(:(True, y1), :(False, y3), ty_Bool) -> new_merge0(False, True, y1, y3, GT, ty_Bool) 14.42/5.49 14.42/5.49 R is empty. 14.42/5.49 The set Q consists of the following terms: 14.42/5.49 14.42/5.49 new_compare7(False, False) 14.42/5.49 new_compare7(False, True) 14.42/5.49 new_compare7(True, False) 14.42/5.49 new_compare7(True, True) 14.42/5.49 14.42/5.49 We have to consider all minimal (P,Q,R)-chains. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (25) QReductionProof (EQUIVALENT) 14.42/5.49 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 14.42/5.49 14.42/5.49 new_compare7(False, False) 14.42/5.49 new_compare7(False, True) 14.42/5.49 new_compare7(True, False) 14.42/5.49 new_compare7(True, True) 14.42/5.49 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (26) 14.42/5.49 Obligation: 14.42/5.49 Q DP problem: 14.42/5.49 The TRS P consists of the following rules: 14.42/5.49 14.42/5.49 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.49 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.42/5.49 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.49 new_merge(:(False, y1), :(True, y3), ty_Bool) -> new_merge0(True, False, y1, y3, LT, ty_Bool) 14.42/5.49 new_merge(:(True, y1), :(True, y3), ty_Bool) -> new_merge0(True, True, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge(:(False, y1), :(False, y3), ty_Bool) -> new_merge0(False, False, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge(:(True, y1), :(False, y3), ty_Bool) -> new_merge0(False, True, y1, y3, GT, ty_Bool) 14.42/5.49 14.42/5.49 R is empty. 14.42/5.49 Q is empty. 14.42/5.49 We have to consider all minimal (P,Q,R)-chains. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (27) TransformationProof (EQUIVALENT) 14.42/5.49 By instantiating [LPAR04] the rule new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) we obtained the following new rules [LPAR04]: 14.42/5.49 14.42/5.49 (new_merge0(True, True, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(True, z1), ty_Bool),new_merge0(True, True, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(True, z1), ty_Bool)) 14.42/5.49 (new_merge0(False, False, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(False, z1), ty_Bool),new_merge0(False, False, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(False, z1), ty_Bool)) 14.42/5.49 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (28) 14.42/5.49 Obligation: 14.42/5.49 Q DP problem: 14.42/5.49 The TRS P consists of the following rules: 14.42/5.49 14.42/5.49 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.42/5.49 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.49 new_merge(:(False, y1), :(True, y3), ty_Bool) -> new_merge0(True, False, y1, y3, LT, ty_Bool) 14.42/5.49 new_merge(:(True, y1), :(True, y3), ty_Bool) -> new_merge0(True, True, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge(:(False, y1), :(False, y3), ty_Bool) -> new_merge0(False, False, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge(:(True, y1), :(False, y3), ty_Bool) -> new_merge0(False, True, y1, y3, GT, ty_Bool) 14.42/5.49 new_merge0(True, True, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(True, z1), ty_Bool) 14.42/5.49 new_merge0(False, False, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(False, z1), ty_Bool) 14.42/5.49 14.42/5.49 R is empty. 14.42/5.49 Q is empty. 14.42/5.49 We have to consider all minimal (P,Q,R)-chains. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (29) TransformationProof (EQUIVALENT) 14.42/5.49 By instantiating [LPAR04] the rule new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) we obtained the following new rules [LPAR04]: 14.42/5.49 14.42/5.49 (new_merge0(False, True, z0, z1, GT, ty_Bool) -> new_merge(:(True, z0), z1, ty_Bool),new_merge0(False, True, z0, z1, GT, ty_Bool) -> new_merge(:(True, z0), z1, ty_Bool)) 14.42/5.49 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (30) 14.42/5.49 Obligation: 14.42/5.49 Q DP problem: 14.42/5.49 The TRS P consists of the following rules: 14.42/5.49 14.42/5.49 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.42/5.49 new_merge(:(False, y1), :(True, y3), ty_Bool) -> new_merge0(True, False, y1, y3, LT, ty_Bool) 14.42/5.49 new_merge(:(True, y1), :(True, y3), ty_Bool) -> new_merge0(True, True, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge(:(False, y1), :(False, y3), ty_Bool) -> new_merge0(False, False, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge(:(True, y1), :(False, y3), ty_Bool) -> new_merge0(False, True, y1, y3, GT, ty_Bool) 14.42/5.49 new_merge0(True, True, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(True, z1), ty_Bool) 14.42/5.49 new_merge0(False, False, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(False, z1), ty_Bool) 14.42/5.49 new_merge0(False, True, z0, z1, GT, ty_Bool) -> new_merge(:(True, z0), z1, ty_Bool) 14.42/5.49 14.42/5.49 R is empty. 14.42/5.49 Q is empty. 14.42/5.49 We have to consider all minimal (P,Q,R)-chains. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (31) TransformationProof (EQUIVALENT) 14.42/5.49 By instantiating [LPAR04] the rule new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) we obtained the following new rules [LPAR04]: 14.42/5.49 14.42/5.49 (new_merge0(True, False, z0, z1, LT, ty_Bool) -> new_merge(z0, :(True, z1), ty_Bool),new_merge0(True, False, z0, z1, LT, ty_Bool) -> new_merge(z0, :(True, z1), ty_Bool)) 14.42/5.49 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (32) 14.42/5.49 Obligation: 14.42/5.49 Q DP problem: 14.42/5.49 The TRS P consists of the following rules: 14.42/5.49 14.42/5.49 new_merge(:(False, y1), :(True, y3), ty_Bool) -> new_merge0(True, False, y1, y3, LT, ty_Bool) 14.42/5.49 new_merge(:(True, y1), :(True, y3), ty_Bool) -> new_merge0(True, True, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge(:(False, y1), :(False, y3), ty_Bool) -> new_merge0(False, False, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge(:(True, y1), :(False, y3), ty_Bool) -> new_merge0(False, True, y1, y3, GT, ty_Bool) 14.42/5.49 new_merge0(True, True, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(True, z1), ty_Bool) 14.42/5.49 new_merge0(False, False, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(False, z1), ty_Bool) 14.42/5.49 new_merge0(False, True, z0, z1, GT, ty_Bool) -> new_merge(:(True, z0), z1, ty_Bool) 14.42/5.49 new_merge0(True, False, z0, z1, LT, ty_Bool) -> new_merge(z0, :(True, z1), ty_Bool) 14.42/5.49 14.42/5.49 R is empty. 14.42/5.49 Q is empty. 14.42/5.49 We have to consider all minimal (P,Q,R)-chains. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (33) DependencyGraphProof (EQUIVALENT) 14.42/5.49 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (34) 14.42/5.49 Complex Obligation (AND) 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (35) 14.42/5.49 Obligation: 14.42/5.49 Q DP problem: 14.42/5.49 The TRS P consists of the following rules: 14.42/5.49 14.42/5.49 new_merge0(True, False, z0, z1, LT, ty_Bool) -> new_merge(z0, :(True, z1), ty_Bool) 14.42/5.49 new_merge(:(False, y1), :(True, y3), ty_Bool) -> new_merge0(True, False, y1, y3, LT, ty_Bool) 14.42/5.49 new_merge(:(True, y1), :(True, y3), ty_Bool) -> new_merge0(True, True, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge0(True, True, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(True, z1), ty_Bool) 14.42/5.49 14.42/5.49 R is empty. 14.42/5.49 Q is empty. 14.42/5.49 We have to consider all minimal (P,Q,R)-chains. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (36) QDPSizeChangeProof (EQUIVALENT) 14.42/5.49 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. 14.42/5.49 14.42/5.49 From the DPs we obtained the following set of size-change graphs: 14.42/5.49 *new_merge(:(False, y1), :(True, y3), ty_Bool) -> new_merge0(True, False, y1, y3, LT, ty_Bool) 14.42/5.49 The graph contains the following edges 2 > 1, 1 > 2, 1 > 3, 2 > 4, 3 >= 6 14.42/5.49 14.42/5.49 14.42/5.49 *new_merge(:(True, y1), :(True, y3), ty_Bool) -> new_merge0(True, True, y1, y3, EQ, ty_Bool) 14.42/5.49 The graph contains the following edges 1 > 1, 2 > 1, 1 > 2, 2 > 2, 1 > 3, 2 > 4, 3 >= 6 14.42/5.49 14.42/5.49 14.42/5.49 *new_merge0(True, False, z0, z1, LT, ty_Bool) -> new_merge(z0, :(True, z1), ty_Bool) 14.42/5.49 The graph contains the following edges 3 >= 1, 6 >= 3 14.42/5.49 14.42/5.49 14.42/5.49 *new_merge0(True, True, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(True, z1), ty_Bool) 14.42/5.49 The graph contains the following edges 3 >= 1, 6 >= 3 14.42/5.49 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (37) 14.42/5.49 YES 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (38) 14.42/5.49 Obligation: 14.42/5.49 Q DP problem: 14.42/5.49 The TRS P consists of the following rules: 14.42/5.49 14.42/5.49 new_merge(:(True, y1), :(False, y3), ty_Bool) -> new_merge0(False, True, y1, y3, GT, ty_Bool) 14.42/5.49 new_merge0(False, True, z0, z1, GT, ty_Bool) -> new_merge(:(True, z0), z1, ty_Bool) 14.42/5.49 14.42/5.49 R is empty. 14.42/5.49 Q is empty. 14.42/5.49 We have to consider all minimal (P,Q,R)-chains. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (39) QDPSizeChangeProof (EQUIVALENT) 14.42/5.49 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. 14.42/5.49 14.42/5.49 From the DPs we obtained the following set of size-change graphs: 14.42/5.49 *new_merge0(False, True, z0, z1, GT, ty_Bool) -> new_merge(:(True, z0), z1, ty_Bool) 14.42/5.49 The graph contains the following edges 4 >= 2, 6 >= 3 14.42/5.49 14.42/5.49 14.42/5.49 *new_merge(:(True, y1), :(False, y3), ty_Bool) -> new_merge0(False, True, y1, y3, GT, ty_Bool) 14.42/5.49 The graph contains the following edges 2 > 1, 1 > 2, 1 > 3, 2 > 4, 3 >= 6 14.42/5.49 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (40) 14.42/5.49 YES 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (41) 14.42/5.49 Obligation: 14.42/5.49 Q DP problem: 14.42/5.49 The TRS P consists of the following rules: 14.42/5.49 14.42/5.49 new_merge(:(False, y1), :(False, y3), ty_Bool) -> new_merge0(False, False, y1, y3, EQ, ty_Bool) 14.42/5.49 new_merge0(False, False, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(False, z1), ty_Bool) 14.42/5.49 14.42/5.49 R is empty. 14.42/5.49 Q is empty. 14.42/5.49 We have to consider all minimal (P,Q,R)-chains. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (42) QDPSizeChangeProof (EQUIVALENT) 14.42/5.49 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. 14.42/5.49 14.42/5.49 From the DPs we obtained the following set of size-change graphs: 14.42/5.49 *new_merge0(False, False, z0, z1, EQ, ty_Bool) -> new_merge(z0, :(False, z1), ty_Bool) 14.42/5.49 The graph contains the following edges 3 >= 1, 6 >= 3 14.42/5.49 14.42/5.49 14.42/5.49 *new_merge(:(False, y1), :(False, y3), ty_Bool) -> new_merge0(False, False, y1, y3, EQ, ty_Bool) 14.42/5.49 The graph contains the following edges 1 > 1, 2 > 1, 1 > 2, 2 > 2, 1 > 3, 2 > 4, 3 >= 6 14.42/5.49 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (43) 14.42/5.49 YES 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (44) 14.42/5.49 Obligation: 14.42/5.49 Q DP problem: 14.42/5.49 The TRS P consists of the following rules: 14.42/5.49 14.42/5.49 new_map(:(vz3110, vz3111)) -> new_map(vz3111) 14.42/5.49 14.42/5.49 R is empty. 14.42/5.49 Q is empty. 14.42/5.49 We have to consider all minimal (P,Q,R)-chains. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (45) QDPSizeChangeProof (EQUIVALENT) 14.42/5.49 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. 14.42/5.49 14.42/5.49 From the DPs we obtained the following set of size-change graphs: 14.42/5.49 *new_map(:(vz3110, vz3111)) -> new_map(vz3111) 14.42/5.49 The graph contains the following edges 1 > 1 14.42/5.49 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (46) 14.42/5.49 YES 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (47) 14.42/5.49 Obligation: 14.42/5.49 Q DP problem: 14.42/5.49 The TRS P consists of the following rules: 14.42/5.49 14.42/5.49 new_mergesort'(vz34, :(vz350, []), ba) -> new_mergesort'(new_merge2(vz34, vz350, ba), [], ba) 14.42/5.49 new_mergesort'(vz34, :(vz350, :(vz3510, vz3511)), ba) -> new_mergesort'(new_merge1(vz34, vz350, vz3510, ba), new_merge_pairs0(vz3511, ba), ba) 14.42/5.49 14.42/5.49 The TRS R consists of the following rules: 14.42/5.49 14.42/5.49 new_compare7(False, True) -> LT 14.42/5.49 new_compare9(vz340, vz3500, bb) -> error([]) 14.42/5.49 new_compare(vz340, vz3500, ty_Ordering) -> new_compare13(vz340, vz3500) 14.42/5.49 new_compare4(vz340, vz3500) -> error([]) 14.42/5.49 new_compare11(vz340, vz3500, ca) -> error([]) 14.42/5.49 new_compare(vz340, vz3500, app(app(ty_@2, cb), cc)) -> new_compare12(vz340, vz3500, cb, cc) 14.42/5.49 new_compare14(vz3500, vz35100, app(app(app(ty_@3, bc), bd), be)) -> new_compare6(vz3500, vz35100, bc, bd, be) 14.42/5.49 new_compare(vz340, vz3500, app(ty_[], bf)) -> new_compare5(vz340, vz3500, bf) 14.42/5.49 new_compare12(vz340, vz3500, cb, cc) -> error([]) 14.42/5.49 new_compare(vz340, vz3500, app(ty_Maybe, ca)) -> new_compare11(vz340, vz3500, ca) 14.42/5.49 new_compare(vz340, vz3500, ty_Char) -> new_compare1(vz340, vz3500) 14.42/5.49 new_merge_pairs0(:(vz35110, []), ba) -> :(vz35110, []) 14.42/5.49 new_compare14(vz3500, vz35100, app(app(ty_Either, bg), bh)) -> new_compare10(vz3500, vz35100, bg, bh) 14.42/5.49 new_merge1(vz34, :(vz3500, vz3501), :(vz35100, vz35101), ba) -> new_merge2(vz34, new_merge00(vz35100, vz3500, vz3501, vz35101, new_compare14(vz3500, vz35100, ba), ba), ba) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Bool) -> new_compare7(vz3500, vz35100) 14.42/5.49 new_compare5(vz340, vz3500, bf) -> error([]) 14.42/5.49 new_compare8(vz340, vz3500) -> error([]) 14.42/5.49 new_merge2([], :(vz3500, vz3501), ba) -> :(vz3500, vz3501) 14.42/5.49 new_compare0(vz340, vz3500) -> error([]) 14.42/5.49 new_compare14(vz3500, vz35100, app(app(ty_@2, cb), cc)) -> new_compare12(vz3500, vz35100, cb, cc) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Double) -> new_compare8(vz3500, vz35100) 14.42/5.49 new_compare6(vz340, vz3500, bc, bd, be) -> error([]) 14.42/5.49 new_compare(vz340, vz3500, ty_Int) -> new_compare2(vz340, vz3500) 14.42/5.49 new_merge_pairs0(:(vz35110, :(vz351110, vz351111)), ba) -> :(new_merge2(vz35110, vz351110, ba), new_merge_pairs0(vz351111, ba)) 14.42/5.49 new_compare3(vz340, vz3500) -> error([]) 14.42/5.49 new_merge00(vz44, vz45, vz46, vz47, LT, cd) -> :(vz45, new_merge2(vz46, :(vz44, vz47), cd)) 14.42/5.49 new_compare7(True, True) -> EQ 14.42/5.49 new_compare(vz340, vz3500, ty_Bool) -> new_compare7(vz340, vz3500) 14.42/5.49 new_compare7(False, False) -> EQ 14.42/5.49 new_compare14(vz3500, vz35100, app(ty_Maybe, ca)) -> new_compare11(vz3500, vz35100, ca) 14.42/5.49 new_compare(vz340, vz3500, ty_Integer) -> new_compare0(vz340, vz3500) 14.42/5.49 new_merge2(:(vz340, vz341), :(vz3500, vz3501), ba) -> new_merge00(vz3500, vz340, vz341, vz3501, new_compare(vz340, vz3500, ba), ba) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Int) -> new_compare2(vz3500, vz35100) 14.42/5.49 new_compare10(vz340, vz3500, bg, bh) -> error([]) 14.42/5.49 new_compare(vz340, vz3500, app(ty_Ratio, bb)) -> new_compare9(vz340, vz3500, bb) 14.42/5.49 new_compare(vz340, vz3500, app(app(app(ty_@3, bc), bd), be)) -> new_compare6(vz340, vz3500, bc, bd, be) 14.42/5.49 new_compare13(vz340, vz3500) -> error([]) 14.42/5.49 new_merge2(vz34, [], ba) -> vz34 14.42/5.49 new_merge_pairs0([], ba) -> [] 14.42/5.49 new_merge1(vz34, [], :(vz35100, vz35101), ba) -> new_merge2(vz34, :(vz35100, vz35101), ba) 14.42/5.49 new_compare2(vz340, vz3500) -> error([]) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Float) -> new_compare3(vz3500, vz35100) 14.42/5.49 new_merge00(vz44, vz45, vz46, vz47, GT, cd) -> :(vz44, new_merge2(:(vz45, vz46), vz47, cd)) 14.42/5.49 new_compare(vz340, vz3500, ty_Double) -> new_compare8(vz340, vz3500) 14.42/5.49 new_compare(vz340, vz3500, ty_@0) -> new_compare4(vz340, vz3500) 14.42/5.49 new_compare(vz340, vz3500, app(app(ty_Either, bg), bh)) -> new_compare10(vz340, vz3500, bg, bh) 14.42/5.49 new_merge00(vz44, vz45, vz46, vz47, EQ, cd) -> :(vz45, new_merge2(vz46, :(vz44, vz47), cd)) 14.42/5.49 new_compare14(vz3500, vz35100, app(ty_Ratio, bb)) -> new_compare9(vz3500, vz35100, bb) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Integer) -> new_compare0(vz3500, vz35100) 14.42/5.49 new_compare14(vz3500, vz35100, app(ty_[], bf)) -> new_compare5(vz3500, vz35100, bf) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Ordering) -> new_compare13(vz3500, vz35100) 14.42/5.49 new_compare7(True, False) -> GT 14.42/5.49 new_compare1(vz340, vz3500) -> error([]) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Char) -> new_compare1(vz3500, vz35100) 14.42/5.49 new_merge1(vz34, vz350, [], ba) -> new_merge2(vz34, vz350, ba) 14.42/5.49 new_compare14(vz3500, vz35100, ty_@0) -> new_compare4(vz3500, vz35100) 14.42/5.49 new_compare(vz340, vz3500, ty_Float) -> new_compare3(vz340, vz3500) 14.42/5.49 14.42/5.49 The set Q consists of the following terms: 14.42/5.49 14.42/5.49 new_compare14(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.42/5.49 new_compare14(x0, x1, ty_Double) 14.42/5.49 new_merge1(x0, :(x1, x2), :(x3, x4), x5) 14.42/5.49 new_compare(x0, x1, app(ty_[], x2)) 14.42/5.49 new_compare14(x0, x1, app(ty_Maybe, x2)) 14.42/5.49 new_compare6(x0, x1, x2, x3, x4) 14.42/5.49 new_compare9(x0, x1, x2) 14.42/5.49 new_compare14(x0, x1, ty_Bool) 14.42/5.49 new_merge2([], :(x0, x1), x2) 14.42/5.49 new_compare14(x0, x1, ty_@0) 14.42/5.49 new_compare12(x0, x1, x2, x3) 14.42/5.49 new_merge_pairs0(:(x0, :(x1, x2)), x3) 14.42/5.49 new_compare(x0, x1, ty_Bool) 14.42/5.49 new_compare14(x0, x1, ty_Char) 14.42/5.49 new_merge00(x0, x1, x2, x3, EQ, x4) 14.42/5.49 new_compare14(x0, x1, app(ty_[], x2)) 14.42/5.49 new_merge1(x0, [], :(x1, x2), x3) 14.42/5.49 new_compare14(x0, x1, app(app(ty_Either, x2), x3)) 14.42/5.49 new_compare14(x0, x1, ty_Ordering) 14.42/5.49 new_merge2(x0, [], x1) 14.42/5.49 new_compare13(x0, x1) 14.42/5.49 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.42/5.49 new_compare1(x0, x1) 14.42/5.49 new_compare(x0, x1, ty_Int) 14.42/5.49 new_merge00(x0, x1, x2, x3, GT, x4) 14.42/5.49 new_merge1(x0, x1, [], x2) 14.42/5.49 new_compare4(x0, x1) 14.42/5.49 new_compare14(x0, x1, ty_Int) 14.42/5.49 new_compare(x0, x1, ty_@0) 14.42/5.49 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.42/5.49 new_compare(x0, x1, ty_Ordering) 14.42/5.49 new_compare7(False, False) 14.42/5.49 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.42/5.49 new_compare10(x0, x1, x2, x3) 14.42/5.49 new_compare(x0, x1, app(ty_Maybe, x2)) 14.42/5.49 new_compare(x0, x1, ty_Integer) 14.42/5.49 new_compare14(x0, x1, app(ty_Ratio, x2)) 14.42/5.49 new_compare7(False, True) 14.42/5.49 new_compare2(x0, x1) 14.42/5.49 new_compare7(True, False) 14.42/5.49 new_compare(x0, x1, ty_Float) 14.42/5.49 new_compare5(x0, x1, x2) 14.42/5.49 new_compare8(x0, x1) 14.42/5.49 new_compare14(x0, x1, app(app(ty_@2, x2), x3)) 14.42/5.49 new_compare3(x0, x1) 14.42/5.49 new_compare(x0, x1, ty_Char) 14.42/5.49 new_merge_pairs0(:(x0, []), x1) 14.42/5.49 new_compare7(True, True) 14.42/5.49 new_merge_pairs0([], x0) 14.42/5.49 new_compare14(x0, x1, ty_Float) 14.42/5.49 new_compare0(x0, x1) 14.42/5.49 new_compare11(x0, x1, x2) 14.42/5.49 new_merge2(:(x0, x1), :(x2, x3), x4) 14.42/5.49 new_compare(x0, x1, ty_Double) 14.42/5.49 new_compare14(x0, x1, ty_Integer) 14.42/5.49 new_merge00(x0, x1, x2, x3, LT, x4) 14.42/5.49 new_compare(x0, x1, app(ty_Ratio, x2)) 14.42/5.49 14.42/5.49 We have to consider all minimal (P,Q,R)-chains. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (48) DependencyGraphProof (EQUIVALENT) 14.42/5.49 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (49) 14.42/5.49 Obligation: 14.42/5.49 Q DP problem: 14.42/5.49 The TRS P consists of the following rules: 14.42/5.49 14.42/5.49 new_mergesort'(vz34, :(vz350, :(vz3510, vz3511)), ba) -> new_mergesort'(new_merge1(vz34, vz350, vz3510, ba), new_merge_pairs0(vz3511, ba), ba) 14.42/5.49 14.42/5.49 The TRS R consists of the following rules: 14.42/5.49 14.42/5.49 new_compare7(False, True) -> LT 14.42/5.49 new_compare9(vz340, vz3500, bb) -> error([]) 14.42/5.49 new_compare(vz340, vz3500, ty_Ordering) -> new_compare13(vz340, vz3500) 14.42/5.49 new_compare4(vz340, vz3500) -> error([]) 14.42/5.49 new_compare11(vz340, vz3500, ca) -> error([]) 14.42/5.49 new_compare(vz340, vz3500, app(app(ty_@2, cb), cc)) -> new_compare12(vz340, vz3500, cb, cc) 14.42/5.49 new_compare14(vz3500, vz35100, app(app(app(ty_@3, bc), bd), be)) -> new_compare6(vz3500, vz35100, bc, bd, be) 14.42/5.49 new_compare(vz340, vz3500, app(ty_[], bf)) -> new_compare5(vz340, vz3500, bf) 14.42/5.49 new_compare12(vz340, vz3500, cb, cc) -> error([]) 14.42/5.49 new_compare(vz340, vz3500, app(ty_Maybe, ca)) -> new_compare11(vz340, vz3500, ca) 14.42/5.49 new_compare(vz340, vz3500, ty_Char) -> new_compare1(vz340, vz3500) 14.42/5.49 new_merge_pairs0(:(vz35110, []), ba) -> :(vz35110, []) 14.42/5.49 new_compare14(vz3500, vz35100, app(app(ty_Either, bg), bh)) -> new_compare10(vz3500, vz35100, bg, bh) 14.42/5.49 new_merge1(vz34, :(vz3500, vz3501), :(vz35100, vz35101), ba) -> new_merge2(vz34, new_merge00(vz35100, vz3500, vz3501, vz35101, new_compare14(vz3500, vz35100, ba), ba), ba) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Bool) -> new_compare7(vz3500, vz35100) 14.42/5.49 new_compare5(vz340, vz3500, bf) -> error([]) 14.42/5.49 new_compare8(vz340, vz3500) -> error([]) 14.42/5.49 new_merge2([], :(vz3500, vz3501), ba) -> :(vz3500, vz3501) 14.42/5.49 new_compare0(vz340, vz3500) -> error([]) 14.42/5.49 new_compare14(vz3500, vz35100, app(app(ty_@2, cb), cc)) -> new_compare12(vz3500, vz35100, cb, cc) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Double) -> new_compare8(vz3500, vz35100) 14.42/5.49 new_compare6(vz340, vz3500, bc, bd, be) -> error([]) 14.42/5.49 new_compare(vz340, vz3500, ty_Int) -> new_compare2(vz340, vz3500) 14.42/5.49 new_merge_pairs0(:(vz35110, :(vz351110, vz351111)), ba) -> :(new_merge2(vz35110, vz351110, ba), new_merge_pairs0(vz351111, ba)) 14.42/5.49 new_compare3(vz340, vz3500) -> error([]) 14.42/5.49 new_merge00(vz44, vz45, vz46, vz47, LT, cd) -> :(vz45, new_merge2(vz46, :(vz44, vz47), cd)) 14.42/5.49 new_compare7(True, True) -> EQ 14.42/5.49 new_compare(vz340, vz3500, ty_Bool) -> new_compare7(vz340, vz3500) 14.42/5.49 new_compare7(False, False) -> EQ 14.42/5.49 new_compare14(vz3500, vz35100, app(ty_Maybe, ca)) -> new_compare11(vz3500, vz35100, ca) 14.42/5.49 new_compare(vz340, vz3500, ty_Integer) -> new_compare0(vz340, vz3500) 14.42/5.49 new_merge2(:(vz340, vz341), :(vz3500, vz3501), ba) -> new_merge00(vz3500, vz340, vz341, vz3501, new_compare(vz340, vz3500, ba), ba) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Int) -> new_compare2(vz3500, vz35100) 14.42/5.49 new_compare10(vz340, vz3500, bg, bh) -> error([]) 14.42/5.49 new_compare(vz340, vz3500, app(ty_Ratio, bb)) -> new_compare9(vz340, vz3500, bb) 14.42/5.49 new_compare(vz340, vz3500, app(app(app(ty_@3, bc), bd), be)) -> new_compare6(vz340, vz3500, bc, bd, be) 14.42/5.49 new_compare13(vz340, vz3500) -> error([]) 14.42/5.49 new_merge2(vz34, [], ba) -> vz34 14.42/5.49 new_merge_pairs0([], ba) -> [] 14.42/5.49 new_merge1(vz34, [], :(vz35100, vz35101), ba) -> new_merge2(vz34, :(vz35100, vz35101), ba) 14.42/5.49 new_compare2(vz340, vz3500) -> error([]) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Float) -> new_compare3(vz3500, vz35100) 14.42/5.49 new_merge00(vz44, vz45, vz46, vz47, GT, cd) -> :(vz44, new_merge2(:(vz45, vz46), vz47, cd)) 14.42/5.49 new_compare(vz340, vz3500, ty_Double) -> new_compare8(vz340, vz3500) 14.42/5.49 new_compare(vz340, vz3500, ty_@0) -> new_compare4(vz340, vz3500) 14.42/5.49 new_compare(vz340, vz3500, app(app(ty_Either, bg), bh)) -> new_compare10(vz340, vz3500, bg, bh) 14.42/5.49 new_merge00(vz44, vz45, vz46, vz47, EQ, cd) -> :(vz45, new_merge2(vz46, :(vz44, vz47), cd)) 14.42/5.49 new_compare14(vz3500, vz35100, app(ty_Ratio, bb)) -> new_compare9(vz3500, vz35100, bb) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Integer) -> new_compare0(vz3500, vz35100) 14.42/5.49 new_compare14(vz3500, vz35100, app(ty_[], bf)) -> new_compare5(vz3500, vz35100, bf) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Ordering) -> new_compare13(vz3500, vz35100) 14.42/5.49 new_compare7(True, False) -> GT 14.42/5.49 new_compare1(vz340, vz3500) -> error([]) 14.42/5.49 new_compare14(vz3500, vz35100, ty_Char) -> new_compare1(vz3500, vz35100) 14.42/5.49 new_merge1(vz34, vz350, [], ba) -> new_merge2(vz34, vz350, ba) 14.42/5.49 new_compare14(vz3500, vz35100, ty_@0) -> new_compare4(vz3500, vz35100) 14.42/5.49 new_compare(vz340, vz3500, ty_Float) -> new_compare3(vz340, vz3500) 14.42/5.49 14.42/5.49 The set Q consists of the following terms: 14.42/5.49 14.42/5.49 new_compare14(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.42/5.49 new_compare14(x0, x1, ty_Double) 14.42/5.49 new_merge1(x0, :(x1, x2), :(x3, x4), x5) 14.42/5.49 new_compare(x0, x1, app(ty_[], x2)) 14.42/5.49 new_compare14(x0, x1, app(ty_Maybe, x2)) 14.42/5.49 new_compare6(x0, x1, x2, x3, x4) 14.42/5.49 new_compare9(x0, x1, x2) 14.42/5.49 new_compare14(x0, x1, ty_Bool) 14.42/5.49 new_merge2([], :(x0, x1), x2) 14.42/5.49 new_compare14(x0, x1, ty_@0) 14.42/5.49 new_compare12(x0, x1, x2, x3) 14.42/5.49 new_merge_pairs0(:(x0, :(x1, x2)), x3) 14.42/5.49 new_compare(x0, x1, ty_Bool) 14.42/5.49 new_compare14(x0, x1, ty_Char) 14.42/5.49 new_merge00(x0, x1, x2, x3, EQ, x4) 14.42/5.49 new_compare14(x0, x1, app(ty_[], x2)) 14.42/5.49 new_merge1(x0, [], :(x1, x2), x3) 14.42/5.49 new_compare14(x0, x1, app(app(ty_Either, x2), x3)) 14.42/5.49 new_compare14(x0, x1, ty_Ordering) 14.42/5.49 new_merge2(x0, [], x1) 14.42/5.49 new_compare13(x0, x1) 14.42/5.49 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.42/5.49 new_compare1(x0, x1) 14.42/5.49 new_compare(x0, x1, ty_Int) 14.42/5.49 new_merge00(x0, x1, x2, x3, GT, x4) 14.42/5.49 new_merge1(x0, x1, [], x2) 14.42/5.49 new_compare4(x0, x1) 14.42/5.49 new_compare14(x0, x1, ty_Int) 14.42/5.49 new_compare(x0, x1, ty_@0) 14.42/5.49 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.42/5.49 new_compare(x0, x1, ty_Ordering) 14.42/5.49 new_compare7(False, False) 14.42/5.49 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.42/5.49 new_compare10(x0, x1, x2, x3) 14.42/5.49 new_compare(x0, x1, app(ty_Maybe, x2)) 14.42/5.49 new_compare(x0, x1, ty_Integer) 14.42/5.49 new_compare14(x0, x1, app(ty_Ratio, x2)) 14.42/5.49 new_compare7(False, True) 14.42/5.49 new_compare2(x0, x1) 14.42/5.49 new_compare7(True, False) 14.42/5.49 new_compare(x0, x1, ty_Float) 14.42/5.49 new_compare5(x0, x1, x2) 14.42/5.49 new_compare8(x0, x1) 14.42/5.49 new_compare14(x0, x1, app(app(ty_@2, x2), x3)) 14.42/5.49 new_compare3(x0, x1) 14.42/5.49 new_compare(x0, x1, ty_Char) 14.42/5.49 new_merge_pairs0(:(x0, []), x1) 14.42/5.49 new_compare7(True, True) 14.42/5.49 new_merge_pairs0([], x0) 14.42/5.49 new_compare14(x0, x1, ty_Float) 14.42/5.49 new_compare0(x0, x1) 14.42/5.49 new_compare11(x0, x1, x2) 14.42/5.49 new_merge2(:(x0, x1), :(x2, x3), x4) 14.42/5.49 new_compare(x0, x1, ty_Double) 14.42/5.49 new_compare14(x0, x1, ty_Integer) 14.42/5.49 new_merge00(x0, x1, x2, x3, LT, x4) 14.42/5.49 new_compare(x0, x1, app(ty_Ratio, x2)) 14.42/5.49 14.42/5.49 We have to consider all minimal (P,Q,R)-chains. 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (50) QDPSizeChangeProof (EQUIVALENT) 14.42/5.49 We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. 14.42/5.49 14.42/5.49 Order:Polynomial interpretation [POLO]: 14.42/5.49 14.42/5.49 POL(:(x_1, x_2)) = 1 + x_2 14.42/5.49 POL([]) = 0 14.42/5.49 POL(new_merge2(x_1, x_2, x_3)) = 0 14.42/5.49 POL(new_merge_pairs0(x_1, x_2)) = x_1 14.42/5.49 14.42/5.49 14.42/5.49 14.42/5.49 14.42/5.49 From the DPs we obtained the following set of size-change graphs: 14.42/5.49 *new_mergesort'(vz34, :(vz350, :(vz3510, vz3511)), ba) -> new_mergesort'(new_merge1(vz34, vz350, vz3510, ba), new_merge_pairs0(vz3511, ba), ba) (allowed arguments on rhs = {2, 3}) 14.42/5.49 The graph contains the following edges 2 > 2, 3 >= 3 14.42/5.49 14.42/5.49 14.42/5.49 14.42/5.49 We oriented the following set of usable rules [AAECC05,FROCOS05]. 14.42/5.49 14.42/5.49 new_merge_pairs0([], ba) -> [] 14.42/5.49 new_merge_pairs0(:(vz35110, []), ba) -> :(vz35110, []) 14.42/5.49 new_merge_pairs0(:(vz35110, :(vz351110, vz351111)), ba) -> :(new_merge2(vz35110, vz351110, ba), new_merge_pairs0(vz351111, ba)) 14.42/5.49 14.42/5.49 ---------------------------------------- 14.42/5.49 14.42/5.49 (51) 14.42/5.49 YES 14.62/5.52 EOF