11.80/4.95 YES 14.05/5.58 proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs 14.05/5.58 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 14.05/5.58 14.05/5.58 14.05/5.58 H-Termination with start terms of the given HASKELL could be proven: 14.05/5.58 14.05/5.58 (0) HASKELL 14.05/5.58 (1) CR [EQUIVALENT, 0 ms] 14.05/5.58 (2) HASKELL 14.05/5.58 (3) BR [EQUIVALENT, 0 ms] 14.05/5.58 (4) HASKELL 14.05/5.58 (5) COR [EQUIVALENT, 17 ms] 14.05/5.58 (6) HASKELL 14.05/5.58 (7) Narrow [SOUND, 0 ms] 14.05/5.58 (8) AND 14.05/5.58 (9) QDP 14.05/5.58 (10) QDPSizeChangeProof [EQUIVALENT, 1 ms] 14.05/5.58 (11) YES 14.05/5.58 (12) QDP 14.05/5.58 (13) DependencyGraphProof [EQUIVALENT, 0 ms] 14.05/5.58 (14) QDP 14.05/5.58 (15) QDPSizeChangeProof [EQUIVALENT, 20 ms] 14.05/5.58 (16) YES 14.05/5.58 (17) QDP 14.05/5.58 (18) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.05/5.58 (19) YES 14.05/5.58 (20) QDP 14.05/5.58 (21) TransformationProof [EQUIVALENT, 0 ms] 14.05/5.58 (22) QDP 14.05/5.58 (23) DependencyGraphProof [EQUIVALENT, 0 ms] 14.05/5.58 (24) QDP 14.05/5.58 (25) UsableRulesProof [EQUIVALENT, 0 ms] 14.05/5.58 (26) QDP 14.05/5.58 (27) QReductionProof [EQUIVALENT, 0 ms] 14.05/5.58 (28) QDP 14.05/5.58 (29) TransformationProof [EQUIVALENT, 0 ms] 14.05/5.58 (30) QDP 14.05/5.58 (31) UsableRulesProof [EQUIVALENT, 0 ms] 14.05/5.58 (32) QDP 14.05/5.58 (33) QReductionProof [EQUIVALENT, 1 ms] 14.05/5.58 (34) QDP 14.05/5.58 (35) TransformationProof [EQUIVALENT, 0 ms] 14.05/5.58 (36) QDP 14.05/5.58 (37) TransformationProof [EQUIVALENT, 0 ms] 14.05/5.58 (38) QDP 14.05/5.58 (39) TransformationProof [EQUIVALENT, 0 ms] 14.05/5.58 (40) QDP 14.05/5.58 (41) DependencyGraphProof [EQUIVALENT, 0 ms] 14.05/5.58 (42) AND 14.05/5.58 (43) QDP 14.05/5.58 (44) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.05/5.58 (45) YES 14.05/5.58 (46) QDP 14.05/5.58 (47) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.05/5.58 (48) YES 14.05/5.58 (49) QDP 14.05/5.58 (50) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.05/5.58 (51) YES 14.05/5.58 (52) QDP 14.05/5.58 (53) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.05/5.58 (54) YES 14.05/5.58 (55) QDP 14.05/5.58 (56) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.05/5.58 (57) YES 14.05/5.58 14.05/5.58 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (0) 14.05/5.58 Obligation: 14.05/5.58 mainModule Main 14.05/5.58 module Maybe where { 14.05/5.58 import qualified List; 14.05/5.58 import qualified Main; 14.05/5.58 import qualified Prelude; 14.05/5.58 } 14.05/5.58 module List where { 14.05/5.58 import qualified Main; 14.05/5.58 import qualified Maybe; 14.05/5.58 import qualified Prelude; 14.05/5.58 merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; 14.05/5.58 merge cmp xs [] = xs; 14.05/5.58 merge cmp [] ys = ys; 14.05/5.58 merge cmp (x : xs) (y : ys) = case x `cmp` y of { 14.05/5.58 GT-> y : merge cmp (x : xs) ys; 14.05/5.58 _-> x : merge cmp xs (y : ys); 14.05/5.58 } ; 14.05/5.58 14.05/5.58 merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; 14.05/5.58 merge_pairs cmp [] = []; 14.05/5.58 merge_pairs cmp (xs : []) = xs : []; 14.05/5.58 merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; 14.05/5.58 14.05/5.58 mergesort :: (a -> a -> Ordering) -> [a] -> [a]; 14.05/5.58 mergesort cmp = mergesort' cmp . map wrap; 14.05/5.58 14.05/5.58 mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; 14.05/5.58 mergesort' cmp [] = []; 14.05/5.58 mergesort' cmp (xs : []) = xs; 14.05/5.58 mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); 14.05/5.58 14.05/5.58 sort :: Ord a => [a] -> [a]; 14.05/5.58 sort l = mergesort compare l; 14.05/5.58 14.05/5.58 wrap :: a -> [a]; 14.05/5.58 wrap x = x : []; 14.05/5.58 14.05/5.58 } 14.05/5.58 module Main where { 14.05/5.58 import qualified List; 14.05/5.58 import qualified Maybe; 14.05/5.58 import qualified Prelude; 14.05/5.58 } 14.05/5.58 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (1) CR (EQUIVALENT) 14.05/5.58 Case Reductions: 14.05/5.58 The following Case expression 14.05/5.58 "case cmp x y of { 14.05/5.58 GT -> y : merge cmp (x : xs) ys; 14.05/5.58 _ -> x : merge cmp xs (y : ys)} 14.05/5.58 " 14.05/5.58 is transformed to 14.05/5.58 "merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; 14.05/5.58 merge0 y cmp x xs ys _ = x : merge cmp xs (y : ys); 14.05/5.58 " 14.05/5.58 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (2) 14.05/5.58 Obligation: 14.05/5.58 mainModule Main 14.05/5.58 module Maybe where { 14.05/5.58 import qualified List; 14.05/5.58 import qualified Main; 14.05/5.58 import qualified Prelude; 14.05/5.58 } 14.05/5.58 module List where { 14.05/5.58 import qualified Main; 14.05/5.58 import qualified Maybe; 14.05/5.58 import qualified Prelude; 14.05/5.58 merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; 14.05/5.58 merge cmp xs [] = xs; 14.05/5.58 merge cmp [] ys = ys; 14.05/5.58 merge cmp (x : xs) (y : ys) = merge0 y cmp x xs ys (x `cmp` y); 14.05/5.58 14.05/5.58 merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; 14.05/5.58 merge0 y cmp x xs ys _ = x : merge cmp xs (y : ys); 14.05/5.58 14.05/5.58 merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; 14.05/5.58 merge_pairs cmp [] = []; 14.05/5.58 merge_pairs cmp (xs : []) = xs : []; 14.05/5.58 merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; 14.05/5.58 14.05/5.58 mergesort :: (a -> a -> Ordering) -> [a] -> [a]; 14.05/5.58 mergesort cmp = mergesort' cmp . map wrap; 14.05/5.58 14.05/5.58 mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; 14.05/5.58 mergesort' cmp [] = []; 14.05/5.58 mergesort' cmp (xs : []) = xs; 14.05/5.58 mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); 14.05/5.58 14.05/5.58 sort :: Ord a => [a] -> [a]; 14.05/5.58 sort l = mergesort compare l; 14.05/5.58 14.05/5.58 wrap :: a -> [a]; 14.05/5.58 wrap x = x : []; 14.05/5.58 14.05/5.58 } 14.05/5.58 module Main where { 14.05/5.58 import qualified List; 14.05/5.58 import qualified Maybe; 14.05/5.58 import qualified Prelude; 14.05/5.58 } 14.05/5.58 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (3) BR (EQUIVALENT) 14.05/5.58 Replaced joker patterns by fresh variables and removed binding patterns. 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (4) 14.05/5.58 Obligation: 14.05/5.58 mainModule Main 14.05/5.58 module Maybe where { 14.05/5.58 import qualified List; 14.05/5.58 import qualified Main; 14.05/5.58 import qualified Prelude; 14.05/5.58 } 14.05/5.58 module List where { 14.05/5.58 import qualified Main; 14.05/5.58 import qualified Maybe; 14.05/5.58 import qualified Prelude; 14.05/5.58 merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; 14.05/5.58 merge cmp xs [] = xs; 14.05/5.58 merge cmp [] ys = ys; 14.05/5.58 merge cmp (x : xs) (y : ys) = merge0 y cmp x xs ys (x `cmp` y); 14.05/5.58 14.05/5.58 merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; 14.05/5.58 merge0 y cmp x xs ys vy = x : merge cmp xs (y : ys); 14.05/5.58 14.05/5.58 merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; 14.05/5.58 merge_pairs cmp [] = []; 14.05/5.58 merge_pairs cmp (xs : []) = xs : []; 14.05/5.58 merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; 14.05/5.58 14.05/5.58 mergesort :: (a -> a -> Ordering) -> [a] -> [a]; 14.05/5.58 mergesort cmp = mergesort' cmp . map wrap; 14.05/5.58 14.05/5.58 mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; 14.05/5.58 mergesort' cmp [] = []; 14.05/5.58 mergesort' cmp (xs : []) = xs; 14.05/5.58 mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); 14.05/5.58 14.05/5.58 sort :: Ord a => [a] -> [a]; 14.05/5.58 sort l = mergesort compare l; 14.05/5.58 14.05/5.58 wrap :: a -> [a]; 14.05/5.58 wrap x = x : []; 14.05/5.58 14.05/5.58 } 14.05/5.58 module Main where { 14.05/5.58 import qualified List; 14.05/5.58 import qualified Maybe; 14.05/5.58 import qualified Prelude; 14.05/5.58 } 14.05/5.58 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (5) COR (EQUIVALENT) 14.05/5.58 Cond Reductions: 14.05/5.58 The following Function with conditions 14.05/5.58 "compare x y|x == yEQ|x <= yLT|otherwiseGT; 14.05/5.58 " 14.05/5.58 is transformed to 14.05/5.58 "compare x y = compare3 x y; 14.05/5.58 " 14.05/5.58 "compare1 x y True = LT; 14.05/5.58 compare1 x y False = compare0 x y otherwise; 14.05/5.58 " 14.05/5.58 "compare0 x y True = GT; 14.05/5.58 " 14.05/5.58 "compare2 x y True = EQ; 14.05/5.58 compare2 x y False = compare1 x y (x <= y); 14.05/5.58 " 14.05/5.58 "compare3 x y = compare2 x y (x == y); 14.05/5.58 " 14.05/5.58 The following Function with conditions 14.05/5.58 "undefined |Falseundefined; 14.05/5.58 " 14.05/5.58 is transformed to 14.05/5.58 "undefined = undefined1; 14.05/5.58 " 14.05/5.58 "undefined0 True = undefined; 14.05/5.58 " 14.05/5.58 "undefined1 = undefined0 False; 14.05/5.58 " 14.05/5.58 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (6) 14.05/5.58 Obligation: 14.05/5.58 mainModule Main 14.05/5.58 module Maybe where { 14.05/5.58 import qualified List; 14.05/5.58 import qualified Main; 14.05/5.58 import qualified Prelude; 14.05/5.58 } 14.05/5.58 module List where { 14.05/5.58 import qualified Main; 14.05/5.58 import qualified Maybe; 14.05/5.58 import qualified Prelude; 14.05/5.58 merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; 14.05/5.58 merge cmp xs [] = xs; 14.05/5.58 merge cmp [] ys = ys; 14.05/5.58 merge cmp (x : xs) (y : ys) = merge0 y cmp x xs ys (x `cmp` y); 14.05/5.58 14.05/5.58 merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; 14.05/5.58 merge0 y cmp x xs ys vy = x : merge cmp xs (y : ys); 14.05/5.58 14.05/5.58 merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; 14.05/5.58 merge_pairs cmp [] = []; 14.05/5.58 merge_pairs cmp (xs : []) = xs : []; 14.05/5.58 merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; 14.05/5.58 14.05/5.58 mergesort :: (a -> a -> Ordering) -> [a] -> [a]; 14.05/5.58 mergesort cmp = mergesort' cmp . map wrap; 14.05/5.58 14.05/5.58 mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; 14.05/5.58 mergesort' cmp [] = []; 14.05/5.58 mergesort' cmp (xs : []) = xs; 14.05/5.58 mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); 14.05/5.58 14.05/5.58 sort :: Ord a => [a] -> [a]; 14.05/5.58 sort l = mergesort compare l; 14.05/5.58 14.05/5.58 wrap :: a -> [a]; 14.05/5.58 wrap x = x : []; 14.05/5.58 14.05/5.58 } 14.05/5.58 module Main where { 14.05/5.58 import qualified List; 14.05/5.58 import qualified Maybe; 14.05/5.58 import qualified Prelude; 14.05/5.58 } 14.05/5.58 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (7) Narrow (SOUND) 14.05/5.58 Haskell To QDPs 14.05/5.58 14.05/5.58 digraph dp_graph { 14.05/5.58 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.05/5.58 3[label="List.sort vz3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 14.05/5.58 4[label="List.mergesort compare vz3",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 14.05/5.58 5[label="(List.mergesort' compare) . map List.wrap",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 14.05/5.58 6[label="List.mergesort' compare (map List.wrap vz3)",fontsize=16,color="burlywood",shape="box"];852[label="vz3/vz30 : vz31",fontsize=10,color="white",style="solid",shape="box"];6 -> 852[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 852 -> 7[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 853[label="vz3/[]",fontsize=10,color="white",style="solid",shape="box"];6 -> 853[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 853 -> 8[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 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.05/5.58 8[label="List.mergesort' compare (map List.wrap [])",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 14.05/5.58 9[label="List.mergesort' compare (List.wrap vz30 : map List.wrap vz31)",fontsize=16,color="burlywood",shape="box"];854[label="vz31/vz310 : vz311",fontsize=10,color="white",style="solid",shape="box"];9 -> 854[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 854 -> 11[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 855[label="vz31/[]",fontsize=10,color="white",style="solid",shape="box"];9 -> 855[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 855 -> 12[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 10[label="List.mergesort' compare []",fontsize=16,color="black",shape="box"];10 -> 13[label="",style="solid", color="black", weight=3]; 14.05/5.58 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.05/5.58 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.05/5.58 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.05/5.58 15[label="List.mergesort' compare (List.wrap vz30 : [])",fontsize=16,color="black",shape="box"];15 -> 17[label="",style="solid", color="black", weight=3]; 14.05/5.58 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.05/5.58 17[label="List.wrap vz30",fontsize=16,color="black",shape="triangle"];17 -> 19[label="",style="solid", color="black", weight=3]; 14.05/5.58 18 -> 324[label="",style="dashed", color="red", weight=0]; 14.05/5.58 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 -> 325[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 18 -> 326[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 19[label="vz30 : []",fontsize=16,color="green",shape="box"];325 -> 479[label="",style="dashed", color="red", weight=0]; 14.05/5.58 325[label="List.merge compare (List.wrap vz30) (List.wrap vz310)",fontsize=16,color="magenta"];325 -> 480[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 325 -> 481[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 326[label="map List.wrap vz311",fontsize=16,color="burlywood",shape="triangle"];856[label="vz311/vz3110 : vz3111",fontsize=10,color="white",style="solid",shape="box"];326 -> 856[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 856 -> 482[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 857[label="vz311/[]",fontsize=10,color="white",style="solid",shape="box"];326 -> 857[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 857 -> 483[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 324[label="List.mergesort' compare (vz34 : List.merge_pairs compare vz35)",fontsize=16,color="burlywood",shape="triangle"];858[label="vz35/vz350 : vz351",fontsize=10,color="white",style="solid",shape="box"];324 -> 858[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 858 -> 484[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 859[label="vz35/[]",fontsize=10,color="white",style="solid",shape="box"];324 -> 859[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 859 -> 485[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 480 -> 17[label="",style="dashed", color="red", weight=0]; 14.05/5.58 480[label="List.wrap vz30",fontsize=16,color="magenta"];481 -> 17[label="",style="dashed", color="red", weight=0]; 14.05/5.58 481[label="List.wrap vz310",fontsize=16,color="magenta"];481 -> 486[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 479[label="List.merge compare vz37 vz36",fontsize=16,color="burlywood",shape="triangle"];860[label="vz36/vz360 : vz361",fontsize=10,color="white",style="solid",shape="box"];479 -> 860[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 860 -> 487[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 861[label="vz36/[]",fontsize=10,color="white",style="solid",shape="box"];479 -> 861[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 861 -> 488[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 482[label="map List.wrap (vz3110 : vz3111)",fontsize=16,color="black",shape="box"];482 -> 489[label="",style="solid", color="black", weight=3]; 14.05/5.58 483[label="map List.wrap []",fontsize=16,color="black",shape="box"];483 -> 490[label="",style="solid", color="black", weight=3]; 14.05/5.58 484[label="List.mergesort' compare (vz34 : List.merge_pairs compare (vz350 : vz351))",fontsize=16,color="burlywood",shape="box"];862[label="vz351/vz3510 : vz3511",fontsize=10,color="white",style="solid",shape="box"];484 -> 862[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 862 -> 491[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 863[label="vz351/[]",fontsize=10,color="white",style="solid",shape="box"];484 -> 863[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 863 -> 492[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 485[label="List.mergesort' compare (vz34 : List.merge_pairs compare [])",fontsize=16,color="black",shape="box"];485 -> 493[label="",style="solid", color="black", weight=3]; 14.05/5.58 486[label="vz310",fontsize=16,color="green",shape="box"];487[label="List.merge compare vz37 (vz360 : vz361)",fontsize=16,color="burlywood",shape="box"];864[label="vz37/vz370 : vz371",fontsize=10,color="white",style="solid",shape="box"];487 -> 864[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 864 -> 494[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 865[label="vz37/[]",fontsize=10,color="white",style="solid",shape="box"];487 -> 865[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 865 -> 495[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 488[label="List.merge compare vz37 []",fontsize=16,color="black",shape="box"];488 -> 496[label="",style="solid", color="black", weight=3]; 14.05/5.58 489[label="List.wrap vz3110 : map List.wrap vz3111",fontsize=16,color="green",shape="box"];489 -> 497[label="",style="dashed", color="green", weight=3]; 14.05/5.58 489 -> 498[label="",style="dashed", color="green", weight=3]; 14.05/5.58 490[label="[]",fontsize=16,color="green",shape="box"];491[label="List.mergesort' compare (vz34 : List.merge_pairs compare (vz350 : vz3510 : vz3511))",fontsize=16,color="black",shape="box"];491 -> 499[label="",style="solid", color="black", weight=3]; 14.05/5.58 492[label="List.mergesort' compare (vz34 : List.merge_pairs compare (vz350 : []))",fontsize=16,color="black",shape="box"];492 -> 500[label="",style="solid", color="black", weight=3]; 14.05/5.58 493[label="List.mergesort' compare (vz34 : [])",fontsize=16,color="black",shape="box"];493 -> 501[label="",style="solid", color="black", weight=3]; 14.05/5.58 494[label="List.merge compare (vz370 : vz371) (vz360 : vz361)",fontsize=16,color="black",shape="box"];494 -> 502[label="",style="solid", color="black", weight=3]; 14.05/5.58 495[label="List.merge compare [] (vz360 : vz361)",fontsize=16,color="black",shape="box"];495 -> 503[label="",style="solid", color="black", weight=3]; 14.05/5.58 496[label="vz37",fontsize=16,color="green",shape="box"];497 -> 17[label="",style="dashed", color="red", weight=0]; 14.05/5.58 497[label="List.wrap vz3110",fontsize=16,color="magenta"];497 -> 504[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 498 -> 326[label="",style="dashed", color="red", weight=0]; 14.05/5.58 498[label="map List.wrap vz3111",fontsize=16,color="magenta"];498 -> 505[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 499[label="List.mergesort' compare (vz34 : List.merge compare vz350 vz3510 : List.merge_pairs compare vz3511)",fontsize=16,color="black",shape="box"];499 -> 506[label="",style="solid", color="black", weight=3]; 14.05/5.58 500[label="List.mergesort' compare (vz34 : vz350 : [])",fontsize=16,color="black",shape="box"];500 -> 507[label="",style="solid", color="black", weight=3]; 14.05/5.58 501[label="vz34",fontsize=16,color="green",shape="box"];502 -> 571[label="",style="dashed", color="red", weight=0]; 14.05/5.58 502[label="List.merge0 vz360 compare vz370 vz371 vz361 (compare vz370 vz360)",fontsize=16,color="magenta"];502 -> 572[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 502 -> 573[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 502 -> 574[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 502 -> 575[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 502 -> 576[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 503[label="vz360 : vz361",fontsize=16,color="green",shape="box"];504[label="vz3110",fontsize=16,color="green",shape="box"];505[label="vz3111",fontsize=16,color="green",shape="box"];506[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"];506 -> 509[label="",style="solid", color="black", weight=3]; 14.05/5.58 507[label="List.mergesort' compare (List.merge_pairs compare (vz34 : vz350 : []))",fontsize=16,color="black",shape="box"];507 -> 510[label="",style="solid", color="black", weight=3]; 14.05/5.58 572[label="compare vz370 vz360",fontsize=16,color="black",shape="triangle"];572 -> 687[label="",style="solid", color="black", weight=3]; 14.05/5.58 573[label="vz361",fontsize=16,color="green",shape="box"];574[label="vz370",fontsize=16,color="green",shape="box"];575[label="vz360",fontsize=16,color="green",shape="box"];576[label="vz371",fontsize=16,color="green",shape="box"];571[label="List.merge0 vz44 compare vz45 vz46 vz47 vz48",fontsize=16,color="burlywood",shape="triangle"];866[label="vz48/LT",fontsize=10,color="white",style="solid",shape="box"];571 -> 866[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 866 -> 688[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 867[label="vz48/EQ",fontsize=10,color="white",style="solid",shape="box"];571 -> 867[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 867 -> 689[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 868[label="vz48/GT",fontsize=10,color="white",style="solid",shape="box"];571 -> 868[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 868 -> 690[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 509 -> 324[label="",style="dashed", color="red", weight=0]; 14.05/5.58 509[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"];509 -> 512[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 509 -> 513[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 510 -> 324[label="",style="dashed", color="red", weight=0]; 14.05/5.58 510[label="List.mergesort' compare (List.merge compare vz34 vz350 : List.merge_pairs compare [])",fontsize=16,color="magenta"];510 -> 514[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 510 -> 515[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 687[label="compare3 vz370 vz360",fontsize=16,color="black",shape="box"];687 -> 722[label="",style="solid", color="black", weight=3]; 14.05/5.58 688[label="List.merge0 vz44 compare vz45 vz46 vz47 LT",fontsize=16,color="black",shape="box"];688 -> 723[label="",style="solid", color="black", weight=3]; 14.05/5.58 689[label="List.merge0 vz44 compare vz45 vz46 vz47 EQ",fontsize=16,color="black",shape="box"];689 -> 724[label="",style="solid", color="black", weight=3]; 14.05/5.58 690[label="List.merge0 vz44 compare vz45 vz46 vz47 GT",fontsize=16,color="black",shape="box"];690 -> 725[label="",style="solid", color="black", weight=3]; 14.05/5.58 512[label="List.merge compare vz34 (List.merge compare vz350 vz3510)",fontsize=16,color="burlywood",shape="box"];869[label="vz3510/vz35100 : vz35101",fontsize=10,color="white",style="solid",shape="box"];512 -> 869[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 869 -> 519[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 870[label="vz3510/[]",fontsize=10,color="white",style="solid",shape="box"];512 -> 870[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 870 -> 520[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 513[label="List.merge_pairs compare vz3511",fontsize=16,color="burlywood",shape="triangle"];871[label="vz3511/vz35110 : vz35111",fontsize=10,color="white",style="solid",shape="box"];513 -> 871[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 871 -> 521[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 872[label="vz3511/[]",fontsize=10,color="white",style="solid",shape="box"];513 -> 872[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 872 -> 522[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 514[label="List.merge compare vz34 vz350",fontsize=16,color="burlywood",shape="triangle"];873[label="vz350/vz3500 : vz3501",fontsize=10,color="white",style="solid",shape="box"];514 -> 873[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 873 -> 523[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 874[label="vz350/[]",fontsize=10,color="white",style="solid",shape="box"];514 -> 874[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 874 -> 524[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 515[label="[]",fontsize=16,color="green",shape="box"];722[label="compare2 vz370 vz360 (vz370 == vz360)",fontsize=16,color="burlywood",shape="box"];875[label="vz370/LT",fontsize=10,color="white",style="solid",shape="box"];722 -> 875[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 875 -> 769[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 876[label="vz370/EQ",fontsize=10,color="white",style="solid",shape="box"];722 -> 876[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 876 -> 770[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 877[label="vz370/GT",fontsize=10,color="white",style="solid",shape="box"];722 -> 877[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 877 -> 771[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 723[label="vz45 : List.merge compare vz46 (vz44 : vz47)",fontsize=16,color="green",shape="box"];723 -> 772[label="",style="dashed", color="green", weight=3]; 14.05/5.58 724[label="vz45 : List.merge compare vz46 (vz44 : vz47)",fontsize=16,color="green",shape="box"];724 -> 773[label="",style="dashed", color="green", weight=3]; 14.05/5.58 725[label="vz44 : List.merge compare (vz45 : vz46) vz47",fontsize=16,color="green",shape="box"];725 -> 774[label="",style="dashed", color="green", weight=3]; 14.05/5.58 519[label="List.merge compare vz34 (List.merge compare vz350 (vz35100 : vz35101))",fontsize=16,color="burlywood",shape="box"];878[label="vz350/vz3500 : vz3501",fontsize=10,color="white",style="solid",shape="box"];519 -> 878[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 878 -> 534[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 879[label="vz350/[]",fontsize=10,color="white",style="solid",shape="box"];519 -> 879[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 879 -> 535[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 520[label="List.merge compare vz34 (List.merge compare vz350 [])",fontsize=16,color="black",shape="box"];520 -> 536[label="",style="solid", color="black", weight=3]; 14.05/5.58 521[label="List.merge_pairs compare (vz35110 : vz35111)",fontsize=16,color="burlywood",shape="box"];880[label="vz35111/vz351110 : vz351111",fontsize=10,color="white",style="solid",shape="box"];521 -> 880[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 880 -> 537[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 881[label="vz35111/[]",fontsize=10,color="white",style="solid",shape="box"];521 -> 881[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 881 -> 538[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 522[label="List.merge_pairs compare []",fontsize=16,color="black",shape="box"];522 -> 539[label="",style="solid", color="black", weight=3]; 14.05/5.58 523[label="List.merge compare vz34 (vz3500 : vz3501)",fontsize=16,color="burlywood",shape="box"];882[label="vz34/vz340 : vz341",fontsize=10,color="white",style="solid",shape="box"];523 -> 882[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 882 -> 540[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 883[label="vz34/[]",fontsize=10,color="white",style="solid",shape="box"];523 -> 883[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 883 -> 541[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 524[label="List.merge compare vz34 []",fontsize=16,color="black",shape="box"];524 -> 542[label="",style="solid", color="black", weight=3]; 14.05/5.58 769[label="compare2 LT vz360 (LT == vz360)",fontsize=16,color="burlywood",shape="box"];884[label="vz360/LT",fontsize=10,color="white",style="solid",shape="box"];769 -> 884[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 884 -> 788[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 885[label="vz360/EQ",fontsize=10,color="white",style="solid",shape="box"];769 -> 885[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 885 -> 789[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 886[label="vz360/GT",fontsize=10,color="white",style="solid",shape="box"];769 -> 886[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 886 -> 790[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 770[label="compare2 EQ vz360 (EQ == vz360)",fontsize=16,color="burlywood",shape="box"];887[label="vz360/LT",fontsize=10,color="white",style="solid",shape="box"];770 -> 887[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 887 -> 791[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 888[label="vz360/EQ",fontsize=10,color="white",style="solid",shape="box"];770 -> 888[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 888 -> 792[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 889[label="vz360/GT",fontsize=10,color="white",style="solid",shape="box"];770 -> 889[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 889 -> 793[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 771[label="compare2 GT vz360 (GT == vz360)",fontsize=16,color="burlywood",shape="box"];890[label="vz360/LT",fontsize=10,color="white",style="solid",shape="box"];771 -> 890[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 890 -> 794[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 891[label="vz360/EQ",fontsize=10,color="white",style="solid",shape="box"];771 -> 891[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 891 -> 795[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 892[label="vz360/GT",fontsize=10,color="white",style="solid",shape="box"];771 -> 892[label="",style="solid", color="burlywood", weight=9]; 14.05/5.58 892 -> 796[label="",style="solid", color="burlywood", weight=3]; 14.05/5.58 772 -> 514[label="",style="dashed", color="red", weight=0]; 14.05/5.58 772[label="List.merge compare vz46 (vz44 : vz47)",fontsize=16,color="magenta"];772 -> 797[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 772 -> 798[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 773 -> 514[label="",style="dashed", color="red", weight=0]; 14.05/5.58 773[label="List.merge compare vz46 (vz44 : vz47)",fontsize=16,color="magenta"];773 -> 799[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 773 -> 800[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 774 -> 514[label="",style="dashed", color="red", weight=0]; 14.05/5.58 774[label="List.merge compare (vz45 : vz46) vz47",fontsize=16,color="magenta"];774 -> 801[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 774 -> 802[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 534[label="List.merge compare vz34 (List.merge compare (vz3500 : vz3501) (vz35100 : vz35101))",fontsize=16,color="black",shape="box"];534 -> 552[label="",style="solid", color="black", weight=3]; 14.05/5.58 535[label="List.merge compare vz34 (List.merge compare [] (vz35100 : vz35101))",fontsize=16,color="black",shape="box"];535 -> 553[label="",style="solid", color="black", weight=3]; 14.05/5.58 536 -> 514[label="",style="dashed", color="red", weight=0]; 14.05/5.58 536[label="List.merge compare vz34 vz350",fontsize=16,color="magenta"];537[label="List.merge_pairs compare (vz35110 : vz351110 : vz351111)",fontsize=16,color="black",shape="box"];537 -> 554[label="",style="solid", color="black", weight=3]; 14.05/5.58 538[label="List.merge_pairs compare (vz35110 : [])",fontsize=16,color="black",shape="box"];538 -> 555[label="",style="solid", color="black", weight=3]; 14.05/5.58 539[label="[]",fontsize=16,color="green",shape="box"];540[label="List.merge compare (vz340 : vz341) (vz3500 : vz3501)",fontsize=16,color="black",shape="box"];540 -> 556[label="",style="solid", color="black", weight=3]; 14.05/5.58 541[label="List.merge compare [] (vz3500 : vz3501)",fontsize=16,color="black",shape="box"];541 -> 557[label="",style="solid", color="black", weight=3]; 14.05/5.58 542[label="vz34",fontsize=16,color="green",shape="box"];788[label="compare2 LT LT (LT == LT)",fontsize=16,color="black",shape="box"];788 -> 816[label="",style="solid", color="black", weight=3]; 14.05/5.58 789[label="compare2 LT EQ (LT == EQ)",fontsize=16,color="black",shape="box"];789 -> 817[label="",style="solid", color="black", weight=3]; 14.05/5.58 790[label="compare2 LT GT (LT == GT)",fontsize=16,color="black",shape="box"];790 -> 818[label="",style="solid", color="black", weight=3]; 14.05/5.58 791[label="compare2 EQ LT (EQ == LT)",fontsize=16,color="black",shape="box"];791 -> 819[label="",style="solid", color="black", weight=3]; 14.05/5.58 792[label="compare2 EQ EQ (EQ == EQ)",fontsize=16,color="black",shape="box"];792 -> 820[label="",style="solid", color="black", weight=3]; 14.05/5.58 793[label="compare2 EQ GT (EQ == GT)",fontsize=16,color="black",shape="box"];793 -> 821[label="",style="solid", color="black", weight=3]; 14.05/5.58 794[label="compare2 GT LT (GT == LT)",fontsize=16,color="black",shape="box"];794 -> 822[label="",style="solid", color="black", weight=3]; 14.05/5.58 795[label="compare2 GT EQ (GT == EQ)",fontsize=16,color="black",shape="box"];795 -> 823[label="",style="solid", color="black", weight=3]; 14.05/5.58 796[label="compare2 GT GT (GT == GT)",fontsize=16,color="black",shape="box"];796 -> 824[label="",style="solid", color="black", weight=3]; 14.05/5.58 797[label="vz46",fontsize=16,color="green",shape="box"];798[label="vz44 : vz47",fontsize=16,color="green",shape="box"];799[label="vz46",fontsize=16,color="green",shape="box"];800[label="vz44 : vz47",fontsize=16,color="green",shape="box"];801[label="vz45 : vz46",fontsize=16,color="green",shape="box"];802[label="vz47",fontsize=16,color="green",shape="box"];552 -> 514[label="",style="dashed", color="red", weight=0]; 14.05/5.58 552[label="List.merge compare vz34 (List.merge0 vz35100 compare vz3500 vz3501 vz35101 (compare vz3500 vz35100))",fontsize=16,color="magenta"];552 -> 567[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 553 -> 514[label="",style="dashed", color="red", weight=0]; 14.05/5.58 553[label="List.merge compare vz34 (vz35100 : vz35101)",fontsize=16,color="magenta"];553 -> 568[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 554[label="List.merge compare vz35110 vz351110 : List.merge_pairs compare vz351111",fontsize=16,color="green",shape="box"];554 -> 569[label="",style="dashed", color="green", weight=3]; 14.05/5.58 554 -> 570[label="",style="dashed", color="green", weight=3]; 14.05/5.58 555[label="vz35110 : []",fontsize=16,color="green",shape="box"];556 -> 571[label="",style="dashed", color="red", weight=0]; 14.05/5.58 556[label="List.merge0 vz3500 compare vz340 vz341 vz3501 (compare vz340 vz3500)",fontsize=16,color="magenta"];556 -> 632[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 556 -> 633[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 556 -> 634[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 556 -> 635[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 556 -> 636[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 557[label="vz3500 : vz3501",fontsize=16,color="green",shape="box"];816[label="compare2 LT LT True",fontsize=16,color="black",shape="box"];816 -> 825[label="",style="solid", color="black", weight=3]; 14.05/5.58 817[label="compare2 LT EQ False",fontsize=16,color="black",shape="box"];817 -> 826[label="",style="solid", color="black", weight=3]; 14.05/5.58 818[label="compare2 LT GT False",fontsize=16,color="black",shape="box"];818 -> 827[label="",style="solid", color="black", weight=3]; 14.05/5.58 819[label="compare2 EQ LT False",fontsize=16,color="black",shape="box"];819 -> 828[label="",style="solid", color="black", weight=3]; 14.05/5.58 820[label="compare2 EQ EQ True",fontsize=16,color="black",shape="box"];820 -> 829[label="",style="solid", color="black", weight=3]; 14.05/5.58 821[label="compare2 EQ GT False",fontsize=16,color="black",shape="box"];821 -> 830[label="",style="solid", color="black", weight=3]; 14.05/5.58 822[label="compare2 GT LT False",fontsize=16,color="black",shape="box"];822 -> 831[label="",style="solid", color="black", weight=3]; 14.05/5.58 823[label="compare2 GT EQ False",fontsize=16,color="black",shape="box"];823 -> 832[label="",style="solid", color="black", weight=3]; 14.05/5.58 824[label="compare2 GT GT True",fontsize=16,color="black",shape="box"];824 -> 833[label="",style="solid", color="black", weight=3]; 14.05/5.58 567 -> 571[label="",style="dashed", color="red", weight=0]; 14.05/5.58 567[label="List.merge0 vz35100 compare vz3500 vz3501 vz35101 (compare vz3500 vz35100)",fontsize=16,color="magenta"];567 -> 682[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 567 -> 683[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 567 -> 684[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 567 -> 685[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 567 -> 686[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 568[label="vz35100 : vz35101",fontsize=16,color="green",shape="box"];569 -> 514[label="",style="dashed", color="red", weight=0]; 14.05/5.58 569[label="List.merge compare vz35110 vz351110",fontsize=16,color="magenta"];569 -> 691[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 569 -> 692[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 570 -> 513[label="",style="dashed", color="red", weight=0]; 14.05/5.58 570[label="List.merge_pairs compare vz351111",fontsize=16,color="magenta"];570 -> 693[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 632[label="compare vz340 vz3500",fontsize=16,color="blue",shape="box"];893[label="compare :: ([] a) -> ([] a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 893[label="",style="solid", color="blue", weight=9]; 14.05/5.58 893 -> 694[label="",style="solid", color="blue", weight=3]; 14.05/5.58 894[label="compare :: ((@2) a b) -> ((@2) a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 894[label="",style="solid", color="blue", weight=9]; 14.05/5.58 894 -> 695[label="",style="solid", color="blue", weight=3]; 14.05/5.58 895[label="compare :: Char -> Char -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 895[label="",style="solid", color="blue", weight=9]; 14.05/5.58 895 -> 696[label="",style="solid", color="blue", weight=3]; 14.05/5.58 896[label="compare :: ((@3) a b c) -> ((@3) a b c) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 896[label="",style="solid", color="blue", weight=9]; 14.05/5.58 896 -> 697[label="",style="solid", color="blue", weight=3]; 14.05/5.58 897[label="compare :: Ordering -> Ordering -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 897[label="",style="solid", color="blue", weight=9]; 14.05/5.58 897 -> 698[label="",style="solid", color="blue", weight=3]; 14.05/5.58 898[label="compare :: Bool -> Bool -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 898[label="",style="solid", color="blue", weight=9]; 14.05/5.58 898 -> 699[label="",style="solid", color="blue", weight=3]; 14.05/5.58 899[label="compare :: Integer -> Integer -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 899[label="",style="solid", color="blue", weight=9]; 14.05/5.58 899 -> 700[label="",style="solid", color="blue", weight=3]; 14.05/5.58 900[label="compare :: (Maybe a) -> (Maybe a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 900[label="",style="solid", color="blue", weight=9]; 14.05/5.58 900 -> 701[label="",style="solid", color="blue", weight=3]; 14.05/5.58 901[label="compare :: () -> () -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 901[label="",style="solid", color="blue", weight=9]; 14.05/5.58 901 -> 702[label="",style="solid", color="blue", weight=3]; 14.05/5.58 902[label="compare :: Int -> Int -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 902[label="",style="solid", color="blue", weight=9]; 14.05/5.58 902 -> 703[label="",style="solid", color="blue", weight=3]; 14.05/5.58 903[label="compare :: (Ratio a) -> (Ratio a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 903[label="",style="solid", color="blue", weight=9]; 14.05/5.58 903 -> 704[label="",style="solid", color="blue", weight=3]; 14.05/5.58 904[label="compare :: Float -> Float -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 904[label="",style="solid", color="blue", weight=9]; 14.05/5.58 904 -> 705[label="",style="solid", color="blue", weight=3]; 14.05/5.58 905[label="compare :: Double -> Double -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 905[label="",style="solid", color="blue", weight=9]; 14.05/5.58 905 -> 706[label="",style="solid", color="blue", weight=3]; 14.05/5.58 906[label="compare :: (Either a b) -> (Either a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];632 -> 906[label="",style="solid", color="blue", weight=9]; 14.05/5.58 906 -> 707[label="",style="solid", color="blue", weight=3]; 14.05/5.58 633[label="vz3501",fontsize=16,color="green",shape="box"];634[label="vz340",fontsize=16,color="green",shape="box"];635[label="vz3500",fontsize=16,color="green",shape="box"];636[label="vz341",fontsize=16,color="green",shape="box"];825[label="EQ",fontsize=16,color="green",shape="box"];826[label="compare1 LT EQ (LT <= EQ)",fontsize=16,color="black",shape="box"];826 -> 834[label="",style="solid", color="black", weight=3]; 14.05/5.58 827[label="compare1 LT GT (LT <= GT)",fontsize=16,color="black",shape="box"];827 -> 835[label="",style="solid", color="black", weight=3]; 14.05/5.58 828[label="compare1 EQ LT (EQ <= LT)",fontsize=16,color="black",shape="box"];828 -> 836[label="",style="solid", color="black", weight=3]; 14.05/5.58 829[label="EQ",fontsize=16,color="green",shape="box"];830[label="compare1 EQ GT (EQ <= GT)",fontsize=16,color="black",shape="box"];830 -> 837[label="",style="solid", color="black", weight=3]; 14.05/5.58 831[label="compare1 GT LT (GT <= LT)",fontsize=16,color="black",shape="box"];831 -> 838[label="",style="solid", color="black", weight=3]; 14.05/5.58 832[label="compare1 GT EQ (GT <= EQ)",fontsize=16,color="black",shape="box"];832 -> 839[label="",style="solid", color="black", weight=3]; 14.05/5.58 833[label="EQ",fontsize=16,color="green",shape="box"];682[label="compare vz3500 vz35100",fontsize=16,color="blue",shape="box"];907[label="compare :: ([] a) -> ([] a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 907[label="",style="solid", color="blue", weight=9]; 14.05/5.58 907 -> 708[label="",style="solid", color="blue", weight=3]; 14.05/5.58 908[label="compare :: ((@2) a b) -> ((@2) a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 908[label="",style="solid", color="blue", weight=9]; 14.05/5.58 908 -> 709[label="",style="solid", color="blue", weight=3]; 14.05/5.58 909[label="compare :: Char -> Char -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 909[label="",style="solid", color="blue", weight=9]; 14.05/5.58 909 -> 710[label="",style="solid", color="blue", weight=3]; 14.05/5.58 910[label="compare :: ((@3) a b c) -> ((@3) a b c) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 910[label="",style="solid", color="blue", weight=9]; 14.05/5.58 910 -> 711[label="",style="solid", color="blue", weight=3]; 14.05/5.58 911[label="compare :: Ordering -> Ordering -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 911[label="",style="solid", color="blue", weight=9]; 14.05/5.58 911 -> 712[label="",style="solid", color="blue", weight=3]; 14.05/5.58 912[label="compare :: Bool -> Bool -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 912[label="",style="solid", color="blue", weight=9]; 14.05/5.58 912 -> 713[label="",style="solid", color="blue", weight=3]; 14.05/5.58 913[label="compare :: Integer -> Integer -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 913[label="",style="solid", color="blue", weight=9]; 14.05/5.58 913 -> 714[label="",style="solid", color="blue", weight=3]; 14.05/5.58 914[label="compare :: (Maybe a) -> (Maybe a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 914[label="",style="solid", color="blue", weight=9]; 14.05/5.58 914 -> 715[label="",style="solid", color="blue", weight=3]; 14.05/5.58 915[label="compare :: () -> () -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 915[label="",style="solid", color="blue", weight=9]; 14.05/5.58 915 -> 716[label="",style="solid", color="blue", weight=3]; 14.05/5.58 916[label="compare :: Int -> Int -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 916[label="",style="solid", color="blue", weight=9]; 14.05/5.58 916 -> 717[label="",style="solid", color="blue", weight=3]; 14.05/5.58 917[label="compare :: (Ratio a) -> (Ratio a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 917[label="",style="solid", color="blue", weight=9]; 14.05/5.58 917 -> 718[label="",style="solid", color="blue", weight=3]; 14.05/5.58 918[label="compare :: Float -> Float -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 918[label="",style="solid", color="blue", weight=9]; 14.05/5.58 918 -> 719[label="",style="solid", color="blue", weight=3]; 14.05/5.58 919[label="compare :: Double -> Double -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 919[label="",style="solid", color="blue", weight=9]; 14.05/5.58 919 -> 720[label="",style="solid", color="blue", weight=3]; 14.05/5.58 920[label="compare :: (Either a b) -> (Either a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];682 -> 920[label="",style="solid", color="blue", weight=9]; 14.05/5.58 920 -> 721[label="",style="solid", color="blue", weight=3]; 14.05/5.58 683[label="vz35101",fontsize=16,color="green",shape="box"];684[label="vz3500",fontsize=16,color="green",shape="box"];685[label="vz35100",fontsize=16,color="green",shape="box"];686[label="vz3501",fontsize=16,color="green",shape="box"];691[label="vz35110",fontsize=16,color="green",shape="box"];692[label="vz351110",fontsize=16,color="green",shape="box"];693[label="vz351111",fontsize=16,color="green",shape="box"];694[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];694 -> 726[label="",style="solid", color="black", weight=3]; 14.05/5.58 695[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];695 -> 727[label="",style="solid", color="black", weight=3]; 14.05/5.58 696[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];696 -> 728[label="",style="solid", color="black", weight=3]; 14.05/5.58 697[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];697 -> 729[label="",style="solid", color="black", weight=3]; 14.05/5.58 698 -> 572[label="",style="dashed", color="red", weight=0]; 14.05/5.58 698[label="compare vz340 vz3500",fontsize=16,color="magenta"];698 -> 730[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 698 -> 731[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 699[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];699 -> 732[label="",style="solid", color="black", weight=3]; 14.05/5.58 700[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];700 -> 733[label="",style="solid", color="black", weight=3]; 14.05/5.58 701[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];701 -> 734[label="",style="solid", color="black", weight=3]; 14.05/5.58 702[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];702 -> 735[label="",style="solid", color="black", weight=3]; 14.05/5.58 703[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];703 -> 736[label="",style="solid", color="black", weight=3]; 14.05/5.58 704[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];704 -> 737[label="",style="solid", color="black", weight=3]; 14.05/5.58 705[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];705 -> 738[label="",style="solid", color="black", weight=3]; 14.05/5.58 706[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];706 -> 739[label="",style="solid", color="black", weight=3]; 14.05/5.58 707[label="compare vz340 vz3500",fontsize=16,color="black",shape="triangle"];707 -> 740[label="",style="solid", color="black", weight=3]; 14.05/5.58 834[label="compare1 LT EQ True",fontsize=16,color="black",shape="box"];834 -> 840[label="",style="solid", color="black", weight=3]; 14.05/5.58 835[label="compare1 LT GT True",fontsize=16,color="black",shape="box"];835 -> 841[label="",style="solid", color="black", weight=3]; 14.05/5.58 836[label="compare1 EQ LT False",fontsize=16,color="black",shape="box"];836 -> 842[label="",style="solid", color="black", weight=3]; 14.05/5.58 837[label="compare1 EQ GT True",fontsize=16,color="black",shape="box"];837 -> 843[label="",style="solid", color="black", weight=3]; 14.05/5.58 838[label="compare1 GT LT False",fontsize=16,color="black",shape="box"];838 -> 844[label="",style="solid", color="black", weight=3]; 14.05/5.58 839[label="compare1 GT EQ False",fontsize=16,color="black",shape="box"];839 -> 845[label="",style="solid", color="black", weight=3]; 14.05/5.58 708 -> 694[label="",style="dashed", color="red", weight=0]; 14.05/5.58 708[label="compare vz3500 vz35100",fontsize=16,color="magenta"];708 -> 741[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 708 -> 742[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 709 -> 695[label="",style="dashed", color="red", weight=0]; 14.05/5.58 709[label="compare vz3500 vz35100",fontsize=16,color="magenta"];709 -> 743[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 709 -> 744[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 710 -> 696[label="",style="dashed", color="red", weight=0]; 14.05/5.58 710[label="compare vz3500 vz35100",fontsize=16,color="magenta"];710 -> 745[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 710 -> 746[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 711 -> 697[label="",style="dashed", color="red", weight=0]; 14.05/5.58 711[label="compare vz3500 vz35100",fontsize=16,color="magenta"];711 -> 747[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 711 -> 748[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 712 -> 572[label="",style="dashed", color="red", weight=0]; 14.05/5.58 712[label="compare vz3500 vz35100",fontsize=16,color="magenta"];712 -> 749[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 712 -> 750[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 713 -> 699[label="",style="dashed", color="red", weight=0]; 14.05/5.58 713[label="compare vz3500 vz35100",fontsize=16,color="magenta"];713 -> 751[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 713 -> 752[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 714 -> 700[label="",style="dashed", color="red", weight=0]; 14.05/5.58 714[label="compare vz3500 vz35100",fontsize=16,color="magenta"];714 -> 753[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 714 -> 754[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 715 -> 701[label="",style="dashed", color="red", weight=0]; 14.05/5.58 715[label="compare vz3500 vz35100",fontsize=16,color="magenta"];715 -> 755[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 715 -> 756[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 716 -> 702[label="",style="dashed", color="red", weight=0]; 14.05/5.58 716[label="compare vz3500 vz35100",fontsize=16,color="magenta"];716 -> 757[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 716 -> 758[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 717 -> 703[label="",style="dashed", color="red", weight=0]; 14.05/5.58 717[label="compare vz3500 vz35100",fontsize=16,color="magenta"];717 -> 759[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 717 -> 760[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 718 -> 704[label="",style="dashed", color="red", weight=0]; 14.05/5.58 718[label="compare vz3500 vz35100",fontsize=16,color="magenta"];718 -> 761[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 718 -> 762[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 719 -> 705[label="",style="dashed", color="red", weight=0]; 14.05/5.58 719[label="compare vz3500 vz35100",fontsize=16,color="magenta"];719 -> 763[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 719 -> 764[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 720 -> 706[label="",style="dashed", color="red", weight=0]; 14.05/5.58 720[label="compare vz3500 vz35100",fontsize=16,color="magenta"];720 -> 765[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 720 -> 766[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 721 -> 707[label="",style="dashed", color="red", weight=0]; 14.05/5.58 721[label="compare vz3500 vz35100",fontsize=16,color="magenta"];721 -> 767[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 721 -> 768[label="",style="dashed", color="magenta", weight=3]; 14.05/5.58 726[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];726 -> 775[label="",style="solid", color="black", weight=3]; 14.05/5.58 727[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];727 -> 776[label="",style="solid", color="black", weight=3]; 14.05/5.58 728[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];728 -> 777[label="",style="solid", color="black", weight=3]; 14.05/5.58 729[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];729 -> 778[label="",style="solid", color="black", weight=3]; 14.05/5.58 730[label="vz3500",fontsize=16,color="green",shape="box"];731[label="vz340",fontsize=16,color="green",shape="box"];732[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];732 -> 779[label="",style="solid", color="black", weight=3]; 14.05/5.58 733[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];733 -> 780[label="",style="solid", color="black", weight=3]; 14.05/5.58 734[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];734 -> 781[label="",style="solid", color="black", weight=3]; 14.05/5.58 735[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];735 -> 782[label="",style="solid", color="black", weight=3]; 14.05/5.58 736[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];736 -> 783[label="",style="solid", color="black", weight=3]; 14.05/5.58 737[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];737 -> 784[label="",style="solid", color="black", weight=3]; 14.05/5.58 738[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];738 -> 785[label="",style="solid", color="black", weight=3]; 14.05/5.58 739[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];739 -> 786[label="",style="solid", color="black", weight=3]; 14.05/5.58 740[label="compare3 vz340 vz3500",fontsize=16,color="black",shape="box"];740 -> 787[label="",style="solid", color="black", weight=3]; 14.05/5.58 840[label="LT",fontsize=16,color="green",shape="box"];841[label="LT",fontsize=16,color="green",shape="box"];842[label="compare0 EQ LT otherwise",fontsize=16,color="black",shape="box"];842 -> 846[label="",style="solid", color="black", weight=3]; 14.05/5.58 843[label="LT",fontsize=16,color="green",shape="box"];844[label="compare0 GT LT otherwise",fontsize=16,color="black",shape="box"];844 -> 847[label="",style="solid", color="black", weight=3]; 14.05/5.58 845[label="compare0 GT EQ otherwise",fontsize=16,color="black",shape="box"];845 -> 848[label="",style="solid", color="black", weight=3]; 14.05/5.58 741[label="vz3500",fontsize=16,color="green",shape="box"];742[label="vz35100",fontsize=16,color="green",shape="box"];743[label="vz3500",fontsize=16,color="green",shape="box"];744[label="vz35100",fontsize=16,color="green",shape="box"];745[label="vz3500",fontsize=16,color="green",shape="box"];746[label="vz35100",fontsize=16,color="green",shape="box"];747[label="vz3500",fontsize=16,color="green",shape="box"];748[label="vz35100",fontsize=16,color="green",shape="box"];749[label="vz35100",fontsize=16,color="green",shape="box"];750[label="vz3500",fontsize=16,color="green",shape="box"];751[label="vz3500",fontsize=16,color="green",shape="box"];752[label="vz35100",fontsize=16,color="green",shape="box"];753[label="vz3500",fontsize=16,color="green",shape="box"];754[label="vz35100",fontsize=16,color="green",shape="box"];755[label="vz3500",fontsize=16,color="green",shape="box"];756[label="vz35100",fontsize=16,color="green",shape="box"];757[label="vz3500",fontsize=16,color="green",shape="box"];758[label="vz35100",fontsize=16,color="green",shape="box"];759[label="vz3500",fontsize=16,color="green",shape="box"];760[label="vz35100",fontsize=16,color="green",shape="box"];761[label="vz3500",fontsize=16,color="green",shape="box"];762[label="vz35100",fontsize=16,color="green",shape="box"];763[label="vz3500",fontsize=16,color="green",shape="box"];764[label="vz35100",fontsize=16,color="green",shape="box"];765[label="vz3500",fontsize=16,color="green",shape="box"];766[label="vz35100",fontsize=16,color="green",shape="box"];767[label="vz3500",fontsize=16,color="green",shape="box"];768[label="vz35100",fontsize=16,color="green",shape="box"];775[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];775 -> 803[label="",style="solid", color="black", weight=3]; 14.05/5.58 776[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];776 -> 804[label="",style="solid", color="black", weight=3]; 14.05/5.58 777[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];777 -> 805[label="",style="solid", color="black", weight=3]; 14.05/5.58 778[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];778 -> 806[label="",style="solid", color="black", weight=3]; 14.05/5.58 779[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];779 -> 807[label="",style="solid", color="black", weight=3]; 14.05/5.58 780[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];780 -> 808[label="",style="solid", color="black", weight=3]; 14.05/5.58 781[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];781 -> 809[label="",style="solid", color="black", weight=3]; 14.05/5.58 782[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];782 -> 810[label="",style="solid", color="black", weight=3]; 14.05/5.58 783[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];783 -> 811[label="",style="solid", color="black", weight=3]; 14.05/5.58 784[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];784 -> 812[label="",style="solid", color="black", weight=3]; 14.05/5.58 785[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];785 -> 813[label="",style="solid", color="black", weight=3]; 14.05/5.58 786[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];786 -> 814[label="",style="solid", color="black", weight=3]; 14.05/5.58 787[label="compare2 vz340 vz3500 (vz340 == vz3500)",fontsize=16,color="black",shape="box"];787 -> 815[label="",style="solid", color="black", weight=3]; 14.05/5.58 846[label="compare0 EQ LT True",fontsize=16,color="black",shape="box"];846 -> 849[label="",style="solid", color="black", weight=3]; 14.05/5.58 847[label="compare0 GT LT True",fontsize=16,color="black",shape="box"];847 -> 850[label="",style="solid", color="black", weight=3]; 14.05/5.58 848[label="compare0 GT EQ True",fontsize=16,color="black",shape="box"];848 -> 851[label="",style="solid", color="black", weight=3]; 14.05/5.58 803[label="error []",fontsize=16,color="red",shape="box"];804[label="error []",fontsize=16,color="red",shape="box"];805[label="error []",fontsize=16,color="red",shape="box"];806[label="error []",fontsize=16,color="red",shape="box"];807[label="error []",fontsize=16,color="red",shape="box"];808[label="error []",fontsize=16,color="red",shape="box"];809[label="error []",fontsize=16,color="red",shape="box"];810[label="error []",fontsize=16,color="red",shape="box"];811[label="error []",fontsize=16,color="red",shape="box"];812[label="error []",fontsize=16,color="red",shape="box"];813[label="error []",fontsize=16,color="red",shape="box"];814[label="error []",fontsize=16,color="red",shape="box"];815[label="error []",fontsize=16,color="red",shape="box"];849[label="GT",fontsize=16,color="green",shape="box"];850[label="GT",fontsize=16,color="green",shape="box"];851[label="GT",fontsize=16,color="green",shape="box"];} 14.05/5.58 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (8) 14.05/5.58 Complex Obligation (AND) 14.05/5.58 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (9) 14.05/5.58 Obligation: 14.05/5.58 Q DP problem: 14.05/5.58 The TRS P consists of the following rules: 14.05/5.58 14.05/5.58 new_merge_pairs(:(vz35110, :(vz351110, vz351111)), ba) -> new_merge_pairs(vz351111, ba) 14.05/5.58 14.05/5.58 R is empty. 14.05/5.58 Q is empty. 14.05/5.58 We have to consider all minimal (P,Q,R)-chains. 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (10) QDPSizeChangeProof (EQUIVALENT) 14.05/5.58 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.05/5.58 14.05/5.58 From the DPs we obtained the following set of size-change graphs: 14.05/5.58 *new_merge_pairs(:(vz35110, :(vz351110, vz351111)), ba) -> new_merge_pairs(vz351111, ba) 14.05/5.58 The graph contains the following edges 1 > 1, 2 >= 2 14.05/5.58 14.05/5.58 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (11) 14.05/5.58 YES 14.05/5.58 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (12) 14.05/5.58 Obligation: 14.05/5.58 Q DP problem: 14.05/5.58 The TRS P consists of the following rules: 14.05/5.58 14.05/5.58 new_mergesort'(vz34, :(vz350, []), ba) -> new_mergesort'(new_merge2(vz34, vz350, ba), [], ba) 14.05/5.58 new_mergesort'(vz34, :(vz350, :(vz3510, vz3511)), ba) -> new_mergesort'(new_merge1(vz34, vz350, vz3510, ba), new_merge_pairs0(vz3511, ba), ba) 14.05/5.58 14.05/5.58 The TRS R consists of the following rules: 14.05/5.58 14.05/5.58 new_compare9(vz340, vz3500, ca) -> error([]) 14.05/5.58 new_compare(vz340, vz3500, ty_Ordering) -> new_compare6(vz340, vz3500) 14.05/5.58 new_compare14(vz3500, vz35100, ty_Double) -> new_compare12(vz3500, vz35100) 14.05/5.58 new_compare4(vz340, vz3500) -> error([]) 14.05/5.58 new_compare11(vz340, vz3500) -> error([]) 14.05/5.58 new_compare14(vz3500, vz35100, ty_@0) -> new_compare10(vz3500, vz35100) 14.05/5.58 new_compare13(vz340, vz3500, cb, cc) -> error([]) 14.05/5.58 new_compare6(GT, GT) -> EQ 14.05/5.58 new_compare(vz340, vz3500, app(ty_[], bh)) -> new_compare5(vz340, vz3500, bh) 14.05/5.58 new_compare(vz340, vz3500, app(app(ty_@2, bb), bc)) -> new_compare0(vz340, vz3500, bb, bc) 14.05/5.58 new_compare6(EQ, GT) -> LT 14.05/5.58 new_compare6(EQ, EQ) -> EQ 14.05/5.58 new_merge_pairs0(:(vz35110, []), ba) -> :(vz35110, []) 14.05/5.58 new_compare14(vz3500, vz35100, app(ty_Ratio, bg)) -> new_compare3(vz3500, vz35100, bg) 14.05/5.58 new_compare(vz340, vz3500, app(ty_Maybe, ca)) -> new_compare9(vz340, vz3500, ca) 14.05/5.58 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.05/5.58 new_compare14(vz3500, vz35100, ty_Bool) -> new_compare7(vz3500, vz35100) 14.05/5.58 new_compare8(vz340, vz3500) -> error([]) 14.05/5.58 new_compare5(vz340, vz3500, bh) -> error([]) 14.05/5.58 new_compare6(LT, EQ) -> LT 14.05/5.58 new_compare12(vz340, vz3500) -> error([]) 14.05/5.58 new_merge2([], :(vz3500, vz3501), ba) -> :(vz3500, vz3501) 14.05/5.58 new_compare0(vz340, vz3500, bb, bc) -> error([]) 14.05/5.58 new_compare14(vz3500, vz35100, ty_Float) -> new_compare11(vz3500, vz35100) 14.05/5.58 new_compare14(vz3500, vz35100, ty_Ordering) -> new_compare6(vz3500, vz35100) 14.05/5.58 new_compare6(LT, LT) -> EQ 14.05/5.58 new_compare(vz340, vz3500, ty_Integer) -> new_compare8(vz340, vz3500) 14.05/5.58 new_merge_pairs0(:(vz35110, :(vz351110, vz351111)), ba) -> :(new_merge2(vz35110, vz351110, ba), new_merge_pairs0(vz351111, ba)) 14.05/5.58 new_compare(vz340, vz3500, ty_Int) -> new_compare2(vz340, vz3500) 14.05/5.58 new_compare(vz340, vz3500, ty_Char) -> new_compare4(vz340, vz3500) 14.05/5.58 new_merge00(vz44, vz45, vz46, vz47, LT, cd) -> :(vz45, new_merge2(vz46, :(vz44, vz47), cd)) 14.05/5.58 new_compare7(vz340, vz3500) -> error([]) 14.05/5.58 new_compare14(vz3500, vz35100, app(app(ty_@2, bb), bc)) -> new_compare0(vz3500, vz35100, bb, bc) 14.05/5.58 new_compare(vz340, vz3500, ty_Bool) -> new_compare7(vz340, vz3500) 14.05/5.58 new_compare14(vz3500, vz35100, ty_Int) -> new_compare2(vz3500, vz35100) 14.05/5.58 new_merge2(:(vz340, vz341), :(vz3500, vz3501), ba) -> new_merge00(vz3500, vz340, vz341, vz3501, new_compare(vz340, vz3500, ba), ba) 14.05/5.58 new_compare14(vz3500, vz35100, ty_Integer) -> new_compare8(vz3500, vz35100) 14.05/5.58 new_compare6(GT, LT) -> GT 14.05/5.58 new_compare6(GT, EQ) -> GT 14.05/5.58 new_merge2(vz34, [], ba) -> vz34 14.05/5.58 new_compare6(EQ, LT) -> GT 14.05/5.58 new_compare(vz340, vz3500, ty_@0) -> new_compare10(vz340, vz3500) 14.05/5.58 new_merge_pairs0([], ba) -> [] 14.05/5.58 new_merge1(vz34, [], :(vz35100, vz35101), ba) -> new_merge2(vz34, :(vz35100, vz35101), ba) 14.05/5.58 new_compare2(vz340, vz3500) -> error([]) 14.05/5.58 new_compare1(vz340, vz3500, bd, be, bf) -> error([]) 14.05/5.58 new_compare3(vz340, vz3500, bg) -> error([]) 14.05/5.58 new_merge00(vz44, vz45, vz46, vz47, GT, cd) -> :(vz44, new_merge2(:(vz45, vz46), vz47, cd)) 14.05/5.58 new_compare(vz340, vz3500, app(app(ty_Either, cb), cc)) -> new_compare13(vz340, vz3500, cb, cc) 14.05/5.58 new_compare(vz340, vz3500, app(app(app(ty_@3, bd), be), bf)) -> new_compare1(vz340, vz3500, bd, be, bf) 14.05/5.58 new_compare14(vz3500, vz35100, ty_Char) -> new_compare4(vz3500, vz35100) 14.05/5.58 new_merge00(vz44, vz45, vz46, vz47, EQ, cd) -> :(vz45, new_merge2(vz46, :(vz44, vz47), cd)) 14.05/5.58 new_compare10(vz340, vz3500) -> error([]) 14.05/5.58 new_compare6(LT, GT) -> LT 14.05/5.58 new_compare(vz340, vz3500, ty_Float) -> new_compare11(vz340, vz3500) 14.05/5.58 new_compare14(vz3500, vz35100, app(ty_[], bh)) -> new_compare5(vz3500, vz35100, bh) 14.05/5.58 new_compare(vz340, vz3500, ty_Double) -> new_compare12(vz340, vz3500) 14.05/5.58 new_compare14(vz3500, vz35100, app(app(app(ty_@3, bd), be), bf)) -> new_compare1(vz3500, vz35100, bd, be, bf) 14.05/5.58 new_compare14(vz3500, vz35100, app(ty_Maybe, ca)) -> new_compare9(vz3500, vz35100, ca) 14.05/5.58 new_compare14(vz3500, vz35100, app(app(ty_Either, cb), cc)) -> new_compare13(vz3500, vz35100, cb, cc) 14.05/5.58 new_compare(vz340, vz3500, app(ty_Ratio, bg)) -> new_compare3(vz340, vz3500, bg) 14.05/5.58 new_merge1(vz34, vz350, [], ba) -> new_merge2(vz34, vz350, ba) 14.05/5.58 14.05/5.58 The set Q consists of the following terms: 14.05/5.58 14.05/5.58 new_compare0(x0, x1, x2, x3) 14.05/5.58 new_compare14(x0, x1, ty_Double) 14.05/5.58 new_merge1(x0, :(x1, x2), :(x3, x4), x5) 14.05/5.58 new_compare13(x0, x1, x2, x3) 14.05/5.58 new_compare10(x0, x1) 14.05/5.58 new_compare14(x0, x1, app(ty_Maybe, x2)) 14.05/5.58 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.05/5.58 new_compare14(x0, x1, ty_Bool) 14.05/5.58 new_merge2([], :(x0, x1), x2) 14.05/5.58 new_compare11(x0, x1) 14.05/5.58 new_compare14(x0, x1, ty_@0) 14.05/5.58 new_merge_pairs0(:(x0, :(x1, x2)), x3) 14.05/5.58 new_compare(x0, x1, ty_Bool) 14.05/5.58 new_compare14(x0, x1, ty_Char) 14.05/5.58 new_merge00(x0, x1, x2, x3, EQ, x4) 14.05/5.58 new_compare9(x0, x1, x2) 14.05/5.58 new_compare14(x0, x1, app(ty_Ratio, x2)) 14.05/5.58 new_merge1(x0, [], :(x1, x2), x3) 14.05/5.58 new_compare14(x0, x1, ty_Ordering) 14.05/5.58 new_compare7(x0, x1) 14.05/5.58 new_merge2(x0, [], x1) 14.05/5.58 new_compare(x0, x1, ty_Int) 14.05/5.58 new_merge00(x0, x1, x2, x3, GT, x4) 14.05/5.58 new_merge1(x0, x1, [], x2) 14.05/5.58 new_compare3(x0, x1, x2) 14.05/5.58 new_compare14(x0, x1, app(app(ty_@2, x2), x3)) 14.05/5.58 new_compare6(GT, LT) 14.05/5.58 new_compare6(LT, GT) 14.05/5.58 new_compare4(x0, x1) 14.05/5.58 new_compare14(x0, x1, ty_Int) 14.05/5.58 new_compare(x0, x1, ty_@0) 14.05/5.58 new_compare(x0, x1, ty_Ordering) 14.05/5.58 new_compare6(EQ, GT) 14.05/5.58 new_compare6(GT, EQ) 14.05/5.58 new_compare(x0, x1, app(ty_Ratio, x2)) 14.05/5.58 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.05/5.58 new_compare(x0, x1, app(ty_Maybe, x2)) 14.05/5.58 new_compare5(x0, x1, x2) 14.05/5.58 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.05/5.58 new_compare(x0, x1, ty_Integer) 14.05/5.58 new_compare6(EQ, EQ) 14.05/5.58 new_compare1(x0, x1, x2, x3, x4) 14.05/5.58 new_compare2(x0, x1) 14.05/5.58 new_compare(x0, x1, ty_Float) 14.05/5.58 new_compare12(x0, x1) 14.05/5.58 new_compare14(x0, x1, app(app(ty_Either, x2), x3)) 14.05/5.58 new_compare6(LT, LT) 14.05/5.58 new_compare(x0, x1, app(ty_[], x2)) 14.05/5.58 new_compare6(LT, EQ) 14.05/5.58 new_compare6(EQ, LT) 14.05/5.58 new_compare14(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.05/5.58 new_compare8(x0, x1) 14.05/5.58 new_compare6(GT, GT) 14.05/5.58 new_compare(x0, x1, ty_Char) 14.05/5.58 new_merge_pairs0(:(x0, []), x1) 14.05/5.58 new_compare14(x0, x1, ty_Float) 14.05/5.58 new_merge_pairs0([], x0) 14.05/5.58 new_merge2(:(x0, x1), :(x2, x3), x4) 14.05/5.58 new_compare(x0, x1, ty_Double) 14.05/5.58 new_compare14(x0, x1, ty_Integer) 14.05/5.58 new_merge00(x0, x1, x2, x3, LT, x4) 14.05/5.58 new_compare14(x0, x1, app(ty_[], x2)) 14.05/5.58 14.05/5.58 We have to consider all minimal (P,Q,R)-chains. 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (13) DependencyGraphProof (EQUIVALENT) 14.05/5.58 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (14) 14.05/5.58 Obligation: 14.05/5.58 Q DP problem: 14.05/5.58 The TRS P consists of the following rules: 14.05/5.58 14.05/5.58 new_mergesort'(vz34, :(vz350, :(vz3510, vz3511)), ba) -> new_mergesort'(new_merge1(vz34, vz350, vz3510, ba), new_merge_pairs0(vz3511, ba), ba) 14.05/5.58 14.05/5.58 The TRS R consists of the following rules: 14.05/5.58 14.05/5.58 new_compare9(vz340, vz3500, ca) -> error([]) 14.05/5.58 new_compare(vz340, vz3500, ty_Ordering) -> new_compare6(vz340, vz3500) 14.05/5.58 new_compare14(vz3500, vz35100, ty_Double) -> new_compare12(vz3500, vz35100) 14.05/5.58 new_compare4(vz340, vz3500) -> error([]) 14.05/5.58 new_compare11(vz340, vz3500) -> error([]) 14.05/5.58 new_compare14(vz3500, vz35100, ty_@0) -> new_compare10(vz3500, vz35100) 14.05/5.58 new_compare13(vz340, vz3500, cb, cc) -> error([]) 14.05/5.58 new_compare6(GT, GT) -> EQ 14.05/5.58 new_compare(vz340, vz3500, app(ty_[], bh)) -> new_compare5(vz340, vz3500, bh) 14.05/5.58 new_compare(vz340, vz3500, app(app(ty_@2, bb), bc)) -> new_compare0(vz340, vz3500, bb, bc) 14.05/5.58 new_compare6(EQ, GT) -> LT 14.05/5.58 new_compare6(EQ, EQ) -> EQ 14.05/5.58 new_merge_pairs0(:(vz35110, []), ba) -> :(vz35110, []) 14.05/5.58 new_compare14(vz3500, vz35100, app(ty_Ratio, bg)) -> new_compare3(vz3500, vz35100, bg) 14.05/5.58 new_compare(vz340, vz3500, app(ty_Maybe, ca)) -> new_compare9(vz340, vz3500, ca) 14.05/5.58 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.05/5.58 new_compare14(vz3500, vz35100, ty_Bool) -> new_compare7(vz3500, vz35100) 14.05/5.58 new_compare8(vz340, vz3500) -> error([]) 14.05/5.58 new_compare5(vz340, vz3500, bh) -> error([]) 14.05/5.58 new_compare6(LT, EQ) -> LT 14.05/5.58 new_compare12(vz340, vz3500) -> error([]) 14.05/5.58 new_merge2([], :(vz3500, vz3501), ba) -> :(vz3500, vz3501) 14.05/5.58 new_compare0(vz340, vz3500, bb, bc) -> error([]) 14.05/5.58 new_compare14(vz3500, vz35100, ty_Float) -> new_compare11(vz3500, vz35100) 14.05/5.58 new_compare14(vz3500, vz35100, ty_Ordering) -> new_compare6(vz3500, vz35100) 14.05/5.58 new_compare6(LT, LT) -> EQ 14.05/5.58 new_compare(vz340, vz3500, ty_Integer) -> new_compare8(vz340, vz3500) 14.05/5.58 new_merge_pairs0(:(vz35110, :(vz351110, vz351111)), ba) -> :(new_merge2(vz35110, vz351110, ba), new_merge_pairs0(vz351111, ba)) 14.05/5.58 new_compare(vz340, vz3500, ty_Int) -> new_compare2(vz340, vz3500) 14.05/5.58 new_compare(vz340, vz3500, ty_Char) -> new_compare4(vz340, vz3500) 14.05/5.58 new_merge00(vz44, vz45, vz46, vz47, LT, cd) -> :(vz45, new_merge2(vz46, :(vz44, vz47), cd)) 14.05/5.58 new_compare7(vz340, vz3500) -> error([]) 14.05/5.58 new_compare14(vz3500, vz35100, app(app(ty_@2, bb), bc)) -> new_compare0(vz3500, vz35100, bb, bc) 14.05/5.58 new_compare(vz340, vz3500, ty_Bool) -> new_compare7(vz340, vz3500) 14.05/5.58 new_compare14(vz3500, vz35100, ty_Int) -> new_compare2(vz3500, vz35100) 14.05/5.58 new_merge2(:(vz340, vz341), :(vz3500, vz3501), ba) -> new_merge00(vz3500, vz340, vz341, vz3501, new_compare(vz340, vz3500, ba), ba) 14.05/5.58 new_compare14(vz3500, vz35100, ty_Integer) -> new_compare8(vz3500, vz35100) 14.05/5.58 new_compare6(GT, LT) -> GT 14.05/5.58 new_compare6(GT, EQ) -> GT 14.05/5.58 new_merge2(vz34, [], ba) -> vz34 14.05/5.58 new_compare6(EQ, LT) -> GT 14.05/5.58 new_compare(vz340, vz3500, ty_@0) -> new_compare10(vz340, vz3500) 14.05/5.58 new_merge_pairs0([], ba) -> [] 14.05/5.58 new_merge1(vz34, [], :(vz35100, vz35101), ba) -> new_merge2(vz34, :(vz35100, vz35101), ba) 14.05/5.58 new_compare2(vz340, vz3500) -> error([]) 14.05/5.58 new_compare1(vz340, vz3500, bd, be, bf) -> error([]) 14.05/5.58 new_compare3(vz340, vz3500, bg) -> error([]) 14.05/5.58 new_merge00(vz44, vz45, vz46, vz47, GT, cd) -> :(vz44, new_merge2(:(vz45, vz46), vz47, cd)) 14.05/5.58 new_compare(vz340, vz3500, app(app(ty_Either, cb), cc)) -> new_compare13(vz340, vz3500, cb, cc) 14.05/5.58 new_compare(vz340, vz3500, app(app(app(ty_@3, bd), be), bf)) -> new_compare1(vz340, vz3500, bd, be, bf) 14.05/5.58 new_compare14(vz3500, vz35100, ty_Char) -> new_compare4(vz3500, vz35100) 14.05/5.58 new_merge00(vz44, vz45, vz46, vz47, EQ, cd) -> :(vz45, new_merge2(vz46, :(vz44, vz47), cd)) 14.05/5.58 new_compare10(vz340, vz3500) -> error([]) 14.05/5.58 new_compare6(LT, GT) -> LT 14.05/5.58 new_compare(vz340, vz3500, ty_Float) -> new_compare11(vz340, vz3500) 14.05/5.58 new_compare14(vz3500, vz35100, app(ty_[], bh)) -> new_compare5(vz3500, vz35100, bh) 14.05/5.58 new_compare(vz340, vz3500, ty_Double) -> new_compare12(vz340, vz3500) 14.05/5.58 new_compare14(vz3500, vz35100, app(app(app(ty_@3, bd), be), bf)) -> new_compare1(vz3500, vz35100, bd, be, bf) 14.05/5.58 new_compare14(vz3500, vz35100, app(ty_Maybe, ca)) -> new_compare9(vz3500, vz35100, ca) 14.05/5.58 new_compare14(vz3500, vz35100, app(app(ty_Either, cb), cc)) -> new_compare13(vz3500, vz35100, cb, cc) 14.05/5.58 new_compare(vz340, vz3500, app(ty_Ratio, bg)) -> new_compare3(vz340, vz3500, bg) 14.05/5.58 new_merge1(vz34, vz350, [], ba) -> new_merge2(vz34, vz350, ba) 14.05/5.58 14.05/5.58 The set Q consists of the following terms: 14.05/5.58 14.05/5.58 new_compare0(x0, x1, x2, x3) 14.05/5.58 new_compare14(x0, x1, ty_Double) 14.05/5.58 new_merge1(x0, :(x1, x2), :(x3, x4), x5) 14.05/5.58 new_compare13(x0, x1, x2, x3) 14.05/5.58 new_compare10(x0, x1) 14.05/5.58 new_compare14(x0, x1, app(ty_Maybe, x2)) 14.05/5.58 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.05/5.58 new_compare14(x0, x1, ty_Bool) 14.05/5.58 new_merge2([], :(x0, x1), x2) 14.05/5.58 new_compare11(x0, x1) 14.05/5.58 new_compare14(x0, x1, ty_@0) 14.05/5.58 new_merge_pairs0(:(x0, :(x1, x2)), x3) 14.05/5.58 new_compare(x0, x1, ty_Bool) 14.05/5.58 new_compare14(x0, x1, ty_Char) 14.05/5.58 new_merge00(x0, x1, x2, x3, EQ, x4) 14.05/5.58 new_compare9(x0, x1, x2) 14.05/5.58 new_compare14(x0, x1, app(ty_Ratio, x2)) 14.05/5.58 new_merge1(x0, [], :(x1, x2), x3) 14.05/5.58 new_compare14(x0, x1, ty_Ordering) 14.05/5.58 new_compare7(x0, x1) 14.05/5.58 new_merge2(x0, [], x1) 14.05/5.58 new_compare(x0, x1, ty_Int) 14.05/5.58 new_merge00(x0, x1, x2, x3, GT, x4) 14.05/5.58 new_merge1(x0, x1, [], x2) 14.05/5.58 new_compare3(x0, x1, x2) 14.05/5.58 new_compare14(x0, x1, app(app(ty_@2, x2), x3)) 14.05/5.58 new_compare6(GT, LT) 14.05/5.58 new_compare6(LT, GT) 14.05/5.58 new_compare4(x0, x1) 14.05/5.58 new_compare14(x0, x1, ty_Int) 14.05/5.58 new_compare(x0, x1, ty_@0) 14.05/5.58 new_compare(x0, x1, ty_Ordering) 14.05/5.58 new_compare6(EQ, GT) 14.05/5.58 new_compare6(GT, EQ) 14.05/5.58 new_compare(x0, x1, app(ty_Ratio, x2)) 14.05/5.58 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.05/5.58 new_compare(x0, x1, app(ty_Maybe, x2)) 14.05/5.58 new_compare5(x0, x1, x2) 14.05/5.58 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.05/5.58 new_compare(x0, x1, ty_Integer) 14.05/5.58 new_compare6(EQ, EQ) 14.05/5.58 new_compare1(x0, x1, x2, x3, x4) 14.05/5.58 new_compare2(x0, x1) 14.05/5.58 new_compare(x0, x1, ty_Float) 14.05/5.58 new_compare12(x0, x1) 14.05/5.58 new_compare14(x0, x1, app(app(ty_Either, x2), x3)) 14.05/5.58 new_compare6(LT, LT) 14.05/5.58 new_compare(x0, x1, app(ty_[], x2)) 14.05/5.58 new_compare6(LT, EQ) 14.05/5.58 new_compare6(EQ, LT) 14.05/5.58 new_compare14(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.05/5.58 new_compare8(x0, x1) 14.05/5.58 new_compare6(GT, GT) 14.05/5.58 new_compare(x0, x1, ty_Char) 14.05/5.58 new_merge_pairs0(:(x0, []), x1) 14.05/5.58 new_compare14(x0, x1, ty_Float) 14.05/5.58 new_merge_pairs0([], x0) 14.05/5.58 new_merge2(:(x0, x1), :(x2, x3), x4) 14.05/5.58 new_compare(x0, x1, ty_Double) 14.05/5.58 new_compare14(x0, x1, ty_Integer) 14.05/5.58 new_merge00(x0, x1, x2, x3, LT, x4) 14.05/5.58 new_compare14(x0, x1, app(ty_[], x2)) 14.05/5.58 14.05/5.58 We have to consider all minimal (P,Q,R)-chains. 14.05/5.58 ---------------------------------------- 14.05/5.58 14.05/5.58 (15) QDPSizeChangeProof (EQUIVALENT) 14.05/5.58 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.05/5.59 14.05/5.59 Order:Polynomial interpretation [POLO]: 14.05/5.59 14.05/5.59 POL(:(x_1, x_2)) = 1 + x_2 14.05/5.59 POL([]) = 0 14.05/5.59 POL(new_merge2(x_1, x_2, x_3)) = 0 14.05/5.59 POL(new_merge_pairs0(x_1, x_2)) = x_1 14.05/5.59 14.05/5.59 14.05/5.59 14.05/5.59 14.05/5.59 From the DPs we obtained the following set of size-change graphs: 14.05/5.59 *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.05/5.59 The graph contains the following edges 2 > 2, 3 >= 3 14.05/5.59 14.05/5.59 14.05/5.59 14.05/5.59 We oriented the following set of usable rules [AAECC05,FROCOS05]. 14.05/5.59 14.05/5.59 new_merge_pairs0([], ba) -> [] 14.05/5.59 new_merge_pairs0(:(vz35110, []), ba) -> :(vz35110, []) 14.05/5.59 new_merge_pairs0(:(vz35110, :(vz351110, vz351111)), ba) -> :(new_merge2(vz35110, vz351110, ba), new_merge_pairs0(vz351111, ba)) 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (16) 14.05/5.59 YES 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (17) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_map(:(vz3110, vz3111)) -> new_map(vz3111) 14.05/5.59 14.05/5.59 R is empty. 14.05/5.59 Q is empty. 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (18) QDPSizeChangeProof (EQUIVALENT) 14.05/5.59 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.05/5.59 14.05/5.59 From the DPs we obtained the following set of size-change graphs: 14.05/5.59 *new_map(:(vz3110, vz3111)) -> new_map(vz3111) 14.05/5.59 The graph contains the following edges 1 > 1 14.05/5.59 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (19) 14.05/5.59 YES 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (20) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge(:(vz340, vz341), :(vz3500, vz3501), bb) -> new_merge0(vz3500, vz340, vz341, vz3501, new_compare(vz340, vz3500, bb), bb) 14.05/5.59 14.05/5.59 The TRS R consists of the following rules: 14.05/5.59 14.05/5.59 new_compare(vz340, vz3500, ty_Ordering) -> new_compare6(vz340, vz3500) 14.05/5.59 new_compare9(vz340, vz3500, cb) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, ty_Bool) -> new_compare7(vz340, vz3500) 14.05/5.59 new_compare4(vz340, vz3500) -> error([]) 14.05/5.59 new_compare11(vz340, vz3500) -> error([]) 14.05/5.59 new_compare6(GT, LT) -> GT 14.05/5.59 new_compare13(vz340, vz3500, cc, cd) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, app(ty_[], ca)) -> new_compare5(vz340, vz3500, ca) 14.05/5.59 new_compare6(GT, EQ) -> GT 14.05/5.59 new_compare6(GT, GT) -> EQ 14.05/5.59 new_compare6(EQ, LT) -> GT 14.05/5.59 new_compare(vz340, vz3500, app(app(ty_@2, bc), bd)) -> new_compare0(vz340, vz3500, bc, bd) 14.05/5.59 new_compare(vz340, vz3500, ty_@0) -> new_compare10(vz340, vz3500) 14.05/5.59 new_compare6(EQ, GT) -> LT 14.05/5.59 new_compare6(EQ, EQ) -> EQ 14.05/5.59 new_compare2(vz340, vz3500) -> error([]) 14.05/5.59 new_compare1(vz340, vz3500, be, bf, bg) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, app(ty_Maybe, cb)) -> new_compare9(vz340, vz3500, cb) 14.05/5.59 new_compare3(vz340, vz3500, bh) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, app(app(ty_Either, cc), cd)) -> new_compare13(vz340, vz3500, cc, cd) 14.05/5.59 new_compare8(vz340, vz3500) -> error([]) 14.05/5.59 new_compare5(vz340, vz3500, ca) -> error([]) 14.05/5.59 new_compare6(LT, EQ) -> LT 14.05/5.59 new_compare(vz340, vz3500, app(app(app(ty_@3, be), bf), bg)) -> new_compare1(vz340, vz3500, be, bf, bg) 14.05/5.59 new_compare12(vz340, vz3500) -> error([]) 14.05/5.59 new_compare10(vz340, vz3500) -> error([]) 14.05/5.59 new_compare0(vz340, vz3500, bc, bd) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, ty_Float) -> new_compare11(vz340, vz3500) 14.05/5.59 new_compare6(LT, GT) -> LT 14.05/5.59 new_compare(vz340, vz3500, ty_Double) -> new_compare12(vz340, vz3500) 14.05/5.59 new_compare6(LT, LT) -> EQ 14.05/5.59 new_compare(vz340, vz3500, ty_Integer) -> new_compare8(vz340, vz3500) 14.05/5.59 new_compare(vz340, vz3500, ty_Int) -> new_compare2(vz340, vz3500) 14.05/5.59 new_compare(vz340, vz3500, ty_Char) -> new_compare4(vz340, vz3500) 14.05/5.59 new_compare(vz340, vz3500, app(ty_Ratio, bh)) -> new_compare3(vz340, vz3500, bh) 14.05/5.59 new_compare7(vz340, vz3500) -> error([]) 14.05/5.59 14.05/5.59 The set Q consists of the following terms: 14.05/5.59 14.05/5.59 new_compare6(GT, EQ) 14.05/5.59 new_compare6(EQ, GT) 14.05/5.59 new_compare10(x0, x1) 14.05/5.59 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.05/5.59 new_compare3(x0, x1, x2) 14.05/5.59 new_compare9(x0, x1, x2) 14.05/5.59 new_compare11(x0, x1) 14.05/5.59 new_compare(x0, x1, app(ty_Ratio, x2)) 14.05/5.59 new_compare(x0, x1, ty_Integer) 14.05/5.59 new_compare6(EQ, EQ) 14.05/5.59 new_compare(x0, x1, ty_Bool) 14.05/5.59 new_compare2(x0, x1) 14.05/5.59 new_compare(x0, x1, ty_Float) 14.05/5.59 new_compare(x0, x1, app(ty_Maybe, x2)) 14.05/5.59 new_compare13(x0, x1, x2, x3) 14.05/5.59 new_compare12(x0, x1) 14.05/5.59 new_compare6(LT, LT) 14.05/5.59 new_compare6(EQ, LT) 14.05/5.59 new_compare6(LT, EQ) 14.05/5.59 new_compare7(x0, x1) 14.05/5.59 new_compare0(x0, x1, x2, x3) 14.05/5.59 new_compare8(x0, x1) 14.05/5.59 new_compare(x0, x1, ty_Int) 14.05/5.59 new_compare6(GT, GT) 14.05/5.59 new_compare5(x0, x1, x2) 14.05/5.59 new_compare(x0, x1, ty_Char) 14.05/5.59 new_compare(x0, x1, app(ty_[], x2)) 14.05/5.59 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.05/5.59 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.05/5.59 new_compare6(GT, LT) 14.05/5.59 new_compare6(LT, GT) 14.05/5.59 new_compare4(x0, x1) 14.05/5.59 new_compare1(x0, x1, x2, x3, x4) 14.05/5.59 new_compare(x0, x1, ty_Double) 14.05/5.59 new_compare(x0, x1, ty_@0) 14.05/5.59 new_compare(x0, x1, ty_Ordering) 14.05/5.59 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (21) TransformationProof (EQUIVALENT) 14.05/5.59 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.05/5.59 14.05/5.59 (new_merge(:(x0, y1), :(x1, y3), ty_Ordering) -> new_merge0(x1, x0, y1, y3, new_compare6(x0, x1), ty_Ordering),new_merge(:(x0, y1), :(x1, y3), ty_Ordering) -> new_merge0(x1, x0, y1, y3, new_compare6(x0, x1), ty_Ordering)) 14.05/5.59 (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.05/5.59 (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.05/5.59 (new_merge(:(x0, y1), :(x1, y3), app(app(ty_@2, x2), x3)) -> new_merge0(x1, x0, y1, y3, new_compare0(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_compare0(x0, x1, x2, x3), app(app(ty_@2, x2), x3))) 14.05/5.59 (new_merge(:(x0, y1), :(x1, y3), ty_@0) -> new_merge0(x1, x0, y1, y3, new_compare10(x0, x1), ty_@0),new_merge(:(x0, y1), :(x1, y3), ty_@0) -> new_merge0(x1, x0, y1, y3, new_compare10(x0, x1), ty_@0)) 14.05/5.59 (new_merge(:(x0, y1), :(x1, y3), app(ty_Maybe, x2)) -> new_merge0(x1, x0, y1, y3, new_compare9(x0, x1, x2), app(ty_Maybe, x2)),new_merge(:(x0, y1), :(x1, y3), app(ty_Maybe, x2)) -> new_merge0(x1, x0, y1, y3, new_compare9(x0, x1, x2), app(ty_Maybe, x2))) 14.05/5.59 (new_merge(:(x0, y1), :(x1, y3), app(app(ty_Either, x2), x3)) -> new_merge0(x1, x0, y1, y3, new_compare13(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_compare13(x0, x1, x2, x3), app(app(ty_Either, x2), x3))) 14.05/5.59 (new_merge(:(x0, y1), :(x1, y3), app(app(app(ty_@3, x2), x3), x4)) -> new_merge0(x1, x0, y1, y3, new_compare1(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_compare1(x0, x1, x2, x3, x4), app(app(app(ty_@3, x2), x3), x4))) 14.05/5.59 (new_merge(:(x0, y1), :(x1, y3), ty_Float) -> new_merge0(x1, x0, y1, y3, new_compare11(x0, x1), ty_Float),new_merge(:(x0, y1), :(x1, y3), ty_Float) -> new_merge0(x1, x0, y1, y3, new_compare11(x0, x1), ty_Float)) 14.05/5.59 (new_merge(:(x0, y1), :(x1, y3), ty_Double) -> new_merge0(x1, x0, y1, y3, new_compare12(x0, x1), ty_Double),new_merge(:(x0, y1), :(x1, y3), ty_Double) -> new_merge0(x1, x0, y1, y3, new_compare12(x0, x1), ty_Double)) 14.05/5.59 (new_merge(:(x0, y1), :(x1, y3), ty_Integer) -> new_merge0(x1, x0, y1, y3, new_compare8(x0, x1), ty_Integer),new_merge(:(x0, y1), :(x1, y3), ty_Integer) -> new_merge0(x1, x0, y1, y3, new_compare8(x0, x1), ty_Integer)) 14.05/5.59 (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.05/5.59 (new_merge(:(x0, y1), :(x1, y3), ty_Char) -> new_merge0(x1, x0, y1, y3, new_compare4(x0, x1), ty_Char),new_merge(:(x0, y1), :(x1, y3), ty_Char) -> new_merge0(x1, x0, y1, y3, new_compare4(x0, x1), ty_Char)) 14.05/5.59 (new_merge(:(x0, y1), :(x1, y3), app(ty_Ratio, x2)) -> new_merge0(x1, x0, y1, y3, new_compare3(x0, x1, x2), app(ty_Ratio, x2)),new_merge(:(x0, y1), :(x1, y3), app(ty_Ratio, x2)) -> new_merge0(x1, x0, y1, y3, new_compare3(x0, x1, x2), app(ty_Ratio, x2))) 14.05/5.59 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (22) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), ty_Ordering) -> new_merge0(x1, x0, y1, y3, new_compare6(x0, x1), ty_Ordering) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), ty_Bool) -> new_merge0(x1, x0, y1, y3, new_compare7(x0, x1), ty_Bool) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), app(ty_[], x2)) -> new_merge0(x1, x0, y1, y3, new_compare5(x0, x1, x2), app(ty_[], x2)) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), app(app(ty_@2, x2), x3)) -> new_merge0(x1, x0, y1, y3, new_compare0(x0, x1, x2, x3), app(app(ty_@2, x2), x3)) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), ty_@0) -> new_merge0(x1, x0, y1, y3, new_compare10(x0, x1), ty_@0) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), app(ty_Maybe, x2)) -> new_merge0(x1, x0, y1, y3, new_compare9(x0, x1, x2), app(ty_Maybe, x2)) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), app(app(ty_Either, x2), x3)) -> new_merge0(x1, x0, y1, y3, new_compare13(x0, x1, x2, x3), app(app(ty_Either, x2), x3)) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), app(app(app(ty_@3, x2), x3), x4)) -> new_merge0(x1, x0, y1, y3, new_compare1(x0, x1, x2, x3, x4), app(app(app(ty_@3, x2), x3), x4)) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), ty_Float) -> new_merge0(x1, x0, y1, y3, new_compare11(x0, x1), ty_Float) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), ty_Double) -> new_merge0(x1, x0, y1, y3, new_compare12(x0, x1), ty_Double) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), ty_Integer) -> new_merge0(x1, x0, y1, y3, new_compare8(x0, x1), ty_Integer) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), ty_Int) -> new_merge0(x1, x0, y1, y3, new_compare2(x0, x1), ty_Int) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), ty_Char) -> new_merge0(x1, x0, y1, y3, new_compare4(x0, x1), ty_Char) 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), app(ty_Ratio, x2)) -> new_merge0(x1, x0, y1, y3, new_compare3(x0, x1, x2), app(ty_Ratio, x2)) 14.05/5.59 14.05/5.59 The TRS R consists of the following rules: 14.05/5.59 14.05/5.59 new_compare(vz340, vz3500, ty_Ordering) -> new_compare6(vz340, vz3500) 14.05/5.59 new_compare9(vz340, vz3500, cb) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, ty_Bool) -> new_compare7(vz340, vz3500) 14.05/5.59 new_compare4(vz340, vz3500) -> error([]) 14.05/5.59 new_compare11(vz340, vz3500) -> error([]) 14.05/5.59 new_compare6(GT, LT) -> GT 14.05/5.59 new_compare13(vz340, vz3500, cc, cd) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, app(ty_[], ca)) -> new_compare5(vz340, vz3500, ca) 14.05/5.59 new_compare6(GT, EQ) -> GT 14.05/5.59 new_compare6(GT, GT) -> EQ 14.05/5.59 new_compare6(EQ, LT) -> GT 14.05/5.59 new_compare(vz340, vz3500, app(app(ty_@2, bc), bd)) -> new_compare0(vz340, vz3500, bc, bd) 14.05/5.59 new_compare(vz340, vz3500, ty_@0) -> new_compare10(vz340, vz3500) 14.05/5.59 new_compare6(EQ, GT) -> LT 14.05/5.59 new_compare6(EQ, EQ) -> EQ 14.05/5.59 new_compare2(vz340, vz3500) -> error([]) 14.05/5.59 new_compare1(vz340, vz3500, be, bf, bg) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, app(ty_Maybe, cb)) -> new_compare9(vz340, vz3500, cb) 14.05/5.59 new_compare3(vz340, vz3500, bh) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, app(app(ty_Either, cc), cd)) -> new_compare13(vz340, vz3500, cc, cd) 14.05/5.59 new_compare8(vz340, vz3500) -> error([]) 14.05/5.59 new_compare5(vz340, vz3500, ca) -> error([]) 14.05/5.59 new_compare6(LT, EQ) -> LT 14.05/5.59 new_compare(vz340, vz3500, app(app(app(ty_@3, be), bf), bg)) -> new_compare1(vz340, vz3500, be, bf, bg) 14.05/5.59 new_compare12(vz340, vz3500) -> error([]) 14.05/5.59 new_compare10(vz340, vz3500) -> error([]) 14.05/5.59 new_compare0(vz340, vz3500, bc, bd) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, ty_Float) -> new_compare11(vz340, vz3500) 14.05/5.59 new_compare6(LT, GT) -> LT 14.05/5.59 new_compare(vz340, vz3500, ty_Double) -> new_compare12(vz340, vz3500) 14.05/5.59 new_compare6(LT, LT) -> EQ 14.05/5.59 new_compare(vz340, vz3500, ty_Integer) -> new_compare8(vz340, vz3500) 14.05/5.59 new_compare(vz340, vz3500, ty_Int) -> new_compare2(vz340, vz3500) 14.05/5.59 new_compare(vz340, vz3500, ty_Char) -> new_compare4(vz340, vz3500) 14.05/5.59 new_compare(vz340, vz3500, app(ty_Ratio, bh)) -> new_compare3(vz340, vz3500, bh) 14.05/5.59 new_compare7(vz340, vz3500) -> error([]) 14.05/5.59 14.05/5.59 The set Q consists of the following terms: 14.05/5.59 14.05/5.59 new_compare6(GT, EQ) 14.05/5.59 new_compare6(EQ, GT) 14.05/5.59 new_compare10(x0, x1) 14.05/5.59 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.05/5.59 new_compare3(x0, x1, x2) 14.05/5.59 new_compare9(x0, x1, x2) 14.05/5.59 new_compare11(x0, x1) 14.05/5.59 new_compare(x0, x1, app(ty_Ratio, x2)) 14.05/5.59 new_compare(x0, x1, ty_Integer) 14.05/5.59 new_compare6(EQ, EQ) 14.05/5.59 new_compare(x0, x1, ty_Bool) 14.05/5.59 new_compare2(x0, x1) 14.05/5.59 new_compare(x0, x1, ty_Float) 14.05/5.59 new_compare(x0, x1, app(ty_Maybe, x2)) 14.05/5.59 new_compare13(x0, x1, x2, x3) 14.05/5.59 new_compare12(x0, x1) 14.05/5.59 new_compare6(LT, LT) 14.05/5.59 new_compare6(EQ, LT) 14.05/5.59 new_compare6(LT, EQ) 14.05/5.59 new_compare7(x0, x1) 14.05/5.59 new_compare0(x0, x1, x2, x3) 14.05/5.59 new_compare8(x0, x1) 14.05/5.59 new_compare(x0, x1, ty_Int) 14.05/5.59 new_compare6(GT, GT) 14.05/5.59 new_compare5(x0, x1, x2) 14.05/5.59 new_compare(x0, x1, ty_Char) 14.05/5.59 new_compare(x0, x1, app(ty_[], x2)) 14.05/5.59 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.05/5.59 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.05/5.59 new_compare6(GT, LT) 14.05/5.59 new_compare6(LT, GT) 14.05/5.59 new_compare4(x0, x1) 14.05/5.59 new_compare1(x0, x1, x2, x3, x4) 14.05/5.59 new_compare(x0, x1, ty_Double) 14.05/5.59 new_compare(x0, x1, ty_@0) 14.05/5.59 new_compare(x0, x1, ty_Ordering) 14.05/5.59 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (23) DependencyGraphProof (EQUIVALENT) 14.05/5.59 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 13 less nodes. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (24) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), ty_Ordering) -> new_merge0(x1, x0, y1, y3, new_compare6(x0, x1), ty_Ordering) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 14.05/5.59 The TRS R consists of the following rules: 14.05/5.59 14.05/5.59 new_compare(vz340, vz3500, ty_Ordering) -> new_compare6(vz340, vz3500) 14.05/5.59 new_compare9(vz340, vz3500, cb) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, ty_Bool) -> new_compare7(vz340, vz3500) 14.05/5.59 new_compare4(vz340, vz3500) -> error([]) 14.05/5.59 new_compare11(vz340, vz3500) -> error([]) 14.05/5.59 new_compare6(GT, LT) -> GT 14.05/5.59 new_compare13(vz340, vz3500, cc, cd) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, app(ty_[], ca)) -> new_compare5(vz340, vz3500, ca) 14.05/5.59 new_compare6(GT, EQ) -> GT 14.05/5.59 new_compare6(GT, GT) -> EQ 14.05/5.59 new_compare6(EQ, LT) -> GT 14.05/5.59 new_compare(vz340, vz3500, app(app(ty_@2, bc), bd)) -> new_compare0(vz340, vz3500, bc, bd) 14.05/5.59 new_compare(vz340, vz3500, ty_@0) -> new_compare10(vz340, vz3500) 14.05/5.59 new_compare6(EQ, GT) -> LT 14.05/5.59 new_compare6(EQ, EQ) -> EQ 14.05/5.59 new_compare2(vz340, vz3500) -> error([]) 14.05/5.59 new_compare1(vz340, vz3500, be, bf, bg) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, app(ty_Maybe, cb)) -> new_compare9(vz340, vz3500, cb) 14.05/5.59 new_compare3(vz340, vz3500, bh) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, app(app(ty_Either, cc), cd)) -> new_compare13(vz340, vz3500, cc, cd) 14.05/5.59 new_compare8(vz340, vz3500) -> error([]) 14.05/5.59 new_compare5(vz340, vz3500, ca) -> error([]) 14.05/5.59 new_compare6(LT, EQ) -> LT 14.05/5.59 new_compare(vz340, vz3500, app(app(app(ty_@3, be), bf), bg)) -> new_compare1(vz340, vz3500, be, bf, bg) 14.05/5.59 new_compare12(vz340, vz3500) -> error([]) 14.05/5.59 new_compare10(vz340, vz3500) -> error([]) 14.05/5.59 new_compare0(vz340, vz3500, bc, bd) -> error([]) 14.05/5.59 new_compare(vz340, vz3500, ty_Float) -> new_compare11(vz340, vz3500) 14.05/5.59 new_compare6(LT, GT) -> LT 14.05/5.59 new_compare(vz340, vz3500, ty_Double) -> new_compare12(vz340, vz3500) 14.05/5.59 new_compare6(LT, LT) -> EQ 14.05/5.59 new_compare(vz340, vz3500, ty_Integer) -> new_compare8(vz340, vz3500) 14.05/5.59 new_compare(vz340, vz3500, ty_Int) -> new_compare2(vz340, vz3500) 14.05/5.59 new_compare(vz340, vz3500, ty_Char) -> new_compare4(vz340, vz3500) 14.05/5.59 new_compare(vz340, vz3500, app(ty_Ratio, bh)) -> new_compare3(vz340, vz3500, bh) 14.05/5.59 new_compare7(vz340, vz3500) -> error([]) 14.05/5.59 14.05/5.59 The set Q consists of the following terms: 14.05/5.59 14.05/5.59 new_compare6(GT, EQ) 14.05/5.59 new_compare6(EQ, GT) 14.05/5.59 new_compare10(x0, x1) 14.05/5.59 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.05/5.59 new_compare3(x0, x1, x2) 14.05/5.59 new_compare9(x0, x1, x2) 14.05/5.59 new_compare11(x0, x1) 14.05/5.59 new_compare(x0, x1, app(ty_Ratio, x2)) 14.05/5.59 new_compare(x0, x1, ty_Integer) 14.05/5.59 new_compare6(EQ, EQ) 14.05/5.59 new_compare(x0, x1, ty_Bool) 14.05/5.59 new_compare2(x0, x1) 14.05/5.59 new_compare(x0, x1, ty_Float) 14.05/5.59 new_compare(x0, x1, app(ty_Maybe, x2)) 14.05/5.59 new_compare13(x0, x1, x2, x3) 14.05/5.59 new_compare12(x0, x1) 14.05/5.59 new_compare6(LT, LT) 14.05/5.59 new_compare6(EQ, LT) 14.05/5.59 new_compare6(LT, EQ) 14.05/5.59 new_compare7(x0, x1) 14.05/5.59 new_compare0(x0, x1, x2, x3) 14.05/5.59 new_compare8(x0, x1) 14.05/5.59 new_compare(x0, x1, ty_Int) 14.05/5.59 new_compare6(GT, GT) 14.05/5.59 new_compare5(x0, x1, x2) 14.05/5.59 new_compare(x0, x1, ty_Char) 14.05/5.59 new_compare(x0, x1, app(ty_[], x2)) 14.05/5.59 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.05/5.59 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.05/5.59 new_compare6(GT, LT) 14.05/5.59 new_compare6(LT, GT) 14.05/5.59 new_compare4(x0, x1) 14.05/5.59 new_compare1(x0, x1, x2, x3, x4) 14.05/5.59 new_compare(x0, x1, ty_Double) 14.05/5.59 new_compare(x0, x1, ty_@0) 14.05/5.59 new_compare(x0, x1, ty_Ordering) 14.05/5.59 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (25) UsableRulesProof (EQUIVALENT) 14.05/5.59 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.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (26) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), ty_Ordering) -> new_merge0(x1, x0, y1, y3, new_compare6(x0, x1), ty_Ordering) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 14.05/5.59 The TRS R consists of the following rules: 14.05/5.59 14.05/5.59 new_compare6(GT, LT) -> GT 14.05/5.59 new_compare6(GT, EQ) -> GT 14.05/5.59 new_compare6(GT, GT) -> EQ 14.05/5.59 new_compare6(EQ, LT) -> GT 14.05/5.59 new_compare6(EQ, GT) -> LT 14.05/5.59 new_compare6(EQ, EQ) -> EQ 14.05/5.59 new_compare6(LT, EQ) -> LT 14.05/5.59 new_compare6(LT, GT) -> LT 14.05/5.59 new_compare6(LT, LT) -> EQ 14.05/5.59 14.05/5.59 The set Q consists of the following terms: 14.05/5.59 14.05/5.59 new_compare6(GT, EQ) 14.05/5.59 new_compare6(EQ, GT) 14.05/5.59 new_compare10(x0, x1) 14.05/5.59 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.05/5.59 new_compare3(x0, x1, x2) 14.05/5.59 new_compare9(x0, x1, x2) 14.05/5.59 new_compare11(x0, x1) 14.05/5.59 new_compare(x0, x1, app(ty_Ratio, x2)) 14.05/5.59 new_compare(x0, x1, ty_Integer) 14.05/5.59 new_compare6(EQ, EQ) 14.05/5.59 new_compare(x0, x1, ty_Bool) 14.05/5.59 new_compare2(x0, x1) 14.05/5.59 new_compare(x0, x1, ty_Float) 14.05/5.59 new_compare(x0, x1, app(ty_Maybe, x2)) 14.05/5.59 new_compare13(x0, x1, x2, x3) 14.05/5.59 new_compare12(x0, x1) 14.05/5.59 new_compare6(LT, LT) 14.05/5.59 new_compare6(EQ, LT) 14.05/5.59 new_compare6(LT, EQ) 14.05/5.59 new_compare7(x0, x1) 14.05/5.59 new_compare0(x0, x1, x2, x3) 14.05/5.59 new_compare8(x0, x1) 14.05/5.59 new_compare(x0, x1, ty_Int) 14.05/5.59 new_compare6(GT, GT) 14.05/5.59 new_compare5(x0, x1, x2) 14.05/5.59 new_compare(x0, x1, ty_Char) 14.05/5.59 new_compare(x0, x1, app(ty_[], x2)) 14.05/5.59 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.05/5.59 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.05/5.59 new_compare6(GT, LT) 14.05/5.59 new_compare6(LT, GT) 14.05/5.59 new_compare4(x0, x1) 14.05/5.59 new_compare1(x0, x1, x2, x3, x4) 14.05/5.59 new_compare(x0, x1, ty_Double) 14.05/5.59 new_compare(x0, x1, ty_@0) 14.05/5.59 new_compare(x0, x1, ty_Ordering) 14.05/5.59 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (27) QReductionProof (EQUIVALENT) 14.05/5.59 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 14.05/5.59 14.05/5.59 new_compare10(x0, x1) 14.05/5.59 new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 14.05/5.59 new_compare3(x0, x1, x2) 14.05/5.59 new_compare9(x0, x1, x2) 14.05/5.59 new_compare11(x0, x1) 14.05/5.59 new_compare(x0, x1, app(ty_Ratio, x2)) 14.05/5.59 new_compare(x0, x1, ty_Integer) 14.05/5.59 new_compare(x0, x1, ty_Bool) 14.05/5.59 new_compare2(x0, x1) 14.05/5.59 new_compare(x0, x1, ty_Float) 14.05/5.59 new_compare(x0, x1, app(ty_Maybe, x2)) 14.05/5.59 new_compare13(x0, x1, x2, x3) 14.05/5.59 new_compare12(x0, x1) 14.05/5.59 new_compare7(x0, x1) 14.05/5.59 new_compare0(x0, x1, x2, x3) 14.05/5.59 new_compare8(x0, x1) 14.05/5.59 new_compare(x0, x1, ty_Int) 14.05/5.59 new_compare5(x0, x1, x2) 14.05/5.59 new_compare(x0, x1, ty_Char) 14.05/5.59 new_compare(x0, x1, app(ty_[], x2)) 14.05/5.59 new_compare(x0, x1, app(app(ty_@2, x2), x3)) 14.05/5.59 new_compare(x0, x1, app(app(ty_Either, x2), x3)) 14.05/5.59 new_compare4(x0, x1) 14.05/5.59 new_compare1(x0, x1, x2, x3, x4) 14.05/5.59 new_compare(x0, x1, ty_Double) 14.05/5.59 new_compare(x0, x1, ty_@0) 14.05/5.59 new_compare(x0, x1, ty_Ordering) 14.05/5.59 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (28) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge(:(x0, y1), :(x1, y3), ty_Ordering) -> new_merge0(x1, x0, y1, y3, new_compare6(x0, x1), ty_Ordering) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 14.05/5.59 The TRS R consists of the following rules: 14.05/5.59 14.05/5.59 new_compare6(GT, LT) -> GT 14.05/5.59 new_compare6(GT, EQ) -> GT 14.05/5.59 new_compare6(GT, GT) -> EQ 14.05/5.59 new_compare6(EQ, LT) -> GT 14.05/5.59 new_compare6(EQ, GT) -> LT 14.05/5.59 new_compare6(EQ, EQ) -> EQ 14.05/5.59 new_compare6(LT, EQ) -> LT 14.05/5.59 new_compare6(LT, GT) -> LT 14.05/5.59 new_compare6(LT, LT) -> EQ 14.05/5.59 14.05/5.59 The set Q consists of the following terms: 14.05/5.59 14.05/5.59 new_compare6(GT, EQ) 14.05/5.59 new_compare6(EQ, GT) 14.05/5.59 new_compare6(EQ, EQ) 14.05/5.59 new_compare6(LT, LT) 14.05/5.59 new_compare6(EQ, LT) 14.05/5.59 new_compare6(LT, EQ) 14.05/5.59 new_compare6(GT, GT) 14.05/5.59 new_compare6(GT, LT) 14.05/5.59 new_compare6(LT, GT) 14.05/5.59 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (29) TransformationProof (EQUIVALENT) 14.05/5.59 By narrowing [LPAR04] the rule new_merge(:(x0, y1), :(x1, y3), ty_Ordering) -> new_merge0(x1, x0, y1, y3, new_compare6(x0, x1), ty_Ordering) at position [4] we obtained the following new rules [LPAR04]: 14.05/5.59 14.05/5.59 (new_merge(:(GT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, GT, y1, y3, GT, ty_Ordering),new_merge(:(GT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, GT, y1, y3, GT, ty_Ordering)) 14.05/5.59 (new_merge(:(GT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, GT, y1, y3, GT, ty_Ordering),new_merge(:(GT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, GT, y1, y3, GT, ty_Ordering)) 14.05/5.59 (new_merge(:(GT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, GT, y1, y3, EQ, ty_Ordering),new_merge(:(GT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, GT, y1, y3, EQ, ty_Ordering)) 14.05/5.59 (new_merge(:(EQ, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, EQ, y1, y3, GT, ty_Ordering),new_merge(:(EQ, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, EQ, y1, y3, GT, ty_Ordering)) 14.05/5.59 (new_merge(:(EQ, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, EQ, y1, y3, LT, ty_Ordering),new_merge(:(EQ, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, EQ, y1, y3, LT, ty_Ordering)) 14.05/5.59 (new_merge(:(EQ, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, EQ, y1, y3, EQ, ty_Ordering),new_merge(:(EQ, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, EQ, y1, y3, EQ, ty_Ordering)) 14.05/5.59 (new_merge(:(LT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, LT, y1, y3, LT, ty_Ordering),new_merge(:(LT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, LT, y1, y3, LT, ty_Ordering)) 14.05/5.59 (new_merge(:(LT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, LT, y1, y3, LT, ty_Ordering),new_merge(:(LT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, LT, y1, y3, LT, ty_Ordering)) 14.05/5.59 (new_merge(:(LT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, LT, y1, y3, EQ, ty_Ordering),new_merge(:(LT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, LT, y1, y3, EQ, ty_Ordering)) 14.05/5.59 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (30) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge(:(GT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, GT, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, EQ, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, EQ, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, EQ, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, LT, y1, y3, EQ, ty_Ordering) 14.05/5.59 14.05/5.59 The TRS R consists of the following rules: 14.05/5.59 14.05/5.59 new_compare6(GT, LT) -> GT 14.05/5.59 new_compare6(GT, EQ) -> GT 14.05/5.59 new_compare6(GT, GT) -> EQ 14.05/5.59 new_compare6(EQ, LT) -> GT 14.05/5.59 new_compare6(EQ, GT) -> LT 14.05/5.59 new_compare6(EQ, EQ) -> EQ 14.05/5.59 new_compare6(LT, EQ) -> LT 14.05/5.59 new_compare6(LT, GT) -> LT 14.05/5.59 new_compare6(LT, LT) -> EQ 14.05/5.59 14.05/5.59 The set Q consists of the following terms: 14.05/5.59 14.05/5.59 new_compare6(GT, EQ) 14.05/5.59 new_compare6(EQ, GT) 14.05/5.59 new_compare6(EQ, EQ) 14.05/5.59 new_compare6(LT, LT) 14.05/5.59 new_compare6(EQ, LT) 14.05/5.59 new_compare6(LT, EQ) 14.05/5.59 new_compare6(GT, GT) 14.05/5.59 new_compare6(GT, LT) 14.05/5.59 new_compare6(LT, GT) 14.05/5.59 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (31) UsableRulesProof (EQUIVALENT) 14.05/5.59 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.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (32) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge(:(GT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, GT, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, EQ, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, EQ, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, EQ, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, LT, y1, y3, EQ, ty_Ordering) 14.05/5.59 14.05/5.59 R is empty. 14.05/5.59 The set Q consists of the following terms: 14.05/5.59 14.05/5.59 new_compare6(GT, EQ) 14.05/5.59 new_compare6(EQ, GT) 14.05/5.59 new_compare6(EQ, EQ) 14.05/5.59 new_compare6(LT, LT) 14.05/5.59 new_compare6(EQ, LT) 14.05/5.59 new_compare6(LT, EQ) 14.05/5.59 new_compare6(GT, GT) 14.05/5.59 new_compare6(GT, LT) 14.05/5.59 new_compare6(LT, GT) 14.05/5.59 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (33) QReductionProof (EQUIVALENT) 14.05/5.59 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 14.05/5.59 14.05/5.59 new_compare6(GT, EQ) 14.05/5.59 new_compare6(EQ, GT) 14.05/5.59 new_compare6(EQ, EQ) 14.05/5.59 new_compare6(LT, LT) 14.05/5.59 new_compare6(EQ, LT) 14.05/5.59 new_compare6(LT, EQ) 14.05/5.59 new_compare6(GT, GT) 14.05/5.59 new_compare6(GT, LT) 14.05/5.59 new_compare6(LT, GT) 14.05/5.59 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (34) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, EQ, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge(:(GT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, GT, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, EQ, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, EQ, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, EQ, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, LT, y1, y3, EQ, ty_Ordering) 14.05/5.59 14.05/5.59 R is empty. 14.05/5.59 Q is empty. 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (35) TransformationProof (EQUIVALENT) 14.05/5.59 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.05/5.59 14.05/5.59 (new_merge0(GT, GT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering),new_merge0(GT, GT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering)) 14.05/5.59 (new_merge0(EQ, EQ, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(EQ, z1), ty_Ordering),new_merge0(EQ, EQ, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(EQ, z1), ty_Ordering)) 14.05/5.59 (new_merge0(LT, LT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(LT, z1), ty_Ordering),new_merge0(LT, LT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(LT, z1), ty_Ordering)) 14.05/5.59 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (36) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, GT, ba) -> new_merge(:(vz45, vz46), vz47, ba) 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge(:(GT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, GT, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, EQ, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, EQ, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, EQ, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, LT, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge0(GT, GT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering) 14.05/5.59 new_merge0(EQ, EQ, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(EQ, z1), ty_Ordering) 14.05/5.59 new_merge0(LT, LT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(LT, z1), ty_Ordering) 14.05/5.59 14.05/5.59 R is empty. 14.05/5.59 Q is empty. 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (37) TransformationProof (EQUIVALENT) 14.05/5.59 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.05/5.59 14.05/5.59 (new_merge0(LT, GT, z0, z1, GT, ty_Ordering) -> new_merge(:(GT, z0), z1, ty_Ordering),new_merge0(LT, GT, z0, z1, GT, ty_Ordering) -> new_merge(:(GT, z0), z1, ty_Ordering)) 14.05/5.59 (new_merge0(EQ, GT, z0, z1, GT, ty_Ordering) -> new_merge(:(GT, z0), z1, ty_Ordering),new_merge0(EQ, GT, z0, z1, GT, ty_Ordering) -> new_merge(:(GT, z0), z1, ty_Ordering)) 14.05/5.59 (new_merge0(LT, EQ, z0, z1, GT, ty_Ordering) -> new_merge(:(EQ, z0), z1, ty_Ordering),new_merge0(LT, EQ, z0, z1, GT, ty_Ordering) -> new_merge(:(EQ, z0), z1, ty_Ordering)) 14.05/5.59 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (38) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge0(vz44, vz45, vz46, vz47, LT, ba) -> new_merge(vz46, :(vz44, vz47), ba) 14.05/5.59 new_merge(:(GT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, GT, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, EQ, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, EQ, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, EQ, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, LT, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge0(GT, GT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering) 14.05/5.59 new_merge0(EQ, EQ, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(EQ, z1), ty_Ordering) 14.05/5.59 new_merge0(LT, LT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(LT, z1), ty_Ordering) 14.05/5.59 new_merge0(LT, GT, z0, z1, GT, ty_Ordering) -> new_merge(:(GT, z0), z1, ty_Ordering) 14.05/5.59 new_merge0(EQ, GT, z0, z1, GT, ty_Ordering) -> new_merge(:(GT, z0), z1, ty_Ordering) 14.05/5.59 new_merge0(LT, EQ, z0, z1, GT, ty_Ordering) -> new_merge(:(EQ, z0), z1, ty_Ordering) 14.05/5.59 14.05/5.59 R is empty. 14.05/5.59 Q is empty. 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (39) TransformationProof (EQUIVALENT) 14.05/5.59 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.05/5.59 14.05/5.59 (new_merge0(GT, EQ, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering),new_merge0(GT, EQ, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering)) 14.05/5.59 (new_merge0(EQ, LT, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(EQ, z1), ty_Ordering),new_merge0(EQ, LT, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(EQ, z1), ty_Ordering)) 14.05/5.59 (new_merge0(GT, LT, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering),new_merge0(GT, LT, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering)) 14.05/5.59 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (40) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge(:(GT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, GT, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, EQ, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, EQ, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, EQ, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, LT, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge0(GT, GT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering) 14.05/5.59 new_merge0(EQ, EQ, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(EQ, z1), ty_Ordering) 14.05/5.59 new_merge0(LT, LT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(LT, z1), ty_Ordering) 14.05/5.59 new_merge0(LT, GT, z0, z1, GT, ty_Ordering) -> new_merge(:(GT, z0), z1, ty_Ordering) 14.05/5.59 new_merge0(EQ, GT, z0, z1, GT, ty_Ordering) -> new_merge(:(GT, z0), z1, ty_Ordering) 14.05/5.59 new_merge0(LT, EQ, z0, z1, GT, ty_Ordering) -> new_merge(:(EQ, z0), z1, ty_Ordering) 14.05/5.59 new_merge0(GT, EQ, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering) 14.05/5.59 new_merge0(EQ, LT, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(EQ, z1), ty_Ordering) 14.05/5.59 new_merge0(GT, LT, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering) 14.05/5.59 14.05/5.59 R is empty. 14.05/5.59 Q is empty. 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (41) DependencyGraphProof (EQUIVALENT) 14.05/5.59 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 5 SCCs. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (42) 14.05/5.59 Complex Obligation (AND) 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (43) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge0(GT, GT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, GT, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge(:(EQ, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, EQ, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge0(GT, EQ, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge0(GT, LT, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering) 14.05/5.59 14.05/5.59 R is empty. 14.05/5.59 Q is empty. 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (44) QDPSizeChangeProof (EQUIVALENT) 14.05/5.59 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.05/5.59 14.05/5.59 From the DPs we obtained the following set of size-change graphs: 14.05/5.59 *new_merge(:(GT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, GT, y1, y3, EQ, ty_Ordering) 14.05/5.59 The graph contains the following edges 1 > 1, 2 > 1, 1 > 2, 2 > 2, 1 > 3, 2 > 4, 3 >= 6 14.05/5.59 14.05/5.59 14.05/5.59 *new_merge0(GT, GT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering) 14.05/5.59 The graph contains the following edges 3 >= 1, 6 >= 3 14.05/5.59 14.05/5.59 14.05/5.59 *new_merge0(GT, EQ, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering) 14.05/5.59 The graph contains the following edges 3 >= 1, 6 >= 3 14.05/5.59 14.05/5.59 14.05/5.59 *new_merge0(GT, LT, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(GT, z1), ty_Ordering) 14.05/5.59 The graph contains the following edges 3 >= 1, 6 >= 3 14.05/5.59 14.05/5.59 14.05/5.59 *new_merge(:(EQ, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, EQ, y1, y3, LT, ty_Ordering) 14.05/5.59 The graph contains the following edges 2 > 1, 1 > 2, 1 > 3, 2 > 4, 3 >= 6 14.05/5.59 14.05/5.59 14.05/5.59 *new_merge(:(LT, y1), :(GT, y3), ty_Ordering) -> new_merge0(GT, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 The graph contains the following edges 2 > 1, 1 > 2, 1 > 3, 2 > 4, 1 > 5, 3 >= 6 14.05/5.59 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (45) 14.05/5.59 YES 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (46) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge0(LT, GT, z0, z1, GT, ty_Ordering) -> new_merge(:(GT, z0), z1, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge(:(GT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge0(EQ, GT, z0, z1, GT, ty_Ordering) -> new_merge(:(GT, z0), z1, ty_Ordering) 14.05/5.59 14.05/5.59 R is empty. 14.05/5.59 Q is empty. 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (47) QDPSizeChangeProof (EQUIVALENT) 14.05/5.59 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.05/5.59 14.05/5.59 From the DPs we obtained the following set of size-change graphs: 14.05/5.59 *new_merge(:(GT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 The graph contains the following edges 2 > 1, 1 > 2, 1 > 3, 2 > 4, 1 > 5, 3 >= 6 14.05/5.59 14.05/5.59 14.05/5.59 *new_merge(:(GT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, GT, y1, y3, GT, ty_Ordering) 14.05/5.59 The graph contains the following edges 2 > 1, 1 > 2, 1 > 3, 2 > 4, 1 > 5, 3 >= 6 14.05/5.59 14.05/5.59 14.05/5.59 *new_merge0(LT, GT, z0, z1, GT, ty_Ordering) -> new_merge(:(GT, z0), z1, ty_Ordering) 14.05/5.59 The graph contains the following edges 4 >= 2, 6 >= 3 14.05/5.59 14.05/5.59 14.05/5.59 *new_merge0(EQ, GT, z0, z1, GT, ty_Ordering) -> new_merge(:(GT, z0), z1, ty_Ordering) 14.05/5.59 The graph contains the following edges 4 >= 2, 6 >= 3 14.05/5.59 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (48) 14.05/5.59 YES 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (49) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge(:(EQ, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, EQ, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge0(EQ, EQ, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(EQ, z1), ty_Ordering) 14.05/5.59 new_merge(:(LT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 new_merge0(EQ, LT, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(EQ, z1), ty_Ordering) 14.05/5.59 14.05/5.59 R is empty. 14.05/5.59 Q is empty. 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (50) QDPSizeChangeProof (EQUIVALENT) 14.05/5.59 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.05/5.59 14.05/5.59 From the DPs we obtained the following set of size-change graphs: 14.05/5.59 *new_merge0(EQ, EQ, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(EQ, z1), ty_Ordering) 14.05/5.59 The graph contains the following edges 3 >= 1, 6 >= 3 14.05/5.59 14.05/5.59 14.05/5.59 *new_merge0(EQ, LT, z0, z1, LT, ty_Ordering) -> new_merge(z0, :(EQ, z1), ty_Ordering) 14.05/5.59 The graph contains the following edges 3 >= 1, 6 >= 3 14.05/5.59 14.05/5.59 14.05/5.59 *new_merge(:(EQ, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, EQ, y1, y3, EQ, ty_Ordering) 14.05/5.59 The graph contains the following edges 1 > 1, 2 > 1, 1 > 2, 2 > 2, 1 > 3, 2 > 4, 1 > 5, 2 > 5, 3 >= 6 14.05/5.59 14.05/5.59 14.05/5.59 *new_merge(:(LT, y1), :(EQ, y3), ty_Ordering) -> new_merge0(EQ, LT, y1, y3, LT, ty_Ordering) 14.05/5.59 The graph contains the following edges 2 > 1, 1 > 2, 1 > 3, 2 > 4, 1 > 5, 3 >= 6 14.05/5.59 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (51) 14.05/5.59 YES 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (52) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge(:(EQ, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, EQ, y1, y3, GT, ty_Ordering) 14.05/5.59 new_merge0(LT, EQ, z0, z1, GT, ty_Ordering) -> new_merge(:(EQ, z0), z1, ty_Ordering) 14.05/5.59 14.05/5.59 R is empty. 14.05/5.59 Q is empty. 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (53) QDPSizeChangeProof (EQUIVALENT) 14.05/5.59 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.05/5.59 14.05/5.59 From the DPs we obtained the following set of size-change graphs: 14.05/5.59 *new_merge0(LT, EQ, z0, z1, GT, ty_Ordering) -> new_merge(:(EQ, z0), z1, ty_Ordering) 14.05/5.59 The graph contains the following edges 4 >= 2, 6 >= 3 14.05/5.59 14.05/5.59 14.05/5.59 *new_merge(:(EQ, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, EQ, y1, y3, GT, ty_Ordering) 14.05/5.59 The graph contains the following edges 2 > 1, 1 > 2, 1 > 3, 2 > 4, 3 >= 6 14.05/5.59 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (54) 14.05/5.59 YES 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (55) 14.05/5.59 Obligation: 14.05/5.59 Q DP problem: 14.05/5.59 The TRS P consists of the following rules: 14.05/5.59 14.05/5.59 new_merge(:(LT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, LT, y1, y3, EQ, ty_Ordering) 14.05/5.59 new_merge0(LT, LT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(LT, z1), ty_Ordering) 14.05/5.59 14.05/5.59 R is empty. 14.05/5.59 Q is empty. 14.05/5.59 We have to consider all minimal (P,Q,R)-chains. 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (56) QDPSizeChangeProof (EQUIVALENT) 14.05/5.59 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.05/5.59 14.05/5.59 From the DPs we obtained the following set of size-change graphs: 14.05/5.59 *new_merge0(LT, LT, z0, z1, EQ, ty_Ordering) -> new_merge(z0, :(LT, z1), ty_Ordering) 14.05/5.59 The graph contains the following edges 3 >= 1, 6 >= 3 14.05/5.59 14.05/5.59 14.05/5.59 *new_merge(:(LT, y1), :(LT, y3), ty_Ordering) -> new_merge0(LT, LT, y1, y3, EQ, ty_Ordering) 14.05/5.59 The graph contains the following edges 1 > 1, 2 > 1, 1 > 2, 2 > 2, 1 > 3, 2 > 4, 3 >= 6 14.05/5.59 14.05/5.59 14.05/5.59 ---------------------------------------- 14.05/5.59 14.05/5.59 (57) 14.05/5.59 YES 14.29/5.63 EOF