/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.hs /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/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) IFR [EQUIVALENT, 0 ms] (2) HASKELL (3) BR [EQUIVALENT, 0 ms] (4) HASKELL (5) COR [EQUIVALENT, 20 ms] (6) HASKELL (7) LetRed [EQUIVALENT, 0 ms] (8) HASKELL (9) Narrow [SOUND, 0 ms] (10) AND (11) QDP (12) TransformationProof [EQUIVALENT, 0 ms] (13) QDP (14) DependencyGraphProof [EQUIVALENT, 0 ms] (15) TRUE (16) QDP (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] (18) YES (19) QDP (20) QDPSizeChangeProof [EQUIVALENT, 0 ms] (21) YES (22) QDP (23) TransformationProof [EQUIVALENT, 0 ms] (24) QDP (25) UsableRulesProof [EQUIVALENT, 0 ms] (26) QDP (27) QReductionProof [EQUIVALENT, 0 ms] (28) QDP (29) QDPSizeChangeProof [EQUIVALENT, 0 ms] (30) YES (31) QDP (32) QDPSizeChangeProof [EQUIVALENT, 0 ms] (33) YES (34) QDP (35) QDPSizeChangeProof [EQUIVALENT, 0 ms] (36) 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; deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy _ _ [] = []; deleteBy eq x (y : ys) = if x `eq` y then ys else y : deleteBy eq x ys; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by _ _ [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubBy' l [] where { nubBy' [] _ = []; nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs | otherwise = y : nubBy' ys (y : xs); }; union :: Eq a => [a] -> [a] -> [a]; union = unionBy (==); unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (1) IFR (EQUIVALENT) If Reductions: The following If expression "if eq x y then ys else y : deleteBy eq x ys" is transformed to "deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x 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; deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy _ _ [] = []; deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x ys; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by _ _ [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubBy' l [] where { nubBy' [] _ = []; nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs | otherwise = y : nubBy' ys (y : xs); }; union :: Eq a => [a] -> [a] -> [a]; union = unionBy (==); unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; } 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; deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy wx wy [] = []; deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x ys; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by wu wv [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubBy' l [] where { nubBy' [] ww = []; nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs | otherwise = y : nubBy' ys (y : xs); }; union :: Eq a => [a] -> [a] -> [a]; union = unionBy (==); unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; } 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; " The following Function with conditions "nubBy' [] ww = []; nubBy' (y : ys) xs|elem_by eq y xsnubBy' ys xs|otherwisey : nubBy' ys (y : xs); " is transformed to "nubBy' [] ww = nubBy'3 [] ww; nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; " "nubBy'1 y ys xs True = nubBy' ys xs; nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; " "nubBy'0 y ys xs True = y : nubBy' ys (y : xs); " "nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); " "nubBy'3 [] ww = []; nubBy'3 xv xw = nubBy'2 xv xw; " ---------------------------------------- (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; deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy wx wy [] = []; deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x ys; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by wu wv [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubBy' l [] where { nubBy' [] ww = nubBy'3 [] ww; nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; nubBy'0 y ys xs True = y : nubBy' ys (y : xs); nubBy'1 y ys xs True = nubBy' ys xs; nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); nubBy'3 [] ww = []; nubBy'3 xv xw = nubBy'2 xv xw; }; union :: Eq a => [a] -> [a] -> [a]; union = unionBy (==); unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (7) LetRed (EQUIVALENT) Let/Where Reductions: The bindings of the following Let/Where expression "nubBy' l [] where { nubBy' [] ww = nubBy'3 [] ww; nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; ; nubBy'0 y ys xs True = y : nubBy' ys (y : xs); ; nubBy'1 y ys xs True = nubBy' ys xs; nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; ; nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); ; nubBy'3 [] ww = []; nubBy'3 xv xw = nubBy'2 xv xw; } " are unpacked to the following functions on top level "nubByNubBy'0 xx y ys xs True = y : nubByNubBy' xx ys (y : xs); " "nubByNubBy'1 xx y ys xs True = nubByNubBy' xx ys xs; nubByNubBy'1 xx y ys xs False = nubByNubBy'0 xx y ys xs otherwise; " "nubByNubBy' xx [] ww = nubByNubBy'3 xx [] ww; nubByNubBy' xx (y : ys) xs = nubByNubBy'2 xx (y : ys) xs; " "nubByNubBy'2 xx (y : ys) xs = nubByNubBy'1 xx y ys xs (elem_by xx y xs); " "nubByNubBy'3 xx [] ww = []; nubByNubBy'3 xx xv xw = nubByNubBy'2 xx xv xw; " ---------------------------------------- (8) 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; deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy wx wy [] = []; deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x ys; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by wu wv [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubByNubBy' eq l []; nubByNubBy' xx [] ww = nubByNubBy'3 xx [] ww; nubByNubBy' xx (y : ys) xs = nubByNubBy'2 xx (y : ys) xs; nubByNubBy'0 xx y ys xs True = y : nubByNubBy' xx ys (y : xs); nubByNubBy'1 xx y ys xs True = nubByNubBy' xx ys xs; nubByNubBy'1 xx y ys xs False = nubByNubBy'0 xx y ys xs otherwise; nubByNubBy'2 xx (y : ys) xs = nubByNubBy'1 xx y ys xs (elem_by xx y xs); nubByNubBy'3 xx [] ww = []; nubByNubBy'3 xx xv xw = nubByNubBy'2 xx xv xw; union :: Eq a => [a] -> [a] -> [a]; union = unionBy (==); unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (9) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="List.union",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="List.union xy3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="List.union xy3 xy4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="List.unionBy (==) xy3 xy4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 6[label="xy3 ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) xy3",fontsize=16,color="burlywood",shape="box"];12637[label="xy3/xy30 : xy31",fontsize=10,color="white",style="solid",shape="box"];6 -> 12637[label="",style="solid", color="burlywood", weight=9]; 12637 -> 7[label="",style="solid", color="burlywood", weight=3]; 12638[label="xy3/[]",fontsize=10,color="white",style="solid",shape="box"];6 -> 12638[label="",style="solid", color="burlywood", weight=9]; 12638 -> 8[label="",style="solid", color="burlywood", weight=3]; 7[label="(xy30 : xy31) ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) (xy30 : xy31)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="[] ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) []",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 9[label="xy30 : xy31 ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) (xy30 : xy31)",fontsize=16,color="green",shape="box"];9 -> 11[label="",style="dashed", color="green", weight=3]; 10[label="foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) []",fontsize=16,color="black",shape="box"];10 -> 12[label="",style="solid", color="black", weight=3]; 11 -> 119[label="",style="dashed", color="red", weight=0]; 11[label="xy31 ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) (xy30 : xy31)",fontsize=16,color="magenta"];11 -> 120[label="",style="dashed", color="magenta", weight=3]; 11 -> 121[label="",style="dashed", color="magenta", weight=3]; 11 -> 122[label="",style="dashed", color="magenta", weight=3]; 11 -> 123[label="",style="dashed", color="magenta", weight=3]; 12[label="List.nubBy (==) xy4",fontsize=16,color="black",shape="triangle"];12 -> 15[label="",style="solid", color="black", weight=3]; 120[label="xy31",fontsize=16,color="green",shape="box"];121[label="xy30",fontsize=16,color="green",shape="box"];122[label="xy31",fontsize=16,color="green",shape="box"];123 -> 12[label="",style="dashed", color="red", weight=0]; 123[label="List.nubBy (==) xy4",fontsize=16,color="magenta"];119[label="xy8 ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="burlywood",shape="triangle"];12639[label="xy8/xy80 : xy81",fontsize=10,color="white",style="solid",shape="box"];119 -> 12639[label="",style="solid", color="burlywood", weight=9]; 12639 -> 148[label="",style="solid", color="burlywood", weight=3]; 12640[label="xy8/[]",fontsize=10,color="white",style="solid",shape="box"];119 -> 12640[label="",style="solid", color="burlywood", weight=9]; 12640 -> 149[label="",style="solid", color="burlywood", weight=3]; 15[label="List.nubByNubBy' (==) xy4 []",fontsize=16,color="burlywood",shape="box"];12641[label="xy4/xy40 : xy41",fontsize=10,color="white",style="solid",shape="box"];15 -> 12641[label="",style="solid", color="burlywood", weight=9]; 12641 -> 18[label="",style="solid", color="burlywood", weight=3]; 12642[label="xy4/[]",fontsize=10,color="white",style="solid",shape="box"];15 -> 12642[label="",style="solid", color="burlywood", weight=9]; 12642 -> 19[label="",style="solid", color="burlywood", weight=3]; 148[label="(xy80 : xy81) ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="black",shape="box"];148 -> 151[label="",style="solid", color="black", weight=3]; 149[label="[] ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="black",shape="box"];149 -> 152[label="",style="solid", color="black", weight=3]; 18[label="List.nubByNubBy' (==) (xy40 : xy41) []",fontsize=16,color="black",shape="box"];18 -> 23[label="",style="solid", color="black", weight=3]; 19[label="List.nubByNubBy' (==) [] []",fontsize=16,color="black",shape="box"];19 -> 24[label="",style="solid", color="black", weight=3]; 151[label="xy80 : xy81 ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="green",shape="box"];151 -> 155[label="",style="dashed", color="green", weight=3]; 152[label="foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="black",shape="box"];152 -> 156[label="",style="solid", color="black", weight=3]; 23[label="List.nubByNubBy'2 (==) (xy40 : xy41) []",fontsize=16,color="black",shape="box"];23 -> 28[label="",style="solid", color="black", weight=3]; 24[label="List.nubByNubBy'3 (==) [] []",fontsize=16,color="black",shape="box"];24 -> 29[label="",style="solid", color="black", weight=3]; 155 -> 119[label="",style="dashed", color="red", weight=0]; 155[label="xy81 ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="magenta"];155 -> 161[label="",style="dashed", color="magenta", weight=3]; 156[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) xy9 xy10) xy11",fontsize=16,color="burlywood",shape="triangle"];12643[label="xy11/xy110 : xy111",fontsize=10,color="white",style="solid",shape="box"];156 -> 12643[label="",style="solid", color="burlywood", weight=9]; 12643 -> 162[label="",style="solid", color="burlywood", weight=3]; 12644[label="xy11/[]",fontsize=10,color="white",style="solid",shape="box"];156 -> 12644[label="",style="solid", color="burlywood", weight=9]; 12644 -> 163[label="",style="solid", color="burlywood", weight=3]; 28[label="List.nubByNubBy'1 (==) xy40 xy41 [] (List.elem_by (==) xy40 [])",fontsize=16,color="black",shape="box"];28 -> 33[label="",style="solid", color="black", weight=3]; 29[label="[]",fontsize=16,color="green",shape="box"];161[label="xy81",fontsize=16,color="green",shape="box"];162[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) xy9 xy10) (xy110 : xy111)",fontsize=16,color="black",shape="box"];162 -> 172[label="",style="solid", color="black", weight=3]; 163[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) xy9 xy10) []",fontsize=16,color="black",shape="box"];163 -> 173[label="",style="solid", color="black", weight=3]; 33[label="List.nubByNubBy'1 (==) xy40 xy41 [] False",fontsize=16,color="black",shape="box"];33 -> 37[label="",style="solid", color="black", weight=3]; 172 -> 156[label="",style="dashed", color="red", weight=0]; 172[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) (flip (List.deleteBy (==)) xy9 xy10) xy110) xy111",fontsize=16,color="magenta"];172 -> 188[label="",style="dashed", color="magenta", weight=3]; 172 -> 189[label="",style="dashed", color="magenta", weight=3]; 172 -> 190[label="",style="dashed", color="magenta", weight=3]; 173[label="flip (List.deleteBy (==)) xy9 xy10",fontsize=16,color="black",shape="triangle"];173 -> 191[label="",style="solid", color="black", weight=3]; 37[label="List.nubByNubBy'0 (==) xy40 xy41 [] otherwise",fontsize=16,color="black",shape="box"];37 -> 42[label="",style="solid", color="black", weight=3]; 188[label="xy110",fontsize=16,color="green",shape="box"];189[label="xy111",fontsize=16,color="green",shape="box"];190 -> 173[label="",style="dashed", color="red", weight=0]; 190[label="flip (List.deleteBy (==)) xy9 xy10",fontsize=16,color="magenta"];191[label="List.deleteBy (==) xy10 xy9",fontsize=16,color="burlywood",shape="triangle"];12645[label="xy9/xy90 : xy91",fontsize=10,color="white",style="solid",shape="box"];191 -> 12645[label="",style="solid", color="burlywood", weight=9]; 12645 -> 206[label="",style="solid", color="burlywood", weight=3]; 12646[label="xy9/[]",fontsize=10,color="white",style="solid",shape="box"];191 -> 12646[label="",style="solid", color="burlywood", weight=9]; 12646 -> 207[label="",style="solid", color="burlywood", weight=3]; 42[label="List.nubByNubBy'0 (==) xy40 xy41 [] True",fontsize=16,color="black",shape="box"];42 -> 49[label="",style="solid", color="black", weight=3]; 206[label="List.deleteBy (==) xy10 (xy90 : xy91)",fontsize=16,color="black",shape="box"];206 -> 224[label="",style="solid", color="black", weight=3]; 207[label="List.deleteBy (==) xy10 []",fontsize=16,color="black",shape="box"];207 -> 225[label="",style="solid", color="black", weight=3]; 49[label="xy40 : List.nubByNubBy' (==) xy41 (xy40 : [])",fontsize=16,color="green",shape="box"];49 -> 54[label="",style="dashed", color="green", weight=3]; 224 -> 246[label="",style="dashed", color="red", weight=0]; 224[label="List.deleteBy0 xy91 xy90 (==) xy10 ((==) xy10 xy90)",fontsize=16,color="magenta"];224 -> 247[label="",style="dashed", color="magenta", weight=3]; 224 -> 248[label="",style="dashed", color="magenta", weight=3]; 224 -> 249[label="",style="dashed", color="magenta", weight=3]; 224 -> 250[label="",style="dashed", color="magenta", weight=3]; 225[label="[]",fontsize=16,color="green",shape="box"];54 -> 10684[label="",style="dashed", color="red", weight=0]; 54[label="List.nubByNubBy' (==) xy41 (xy40 : [])",fontsize=16,color="magenta"];54 -> 10685[label="",style="dashed", color="magenta", weight=3]; 54 -> 10686[label="",style="dashed", color="magenta", weight=3]; 54 -> 10687[label="",style="dashed", color="magenta", weight=3]; 247[label="xy10",fontsize=16,color="green",shape="box"];248[label="xy90",fontsize=16,color="green",shape="box"];249[label="(==) xy10 xy90",fontsize=16,color="blue",shape="box"];12647[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12647[label="",style="solid", color="blue", weight=9]; 12647 -> 251[label="",style="solid", color="blue", weight=3]; 12648[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12648[label="",style="solid", color="blue", weight=9]; 12648 -> 252[label="",style="solid", color="blue", weight=3]; 12649[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12649[label="",style="solid", color="blue", weight=9]; 12649 -> 253[label="",style="solid", color="blue", weight=3]; 12650[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12650[label="",style="solid", color="blue", weight=9]; 12650 -> 254[label="",style="solid", color="blue", weight=3]; 12651[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12651[label="",style="solid", color="blue", weight=9]; 12651 -> 255[label="",style="solid", color="blue", weight=3]; 12652[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12652[label="",style="solid", color="blue", weight=9]; 12652 -> 256[label="",style="solid", color="blue", weight=3]; 12653[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12653[label="",style="solid", color="blue", weight=9]; 12653 -> 257[label="",style="solid", color="blue", weight=3]; 12654[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12654[label="",style="solid", color="blue", weight=9]; 12654 -> 258[label="",style="solid", color="blue", weight=3]; 12655[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12655[label="",style="solid", color="blue", weight=9]; 12655 -> 259[label="",style="solid", color="blue", weight=3]; 12656[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12656[label="",style="solid", color="blue", weight=9]; 12656 -> 260[label="",style="solid", color="blue", weight=3]; 12657[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12657[label="",style="solid", color="blue", weight=9]; 12657 -> 261[label="",style="solid", color="blue", weight=3]; 12658[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12658[label="",style="solid", color="blue", weight=9]; 12658 -> 262[label="",style="solid", color="blue", weight=3]; 12659[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12659[label="",style="solid", color="blue", weight=9]; 12659 -> 263[label="",style="solid", color="blue", weight=3]; 12660[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];249 -> 12660[label="",style="solid", color="blue", weight=9]; 12660 -> 264[label="",style="solid", color="blue", weight=3]; 250[label="xy91",fontsize=16,color="green",shape="box"];246[label="List.deleteBy0 xy17 xy18 (==) xy19 xy20",fontsize=16,color="burlywood",shape="triangle"];12661[label="xy20/False",fontsize=10,color="white",style="solid",shape="box"];246 -> 12661[label="",style="solid", color="burlywood", weight=9]; 12661 -> 265[label="",style="solid", color="burlywood", weight=3]; 12662[label="xy20/True",fontsize=10,color="white",style="solid",shape="box"];246 -> 12662[label="",style="solid", color="burlywood", weight=9]; 12662 -> 266[label="",style="solid", color="burlywood", weight=3]; 10685[label="[]",fontsize=16,color="green",shape="box"];10686[label="xy41",fontsize=16,color="green",shape="box"];10687[label="xy40",fontsize=16,color="green",shape="box"];10684[label="List.nubByNubBy' (==) xy827 (xy828 : xy829)",fontsize=16,color="burlywood",shape="triangle"];12663[label="xy827/xy8270 : xy8271",fontsize=10,color="white",style="solid",shape="box"];10684 -> 12663[label="",style="solid", color="burlywood", weight=9]; 12663 -> 12137[label="",style="solid", color="burlywood", weight=3]; 12664[label="xy827/[]",fontsize=10,color="white",style="solid",shape="box"];10684 -> 12664[label="",style="solid", color="burlywood", weight=9]; 12664 -> 12138[label="",style="solid", color="burlywood", weight=3]; 251[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];251 -> 291[label="",style="solid", color="black", weight=3]; 252[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];252 -> 292[label="",style="solid", color="black", weight=3]; 253[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];253 -> 293[label="",style="solid", color="black", weight=3]; 254[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];254 -> 294[label="",style="solid", color="black", weight=3]; 255[label="(==) xy10 xy90",fontsize=16,color="burlywood",shape="triangle"];12665[label="xy10/xy100 :% xy101",fontsize=10,color="white",style="solid",shape="box"];255 -> 12665[label="",style="solid", color="burlywood", weight=9]; 12665 -> 295[label="",style="solid", color="burlywood", weight=3]; 256[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];256 -> 296[label="",style="solid", color="black", weight=3]; 257[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];257 -> 297[label="",style="solid", color="black", weight=3]; 258[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];258 -> 298[label="",style="solid", color="black", weight=3]; 259[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];259 -> 299[label="",style="solid", color="black", weight=3]; 260[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];260 -> 300[label="",style="solid", color="black", weight=3]; 261[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];261 -> 301[label="",style="solid", color="black", weight=3]; 262[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];262 -> 302[label="",style="solid", color="black", weight=3]; 263[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];263 -> 303[label="",style="solid", color="black", weight=3]; 264[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];264 -> 304[label="",style="solid", color="black", weight=3]; 265[label="List.deleteBy0 xy17 xy18 (==) xy19 False",fontsize=16,color="black",shape="box"];265 -> 305[label="",style="solid", color="black", weight=3]; 266[label="List.deleteBy0 xy17 xy18 (==) xy19 True",fontsize=16,color="black",shape="box"];266 -> 306[label="",style="solid", color="black", weight=3]; 12137[label="List.nubByNubBy' (==) (xy8270 : xy8271) (xy828 : xy829)",fontsize=16,color="black",shape="box"];12137 -> 12139[label="",style="solid", color="black", weight=3]; 12138[label="List.nubByNubBy' (==) [] (xy828 : xy829)",fontsize=16,color="black",shape="box"];12138 -> 12140[label="",style="solid", color="black", weight=3]; 291[label="error []",fontsize=16,color="red",shape="box"];292[label="error []",fontsize=16,color="red",shape="box"];293[label="error []",fontsize=16,color="red",shape="box"];294[label="error []",fontsize=16,color="red",shape="box"];295[label="(==) xy100 :% xy101 xy90",fontsize=16,color="burlywood",shape="box"];12666[label="xy90/xy900 :% xy901",fontsize=10,color="white",style="solid",shape="box"];295 -> 12666[label="",style="solid", color="burlywood", weight=9]; 12666 -> 309[label="",style="solid", color="burlywood", weight=3]; 296[label="error []",fontsize=16,color="red",shape="box"];297[label="primEqInt xy10 xy90",fontsize=16,color="burlywood",shape="box"];12667[label="xy10/Pos xy100",fontsize=10,color="white",style="solid",shape="box"];297 -> 12667[label="",style="solid", color="burlywood", weight=9]; 12667 -> 310[label="",style="solid", color="burlywood", weight=3]; 12668[label="xy10/Neg xy100",fontsize=10,color="white",style="solid",shape="box"];297 -> 12668[label="",style="solid", color="burlywood", weight=9]; 12668 -> 311[label="",style="solid", color="burlywood", weight=3]; 298[label="error []",fontsize=16,color="red",shape="box"];299[label="error []",fontsize=16,color="red",shape="box"];300[label="error []",fontsize=16,color="red",shape="box"];301[label="error []",fontsize=16,color="red",shape="box"];302[label="error []",fontsize=16,color="red",shape="box"];303[label="error []",fontsize=16,color="red",shape="box"];304[label="error []",fontsize=16,color="red",shape="box"];305[label="xy18 : List.deleteBy (==) xy19 xy17",fontsize=16,color="green",shape="box"];305 -> 312[label="",style="dashed", color="green", weight=3]; 306[label="xy17",fontsize=16,color="green",shape="box"];12139[label="List.nubByNubBy'2 (==) (xy8270 : xy8271) (xy828 : xy829)",fontsize=16,color="black",shape="box"];12139 -> 12141[label="",style="solid", color="black", weight=3]; 12140[label="List.nubByNubBy'3 (==) [] (xy828 : xy829)",fontsize=16,color="black",shape="box"];12140 -> 12142[label="",style="solid", color="black", weight=3]; 309[label="(==) xy100 :% xy101 xy900 :% xy901",fontsize=16,color="black",shape="box"];309 -> 315[label="",style="solid", color="black", weight=3]; 310[label="primEqInt (Pos xy100) xy90",fontsize=16,color="burlywood",shape="box"];12669[label="xy100/Succ xy1000",fontsize=10,color="white",style="solid",shape="box"];310 -> 12669[label="",style="solid", color="burlywood", weight=9]; 12669 -> 316[label="",style="solid", color="burlywood", weight=3]; 12670[label="xy100/Zero",fontsize=10,color="white",style="solid",shape="box"];310 -> 12670[label="",style="solid", color="burlywood", weight=9]; 12670 -> 317[label="",style="solid", color="burlywood", weight=3]; 311[label="primEqInt (Neg xy100) xy90",fontsize=16,color="burlywood",shape="box"];12671[label="xy100/Succ xy1000",fontsize=10,color="white",style="solid",shape="box"];311 -> 12671[label="",style="solid", color="burlywood", weight=9]; 12671 -> 318[label="",style="solid", color="burlywood", weight=3]; 12672[label="xy100/Zero",fontsize=10,color="white",style="solid",shape="box"];311 -> 12672[label="",style="solid", color="burlywood", weight=9]; 12672 -> 319[label="",style="solid", color="burlywood", weight=3]; 312 -> 191[label="",style="dashed", color="red", weight=0]; 312[label="List.deleteBy (==) xy19 xy17",fontsize=16,color="magenta"];312 -> 320[label="",style="dashed", color="magenta", weight=3]; 312 -> 321[label="",style="dashed", color="magenta", weight=3]; 12141[label="List.nubByNubBy'1 (==) xy8270 xy8271 (xy828 : xy829) (List.elem_by (==) xy8270 (xy828 : xy829))",fontsize=16,color="black",shape="box"];12141 -> 12143[label="",style="solid", color="black", weight=3]; 12142[label="[]",fontsize=16,color="green",shape="box"];315 -> 324[label="",style="dashed", color="red", weight=0]; 315[label="xy100 == xy900 && xy101 == xy901",fontsize=16,color="magenta"];315 -> 325[label="",style="dashed", color="magenta", weight=3]; 315 -> 326[label="",style="dashed", color="magenta", weight=3]; 315 -> 327[label="",style="dashed", color="magenta", weight=3]; 316[label="primEqInt (Pos (Succ xy1000)) xy90",fontsize=16,color="burlywood",shape="box"];12673[label="xy90/Pos xy900",fontsize=10,color="white",style="solid",shape="box"];316 -> 12673[label="",style="solid", color="burlywood", weight=9]; 12673 -> 328[label="",style="solid", color="burlywood", weight=3]; 12674[label="xy90/Neg xy900",fontsize=10,color="white",style="solid",shape="box"];316 -> 12674[label="",style="solid", color="burlywood", weight=9]; 12674 -> 329[label="",style="solid", color="burlywood", weight=3]; 317[label="primEqInt (Pos Zero) xy90",fontsize=16,color="burlywood",shape="box"];12675[label="xy90/Pos xy900",fontsize=10,color="white",style="solid",shape="box"];317 -> 12675[label="",style="solid", color="burlywood", weight=9]; 12675 -> 330[label="",style="solid", color="burlywood", weight=3]; 12676[label="xy90/Neg xy900",fontsize=10,color="white",style="solid",shape="box"];317 -> 12676[label="",style="solid", color="burlywood", weight=9]; 12676 -> 331[label="",style="solid", color="burlywood", weight=3]; 318[label="primEqInt (Neg (Succ xy1000)) xy90",fontsize=16,color="burlywood",shape="box"];12677[label="xy90/Pos xy900",fontsize=10,color="white",style="solid",shape="box"];318 -> 12677[label="",style="solid", color="burlywood", weight=9]; 12677 -> 332[label="",style="solid", color="burlywood", weight=3]; 12678[label="xy90/Neg xy900",fontsize=10,color="white",style="solid",shape="box"];318 -> 12678[label="",style="solid", color="burlywood", weight=9]; 12678 -> 333[label="",style="solid", color="burlywood", weight=3]; 319[label="primEqInt (Neg Zero) xy90",fontsize=16,color="burlywood",shape="box"];12679[label="xy90/Pos xy900",fontsize=10,color="white",style="solid",shape="box"];319 -> 12679[label="",style="solid", color="burlywood", weight=9]; 12679 -> 334[label="",style="solid", color="burlywood", weight=3]; 12680[label="xy90/Neg xy900",fontsize=10,color="white",style="solid",shape="box"];319 -> 12680[label="",style="solid", color="burlywood", weight=9]; 12680 -> 335[label="",style="solid", color="burlywood", weight=3]; 320[label="xy19",fontsize=16,color="green",shape="box"];321[label="xy17",fontsize=16,color="green",shape="box"];12143 -> 12519[label="",style="dashed", color="red", weight=0]; 12143[label="List.nubByNubBy'1 (==) xy8270 xy8271 (xy828 : xy829) ((==) xy828 xy8270 || List.elem_by (==) xy8270 xy829)",fontsize=16,color="magenta"];12143 -> 12520[label="",style="dashed", color="magenta", weight=3]; 12143 -> 12521[label="",style="dashed", color="magenta", weight=3]; 12143 -> 12522[label="",style="dashed", color="magenta", weight=3]; 12143 -> 12523[label="",style="dashed", color="magenta", weight=3]; 12143 -> 12524[label="",style="dashed", color="magenta", weight=3]; 12143 -> 12525[label="",style="dashed", color="magenta", weight=3]; 325[label="xy901",fontsize=16,color="green",shape="box"];326[label="xy101",fontsize=16,color="green",shape="box"];327[label="xy100 == xy900",fontsize=16,color="blue",shape="box"];12681[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];327 -> 12681[label="",style="solid", color="blue", weight=9]; 12681 -> 336[label="",style="solid", color="blue", weight=3]; 12682[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];327 -> 12682[label="",style="solid", color="blue", weight=9]; 12682 -> 337[label="",style="solid", color="blue", weight=3]; 324[label="xy28 && xy29 == xy30",fontsize=16,color="burlywood",shape="triangle"];12683[label="xy28/False",fontsize=10,color="white",style="solid",shape="box"];324 -> 12683[label="",style="solid", color="burlywood", weight=9]; 12683 -> 338[label="",style="solid", color="burlywood", weight=3]; 12684[label="xy28/True",fontsize=10,color="white",style="solid",shape="box"];324 -> 12684[label="",style="solid", color="burlywood", weight=9]; 12684 -> 339[label="",style="solid", color="burlywood", weight=3]; 328[label="primEqInt (Pos (Succ xy1000)) (Pos xy900)",fontsize=16,color="burlywood",shape="box"];12685[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];328 -> 12685[label="",style="solid", color="burlywood", weight=9]; 12685 -> 342[label="",style="solid", color="burlywood", weight=3]; 12686[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];328 -> 12686[label="",style="solid", color="burlywood", weight=9]; 12686 -> 343[label="",style="solid", color="burlywood", weight=3]; 329[label="primEqInt (Pos (Succ xy1000)) (Neg xy900)",fontsize=16,color="black",shape="box"];329 -> 344[label="",style="solid", color="black", weight=3]; 330[label="primEqInt (Pos Zero) (Pos xy900)",fontsize=16,color="burlywood",shape="box"];12687[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];330 -> 12687[label="",style="solid", color="burlywood", weight=9]; 12687 -> 345[label="",style="solid", color="burlywood", weight=3]; 12688[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];330 -> 12688[label="",style="solid", color="burlywood", weight=9]; 12688 -> 346[label="",style="solid", color="burlywood", weight=3]; 331[label="primEqInt (Pos Zero) (Neg xy900)",fontsize=16,color="burlywood",shape="box"];12689[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];331 -> 12689[label="",style="solid", color="burlywood", weight=9]; 12689 -> 347[label="",style="solid", color="burlywood", weight=3]; 12690[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];331 -> 12690[label="",style="solid", color="burlywood", weight=9]; 12690 -> 348[label="",style="solid", color="burlywood", weight=3]; 332[label="primEqInt (Neg (Succ xy1000)) (Pos xy900)",fontsize=16,color="black",shape="box"];332 -> 349[label="",style="solid", color="black", weight=3]; 333[label="primEqInt (Neg (Succ xy1000)) (Neg xy900)",fontsize=16,color="burlywood",shape="box"];12691[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];333 -> 12691[label="",style="solid", color="burlywood", weight=9]; 12691 -> 350[label="",style="solid", color="burlywood", weight=3]; 12692[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];333 -> 12692[label="",style="solid", color="burlywood", weight=9]; 12692 -> 351[label="",style="solid", color="burlywood", weight=3]; 334[label="primEqInt (Neg Zero) (Pos xy900)",fontsize=16,color="burlywood",shape="box"];12693[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];334 -> 12693[label="",style="solid", color="burlywood", weight=9]; 12693 -> 352[label="",style="solid", color="burlywood", weight=3]; 12694[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];334 -> 12694[label="",style="solid", color="burlywood", weight=9]; 12694 -> 353[label="",style="solid", color="burlywood", weight=3]; 335[label="primEqInt (Neg Zero) (Neg xy900)",fontsize=16,color="burlywood",shape="box"];12695[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];335 -> 12695[label="",style="solid", color="burlywood", weight=9]; 12695 -> 354[label="",style="solid", color="burlywood", weight=3]; 12696[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];335 -> 12696[label="",style="solid", color="burlywood", weight=9]; 12696 -> 355[label="",style="solid", color="burlywood", weight=3]; 12520[label="xy829",fontsize=16,color="green",shape="box"];12521[label="xy8271",fontsize=16,color="green",shape="box"];12522[label="xy8270",fontsize=16,color="green",shape="box"];12523[label="xy828",fontsize=16,color="green",shape="box"];12524[label="(==) xy828 xy8270",fontsize=16,color="blue",shape="box"];12697[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12697[label="",style="solid", color="blue", weight=9]; 12697 -> 12532[label="",style="solid", color="blue", weight=3]; 12698[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12698[label="",style="solid", color="blue", weight=9]; 12698 -> 12533[label="",style="solid", color="blue", weight=3]; 12699[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12699[label="",style="solid", color="blue", weight=9]; 12699 -> 12534[label="",style="solid", color="blue", weight=3]; 12700[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12700[label="",style="solid", color="blue", weight=9]; 12700 -> 12535[label="",style="solid", color="blue", weight=3]; 12701[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12701[label="",style="solid", color="blue", weight=9]; 12701 -> 12536[label="",style="solid", color="blue", weight=3]; 12702[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12702[label="",style="solid", color="blue", weight=9]; 12702 -> 12537[label="",style="solid", color="blue", weight=3]; 12703[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12703[label="",style="solid", color="blue", weight=9]; 12703 -> 12538[label="",style="solid", color="blue", weight=3]; 12704[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12704[label="",style="solid", color="blue", weight=9]; 12704 -> 12539[label="",style="solid", color="blue", weight=3]; 12705[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12705[label="",style="solid", color="blue", weight=9]; 12705 -> 12540[label="",style="solid", color="blue", weight=3]; 12706[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12706[label="",style="solid", color="blue", weight=9]; 12706 -> 12541[label="",style="solid", color="blue", weight=3]; 12707[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12707[label="",style="solid", color="blue", weight=9]; 12707 -> 12542[label="",style="solid", color="blue", weight=3]; 12708[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12708[label="",style="solid", color="blue", weight=9]; 12708 -> 12543[label="",style="solid", color="blue", weight=3]; 12709[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12709[label="",style="solid", color="blue", weight=9]; 12709 -> 12544[label="",style="solid", color="blue", weight=3]; 12710[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];12524 -> 12710[label="",style="solid", color="blue", weight=9]; 12710 -> 12545[label="",style="solid", color="blue", weight=3]; 12525[label="xy829",fontsize=16,color="green",shape="box"];12519[label="List.nubByNubBy'1 (==) xy919 xy920 (xy921 : xy922) (xy923 || List.elem_by (==) xy919 xy924)",fontsize=16,color="burlywood",shape="triangle"];12711[label="xy923/False",fontsize=10,color="white",style="solid",shape="box"];12519 -> 12711[label="",style="solid", color="burlywood", weight=9]; 12711 -> 12546[label="",style="solid", color="burlywood", weight=3]; 12712[label="xy923/True",fontsize=10,color="white",style="solid",shape="box"];12519 -> 12712[label="",style="solid", color="burlywood", weight=9]; 12712 -> 12547[label="",style="solid", color="burlywood", weight=3]; 336 -> 257[label="",style="dashed", color="red", weight=0]; 336[label="xy100 == xy900",fontsize=16,color="magenta"];336 -> 356[label="",style="dashed", color="magenta", weight=3]; 336 -> 357[label="",style="dashed", color="magenta", weight=3]; 337 -> 258[label="",style="dashed", color="red", weight=0]; 337[label="xy100 == xy900",fontsize=16,color="magenta"];337 -> 358[label="",style="dashed", color="magenta", weight=3]; 337 -> 359[label="",style="dashed", color="magenta", weight=3]; 338[label="False && xy29 == xy30",fontsize=16,color="black",shape="box"];338 -> 360[label="",style="solid", color="black", weight=3]; 339[label="True && xy29 == xy30",fontsize=16,color="black",shape="box"];339 -> 361[label="",style="solid", color="black", weight=3]; 342[label="primEqInt (Pos (Succ xy1000)) (Pos (Succ xy9000))",fontsize=16,color="black",shape="box"];342 -> 377[label="",style="solid", color="black", weight=3]; 343[label="primEqInt (Pos (Succ xy1000)) (Pos Zero)",fontsize=16,color="black",shape="box"];343 -> 378[label="",style="solid", color="black", weight=3]; 344[label="False",fontsize=16,color="green",shape="box"];345[label="primEqInt (Pos Zero) (Pos (Succ xy9000))",fontsize=16,color="black",shape="box"];345 -> 379[label="",style="solid", color="black", weight=3]; 346[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];346 -> 380[label="",style="solid", color="black", weight=3]; 347[label="primEqInt (Pos Zero) (Neg (Succ xy9000))",fontsize=16,color="black",shape="box"];347 -> 381[label="",style="solid", color="black", weight=3]; 348[label="primEqInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];348 -> 382[label="",style="solid", color="black", weight=3]; 349[label="False",fontsize=16,color="green",shape="box"];350[label="primEqInt (Neg (Succ xy1000)) (Neg (Succ xy9000))",fontsize=16,color="black",shape="box"];350 -> 383[label="",style="solid", color="black", weight=3]; 351[label="primEqInt (Neg (Succ xy1000)) (Neg Zero)",fontsize=16,color="black",shape="box"];351 -> 384[label="",style="solid", color="black", weight=3]; 352[label="primEqInt (Neg Zero) (Pos (Succ xy9000))",fontsize=16,color="black",shape="box"];352 -> 385[label="",style="solid", color="black", weight=3]; 353[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];353 -> 386[label="",style="solid", color="black", weight=3]; 354[label="primEqInt (Neg Zero) (Neg (Succ xy9000))",fontsize=16,color="black",shape="box"];354 -> 387[label="",style="solid", color="black", weight=3]; 355[label="primEqInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];355 -> 388[label="",style="solid", color="black", weight=3]; 12532 -> 251[label="",style="dashed", color="red", weight=0]; 12532[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12532 -> 12548[label="",style="dashed", color="magenta", weight=3]; 12532 -> 12549[label="",style="dashed", color="magenta", weight=3]; 12533 -> 252[label="",style="dashed", color="red", weight=0]; 12533[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12533 -> 12550[label="",style="dashed", color="magenta", weight=3]; 12533 -> 12551[label="",style="dashed", color="magenta", weight=3]; 12534 -> 253[label="",style="dashed", color="red", weight=0]; 12534[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12534 -> 12552[label="",style="dashed", color="magenta", weight=3]; 12534 -> 12553[label="",style="dashed", color="magenta", weight=3]; 12535 -> 254[label="",style="dashed", color="red", weight=0]; 12535[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12535 -> 12554[label="",style="dashed", color="magenta", weight=3]; 12535 -> 12555[label="",style="dashed", color="magenta", weight=3]; 12536 -> 255[label="",style="dashed", color="red", weight=0]; 12536[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12536 -> 12556[label="",style="dashed", color="magenta", weight=3]; 12536 -> 12557[label="",style="dashed", color="magenta", weight=3]; 12537 -> 256[label="",style="dashed", color="red", weight=0]; 12537[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12537 -> 12558[label="",style="dashed", color="magenta", weight=3]; 12537 -> 12559[label="",style="dashed", color="magenta", weight=3]; 12538 -> 257[label="",style="dashed", color="red", weight=0]; 12538[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12538 -> 12560[label="",style="dashed", color="magenta", weight=3]; 12538 -> 12561[label="",style="dashed", color="magenta", weight=3]; 12539 -> 258[label="",style="dashed", color="red", weight=0]; 12539[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12539 -> 12562[label="",style="dashed", color="magenta", weight=3]; 12539 -> 12563[label="",style="dashed", color="magenta", weight=3]; 12540 -> 259[label="",style="dashed", color="red", weight=0]; 12540[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12540 -> 12564[label="",style="dashed", color="magenta", weight=3]; 12540 -> 12565[label="",style="dashed", color="magenta", weight=3]; 12541 -> 260[label="",style="dashed", color="red", weight=0]; 12541[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12541 -> 12566[label="",style="dashed", color="magenta", weight=3]; 12541 -> 12567[label="",style="dashed", color="magenta", weight=3]; 12542 -> 261[label="",style="dashed", color="red", weight=0]; 12542[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12542 -> 12568[label="",style="dashed", color="magenta", weight=3]; 12542 -> 12569[label="",style="dashed", color="magenta", weight=3]; 12543 -> 262[label="",style="dashed", color="red", weight=0]; 12543[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12543 -> 12570[label="",style="dashed", color="magenta", weight=3]; 12543 -> 12571[label="",style="dashed", color="magenta", weight=3]; 12544 -> 263[label="",style="dashed", color="red", weight=0]; 12544[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12544 -> 12572[label="",style="dashed", color="magenta", weight=3]; 12544 -> 12573[label="",style="dashed", color="magenta", weight=3]; 12545 -> 264[label="",style="dashed", color="red", weight=0]; 12545[label="(==) xy828 xy8270",fontsize=16,color="magenta"];12545 -> 12574[label="",style="dashed", color="magenta", weight=3]; 12545 -> 12575[label="",style="dashed", color="magenta", weight=3]; 12546[label="List.nubByNubBy'1 (==) xy919 xy920 (xy921 : xy922) (False || List.elem_by (==) xy919 xy924)",fontsize=16,color="black",shape="box"];12546 -> 12576[label="",style="solid", color="black", weight=3]; 12547[label="List.nubByNubBy'1 (==) xy919 xy920 (xy921 : xy922) (True || List.elem_by (==) xy919 xy924)",fontsize=16,color="black",shape="box"];12547 -> 12577[label="",style="solid", color="black", weight=3]; 356[label="xy100",fontsize=16,color="green",shape="box"];357[label="xy900",fontsize=16,color="green",shape="box"];358[label="xy100",fontsize=16,color="green",shape="box"];359[label="xy900",fontsize=16,color="green",shape="box"];360[label="False",fontsize=16,color="green",shape="box"];361[label="xy29 == xy30",fontsize=16,color="blue",shape="box"];12713[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12713[label="",style="solid", color="blue", weight=9]; 12713 -> 389[label="",style="solid", color="blue", weight=3]; 12714[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12714[label="",style="solid", color="blue", weight=9]; 12714 -> 390[label="",style="solid", color="blue", weight=3]; 12715[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12715[label="",style="solid", color="blue", weight=9]; 12715 -> 391[label="",style="solid", color="blue", weight=3]; 12716[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12716[label="",style="solid", color="blue", weight=9]; 12716 -> 392[label="",style="solid", color="blue", weight=3]; 12717[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12717[label="",style="solid", color="blue", weight=9]; 12717 -> 393[label="",style="solid", color="blue", weight=3]; 12718[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12718[label="",style="solid", color="blue", weight=9]; 12718 -> 394[label="",style="solid", color="blue", weight=3]; 12719[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12719[label="",style="solid", color="blue", weight=9]; 12719 -> 395[label="",style="solid", color="blue", weight=3]; 12720[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12720[label="",style="solid", color="blue", weight=9]; 12720 -> 396[label="",style="solid", color="blue", weight=3]; 12721[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12721[label="",style="solid", color="blue", weight=9]; 12721 -> 397[label="",style="solid", color="blue", weight=3]; 12722[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12722[label="",style="solid", color="blue", weight=9]; 12722 -> 398[label="",style="solid", color="blue", weight=3]; 12723[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12723[label="",style="solid", color="blue", weight=9]; 12723 -> 399[label="",style="solid", color="blue", weight=3]; 12724[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12724[label="",style="solid", color="blue", weight=9]; 12724 -> 400[label="",style="solid", color="blue", weight=3]; 12725[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12725[label="",style="solid", color="blue", weight=9]; 12725 -> 401[label="",style="solid", color="blue", weight=3]; 12726[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];361 -> 12726[label="",style="solid", color="blue", weight=9]; 12726 -> 402[label="",style="solid", color="blue", weight=3]; 377[label="primEqNat xy1000 xy9000",fontsize=16,color="burlywood",shape="triangle"];12727[label="xy1000/Succ xy10000",fontsize=10,color="white",style="solid",shape="box"];377 -> 12727[label="",style="solid", color="burlywood", weight=9]; 12727 -> 405[label="",style="solid", color="burlywood", weight=3]; 12728[label="xy1000/Zero",fontsize=10,color="white",style="solid",shape="box"];377 -> 12728[label="",style="solid", color="burlywood", weight=9]; 12728 -> 406[label="",style="solid", color="burlywood", weight=3]; 378[label="False",fontsize=16,color="green",shape="box"];379[label="False",fontsize=16,color="green",shape="box"];380[label="True",fontsize=16,color="green",shape="box"];381[label="False",fontsize=16,color="green",shape="box"];382[label="True",fontsize=16,color="green",shape="box"];383 -> 377[label="",style="dashed", color="red", weight=0]; 383[label="primEqNat xy1000 xy9000",fontsize=16,color="magenta"];383 -> 407[label="",style="dashed", color="magenta", weight=3]; 383 -> 408[label="",style="dashed", color="magenta", weight=3]; 384[label="False",fontsize=16,color="green",shape="box"];385[label="False",fontsize=16,color="green",shape="box"];386[label="True",fontsize=16,color="green",shape="box"];387[label="False",fontsize=16,color="green",shape="box"];388[label="True",fontsize=16,color="green",shape="box"];12548[label="xy828",fontsize=16,color="green",shape="box"];12549[label="xy8270",fontsize=16,color="green",shape="box"];12550[label="xy828",fontsize=16,color="green",shape="box"];12551[label="xy8270",fontsize=16,color="green",shape="box"];12552[label="xy828",fontsize=16,color="green",shape="box"];12553[label="xy8270",fontsize=16,color="green",shape="box"];12554[label="xy828",fontsize=16,color="green",shape="box"];12555[label="xy8270",fontsize=16,color="green",shape="box"];12556[label="xy828",fontsize=16,color="green",shape="box"];12557[label="xy8270",fontsize=16,color="green",shape="box"];12558[label="xy828",fontsize=16,color="green",shape="box"];12559[label="xy8270",fontsize=16,color="green",shape="box"];12560[label="xy828",fontsize=16,color="green",shape="box"];12561[label="xy8270",fontsize=16,color="green",shape="box"];12562[label="xy828",fontsize=16,color="green",shape="box"];12563[label="xy8270",fontsize=16,color="green",shape="box"];12564[label="xy828",fontsize=16,color="green",shape="box"];12565[label="xy8270",fontsize=16,color="green",shape="box"];12566[label="xy828",fontsize=16,color="green",shape="box"];12567[label="xy8270",fontsize=16,color="green",shape="box"];12568[label="xy828",fontsize=16,color="green",shape="box"];12569[label="xy8270",fontsize=16,color="green",shape="box"];12570[label="xy828",fontsize=16,color="green",shape="box"];12571[label="xy8270",fontsize=16,color="green",shape="box"];12572[label="xy828",fontsize=16,color="green",shape="box"];12573[label="xy8270",fontsize=16,color="green",shape="box"];12574[label="xy828",fontsize=16,color="green",shape="box"];12575[label="xy8270",fontsize=16,color="green",shape="box"];12576[label="List.nubByNubBy'1 (==) xy919 xy920 (xy921 : xy922) (List.elem_by (==) xy919 xy924)",fontsize=16,color="burlywood",shape="box"];12729[label="xy924/xy9240 : xy9241",fontsize=10,color="white",style="solid",shape="box"];12576 -> 12729[label="",style="solid", color="burlywood", weight=9]; 12729 -> 12578[label="",style="solid", color="burlywood", weight=3]; 12730[label="xy924/[]",fontsize=10,color="white",style="solid",shape="box"];12576 -> 12730[label="",style="solid", color="burlywood", weight=9]; 12730 -> 12579[label="",style="solid", color="burlywood", weight=3]; 12577[label="List.nubByNubBy'1 (==) xy919 xy920 (xy921 : xy922) True",fontsize=16,color="black",shape="box"];12577 -> 12580[label="",style="solid", color="black", weight=3]; 389 -> 251[label="",style="dashed", color="red", weight=0]; 389[label="xy29 == xy30",fontsize=16,color="magenta"];389 -> 409[label="",style="dashed", color="magenta", weight=3]; 389 -> 410[label="",style="dashed", color="magenta", weight=3]; 390 -> 252[label="",style="dashed", color="red", weight=0]; 390[label="xy29 == xy30",fontsize=16,color="magenta"];390 -> 411[label="",style="dashed", color="magenta", weight=3]; 390 -> 412[label="",style="dashed", color="magenta", weight=3]; 391 -> 253[label="",style="dashed", color="red", weight=0]; 391[label="xy29 == xy30",fontsize=16,color="magenta"];391 -> 413[label="",style="dashed", color="magenta", weight=3]; 391 -> 414[label="",style="dashed", color="magenta", weight=3]; 392 -> 254[label="",style="dashed", color="red", weight=0]; 392[label="xy29 == xy30",fontsize=16,color="magenta"];392 -> 415[label="",style="dashed", color="magenta", weight=3]; 392 -> 416[label="",style="dashed", color="magenta", weight=3]; 393 -> 255[label="",style="dashed", color="red", weight=0]; 393[label="xy29 == xy30",fontsize=16,color="magenta"];393 -> 417[label="",style="dashed", color="magenta", weight=3]; 393 -> 418[label="",style="dashed", color="magenta", weight=3]; 394 -> 256[label="",style="dashed", color="red", weight=0]; 394[label="xy29 == xy30",fontsize=16,color="magenta"];394 -> 419[label="",style="dashed", color="magenta", weight=3]; 394 -> 420[label="",style="dashed", color="magenta", weight=3]; 395 -> 257[label="",style="dashed", color="red", weight=0]; 395[label="xy29 == xy30",fontsize=16,color="magenta"];395 -> 421[label="",style="dashed", color="magenta", weight=3]; 395 -> 422[label="",style="dashed", color="magenta", weight=3]; 396 -> 258[label="",style="dashed", color="red", weight=0]; 396[label="xy29 == xy30",fontsize=16,color="magenta"];396 -> 423[label="",style="dashed", color="magenta", weight=3]; 396 -> 424[label="",style="dashed", color="magenta", weight=3]; 397 -> 259[label="",style="dashed", color="red", weight=0]; 397[label="xy29 == xy30",fontsize=16,color="magenta"];397 -> 425[label="",style="dashed", color="magenta", weight=3]; 397 -> 426[label="",style="dashed", color="magenta", weight=3]; 398 -> 260[label="",style="dashed", color="red", weight=0]; 398[label="xy29 == xy30",fontsize=16,color="magenta"];398 -> 427[label="",style="dashed", color="magenta", weight=3]; 398 -> 428[label="",style="dashed", color="magenta", weight=3]; 399 -> 261[label="",style="dashed", color="red", weight=0]; 399[label="xy29 == xy30",fontsize=16,color="magenta"];399 -> 429[label="",style="dashed", color="magenta", weight=3]; 399 -> 430[label="",style="dashed", color="magenta", weight=3]; 400 -> 262[label="",style="dashed", color="red", weight=0]; 400[label="xy29 == xy30",fontsize=16,color="magenta"];400 -> 431[label="",style="dashed", color="magenta", weight=3]; 400 -> 432[label="",style="dashed", color="magenta", weight=3]; 401 -> 263[label="",style="dashed", color="red", weight=0]; 401[label="xy29 == xy30",fontsize=16,color="magenta"];401 -> 433[label="",style="dashed", color="magenta", weight=3]; 401 -> 434[label="",style="dashed", color="magenta", weight=3]; 402 -> 264[label="",style="dashed", color="red", weight=0]; 402[label="xy29 == xy30",fontsize=16,color="magenta"];402 -> 435[label="",style="dashed", color="magenta", weight=3]; 402 -> 436[label="",style="dashed", color="magenta", weight=3]; 405[label="primEqNat (Succ xy10000) xy9000",fontsize=16,color="burlywood",shape="box"];12731[label="xy9000/Succ xy90000",fontsize=10,color="white",style="solid",shape="box"];405 -> 12731[label="",style="solid", color="burlywood", weight=9]; 12731 -> 439[label="",style="solid", color="burlywood", weight=3]; 12732[label="xy9000/Zero",fontsize=10,color="white",style="solid",shape="box"];405 -> 12732[label="",style="solid", color="burlywood", weight=9]; 12732 -> 440[label="",style="solid", color="burlywood", weight=3]; 406[label="primEqNat Zero xy9000",fontsize=16,color="burlywood",shape="box"];12733[label="xy9000/Succ xy90000",fontsize=10,color="white",style="solid",shape="box"];406 -> 12733[label="",style="solid", color="burlywood", weight=9]; 12733 -> 441[label="",style="solid", color="burlywood", weight=3]; 12734[label="xy9000/Zero",fontsize=10,color="white",style="solid",shape="box"];406 -> 12734[label="",style="solid", color="burlywood", weight=9]; 12734 -> 442[label="",style="solid", color="burlywood", weight=3]; 407[label="xy9000",fontsize=16,color="green",shape="box"];408[label="xy1000",fontsize=16,color="green",shape="box"];12578[label="List.nubByNubBy'1 (==) xy919 xy920 (xy921 : xy922) (List.elem_by (==) xy919 (xy9240 : xy9241))",fontsize=16,color="black",shape="box"];12578 -> 12581[label="",style="solid", color="black", weight=3]; 12579[label="List.nubByNubBy'1 (==) xy919 xy920 (xy921 : xy922) (List.elem_by (==) xy919 [])",fontsize=16,color="black",shape="box"];12579 -> 12582[label="",style="solid", color="black", weight=3]; 12580 -> 10684[label="",style="dashed", color="red", weight=0]; 12580[label="List.nubByNubBy' (==) xy920 (xy921 : xy922)",fontsize=16,color="magenta"];12580 -> 12583[label="",style="dashed", color="magenta", weight=3]; 12580 -> 12584[label="",style="dashed", color="magenta", weight=3]; 12580 -> 12585[label="",style="dashed", color="magenta", weight=3]; 409[label="xy29",fontsize=16,color="green",shape="box"];410[label="xy30",fontsize=16,color="green",shape="box"];411[label="xy29",fontsize=16,color="green",shape="box"];412[label="xy30",fontsize=16,color="green",shape="box"];413[label="xy29",fontsize=16,color="green",shape="box"];414[label="xy30",fontsize=16,color="green",shape="box"];415[label="xy29",fontsize=16,color="green",shape="box"];416[label="xy30",fontsize=16,color="green",shape="box"];417[label="xy29",fontsize=16,color="green",shape="box"];418[label="xy30",fontsize=16,color="green",shape="box"];419[label="xy29",fontsize=16,color="green",shape="box"];420[label="xy30",fontsize=16,color="green",shape="box"];421[label="xy29",fontsize=16,color="green",shape="box"];422[label="xy30",fontsize=16,color="green",shape="box"];423[label="xy29",fontsize=16,color="green",shape="box"];424[label="xy30",fontsize=16,color="green",shape="box"];425[label="xy29",fontsize=16,color="green",shape="box"];426[label="xy30",fontsize=16,color="green",shape="box"];427[label="xy29",fontsize=16,color="green",shape="box"];428[label="xy30",fontsize=16,color="green",shape="box"];429[label="xy29",fontsize=16,color="green",shape="box"];430[label="xy30",fontsize=16,color="green",shape="box"];431[label="xy29",fontsize=16,color="green",shape="box"];432[label="xy30",fontsize=16,color="green",shape="box"];433[label="xy29",fontsize=16,color="green",shape="box"];434[label="xy30",fontsize=16,color="green",shape="box"];435[label="xy29",fontsize=16,color="green",shape="box"];436[label="xy30",fontsize=16,color="green",shape="box"];439[label="primEqNat (Succ xy10000) (Succ xy90000)",fontsize=16,color="black",shape="box"];439 -> 445[label="",style="solid", color="black", weight=3]; 440[label="primEqNat (Succ xy10000) Zero",fontsize=16,color="black",shape="box"];440 -> 446[label="",style="solid", color="black", weight=3]; 441[label="primEqNat Zero (Succ xy90000)",fontsize=16,color="black",shape="box"];441 -> 447[label="",style="solid", color="black", weight=3]; 442[label="primEqNat Zero Zero",fontsize=16,color="black",shape="box"];442 -> 448[label="",style="solid", color="black", weight=3]; 12581 -> 12519[label="",style="dashed", color="red", weight=0]; 12581[label="List.nubByNubBy'1 (==) xy919 xy920 (xy921 : xy922) ((==) xy9240 xy919 || List.elem_by (==) xy919 xy9241)",fontsize=16,color="magenta"];12581 -> 12586[label="",style="dashed", color="magenta", weight=3]; 12581 -> 12587[label="",style="dashed", color="magenta", weight=3]; 12582[label="List.nubByNubBy'1 (==) xy919 xy920 (xy921 : xy922) False",fontsize=16,color="black",shape="box"];12582 -> 12588[label="",style="solid", color="black", weight=3]; 12583[label="xy922",fontsize=16,color="green",shape="box"];12584[label="xy920",fontsize=16,color="green",shape="box"];12585[label="xy921",fontsize=16,color="green",shape="box"];445 -> 377[label="",style="dashed", color="red", weight=0]; 445[label="primEqNat xy10000 xy90000",fontsize=16,color="magenta"];445 -> 466[label="",style="dashed", color="magenta", weight=3]; 445 -> 467[label="",style="dashed", color="magenta", weight=3]; 446[label="False",fontsize=16,color="green",shape="box"];447[label="False",fontsize=16,color="green",shape="box"];448[label="True",fontsize=16,color="green",shape="box"];12586[label="(==) xy9240 xy919",fontsize=16,color="blue",shape="box"];12735[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12735[label="",style="solid", color="blue", weight=9]; 12735 -> 12589[label="",style="solid", color="blue", weight=3]; 12736[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12736[label="",style="solid", color="blue", weight=9]; 12736 -> 12590[label="",style="solid", color="blue", weight=3]; 12737[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12737[label="",style="solid", color="blue", weight=9]; 12737 -> 12591[label="",style="solid", color="blue", weight=3]; 12738[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12738[label="",style="solid", color="blue", weight=9]; 12738 -> 12592[label="",style="solid", color="blue", weight=3]; 12739[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12739[label="",style="solid", color="blue", weight=9]; 12739 -> 12593[label="",style="solid", color="blue", weight=3]; 12740[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12740[label="",style="solid", color="blue", weight=9]; 12740 -> 12594[label="",style="solid", color="blue", weight=3]; 12741[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12741[label="",style="solid", color="blue", weight=9]; 12741 -> 12595[label="",style="solid", color="blue", weight=3]; 12742[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12742[label="",style="solid", color="blue", weight=9]; 12742 -> 12596[label="",style="solid", color="blue", weight=3]; 12743[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12743[label="",style="solid", color="blue", weight=9]; 12743 -> 12597[label="",style="solid", color="blue", weight=3]; 12744[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12744[label="",style="solid", color="blue", weight=9]; 12744 -> 12598[label="",style="solid", color="blue", weight=3]; 12745[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12745[label="",style="solid", color="blue", weight=9]; 12745 -> 12599[label="",style="solid", color="blue", weight=3]; 12746[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12746[label="",style="solid", color="blue", weight=9]; 12746 -> 12600[label="",style="solid", color="blue", weight=3]; 12747[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12747[label="",style="solid", color="blue", weight=9]; 12747 -> 12601[label="",style="solid", color="blue", weight=3]; 12748[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];12586 -> 12748[label="",style="solid", color="blue", weight=9]; 12748 -> 12602[label="",style="solid", color="blue", weight=3]; 12587[label="xy9241",fontsize=16,color="green",shape="box"];12588[label="List.nubByNubBy'0 (==) xy919 xy920 (xy921 : xy922) otherwise",fontsize=16,color="black",shape="box"];12588 -> 12603[label="",style="solid", color="black", weight=3]; 466[label="xy90000",fontsize=16,color="green",shape="box"];467[label="xy10000",fontsize=16,color="green",shape="box"];12589 -> 251[label="",style="dashed", color="red", weight=0]; 12589[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12589 -> 12604[label="",style="dashed", color="magenta", weight=3]; 12589 -> 12605[label="",style="dashed", color="magenta", weight=3]; 12590 -> 252[label="",style="dashed", color="red", weight=0]; 12590[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12590 -> 12606[label="",style="dashed", color="magenta", weight=3]; 12590 -> 12607[label="",style="dashed", color="magenta", weight=3]; 12591 -> 253[label="",style="dashed", color="red", weight=0]; 12591[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12591 -> 12608[label="",style="dashed", color="magenta", weight=3]; 12591 -> 12609[label="",style="dashed", color="magenta", weight=3]; 12592 -> 254[label="",style="dashed", color="red", weight=0]; 12592[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12592 -> 12610[label="",style="dashed", color="magenta", weight=3]; 12592 -> 12611[label="",style="dashed", color="magenta", weight=3]; 12593 -> 255[label="",style="dashed", color="red", weight=0]; 12593[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12593 -> 12612[label="",style="dashed", color="magenta", weight=3]; 12593 -> 12613[label="",style="dashed", color="magenta", weight=3]; 12594 -> 256[label="",style="dashed", color="red", weight=0]; 12594[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12594 -> 12614[label="",style="dashed", color="magenta", weight=3]; 12594 -> 12615[label="",style="dashed", color="magenta", weight=3]; 12595 -> 257[label="",style="dashed", color="red", weight=0]; 12595[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12595 -> 12616[label="",style="dashed", color="magenta", weight=3]; 12595 -> 12617[label="",style="dashed", color="magenta", weight=3]; 12596 -> 258[label="",style="dashed", color="red", weight=0]; 12596[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12596 -> 12618[label="",style="dashed", color="magenta", weight=3]; 12596 -> 12619[label="",style="dashed", color="magenta", weight=3]; 12597 -> 259[label="",style="dashed", color="red", weight=0]; 12597[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12597 -> 12620[label="",style="dashed", color="magenta", weight=3]; 12597 -> 12621[label="",style="dashed", color="magenta", weight=3]; 12598 -> 260[label="",style="dashed", color="red", weight=0]; 12598[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12598 -> 12622[label="",style="dashed", color="magenta", weight=3]; 12598 -> 12623[label="",style="dashed", color="magenta", weight=3]; 12599 -> 261[label="",style="dashed", color="red", weight=0]; 12599[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12599 -> 12624[label="",style="dashed", color="magenta", weight=3]; 12599 -> 12625[label="",style="dashed", color="magenta", weight=3]; 12600 -> 262[label="",style="dashed", color="red", weight=0]; 12600[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12600 -> 12626[label="",style="dashed", color="magenta", weight=3]; 12600 -> 12627[label="",style="dashed", color="magenta", weight=3]; 12601 -> 263[label="",style="dashed", color="red", weight=0]; 12601[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12601 -> 12628[label="",style="dashed", color="magenta", weight=3]; 12601 -> 12629[label="",style="dashed", color="magenta", weight=3]; 12602 -> 264[label="",style="dashed", color="red", weight=0]; 12602[label="(==) xy9240 xy919",fontsize=16,color="magenta"];12602 -> 12630[label="",style="dashed", color="magenta", weight=3]; 12602 -> 12631[label="",style="dashed", color="magenta", weight=3]; 12603[label="List.nubByNubBy'0 (==) xy919 xy920 (xy921 : xy922) True",fontsize=16,color="black",shape="box"];12603 -> 12632[label="",style="solid", color="black", weight=3]; 12604[label="xy9240",fontsize=16,color="green",shape="box"];12605[label="xy919",fontsize=16,color="green",shape="box"];12606[label="xy9240",fontsize=16,color="green",shape="box"];12607[label="xy919",fontsize=16,color="green",shape="box"];12608[label="xy9240",fontsize=16,color="green",shape="box"];12609[label="xy919",fontsize=16,color="green",shape="box"];12610[label="xy9240",fontsize=16,color="green",shape="box"];12611[label="xy919",fontsize=16,color="green",shape="box"];12612[label="xy9240",fontsize=16,color="green",shape="box"];12613[label="xy919",fontsize=16,color="green",shape="box"];12614[label="xy9240",fontsize=16,color="green",shape="box"];12615[label="xy919",fontsize=16,color="green",shape="box"];12616[label="xy9240",fontsize=16,color="green",shape="box"];12617[label="xy919",fontsize=16,color="green",shape="box"];12618[label="xy9240",fontsize=16,color="green",shape="box"];12619[label="xy919",fontsize=16,color="green",shape="box"];12620[label="xy9240",fontsize=16,color="green",shape="box"];12621[label="xy919",fontsize=16,color="green",shape="box"];12622[label="xy9240",fontsize=16,color="green",shape="box"];12623[label="xy919",fontsize=16,color="green",shape="box"];12624[label="xy9240",fontsize=16,color="green",shape="box"];12625[label="xy919",fontsize=16,color="green",shape="box"];12626[label="xy9240",fontsize=16,color="green",shape="box"];12627[label="xy919",fontsize=16,color="green",shape="box"];12628[label="xy9240",fontsize=16,color="green",shape="box"];12629[label="xy919",fontsize=16,color="green",shape="box"];12630[label="xy9240",fontsize=16,color="green",shape="box"];12631[label="xy919",fontsize=16,color="green",shape="box"];12632[label="xy919 : List.nubByNubBy' (==) xy920 (xy919 : xy921 : xy922)",fontsize=16,color="green",shape="box"];12632 -> 12633[label="",style="dashed", color="green", weight=3]; 12633 -> 10684[label="",style="dashed", color="red", weight=0]; 12633[label="List.nubByNubBy' (==) xy920 (xy919 : xy921 : xy922)",fontsize=16,color="magenta"];12633 -> 12634[label="",style="dashed", color="magenta", weight=3]; 12633 -> 12635[label="",style="dashed", color="magenta", weight=3]; 12633 -> 12636[label="",style="dashed", color="magenta", weight=3]; 12634[label="xy921 : xy922",fontsize=16,color="green",shape="box"];12635[label="xy920",fontsize=16,color="green",shape="box"];12636[label="xy919",fontsize=16,color="green",shape="box"];} ---------------------------------------- (10) Complex Obligation (AND) ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: new_esEs(:%(xy100, xy101), :%(xy900, xy901), ba) -> new_asAs(new_esEs0(xy100, xy900, ba), xy101, xy901, ba) new_asAs(True, xy29, xy30, app(ty_Ratio, bb)) -> new_esEs(xy29, xy30, bb) The TRS R consists of the following rules: new_esEs1(Pos(Zero), Neg(Zero)) -> True new_esEs1(Neg(Zero), Pos(Zero)) -> True new_esEs1(Neg(Zero), Neg(Zero)) -> True new_esEs1(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_primEqNat0(Zero, Zero) -> True new_esEs1(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_primEqNat0(Succ(xy10000), Zero) -> False new_primEqNat0(Zero, Succ(xy90000)) -> False new_esEs1(Pos(Zero), Neg(Succ(xy9000))) -> False new_esEs1(Neg(Zero), Pos(Succ(xy9000))) -> False new_esEs1(Neg(Succ(xy1000)), Neg(Zero)) -> False new_esEs1(Neg(Zero), Neg(Succ(xy9000))) -> False new_esEs2(xy10, xy90) -> error([]) new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) new_esEs0(xy100, xy900, ty_Int) -> new_esEs1(xy100, xy900) new_esEs1(Pos(Succ(xy1000)), Neg(xy900)) -> False new_esEs1(Neg(Succ(xy1000)), Pos(xy900)) -> False new_esEs0(xy100, xy900, ty_Integer) -> new_esEs2(xy100, xy900) new_esEs1(Pos(Succ(xy1000)), Pos(Zero)) -> False new_esEs1(Pos(Zero), Pos(Succ(xy9000))) -> False new_esEs1(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_esEs1(Neg(Succ(x0)), Neg(Zero)) new_esEs1(Neg(Zero), Neg(Succ(x0))) new_esEs1(Pos(Zero), Neg(Zero)) new_esEs1(Neg(Zero), Pos(Zero)) new_esEs1(Pos(Succ(x0)), Neg(x1)) new_esEs1(Neg(Succ(x0)), Pos(x1)) new_primEqNat0(Succ(x0), Succ(x1)) new_esEs0(x0, x1, ty_Int) new_esEs1(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqNat0(Zero, Succ(x0)) new_esEs1(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Zero) new_esEs1(Pos(Succ(x0)), Pos(Succ(x1))) new_esEs1(Pos(Zero), Neg(Succ(x0))) new_esEs1(Neg(Zero), Pos(Succ(x0))) new_esEs1(Neg(Zero), Neg(Zero)) new_esEs2(x0, x1) new_esEs0(x0, x1, ty_Integer) new_esEs1(Pos(Zero), Pos(Zero)) new_esEs1(Pos(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_esEs(:%(xy100, xy101), :%(xy900, xy901), ba) -> new_asAs(new_esEs0(xy100, xy900, ba), xy101, xy901, ba) at position [0] we obtained the following new rules [LPAR04]: (new_esEs(:%(x0, y1), :%(x1, y3), ty_Int) -> new_asAs(new_esEs1(x0, x1), y1, y3, ty_Int),new_esEs(:%(x0, y1), :%(x1, y3), ty_Int) -> new_asAs(new_esEs1(x0, x1), y1, y3, ty_Int)) (new_esEs(:%(x0, y1), :%(x1, y3), ty_Integer) -> new_asAs(new_esEs2(x0, x1), y1, y3, ty_Integer),new_esEs(:%(x0, y1), :%(x1, y3), ty_Integer) -> new_asAs(new_esEs2(x0, x1), y1, y3, ty_Integer)) ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: new_asAs(True, xy29, xy30, app(ty_Ratio, bb)) -> new_esEs(xy29, xy30, bb) new_esEs(:%(x0, y1), :%(x1, y3), ty_Int) -> new_asAs(new_esEs1(x0, x1), y1, y3, ty_Int) new_esEs(:%(x0, y1), :%(x1, y3), ty_Integer) -> new_asAs(new_esEs2(x0, x1), y1, y3, ty_Integer) The TRS R consists of the following rules: new_esEs1(Pos(Zero), Neg(Zero)) -> True new_esEs1(Neg(Zero), Pos(Zero)) -> True new_esEs1(Neg(Zero), Neg(Zero)) -> True new_esEs1(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_primEqNat0(Zero, Zero) -> True new_esEs1(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_primEqNat0(Succ(xy10000), Zero) -> False new_primEqNat0(Zero, Succ(xy90000)) -> False new_esEs1(Pos(Zero), Neg(Succ(xy9000))) -> False new_esEs1(Neg(Zero), Pos(Succ(xy9000))) -> False new_esEs1(Neg(Succ(xy1000)), Neg(Zero)) -> False new_esEs1(Neg(Zero), Neg(Succ(xy9000))) -> False new_esEs2(xy10, xy90) -> error([]) new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) new_esEs0(xy100, xy900, ty_Int) -> new_esEs1(xy100, xy900) new_esEs1(Pos(Succ(xy1000)), Neg(xy900)) -> False new_esEs1(Neg(Succ(xy1000)), Pos(xy900)) -> False new_esEs0(xy100, xy900, ty_Integer) -> new_esEs2(xy100, xy900) new_esEs1(Pos(Succ(xy1000)), Pos(Zero)) -> False new_esEs1(Pos(Zero), Pos(Succ(xy9000))) -> False new_esEs1(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_esEs1(Neg(Succ(x0)), Neg(Zero)) new_esEs1(Neg(Zero), Neg(Succ(x0))) new_esEs1(Pos(Zero), Neg(Zero)) new_esEs1(Neg(Zero), Pos(Zero)) new_esEs1(Pos(Succ(x0)), Neg(x1)) new_esEs1(Neg(Succ(x0)), Pos(x1)) new_primEqNat0(Succ(x0), Succ(x1)) new_esEs0(x0, x1, ty_Int) new_esEs1(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqNat0(Zero, Succ(x0)) new_esEs1(Pos(Succ(x0)), Pos(Zero)) new_primEqNat0(Succ(x0), Zero) new_esEs1(Pos(Succ(x0)), Pos(Succ(x1))) new_esEs1(Pos(Zero), Neg(Succ(x0))) new_esEs1(Neg(Zero), Pos(Succ(x0))) new_esEs1(Neg(Zero), Neg(Zero)) new_esEs2(x0, x1) new_esEs0(x0, x1, ty_Integer) new_esEs1(Pos(Zero), Pos(Zero)) new_esEs1(Pos(Zero), Pos(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (15) TRUE ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy0(xy17, xy18, xy19, False, ba) -> new_deleteBy(xy19, xy17, ba) new_deleteBy(xy10, :(xy90, xy91), bb) -> new_deleteBy0(xy91, xy90, xy10, new_esEs17(xy10, xy90, bb), bb) The TRS R consists of the following rules: new_esEs1(Neg(Zero), Neg(Zero)) -> True new_asAs0(True, xy29, xy30, app(app(ty_Either, cf), cg)) -> new_esEs10(xy29, xy30, cf, cg) new_esEs5(xy10, xy90) -> error([]) new_esEs13(xy10, xy90) -> error([]) new_asAs0(True, xy29, xy30, ty_Float) -> new_esEs13(xy29, xy30) new_asAs0(False, xy29, xy30, ce) -> False new_esEs6(:%(xy100, xy101), :%(xy900, xy901), bc) -> new_asAs0(new_esEs0(xy100, xy900, bc), xy101, xy901, bc) new_esEs17(xy10, xy90, ty_Float) -> new_esEs13(xy10, xy90) new_asAs0(True, xy29, xy30, ty_Int) -> new_esEs1(xy29, xy30) new_asAs0(True, xy29, xy30, app(app(ty_@2, dd), de)) -> new_esEs14(xy29, xy30, dd, de) new_esEs10(xy10, xy90, bd, be) -> error([]) new_esEs9(xy10, xy90) -> error([]) new_esEs1(Pos(Zero), Pos(Zero)) -> True new_asAs0(True, xy29, xy30, app(ty_[], db)) -> new_esEs7(xy29, xy30, db) new_esEs12(xy10, xy90) -> error([]) new_asAs0(True, xy29, xy30, ty_Integer) -> new_esEs2(xy29, xy30) new_primEqNat0(Succ(xy10000), Zero) -> False new_primEqNat0(Zero, Succ(xy90000)) -> False new_esEs1(Pos(Zero), Neg(Succ(xy9000))) -> False new_esEs1(Neg(Zero), Pos(Succ(xy9000))) -> False new_esEs1(Neg(Succ(xy1000)), Neg(Zero)) -> False new_esEs1(Neg(Zero), Neg(Succ(xy9000))) -> False new_asAs0(True, xy29, xy30, ty_@0) -> new_esEs15(xy29, xy30) new_esEs17(xy10, xy90, app(ty_Ratio, bc)) -> new_esEs6(xy10, xy90, bc) new_esEs17(xy10, xy90, app(app(ty_@2, bh), ca)) -> new_esEs14(xy10, xy90, bh, ca) new_esEs17(xy10, xy90, ty_Int) -> new_esEs1(xy10, xy90) new_esEs8(xy10, xy90) -> error([]) new_esEs17(xy10, xy90, app(ty_[], bg)) -> new_esEs7(xy10, xy90, bg) new_esEs17(xy10, xy90, ty_Bool) -> new_esEs5(xy10, xy90) new_esEs7(xy10, xy90, bg) -> error([]) new_esEs17(xy10, xy90, ty_Integer) -> new_esEs2(xy10, xy90) new_esEs1(Pos(Zero), Neg(Zero)) -> True new_esEs1(Neg(Zero), Pos(Zero)) -> True new_asAs0(True, xy29, xy30, ty_Char) -> new_esEs9(xy29, xy30) new_asAs0(True, xy29, xy30, ty_Bool) -> new_esEs5(xy29, xy30) new_asAs0(True, xy29, xy30, app(ty_Ratio, dc)) -> new_esEs6(xy29, xy30, dc) new_esEs1(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_primEqNat0(Zero, Zero) -> True new_esEs1(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_esEs11(xy10, xy90, bf) -> error([]) new_esEs17(xy10, xy90, ty_@0) -> new_esEs15(xy10, xy90) new_esEs17(xy10, xy90, app(app(app(ty_@3, cb), cc), cd)) -> new_esEs16(xy10, xy90, cb, cc, cd) new_esEs15(xy10, xy90) -> error([]) new_esEs17(xy10, xy90, ty_Char) -> new_esEs9(xy10, xy90) new_asAs0(True, xy29, xy30, ty_Double) -> new_esEs8(xy29, xy30) new_esEs1(Pos(Succ(xy1000)), Pos(Zero)) -> False new_esEs1(Pos(Zero), Pos(Succ(xy9000))) -> False new_esEs17(xy10, xy90, ty_Double) -> new_esEs8(xy10, xy90) new_esEs16(xy10, xy90, cb, cc, cd) -> error([]) new_esEs17(xy10, xy90, app(ty_Maybe, bf)) -> new_esEs11(xy10, xy90, bf) new_asAs0(True, xy29, xy30, ty_Ordering) -> new_esEs12(xy29, xy30) new_esEs2(xy10, xy90) -> error([]) new_esEs14(xy10, xy90, bh, ca) -> error([]) new_esEs17(xy10, xy90, app(app(ty_Either, bd), be)) -> new_esEs10(xy10, xy90, bd, be) new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) new_asAs0(True, xy29, xy30, app(ty_Maybe, da)) -> new_esEs11(xy29, xy30, da) new_esEs0(xy100, xy900, ty_Int) -> new_esEs1(xy100, xy900) new_asAs0(True, xy29, xy30, app(app(app(ty_@3, df), dg), dh)) -> new_esEs16(xy29, xy30, df, dg, dh) new_esEs1(Pos(Succ(xy1000)), Neg(xy900)) -> False new_esEs1(Neg(Succ(xy1000)), Pos(xy900)) -> False new_esEs17(xy10, xy90, ty_Ordering) -> new_esEs12(xy10, xy90) new_esEs0(xy100, xy900, ty_Integer) -> new_esEs2(xy100, xy900) The set Q consists of the following terms: new_asAs0(True, x0, x1, app(app(ty_@2, x2), x3)) new_primEqNat0(Zero, Zero) new_esEs17(x0, x1, ty_Char) new_asAs0(True, x0, x1, ty_Ordering) new_esEs17(x0, x1, ty_Float) new_esEs7(x0, x1, x2) new_esEs17(x0, x1, ty_Double) new_primEqNat0(Succ(x0), Zero) new_esEs17(x0, x1, ty_@0) new_esEs17(x0, x1, ty_Bool) new_asAs0(True, x0, x1, app(ty_Ratio, x2)) new_esEs2(x0, x1) new_asAs0(False, x0, x1, x2) new_esEs15(x0, x1) new_asAs0(True, x0, x1, ty_Double) new_esEs1(Neg(Succ(x0)), Neg(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_asAs0(True, x0, x1, ty_Int) new_asAs0(True, x0, x1, ty_Char) new_esEs17(x0, x1, ty_Ordering) new_asAs0(True, x0, x1, app(ty_Maybe, x2)) new_asAs0(True, x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs1(Pos(Zero), Neg(Succ(x0))) new_esEs1(Neg(Zero), Pos(Succ(x0))) new_esEs1(Pos(Succ(x0)), Pos(Succ(x1))) new_esEs17(x0, x1, ty_Int) new_asAs0(True, x0, x1, app(app(ty_Either, x2), x3)) new_esEs13(x0, x1) new_esEs8(x0, x1) new_esEs1(Neg(Zero), Neg(Succ(x0))) new_esEs1(Pos(Zero), Neg(Zero)) new_esEs1(Neg(Zero), Pos(Zero)) new_esEs1(Pos(Succ(x0)), Neg(x1)) new_esEs1(Neg(Succ(x0)), Pos(x1)) new_esEs17(x0, x1, app(ty_Maybe, x2)) new_esEs5(x0, x1) new_esEs1(Neg(Succ(x0)), Neg(Succ(x1))) new_esEs1(Pos(Succ(x0)), Pos(Zero)) new_asAs0(True, x0, x1, app(ty_[], x2)) new_asAs0(True, x0, x1, ty_Integer) new_esEs17(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs1(Neg(Zero), Neg(Zero)) new_asAs0(True, x0, x1, ty_@0) new_esEs6(:%(x0, x1), :%(x2, x3), x4) new_esEs16(x0, x1, x2, x3, x4) new_esEs0(x0, x1, ty_Integer) new_esEs1(Pos(Zero), Pos(Zero)) new_esEs1(Pos(Zero), Pos(Succ(x0))) new_esEs14(x0, x1, x2, x3) new_esEs17(x0, x1, app(ty_Ratio, x2)) new_esEs17(x0, x1, ty_Integer) new_esEs11(x0, x1, x2) new_esEs17(x0, x1, app(app(ty_Either, x2), x3)) new_esEs9(x0, x1) new_esEs0(x0, x1, ty_Int) new_primEqNat0(Zero, Succ(x0)) new_asAs0(True, x0, x1, ty_Float) new_esEs12(x0, x1) new_esEs17(x0, x1, app(app(ty_@2, x2), x3)) new_esEs17(x0, x1, app(ty_[], x2)) new_esEs10(x0, x1, x2, x3) new_asAs0(True, x0, x1, ty_Bool) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) 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_deleteBy(xy10, :(xy90, xy91), bb) -> new_deleteBy0(xy91, xy90, xy10, new_esEs17(xy10, xy90, bb), bb) The graph contains the following edges 2 > 1, 2 > 2, 1 >= 3, 3 >= 5 *new_deleteBy0(xy17, xy18, xy19, False, ba) -> new_deleteBy(xy19, xy17, ba) The graph contains the following edges 3 >= 1, 1 >= 2, 5 >= 3 ---------------------------------------- (18) YES ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: new_psPs(:(xy80, xy81), xy9, xy10, xy11, ba) -> new_psPs(xy81, xy9, xy10, xy11, ba) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) 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_psPs(:(xy80, xy81), xy9, xy10, xy11, ba) -> new_psPs(xy81, xy9, xy10, xy11, ba) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5 ---------------------------------------- (21) YES ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_flip(xy9, xy10, ba), xy110, xy111, ba) The TRS R consists of the following rules: new_esEs1(Neg(Zero), Neg(Zero)) -> True new_asAs0(True, xy29, xy30, app(app(ty_Either, ce), cf)) -> new_esEs10(xy29, xy30, ce, cf) new_esEs5(xy10, xy90) -> error([]) new_esEs13(xy10, xy90) -> error([]) new_asAs0(True, xy29, xy30, ty_Float) -> new_esEs13(xy29, xy30) new_asAs0(False, xy29, xy30, cd) -> False new_esEs6(:%(xy100, xy101), :%(xy900, xy901), bf) -> new_asAs0(new_esEs0(xy100, xy900, bf), xy101, xy901, bf) new_esEs17(xy10, xy90, ty_Float) -> new_esEs13(xy10, xy90) new_asAs0(True, xy29, xy30, ty_Int) -> new_esEs1(xy29, xy30) new_asAs0(True, xy29, xy30, app(app(ty_@2, dc), dd)) -> new_esEs14(xy29, xy30, dc, dd) new_esEs10(xy10, xy90, bb, bc) -> error([]) new_esEs9(xy10, xy90) -> error([]) new_esEs1(Pos(Zero), Pos(Zero)) -> True new_asAs0(True, xy29, xy30, app(ty_[], da)) -> new_esEs7(xy29, xy30, da) new_esEs12(xy10, xy90) -> error([]) new_deleteBy00(xy17, xy18, xy19, True, dh) -> xy17 new_asAs0(True, xy29, xy30, ty_Integer) -> new_esEs2(xy29, xy30) new_primEqNat0(Succ(xy10000), Zero) -> False new_primEqNat0(Zero, Succ(xy90000)) -> False new_esEs1(Pos(Zero), Neg(Succ(xy9000))) -> False new_esEs1(Neg(Zero), Pos(Succ(xy9000))) -> False new_esEs1(Neg(Succ(xy1000)), Neg(Zero)) -> False new_esEs1(Neg(Zero), Neg(Succ(xy9000))) -> False new_asAs0(True, xy29, xy30, ty_@0) -> new_esEs15(xy29, xy30) new_esEs17(xy10, xy90, app(ty_Ratio, bf)) -> new_esEs6(xy10, xy90, bf) new_esEs17(xy10, xy90, app(app(ty_@2, bg), bh)) -> new_esEs14(xy10, xy90, bg, bh) new_esEs17(xy10, xy90, ty_Int) -> new_esEs1(xy10, xy90) new_esEs8(xy10, xy90) -> error([]) new_esEs17(xy10, xy90, app(ty_[], be)) -> new_esEs7(xy10, xy90, be) new_esEs17(xy10, xy90, ty_Bool) -> new_esEs5(xy10, xy90) new_esEs7(xy10, xy90, be) -> error([]) new_deleteBy00(xy17, xy18, xy19, False, dh) -> :(xy18, new_deleteBy1(xy19, xy17, dh)) new_esEs17(xy10, xy90, ty_Integer) -> new_esEs2(xy10, xy90) new_esEs1(Pos(Zero), Neg(Zero)) -> True new_esEs1(Neg(Zero), Pos(Zero)) -> True new_asAs0(True, xy29, xy30, ty_Char) -> new_esEs9(xy29, xy30) new_deleteBy1(xy10, :(xy90, xy91), ba) -> new_deleteBy00(xy91, xy90, xy10, new_esEs17(xy10, xy90, ba), ba) new_asAs0(True, xy29, xy30, ty_Bool) -> new_esEs5(xy29, xy30) new_asAs0(True, xy29, xy30, app(ty_Ratio, db)) -> new_esEs6(xy29, xy30, db) new_esEs1(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_primEqNat0(Zero, Zero) -> True new_esEs1(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_esEs11(xy10, xy90, bd) -> error([]) new_esEs17(xy10, xy90, ty_@0) -> new_esEs15(xy10, xy90) new_esEs17(xy10, xy90, app(app(app(ty_@3, ca), cb), cc)) -> new_esEs16(xy10, xy90, ca, cb, cc) new_esEs15(xy10, xy90) -> error([]) new_esEs17(xy10, xy90, ty_Char) -> new_esEs9(xy10, xy90) new_asAs0(True, xy29, xy30, ty_Double) -> new_esEs8(xy29, xy30) new_esEs1(Pos(Succ(xy1000)), Pos(Zero)) -> False new_esEs1(Pos(Zero), Pos(Succ(xy9000))) -> False new_esEs17(xy10, xy90, ty_Double) -> new_esEs8(xy10, xy90) new_esEs16(xy10, xy90, ca, cb, cc) -> error([]) new_esEs17(xy10, xy90, app(ty_Maybe, bd)) -> new_esEs11(xy10, xy90, bd) new_asAs0(True, xy29, xy30, ty_Ordering) -> new_esEs12(xy29, xy30) new_esEs2(xy10, xy90) -> error([]) new_esEs14(xy10, xy90, bg, bh) -> error([]) new_esEs17(xy10, xy90, app(app(ty_Either, bb), bc)) -> new_esEs10(xy10, xy90, bb, bc) new_flip(xy9, xy10, ba) -> new_deleteBy1(xy10, xy9, ba) new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) new_asAs0(True, xy29, xy30, app(ty_Maybe, cg)) -> new_esEs11(xy29, xy30, cg) new_esEs0(xy100, xy900, ty_Int) -> new_esEs1(xy100, xy900) new_asAs0(True, xy29, xy30, app(app(app(ty_@3, de), df), dg)) -> new_esEs16(xy29, xy30, de, df, dg) new_deleteBy1(xy10, [], ba) -> [] new_esEs1(Pos(Succ(xy1000)), Neg(xy900)) -> False new_esEs1(Neg(Succ(xy1000)), Pos(xy900)) -> False new_esEs17(xy10, xy90, ty_Ordering) -> new_esEs12(xy10, xy90) new_esEs0(xy100, xy900, ty_Integer) -> new_esEs2(xy100, xy900) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_esEs17(x0, x1, ty_Char) new_asAs0(True, x0, x1, ty_Ordering) new_esEs17(x0, x1, ty_Float) new_esEs17(x0, x1, ty_Double) new_primEqNat0(Succ(x0), Zero) new_esEs17(x0, x1, ty_@0) new_esEs11(x0, x1, x2) new_esEs17(x0, x1, ty_Bool) new_flip(x0, x1, x2) new_esEs2(x0, x1) new_asAs0(True, x0, x1, app(ty_[], x2)) new_esEs15(x0, x1) new_deleteBy1(x0, [], x1) new_asAs0(True, x0, x1, ty_Double) new_esEs1(Neg(Succ(x0)), Neg(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_esEs17(x0, x1, app(app(ty_Either, x2), x3)) new_asAs0(True, x0, x1, ty_Int) new_asAs0(True, x0, x1, ty_Char) new_esEs17(x0, x1, ty_Ordering) new_esEs1(Pos(Zero), Neg(Succ(x0))) new_esEs1(Neg(Zero), Pos(Succ(x0))) new_esEs1(Pos(Succ(x0)), Pos(Succ(x1))) new_esEs17(x0, x1, ty_Int) new_esEs17(x0, x1, app(ty_Ratio, x2)) new_esEs17(x0, x1, app(app(ty_@2, x2), x3)) new_esEs6(:%(x0, x1), :%(x2, x3), x4) new_esEs13(x0, x1) new_esEs8(x0, x1) new_asAs0(True, x0, x1, app(app(ty_@2, x2), x3)) new_deleteBy00(x0, x1, x2, True, x3) new_deleteBy00(x0, x1, x2, False, x3) new_esEs1(Neg(Zero), Neg(Succ(x0))) new_esEs1(Pos(Zero), Neg(Zero)) new_esEs1(Neg(Zero), Pos(Zero)) new_esEs1(Pos(Succ(x0)), Neg(x1)) new_esEs1(Neg(Succ(x0)), Pos(x1)) new_esEs5(x0, x1) new_esEs1(Neg(Succ(x0)), Neg(Succ(x1))) new_esEs1(Pos(Succ(x0)), Pos(Zero)) new_asAs0(True, x0, x1, ty_Integer) new_esEs16(x0, x1, x2, x3, x4) new_esEs17(x0, x1, app(ty_[], x2)) new_esEs1(Neg(Zero), Neg(Zero)) new_asAs0(True, x0, x1, ty_@0) new_esEs0(x0, x1, ty_Integer) new_esEs1(Pos(Zero), Pos(Zero)) new_asAs0(True, x0, x1, app(ty_Maybe, x2)) new_esEs1(Pos(Zero), Pos(Succ(x0))) new_esEs14(x0, x1, x2, x3) new_esEs17(x0, x1, ty_Integer) new_esEs17(x0, x1, app(ty_Maybe, x2)) new_esEs7(x0, x1, x2) new_esEs17(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs10(x0, x1, x2, x3) new_esEs9(x0, x1) new_esEs0(x0, x1, ty_Int) new_primEqNat0(Zero, Succ(x0)) new_asAs0(True, x0, x1, ty_Float) new_asAs0(True, x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs12(x0, x1) new_asAs0(True, x0, x1, app(app(ty_Either, x2), x3)) new_deleteBy1(x0, :(x1, x2), x3) new_asAs0(True, x0, x1, ty_Bool) new_asAs0(True, x0, x1, app(ty_Ratio, x2)) new_asAs0(False, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_flip(xy9, xy10, ba), xy110, xy111, ba) at position [0] we obtained the following new rules [LPAR04]: (new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba),new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba)) ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba) The TRS R consists of the following rules: new_esEs1(Neg(Zero), Neg(Zero)) -> True new_asAs0(True, xy29, xy30, app(app(ty_Either, ce), cf)) -> new_esEs10(xy29, xy30, ce, cf) new_esEs5(xy10, xy90) -> error([]) new_esEs13(xy10, xy90) -> error([]) new_asAs0(True, xy29, xy30, ty_Float) -> new_esEs13(xy29, xy30) new_asAs0(False, xy29, xy30, cd) -> False new_esEs6(:%(xy100, xy101), :%(xy900, xy901), bf) -> new_asAs0(new_esEs0(xy100, xy900, bf), xy101, xy901, bf) new_esEs17(xy10, xy90, ty_Float) -> new_esEs13(xy10, xy90) new_asAs0(True, xy29, xy30, ty_Int) -> new_esEs1(xy29, xy30) new_asAs0(True, xy29, xy30, app(app(ty_@2, dc), dd)) -> new_esEs14(xy29, xy30, dc, dd) new_esEs10(xy10, xy90, bb, bc) -> error([]) new_esEs9(xy10, xy90) -> error([]) new_esEs1(Pos(Zero), Pos(Zero)) -> True new_asAs0(True, xy29, xy30, app(ty_[], da)) -> new_esEs7(xy29, xy30, da) new_esEs12(xy10, xy90) -> error([]) new_deleteBy00(xy17, xy18, xy19, True, dh) -> xy17 new_asAs0(True, xy29, xy30, ty_Integer) -> new_esEs2(xy29, xy30) new_primEqNat0(Succ(xy10000), Zero) -> False new_primEqNat0(Zero, Succ(xy90000)) -> False new_esEs1(Pos(Zero), Neg(Succ(xy9000))) -> False new_esEs1(Neg(Zero), Pos(Succ(xy9000))) -> False new_esEs1(Neg(Succ(xy1000)), Neg(Zero)) -> False new_esEs1(Neg(Zero), Neg(Succ(xy9000))) -> False new_asAs0(True, xy29, xy30, ty_@0) -> new_esEs15(xy29, xy30) new_esEs17(xy10, xy90, app(ty_Ratio, bf)) -> new_esEs6(xy10, xy90, bf) new_esEs17(xy10, xy90, app(app(ty_@2, bg), bh)) -> new_esEs14(xy10, xy90, bg, bh) new_esEs17(xy10, xy90, ty_Int) -> new_esEs1(xy10, xy90) new_esEs8(xy10, xy90) -> error([]) new_esEs17(xy10, xy90, app(ty_[], be)) -> new_esEs7(xy10, xy90, be) new_esEs17(xy10, xy90, ty_Bool) -> new_esEs5(xy10, xy90) new_esEs7(xy10, xy90, be) -> error([]) new_deleteBy00(xy17, xy18, xy19, False, dh) -> :(xy18, new_deleteBy1(xy19, xy17, dh)) new_esEs17(xy10, xy90, ty_Integer) -> new_esEs2(xy10, xy90) new_esEs1(Pos(Zero), Neg(Zero)) -> True new_esEs1(Neg(Zero), Pos(Zero)) -> True new_asAs0(True, xy29, xy30, ty_Char) -> new_esEs9(xy29, xy30) new_deleteBy1(xy10, :(xy90, xy91), ba) -> new_deleteBy00(xy91, xy90, xy10, new_esEs17(xy10, xy90, ba), ba) new_asAs0(True, xy29, xy30, ty_Bool) -> new_esEs5(xy29, xy30) new_asAs0(True, xy29, xy30, app(ty_Ratio, db)) -> new_esEs6(xy29, xy30, db) new_esEs1(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_primEqNat0(Zero, Zero) -> True new_esEs1(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_esEs11(xy10, xy90, bd) -> error([]) new_esEs17(xy10, xy90, ty_@0) -> new_esEs15(xy10, xy90) new_esEs17(xy10, xy90, app(app(app(ty_@3, ca), cb), cc)) -> new_esEs16(xy10, xy90, ca, cb, cc) new_esEs15(xy10, xy90) -> error([]) new_esEs17(xy10, xy90, ty_Char) -> new_esEs9(xy10, xy90) new_asAs0(True, xy29, xy30, ty_Double) -> new_esEs8(xy29, xy30) new_esEs1(Pos(Succ(xy1000)), Pos(Zero)) -> False new_esEs1(Pos(Zero), Pos(Succ(xy9000))) -> False new_esEs17(xy10, xy90, ty_Double) -> new_esEs8(xy10, xy90) new_esEs16(xy10, xy90, ca, cb, cc) -> error([]) new_esEs17(xy10, xy90, app(ty_Maybe, bd)) -> new_esEs11(xy10, xy90, bd) new_asAs0(True, xy29, xy30, ty_Ordering) -> new_esEs12(xy29, xy30) new_esEs2(xy10, xy90) -> error([]) new_esEs14(xy10, xy90, bg, bh) -> error([]) new_esEs17(xy10, xy90, app(app(ty_Either, bb), bc)) -> new_esEs10(xy10, xy90, bb, bc) new_flip(xy9, xy10, ba) -> new_deleteBy1(xy10, xy9, ba) new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) new_asAs0(True, xy29, xy30, app(ty_Maybe, cg)) -> new_esEs11(xy29, xy30, cg) new_esEs0(xy100, xy900, ty_Int) -> new_esEs1(xy100, xy900) new_asAs0(True, xy29, xy30, app(app(app(ty_@3, de), df), dg)) -> new_esEs16(xy29, xy30, de, df, dg) new_deleteBy1(xy10, [], ba) -> [] new_esEs1(Pos(Succ(xy1000)), Neg(xy900)) -> False new_esEs1(Neg(Succ(xy1000)), Pos(xy900)) -> False new_esEs17(xy10, xy90, ty_Ordering) -> new_esEs12(xy10, xy90) new_esEs0(xy100, xy900, ty_Integer) -> new_esEs2(xy100, xy900) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_esEs17(x0, x1, ty_Char) new_asAs0(True, x0, x1, ty_Ordering) new_esEs17(x0, x1, ty_Float) new_esEs17(x0, x1, ty_Double) new_primEqNat0(Succ(x0), Zero) new_esEs17(x0, x1, ty_@0) new_esEs11(x0, x1, x2) new_esEs17(x0, x1, ty_Bool) new_flip(x0, x1, x2) new_esEs2(x0, x1) new_asAs0(True, x0, x1, app(ty_[], x2)) new_esEs15(x0, x1) new_deleteBy1(x0, [], x1) new_asAs0(True, x0, x1, ty_Double) new_esEs1(Neg(Succ(x0)), Neg(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_esEs17(x0, x1, app(app(ty_Either, x2), x3)) new_asAs0(True, x0, x1, ty_Int) new_asAs0(True, x0, x1, ty_Char) new_esEs17(x0, x1, ty_Ordering) new_esEs1(Pos(Zero), Neg(Succ(x0))) new_esEs1(Neg(Zero), Pos(Succ(x0))) new_esEs1(Pos(Succ(x0)), Pos(Succ(x1))) new_esEs17(x0, x1, ty_Int) new_esEs17(x0, x1, app(ty_Ratio, x2)) new_esEs17(x0, x1, app(app(ty_@2, x2), x3)) new_esEs6(:%(x0, x1), :%(x2, x3), x4) new_esEs13(x0, x1) new_esEs8(x0, x1) new_asAs0(True, x0, x1, app(app(ty_@2, x2), x3)) new_deleteBy00(x0, x1, x2, True, x3) new_deleteBy00(x0, x1, x2, False, x3) new_esEs1(Neg(Zero), Neg(Succ(x0))) new_esEs1(Pos(Zero), Neg(Zero)) new_esEs1(Neg(Zero), Pos(Zero)) new_esEs1(Pos(Succ(x0)), Neg(x1)) new_esEs1(Neg(Succ(x0)), Pos(x1)) new_esEs5(x0, x1) new_esEs1(Neg(Succ(x0)), Neg(Succ(x1))) new_esEs1(Pos(Succ(x0)), Pos(Zero)) new_asAs0(True, x0, x1, ty_Integer) new_esEs16(x0, x1, x2, x3, x4) new_esEs17(x0, x1, app(ty_[], x2)) new_esEs1(Neg(Zero), Neg(Zero)) new_asAs0(True, x0, x1, ty_@0) new_esEs0(x0, x1, ty_Integer) new_esEs1(Pos(Zero), Pos(Zero)) new_asAs0(True, x0, x1, app(ty_Maybe, x2)) new_esEs1(Pos(Zero), Pos(Succ(x0))) new_esEs14(x0, x1, x2, x3) new_esEs17(x0, x1, ty_Integer) new_esEs17(x0, x1, app(ty_Maybe, x2)) new_esEs7(x0, x1, x2) new_esEs17(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs10(x0, x1, x2, x3) new_esEs9(x0, x1) new_esEs0(x0, x1, ty_Int) new_primEqNat0(Zero, Succ(x0)) new_asAs0(True, x0, x1, ty_Float) new_asAs0(True, x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs12(x0, x1) new_asAs0(True, x0, x1, app(app(ty_Either, x2), x3)) new_deleteBy1(x0, :(x1, x2), x3) new_asAs0(True, x0, x1, ty_Bool) new_asAs0(True, x0, x1, app(ty_Ratio, x2)) new_asAs0(False, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba) The TRS R consists of the following rules: new_deleteBy1(xy10, :(xy90, xy91), ba) -> new_deleteBy00(xy91, xy90, xy10, new_esEs17(xy10, xy90, ba), ba) new_deleteBy1(xy10, [], ba) -> [] new_esEs17(xy10, xy90, ty_Float) -> new_esEs13(xy10, xy90) new_esEs17(xy10, xy90, app(ty_Ratio, bf)) -> new_esEs6(xy10, xy90, bf) new_esEs17(xy10, xy90, app(app(ty_@2, bg), bh)) -> new_esEs14(xy10, xy90, bg, bh) new_esEs17(xy10, xy90, ty_Int) -> new_esEs1(xy10, xy90) new_esEs17(xy10, xy90, app(ty_[], be)) -> new_esEs7(xy10, xy90, be) new_esEs17(xy10, xy90, ty_Bool) -> new_esEs5(xy10, xy90) new_esEs17(xy10, xy90, ty_Integer) -> new_esEs2(xy10, xy90) new_esEs17(xy10, xy90, ty_@0) -> new_esEs15(xy10, xy90) new_esEs17(xy10, xy90, app(app(app(ty_@3, ca), cb), cc)) -> new_esEs16(xy10, xy90, ca, cb, cc) new_esEs17(xy10, xy90, ty_Char) -> new_esEs9(xy10, xy90) new_esEs17(xy10, xy90, ty_Double) -> new_esEs8(xy10, xy90) new_esEs17(xy10, xy90, app(ty_Maybe, bd)) -> new_esEs11(xy10, xy90, bd) new_esEs17(xy10, xy90, app(app(ty_Either, bb), bc)) -> new_esEs10(xy10, xy90, bb, bc) new_esEs17(xy10, xy90, ty_Ordering) -> new_esEs12(xy10, xy90) new_deleteBy00(xy17, xy18, xy19, True, dh) -> xy17 new_deleteBy00(xy17, xy18, xy19, False, dh) -> :(xy18, new_deleteBy1(xy19, xy17, dh)) new_esEs12(xy10, xy90) -> error([]) new_esEs10(xy10, xy90, bb, bc) -> error([]) new_esEs11(xy10, xy90, bd) -> error([]) new_esEs8(xy10, xy90) -> error([]) new_esEs9(xy10, xy90) -> error([]) new_esEs16(xy10, xy90, ca, cb, cc) -> error([]) new_esEs15(xy10, xy90) -> error([]) new_esEs2(xy10, xy90) -> error([]) new_esEs5(xy10, xy90) -> error([]) new_esEs7(xy10, xy90, be) -> error([]) new_esEs1(Neg(Zero), Neg(Zero)) -> True new_esEs1(Pos(Zero), Pos(Zero)) -> True new_esEs1(Pos(Zero), Neg(Succ(xy9000))) -> False new_esEs1(Neg(Zero), Pos(Succ(xy9000))) -> False new_esEs1(Neg(Succ(xy1000)), Neg(Zero)) -> False new_esEs1(Neg(Zero), Neg(Succ(xy9000))) -> False new_esEs1(Pos(Zero), Neg(Zero)) -> True new_esEs1(Neg(Zero), Pos(Zero)) -> True new_esEs1(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_esEs1(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_esEs1(Pos(Succ(xy1000)), Pos(Zero)) -> False new_esEs1(Pos(Zero), Pos(Succ(xy9000))) -> False new_esEs1(Pos(Succ(xy1000)), Neg(xy900)) -> False new_esEs1(Neg(Succ(xy1000)), Pos(xy900)) -> False new_primEqNat0(Succ(xy10000), Zero) -> False new_primEqNat0(Zero, Succ(xy90000)) -> False new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) new_esEs14(xy10, xy90, bg, bh) -> error([]) new_asAs0(True, xy29, xy30, app(ty_Ratio, db)) -> new_esEs6(xy29, xy30, db) new_esEs6(:%(xy100, xy101), :%(xy900, xy901), bf) -> new_asAs0(new_esEs0(xy100, xy900, bf), xy101, xy901, bf) new_esEs0(xy100, xy900, ty_Int) -> new_esEs1(xy100, xy900) new_esEs0(xy100, xy900, ty_Integer) -> new_esEs2(xy100, xy900) new_asAs0(True, xy29, xy30, app(app(ty_Either, ce), cf)) -> new_esEs10(xy29, xy30, ce, cf) new_asAs0(True, xy29, xy30, ty_Float) -> new_esEs13(xy29, xy30) new_asAs0(False, xy29, xy30, cd) -> False new_asAs0(True, xy29, xy30, ty_Int) -> new_esEs1(xy29, xy30) new_asAs0(True, xy29, xy30, app(app(ty_@2, dc), dd)) -> new_esEs14(xy29, xy30, dc, dd) new_asAs0(True, xy29, xy30, app(ty_[], da)) -> new_esEs7(xy29, xy30, da) new_asAs0(True, xy29, xy30, ty_Integer) -> new_esEs2(xy29, xy30) new_asAs0(True, xy29, xy30, ty_@0) -> new_esEs15(xy29, xy30) new_asAs0(True, xy29, xy30, ty_Char) -> new_esEs9(xy29, xy30) new_asAs0(True, xy29, xy30, ty_Bool) -> new_esEs5(xy29, xy30) new_asAs0(True, xy29, xy30, ty_Double) -> new_esEs8(xy29, xy30) new_asAs0(True, xy29, xy30, ty_Ordering) -> new_esEs12(xy29, xy30) new_asAs0(True, xy29, xy30, app(ty_Maybe, cg)) -> new_esEs11(xy29, xy30, cg) new_asAs0(True, xy29, xy30, app(app(app(ty_@3, de), df), dg)) -> new_esEs16(xy29, xy30, de, df, dg) new_esEs13(xy10, xy90) -> error([]) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_esEs17(x0, x1, ty_Char) new_asAs0(True, x0, x1, ty_Ordering) new_esEs17(x0, x1, ty_Float) new_esEs17(x0, x1, ty_Double) new_primEqNat0(Succ(x0), Zero) new_esEs17(x0, x1, ty_@0) new_esEs11(x0, x1, x2) new_esEs17(x0, x1, ty_Bool) new_flip(x0, x1, x2) new_esEs2(x0, x1) new_asAs0(True, x0, x1, app(ty_[], x2)) new_esEs15(x0, x1) new_deleteBy1(x0, [], x1) new_asAs0(True, x0, x1, ty_Double) new_esEs1(Neg(Succ(x0)), Neg(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_esEs17(x0, x1, app(app(ty_Either, x2), x3)) new_asAs0(True, x0, x1, ty_Int) new_asAs0(True, x0, x1, ty_Char) new_esEs17(x0, x1, ty_Ordering) new_esEs1(Pos(Zero), Neg(Succ(x0))) new_esEs1(Neg(Zero), Pos(Succ(x0))) new_esEs1(Pos(Succ(x0)), Pos(Succ(x1))) new_esEs17(x0, x1, ty_Int) new_esEs17(x0, x1, app(ty_Ratio, x2)) new_esEs17(x0, x1, app(app(ty_@2, x2), x3)) new_esEs6(:%(x0, x1), :%(x2, x3), x4) new_esEs13(x0, x1) new_esEs8(x0, x1) new_asAs0(True, x0, x1, app(app(ty_@2, x2), x3)) new_deleteBy00(x0, x1, x2, True, x3) new_deleteBy00(x0, x1, x2, False, x3) new_esEs1(Neg(Zero), Neg(Succ(x0))) new_esEs1(Pos(Zero), Neg(Zero)) new_esEs1(Neg(Zero), Pos(Zero)) new_esEs1(Pos(Succ(x0)), Neg(x1)) new_esEs1(Neg(Succ(x0)), Pos(x1)) new_esEs5(x0, x1) new_esEs1(Neg(Succ(x0)), Neg(Succ(x1))) new_esEs1(Pos(Succ(x0)), Pos(Zero)) new_asAs0(True, x0, x1, ty_Integer) new_esEs16(x0, x1, x2, x3, x4) new_esEs17(x0, x1, app(ty_[], x2)) new_esEs1(Neg(Zero), Neg(Zero)) new_asAs0(True, x0, x1, ty_@0) new_esEs0(x0, x1, ty_Integer) new_esEs1(Pos(Zero), Pos(Zero)) new_asAs0(True, x0, x1, app(ty_Maybe, x2)) new_esEs1(Pos(Zero), Pos(Succ(x0))) new_esEs14(x0, x1, x2, x3) new_esEs17(x0, x1, ty_Integer) new_esEs17(x0, x1, app(ty_Maybe, x2)) new_esEs7(x0, x1, x2) new_esEs17(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs10(x0, x1, x2, x3) new_esEs9(x0, x1) new_esEs0(x0, x1, ty_Int) new_primEqNat0(Zero, Succ(x0)) new_asAs0(True, x0, x1, ty_Float) new_asAs0(True, x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs12(x0, x1) new_asAs0(True, x0, x1, app(app(ty_Either, x2), x3)) new_deleteBy1(x0, :(x1, x2), x3) new_asAs0(True, x0, x1, ty_Bool) new_asAs0(True, x0, x1, app(ty_Ratio, x2)) new_asAs0(False, x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_flip(x0, x1, x2) ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba) The TRS R consists of the following rules: new_deleteBy1(xy10, :(xy90, xy91), ba) -> new_deleteBy00(xy91, xy90, xy10, new_esEs17(xy10, xy90, ba), ba) new_deleteBy1(xy10, [], ba) -> [] new_esEs17(xy10, xy90, ty_Float) -> new_esEs13(xy10, xy90) new_esEs17(xy10, xy90, app(ty_Ratio, bf)) -> new_esEs6(xy10, xy90, bf) new_esEs17(xy10, xy90, app(app(ty_@2, bg), bh)) -> new_esEs14(xy10, xy90, bg, bh) new_esEs17(xy10, xy90, ty_Int) -> new_esEs1(xy10, xy90) new_esEs17(xy10, xy90, app(ty_[], be)) -> new_esEs7(xy10, xy90, be) new_esEs17(xy10, xy90, ty_Bool) -> new_esEs5(xy10, xy90) new_esEs17(xy10, xy90, ty_Integer) -> new_esEs2(xy10, xy90) new_esEs17(xy10, xy90, ty_@0) -> new_esEs15(xy10, xy90) new_esEs17(xy10, xy90, app(app(app(ty_@3, ca), cb), cc)) -> new_esEs16(xy10, xy90, ca, cb, cc) new_esEs17(xy10, xy90, ty_Char) -> new_esEs9(xy10, xy90) new_esEs17(xy10, xy90, ty_Double) -> new_esEs8(xy10, xy90) new_esEs17(xy10, xy90, app(ty_Maybe, bd)) -> new_esEs11(xy10, xy90, bd) new_esEs17(xy10, xy90, app(app(ty_Either, bb), bc)) -> new_esEs10(xy10, xy90, bb, bc) new_esEs17(xy10, xy90, ty_Ordering) -> new_esEs12(xy10, xy90) new_deleteBy00(xy17, xy18, xy19, True, dh) -> xy17 new_deleteBy00(xy17, xy18, xy19, False, dh) -> :(xy18, new_deleteBy1(xy19, xy17, dh)) new_esEs12(xy10, xy90) -> error([]) new_esEs10(xy10, xy90, bb, bc) -> error([]) new_esEs11(xy10, xy90, bd) -> error([]) new_esEs8(xy10, xy90) -> error([]) new_esEs9(xy10, xy90) -> error([]) new_esEs16(xy10, xy90, ca, cb, cc) -> error([]) new_esEs15(xy10, xy90) -> error([]) new_esEs2(xy10, xy90) -> error([]) new_esEs5(xy10, xy90) -> error([]) new_esEs7(xy10, xy90, be) -> error([]) new_esEs1(Neg(Zero), Neg(Zero)) -> True new_esEs1(Pos(Zero), Pos(Zero)) -> True new_esEs1(Pos(Zero), Neg(Succ(xy9000))) -> False new_esEs1(Neg(Zero), Pos(Succ(xy9000))) -> False new_esEs1(Neg(Succ(xy1000)), Neg(Zero)) -> False new_esEs1(Neg(Zero), Neg(Succ(xy9000))) -> False new_esEs1(Pos(Zero), Neg(Zero)) -> True new_esEs1(Neg(Zero), Pos(Zero)) -> True new_esEs1(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_esEs1(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_esEs1(Pos(Succ(xy1000)), Pos(Zero)) -> False new_esEs1(Pos(Zero), Pos(Succ(xy9000))) -> False new_esEs1(Pos(Succ(xy1000)), Neg(xy900)) -> False new_esEs1(Neg(Succ(xy1000)), Pos(xy900)) -> False new_primEqNat0(Succ(xy10000), Zero) -> False new_primEqNat0(Zero, Succ(xy90000)) -> False new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) new_esEs14(xy10, xy90, bg, bh) -> error([]) new_asAs0(True, xy29, xy30, app(ty_Ratio, db)) -> new_esEs6(xy29, xy30, db) new_esEs6(:%(xy100, xy101), :%(xy900, xy901), bf) -> new_asAs0(new_esEs0(xy100, xy900, bf), xy101, xy901, bf) new_esEs0(xy100, xy900, ty_Int) -> new_esEs1(xy100, xy900) new_esEs0(xy100, xy900, ty_Integer) -> new_esEs2(xy100, xy900) new_asAs0(True, xy29, xy30, app(app(ty_Either, ce), cf)) -> new_esEs10(xy29, xy30, ce, cf) new_asAs0(True, xy29, xy30, ty_Float) -> new_esEs13(xy29, xy30) new_asAs0(False, xy29, xy30, cd) -> False new_asAs0(True, xy29, xy30, ty_Int) -> new_esEs1(xy29, xy30) new_asAs0(True, xy29, xy30, app(app(ty_@2, dc), dd)) -> new_esEs14(xy29, xy30, dc, dd) new_asAs0(True, xy29, xy30, app(ty_[], da)) -> new_esEs7(xy29, xy30, da) new_asAs0(True, xy29, xy30, ty_Integer) -> new_esEs2(xy29, xy30) new_asAs0(True, xy29, xy30, ty_@0) -> new_esEs15(xy29, xy30) new_asAs0(True, xy29, xy30, ty_Char) -> new_esEs9(xy29, xy30) new_asAs0(True, xy29, xy30, ty_Bool) -> new_esEs5(xy29, xy30) new_asAs0(True, xy29, xy30, ty_Double) -> new_esEs8(xy29, xy30) new_asAs0(True, xy29, xy30, ty_Ordering) -> new_esEs12(xy29, xy30) new_asAs0(True, xy29, xy30, app(ty_Maybe, cg)) -> new_esEs11(xy29, xy30, cg) new_asAs0(True, xy29, xy30, app(app(app(ty_@3, de), df), dg)) -> new_esEs16(xy29, xy30, de, df, dg) new_esEs13(xy10, xy90) -> error([]) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_esEs17(x0, x1, ty_Char) new_asAs0(True, x0, x1, ty_Ordering) new_esEs17(x0, x1, ty_Float) new_esEs17(x0, x1, ty_Double) new_primEqNat0(Succ(x0), Zero) new_esEs17(x0, x1, ty_@0) new_esEs11(x0, x1, x2) new_esEs17(x0, x1, ty_Bool) new_esEs2(x0, x1) new_asAs0(True, x0, x1, app(ty_[], x2)) new_esEs15(x0, x1) new_deleteBy1(x0, [], x1) new_asAs0(True, x0, x1, ty_Double) new_esEs1(Neg(Succ(x0)), Neg(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_esEs17(x0, x1, app(app(ty_Either, x2), x3)) new_asAs0(True, x0, x1, ty_Int) new_asAs0(True, x0, x1, ty_Char) new_esEs17(x0, x1, ty_Ordering) new_esEs1(Pos(Zero), Neg(Succ(x0))) new_esEs1(Neg(Zero), Pos(Succ(x0))) new_esEs1(Pos(Succ(x0)), Pos(Succ(x1))) new_esEs17(x0, x1, ty_Int) new_esEs17(x0, x1, app(ty_Ratio, x2)) new_esEs17(x0, x1, app(app(ty_@2, x2), x3)) new_esEs6(:%(x0, x1), :%(x2, x3), x4) new_esEs13(x0, x1) new_esEs8(x0, x1) new_asAs0(True, x0, x1, app(app(ty_@2, x2), x3)) new_deleteBy00(x0, x1, x2, True, x3) new_deleteBy00(x0, x1, x2, False, x3) new_esEs1(Neg(Zero), Neg(Succ(x0))) new_esEs1(Pos(Zero), Neg(Zero)) new_esEs1(Neg(Zero), Pos(Zero)) new_esEs1(Pos(Succ(x0)), Neg(x1)) new_esEs1(Neg(Succ(x0)), Pos(x1)) new_esEs5(x0, x1) new_esEs1(Neg(Succ(x0)), Neg(Succ(x1))) new_esEs1(Pos(Succ(x0)), Pos(Zero)) new_asAs0(True, x0, x1, ty_Integer) new_esEs16(x0, x1, x2, x3, x4) new_esEs17(x0, x1, app(ty_[], x2)) new_esEs1(Neg(Zero), Neg(Zero)) new_asAs0(True, x0, x1, ty_@0) new_esEs0(x0, x1, ty_Integer) new_esEs1(Pos(Zero), Pos(Zero)) new_asAs0(True, x0, x1, app(ty_Maybe, x2)) new_esEs1(Pos(Zero), Pos(Succ(x0))) new_esEs14(x0, x1, x2, x3) new_esEs17(x0, x1, ty_Integer) new_esEs17(x0, x1, app(ty_Maybe, x2)) new_esEs7(x0, x1, x2) new_esEs17(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs10(x0, x1, x2, x3) new_esEs9(x0, x1) new_esEs0(x0, x1, ty_Int) new_primEqNat0(Zero, Succ(x0)) new_asAs0(True, x0, x1, ty_Float) new_asAs0(True, x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs12(x0, x1) new_asAs0(True, x0, x1, app(app(ty_Either, x2), x3)) new_deleteBy1(x0, :(x1, x2), x3) new_asAs0(True, x0, x1, ty_Bool) new_asAs0(True, x0, x1, app(ty_Ratio, x2)) new_asAs0(False, x0, x1, x2) 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_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba) The graph contains the following edges 3 > 2, 3 > 3, 4 >= 4 ---------------------------------------- (30) YES ---------------------------------------- (31) Obligation: Q DP problem: The TRS P consists of the following rules: new_primEqNat(Succ(xy10000), Succ(xy90000)) -> new_primEqNat(xy10000, xy90000) 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_primEqNat(Succ(xy10000), Succ(xy90000)) -> new_primEqNat(xy10000, xy90000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (33) YES ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'1(xy919, xy920, xy921, xy922, False, :(xy9240, xy9241), ba) -> new_nubByNubBy'1(xy919, xy920, xy921, xy922, new_esEs3(xy9240, xy919, ba), xy9241, ba) new_nubByNubBy'(:(xy8270, xy8271), xy828, xy829, bb) -> new_nubByNubBy'1(xy8270, xy8271, xy828, xy829, new_esEs4(xy828, xy8270, bb), xy829, bb) new_nubByNubBy'1(xy919, xy920, xy921, xy922, False, [], ba) -> new_nubByNubBy'(xy920, xy919, :(xy921, xy922), ba) new_nubByNubBy'1(xy919, xy920, xy921, xy922, True, xy924, ba) -> new_nubByNubBy'(xy920, xy921, xy922, ba) The TRS R consists of the following rules: new_esEs1(Neg(Zero), Neg(Zero)) -> True new_asAs0(True, xy29, xy30, app(app(ty_Either, bf), bg)) -> new_esEs10(xy29, xy30, bf, bg) new_esEs4(xy828, xy8270, app(app(ty_@2, eh), fa)) -> new_esEs14(xy828, xy8270, eh, fa) new_esEs4(xy828, xy8270, ty_Int) -> new_esEs1(xy828, xy8270) new_esEs4(xy828, xy8270, ty_Float) -> new_esEs13(xy828, xy8270) new_esEs5(xy10, xy90) -> error([]) new_esEs13(xy10, xy90) -> error([]) new_asAs0(True, xy29, xy30, ty_Float) -> new_esEs13(xy29, xy30) new_asAs0(False, xy29, xy30, be) -> False new_esEs6(:%(xy100, xy101), :%(xy900, xy901), bc) -> new_asAs0(new_esEs0(xy100, xy900, bc), xy101, xy901, bc) new_asAs0(True, xy29, xy30, ty_Int) -> new_esEs1(xy29, xy30) new_asAs0(True, xy29, xy30, app(app(ty_@2, cc), cd)) -> new_esEs14(xy29, xy30, cc, cd) new_esEs3(xy9240, xy919, app(ty_[], dd)) -> new_esEs7(xy9240, xy919, dd) new_esEs3(xy9240, xy919, app(app(ty_Either, da), db)) -> new_esEs10(xy9240, xy919, da, db) new_esEs10(xy10, xy90, gb, gc) -> error([]) new_esEs9(xy10, xy90) -> error([]) new_esEs1(Pos(Zero), Pos(Zero)) -> True new_asAs0(True, xy29, xy30, app(ty_[], ca)) -> new_esEs7(xy29, xy30, ca) new_esEs12(xy10, xy90) -> error([]) new_asAs0(True, xy29, xy30, ty_Integer) -> new_esEs2(xy29, xy30) new_esEs4(xy828, xy8270, ty_Ordering) -> new_esEs12(xy828, xy8270) new_primEqNat0(Succ(xy10000), Zero) -> False new_primEqNat0(Zero, Succ(xy90000)) -> False new_esEs1(Pos(Zero), Neg(Succ(xy9000))) -> False new_esEs1(Neg(Zero), Pos(Succ(xy9000))) -> False new_esEs1(Neg(Succ(xy1000)), Neg(Zero)) -> False new_esEs1(Neg(Zero), Neg(Succ(xy9000))) -> False new_esEs3(xy9240, xy919, app(app(app(ty_@3, dh), ea), eb)) -> new_esEs16(xy9240, xy919, dh, ea, eb) new_esEs3(xy9240, xy919, ty_Char) -> new_esEs9(xy9240, xy919) new_esEs4(xy828, xy8270, app(app(ty_Either, ec), ed)) -> new_esEs10(xy828, xy8270, ec, ed) new_esEs3(xy9240, xy919, ty_Float) -> new_esEs13(xy9240, xy919) new_asAs0(True, xy29, xy30, ty_@0) -> new_esEs15(xy29, xy30) new_esEs8(xy10, xy90) -> error([]) new_esEs4(xy828, xy8270, ty_Double) -> new_esEs8(xy828, xy8270) new_esEs7(xy10, xy90, bd) -> error([]) new_esEs1(Pos(Zero), Neg(Zero)) -> True new_esEs1(Neg(Zero), Pos(Zero)) -> True new_asAs0(True, xy29, xy30, ty_Char) -> new_esEs9(xy29, xy30) new_asAs0(True, xy29, xy30, ty_Bool) -> new_esEs5(xy29, xy30) new_asAs0(True, xy29, xy30, app(ty_Ratio, cb)) -> new_esEs6(xy29, xy30, cb) new_esEs3(xy9240, xy919, app(ty_Maybe, dc)) -> new_esEs11(xy9240, xy919, dc) new_esEs1(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_primEqNat0(Zero, Zero) -> True new_esEs1(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) new_esEs4(xy828, xy8270, ty_Char) -> new_esEs9(xy828, xy8270) new_esEs11(xy10, xy90, ga) -> error([]) new_esEs15(xy10, xy90) -> error([]) new_esEs4(xy828, xy8270, app(app(app(ty_@3, fb), fc), fd)) -> new_esEs16(xy828, xy8270, fb, fc, fd) new_esEs4(xy828, xy8270, ty_@0) -> new_esEs15(xy828, xy8270) new_esEs3(xy9240, xy919, ty_Integer) -> new_esEs2(xy9240, xy919) new_esEs3(xy9240, xy919, ty_Double) -> new_esEs8(xy9240, xy919) new_esEs3(xy9240, xy919, ty_Ordering) -> new_esEs12(xy9240, xy919) new_esEs4(xy828, xy8270, app(ty_Maybe, ee)) -> new_esEs11(xy828, xy8270, ee) new_asAs0(True, xy29, xy30, ty_Double) -> new_esEs8(xy29, xy30) new_esEs3(xy9240, xy919, app(ty_Ratio, de)) -> new_esEs6(xy9240, xy919, de) new_esEs1(Pos(Succ(xy1000)), Pos(Zero)) -> False new_esEs1(Pos(Zero), Pos(Succ(xy9000))) -> False new_esEs3(xy9240, xy919, ty_Bool) -> new_esEs5(xy9240, xy919) new_esEs3(xy9240, xy919, app(app(ty_@2, df), dg)) -> new_esEs14(xy9240, xy919, df, dg) new_esEs16(xy10, xy90, ff, fg, fh) -> error([]) new_esEs4(xy828, xy8270, ty_Integer) -> new_esEs2(xy828, xy8270) new_esEs3(xy9240, xy919, ty_Int) -> new_esEs1(xy9240, xy919) new_asAs0(True, xy29, xy30, ty_Ordering) -> new_esEs12(xy29, xy30) new_esEs3(xy9240, xy919, ty_@0) -> new_esEs15(xy9240, xy919) new_esEs2(xy10, xy90) -> error([]) new_esEs14(xy10, xy90, gd, ge) -> error([]) new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) new_asAs0(True, xy29, xy30, app(ty_Maybe, bh)) -> new_esEs11(xy29, xy30, bh) new_esEs4(xy828, xy8270, app(ty_Ratio, eg)) -> new_esEs6(xy828, xy8270, eg) new_esEs0(xy100, xy900, ty_Int) -> new_esEs1(xy100, xy900) new_esEs4(xy828, xy8270, app(ty_[], ef)) -> new_esEs7(xy828, xy8270, ef) new_asAs0(True, xy29, xy30, app(app(app(ty_@3, ce), cf), cg)) -> new_esEs16(xy29, xy30, ce, cf, cg) new_esEs1(Pos(Succ(xy1000)), Neg(xy900)) -> False new_esEs1(Neg(Succ(xy1000)), Pos(xy900)) -> False new_esEs4(xy828, xy8270, ty_Bool) -> new_esEs5(xy828, xy8270) new_esEs0(xy100, xy900, ty_Integer) -> new_esEs2(xy100, xy900) The set Q consists of the following terms: new_esEs3(x0, x1, app(app(ty_@2, x2), x3)) new_asAs0(True, x0, x1, app(app(ty_Either, x2), x3)) new_primEqNat0(Zero, Zero) new_esEs3(x0, x1, ty_Ordering) new_esEs4(x0, x1, app(ty_Ratio, x2)) new_asAs0(True, x0, x1, app(app(ty_@2, x2), x3)) new_asAs0(True, x0, x1, ty_Ordering) new_asAs0(True, x0, x1, app(ty_Ratio, x2)) new_esEs4(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs10(x0, x1, x2, x3) new_primEqNat0(Succ(x0), Zero) new_esEs4(x0, x1, ty_Int) new_esEs4(x0, x1, app(ty_Maybe, x2)) new_asAs0(True, x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs3(x0, x1, ty_Bool) new_esEs2(x0, x1) new_esEs7(x0, x1, x2) new_esEs3(x0, x1, ty_Float) new_esEs15(x0, x1) new_esEs3(x0, x1, ty_Double) new_esEs4(x0, x1, ty_Ordering) new_asAs0(True, x0, x1, ty_Double) new_esEs1(Neg(Succ(x0)), Neg(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_asAs0(True, x0, x1, ty_Int) new_asAs0(True, x0, x1, ty_Char) new_esEs3(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs1(Pos(Zero), Neg(Succ(x0))) new_esEs1(Neg(Zero), Pos(Succ(x0))) new_esEs1(Pos(Succ(x0)), Pos(Succ(x1))) new_esEs3(x0, x1, app(ty_[], x2)) new_esEs4(x0, x1, ty_@0) new_esEs3(x0, x1, ty_Char) new_esEs13(x0, x1) new_esEs8(x0, x1) new_esEs3(x0, x1, app(ty_Maybe, x2)) new_esEs1(Neg(Zero), Neg(Succ(x0))) new_esEs1(Pos(Zero), Neg(Zero)) new_esEs1(Neg(Zero), Pos(Zero)) new_esEs4(x0, x1, ty_Char) new_esEs1(Pos(Succ(x0)), Neg(x1)) new_esEs1(Neg(Succ(x0)), Pos(x1)) new_esEs4(x0, x1, app(ty_[], x2)) new_esEs5(x0, x1) new_esEs1(Neg(Succ(x0)), Neg(Succ(x1))) new_esEs1(Pos(Succ(x0)), Pos(Zero)) new_asAs0(True, x0, x1, ty_Integer) new_esEs16(x0, x1, x2, x3, x4) new_esEs1(Neg(Zero), Neg(Zero)) new_asAs0(True, x0, x1, ty_@0) new_esEs6(:%(x0, x1), :%(x2, x3), x4) new_esEs3(x0, x1, app(ty_Ratio, x2)) new_esEs3(x0, x1, ty_Int) new_esEs4(x0, x1, ty_Bool) new_esEs0(x0, x1, ty_Integer) new_esEs1(Pos(Zero), Pos(Zero)) new_esEs4(x0, x1, ty_Float) new_esEs1(Pos(Zero), Pos(Succ(x0))) new_asAs0(True, x0, x1, app(ty_Maybe, x2)) new_esEs3(x0, x1, ty_Integer) new_esEs4(x0, x1, ty_Integer) new_esEs11(x0, x1, x2) new_esEs4(x0, x1, app(app(ty_@2, x2), x3)) new_esEs9(x0, x1) new_esEs0(x0, x1, ty_Int) new_primEqNat0(Zero, Succ(x0)) new_asAs0(True, x0, x1, ty_Float) new_esEs4(x0, x1, app(app(ty_Either, x2), x3)) new_asAs0(True, x0, x1, app(ty_[], x2)) new_esEs3(x0, x1, app(app(ty_Either, x2), x3)) new_esEs3(x0, x1, ty_@0) new_esEs12(x0, x1) new_asAs0(False, x0, x1, x2) new_esEs4(x0, x1, ty_Double) new_asAs0(True, x0, x1, ty_Bool) new_esEs14(x0, x1, x2, x3) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) 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_nubByNubBy'1(xy919, xy920, xy921, xy922, False, :(xy9240, xy9241), ba) -> new_nubByNubBy'1(xy919, xy920, xy921, xy922, new_esEs3(xy9240, xy919, ba), xy9241, ba) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 6 > 6, 7 >= 7 *new_nubByNubBy'(:(xy8270, xy8271), xy828, xy829, bb) -> new_nubByNubBy'1(xy8270, xy8271, xy828, xy829, new_esEs4(xy828, xy8270, bb), xy829, bb) The graph contains the following edges 1 > 1, 1 > 2, 2 >= 3, 3 >= 4, 3 >= 6, 4 >= 7 *new_nubByNubBy'1(xy919, xy920, xy921, xy922, False, [], ba) -> new_nubByNubBy'(xy920, xy919, :(xy921, xy922), ba) The graph contains the following edges 2 >= 1, 1 >= 2, 7 >= 4 *new_nubByNubBy'1(xy919, xy920, xy921, xy922, True, xy924, ba) -> new_nubByNubBy'(xy920, xy921, xy922, ba) The graph contains the following edges 2 >= 1, 3 >= 2, 4 >= 3, 7 >= 4 ---------------------------------------- (36) YES