18.80/8.96 YES 21.45/9.63 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 21.45/9.63 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 21.45/9.63 21.45/9.63 21.45/9.63 H-Termination with start terms of the given HASKELL could be proven: 21.45/9.63 21.45/9.63 (0) HASKELL 21.45/9.63 (1) IFR [EQUIVALENT, 0 ms] 21.45/9.63 (2) HASKELL 21.45/9.63 (3) BR [EQUIVALENT, 0 ms] 21.45/9.63 (4) HASKELL 21.45/9.63 (5) COR [EQUIVALENT, 23 ms] 21.45/9.63 (6) HASKELL 21.45/9.63 (7) LetRed [EQUIVALENT, 0 ms] 21.45/9.63 (8) HASKELL 21.45/9.63 (9) Narrow [SOUND, 0 ms] 21.45/9.63 (10) AND 21.45/9.63 (11) QDP 21.45/9.63 (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] 21.45/9.63 (13) YES 21.45/9.63 (14) QDP 21.45/9.63 (15) QDPSizeChangeProof [EQUIVALENT, 0 ms] 21.45/9.63 (16) YES 21.45/9.63 (17) QDP 21.45/9.63 (18) DependencyGraphProof [EQUIVALENT, 0 ms] 21.45/9.63 (19) QDP 21.45/9.63 (20) TransformationProof [EQUIVALENT, 0 ms] 21.45/9.63 (21) QDP 21.45/9.63 (22) QDPSizeChangeProof [EQUIVALENT, 0 ms] 21.45/9.63 (23) YES 21.45/9.63 (24) QDP 21.45/9.63 (25) TransformationProof [EQUIVALENT, 0 ms] 21.45/9.63 (26) QDP 21.45/9.63 (27) UsableRulesProof [EQUIVALENT, 0 ms] 21.45/9.63 (28) QDP 21.45/9.63 (29) QReductionProof [EQUIVALENT, 0 ms] 21.45/9.63 (30) QDP 21.45/9.63 (31) QDPSizeChangeProof [EQUIVALENT, 0 ms] 21.45/9.63 (32) YES 21.45/9.63 (33) QDP 21.45/9.63 (34) QDPSizeChangeProof [EQUIVALENT, 0 ms] 21.45/9.63 (35) YES 21.45/9.63 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (0) 21.45/9.63 Obligation: 21.45/9.63 mainModule Main 21.45/9.63 module Maybe where { 21.45/9.63 import qualified List; 21.45/9.63 import qualified Main; 21.45/9.63 import qualified Prelude; 21.45/9.63 } 21.45/9.63 module List where { 21.45/9.63 import qualified Main; 21.45/9.63 import qualified Maybe; 21.45/9.63 import qualified Prelude; 21.45/9.63 deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; 21.45/9.63 deleteBy _ _ [] = []; 21.45/9.63 deleteBy eq x (y : ys) = if x `eq` y then ys else y : deleteBy eq x ys; 21.45/9.63 21.45/9.63 elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; 21.45/9.63 elem_by _ _ [] = False; 21.45/9.63 elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; 21.45/9.63 21.45/9.63 nubBy :: (a -> a -> Bool) -> [a] -> [a]; 21.45/9.63 nubBy eq l = nubBy' l [] where { 21.45/9.63 nubBy' [] _ = []; 21.45/9.63 nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs 21.45/9.63 | otherwise = y : nubBy' ys (y : xs); 21.45/9.63 }; 21.45/9.63 21.45/9.63 union :: Eq a => [a] -> [a] -> [a]; 21.45/9.63 union = unionBy (==); 21.45/9.63 21.45/9.63 unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 21.45/9.63 unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; 21.45/9.63 21.45/9.63 } 21.45/9.63 module Main where { 21.45/9.63 import qualified List; 21.45/9.63 import qualified Maybe; 21.45/9.63 import qualified Prelude; 21.45/9.63 } 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (1) IFR (EQUIVALENT) 21.45/9.63 If Reductions: 21.45/9.63 The following If expression 21.45/9.63 "if eq x y then ys else y : deleteBy eq x ys" 21.45/9.63 is transformed to 21.45/9.63 "deleteBy0 ys y eq x True = ys; 21.45/9.63 deleteBy0 ys y eq x False = y : deleteBy eq x ys; 21.45/9.63 " 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (2) 21.45/9.63 Obligation: 21.45/9.63 mainModule Main 21.45/9.63 module Maybe where { 21.45/9.63 import qualified List; 21.45/9.63 import qualified Main; 21.45/9.63 import qualified Prelude; 21.45/9.63 } 21.45/9.63 module List where { 21.45/9.63 import qualified Main; 21.45/9.63 import qualified Maybe; 21.45/9.63 import qualified Prelude; 21.45/9.63 deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; 21.45/9.63 deleteBy _ _ [] = []; 21.45/9.63 deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); 21.45/9.63 21.45/9.63 deleteBy0 ys y eq x True = ys; 21.45/9.63 deleteBy0 ys y eq x False = y : deleteBy eq x ys; 21.45/9.63 21.45/9.63 elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; 21.45/9.63 elem_by _ _ [] = False; 21.45/9.63 elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; 21.45/9.63 21.45/9.63 nubBy :: (a -> a -> Bool) -> [a] -> [a]; 21.45/9.63 nubBy eq l = nubBy' l [] where { 21.45/9.63 nubBy' [] _ = []; 21.45/9.63 nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs 21.45/9.63 | otherwise = y : nubBy' ys (y : xs); 21.45/9.63 }; 21.45/9.63 21.45/9.63 union :: Eq a => [a] -> [a] -> [a]; 21.45/9.63 union = unionBy (==); 21.45/9.63 21.45/9.63 unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 21.45/9.63 unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; 21.45/9.63 21.45/9.63 } 21.45/9.63 module Main where { 21.45/9.63 import qualified List; 21.45/9.63 import qualified Maybe; 21.45/9.63 import qualified Prelude; 21.45/9.63 } 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (3) BR (EQUIVALENT) 21.45/9.63 Replaced joker patterns by fresh variables and removed binding patterns. 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (4) 21.45/9.63 Obligation: 21.45/9.63 mainModule Main 21.45/9.63 module Maybe where { 21.45/9.63 import qualified List; 21.45/9.63 import qualified Main; 21.45/9.63 import qualified Prelude; 21.45/9.63 } 21.45/9.63 module List where { 21.45/9.63 import qualified Main; 21.45/9.63 import qualified Maybe; 21.45/9.63 import qualified Prelude; 21.45/9.63 deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; 21.45/9.63 deleteBy wx wy [] = []; 21.45/9.63 deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); 21.45/9.63 21.45/9.63 deleteBy0 ys y eq x True = ys; 21.45/9.63 deleteBy0 ys y eq x False = y : deleteBy eq x ys; 21.45/9.63 21.45/9.63 elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; 21.45/9.63 elem_by wu wv [] = False; 21.45/9.63 elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; 21.45/9.63 21.45/9.63 nubBy :: (a -> a -> Bool) -> [a] -> [a]; 21.45/9.63 nubBy eq l = nubBy' l [] where { 21.45/9.63 nubBy' [] ww = []; 21.45/9.63 nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs 21.45/9.63 | otherwise = y : nubBy' ys (y : xs); 21.45/9.63 }; 21.45/9.63 21.45/9.63 union :: Eq a => [a] -> [a] -> [a]; 21.45/9.63 union = unionBy (==); 21.45/9.63 21.45/9.63 unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 21.45/9.63 unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; 21.45/9.63 21.45/9.63 } 21.45/9.63 module Main where { 21.45/9.63 import qualified List; 21.45/9.63 import qualified Maybe; 21.45/9.63 import qualified Prelude; 21.45/9.63 } 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (5) COR (EQUIVALENT) 21.45/9.63 Cond Reductions: 21.45/9.63 The following Function with conditions 21.45/9.63 "undefined |Falseundefined; 21.45/9.63 " 21.45/9.63 is transformed to 21.45/9.63 "undefined = undefined1; 21.45/9.63 " 21.45/9.63 "undefined0 True = undefined; 21.45/9.63 " 21.45/9.63 "undefined1 = undefined0 False; 21.45/9.63 " 21.45/9.63 The following Function with conditions 21.45/9.63 "nubBy' [] ww = []; 21.45/9.63 nubBy' (y : ys) xs|elem_by eq y xsnubBy' ys xs|otherwisey : nubBy' ys (y : xs); 21.45/9.63 " 21.45/9.63 is transformed to 21.45/9.63 "nubBy' [] ww = nubBy'3 [] ww; 21.45/9.63 nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; 21.45/9.63 " 21.45/9.63 "nubBy'0 y ys xs True = y : nubBy' ys (y : xs); 21.45/9.63 " 21.45/9.63 "nubBy'1 y ys xs True = nubBy' ys xs; 21.45/9.63 nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; 21.45/9.63 " 21.45/9.63 "nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); 21.45/9.63 " 21.45/9.63 "nubBy'3 [] ww = []; 21.45/9.63 nubBy'3 xv xw = nubBy'2 xv xw; 21.45/9.63 " 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (6) 21.45/9.63 Obligation: 21.45/9.63 mainModule Main 21.45/9.63 module Maybe where { 21.45/9.63 import qualified List; 21.45/9.63 import qualified Main; 21.45/9.63 import qualified Prelude; 21.45/9.63 } 21.45/9.63 module List where { 21.45/9.63 import qualified Main; 21.45/9.63 import qualified Maybe; 21.45/9.63 import qualified Prelude; 21.45/9.63 deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; 21.45/9.63 deleteBy wx wy [] = []; 21.45/9.63 deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); 21.45/9.63 21.45/9.63 deleteBy0 ys y eq x True = ys; 21.45/9.63 deleteBy0 ys y eq x False = y : deleteBy eq x ys; 21.45/9.63 21.45/9.63 elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; 21.45/9.63 elem_by wu wv [] = False; 21.45/9.63 elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; 21.45/9.63 21.45/9.63 nubBy :: (a -> a -> Bool) -> [a] -> [a]; 21.45/9.63 nubBy eq l = nubBy' l [] where { 21.45/9.63 nubBy' [] ww = nubBy'3 [] ww; 21.45/9.63 nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; 21.45/9.63 nubBy'0 y ys xs True = y : nubBy' ys (y : xs); 21.45/9.63 nubBy'1 y ys xs True = nubBy' ys xs; 21.45/9.63 nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; 21.45/9.63 nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); 21.45/9.63 nubBy'3 [] ww = []; 21.45/9.63 nubBy'3 xv xw = nubBy'2 xv xw; 21.45/9.63 }; 21.45/9.63 21.45/9.63 union :: Eq a => [a] -> [a] -> [a]; 21.45/9.63 union = unionBy (==); 21.45/9.63 21.45/9.63 unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 21.45/9.63 unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; 21.45/9.63 21.45/9.63 } 21.45/9.63 module Main where { 21.45/9.63 import qualified List; 21.45/9.63 import qualified Maybe; 21.45/9.63 import qualified Prelude; 21.45/9.63 } 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (7) LetRed (EQUIVALENT) 21.45/9.63 Let/Where Reductions: 21.45/9.63 The bindings of the following Let/Where expression 21.45/9.63 "nubBy' l [] where { 21.45/9.63 nubBy' [] ww = nubBy'3 [] ww; 21.45/9.63 nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; 21.45/9.63 ; 21.45/9.63 nubBy'0 y ys xs True = y : nubBy' ys (y : xs); 21.45/9.63 ; 21.45/9.63 nubBy'1 y ys xs True = nubBy' ys xs; 21.45/9.63 nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; 21.45/9.63 ; 21.45/9.63 nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); 21.45/9.63 ; 21.45/9.63 nubBy'3 [] ww = []; 21.45/9.63 nubBy'3 xv xw = nubBy'2 xv xw; 21.45/9.63 } 21.45/9.63 " 21.45/9.63 are unpacked to the following functions on top level 21.45/9.63 "nubByNubBy'0 xx y ys xs True = y : nubByNubBy' xx ys (y : xs); 21.45/9.63 " 21.45/9.63 "nubByNubBy'3 xx [] ww = []; 21.45/9.63 nubByNubBy'3 xx xv xw = nubByNubBy'2 xx xv xw; 21.45/9.63 " 21.45/9.63 "nubByNubBy'1 xx y ys xs True = nubByNubBy' xx ys xs; 21.45/9.63 nubByNubBy'1 xx y ys xs False = nubByNubBy'0 xx y ys xs otherwise; 21.45/9.63 " 21.45/9.63 "nubByNubBy'2 xx (y : ys) xs = nubByNubBy'1 xx y ys xs (elem_by xx y xs); 21.45/9.63 " 21.45/9.63 "nubByNubBy' xx [] ww = nubByNubBy'3 xx [] ww; 21.45/9.63 nubByNubBy' xx (y : ys) xs = nubByNubBy'2 xx (y : ys) xs; 21.45/9.63 " 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (8) 21.45/9.63 Obligation: 21.45/9.63 mainModule Main 21.45/9.63 module Maybe where { 21.45/9.63 import qualified List; 21.45/9.63 import qualified Main; 21.45/9.63 import qualified Prelude; 21.45/9.63 } 21.45/9.63 module List where { 21.45/9.63 import qualified Main; 21.45/9.63 import qualified Maybe; 21.45/9.63 import qualified Prelude; 21.45/9.63 deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; 21.45/9.63 deleteBy wx wy [] = []; 21.45/9.63 deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); 21.45/9.63 21.45/9.63 deleteBy0 ys y eq x True = ys; 21.45/9.63 deleteBy0 ys y eq x False = y : deleteBy eq x ys; 21.45/9.63 21.45/9.63 elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; 21.45/9.63 elem_by wu wv [] = False; 21.45/9.63 elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; 21.45/9.63 21.45/9.63 nubBy :: (a -> a -> Bool) -> [a] -> [a]; 21.45/9.63 nubBy eq l = nubByNubBy' eq l []; 21.45/9.63 21.45/9.63 nubByNubBy' xx [] ww = nubByNubBy'3 xx [] ww; 21.45/9.63 nubByNubBy' xx (y : ys) xs = nubByNubBy'2 xx (y : ys) xs; 21.45/9.63 21.45/9.63 nubByNubBy'0 xx y ys xs True = y : nubByNubBy' xx ys (y : xs); 21.45/9.63 21.45/9.63 nubByNubBy'1 xx y ys xs True = nubByNubBy' xx ys xs; 21.45/9.63 nubByNubBy'1 xx y ys xs False = nubByNubBy'0 xx y ys xs otherwise; 21.45/9.63 21.45/9.63 nubByNubBy'2 xx (y : ys) xs = nubByNubBy'1 xx y ys xs (elem_by xx y xs); 21.45/9.63 21.45/9.63 nubByNubBy'3 xx [] ww = []; 21.45/9.63 nubByNubBy'3 xx xv xw = nubByNubBy'2 xx xv xw; 21.45/9.63 21.45/9.63 union :: Eq a => [a] -> [a] -> [a]; 21.45/9.63 union = unionBy (==); 21.45/9.63 21.45/9.63 unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 21.45/9.63 unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; 21.45/9.63 21.45/9.63 } 21.45/9.63 module Main where { 21.45/9.63 import qualified List; 21.45/9.63 import qualified Maybe; 21.45/9.63 import qualified Prelude; 21.45/9.63 } 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (9) Narrow (SOUND) 21.45/9.63 Haskell To QDPs 21.45/9.63 21.45/9.63 digraph dp_graph { 21.45/9.63 node [outthreshold=100, inthreshold=100];1[label="List.union",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 21.45/9.63 3[label="List.union xy3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 21.45/9.63 4[label="List.union xy3 xy4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 21.45/9.63 5[label="List.unionBy (==) xy3 xy4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 21.45/9.63 6[label="xy3 ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) xy3",fontsize=16,color="burlywood",shape="box"];6229[label="xy3/xy30 : xy31",fontsize=10,color="white",style="solid",shape="box"];6 -> 6229[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6229 -> 7[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6230[label="xy3/[]",fontsize=10,color="white",style="solid",shape="box"];6 -> 6230[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6230 -> 8[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 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]; 21.45/9.63 8[label="[] ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) []",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 21.45/9.63 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]; 21.45/9.63 10[label="foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) []",fontsize=16,color="black",shape="box"];10 -> 12[label="",style="solid", color="black", weight=3]; 21.45/9.63 11 -> 168[label="",style="dashed", color="red", weight=0]; 21.45/9.63 11[label="xy31 ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) (xy30 : xy31)",fontsize=16,color="magenta"];11 -> 169[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 11 -> 170[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 11 -> 171[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 11 -> 172[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 12[label="List.nubBy (==) xy4",fontsize=16,color="black",shape="triangle"];12 -> 15[label="",style="solid", color="black", weight=3]; 21.45/9.63 169[label="xy31",fontsize=16,color="green",shape="box"];170[label="xy30",fontsize=16,color="green",shape="box"];171[label="xy31",fontsize=16,color="green",shape="box"];172 -> 12[label="",style="dashed", color="red", weight=0]; 21.45/9.63 172[label="List.nubBy (==) xy4",fontsize=16,color="magenta"];168[label="xy8 ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="burlywood",shape="triangle"];6231[label="xy8/xy80 : xy81",fontsize=10,color="white",style="solid",shape="box"];168 -> 6231[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6231 -> 197[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6232[label="xy8/[]",fontsize=10,color="white",style="solid",shape="box"];168 -> 6232[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6232 -> 198[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 15[label="List.nubByNubBy' (==) xy4 []",fontsize=16,color="burlywood",shape="box"];6233[label="xy4/xy40 : xy41",fontsize=10,color="white",style="solid",shape="box"];15 -> 6233[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6233 -> 18[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6234[label="xy4/[]",fontsize=10,color="white",style="solid",shape="box"];15 -> 6234[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6234 -> 19[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 197[label="(xy80 : xy81) ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="black",shape="box"];197 -> 207[label="",style="solid", color="black", weight=3]; 21.45/9.63 198[label="[] ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="black",shape="box"];198 -> 208[label="",style="solid", color="black", weight=3]; 21.45/9.63 18[label="List.nubByNubBy' (==) (xy40 : xy41) []",fontsize=16,color="black",shape="box"];18 -> 23[label="",style="solid", color="black", weight=3]; 21.45/9.63 19[label="List.nubByNubBy' (==) [] []",fontsize=16,color="black",shape="box"];19 -> 24[label="",style="solid", color="black", weight=3]; 21.45/9.63 207[label="xy80 : xy81 ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="green",shape="box"];207 -> 223[label="",style="dashed", color="green", weight=3]; 21.45/9.63 208[label="foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="black",shape="box"];208 -> 224[label="",style="solid", color="black", weight=3]; 21.45/9.63 23[label="List.nubByNubBy'2 (==) (xy40 : xy41) []",fontsize=16,color="black",shape="box"];23 -> 28[label="",style="solid", color="black", weight=3]; 21.45/9.63 24[label="List.nubByNubBy'3 (==) [] []",fontsize=16,color="black",shape="box"];24 -> 29[label="",style="solid", color="black", weight=3]; 21.45/9.63 223 -> 168[label="",style="dashed", color="red", weight=0]; 21.45/9.63 223[label="xy81 ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="magenta"];223 -> 239[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 224[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) xy9 xy10) xy11",fontsize=16,color="burlywood",shape="triangle"];6235[label="xy11/xy110 : xy111",fontsize=10,color="white",style="solid",shape="box"];224 -> 6235[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6235 -> 240[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6236[label="xy11/[]",fontsize=10,color="white",style="solid",shape="box"];224 -> 6236[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6236 -> 241[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 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]; 21.45/9.63 29[label="[]",fontsize=16,color="green",shape="box"];239[label="xy81",fontsize=16,color="green",shape="box"];240[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) xy9 xy10) (xy110 : xy111)",fontsize=16,color="black",shape="box"];240 -> 258[label="",style="solid", color="black", weight=3]; 21.45/9.63 241[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) xy9 xy10) []",fontsize=16,color="black",shape="box"];241 -> 259[label="",style="solid", color="black", weight=3]; 21.45/9.63 33[label="List.nubByNubBy'1 (==) xy40 xy41 [] False",fontsize=16,color="black",shape="box"];33 -> 37[label="",style="solid", color="black", weight=3]; 21.45/9.63 258 -> 224[label="",style="dashed", color="red", weight=0]; 21.45/9.63 258[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) (flip (List.deleteBy (==)) xy9 xy10) xy110) xy111",fontsize=16,color="magenta"];258 -> 280[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 258 -> 281[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 258 -> 282[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 259[label="flip (List.deleteBy (==)) xy9 xy10",fontsize=16,color="black",shape="triangle"];259 -> 283[label="",style="solid", color="black", weight=3]; 21.45/9.63 37[label="List.nubByNubBy'0 (==) xy40 xy41 [] otherwise",fontsize=16,color="black",shape="box"];37 -> 42[label="",style="solid", color="black", weight=3]; 21.45/9.63 280[label="xy110",fontsize=16,color="green",shape="box"];281[label="xy111",fontsize=16,color="green",shape="box"];282 -> 259[label="",style="dashed", color="red", weight=0]; 21.45/9.63 282[label="flip (List.deleteBy (==)) xy9 xy10",fontsize=16,color="magenta"];283[label="List.deleteBy (==) xy10 xy9",fontsize=16,color="burlywood",shape="triangle"];6237[label="xy9/xy90 : xy91",fontsize=10,color="white",style="solid",shape="box"];283 -> 6237[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6237 -> 304[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6238[label="xy9/[]",fontsize=10,color="white",style="solid",shape="box"];283 -> 6238[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6238 -> 305[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 42[label="List.nubByNubBy'0 (==) xy40 xy41 [] True",fontsize=16,color="black",shape="box"];42 -> 49[label="",style="solid", color="black", weight=3]; 21.45/9.63 304[label="List.deleteBy (==) xy10 (xy90 : xy91)",fontsize=16,color="black",shape="box"];304 -> 328[label="",style="solid", color="black", weight=3]; 21.45/9.63 305[label="List.deleteBy (==) xy10 []",fontsize=16,color="black",shape="box"];305 -> 329[label="",style="solid", color="black", weight=3]; 21.45/9.63 49[label="xy40 : List.nubByNubBy' (==) xy41 (xy40 : [])",fontsize=16,color="green",shape="box"];49 -> 54[label="",style="dashed", color="green", weight=3]; 21.45/9.63 328 -> 356[label="",style="dashed", color="red", weight=0]; 21.45/9.63 328[label="List.deleteBy0 xy91 xy90 (==) xy10 ((==) xy10 xy90)",fontsize=16,color="magenta"];328 -> 357[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 328 -> 358[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 328 -> 359[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 328 -> 360[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 329[label="[]",fontsize=16,color="green",shape="box"];54[label="List.nubByNubBy' (==) xy41 (xy40 : [])",fontsize=16,color="burlywood",shape="box"];6239[label="xy41/xy410 : xy411",fontsize=10,color="white",style="solid",shape="box"];54 -> 6239[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6239 -> 59[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6240[label="xy41/[]",fontsize=10,color="white",style="solid",shape="box"];54 -> 6240[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6240 -> 60[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 357[label="xy90",fontsize=16,color="green",shape="box"];358[label="(==) xy10 xy90",fontsize=16,color="blue",shape="box"];6241[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6241[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6241 -> 361[label="",style="solid", color="blue", weight=3]; 21.45/9.63 6242[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6242[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6242 -> 362[label="",style="solid", color="blue", weight=3]; 21.45/9.63 6243[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6243[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6243 -> 363[label="",style="solid", color="blue", weight=3]; 21.45/9.63 6244[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6244[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6244 -> 364[label="",style="solid", color="blue", weight=3]; 21.45/9.63 6245[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6245[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6245 -> 365[label="",style="solid", color="blue", weight=3]; 21.45/9.63 6246[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6246[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6246 -> 366[label="",style="solid", color="blue", weight=3]; 21.45/9.63 6247[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6247[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6247 -> 367[label="",style="solid", color="blue", weight=3]; 21.45/9.63 6248[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6248[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6248 -> 368[label="",style="solid", color="blue", weight=3]; 21.45/9.63 6249[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6249[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6249 -> 369[label="",style="solid", color="blue", weight=3]; 21.45/9.63 6250[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6250[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6250 -> 370[label="",style="solid", color="blue", weight=3]; 21.45/9.63 6251[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6251[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6251 -> 371[label="",style="solid", color="blue", weight=3]; 21.45/9.63 6252[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6252[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6252 -> 372[label="",style="solid", color="blue", weight=3]; 21.45/9.63 6253[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6253[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6253 -> 373[label="",style="solid", color="blue", weight=3]; 21.45/9.63 6254[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];358 -> 6254[label="",style="solid", color="blue", weight=9]; 21.45/9.63 6254 -> 374[label="",style="solid", color="blue", weight=3]; 21.45/9.63 359[label="xy91",fontsize=16,color="green",shape="box"];360[label="xy10",fontsize=16,color="green",shape="box"];356[label="List.deleteBy0 xy17 xy18 (==) xy19 xy20",fontsize=16,color="burlywood",shape="triangle"];6255[label="xy20/False",fontsize=10,color="white",style="solid",shape="box"];356 -> 6255[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6255 -> 375[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6256[label="xy20/True",fontsize=10,color="white",style="solid",shape="box"];356 -> 6256[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6256 -> 376[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 59[label="List.nubByNubBy' (==) (xy410 : xy411) (xy40 : [])",fontsize=16,color="black",shape="box"];59 -> 70[label="",style="solid", color="black", weight=3]; 21.45/9.63 60[label="List.nubByNubBy' (==) [] (xy40 : [])",fontsize=16,color="black",shape="box"];60 -> 71[label="",style="solid", color="black", weight=3]; 21.45/9.63 361[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];361 -> 405[label="",style="solid", color="black", weight=3]; 21.45/9.63 362[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];362 -> 406[label="",style="solid", color="black", weight=3]; 21.45/9.63 363[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];363 -> 407[label="",style="solid", color="black", weight=3]; 21.45/9.63 364[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];364 -> 408[label="",style="solid", color="black", weight=3]; 21.45/9.63 365[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];365 -> 409[label="",style="solid", color="black", weight=3]; 21.45/9.63 366[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];366 -> 410[label="",style="solid", color="black", weight=3]; 21.45/9.63 367[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];367 -> 411[label="",style="solid", color="black", weight=3]; 21.45/9.63 368[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];368 -> 412[label="",style="solid", color="black", weight=3]; 21.45/9.63 369[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];369 -> 413[label="",style="solid", color="black", weight=3]; 21.45/9.63 370[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];370 -> 414[label="",style="solid", color="black", weight=3]; 21.45/9.63 371[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];371 -> 415[label="",style="solid", color="black", weight=3]; 21.45/9.63 372[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];372 -> 416[label="",style="solid", color="black", weight=3]; 21.45/9.63 373[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];373 -> 417[label="",style="solid", color="black", weight=3]; 21.45/9.63 374[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];374 -> 418[label="",style="solid", color="black", weight=3]; 21.45/9.63 375[label="List.deleteBy0 xy17 xy18 (==) xy19 False",fontsize=16,color="black",shape="box"];375 -> 419[label="",style="solid", color="black", weight=3]; 21.45/9.63 376[label="List.deleteBy0 xy17 xy18 (==) xy19 True",fontsize=16,color="black",shape="box"];376 -> 420[label="",style="solid", color="black", weight=3]; 21.45/9.63 70[label="List.nubByNubBy'2 (==) (xy410 : xy411) (xy40 : [])",fontsize=16,color="black",shape="box"];70 -> 83[label="",style="solid", color="black", weight=3]; 21.45/9.63 71[label="List.nubByNubBy'3 (==) [] (xy40 : [])",fontsize=16,color="black",shape="box"];71 -> 84[label="",style="solid", color="black", weight=3]; 21.45/9.63 405[label="error []",fontsize=16,color="red",shape="box"];406[label="error []",fontsize=16,color="red",shape="box"];407[label="error []",fontsize=16,color="red",shape="box"];408[label="error []",fontsize=16,color="red",shape="box"];409[label="primEqInt xy10 xy90",fontsize=16,color="burlywood",shape="triangle"];6257[label="xy10/Pos xy100",fontsize=10,color="white",style="solid",shape="box"];409 -> 6257[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6257 -> 461[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6258[label="xy10/Neg xy100",fontsize=10,color="white",style="solid",shape="box"];409 -> 6258[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6258 -> 462[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 410[label="error []",fontsize=16,color="red",shape="box"];411[label="error []",fontsize=16,color="red",shape="box"];412[label="error []",fontsize=16,color="red",shape="box"];413[label="error []",fontsize=16,color="red",shape="box"];414[label="error []",fontsize=16,color="red",shape="box"];415[label="error []",fontsize=16,color="red",shape="box"];416[label="error []",fontsize=16,color="red",shape="box"];417[label="error []",fontsize=16,color="red",shape="box"];418[label="error []",fontsize=16,color="red",shape="box"];419[label="xy18 : List.deleteBy (==) xy19 xy17",fontsize=16,color="green",shape="box"];419 -> 463[label="",style="dashed", color="green", weight=3]; 21.45/9.63 420[label="xy17",fontsize=16,color="green",shape="box"];83[label="List.nubByNubBy'1 (==) xy410 xy411 (xy40 : []) (List.elem_by (==) xy410 (xy40 : []))",fontsize=16,color="black",shape="box"];83 -> 101[label="",style="solid", color="black", weight=3]; 21.45/9.63 84[label="[]",fontsize=16,color="green",shape="box"];461[label="primEqInt (Pos xy100) xy90",fontsize=16,color="burlywood",shape="box"];6259[label="xy100/Succ xy1000",fontsize=10,color="white",style="solid",shape="box"];461 -> 6259[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6259 -> 502[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6260[label="xy100/Zero",fontsize=10,color="white",style="solid",shape="box"];461 -> 6260[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6260 -> 503[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 462[label="primEqInt (Neg xy100) xy90",fontsize=16,color="burlywood",shape="box"];6261[label="xy100/Succ xy1000",fontsize=10,color="white",style="solid",shape="box"];462 -> 6261[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6261 -> 504[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6262[label="xy100/Zero",fontsize=10,color="white",style="solid",shape="box"];462 -> 6262[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6262 -> 505[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 463 -> 283[label="",style="dashed", color="red", weight=0]; 21.45/9.63 463[label="List.deleteBy (==) xy19 xy17",fontsize=16,color="magenta"];463 -> 506[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 463 -> 507[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 101[label="List.nubByNubBy'1 (==) xy410 xy411 (xy40 : []) ((==) xy40 xy410 || List.elem_by (==) xy410 [])",fontsize=16,color="black",shape="box"];101 -> 122[label="",style="solid", color="black", weight=3]; 21.45/9.63 502[label="primEqInt (Pos (Succ xy1000)) xy90",fontsize=16,color="burlywood",shape="box"];6263[label="xy90/Pos xy900",fontsize=10,color="white",style="solid",shape="box"];502 -> 6263[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6263 -> 544[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6264[label="xy90/Neg xy900",fontsize=10,color="white",style="solid",shape="box"];502 -> 6264[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6264 -> 545[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 503[label="primEqInt (Pos Zero) xy90",fontsize=16,color="burlywood",shape="box"];6265[label="xy90/Pos xy900",fontsize=10,color="white",style="solid",shape="box"];503 -> 6265[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6265 -> 546[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6266[label="xy90/Neg xy900",fontsize=10,color="white",style="solid",shape="box"];503 -> 6266[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6266 -> 547[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 504[label="primEqInt (Neg (Succ xy1000)) xy90",fontsize=16,color="burlywood",shape="box"];6267[label="xy90/Pos xy900",fontsize=10,color="white",style="solid",shape="box"];504 -> 6267[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6267 -> 548[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6268[label="xy90/Neg xy900",fontsize=10,color="white",style="solid",shape="box"];504 -> 6268[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6268 -> 549[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 505[label="primEqInt (Neg Zero) xy90",fontsize=16,color="burlywood",shape="box"];6269[label="xy90/Pos xy900",fontsize=10,color="white",style="solid",shape="box"];505 -> 6269[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6269 -> 550[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6270[label="xy90/Neg xy900",fontsize=10,color="white",style="solid",shape="box"];505 -> 6270[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6270 -> 551[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 506[label="xy19",fontsize=16,color="green",shape="box"];507[label="xy17",fontsize=16,color="green",shape="box"];122 -> 6191[label="",style="dashed", color="red", weight=0]; 21.45/9.63 122[label="List.nubByNubBy'1 primEqInt xy410 xy411 (xy40 : []) (primEqInt xy40 xy410 || List.elem_by primEqInt xy410 [])",fontsize=16,color="magenta"];122 -> 6192[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 122 -> 6193[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 122 -> 6194[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 122 -> 6195[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 122 -> 6196[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 122 -> 6197[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 544[label="primEqInt (Pos (Succ xy1000)) (Pos xy900)",fontsize=16,color="burlywood",shape="box"];6271[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];544 -> 6271[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6271 -> 571[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6272[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];544 -> 6272[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6272 -> 572[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 545[label="primEqInt (Pos (Succ xy1000)) (Neg xy900)",fontsize=16,color="black",shape="box"];545 -> 573[label="",style="solid", color="black", weight=3]; 21.45/9.63 546[label="primEqInt (Pos Zero) (Pos xy900)",fontsize=16,color="burlywood",shape="box"];6273[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];546 -> 6273[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6273 -> 574[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6274[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];546 -> 6274[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6274 -> 575[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 547[label="primEqInt (Pos Zero) (Neg xy900)",fontsize=16,color="burlywood",shape="box"];6275[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];547 -> 6275[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6275 -> 576[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6276[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];547 -> 6276[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6276 -> 577[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 548[label="primEqInt (Neg (Succ xy1000)) (Pos xy900)",fontsize=16,color="black",shape="box"];548 -> 578[label="",style="solid", color="black", weight=3]; 21.45/9.63 549[label="primEqInt (Neg (Succ xy1000)) (Neg xy900)",fontsize=16,color="burlywood",shape="box"];6277[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];549 -> 6277[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6277 -> 579[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6278[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];549 -> 6278[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6278 -> 580[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 550[label="primEqInt (Neg Zero) (Pos xy900)",fontsize=16,color="burlywood",shape="box"];6279[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];550 -> 6279[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6279 -> 581[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6280[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];550 -> 6280[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6280 -> 582[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 551[label="primEqInt (Neg Zero) (Neg xy900)",fontsize=16,color="burlywood",shape="box"];6281[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];551 -> 6281[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6281 -> 583[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6282[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];551 -> 6282[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6282 -> 584[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6192[label="xy410",fontsize=16,color="green",shape="box"];6193[label="[]",fontsize=16,color="green",shape="box"];6194[label="[]",fontsize=16,color="green",shape="box"];6195 -> 409[label="",style="dashed", color="red", weight=0]; 21.45/9.63 6195[label="primEqInt xy40 xy410",fontsize=16,color="magenta"];6195 -> 6199[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 6195 -> 6200[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 6196[label="xy40",fontsize=16,color="green",shape="box"];6197[label="xy411",fontsize=16,color="green",shape="box"];6191[label="List.nubByNubBy'1 primEqInt xy381 xy382 (xy383 : xy384) (xy387 || List.elem_by primEqInt xy381 xy386)",fontsize=16,color="burlywood",shape="triangle"];6283[label="xy387/False",fontsize=10,color="white",style="solid",shape="box"];6191 -> 6283[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6283 -> 6201[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6284[label="xy387/True",fontsize=10,color="white",style="solid",shape="box"];6191 -> 6284[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6284 -> 6202[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 571[label="primEqInt (Pos (Succ xy1000)) (Pos (Succ xy9000))",fontsize=16,color="black",shape="box"];571 -> 589[label="",style="solid", color="black", weight=3]; 21.45/9.63 572[label="primEqInt (Pos (Succ xy1000)) (Pos Zero)",fontsize=16,color="black",shape="box"];572 -> 590[label="",style="solid", color="black", weight=3]; 21.45/9.63 573[label="False",fontsize=16,color="green",shape="box"];574[label="primEqInt (Pos Zero) (Pos (Succ xy9000))",fontsize=16,color="black",shape="box"];574 -> 591[label="",style="solid", color="black", weight=3]; 21.45/9.63 575[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];575 -> 592[label="",style="solid", color="black", weight=3]; 21.45/9.63 576[label="primEqInt (Pos Zero) (Neg (Succ xy9000))",fontsize=16,color="black",shape="box"];576 -> 593[label="",style="solid", color="black", weight=3]; 21.45/9.63 577[label="primEqInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];577 -> 594[label="",style="solid", color="black", weight=3]; 21.45/9.63 578[label="False",fontsize=16,color="green",shape="box"];579[label="primEqInt (Neg (Succ xy1000)) (Neg (Succ xy9000))",fontsize=16,color="black",shape="box"];579 -> 595[label="",style="solid", color="black", weight=3]; 21.45/9.63 580[label="primEqInt (Neg (Succ xy1000)) (Neg Zero)",fontsize=16,color="black",shape="box"];580 -> 596[label="",style="solid", color="black", weight=3]; 21.45/9.63 581[label="primEqInt (Neg Zero) (Pos (Succ xy9000))",fontsize=16,color="black",shape="box"];581 -> 597[label="",style="solid", color="black", weight=3]; 21.45/9.63 582[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];582 -> 598[label="",style="solid", color="black", weight=3]; 21.45/9.63 583[label="primEqInt (Neg Zero) (Neg (Succ xy9000))",fontsize=16,color="black",shape="box"];583 -> 599[label="",style="solid", color="black", weight=3]; 21.45/9.63 584[label="primEqInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];584 -> 600[label="",style="solid", color="black", weight=3]; 21.45/9.63 6199[label="xy410",fontsize=16,color="green",shape="box"];6200[label="xy40",fontsize=16,color="green",shape="box"];6201[label="List.nubByNubBy'1 primEqInt xy381 xy382 (xy383 : xy384) (False || List.elem_by primEqInt xy381 xy386)",fontsize=16,color="black",shape="box"];6201 -> 6203[label="",style="solid", color="black", weight=3]; 21.45/9.63 6202[label="List.nubByNubBy'1 primEqInt xy381 xy382 (xy383 : xy384) (True || List.elem_by primEqInt xy381 xy386)",fontsize=16,color="black",shape="box"];6202 -> 6204[label="",style="solid", color="black", weight=3]; 21.45/9.63 589[label="primEqNat xy1000 xy9000",fontsize=16,color="burlywood",shape="triangle"];6285[label="xy1000/Succ xy10000",fontsize=10,color="white",style="solid",shape="box"];589 -> 6285[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6285 -> 637[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6286[label="xy1000/Zero",fontsize=10,color="white",style="solid",shape="box"];589 -> 6286[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6286 -> 638[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 590[label="False",fontsize=16,color="green",shape="box"];591[label="False",fontsize=16,color="green",shape="box"];592[label="True",fontsize=16,color="green",shape="box"];593[label="False",fontsize=16,color="green",shape="box"];594[label="True",fontsize=16,color="green",shape="box"];595 -> 589[label="",style="dashed", color="red", weight=0]; 21.45/9.63 595[label="primEqNat xy1000 xy9000",fontsize=16,color="magenta"];595 -> 639[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 595 -> 640[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 596[label="False",fontsize=16,color="green",shape="box"];597[label="False",fontsize=16,color="green",shape="box"];598[label="True",fontsize=16,color="green",shape="box"];599[label="False",fontsize=16,color="green",shape="box"];600[label="True",fontsize=16,color="green",shape="box"];6203[label="List.nubByNubBy'1 primEqInt xy381 xy382 (xy383 : xy384) (List.elem_by primEqInt xy381 xy386)",fontsize=16,color="burlywood",shape="triangle"];6287[label="xy386/xy3860 : xy3861",fontsize=10,color="white",style="solid",shape="box"];6203 -> 6287[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6287 -> 6205[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6288[label="xy386/[]",fontsize=10,color="white",style="solid",shape="box"];6203 -> 6288[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6288 -> 6206[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6204[label="List.nubByNubBy'1 primEqInt xy381 xy382 (xy383 : xy384) True",fontsize=16,color="black",shape="box"];6204 -> 6207[label="",style="solid", color="black", weight=3]; 21.45/9.63 637[label="primEqNat (Succ xy10000) xy9000",fontsize=16,color="burlywood",shape="box"];6289[label="xy9000/Succ xy90000",fontsize=10,color="white",style="solid",shape="box"];637 -> 6289[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6289 -> 647[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6290[label="xy9000/Zero",fontsize=10,color="white",style="solid",shape="box"];637 -> 6290[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6290 -> 648[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 638[label="primEqNat Zero xy9000",fontsize=16,color="burlywood",shape="box"];6291[label="xy9000/Succ xy90000",fontsize=10,color="white",style="solid",shape="box"];638 -> 6291[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6291 -> 649[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6292[label="xy9000/Zero",fontsize=10,color="white",style="solid",shape="box"];638 -> 6292[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6292 -> 650[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 639[label="xy1000",fontsize=16,color="green",shape="box"];640[label="xy9000",fontsize=16,color="green",shape="box"];6205[label="List.nubByNubBy'1 primEqInt xy381 xy382 (xy383 : xy384) (List.elem_by primEqInt xy381 (xy3860 : xy3861))",fontsize=16,color="black",shape="box"];6205 -> 6208[label="",style="solid", color="black", weight=3]; 21.45/9.63 6206[label="List.nubByNubBy'1 primEqInt xy381 xy382 (xy383 : xy384) (List.elem_by primEqInt xy381 [])",fontsize=16,color="black",shape="box"];6206 -> 6209[label="",style="solid", color="black", weight=3]; 21.45/9.63 6207[label="List.nubByNubBy' primEqInt xy382 (xy383 : xy384)",fontsize=16,color="burlywood",shape="triangle"];6293[label="xy382/xy3820 : xy3821",fontsize=10,color="white",style="solid",shape="box"];6207 -> 6293[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6293 -> 6210[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 6294[label="xy382/[]",fontsize=10,color="white",style="solid",shape="box"];6207 -> 6294[label="",style="solid", color="burlywood", weight=9]; 21.45/9.63 6294 -> 6211[label="",style="solid", color="burlywood", weight=3]; 21.45/9.63 647[label="primEqNat (Succ xy10000) (Succ xy90000)",fontsize=16,color="black",shape="box"];647 -> 653[label="",style="solid", color="black", weight=3]; 21.45/9.63 648[label="primEqNat (Succ xy10000) Zero",fontsize=16,color="black",shape="box"];648 -> 654[label="",style="solid", color="black", weight=3]; 21.45/9.63 649[label="primEqNat Zero (Succ xy90000)",fontsize=16,color="black",shape="box"];649 -> 655[label="",style="solid", color="black", weight=3]; 21.45/9.63 650[label="primEqNat Zero Zero",fontsize=16,color="black",shape="box"];650 -> 656[label="",style="solid", color="black", weight=3]; 21.45/9.63 6208 -> 6191[label="",style="dashed", color="red", weight=0]; 21.45/9.63 6208[label="List.nubByNubBy'1 primEqInt xy381 xy382 (xy383 : xy384) (primEqInt xy3860 xy381 || List.elem_by primEqInt xy381 xy3861)",fontsize=16,color="magenta"];6208 -> 6212[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 6208 -> 6213[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 6209[label="List.nubByNubBy'1 primEqInt xy381 xy382 (xy383 : xy384) False",fontsize=16,color="black",shape="box"];6209 -> 6214[label="",style="solid", color="black", weight=3]; 21.45/9.63 6210[label="List.nubByNubBy' primEqInt (xy3820 : xy3821) (xy383 : xy384)",fontsize=16,color="black",shape="box"];6210 -> 6215[label="",style="solid", color="black", weight=3]; 21.45/9.63 6211[label="List.nubByNubBy' primEqInt [] (xy383 : xy384)",fontsize=16,color="black",shape="box"];6211 -> 6216[label="",style="solid", color="black", weight=3]; 21.45/9.63 653 -> 589[label="",style="dashed", color="red", weight=0]; 21.45/9.63 653[label="primEqNat xy10000 xy90000",fontsize=16,color="magenta"];653 -> 678[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 653 -> 679[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 654[label="False",fontsize=16,color="green",shape="box"];655[label="False",fontsize=16,color="green",shape="box"];656[label="True",fontsize=16,color="green",shape="box"];6212[label="xy3861",fontsize=16,color="green",shape="box"];6213 -> 409[label="",style="dashed", color="red", weight=0]; 21.45/9.63 6213[label="primEqInt xy3860 xy381",fontsize=16,color="magenta"];6213 -> 6217[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 6213 -> 6218[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 6214[label="List.nubByNubBy'0 primEqInt xy381 xy382 (xy383 : xy384) otherwise",fontsize=16,color="black",shape="box"];6214 -> 6219[label="",style="solid", color="black", weight=3]; 21.45/9.63 6215[label="List.nubByNubBy'2 primEqInt (xy3820 : xy3821) (xy383 : xy384)",fontsize=16,color="black",shape="box"];6215 -> 6220[label="",style="solid", color="black", weight=3]; 21.45/9.63 6216[label="List.nubByNubBy'3 primEqInt [] (xy383 : xy384)",fontsize=16,color="black",shape="box"];6216 -> 6221[label="",style="solid", color="black", weight=3]; 21.45/9.63 678[label="xy10000",fontsize=16,color="green",shape="box"];679[label="xy90000",fontsize=16,color="green",shape="box"];6217[label="xy381",fontsize=16,color="green",shape="box"];6218[label="xy3860",fontsize=16,color="green",shape="box"];6219[label="List.nubByNubBy'0 primEqInt xy381 xy382 (xy383 : xy384) True",fontsize=16,color="black",shape="box"];6219 -> 6222[label="",style="solid", color="black", weight=3]; 21.45/9.63 6220 -> 6203[label="",style="dashed", color="red", weight=0]; 21.45/9.63 6220[label="List.nubByNubBy'1 primEqInt xy3820 xy3821 (xy383 : xy384) (List.elem_by primEqInt xy3820 (xy383 : xy384))",fontsize=16,color="magenta"];6220 -> 6223[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 6220 -> 6224[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 6220 -> 6225[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 6221[label="[]",fontsize=16,color="green",shape="box"];6222[label="xy381 : List.nubByNubBy' primEqInt xy382 (xy381 : xy383 : xy384)",fontsize=16,color="green",shape="box"];6222 -> 6226[label="",style="dashed", color="green", weight=3]; 21.45/9.63 6223[label="xy3820",fontsize=16,color="green",shape="box"];6224[label="xy383 : xy384",fontsize=16,color="green",shape="box"];6225[label="xy3821",fontsize=16,color="green",shape="box"];6226 -> 6207[label="",style="dashed", color="red", weight=0]; 21.45/9.63 6226[label="List.nubByNubBy' primEqInt xy382 (xy381 : xy383 : xy384)",fontsize=16,color="magenta"];6226 -> 6227[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 6226 -> 6228[label="",style="dashed", color="magenta", weight=3]; 21.45/9.63 6227[label="xy383 : xy384",fontsize=16,color="green",shape="box"];6228[label="xy381",fontsize=16,color="green",shape="box"];} 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (10) 21.45/9.63 Complex Obligation (AND) 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (11) 21.45/9.63 Obligation: 21.45/9.63 Q DP problem: 21.45/9.63 The TRS P consists of the following rules: 21.45/9.63 21.45/9.63 new_psPs(:(xy80, xy81), xy9, xy10, xy11, ba) -> new_psPs(xy81, xy9, xy10, xy11, ba) 21.45/9.63 21.45/9.63 R is empty. 21.45/9.63 Q is empty. 21.45/9.63 We have to consider all minimal (P,Q,R)-chains. 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (12) QDPSizeChangeProof (EQUIVALENT) 21.45/9.63 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. 21.45/9.63 21.45/9.63 From the DPs we obtained the following set of size-change graphs: 21.45/9.63 *new_psPs(:(xy80, xy81), xy9, xy10, xy11, ba) -> new_psPs(xy81, xy9, xy10, xy11, ba) 21.45/9.63 The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5 21.45/9.63 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (13) 21.45/9.63 YES 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (14) 21.45/9.63 Obligation: 21.45/9.63 Q DP problem: 21.45/9.63 The TRS P consists of the following rules: 21.45/9.63 21.45/9.63 new_deleteBy0(xy17, xy18, xy19, False, ba) -> new_deleteBy(xy19, xy17, ba) 21.45/9.63 new_deleteBy(xy10, :(xy90, xy91), bb) -> new_deleteBy0(xy91, xy90, xy10, new_esEs(xy10, xy90, bb), bb) 21.45/9.63 21.45/9.63 The TRS R consists of the following rules: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) -> True 21.45/9.63 new_esEs(xy10, xy90, app(ty_Ratio, cd)) -> error([]) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 21.45/9.63 new_esEs(xy10, xy90, ty_Integer) -> error([]) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_esEs(xy10, xy90, app(app(ty_@2, bh), ca)) -> error([]) 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_esEs(xy10, xy90, ty_@0) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Int) -> new_primEqInt(xy10, xy90) 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_esEs(xy10, xy90, ty_Double) -> error([]) 21.45/9.63 new_primEqNat0(Succ(xy10000), Zero) -> False 21.45/9.63 new_primEqNat0(Zero, Succ(xy90000)) -> False 21.45/9.63 new_esEs(xy10, xy90, app(app(app(ty_@3, be), bf), bg)) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(ty_[], bc)) -> error([]) 21.45/9.63 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 21.45/9.63 new_esEs(xy10, xy90, ty_Ordering) -> error([]) 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_esEs(xy10, xy90, ty_Float) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Bool) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(app(ty_Either, cb), cc)) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Char) -> error([]) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 21.45/9.63 new_esEs(xy10, xy90, app(ty_Maybe, bd)) -> error([]) 21.45/9.63 21.45/9.63 The set Q consists of the following terms: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 21.45/9.63 new_esEs(x0, x1, app(ty_Ratio, x2)) 21.45/9.63 new_esEs(x0, x1, app(app(ty_@2, x2), x3)) 21.45/9.63 new_esEs(x0, x1, ty_Char) 21.45/9.63 new_esEs(x0, x1, ty_Double) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) 21.45/9.63 new_esEs(x0, x1, app(ty_[], x2)) 21.45/9.63 new_primEqNat0(Succ(x0), Zero) 21.45/9.63 new_esEs(x0, x1, ty_@0) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 21.45/9.63 new_esEs(x0, x1, ty_Float) 21.45/9.63 new_esEs(x0, x1, ty_Int) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 21.45/9.63 new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 21.45/9.63 new_esEs(x0, x1, app(app(ty_Either, x2), x3)) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 21.45/9.63 new_esEs(x0, x1, ty_Integer) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 21.45/9.63 new_primEqNat0(Succ(x0), Succ(x1)) 21.45/9.63 new_esEs(x0, x1, app(ty_Maybe, x2)) 21.45/9.63 new_primEqNat0(Zero, Succ(x0)) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 21.45/9.63 new_esEs(x0, x1, ty_Ordering) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) 21.45/9.63 new_esEs(x0, x1, ty_Bool) 21.45/9.63 21.45/9.63 We have to consider all minimal (P,Q,R)-chains. 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (15) QDPSizeChangeProof (EQUIVALENT) 21.45/9.63 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. 21.45/9.63 21.45/9.63 From the DPs we obtained the following set of size-change graphs: 21.45/9.63 *new_deleteBy(xy10, :(xy90, xy91), bb) -> new_deleteBy0(xy91, xy90, xy10, new_esEs(xy10, xy90, bb), bb) 21.45/9.63 The graph contains the following edges 2 > 1, 2 > 2, 1 >= 3, 3 >= 5 21.45/9.63 21.45/9.63 21.45/9.63 *new_deleteBy0(xy17, xy18, xy19, False, ba) -> new_deleteBy(xy19, xy17, ba) 21.45/9.63 The graph contains the following edges 3 >= 1, 1 >= 2, 5 >= 3 21.45/9.63 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (16) 21.45/9.63 YES 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (17) 21.45/9.63 Obligation: 21.45/9.63 Q DP problem: 21.45/9.63 The TRS P consists of the following rules: 21.45/9.63 21.45/9.63 new_nubByNubBy'1(xy381, xy382, xy383, xy384, False, []) -> new_nubByNubBy'(xy382, xy381, :(xy383, xy384)) 21.45/9.63 new_nubByNubBy'1(xy381, xy382, xy383, xy384, False, :(xy3860, xy3861)) -> new_nubByNubBy'1(xy381, xy382, xy383, xy384, new_primEqInt(xy3860, xy381), xy3861) 21.45/9.63 new_nubByNubBy'(:(xy3820, xy3821), xy383, xy384) -> new_nubByNubBy'10(xy3820, xy3821, xy383, xy384, :(xy383, xy384)) 21.45/9.63 new_nubByNubBy'10(xy381, xy382, xy383, xy384, []) -> new_nubByNubBy'(xy382, xy381, :(xy383, xy384)) 21.45/9.63 new_nubByNubBy'1(xy381, :(xy3820, xy3821), xy383, xy384, True, xy386) -> new_nubByNubBy'10(xy3820, xy3821, xy383, xy384, :(xy383, xy384)) 21.45/9.63 new_nubByNubBy'10(xy381, xy382, xy383, xy384, :(xy3860, xy3861)) -> new_nubByNubBy'1(xy381, xy382, xy383, xy384, new_primEqInt(xy3860, xy381), xy3861) 21.45/9.63 21.45/9.63 The TRS R consists of the following rules: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) -> True 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 21.45/9.63 new_primEqNat0(Succ(xy10000), Zero) -> False 21.45/9.63 new_primEqNat0(Zero, Succ(xy90000)) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 21.45/9.63 21.45/9.63 The set Q consists of the following terms: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 21.45/9.63 new_primEqNat0(Succ(x0), Succ(x1)) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) 21.45/9.63 new_primEqNat0(Zero, Succ(x0)) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 21.45/9.63 new_primEqNat0(Succ(x0), Zero) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 21.45/9.63 21.45/9.63 We have to consider all minimal (P,Q,R)-chains. 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (18) DependencyGraphProof (EQUIVALENT) 21.45/9.63 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (19) 21.45/9.63 Obligation: 21.45/9.63 Q DP problem: 21.45/9.63 The TRS P consists of the following rules: 21.45/9.63 21.45/9.63 new_nubByNubBy'(:(xy3820, xy3821), xy383, xy384) -> new_nubByNubBy'10(xy3820, xy3821, xy383, xy384, :(xy383, xy384)) 21.45/9.63 new_nubByNubBy'10(xy381, xy382, xy383, xy384, :(xy3860, xy3861)) -> new_nubByNubBy'1(xy381, xy382, xy383, xy384, new_primEqInt(xy3860, xy381), xy3861) 21.45/9.63 new_nubByNubBy'1(xy381, xy382, xy383, xy384, False, []) -> new_nubByNubBy'(xy382, xy381, :(xy383, xy384)) 21.45/9.63 new_nubByNubBy'1(xy381, xy382, xy383, xy384, False, :(xy3860, xy3861)) -> new_nubByNubBy'1(xy381, xy382, xy383, xy384, new_primEqInt(xy3860, xy381), xy3861) 21.45/9.63 new_nubByNubBy'1(xy381, :(xy3820, xy3821), xy383, xy384, True, xy386) -> new_nubByNubBy'10(xy3820, xy3821, xy383, xy384, :(xy383, xy384)) 21.45/9.63 21.45/9.63 The TRS R consists of the following rules: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) -> True 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 21.45/9.63 new_primEqNat0(Succ(xy10000), Zero) -> False 21.45/9.63 new_primEqNat0(Zero, Succ(xy90000)) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 21.45/9.63 21.45/9.63 The set Q consists of the following terms: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 21.45/9.63 new_primEqNat0(Succ(x0), Succ(x1)) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) 21.45/9.63 new_primEqNat0(Zero, Succ(x0)) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 21.45/9.63 new_primEqNat0(Succ(x0), Zero) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 21.45/9.63 21.45/9.63 We have to consider all minimal (P,Q,R)-chains. 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (20) TransformationProof (EQUIVALENT) 21.45/9.63 By instantiating [LPAR04] the rule new_nubByNubBy'10(xy381, xy382, xy383, xy384, :(xy3860, xy3861)) -> new_nubByNubBy'1(xy381, xy382, xy383, xy384, new_primEqInt(xy3860, xy381), xy3861) we obtained the following new rules [LPAR04]: 21.45/9.63 21.45/9.63 (new_nubByNubBy'10(z0, z1, z2, z3, :(z2, z3)) -> new_nubByNubBy'1(z0, z1, z2, z3, new_primEqInt(z2, z0), z3),new_nubByNubBy'10(z0, z1, z2, z3, :(z2, z3)) -> new_nubByNubBy'1(z0, z1, z2, z3, new_primEqInt(z2, z0), z3)) 21.45/9.63 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (21) 21.45/9.63 Obligation: 21.45/9.63 Q DP problem: 21.45/9.63 The TRS P consists of the following rules: 21.45/9.63 21.45/9.63 new_nubByNubBy'(:(xy3820, xy3821), xy383, xy384) -> new_nubByNubBy'10(xy3820, xy3821, xy383, xy384, :(xy383, xy384)) 21.45/9.63 new_nubByNubBy'1(xy381, xy382, xy383, xy384, False, []) -> new_nubByNubBy'(xy382, xy381, :(xy383, xy384)) 21.45/9.63 new_nubByNubBy'1(xy381, xy382, xy383, xy384, False, :(xy3860, xy3861)) -> new_nubByNubBy'1(xy381, xy382, xy383, xy384, new_primEqInt(xy3860, xy381), xy3861) 21.45/9.63 new_nubByNubBy'1(xy381, :(xy3820, xy3821), xy383, xy384, True, xy386) -> new_nubByNubBy'10(xy3820, xy3821, xy383, xy384, :(xy383, xy384)) 21.45/9.63 new_nubByNubBy'10(z0, z1, z2, z3, :(z2, z3)) -> new_nubByNubBy'1(z0, z1, z2, z3, new_primEqInt(z2, z0), z3) 21.45/9.63 21.45/9.63 The TRS R consists of the following rules: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) -> True 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 21.45/9.63 new_primEqNat0(Succ(xy10000), Zero) -> False 21.45/9.63 new_primEqNat0(Zero, Succ(xy90000)) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 21.45/9.63 21.45/9.63 The set Q consists of the following terms: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 21.45/9.63 new_primEqNat0(Succ(x0), Succ(x1)) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) 21.45/9.63 new_primEqNat0(Zero, Succ(x0)) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 21.45/9.63 new_primEqNat0(Succ(x0), Zero) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 21.45/9.63 21.45/9.63 We have to consider all minimal (P,Q,R)-chains. 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (22) QDPSizeChangeProof (EQUIVALENT) 21.45/9.63 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. 21.45/9.63 21.45/9.63 From the DPs we obtained the following set of size-change graphs: 21.45/9.63 *new_nubByNubBy'10(z0, z1, z2, z3, :(z2, z3)) -> new_nubByNubBy'1(z0, z1, z2, z3, new_primEqInt(z2, z0), z3) 21.45/9.63 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 5 > 3, 4 >= 4, 5 > 4, 4 >= 6, 5 > 6 21.45/9.63 21.45/9.63 21.45/9.63 *new_nubByNubBy'1(xy381, xy382, xy383, xy384, False, []) -> new_nubByNubBy'(xy382, xy381, :(xy383, xy384)) 21.45/9.63 The graph contains the following edges 2 >= 1, 1 >= 2 21.45/9.63 21.45/9.63 21.45/9.63 *new_nubByNubBy'(:(xy3820, xy3821), xy383, xy384) -> new_nubByNubBy'10(xy3820, xy3821, xy383, xy384, :(xy383, xy384)) 21.45/9.63 The graph contains the following edges 1 > 1, 1 > 2, 2 >= 3, 3 >= 4 21.45/9.63 21.45/9.63 21.45/9.63 *new_nubByNubBy'1(xy381, xy382, xy383, xy384, False, :(xy3860, xy3861)) -> new_nubByNubBy'1(xy381, xy382, xy383, xy384, new_primEqInt(xy3860, xy381), xy3861) 21.45/9.63 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 6 > 6 21.45/9.63 21.45/9.63 21.45/9.63 *new_nubByNubBy'1(xy381, :(xy3820, xy3821), xy383, xy384, True, xy386) -> new_nubByNubBy'10(xy3820, xy3821, xy383, xy384, :(xy383, xy384)) 21.45/9.63 The graph contains the following edges 2 > 1, 2 > 2, 3 >= 3, 4 >= 4 21.45/9.63 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (23) 21.45/9.63 YES 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (24) 21.45/9.63 Obligation: 21.45/9.63 Q DP problem: 21.45/9.63 The TRS P consists of the following rules: 21.45/9.63 21.45/9.63 new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_flip(xy9, xy10, ba), xy110, xy111, ba) 21.45/9.63 21.45/9.63 The TRS R consists of the following rules: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) -> True 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 21.45/9.63 new_esEs(xy10, xy90, app(ty_Ratio, cd)) -> error([]) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 21.45/9.63 new_esEs(xy10, xy90, ty_Integer) -> error([]) 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_esEs(xy10, xy90, app(app(ty_@2, bh), ca)) -> error([]) 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_esEs(xy10, xy90, ty_@0) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Int) -> new_primEqInt(xy10, xy90) 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_esEs(xy10, xy90, ty_Double) -> error([]) 21.45/9.63 new_deleteBy1(xy10, :(xy90, xy91), ba) -> new_deleteBy00(xy91, xy90, xy10, new_esEs(xy10, xy90, ba), ba) 21.45/9.63 new_deleteBy00(xy17, xy18, xy19, True, bb) -> xy17 21.45/9.63 new_primEqNat0(Succ(xy10000), Zero) -> False 21.45/9.63 new_primEqNat0(Zero, Succ(xy90000)) -> False 21.45/9.63 new_esEs(xy10, xy90, app(app(app(ty_@3, be), bf), bg)) -> error([]) 21.45/9.63 new_flip(xy9, xy10, ba) -> new_deleteBy1(xy10, xy9, ba) 21.45/9.63 new_esEs(xy10, xy90, app(ty_[], bc)) -> error([]) 21.45/9.63 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 21.45/9.63 new_esEs(xy10, xy90, ty_Ordering) -> error([]) 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_esEs(xy10, xy90, ty_Float) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Bool) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(app(ty_Either, cb), cc)) -> error([]) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 21.45/9.63 new_esEs(xy10, xy90, ty_Char) -> error([]) 21.45/9.63 new_deleteBy1(xy10, [], ba) -> [] 21.45/9.63 new_esEs(xy10, xy90, app(ty_Maybe, bd)) -> error([]) 21.45/9.63 new_deleteBy00(xy17, xy18, xy19, False, bb) -> :(xy18, new_deleteBy1(xy19, xy17, bb)) 21.45/9.63 21.45/9.63 The set Q consists of the following terms: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 21.45/9.63 new_esEs(x0, x1, app(ty_Ratio, x2)) 21.45/9.63 new_esEs(x0, x1, app(app(ty_@2, x2), x3)) 21.45/9.63 new_esEs(x0, x1, ty_Char) 21.45/9.63 new_esEs(x0, x1, ty_Double) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) 21.45/9.63 new_esEs(x0, x1, app(ty_[], x2)) 21.45/9.63 new_primEqNat0(Succ(x0), Zero) 21.45/9.63 new_esEs(x0, x1, ty_@0) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 21.45/9.63 new_esEs(x0, x1, ty_Float) 21.45/9.63 new_esEs(x0, x1, ty_Int) 21.45/9.63 new_flip(x0, x1, x2) 21.45/9.63 new_deleteBy00(x0, x1, x2, True, x3) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 21.45/9.63 new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 21.45/9.63 new_esEs(x0, x1, app(app(ty_Either, x2), x3)) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 21.45/9.63 new_deleteBy1(x0, [], x1) 21.45/9.63 new_esEs(x0, x1, ty_Integer) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 21.45/9.63 new_primEqNat0(Succ(x0), Succ(x1)) 21.45/9.63 new_deleteBy00(x0, x1, x2, False, x3) 21.45/9.63 new_esEs(x0, x1, app(ty_Maybe, x2)) 21.45/9.63 new_primEqNat0(Zero, Succ(x0)) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 21.45/9.63 new_esEs(x0, x1, ty_Ordering) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) 21.45/9.63 new_esEs(x0, x1, ty_Bool) 21.45/9.63 new_deleteBy1(x0, :(x1, x2), x3) 21.45/9.63 21.45/9.63 We have to consider all minimal (P,Q,R)-chains. 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (25) TransformationProof (EQUIVALENT) 21.45/9.63 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]: 21.45/9.63 21.45/9.63 (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)) 21.45/9.63 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (26) 21.45/9.63 Obligation: 21.45/9.63 Q DP problem: 21.45/9.63 The TRS P consists of the following rules: 21.45/9.63 21.45/9.63 new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba) 21.45/9.63 21.45/9.63 The TRS R consists of the following rules: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) -> True 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 21.45/9.63 new_esEs(xy10, xy90, app(ty_Ratio, cd)) -> error([]) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 21.45/9.63 new_esEs(xy10, xy90, ty_Integer) -> error([]) 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_esEs(xy10, xy90, app(app(ty_@2, bh), ca)) -> error([]) 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_esEs(xy10, xy90, ty_@0) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Int) -> new_primEqInt(xy10, xy90) 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_esEs(xy10, xy90, ty_Double) -> error([]) 21.45/9.63 new_deleteBy1(xy10, :(xy90, xy91), ba) -> new_deleteBy00(xy91, xy90, xy10, new_esEs(xy10, xy90, ba), ba) 21.45/9.63 new_deleteBy00(xy17, xy18, xy19, True, bb) -> xy17 21.45/9.63 new_primEqNat0(Succ(xy10000), Zero) -> False 21.45/9.63 new_primEqNat0(Zero, Succ(xy90000)) -> False 21.45/9.63 new_esEs(xy10, xy90, app(app(app(ty_@3, be), bf), bg)) -> error([]) 21.45/9.63 new_flip(xy9, xy10, ba) -> new_deleteBy1(xy10, xy9, ba) 21.45/9.63 new_esEs(xy10, xy90, app(ty_[], bc)) -> error([]) 21.45/9.63 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 21.45/9.63 new_esEs(xy10, xy90, ty_Ordering) -> error([]) 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_esEs(xy10, xy90, ty_Float) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Bool) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(app(ty_Either, cb), cc)) -> error([]) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 21.45/9.63 new_esEs(xy10, xy90, ty_Char) -> error([]) 21.45/9.63 new_deleteBy1(xy10, [], ba) -> [] 21.45/9.63 new_esEs(xy10, xy90, app(ty_Maybe, bd)) -> error([]) 21.45/9.63 new_deleteBy00(xy17, xy18, xy19, False, bb) -> :(xy18, new_deleteBy1(xy19, xy17, bb)) 21.45/9.63 21.45/9.63 The set Q consists of the following terms: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 21.45/9.63 new_esEs(x0, x1, app(ty_Ratio, x2)) 21.45/9.63 new_esEs(x0, x1, app(app(ty_@2, x2), x3)) 21.45/9.63 new_esEs(x0, x1, ty_Char) 21.45/9.63 new_esEs(x0, x1, ty_Double) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) 21.45/9.63 new_esEs(x0, x1, app(ty_[], x2)) 21.45/9.63 new_primEqNat0(Succ(x0), Zero) 21.45/9.63 new_esEs(x0, x1, ty_@0) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 21.45/9.63 new_esEs(x0, x1, ty_Float) 21.45/9.63 new_esEs(x0, x1, ty_Int) 21.45/9.63 new_flip(x0, x1, x2) 21.45/9.63 new_deleteBy00(x0, x1, x2, True, x3) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 21.45/9.63 new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 21.45/9.63 new_esEs(x0, x1, app(app(ty_Either, x2), x3)) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 21.45/9.63 new_deleteBy1(x0, [], x1) 21.45/9.63 new_esEs(x0, x1, ty_Integer) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 21.45/9.63 new_primEqNat0(Succ(x0), Succ(x1)) 21.45/9.63 new_deleteBy00(x0, x1, x2, False, x3) 21.45/9.63 new_esEs(x0, x1, app(ty_Maybe, x2)) 21.45/9.63 new_primEqNat0(Zero, Succ(x0)) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 21.45/9.63 new_esEs(x0, x1, ty_Ordering) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) 21.45/9.63 new_esEs(x0, x1, ty_Bool) 21.45/9.63 new_deleteBy1(x0, :(x1, x2), x3) 21.45/9.63 21.45/9.63 We have to consider all minimal (P,Q,R)-chains. 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (27) UsableRulesProof (EQUIVALENT) 21.45/9.63 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. 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (28) 21.45/9.63 Obligation: 21.45/9.63 Q DP problem: 21.45/9.63 The TRS P consists of the following rules: 21.45/9.63 21.45/9.63 new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba) 21.45/9.63 21.45/9.63 The TRS R consists of the following rules: 21.45/9.63 21.45/9.63 new_deleteBy1(xy10, :(xy90, xy91), ba) -> new_deleteBy00(xy91, xy90, xy10, new_esEs(xy10, xy90, ba), ba) 21.45/9.63 new_deleteBy1(xy10, [], ba) -> [] 21.45/9.63 new_esEs(xy10, xy90, app(ty_Ratio, cd)) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Integer) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(app(ty_@2, bh), ca)) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_@0) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Int) -> new_primEqInt(xy10, xy90) 21.45/9.63 new_esEs(xy10, xy90, ty_Double) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(app(app(ty_@3, be), bf), bg)) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(ty_[], bc)) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Ordering) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Float) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Bool) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(app(ty_Either, cb), cc)) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Char) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(ty_Maybe, bd)) -> error([]) 21.45/9.63 new_deleteBy00(xy17, xy18, xy19, True, bb) -> xy17 21.45/9.63 new_deleteBy00(xy17, xy18, xy19, False, bb) -> :(xy18, new_deleteBy1(xy19, xy17, bb)) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 21.45/9.63 new_primEqNat0(Zero, Zero) -> True 21.45/9.63 new_primEqNat0(Succ(xy10000), Zero) -> False 21.45/9.63 new_primEqNat0(Zero, Succ(xy90000)) -> False 21.45/9.63 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 21.45/9.63 21.45/9.63 The set Q consists of the following terms: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 21.45/9.63 new_esEs(x0, x1, app(ty_Ratio, x2)) 21.45/9.63 new_esEs(x0, x1, app(app(ty_@2, x2), x3)) 21.45/9.63 new_esEs(x0, x1, ty_Char) 21.45/9.63 new_esEs(x0, x1, ty_Double) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) 21.45/9.63 new_esEs(x0, x1, app(ty_[], x2)) 21.45/9.63 new_primEqNat0(Succ(x0), Zero) 21.45/9.63 new_esEs(x0, x1, ty_@0) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 21.45/9.63 new_esEs(x0, x1, ty_Float) 21.45/9.63 new_esEs(x0, x1, ty_Int) 21.45/9.63 new_flip(x0, x1, x2) 21.45/9.63 new_deleteBy00(x0, x1, x2, True, x3) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 21.45/9.63 new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 21.45/9.63 new_esEs(x0, x1, app(app(ty_Either, x2), x3)) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 21.45/9.63 new_deleteBy1(x0, [], x1) 21.45/9.63 new_esEs(x0, x1, ty_Integer) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 21.45/9.63 new_primEqNat0(Succ(x0), Succ(x1)) 21.45/9.63 new_deleteBy00(x0, x1, x2, False, x3) 21.45/9.63 new_esEs(x0, x1, app(ty_Maybe, x2)) 21.45/9.63 new_primEqNat0(Zero, Succ(x0)) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 21.45/9.63 new_esEs(x0, x1, ty_Ordering) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) 21.45/9.63 new_esEs(x0, x1, ty_Bool) 21.45/9.63 new_deleteBy1(x0, :(x1, x2), x3) 21.45/9.63 21.45/9.63 We have to consider all minimal (P,Q,R)-chains. 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (29) QReductionProof (EQUIVALENT) 21.45/9.63 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 21.45/9.63 21.45/9.63 new_flip(x0, x1, x2) 21.45/9.63 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (30) 21.45/9.63 Obligation: 21.45/9.63 Q DP problem: 21.45/9.63 The TRS P consists of the following rules: 21.45/9.63 21.45/9.63 new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba) 21.45/9.63 21.45/9.63 The TRS R consists of the following rules: 21.45/9.63 21.45/9.63 new_deleteBy1(xy10, :(xy90, xy91), ba) -> new_deleteBy00(xy91, xy90, xy10, new_esEs(xy10, xy90, ba), ba) 21.45/9.63 new_deleteBy1(xy10, [], ba) -> [] 21.45/9.63 new_esEs(xy10, xy90, app(ty_Ratio, cd)) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Integer) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(app(ty_@2, bh), ca)) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_@0) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Int) -> new_primEqInt(xy10, xy90) 21.45/9.63 new_esEs(xy10, xy90, ty_Double) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(app(app(ty_@3, be), bf), bg)) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(ty_[], bc)) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Ordering) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Float) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Bool) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(app(ty_Either, cb), cc)) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, ty_Char) -> error([]) 21.45/9.63 new_esEs(xy10, xy90, app(ty_Maybe, bd)) -> error([]) 21.45/9.63 new_deleteBy00(xy17, xy18, xy19, True, bb) -> xy17 21.45/9.63 new_deleteBy00(xy17, xy18, xy19, False, bb) -> :(xy18, new_deleteBy1(xy19, xy17, bb)) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 21.45/9.63 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 21.45/9.63 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 21.45/9.63 new_primEqNat0(Zero, Zero) -> True 21.45/9.63 new_primEqNat0(Succ(xy10000), Zero) -> False 21.45/9.63 new_primEqNat0(Zero, Succ(xy90000)) -> False 21.45/9.63 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 21.45/9.63 21.45/9.63 The set Q consists of the following terms: 21.45/9.63 21.45/9.63 new_primEqNat0(Zero, Zero) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Zero)) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Zero)) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 21.45/9.63 new_esEs(x0, x1, app(ty_Ratio, x2)) 21.45/9.63 new_esEs(x0, x1, app(app(ty_@2, x2), x3)) 21.45/9.63 new_esEs(x0, x1, ty_Char) 21.45/9.63 new_esEs(x0, x1, ty_Double) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Zero)) 21.45/9.63 new_esEs(x0, x1, app(ty_[], x2)) 21.45/9.63 new_primEqNat0(Succ(x0), Zero) 21.45/9.63 new_esEs(x0, x1, ty_@0) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 21.45/9.63 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 21.45/9.63 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 21.45/9.63 new_esEs(x0, x1, ty_Float) 21.45/9.63 new_esEs(x0, x1, ty_Int) 21.45/9.63 new_deleteBy00(x0, x1, x2, True, x3) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 21.45/9.63 new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 21.45/9.63 new_esEs(x0, x1, app(app(ty_Either, x2), x3)) 21.45/9.63 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 21.45/9.63 new_deleteBy1(x0, [], x1) 21.45/9.63 new_esEs(x0, x1, ty_Integer) 21.45/9.63 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 21.45/9.63 new_primEqNat0(Succ(x0), Succ(x1)) 21.45/9.63 new_deleteBy00(x0, x1, x2, False, x3) 21.45/9.63 new_esEs(x0, x1, app(ty_Maybe, x2)) 21.45/9.63 new_primEqNat0(Zero, Succ(x0)) 21.45/9.63 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 21.45/9.63 new_esEs(x0, x1, ty_Ordering) 21.45/9.63 new_primEqInt(Neg(Zero), Neg(Zero)) 21.45/9.63 new_esEs(x0, x1, ty_Bool) 21.45/9.63 new_deleteBy1(x0, :(x1, x2), x3) 21.45/9.63 21.45/9.63 We have to consider all minimal (P,Q,R)-chains. 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (31) QDPSizeChangeProof (EQUIVALENT) 21.45/9.63 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. 21.45/9.63 21.45/9.63 From the DPs we obtained the following set of size-change graphs: 21.45/9.63 *new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba) 21.45/9.63 The graph contains the following edges 3 > 2, 3 > 3, 4 >= 4 21.45/9.63 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (32) 21.45/9.63 YES 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (33) 21.45/9.63 Obligation: 21.45/9.63 Q DP problem: 21.45/9.63 The TRS P consists of the following rules: 21.45/9.63 21.45/9.63 new_primEqNat(Succ(xy10000), Succ(xy90000)) -> new_primEqNat(xy10000, xy90000) 21.45/9.63 21.45/9.63 R is empty. 21.45/9.63 Q is empty. 21.45/9.63 We have to consider all minimal (P,Q,R)-chains. 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (34) QDPSizeChangeProof (EQUIVALENT) 21.45/9.63 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. 21.45/9.63 21.45/9.63 From the DPs we obtained the following set of size-change graphs: 21.45/9.63 *new_primEqNat(Succ(xy10000), Succ(xy90000)) -> new_primEqNat(xy10000, xy90000) 21.45/9.63 The graph contains the following edges 1 > 1, 2 > 2 21.45/9.63 21.45/9.63 21.45/9.63 ---------------------------------------- 21.45/9.63 21.45/9.63 (35) 21.45/9.63 YES 21.58/9.72 EOF