12.83/5.03 YES 14.80/5.61 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 14.80/5.61 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 14.80/5.61 14.80/5.61 14.80/5.61 H-Termination with start terms of the given HASKELL could be proven: 14.80/5.61 14.80/5.61 (0) HASKELL 14.80/5.61 (1) CR [EQUIVALENT, 0 ms] 14.80/5.61 (2) HASKELL 14.80/5.61 (3) BR [EQUIVALENT, 0 ms] 14.80/5.61 (4) HASKELL 14.80/5.61 (5) COR [EQUIVALENT, 22 ms] 14.80/5.61 (6) HASKELL 14.80/5.61 (7) Narrow [SOUND, 0 ms] 14.80/5.61 (8) AND 14.80/5.61 (9) QDP 14.80/5.61 (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.80/5.61 (11) YES 14.80/5.61 (12) QDP 14.80/5.61 (13) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.80/5.61 (14) YES 14.80/5.61 (15) QDP 14.80/5.61 (16) QDPOrderProof [EQUIVALENT, 68 ms] 14.80/5.61 (17) QDP 14.80/5.61 (18) DependencyGraphProof [EQUIVALENT, 0 ms] 14.80/5.61 (19) TRUE 14.80/5.61 (20) QDP 14.80/5.61 (21) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.80/5.61 (22) YES 14.80/5.61 (23) QDP 14.80/5.61 (24) DependencyGraphProof [EQUIVALENT, 0 ms] 14.80/5.61 (25) QDP 14.80/5.61 (26) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.80/5.61 (27) YES 14.80/5.61 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (0) 14.80/5.61 Obligation: 14.80/5.61 mainModule Main 14.80/5.61 module Maybe where { 14.80/5.61 import qualified List; 14.80/5.61 import qualified Main; 14.80/5.61 import qualified Prelude; 14.80/5.61 } 14.80/5.61 module List where { 14.80/5.61 import qualified Main; 14.80/5.61 import qualified Maybe; 14.80/5.61 import qualified Prelude; 14.80/5.61 merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; 14.80/5.61 merge cmp xs [] = xs; 14.80/5.61 merge cmp [] ys = ys; 14.80/5.61 merge cmp (x : xs) (y : ys) = case x `cmp` y of { 14.80/5.61 GT-> y : merge cmp (x : xs) ys; 14.80/5.61 _-> x : merge cmp xs (y : ys); 14.80/5.61 } ; 14.80/5.61 14.80/5.61 merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; 14.80/5.61 merge_pairs cmp [] = []; 14.80/5.61 merge_pairs cmp (xs : []) = xs : []; 14.80/5.61 merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; 14.80/5.61 14.80/5.61 mergesort :: (a -> a -> Ordering) -> [a] -> [a]; 14.80/5.61 mergesort cmp = mergesort' cmp . map wrap; 14.80/5.61 14.80/5.61 mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; 14.80/5.61 mergesort' cmp [] = []; 14.80/5.61 mergesort' cmp (xs : []) = xs; 14.80/5.61 mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); 14.80/5.61 14.80/5.61 sort :: Ord a => [a] -> [a]; 14.80/5.61 sort l = mergesort compare l; 14.80/5.61 14.80/5.61 wrap :: a -> [a]; 14.80/5.61 wrap x = x : []; 14.80/5.61 14.80/5.61 } 14.80/5.61 module Main where { 14.80/5.61 import qualified List; 14.80/5.61 import qualified Maybe; 14.80/5.61 import qualified Prelude; 14.80/5.61 } 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (1) CR (EQUIVALENT) 14.80/5.61 Case Reductions: 14.80/5.61 The following Case expression 14.80/5.61 "case cmp x y of { 14.80/5.61 GT -> y : merge cmp (x : xs) ys; 14.80/5.61 _ -> x : merge cmp xs (y : ys)} 14.80/5.61 " 14.80/5.61 is transformed to 14.80/5.61 "merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; 14.80/5.61 merge0 y cmp x xs ys _ = x : merge cmp xs (y : ys); 14.80/5.61 " 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (2) 14.80/5.61 Obligation: 14.80/5.61 mainModule Main 14.80/5.61 module Maybe where { 14.80/5.61 import qualified List; 14.80/5.61 import qualified Main; 14.80/5.61 import qualified Prelude; 14.80/5.61 } 14.80/5.61 module List where { 14.80/5.61 import qualified Main; 14.80/5.61 import qualified Maybe; 14.80/5.61 import qualified Prelude; 14.80/5.61 merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; 14.80/5.61 merge cmp xs [] = xs; 14.80/5.61 merge cmp [] ys = ys; 14.80/5.61 merge cmp (x : xs) (y : ys) = merge0 y cmp x xs ys (x `cmp` y); 14.80/5.61 14.80/5.61 merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; 14.80/5.61 merge0 y cmp x xs ys _ = x : merge cmp xs (y : ys); 14.80/5.61 14.80/5.61 merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; 14.80/5.61 merge_pairs cmp [] = []; 14.80/5.61 merge_pairs cmp (xs : []) = xs : []; 14.80/5.61 merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; 14.80/5.61 14.80/5.61 mergesort :: (a -> a -> Ordering) -> [a] -> [a]; 14.80/5.61 mergesort cmp = mergesort' cmp . map wrap; 14.80/5.61 14.80/5.61 mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; 14.80/5.61 mergesort' cmp [] = []; 14.80/5.61 mergesort' cmp (xs : []) = xs; 14.80/5.61 mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); 14.80/5.61 14.80/5.61 sort :: Ord a => [a] -> [a]; 14.80/5.61 sort l = mergesort compare l; 14.80/5.61 14.80/5.61 wrap :: a -> [a]; 14.80/5.61 wrap x = x : []; 14.80/5.61 14.80/5.61 } 14.80/5.61 module Main where { 14.80/5.61 import qualified List; 14.80/5.61 import qualified Maybe; 14.80/5.61 import qualified Prelude; 14.80/5.61 } 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (3) BR (EQUIVALENT) 14.80/5.61 Replaced joker patterns by fresh variables and removed binding patterns. 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (4) 14.80/5.61 Obligation: 14.80/5.61 mainModule Main 14.80/5.61 module Maybe where { 14.80/5.61 import qualified List; 14.80/5.61 import qualified Main; 14.80/5.61 import qualified Prelude; 14.80/5.61 } 14.80/5.61 module List where { 14.80/5.61 import qualified Main; 14.80/5.61 import qualified Maybe; 14.80/5.61 import qualified Prelude; 14.80/5.61 merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; 14.80/5.61 merge cmp xs [] = xs; 14.80/5.61 merge cmp [] ys = ys; 14.80/5.61 merge cmp (x : xs) (y : ys) = merge0 y cmp x xs ys (x `cmp` y); 14.80/5.61 14.80/5.61 merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; 14.80/5.61 merge0 y cmp x xs ys vy = x : merge cmp xs (y : ys); 14.80/5.61 14.80/5.61 merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; 14.80/5.61 merge_pairs cmp [] = []; 14.80/5.61 merge_pairs cmp (xs : []) = xs : []; 14.80/5.61 merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; 14.80/5.61 14.80/5.61 mergesort :: (a -> a -> Ordering) -> [a] -> [a]; 14.80/5.61 mergesort cmp = mergesort' cmp . map wrap; 14.80/5.61 14.80/5.61 mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; 14.80/5.61 mergesort' cmp [] = []; 14.80/5.61 mergesort' cmp (xs : []) = xs; 14.80/5.61 mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); 14.80/5.61 14.80/5.61 sort :: Ord a => [a] -> [a]; 14.80/5.61 sort l = mergesort compare l; 14.80/5.61 14.80/5.61 wrap :: a -> [a]; 14.80/5.61 wrap x = x : []; 14.80/5.61 14.80/5.61 } 14.80/5.61 module Main where { 14.80/5.61 import qualified List; 14.80/5.61 import qualified Maybe; 14.80/5.61 import qualified Prelude; 14.80/5.61 } 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (5) COR (EQUIVALENT) 14.80/5.61 Cond Reductions: 14.80/5.61 The following Function with conditions 14.80/5.61 "undefined |Falseundefined; 14.80/5.61 " 14.80/5.61 is transformed to 14.80/5.61 "undefined = undefined1; 14.80/5.61 " 14.80/5.61 "undefined0 True = undefined; 14.80/5.61 " 14.80/5.61 "undefined1 = undefined0 False; 14.80/5.61 " 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (6) 14.80/5.61 Obligation: 14.80/5.61 mainModule Main 14.80/5.61 module Maybe where { 14.80/5.61 import qualified List; 14.80/5.61 import qualified Main; 14.80/5.61 import qualified Prelude; 14.80/5.61 } 14.80/5.61 module List where { 14.80/5.61 import qualified Main; 14.80/5.61 import qualified Maybe; 14.80/5.61 import qualified Prelude; 14.80/5.61 merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; 14.80/5.61 merge cmp xs [] = xs; 14.80/5.61 merge cmp [] ys = ys; 14.80/5.61 merge cmp (x : xs) (y : ys) = merge0 y cmp x xs ys (x `cmp` y); 14.80/5.61 14.80/5.61 merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; 14.80/5.61 merge0 y cmp x xs ys vy = x : merge cmp xs (y : ys); 14.80/5.61 14.80/5.61 merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; 14.80/5.61 merge_pairs cmp [] = []; 14.80/5.61 merge_pairs cmp (xs : []) = xs : []; 14.80/5.61 merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; 14.80/5.61 14.80/5.61 mergesort :: (a -> a -> Ordering) -> [a] -> [a]; 14.80/5.61 mergesort cmp = mergesort' cmp . map wrap; 14.80/5.61 14.80/5.61 mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; 14.80/5.61 mergesort' cmp [] = []; 14.80/5.61 mergesort' cmp (xs : []) = xs; 14.80/5.61 mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); 14.80/5.61 14.80/5.61 sort :: Ord a => [a] -> [a]; 14.80/5.61 sort l = mergesort compare l; 14.80/5.61 14.80/5.61 wrap :: a -> [a]; 14.80/5.61 wrap x = x : []; 14.80/5.61 14.80/5.61 } 14.80/5.61 module Main where { 14.80/5.61 import qualified List; 14.80/5.61 import qualified Maybe; 14.80/5.61 import qualified Prelude; 14.80/5.61 } 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (7) Narrow (SOUND) 14.80/5.61 Haskell To QDPs 14.80/5.61 14.80/5.61 digraph dp_graph { 14.80/5.61 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.80/5.61 3[label="List.sort vz3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 14.80/5.61 4[label="List.mergesort compare vz3",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 14.80/5.61 5[label="(List.mergesort' compare) . map List.wrap",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 14.80/5.61 6[label="List.mergesort' compare (map List.wrap vz3)",fontsize=16,color="burlywood",shape="box"];935[label="vz3/vz30 : vz31",fontsize=10,color="white",style="solid",shape="box"];6 -> 935[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 935 -> 7[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 936[label="vz3/[]",fontsize=10,color="white",style="solid",shape="box"];6 -> 936[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 936 -> 8[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 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.80/5.61 8[label="List.mergesort' compare (map List.wrap [])",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 14.80/5.61 9[label="List.mergesort' compare (List.wrap vz30 : map List.wrap vz31)",fontsize=16,color="burlywood",shape="box"];937[label="vz31/vz310 : vz311",fontsize=10,color="white",style="solid",shape="box"];9 -> 937[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 937 -> 11[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 938[label="vz31/[]",fontsize=10,color="white",style="solid",shape="box"];9 -> 938[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 938 -> 12[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 10[label="List.mergesort' compare []",fontsize=16,color="black",shape="box"];10 -> 13[label="",style="solid", color="black", weight=3]; 14.80/5.61 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.80/5.61 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.80/5.61 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.80/5.61 15[label="List.mergesort' compare (List.wrap vz30 : [])",fontsize=16,color="black",shape="box"];15 -> 17[label="",style="solid", color="black", weight=3]; 14.80/5.61 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.80/5.61 17[label="List.wrap vz30",fontsize=16,color="black",shape="triangle"];17 -> 19[label="",style="solid", color="black", weight=3]; 14.80/5.61 18 -> 589[label="",style="dashed", color="red", weight=0]; 14.80/5.61 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 -> 590[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 18 -> 591[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 19[label="vz30 : []",fontsize=16,color="green",shape="box"];590 -> 744[label="",style="dashed", color="red", weight=0]; 14.80/5.61 590[label="List.merge compare (List.wrap vz30) (List.wrap vz310)",fontsize=16,color="magenta"];590 -> 745[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 590 -> 746[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 591[label="map List.wrap vz311",fontsize=16,color="burlywood",shape="triangle"];939[label="vz311/vz3110 : vz3111",fontsize=10,color="white",style="solid",shape="box"];591 -> 939[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 939 -> 747[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 940[label="vz311/[]",fontsize=10,color="white",style="solid",shape="box"];591 -> 940[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 940 -> 748[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 589[label="List.mergesort' compare (vz78 : List.merge_pairs compare vz79)",fontsize=16,color="burlywood",shape="triangle"];941[label="vz79/vz790 : vz791",fontsize=10,color="white",style="solid",shape="box"];589 -> 941[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 941 -> 749[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 942[label="vz79/[]",fontsize=10,color="white",style="solid",shape="box"];589 -> 942[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 942 -> 750[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 745 -> 17[label="",style="dashed", color="red", weight=0]; 14.80/5.61 745[label="List.wrap vz30",fontsize=16,color="magenta"];746 -> 17[label="",style="dashed", color="red", weight=0]; 14.80/5.61 746[label="List.wrap vz310",fontsize=16,color="magenta"];746 -> 751[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 744[label="List.merge compare vz81 vz80",fontsize=16,color="burlywood",shape="triangle"];943[label="vz80/vz800 : vz801",fontsize=10,color="white",style="solid",shape="box"];744 -> 943[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 943 -> 752[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 944[label="vz80/[]",fontsize=10,color="white",style="solid",shape="box"];744 -> 944[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 944 -> 753[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 747[label="map List.wrap (vz3110 : vz3111)",fontsize=16,color="black",shape="box"];747 -> 754[label="",style="solid", color="black", weight=3]; 14.80/5.61 748[label="map List.wrap []",fontsize=16,color="black",shape="box"];748 -> 755[label="",style="solid", color="black", weight=3]; 14.80/5.61 749[label="List.mergesort' compare (vz78 : List.merge_pairs compare (vz790 : vz791))",fontsize=16,color="burlywood",shape="box"];945[label="vz791/vz7910 : vz7911",fontsize=10,color="white",style="solid",shape="box"];749 -> 945[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 945 -> 756[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 946[label="vz791/[]",fontsize=10,color="white",style="solid",shape="box"];749 -> 946[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 946 -> 757[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 750[label="List.mergesort' compare (vz78 : List.merge_pairs compare [])",fontsize=16,color="black",shape="box"];750 -> 758[label="",style="solid", color="black", weight=3]; 14.80/5.61 751[label="vz310",fontsize=16,color="green",shape="box"];752[label="List.merge compare vz81 (vz800 : vz801)",fontsize=16,color="burlywood",shape="box"];947[label="vz81/vz810 : vz811",fontsize=10,color="white",style="solid",shape="box"];752 -> 947[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 947 -> 759[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 948[label="vz81/[]",fontsize=10,color="white",style="solid",shape="box"];752 -> 948[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 948 -> 760[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 753[label="List.merge compare vz81 []",fontsize=16,color="black",shape="box"];753 -> 761[label="",style="solid", color="black", weight=3]; 14.80/5.61 754[label="List.wrap vz3110 : map List.wrap vz3111",fontsize=16,color="green",shape="box"];754 -> 762[label="",style="dashed", color="green", weight=3]; 14.80/5.61 754 -> 763[label="",style="dashed", color="green", weight=3]; 14.80/5.61 755[label="[]",fontsize=16,color="green",shape="box"];756[label="List.mergesort' compare (vz78 : List.merge_pairs compare (vz790 : vz7910 : vz7911))",fontsize=16,color="black",shape="box"];756 -> 764[label="",style="solid", color="black", weight=3]; 14.80/5.61 757[label="List.mergesort' compare (vz78 : List.merge_pairs compare (vz790 : []))",fontsize=16,color="black",shape="box"];757 -> 765[label="",style="solid", color="black", weight=3]; 14.80/5.61 758[label="List.mergesort' compare (vz78 : [])",fontsize=16,color="black",shape="box"];758 -> 766[label="",style="solid", color="black", weight=3]; 14.80/5.61 759[label="List.merge compare (vz810 : vz811) (vz800 : vz801)",fontsize=16,color="black",shape="box"];759 -> 767[label="",style="solid", color="black", weight=3]; 14.80/5.61 760[label="List.merge compare [] (vz800 : vz801)",fontsize=16,color="black",shape="box"];760 -> 768[label="",style="solid", color="black", weight=3]; 14.80/5.61 761[label="vz81",fontsize=16,color="green",shape="box"];762 -> 17[label="",style="dashed", color="red", weight=0]; 14.80/5.61 762[label="List.wrap vz3110",fontsize=16,color="magenta"];762 -> 769[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 763 -> 591[label="",style="dashed", color="red", weight=0]; 14.80/5.61 763[label="map List.wrap vz3111",fontsize=16,color="magenta"];763 -> 770[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 764[label="List.mergesort' compare (vz78 : List.merge compare vz790 vz7910 : List.merge_pairs compare vz7911)",fontsize=16,color="black",shape="box"];764 -> 771[label="",style="solid", color="black", weight=3]; 14.80/5.61 765[label="List.mergesort' compare (vz78 : vz790 : [])",fontsize=16,color="black",shape="box"];765 -> 772[label="",style="solid", color="black", weight=3]; 14.80/5.61 766[label="vz78",fontsize=16,color="green",shape="box"];767 -> 814[label="",style="dashed", color="red", weight=0]; 14.80/5.61 767[label="List.merge0 vz800 compare vz810 vz811 vz801 (compare vz810 vz800)",fontsize=16,color="magenta"];767 -> 815[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 767 -> 816[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 767 -> 817[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 767 -> 818[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 767 -> 819[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 768[label="vz800 : vz801",fontsize=16,color="green",shape="box"];769[label="vz3110",fontsize=16,color="green",shape="box"];770[label="vz3111",fontsize=16,color="green",shape="box"];771[label="List.mergesort' compare (List.merge_pairs compare (vz78 : List.merge compare vz790 vz7910 : List.merge_pairs compare vz7911))",fontsize=16,color="black",shape="box"];771 -> 774[label="",style="solid", color="black", weight=3]; 14.80/5.61 772[label="List.mergesort' compare (List.merge_pairs compare (vz78 : vz790 : []))",fontsize=16,color="black",shape="box"];772 -> 775[label="",style="solid", color="black", weight=3]; 14.80/5.61 815[label="vz801",fontsize=16,color="green",shape="box"];816[label="vz810",fontsize=16,color="green",shape="box"];817[label="vz811",fontsize=16,color="green",shape="box"];818[label="compare vz810 vz800",fontsize=16,color="black",shape="triangle"];818 -> 830[label="",style="solid", color="black", weight=3]; 14.80/5.61 819[label="vz800",fontsize=16,color="green",shape="box"];814[label="List.merge0 vz88 compare vz89 vz90 vz91 vz92",fontsize=16,color="burlywood",shape="triangle"];949[label="vz92/LT",fontsize=10,color="white",style="solid",shape="box"];814 -> 949[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 949 -> 831[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 950[label="vz92/EQ",fontsize=10,color="white",style="solid",shape="box"];814 -> 950[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 950 -> 832[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 951[label="vz92/GT",fontsize=10,color="white",style="solid",shape="box"];814 -> 951[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 951 -> 833[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 774 -> 589[label="",style="dashed", color="red", weight=0]; 14.80/5.61 774[label="List.mergesort' compare (List.merge compare vz78 (List.merge compare vz790 vz7910) : List.merge_pairs compare (List.merge_pairs compare vz7911))",fontsize=16,color="magenta"];774 -> 777[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 774 -> 778[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 775 -> 589[label="",style="dashed", color="red", weight=0]; 14.80/5.61 775[label="List.mergesort' compare (List.merge compare vz78 vz790 : List.merge_pairs compare [])",fontsize=16,color="magenta"];775 -> 779[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 775 -> 780[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 830[label="primCmpChar vz810 vz800",fontsize=16,color="burlywood",shape="box"];952[label="vz810/Char vz8100",fontsize=10,color="white",style="solid",shape="box"];830 -> 952[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 952 -> 865[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 831[label="List.merge0 vz88 compare vz89 vz90 vz91 LT",fontsize=16,color="black",shape="box"];831 -> 866[label="",style="solid", color="black", weight=3]; 14.80/5.61 832[label="List.merge0 vz88 compare vz89 vz90 vz91 EQ",fontsize=16,color="black",shape="box"];832 -> 867[label="",style="solid", color="black", weight=3]; 14.80/5.61 833[label="List.merge0 vz88 compare vz89 vz90 vz91 GT",fontsize=16,color="black",shape="box"];833 -> 868[label="",style="solid", color="black", weight=3]; 14.80/5.61 777[label="List.merge compare vz78 (List.merge compare vz790 vz7910)",fontsize=16,color="burlywood",shape="box"];953[label="vz7910/vz79100 : vz79101",fontsize=10,color="white",style="solid",shape="box"];777 -> 953[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 953 -> 782[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 954[label="vz7910/[]",fontsize=10,color="white",style="solid",shape="box"];777 -> 954[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 954 -> 783[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 778[label="List.merge_pairs compare vz7911",fontsize=16,color="burlywood",shape="triangle"];955[label="vz7911/vz79110 : vz79111",fontsize=10,color="white",style="solid",shape="box"];778 -> 955[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 955 -> 784[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 956[label="vz7911/[]",fontsize=10,color="white",style="solid",shape="box"];778 -> 956[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 956 -> 785[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 779[label="List.merge compare vz78 vz790",fontsize=16,color="burlywood",shape="triangle"];957[label="vz790/vz7900 : vz7901",fontsize=10,color="white",style="solid",shape="box"];779 -> 957[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 957 -> 786[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 958[label="vz790/[]",fontsize=10,color="white",style="solid",shape="box"];779 -> 958[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 958 -> 787[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 780[label="[]",fontsize=16,color="green",shape="box"];865[label="primCmpChar (Char vz8100) vz800",fontsize=16,color="burlywood",shape="box"];959[label="vz800/Char vz8000",fontsize=10,color="white",style="solid",shape="box"];865 -> 959[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 959 -> 912[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 866[label="vz89 : List.merge compare vz90 (vz88 : vz91)",fontsize=16,color="green",shape="box"];866 -> 913[label="",style="dashed", color="green", weight=3]; 14.80/5.61 867[label="vz89 : List.merge compare vz90 (vz88 : vz91)",fontsize=16,color="green",shape="box"];867 -> 914[label="",style="dashed", color="green", weight=3]; 14.80/5.61 868[label="vz88 : List.merge compare (vz89 : vz90) vz91",fontsize=16,color="green",shape="box"];868 -> 915[label="",style="dashed", color="green", weight=3]; 14.80/5.61 782[label="List.merge compare vz78 (List.merge compare vz790 (vz79100 : vz79101))",fontsize=16,color="burlywood",shape="box"];960[label="vz790/vz7900 : vz7901",fontsize=10,color="white",style="solid",shape="box"];782 -> 960[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 960 -> 789[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 961[label="vz790/[]",fontsize=10,color="white",style="solid",shape="box"];782 -> 961[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 961 -> 790[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 783[label="List.merge compare vz78 (List.merge compare vz790 [])",fontsize=16,color="black",shape="box"];783 -> 791[label="",style="solid", color="black", weight=3]; 14.80/5.61 784[label="List.merge_pairs compare (vz79110 : vz79111)",fontsize=16,color="burlywood",shape="box"];962[label="vz79111/vz791110 : vz791111",fontsize=10,color="white",style="solid",shape="box"];784 -> 962[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 962 -> 792[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 963[label="vz79111/[]",fontsize=10,color="white",style="solid",shape="box"];784 -> 963[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 963 -> 793[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 785[label="List.merge_pairs compare []",fontsize=16,color="black",shape="box"];785 -> 794[label="",style="solid", color="black", weight=3]; 14.80/5.61 786[label="List.merge compare vz78 (vz7900 : vz7901)",fontsize=16,color="burlywood",shape="box"];964[label="vz78/vz780 : vz781",fontsize=10,color="white",style="solid",shape="box"];786 -> 964[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 964 -> 795[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 965[label="vz78/[]",fontsize=10,color="white",style="solid",shape="box"];786 -> 965[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 965 -> 796[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 787[label="List.merge compare vz78 []",fontsize=16,color="black",shape="box"];787 -> 797[label="",style="solid", color="black", weight=3]; 14.80/5.61 912[label="primCmpChar (Char vz8100) (Char vz8000)",fontsize=16,color="black",shape="box"];912 -> 916[label="",style="solid", color="black", weight=3]; 14.80/5.61 913 -> 779[label="",style="dashed", color="red", weight=0]; 14.80/5.61 913[label="List.merge compare vz90 (vz88 : vz91)",fontsize=16,color="magenta"];913 -> 917[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 913 -> 918[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 914 -> 779[label="",style="dashed", color="red", weight=0]; 14.80/5.61 914[label="List.merge compare vz90 (vz88 : vz91)",fontsize=16,color="magenta"];914 -> 919[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 914 -> 920[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 915 -> 779[label="",style="dashed", color="red", weight=0]; 14.80/5.61 915[label="List.merge compare (vz89 : vz90) vz91",fontsize=16,color="magenta"];915 -> 921[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 915 -> 922[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 789[label="List.merge compare vz78 (List.merge compare (vz7900 : vz7901) (vz79100 : vz79101))",fontsize=16,color="black",shape="box"];789 -> 800[label="",style="solid", color="black", weight=3]; 14.80/5.61 790[label="List.merge compare vz78 (List.merge compare [] (vz79100 : vz79101))",fontsize=16,color="black",shape="box"];790 -> 801[label="",style="solid", color="black", weight=3]; 14.80/5.61 791 -> 779[label="",style="dashed", color="red", weight=0]; 14.80/5.61 791[label="List.merge compare vz78 vz790",fontsize=16,color="magenta"];792[label="List.merge_pairs compare (vz79110 : vz791110 : vz791111)",fontsize=16,color="black",shape="box"];792 -> 802[label="",style="solid", color="black", weight=3]; 14.80/5.61 793[label="List.merge_pairs compare (vz79110 : [])",fontsize=16,color="black",shape="box"];793 -> 803[label="",style="solid", color="black", weight=3]; 14.80/5.61 794[label="[]",fontsize=16,color="green",shape="box"];795[label="List.merge compare (vz780 : vz781) (vz7900 : vz7901)",fontsize=16,color="black",shape="box"];795 -> 804[label="",style="solid", color="black", weight=3]; 14.80/5.61 796[label="List.merge compare [] (vz7900 : vz7901)",fontsize=16,color="black",shape="box"];796 -> 805[label="",style="solid", color="black", weight=3]; 14.80/5.61 797[label="vz78",fontsize=16,color="green",shape="box"];916[label="primCmpNat vz8100 vz8000",fontsize=16,color="burlywood",shape="triangle"];966[label="vz8100/Succ vz81000",fontsize=10,color="white",style="solid",shape="box"];916 -> 966[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 966 -> 923[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 967[label="vz8100/Zero",fontsize=10,color="white",style="solid",shape="box"];916 -> 967[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 967 -> 924[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 917[label="vz88 : vz91",fontsize=16,color="green",shape="box"];918[label="vz90",fontsize=16,color="green",shape="box"];919[label="vz88 : vz91",fontsize=16,color="green",shape="box"];920[label="vz90",fontsize=16,color="green",shape="box"];921[label="vz91",fontsize=16,color="green",shape="box"];922[label="vz89 : vz90",fontsize=16,color="green",shape="box"];800 -> 779[label="",style="dashed", color="red", weight=0]; 14.80/5.61 800[label="List.merge compare vz78 (List.merge0 vz79100 compare vz7900 vz7901 vz79101 (compare vz7900 vz79100))",fontsize=16,color="magenta"];800 -> 810[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 801 -> 779[label="",style="dashed", color="red", weight=0]; 14.80/5.61 801[label="List.merge compare vz78 (vz79100 : vz79101)",fontsize=16,color="magenta"];801 -> 811[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 802[label="List.merge compare vz79110 vz791110 : List.merge_pairs compare vz791111",fontsize=16,color="green",shape="box"];802 -> 812[label="",style="dashed", color="green", weight=3]; 14.80/5.61 802 -> 813[label="",style="dashed", color="green", weight=3]; 14.80/5.61 803[label="vz79110 : []",fontsize=16,color="green",shape="box"];804 -> 814[label="",style="dashed", color="red", weight=0]; 14.80/5.61 804[label="List.merge0 vz7900 compare vz780 vz781 vz7901 (compare vz780 vz7900)",fontsize=16,color="magenta"];804 -> 820[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 804 -> 821[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 804 -> 822[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 804 -> 823[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 804 -> 824[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 805[label="vz7900 : vz7901",fontsize=16,color="green",shape="box"];923[label="primCmpNat (Succ vz81000) vz8000",fontsize=16,color="burlywood",shape="box"];968[label="vz8000/Succ vz80000",fontsize=10,color="white",style="solid",shape="box"];923 -> 968[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 968 -> 925[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 969[label="vz8000/Zero",fontsize=10,color="white",style="solid",shape="box"];923 -> 969[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 969 -> 926[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 924[label="primCmpNat Zero vz8000",fontsize=16,color="burlywood",shape="box"];970[label="vz8000/Succ vz80000",fontsize=10,color="white",style="solid",shape="box"];924 -> 970[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 970 -> 927[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 971[label="vz8000/Zero",fontsize=10,color="white",style="solid",shape="box"];924 -> 971[label="",style="solid", color="burlywood", weight=9]; 14.80/5.61 971 -> 928[label="",style="solid", color="burlywood", weight=3]; 14.80/5.61 810 -> 814[label="",style="dashed", color="red", weight=0]; 14.80/5.61 810[label="List.merge0 vz79100 compare vz7900 vz7901 vz79101 (compare vz7900 vz79100)",fontsize=16,color="magenta"];810 -> 825[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 810 -> 826[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 810 -> 827[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 810 -> 828[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 810 -> 829[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 811[label="vz79100 : vz79101",fontsize=16,color="green",shape="box"];812 -> 779[label="",style="dashed", color="red", weight=0]; 14.80/5.61 812[label="List.merge compare vz79110 vz791110",fontsize=16,color="magenta"];812 -> 834[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 812 -> 835[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 813 -> 778[label="",style="dashed", color="red", weight=0]; 14.80/5.61 813[label="List.merge_pairs compare vz791111",fontsize=16,color="magenta"];813 -> 836[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 820[label="vz7901",fontsize=16,color="green",shape="box"];821[label="vz780",fontsize=16,color="green",shape="box"];822[label="vz781",fontsize=16,color="green",shape="box"];823[label="compare vz780 vz7900",fontsize=16,color="blue",shape="box"];972[label="compare :: Char -> Char -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 972[label="",style="solid", color="blue", weight=9]; 14.80/5.61 972 -> 837[label="",style="solid", color="blue", weight=3]; 14.80/5.61 973[label="compare :: ([] a) -> ([] a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 973[label="",style="solid", color="blue", weight=9]; 14.80/5.61 973 -> 838[label="",style="solid", color="blue", weight=3]; 14.80/5.61 974[label="compare :: ((@3) a b c) -> ((@3) a b c) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 974[label="",style="solid", color="blue", weight=9]; 14.80/5.61 974 -> 839[label="",style="solid", color="blue", weight=3]; 14.80/5.61 975[label="compare :: Ordering -> Ordering -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 975[label="",style="solid", color="blue", weight=9]; 14.80/5.61 975 -> 840[label="",style="solid", color="blue", weight=3]; 14.80/5.61 976[label="compare :: Float -> Float -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 976[label="",style="solid", color="blue", weight=9]; 14.80/5.61 976 -> 841[label="",style="solid", color="blue", weight=3]; 14.80/5.61 977[label="compare :: (Ratio a) -> (Ratio a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 977[label="",style="solid", color="blue", weight=9]; 14.80/5.61 977 -> 842[label="",style="solid", color="blue", weight=3]; 14.80/5.61 978[label="compare :: Double -> Double -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 978[label="",style="solid", color="blue", weight=9]; 14.80/5.61 978 -> 843[label="",style="solid", color="blue", weight=3]; 14.80/5.61 979[label="compare :: (Either a b) -> (Either a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 979[label="",style="solid", color="blue", weight=9]; 14.80/5.61 979 -> 844[label="",style="solid", color="blue", weight=3]; 14.80/5.61 980[label="compare :: Bool -> Bool -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 980[label="",style="solid", color="blue", weight=9]; 14.80/5.61 980 -> 845[label="",style="solid", color="blue", weight=3]; 14.80/5.61 981[label="compare :: Integer -> Integer -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 981[label="",style="solid", color="blue", weight=9]; 14.80/5.61 981 -> 846[label="",style="solid", color="blue", weight=3]; 14.80/5.61 982[label="compare :: Int -> Int -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 982[label="",style="solid", color="blue", weight=9]; 14.80/5.61 982 -> 847[label="",style="solid", color="blue", weight=3]; 14.80/5.61 983[label="compare :: ((@2) a b) -> ((@2) a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 983[label="",style="solid", color="blue", weight=9]; 14.80/5.61 983 -> 848[label="",style="solid", color="blue", weight=3]; 14.80/5.61 984[label="compare :: () -> () -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 984[label="",style="solid", color="blue", weight=9]; 14.80/5.61 984 -> 849[label="",style="solid", color="blue", weight=3]; 14.80/5.61 985[label="compare :: (Maybe a) -> (Maybe a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];823 -> 985[label="",style="solid", color="blue", weight=9]; 14.80/5.61 985 -> 850[label="",style="solid", color="blue", weight=3]; 14.80/5.61 824[label="vz7900",fontsize=16,color="green",shape="box"];925[label="primCmpNat (Succ vz81000) (Succ vz80000)",fontsize=16,color="black",shape="box"];925 -> 929[label="",style="solid", color="black", weight=3]; 14.80/5.61 926[label="primCmpNat (Succ vz81000) Zero",fontsize=16,color="black",shape="box"];926 -> 930[label="",style="solid", color="black", weight=3]; 14.80/5.61 927[label="primCmpNat Zero (Succ vz80000)",fontsize=16,color="black",shape="box"];927 -> 931[label="",style="solid", color="black", weight=3]; 14.80/5.61 928[label="primCmpNat Zero Zero",fontsize=16,color="black",shape="box"];928 -> 932[label="",style="solid", color="black", weight=3]; 14.80/5.61 825[label="vz79101",fontsize=16,color="green",shape="box"];826[label="vz7900",fontsize=16,color="green",shape="box"];827[label="vz7901",fontsize=16,color="green",shape="box"];828[label="compare vz7900 vz79100",fontsize=16,color="blue",shape="box"];986[label="compare :: Char -> Char -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 986[label="",style="solid", color="blue", weight=9]; 14.80/5.61 986 -> 851[label="",style="solid", color="blue", weight=3]; 14.80/5.61 987[label="compare :: ([] a) -> ([] a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 987[label="",style="solid", color="blue", weight=9]; 14.80/5.61 987 -> 852[label="",style="solid", color="blue", weight=3]; 14.80/5.61 988[label="compare :: ((@3) a b c) -> ((@3) a b c) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 988[label="",style="solid", color="blue", weight=9]; 14.80/5.61 988 -> 853[label="",style="solid", color="blue", weight=3]; 14.80/5.61 989[label="compare :: Ordering -> Ordering -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 989[label="",style="solid", color="blue", weight=9]; 14.80/5.61 989 -> 854[label="",style="solid", color="blue", weight=3]; 14.80/5.61 990[label="compare :: Float -> Float -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 990[label="",style="solid", color="blue", weight=9]; 14.80/5.61 990 -> 855[label="",style="solid", color="blue", weight=3]; 14.80/5.61 991[label="compare :: (Ratio a) -> (Ratio a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 991[label="",style="solid", color="blue", weight=9]; 14.80/5.61 991 -> 856[label="",style="solid", color="blue", weight=3]; 14.80/5.61 992[label="compare :: Double -> Double -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 992[label="",style="solid", color="blue", weight=9]; 14.80/5.61 992 -> 857[label="",style="solid", color="blue", weight=3]; 14.80/5.61 993[label="compare :: (Either a b) -> (Either a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 993[label="",style="solid", color="blue", weight=9]; 14.80/5.61 993 -> 858[label="",style="solid", color="blue", weight=3]; 14.80/5.61 994[label="compare :: Bool -> Bool -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 994[label="",style="solid", color="blue", weight=9]; 14.80/5.61 994 -> 859[label="",style="solid", color="blue", weight=3]; 14.80/5.61 995[label="compare :: Integer -> Integer -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 995[label="",style="solid", color="blue", weight=9]; 14.80/5.61 995 -> 860[label="",style="solid", color="blue", weight=3]; 14.80/5.61 996[label="compare :: Int -> Int -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 996[label="",style="solid", color="blue", weight=9]; 14.80/5.61 996 -> 861[label="",style="solid", color="blue", weight=3]; 14.80/5.61 997[label="compare :: ((@2) a b) -> ((@2) a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 997[label="",style="solid", color="blue", weight=9]; 14.80/5.61 997 -> 862[label="",style="solid", color="blue", weight=3]; 14.80/5.61 998[label="compare :: () -> () -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 998[label="",style="solid", color="blue", weight=9]; 14.80/5.61 998 -> 863[label="",style="solid", color="blue", weight=3]; 14.80/5.61 999[label="compare :: (Maybe a) -> (Maybe a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];828 -> 999[label="",style="solid", color="blue", weight=9]; 14.80/5.61 999 -> 864[label="",style="solid", color="blue", weight=3]; 14.80/5.61 829[label="vz79100",fontsize=16,color="green",shape="box"];834[label="vz791110",fontsize=16,color="green",shape="box"];835[label="vz79110",fontsize=16,color="green",shape="box"];836[label="vz791111",fontsize=16,color="green",shape="box"];837 -> 818[label="",style="dashed", color="red", weight=0]; 14.80/5.61 837[label="compare vz780 vz7900",fontsize=16,color="magenta"];837 -> 869[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 837 -> 870[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 838[label="compare vz780 vz7900",fontsize=16,color="black",shape="triangle"];838 -> 871[label="",style="solid", color="black", weight=3]; 14.80/5.61 839[label="compare vz780 vz7900",fontsize=16,color="black",shape="triangle"];839 -> 872[label="",style="solid", color="black", weight=3]; 14.80/5.61 840[label="compare vz780 vz7900",fontsize=16,color="black",shape="triangle"];840 -> 873[label="",style="solid", color="black", weight=3]; 14.80/5.61 841[label="compare vz780 vz7900",fontsize=16,color="black",shape="triangle"];841 -> 874[label="",style="solid", color="black", weight=3]; 14.80/5.61 842[label="compare vz780 vz7900",fontsize=16,color="black",shape="triangle"];842 -> 875[label="",style="solid", color="black", weight=3]; 14.80/5.61 843[label="compare vz780 vz7900",fontsize=16,color="black",shape="triangle"];843 -> 876[label="",style="solid", color="black", weight=3]; 14.80/5.61 844[label="compare vz780 vz7900",fontsize=16,color="black",shape="triangle"];844 -> 877[label="",style="solid", color="black", weight=3]; 14.80/5.61 845[label="compare vz780 vz7900",fontsize=16,color="black",shape="triangle"];845 -> 878[label="",style="solid", color="black", weight=3]; 14.80/5.61 846[label="compare vz780 vz7900",fontsize=16,color="black",shape="triangle"];846 -> 879[label="",style="solid", color="black", weight=3]; 14.80/5.61 847[label="compare vz780 vz7900",fontsize=16,color="black",shape="triangle"];847 -> 880[label="",style="solid", color="black", weight=3]; 14.80/5.61 848[label="compare vz780 vz7900",fontsize=16,color="black",shape="triangle"];848 -> 881[label="",style="solid", color="black", weight=3]; 14.80/5.61 849[label="compare vz780 vz7900",fontsize=16,color="black",shape="triangle"];849 -> 882[label="",style="solid", color="black", weight=3]; 14.80/5.61 850[label="compare vz780 vz7900",fontsize=16,color="black",shape="triangle"];850 -> 883[label="",style="solid", color="black", weight=3]; 14.80/5.61 929 -> 916[label="",style="dashed", color="red", weight=0]; 14.80/5.61 929[label="primCmpNat vz81000 vz80000",fontsize=16,color="magenta"];929 -> 933[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 929 -> 934[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 930[label="GT",fontsize=16,color="green",shape="box"];931[label="LT",fontsize=16,color="green",shape="box"];932[label="EQ",fontsize=16,color="green",shape="box"];851 -> 818[label="",style="dashed", color="red", weight=0]; 14.80/5.61 851[label="compare vz7900 vz79100",fontsize=16,color="magenta"];851 -> 884[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 851 -> 885[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 852 -> 838[label="",style="dashed", color="red", weight=0]; 14.80/5.61 852[label="compare vz7900 vz79100",fontsize=16,color="magenta"];852 -> 886[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 852 -> 887[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 853 -> 839[label="",style="dashed", color="red", weight=0]; 14.80/5.61 853[label="compare vz7900 vz79100",fontsize=16,color="magenta"];853 -> 888[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 853 -> 889[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 854 -> 840[label="",style="dashed", color="red", weight=0]; 14.80/5.61 854[label="compare vz7900 vz79100",fontsize=16,color="magenta"];854 -> 890[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 854 -> 891[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 855 -> 841[label="",style="dashed", color="red", weight=0]; 14.80/5.61 855[label="compare vz7900 vz79100",fontsize=16,color="magenta"];855 -> 892[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 855 -> 893[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 856 -> 842[label="",style="dashed", color="red", weight=0]; 14.80/5.61 856[label="compare vz7900 vz79100",fontsize=16,color="magenta"];856 -> 894[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 856 -> 895[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 857 -> 843[label="",style="dashed", color="red", weight=0]; 14.80/5.61 857[label="compare vz7900 vz79100",fontsize=16,color="magenta"];857 -> 896[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 857 -> 897[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 858 -> 844[label="",style="dashed", color="red", weight=0]; 14.80/5.61 858[label="compare vz7900 vz79100",fontsize=16,color="magenta"];858 -> 898[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 858 -> 899[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 859 -> 845[label="",style="dashed", color="red", weight=0]; 14.80/5.61 859[label="compare vz7900 vz79100",fontsize=16,color="magenta"];859 -> 900[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 859 -> 901[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 860 -> 846[label="",style="dashed", color="red", weight=0]; 14.80/5.61 860[label="compare vz7900 vz79100",fontsize=16,color="magenta"];860 -> 902[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 860 -> 903[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 861 -> 847[label="",style="dashed", color="red", weight=0]; 14.80/5.61 861[label="compare vz7900 vz79100",fontsize=16,color="magenta"];861 -> 904[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 861 -> 905[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 862 -> 848[label="",style="dashed", color="red", weight=0]; 14.80/5.61 862[label="compare vz7900 vz79100",fontsize=16,color="magenta"];862 -> 906[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 862 -> 907[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 863 -> 849[label="",style="dashed", color="red", weight=0]; 14.80/5.61 863[label="compare vz7900 vz79100",fontsize=16,color="magenta"];863 -> 908[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 863 -> 909[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 864 -> 850[label="",style="dashed", color="red", weight=0]; 14.80/5.61 864[label="compare vz7900 vz79100",fontsize=16,color="magenta"];864 -> 910[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 864 -> 911[label="",style="dashed", color="magenta", weight=3]; 14.80/5.61 869[label="vz7900",fontsize=16,color="green",shape="box"];870[label="vz780",fontsize=16,color="green",shape="box"];871[label="error []",fontsize=16,color="red",shape="box"];872[label="error []",fontsize=16,color="red",shape="box"];873[label="error []",fontsize=16,color="red",shape="box"];874[label="error []",fontsize=16,color="red",shape="box"];875[label="error []",fontsize=16,color="red",shape="box"];876[label="error []",fontsize=16,color="red",shape="box"];877[label="error []",fontsize=16,color="red",shape="box"];878[label="error []",fontsize=16,color="red",shape="box"];879[label="error []",fontsize=16,color="red",shape="box"];880[label="error []",fontsize=16,color="red",shape="box"];881[label="error []",fontsize=16,color="red",shape="box"];882[label="error []",fontsize=16,color="red",shape="box"];883[label="error []",fontsize=16,color="red",shape="box"];933[label="vz80000",fontsize=16,color="green",shape="box"];934[label="vz81000",fontsize=16,color="green",shape="box"];884[label="vz79100",fontsize=16,color="green",shape="box"];885[label="vz7900",fontsize=16,color="green",shape="box"];886[label="vz7900",fontsize=16,color="green",shape="box"];887[label="vz79100",fontsize=16,color="green",shape="box"];888[label="vz7900",fontsize=16,color="green",shape="box"];889[label="vz79100",fontsize=16,color="green",shape="box"];890[label="vz7900",fontsize=16,color="green",shape="box"];891[label="vz79100",fontsize=16,color="green",shape="box"];892[label="vz7900",fontsize=16,color="green",shape="box"];893[label="vz79100",fontsize=16,color="green",shape="box"];894[label="vz7900",fontsize=16,color="green",shape="box"];895[label="vz79100",fontsize=16,color="green",shape="box"];896[label="vz7900",fontsize=16,color="green",shape="box"];897[label="vz79100",fontsize=16,color="green",shape="box"];898[label="vz7900",fontsize=16,color="green",shape="box"];899[label="vz79100",fontsize=16,color="green",shape="box"];900[label="vz7900",fontsize=16,color="green",shape="box"];901[label="vz79100",fontsize=16,color="green",shape="box"];902[label="vz7900",fontsize=16,color="green",shape="box"];903[label="vz79100",fontsize=16,color="green",shape="box"];904[label="vz7900",fontsize=16,color="green",shape="box"];905[label="vz79100",fontsize=16,color="green",shape="box"];906[label="vz7900",fontsize=16,color="green",shape="box"];907[label="vz79100",fontsize=16,color="green",shape="box"];908[label="vz7900",fontsize=16,color="green",shape="box"];909[label="vz79100",fontsize=16,color="green",shape="box"];910[label="vz7900",fontsize=16,color="green",shape="box"];911[label="vz79100",fontsize=16,color="green",shape="box"];} 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (8) 14.80/5.61 Complex Obligation (AND) 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (9) 14.80/5.61 Obligation: 14.80/5.61 Q DP problem: 14.80/5.61 The TRS P consists of the following rules: 14.80/5.61 14.80/5.61 new_primCmpNat(Succ(vz81000), Succ(vz80000)) -> new_primCmpNat(vz81000, vz80000) 14.80/5.61 14.80/5.61 R is empty. 14.80/5.61 Q is empty. 14.80/5.61 We have to consider all minimal (P,Q,R)-chains. 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (10) QDPSizeChangeProof (EQUIVALENT) 14.80/5.61 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.80/5.61 14.80/5.61 From the DPs we obtained the following set of size-change graphs: 14.80/5.61 *new_primCmpNat(Succ(vz81000), Succ(vz80000)) -> new_primCmpNat(vz81000, vz80000) 14.80/5.61 The graph contains the following edges 1 > 1, 2 > 2 14.80/5.61 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (11) 14.80/5.61 YES 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (12) 14.80/5.61 Obligation: 14.80/5.61 Q DP problem: 14.80/5.61 The TRS P consists of the following rules: 14.80/5.61 14.80/5.61 new_merge_pairs(:(vz79110, :(vz791110, vz791111)), ba) -> new_merge_pairs(vz791111, ba) 14.80/5.61 14.80/5.61 R is empty. 14.80/5.61 Q is empty. 14.80/5.61 We have to consider all minimal (P,Q,R)-chains. 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (13) QDPSizeChangeProof (EQUIVALENT) 14.80/5.61 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.80/5.61 14.80/5.61 From the DPs we obtained the following set of size-change graphs: 14.80/5.61 *new_merge_pairs(:(vz79110, :(vz791110, vz791111)), ba) -> new_merge_pairs(vz791111, ba) 14.80/5.61 The graph contains the following edges 1 > 1, 2 >= 2 14.80/5.61 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (14) 14.80/5.61 YES 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (15) 14.80/5.61 Obligation: 14.80/5.61 Q DP problem: 14.80/5.61 The TRS P consists of the following rules: 14.80/5.61 14.80/5.61 new_merge0(vz88, vz89, vz90, vz91, EQ, ba) -> new_merge(vz90, :(vz88, vz91), ba) 14.80/5.61 new_merge0(vz88, vz89, vz90, vz91, GT, ba) -> new_merge(:(vz89, vz90), vz91, ba) 14.80/5.61 new_merge0(vz88, vz89, vz90, vz91, LT, ba) -> new_merge(vz90, :(vz88, vz91), ba) 14.80/5.61 new_merge(:(vz780, vz781), :(vz7900, vz7901), bb) -> new_merge0(vz7900, vz780, vz781, vz7901, new_compare(vz780, vz7900, bb), bb) 14.80/5.61 14.80/5.61 The TRS R consists of the following rules: 14.80/5.61 14.80/5.61 new_compare1(vz780, vz7900, bc, bd) -> error([]) 14.80/5.61 new_primCmpNat0(Succ(vz81000), Zero) -> GT 14.80/5.61 new_compare4(vz780, vz7900) -> error([]) 14.80/5.61 new_compare(vz780, vz7900, app(app(ty_Either, cb), cc)) -> new_compare9(vz780, vz7900, cb, cc) 14.80/5.61 new_compare11(vz780, vz7900) -> error([]) 14.80/5.61 new_primCmpNat0(Zero, Zero) -> EQ 14.80/5.61 new_compare(vz780, vz7900, ty_Float) -> new_compare0(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, app(app(app(ty_@3, bf), bg), bh)) -> new_compare6(vz780, vz7900, bf, bg, bh) 14.80/5.61 new_compare(vz780, vz7900, ty_Int) -> new_compare11(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, app(ty_Maybe, cd)) -> new_compare13(vz780, vz7900, cd) 14.80/5.61 new_compare(vz780, vz7900, ty_@0) -> new_compare12(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, app(ty_[], be)) -> new_compare5(vz780, vz7900, be) 14.80/5.61 new_compare(vz780, vz7900, ty_Integer) -> new_compare2(vz780, vz7900) 14.80/5.61 new_compare13(vz780, vz7900, cd) -> error([]) 14.80/5.61 new_compare2(vz780, vz7900) -> error([]) 14.80/5.61 new_primCmpNat0(Succ(vz81000), Succ(vz80000)) -> new_primCmpNat0(vz81000, vz80000) 14.80/5.61 new_compare3(Char(vz8100), Char(vz8000)) -> new_primCmpNat0(vz8100, vz8000) 14.80/5.61 new_compare(vz780, vz7900, ty_Ordering) -> new_compare7(vz780, vz7900) 14.80/5.61 new_compare5(vz780, vz7900, be) -> error([]) 14.80/5.61 new_compare9(vz780, vz7900, cb, cc) -> error([]) 14.80/5.61 new_compare12(vz780, vz7900) -> error([]) 14.80/5.61 new_compare10(vz780, vz7900) -> error([]) 14.80/5.61 new_compare0(vz780, vz7900) -> error([]) 14.80/5.61 new_compare(vz780, vz7900, ty_Double) -> new_compare4(vz780, vz7900) 14.80/5.61 new_primCmpNat0(Zero, Succ(vz80000)) -> LT 14.80/5.61 new_compare6(vz780, vz7900, bf, bg, bh) -> error([]) 14.80/5.61 new_compare(vz780, vz7900, ty_Char) -> new_compare3(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, ty_Bool) -> new_compare10(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, app(app(ty_@2, bc), bd)) -> new_compare1(vz780, vz7900, bc, bd) 14.80/5.61 new_compare8(vz780, vz7900, ca) -> error([]) 14.80/5.61 new_compare(vz780, vz7900, app(ty_Ratio, ca)) -> new_compare8(vz780, vz7900, ca) 14.80/5.61 new_compare7(vz780, vz7900) -> error([]) 14.80/5.61 14.80/5.61 The set Q consists of the following terms: 14.80/5.61 14.80/5.61 new_compare10(x0, x1) 14.80/5.61 new_compare(x0, x1, app(ty_Maybe, x2)) 14.80/5.61 new_compare9(x0, x1, x2, x3) 14.80/5.61 new_primCmpNat0(Succ(x0), Succ(x1)) 14.80/5.61 new_compare0(x0, x1) 14.80/5.61 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.80/5.61 new_compare8(x0, x1, x2) 14.80/5.61 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.80/5.61 new_compare(x0, x1, ty_Integer) 14.80/5.61 new_compare5(x0, x1, x2) 14.80/5.61 new_primCmpNat0(Zero, Succ(x0)) 14.80/5.61 new_compare11(x0, x1) 14.80/5.61 new_compare(x0, x1, ty_Float) 14.80/5.61 new_compare6(x0, x1, x2, x3, x4) 14.80/5.61 new_primCmpNat0(Succ(x0), Zero) 14.80/5.61 new_compare(x0, x1, ty_Bool) 14.80/5.61 new_compare2(x0, x1) 14.80/5.61 new_compare(x0, x1, app(ty_[], x2)) 14.80/5.61 new_compare(x0, x1, ty_Int) 14.80/5.61 new_compare(x0, x1, app(ty_Ratio, x2)) 14.80/5.61 new_compare12(x0, x1) 14.80/5.61 new_compare7(x0, x1) 14.80/5.61 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.80/5.61 new_compare3(Char(x0), Char(x1)) 14.80/5.61 new_compare(x0, x1, ty_Ordering) 14.80/5.61 new_compare(x0, x1, ty_Char) 14.80/5.61 new_compare1(x0, x1, x2, x3) 14.80/5.61 new_primCmpNat0(Zero, Zero) 14.80/5.61 new_compare(x0, x1, ty_@0) 14.80/5.61 new_compare4(x0, x1) 14.80/5.61 new_compare13(x0, x1, x2) 14.80/5.61 new_compare(x0, x1, ty_Double) 14.80/5.61 14.80/5.61 We have to consider all minimal (P,Q,R)-chains. 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (16) QDPOrderProof (EQUIVALENT) 14.80/5.61 We use the reduction pair processor [LPAR04,JAR06]. 14.80/5.61 14.80/5.61 14.80/5.61 The following pairs can be oriented strictly and are deleted. 14.80/5.61 14.80/5.61 new_merge(:(vz780, vz781), :(vz7900, vz7901), bb) -> new_merge0(vz7900, vz780, vz781, vz7901, new_compare(vz780, vz7900, bb), bb) 14.80/5.61 The remaining pairs can at least be oriented weakly. 14.80/5.61 Used ordering: Polynomial interpretation [POLO]: 14.80/5.61 14.80/5.61 POL(:(x_1, x_2)) = 1 + x_1 + x_2 14.80/5.61 POL(Char(x_1)) = x_1 14.80/5.61 POL(EQ) = 0 14.80/5.61 POL(GT) = 0 14.80/5.61 POL(LT) = 0 14.80/5.61 POL(Succ(x_1)) = 1 + x_1 14.80/5.61 POL(Zero) = 1 14.80/5.61 POL([]) = 1 14.80/5.61 POL(app(x_1, x_2)) = 1 + x_1 + x_2 14.80/5.61 POL(error(x_1)) = 1 14.80/5.61 POL(new_compare(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 14.80/5.61 POL(new_compare0(x_1, x_2)) = 1 + x_1 14.80/5.61 POL(new_compare1(x_1, x_2, x_3, x_4)) = 1 14.80/5.61 POL(new_compare10(x_1, x_2)) = 1 + x_1 + x_2 14.80/5.61 POL(new_compare11(x_1, x_2)) = 1 + x_1 + x_2 14.80/5.61 POL(new_compare12(x_1, x_2)) = 1 + x_1 + x_2 14.80/5.61 POL(new_compare13(x_1, x_2, x_3)) = 1 + x_1 + x_2 14.80/5.61 POL(new_compare2(x_1, x_2)) = 1 + x_1 + x_2 14.80/5.61 POL(new_compare3(x_1, x_2)) = 1 + x_1 + x_2 14.80/5.61 POL(new_compare4(x_1, x_2)) = 1 + x_1 + x_2 14.80/5.61 POL(new_compare5(x_1, x_2, x_3)) = 1 14.80/5.61 POL(new_compare6(x_1, x_2, x_3, x_4, x_5)) = 1 14.80/5.61 POL(new_compare7(x_1, x_2)) = 1 + x_1 + x_2 14.80/5.61 POL(new_compare8(x_1, x_2, x_3)) = 1 + x_1 14.80/5.61 POL(new_compare9(x_1, x_2, x_3, x_4)) = 1 + x_1 14.80/5.61 POL(new_merge(x_1, x_2, x_3)) = x_1 + x_2 + x_3 14.80/5.61 POL(new_merge0(x_1, x_2, x_3, x_4, x_5, x_6)) = 1 + x_1 + x_2 + x_3 + x_4 + x_6 14.80/5.61 POL(new_primCmpNat0(x_1, x_2)) = x_1 + x_2 14.80/5.61 POL(ty_@0) = 1 14.80/5.61 POL(ty_@2) = 1 14.80/5.61 POL(ty_@3) = 1 14.80/5.61 POL(ty_Bool) = 1 14.80/5.61 POL(ty_Char) = 1 14.80/5.61 POL(ty_Double) = 1 14.80/5.61 POL(ty_Either) = 1 14.80/5.61 POL(ty_Float) = 1 14.80/5.61 POL(ty_Int) = 1 14.80/5.61 POL(ty_Integer) = 1 14.80/5.61 POL(ty_Maybe) = 1 14.80/5.61 POL(ty_Ordering) = 1 14.80/5.61 POL(ty_Ratio) = 1 14.80/5.61 POL(ty_[]) = 1 14.80/5.61 14.80/5.61 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 14.80/5.61 none 14.80/5.61 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (17) 14.80/5.61 Obligation: 14.80/5.61 Q DP problem: 14.80/5.61 The TRS P consists of the following rules: 14.80/5.61 14.80/5.61 new_merge0(vz88, vz89, vz90, vz91, EQ, ba) -> new_merge(vz90, :(vz88, vz91), ba) 14.80/5.61 new_merge0(vz88, vz89, vz90, vz91, GT, ba) -> new_merge(:(vz89, vz90), vz91, ba) 14.80/5.61 new_merge0(vz88, vz89, vz90, vz91, LT, ba) -> new_merge(vz90, :(vz88, vz91), ba) 14.80/5.61 14.80/5.61 The TRS R consists of the following rules: 14.80/5.61 14.80/5.61 new_compare1(vz780, vz7900, bc, bd) -> error([]) 14.80/5.61 new_primCmpNat0(Succ(vz81000), Zero) -> GT 14.80/5.61 new_compare4(vz780, vz7900) -> error([]) 14.80/5.61 new_compare(vz780, vz7900, app(app(ty_Either, cb), cc)) -> new_compare9(vz780, vz7900, cb, cc) 14.80/5.61 new_compare11(vz780, vz7900) -> error([]) 14.80/5.61 new_primCmpNat0(Zero, Zero) -> EQ 14.80/5.61 new_compare(vz780, vz7900, ty_Float) -> new_compare0(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, app(app(app(ty_@3, bf), bg), bh)) -> new_compare6(vz780, vz7900, bf, bg, bh) 14.80/5.61 new_compare(vz780, vz7900, ty_Int) -> new_compare11(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, app(ty_Maybe, cd)) -> new_compare13(vz780, vz7900, cd) 14.80/5.61 new_compare(vz780, vz7900, ty_@0) -> new_compare12(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, app(ty_[], be)) -> new_compare5(vz780, vz7900, be) 14.80/5.61 new_compare(vz780, vz7900, ty_Integer) -> new_compare2(vz780, vz7900) 14.80/5.61 new_compare13(vz780, vz7900, cd) -> error([]) 14.80/5.61 new_compare2(vz780, vz7900) -> error([]) 14.80/5.61 new_primCmpNat0(Succ(vz81000), Succ(vz80000)) -> new_primCmpNat0(vz81000, vz80000) 14.80/5.61 new_compare3(Char(vz8100), Char(vz8000)) -> new_primCmpNat0(vz8100, vz8000) 14.80/5.61 new_compare(vz780, vz7900, ty_Ordering) -> new_compare7(vz780, vz7900) 14.80/5.61 new_compare5(vz780, vz7900, be) -> error([]) 14.80/5.61 new_compare9(vz780, vz7900, cb, cc) -> error([]) 14.80/5.61 new_compare12(vz780, vz7900) -> error([]) 14.80/5.61 new_compare10(vz780, vz7900) -> error([]) 14.80/5.61 new_compare0(vz780, vz7900) -> error([]) 14.80/5.61 new_compare(vz780, vz7900, ty_Double) -> new_compare4(vz780, vz7900) 14.80/5.61 new_primCmpNat0(Zero, Succ(vz80000)) -> LT 14.80/5.61 new_compare6(vz780, vz7900, bf, bg, bh) -> error([]) 14.80/5.61 new_compare(vz780, vz7900, ty_Char) -> new_compare3(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, ty_Bool) -> new_compare10(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, app(app(ty_@2, bc), bd)) -> new_compare1(vz780, vz7900, bc, bd) 14.80/5.61 new_compare8(vz780, vz7900, ca) -> error([]) 14.80/5.61 new_compare(vz780, vz7900, app(ty_Ratio, ca)) -> new_compare8(vz780, vz7900, ca) 14.80/5.61 new_compare7(vz780, vz7900) -> error([]) 14.80/5.61 14.80/5.61 The set Q consists of the following terms: 14.80/5.61 14.80/5.61 new_compare10(x0, x1) 14.80/5.61 new_compare(x0, x1, app(ty_Maybe, x2)) 14.80/5.61 new_compare9(x0, x1, x2, x3) 14.80/5.61 new_primCmpNat0(Succ(x0), Succ(x1)) 14.80/5.61 new_compare0(x0, x1) 14.80/5.61 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.80/5.61 new_compare8(x0, x1, x2) 14.80/5.61 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.80/5.61 new_compare(x0, x1, ty_Integer) 14.80/5.61 new_compare5(x0, x1, x2) 14.80/5.61 new_primCmpNat0(Zero, Succ(x0)) 14.80/5.61 new_compare11(x0, x1) 14.80/5.61 new_compare(x0, x1, ty_Float) 14.80/5.61 new_compare6(x0, x1, x2, x3, x4) 14.80/5.61 new_primCmpNat0(Succ(x0), Zero) 14.80/5.61 new_compare(x0, x1, ty_Bool) 14.80/5.61 new_compare2(x0, x1) 14.80/5.61 new_compare(x0, x1, app(ty_[], x2)) 14.80/5.61 new_compare(x0, x1, ty_Int) 14.80/5.61 new_compare(x0, x1, app(ty_Ratio, x2)) 14.80/5.61 new_compare12(x0, x1) 14.80/5.61 new_compare7(x0, x1) 14.80/5.61 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.80/5.61 new_compare3(Char(x0), Char(x1)) 14.80/5.61 new_compare(x0, x1, ty_Ordering) 14.80/5.61 new_compare(x0, x1, ty_Char) 14.80/5.61 new_compare1(x0, x1, x2, x3) 14.80/5.61 new_primCmpNat0(Zero, Zero) 14.80/5.61 new_compare(x0, x1, ty_@0) 14.80/5.61 new_compare4(x0, x1) 14.80/5.61 new_compare13(x0, x1, x2) 14.80/5.61 new_compare(x0, x1, ty_Double) 14.80/5.61 14.80/5.61 We have to consider all minimal (P,Q,R)-chains. 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (18) DependencyGraphProof (EQUIVALENT) 14.80/5.61 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (19) 14.80/5.61 TRUE 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (20) 14.80/5.61 Obligation: 14.80/5.61 Q DP problem: 14.80/5.61 The TRS P consists of the following rules: 14.80/5.61 14.80/5.61 new_map(:(vz3110, vz3111)) -> new_map(vz3111) 14.80/5.61 14.80/5.61 R is empty. 14.80/5.61 Q is empty. 14.80/5.61 We have to consider all minimal (P,Q,R)-chains. 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (21) QDPSizeChangeProof (EQUIVALENT) 14.80/5.61 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.80/5.61 14.80/5.61 From the DPs we obtained the following set of size-change graphs: 14.80/5.61 *new_map(:(vz3110, vz3111)) -> new_map(vz3111) 14.80/5.61 The graph contains the following edges 1 > 1 14.80/5.61 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (22) 14.80/5.61 YES 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (23) 14.80/5.61 Obligation: 14.80/5.61 Q DP problem: 14.80/5.61 The TRS P consists of the following rules: 14.80/5.61 14.80/5.61 new_mergesort'(vz78, :(vz790, []), ba) -> new_mergesort'(new_merge2(vz78, vz790, ba), [], ba) 14.80/5.61 new_mergesort'(vz78, :(vz790, :(vz7910, vz7911)), ba) -> new_mergesort'(new_merge1(vz78, vz790, vz7910, ba), new_merge_pairs0(vz7911, ba), ba) 14.80/5.61 14.80/5.61 The TRS R consists of the following rules: 14.80/5.61 14.80/5.61 new_compare1(vz780, vz7900, bb, bc) -> error([]) 14.80/5.61 new_primCmpNat0(Succ(vz81000), Zero) -> GT 14.80/5.61 new_compare4(vz780, vz7900) -> error([]) 14.80/5.61 new_compare11(vz780, vz7900) -> error([]) 14.80/5.61 new_primCmpNat0(Zero, Zero) -> EQ 14.80/5.61 new_compare(vz780, vz7900, ty_Float) -> new_compare0(vz780, vz7900) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Double) -> new_compare4(vz7900, vz79100) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Bool) -> new_compare10(vz7900, vz79100) 14.80/5.61 new_compare(vz780, vz7900, ty_Int) -> new_compare11(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, app(ty_Maybe, cc)) -> new_compare13(vz780, vz7900, cc) 14.80/5.61 new_compare14(vz7900, vz79100, ty_@0) -> new_compare12(vz7900, vz79100) 14.80/5.61 new_compare14(vz7900, vz79100, app(app(app(ty_@3, be), bf), bg)) -> new_compare6(vz7900, vz79100, be, bf, bg) 14.80/5.61 new_compare(vz780, vz7900, app(ty_[], bd)) -> new_compare5(vz780, vz7900, bd) 14.80/5.61 new_compare14(vz7900, vz79100, app(app(ty_Either, ca), cb)) -> new_compare9(vz7900, vz79100, ca, cb) 14.80/5.61 new_merge_pairs0(:(vz79110, []), ba) -> :(vz79110, []) 14.80/5.61 new_primCmpNat0(Succ(vz81000), Succ(vz80000)) -> new_primCmpNat0(vz81000, vz80000) 14.80/5.61 new_merge1(vz78, :(vz7900, vz7901), :(vz79100, vz79101), ba) -> new_merge2(vz78, new_merge00(vz79100, vz7900, vz7901, vz79101, new_compare14(vz7900, vz79100, ba), ba), ba) 14.80/5.61 new_compare3(Char(vz8100), Char(vz8000)) -> new_primCmpNat0(vz8100, vz8000) 14.80/5.61 new_compare14(vz7900, vz79100, app(ty_Ratio, bh)) -> new_compare8(vz7900, vz79100, bh) 14.80/5.61 new_compare(vz780, vz7900, ty_Ordering) -> new_compare7(vz780, vz7900) 14.80/5.61 new_compare5(vz780, vz7900, bd) -> error([]) 14.80/5.61 new_compare12(vz780, vz7900) -> error([]) 14.80/5.61 new_merge2([], :(vz7900, vz7901), ba) -> :(vz7900, vz7901) 14.80/5.61 new_compare0(vz780, vz7900) -> error([]) 14.80/5.61 new_compare6(vz780, vz7900, be, bf, bg) -> error([]) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Float) -> new_compare0(vz7900, vz79100) 14.80/5.61 new_compare(vz780, vz7900, app(app(ty_@2, bb), bc)) -> new_compare1(vz780, vz7900, bb, bc) 14.80/5.61 new_merge_pairs0(:(vz79110, :(vz791110, vz791111)), ba) -> :(new_merge2(vz79110, vz791110, ba), new_merge_pairs0(vz791111, ba)) 14.80/5.61 new_merge00(vz88, vz89, vz90, vz91, LT, cd) -> :(vz89, new_merge2(vz90, :(vz88, vz91), cd)) 14.80/5.61 new_compare7(vz780, vz7900) -> error([]) 14.80/5.61 new_compare(vz780, vz7900, app(app(ty_Either, ca), cb)) -> new_compare9(vz780, vz7900, ca, cb) 14.80/5.61 new_merge2(:(vz780, vz781), :(vz7900, vz7901), ba) -> new_merge00(vz7900, vz780, vz781, vz7901, new_compare(vz780, vz7900, ba), ba) 14.80/5.61 new_compare14(vz7900, vz79100, app(app(ty_@2, bb), bc)) -> new_compare1(vz7900, vz79100, bb, bc) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Int) -> new_compare11(vz7900, vz79100) 14.80/5.61 new_compare(vz780, vz7900, app(app(app(ty_@3, be), bf), bg)) -> new_compare6(vz780, vz7900, be, bf, bg) 14.80/5.61 new_compare(vz780, vz7900, ty_@0) -> new_compare12(vz780, vz7900) 14.80/5.61 new_merge2(vz78, [], ba) -> vz78 14.80/5.61 new_compare(vz780, vz7900, ty_Integer) -> new_compare2(vz780, vz7900) 14.80/5.61 new_compare13(vz780, vz7900, cc) -> error([]) 14.80/5.61 new_merge_pairs0([], ba) -> [] 14.80/5.61 new_compare14(vz7900, vz79100, app(ty_Maybe, cc)) -> new_compare13(vz7900, vz79100, cc) 14.80/5.61 new_merge1(vz78, [], :(vz79100, vz79101), ba) -> new_merge2(vz78, :(vz79100, vz79101), ba) 14.80/5.61 new_compare2(vz780, vz7900) -> error([]) 14.80/5.61 new_merge00(vz88, vz89, vz90, vz91, GT, cd) -> :(vz88, new_merge2(:(vz89, vz90), vz91, cd)) 14.80/5.61 new_compare9(vz780, vz7900, ca, cb) -> error([]) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Char) -> new_compare3(vz7900, vz79100) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Integer) -> new_compare2(vz7900, vz79100) 14.80/5.61 new_compare10(vz780, vz7900) -> error([]) 14.80/5.61 new_merge00(vz88, vz89, vz90, vz91, EQ, cd) -> :(vz89, new_merge2(vz90, :(vz88, vz91), cd)) 14.80/5.61 new_compare(vz780, vz7900, ty_Double) -> new_compare4(vz780, vz7900) 14.80/5.61 new_compare14(vz7900, vz79100, app(ty_[], bd)) -> new_compare5(vz7900, vz79100, bd) 14.80/5.61 new_primCmpNat0(Zero, Succ(vz80000)) -> LT 14.80/5.61 new_compare(vz780, vz7900, ty_Char) -> new_compare3(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, ty_Bool) -> new_compare10(vz780, vz7900) 14.80/5.61 new_compare8(vz780, vz7900, bh) -> error([]) 14.80/5.61 new_merge1(vz78, vz790, [], ba) -> new_merge2(vz78, vz790, ba) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Ordering) -> new_compare7(vz7900, vz79100) 14.80/5.61 new_compare(vz780, vz7900, app(ty_Ratio, bh)) -> new_compare8(vz780, vz7900, bh) 14.80/5.61 14.80/5.61 The set Q consists of the following terms: 14.80/5.61 14.80/5.61 new_compare14(x0, x1, ty_Int) 14.80/5.61 new_merge00(x0, x1, x2, x3, EQ, x4) 14.80/5.61 new_merge1(x0, :(x1, x2), :(x3, x4), x5) 14.80/5.61 new_compare(x0, x1, ty_Integer) 14.80/5.61 new_merge00(x0, x1, x2, x3, GT, x4) 14.80/5.61 new_primCmpNat0(Zero, Succ(x0)) 14.80/5.61 new_merge2([], :(x0, x1), x2) 14.80/5.61 new_compare(x0, x1, app(ty_[], x2)) 14.80/5.61 new_compare14(x0, x1, app(ty_Ratio, x2)) 14.80/5.61 new_compare(x0, x1, ty_Float) 14.80/5.61 new_compare13(x0, x1, x2) 14.80/5.61 new_compare12(x0, x1) 14.80/5.61 new_merge2(x0, [], x1) 14.80/5.61 new_compare6(x0, x1, x2, x3, x4) 14.80/5.61 new_merge_pairs0(:(x0, []), x1) 14.80/5.61 new_compare14(x0, x1, ty_Integer) 14.80/5.61 new_compare(x0, x1, app(ty_Maybe, x2)) 14.80/5.61 new_compare(x0, x1, ty_Char) 14.80/5.61 new_merge00(x0, x1, x2, x3, LT, x4) 14.80/5.61 new_compare14(x0, x1, app(ty_Maybe, x2)) 14.80/5.61 new_compare14(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.80/5.61 new_merge2(:(x0, x1), :(x2, x3), x4) 14.80/5.61 new_compare9(x0, x1, x2, x3) 14.80/5.61 new_compare(x0, x1, ty_Double) 14.80/5.61 new_merge1(x0, x1, [], x2) 14.80/5.61 new_compare10(x0, x1) 14.80/5.61 new_compare14(x0, x1, ty_Float) 14.80/5.61 new_primCmpNat0(Succ(x0), Succ(x1)) 14.80/5.61 new_compare5(x0, x1, x2) 14.80/5.61 new_compare0(x0, x1) 14.80/5.61 new_compare14(x0, x1, ty_Bool) 14.80/5.61 new_compare(x0, x1, app(ty_Ratio, x2)) 14.80/5.61 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.80/5.61 new_compare14(x0, x1, ty_Double) 14.80/5.61 new_compare1(x0, x1, x2, x3) 14.80/5.61 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.80/5.61 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.80/5.61 new_merge1(x0, [], :(x1, x2), x3) 14.80/5.61 new_compare11(x0, x1) 14.80/5.61 new_compare8(x0, x1, x2) 14.80/5.61 new_compare14(x0, x1, ty_Char) 14.80/5.61 new_primCmpNat0(Succ(x0), Zero) 14.80/5.61 new_compare(x0, x1, ty_Bool) 14.80/5.61 new_compare2(x0, x1) 14.80/5.61 new_compare(x0, x1, ty_Int) 14.80/5.61 new_compare7(x0, x1) 14.80/5.61 new_merge_pairs0(:(x0, :(x1, x2)), x3) 14.80/5.61 new_compare14(x0, x1, app(app(ty_Either, x2), x3)) 14.80/5.61 new_compare3(Char(x0), Char(x1)) 14.80/5.61 new_compare14(x0, x1, ty_@0) 14.80/5.61 new_compare14(x0, x1, ty_Ordering) 14.80/5.61 new_compare14(x0, x1, app(ty_[], x2)) 14.80/5.61 new_compare(x0, x1, ty_Ordering) 14.80/5.61 new_primCmpNat0(Zero, Zero) 14.80/5.61 new_compare14(x0, x1, app(app(ty_@2, x2), x3)) 14.80/5.61 new_compare(x0, x1, ty_@0) 14.80/5.61 new_merge_pairs0([], x0) 14.80/5.61 new_compare4(x0, x1) 14.80/5.61 14.80/5.61 We have to consider all minimal (P,Q,R)-chains. 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (24) DependencyGraphProof (EQUIVALENT) 14.80/5.61 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (25) 14.80/5.61 Obligation: 14.80/5.61 Q DP problem: 14.80/5.61 The TRS P consists of the following rules: 14.80/5.61 14.80/5.61 new_mergesort'(vz78, :(vz790, :(vz7910, vz7911)), ba) -> new_mergesort'(new_merge1(vz78, vz790, vz7910, ba), new_merge_pairs0(vz7911, ba), ba) 14.80/5.61 14.80/5.61 The TRS R consists of the following rules: 14.80/5.61 14.80/5.61 new_compare1(vz780, vz7900, bb, bc) -> error([]) 14.80/5.61 new_primCmpNat0(Succ(vz81000), Zero) -> GT 14.80/5.61 new_compare4(vz780, vz7900) -> error([]) 14.80/5.61 new_compare11(vz780, vz7900) -> error([]) 14.80/5.61 new_primCmpNat0(Zero, Zero) -> EQ 14.80/5.61 new_compare(vz780, vz7900, ty_Float) -> new_compare0(vz780, vz7900) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Double) -> new_compare4(vz7900, vz79100) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Bool) -> new_compare10(vz7900, vz79100) 14.80/5.61 new_compare(vz780, vz7900, ty_Int) -> new_compare11(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, app(ty_Maybe, cc)) -> new_compare13(vz780, vz7900, cc) 14.80/5.61 new_compare14(vz7900, vz79100, ty_@0) -> new_compare12(vz7900, vz79100) 14.80/5.61 new_compare14(vz7900, vz79100, app(app(app(ty_@3, be), bf), bg)) -> new_compare6(vz7900, vz79100, be, bf, bg) 14.80/5.61 new_compare(vz780, vz7900, app(ty_[], bd)) -> new_compare5(vz780, vz7900, bd) 14.80/5.61 new_compare14(vz7900, vz79100, app(app(ty_Either, ca), cb)) -> new_compare9(vz7900, vz79100, ca, cb) 14.80/5.61 new_merge_pairs0(:(vz79110, []), ba) -> :(vz79110, []) 14.80/5.61 new_primCmpNat0(Succ(vz81000), Succ(vz80000)) -> new_primCmpNat0(vz81000, vz80000) 14.80/5.61 new_merge1(vz78, :(vz7900, vz7901), :(vz79100, vz79101), ba) -> new_merge2(vz78, new_merge00(vz79100, vz7900, vz7901, vz79101, new_compare14(vz7900, vz79100, ba), ba), ba) 14.80/5.61 new_compare3(Char(vz8100), Char(vz8000)) -> new_primCmpNat0(vz8100, vz8000) 14.80/5.61 new_compare14(vz7900, vz79100, app(ty_Ratio, bh)) -> new_compare8(vz7900, vz79100, bh) 14.80/5.61 new_compare(vz780, vz7900, ty_Ordering) -> new_compare7(vz780, vz7900) 14.80/5.61 new_compare5(vz780, vz7900, bd) -> error([]) 14.80/5.61 new_compare12(vz780, vz7900) -> error([]) 14.80/5.61 new_merge2([], :(vz7900, vz7901), ba) -> :(vz7900, vz7901) 14.80/5.61 new_compare0(vz780, vz7900) -> error([]) 14.80/5.61 new_compare6(vz780, vz7900, be, bf, bg) -> error([]) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Float) -> new_compare0(vz7900, vz79100) 14.80/5.61 new_compare(vz780, vz7900, app(app(ty_@2, bb), bc)) -> new_compare1(vz780, vz7900, bb, bc) 14.80/5.61 new_merge_pairs0(:(vz79110, :(vz791110, vz791111)), ba) -> :(new_merge2(vz79110, vz791110, ba), new_merge_pairs0(vz791111, ba)) 14.80/5.61 new_merge00(vz88, vz89, vz90, vz91, LT, cd) -> :(vz89, new_merge2(vz90, :(vz88, vz91), cd)) 14.80/5.61 new_compare7(vz780, vz7900) -> error([]) 14.80/5.61 new_compare(vz780, vz7900, app(app(ty_Either, ca), cb)) -> new_compare9(vz780, vz7900, ca, cb) 14.80/5.61 new_merge2(:(vz780, vz781), :(vz7900, vz7901), ba) -> new_merge00(vz7900, vz780, vz781, vz7901, new_compare(vz780, vz7900, ba), ba) 14.80/5.61 new_compare14(vz7900, vz79100, app(app(ty_@2, bb), bc)) -> new_compare1(vz7900, vz79100, bb, bc) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Int) -> new_compare11(vz7900, vz79100) 14.80/5.61 new_compare(vz780, vz7900, app(app(app(ty_@3, be), bf), bg)) -> new_compare6(vz780, vz7900, be, bf, bg) 14.80/5.61 new_compare(vz780, vz7900, ty_@0) -> new_compare12(vz780, vz7900) 14.80/5.61 new_merge2(vz78, [], ba) -> vz78 14.80/5.61 new_compare(vz780, vz7900, ty_Integer) -> new_compare2(vz780, vz7900) 14.80/5.61 new_compare13(vz780, vz7900, cc) -> error([]) 14.80/5.61 new_merge_pairs0([], ba) -> [] 14.80/5.61 new_compare14(vz7900, vz79100, app(ty_Maybe, cc)) -> new_compare13(vz7900, vz79100, cc) 14.80/5.61 new_merge1(vz78, [], :(vz79100, vz79101), ba) -> new_merge2(vz78, :(vz79100, vz79101), ba) 14.80/5.61 new_compare2(vz780, vz7900) -> error([]) 14.80/5.61 new_merge00(vz88, vz89, vz90, vz91, GT, cd) -> :(vz88, new_merge2(:(vz89, vz90), vz91, cd)) 14.80/5.61 new_compare9(vz780, vz7900, ca, cb) -> error([]) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Char) -> new_compare3(vz7900, vz79100) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Integer) -> new_compare2(vz7900, vz79100) 14.80/5.61 new_compare10(vz780, vz7900) -> error([]) 14.80/5.61 new_merge00(vz88, vz89, vz90, vz91, EQ, cd) -> :(vz89, new_merge2(vz90, :(vz88, vz91), cd)) 14.80/5.61 new_compare(vz780, vz7900, ty_Double) -> new_compare4(vz780, vz7900) 14.80/5.61 new_compare14(vz7900, vz79100, app(ty_[], bd)) -> new_compare5(vz7900, vz79100, bd) 14.80/5.61 new_primCmpNat0(Zero, Succ(vz80000)) -> LT 14.80/5.61 new_compare(vz780, vz7900, ty_Char) -> new_compare3(vz780, vz7900) 14.80/5.61 new_compare(vz780, vz7900, ty_Bool) -> new_compare10(vz780, vz7900) 14.80/5.61 new_compare8(vz780, vz7900, bh) -> error([]) 14.80/5.61 new_merge1(vz78, vz790, [], ba) -> new_merge2(vz78, vz790, ba) 14.80/5.61 new_compare14(vz7900, vz79100, ty_Ordering) -> new_compare7(vz7900, vz79100) 14.80/5.61 new_compare(vz780, vz7900, app(ty_Ratio, bh)) -> new_compare8(vz780, vz7900, bh) 14.80/5.61 14.80/5.61 The set Q consists of the following terms: 14.80/5.61 14.80/5.61 new_compare14(x0, x1, ty_Int) 14.80/5.61 new_merge00(x0, x1, x2, x3, EQ, x4) 14.80/5.61 new_merge1(x0, :(x1, x2), :(x3, x4), x5) 14.80/5.61 new_compare(x0, x1, ty_Integer) 14.80/5.61 new_merge00(x0, x1, x2, x3, GT, x4) 14.80/5.61 new_primCmpNat0(Zero, Succ(x0)) 14.80/5.61 new_merge2([], :(x0, x1), x2) 14.80/5.61 new_compare(x0, x1, app(ty_[], x2)) 14.80/5.61 new_compare14(x0, x1, app(ty_Ratio, x2)) 14.80/5.61 new_compare(x0, x1, ty_Float) 14.80/5.61 new_compare13(x0, x1, x2) 14.80/5.61 new_compare12(x0, x1) 14.80/5.61 new_merge2(x0, [], x1) 14.80/5.61 new_compare6(x0, x1, x2, x3, x4) 14.80/5.61 new_merge_pairs0(:(x0, []), x1) 14.80/5.61 new_compare14(x0, x1, ty_Integer) 14.80/5.61 new_compare(x0, x1, app(ty_Maybe, x2)) 14.80/5.61 new_compare(x0, x1, ty_Char) 14.80/5.61 new_merge00(x0, x1, x2, x3, LT, x4) 14.80/5.61 new_compare14(x0, x1, app(ty_Maybe, x2)) 14.80/5.61 new_compare14(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.80/5.61 new_merge2(:(x0, x1), :(x2, x3), x4) 14.80/5.61 new_compare9(x0, x1, x2, x3) 14.80/5.61 new_compare(x0, x1, ty_Double) 14.80/5.61 new_merge1(x0, x1, [], x2) 14.80/5.61 new_compare10(x0, x1) 14.80/5.61 new_compare14(x0, x1, ty_Float) 14.80/5.61 new_primCmpNat0(Succ(x0), Succ(x1)) 14.80/5.61 new_compare5(x0, x1, x2) 14.80/5.61 new_compare0(x0, x1) 14.80/5.61 new_compare14(x0, x1, ty_Bool) 14.80/5.61 new_compare(x0, x1, app(ty_Ratio, x2)) 14.80/5.61 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.80/5.61 new_compare14(x0, x1, ty_Double) 14.80/5.61 new_compare1(x0, x1, x2, x3) 14.80/5.61 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.80/5.61 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.80/5.61 new_merge1(x0, [], :(x1, x2), x3) 14.80/5.61 new_compare11(x0, x1) 14.80/5.61 new_compare8(x0, x1, x2) 14.80/5.61 new_compare14(x0, x1, ty_Char) 14.80/5.61 new_primCmpNat0(Succ(x0), Zero) 14.80/5.61 new_compare(x0, x1, ty_Bool) 14.80/5.61 new_compare2(x0, x1) 14.80/5.61 new_compare(x0, x1, ty_Int) 14.80/5.61 new_compare7(x0, x1) 14.80/5.61 new_merge_pairs0(:(x0, :(x1, x2)), x3) 14.80/5.61 new_compare14(x0, x1, app(app(ty_Either, x2), x3)) 14.80/5.61 new_compare3(Char(x0), Char(x1)) 14.80/5.61 new_compare14(x0, x1, ty_@0) 14.80/5.61 new_compare14(x0, x1, ty_Ordering) 14.80/5.61 new_compare14(x0, x1, app(ty_[], x2)) 14.80/5.61 new_compare(x0, x1, ty_Ordering) 14.80/5.61 new_primCmpNat0(Zero, Zero) 14.80/5.61 new_compare14(x0, x1, app(app(ty_@2, x2), x3)) 14.80/5.61 new_compare(x0, x1, ty_@0) 14.80/5.61 new_merge_pairs0([], x0) 14.80/5.61 new_compare4(x0, x1) 14.80/5.61 14.80/5.61 We have to consider all minimal (P,Q,R)-chains. 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (26) QDPSizeChangeProof (EQUIVALENT) 14.80/5.61 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.80/5.61 14.80/5.61 Order:Polynomial interpretation [POLO]: 14.80/5.61 14.80/5.61 POL(:(x_1, x_2)) = 1 + x_2 14.80/5.61 POL(EQ) = 0 14.80/5.61 POL(GT) = 1 14.80/5.61 POL(LT) = 1 14.80/5.61 POL(Succ(x_1)) = 1 + x_1 14.80/5.61 POL(Zero) = 0 14.80/5.61 POL([]) = 0 14.80/5.61 POL(new_merge2(x_1, x_2, x_3)) = x_1 14.80/5.61 POL(new_merge_pairs0(x_1, x_2)) = x_1 14.80/5.61 POL(new_primCmpNat0(x_1, x_2)) = 1 + x_1 + x_2 14.80/5.61 14.80/5.61 14.80/5.61 14.80/5.61 14.80/5.61 From the DPs we obtained the following set of size-change graphs: 14.80/5.61 *new_mergesort'(vz78, :(vz790, :(vz7910, vz7911)), ba) -> new_mergesort'(new_merge1(vz78, vz790, vz7910, ba), new_merge_pairs0(vz7911, ba), ba) (allowed arguments on rhs = {2, 3}) 14.80/5.61 The graph contains the following edges 2 > 2, 3 >= 3 14.80/5.61 14.80/5.61 14.80/5.61 14.80/5.61 We oriented the following set of usable rules [AAECC05,FROCOS05]. 14.80/5.61 14.80/5.61 new_merge_pairs0([], ba) -> [] 14.80/5.61 new_merge_pairs0(:(vz79110, []), ba) -> :(vz79110, []) 14.80/5.61 new_merge_pairs0(:(vz79110, :(vz791110, vz791111)), ba) -> :(new_merge2(vz79110, vz791110, ba), new_merge_pairs0(vz791111, ba)) 14.80/5.61 14.80/5.61 ---------------------------------------- 14.80/5.61 14.80/5.61 (27) 14.80/5.61 YES 14.80/5.64 EOF