/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.hs /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.hs # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty H-Termination with start terms of the given HASKELL could be proven: (0) HASKELL (1) CR [EQUIVALENT, 0 ms] (2) HASKELL (3) BR [EQUIVALENT, 0 ms] (4) HASKELL (5) COR [EQUIVALENT, 18 ms] (6) HASKELL (7) Narrow [SOUND, 0 ms] (8) AND (9) QDP (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] (11) YES (12) QDP (13) DependencyGraphProof [EQUIVALENT, 0 ms] (14) QDP (15) QDPSizeChangeProof [EQUIVALENT, 0 ms] (16) YES (17) QDP (18) QDPSizeChangeProof [EQUIVALENT, 0 ms] (19) YES (20) QDP (21) QDPOrderProof [EQUIVALENT, 34 ms] (22) QDP (23) DependencyGraphProof [EQUIVALENT, 0 ms] (24) TRUE (25) QDP (26) QDPSizeChangeProof [EQUIVALENT, 0 ms] (27) YES ---------------------------------------- (0) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; merge cmp xs [] = xs; merge cmp [] ys = ys; merge cmp (x : xs) (y : ys) = case x `cmp` y of { GT-> y : merge cmp (x : xs) ys; _-> x : merge cmp xs (y : ys); } ; merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; merge_pairs cmp [] = []; merge_pairs cmp (xs : []) = xs : []; merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; mergesort :: (a -> a -> Ordering) -> [a] -> [a]; mergesort cmp = mergesort' cmp . map wrap; mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; mergesort' cmp [] = []; mergesort' cmp (xs : []) = xs; mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); sort :: Ord a => [a] -> [a]; sort l = mergesort compare l; wrap :: a -> [a]; wrap x = x : []; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (1) CR (EQUIVALENT) Case Reductions: The following Case expression "case cmp x y of { GT -> y : merge cmp (x : xs) ys; _ -> x : merge cmp xs (y : ys)} " is transformed to "merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; merge0 y cmp x xs ys _ = x : merge cmp xs (y : ys); " ---------------------------------------- (2) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; merge cmp xs [] = xs; merge cmp [] ys = ys; merge cmp (x : xs) (y : ys) = merge0 y cmp x xs ys (x `cmp` y); merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; merge0 y cmp x xs ys _ = x : merge cmp xs (y : ys); merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; merge_pairs cmp [] = []; merge_pairs cmp (xs : []) = xs : []; merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; mergesort :: (a -> a -> Ordering) -> [a] -> [a]; mergesort cmp = mergesort' cmp . map wrap; mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; mergesort' cmp [] = []; mergesort' cmp (xs : []) = xs; mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); sort :: Ord a => [a] -> [a]; sort l = mergesort compare l; wrap :: a -> [a]; wrap x = x : []; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (3) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (4) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; merge cmp xs [] = xs; merge cmp [] ys = ys; merge cmp (x : xs) (y : ys) = merge0 y cmp x xs ys (x `cmp` y); merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; merge0 y cmp x xs ys vy = x : merge cmp xs (y : ys); merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; merge_pairs cmp [] = []; merge_pairs cmp (xs : []) = xs : []; merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; mergesort :: (a -> a -> Ordering) -> [a] -> [a]; mergesort cmp = mergesort' cmp . map wrap; mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; mergesort' cmp [] = []; mergesort' cmp (xs : []) = xs; mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); sort :: Ord a => [a] -> [a]; sort l = mergesort compare l; wrap :: a -> [a]; wrap x = x : []; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (5) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " ---------------------------------------- (6) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]; merge cmp xs [] = xs; merge cmp [] ys = ys; merge cmp (x : xs) (y : ys) = merge0 y cmp x xs ys (x `cmp` y); merge0 y cmp x xs ys GT = y : merge cmp (x : xs) ys; merge0 y cmp x xs ys vy = x : merge cmp xs (y : ys); merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]; merge_pairs cmp [] = []; merge_pairs cmp (xs : []) = xs : []; merge_pairs cmp (xs : ys : xss) = merge cmp xs ys : merge_pairs cmp xss; mergesort :: (a -> a -> Ordering) -> [a] -> [a]; mergesort cmp = mergesort' cmp . map wrap; mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]; mergesort' cmp [] = []; mergesort' cmp (xs : []) = xs; mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss); sort :: Ord a => [a] -> [a]; sort l = mergesort compare l; wrap :: a -> [a]; wrap x = x : []; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (7) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="List.sort",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="List.sort vz3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 4[label="List.mergesort compare vz3",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="(List.mergesort' compare) . map List.wrap",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 6[label="List.mergesort' compare (map List.wrap vz3)",fontsize=16,color="burlywood",shape="box"];1464[label="vz3/vz30 : vz31",fontsize=10,color="white",style="solid",shape="box"];6 -> 1464[label="",style="solid", color="burlywood", weight=9]; 1464 -> 7[label="",style="solid", color="burlywood", weight=3]; 1465[label="vz3/[]",fontsize=10,color="white",style="solid",shape="box"];6 -> 1465[label="",style="solid", color="burlywood", weight=9]; 1465 -> 8[label="",style="solid", color="burlywood", weight=3]; 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]; 8[label="List.mergesort' compare (map List.wrap [])",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 9[label="List.mergesort' compare (List.wrap vz30 : map List.wrap vz31)",fontsize=16,color="burlywood",shape="box"];1466[label="vz31/vz310 : vz311",fontsize=10,color="white",style="solid",shape="box"];9 -> 1466[label="",style="solid", color="burlywood", weight=9]; 1466 -> 11[label="",style="solid", color="burlywood", weight=3]; 1467[label="vz31/[]",fontsize=10,color="white",style="solid",shape="box"];9 -> 1467[label="",style="solid", color="burlywood", weight=9]; 1467 -> 12[label="",style="solid", color="burlywood", weight=3]; 10[label="List.mergesort' compare []",fontsize=16,color="black",shape="box"];10 -> 13[label="",style="solid", color="black", weight=3]; 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]; 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]; 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]; 15[label="List.mergesort' compare (List.wrap vz30 : [])",fontsize=16,color="black",shape="box"];15 -> 17[label="",style="solid", color="black", weight=3]; 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]; 17[label="List.wrap vz30",fontsize=16,color="black",shape="triangle"];17 -> 19[label="",style="solid", color="black", weight=3]; 18 -> 1042[label="",style="dashed", color="red", weight=0]; 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 -> 1043[label="",style="dashed", color="magenta", weight=3]; 18 -> 1044[label="",style="dashed", color="magenta", weight=3]; 19[label="vz30 : []",fontsize=16,color="green",shape="box"];1043 -> 1197[label="",style="dashed", color="red", weight=0]; 1043[label="List.merge compare (List.wrap vz30) (List.wrap vz310)",fontsize=16,color="magenta"];1043 -> 1198[label="",style="dashed", color="magenta", weight=3]; 1043 -> 1199[label="",style="dashed", color="magenta", weight=3]; 1044[label="map List.wrap vz311",fontsize=16,color="burlywood",shape="triangle"];1468[label="vz311/vz3110 : vz3111",fontsize=10,color="white",style="solid",shape="box"];1044 -> 1468[label="",style="solid", color="burlywood", weight=9]; 1468 -> 1200[label="",style="solid", color="burlywood", weight=3]; 1469[label="vz311/[]",fontsize=10,color="white",style="solid",shape="box"];1044 -> 1469[label="",style="solid", color="burlywood", weight=9]; 1469 -> 1201[label="",style="solid", color="burlywood", weight=3]; 1042[label="List.mergesort' compare (vz117 : List.merge_pairs compare vz118)",fontsize=16,color="burlywood",shape="triangle"];1470[label="vz118/vz1180 : vz1181",fontsize=10,color="white",style="solid",shape="box"];1042 -> 1470[label="",style="solid", color="burlywood", weight=9]; 1470 -> 1202[label="",style="solid", color="burlywood", weight=3]; 1471[label="vz118/[]",fontsize=10,color="white",style="solid",shape="box"];1042 -> 1471[label="",style="solid", color="burlywood", weight=9]; 1471 -> 1203[label="",style="solid", color="burlywood", weight=3]; 1198 -> 17[label="",style="dashed", color="red", weight=0]; 1198[label="List.wrap vz310",fontsize=16,color="magenta"];1198 -> 1204[label="",style="dashed", color="magenta", weight=3]; 1199 -> 17[label="",style="dashed", color="red", weight=0]; 1199[label="List.wrap vz30",fontsize=16,color="magenta"];1197[label="List.merge compare vz120 vz119",fontsize=16,color="burlywood",shape="triangle"];1472[label="vz119/vz1190 : vz1191",fontsize=10,color="white",style="solid",shape="box"];1197 -> 1472[label="",style="solid", color="burlywood", weight=9]; 1472 -> 1205[label="",style="solid", color="burlywood", weight=3]; 1473[label="vz119/[]",fontsize=10,color="white",style="solid",shape="box"];1197 -> 1473[label="",style="solid", color="burlywood", weight=9]; 1473 -> 1206[label="",style="solid", color="burlywood", weight=3]; 1200[label="map List.wrap (vz3110 : vz3111)",fontsize=16,color="black",shape="box"];1200 -> 1207[label="",style="solid", color="black", weight=3]; 1201[label="map List.wrap []",fontsize=16,color="black",shape="box"];1201 -> 1208[label="",style="solid", color="black", weight=3]; 1202[label="List.mergesort' compare (vz117 : List.merge_pairs compare (vz1180 : vz1181))",fontsize=16,color="burlywood",shape="box"];1474[label="vz1181/vz11810 : vz11811",fontsize=10,color="white",style="solid",shape="box"];1202 -> 1474[label="",style="solid", color="burlywood", weight=9]; 1474 -> 1209[label="",style="solid", color="burlywood", weight=3]; 1475[label="vz1181/[]",fontsize=10,color="white",style="solid",shape="box"];1202 -> 1475[label="",style="solid", color="burlywood", weight=9]; 1475 -> 1210[label="",style="solid", color="burlywood", weight=3]; 1203[label="List.mergesort' compare (vz117 : List.merge_pairs compare [])",fontsize=16,color="black",shape="box"];1203 -> 1211[label="",style="solid", color="black", weight=3]; 1204[label="vz310",fontsize=16,color="green",shape="box"];1205[label="List.merge compare vz120 (vz1190 : vz1191)",fontsize=16,color="burlywood",shape="box"];1476[label="vz120/vz1200 : vz1201",fontsize=10,color="white",style="solid",shape="box"];1205 -> 1476[label="",style="solid", color="burlywood", weight=9]; 1476 -> 1212[label="",style="solid", color="burlywood", weight=3]; 1477[label="vz120/[]",fontsize=10,color="white",style="solid",shape="box"];1205 -> 1477[label="",style="solid", color="burlywood", weight=9]; 1477 -> 1213[label="",style="solid", color="burlywood", weight=3]; 1206[label="List.merge compare vz120 []",fontsize=16,color="black",shape="box"];1206 -> 1214[label="",style="solid", color="black", weight=3]; 1207[label="List.wrap vz3110 : map List.wrap vz3111",fontsize=16,color="green",shape="box"];1207 -> 1215[label="",style="dashed", color="green", weight=3]; 1207 -> 1216[label="",style="dashed", color="green", weight=3]; 1208[label="[]",fontsize=16,color="green",shape="box"];1209[label="List.mergesort' compare (vz117 : List.merge_pairs compare (vz1180 : vz11810 : vz11811))",fontsize=16,color="black",shape="box"];1209 -> 1217[label="",style="solid", color="black", weight=3]; 1210[label="List.mergesort' compare (vz117 : List.merge_pairs compare (vz1180 : []))",fontsize=16,color="black",shape="box"];1210 -> 1218[label="",style="solid", color="black", weight=3]; 1211[label="List.mergesort' compare (vz117 : [])",fontsize=16,color="black",shape="box"];1211 -> 1219[label="",style="solid", color="black", weight=3]; 1212[label="List.merge compare (vz1200 : vz1201) (vz1190 : vz1191)",fontsize=16,color="black",shape="box"];1212 -> 1220[label="",style="solid", color="black", weight=3]; 1213[label="List.merge compare [] (vz1190 : vz1191)",fontsize=16,color="black",shape="box"];1213 -> 1221[label="",style="solid", color="black", weight=3]; 1214[label="vz120",fontsize=16,color="green",shape="box"];1215 -> 17[label="",style="dashed", color="red", weight=0]; 1215[label="List.wrap vz3110",fontsize=16,color="magenta"];1215 -> 1222[label="",style="dashed", color="magenta", weight=3]; 1216 -> 1044[label="",style="dashed", color="red", weight=0]; 1216[label="map List.wrap vz3111",fontsize=16,color="magenta"];1216 -> 1223[label="",style="dashed", color="magenta", weight=3]; 1217[label="List.mergesort' compare (vz117 : List.merge compare vz1180 vz11810 : List.merge_pairs compare vz11811)",fontsize=16,color="black",shape="box"];1217 -> 1224[label="",style="solid", color="black", weight=3]; 1218[label="List.mergesort' compare (vz117 : vz1180 : [])",fontsize=16,color="black",shape="box"];1218 -> 1225[label="",style="solid", color="black", weight=3]; 1219[label="vz117",fontsize=16,color="green",shape="box"];1220 -> 1298[label="",style="dashed", color="red", weight=0]; 1220[label="List.merge0 vz1190 compare vz1200 vz1201 vz1191 (compare vz1200 vz1190)",fontsize=16,color="magenta"];1220 -> 1299[label="",style="dashed", color="magenta", weight=3]; 1220 -> 1300[label="",style="dashed", color="magenta", weight=3]; 1220 -> 1301[label="",style="dashed", color="magenta", weight=3]; 1220 -> 1302[label="",style="dashed", color="magenta", weight=3]; 1220 -> 1303[label="",style="dashed", color="magenta", weight=3]; 1221[label="vz1190 : vz1191",fontsize=16,color="green",shape="box"];1222[label="vz3110",fontsize=16,color="green",shape="box"];1223[label="vz3111",fontsize=16,color="green",shape="box"];1224[label="List.mergesort' compare (List.merge_pairs compare (vz117 : List.merge compare vz1180 vz11810 : List.merge_pairs compare vz11811))",fontsize=16,color="black",shape="box"];1224 -> 1227[label="",style="solid", color="black", weight=3]; 1225[label="List.mergesort' compare (List.merge_pairs compare (vz117 : vz1180 : []))",fontsize=16,color="black",shape="box"];1225 -> 1228[label="",style="solid", color="black", weight=3]; 1299[label="vz1191",fontsize=16,color="green",shape="box"];1300[label="vz1200",fontsize=16,color="green",shape="box"];1301[label="compare vz1200 vz1190",fontsize=16,color="black",shape="triangle"];1301 -> 1314[label="",style="solid", color="black", weight=3]; 1302[label="vz1190",fontsize=16,color="green",shape="box"];1303[label="vz1201",fontsize=16,color="green",shape="box"];1298[label="List.merge0 vz127 compare vz128 vz129 vz130 vz131",fontsize=16,color="burlywood",shape="triangle"];1478[label="vz131/LT",fontsize=10,color="white",style="solid",shape="box"];1298 -> 1478[label="",style="solid", color="burlywood", weight=9]; 1478 -> 1315[label="",style="solid", color="burlywood", weight=3]; 1479[label="vz131/EQ",fontsize=10,color="white",style="solid",shape="box"];1298 -> 1479[label="",style="solid", color="burlywood", weight=9]; 1479 -> 1316[label="",style="solid", color="burlywood", weight=3]; 1480[label="vz131/GT",fontsize=10,color="white",style="solid",shape="box"];1298 -> 1480[label="",style="solid", color="burlywood", weight=9]; 1480 -> 1317[label="",style="solid", color="burlywood", weight=3]; 1227 -> 1042[label="",style="dashed", color="red", weight=0]; 1227[label="List.mergesort' compare (List.merge compare vz117 (List.merge compare vz1180 vz11810) : List.merge_pairs compare (List.merge_pairs compare vz11811))",fontsize=16,color="magenta"];1227 -> 1231[label="",style="dashed", color="magenta", weight=3]; 1227 -> 1232[label="",style="dashed", color="magenta", weight=3]; 1228 -> 1042[label="",style="dashed", color="red", weight=0]; 1228[label="List.mergesort' compare (List.merge compare vz117 vz1180 : List.merge_pairs compare [])",fontsize=16,color="magenta"];1228 -> 1233[label="",style="dashed", color="magenta", weight=3]; 1228 -> 1234[label="",style="dashed", color="magenta", weight=3]; 1314[label="primCmpInt vz1200 vz1190",fontsize=16,color="burlywood",shape="box"];1481[label="vz1200/Pos vz12000",fontsize=10,color="white",style="solid",shape="box"];1314 -> 1481[label="",style="solid", color="burlywood", weight=9]; 1481 -> 1349[label="",style="solid", color="burlywood", weight=3]; 1482[label="vz1200/Neg vz12000",fontsize=10,color="white",style="solid",shape="box"];1314 -> 1482[label="",style="solid", color="burlywood", weight=9]; 1482 -> 1350[label="",style="solid", color="burlywood", weight=3]; 1315[label="List.merge0 vz127 compare vz128 vz129 vz130 LT",fontsize=16,color="black",shape="box"];1315 -> 1351[label="",style="solid", color="black", weight=3]; 1316[label="List.merge0 vz127 compare vz128 vz129 vz130 EQ",fontsize=16,color="black",shape="box"];1316 -> 1352[label="",style="solid", color="black", weight=3]; 1317[label="List.merge0 vz127 compare vz128 vz129 vz130 GT",fontsize=16,color="black",shape="box"];1317 -> 1353[label="",style="solid", color="black", weight=3]; 1231[label="List.merge compare vz117 (List.merge compare vz1180 vz11810)",fontsize=16,color="burlywood",shape="box"];1483[label="vz11810/vz118100 : vz118101",fontsize=10,color="white",style="solid",shape="box"];1231 -> 1483[label="",style="solid", color="burlywood", weight=9]; 1483 -> 1239[label="",style="solid", color="burlywood", weight=3]; 1484[label="vz11810/[]",fontsize=10,color="white",style="solid",shape="box"];1231 -> 1484[label="",style="solid", color="burlywood", weight=9]; 1484 -> 1240[label="",style="solid", color="burlywood", weight=3]; 1232[label="List.merge_pairs compare vz11811",fontsize=16,color="burlywood",shape="triangle"];1485[label="vz11811/vz118110 : vz118111",fontsize=10,color="white",style="solid",shape="box"];1232 -> 1485[label="",style="solid", color="burlywood", weight=9]; 1485 -> 1241[label="",style="solid", color="burlywood", weight=3]; 1486[label="vz11811/[]",fontsize=10,color="white",style="solid",shape="box"];1232 -> 1486[label="",style="solid", color="burlywood", weight=9]; 1486 -> 1242[label="",style="solid", color="burlywood", weight=3]; 1233[label="List.merge compare vz117 vz1180",fontsize=16,color="burlywood",shape="triangle"];1487[label="vz1180/vz11800 : vz11801",fontsize=10,color="white",style="solid",shape="box"];1233 -> 1487[label="",style="solid", color="burlywood", weight=9]; 1487 -> 1243[label="",style="solid", color="burlywood", weight=3]; 1488[label="vz1180/[]",fontsize=10,color="white",style="solid",shape="box"];1233 -> 1488[label="",style="solid", color="burlywood", weight=9]; 1488 -> 1244[label="",style="solid", color="burlywood", weight=3]; 1234[label="[]",fontsize=16,color="green",shape="box"];1349[label="primCmpInt (Pos vz12000) vz1190",fontsize=16,color="burlywood",shape="box"];1489[label="vz12000/Succ vz120000",fontsize=10,color="white",style="solid",shape="box"];1349 -> 1489[label="",style="solid", color="burlywood", weight=9]; 1489 -> 1397[label="",style="solid", color="burlywood", weight=3]; 1490[label="vz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];1349 -> 1490[label="",style="solid", color="burlywood", weight=9]; 1490 -> 1398[label="",style="solid", color="burlywood", weight=3]; 1350[label="primCmpInt (Neg vz12000) vz1190",fontsize=16,color="burlywood",shape="box"];1491[label="vz12000/Succ vz120000",fontsize=10,color="white",style="solid",shape="box"];1350 -> 1491[label="",style="solid", color="burlywood", weight=9]; 1491 -> 1399[label="",style="solid", color="burlywood", weight=3]; 1492[label="vz12000/Zero",fontsize=10,color="white",style="solid",shape="box"];1350 -> 1492[label="",style="solid", color="burlywood", weight=9]; 1492 -> 1400[label="",style="solid", color="burlywood", weight=3]; 1351[label="vz128 : List.merge compare vz129 (vz127 : vz130)",fontsize=16,color="green",shape="box"];1351 -> 1401[label="",style="dashed", color="green", weight=3]; 1352[label="vz128 : List.merge compare vz129 (vz127 : vz130)",fontsize=16,color="green",shape="box"];1352 -> 1402[label="",style="dashed", color="green", weight=3]; 1353[label="vz127 : List.merge compare (vz128 : vz129) vz130",fontsize=16,color="green",shape="box"];1353 -> 1403[label="",style="dashed", color="green", weight=3]; 1239[label="List.merge compare vz117 (List.merge compare vz1180 (vz118100 : vz118101))",fontsize=16,color="burlywood",shape="box"];1493[label="vz1180/vz11800 : vz11801",fontsize=10,color="white",style="solid",shape="box"];1239 -> 1493[label="",style="solid", color="burlywood", weight=9]; 1493 -> 1253[label="",style="solid", color="burlywood", weight=3]; 1494[label="vz1180/[]",fontsize=10,color="white",style="solid",shape="box"];1239 -> 1494[label="",style="solid", color="burlywood", weight=9]; 1494 -> 1254[label="",style="solid", color="burlywood", weight=3]; 1240[label="List.merge compare vz117 (List.merge compare vz1180 [])",fontsize=16,color="black",shape="box"];1240 -> 1255[label="",style="solid", color="black", weight=3]; 1241[label="List.merge_pairs compare (vz118110 : vz118111)",fontsize=16,color="burlywood",shape="box"];1495[label="vz118111/vz1181110 : vz1181111",fontsize=10,color="white",style="solid",shape="box"];1241 -> 1495[label="",style="solid", color="burlywood", weight=9]; 1495 -> 1256[label="",style="solid", color="burlywood", weight=3]; 1496[label="vz118111/[]",fontsize=10,color="white",style="solid",shape="box"];1241 -> 1496[label="",style="solid", color="burlywood", weight=9]; 1496 -> 1257[label="",style="solid", color="burlywood", weight=3]; 1242[label="List.merge_pairs compare []",fontsize=16,color="black",shape="box"];1242 -> 1258[label="",style="solid", color="black", weight=3]; 1243[label="List.merge compare vz117 (vz11800 : vz11801)",fontsize=16,color="burlywood",shape="box"];1497[label="vz117/vz1170 : vz1171",fontsize=10,color="white",style="solid",shape="box"];1243 -> 1497[label="",style="solid", color="burlywood", weight=9]; 1497 -> 1259[label="",style="solid", color="burlywood", weight=3]; 1498[label="vz117/[]",fontsize=10,color="white",style="solid",shape="box"];1243 -> 1498[label="",style="solid", color="burlywood", weight=9]; 1498 -> 1260[label="",style="solid", color="burlywood", weight=3]; 1244[label="List.merge compare vz117 []",fontsize=16,color="black",shape="box"];1244 -> 1261[label="",style="solid", color="black", weight=3]; 1397[label="primCmpInt (Pos (Succ vz120000)) vz1190",fontsize=16,color="burlywood",shape="box"];1499[label="vz1190/Pos vz11900",fontsize=10,color="white",style="solid",shape="box"];1397 -> 1499[label="",style="solid", color="burlywood", weight=9]; 1499 -> 1404[label="",style="solid", color="burlywood", weight=3]; 1500[label="vz1190/Neg vz11900",fontsize=10,color="white",style="solid",shape="box"];1397 -> 1500[label="",style="solid", color="burlywood", weight=9]; 1500 -> 1405[label="",style="solid", color="burlywood", weight=3]; 1398[label="primCmpInt (Pos Zero) vz1190",fontsize=16,color="burlywood",shape="box"];1501[label="vz1190/Pos vz11900",fontsize=10,color="white",style="solid",shape="box"];1398 -> 1501[label="",style="solid", color="burlywood", weight=9]; 1501 -> 1406[label="",style="solid", color="burlywood", weight=3]; 1502[label="vz1190/Neg vz11900",fontsize=10,color="white",style="solid",shape="box"];1398 -> 1502[label="",style="solid", color="burlywood", weight=9]; 1502 -> 1407[label="",style="solid", color="burlywood", weight=3]; 1399[label="primCmpInt (Neg (Succ vz120000)) vz1190",fontsize=16,color="burlywood",shape="box"];1503[label="vz1190/Pos vz11900",fontsize=10,color="white",style="solid",shape="box"];1399 -> 1503[label="",style="solid", color="burlywood", weight=9]; 1503 -> 1408[label="",style="solid", color="burlywood", weight=3]; 1504[label="vz1190/Neg vz11900",fontsize=10,color="white",style="solid",shape="box"];1399 -> 1504[label="",style="solid", color="burlywood", weight=9]; 1504 -> 1409[label="",style="solid", color="burlywood", weight=3]; 1400[label="primCmpInt (Neg Zero) vz1190",fontsize=16,color="burlywood",shape="box"];1505[label="vz1190/Pos vz11900",fontsize=10,color="white",style="solid",shape="box"];1400 -> 1505[label="",style="solid", color="burlywood", weight=9]; 1505 -> 1410[label="",style="solid", color="burlywood", weight=3]; 1506[label="vz1190/Neg vz11900",fontsize=10,color="white",style="solid",shape="box"];1400 -> 1506[label="",style="solid", color="burlywood", weight=9]; 1506 -> 1411[label="",style="solid", color="burlywood", weight=3]; 1401 -> 1233[label="",style="dashed", color="red", weight=0]; 1401[label="List.merge compare vz129 (vz127 : vz130)",fontsize=16,color="magenta"];1401 -> 1412[label="",style="dashed", color="magenta", weight=3]; 1401 -> 1413[label="",style="dashed", color="magenta", weight=3]; 1402 -> 1233[label="",style="dashed", color="red", weight=0]; 1402[label="List.merge compare vz129 (vz127 : vz130)",fontsize=16,color="magenta"];1402 -> 1414[label="",style="dashed", color="magenta", weight=3]; 1402 -> 1415[label="",style="dashed", color="magenta", weight=3]; 1403 -> 1233[label="",style="dashed", color="red", weight=0]; 1403[label="List.merge compare (vz128 : vz129) vz130",fontsize=16,color="magenta"];1403 -> 1416[label="",style="dashed", color="magenta", weight=3]; 1403 -> 1417[label="",style="dashed", color="magenta", weight=3]; 1253[label="List.merge compare vz117 (List.merge compare (vz11800 : vz11801) (vz118100 : vz118101))",fontsize=16,color="black",shape="box"];1253 -> 1274[label="",style="solid", color="black", weight=3]; 1254[label="List.merge compare vz117 (List.merge compare [] (vz118100 : vz118101))",fontsize=16,color="black",shape="box"];1254 -> 1275[label="",style="solid", color="black", weight=3]; 1255 -> 1233[label="",style="dashed", color="red", weight=0]; 1255[label="List.merge compare vz117 vz1180",fontsize=16,color="magenta"];1256[label="List.merge_pairs compare (vz118110 : vz1181110 : vz1181111)",fontsize=16,color="black",shape="box"];1256 -> 1276[label="",style="solid", color="black", weight=3]; 1257[label="List.merge_pairs compare (vz118110 : [])",fontsize=16,color="black",shape="box"];1257 -> 1277[label="",style="solid", color="black", weight=3]; 1258[label="[]",fontsize=16,color="green",shape="box"];1259[label="List.merge compare (vz1170 : vz1171) (vz11800 : vz11801)",fontsize=16,color="black",shape="box"];1259 -> 1278[label="",style="solid", color="black", weight=3]; 1260[label="List.merge compare [] (vz11800 : vz11801)",fontsize=16,color="black",shape="box"];1260 -> 1279[label="",style="solid", color="black", weight=3]; 1261[label="vz117",fontsize=16,color="green",shape="box"];1404[label="primCmpInt (Pos (Succ vz120000)) (Pos vz11900)",fontsize=16,color="black",shape="box"];1404 -> 1418[label="",style="solid", color="black", weight=3]; 1405[label="primCmpInt (Pos (Succ vz120000)) (Neg vz11900)",fontsize=16,color="black",shape="box"];1405 -> 1419[label="",style="solid", color="black", weight=3]; 1406[label="primCmpInt (Pos Zero) (Pos vz11900)",fontsize=16,color="burlywood",shape="box"];1507[label="vz11900/Succ vz119000",fontsize=10,color="white",style="solid",shape="box"];1406 -> 1507[label="",style="solid", color="burlywood", weight=9]; 1507 -> 1420[label="",style="solid", color="burlywood", weight=3]; 1508[label="vz11900/Zero",fontsize=10,color="white",style="solid",shape="box"];1406 -> 1508[label="",style="solid", color="burlywood", weight=9]; 1508 -> 1421[label="",style="solid", color="burlywood", weight=3]; 1407[label="primCmpInt (Pos Zero) (Neg vz11900)",fontsize=16,color="burlywood",shape="box"];1509[label="vz11900/Succ vz119000",fontsize=10,color="white",style="solid",shape="box"];1407 -> 1509[label="",style="solid", color="burlywood", weight=9]; 1509 -> 1422[label="",style="solid", color="burlywood", weight=3]; 1510[label="vz11900/Zero",fontsize=10,color="white",style="solid",shape="box"];1407 -> 1510[label="",style="solid", color="burlywood", weight=9]; 1510 -> 1423[label="",style="solid", color="burlywood", weight=3]; 1408[label="primCmpInt (Neg (Succ vz120000)) (Pos vz11900)",fontsize=16,color="black",shape="box"];1408 -> 1424[label="",style="solid", color="black", weight=3]; 1409[label="primCmpInt (Neg (Succ vz120000)) (Neg vz11900)",fontsize=16,color="black",shape="box"];1409 -> 1425[label="",style="solid", color="black", weight=3]; 1410[label="primCmpInt (Neg Zero) (Pos vz11900)",fontsize=16,color="burlywood",shape="box"];1511[label="vz11900/Succ vz119000",fontsize=10,color="white",style="solid",shape="box"];1410 -> 1511[label="",style="solid", color="burlywood", weight=9]; 1511 -> 1426[label="",style="solid", color="burlywood", weight=3]; 1512[label="vz11900/Zero",fontsize=10,color="white",style="solid",shape="box"];1410 -> 1512[label="",style="solid", color="burlywood", weight=9]; 1512 -> 1427[label="",style="solid", color="burlywood", weight=3]; 1411[label="primCmpInt (Neg Zero) (Neg vz11900)",fontsize=16,color="burlywood",shape="box"];1513[label="vz11900/Succ vz119000",fontsize=10,color="white",style="solid",shape="box"];1411 -> 1513[label="",style="solid", color="burlywood", weight=9]; 1513 -> 1428[label="",style="solid", color="burlywood", weight=3]; 1514[label="vz11900/Zero",fontsize=10,color="white",style="solid",shape="box"];1411 -> 1514[label="",style="solid", color="burlywood", weight=9]; 1514 -> 1429[label="",style="solid", color="burlywood", weight=3]; 1412[label="vz129",fontsize=16,color="green",shape="box"];1413[label="vz127 : vz130",fontsize=16,color="green",shape="box"];1414[label="vz129",fontsize=16,color="green",shape="box"];1415[label="vz127 : vz130",fontsize=16,color="green",shape="box"];1416[label="vz128 : vz129",fontsize=16,color="green",shape="box"];1417[label="vz130",fontsize=16,color="green",shape="box"];1274 -> 1233[label="",style="dashed", color="red", weight=0]; 1274[label="List.merge compare vz117 (List.merge0 vz118100 compare vz11800 vz11801 vz118101 (compare vz11800 vz118100))",fontsize=16,color="magenta"];1274 -> 1294[label="",style="dashed", color="magenta", weight=3]; 1275 -> 1233[label="",style="dashed", color="red", weight=0]; 1275[label="List.merge compare vz117 (vz118100 : vz118101)",fontsize=16,color="magenta"];1275 -> 1295[label="",style="dashed", color="magenta", weight=3]; 1276[label="List.merge compare vz118110 vz1181110 : List.merge_pairs compare vz1181111",fontsize=16,color="green",shape="box"];1276 -> 1296[label="",style="dashed", color="green", weight=3]; 1276 -> 1297[label="",style="dashed", color="green", weight=3]; 1277[label="vz118110 : []",fontsize=16,color="green",shape="box"];1278 -> 1298[label="",style="dashed", color="red", weight=0]; 1278[label="List.merge0 vz11800 compare vz1170 vz1171 vz11801 (compare vz1170 vz11800)",fontsize=16,color="magenta"];1278 -> 1304[label="",style="dashed", color="magenta", weight=3]; 1278 -> 1305[label="",style="dashed", color="magenta", weight=3]; 1278 -> 1306[label="",style="dashed", color="magenta", weight=3]; 1278 -> 1307[label="",style="dashed", color="magenta", weight=3]; 1278 -> 1308[label="",style="dashed", color="magenta", weight=3]; 1279[label="vz11800 : vz11801",fontsize=16,color="green",shape="box"];1418[label="primCmpNat (Succ vz120000) vz11900",fontsize=16,color="burlywood",shape="triangle"];1515[label="vz11900/Succ vz119000",fontsize=10,color="white",style="solid",shape="box"];1418 -> 1515[label="",style="solid", color="burlywood", weight=9]; 1515 -> 1430[label="",style="solid", color="burlywood", weight=3]; 1516[label="vz11900/Zero",fontsize=10,color="white",style="solid",shape="box"];1418 -> 1516[label="",style="solid", color="burlywood", weight=9]; 1516 -> 1431[label="",style="solid", color="burlywood", weight=3]; 1419[label="GT",fontsize=16,color="green",shape="box"];1420[label="primCmpInt (Pos Zero) (Pos (Succ vz119000))",fontsize=16,color="black",shape="box"];1420 -> 1432[label="",style="solid", color="black", weight=3]; 1421[label="primCmpInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];1421 -> 1433[label="",style="solid", color="black", weight=3]; 1422[label="primCmpInt (Pos Zero) (Neg (Succ vz119000))",fontsize=16,color="black",shape="box"];1422 -> 1434[label="",style="solid", color="black", weight=3]; 1423[label="primCmpInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];1423 -> 1435[label="",style="solid", color="black", weight=3]; 1424[label="LT",fontsize=16,color="green",shape="box"];1425[label="primCmpNat vz11900 (Succ vz120000)",fontsize=16,color="burlywood",shape="triangle"];1517[label="vz11900/Succ vz119000",fontsize=10,color="white",style="solid",shape="box"];1425 -> 1517[label="",style="solid", color="burlywood", weight=9]; 1517 -> 1436[label="",style="solid", color="burlywood", weight=3]; 1518[label="vz11900/Zero",fontsize=10,color="white",style="solid",shape="box"];1425 -> 1518[label="",style="solid", color="burlywood", weight=9]; 1518 -> 1437[label="",style="solid", color="burlywood", weight=3]; 1426[label="primCmpInt (Neg Zero) (Pos (Succ vz119000))",fontsize=16,color="black",shape="box"];1426 -> 1438[label="",style="solid", color="black", weight=3]; 1427[label="primCmpInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];1427 -> 1439[label="",style="solid", color="black", weight=3]; 1428[label="primCmpInt (Neg Zero) (Neg (Succ vz119000))",fontsize=16,color="black",shape="box"];1428 -> 1440[label="",style="solid", color="black", weight=3]; 1429[label="primCmpInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];1429 -> 1441[label="",style="solid", color="black", weight=3]; 1294 -> 1298[label="",style="dashed", color="red", weight=0]; 1294[label="List.merge0 vz118100 compare vz11800 vz11801 vz118101 (compare vz11800 vz118100)",fontsize=16,color="magenta"];1294 -> 1309[label="",style="dashed", color="magenta", weight=3]; 1294 -> 1310[label="",style="dashed", color="magenta", weight=3]; 1294 -> 1311[label="",style="dashed", color="magenta", weight=3]; 1294 -> 1312[label="",style="dashed", color="magenta", weight=3]; 1294 -> 1313[label="",style="dashed", color="magenta", weight=3]; 1295[label="vz118100 : vz118101",fontsize=16,color="green",shape="box"];1296 -> 1233[label="",style="dashed", color="red", weight=0]; 1296[label="List.merge compare vz118110 vz1181110",fontsize=16,color="magenta"];1296 -> 1318[label="",style="dashed", color="magenta", weight=3]; 1296 -> 1319[label="",style="dashed", color="magenta", weight=3]; 1297 -> 1232[label="",style="dashed", color="red", weight=0]; 1297[label="List.merge_pairs compare vz1181111",fontsize=16,color="magenta"];1297 -> 1320[label="",style="dashed", color="magenta", weight=3]; 1304[label="vz11801",fontsize=16,color="green",shape="box"];1305[label="vz1170",fontsize=16,color="green",shape="box"];1306[label="compare vz1170 vz11800",fontsize=16,color="blue",shape="box"];1519[label="compare :: Double -> Double -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1519[label="",style="solid", color="blue", weight=9]; 1519 -> 1321[label="",style="solid", color="blue", weight=3]; 1520[label="compare :: Bool -> Bool -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1520[label="",style="solid", color="blue", weight=9]; 1520 -> 1322[label="",style="solid", color="blue", weight=3]; 1521[label="compare :: ((@2) a b) -> ((@2) a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1521[label="",style="solid", color="blue", weight=9]; 1521 -> 1323[label="",style="solid", color="blue", weight=3]; 1522[label="compare :: (Ratio a) -> (Ratio a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1522[label="",style="solid", color="blue", weight=9]; 1522 -> 1324[label="",style="solid", color="blue", weight=3]; 1523[label="compare :: () -> () -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1523[label="",style="solid", color="blue", weight=9]; 1523 -> 1325[label="",style="solid", color="blue", weight=3]; 1524[label="compare :: (Maybe a) -> (Maybe a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1524[label="",style="solid", color="blue", weight=9]; 1524 -> 1326[label="",style="solid", color="blue", weight=3]; 1525[label="compare :: Integer -> Integer -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1525[label="",style="solid", color="blue", weight=9]; 1525 -> 1327[label="",style="solid", color="blue", weight=3]; 1526[label="compare :: (Either a b) -> (Either a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1526[label="",style="solid", color="blue", weight=9]; 1526 -> 1328[label="",style="solid", color="blue", weight=3]; 1527[label="compare :: ([] a) -> ([] a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1527[label="",style="solid", color="blue", weight=9]; 1527 -> 1329[label="",style="solid", color="blue", weight=3]; 1528[label="compare :: Int -> Int -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1528[label="",style="solid", color="blue", weight=9]; 1528 -> 1330[label="",style="solid", color="blue", weight=3]; 1529[label="compare :: Float -> Float -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1529[label="",style="solid", color="blue", weight=9]; 1529 -> 1331[label="",style="solid", color="blue", weight=3]; 1530[label="compare :: Ordering -> Ordering -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1530[label="",style="solid", color="blue", weight=9]; 1530 -> 1332[label="",style="solid", color="blue", weight=3]; 1531[label="compare :: ((@3) a b c) -> ((@3) a b c) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1531[label="",style="solid", color="blue", weight=9]; 1531 -> 1333[label="",style="solid", color="blue", weight=3]; 1532[label="compare :: Char -> Char -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1306 -> 1532[label="",style="solid", color="blue", weight=9]; 1532 -> 1334[label="",style="solid", color="blue", weight=3]; 1307[label="vz11800",fontsize=16,color="green",shape="box"];1308[label="vz1171",fontsize=16,color="green",shape="box"];1430[label="primCmpNat (Succ vz120000) (Succ vz119000)",fontsize=16,color="black",shape="box"];1430 -> 1442[label="",style="solid", color="black", weight=3]; 1431[label="primCmpNat (Succ vz120000) Zero",fontsize=16,color="black",shape="box"];1431 -> 1443[label="",style="solid", color="black", weight=3]; 1432 -> 1425[label="",style="dashed", color="red", weight=0]; 1432[label="primCmpNat Zero (Succ vz119000)",fontsize=16,color="magenta"];1432 -> 1444[label="",style="dashed", color="magenta", weight=3]; 1432 -> 1445[label="",style="dashed", color="magenta", weight=3]; 1433[label="EQ",fontsize=16,color="green",shape="box"];1434[label="GT",fontsize=16,color="green",shape="box"];1435[label="EQ",fontsize=16,color="green",shape="box"];1436[label="primCmpNat (Succ vz119000) (Succ vz120000)",fontsize=16,color="black",shape="box"];1436 -> 1446[label="",style="solid", color="black", weight=3]; 1437[label="primCmpNat Zero (Succ vz120000)",fontsize=16,color="black",shape="box"];1437 -> 1447[label="",style="solid", color="black", weight=3]; 1438[label="LT",fontsize=16,color="green",shape="box"];1439[label="EQ",fontsize=16,color="green",shape="box"];1440 -> 1418[label="",style="dashed", color="red", weight=0]; 1440[label="primCmpNat (Succ vz119000) Zero",fontsize=16,color="magenta"];1440 -> 1448[label="",style="dashed", color="magenta", weight=3]; 1440 -> 1449[label="",style="dashed", color="magenta", weight=3]; 1441[label="EQ",fontsize=16,color="green",shape="box"];1309[label="vz118101",fontsize=16,color="green",shape="box"];1310[label="vz11800",fontsize=16,color="green",shape="box"];1311[label="compare vz11800 vz118100",fontsize=16,color="blue",shape="box"];1533[label="compare :: Double -> Double -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1533[label="",style="solid", color="blue", weight=9]; 1533 -> 1335[label="",style="solid", color="blue", weight=3]; 1534[label="compare :: Bool -> Bool -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1534[label="",style="solid", color="blue", weight=9]; 1534 -> 1336[label="",style="solid", color="blue", weight=3]; 1535[label="compare :: ((@2) a b) -> ((@2) a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1535[label="",style="solid", color="blue", weight=9]; 1535 -> 1337[label="",style="solid", color="blue", weight=3]; 1536[label="compare :: (Ratio a) -> (Ratio a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1536[label="",style="solid", color="blue", weight=9]; 1536 -> 1338[label="",style="solid", color="blue", weight=3]; 1537[label="compare :: () -> () -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1537[label="",style="solid", color="blue", weight=9]; 1537 -> 1339[label="",style="solid", color="blue", weight=3]; 1538[label="compare :: (Maybe a) -> (Maybe a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1538[label="",style="solid", color="blue", weight=9]; 1538 -> 1340[label="",style="solid", color="blue", weight=3]; 1539[label="compare :: Integer -> Integer -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1539[label="",style="solid", color="blue", weight=9]; 1539 -> 1341[label="",style="solid", color="blue", weight=3]; 1540[label="compare :: (Either a b) -> (Either a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1540[label="",style="solid", color="blue", weight=9]; 1540 -> 1342[label="",style="solid", color="blue", weight=3]; 1541[label="compare :: ([] a) -> ([] a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1541[label="",style="solid", color="blue", weight=9]; 1541 -> 1343[label="",style="solid", color="blue", weight=3]; 1542[label="compare :: Int -> Int -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1542[label="",style="solid", color="blue", weight=9]; 1542 -> 1344[label="",style="solid", color="blue", weight=3]; 1543[label="compare :: Float -> Float -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1543[label="",style="solid", color="blue", weight=9]; 1543 -> 1345[label="",style="solid", color="blue", weight=3]; 1544[label="compare :: Ordering -> Ordering -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1544[label="",style="solid", color="blue", weight=9]; 1544 -> 1346[label="",style="solid", color="blue", weight=3]; 1545[label="compare :: ((@3) a b c) -> ((@3) a b c) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1545[label="",style="solid", color="blue", weight=9]; 1545 -> 1347[label="",style="solid", color="blue", weight=3]; 1546[label="compare :: Char -> Char -> Ordering",fontsize=10,color="white",style="solid",shape="box"];1311 -> 1546[label="",style="solid", color="blue", weight=9]; 1546 -> 1348[label="",style="solid", color="blue", weight=3]; 1312[label="vz118100",fontsize=16,color="green",shape="box"];1313[label="vz11801",fontsize=16,color="green",shape="box"];1318[label="vz118110",fontsize=16,color="green",shape="box"];1319[label="vz1181110",fontsize=16,color="green",shape="box"];1320[label="vz1181111",fontsize=16,color="green",shape="box"];1321[label="compare vz1170 vz11800",fontsize=16,color="black",shape="triangle"];1321 -> 1354[label="",style="solid", color="black", weight=3]; 1322[label="compare vz1170 vz11800",fontsize=16,color="black",shape="triangle"];1322 -> 1355[label="",style="solid", color="black", weight=3]; 1323[label="compare vz1170 vz11800",fontsize=16,color="black",shape="triangle"];1323 -> 1356[label="",style="solid", color="black", weight=3]; 1324[label="compare vz1170 vz11800",fontsize=16,color="black",shape="triangle"];1324 -> 1357[label="",style="solid", color="black", weight=3]; 1325[label="compare vz1170 vz11800",fontsize=16,color="black",shape="triangle"];1325 -> 1358[label="",style="solid", color="black", weight=3]; 1326[label="compare vz1170 vz11800",fontsize=16,color="black",shape="triangle"];1326 -> 1359[label="",style="solid", color="black", weight=3]; 1327[label="compare vz1170 vz11800",fontsize=16,color="black",shape="triangle"];1327 -> 1360[label="",style="solid", color="black", weight=3]; 1328[label="compare vz1170 vz11800",fontsize=16,color="black",shape="triangle"];1328 -> 1361[label="",style="solid", color="black", weight=3]; 1329[label="compare vz1170 vz11800",fontsize=16,color="black",shape="triangle"];1329 -> 1362[label="",style="solid", color="black", weight=3]; 1330 -> 1301[label="",style="dashed", color="red", weight=0]; 1330[label="compare vz1170 vz11800",fontsize=16,color="magenta"];1330 -> 1363[label="",style="dashed", color="magenta", weight=3]; 1330 -> 1364[label="",style="dashed", color="magenta", weight=3]; 1331[label="compare vz1170 vz11800",fontsize=16,color="black",shape="triangle"];1331 -> 1365[label="",style="solid", color="black", weight=3]; 1332[label="compare vz1170 vz11800",fontsize=16,color="black",shape="triangle"];1332 -> 1366[label="",style="solid", color="black", weight=3]; 1333[label="compare vz1170 vz11800",fontsize=16,color="black",shape="triangle"];1333 -> 1367[label="",style="solid", color="black", weight=3]; 1334[label="compare vz1170 vz11800",fontsize=16,color="black",shape="triangle"];1334 -> 1368[label="",style="solid", color="black", weight=3]; 1442[label="primCmpNat vz120000 vz119000",fontsize=16,color="burlywood",shape="triangle"];1547[label="vz120000/Succ vz1200000",fontsize=10,color="white",style="solid",shape="box"];1442 -> 1547[label="",style="solid", color="burlywood", weight=9]; 1547 -> 1450[label="",style="solid", color="burlywood", weight=3]; 1548[label="vz120000/Zero",fontsize=10,color="white",style="solid",shape="box"];1442 -> 1548[label="",style="solid", color="burlywood", weight=9]; 1548 -> 1451[label="",style="solid", color="burlywood", weight=3]; 1443[label="GT",fontsize=16,color="green",shape="box"];1444[label="vz119000",fontsize=16,color="green",shape="box"];1445[label="Zero",fontsize=16,color="green",shape="box"];1446 -> 1442[label="",style="dashed", color="red", weight=0]; 1446[label="primCmpNat vz119000 vz120000",fontsize=16,color="magenta"];1446 -> 1452[label="",style="dashed", color="magenta", weight=3]; 1446 -> 1453[label="",style="dashed", color="magenta", weight=3]; 1447[label="LT",fontsize=16,color="green",shape="box"];1448[label="Zero",fontsize=16,color="green",shape="box"];1449[label="vz119000",fontsize=16,color="green",shape="box"];1335 -> 1321[label="",style="dashed", color="red", weight=0]; 1335[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1335 -> 1369[label="",style="dashed", color="magenta", weight=3]; 1335 -> 1370[label="",style="dashed", color="magenta", weight=3]; 1336 -> 1322[label="",style="dashed", color="red", weight=0]; 1336[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1336 -> 1371[label="",style="dashed", color="magenta", weight=3]; 1336 -> 1372[label="",style="dashed", color="magenta", weight=3]; 1337 -> 1323[label="",style="dashed", color="red", weight=0]; 1337[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1337 -> 1373[label="",style="dashed", color="magenta", weight=3]; 1337 -> 1374[label="",style="dashed", color="magenta", weight=3]; 1338 -> 1324[label="",style="dashed", color="red", weight=0]; 1338[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1338 -> 1375[label="",style="dashed", color="magenta", weight=3]; 1338 -> 1376[label="",style="dashed", color="magenta", weight=3]; 1339 -> 1325[label="",style="dashed", color="red", weight=0]; 1339[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1339 -> 1377[label="",style="dashed", color="magenta", weight=3]; 1339 -> 1378[label="",style="dashed", color="magenta", weight=3]; 1340 -> 1326[label="",style="dashed", color="red", weight=0]; 1340[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1340 -> 1379[label="",style="dashed", color="magenta", weight=3]; 1340 -> 1380[label="",style="dashed", color="magenta", weight=3]; 1341 -> 1327[label="",style="dashed", color="red", weight=0]; 1341[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1341 -> 1381[label="",style="dashed", color="magenta", weight=3]; 1341 -> 1382[label="",style="dashed", color="magenta", weight=3]; 1342 -> 1328[label="",style="dashed", color="red", weight=0]; 1342[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1342 -> 1383[label="",style="dashed", color="magenta", weight=3]; 1342 -> 1384[label="",style="dashed", color="magenta", weight=3]; 1343 -> 1329[label="",style="dashed", color="red", weight=0]; 1343[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1343 -> 1385[label="",style="dashed", color="magenta", weight=3]; 1343 -> 1386[label="",style="dashed", color="magenta", weight=3]; 1344 -> 1301[label="",style="dashed", color="red", weight=0]; 1344[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1344 -> 1387[label="",style="dashed", color="magenta", weight=3]; 1344 -> 1388[label="",style="dashed", color="magenta", weight=3]; 1345 -> 1331[label="",style="dashed", color="red", weight=0]; 1345[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1345 -> 1389[label="",style="dashed", color="magenta", weight=3]; 1345 -> 1390[label="",style="dashed", color="magenta", weight=3]; 1346 -> 1332[label="",style="dashed", color="red", weight=0]; 1346[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1346 -> 1391[label="",style="dashed", color="magenta", weight=3]; 1346 -> 1392[label="",style="dashed", color="magenta", weight=3]; 1347 -> 1333[label="",style="dashed", color="red", weight=0]; 1347[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1347 -> 1393[label="",style="dashed", color="magenta", weight=3]; 1347 -> 1394[label="",style="dashed", color="magenta", weight=3]; 1348 -> 1334[label="",style="dashed", color="red", weight=0]; 1348[label="compare vz11800 vz118100",fontsize=16,color="magenta"];1348 -> 1395[label="",style="dashed", color="magenta", weight=3]; 1348 -> 1396[label="",style="dashed", color="magenta", weight=3]; 1354[label="error []",fontsize=16,color="red",shape="box"];1355[label="error []",fontsize=16,color="red",shape="box"];1356[label="error []",fontsize=16,color="red",shape="box"];1357[label="error []",fontsize=16,color="red",shape="box"];1358[label="error []",fontsize=16,color="red",shape="box"];1359[label="error []",fontsize=16,color="red",shape="box"];1360[label="error []",fontsize=16,color="red",shape="box"];1361[label="error []",fontsize=16,color="red",shape="box"];1362[label="error []",fontsize=16,color="red",shape="box"];1363[label="vz1170",fontsize=16,color="green",shape="box"];1364[label="vz11800",fontsize=16,color="green",shape="box"];1365[label="error []",fontsize=16,color="red",shape="box"];1366[label="error []",fontsize=16,color="red",shape="box"];1367[label="error []",fontsize=16,color="red",shape="box"];1368[label="error []",fontsize=16,color="red",shape="box"];1450[label="primCmpNat (Succ vz1200000) vz119000",fontsize=16,color="burlywood",shape="box"];1549[label="vz119000/Succ vz1190000",fontsize=10,color="white",style="solid",shape="box"];1450 -> 1549[label="",style="solid", color="burlywood", weight=9]; 1549 -> 1454[label="",style="solid", color="burlywood", weight=3]; 1550[label="vz119000/Zero",fontsize=10,color="white",style="solid",shape="box"];1450 -> 1550[label="",style="solid", color="burlywood", weight=9]; 1550 -> 1455[label="",style="solid", color="burlywood", weight=3]; 1451[label="primCmpNat Zero vz119000",fontsize=16,color="burlywood",shape="box"];1551[label="vz119000/Succ vz1190000",fontsize=10,color="white",style="solid",shape="box"];1451 -> 1551[label="",style="solid", color="burlywood", weight=9]; 1551 -> 1456[label="",style="solid", color="burlywood", weight=3]; 1552[label="vz119000/Zero",fontsize=10,color="white",style="solid",shape="box"];1451 -> 1552[label="",style="solid", color="burlywood", weight=9]; 1552 -> 1457[label="",style="solid", color="burlywood", weight=3]; 1452[label="vz119000",fontsize=16,color="green",shape="box"];1453[label="vz120000",fontsize=16,color="green",shape="box"];1369[label="vz118100",fontsize=16,color="green",shape="box"];1370[label="vz11800",fontsize=16,color="green",shape="box"];1371[label="vz118100",fontsize=16,color="green",shape="box"];1372[label="vz11800",fontsize=16,color="green",shape="box"];1373[label="vz118100",fontsize=16,color="green",shape="box"];1374[label="vz11800",fontsize=16,color="green",shape="box"];1375[label="vz118100",fontsize=16,color="green",shape="box"];1376[label="vz11800",fontsize=16,color="green",shape="box"];1377[label="vz118100",fontsize=16,color="green",shape="box"];1378[label="vz11800",fontsize=16,color="green",shape="box"];1379[label="vz118100",fontsize=16,color="green",shape="box"];1380[label="vz11800",fontsize=16,color="green",shape="box"];1381[label="vz118100",fontsize=16,color="green",shape="box"];1382[label="vz11800",fontsize=16,color="green",shape="box"];1383[label="vz118100",fontsize=16,color="green",shape="box"];1384[label="vz11800",fontsize=16,color="green",shape="box"];1385[label="vz118100",fontsize=16,color="green",shape="box"];1386[label="vz11800",fontsize=16,color="green",shape="box"];1387[label="vz11800",fontsize=16,color="green",shape="box"];1388[label="vz118100",fontsize=16,color="green",shape="box"];1389[label="vz118100",fontsize=16,color="green",shape="box"];1390[label="vz11800",fontsize=16,color="green",shape="box"];1391[label="vz118100",fontsize=16,color="green",shape="box"];1392[label="vz11800",fontsize=16,color="green",shape="box"];1393[label="vz118100",fontsize=16,color="green",shape="box"];1394[label="vz11800",fontsize=16,color="green",shape="box"];1395[label="vz118100",fontsize=16,color="green",shape="box"];1396[label="vz11800",fontsize=16,color="green",shape="box"];1454[label="primCmpNat (Succ vz1200000) (Succ vz1190000)",fontsize=16,color="black",shape="box"];1454 -> 1458[label="",style="solid", color="black", weight=3]; 1455[label="primCmpNat (Succ vz1200000) Zero",fontsize=16,color="black",shape="box"];1455 -> 1459[label="",style="solid", color="black", weight=3]; 1456[label="primCmpNat Zero (Succ vz1190000)",fontsize=16,color="black",shape="box"];1456 -> 1460[label="",style="solid", color="black", weight=3]; 1457[label="primCmpNat Zero Zero",fontsize=16,color="black",shape="box"];1457 -> 1461[label="",style="solid", color="black", weight=3]; 1458 -> 1442[label="",style="dashed", color="red", weight=0]; 1458[label="primCmpNat vz1200000 vz1190000",fontsize=16,color="magenta"];1458 -> 1462[label="",style="dashed", color="magenta", weight=3]; 1458 -> 1463[label="",style="dashed", color="magenta", weight=3]; 1459[label="GT",fontsize=16,color="green",shape="box"];1460[label="LT",fontsize=16,color="green",shape="box"];1461[label="EQ",fontsize=16,color="green",shape="box"];1462[label="vz1200000",fontsize=16,color="green",shape="box"];1463[label="vz1190000",fontsize=16,color="green",shape="box"];} ---------------------------------------- (8) Complex Obligation (AND) ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: new_primCmpNat(Succ(vz1200000), Succ(vz1190000)) -> new_primCmpNat(vz1200000, vz1190000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *new_primCmpNat(Succ(vz1200000), Succ(vz1190000)) -> new_primCmpNat(vz1200000, vz1190000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (11) YES ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: new_mergesort'(vz117, :(vz1180, []), ba) -> new_mergesort'(new_merge2(vz117, vz1180, ba), [], ba) new_mergesort'(vz117, :(vz1180, :(vz11810, vz11811)), ba) -> new_mergesort'(new_merge1(vz117, vz1180, vz11810, ba), new_merge_pairs0(vz11811, ba), ba) The TRS R consists of the following rules: new_compare14(vz11800, vz118100, app(app(app(ty_@3, bc), bd), be)) -> new_compare4(vz11800, vz118100, bc, bd, be) new_compare14(vz11800, vz118100, app(app(ty_Either, cc), cd)) -> new_compare11(vz11800, vz118100, cc, cd) new_compare(vz1170, vz11800, ty_Float) -> new_compare2(vz1170, vz11800) new_compare13(Pos(Succ(vz120000)), Neg(vz11900)) -> GT new_compare13(Neg(Zero), Pos(Succ(vz119000))) -> LT new_compare13(Neg(Zero), Neg(Zero)) -> EQ new_compare(vz1170, vz11800, app(ty_[], cb)) -> new_compare12(vz1170, vz11800, cb) new_primCmpNat0(vz120000, Succ(vz119000)) -> new_primCmpNat1(vz120000, vz119000) new_compare(vz1170, vz11800, ty_Int) -> new_compare13(vz1170, vz11800) new_compare14(vz11800, vz118100, app(ty_Ratio, bh)) -> new_compare7(vz11800, vz118100, bh) new_primCmpNat1(Zero, Zero) -> EQ new_compare13(Pos(Succ(vz120000)), Pos(vz11900)) -> new_primCmpNat0(vz120000, vz11900) new_merge_pairs0(:(vz118110, []), ba) -> :(vz118110, []) new_compare13(Neg(Zero), Neg(Succ(vz119000))) -> new_primCmpNat0(vz119000, Zero) new_merge1(vz117, :(vz11800, vz11801), :(vz118100, vz118101), ba) -> new_merge2(vz117, new_merge00(vz118100, vz11800, vz11801, vz118101, new_compare14(vz11800, vz118100, ba), ba), ba) new_compare(vz1170, vz11800, ty_Bool) -> new_compare0(vz1170, vz11800) new_compare8(vz1170, vz11800) -> error([]) new_primCmpNat1(Succ(vz1200000), Zero) -> GT new_compare13(Pos(Zero), Pos(Succ(vz119000))) -> new_primCmpNat2(Zero, vz119000) new_compare14(vz11800, vz118100, app(app(ty_@2, bf), bg)) -> new_compare6(vz11800, vz118100, bf, bg) new_compare13(Neg(Succ(vz120000)), Neg(vz11900)) -> new_primCmpNat2(vz11900, vz120000) new_compare13(Neg(Succ(vz120000)), Pos(vz11900)) -> LT new_merge2([], :(vz11800, vz11801), ba) -> :(vz11800, vz11801) new_compare14(vz11800, vz118100, ty_Float) -> new_compare2(vz11800, vz118100) new_compare0(vz1170, vz11800) -> error([]) new_compare14(vz11800, vz118100, app(ty_[], cb)) -> new_compare12(vz11800, vz118100, cb) new_compare14(vz11800, vz118100, ty_Int) -> new_compare13(vz11800, vz118100) new_compare14(vz11800, vz118100, ty_Double) -> new_compare8(vz11800, vz118100) new_compare(vz1170, vz11800, app(app(ty_Either, cc), cd)) -> new_compare11(vz1170, vz11800, cc, cd) new_compare14(vz11800, vz118100, ty_Char) -> new_compare5(vz11800, vz118100) new_primCmpNat2(Succ(vz119000), vz120000) -> new_primCmpNat1(vz119000, vz120000) new_merge_pairs0(:(vz118110, :(vz1181110, vz1181111)), ba) -> :(new_merge2(vz118110, vz1181110, ba), new_merge_pairs0(vz1181111, ba)) new_compare(vz1170, vz11800, app(app(ty_@2, bf), bg)) -> new_compare6(vz1170, vz11800, bf, bg) new_primCmpNat0(vz120000, Zero) -> GT new_merge00(vz127, vz128, vz129, vz130, LT, ca) -> :(vz128, new_merge2(vz129, :(vz127, vz130), ca)) new_compare13(Pos(Zero), Pos(Zero)) -> EQ new_primCmpNat2(Zero, vz120000) -> LT new_compare13(Pos(Zero), Neg(Zero)) -> EQ new_compare13(Neg(Zero), Pos(Zero)) -> EQ new_merge2(:(vz1170, vz1171), :(vz11800, vz11801), ba) -> new_merge00(vz11800, vz1170, vz1171, vz11801, new_compare(vz1170, vz11800, ba), ba) new_primCmpNat1(Succ(vz1200000), Succ(vz1190000)) -> new_primCmpNat1(vz1200000, vz1190000) new_compare14(vz11800, vz118100, app(ty_Maybe, bb)) -> new_compare3(vz11800, vz118100, bb) new_compare14(vz11800, vz118100, ty_Ordering) -> new_compare1(vz11800, vz118100) new_merge2(vz117, [], ba) -> vz117 new_compare(vz1170, vz11800, app(ty_Ratio, bh)) -> new_compare7(vz1170, vz11800, bh) new_compare(vz1170, vz11800, ty_@0) -> new_compare9(vz1170, vz11800) new_compare(vz1170, vz11800, app(app(app(ty_@3, bc), bd), be)) -> new_compare4(vz1170, vz11800, bc, bd, be) new_merge_pairs0([], ba) -> [] new_merge1(vz117, [], :(vz118100, vz118101), ba) -> new_merge2(vz117, :(vz118100, vz118101), ba) new_compare2(vz1170, vz11800) -> error([]) new_compare13(Pos(Zero), Neg(Succ(vz119000))) -> GT new_compare7(vz1170, vz11800, bh) -> error([]) new_primCmpNat1(Zero, Succ(vz1190000)) -> LT new_compare3(vz1170, vz11800, bb) -> error([]) new_merge00(vz127, vz128, vz129, vz130, GT, ca) -> :(vz127, new_merge2(:(vz128, vz129), vz130, ca)) new_compare(vz1170, vz11800, ty_Double) -> new_compare8(vz1170, vz11800) new_compare14(vz11800, vz118100, ty_@0) -> new_compare9(vz11800, vz118100) new_compare5(vz1170, vz11800) -> error([]) new_compare(vz1170, vz11800, ty_Char) -> new_compare5(vz1170, vz11800) new_compare14(vz11800, vz118100, ty_Integer) -> new_compare10(vz11800, vz118100) new_compare4(vz1170, vz11800, bc, bd, be) -> error([]) new_merge00(vz127, vz128, vz129, vz130, EQ, ca) -> :(vz128, new_merge2(vz129, :(vz127, vz130), ca)) new_compare10(vz1170, vz11800) -> error([]) new_compare(vz1170, vz11800, app(ty_Maybe, bb)) -> new_compare3(vz1170, vz11800, bb) new_compare(vz1170, vz11800, ty_Integer) -> new_compare10(vz1170, vz11800) new_compare12(vz1170, vz11800, cb) -> error([]) new_compare(vz1170, vz11800, ty_Ordering) -> new_compare1(vz1170, vz11800) new_compare11(vz1170, vz11800, cc, cd) -> error([]) new_compare1(vz1170, vz11800) -> error([]) new_compare14(vz11800, vz118100, ty_Bool) -> new_compare0(vz11800, vz118100) new_compare6(vz1170, vz11800, bf, bg) -> error([]) new_merge1(vz117, vz1180, [], ba) -> new_merge2(vz117, vz1180, ba) new_compare9(vz1170, vz11800) -> error([]) The set Q consists of the following terms: new_compare14(x0, x1, app(ty_Maybe, x2)) new_primCmpNat2(Succ(x0), x1) new_compare1(x0, x1) new_merge1(x0, [], :(x1, x2), x3) new_merge1(x0, x1, [], x2) new_compare14(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_compare13(Neg(Zero), Neg(Zero)) new_compare(x0, x1, ty_Int) new_compare10(x0, x1) new_compare13(Neg(Zero), Neg(Succ(x0))) new_compare13(Pos(Succ(x0)), Pos(x1)) new_compare0(x0, x1) new_compare(x0, x1, app(ty_[], x2)) new_compare14(x0, x1, ty_Char) new_compare14(x0, x1, ty_@0) new_compare11(x0, x1, x2, x3) new_merge2(:(x0, x1), :(x2, x3), x4) new_compare14(x0, x1, ty_Double) new_compare(x0, x1, app(app(ty_Either, x2), x3)) new_compare14(x0, x1, app(app(ty_Either, x2), x3)) new_compare(x0, x1, ty_Integer) new_compare14(x0, x1, ty_Ordering) new_compare(x0, x1, ty_Ordering) new_compare13(Pos(Zero), Pos(Zero)) new_primCmpNat0(x0, Succ(x1)) new_compare13(Pos(Succ(x0)), Neg(x1)) new_compare13(Neg(Succ(x0)), Pos(x1)) new_compare9(x0, x1) new_compare14(x0, x1, app(ty_[], x2)) new_compare13(Neg(Succ(x0)), Neg(x1)) new_merge_pairs0(:(x0, :(x1, x2)), x3) new_compare4(x0, x1, x2, x3, x4) new_merge2(x0, [], x1) new_compare(x0, x1, ty_Bool) new_primCmpNat1(Zero, Zero) new_compare2(x0, x1) new_compare(x0, x1, app(app(ty_@2, x2), x3)) new_compare14(x0, x1, ty_Int) new_primCmpNat0(x0, Zero) new_compare12(x0, x1, x2) new_compare13(Neg(Zero), Pos(Succ(x0))) new_compare13(Pos(Zero), Neg(Succ(x0))) new_merge00(x0, x1, x2, x3, GT, x4) new_primCmpNat2(Zero, x0) new_primCmpNat1(Succ(x0), Zero) new_compare(x0, x1, app(ty_Maybe, x2)) new_compare(x0, x1, ty_@0) new_compare14(x0, x1, app(ty_Ratio, x2)) new_compare(x0, x1, ty_Char) new_compare(x0, x1, ty_Float) new_primCmpNat1(Succ(x0), Succ(x1)) new_compare(x0, x1, ty_Double) new_merge00(x0, x1, x2, x3, LT, x4) new_compare7(x0, x1, x2) new_merge1(x0, :(x1, x2), :(x3, x4), x5) new_compare13(Pos(Zero), Pos(Succ(x0))) new_merge_pairs0(:(x0, []), x1) new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_primCmpNat1(Zero, Succ(x0)) new_compare5(x0, x1) new_compare14(x0, x1, ty_Integer) new_merge2([], :(x0, x1), x2) new_merge00(x0, x1, x2, x3, EQ, x4) new_compare6(x0, x1, x2, x3) new_compare3(x0, x1, x2) new_compare13(Pos(Zero), Neg(Zero)) new_compare13(Neg(Zero), Pos(Zero)) new_compare14(x0, x1, ty_Bool) new_compare14(x0, x1, app(app(ty_@2, x2), x3)) new_compare8(x0, x1) new_compare(x0, x1, app(ty_Ratio, x2)) new_merge_pairs0([], x0) new_compare14(x0, x1, ty_Float) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: new_mergesort'(vz117, :(vz1180, :(vz11810, vz11811)), ba) -> new_mergesort'(new_merge1(vz117, vz1180, vz11810, ba), new_merge_pairs0(vz11811, ba), ba) The TRS R consists of the following rules: new_compare14(vz11800, vz118100, app(app(app(ty_@3, bc), bd), be)) -> new_compare4(vz11800, vz118100, bc, bd, be) new_compare14(vz11800, vz118100, app(app(ty_Either, cc), cd)) -> new_compare11(vz11800, vz118100, cc, cd) new_compare(vz1170, vz11800, ty_Float) -> new_compare2(vz1170, vz11800) new_compare13(Pos(Succ(vz120000)), Neg(vz11900)) -> GT new_compare13(Neg(Zero), Pos(Succ(vz119000))) -> LT new_compare13(Neg(Zero), Neg(Zero)) -> EQ new_compare(vz1170, vz11800, app(ty_[], cb)) -> new_compare12(vz1170, vz11800, cb) new_primCmpNat0(vz120000, Succ(vz119000)) -> new_primCmpNat1(vz120000, vz119000) new_compare(vz1170, vz11800, ty_Int) -> new_compare13(vz1170, vz11800) new_compare14(vz11800, vz118100, app(ty_Ratio, bh)) -> new_compare7(vz11800, vz118100, bh) new_primCmpNat1(Zero, Zero) -> EQ new_compare13(Pos(Succ(vz120000)), Pos(vz11900)) -> new_primCmpNat0(vz120000, vz11900) new_merge_pairs0(:(vz118110, []), ba) -> :(vz118110, []) new_compare13(Neg(Zero), Neg(Succ(vz119000))) -> new_primCmpNat0(vz119000, Zero) new_merge1(vz117, :(vz11800, vz11801), :(vz118100, vz118101), ba) -> new_merge2(vz117, new_merge00(vz118100, vz11800, vz11801, vz118101, new_compare14(vz11800, vz118100, ba), ba), ba) new_compare(vz1170, vz11800, ty_Bool) -> new_compare0(vz1170, vz11800) new_compare8(vz1170, vz11800) -> error([]) new_primCmpNat1(Succ(vz1200000), Zero) -> GT new_compare13(Pos(Zero), Pos(Succ(vz119000))) -> new_primCmpNat2(Zero, vz119000) new_compare14(vz11800, vz118100, app(app(ty_@2, bf), bg)) -> new_compare6(vz11800, vz118100, bf, bg) new_compare13(Neg(Succ(vz120000)), Neg(vz11900)) -> new_primCmpNat2(vz11900, vz120000) new_compare13(Neg(Succ(vz120000)), Pos(vz11900)) -> LT new_merge2([], :(vz11800, vz11801), ba) -> :(vz11800, vz11801) new_compare14(vz11800, vz118100, ty_Float) -> new_compare2(vz11800, vz118100) new_compare0(vz1170, vz11800) -> error([]) new_compare14(vz11800, vz118100, app(ty_[], cb)) -> new_compare12(vz11800, vz118100, cb) new_compare14(vz11800, vz118100, ty_Int) -> new_compare13(vz11800, vz118100) new_compare14(vz11800, vz118100, ty_Double) -> new_compare8(vz11800, vz118100) new_compare(vz1170, vz11800, app(app(ty_Either, cc), cd)) -> new_compare11(vz1170, vz11800, cc, cd) new_compare14(vz11800, vz118100, ty_Char) -> new_compare5(vz11800, vz118100) new_primCmpNat2(Succ(vz119000), vz120000) -> new_primCmpNat1(vz119000, vz120000) new_merge_pairs0(:(vz118110, :(vz1181110, vz1181111)), ba) -> :(new_merge2(vz118110, vz1181110, ba), new_merge_pairs0(vz1181111, ba)) new_compare(vz1170, vz11800, app(app(ty_@2, bf), bg)) -> new_compare6(vz1170, vz11800, bf, bg) new_primCmpNat0(vz120000, Zero) -> GT new_merge00(vz127, vz128, vz129, vz130, LT, ca) -> :(vz128, new_merge2(vz129, :(vz127, vz130), ca)) new_compare13(Pos(Zero), Pos(Zero)) -> EQ new_primCmpNat2(Zero, vz120000) -> LT new_compare13(Pos(Zero), Neg(Zero)) -> EQ new_compare13(Neg(Zero), Pos(Zero)) -> EQ new_merge2(:(vz1170, vz1171), :(vz11800, vz11801), ba) -> new_merge00(vz11800, vz1170, vz1171, vz11801, new_compare(vz1170, vz11800, ba), ba) new_primCmpNat1(Succ(vz1200000), Succ(vz1190000)) -> new_primCmpNat1(vz1200000, vz1190000) new_compare14(vz11800, vz118100, app(ty_Maybe, bb)) -> new_compare3(vz11800, vz118100, bb) new_compare14(vz11800, vz118100, ty_Ordering) -> new_compare1(vz11800, vz118100) new_merge2(vz117, [], ba) -> vz117 new_compare(vz1170, vz11800, app(ty_Ratio, bh)) -> new_compare7(vz1170, vz11800, bh) new_compare(vz1170, vz11800, ty_@0) -> new_compare9(vz1170, vz11800) new_compare(vz1170, vz11800, app(app(app(ty_@3, bc), bd), be)) -> new_compare4(vz1170, vz11800, bc, bd, be) new_merge_pairs0([], ba) -> [] new_merge1(vz117, [], :(vz118100, vz118101), ba) -> new_merge2(vz117, :(vz118100, vz118101), ba) new_compare2(vz1170, vz11800) -> error([]) new_compare13(Pos(Zero), Neg(Succ(vz119000))) -> GT new_compare7(vz1170, vz11800, bh) -> error([]) new_primCmpNat1(Zero, Succ(vz1190000)) -> LT new_compare3(vz1170, vz11800, bb) -> error([]) new_merge00(vz127, vz128, vz129, vz130, GT, ca) -> :(vz127, new_merge2(:(vz128, vz129), vz130, ca)) new_compare(vz1170, vz11800, ty_Double) -> new_compare8(vz1170, vz11800) new_compare14(vz11800, vz118100, ty_@0) -> new_compare9(vz11800, vz118100) new_compare5(vz1170, vz11800) -> error([]) new_compare(vz1170, vz11800, ty_Char) -> new_compare5(vz1170, vz11800) new_compare14(vz11800, vz118100, ty_Integer) -> new_compare10(vz11800, vz118100) new_compare4(vz1170, vz11800, bc, bd, be) -> error([]) new_merge00(vz127, vz128, vz129, vz130, EQ, ca) -> :(vz128, new_merge2(vz129, :(vz127, vz130), ca)) new_compare10(vz1170, vz11800) -> error([]) new_compare(vz1170, vz11800, app(ty_Maybe, bb)) -> new_compare3(vz1170, vz11800, bb) new_compare(vz1170, vz11800, ty_Integer) -> new_compare10(vz1170, vz11800) new_compare12(vz1170, vz11800, cb) -> error([]) new_compare(vz1170, vz11800, ty_Ordering) -> new_compare1(vz1170, vz11800) new_compare11(vz1170, vz11800, cc, cd) -> error([]) new_compare1(vz1170, vz11800) -> error([]) new_compare14(vz11800, vz118100, ty_Bool) -> new_compare0(vz11800, vz118100) new_compare6(vz1170, vz11800, bf, bg) -> error([]) new_merge1(vz117, vz1180, [], ba) -> new_merge2(vz117, vz1180, ba) new_compare9(vz1170, vz11800) -> error([]) The set Q consists of the following terms: new_compare14(x0, x1, app(ty_Maybe, x2)) new_primCmpNat2(Succ(x0), x1) new_compare1(x0, x1) new_merge1(x0, [], :(x1, x2), x3) new_merge1(x0, x1, [], x2) new_compare14(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_compare13(Neg(Zero), Neg(Zero)) new_compare(x0, x1, ty_Int) new_compare10(x0, x1) new_compare13(Neg(Zero), Neg(Succ(x0))) new_compare13(Pos(Succ(x0)), Pos(x1)) new_compare0(x0, x1) new_compare(x0, x1, app(ty_[], x2)) new_compare14(x0, x1, ty_Char) new_compare14(x0, x1, ty_@0) new_compare11(x0, x1, x2, x3) new_merge2(:(x0, x1), :(x2, x3), x4) new_compare14(x0, x1, ty_Double) new_compare(x0, x1, app(app(ty_Either, x2), x3)) new_compare14(x0, x1, app(app(ty_Either, x2), x3)) new_compare(x0, x1, ty_Integer) new_compare14(x0, x1, ty_Ordering) new_compare(x0, x1, ty_Ordering) new_compare13(Pos(Zero), Pos(Zero)) new_primCmpNat0(x0, Succ(x1)) new_compare13(Pos(Succ(x0)), Neg(x1)) new_compare13(Neg(Succ(x0)), Pos(x1)) new_compare9(x0, x1) new_compare14(x0, x1, app(ty_[], x2)) new_compare13(Neg(Succ(x0)), Neg(x1)) new_merge_pairs0(:(x0, :(x1, x2)), x3) new_compare4(x0, x1, x2, x3, x4) new_merge2(x0, [], x1) new_compare(x0, x1, ty_Bool) new_primCmpNat1(Zero, Zero) new_compare2(x0, x1) new_compare(x0, x1, app(app(ty_@2, x2), x3)) new_compare14(x0, x1, ty_Int) new_primCmpNat0(x0, Zero) new_compare12(x0, x1, x2) new_compare13(Neg(Zero), Pos(Succ(x0))) new_compare13(Pos(Zero), Neg(Succ(x0))) new_merge00(x0, x1, x2, x3, GT, x4) new_primCmpNat2(Zero, x0) new_primCmpNat1(Succ(x0), Zero) new_compare(x0, x1, app(ty_Maybe, x2)) new_compare(x0, x1, ty_@0) new_compare14(x0, x1, app(ty_Ratio, x2)) new_compare(x0, x1, ty_Char) new_compare(x0, x1, ty_Float) new_primCmpNat1(Succ(x0), Succ(x1)) new_compare(x0, x1, ty_Double) new_merge00(x0, x1, x2, x3, LT, x4) new_compare7(x0, x1, x2) new_merge1(x0, :(x1, x2), :(x3, x4), x5) new_compare13(Pos(Zero), Pos(Succ(x0))) new_merge_pairs0(:(x0, []), x1) new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_primCmpNat1(Zero, Succ(x0)) new_compare5(x0, x1) new_compare14(x0, x1, ty_Integer) new_merge2([], :(x0, x1), x2) new_merge00(x0, x1, x2, x3, EQ, x4) new_compare6(x0, x1, x2, x3) new_compare3(x0, x1, x2) new_compare13(Pos(Zero), Neg(Zero)) new_compare13(Neg(Zero), Pos(Zero)) new_compare14(x0, x1, ty_Bool) new_compare14(x0, x1, app(app(ty_@2, x2), x3)) new_compare8(x0, x1) new_compare(x0, x1, app(ty_Ratio, x2)) new_merge_pairs0([], x0) new_compare14(x0, x1, ty_Float) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(:(x_1, x_2)) = 1 + x_2 POL(EQ) = 0 POL(GT) = 1 POL(LT) = 0 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL([]) = 0 POL(new_merge2(x_1, x_2, x_3)) = x_1 POL(new_merge_pairs0(x_1, x_2)) = x_1 POL(new_primCmpNat0(x_1, x_2)) = 1 + x_1 + x_2 POL(new_primCmpNat1(x_1, x_2)) = 1 POL(new_primCmpNat2(x_1, x_2)) = 1 + x_1 + x_2 From the DPs we obtained the following set of size-change graphs: *new_mergesort'(vz117, :(vz1180, :(vz11810, vz11811)), ba) -> new_mergesort'(new_merge1(vz117, vz1180, vz11810, ba), new_merge_pairs0(vz11811, ba), ba) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 > 2, 3 >= 3 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_merge_pairs0([], ba) -> [] new_merge_pairs0(:(vz118110, []), ba) -> :(vz118110, []) new_merge_pairs0(:(vz118110, :(vz1181110, vz1181111)), ba) -> :(new_merge2(vz118110, vz1181110, ba), new_merge_pairs0(vz1181111, ba)) ---------------------------------------- (16) YES ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: new_merge_pairs(:(vz118110, :(vz1181110, vz1181111)), ba) -> new_merge_pairs(vz1181111, ba) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *new_merge_pairs(:(vz118110, :(vz1181110, vz1181111)), ba) -> new_merge_pairs(vz1181111, ba) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: new_merge0(vz127, vz128, vz129, vz130, EQ, ba) -> new_merge(vz129, :(vz127, vz130), ba) new_merge0(vz127, vz128, vz129, vz130, GT, ba) -> new_merge(:(vz128, vz129), vz130, ba) new_merge0(vz127, vz128, vz129, vz130, LT, ba) -> new_merge(vz129, :(vz127, vz130), ba) new_merge(:(vz1170, vz1171), :(vz11800, vz11801), bb) -> new_merge0(vz11800, vz1170, vz1171, vz11801, new_compare(vz1170, vz11800, bb), bb) The TRS R consists of the following rules: new_primCmpNat2(Zero, vz120000) -> LT new_compare13(Pos(Zero), Neg(Zero)) -> EQ new_compare13(Neg(Zero), Pos(Zero)) -> EQ new_compare(vz1170, vz11800, ty_Float) -> new_compare2(vz1170, vz11800) new_compare13(Pos(Succ(vz120000)), Neg(vz11900)) -> GT new_primCmpNat1(Succ(vz1200000), Succ(vz1190000)) -> new_primCmpNat1(vz1200000, vz1190000) new_compare13(Neg(Zero), Pos(Succ(vz119000))) -> LT new_compare13(Neg(Zero), Neg(Zero)) -> EQ new_compare(vz1170, vz11800, app(ty_[], cd)) -> new_compare12(vz1170, vz11800, cd) new_primCmpNat0(vz120000, Succ(vz119000)) -> new_primCmpNat1(vz120000, vz119000) new_compare(vz1170, vz11800, app(ty_Ratio, ca)) -> new_compare7(vz1170, vz11800, ca) new_compare(vz1170, vz11800, ty_Int) -> new_compare13(vz1170, vz11800) new_compare(vz1170, vz11800, ty_@0) -> new_compare9(vz1170, vz11800) new_compare(vz1170, vz11800, app(app(app(ty_@3, bd), be), bf)) -> new_compare4(vz1170, vz11800, bd, be, bf) new_primCmpNat1(Zero, Zero) -> EQ new_compare2(vz1170, vz11800) -> error([]) new_compare13(Pos(Succ(vz120000)), Pos(vz11900)) -> new_primCmpNat0(vz120000, vz11900) new_compare13(Neg(Zero), Neg(Succ(vz119000))) -> new_primCmpNat0(vz119000, Zero) new_compare13(Pos(Zero), Neg(Succ(vz119000))) -> GT new_compare7(vz1170, vz11800, ca) -> error([]) new_primCmpNat1(Zero, Succ(vz1190000)) -> LT new_compare3(vz1170, vz11800, bc) -> error([]) new_compare(vz1170, vz11800, ty_Double) -> new_compare8(vz1170, vz11800) new_compare(vz1170, vz11800, ty_Bool) -> new_compare0(vz1170, vz11800) new_compare8(vz1170, vz11800) -> error([]) new_primCmpNat1(Succ(vz1200000), Zero) -> GT new_compare13(Pos(Zero), Pos(Succ(vz119000))) -> new_primCmpNat2(Zero, vz119000) new_compare13(Neg(Succ(vz120000)), Neg(vz11900)) -> new_primCmpNat2(vz11900, vz120000) new_compare5(vz1170, vz11800) -> error([]) new_compare(vz1170, vz11800, ty_Char) -> new_compare5(vz1170, vz11800) new_compare13(Neg(Succ(vz120000)), Pos(vz11900)) -> LT new_compare4(vz1170, vz11800, bd, be, bf) -> error([]) new_compare10(vz1170, vz11800) -> error([]) new_compare0(vz1170, vz11800) -> error([]) new_compare(vz1170, vz11800, app(ty_Maybe, bc)) -> new_compare3(vz1170, vz11800, bc) new_compare(vz1170, vz11800, ty_Integer) -> new_compare10(vz1170, vz11800) new_compare12(vz1170, vz11800, cd) -> error([]) new_compare(vz1170, vz11800, ty_Ordering) -> new_compare1(vz1170, vz11800) new_compare(vz1170, vz11800, app(app(ty_Either, cb), cc)) -> new_compare11(vz1170, vz11800, cb, cc) new_compare11(vz1170, vz11800, cb, cc) -> error([]) new_compare1(vz1170, vz11800) -> error([]) new_primCmpNat2(Succ(vz119000), vz120000) -> new_primCmpNat1(vz119000, vz120000) new_compare(vz1170, vz11800, app(app(ty_@2, bg), bh)) -> new_compare6(vz1170, vz11800, bg, bh) new_primCmpNat0(vz120000, Zero) -> GT new_compare6(vz1170, vz11800, bg, bh) -> error([]) new_compare9(vz1170, vz11800) -> error([]) new_compare13(Pos(Zero), Pos(Zero)) -> EQ The set Q consists of the following terms: new_primCmpNat2(Zero, x0) new_compare3(x0, x1, x2) new_primCmpNat1(Succ(x0), Zero) new_primCmpNat2(Succ(x0), x1) new_compare1(x0, x1) new_compare(x0, x1, ty_@0) new_compare(x0, x1, app(app(ty_@2, x2), x3)) new_compare(x0, x1, ty_Char) new_compare(x0, x1, ty_Float) new_primCmpNat1(Succ(x0), Succ(x1)) new_compare13(Neg(Zero), Neg(Zero)) new_compare(x0, x1, ty_Double) new_compare6(x0, x1, x2, x3) new_compare(x0, x1, ty_Int) new_compare10(x0, x1) new_compare13(Neg(Zero), Neg(Succ(x0))) new_compare13(Pos(Succ(x0)), Pos(x1)) new_compare7(x0, x1, x2) new_compare0(x0, x1) new_compare(x0, x1, app(ty_Ratio, x2)) new_compare13(Pos(Zero), Pos(Succ(x0))) new_compare4(x0, x1, x2, x3, x4) new_compare11(x0, x1, x2, x3) new_primCmpNat1(Zero, Succ(x0)) new_compare5(x0, x1) new_compare(x0, x1, ty_Integer) new_compare(x0, x1, app(app(ty_Either, x2), x3)) new_compare(x0, x1, ty_Ordering) new_compare13(Pos(Zero), Pos(Zero)) new_primCmpNat0(x0, Succ(x1)) new_compare13(Pos(Succ(x0)), Neg(x1)) new_compare13(Neg(Succ(x0)), Pos(x1)) new_compare9(x0, x1) new_compare13(Neg(Succ(x0)), Neg(x1)) new_compare13(Pos(Zero), Neg(Zero)) new_compare13(Neg(Zero), Pos(Zero)) new_compare(x0, x1, ty_Bool) new_primCmpNat1(Zero, Zero) new_compare2(x0, x1) new_compare8(x0, x1) new_compare(x0, x1, app(ty_Maybe, x2)) new_primCmpNat0(x0, Zero) new_compare(x0, x1, app(ty_[], x2)) new_compare13(Neg(Zero), Pos(Succ(x0))) new_compare13(Pos(Zero), Neg(Succ(x0))) new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_compare12(x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_merge(:(vz1170, vz1171), :(vz11800, vz11801), bb) -> new_merge0(vz11800, vz1170, vz1171, vz11801, new_compare(vz1170, vz11800, bb), bb) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(:(x_1, x_2)) = 1 + x_1 + x_2 POL(EQ) = 0 POL(GT) = 0 POL(LT) = 0 POL(Neg(x_1)) = 0 POL(Pos(x_1)) = 0 POL(Succ(x_1)) = x_1 POL(Zero) = 0 POL([]) = 1 POL(app(x_1, x_2)) = 1 + x_1 + x_2 POL(error(x_1)) = 1 + x_1 POL(new_compare(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(new_compare0(x_1, x_2)) = 1 + x_1 + x_2 POL(new_compare1(x_1, x_2)) = 1 + x_1 + x_2 POL(new_compare10(x_1, x_2)) = 1 + x_1 + x_2 POL(new_compare11(x_1, x_2, x_3, x_4)) = 1 + x_1 + x_2 + x_3 + x_4 POL(new_compare12(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(new_compare13(x_1, x_2)) = 0 POL(new_compare2(x_1, x_2)) = 1 + x_1 + x_2 POL(new_compare3(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(new_compare4(x_1, x_2, x_3, x_4, x_5)) = 1 + x_1 + x_2 + x_3 + x_4 + x_5 POL(new_compare5(x_1, x_2)) = 1 + x_1 + x_2 POL(new_compare6(x_1, x_2, x_3, x_4)) = 1 + x_1 + x_2 + x_3 + x_4 POL(new_compare7(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(new_compare8(x_1, x_2)) = 1 + x_1 + x_2 POL(new_compare9(x_1, x_2)) = 1 + x_1 + x_2 POL(new_merge(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(new_merge0(x_1, x_2, x_3, x_4, x_5, x_6)) = 1 + x_1 + x_2 + x_3 + x_4 + x_6 POL(new_primCmpNat0(x_1, x_2)) = 1 + x_1 POL(new_primCmpNat1(x_1, x_2)) = 1 POL(new_primCmpNat2(x_1, x_2)) = 1 + x_2 POL(ty_@0) = 1 POL(ty_@2) = 1 POL(ty_@3) = 1 POL(ty_Bool) = 1 POL(ty_Char) = 1 POL(ty_Double) = 1 POL(ty_Either) = 1 POL(ty_Float) = 1 POL(ty_Int) = 1 POL(ty_Integer) = 1 POL(ty_Maybe) = 1 POL(ty_Ordering) = 1 POL(ty_Ratio) = 1 POL(ty_[]) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: new_merge0(vz127, vz128, vz129, vz130, EQ, ba) -> new_merge(vz129, :(vz127, vz130), ba) new_merge0(vz127, vz128, vz129, vz130, GT, ba) -> new_merge(:(vz128, vz129), vz130, ba) new_merge0(vz127, vz128, vz129, vz130, LT, ba) -> new_merge(vz129, :(vz127, vz130), ba) The TRS R consists of the following rules: new_primCmpNat2(Zero, vz120000) -> LT new_compare13(Pos(Zero), Neg(Zero)) -> EQ new_compare13(Neg(Zero), Pos(Zero)) -> EQ new_compare(vz1170, vz11800, ty_Float) -> new_compare2(vz1170, vz11800) new_compare13(Pos(Succ(vz120000)), Neg(vz11900)) -> GT new_primCmpNat1(Succ(vz1200000), Succ(vz1190000)) -> new_primCmpNat1(vz1200000, vz1190000) new_compare13(Neg(Zero), Pos(Succ(vz119000))) -> LT new_compare13(Neg(Zero), Neg(Zero)) -> EQ new_compare(vz1170, vz11800, app(ty_[], cd)) -> new_compare12(vz1170, vz11800, cd) new_primCmpNat0(vz120000, Succ(vz119000)) -> new_primCmpNat1(vz120000, vz119000) new_compare(vz1170, vz11800, app(ty_Ratio, ca)) -> new_compare7(vz1170, vz11800, ca) new_compare(vz1170, vz11800, ty_Int) -> new_compare13(vz1170, vz11800) new_compare(vz1170, vz11800, ty_@0) -> new_compare9(vz1170, vz11800) new_compare(vz1170, vz11800, app(app(app(ty_@3, bd), be), bf)) -> new_compare4(vz1170, vz11800, bd, be, bf) new_primCmpNat1(Zero, Zero) -> EQ new_compare2(vz1170, vz11800) -> error([]) new_compare13(Pos(Succ(vz120000)), Pos(vz11900)) -> new_primCmpNat0(vz120000, vz11900) new_compare13(Neg(Zero), Neg(Succ(vz119000))) -> new_primCmpNat0(vz119000, Zero) new_compare13(Pos(Zero), Neg(Succ(vz119000))) -> GT new_compare7(vz1170, vz11800, ca) -> error([]) new_primCmpNat1(Zero, Succ(vz1190000)) -> LT new_compare3(vz1170, vz11800, bc) -> error([]) new_compare(vz1170, vz11800, ty_Double) -> new_compare8(vz1170, vz11800) new_compare(vz1170, vz11800, ty_Bool) -> new_compare0(vz1170, vz11800) new_compare8(vz1170, vz11800) -> error([]) new_primCmpNat1(Succ(vz1200000), Zero) -> GT new_compare13(Pos(Zero), Pos(Succ(vz119000))) -> new_primCmpNat2(Zero, vz119000) new_compare13(Neg(Succ(vz120000)), Neg(vz11900)) -> new_primCmpNat2(vz11900, vz120000) new_compare5(vz1170, vz11800) -> error([]) new_compare(vz1170, vz11800, ty_Char) -> new_compare5(vz1170, vz11800) new_compare13(Neg(Succ(vz120000)), Pos(vz11900)) -> LT new_compare4(vz1170, vz11800, bd, be, bf) -> error([]) new_compare10(vz1170, vz11800) -> error([]) new_compare0(vz1170, vz11800) -> error([]) new_compare(vz1170, vz11800, app(ty_Maybe, bc)) -> new_compare3(vz1170, vz11800, bc) new_compare(vz1170, vz11800, ty_Integer) -> new_compare10(vz1170, vz11800) new_compare12(vz1170, vz11800, cd) -> error([]) new_compare(vz1170, vz11800, ty_Ordering) -> new_compare1(vz1170, vz11800) new_compare(vz1170, vz11800, app(app(ty_Either, cb), cc)) -> new_compare11(vz1170, vz11800, cb, cc) new_compare11(vz1170, vz11800, cb, cc) -> error([]) new_compare1(vz1170, vz11800) -> error([]) new_primCmpNat2(Succ(vz119000), vz120000) -> new_primCmpNat1(vz119000, vz120000) new_compare(vz1170, vz11800, app(app(ty_@2, bg), bh)) -> new_compare6(vz1170, vz11800, bg, bh) new_primCmpNat0(vz120000, Zero) -> GT new_compare6(vz1170, vz11800, bg, bh) -> error([]) new_compare9(vz1170, vz11800) -> error([]) new_compare13(Pos(Zero), Pos(Zero)) -> EQ The set Q consists of the following terms: new_primCmpNat2(Zero, x0) new_compare3(x0, x1, x2) new_primCmpNat1(Succ(x0), Zero) new_primCmpNat2(Succ(x0), x1) new_compare1(x0, x1) new_compare(x0, x1, ty_@0) new_compare(x0, x1, app(app(ty_@2, x2), x3)) new_compare(x0, x1, ty_Char) new_compare(x0, x1, ty_Float) new_primCmpNat1(Succ(x0), Succ(x1)) new_compare13(Neg(Zero), Neg(Zero)) new_compare(x0, x1, ty_Double) new_compare6(x0, x1, x2, x3) new_compare(x0, x1, ty_Int) new_compare10(x0, x1) new_compare13(Neg(Zero), Neg(Succ(x0))) new_compare13(Pos(Succ(x0)), Pos(x1)) new_compare7(x0, x1, x2) new_compare0(x0, x1) new_compare(x0, x1, app(ty_Ratio, x2)) new_compare13(Pos(Zero), Pos(Succ(x0))) new_compare4(x0, x1, x2, x3, x4) new_compare11(x0, x1, x2, x3) new_primCmpNat1(Zero, Succ(x0)) new_compare5(x0, x1) new_compare(x0, x1, ty_Integer) new_compare(x0, x1, app(app(ty_Either, x2), x3)) new_compare(x0, x1, ty_Ordering) new_compare13(Pos(Zero), Pos(Zero)) new_primCmpNat0(x0, Succ(x1)) new_compare13(Pos(Succ(x0)), Neg(x1)) new_compare13(Neg(Succ(x0)), Pos(x1)) new_compare9(x0, x1) new_compare13(Neg(Succ(x0)), Neg(x1)) new_compare13(Pos(Zero), Neg(Zero)) new_compare13(Neg(Zero), Pos(Zero)) new_compare(x0, x1, ty_Bool) new_primCmpNat1(Zero, Zero) new_compare2(x0, x1) new_compare8(x0, x1) new_compare(x0, x1, app(ty_Maybe, x2)) new_primCmpNat0(x0, Zero) new_compare(x0, x1, app(ty_[], x2)) new_compare13(Neg(Zero), Pos(Succ(x0))) new_compare13(Pos(Zero), Neg(Succ(x0))) new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_compare12(x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (24) TRUE ---------------------------------------- (25) Obligation: Q DP problem: The TRS P consists of the following rules: new_map(:(vz3110, vz3111)) -> new_map(vz3111) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (26) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *new_map(:(vz3110, vz3111)) -> new_map(vz3111) The graph contains the following edges 1 > 1 ---------------------------------------- (27) YES