/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, 10 ms] (6) HASKELL (7) Narrow [SOUND, 0 ms] (8) AND (9) QDP (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] (11) YES (12) QDP (13) QDPOrderProof [EQUIVALENT, 81 ms] (14) QDP (15) DependencyGraphProof [EQUIVALENT, 0 ms] (16) TRUE (17) QDP (18) DependencyGraphProof [EQUIVALENT, 0 ms] (19) QDP (20) QDPSizeChangeProof [EQUIVALENT, 0 ms] (21) YES (22) QDP (23) QDPSizeChangeProof [EQUIVALENT, 0 ms] (24) YES (25) QDP (26) QDPSizeChangeProof [EQUIVALENT, 0 ms] (27) YES (28) QDP (29) QDPSizeChangeProof [EQUIVALENT, 0 ms] (30) YES (31) QDP (32) QDPSizeChangeProof [EQUIVALENT, 0 ms] (33) 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"];16080[label="vz3/vz30 : vz31",fontsize=10,color="white",style="solid",shape="box"];6 -> 16080[label="",style="solid", color="burlywood", weight=9]; 16080 -> 7[label="",style="solid", color="burlywood", weight=3]; 16081[label="vz3/[]",fontsize=10,color="white",style="solid",shape="box"];6 -> 16081[label="",style="solid", color="burlywood", weight=9]; 16081 -> 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"];16082[label="vz31/vz310 : vz311",fontsize=10,color="white",style="solid",shape="box"];9 -> 16082[label="",style="solid", color="burlywood", weight=9]; 16082 -> 11[label="",style="solid", color="burlywood", weight=3]; 16083[label="vz31/[]",fontsize=10,color="white",style="solid",shape="box"];9 -> 16083[label="",style="solid", color="burlywood", weight=9]; 16083 -> 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 -> 15606[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 -> 15607[label="",style="dashed", color="magenta", weight=3]; 18 -> 15608[label="",style="dashed", color="magenta", weight=3]; 19[label="vz30 : []",fontsize=16,color="green",shape="box"];15607 -> 15761[label="",style="dashed", color="red", weight=0]; 15607[label="List.merge compare (List.wrap vz30) (List.wrap vz310)",fontsize=16,color="magenta"];15607 -> 15762[label="",style="dashed", color="magenta", weight=3]; 15607 -> 15763[label="",style="dashed", color="magenta", weight=3]; 15608[label="map List.wrap vz311",fontsize=16,color="burlywood",shape="triangle"];16084[label="vz311/vz3110 : vz3111",fontsize=10,color="white",style="solid",shape="box"];15608 -> 16084[label="",style="solid", color="burlywood", weight=9]; 16084 -> 15764[label="",style="solid", color="burlywood", weight=3]; 16085[label="vz311/[]",fontsize=10,color="white",style="solid",shape="box"];15608 -> 16085[label="",style="solid", color="burlywood", weight=9]; 16085 -> 15765[label="",style="solid", color="burlywood", weight=3]; 15606[label="List.mergesort' compare (vz501 : List.merge_pairs compare vz502)",fontsize=16,color="burlywood",shape="triangle"];16086[label="vz502/vz5020 : vz5021",fontsize=10,color="white",style="solid",shape="box"];15606 -> 16086[label="",style="solid", color="burlywood", weight=9]; 16086 -> 15766[label="",style="solid", color="burlywood", weight=3]; 16087[label="vz502/[]",fontsize=10,color="white",style="solid",shape="box"];15606 -> 16087[label="",style="solid", color="burlywood", weight=9]; 16087 -> 15767[label="",style="solid", color="burlywood", weight=3]; 15762 -> 17[label="",style="dashed", color="red", weight=0]; 15762[label="List.wrap vz30",fontsize=16,color="magenta"];15763 -> 17[label="",style="dashed", color="red", weight=0]; 15763[label="List.wrap vz310",fontsize=16,color="magenta"];15763 -> 15768[label="",style="dashed", color="magenta", weight=3]; 15761[label="List.merge compare vz504 vz503",fontsize=16,color="burlywood",shape="triangle"];16088[label="vz503/vz5030 : vz5031",fontsize=10,color="white",style="solid",shape="box"];15761 -> 16088[label="",style="solid", color="burlywood", weight=9]; 16088 -> 15769[label="",style="solid", color="burlywood", weight=3]; 16089[label="vz503/[]",fontsize=10,color="white",style="solid",shape="box"];15761 -> 16089[label="",style="solid", color="burlywood", weight=9]; 16089 -> 15770[label="",style="solid", color="burlywood", weight=3]; 15764[label="map List.wrap (vz3110 : vz3111)",fontsize=16,color="black",shape="box"];15764 -> 15771[label="",style="solid", color="black", weight=3]; 15765[label="map List.wrap []",fontsize=16,color="black",shape="box"];15765 -> 15772[label="",style="solid", color="black", weight=3]; 15766[label="List.mergesort' compare (vz501 : List.merge_pairs compare (vz5020 : vz5021))",fontsize=16,color="burlywood",shape="box"];16090[label="vz5021/vz50210 : vz50211",fontsize=10,color="white",style="solid",shape="box"];15766 -> 16090[label="",style="solid", color="burlywood", weight=9]; 16090 -> 15773[label="",style="solid", color="burlywood", weight=3]; 16091[label="vz5021/[]",fontsize=10,color="white",style="solid",shape="box"];15766 -> 16091[label="",style="solid", color="burlywood", weight=9]; 16091 -> 15774[label="",style="solid", color="burlywood", weight=3]; 15767[label="List.mergesort' compare (vz501 : List.merge_pairs compare [])",fontsize=16,color="black",shape="box"];15767 -> 15775[label="",style="solid", color="black", weight=3]; 15768[label="vz310",fontsize=16,color="green",shape="box"];15769[label="List.merge compare vz504 (vz5030 : vz5031)",fontsize=16,color="burlywood",shape="box"];16092[label="vz504/vz5040 : vz5041",fontsize=10,color="white",style="solid",shape="box"];15769 -> 16092[label="",style="solid", color="burlywood", weight=9]; 16092 -> 15776[label="",style="solid", color="burlywood", weight=3]; 16093[label="vz504/[]",fontsize=10,color="white",style="solid",shape="box"];15769 -> 16093[label="",style="solid", color="burlywood", weight=9]; 16093 -> 15777[label="",style="solid", color="burlywood", weight=3]; 15770[label="List.merge compare vz504 []",fontsize=16,color="black",shape="box"];15770 -> 15778[label="",style="solid", color="black", weight=3]; 15771[label="List.wrap vz3110 : map List.wrap vz3111",fontsize=16,color="green",shape="box"];15771 -> 15779[label="",style="dashed", color="green", weight=3]; 15771 -> 15780[label="",style="dashed", color="green", weight=3]; 15772[label="[]",fontsize=16,color="green",shape="box"];15773[label="List.mergesort' compare (vz501 : List.merge_pairs compare (vz5020 : vz50210 : vz50211))",fontsize=16,color="black",shape="box"];15773 -> 15781[label="",style="solid", color="black", weight=3]; 15774[label="List.mergesort' compare (vz501 : List.merge_pairs compare (vz5020 : []))",fontsize=16,color="black",shape="box"];15774 -> 15782[label="",style="solid", color="black", weight=3]; 15775[label="List.mergesort' compare (vz501 : [])",fontsize=16,color="black",shape="box"];15775 -> 15783[label="",style="solid", color="black", weight=3]; 15776[label="List.merge compare (vz5040 : vz5041) (vz5030 : vz5031)",fontsize=16,color="black",shape="box"];15776 -> 15784[label="",style="solid", color="black", weight=3]; 15777[label="List.merge compare [] (vz5030 : vz5031)",fontsize=16,color="black",shape="box"];15777 -> 15785[label="",style="solid", color="black", weight=3]; 15778[label="vz504",fontsize=16,color="green",shape="box"];15779 -> 17[label="",style="dashed", color="red", weight=0]; 15779[label="List.wrap vz3110",fontsize=16,color="magenta"];15779 -> 15786[label="",style="dashed", color="magenta", weight=3]; 15780 -> 15608[label="",style="dashed", color="red", weight=0]; 15780[label="map List.wrap vz3111",fontsize=16,color="magenta"];15780 -> 15787[label="",style="dashed", color="magenta", weight=3]; 15781[label="List.mergesort' compare (vz501 : List.merge compare vz5020 vz50210 : List.merge_pairs compare vz50211)",fontsize=16,color="black",shape="box"];15781 -> 15788[label="",style="solid", color="black", weight=3]; 15782[label="List.mergesort' compare (vz501 : vz5020 : [])",fontsize=16,color="black",shape="box"];15782 -> 15789[label="",style="solid", color="black", weight=3]; 15783[label="vz501",fontsize=16,color="green",shape="box"];15784 -> 15828[label="",style="dashed", color="red", weight=0]; 15784[label="List.merge0 vz5030 compare vz5040 vz5041 vz5031 (compare vz5040 vz5030)",fontsize=16,color="magenta"];15784 -> 15829[label="",style="dashed", color="magenta", weight=3]; 15784 -> 15830[label="",style="dashed", color="magenta", weight=3]; 15784 -> 15831[label="",style="dashed", color="magenta", weight=3]; 15784 -> 15832[label="",style="dashed", color="magenta", weight=3]; 15784 -> 15833[label="",style="dashed", color="magenta", weight=3]; 15785[label="vz5030 : vz5031",fontsize=16,color="green",shape="box"];15786[label="vz3110",fontsize=16,color="green",shape="box"];15787[label="vz3111",fontsize=16,color="green",shape="box"];15788[label="List.mergesort' compare (List.merge_pairs compare (vz501 : List.merge compare vz5020 vz50210 : List.merge_pairs compare vz50211))",fontsize=16,color="black",shape="box"];15788 -> 15791[label="",style="solid", color="black", weight=3]; 15789[label="List.mergesort' compare (List.merge_pairs compare (vz501 : vz5020 : []))",fontsize=16,color="black",shape="box"];15789 -> 15792[label="",style="solid", color="black", weight=3]; 15829[label="vz5040",fontsize=16,color="green",shape="box"];15830[label="vz5041",fontsize=16,color="green",shape="box"];15831[label="compare vz5040 vz5030",fontsize=16,color="burlywood",shape="box"];16094[label="vz5040/vz50400 :% vz50401",fontsize=10,color="white",style="solid",shape="box"];15831 -> 16094[label="",style="solid", color="burlywood", weight=9]; 16094 -> 15859[label="",style="solid", color="burlywood", weight=3]; 15832[label="vz5030",fontsize=16,color="green",shape="box"];15833[label="vz5031",fontsize=16,color="green",shape="box"];15828[label="List.merge0 vz511 compare vz512 vz513 vz514 vz515",fontsize=16,color="burlywood",shape="triangle"];16095[label="vz515/LT",fontsize=10,color="white",style="solid",shape="box"];15828 -> 16095[label="",style="solid", color="burlywood", weight=9]; 16095 -> 15860[label="",style="solid", color="burlywood", weight=3]; 16096[label="vz515/EQ",fontsize=10,color="white",style="solid",shape="box"];15828 -> 16096[label="",style="solid", color="burlywood", weight=9]; 16096 -> 15861[label="",style="solid", color="burlywood", weight=3]; 16097[label="vz515/GT",fontsize=10,color="white",style="solid",shape="box"];15828 -> 16097[label="",style="solid", color="burlywood", weight=9]; 16097 -> 15862[label="",style="solid", color="burlywood", weight=3]; 15791 -> 15606[label="",style="dashed", color="red", weight=0]; 15791[label="List.mergesort' compare (List.merge compare vz501 (List.merge compare vz5020 vz50210) : List.merge_pairs compare (List.merge_pairs compare vz50211))",fontsize=16,color="magenta"];15791 -> 15794[label="",style="dashed", color="magenta", weight=3]; 15791 -> 15795[label="",style="dashed", color="magenta", weight=3]; 15792 -> 15606[label="",style="dashed", color="red", weight=0]; 15792[label="List.mergesort' compare (List.merge compare vz501 vz5020 : List.merge_pairs compare [])",fontsize=16,color="magenta"];15792 -> 15796[label="",style="dashed", color="magenta", weight=3]; 15792 -> 15797[label="",style="dashed", color="magenta", weight=3]; 15859[label="compare (vz50400 :% vz50401) vz5030",fontsize=16,color="burlywood",shape="box"];16098[label="vz5030/vz50300 :% vz50301",fontsize=10,color="white",style="solid",shape="box"];15859 -> 16098[label="",style="solid", color="burlywood", weight=9]; 16098 -> 15894[label="",style="solid", color="burlywood", weight=3]; 15860[label="List.merge0 vz511 compare vz512 vz513 vz514 LT",fontsize=16,color="black",shape="box"];15860 -> 15895[label="",style="solid", color="black", weight=3]; 15861[label="List.merge0 vz511 compare vz512 vz513 vz514 EQ",fontsize=16,color="black",shape="box"];15861 -> 15896[label="",style="solid", color="black", weight=3]; 15862[label="List.merge0 vz511 compare vz512 vz513 vz514 GT",fontsize=16,color="black",shape="box"];15862 -> 15897[label="",style="solid", color="black", weight=3]; 15794[label="List.merge compare vz501 (List.merge compare vz5020 vz50210)",fontsize=16,color="burlywood",shape="box"];16099[label="vz50210/vz502100 : vz502101",fontsize=10,color="white",style="solid",shape="box"];15794 -> 16099[label="",style="solid", color="burlywood", weight=9]; 16099 -> 15799[label="",style="solid", color="burlywood", weight=3]; 16100[label="vz50210/[]",fontsize=10,color="white",style="solid",shape="box"];15794 -> 16100[label="",style="solid", color="burlywood", weight=9]; 16100 -> 15800[label="",style="solid", color="burlywood", weight=3]; 15795[label="List.merge_pairs compare vz50211",fontsize=16,color="burlywood",shape="triangle"];16101[label="vz50211/vz502110 : vz502111",fontsize=10,color="white",style="solid",shape="box"];15795 -> 16101[label="",style="solid", color="burlywood", weight=9]; 16101 -> 15801[label="",style="solid", color="burlywood", weight=3]; 16102[label="vz50211/[]",fontsize=10,color="white",style="solid",shape="box"];15795 -> 16102[label="",style="solid", color="burlywood", weight=9]; 16102 -> 15802[label="",style="solid", color="burlywood", weight=3]; 15796[label="List.merge compare vz501 vz5020",fontsize=16,color="burlywood",shape="triangle"];16103[label="vz5020/vz50200 : vz50201",fontsize=10,color="white",style="solid",shape="box"];15796 -> 16103[label="",style="solid", color="burlywood", weight=9]; 16103 -> 15803[label="",style="solid", color="burlywood", weight=3]; 16104[label="vz5020/[]",fontsize=10,color="white",style="solid",shape="box"];15796 -> 16104[label="",style="solid", color="burlywood", weight=9]; 16104 -> 15804[label="",style="solid", color="burlywood", weight=3]; 15797[label="[]",fontsize=16,color="green",shape="box"];15894[label="compare (vz50400 :% vz50401) (vz50300 :% vz50301)",fontsize=16,color="black",shape="box"];15894 -> 15940[label="",style="solid", color="black", weight=3]; 15895[label="vz512 : List.merge compare vz513 (vz511 : vz514)",fontsize=16,color="green",shape="box"];15895 -> 15941[label="",style="dashed", color="green", weight=3]; 15896[label="vz512 : List.merge compare vz513 (vz511 : vz514)",fontsize=16,color="green",shape="box"];15896 -> 15942[label="",style="dashed", color="green", weight=3]; 15897[label="vz511 : List.merge compare (vz512 : vz513) vz514",fontsize=16,color="green",shape="box"];15897 -> 15943[label="",style="dashed", color="green", weight=3]; 15799[label="List.merge compare vz501 (List.merge compare vz5020 (vz502100 : vz502101))",fontsize=16,color="burlywood",shape="box"];16105[label="vz5020/vz50200 : vz50201",fontsize=10,color="white",style="solid",shape="box"];15799 -> 16105[label="",style="solid", color="burlywood", weight=9]; 16105 -> 15806[label="",style="solid", color="burlywood", weight=3]; 16106[label="vz5020/[]",fontsize=10,color="white",style="solid",shape="box"];15799 -> 16106[label="",style="solid", color="burlywood", weight=9]; 16106 -> 15807[label="",style="solid", color="burlywood", weight=3]; 15800[label="List.merge compare vz501 (List.merge compare vz5020 [])",fontsize=16,color="black",shape="box"];15800 -> 15808[label="",style="solid", color="black", weight=3]; 15801[label="List.merge_pairs compare (vz502110 : vz502111)",fontsize=16,color="burlywood",shape="box"];16107[label="vz502111/vz5021110 : vz5021111",fontsize=10,color="white",style="solid",shape="box"];15801 -> 16107[label="",style="solid", color="burlywood", weight=9]; 16107 -> 15809[label="",style="solid", color="burlywood", weight=3]; 16108[label="vz502111/[]",fontsize=10,color="white",style="solid",shape="box"];15801 -> 16108[label="",style="solid", color="burlywood", weight=9]; 16108 -> 15810[label="",style="solid", color="burlywood", weight=3]; 15802[label="List.merge_pairs compare []",fontsize=16,color="black",shape="box"];15802 -> 15811[label="",style="solid", color="black", weight=3]; 15803[label="List.merge compare vz501 (vz50200 : vz50201)",fontsize=16,color="burlywood",shape="box"];16109[label="vz501/vz5010 : vz5011",fontsize=10,color="white",style="solid",shape="box"];15803 -> 16109[label="",style="solid", color="burlywood", weight=9]; 16109 -> 15812[label="",style="solid", color="burlywood", weight=3]; 16110[label="vz501/[]",fontsize=10,color="white",style="solid",shape="box"];15803 -> 16110[label="",style="solid", color="burlywood", weight=9]; 16110 -> 15813[label="",style="solid", color="burlywood", weight=3]; 15804[label="List.merge compare vz501 []",fontsize=16,color="black",shape="box"];15804 -> 15814[label="",style="solid", color="black", weight=3]; 15940 -> 15871[label="",style="dashed", color="red", weight=0]; 15940[label="compare (vz50400 * vz50301) (vz50300 * vz50401)",fontsize=16,color="magenta"];15940 -> 15947[label="",style="dashed", color="magenta", weight=3]; 15940 -> 15948[label="",style="dashed", color="magenta", weight=3]; 15941 -> 15796[label="",style="dashed", color="red", weight=0]; 15941[label="List.merge compare vz513 (vz511 : vz514)",fontsize=16,color="magenta"];15941 -> 15949[label="",style="dashed", color="magenta", weight=3]; 15941 -> 15950[label="",style="dashed", color="magenta", weight=3]; 15942 -> 15796[label="",style="dashed", color="red", weight=0]; 15942[label="List.merge compare vz513 (vz511 : vz514)",fontsize=16,color="magenta"];15942 -> 15951[label="",style="dashed", color="magenta", weight=3]; 15942 -> 15952[label="",style="dashed", color="magenta", weight=3]; 15943 -> 15796[label="",style="dashed", color="red", weight=0]; 15943[label="List.merge compare (vz512 : vz513) vz514",fontsize=16,color="magenta"];15943 -> 15953[label="",style="dashed", color="magenta", weight=3]; 15943 -> 15954[label="",style="dashed", color="magenta", weight=3]; 15806[label="List.merge compare vz501 (List.merge compare (vz50200 : vz50201) (vz502100 : vz502101))",fontsize=16,color="black",shape="box"];15806 -> 15816[label="",style="solid", color="black", weight=3]; 15807[label="List.merge compare vz501 (List.merge compare [] (vz502100 : vz502101))",fontsize=16,color="black",shape="box"];15807 -> 15817[label="",style="solid", color="black", weight=3]; 15808 -> 15796[label="",style="dashed", color="red", weight=0]; 15808[label="List.merge compare vz501 vz5020",fontsize=16,color="magenta"];15809[label="List.merge_pairs compare (vz502110 : vz5021110 : vz5021111)",fontsize=16,color="black",shape="box"];15809 -> 15818[label="",style="solid", color="black", weight=3]; 15810[label="List.merge_pairs compare (vz502110 : [])",fontsize=16,color="black",shape="box"];15810 -> 15819[label="",style="solid", color="black", weight=3]; 15811[label="[]",fontsize=16,color="green",shape="box"];15812[label="List.merge compare (vz5010 : vz5011) (vz50200 : vz50201)",fontsize=16,color="black",shape="box"];15812 -> 15820[label="",style="solid", color="black", weight=3]; 15813[label="List.merge compare [] (vz50200 : vz50201)",fontsize=16,color="black",shape="box"];15813 -> 15821[label="",style="solid", color="black", weight=3]; 15814[label="vz501",fontsize=16,color="green",shape="box"];15947[label="vz50300 * vz50401",fontsize=16,color="black",shape="triangle"];15947 -> 15960[label="",style="solid", color="black", weight=3]; 15948 -> 15947[label="",style="dashed", color="red", weight=0]; 15948[label="vz50400 * vz50301",fontsize=16,color="magenta"];15948 -> 15961[label="",style="dashed", color="magenta", weight=3]; 15948 -> 15962[label="",style="dashed", color="magenta", weight=3]; 15871[label="compare vz5010 vz50200",fontsize=16,color="black",shape="triangle"];15871 -> 15903[label="",style="solid", color="black", weight=3]; 15949[label="vz513",fontsize=16,color="green",shape="box"];15950[label="vz511 : vz514",fontsize=16,color="green",shape="box"];15951[label="vz513",fontsize=16,color="green",shape="box"];15952[label="vz511 : vz514",fontsize=16,color="green",shape="box"];15953[label="vz512 : vz513",fontsize=16,color="green",shape="box"];15954[label="vz514",fontsize=16,color="green",shape="box"];15816 -> 15796[label="",style="dashed", color="red", weight=0]; 15816[label="List.merge compare vz501 (List.merge0 vz502100 compare vz50200 vz50201 vz502101 (compare vz50200 vz502100))",fontsize=16,color="magenta"];15816 -> 15824[label="",style="dashed", color="magenta", weight=3]; 15817 -> 15796[label="",style="dashed", color="red", weight=0]; 15817[label="List.merge compare vz501 (vz502100 : vz502101)",fontsize=16,color="magenta"];15817 -> 15825[label="",style="dashed", color="magenta", weight=3]; 15818[label="List.merge compare vz502110 vz5021110 : List.merge_pairs compare vz5021111",fontsize=16,color="green",shape="box"];15818 -> 15826[label="",style="dashed", color="green", weight=3]; 15818 -> 15827[label="",style="dashed", color="green", weight=3]; 15819[label="vz502110 : []",fontsize=16,color="green",shape="box"];15820 -> 15828[label="",style="dashed", color="red", weight=0]; 15820[label="List.merge0 vz50200 compare vz5010 vz5011 vz50201 (compare vz5010 vz50200)",fontsize=16,color="magenta"];15820 -> 15849[label="",style="dashed", color="magenta", weight=3]; 15820 -> 15850[label="",style="dashed", color="magenta", weight=3]; 15820 -> 15851[label="",style="dashed", color="magenta", weight=3]; 15820 -> 15852[label="",style="dashed", color="magenta", weight=3]; 15820 -> 15853[label="",style="dashed", color="magenta", weight=3]; 15821[label="vz50200 : vz50201",fontsize=16,color="green",shape="box"];15960[label="primMulInt vz50300 vz50401",fontsize=16,color="burlywood",shape="box"];16111[label="vz50300/Pos vz503000",fontsize=10,color="white",style="solid",shape="box"];15960 -> 16111[label="",style="solid", color="burlywood", weight=9]; 16111 -> 15973[label="",style="solid", color="burlywood", weight=3]; 16112[label="vz50300/Neg vz503000",fontsize=10,color="white",style="solid",shape="box"];15960 -> 16112[label="",style="solid", color="burlywood", weight=9]; 16112 -> 15974[label="",style="solid", color="burlywood", weight=3]; 15961[label="vz50400",fontsize=16,color="green",shape="box"];15962[label="vz50301",fontsize=16,color="green",shape="box"];15903[label="primCmpInt vz5010 vz50200",fontsize=16,color="burlywood",shape="box"];16113[label="vz5010/Pos vz50100",fontsize=10,color="white",style="solid",shape="box"];15903 -> 16113[label="",style="solid", color="burlywood", weight=9]; 16113 -> 15945[label="",style="solid", color="burlywood", weight=3]; 16114[label="vz5010/Neg vz50100",fontsize=10,color="white",style="solid",shape="box"];15903 -> 16114[label="",style="solid", color="burlywood", weight=9]; 16114 -> 15946[label="",style="solid", color="burlywood", weight=3]; 15824 -> 15828[label="",style="dashed", color="red", weight=0]; 15824[label="List.merge0 vz502100 compare vz50200 vz50201 vz502101 (compare vz50200 vz502100)",fontsize=16,color="magenta"];15824 -> 15854[label="",style="dashed", color="magenta", weight=3]; 15824 -> 15855[label="",style="dashed", color="magenta", weight=3]; 15824 -> 15856[label="",style="dashed", color="magenta", weight=3]; 15824 -> 15857[label="",style="dashed", color="magenta", weight=3]; 15824 -> 15858[label="",style="dashed", color="magenta", weight=3]; 15825[label="vz502100 : vz502101",fontsize=16,color="green",shape="box"];15826 -> 15796[label="",style="dashed", color="red", weight=0]; 15826[label="List.merge compare vz502110 vz5021110",fontsize=16,color="magenta"];15826 -> 15863[label="",style="dashed", color="magenta", weight=3]; 15826 -> 15864[label="",style="dashed", color="magenta", weight=3]; 15827 -> 15795[label="",style="dashed", color="red", weight=0]; 15827[label="List.merge_pairs compare vz5021111",fontsize=16,color="magenta"];15827 -> 15865[label="",style="dashed", color="magenta", weight=3]; 15849[label="vz5010",fontsize=16,color="green",shape="box"];15850[label="vz5011",fontsize=16,color="green",shape="box"];15851[label="compare vz5010 vz50200",fontsize=16,color="blue",shape="box"];16115[label="compare :: (Ratio a) -> (Ratio a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16115[label="",style="solid", color="blue", weight=9]; 16115 -> 15866[label="",style="solid", color="blue", weight=3]; 16116[label="compare :: ((@3) a b c) -> ((@3) a b c) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16116[label="",style="solid", color="blue", weight=9]; 16116 -> 15867[label="",style="solid", color="blue", weight=3]; 16117[label="compare :: Ordering -> Ordering -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16117[label="",style="solid", color="blue", weight=9]; 16117 -> 15868[label="",style="solid", color="blue", weight=3]; 16118[label="compare :: Bool -> Bool -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16118[label="",style="solid", color="blue", weight=9]; 16118 -> 15869[label="",style="solid", color="blue", weight=3]; 16119[label="compare :: Char -> Char -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16119[label="",style="solid", color="blue", weight=9]; 16119 -> 15870[label="",style="solid", color="blue", weight=3]; 16120[label="compare :: Int -> Int -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16120[label="",style="solid", color="blue", weight=9]; 16120 -> 15871[label="",style="solid", color="blue", weight=3]; 16121[label="compare :: () -> () -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16121[label="",style="solid", color="blue", weight=9]; 16121 -> 15872[label="",style="solid", color="blue", weight=3]; 16122[label="compare :: ((@2) a b) -> ((@2) a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16122[label="",style="solid", color="blue", weight=9]; 16122 -> 15873[label="",style="solid", color="blue", weight=3]; 16123[label="compare :: Float -> Float -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16123[label="",style="solid", color="blue", weight=9]; 16123 -> 15874[label="",style="solid", color="blue", weight=3]; 16124[label="compare :: (Maybe a) -> (Maybe a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16124[label="",style="solid", color="blue", weight=9]; 16124 -> 15875[label="",style="solid", color="blue", weight=3]; 16125[label="compare :: ([] a) -> ([] a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16125[label="",style="solid", color="blue", weight=9]; 16125 -> 15876[label="",style="solid", color="blue", weight=3]; 16126[label="compare :: (Either a b) -> (Either a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16126[label="",style="solid", color="blue", weight=9]; 16126 -> 15877[label="",style="solid", color="blue", weight=3]; 16127[label="compare :: Integer -> Integer -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16127[label="",style="solid", color="blue", weight=9]; 16127 -> 15878[label="",style="solid", color="blue", weight=3]; 16128[label="compare :: Double -> Double -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15851 -> 16128[label="",style="solid", color="blue", weight=9]; 16128 -> 15879[label="",style="solid", color="blue", weight=3]; 15852[label="vz50200",fontsize=16,color="green",shape="box"];15853[label="vz50201",fontsize=16,color="green",shape="box"];15973[label="primMulInt (Pos vz503000) vz50401",fontsize=16,color="burlywood",shape="box"];16129[label="vz50401/Pos vz504010",fontsize=10,color="white",style="solid",shape="box"];15973 -> 16129[label="",style="solid", color="burlywood", weight=9]; 16129 -> 15991[label="",style="solid", color="burlywood", weight=3]; 16130[label="vz50401/Neg vz504010",fontsize=10,color="white",style="solid",shape="box"];15973 -> 16130[label="",style="solid", color="burlywood", weight=9]; 16130 -> 15992[label="",style="solid", color="burlywood", weight=3]; 15974[label="primMulInt (Neg vz503000) vz50401",fontsize=16,color="burlywood",shape="box"];16131[label="vz50401/Pos vz504010",fontsize=10,color="white",style="solid",shape="box"];15974 -> 16131[label="",style="solid", color="burlywood", weight=9]; 16131 -> 15993[label="",style="solid", color="burlywood", weight=3]; 16132[label="vz50401/Neg vz504010",fontsize=10,color="white",style="solid",shape="box"];15974 -> 16132[label="",style="solid", color="burlywood", weight=9]; 16132 -> 15994[label="",style="solid", color="burlywood", weight=3]; 15945[label="primCmpInt (Pos vz50100) vz50200",fontsize=16,color="burlywood",shape="box"];16133[label="vz50100/Succ vz501000",fontsize=10,color="white",style="solid",shape="box"];15945 -> 16133[label="",style="solid", color="burlywood", weight=9]; 16133 -> 15956[label="",style="solid", color="burlywood", weight=3]; 16134[label="vz50100/Zero",fontsize=10,color="white",style="solid",shape="box"];15945 -> 16134[label="",style="solid", color="burlywood", weight=9]; 16134 -> 15957[label="",style="solid", color="burlywood", weight=3]; 15946[label="primCmpInt (Neg vz50100) vz50200",fontsize=16,color="burlywood",shape="box"];16135[label="vz50100/Succ vz501000",fontsize=10,color="white",style="solid",shape="box"];15946 -> 16135[label="",style="solid", color="burlywood", weight=9]; 16135 -> 15958[label="",style="solid", color="burlywood", weight=3]; 16136[label="vz50100/Zero",fontsize=10,color="white",style="solid",shape="box"];15946 -> 16136[label="",style="solid", color="burlywood", weight=9]; 16136 -> 15959[label="",style="solid", color="burlywood", weight=3]; 15854[label="vz50200",fontsize=16,color="green",shape="box"];15855[label="vz50201",fontsize=16,color="green",shape="box"];15856[label="compare vz50200 vz502100",fontsize=16,color="blue",shape="box"];16137[label="compare :: (Ratio a) -> (Ratio a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16137[label="",style="solid", color="blue", weight=9]; 16137 -> 15880[label="",style="solid", color="blue", weight=3]; 16138[label="compare :: ((@3) a b c) -> ((@3) a b c) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16138[label="",style="solid", color="blue", weight=9]; 16138 -> 15881[label="",style="solid", color="blue", weight=3]; 16139[label="compare :: Ordering -> Ordering -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16139[label="",style="solid", color="blue", weight=9]; 16139 -> 15882[label="",style="solid", color="blue", weight=3]; 16140[label="compare :: Bool -> Bool -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16140[label="",style="solid", color="blue", weight=9]; 16140 -> 15883[label="",style="solid", color="blue", weight=3]; 16141[label="compare :: Char -> Char -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16141[label="",style="solid", color="blue", weight=9]; 16141 -> 15884[label="",style="solid", color="blue", weight=3]; 16142[label="compare :: Int -> Int -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16142[label="",style="solid", color="blue", weight=9]; 16142 -> 15885[label="",style="solid", color="blue", weight=3]; 16143[label="compare :: () -> () -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16143[label="",style="solid", color="blue", weight=9]; 16143 -> 15886[label="",style="solid", color="blue", weight=3]; 16144[label="compare :: ((@2) a b) -> ((@2) a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16144[label="",style="solid", color="blue", weight=9]; 16144 -> 15887[label="",style="solid", color="blue", weight=3]; 16145[label="compare :: Float -> Float -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16145[label="",style="solid", color="blue", weight=9]; 16145 -> 15888[label="",style="solid", color="blue", weight=3]; 16146[label="compare :: (Maybe a) -> (Maybe a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16146[label="",style="solid", color="blue", weight=9]; 16146 -> 15889[label="",style="solid", color="blue", weight=3]; 16147[label="compare :: ([] a) -> ([] a) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16147[label="",style="solid", color="blue", weight=9]; 16147 -> 15890[label="",style="solid", color="blue", weight=3]; 16148[label="compare :: (Either a b) -> (Either a b) -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16148[label="",style="solid", color="blue", weight=9]; 16148 -> 15891[label="",style="solid", color="blue", weight=3]; 16149[label="compare :: Integer -> Integer -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16149[label="",style="solid", color="blue", weight=9]; 16149 -> 15892[label="",style="solid", color="blue", weight=3]; 16150[label="compare :: Double -> Double -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15856 -> 16150[label="",style="solid", color="blue", weight=9]; 16150 -> 15893[label="",style="solid", color="blue", weight=3]; 15857[label="vz502100",fontsize=16,color="green",shape="box"];15858[label="vz502101",fontsize=16,color="green",shape="box"];15863[label="vz502110",fontsize=16,color="green",shape="box"];15864[label="vz5021110",fontsize=16,color="green",shape="box"];15865[label="vz5021111",fontsize=16,color="green",shape="box"];15866[label="compare vz5010 vz50200",fontsize=16,color="burlywood",shape="triangle"];16151[label="vz5010/vz50100 :% vz50101",fontsize=10,color="white",style="solid",shape="box"];15866 -> 16151[label="",style="solid", color="burlywood", weight=9]; 16151 -> 15898[label="",style="solid", color="burlywood", weight=3]; 15867[label="compare vz5010 vz50200",fontsize=16,color="black",shape="triangle"];15867 -> 15899[label="",style="solid", color="black", weight=3]; 15868[label="compare vz5010 vz50200",fontsize=16,color="black",shape="triangle"];15868 -> 15900[label="",style="solid", color="black", weight=3]; 15869[label="compare vz5010 vz50200",fontsize=16,color="black",shape="triangle"];15869 -> 15901[label="",style="solid", color="black", weight=3]; 15870[label="compare vz5010 vz50200",fontsize=16,color="black",shape="triangle"];15870 -> 15902[label="",style="solid", color="black", weight=3]; 15872[label="compare vz5010 vz50200",fontsize=16,color="black",shape="triangle"];15872 -> 15904[label="",style="solid", color="black", weight=3]; 15873[label="compare vz5010 vz50200",fontsize=16,color="black",shape="triangle"];15873 -> 15905[label="",style="solid", color="black", weight=3]; 15874[label="compare vz5010 vz50200",fontsize=16,color="black",shape="triangle"];15874 -> 15906[label="",style="solid", color="black", weight=3]; 15875[label="compare vz5010 vz50200",fontsize=16,color="black",shape="triangle"];15875 -> 15907[label="",style="solid", color="black", weight=3]; 15876[label="compare vz5010 vz50200",fontsize=16,color="black",shape="triangle"];15876 -> 15908[label="",style="solid", color="black", weight=3]; 15877[label="compare vz5010 vz50200",fontsize=16,color="black",shape="triangle"];15877 -> 15909[label="",style="solid", color="black", weight=3]; 15878[label="compare vz5010 vz50200",fontsize=16,color="black",shape="triangle"];15878 -> 15910[label="",style="solid", color="black", weight=3]; 15879[label="compare vz5010 vz50200",fontsize=16,color="black",shape="triangle"];15879 -> 15911[label="",style="solid", color="black", weight=3]; 15991[label="primMulInt (Pos vz503000) (Pos vz504010)",fontsize=16,color="black",shape="box"];15991 -> 16014[label="",style="solid", color="black", weight=3]; 15992[label="primMulInt (Pos vz503000) (Neg vz504010)",fontsize=16,color="black",shape="box"];15992 -> 16015[label="",style="solid", color="black", weight=3]; 15993[label="primMulInt (Neg vz503000) (Pos vz504010)",fontsize=16,color="black",shape="box"];15993 -> 16016[label="",style="solid", color="black", weight=3]; 15994[label="primMulInt (Neg vz503000) (Neg vz504010)",fontsize=16,color="black",shape="box"];15994 -> 16017[label="",style="solid", color="black", weight=3]; 15956[label="primCmpInt (Pos (Succ vz501000)) vz50200",fontsize=16,color="burlywood",shape="box"];16152[label="vz50200/Pos vz502000",fontsize=10,color="white",style="solid",shape="box"];15956 -> 16152[label="",style="solid", color="burlywood", weight=9]; 16152 -> 15965[label="",style="solid", color="burlywood", weight=3]; 16153[label="vz50200/Neg vz502000",fontsize=10,color="white",style="solid",shape="box"];15956 -> 16153[label="",style="solid", color="burlywood", weight=9]; 16153 -> 15966[label="",style="solid", color="burlywood", weight=3]; 15957[label="primCmpInt (Pos Zero) vz50200",fontsize=16,color="burlywood",shape="box"];16154[label="vz50200/Pos vz502000",fontsize=10,color="white",style="solid",shape="box"];15957 -> 16154[label="",style="solid", color="burlywood", weight=9]; 16154 -> 15967[label="",style="solid", color="burlywood", weight=3]; 16155[label="vz50200/Neg vz502000",fontsize=10,color="white",style="solid",shape="box"];15957 -> 16155[label="",style="solid", color="burlywood", weight=9]; 16155 -> 15968[label="",style="solid", color="burlywood", weight=3]; 15958[label="primCmpInt (Neg (Succ vz501000)) vz50200",fontsize=16,color="burlywood",shape="box"];16156[label="vz50200/Pos vz502000",fontsize=10,color="white",style="solid",shape="box"];15958 -> 16156[label="",style="solid", color="burlywood", weight=9]; 16156 -> 15969[label="",style="solid", color="burlywood", weight=3]; 16157[label="vz50200/Neg vz502000",fontsize=10,color="white",style="solid",shape="box"];15958 -> 16157[label="",style="solid", color="burlywood", weight=9]; 16157 -> 15970[label="",style="solid", color="burlywood", weight=3]; 15959[label="primCmpInt (Neg Zero) vz50200",fontsize=16,color="burlywood",shape="box"];16158[label="vz50200/Pos vz502000",fontsize=10,color="white",style="solid",shape="box"];15959 -> 16158[label="",style="solid", color="burlywood", weight=9]; 16158 -> 15971[label="",style="solid", color="burlywood", weight=3]; 16159[label="vz50200/Neg vz502000",fontsize=10,color="white",style="solid",shape="box"];15959 -> 16159[label="",style="solid", color="burlywood", weight=9]; 16159 -> 15972[label="",style="solid", color="burlywood", weight=3]; 15880 -> 15866[label="",style="dashed", color="red", weight=0]; 15880[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15880 -> 15912[label="",style="dashed", color="magenta", weight=3]; 15880 -> 15913[label="",style="dashed", color="magenta", weight=3]; 15881 -> 15867[label="",style="dashed", color="red", weight=0]; 15881[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15881 -> 15914[label="",style="dashed", color="magenta", weight=3]; 15881 -> 15915[label="",style="dashed", color="magenta", weight=3]; 15882 -> 15868[label="",style="dashed", color="red", weight=0]; 15882[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15882 -> 15916[label="",style="dashed", color="magenta", weight=3]; 15882 -> 15917[label="",style="dashed", color="magenta", weight=3]; 15883 -> 15869[label="",style="dashed", color="red", weight=0]; 15883[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15883 -> 15918[label="",style="dashed", color="magenta", weight=3]; 15883 -> 15919[label="",style="dashed", color="magenta", weight=3]; 15884 -> 15870[label="",style="dashed", color="red", weight=0]; 15884[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15884 -> 15920[label="",style="dashed", color="magenta", weight=3]; 15884 -> 15921[label="",style="dashed", color="magenta", weight=3]; 15885 -> 15871[label="",style="dashed", color="red", weight=0]; 15885[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15885 -> 15922[label="",style="dashed", color="magenta", weight=3]; 15885 -> 15923[label="",style="dashed", color="magenta", weight=3]; 15886 -> 15872[label="",style="dashed", color="red", weight=0]; 15886[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15886 -> 15924[label="",style="dashed", color="magenta", weight=3]; 15886 -> 15925[label="",style="dashed", color="magenta", weight=3]; 15887 -> 15873[label="",style="dashed", color="red", weight=0]; 15887[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15887 -> 15926[label="",style="dashed", color="magenta", weight=3]; 15887 -> 15927[label="",style="dashed", color="magenta", weight=3]; 15888 -> 15874[label="",style="dashed", color="red", weight=0]; 15888[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15888 -> 15928[label="",style="dashed", color="magenta", weight=3]; 15888 -> 15929[label="",style="dashed", color="magenta", weight=3]; 15889 -> 15875[label="",style="dashed", color="red", weight=0]; 15889[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15889 -> 15930[label="",style="dashed", color="magenta", weight=3]; 15889 -> 15931[label="",style="dashed", color="magenta", weight=3]; 15890 -> 15876[label="",style="dashed", color="red", weight=0]; 15890[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15890 -> 15932[label="",style="dashed", color="magenta", weight=3]; 15890 -> 15933[label="",style="dashed", color="magenta", weight=3]; 15891 -> 15877[label="",style="dashed", color="red", weight=0]; 15891[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15891 -> 15934[label="",style="dashed", color="magenta", weight=3]; 15891 -> 15935[label="",style="dashed", color="magenta", weight=3]; 15892 -> 15878[label="",style="dashed", color="red", weight=0]; 15892[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15892 -> 15936[label="",style="dashed", color="magenta", weight=3]; 15892 -> 15937[label="",style="dashed", color="magenta", weight=3]; 15893 -> 15879[label="",style="dashed", color="red", weight=0]; 15893[label="compare vz50200 vz502100",fontsize=16,color="magenta"];15893 -> 15938[label="",style="dashed", color="magenta", weight=3]; 15893 -> 15939[label="",style="dashed", color="magenta", weight=3]; 15898[label="compare (vz50100 :% vz50101) vz50200",fontsize=16,color="burlywood",shape="box"];16160[label="vz50200/vz502000 :% vz502001",fontsize=10,color="white",style="solid",shape="box"];15898 -> 16160[label="",style="solid", color="burlywood", weight=9]; 16160 -> 15944[label="",style="solid", color="burlywood", weight=3]; 15899[label="error []",fontsize=16,color="red",shape="box"];15900[label="error []",fontsize=16,color="red",shape="box"];15901[label="error []",fontsize=16,color="red",shape="box"];15902[label="error []",fontsize=16,color="red",shape="box"];15904[label="error []",fontsize=16,color="red",shape="box"];15905[label="error []",fontsize=16,color="red",shape="box"];15906[label="error []",fontsize=16,color="red",shape="box"];15907[label="error []",fontsize=16,color="red",shape="box"];15908[label="error []",fontsize=16,color="red",shape="box"];15909[label="error []",fontsize=16,color="red",shape="box"];15910[label="error []",fontsize=16,color="red",shape="box"];15911[label="error []",fontsize=16,color="red",shape="box"];16014[label="Pos (primMulNat vz503000 vz504010)",fontsize=16,color="green",shape="box"];16014 -> 16026[label="",style="dashed", color="green", weight=3]; 16015[label="Neg (primMulNat vz503000 vz504010)",fontsize=16,color="green",shape="box"];16015 -> 16027[label="",style="dashed", color="green", weight=3]; 16016[label="Neg (primMulNat vz503000 vz504010)",fontsize=16,color="green",shape="box"];16016 -> 16028[label="",style="dashed", color="green", weight=3]; 16017[label="Pos (primMulNat vz503000 vz504010)",fontsize=16,color="green",shape="box"];16017 -> 16029[label="",style="dashed", color="green", weight=3]; 15965[label="primCmpInt (Pos (Succ vz501000)) (Pos vz502000)",fontsize=16,color="black",shape="box"];15965 -> 15979[label="",style="solid", color="black", weight=3]; 15966[label="primCmpInt (Pos (Succ vz501000)) (Neg vz502000)",fontsize=16,color="black",shape="box"];15966 -> 15980[label="",style="solid", color="black", weight=3]; 15967[label="primCmpInt (Pos Zero) (Pos vz502000)",fontsize=16,color="burlywood",shape="box"];16161[label="vz502000/Succ vz5020000",fontsize=10,color="white",style="solid",shape="box"];15967 -> 16161[label="",style="solid", color="burlywood", weight=9]; 16161 -> 15981[label="",style="solid", color="burlywood", weight=3]; 16162[label="vz502000/Zero",fontsize=10,color="white",style="solid",shape="box"];15967 -> 16162[label="",style="solid", color="burlywood", weight=9]; 16162 -> 15982[label="",style="solid", color="burlywood", weight=3]; 15968[label="primCmpInt (Pos Zero) (Neg vz502000)",fontsize=16,color="burlywood",shape="box"];16163[label="vz502000/Succ vz5020000",fontsize=10,color="white",style="solid",shape="box"];15968 -> 16163[label="",style="solid", color="burlywood", weight=9]; 16163 -> 15983[label="",style="solid", color="burlywood", weight=3]; 16164[label="vz502000/Zero",fontsize=10,color="white",style="solid",shape="box"];15968 -> 16164[label="",style="solid", color="burlywood", weight=9]; 16164 -> 15984[label="",style="solid", color="burlywood", weight=3]; 15969[label="primCmpInt (Neg (Succ vz501000)) (Pos vz502000)",fontsize=16,color="black",shape="box"];15969 -> 15985[label="",style="solid", color="black", weight=3]; 15970[label="primCmpInt (Neg (Succ vz501000)) (Neg vz502000)",fontsize=16,color="black",shape="box"];15970 -> 15986[label="",style="solid", color="black", weight=3]; 15971[label="primCmpInt (Neg Zero) (Pos vz502000)",fontsize=16,color="burlywood",shape="box"];16165[label="vz502000/Succ vz5020000",fontsize=10,color="white",style="solid",shape="box"];15971 -> 16165[label="",style="solid", color="burlywood", weight=9]; 16165 -> 15987[label="",style="solid", color="burlywood", weight=3]; 16166[label="vz502000/Zero",fontsize=10,color="white",style="solid",shape="box"];15971 -> 16166[label="",style="solid", color="burlywood", weight=9]; 16166 -> 15988[label="",style="solid", color="burlywood", weight=3]; 15972[label="primCmpInt (Neg Zero) (Neg vz502000)",fontsize=16,color="burlywood",shape="box"];16167[label="vz502000/Succ vz5020000",fontsize=10,color="white",style="solid",shape="box"];15972 -> 16167[label="",style="solid", color="burlywood", weight=9]; 16167 -> 15989[label="",style="solid", color="burlywood", weight=3]; 16168[label="vz502000/Zero",fontsize=10,color="white",style="solid",shape="box"];15972 -> 16168[label="",style="solid", color="burlywood", weight=9]; 16168 -> 15990[label="",style="solid", color="burlywood", weight=3]; 15912[label="vz502100",fontsize=16,color="green",shape="box"];15913[label="vz50200",fontsize=16,color="green",shape="box"];15914[label="vz502100",fontsize=16,color="green",shape="box"];15915[label="vz50200",fontsize=16,color="green",shape="box"];15916[label="vz502100",fontsize=16,color="green",shape="box"];15917[label="vz50200",fontsize=16,color="green",shape="box"];15918[label="vz502100",fontsize=16,color="green",shape="box"];15919[label="vz50200",fontsize=16,color="green",shape="box"];15920[label="vz502100",fontsize=16,color="green",shape="box"];15921[label="vz50200",fontsize=16,color="green",shape="box"];15922[label="vz502100",fontsize=16,color="green",shape="box"];15923[label="vz50200",fontsize=16,color="green",shape="box"];15924[label="vz502100",fontsize=16,color="green",shape="box"];15925[label="vz50200",fontsize=16,color="green",shape="box"];15926[label="vz502100",fontsize=16,color="green",shape="box"];15927[label="vz50200",fontsize=16,color="green",shape="box"];15928[label="vz502100",fontsize=16,color="green",shape="box"];15929[label="vz50200",fontsize=16,color="green",shape="box"];15930[label="vz502100",fontsize=16,color="green",shape="box"];15931[label="vz50200",fontsize=16,color="green",shape="box"];15932[label="vz502100",fontsize=16,color="green",shape="box"];15933[label="vz50200",fontsize=16,color="green",shape="box"];15934[label="vz502100",fontsize=16,color="green",shape="box"];15935[label="vz50200",fontsize=16,color="green",shape="box"];15936[label="vz502100",fontsize=16,color="green",shape="box"];15937[label="vz50200",fontsize=16,color="green",shape="box"];15938[label="vz502100",fontsize=16,color="green",shape="box"];15939[label="vz50200",fontsize=16,color="green",shape="box"];15944[label="compare (vz50100 :% vz50101) (vz502000 :% vz502001)",fontsize=16,color="black",shape="box"];15944 -> 15955[label="",style="solid", color="black", weight=3]; 16026[label="primMulNat vz503000 vz504010",fontsize=16,color="burlywood",shape="triangle"];16169[label="vz503000/Succ vz5030000",fontsize=10,color="white",style="solid",shape="box"];16026 -> 16169[label="",style="solid", color="burlywood", weight=9]; 16169 -> 16034[label="",style="solid", color="burlywood", weight=3]; 16170[label="vz503000/Zero",fontsize=10,color="white",style="solid",shape="box"];16026 -> 16170[label="",style="solid", color="burlywood", weight=9]; 16170 -> 16035[label="",style="solid", color="burlywood", weight=3]; 16027 -> 16026[label="",style="dashed", color="red", weight=0]; 16027[label="primMulNat vz503000 vz504010",fontsize=16,color="magenta"];16027 -> 16036[label="",style="dashed", color="magenta", weight=3]; 16028 -> 16026[label="",style="dashed", color="red", weight=0]; 16028[label="primMulNat vz503000 vz504010",fontsize=16,color="magenta"];16028 -> 16037[label="",style="dashed", color="magenta", weight=3]; 16029 -> 16026[label="",style="dashed", color="red", weight=0]; 16029[label="primMulNat vz503000 vz504010",fontsize=16,color="magenta"];16029 -> 16038[label="",style="dashed", color="magenta", weight=3]; 16029 -> 16039[label="",style="dashed", color="magenta", weight=3]; 15979[label="primCmpNat (Succ vz501000) vz502000",fontsize=16,color="burlywood",shape="triangle"];16171[label="vz502000/Succ vz5020000",fontsize=10,color="white",style="solid",shape="box"];15979 -> 16171[label="",style="solid", color="burlywood", weight=9]; 16171 -> 16002[label="",style="solid", color="burlywood", weight=3]; 16172[label="vz502000/Zero",fontsize=10,color="white",style="solid",shape="box"];15979 -> 16172[label="",style="solid", color="burlywood", weight=9]; 16172 -> 16003[label="",style="solid", color="burlywood", weight=3]; 15980[label="GT",fontsize=16,color="green",shape="box"];15981[label="primCmpInt (Pos Zero) (Pos (Succ vz5020000))",fontsize=16,color="black",shape="box"];15981 -> 16004[label="",style="solid", color="black", weight=3]; 15982[label="primCmpInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];15982 -> 16005[label="",style="solid", color="black", weight=3]; 15983[label="primCmpInt (Pos Zero) (Neg (Succ vz5020000))",fontsize=16,color="black",shape="box"];15983 -> 16006[label="",style="solid", color="black", weight=3]; 15984[label="primCmpInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];15984 -> 16007[label="",style="solid", color="black", weight=3]; 15985[label="LT",fontsize=16,color="green",shape="box"];15986[label="primCmpNat vz502000 (Succ vz501000)",fontsize=16,color="burlywood",shape="triangle"];16173[label="vz502000/Succ vz5020000",fontsize=10,color="white",style="solid",shape="box"];15986 -> 16173[label="",style="solid", color="burlywood", weight=9]; 16173 -> 16008[label="",style="solid", color="burlywood", weight=3]; 16174[label="vz502000/Zero",fontsize=10,color="white",style="solid",shape="box"];15986 -> 16174[label="",style="solid", color="burlywood", weight=9]; 16174 -> 16009[label="",style="solid", color="burlywood", weight=3]; 15987[label="primCmpInt (Neg Zero) (Pos (Succ vz5020000))",fontsize=16,color="black",shape="box"];15987 -> 16010[label="",style="solid", color="black", weight=3]; 15988[label="primCmpInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];15988 -> 16011[label="",style="solid", color="black", weight=3]; 15989[label="primCmpInt (Neg Zero) (Neg (Succ vz5020000))",fontsize=16,color="black",shape="box"];15989 -> 16012[label="",style="solid", color="black", weight=3]; 15990[label="primCmpInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];15990 -> 16013[label="",style="solid", color="black", weight=3]; 15955[label="compare (vz50100 * vz502001) (vz502000 * vz50101)",fontsize=16,color="blue",shape="box"];16175[label="compare :: Int -> Int -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15955 -> 16175[label="",style="solid", color="blue", weight=9]; 16175 -> 15963[label="",style="solid", color="blue", weight=3]; 16176[label="compare :: Integer -> Integer -> Ordering",fontsize=10,color="white",style="solid",shape="box"];15955 -> 16176[label="",style="solid", color="blue", weight=9]; 16176 -> 15964[label="",style="solid", color="blue", weight=3]; 16034[label="primMulNat (Succ vz5030000) vz504010",fontsize=16,color="burlywood",shape="box"];16177[label="vz504010/Succ vz5040100",fontsize=10,color="white",style="solid",shape="box"];16034 -> 16177[label="",style="solid", color="burlywood", weight=9]; 16177 -> 16044[label="",style="solid", color="burlywood", weight=3]; 16178[label="vz504010/Zero",fontsize=10,color="white",style="solid",shape="box"];16034 -> 16178[label="",style="solid", color="burlywood", weight=9]; 16178 -> 16045[label="",style="solid", color="burlywood", weight=3]; 16035[label="primMulNat Zero vz504010",fontsize=16,color="burlywood",shape="box"];16179[label="vz504010/Succ vz5040100",fontsize=10,color="white",style="solid",shape="box"];16035 -> 16179[label="",style="solid", color="burlywood", weight=9]; 16179 -> 16046[label="",style="solid", color="burlywood", weight=3]; 16180[label="vz504010/Zero",fontsize=10,color="white",style="solid",shape="box"];16035 -> 16180[label="",style="solid", color="burlywood", weight=9]; 16180 -> 16047[label="",style="solid", color="burlywood", weight=3]; 16036[label="vz504010",fontsize=16,color="green",shape="box"];16037[label="vz503000",fontsize=16,color="green",shape="box"];16038[label="vz503000",fontsize=16,color="green",shape="box"];16039[label="vz504010",fontsize=16,color="green",shape="box"];16002[label="primCmpNat (Succ vz501000) (Succ vz5020000)",fontsize=16,color="black",shape="box"];16002 -> 16018[label="",style="solid", color="black", weight=3]; 16003[label="primCmpNat (Succ vz501000) Zero",fontsize=16,color="black",shape="box"];16003 -> 16019[label="",style="solid", color="black", weight=3]; 16004 -> 15986[label="",style="dashed", color="red", weight=0]; 16004[label="primCmpNat Zero (Succ vz5020000)",fontsize=16,color="magenta"];16004 -> 16020[label="",style="dashed", color="magenta", weight=3]; 16004 -> 16021[label="",style="dashed", color="magenta", weight=3]; 16005[label="EQ",fontsize=16,color="green",shape="box"];16006[label="GT",fontsize=16,color="green",shape="box"];16007[label="EQ",fontsize=16,color="green",shape="box"];16008[label="primCmpNat (Succ vz5020000) (Succ vz501000)",fontsize=16,color="black",shape="box"];16008 -> 16022[label="",style="solid", color="black", weight=3]; 16009[label="primCmpNat Zero (Succ vz501000)",fontsize=16,color="black",shape="box"];16009 -> 16023[label="",style="solid", color="black", weight=3]; 16010[label="LT",fontsize=16,color="green",shape="box"];16011[label="EQ",fontsize=16,color="green",shape="box"];16012 -> 15979[label="",style="dashed", color="red", weight=0]; 16012[label="primCmpNat (Succ vz5020000) Zero",fontsize=16,color="magenta"];16012 -> 16024[label="",style="dashed", color="magenta", weight=3]; 16012 -> 16025[label="",style="dashed", color="magenta", weight=3]; 16013[label="EQ",fontsize=16,color="green",shape="box"];15963 -> 15871[label="",style="dashed", color="red", weight=0]; 15963[label="compare (vz50100 * vz502001) (vz502000 * vz50101)",fontsize=16,color="magenta"];15963 -> 15975[label="",style="dashed", color="magenta", weight=3]; 15963 -> 15976[label="",style="dashed", color="magenta", weight=3]; 15964 -> 15878[label="",style="dashed", color="red", weight=0]; 15964[label="compare (vz50100 * vz502001) (vz502000 * vz50101)",fontsize=16,color="magenta"];15964 -> 15977[label="",style="dashed", color="magenta", weight=3]; 15964 -> 15978[label="",style="dashed", color="magenta", weight=3]; 16044[label="primMulNat (Succ vz5030000) (Succ vz5040100)",fontsize=16,color="black",shape="box"];16044 -> 16052[label="",style="solid", color="black", weight=3]; 16045[label="primMulNat (Succ vz5030000) Zero",fontsize=16,color="black",shape="box"];16045 -> 16053[label="",style="solid", color="black", weight=3]; 16046[label="primMulNat Zero (Succ vz5040100)",fontsize=16,color="black",shape="box"];16046 -> 16054[label="",style="solid", color="black", weight=3]; 16047[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];16047 -> 16055[label="",style="solid", color="black", weight=3]; 16018[label="primCmpNat vz501000 vz5020000",fontsize=16,color="burlywood",shape="triangle"];16181[label="vz501000/Succ vz5010000",fontsize=10,color="white",style="solid",shape="box"];16018 -> 16181[label="",style="solid", color="burlywood", weight=9]; 16181 -> 16030[label="",style="solid", color="burlywood", weight=3]; 16182[label="vz501000/Zero",fontsize=10,color="white",style="solid",shape="box"];16018 -> 16182[label="",style="solid", color="burlywood", weight=9]; 16182 -> 16031[label="",style="solid", color="burlywood", weight=3]; 16019[label="GT",fontsize=16,color="green",shape="box"];16020[label="Zero",fontsize=16,color="green",shape="box"];16021[label="vz5020000",fontsize=16,color="green",shape="box"];16022 -> 16018[label="",style="dashed", color="red", weight=0]; 16022[label="primCmpNat vz5020000 vz501000",fontsize=16,color="magenta"];16022 -> 16032[label="",style="dashed", color="magenta", weight=3]; 16022 -> 16033[label="",style="dashed", color="magenta", weight=3]; 16023[label="LT",fontsize=16,color="green",shape="box"];16024[label="Zero",fontsize=16,color="green",shape="box"];16025[label="vz5020000",fontsize=16,color="green",shape="box"];15975 -> 15947[label="",style="dashed", color="red", weight=0]; 15975[label="vz502000 * vz50101",fontsize=16,color="magenta"];15975 -> 15995[label="",style="dashed", color="magenta", weight=3]; 15975 -> 15996[label="",style="dashed", color="magenta", weight=3]; 15976 -> 15947[label="",style="dashed", color="red", weight=0]; 15976[label="vz50100 * vz502001",fontsize=16,color="magenta"];15976 -> 15997[label="",style="dashed", color="magenta", weight=3]; 15976 -> 15998[label="",style="dashed", color="magenta", weight=3]; 15977[label="vz502000 * vz50101",fontsize=16,color="black",shape="triangle"];15977 -> 15999[label="",style="solid", color="black", weight=3]; 15978 -> 15977[label="",style="dashed", color="red", weight=0]; 15978[label="vz50100 * vz502001",fontsize=16,color="magenta"];15978 -> 16000[label="",style="dashed", color="magenta", weight=3]; 15978 -> 16001[label="",style="dashed", color="magenta", weight=3]; 16052 -> 16058[label="",style="dashed", color="red", weight=0]; 16052[label="primPlusNat (primMulNat vz5030000 (Succ vz5040100)) (Succ vz5040100)",fontsize=16,color="magenta"];16052 -> 16059[label="",style="dashed", color="magenta", weight=3]; 16053[label="Zero",fontsize=16,color="green",shape="box"];16054[label="Zero",fontsize=16,color="green",shape="box"];16055[label="Zero",fontsize=16,color="green",shape="box"];16030[label="primCmpNat (Succ vz5010000) vz5020000",fontsize=16,color="burlywood",shape="box"];16183[label="vz5020000/Succ vz50200000",fontsize=10,color="white",style="solid",shape="box"];16030 -> 16183[label="",style="solid", color="burlywood", weight=9]; 16183 -> 16040[label="",style="solid", color="burlywood", weight=3]; 16184[label="vz5020000/Zero",fontsize=10,color="white",style="solid",shape="box"];16030 -> 16184[label="",style="solid", color="burlywood", weight=9]; 16184 -> 16041[label="",style="solid", color="burlywood", weight=3]; 16031[label="primCmpNat Zero vz5020000",fontsize=16,color="burlywood",shape="box"];16185[label="vz5020000/Succ vz50200000",fontsize=10,color="white",style="solid",shape="box"];16031 -> 16185[label="",style="solid", color="burlywood", weight=9]; 16185 -> 16042[label="",style="solid", color="burlywood", weight=3]; 16186[label="vz5020000/Zero",fontsize=10,color="white",style="solid",shape="box"];16031 -> 16186[label="",style="solid", color="burlywood", weight=9]; 16186 -> 16043[label="",style="solid", color="burlywood", weight=3]; 16032[label="vz501000",fontsize=16,color="green",shape="box"];16033[label="vz5020000",fontsize=16,color="green",shape="box"];15995[label="vz502000",fontsize=16,color="green",shape="box"];15996[label="vz50101",fontsize=16,color="green",shape="box"];15997[label="vz50100",fontsize=16,color="green",shape="box"];15998[label="vz502001",fontsize=16,color="green",shape="box"];15999[label="error []",fontsize=16,color="red",shape="box"];16000[label="vz502001",fontsize=16,color="green",shape="box"];16001[label="vz50100",fontsize=16,color="green",shape="box"];16059 -> 16026[label="",style="dashed", color="red", weight=0]; 16059[label="primMulNat vz5030000 (Succ vz5040100)",fontsize=16,color="magenta"];16059 -> 16060[label="",style="dashed", color="magenta", weight=3]; 16059 -> 16061[label="",style="dashed", color="magenta", weight=3]; 16058[label="primPlusNat vz516 (Succ vz5040100)",fontsize=16,color="burlywood",shape="triangle"];16187[label="vz516/Succ vz5160",fontsize=10,color="white",style="solid",shape="box"];16058 -> 16187[label="",style="solid", color="burlywood", weight=9]; 16187 -> 16062[label="",style="solid", color="burlywood", weight=3]; 16188[label="vz516/Zero",fontsize=10,color="white",style="solid",shape="box"];16058 -> 16188[label="",style="solid", color="burlywood", weight=9]; 16188 -> 16063[label="",style="solid", color="burlywood", weight=3]; 16040[label="primCmpNat (Succ vz5010000) (Succ vz50200000)",fontsize=16,color="black",shape="box"];16040 -> 16048[label="",style="solid", color="black", weight=3]; 16041[label="primCmpNat (Succ vz5010000) Zero",fontsize=16,color="black",shape="box"];16041 -> 16049[label="",style="solid", color="black", weight=3]; 16042[label="primCmpNat Zero (Succ vz50200000)",fontsize=16,color="black",shape="box"];16042 -> 16050[label="",style="solid", color="black", weight=3]; 16043[label="primCmpNat Zero Zero",fontsize=16,color="black",shape="box"];16043 -> 16051[label="",style="solid", color="black", weight=3]; 16060[label="vz5030000",fontsize=16,color="green",shape="box"];16061[label="Succ vz5040100",fontsize=16,color="green",shape="box"];16062[label="primPlusNat (Succ vz5160) (Succ vz5040100)",fontsize=16,color="black",shape="box"];16062 -> 16064[label="",style="solid", color="black", weight=3]; 16063[label="primPlusNat Zero (Succ vz5040100)",fontsize=16,color="black",shape="box"];16063 -> 16065[label="",style="solid", color="black", weight=3]; 16048 -> 16018[label="",style="dashed", color="red", weight=0]; 16048[label="primCmpNat vz5010000 vz50200000",fontsize=16,color="magenta"];16048 -> 16056[label="",style="dashed", color="magenta", weight=3]; 16048 -> 16057[label="",style="dashed", color="magenta", weight=3]; 16049[label="GT",fontsize=16,color="green",shape="box"];16050[label="LT",fontsize=16,color="green",shape="box"];16051[label="EQ",fontsize=16,color="green",shape="box"];16064[label="Succ (Succ (primPlusNat vz5160 vz5040100))",fontsize=16,color="green",shape="box"];16064 -> 16066[label="",style="dashed", color="green", weight=3]; 16065[label="Succ vz5040100",fontsize=16,color="green",shape="box"];16056[label="vz50200000",fontsize=16,color="green",shape="box"];16057[label="vz5010000",fontsize=16,color="green",shape="box"];16066[label="primPlusNat vz5160 vz5040100",fontsize=16,color="burlywood",shape="triangle"];16189[label="vz5160/Succ vz51600",fontsize=10,color="white",style="solid",shape="box"];16066 -> 16189[label="",style="solid", color="burlywood", weight=9]; 16189 -> 16067[label="",style="solid", color="burlywood", weight=3]; 16190[label="vz5160/Zero",fontsize=10,color="white",style="solid",shape="box"];16066 -> 16190[label="",style="solid", color="burlywood", weight=9]; 16190 -> 16068[label="",style="solid", color="burlywood", weight=3]; 16067[label="primPlusNat (Succ vz51600) vz5040100",fontsize=16,color="burlywood",shape="box"];16191[label="vz5040100/Succ vz50401000",fontsize=10,color="white",style="solid",shape="box"];16067 -> 16191[label="",style="solid", color="burlywood", weight=9]; 16191 -> 16069[label="",style="solid", color="burlywood", weight=3]; 16192[label="vz5040100/Zero",fontsize=10,color="white",style="solid",shape="box"];16067 -> 16192[label="",style="solid", color="burlywood", weight=9]; 16192 -> 16070[label="",style="solid", color="burlywood", weight=3]; 16068[label="primPlusNat Zero vz5040100",fontsize=16,color="burlywood",shape="box"];16193[label="vz5040100/Succ vz50401000",fontsize=10,color="white",style="solid",shape="box"];16068 -> 16193[label="",style="solid", color="burlywood", weight=9]; 16193 -> 16071[label="",style="solid", color="burlywood", weight=3]; 16194[label="vz5040100/Zero",fontsize=10,color="white",style="solid",shape="box"];16068 -> 16194[label="",style="solid", color="burlywood", weight=9]; 16194 -> 16072[label="",style="solid", color="burlywood", weight=3]; 16069[label="primPlusNat (Succ vz51600) (Succ vz50401000)",fontsize=16,color="black",shape="box"];16069 -> 16073[label="",style="solid", color="black", weight=3]; 16070[label="primPlusNat (Succ vz51600) Zero",fontsize=16,color="black",shape="box"];16070 -> 16074[label="",style="solid", color="black", weight=3]; 16071[label="primPlusNat Zero (Succ vz50401000)",fontsize=16,color="black",shape="box"];16071 -> 16075[label="",style="solid", color="black", weight=3]; 16072[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];16072 -> 16076[label="",style="solid", color="black", weight=3]; 16073[label="Succ (Succ (primPlusNat vz51600 vz50401000))",fontsize=16,color="green",shape="box"];16073 -> 16077[label="",style="dashed", color="green", weight=3]; 16074[label="Succ vz51600",fontsize=16,color="green",shape="box"];16075[label="Succ vz50401000",fontsize=16,color="green",shape="box"];16076[label="Zero",fontsize=16,color="green",shape="box"];16077 -> 16066[label="",style="dashed", color="red", weight=0]; 16077[label="primPlusNat vz51600 vz50401000",fontsize=16,color="magenta"];16077 -> 16078[label="",style="dashed", color="magenta", weight=3]; 16077 -> 16079[label="",style="dashed", color="magenta", weight=3]; 16078[label="vz51600",fontsize=16,color="green",shape="box"];16079[label="vz50401000",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(vz5010000), Succ(vz50200000)) -> new_primCmpNat(vz5010000, vz50200000) 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(vz5010000), Succ(vz50200000)) -> new_primCmpNat(vz5010000, vz50200000) 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_merge0(vz511, vz512, vz513, vz514, EQ, ba) -> new_merge(vz513, :(vz511, vz514), ba) new_merge0(vz511, vz512, vz513, vz514, GT, ba) -> new_merge(:(vz512, vz513), vz514, ba) new_merge0(vz511, vz512, vz513, vz514, LT, ba) -> new_merge(vz513, :(vz511, vz514), ba) new_merge(:(vz5010, vz5011), :(vz50200, vz50201), bb) -> new_merge0(vz50200, vz5010, vz5011, vz50201, new_compare(vz5010, vz50200, bb), bb) The TRS R consists of the following rules: new_compare12(Pos(Succ(vz501000)), Pos(vz502000)) -> new_primCmpNat2(vz501000, vz502000) new_compare1(vz5010, vz50200, be, bf) -> error([]) new_compare4(vz5010, vz50200) -> error([]) new_compare11(vz5010, vz50200) -> error([]) new_primCmpNat0(Zero, vz501000) -> LT new_primPlusNat0(Succ(vz51600), Zero) -> Succ(vz51600) new_primPlusNat0(Zero, Succ(vz50401000)) -> Succ(vz50401000) new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Zero, Zero) -> Zero new_compare(vz5010, vz50200, app(ty_Maybe, cb)) -> new_compare6(vz5010, vz50200, cb) new_primPlusNat1(Zero, vz5040100) -> Succ(vz5040100) new_compare12(Pos(Zero), Pos(Succ(vz5020000))) -> new_primCmpNat0(Zero, vz5020000) new_compare(vz5010, vz50200, ty_Ordering) -> new_compare10(vz5010, vz50200) new_compare(vz5010, vz50200, app(ty_[], cc)) -> new_compare7(vz5010, vz50200, cc) new_primCmpNat1(Zero, Zero) -> EQ new_compare12(Pos(Zero), Pos(Zero)) -> EQ new_compare12(Neg(Succ(vz501000)), Neg(vz502000)) -> new_primCmpNat0(vz502000, vz501000) new_compare12(Neg(Zero), Neg(Succ(vz5020000))) -> new_primCmpNat2(vz5020000, Zero) new_compare(vz5010, vz50200, ty_Integer) -> new_compare13(vz5010, vz50200) new_sr(Neg(vz503000), Neg(vz504010)) -> Pos(new_primMulNat0(vz503000, vz504010)) new_compare(vz5010, vz50200, ty_Int) -> new_compare12(vz5010, vz50200) new_compare8(vz5010, vz50200) -> error([]) new_primCmpNat1(Succ(vz5010000), Zero) -> GT new_compare2(vz5010, vz50200, bg, bh, ca) -> error([]) new_compare(vz5010, vz50200, app(app(app(ty_@3, bg), bh), ca)) -> new_compare2(vz5010, vz50200, bg, bh, ca) new_primCmpNat2(vz501000, Succ(vz5020000)) -> new_primCmpNat1(vz501000, vz5020000) new_compare0(vz5010, vz50200, bc, bd) -> error([]) new_compare(vz5010, vz50200, app(app(ty_Either, bc), bd)) -> new_compare0(vz5010, vz50200, bc, bd) new_compare6(vz5010, vz50200, cb) -> error([]) new_compare(vz5010, vz50200, ty_Float) -> new_compare4(vz5010, vz50200) new_compare12(Pos(Zero), Neg(Succ(vz5020000))) -> GT new_compare(vz5010, vz50200, app(app(ty_@2, be), bf)) -> new_compare1(vz5010, vz50200, be, bf) new_compare9(:%(vz50100, vz50101), :%(vz502000, vz502001), ty_Integer) -> new_compare13(new_sr0(vz50100, vz502001), new_sr0(vz502000, vz50101)) new_compare(vz5010, vz50200, ty_Bool) -> new_compare3(vz5010, vz50200) new_compare3(vz5010, vz50200) -> error([]) new_compare12(Neg(Succ(vz501000)), Pos(vz502000)) -> LT new_primPlusNat0(Succ(vz51600), Succ(vz50401000)) -> Succ(Succ(new_primPlusNat0(vz51600, vz50401000))) new_primMulNat0(Succ(vz5030000), Succ(vz5040100)) -> new_primPlusNat1(new_primMulNat0(vz5030000, Succ(vz5040100)), vz5040100) new_compare(vz5010, vz50200, app(ty_Ratio, cd)) -> new_compare9(vz5010, vz50200, cd) new_compare(vz5010, vz50200, ty_@0) -> new_compare5(vz5010, vz50200) new_primCmpNat1(Succ(vz5010000), Succ(vz50200000)) -> new_primCmpNat1(vz5010000, vz50200000) new_compare13(vz5010, vz50200) -> error([]) new_compare7(vz5010, vz50200, cc) -> error([]) new_primCmpNat1(Zero, Succ(vz50200000)) -> LT new_sr0(vz502000, vz50101) -> error([]) new_compare(vz5010, vz50200, ty_Double) -> new_compare8(vz5010, vz50200) new_compare5(vz5010, vz50200) -> error([]) new_compare12(Pos(Succ(vz501000)), Neg(vz502000)) -> GT new_compare(vz5010, vz50200, ty_Char) -> new_compare11(vz5010, vz50200) new_compare12(Neg(Zero), Pos(Succ(vz5020000))) -> LT new_sr(Pos(vz503000), Neg(vz504010)) -> Neg(new_primMulNat0(vz503000, vz504010)) new_sr(Neg(vz503000), Pos(vz504010)) -> Neg(new_primMulNat0(vz503000, vz504010)) new_compare9(:%(vz50100, vz50101), :%(vz502000, vz502001), ty_Int) -> new_compare12(new_sr(vz50100, vz502001), new_sr(vz502000, vz50101)) new_compare10(vz5010, vz50200) -> error([]) new_primMulNat0(Succ(vz5030000), Zero) -> Zero new_primMulNat0(Zero, Succ(vz5040100)) -> Zero new_sr(Pos(vz503000), Pos(vz504010)) -> Pos(new_primMulNat0(vz503000, vz504010)) new_compare12(Neg(Zero), Neg(Zero)) -> EQ new_primCmpNat2(vz501000, Zero) -> GT new_compare12(Pos(Zero), Neg(Zero)) -> EQ new_compare12(Neg(Zero), Pos(Zero)) -> EQ new_primCmpNat0(Succ(vz5020000), vz501000) -> new_primCmpNat1(vz5020000, vz501000) new_primPlusNat1(Succ(vz5160), vz5040100) -> Succ(Succ(new_primPlusNat0(vz5160, vz5040100))) The set Q consists of the following terms: new_sr(Pos(x0), Neg(x1)) new_sr(Neg(x0), Pos(x1)) new_compare12(Pos(Zero), Neg(Zero)) new_compare12(Neg(Zero), Pos(Zero)) new_compare3(x0, x1) new_primCmpNat0(Zero, x0) new_compare12(Pos(Zero), Pos(Zero)) new_primCmpNat1(Succ(x0), Succ(x1)) new_compare(x0, x1, app(app(ty_Either, x2), x3)) new_primCmpNat2(x0, Zero) new_compare12(Neg(Succ(x0)), Neg(x1)) new_compare4(x0, x1) new_compare12(Neg(Zero), Neg(Zero)) new_compare(x0, x1, app(ty_Ratio, x2)) new_compare13(x0, x1) new_compare(x0, x1, app(ty_Maybe, x2)) new_compare0(x0, x1, x2, x3) new_compare2(x0, x1, x2, x3, x4) new_compare(x0, x1, app(app(ty_@2, x2), x3)) new_primMulNat0(Succ(x0), Succ(x1)) new_primCmpNat1(Succ(x0), Zero) new_compare(x0, x1, ty_@0) new_primMulNat0(Zero, Zero) new_primCmpNat0(Succ(x0), x1) new_compare10(x0, x1) new_primCmpNat1(Zero, Zero) new_primPlusNat1(Succ(x0), x1) new_primMulNat0(Zero, Succ(x0)) new_compare12(Pos(Zero), Neg(Succ(x0))) new_compare12(Neg(Zero), Pos(Succ(x0))) new_compare7(x0, x1, x2) new_compare(x0, x1, app(ty_[], x2)) new_sr(Neg(x0), Neg(x1)) new_compare(x0, x1, ty_Int) new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_primCmpNat2(x0, Succ(x1)) new_compare12(Pos(Zero), Pos(Succ(x0))) new_sr0(x0, x1) new_compare(x0, x1, ty_Ordering) new_primPlusNat1(Zero, x0) new_compare(x0, x1, ty_Bool) new_compare9(:%(x0, x1), :%(x2, x3), ty_Int) new_primMulNat0(Succ(x0), Zero) new_compare(x0, x1, ty_Double) new_compare1(x0, x1, x2, x3) new_compare9(:%(x0, x1), :%(x2, x3), ty_Integer) new_compare12(Neg(Zero), Neg(Succ(x0))) new_compare(x0, x1, ty_Char) new_compare12(Pos(Succ(x0)), Pos(x1)) new_compare8(x0, x1) new_primPlusNat0(Succ(x0), Zero) new_compare12(Neg(Succ(x0)), Pos(x1)) new_compare12(Pos(Succ(x0)), Neg(x1)) new_primCmpNat1(Zero, Succ(x0)) new_primPlusNat0(Zero, Succ(x0)) new_compare5(x0, x1) new_compare6(x0, x1, x2) new_compare(x0, x1, ty_Float) new_sr(Pos(x0), Pos(x1)) new_compare(x0, x1, ty_Integer) new_primPlusNat0(Zero, Zero) new_primPlusNat0(Succ(x0), Succ(x1)) new_compare11(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_merge(:(vz5010, vz5011), :(vz50200, vz50201), bb) -> new_merge0(vz50200, vz5010, vz5011, vz50201, new_compare(vz5010, vz50200, 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(:%(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)) = 0 POL(Zero) = 0 POL([]) = 1 POL(app(x_1, x_2)) = 1 + x_1 + x_2 POL(error(x_1)) = 1 POL(new_compare(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(new_compare0(x_1, x_2, x_3, x_4)) = 1 + x_1 + x_2 + x_3 + x_4 POL(new_compare1(x_1, x_2, x_3, x_4)) = 1 + x_1 + x_2 + x_3 + x_4 POL(new_compare10(x_1, x_2)) = 1 + x_1 + x_2 POL(new_compare11(x_1, x_2)) = 1 + x_1 + x_2 POL(new_compare12(x_1, x_2)) = 0 POL(new_compare13(x_1, x_2)) = 1 + x_1 + x_2 POL(new_compare2(x_1, x_2, x_3, x_4, x_5)) = 1 + x_1 + x_2 + x_3 + x_4 + x_5 POL(new_compare3(x_1, x_2)) = 1 + x_1 + x_2 POL(new_compare4(x_1, x_2)) = 1 + x_1 + x_2 POL(new_compare5(x_1, x_2)) = 1 + x_1 + x_2 POL(new_compare6(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 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, x_3)) = 1 + x_3 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_2 POL(new_primCmpNat1(x_1, x_2)) = 1 POL(new_primCmpNat2(x_1, x_2)) = 1 + x_1 POL(new_primMulNat0(x_1, x_2)) = 0 POL(new_primPlusNat0(x_1, x_2)) = 0 POL(new_primPlusNat1(x_1, x_2)) = x_2 POL(new_sr(x_1, x_2)) = 0 POL(new_sr0(x_1, x_2)) = 1 + x_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 ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: new_merge0(vz511, vz512, vz513, vz514, EQ, ba) -> new_merge(vz513, :(vz511, vz514), ba) new_merge0(vz511, vz512, vz513, vz514, GT, ba) -> new_merge(:(vz512, vz513), vz514, ba) new_merge0(vz511, vz512, vz513, vz514, LT, ba) -> new_merge(vz513, :(vz511, vz514), ba) The TRS R consists of the following rules: new_compare12(Pos(Succ(vz501000)), Pos(vz502000)) -> new_primCmpNat2(vz501000, vz502000) new_compare1(vz5010, vz50200, be, bf) -> error([]) new_compare4(vz5010, vz50200) -> error([]) new_compare11(vz5010, vz50200) -> error([]) new_primCmpNat0(Zero, vz501000) -> LT new_primPlusNat0(Succ(vz51600), Zero) -> Succ(vz51600) new_primPlusNat0(Zero, Succ(vz50401000)) -> Succ(vz50401000) new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Zero, Zero) -> Zero new_compare(vz5010, vz50200, app(ty_Maybe, cb)) -> new_compare6(vz5010, vz50200, cb) new_primPlusNat1(Zero, vz5040100) -> Succ(vz5040100) new_compare12(Pos(Zero), Pos(Succ(vz5020000))) -> new_primCmpNat0(Zero, vz5020000) new_compare(vz5010, vz50200, ty_Ordering) -> new_compare10(vz5010, vz50200) new_compare(vz5010, vz50200, app(ty_[], cc)) -> new_compare7(vz5010, vz50200, cc) new_primCmpNat1(Zero, Zero) -> EQ new_compare12(Pos(Zero), Pos(Zero)) -> EQ new_compare12(Neg(Succ(vz501000)), Neg(vz502000)) -> new_primCmpNat0(vz502000, vz501000) new_compare12(Neg(Zero), Neg(Succ(vz5020000))) -> new_primCmpNat2(vz5020000, Zero) new_compare(vz5010, vz50200, ty_Integer) -> new_compare13(vz5010, vz50200) new_sr(Neg(vz503000), Neg(vz504010)) -> Pos(new_primMulNat0(vz503000, vz504010)) new_compare(vz5010, vz50200, ty_Int) -> new_compare12(vz5010, vz50200) new_compare8(vz5010, vz50200) -> error([]) new_primCmpNat1(Succ(vz5010000), Zero) -> GT new_compare2(vz5010, vz50200, bg, bh, ca) -> error([]) new_compare(vz5010, vz50200, app(app(app(ty_@3, bg), bh), ca)) -> new_compare2(vz5010, vz50200, bg, bh, ca) new_primCmpNat2(vz501000, Succ(vz5020000)) -> new_primCmpNat1(vz501000, vz5020000) new_compare0(vz5010, vz50200, bc, bd) -> error([]) new_compare(vz5010, vz50200, app(app(ty_Either, bc), bd)) -> new_compare0(vz5010, vz50200, bc, bd) new_compare6(vz5010, vz50200, cb) -> error([]) new_compare(vz5010, vz50200, ty_Float) -> new_compare4(vz5010, vz50200) new_compare12(Pos(Zero), Neg(Succ(vz5020000))) -> GT new_compare(vz5010, vz50200, app(app(ty_@2, be), bf)) -> new_compare1(vz5010, vz50200, be, bf) new_compare9(:%(vz50100, vz50101), :%(vz502000, vz502001), ty_Integer) -> new_compare13(new_sr0(vz50100, vz502001), new_sr0(vz502000, vz50101)) new_compare(vz5010, vz50200, ty_Bool) -> new_compare3(vz5010, vz50200) new_compare3(vz5010, vz50200) -> error([]) new_compare12(Neg(Succ(vz501000)), Pos(vz502000)) -> LT new_primPlusNat0(Succ(vz51600), Succ(vz50401000)) -> Succ(Succ(new_primPlusNat0(vz51600, vz50401000))) new_primMulNat0(Succ(vz5030000), Succ(vz5040100)) -> new_primPlusNat1(new_primMulNat0(vz5030000, Succ(vz5040100)), vz5040100) new_compare(vz5010, vz50200, app(ty_Ratio, cd)) -> new_compare9(vz5010, vz50200, cd) new_compare(vz5010, vz50200, ty_@0) -> new_compare5(vz5010, vz50200) new_primCmpNat1(Succ(vz5010000), Succ(vz50200000)) -> new_primCmpNat1(vz5010000, vz50200000) new_compare13(vz5010, vz50200) -> error([]) new_compare7(vz5010, vz50200, cc) -> error([]) new_primCmpNat1(Zero, Succ(vz50200000)) -> LT new_sr0(vz502000, vz50101) -> error([]) new_compare(vz5010, vz50200, ty_Double) -> new_compare8(vz5010, vz50200) new_compare5(vz5010, vz50200) -> error([]) new_compare12(Pos(Succ(vz501000)), Neg(vz502000)) -> GT new_compare(vz5010, vz50200, ty_Char) -> new_compare11(vz5010, vz50200) new_compare12(Neg(Zero), Pos(Succ(vz5020000))) -> LT new_sr(Pos(vz503000), Neg(vz504010)) -> Neg(new_primMulNat0(vz503000, vz504010)) new_sr(Neg(vz503000), Pos(vz504010)) -> Neg(new_primMulNat0(vz503000, vz504010)) new_compare9(:%(vz50100, vz50101), :%(vz502000, vz502001), ty_Int) -> new_compare12(new_sr(vz50100, vz502001), new_sr(vz502000, vz50101)) new_compare10(vz5010, vz50200) -> error([]) new_primMulNat0(Succ(vz5030000), Zero) -> Zero new_primMulNat0(Zero, Succ(vz5040100)) -> Zero new_sr(Pos(vz503000), Pos(vz504010)) -> Pos(new_primMulNat0(vz503000, vz504010)) new_compare12(Neg(Zero), Neg(Zero)) -> EQ new_primCmpNat2(vz501000, Zero) -> GT new_compare12(Pos(Zero), Neg(Zero)) -> EQ new_compare12(Neg(Zero), Pos(Zero)) -> EQ new_primCmpNat0(Succ(vz5020000), vz501000) -> new_primCmpNat1(vz5020000, vz501000) new_primPlusNat1(Succ(vz5160), vz5040100) -> Succ(Succ(new_primPlusNat0(vz5160, vz5040100))) The set Q consists of the following terms: new_sr(Pos(x0), Neg(x1)) new_sr(Neg(x0), Pos(x1)) new_compare12(Pos(Zero), Neg(Zero)) new_compare12(Neg(Zero), Pos(Zero)) new_compare3(x0, x1) new_primCmpNat0(Zero, x0) new_compare12(Pos(Zero), Pos(Zero)) new_primCmpNat1(Succ(x0), Succ(x1)) new_compare(x0, x1, app(app(ty_Either, x2), x3)) new_primCmpNat2(x0, Zero) new_compare12(Neg(Succ(x0)), Neg(x1)) new_compare4(x0, x1) new_compare12(Neg(Zero), Neg(Zero)) new_compare(x0, x1, app(ty_Ratio, x2)) new_compare13(x0, x1) new_compare(x0, x1, app(ty_Maybe, x2)) new_compare0(x0, x1, x2, x3) new_compare2(x0, x1, x2, x3, x4) new_compare(x0, x1, app(app(ty_@2, x2), x3)) new_primMulNat0(Succ(x0), Succ(x1)) new_primCmpNat1(Succ(x0), Zero) new_compare(x0, x1, ty_@0) new_primMulNat0(Zero, Zero) new_primCmpNat0(Succ(x0), x1) new_compare10(x0, x1) new_primCmpNat1(Zero, Zero) new_primPlusNat1(Succ(x0), x1) new_primMulNat0(Zero, Succ(x0)) new_compare12(Pos(Zero), Neg(Succ(x0))) new_compare12(Neg(Zero), Pos(Succ(x0))) new_compare7(x0, x1, x2) new_compare(x0, x1, app(ty_[], x2)) new_sr(Neg(x0), Neg(x1)) new_compare(x0, x1, ty_Int) new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_primCmpNat2(x0, Succ(x1)) new_compare12(Pos(Zero), Pos(Succ(x0))) new_sr0(x0, x1) new_compare(x0, x1, ty_Ordering) new_primPlusNat1(Zero, x0) new_compare(x0, x1, ty_Bool) new_compare9(:%(x0, x1), :%(x2, x3), ty_Int) new_primMulNat0(Succ(x0), Zero) new_compare(x0, x1, ty_Double) new_compare1(x0, x1, x2, x3) new_compare9(:%(x0, x1), :%(x2, x3), ty_Integer) new_compare12(Neg(Zero), Neg(Succ(x0))) new_compare(x0, x1, ty_Char) new_compare12(Pos(Succ(x0)), Pos(x1)) new_compare8(x0, x1) new_primPlusNat0(Succ(x0), Zero) new_compare12(Neg(Succ(x0)), Pos(x1)) new_compare12(Pos(Succ(x0)), Neg(x1)) new_primCmpNat1(Zero, Succ(x0)) new_primPlusNat0(Zero, Succ(x0)) new_compare5(x0, x1) new_compare6(x0, x1, x2) new_compare(x0, x1, ty_Float) new_sr(Pos(x0), Pos(x1)) new_compare(x0, x1, ty_Integer) new_primPlusNat0(Zero, Zero) new_primPlusNat0(Succ(x0), Succ(x1)) new_compare11(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (16) TRUE ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: new_mergesort'(vz501, :(vz5020, []), ba) -> new_mergesort'(new_merge2(vz501, vz5020, ba), [], ba) new_mergesort'(vz501, :(vz5020, :(vz50210, vz50211)), ba) -> new_mergesort'(new_merge1(vz501, vz5020, vz50210, ba), new_merge_pairs0(vz50211, ba), ba) The TRS R consists of the following rules: new_compare12(Pos(Succ(vz501000)), Pos(vz502000)) -> new_primCmpNat2(vz501000, vz502000) new_compare1(vz5010, vz50200, bg, bh) -> error([]) new_compare11(vz5010, vz50200) -> error([]) new_compare4(vz5010, vz50200) -> error([]) new_primCmpNat0(Zero, vz501000) -> LT new_primPlusNat0(Succ(vz51600), Zero) -> Succ(vz51600) new_primPlusNat0(Zero, Succ(vz50401000)) -> Succ(vz50401000) new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Zero, Zero) -> Zero new_compare14(vz50200, vz502100, ty_Bool) -> new_compare3(vz50200, vz502100) new_compare(vz5010, vz50200, app(ty_Maybe, cb)) -> new_compare6(vz5010, vz50200, cb) new_compare12(Pos(Zero), Pos(Succ(vz5020000))) -> new_primCmpNat0(Zero, vz5020000) new_primPlusNat1(Zero, vz5040100) -> Succ(vz5040100) new_compare14(vz50200, vz502100, ty_@0) -> new_compare5(vz50200, vz502100) new_compare(vz5010, vz50200, ty_Ordering) -> new_compare10(vz5010, vz50200) new_compare(vz5010, vz50200, app(ty_[], cc)) -> new_compare7(vz5010, vz50200, cc) new_primCmpNat1(Zero, Zero) -> EQ new_compare14(vz50200, vz502100, app(app(app(ty_@3, bd), be), bf)) -> new_compare2(vz50200, vz502100, bd, be, bf) new_compare12(Pos(Zero), Pos(Zero)) -> EQ new_compare12(Neg(Succ(vz501000)), Neg(vz502000)) -> new_primCmpNat0(vz502000, vz501000) new_merge_pairs0(:(vz502110, []), ba) -> :(vz502110, []) new_compare12(Neg(Zero), Neg(Succ(vz5020000))) -> new_primCmpNat2(vz5020000, Zero) new_sr(Neg(vz503000), Neg(vz504010)) -> Pos(new_primMulNat0(vz503000, vz504010)) new_compare(vz5010, vz50200, ty_Integer) -> new_compare13(vz5010, vz50200) new_merge1(vz501, :(vz50200, vz50201), :(vz502100, vz502101), ba) -> new_merge2(vz501, new_merge00(vz502100, vz50200, vz50201, vz502101, new_compare14(vz50200, vz502100, ba), ba), ba) new_compare(vz5010, vz50200, ty_Int) -> new_compare12(vz5010, vz50200) new_compare8(vz5010, vz50200) -> error([]) new_primCmpNat1(Succ(vz5010000), Zero) -> GT new_compare2(vz5010, vz50200, bd, be, bf) -> error([]) new_merge2([], :(vz50200, vz50201), ba) -> :(vz50200, vz50201) new_compare(vz5010, vz50200, app(app(app(ty_@3, bd), be), bf)) -> new_compare2(vz5010, vz50200, bd, be, bf) new_primCmpNat2(vz501000, Succ(vz5020000)) -> new_primCmpNat1(vz501000, vz5020000) new_compare14(vz50200, vz502100, ty_Char) -> new_compare11(vz50200, vz502100) new_compare0(vz5010, vz50200, bb, bc) -> error([]) new_compare(vz5010, vz50200, app(app(ty_Either, bb), bc)) -> new_compare0(vz5010, vz50200, bb, bc) new_compare14(vz50200, vz502100, ty_Double) -> new_compare8(vz50200, vz502100) new_compare6(vz5010, vz50200, cb) -> error([]) new_compare12(Pos(Zero), Neg(Succ(vz5020000))) -> GT new_compare(vz5010, vz50200, ty_Float) -> new_compare4(vz5010, vz50200) new_compare(vz5010, vz50200, app(app(ty_@2, bg), bh)) -> new_compare1(vz5010, vz50200, bg, bh) new_compare9(:%(vz50100, vz50101), :%(vz502000, vz502001), ty_Integer) -> new_compare13(new_sr0(vz50100, vz502001), new_sr0(vz502000, vz50101)) new_compare(vz5010, vz50200, ty_Bool) -> new_compare3(vz5010, vz50200) new_merge_pairs0(:(vz502110, :(vz5021110, vz5021111)), ba) -> :(new_merge2(vz502110, vz5021110, ba), new_merge_pairs0(vz5021111, ba)) new_compare3(vz5010, vz50200) -> error([]) new_compare12(Neg(Succ(vz501000)), Pos(vz502000)) -> LT new_primPlusNat0(Succ(vz51600), Succ(vz50401000)) -> Succ(Succ(new_primPlusNat0(vz51600, vz50401000))) new_merge00(vz511, vz512, vz513, vz514, LT, cd) -> :(vz512, new_merge2(vz513, :(vz511, vz514), cd)) new_primMulNat0(Succ(vz5030000), Succ(vz5040100)) -> new_primPlusNat1(new_primMulNat0(vz5030000, Succ(vz5040100)), vz5040100) new_merge2(:(vz5010, vz5011), :(vz50200, vz50201), ba) -> new_merge00(vz50200, vz5010, vz5011, vz50201, new_compare(vz5010, vz50200, ba), ba) new_compare14(vz50200, vz502100, app(app(ty_@2, bg), bh)) -> new_compare1(vz50200, vz502100, bg, bh) new_compare(vz5010, vz50200, app(ty_Ratio, ca)) -> new_compare9(vz5010, vz50200, ca) new_primCmpNat1(Succ(vz5010000), Succ(vz50200000)) -> new_primCmpNat1(vz5010000, vz50200000) new_compare14(vz50200, vz502100, app(ty_Maybe, cb)) -> new_compare6(vz50200, vz502100, cb) new_compare(vz5010, vz50200, ty_@0) -> new_compare5(vz5010, vz50200) new_compare13(vz5010, vz50200) -> error([]) new_compare14(vz50200, vz502100, ty_Ordering) -> new_compare10(vz50200, vz502100) new_merge2(vz501, [], ba) -> vz501 new_merge_pairs0([], ba) -> [] new_merge1(vz501, [], :(vz502100, vz502101), ba) -> new_merge2(vz501, :(vz502100, vz502101), ba) new_compare7(vz5010, vz50200, cc) -> error([]) new_primCmpNat1(Zero, Succ(vz50200000)) -> LT new_sr0(vz502000, vz50101) -> error([]) new_merge00(vz511, vz512, vz513, vz514, GT, cd) -> :(vz511, new_merge2(:(vz512, vz513), vz514, cd)) new_compare(vz5010, vz50200, ty_Double) -> new_compare8(vz5010, vz50200) new_compare5(vz5010, vz50200) -> error([]) new_compare12(Pos(Succ(vz501000)), Neg(vz502000)) -> GT new_compare12(Neg(Zero), Pos(Succ(vz5020000))) -> LT new_compare(vz5010, vz50200, ty_Char) -> new_compare11(vz5010, vz50200) new_sr(Pos(vz503000), Neg(vz504010)) -> Neg(new_primMulNat0(vz503000, vz504010)) new_sr(Neg(vz503000), Pos(vz504010)) -> Neg(new_primMulNat0(vz503000, vz504010)) new_compare10(vz5010, vz50200) -> error([]) new_compare14(vz50200, vz502100, app(ty_Ratio, ca)) -> new_compare9(vz50200, vz502100, ca) new_merge00(vz511, vz512, vz513, vz514, EQ, cd) -> :(vz512, new_merge2(vz513, :(vz511, vz514), cd)) new_compare9(:%(vz50100, vz50101), :%(vz502000, vz502001), ty_Int) -> new_compare12(new_sr(vz50100, vz502001), new_sr(vz502000, vz50101)) new_compare14(vz50200, vz502100, app(ty_[], cc)) -> new_compare7(vz50200, vz502100, cc) new_compare14(vz50200, vz502100, app(app(ty_Either, bb), bc)) -> new_compare0(vz50200, vz502100, bb, bc) new_primMulNat0(Succ(vz5030000), Zero) -> Zero new_primMulNat0(Zero, Succ(vz5040100)) -> Zero new_sr(Pos(vz503000), Pos(vz504010)) -> Pos(new_primMulNat0(vz503000, vz504010)) new_compare12(Neg(Zero), Neg(Zero)) -> EQ new_compare14(vz50200, vz502100, ty_Float) -> new_compare4(vz50200, vz502100) new_primCmpNat2(vz501000, Zero) -> GT new_compare14(vz50200, vz502100, ty_Int) -> new_compare12(vz50200, vz502100) new_compare12(Pos(Zero), Neg(Zero)) -> EQ new_compare12(Neg(Zero), Pos(Zero)) -> EQ new_primCmpNat0(Succ(vz5020000), vz501000) -> new_primCmpNat1(vz5020000, vz501000) new_primPlusNat1(Succ(vz5160), vz5040100) -> Succ(Succ(new_primPlusNat0(vz5160, vz5040100))) new_merge1(vz501, vz5020, [], ba) -> new_merge2(vz501, vz5020, ba) new_compare14(vz50200, vz502100, ty_Integer) -> new_compare13(vz50200, vz502100) The set Q consists of the following terms: new_sr(Pos(x0), Neg(x1)) new_sr(Neg(x0), Pos(x1)) new_compare12(Pos(Zero), Neg(Zero)) new_compare12(Neg(Zero), Pos(Zero)) new_compare3(x0, x1) new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_primCmpNat0(Zero, x0) new_compare(x0, x1, app(ty_Ratio, x2)) new_compare12(Pos(Zero), Pos(Zero)) new_compare14(x0, x1, app(ty_Ratio, x2)) new_merge00(x0, x1, x2, x3, LT, x4) new_compare14(x0, x1, app(app(ty_Either, x2), x3)) new_primCmpNat1(Succ(x0), Succ(x1)) new_compare14(x0, x1, app(ty_Maybe, x2)) new_primCmpNat2(x0, Zero) new_compare12(Neg(Succ(x0)), Neg(x1)) new_compare4(x0, x1) new_compare12(Neg(Zero), Neg(Zero)) new_compare14(x0, x1, ty_Ordering) new_compare13(x0, x1) new_compare(x0, x1, app(ty_Maybe, x2)) new_primMulNat0(Succ(x0), Succ(x1)) new_primCmpNat1(Succ(x0), Zero) new_compare(x0, x1, app(app(ty_@2, x2), x3)) new_compare(x0, x1, ty_@0) new_primMulNat0(Zero, Zero) new_primCmpNat0(Succ(x0), x1) new_merge2(:(x0, x1), :(x2, x3), x4) new_compare10(x0, x1) new_merge00(x0, x1, x2, x3, GT, x4) new_compare14(x0, x1, ty_Int) new_primCmpNat1(Zero, Zero) new_primPlusNat1(Succ(x0), x1) new_merge1(x0, x1, [], x2) new_primMulNat0(Zero, Succ(x0)) new_compare12(Pos(Zero), Neg(Succ(x0))) new_compare12(Neg(Zero), Pos(Succ(x0))) new_compare7(x0, x1, x2) new_compare(x0, x1, app(ty_[], x2)) new_sr(Neg(x0), Neg(x1)) new_compare(x0, x1, ty_Int) new_merge2([], :(x0, x1), x2) new_primCmpNat2(x0, Succ(x1)) new_compare14(x0, x1, ty_@0) new_compare14(x0, x1, ty_Char) new_compare14(x0, x1, app(ty_[], x2)) new_compare12(Pos(Zero), Pos(Succ(x0))) new_sr0(x0, x1) new_compare(x0, x1, ty_Ordering) new_compare14(x0, x1, app(app(ty_@2, x2), x3)) new_merge_pairs0(:(x0, :(x1, x2)), x3) new_primPlusNat1(Zero, x0) new_compare(x0, x1, ty_Bool) new_merge_pairs0(:(x0, []), x1) new_merge2(x0, [], x1) new_merge1(x0, [], :(x1, x2), x3) new_compare9(:%(x0, x1), :%(x2, x3), ty_Int) new_primMulNat0(Succ(x0), Zero) new_compare14(x0, x1, ty_Double) new_compare(x0, x1, ty_Double) new_compare(x0, x1, app(app(ty_Either, x2), x3)) new_compare1(x0, x1, x2, x3) new_compare0(x0, x1, x2, x3) new_compare9(:%(x0, x1), :%(x2, x3), ty_Integer) new_compare12(Neg(Zero), Neg(Succ(x0))) new_compare(x0, x1, ty_Char) new_compare12(Pos(Succ(x0)), Pos(x1)) new_compare8(x0, x1) new_primPlusNat0(Succ(x0), Zero) new_compare2(x0, x1, x2, x3, x4) new_compare12(Neg(Succ(x0)), Pos(x1)) new_compare12(Pos(Succ(x0)), Neg(x1)) new_primCmpNat1(Zero, Succ(x0)) new_primPlusNat0(Zero, Succ(x0)) new_compare5(x0, x1) new_compare14(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_compare14(x0, x1, ty_Integer) new_compare6(x0, x1, x2) new_compare(x0, x1, ty_Float) new_sr(Pos(x0), Pos(x1)) new_compare14(x0, x1, ty_Float) new_merge_pairs0([], x0) new_compare(x0, x1, ty_Integer) new_compare14(x0, x1, ty_Bool) new_primPlusNat0(Zero, Zero) new_primPlusNat0(Succ(x0), Succ(x1)) new_compare11(x0, x1) new_merge1(x0, :(x1, x2), :(x3, x4), x5) new_merge00(x0, x1, x2, x3, EQ, x4) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: new_mergesort'(vz501, :(vz5020, :(vz50210, vz50211)), ba) -> new_mergesort'(new_merge1(vz501, vz5020, vz50210, ba), new_merge_pairs0(vz50211, ba), ba) The TRS R consists of the following rules: new_compare12(Pos(Succ(vz501000)), Pos(vz502000)) -> new_primCmpNat2(vz501000, vz502000) new_compare1(vz5010, vz50200, bg, bh) -> error([]) new_compare11(vz5010, vz50200) -> error([]) new_compare4(vz5010, vz50200) -> error([]) new_primCmpNat0(Zero, vz501000) -> LT new_primPlusNat0(Succ(vz51600), Zero) -> Succ(vz51600) new_primPlusNat0(Zero, Succ(vz50401000)) -> Succ(vz50401000) new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat0(Zero, Zero) -> Zero new_compare14(vz50200, vz502100, ty_Bool) -> new_compare3(vz50200, vz502100) new_compare(vz5010, vz50200, app(ty_Maybe, cb)) -> new_compare6(vz5010, vz50200, cb) new_compare12(Pos(Zero), Pos(Succ(vz5020000))) -> new_primCmpNat0(Zero, vz5020000) new_primPlusNat1(Zero, vz5040100) -> Succ(vz5040100) new_compare14(vz50200, vz502100, ty_@0) -> new_compare5(vz50200, vz502100) new_compare(vz5010, vz50200, ty_Ordering) -> new_compare10(vz5010, vz50200) new_compare(vz5010, vz50200, app(ty_[], cc)) -> new_compare7(vz5010, vz50200, cc) new_primCmpNat1(Zero, Zero) -> EQ new_compare14(vz50200, vz502100, app(app(app(ty_@3, bd), be), bf)) -> new_compare2(vz50200, vz502100, bd, be, bf) new_compare12(Pos(Zero), Pos(Zero)) -> EQ new_compare12(Neg(Succ(vz501000)), Neg(vz502000)) -> new_primCmpNat0(vz502000, vz501000) new_merge_pairs0(:(vz502110, []), ba) -> :(vz502110, []) new_compare12(Neg(Zero), Neg(Succ(vz5020000))) -> new_primCmpNat2(vz5020000, Zero) new_sr(Neg(vz503000), Neg(vz504010)) -> Pos(new_primMulNat0(vz503000, vz504010)) new_compare(vz5010, vz50200, ty_Integer) -> new_compare13(vz5010, vz50200) new_merge1(vz501, :(vz50200, vz50201), :(vz502100, vz502101), ba) -> new_merge2(vz501, new_merge00(vz502100, vz50200, vz50201, vz502101, new_compare14(vz50200, vz502100, ba), ba), ba) new_compare(vz5010, vz50200, ty_Int) -> new_compare12(vz5010, vz50200) new_compare8(vz5010, vz50200) -> error([]) new_primCmpNat1(Succ(vz5010000), Zero) -> GT new_compare2(vz5010, vz50200, bd, be, bf) -> error([]) new_merge2([], :(vz50200, vz50201), ba) -> :(vz50200, vz50201) new_compare(vz5010, vz50200, app(app(app(ty_@3, bd), be), bf)) -> new_compare2(vz5010, vz50200, bd, be, bf) new_primCmpNat2(vz501000, Succ(vz5020000)) -> new_primCmpNat1(vz501000, vz5020000) new_compare14(vz50200, vz502100, ty_Char) -> new_compare11(vz50200, vz502100) new_compare0(vz5010, vz50200, bb, bc) -> error([]) new_compare(vz5010, vz50200, app(app(ty_Either, bb), bc)) -> new_compare0(vz5010, vz50200, bb, bc) new_compare14(vz50200, vz502100, ty_Double) -> new_compare8(vz50200, vz502100) new_compare6(vz5010, vz50200, cb) -> error([]) new_compare12(Pos(Zero), Neg(Succ(vz5020000))) -> GT new_compare(vz5010, vz50200, ty_Float) -> new_compare4(vz5010, vz50200) new_compare(vz5010, vz50200, app(app(ty_@2, bg), bh)) -> new_compare1(vz5010, vz50200, bg, bh) new_compare9(:%(vz50100, vz50101), :%(vz502000, vz502001), ty_Integer) -> new_compare13(new_sr0(vz50100, vz502001), new_sr0(vz502000, vz50101)) new_compare(vz5010, vz50200, ty_Bool) -> new_compare3(vz5010, vz50200) new_merge_pairs0(:(vz502110, :(vz5021110, vz5021111)), ba) -> :(new_merge2(vz502110, vz5021110, ba), new_merge_pairs0(vz5021111, ba)) new_compare3(vz5010, vz50200) -> error([]) new_compare12(Neg(Succ(vz501000)), Pos(vz502000)) -> LT new_primPlusNat0(Succ(vz51600), Succ(vz50401000)) -> Succ(Succ(new_primPlusNat0(vz51600, vz50401000))) new_merge00(vz511, vz512, vz513, vz514, LT, cd) -> :(vz512, new_merge2(vz513, :(vz511, vz514), cd)) new_primMulNat0(Succ(vz5030000), Succ(vz5040100)) -> new_primPlusNat1(new_primMulNat0(vz5030000, Succ(vz5040100)), vz5040100) new_merge2(:(vz5010, vz5011), :(vz50200, vz50201), ba) -> new_merge00(vz50200, vz5010, vz5011, vz50201, new_compare(vz5010, vz50200, ba), ba) new_compare14(vz50200, vz502100, app(app(ty_@2, bg), bh)) -> new_compare1(vz50200, vz502100, bg, bh) new_compare(vz5010, vz50200, app(ty_Ratio, ca)) -> new_compare9(vz5010, vz50200, ca) new_primCmpNat1(Succ(vz5010000), Succ(vz50200000)) -> new_primCmpNat1(vz5010000, vz50200000) new_compare14(vz50200, vz502100, app(ty_Maybe, cb)) -> new_compare6(vz50200, vz502100, cb) new_compare(vz5010, vz50200, ty_@0) -> new_compare5(vz5010, vz50200) new_compare13(vz5010, vz50200) -> error([]) new_compare14(vz50200, vz502100, ty_Ordering) -> new_compare10(vz50200, vz502100) new_merge2(vz501, [], ba) -> vz501 new_merge_pairs0([], ba) -> [] new_merge1(vz501, [], :(vz502100, vz502101), ba) -> new_merge2(vz501, :(vz502100, vz502101), ba) new_compare7(vz5010, vz50200, cc) -> error([]) new_primCmpNat1(Zero, Succ(vz50200000)) -> LT new_sr0(vz502000, vz50101) -> error([]) new_merge00(vz511, vz512, vz513, vz514, GT, cd) -> :(vz511, new_merge2(:(vz512, vz513), vz514, cd)) new_compare(vz5010, vz50200, ty_Double) -> new_compare8(vz5010, vz50200) new_compare5(vz5010, vz50200) -> error([]) new_compare12(Pos(Succ(vz501000)), Neg(vz502000)) -> GT new_compare12(Neg(Zero), Pos(Succ(vz5020000))) -> LT new_compare(vz5010, vz50200, ty_Char) -> new_compare11(vz5010, vz50200) new_sr(Pos(vz503000), Neg(vz504010)) -> Neg(new_primMulNat0(vz503000, vz504010)) new_sr(Neg(vz503000), Pos(vz504010)) -> Neg(new_primMulNat0(vz503000, vz504010)) new_compare10(vz5010, vz50200) -> error([]) new_compare14(vz50200, vz502100, app(ty_Ratio, ca)) -> new_compare9(vz50200, vz502100, ca) new_merge00(vz511, vz512, vz513, vz514, EQ, cd) -> :(vz512, new_merge2(vz513, :(vz511, vz514), cd)) new_compare9(:%(vz50100, vz50101), :%(vz502000, vz502001), ty_Int) -> new_compare12(new_sr(vz50100, vz502001), new_sr(vz502000, vz50101)) new_compare14(vz50200, vz502100, app(ty_[], cc)) -> new_compare7(vz50200, vz502100, cc) new_compare14(vz50200, vz502100, app(app(ty_Either, bb), bc)) -> new_compare0(vz50200, vz502100, bb, bc) new_primMulNat0(Succ(vz5030000), Zero) -> Zero new_primMulNat0(Zero, Succ(vz5040100)) -> Zero new_sr(Pos(vz503000), Pos(vz504010)) -> Pos(new_primMulNat0(vz503000, vz504010)) new_compare12(Neg(Zero), Neg(Zero)) -> EQ new_compare14(vz50200, vz502100, ty_Float) -> new_compare4(vz50200, vz502100) new_primCmpNat2(vz501000, Zero) -> GT new_compare14(vz50200, vz502100, ty_Int) -> new_compare12(vz50200, vz502100) new_compare12(Pos(Zero), Neg(Zero)) -> EQ new_compare12(Neg(Zero), Pos(Zero)) -> EQ new_primCmpNat0(Succ(vz5020000), vz501000) -> new_primCmpNat1(vz5020000, vz501000) new_primPlusNat1(Succ(vz5160), vz5040100) -> Succ(Succ(new_primPlusNat0(vz5160, vz5040100))) new_merge1(vz501, vz5020, [], ba) -> new_merge2(vz501, vz5020, ba) new_compare14(vz50200, vz502100, ty_Integer) -> new_compare13(vz50200, vz502100) The set Q consists of the following terms: new_sr(Pos(x0), Neg(x1)) new_sr(Neg(x0), Pos(x1)) new_compare12(Pos(Zero), Neg(Zero)) new_compare12(Neg(Zero), Pos(Zero)) new_compare3(x0, x1) new_compare(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_primCmpNat0(Zero, x0) new_compare(x0, x1, app(ty_Ratio, x2)) new_compare12(Pos(Zero), Pos(Zero)) new_compare14(x0, x1, app(ty_Ratio, x2)) new_merge00(x0, x1, x2, x3, LT, x4) new_compare14(x0, x1, app(app(ty_Either, x2), x3)) new_primCmpNat1(Succ(x0), Succ(x1)) new_compare14(x0, x1, app(ty_Maybe, x2)) new_primCmpNat2(x0, Zero) new_compare12(Neg(Succ(x0)), Neg(x1)) new_compare4(x0, x1) new_compare12(Neg(Zero), Neg(Zero)) new_compare14(x0, x1, ty_Ordering) new_compare13(x0, x1) new_compare(x0, x1, app(ty_Maybe, x2)) new_primMulNat0(Succ(x0), Succ(x1)) new_primCmpNat1(Succ(x0), Zero) new_compare(x0, x1, app(app(ty_@2, x2), x3)) new_compare(x0, x1, ty_@0) new_primMulNat0(Zero, Zero) new_primCmpNat0(Succ(x0), x1) new_merge2(:(x0, x1), :(x2, x3), x4) new_compare10(x0, x1) new_merge00(x0, x1, x2, x3, GT, x4) new_compare14(x0, x1, ty_Int) new_primCmpNat1(Zero, Zero) new_primPlusNat1(Succ(x0), x1) new_merge1(x0, x1, [], x2) new_primMulNat0(Zero, Succ(x0)) new_compare12(Pos(Zero), Neg(Succ(x0))) new_compare12(Neg(Zero), Pos(Succ(x0))) new_compare7(x0, x1, x2) new_compare(x0, x1, app(ty_[], x2)) new_sr(Neg(x0), Neg(x1)) new_compare(x0, x1, ty_Int) new_merge2([], :(x0, x1), x2) new_primCmpNat2(x0, Succ(x1)) new_compare14(x0, x1, ty_@0) new_compare14(x0, x1, ty_Char) new_compare14(x0, x1, app(ty_[], x2)) new_compare12(Pos(Zero), Pos(Succ(x0))) new_sr0(x0, x1) new_compare(x0, x1, ty_Ordering) new_compare14(x0, x1, app(app(ty_@2, x2), x3)) new_merge_pairs0(:(x0, :(x1, x2)), x3) new_primPlusNat1(Zero, x0) new_compare(x0, x1, ty_Bool) new_merge_pairs0(:(x0, []), x1) new_merge2(x0, [], x1) new_merge1(x0, [], :(x1, x2), x3) new_compare9(:%(x0, x1), :%(x2, x3), ty_Int) new_primMulNat0(Succ(x0), Zero) new_compare14(x0, x1, ty_Double) new_compare(x0, x1, ty_Double) new_compare(x0, x1, app(app(ty_Either, x2), x3)) new_compare1(x0, x1, x2, x3) new_compare0(x0, x1, x2, x3) new_compare9(:%(x0, x1), :%(x2, x3), ty_Integer) new_compare12(Neg(Zero), Neg(Succ(x0))) new_compare(x0, x1, ty_Char) new_compare12(Pos(Succ(x0)), Pos(x1)) new_compare8(x0, x1) new_primPlusNat0(Succ(x0), Zero) new_compare2(x0, x1, x2, x3, x4) new_compare12(Neg(Succ(x0)), Pos(x1)) new_compare12(Pos(Succ(x0)), Neg(x1)) new_primCmpNat1(Zero, Succ(x0)) new_primPlusNat0(Zero, Succ(x0)) new_compare5(x0, x1) new_compare14(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_compare14(x0, x1, ty_Integer) new_compare6(x0, x1, x2) new_compare(x0, x1, ty_Float) new_sr(Pos(x0), Pos(x1)) new_compare14(x0, x1, ty_Float) new_merge_pairs0([], x0) new_compare(x0, x1, ty_Integer) new_compare14(x0, x1, ty_Bool) new_primPlusNat0(Zero, Zero) new_primPlusNat0(Succ(x0), Succ(x1)) new_compare11(x0, x1) new_merge1(x0, :(x1, x2), :(x3, x4), x5) new_merge00(x0, x1, x2, x3, EQ, x4) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) 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) = 0 POL(LT) = 0 POL(Neg(x_1)) = x_1 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = x_1 POL(Zero) = 0 POL([]) = 0 POL(error(x_1)) = 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)) = 0 POL(new_primCmpNat2(x_1, x_2)) = x_1 + x_2 POL(new_primMulNat0(x_1, x_2)) = 1 + x_1 + x_2 POL(new_primPlusNat0(x_1, x_2)) = 0 POL(new_primPlusNat1(x_1, x_2)) = x_2 POL(new_sr(x_1, x_2)) = 1 + x_1 + x_2 POL(new_sr0(x_1, x_2)) = 1 From the DPs we obtained the following set of size-change graphs: *new_mergesort'(vz501, :(vz5020, :(vz50210, vz50211)), ba) -> new_mergesort'(new_merge1(vz501, vz5020, vz50210, ba), new_merge_pairs0(vz50211, 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(:(vz502110, []), ba) -> :(vz502110, []) new_merge_pairs0(:(vz502110, :(vz5021110, vz5021111)), ba) -> :(new_merge2(vz502110, vz5021110, ba), new_merge_pairs0(vz5021111, ba)) ---------------------------------------- (21) YES ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: new_merge_pairs(:(vz502110, :(vz5021110, vz5021111)), ba) -> new_merge_pairs(vz5021111, ba) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) 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(:(vz502110, :(vz5021110, vz5021111)), ba) -> new_merge_pairs(vz5021111, ba) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (24) YES ---------------------------------------- (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 ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMulNat(Succ(vz5030000), Succ(vz5040100)) -> new_primMulNat(vz5030000, Succ(vz5040100)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) 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_primMulNat(Succ(vz5030000), Succ(vz5040100)) -> new_primMulNat(vz5030000, Succ(vz5040100)) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (30) YES ---------------------------------------- (31) Obligation: Q DP problem: The TRS P consists of the following rules: new_primPlusNat(Succ(vz51600), Succ(vz50401000)) -> new_primPlusNat(vz51600, vz50401000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (32) 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_primPlusNat(Succ(vz51600), Succ(vz50401000)) -> new_primPlusNat(vz51600, vz50401000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (33) YES