/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.hs /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty H-Termination with start terms of the given HASKELL could be proven: (0) HASKELL (1) IFR [EQUIVALENT, 0 ms] (2) HASKELL (3) BR [EQUIVALENT, 0 ms] (4) HASKELL (5) COR [EQUIVALENT, 24 ms] (6) HASKELL (7) LetRed [EQUIVALENT, 0 ms] (8) HASKELL (9) Narrow [SOUND, 0 ms] (10) AND (11) QDP (12) TransformationProof [EQUIVALENT, 0 ms] (13) QDP (14) UsableRulesProof [EQUIVALENT, 0 ms] (15) QDP (16) QReductionProof [EQUIVALENT, 0 ms] (17) QDP (18) QDPSizeChangeProof [EQUIVALENT, 0 ms] (19) YES (20) QDP (21) TransformationProof [EQUIVALENT, 0 ms] (22) QDP (23) DependencyGraphProof [EQUIVALENT, 0 ms] (24) QDP (25) UsableRulesProof [EQUIVALENT, 0 ms] (26) QDP (27) QReductionProof [EQUIVALENT, 0 ms] (28) QDP (29) TransformationProof [EQUIVALENT, 0 ms] (30) QDP (31) DependencyGraphProof [EQUIVALENT, 0 ms] (32) QDP (33) UsableRulesProof [EQUIVALENT, 0 ms] (34) QDP (35) QReductionProof [EQUIVALENT, 0 ms] (36) QDP (37) TransformationProof [EQUIVALENT, 0 ms] (38) QDP (39) DependencyGraphProof [EQUIVALENT, 0 ms] (40) AND (41) QDP (42) QDPSizeChangeProof [EQUIVALENT, 0 ms] (43) YES (44) QDP (45) QDPSizeChangeProof [EQUIVALENT, 0 ms] (46) YES (47) QDP (48) QDPSizeChangeProof [EQUIVALENT, 0 ms] (49) YES (50) QDP (51) TransformationProof [EQUIVALENT, 0 ms] (52) QDP (53) DependencyGraphProof [EQUIVALENT, 0 ms] (54) QDP (55) UsableRulesProof [EQUIVALENT, 0 ms] (56) QDP (57) QReductionProof [EQUIVALENT, 0 ms] (58) QDP (59) TransformationProof [EQUIVALENT, 0 ms] (60) QDP (61) TransformationProof [EQUIVALENT, 0 ms] (62) QDP (63) DependencyGraphProof [EQUIVALENT, 0 ms] (64) QDP (65) UsableRulesProof [EQUIVALENT, 0 ms] (66) QDP (67) QReductionProof [EQUIVALENT, 0 ms] (68) QDP (69) TransformationProof [EQUIVALENT, 0 ms] (70) QDP (71) UsableRulesProof [EQUIVALENT, 0 ms] (72) QDP (73) QReductionProof [EQUIVALENT, 0 ms] (74) QDP (75) TransformationProof [EQUIVALENT, 0 ms] (76) QDP (77) TransformationProof [EQUIVALENT, 0 ms] (78) QDP (79) QDPSizeChangeProof [EQUIVALENT, 0 ms] (80) YES ---------------------------------------- (0) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy _ _ [] = []; deleteBy eq x (y : ys) = if x `eq` y then ys else y : deleteBy eq x ys; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by _ _ [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubBy' l [] where { nubBy' [] _ = []; nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs | otherwise = y : nubBy' ys (y : xs); }; union :: Eq a => [a] -> [a] -> [a]; union = unionBy (==); unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (1) IFR (EQUIVALENT) If Reductions: The following If expression "if eq x y then ys else y : deleteBy eq x ys" is transformed to "deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x ys; " ---------------------------------------- (2) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy _ _ [] = []; deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x ys; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by _ _ [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubBy' l [] where { nubBy' [] _ = []; nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs | otherwise = y : nubBy' ys (y : xs); }; union :: Eq a => [a] -> [a] -> [a]; union = unionBy (==); unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (3) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (4) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy wv ww [] = []; deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x ys; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by vy vz [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubBy' l [] where { nubBy' [] wu = []; nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs | otherwise = y : nubBy' ys (y : xs); }; union :: Eq a => [a] -> [a] -> [a]; union = unionBy (==); unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (5) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " The following Function with conditions "nubBy' [] wu = []; nubBy' (y : ys) xs|elem_by eq y xsnubBy' ys xs|otherwisey : nubBy' ys (y : xs); " is transformed to "nubBy' [] wu = nubBy'3 [] wu; nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; " "nubBy'0 y ys xs True = y : nubBy' ys (y : xs); " "nubBy'1 y ys xs True = nubBy' ys xs; nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; " "nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); " "nubBy'3 [] wu = []; nubBy'3 wz xu = nubBy'2 wz xu; " ---------------------------------------- (6) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy wv ww [] = []; deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x ys; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by vy vz [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubBy' l [] where { nubBy' [] wu = nubBy'3 [] wu; nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; nubBy'0 y ys xs True = y : nubBy' ys (y : xs); nubBy'1 y ys xs True = nubBy' ys xs; nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); nubBy'3 [] wu = []; nubBy'3 wz xu = nubBy'2 wz xu; }; union :: Eq a => [a] -> [a] -> [a]; union = unionBy (==); unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (7) LetRed (EQUIVALENT) Let/Where Reductions: The bindings of the following Let/Where expression "nubBy' l [] where { nubBy' [] wu = nubBy'3 [] wu; nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; ; nubBy'0 y ys xs True = y : nubBy' ys (y : xs); ; nubBy'1 y ys xs True = nubBy' ys xs; nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; ; nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); ; nubBy'3 [] wu = []; nubBy'3 wz xu = nubBy'2 wz xu; } " are unpacked to the following functions on top level "nubByNubBy'2 xv (y : ys) xs = nubByNubBy'1 xv y ys xs (elem_by xv y xs); " "nubByNubBy'3 xv [] wu = []; nubByNubBy'3 xv wz xu = nubByNubBy'2 xv wz xu; " "nubByNubBy'0 xv y ys xs True = y : nubByNubBy' xv ys (y : xs); " "nubByNubBy' xv [] wu = nubByNubBy'3 xv [] wu; nubByNubBy' xv (y : ys) xs = nubByNubBy'2 xv (y : ys) xs; " "nubByNubBy'1 xv y ys xs True = nubByNubBy' xv ys xs; nubByNubBy'1 xv y ys xs False = nubByNubBy'0 xv y ys xs otherwise; " ---------------------------------------- (8) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy wv ww [] = []; deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x ys; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by vy vz [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubByNubBy' eq l []; nubByNubBy' xv [] wu = nubByNubBy'3 xv [] wu; nubByNubBy' xv (y : ys) xs = nubByNubBy'2 xv (y : ys) xs; nubByNubBy'0 xv y ys xs True = y : nubByNubBy' xv ys (y : xs); nubByNubBy'1 xv y ys xs True = nubByNubBy' xv ys xs; nubByNubBy'1 xv y ys xs False = nubByNubBy'0 xv y ys xs otherwise; nubByNubBy'2 xv (y : ys) xs = nubByNubBy'1 xv y ys xs (elem_by xv y xs); nubByNubBy'3 xv [] wu = []; nubByNubBy'3 xv wz xu = nubByNubBy'2 xv wz xu; union :: Eq a => [a] -> [a] -> [a]; union = unionBy (==); unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (9) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="List.union",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="List.union xw3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="List.union xw3 xw4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="List.unionBy (==) xw3 xw4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 6[label="xw3 ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xw4) xw3",fontsize=16,color="burlywood",shape="box"];1153[label="xw3/xw30 : xw31",fontsize=10,color="white",style="solid",shape="box"];6 -> 1153[label="",style="solid", color="burlywood", weight=9]; 1153 -> 7[label="",style="solid", color="burlywood", weight=3]; 1154[label="xw3/[]",fontsize=10,color="white",style="solid",shape="box"];6 -> 1154[label="",style="solid", color="burlywood", weight=9]; 1154 -> 8[label="",style="solid", color="burlywood", weight=3]; 7[label="(xw30 : xw31) ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xw4) (xw30 : xw31)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="[] ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xw4) []",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 9[label="xw30 : xw31 ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xw4) (xw30 : xw31)",fontsize=16,color="green",shape="box"];9 -> 11[label="",style="dashed", color="green", weight=3]; 10[label="foldl (flip (List.deleteBy (==))) (List.nubBy (==) xw4) []",fontsize=16,color="black",shape="box"];10 -> 12[label="",style="solid", color="black", weight=3]; 11 -> 114[label="",style="dashed", color="red", weight=0]; 11[label="xw31 ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xw4) (xw30 : xw31)",fontsize=16,color="magenta"];11 -> 115[label="",style="dashed", color="magenta", weight=3]; 11 -> 116[label="",style="dashed", color="magenta", weight=3]; 11 -> 117[label="",style="dashed", color="magenta", weight=3]; 11 -> 118[label="",style="dashed", color="magenta", weight=3]; 12[label="List.nubBy (==) xw4",fontsize=16,color="black",shape="triangle"];12 -> 15[label="",style="solid", color="black", weight=3]; 115 -> 12[label="",style="dashed", color="red", weight=0]; 115[label="List.nubBy (==) xw4",fontsize=16,color="magenta"];116[label="xw31",fontsize=16,color="green",shape="box"];117[label="xw31",fontsize=16,color="green",shape="box"];118[label="xw30",fontsize=16,color="green",shape="box"];114[label="xw8 ++ foldl (flip (List.deleteBy (==))) xw9 (xw10 : xw11)",fontsize=16,color="burlywood",shape="triangle"];1155[label="xw8/xw80 : xw81",fontsize=10,color="white",style="solid",shape="box"];114 -> 1155[label="",style="solid", color="burlywood", weight=9]; 1155 -> 143[label="",style="solid", color="burlywood", weight=3]; 1156[label="xw8/[]",fontsize=10,color="white",style="solid",shape="box"];114 -> 1156[label="",style="solid", color="burlywood", weight=9]; 1156 -> 144[label="",style="solid", color="burlywood", weight=3]; 15[label="List.nubByNubBy' (==) xw4 []",fontsize=16,color="burlywood",shape="box"];1157[label="xw4/xw40 : xw41",fontsize=10,color="white",style="solid",shape="box"];15 -> 1157[label="",style="solid", color="burlywood", weight=9]; 1157 -> 18[label="",style="solid", color="burlywood", weight=3]; 1158[label="xw4/[]",fontsize=10,color="white",style="solid",shape="box"];15 -> 1158[label="",style="solid", color="burlywood", weight=9]; 1158 -> 19[label="",style="solid", color="burlywood", weight=3]; 143[label="(xw80 : xw81) ++ foldl (flip (List.deleteBy (==))) xw9 (xw10 : xw11)",fontsize=16,color="black",shape="box"];143 -> 149[label="",style="solid", color="black", weight=3]; 144[label="[] ++ foldl (flip (List.deleteBy (==))) xw9 (xw10 : xw11)",fontsize=16,color="black",shape="box"];144 -> 150[label="",style="solid", color="black", weight=3]; 18[label="List.nubByNubBy' (==) (xw40 : xw41) []",fontsize=16,color="black",shape="box"];18 -> 23[label="",style="solid", color="black", weight=3]; 19[label="List.nubByNubBy' (==) [] []",fontsize=16,color="black",shape="box"];19 -> 24[label="",style="solid", color="black", weight=3]; 149[label="xw80 : xw81 ++ foldl (flip (List.deleteBy (==))) xw9 (xw10 : xw11)",fontsize=16,color="green",shape="box"];149 -> 155[label="",style="dashed", color="green", weight=3]; 150[label="foldl (flip (List.deleteBy (==))) xw9 (xw10 : xw11)",fontsize=16,color="black",shape="box"];150 -> 156[label="",style="solid", color="black", weight=3]; 23[label="List.nubByNubBy'2 (==) (xw40 : xw41) []",fontsize=16,color="black",shape="box"];23 -> 28[label="",style="solid", color="black", weight=3]; 24[label="List.nubByNubBy'3 (==) [] []",fontsize=16,color="black",shape="box"];24 -> 29[label="",style="solid", color="black", weight=3]; 155 -> 114[label="",style="dashed", color="red", weight=0]; 155[label="xw81 ++ foldl (flip (List.deleteBy (==))) xw9 (xw10 : xw11)",fontsize=16,color="magenta"];155 -> 163[label="",style="dashed", color="magenta", weight=3]; 156[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) xw9 xw10) xw11",fontsize=16,color="burlywood",shape="triangle"];1159[label="xw11/xw110 : xw111",fontsize=10,color="white",style="solid",shape="box"];156 -> 1159[label="",style="solid", color="burlywood", weight=9]; 1159 -> 164[label="",style="solid", color="burlywood", weight=3]; 1160[label="xw11/[]",fontsize=10,color="white",style="solid",shape="box"];156 -> 1160[label="",style="solid", color="burlywood", weight=9]; 1160 -> 165[label="",style="solid", color="burlywood", weight=3]; 28[label="List.nubByNubBy'1 (==) xw40 xw41 [] (List.elem_by (==) xw40 [])",fontsize=16,color="black",shape="box"];28 -> 33[label="",style="solid", color="black", weight=3]; 29[label="[]",fontsize=16,color="green",shape="box"];163[label="xw81",fontsize=16,color="green",shape="box"];164[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) xw9 xw10) (xw110 : xw111)",fontsize=16,color="black",shape="box"];164 -> 168[label="",style="solid", color="black", weight=3]; 165[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) xw9 xw10) []",fontsize=16,color="black",shape="box"];165 -> 169[label="",style="solid", color="black", weight=3]; 33[label="List.nubByNubBy'1 (==) xw40 xw41 [] False",fontsize=16,color="black",shape="box"];33 -> 37[label="",style="solid", color="black", weight=3]; 168 -> 156[label="",style="dashed", color="red", weight=0]; 168[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) (flip (List.deleteBy (==)) xw9 xw10) xw110) xw111",fontsize=16,color="magenta"];168 -> 172[label="",style="dashed", color="magenta", weight=3]; 168 -> 173[label="",style="dashed", color="magenta", weight=3]; 168 -> 174[label="",style="dashed", color="magenta", weight=3]; 169[label="flip (List.deleteBy (==)) xw9 xw10",fontsize=16,color="black",shape="triangle"];169 -> 175[label="",style="solid", color="black", weight=3]; 37[label="List.nubByNubBy'0 (==) xw40 xw41 [] otherwise",fontsize=16,color="black",shape="box"];37 -> 42[label="",style="solid", color="black", weight=3]; 172 -> 169[label="",style="dashed", color="red", weight=0]; 172[label="flip (List.deleteBy (==)) xw9 xw10",fontsize=16,color="magenta"];173[label="xw111",fontsize=16,color="green",shape="box"];174[label="xw110",fontsize=16,color="green",shape="box"];175[label="List.deleteBy (==) xw10 xw9",fontsize=16,color="burlywood",shape="triangle"];1161[label="xw9/xw90 : xw91",fontsize=10,color="white",style="solid",shape="box"];175 -> 1161[label="",style="solid", color="burlywood", weight=9]; 1161 -> 178[label="",style="solid", color="burlywood", weight=3]; 1162[label="xw9/[]",fontsize=10,color="white",style="solid",shape="box"];175 -> 1162[label="",style="solid", color="burlywood", weight=9]; 1162 -> 179[label="",style="solid", color="burlywood", weight=3]; 42[label="List.nubByNubBy'0 (==) xw40 xw41 [] True",fontsize=16,color="black",shape="box"];42 -> 49[label="",style="solid", color="black", weight=3]; 178[label="List.deleteBy (==) xw10 (xw90 : xw91)",fontsize=16,color="black",shape="box"];178 -> 184[label="",style="solid", color="black", weight=3]; 179[label="List.deleteBy (==) xw10 []",fontsize=16,color="black",shape="box"];179 -> 185[label="",style="solid", color="black", weight=3]; 49[label="xw40 : List.nubByNubBy' (==) xw41 (xw40 : [])",fontsize=16,color="green",shape="box"];49 -> 55[label="",style="dashed", color="green", weight=3]; 184 -> 190[label="",style="dashed", color="red", weight=0]; 184[label="List.deleteBy0 xw91 xw90 (==) xw10 ((==) xw10 xw90)",fontsize=16,color="magenta"];184 -> 191[label="",style="dashed", color="magenta", weight=3]; 184 -> 192[label="",style="dashed", color="magenta", weight=3]; 184 -> 193[label="",style="dashed", color="magenta", weight=3]; 184 -> 194[label="",style="dashed", color="magenta", weight=3]; 185[label="[]",fontsize=16,color="green",shape="box"];55 -> 589[label="",style="dashed", color="red", weight=0]; 55[label="List.nubByNubBy' (==) xw41 (xw40 : [])",fontsize=16,color="magenta"];55 -> 590[label="",style="dashed", color="magenta", weight=3]; 55 -> 591[label="",style="dashed", color="magenta", weight=3]; 55 -> 592[label="",style="dashed", color="magenta", weight=3]; 191[label="xw10",fontsize=16,color="green",shape="box"];192[label="xw91",fontsize=16,color="green",shape="box"];193[label="xw90",fontsize=16,color="green",shape="box"];194[label="(==) xw10 xw90",fontsize=16,color="blue",shape="box"];1163[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1163[label="",style="solid", color="blue", weight=9]; 1163 -> 195[label="",style="solid", color="blue", weight=3]; 1164[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1164[label="",style="solid", color="blue", weight=9]; 1164 -> 196[label="",style="solid", color="blue", weight=3]; 1165[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1165[label="",style="solid", color="blue", weight=9]; 1165 -> 197[label="",style="solid", color="blue", weight=3]; 1166[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1166[label="",style="solid", color="blue", weight=9]; 1166 -> 198[label="",style="solid", color="blue", weight=3]; 1167[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1167[label="",style="solid", color="blue", weight=9]; 1167 -> 199[label="",style="solid", color="blue", weight=3]; 1168[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1168[label="",style="solid", color="blue", weight=9]; 1168 -> 200[label="",style="solid", color="blue", weight=3]; 1169[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1169[label="",style="solid", color="blue", weight=9]; 1169 -> 201[label="",style="solid", color="blue", weight=3]; 1170[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1170[label="",style="solid", color="blue", weight=9]; 1170 -> 202[label="",style="solid", color="blue", weight=3]; 1171[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1171[label="",style="solid", color="blue", weight=9]; 1171 -> 203[label="",style="solid", color="blue", weight=3]; 1172[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1172[label="",style="solid", color="blue", weight=9]; 1172 -> 204[label="",style="solid", color="blue", weight=3]; 1173[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1173[label="",style="solid", color="blue", weight=9]; 1173 -> 205[label="",style="solid", color="blue", weight=3]; 1174[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1174[label="",style="solid", color="blue", weight=9]; 1174 -> 206[label="",style="solid", color="blue", weight=3]; 1175[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1175[label="",style="solid", color="blue", weight=9]; 1175 -> 207[label="",style="solid", color="blue", weight=3]; 1176[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];194 -> 1176[label="",style="solid", color="blue", weight=9]; 1176 -> 208[label="",style="solid", color="blue", weight=3]; 190[label="List.deleteBy0 xw17 xw18 (==) xw19 xw20",fontsize=16,color="burlywood",shape="triangle"];1177[label="xw20/False",fontsize=10,color="white",style="solid",shape="box"];190 -> 1177[label="",style="solid", color="burlywood", weight=9]; 1177 -> 209[label="",style="solid", color="burlywood", weight=3]; 1178[label="xw20/True",fontsize=10,color="white",style="solid",shape="box"];190 -> 1178[label="",style="solid", color="burlywood", weight=9]; 1178 -> 210[label="",style="solid", color="burlywood", weight=3]; 590[label="xw41",fontsize=16,color="green",shape="box"];591[label="[]",fontsize=16,color="green",shape="box"];592[label="xw40",fontsize=16,color="green",shape="box"];589[label="List.nubByNubBy' (==) xw50 (xw51 : xw52)",fontsize=16,color="burlywood",shape="triangle"];1179[label="xw50/xw500 : xw501",fontsize=10,color="white",style="solid",shape="box"];589 -> 1179[label="",style="solid", color="burlywood", weight=9]; 1179 -> 653[label="",style="solid", color="burlywood", weight=3]; 1180[label="xw50/[]",fontsize=10,color="white",style="solid",shape="box"];589 -> 1180[label="",style="solid", color="burlywood", weight=9]; 1180 -> 654[label="",style="solid", color="burlywood", weight=3]; 195[label="(==) xw10 xw90",fontsize=16,color="black",shape="triangle"];195 -> 215[label="",style="solid", color="black", weight=3]; 196[label="(==) xw10 xw90",fontsize=16,color="black",shape="triangle"];196 -> 216[label="",style="solid", color="black", weight=3]; 197[label="(==) xw10 xw90",fontsize=16,color="black",shape="triangle"];197 -> 217[label="",style="solid", color="black", weight=3]; 198[label="(==) xw10 xw90",fontsize=16,color="black",shape="triangle"];198 -> 218[label="",style="solid", color="black", weight=3]; 199[label="(==) xw10 xw90",fontsize=16,color="black",shape="triangle"];199 -> 219[label="",style="solid", color="black", weight=3]; 200[label="(==) xw10 xw90",fontsize=16,color="black",shape="triangle"];200 -> 220[label="",style="solid", color="black", weight=3]; 201[label="(==) xw10 xw90",fontsize=16,color="black",shape="triangle"];201 -> 221[label="",style="solid", color="black", weight=3]; 202[label="(==) xw10 xw90",fontsize=16,color="black",shape="triangle"];202 -> 222[label="",style="solid", color="black", weight=3]; 203[label="(==) xw10 xw90",fontsize=16,color="black",shape="triangle"];203 -> 223[label="",style="solid", color="black", weight=3]; 204[label="(==) xw10 xw90",fontsize=16,color="black",shape="triangle"];204 -> 224[label="",style="solid", color="black", weight=3]; 205[label="(==) xw10 xw90",fontsize=16,color="burlywood",shape="triangle"];1181[label="xw10/False",fontsize=10,color="white",style="solid",shape="box"];205 -> 1181[label="",style="solid", color="burlywood", weight=9]; 1181 -> 225[label="",style="solid", color="burlywood", weight=3]; 1182[label="xw10/True",fontsize=10,color="white",style="solid",shape="box"];205 -> 1182[label="",style="solid", color="burlywood", weight=9]; 1182 -> 226[label="",style="solid", color="burlywood", weight=3]; 206[label="(==) xw10 xw90",fontsize=16,color="black",shape="triangle"];206 -> 227[label="",style="solid", color="black", weight=3]; 207[label="(==) xw10 xw90",fontsize=16,color="black",shape="triangle"];207 -> 228[label="",style="solid", color="black", weight=3]; 208[label="(==) xw10 xw90",fontsize=16,color="black",shape="triangle"];208 -> 229[label="",style="solid", color="black", weight=3]; 209[label="List.deleteBy0 xw17 xw18 (==) xw19 False",fontsize=16,color="black",shape="box"];209 -> 230[label="",style="solid", color="black", weight=3]; 210[label="List.deleteBy0 xw17 xw18 (==) xw19 True",fontsize=16,color="black",shape="box"];210 -> 231[label="",style="solid", color="black", weight=3]; 653[label="List.nubByNubBy' (==) (xw500 : xw501) (xw51 : xw52)",fontsize=16,color="black",shape="box"];653 -> 655[label="",style="solid", color="black", weight=3]; 654[label="List.nubByNubBy' (==) [] (xw51 : xw52)",fontsize=16,color="black",shape="box"];654 -> 656[label="",style="solid", color="black", weight=3]; 215[label="error []",fontsize=16,color="red",shape="box"];216[label="error []",fontsize=16,color="red",shape="box"];217[label="error []",fontsize=16,color="red",shape="box"];218[label="error []",fontsize=16,color="red",shape="box"];219[label="error []",fontsize=16,color="red",shape="box"];220[label="error []",fontsize=16,color="red",shape="box"];221[label="error []",fontsize=16,color="red",shape="box"];222[label="error []",fontsize=16,color="red",shape="box"];223[label="error []",fontsize=16,color="red",shape="box"];224[label="error []",fontsize=16,color="red",shape="box"];225[label="(==) False xw90",fontsize=16,color="burlywood",shape="box"];1183[label="xw90/False",fontsize=10,color="white",style="solid",shape="box"];225 -> 1183[label="",style="solid", color="burlywood", weight=9]; 1183 -> 234[label="",style="solid", color="burlywood", weight=3]; 1184[label="xw90/True",fontsize=10,color="white",style="solid",shape="box"];225 -> 1184[label="",style="solid", color="burlywood", weight=9]; 1184 -> 235[label="",style="solid", color="burlywood", weight=3]; 226[label="(==) True xw90",fontsize=16,color="burlywood",shape="box"];1185[label="xw90/False",fontsize=10,color="white",style="solid",shape="box"];226 -> 1185[label="",style="solid", color="burlywood", weight=9]; 1185 -> 236[label="",style="solid", color="burlywood", weight=3]; 1186[label="xw90/True",fontsize=10,color="white",style="solid",shape="box"];226 -> 1186[label="",style="solid", color="burlywood", weight=9]; 1186 -> 237[label="",style="solid", color="burlywood", weight=3]; 227[label="error []",fontsize=16,color="red",shape="box"];228[label="error []",fontsize=16,color="red",shape="box"];229[label="error []",fontsize=16,color="red",shape="box"];230[label="xw18 : List.deleteBy (==) xw19 xw17",fontsize=16,color="green",shape="box"];230 -> 238[label="",style="dashed", color="green", weight=3]; 231[label="xw17",fontsize=16,color="green",shape="box"];655[label="List.nubByNubBy'2 (==) (xw500 : xw501) (xw51 : xw52)",fontsize=16,color="black",shape="box"];655 -> 657[label="",style="solid", color="black", weight=3]; 656[label="List.nubByNubBy'3 (==) [] (xw51 : xw52)",fontsize=16,color="black",shape="box"];656 -> 658[label="",style="solid", color="black", weight=3]; 234[label="(==) False False",fontsize=16,color="black",shape="box"];234 -> 241[label="",style="solid", color="black", weight=3]; 235[label="(==) False True",fontsize=16,color="black",shape="box"];235 -> 242[label="",style="solid", color="black", weight=3]; 236[label="(==) True False",fontsize=16,color="black",shape="box"];236 -> 243[label="",style="solid", color="black", weight=3]; 237[label="(==) True True",fontsize=16,color="black",shape="box"];237 -> 244[label="",style="solid", color="black", weight=3]; 238 -> 175[label="",style="dashed", color="red", weight=0]; 238[label="List.deleteBy (==) xw19 xw17",fontsize=16,color="magenta"];238 -> 245[label="",style="dashed", color="magenta", weight=3]; 238 -> 246[label="",style="dashed", color="magenta", weight=3]; 657[label="List.nubByNubBy'1 (==) xw500 xw501 (xw51 : xw52) (List.elem_by (==) xw500 (xw51 : xw52))",fontsize=16,color="black",shape="box"];657 -> 659[label="",style="solid", color="black", weight=3]; 658[label="[]",fontsize=16,color="green",shape="box"];241[label="True",fontsize=16,color="green",shape="box"];242[label="False",fontsize=16,color="green",shape="box"];243[label="False",fontsize=16,color="green",shape="box"];244[label="True",fontsize=16,color="green",shape="box"];245[label="xw17",fontsize=16,color="green",shape="box"];246[label="xw19",fontsize=16,color="green",shape="box"];659 -> 1035[label="",style="dashed", color="red", weight=0]; 659[label="List.nubByNubBy'1 (==) xw500 xw501 (xw51 : xw52) ((==) xw51 xw500 || List.elem_by (==) xw500 xw52)",fontsize=16,color="magenta"];659 -> 1036[label="",style="dashed", color="magenta", weight=3]; 659 -> 1037[label="",style="dashed", color="magenta", weight=3]; 659 -> 1038[label="",style="dashed", color="magenta", weight=3]; 659 -> 1039[label="",style="dashed", color="magenta", weight=3]; 659 -> 1040[label="",style="dashed", color="magenta", weight=3]; 659 -> 1041[label="",style="dashed", color="magenta", weight=3]; 1036[label="xw51",fontsize=16,color="green",shape="box"];1037[label="xw500",fontsize=16,color="green",shape="box"];1038[label="(==) xw51 xw500",fontsize=16,color="blue",shape="box"];1187[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1187[label="",style="solid", color="blue", weight=9]; 1187 -> 1048[label="",style="solid", color="blue", weight=3]; 1188[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1188[label="",style="solid", color="blue", weight=9]; 1188 -> 1049[label="",style="solid", color="blue", weight=3]; 1189[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1189[label="",style="solid", color="blue", weight=9]; 1189 -> 1050[label="",style="solid", color="blue", weight=3]; 1190[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1190[label="",style="solid", color="blue", weight=9]; 1190 -> 1051[label="",style="solid", color="blue", weight=3]; 1191[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1191[label="",style="solid", color="blue", weight=9]; 1191 -> 1052[label="",style="solid", color="blue", weight=3]; 1192[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1192[label="",style="solid", color="blue", weight=9]; 1192 -> 1053[label="",style="solid", color="blue", weight=3]; 1193[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1193[label="",style="solid", color="blue", weight=9]; 1193 -> 1054[label="",style="solid", color="blue", weight=3]; 1194[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1194[label="",style="solid", color="blue", weight=9]; 1194 -> 1055[label="",style="solid", color="blue", weight=3]; 1195[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1195[label="",style="solid", color="blue", weight=9]; 1195 -> 1056[label="",style="solid", color="blue", weight=3]; 1196[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1196[label="",style="solid", color="blue", weight=9]; 1196 -> 1057[label="",style="solid", color="blue", weight=3]; 1197[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1197[label="",style="solid", color="blue", weight=9]; 1197 -> 1058[label="",style="solid", color="blue", weight=3]; 1198[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1198[label="",style="solid", color="blue", weight=9]; 1198 -> 1059[label="",style="solid", color="blue", weight=3]; 1199[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1199[label="",style="solid", color="blue", weight=9]; 1199 -> 1060[label="",style="solid", color="blue", weight=3]; 1200[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];1038 -> 1200[label="",style="solid", color="blue", weight=9]; 1200 -> 1061[label="",style="solid", color="blue", weight=3]; 1039[label="xw52",fontsize=16,color="green",shape="box"];1040[label="xw501",fontsize=16,color="green",shape="box"];1041[label="xw52",fontsize=16,color="green",shape="box"];1035[label="List.nubByNubBy'1 (==) xw142 xw143 (xw144 : xw145) (xw146 || List.elem_by (==) xw142 xw147)",fontsize=16,color="burlywood",shape="triangle"];1201[label="xw146/False",fontsize=10,color="white",style="solid",shape="box"];1035 -> 1201[label="",style="solid", color="burlywood", weight=9]; 1201 -> 1062[label="",style="solid", color="burlywood", weight=3]; 1202[label="xw146/True",fontsize=10,color="white",style="solid",shape="box"];1035 -> 1202[label="",style="solid", color="burlywood", weight=9]; 1202 -> 1063[label="",style="solid", color="burlywood", weight=3]; 1048 -> 195[label="",style="dashed", color="red", weight=0]; 1048[label="(==) xw51 xw500",fontsize=16,color="magenta"];1048 -> 1064[label="",style="dashed", color="magenta", weight=3]; 1048 -> 1065[label="",style="dashed", color="magenta", weight=3]; 1049 -> 196[label="",style="dashed", color="red", weight=0]; 1049[label="(==) xw51 xw500",fontsize=16,color="magenta"];1049 -> 1066[label="",style="dashed", color="magenta", weight=3]; 1049 -> 1067[label="",style="dashed", color="magenta", weight=3]; 1050 -> 197[label="",style="dashed", color="red", weight=0]; 1050[label="(==) xw51 xw500",fontsize=16,color="magenta"];1050 -> 1068[label="",style="dashed", color="magenta", weight=3]; 1050 -> 1069[label="",style="dashed", color="magenta", weight=3]; 1051 -> 198[label="",style="dashed", color="red", weight=0]; 1051[label="(==) xw51 xw500",fontsize=16,color="magenta"];1051 -> 1070[label="",style="dashed", color="magenta", weight=3]; 1051 -> 1071[label="",style="dashed", color="magenta", weight=3]; 1052 -> 199[label="",style="dashed", color="red", weight=0]; 1052[label="(==) xw51 xw500",fontsize=16,color="magenta"];1052 -> 1072[label="",style="dashed", color="magenta", weight=3]; 1052 -> 1073[label="",style="dashed", color="magenta", weight=3]; 1053 -> 200[label="",style="dashed", color="red", weight=0]; 1053[label="(==) xw51 xw500",fontsize=16,color="magenta"];1053 -> 1074[label="",style="dashed", color="magenta", weight=3]; 1053 -> 1075[label="",style="dashed", color="magenta", weight=3]; 1054 -> 201[label="",style="dashed", color="red", weight=0]; 1054[label="(==) xw51 xw500",fontsize=16,color="magenta"];1054 -> 1076[label="",style="dashed", color="magenta", weight=3]; 1054 -> 1077[label="",style="dashed", color="magenta", weight=3]; 1055 -> 202[label="",style="dashed", color="red", weight=0]; 1055[label="(==) xw51 xw500",fontsize=16,color="magenta"];1055 -> 1078[label="",style="dashed", color="magenta", weight=3]; 1055 -> 1079[label="",style="dashed", color="magenta", weight=3]; 1056 -> 203[label="",style="dashed", color="red", weight=0]; 1056[label="(==) xw51 xw500",fontsize=16,color="magenta"];1056 -> 1080[label="",style="dashed", color="magenta", weight=3]; 1056 -> 1081[label="",style="dashed", color="magenta", weight=3]; 1057 -> 204[label="",style="dashed", color="red", weight=0]; 1057[label="(==) xw51 xw500",fontsize=16,color="magenta"];1057 -> 1082[label="",style="dashed", color="magenta", weight=3]; 1057 -> 1083[label="",style="dashed", color="magenta", weight=3]; 1058 -> 205[label="",style="dashed", color="red", weight=0]; 1058[label="(==) xw51 xw500",fontsize=16,color="magenta"];1058 -> 1084[label="",style="dashed", color="magenta", weight=3]; 1058 -> 1085[label="",style="dashed", color="magenta", weight=3]; 1059 -> 206[label="",style="dashed", color="red", weight=0]; 1059[label="(==) xw51 xw500",fontsize=16,color="magenta"];1059 -> 1086[label="",style="dashed", color="magenta", weight=3]; 1059 -> 1087[label="",style="dashed", color="magenta", weight=3]; 1060 -> 207[label="",style="dashed", color="red", weight=0]; 1060[label="(==) xw51 xw500",fontsize=16,color="magenta"];1060 -> 1088[label="",style="dashed", color="magenta", weight=3]; 1060 -> 1089[label="",style="dashed", color="magenta", weight=3]; 1061 -> 208[label="",style="dashed", color="red", weight=0]; 1061[label="(==) xw51 xw500",fontsize=16,color="magenta"];1061 -> 1090[label="",style="dashed", color="magenta", weight=3]; 1061 -> 1091[label="",style="dashed", color="magenta", weight=3]; 1062[label="List.nubByNubBy'1 (==) xw142 xw143 (xw144 : xw145) (False || List.elem_by (==) xw142 xw147)",fontsize=16,color="black",shape="box"];1062 -> 1092[label="",style="solid", color="black", weight=3]; 1063[label="List.nubByNubBy'1 (==) xw142 xw143 (xw144 : xw145) (True || List.elem_by (==) xw142 xw147)",fontsize=16,color="black",shape="box"];1063 -> 1093[label="",style="solid", color="black", weight=3]; 1064[label="xw500",fontsize=16,color="green",shape="box"];1065[label="xw51",fontsize=16,color="green",shape="box"];1066[label="xw500",fontsize=16,color="green",shape="box"];1067[label="xw51",fontsize=16,color="green",shape="box"];1068[label="xw500",fontsize=16,color="green",shape="box"];1069[label="xw51",fontsize=16,color="green",shape="box"];1070[label="xw500",fontsize=16,color="green",shape="box"];1071[label="xw51",fontsize=16,color="green",shape="box"];1072[label="xw500",fontsize=16,color="green",shape="box"];1073[label="xw51",fontsize=16,color="green",shape="box"];1074[label="xw500",fontsize=16,color="green",shape="box"];1075[label="xw51",fontsize=16,color="green",shape="box"];1076[label="xw500",fontsize=16,color="green",shape="box"];1077[label="xw51",fontsize=16,color="green",shape="box"];1078[label="xw500",fontsize=16,color="green",shape="box"];1079[label="xw51",fontsize=16,color="green",shape="box"];1080[label="xw500",fontsize=16,color="green",shape="box"];1081[label="xw51",fontsize=16,color="green",shape="box"];1082[label="xw500",fontsize=16,color="green",shape="box"];1083[label="xw51",fontsize=16,color="green",shape="box"];1084[label="xw500",fontsize=16,color="green",shape="box"];1085[label="xw51",fontsize=16,color="green",shape="box"];1086[label="xw500",fontsize=16,color="green",shape="box"];1087[label="xw51",fontsize=16,color="green",shape="box"];1088[label="xw500",fontsize=16,color="green",shape="box"];1089[label="xw51",fontsize=16,color="green",shape="box"];1090[label="xw500",fontsize=16,color="green",shape="box"];1091[label="xw51",fontsize=16,color="green",shape="box"];1092[label="List.nubByNubBy'1 (==) xw142 xw143 (xw144 : xw145) (List.elem_by (==) xw142 xw147)",fontsize=16,color="burlywood",shape="box"];1203[label="xw147/xw1470 : xw1471",fontsize=10,color="white",style="solid",shape="box"];1092 -> 1203[label="",style="solid", color="burlywood", weight=9]; 1203 -> 1094[label="",style="solid", color="burlywood", weight=3]; 1204[label="xw147/[]",fontsize=10,color="white",style="solid",shape="box"];1092 -> 1204[label="",style="solid", color="burlywood", weight=9]; 1204 -> 1095[label="",style="solid", color="burlywood", weight=3]; 1093[label="List.nubByNubBy'1 (==) xw142 xw143 (xw144 : xw145) True",fontsize=16,color="black",shape="box"];1093 -> 1096[label="",style="solid", color="black", weight=3]; 1094[label="List.nubByNubBy'1 (==) xw142 xw143 (xw144 : xw145) (List.elem_by (==) xw142 (xw1470 : xw1471))",fontsize=16,color="black",shape="box"];1094 -> 1097[label="",style="solid", color="black", weight=3]; 1095[label="List.nubByNubBy'1 (==) xw142 xw143 (xw144 : xw145) (List.elem_by (==) xw142 [])",fontsize=16,color="black",shape="box"];1095 -> 1098[label="",style="solid", color="black", weight=3]; 1096 -> 589[label="",style="dashed", color="red", weight=0]; 1096[label="List.nubByNubBy' (==) xw143 (xw144 : xw145)",fontsize=16,color="magenta"];1096 -> 1099[label="",style="dashed", color="magenta", weight=3]; 1096 -> 1100[label="",style="dashed", color="magenta", weight=3]; 1096 -> 1101[label="",style="dashed", color="magenta", weight=3]; 1097 -> 1035[label="",style="dashed", color="red", weight=0]; 1097[label="List.nubByNubBy'1 (==) xw142 xw143 (xw144 : xw145) ((==) xw1470 xw142 || List.elem_by (==) xw142 xw1471)",fontsize=16,color="magenta"];1097 -> 1102[label="",style="dashed", color="magenta", weight=3]; 1097 -> 1103[label="",style="dashed", color="magenta", weight=3]; 1098[label="List.nubByNubBy'1 (==) xw142 xw143 (xw144 : xw145) False",fontsize=16,color="black",shape="box"];1098 -> 1104[label="",style="solid", color="black", weight=3]; 1099[label="xw143",fontsize=16,color="green",shape="box"];1100[label="xw145",fontsize=16,color="green",shape="box"];1101[label="xw144",fontsize=16,color="green",shape="box"];1102[label="(==) xw1470 xw142",fontsize=16,color="blue",shape="box"];1205[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1205[label="",style="solid", color="blue", weight=9]; 1205 -> 1105[label="",style="solid", color="blue", weight=3]; 1206[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1206[label="",style="solid", color="blue", weight=9]; 1206 -> 1106[label="",style="solid", color="blue", weight=3]; 1207[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1207[label="",style="solid", color="blue", weight=9]; 1207 -> 1107[label="",style="solid", color="blue", weight=3]; 1208[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1208[label="",style="solid", color="blue", weight=9]; 1208 -> 1108[label="",style="solid", color="blue", weight=3]; 1209[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1209[label="",style="solid", color="blue", weight=9]; 1209 -> 1109[label="",style="solid", color="blue", weight=3]; 1210[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1210[label="",style="solid", color="blue", weight=9]; 1210 -> 1110[label="",style="solid", color="blue", weight=3]; 1211[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1211[label="",style="solid", color="blue", weight=9]; 1211 -> 1111[label="",style="solid", color="blue", weight=3]; 1212[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1212[label="",style="solid", color="blue", weight=9]; 1212 -> 1112[label="",style="solid", color="blue", weight=3]; 1213[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1213[label="",style="solid", color="blue", weight=9]; 1213 -> 1113[label="",style="solid", color="blue", weight=3]; 1214[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1214[label="",style="solid", color="blue", weight=9]; 1214 -> 1114[label="",style="solid", color="blue", weight=3]; 1215[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1215[label="",style="solid", color="blue", weight=9]; 1215 -> 1115[label="",style="solid", color="blue", weight=3]; 1216[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1216[label="",style="solid", color="blue", weight=9]; 1216 -> 1116[label="",style="solid", color="blue", weight=3]; 1217[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1217[label="",style="solid", color="blue", weight=9]; 1217 -> 1117[label="",style="solid", color="blue", weight=3]; 1218[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];1102 -> 1218[label="",style="solid", color="blue", weight=9]; 1218 -> 1118[label="",style="solid", color="blue", weight=3]; 1103[label="xw1471",fontsize=16,color="green",shape="box"];1104[label="List.nubByNubBy'0 (==) xw142 xw143 (xw144 : xw145) otherwise",fontsize=16,color="black",shape="box"];1104 -> 1119[label="",style="solid", color="black", weight=3]; 1105 -> 195[label="",style="dashed", color="red", weight=0]; 1105[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1105 -> 1120[label="",style="dashed", color="magenta", weight=3]; 1105 -> 1121[label="",style="dashed", color="magenta", weight=3]; 1106 -> 196[label="",style="dashed", color="red", weight=0]; 1106[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1106 -> 1122[label="",style="dashed", color="magenta", weight=3]; 1106 -> 1123[label="",style="dashed", color="magenta", weight=3]; 1107 -> 197[label="",style="dashed", color="red", weight=0]; 1107[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1107 -> 1124[label="",style="dashed", color="magenta", weight=3]; 1107 -> 1125[label="",style="dashed", color="magenta", weight=3]; 1108 -> 198[label="",style="dashed", color="red", weight=0]; 1108[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1108 -> 1126[label="",style="dashed", color="magenta", weight=3]; 1108 -> 1127[label="",style="dashed", color="magenta", weight=3]; 1109 -> 199[label="",style="dashed", color="red", weight=0]; 1109[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1109 -> 1128[label="",style="dashed", color="magenta", weight=3]; 1109 -> 1129[label="",style="dashed", color="magenta", weight=3]; 1110 -> 200[label="",style="dashed", color="red", weight=0]; 1110[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1110 -> 1130[label="",style="dashed", color="magenta", weight=3]; 1110 -> 1131[label="",style="dashed", color="magenta", weight=3]; 1111 -> 201[label="",style="dashed", color="red", weight=0]; 1111[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1111 -> 1132[label="",style="dashed", color="magenta", weight=3]; 1111 -> 1133[label="",style="dashed", color="magenta", weight=3]; 1112 -> 202[label="",style="dashed", color="red", weight=0]; 1112[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1112 -> 1134[label="",style="dashed", color="magenta", weight=3]; 1112 -> 1135[label="",style="dashed", color="magenta", weight=3]; 1113 -> 203[label="",style="dashed", color="red", weight=0]; 1113[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1113 -> 1136[label="",style="dashed", color="magenta", weight=3]; 1113 -> 1137[label="",style="dashed", color="magenta", weight=3]; 1114 -> 204[label="",style="dashed", color="red", weight=0]; 1114[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1114 -> 1138[label="",style="dashed", color="magenta", weight=3]; 1114 -> 1139[label="",style="dashed", color="magenta", weight=3]; 1115 -> 205[label="",style="dashed", color="red", weight=0]; 1115[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1115 -> 1140[label="",style="dashed", color="magenta", weight=3]; 1115 -> 1141[label="",style="dashed", color="magenta", weight=3]; 1116 -> 206[label="",style="dashed", color="red", weight=0]; 1116[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1116 -> 1142[label="",style="dashed", color="magenta", weight=3]; 1116 -> 1143[label="",style="dashed", color="magenta", weight=3]; 1117 -> 207[label="",style="dashed", color="red", weight=0]; 1117[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1117 -> 1144[label="",style="dashed", color="magenta", weight=3]; 1117 -> 1145[label="",style="dashed", color="magenta", weight=3]; 1118 -> 208[label="",style="dashed", color="red", weight=0]; 1118[label="(==) xw1470 xw142",fontsize=16,color="magenta"];1118 -> 1146[label="",style="dashed", color="magenta", weight=3]; 1118 -> 1147[label="",style="dashed", color="magenta", weight=3]; 1119[label="List.nubByNubBy'0 (==) xw142 xw143 (xw144 : xw145) True",fontsize=16,color="black",shape="box"];1119 -> 1148[label="",style="solid", color="black", weight=3]; 1120[label="xw142",fontsize=16,color="green",shape="box"];1121[label="xw1470",fontsize=16,color="green",shape="box"];1122[label="xw142",fontsize=16,color="green",shape="box"];1123[label="xw1470",fontsize=16,color="green",shape="box"];1124[label="xw142",fontsize=16,color="green",shape="box"];1125[label="xw1470",fontsize=16,color="green",shape="box"];1126[label="xw142",fontsize=16,color="green",shape="box"];1127[label="xw1470",fontsize=16,color="green",shape="box"];1128[label="xw142",fontsize=16,color="green",shape="box"];1129[label="xw1470",fontsize=16,color="green",shape="box"];1130[label="xw142",fontsize=16,color="green",shape="box"];1131[label="xw1470",fontsize=16,color="green",shape="box"];1132[label="xw142",fontsize=16,color="green",shape="box"];1133[label="xw1470",fontsize=16,color="green",shape="box"];1134[label="xw142",fontsize=16,color="green",shape="box"];1135[label="xw1470",fontsize=16,color="green",shape="box"];1136[label="xw142",fontsize=16,color="green",shape="box"];1137[label="xw1470",fontsize=16,color="green",shape="box"];1138[label="xw142",fontsize=16,color="green",shape="box"];1139[label="xw1470",fontsize=16,color="green",shape="box"];1140[label="xw142",fontsize=16,color="green",shape="box"];1141[label="xw1470",fontsize=16,color="green",shape="box"];1142[label="xw142",fontsize=16,color="green",shape="box"];1143[label="xw1470",fontsize=16,color="green",shape="box"];1144[label="xw142",fontsize=16,color="green",shape="box"];1145[label="xw1470",fontsize=16,color="green",shape="box"];1146[label="xw142",fontsize=16,color="green",shape="box"];1147[label="xw1470",fontsize=16,color="green",shape="box"];1148[label="xw142 : List.nubByNubBy' (==) xw143 (xw142 : xw144 : xw145)",fontsize=16,color="green",shape="box"];1148 -> 1149[label="",style="dashed", color="green", weight=3]; 1149 -> 589[label="",style="dashed", color="red", weight=0]; 1149[label="List.nubByNubBy' (==) xw143 (xw142 : xw144 : xw145)",fontsize=16,color="magenta"];1149 -> 1150[label="",style="dashed", color="magenta", weight=3]; 1149 -> 1151[label="",style="dashed", color="magenta", weight=3]; 1149 -> 1152[label="",style="dashed", color="magenta", weight=3]; 1150[label="xw143",fontsize=16,color="green",shape="box"];1151[label="xw144 : xw145",fontsize=16,color="green",shape="box"];1152[label="xw142",fontsize=16,color="green",shape="box"];} ---------------------------------------- (10) Complex Obligation (AND) ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: new_foldl(xw9, xw10, :(xw110, xw111), ba) -> new_foldl(new_flip(xw9, xw10, ba), xw110, xw111, ba) The TRS R consists of the following rules: new_esEs1(xw10, xw90, bb) -> error([]) new_esEs15(xw10, xw90, ty_@0) -> new_esEs14(xw10, xw90) new_esEs3(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, ty_Float) -> new_esEs4(xw10, xw90) new_esEs15(xw10, xw90, ty_Integer) -> new_esEs3(xw10, xw90) new_esEs10(xw10, xw90, bh, ca, cb) -> error([]) new_esEs11(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, app(ty_[], be)) -> new_esEs6(xw10, xw90, be) new_esEs15(xw10, xw90, app(ty_Maybe, bf)) -> new_esEs9(xw10, xw90, bf) new_esEs12(True, True) -> True new_esEs2(xw10, xw90, bc, bd) -> error([]) new_esEs15(xw10, xw90, ty_Bool) -> new_esEs12(xw10, xw90) new_esEs15(xw10, xw90, app(app(ty_Either, cc), cd)) -> new_esEs13(xw10, xw90, cc, cd) new_esEs12(False, False) -> True new_esEs7(xw10, xw90) -> error([]) new_esEs6(xw10, xw90, be) -> error([]) new_esEs4(xw10, xw90) -> error([]) new_deleteBy00(xw17, xw18, xw19, True, bg) -> xw17 new_esEs15(xw10, xw90, app(app(ty_@2, bc), bd)) -> new_esEs2(xw10, xw90, bc, bd) new_deleteBy1(xw10, :(xw90, xw91), ba) -> new_deleteBy00(xw91, xw90, xw10, new_esEs15(xw10, xw90, ba), ba) new_esEs15(xw10, xw90, ty_Double) -> new_esEs5(xw10, xw90) new_esEs14(xw10, xw90) -> error([]) new_flip(xw9, xw10, ba) -> new_deleteBy1(xw10, xw9, ba) new_esEs15(xw10, xw90, ty_Char) -> new_esEs7(xw10, xw90) new_esEs15(xw10, xw90, ty_Int) -> new_esEs11(xw10, xw90) new_esEs15(xw10, xw90, ty_Ordering) -> new_esEs8(xw10, xw90) new_esEs13(xw10, xw90, cc, cd) -> error([]) new_esEs15(xw10, xw90, app(ty_Ratio, bb)) -> new_esEs1(xw10, xw90, bb) new_esEs15(xw10, xw90, app(app(app(ty_@3, bh), ca), cb)) -> new_esEs10(xw10, xw90, bh, ca, cb) new_deleteBy1(xw10, [], ba) -> [] new_esEs8(xw10, xw90) -> error([]) new_deleteBy00(xw17, xw18, xw19, False, bg) -> :(xw18, new_deleteBy1(xw19, xw17, bg)) new_esEs9(xw10, xw90, bf) -> error([]) new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs6(x0, x1, x2) new_esEs7(x0, x1) new_esEs13(x0, x1, x2, x3) new_esEs12(False, True) new_esEs12(True, False) new_esEs1(x0, x1, x2) new_esEs12(True, True) new_deleteBy1(x0, :(x1, x2), x3) new_esEs15(x0, x1, ty_Char) new_deleteBy1(x0, [], x1) new_deleteBy00(x0, x1, x2, False, x3) new_esEs14(x0, x1) new_flip(x0, x1, x2) new_esEs15(x0, x1, app(app(ty_@2, x2), x3)) new_esEs15(x0, x1, app(app(ty_Either, x2), x3)) new_esEs12(False, False) new_esEs15(x0, x1, app(ty_Ratio, x2)) new_esEs5(x0, x1) new_esEs15(x0, x1, ty_Double) new_esEs15(x0, x1, ty_@0) new_esEs15(x0, x1, ty_Ordering) new_esEs15(x0, x1, ty_Float) new_esEs2(x0, x1, x2, x3) new_esEs15(x0, x1, app(ty_Maybe, x2)) new_esEs15(x0, x1, ty_Int) new_esEs11(x0, x1) new_esEs4(x0, x1) new_esEs3(x0, x1) new_esEs10(x0, x1, x2, x3, x4) new_esEs15(x0, x1, ty_Integer) new_esEs8(x0, x1) new_esEs15(x0, x1, ty_Bool) new_esEs9(x0, x1, x2) new_deleteBy00(x0, x1, x2, True, x3) new_esEs15(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs15(x0, x1, app(ty_[], x2)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_foldl(xw9, xw10, :(xw110, xw111), ba) -> new_foldl(new_flip(xw9, xw10, ba), xw110, xw111, ba) at position [0] we obtained the following new rules [LPAR04]: (new_foldl(xw9, xw10, :(xw110, xw111), ba) -> new_foldl(new_deleteBy1(xw10, xw9, ba), xw110, xw111, ba),new_foldl(xw9, xw10, :(xw110, xw111), ba) -> new_foldl(new_deleteBy1(xw10, xw9, ba), xw110, xw111, ba)) ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: new_foldl(xw9, xw10, :(xw110, xw111), ba) -> new_foldl(new_deleteBy1(xw10, xw9, ba), xw110, xw111, ba) The TRS R consists of the following rules: new_esEs1(xw10, xw90, bb) -> error([]) new_esEs15(xw10, xw90, ty_@0) -> new_esEs14(xw10, xw90) new_esEs3(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, ty_Float) -> new_esEs4(xw10, xw90) new_esEs15(xw10, xw90, ty_Integer) -> new_esEs3(xw10, xw90) new_esEs10(xw10, xw90, bh, ca, cb) -> error([]) new_esEs11(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, app(ty_[], be)) -> new_esEs6(xw10, xw90, be) new_esEs15(xw10, xw90, app(ty_Maybe, bf)) -> new_esEs9(xw10, xw90, bf) new_esEs12(True, True) -> True new_esEs2(xw10, xw90, bc, bd) -> error([]) new_esEs15(xw10, xw90, ty_Bool) -> new_esEs12(xw10, xw90) new_esEs15(xw10, xw90, app(app(ty_Either, cc), cd)) -> new_esEs13(xw10, xw90, cc, cd) new_esEs12(False, False) -> True new_esEs7(xw10, xw90) -> error([]) new_esEs6(xw10, xw90, be) -> error([]) new_esEs4(xw10, xw90) -> error([]) new_deleteBy00(xw17, xw18, xw19, True, bg) -> xw17 new_esEs15(xw10, xw90, app(app(ty_@2, bc), bd)) -> new_esEs2(xw10, xw90, bc, bd) new_deleteBy1(xw10, :(xw90, xw91), ba) -> new_deleteBy00(xw91, xw90, xw10, new_esEs15(xw10, xw90, ba), ba) new_esEs15(xw10, xw90, ty_Double) -> new_esEs5(xw10, xw90) new_esEs14(xw10, xw90) -> error([]) new_flip(xw9, xw10, ba) -> new_deleteBy1(xw10, xw9, ba) new_esEs15(xw10, xw90, ty_Char) -> new_esEs7(xw10, xw90) new_esEs15(xw10, xw90, ty_Int) -> new_esEs11(xw10, xw90) new_esEs15(xw10, xw90, ty_Ordering) -> new_esEs8(xw10, xw90) new_esEs13(xw10, xw90, cc, cd) -> error([]) new_esEs15(xw10, xw90, app(ty_Ratio, bb)) -> new_esEs1(xw10, xw90, bb) new_esEs15(xw10, xw90, app(app(app(ty_@3, bh), ca), cb)) -> new_esEs10(xw10, xw90, bh, ca, cb) new_deleteBy1(xw10, [], ba) -> [] new_esEs8(xw10, xw90) -> error([]) new_deleteBy00(xw17, xw18, xw19, False, bg) -> :(xw18, new_deleteBy1(xw19, xw17, bg)) new_esEs9(xw10, xw90, bf) -> error([]) new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs6(x0, x1, x2) new_esEs7(x0, x1) new_esEs13(x0, x1, x2, x3) new_esEs12(False, True) new_esEs12(True, False) new_esEs1(x0, x1, x2) new_esEs12(True, True) new_deleteBy1(x0, :(x1, x2), x3) new_esEs15(x0, x1, ty_Char) new_deleteBy1(x0, [], x1) new_deleteBy00(x0, x1, x2, False, x3) new_esEs14(x0, x1) new_flip(x0, x1, x2) new_esEs15(x0, x1, app(app(ty_@2, x2), x3)) new_esEs15(x0, x1, app(app(ty_Either, x2), x3)) new_esEs12(False, False) new_esEs15(x0, x1, app(ty_Ratio, x2)) new_esEs5(x0, x1) new_esEs15(x0, x1, ty_Double) new_esEs15(x0, x1, ty_@0) new_esEs15(x0, x1, ty_Ordering) new_esEs15(x0, x1, ty_Float) new_esEs2(x0, x1, x2, x3) new_esEs15(x0, x1, app(ty_Maybe, x2)) new_esEs15(x0, x1, ty_Int) new_esEs11(x0, x1) new_esEs4(x0, x1) new_esEs3(x0, x1) new_esEs10(x0, x1, x2, x3, x4) new_esEs15(x0, x1, ty_Integer) new_esEs8(x0, x1) new_esEs15(x0, x1, ty_Bool) new_esEs9(x0, x1, x2) new_deleteBy00(x0, x1, x2, True, x3) new_esEs15(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs15(x0, x1, app(ty_[], x2)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (15) Obligation: Q DP problem: The TRS P consists of the following rules: new_foldl(xw9, xw10, :(xw110, xw111), ba) -> new_foldl(new_deleteBy1(xw10, xw9, ba), xw110, xw111, ba) The TRS R consists of the following rules: new_deleteBy1(xw10, :(xw90, xw91), ba) -> new_deleteBy00(xw91, xw90, xw10, new_esEs15(xw10, xw90, ba), ba) new_deleteBy1(xw10, [], ba) -> [] new_esEs15(xw10, xw90, ty_@0) -> new_esEs14(xw10, xw90) new_esEs15(xw10, xw90, ty_Float) -> new_esEs4(xw10, xw90) new_esEs15(xw10, xw90, ty_Integer) -> new_esEs3(xw10, xw90) new_esEs15(xw10, xw90, app(ty_[], be)) -> new_esEs6(xw10, xw90, be) new_esEs15(xw10, xw90, app(ty_Maybe, bf)) -> new_esEs9(xw10, xw90, bf) new_esEs15(xw10, xw90, ty_Bool) -> new_esEs12(xw10, xw90) new_esEs15(xw10, xw90, app(app(ty_Either, cc), cd)) -> new_esEs13(xw10, xw90, cc, cd) new_esEs15(xw10, xw90, app(app(ty_@2, bc), bd)) -> new_esEs2(xw10, xw90, bc, bd) new_esEs15(xw10, xw90, ty_Double) -> new_esEs5(xw10, xw90) new_esEs15(xw10, xw90, ty_Char) -> new_esEs7(xw10, xw90) new_esEs15(xw10, xw90, ty_Int) -> new_esEs11(xw10, xw90) new_esEs15(xw10, xw90, ty_Ordering) -> new_esEs8(xw10, xw90) new_esEs15(xw10, xw90, app(ty_Ratio, bb)) -> new_esEs1(xw10, xw90, bb) new_esEs15(xw10, xw90, app(app(app(ty_@3, bh), ca), cb)) -> new_esEs10(xw10, xw90, bh, ca, cb) new_deleteBy00(xw17, xw18, xw19, True, bg) -> xw17 new_deleteBy00(xw17, xw18, xw19, False, bg) -> :(xw18, new_deleteBy1(xw19, xw17, bg)) new_esEs10(xw10, xw90, bh, ca, cb) -> error([]) new_esEs1(xw10, xw90, bb) -> error([]) new_esEs8(xw10, xw90) -> error([]) new_esEs11(xw10, xw90) -> error([]) new_esEs7(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs2(xw10, xw90, bc, bd) -> error([]) new_esEs13(xw10, xw90, cc, cd) -> error([]) new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False new_esEs9(xw10, xw90, bf) -> error([]) new_esEs6(xw10, xw90, be) -> error([]) new_esEs3(xw10, xw90) -> error([]) new_esEs4(xw10, xw90) -> error([]) new_esEs14(xw10, xw90) -> error([]) The set Q consists of the following terms: new_esEs6(x0, x1, x2) new_esEs7(x0, x1) new_esEs13(x0, x1, x2, x3) new_esEs12(False, True) new_esEs12(True, False) new_esEs1(x0, x1, x2) new_esEs12(True, True) new_deleteBy1(x0, :(x1, x2), x3) new_esEs15(x0, x1, ty_Char) new_deleteBy1(x0, [], x1) new_deleteBy00(x0, x1, x2, False, x3) new_esEs14(x0, x1) new_flip(x0, x1, x2) new_esEs15(x0, x1, app(app(ty_@2, x2), x3)) new_esEs15(x0, x1, app(app(ty_Either, x2), x3)) new_esEs12(False, False) new_esEs15(x0, x1, app(ty_Ratio, x2)) new_esEs5(x0, x1) new_esEs15(x0, x1, ty_Double) new_esEs15(x0, x1, ty_@0) new_esEs15(x0, x1, ty_Ordering) new_esEs15(x0, x1, ty_Float) new_esEs2(x0, x1, x2, x3) new_esEs15(x0, x1, app(ty_Maybe, x2)) new_esEs15(x0, x1, ty_Int) new_esEs11(x0, x1) new_esEs4(x0, x1) new_esEs3(x0, x1) new_esEs10(x0, x1, x2, x3, x4) new_esEs15(x0, x1, ty_Integer) new_esEs8(x0, x1) new_esEs15(x0, x1, ty_Bool) new_esEs9(x0, x1, x2) new_deleteBy00(x0, x1, x2, True, x3) new_esEs15(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs15(x0, x1, app(ty_[], x2)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (16) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_flip(x0, x1, x2) ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: new_foldl(xw9, xw10, :(xw110, xw111), ba) -> new_foldl(new_deleteBy1(xw10, xw9, ba), xw110, xw111, ba) The TRS R consists of the following rules: new_deleteBy1(xw10, :(xw90, xw91), ba) -> new_deleteBy00(xw91, xw90, xw10, new_esEs15(xw10, xw90, ba), ba) new_deleteBy1(xw10, [], ba) -> [] new_esEs15(xw10, xw90, ty_@0) -> new_esEs14(xw10, xw90) new_esEs15(xw10, xw90, ty_Float) -> new_esEs4(xw10, xw90) new_esEs15(xw10, xw90, ty_Integer) -> new_esEs3(xw10, xw90) new_esEs15(xw10, xw90, app(ty_[], be)) -> new_esEs6(xw10, xw90, be) new_esEs15(xw10, xw90, app(ty_Maybe, bf)) -> new_esEs9(xw10, xw90, bf) new_esEs15(xw10, xw90, ty_Bool) -> new_esEs12(xw10, xw90) new_esEs15(xw10, xw90, app(app(ty_Either, cc), cd)) -> new_esEs13(xw10, xw90, cc, cd) new_esEs15(xw10, xw90, app(app(ty_@2, bc), bd)) -> new_esEs2(xw10, xw90, bc, bd) new_esEs15(xw10, xw90, ty_Double) -> new_esEs5(xw10, xw90) new_esEs15(xw10, xw90, ty_Char) -> new_esEs7(xw10, xw90) new_esEs15(xw10, xw90, ty_Int) -> new_esEs11(xw10, xw90) new_esEs15(xw10, xw90, ty_Ordering) -> new_esEs8(xw10, xw90) new_esEs15(xw10, xw90, app(ty_Ratio, bb)) -> new_esEs1(xw10, xw90, bb) new_esEs15(xw10, xw90, app(app(app(ty_@3, bh), ca), cb)) -> new_esEs10(xw10, xw90, bh, ca, cb) new_deleteBy00(xw17, xw18, xw19, True, bg) -> xw17 new_deleteBy00(xw17, xw18, xw19, False, bg) -> :(xw18, new_deleteBy1(xw19, xw17, bg)) new_esEs10(xw10, xw90, bh, ca, cb) -> error([]) new_esEs1(xw10, xw90, bb) -> error([]) new_esEs8(xw10, xw90) -> error([]) new_esEs11(xw10, xw90) -> error([]) new_esEs7(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs2(xw10, xw90, bc, bd) -> error([]) new_esEs13(xw10, xw90, cc, cd) -> error([]) new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False new_esEs9(xw10, xw90, bf) -> error([]) new_esEs6(xw10, xw90, be) -> error([]) new_esEs3(xw10, xw90) -> error([]) new_esEs4(xw10, xw90) -> error([]) new_esEs14(xw10, xw90) -> error([]) The set Q consists of the following terms: new_esEs6(x0, x1, x2) new_esEs7(x0, x1) new_esEs13(x0, x1, x2, x3) new_esEs12(False, True) new_esEs12(True, False) new_esEs1(x0, x1, x2) new_esEs12(True, True) new_deleteBy1(x0, :(x1, x2), x3) new_esEs15(x0, x1, ty_Char) new_deleteBy1(x0, [], x1) new_deleteBy00(x0, x1, x2, False, x3) new_esEs14(x0, x1) new_esEs15(x0, x1, app(app(ty_@2, x2), x3)) new_esEs15(x0, x1, app(app(ty_Either, x2), x3)) new_esEs12(False, False) new_esEs15(x0, x1, app(ty_Ratio, x2)) new_esEs5(x0, x1) new_esEs15(x0, x1, ty_Double) new_esEs15(x0, x1, ty_@0) new_esEs15(x0, x1, ty_Ordering) new_esEs15(x0, x1, ty_Float) new_esEs2(x0, x1, x2, x3) new_esEs15(x0, x1, app(ty_Maybe, x2)) new_esEs15(x0, x1, ty_Int) new_esEs11(x0, x1) new_esEs4(x0, x1) new_esEs3(x0, x1) new_esEs10(x0, x1, x2, x3, x4) new_esEs15(x0, x1, ty_Integer) new_esEs8(x0, x1) new_esEs15(x0, x1, ty_Bool) new_esEs9(x0, x1, x2) new_deleteBy00(x0, x1, x2, True, x3) new_esEs15(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs15(x0, x1, app(ty_[], x2)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_foldl(xw9, xw10, :(xw110, xw111), ba) -> new_foldl(new_deleteBy1(xw10, xw9, ba), xw110, xw111, ba) The graph contains the following edges 3 > 2, 3 > 3, 4 >= 4 ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy(xw10, :(xw90, xw91), bb) -> new_deleteBy0(xw91, xw90, xw10, new_esEs15(xw10, xw90, bb), bb) new_deleteBy0(xw17, xw18, xw19, False, ba) -> new_deleteBy(xw19, xw17, ba) The TRS R consists of the following rules: new_esEs1(xw10, xw90, bc) -> error([]) new_esEs15(xw10, xw90, ty_@0) -> new_esEs14(xw10, xw90) new_esEs3(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, ty_Float) -> new_esEs4(xw10, xw90) new_esEs15(xw10, xw90, ty_Integer) -> new_esEs3(xw10, xw90) new_esEs10(xw10, xw90, bh, ca, cb) -> error([]) new_esEs11(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, app(ty_[], bf)) -> new_esEs6(xw10, xw90, bf) new_esEs15(xw10, xw90, app(ty_Maybe, bg)) -> new_esEs9(xw10, xw90, bg) new_esEs12(True, True) -> True new_esEs2(xw10, xw90, bd, be) -> error([]) new_esEs15(xw10, xw90, ty_Bool) -> new_esEs12(xw10, xw90) new_esEs15(xw10, xw90, app(app(ty_Either, cc), cd)) -> new_esEs13(xw10, xw90, cc, cd) new_esEs12(False, False) -> True new_esEs7(xw10, xw90) -> error([]) new_esEs6(xw10, xw90, bf) -> error([]) new_esEs4(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, app(app(ty_@2, bd), be)) -> new_esEs2(xw10, xw90, bd, be) new_esEs15(xw10, xw90, ty_Double) -> new_esEs5(xw10, xw90) new_esEs14(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, ty_Char) -> new_esEs7(xw10, xw90) new_esEs15(xw10, xw90, ty_Int) -> new_esEs11(xw10, xw90) new_esEs15(xw10, xw90, ty_Ordering) -> new_esEs8(xw10, xw90) new_esEs13(xw10, xw90, cc, cd) -> error([]) new_esEs15(xw10, xw90, app(ty_Ratio, bc)) -> new_esEs1(xw10, xw90, bc) new_esEs15(xw10, xw90, app(app(app(ty_@3, bh), ca), cb)) -> new_esEs10(xw10, xw90, bh, ca, cb) new_esEs8(xw10, xw90) -> error([]) new_esEs9(xw10, xw90, bg) -> error([]) new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs7(x0, x1) new_esEs13(x0, x1, x2, x3) new_esEs12(False, True) new_esEs12(True, False) new_esEs15(x0, x1, app(ty_[], x2)) new_esEs15(x0, x1, app(ty_Ratio, x2)) new_esEs12(True, True) new_esEs15(x0, x1, ty_Char) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs15(x0, x1, app(ty_Maybe, x2)) new_esEs15(x0, x1, app(app(ty_Either, x2), x3)) new_esEs15(x0, x1, app(app(ty_@2, x2), x3)) new_esEs12(False, False) new_esEs5(x0, x1) new_esEs15(x0, x1, ty_Double) new_esEs15(x0, x1, ty_@0) new_esEs2(x0, x1, x2, x3) new_esEs15(x0, x1, ty_Ordering) new_esEs15(x0, x1, ty_Float) new_esEs15(x0, x1, ty_Int) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs4(x0, x1) new_esEs3(x0, x1) new_esEs10(x0, x1, x2, x3, x4) new_esEs15(x0, x1, ty_Integer) new_esEs8(x0, x1) new_esEs15(x0, x1, ty_Bool) new_esEs15(x0, x1, app(app(app(ty_@3, x2), x3), x4)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_deleteBy(xw10, :(xw90, xw91), bb) -> new_deleteBy0(xw91, xw90, xw10, new_esEs15(xw10, xw90, bb), bb) at position [3] we obtained the following new rules [LPAR04]: (new_deleteBy(x0, :(x1, y2), ty_@0) -> new_deleteBy0(y2, x1, x0, new_esEs14(x0, x1), ty_@0),new_deleteBy(x0, :(x1, y2), ty_@0) -> new_deleteBy0(y2, x1, x0, new_esEs14(x0, x1), ty_@0)) (new_deleteBy(x0, :(x1, y2), ty_Float) -> new_deleteBy0(y2, x1, x0, new_esEs4(x0, x1), ty_Float),new_deleteBy(x0, :(x1, y2), ty_Float) -> new_deleteBy0(y2, x1, x0, new_esEs4(x0, x1), ty_Float)) (new_deleteBy(x0, :(x1, y2), ty_Integer) -> new_deleteBy0(y2, x1, x0, new_esEs3(x0, x1), ty_Integer),new_deleteBy(x0, :(x1, y2), ty_Integer) -> new_deleteBy0(y2, x1, x0, new_esEs3(x0, x1), ty_Integer)) (new_deleteBy(x0, :(x1, y2), app(ty_[], x2)) -> new_deleteBy0(y2, x1, x0, new_esEs6(x0, x1, x2), app(ty_[], x2)),new_deleteBy(x0, :(x1, y2), app(ty_[], x2)) -> new_deleteBy0(y2, x1, x0, new_esEs6(x0, x1, x2), app(ty_[], x2))) (new_deleteBy(x0, :(x1, y2), app(ty_Maybe, x2)) -> new_deleteBy0(y2, x1, x0, new_esEs9(x0, x1, x2), app(ty_Maybe, x2)),new_deleteBy(x0, :(x1, y2), app(ty_Maybe, x2)) -> new_deleteBy0(y2, x1, x0, new_esEs9(x0, x1, x2), app(ty_Maybe, x2))) (new_deleteBy(x0, :(x1, y2), ty_Bool) -> new_deleteBy0(y2, x1, x0, new_esEs12(x0, x1), ty_Bool),new_deleteBy(x0, :(x1, y2), ty_Bool) -> new_deleteBy0(y2, x1, x0, new_esEs12(x0, x1), ty_Bool)) (new_deleteBy(x0, :(x1, y2), app(app(ty_Either, x2), x3)) -> new_deleteBy0(y2, x1, x0, new_esEs13(x0, x1, x2, x3), app(app(ty_Either, x2), x3)),new_deleteBy(x0, :(x1, y2), app(app(ty_Either, x2), x3)) -> new_deleteBy0(y2, x1, x0, new_esEs13(x0, x1, x2, x3), app(app(ty_Either, x2), x3))) (new_deleteBy(x0, :(x1, y2), app(app(ty_@2, x2), x3)) -> new_deleteBy0(y2, x1, x0, new_esEs2(x0, x1, x2, x3), app(app(ty_@2, x2), x3)),new_deleteBy(x0, :(x1, y2), app(app(ty_@2, x2), x3)) -> new_deleteBy0(y2, x1, x0, new_esEs2(x0, x1, x2, x3), app(app(ty_@2, x2), x3))) (new_deleteBy(x0, :(x1, y2), ty_Double) -> new_deleteBy0(y2, x1, x0, new_esEs5(x0, x1), ty_Double),new_deleteBy(x0, :(x1, y2), ty_Double) -> new_deleteBy0(y2, x1, x0, new_esEs5(x0, x1), ty_Double)) (new_deleteBy(x0, :(x1, y2), ty_Char) -> new_deleteBy0(y2, x1, x0, new_esEs7(x0, x1), ty_Char),new_deleteBy(x0, :(x1, y2), ty_Char) -> new_deleteBy0(y2, x1, x0, new_esEs7(x0, x1), ty_Char)) (new_deleteBy(x0, :(x1, y2), ty_Int) -> new_deleteBy0(y2, x1, x0, new_esEs11(x0, x1), ty_Int),new_deleteBy(x0, :(x1, y2), ty_Int) -> new_deleteBy0(y2, x1, x0, new_esEs11(x0, x1), ty_Int)) (new_deleteBy(x0, :(x1, y2), ty_Ordering) -> new_deleteBy0(y2, x1, x0, new_esEs8(x0, x1), ty_Ordering),new_deleteBy(x0, :(x1, y2), ty_Ordering) -> new_deleteBy0(y2, x1, x0, new_esEs8(x0, x1), ty_Ordering)) (new_deleteBy(x0, :(x1, y2), app(ty_Ratio, x2)) -> new_deleteBy0(y2, x1, x0, new_esEs1(x0, x1, x2), app(ty_Ratio, x2)),new_deleteBy(x0, :(x1, y2), app(ty_Ratio, x2)) -> new_deleteBy0(y2, x1, x0, new_esEs1(x0, x1, x2), app(ty_Ratio, x2))) (new_deleteBy(x0, :(x1, y2), app(app(app(ty_@3, x2), x3), x4)) -> new_deleteBy0(y2, x1, x0, new_esEs10(x0, x1, x2, x3, x4), app(app(app(ty_@3, x2), x3), x4)),new_deleteBy(x0, :(x1, y2), app(app(app(ty_@3, x2), x3), x4)) -> new_deleteBy0(y2, x1, x0, new_esEs10(x0, x1, x2, x3, x4), app(app(app(ty_@3, x2), x3), x4))) ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy0(xw17, xw18, xw19, False, ba) -> new_deleteBy(xw19, xw17, ba) new_deleteBy(x0, :(x1, y2), ty_@0) -> new_deleteBy0(y2, x1, x0, new_esEs14(x0, x1), ty_@0) new_deleteBy(x0, :(x1, y2), ty_Float) -> new_deleteBy0(y2, x1, x0, new_esEs4(x0, x1), ty_Float) new_deleteBy(x0, :(x1, y2), ty_Integer) -> new_deleteBy0(y2, x1, x0, new_esEs3(x0, x1), ty_Integer) new_deleteBy(x0, :(x1, y2), app(ty_[], x2)) -> new_deleteBy0(y2, x1, x0, new_esEs6(x0, x1, x2), app(ty_[], x2)) new_deleteBy(x0, :(x1, y2), app(ty_Maybe, x2)) -> new_deleteBy0(y2, x1, x0, new_esEs9(x0, x1, x2), app(ty_Maybe, x2)) new_deleteBy(x0, :(x1, y2), ty_Bool) -> new_deleteBy0(y2, x1, x0, new_esEs12(x0, x1), ty_Bool) new_deleteBy(x0, :(x1, y2), app(app(ty_Either, x2), x3)) -> new_deleteBy0(y2, x1, x0, new_esEs13(x0, x1, x2, x3), app(app(ty_Either, x2), x3)) new_deleteBy(x0, :(x1, y2), app(app(ty_@2, x2), x3)) -> new_deleteBy0(y2, x1, x0, new_esEs2(x0, x1, x2, x3), app(app(ty_@2, x2), x3)) new_deleteBy(x0, :(x1, y2), ty_Double) -> new_deleteBy0(y2, x1, x0, new_esEs5(x0, x1), ty_Double) new_deleteBy(x0, :(x1, y2), ty_Char) -> new_deleteBy0(y2, x1, x0, new_esEs7(x0, x1), ty_Char) new_deleteBy(x0, :(x1, y2), ty_Int) -> new_deleteBy0(y2, x1, x0, new_esEs11(x0, x1), ty_Int) new_deleteBy(x0, :(x1, y2), ty_Ordering) -> new_deleteBy0(y2, x1, x0, new_esEs8(x0, x1), ty_Ordering) new_deleteBy(x0, :(x1, y2), app(ty_Ratio, x2)) -> new_deleteBy0(y2, x1, x0, new_esEs1(x0, x1, x2), app(ty_Ratio, x2)) new_deleteBy(x0, :(x1, y2), app(app(app(ty_@3, x2), x3), x4)) -> new_deleteBy0(y2, x1, x0, new_esEs10(x0, x1, x2, x3, x4), app(app(app(ty_@3, x2), x3), x4)) The TRS R consists of the following rules: new_esEs1(xw10, xw90, bc) -> error([]) new_esEs15(xw10, xw90, ty_@0) -> new_esEs14(xw10, xw90) new_esEs3(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, ty_Float) -> new_esEs4(xw10, xw90) new_esEs15(xw10, xw90, ty_Integer) -> new_esEs3(xw10, xw90) new_esEs10(xw10, xw90, bh, ca, cb) -> error([]) new_esEs11(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, app(ty_[], bf)) -> new_esEs6(xw10, xw90, bf) new_esEs15(xw10, xw90, app(ty_Maybe, bg)) -> new_esEs9(xw10, xw90, bg) new_esEs12(True, True) -> True new_esEs2(xw10, xw90, bd, be) -> error([]) new_esEs15(xw10, xw90, ty_Bool) -> new_esEs12(xw10, xw90) new_esEs15(xw10, xw90, app(app(ty_Either, cc), cd)) -> new_esEs13(xw10, xw90, cc, cd) new_esEs12(False, False) -> True new_esEs7(xw10, xw90) -> error([]) new_esEs6(xw10, xw90, bf) -> error([]) new_esEs4(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, app(app(ty_@2, bd), be)) -> new_esEs2(xw10, xw90, bd, be) new_esEs15(xw10, xw90, ty_Double) -> new_esEs5(xw10, xw90) new_esEs14(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, ty_Char) -> new_esEs7(xw10, xw90) new_esEs15(xw10, xw90, ty_Int) -> new_esEs11(xw10, xw90) new_esEs15(xw10, xw90, ty_Ordering) -> new_esEs8(xw10, xw90) new_esEs13(xw10, xw90, cc, cd) -> error([]) new_esEs15(xw10, xw90, app(ty_Ratio, bc)) -> new_esEs1(xw10, xw90, bc) new_esEs15(xw10, xw90, app(app(app(ty_@3, bh), ca), cb)) -> new_esEs10(xw10, xw90, bh, ca, cb) new_esEs8(xw10, xw90) -> error([]) new_esEs9(xw10, xw90, bg) -> error([]) new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs7(x0, x1) new_esEs13(x0, x1, x2, x3) new_esEs12(False, True) new_esEs12(True, False) new_esEs15(x0, x1, app(ty_[], x2)) new_esEs15(x0, x1, app(ty_Ratio, x2)) new_esEs12(True, True) new_esEs15(x0, x1, ty_Char) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs15(x0, x1, app(ty_Maybe, x2)) new_esEs15(x0, x1, app(app(ty_Either, x2), x3)) new_esEs15(x0, x1, app(app(ty_@2, x2), x3)) new_esEs12(False, False) new_esEs5(x0, x1) new_esEs15(x0, x1, ty_Double) new_esEs15(x0, x1, ty_@0) new_esEs2(x0, x1, x2, x3) new_esEs15(x0, x1, ty_Ordering) new_esEs15(x0, x1, ty_Float) new_esEs15(x0, x1, ty_Int) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs4(x0, x1) new_esEs3(x0, x1) new_esEs10(x0, x1, x2, x3, x4) new_esEs15(x0, x1, ty_Integer) new_esEs8(x0, x1) new_esEs15(x0, x1, ty_Bool) new_esEs15(x0, x1, app(app(app(ty_@3, x2), x3), x4)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 13 less nodes. ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy(x0, :(x1, y2), ty_Bool) -> new_deleteBy0(y2, x1, x0, new_esEs12(x0, x1), ty_Bool) new_deleteBy0(xw17, xw18, xw19, False, ba) -> new_deleteBy(xw19, xw17, ba) The TRS R consists of the following rules: new_esEs1(xw10, xw90, bc) -> error([]) new_esEs15(xw10, xw90, ty_@0) -> new_esEs14(xw10, xw90) new_esEs3(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, ty_Float) -> new_esEs4(xw10, xw90) new_esEs15(xw10, xw90, ty_Integer) -> new_esEs3(xw10, xw90) new_esEs10(xw10, xw90, bh, ca, cb) -> error([]) new_esEs11(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, app(ty_[], bf)) -> new_esEs6(xw10, xw90, bf) new_esEs15(xw10, xw90, app(ty_Maybe, bg)) -> new_esEs9(xw10, xw90, bg) new_esEs12(True, True) -> True new_esEs2(xw10, xw90, bd, be) -> error([]) new_esEs15(xw10, xw90, ty_Bool) -> new_esEs12(xw10, xw90) new_esEs15(xw10, xw90, app(app(ty_Either, cc), cd)) -> new_esEs13(xw10, xw90, cc, cd) new_esEs12(False, False) -> True new_esEs7(xw10, xw90) -> error([]) new_esEs6(xw10, xw90, bf) -> error([]) new_esEs4(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, app(app(ty_@2, bd), be)) -> new_esEs2(xw10, xw90, bd, be) new_esEs15(xw10, xw90, ty_Double) -> new_esEs5(xw10, xw90) new_esEs14(xw10, xw90) -> error([]) new_esEs15(xw10, xw90, ty_Char) -> new_esEs7(xw10, xw90) new_esEs15(xw10, xw90, ty_Int) -> new_esEs11(xw10, xw90) new_esEs15(xw10, xw90, ty_Ordering) -> new_esEs8(xw10, xw90) new_esEs13(xw10, xw90, cc, cd) -> error([]) new_esEs15(xw10, xw90, app(ty_Ratio, bc)) -> new_esEs1(xw10, xw90, bc) new_esEs15(xw10, xw90, app(app(app(ty_@3, bh), ca), cb)) -> new_esEs10(xw10, xw90, bh, ca, cb) new_esEs8(xw10, xw90) -> error([]) new_esEs9(xw10, xw90, bg) -> error([]) new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs7(x0, x1) new_esEs13(x0, x1, x2, x3) new_esEs12(False, True) new_esEs12(True, False) new_esEs15(x0, x1, app(ty_[], x2)) new_esEs15(x0, x1, app(ty_Ratio, x2)) new_esEs12(True, True) new_esEs15(x0, x1, ty_Char) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs15(x0, x1, app(ty_Maybe, x2)) new_esEs15(x0, x1, app(app(ty_Either, x2), x3)) new_esEs15(x0, x1, app(app(ty_@2, x2), x3)) new_esEs12(False, False) new_esEs5(x0, x1) new_esEs15(x0, x1, ty_Double) new_esEs15(x0, x1, ty_@0) new_esEs2(x0, x1, x2, x3) new_esEs15(x0, x1, ty_Ordering) new_esEs15(x0, x1, ty_Float) new_esEs15(x0, x1, ty_Int) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs4(x0, x1) new_esEs3(x0, x1) new_esEs10(x0, x1, x2, x3, x4) new_esEs15(x0, x1, ty_Integer) new_esEs8(x0, x1) new_esEs15(x0, x1, ty_Bool) new_esEs15(x0, x1, app(app(app(ty_@3, x2), x3), x4)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy(x0, :(x1, y2), ty_Bool) -> new_deleteBy0(y2, x1, x0, new_esEs12(x0, x1), ty_Bool) new_deleteBy0(xw17, xw18, xw19, False, ba) -> new_deleteBy(xw19, xw17, ba) The TRS R consists of the following rules: new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs7(x0, x1) new_esEs13(x0, x1, x2, x3) new_esEs12(False, True) new_esEs12(True, False) new_esEs15(x0, x1, app(ty_[], x2)) new_esEs15(x0, x1, app(ty_Ratio, x2)) new_esEs12(True, True) new_esEs15(x0, x1, ty_Char) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs15(x0, x1, app(ty_Maybe, x2)) new_esEs15(x0, x1, app(app(ty_Either, x2), x3)) new_esEs15(x0, x1, app(app(ty_@2, x2), x3)) new_esEs12(False, False) new_esEs5(x0, x1) new_esEs15(x0, x1, ty_Double) new_esEs15(x0, x1, ty_@0) new_esEs2(x0, x1, x2, x3) new_esEs15(x0, x1, ty_Ordering) new_esEs15(x0, x1, ty_Float) new_esEs15(x0, x1, ty_Int) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs4(x0, x1) new_esEs3(x0, x1) new_esEs10(x0, x1, x2, x3, x4) new_esEs15(x0, x1, ty_Integer) new_esEs8(x0, x1) new_esEs15(x0, x1, ty_Bool) new_esEs15(x0, x1, app(app(app(ty_@3, x2), x3), x4)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_esEs7(x0, x1) new_esEs13(x0, x1, x2, x3) new_esEs15(x0, x1, app(ty_[], x2)) new_esEs15(x0, x1, app(ty_Ratio, x2)) new_esEs15(x0, x1, ty_Char) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs15(x0, x1, app(ty_Maybe, x2)) new_esEs15(x0, x1, app(app(ty_Either, x2), x3)) new_esEs15(x0, x1, app(app(ty_@2, x2), x3)) new_esEs5(x0, x1) new_esEs15(x0, x1, ty_Double) new_esEs15(x0, x1, ty_@0) new_esEs2(x0, x1, x2, x3) new_esEs15(x0, x1, ty_Ordering) new_esEs15(x0, x1, ty_Float) new_esEs15(x0, x1, ty_Int) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs4(x0, x1) new_esEs3(x0, x1) new_esEs10(x0, x1, x2, x3, x4) new_esEs15(x0, x1, ty_Integer) new_esEs8(x0, x1) new_esEs15(x0, x1, ty_Bool) new_esEs15(x0, x1, app(app(app(ty_@3, x2), x3), x4)) ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy(x0, :(x1, y2), ty_Bool) -> new_deleteBy0(y2, x1, x0, new_esEs12(x0, x1), ty_Bool) new_deleteBy0(xw17, xw18, xw19, False, ba) -> new_deleteBy(xw19, xw17, ba) The TRS R consists of the following rules: new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs12(False, True) new_esEs12(True, False) new_esEs12(True, True) new_esEs12(False, False) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_deleteBy(x0, :(x1, y2), ty_Bool) -> new_deleteBy0(y2, x1, x0, new_esEs12(x0, x1), ty_Bool) at position [3] we obtained the following new rules [LPAR04]: (new_deleteBy(True, :(True, y2), ty_Bool) -> new_deleteBy0(y2, True, True, True, ty_Bool),new_deleteBy(True, :(True, y2), ty_Bool) -> new_deleteBy0(y2, True, True, True, ty_Bool)) (new_deleteBy(False, :(False, y2), ty_Bool) -> new_deleteBy0(y2, False, False, True, ty_Bool),new_deleteBy(False, :(False, y2), ty_Bool) -> new_deleteBy0(y2, False, False, True, ty_Bool)) (new_deleteBy(False, :(True, y2), ty_Bool) -> new_deleteBy0(y2, True, False, False, ty_Bool),new_deleteBy(False, :(True, y2), ty_Bool) -> new_deleteBy0(y2, True, False, False, ty_Bool)) (new_deleteBy(True, :(False, y2), ty_Bool) -> new_deleteBy0(y2, False, True, False, ty_Bool),new_deleteBy(True, :(False, y2), ty_Bool) -> new_deleteBy0(y2, False, True, False, ty_Bool)) ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy0(xw17, xw18, xw19, False, ba) -> new_deleteBy(xw19, xw17, ba) new_deleteBy(True, :(True, y2), ty_Bool) -> new_deleteBy0(y2, True, True, True, ty_Bool) new_deleteBy(False, :(False, y2), ty_Bool) -> new_deleteBy0(y2, False, False, True, ty_Bool) new_deleteBy(False, :(True, y2), ty_Bool) -> new_deleteBy0(y2, True, False, False, ty_Bool) new_deleteBy(True, :(False, y2), ty_Bool) -> new_deleteBy0(y2, False, True, False, ty_Bool) The TRS R consists of the following rules: new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs12(False, True) new_esEs12(True, False) new_esEs12(True, True) new_esEs12(False, False) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy(False, :(True, y2), ty_Bool) -> new_deleteBy0(y2, True, False, False, ty_Bool) new_deleteBy0(xw17, xw18, xw19, False, ba) -> new_deleteBy(xw19, xw17, ba) new_deleteBy(True, :(False, y2), ty_Bool) -> new_deleteBy0(y2, False, True, False, ty_Bool) The TRS R consists of the following rules: new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs12(False, True) new_esEs12(True, False) new_esEs12(True, True) new_esEs12(False, False) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy(False, :(True, y2), ty_Bool) -> new_deleteBy0(y2, True, False, False, ty_Bool) new_deleteBy0(xw17, xw18, xw19, False, ba) -> new_deleteBy(xw19, xw17, ba) new_deleteBy(True, :(False, y2), ty_Bool) -> new_deleteBy0(y2, False, True, False, ty_Bool) R is empty. The set Q consists of the following terms: new_esEs12(False, True) new_esEs12(True, False) new_esEs12(True, True) new_esEs12(False, False) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_esEs12(False, True) new_esEs12(True, False) new_esEs12(True, True) new_esEs12(False, False) ---------------------------------------- (36) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy(False, :(True, y2), ty_Bool) -> new_deleteBy0(y2, True, False, False, ty_Bool) new_deleteBy0(xw17, xw18, xw19, False, ba) -> new_deleteBy(xw19, xw17, ba) new_deleteBy(True, :(False, y2), ty_Bool) -> new_deleteBy0(y2, False, True, False, ty_Bool) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (37) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_deleteBy0(xw17, xw18, xw19, False, ba) -> new_deleteBy(xw19, xw17, ba) we obtained the following new rules [LPAR04]: (new_deleteBy0(z0, True, False, False, ty_Bool) -> new_deleteBy(False, z0, ty_Bool),new_deleteBy0(z0, True, False, False, ty_Bool) -> new_deleteBy(False, z0, ty_Bool)) (new_deleteBy0(z0, False, True, False, ty_Bool) -> new_deleteBy(True, z0, ty_Bool),new_deleteBy0(z0, False, True, False, ty_Bool) -> new_deleteBy(True, z0, ty_Bool)) ---------------------------------------- (38) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy(False, :(True, y2), ty_Bool) -> new_deleteBy0(y2, True, False, False, ty_Bool) new_deleteBy(True, :(False, y2), ty_Bool) -> new_deleteBy0(y2, False, True, False, ty_Bool) new_deleteBy0(z0, True, False, False, ty_Bool) -> new_deleteBy(False, z0, ty_Bool) new_deleteBy0(z0, False, True, False, ty_Bool) -> new_deleteBy(True, z0, ty_Bool) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (39) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (40) Complex Obligation (AND) ---------------------------------------- (41) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy0(z0, False, True, False, ty_Bool) -> new_deleteBy(True, z0, ty_Bool) new_deleteBy(True, :(False, y2), ty_Bool) -> new_deleteBy0(y2, False, True, False, ty_Bool) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (42) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_deleteBy(True, :(False, y2), ty_Bool) -> new_deleteBy0(y2, False, True, False, ty_Bool) The graph contains the following edges 2 > 1, 2 > 2, 1 >= 3, 2 > 4, 3 >= 5 *new_deleteBy0(z0, False, True, False, ty_Bool) -> new_deleteBy(True, z0, ty_Bool) The graph contains the following edges 3 >= 1, 1 >= 2, 5 >= 3 ---------------------------------------- (43) YES ---------------------------------------- (44) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy0(z0, True, False, False, ty_Bool) -> new_deleteBy(False, z0, ty_Bool) new_deleteBy(False, :(True, y2), ty_Bool) -> new_deleteBy0(y2, True, False, False, ty_Bool) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (45) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_deleteBy(False, :(True, y2), ty_Bool) -> new_deleteBy0(y2, True, False, False, ty_Bool) The graph contains the following edges 2 > 1, 2 > 2, 1 >= 3, 1 >= 4, 3 >= 5 *new_deleteBy0(z0, True, False, False, ty_Bool) -> new_deleteBy(False, z0, ty_Bool) The graph contains the following edges 3 >= 1, 4 >= 1, 1 >= 2, 5 >= 3 ---------------------------------------- (46) YES ---------------------------------------- (47) Obligation: Q DP problem: The TRS P consists of the following rules: new_psPs(:(xw80, xw81), xw9, xw10, xw11, ba) -> new_psPs(xw81, xw9, xw10, xw11, ba) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (48) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_psPs(:(xw80, xw81), xw9, xw10, xw11, ba) -> new_psPs(xw81, xw9, xw10, xw11, ba) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5 ---------------------------------------- (49) YES ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'(:(xw500, xw501), xw51, xw52, bb) -> new_nubByNubBy'1(xw500, xw501, xw51, xw52, new_esEs0(xw51, xw500, bb), xw52, bb) new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, :(xw1470, xw1471), ba) -> new_nubByNubBy'1(xw142, xw143, xw144, xw145, new_esEs(xw1470, xw142, ba), xw1471, ba) The TRS R consists of the following rules: new_esEs1(xw10, xw90, bc) -> error([]) new_esEs3(xw10, xw90) -> error([]) new_esEs0(xw51, xw500, ty_@0) -> new_esEs14(xw51, xw500) new_esEs10(xw10, xw90, eg, eh, fa) -> error([]) new_esEs0(xw51, xw500, ty_Float) -> new_esEs4(xw51, xw500) new_esEs11(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs(xw1470, xw142, app(ty_Ratio, bh)) -> new_esEs1(xw1470, xw142, bh) new_esEs0(xw51, xw500, app(ty_[], dd)) -> new_esEs6(xw51, xw500, dd) new_esEs0(xw51, xw500, ty_Integer) -> new_esEs3(xw51, xw500) new_esEs12(True, True) -> True new_esEs2(xw10, xw90, bd, be) -> error([]) new_esEs(xw1470, xw142, ty_Integer) -> new_esEs3(xw1470, xw142) new_esEs(xw1470, xw142, ty_@0) -> new_esEs14(xw1470, xw142) new_esEs0(xw51, xw500, app(app(ty_Either, ec), ed)) -> new_esEs13(xw51, xw500, ec, ed) new_esEs12(False, False) -> True new_esEs7(xw10, xw90) -> error([]) new_esEs(xw1470, xw142, ty_Double) -> new_esEs5(xw1470, xw142) new_esEs6(xw10, xw90, bf) -> error([]) new_esEs(xw1470, xw142, ty_Ordering) -> new_esEs8(xw1470, xw142) new_esEs(xw1470, xw142, ty_Char) -> new_esEs7(xw1470, xw142) new_esEs0(xw51, xw500, ty_Bool) -> new_esEs12(xw51, xw500) new_esEs(xw1470, xw142, ty_Bool) -> new_esEs12(xw1470, xw142) new_esEs(xw1470, xw142, app(app(ty_Either, da), db)) -> new_esEs13(xw1470, xw142, da, db) new_esEs(xw1470, xw142, ty_Int) -> new_esEs11(xw1470, xw142) new_esEs0(xw51, xw500, app(app(ty_@2, ea), eb)) -> new_esEs2(xw51, xw500, ea, eb) new_esEs4(xw10, xw90) -> error([]) new_esEs(xw1470, xw142, app(ty_Maybe, cb)) -> new_esEs9(xw1470, xw142, cb) new_esEs(xw1470, xw142, app(app(app(ty_@3, cc), cd), ce)) -> new_esEs10(xw1470, xw142, cc, cd, ce) new_esEs0(xw51, xw500, ty_Double) -> new_esEs5(xw51, xw500) new_esEs(xw1470, xw142, app(ty_[], ca)) -> new_esEs6(xw1470, xw142, ca) new_esEs14(xw10, xw90) -> error([]) new_esEs(xw1470, xw142, app(app(ty_@2, cf), cg)) -> new_esEs2(xw1470, xw142, cf, cg) new_esEs0(xw51, xw500, ty_Char) -> new_esEs7(xw51, xw500) new_esEs0(xw51, xw500, ty_Int) -> new_esEs11(xw51, xw500) new_esEs0(xw51, xw500, app(ty_Maybe, de)) -> new_esEs9(xw51, xw500, de) new_esEs13(xw10, xw90, ee, ef) -> error([]) new_esEs0(xw51, xw500, ty_Ordering) -> new_esEs8(xw51, xw500) new_esEs8(xw10, xw90) -> error([]) new_esEs0(xw51, xw500, app(ty_Ratio, dc)) -> new_esEs1(xw51, xw500, dc) new_esEs(xw1470, xw142, ty_Float) -> new_esEs4(xw1470, xw142) new_esEs0(xw51, xw500, app(app(app(ty_@3, df), dg), dh)) -> new_esEs10(xw51, xw500, df, dg, dh) new_esEs9(xw10, xw90, bg) -> error([]) new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs0(x0, x1, ty_Ordering) new_esEs7(x0, x1) new_esEs0(x0, x1, ty_Integer) new_esEs0(x0, x1, app(app(ty_@2, x2), x3)) new_esEs12(False, True) new_esEs12(True, False) new_esEs13(x0, x1, x2, x3) new_esEs12(True, True) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs0(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, ty_Integer) new_esEs0(x0, x1, ty_Float) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs12(False, False) new_esEs5(x0, x1) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs2(x0, x1, x2, x3) new_esEs0(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Int) new_esEs(x0, x1, ty_Float) new_esEs0(x0, x1, ty_@0) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs0(x0, x1, ty_Double) new_esEs0(x0, x1, app(ty_Ratio, x2)) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs10(x0, x1, x2, x3, x4) new_esEs4(x0, x1) new_esEs0(x0, x1, ty_Char) new_esEs(x0, x1, ty_Ordering) new_esEs3(x0, x1) new_esEs0(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs0(x0, x1, ty_Int) new_esEs0(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_@0) new_esEs0(x0, x1, app(ty_Maybe, x2)) new_esEs8(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (51) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_nubByNubBy'(:(xw500, xw501), xw51, xw52, bb) -> new_nubByNubBy'1(xw500, xw501, xw51, xw52, new_esEs0(xw51, xw500, bb), xw52, bb) at position [4] we obtained the following new rules [LPAR04]: (new_nubByNubBy'(:(x1, y1), x0, y3, ty_@0) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs14(x0, x1), y3, ty_@0),new_nubByNubBy'(:(x1, y1), x0, y3, ty_@0) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs14(x0, x1), y3, ty_@0)) (new_nubByNubBy'(:(x1, y1), x0, y3, ty_Float) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs4(x0, x1), y3, ty_Float),new_nubByNubBy'(:(x1, y1), x0, y3, ty_Float) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs4(x0, x1), y3, ty_Float)) (new_nubByNubBy'(:(x1, y1), x0, y3, app(ty_[], x2)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs6(x0, x1, x2), y3, app(ty_[], x2)),new_nubByNubBy'(:(x1, y1), x0, y3, app(ty_[], x2)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs6(x0, x1, x2), y3, app(ty_[], x2))) (new_nubByNubBy'(:(x1, y1), x0, y3, ty_Integer) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs3(x0, x1), y3, ty_Integer),new_nubByNubBy'(:(x1, y1), x0, y3, ty_Integer) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs3(x0, x1), y3, ty_Integer)) (new_nubByNubBy'(:(x1, y1), x0, y3, app(app(ty_Either, x2), x3)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs13(x0, x1, x2, x3), y3, app(app(ty_Either, x2), x3)),new_nubByNubBy'(:(x1, y1), x0, y3, app(app(ty_Either, x2), x3)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs13(x0, x1, x2, x3), y3, app(app(ty_Either, x2), x3))) (new_nubByNubBy'(:(x1, y1), x0, y3, ty_Bool) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs12(x0, x1), y3, ty_Bool),new_nubByNubBy'(:(x1, y1), x0, y3, ty_Bool) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs12(x0, x1), y3, ty_Bool)) (new_nubByNubBy'(:(x1, y1), x0, y3, app(app(ty_@2, x2), x3)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs2(x0, x1, x2, x3), y3, app(app(ty_@2, x2), x3)),new_nubByNubBy'(:(x1, y1), x0, y3, app(app(ty_@2, x2), x3)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs2(x0, x1, x2, x3), y3, app(app(ty_@2, x2), x3))) (new_nubByNubBy'(:(x1, y1), x0, y3, ty_Double) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs5(x0, x1), y3, ty_Double),new_nubByNubBy'(:(x1, y1), x0, y3, ty_Double) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs5(x0, x1), y3, ty_Double)) (new_nubByNubBy'(:(x1, y1), x0, y3, ty_Char) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs7(x0, x1), y3, ty_Char),new_nubByNubBy'(:(x1, y1), x0, y3, ty_Char) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs7(x0, x1), y3, ty_Char)) (new_nubByNubBy'(:(x1, y1), x0, y3, ty_Int) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs11(x0, x1), y3, ty_Int),new_nubByNubBy'(:(x1, y1), x0, y3, ty_Int) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs11(x0, x1), y3, ty_Int)) (new_nubByNubBy'(:(x1, y1), x0, y3, app(ty_Maybe, x2)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs9(x0, x1, x2), y3, app(ty_Maybe, x2)),new_nubByNubBy'(:(x1, y1), x0, y3, app(ty_Maybe, x2)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs9(x0, x1, x2), y3, app(ty_Maybe, x2))) (new_nubByNubBy'(:(x1, y1), x0, y3, ty_Ordering) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs8(x0, x1), y3, ty_Ordering),new_nubByNubBy'(:(x1, y1), x0, y3, ty_Ordering) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs8(x0, x1), y3, ty_Ordering)) (new_nubByNubBy'(:(x1, y1), x0, y3, app(ty_Ratio, x2)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs1(x0, x1, x2), y3, app(ty_Ratio, x2)),new_nubByNubBy'(:(x1, y1), x0, y3, app(ty_Ratio, x2)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs1(x0, x1, x2), y3, app(ty_Ratio, x2))) (new_nubByNubBy'(:(x1, y1), x0, y3, app(app(app(ty_@3, x2), x3), x4)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs10(x0, x1, x2, x3, x4), y3, app(app(app(ty_@3, x2), x3), x4)),new_nubByNubBy'(:(x1, y1), x0, y3, app(app(app(ty_@3, x2), x3), x4)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs10(x0, x1, x2, x3, x4), y3, app(app(app(ty_@3, x2), x3), x4))) ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, :(xw1470, xw1471), ba) -> new_nubByNubBy'1(xw142, xw143, xw144, xw145, new_esEs(xw1470, xw142, ba), xw1471, ba) new_nubByNubBy'(:(x1, y1), x0, y3, ty_@0) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs14(x0, x1), y3, ty_@0) new_nubByNubBy'(:(x1, y1), x0, y3, ty_Float) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs4(x0, x1), y3, ty_Float) new_nubByNubBy'(:(x1, y1), x0, y3, app(ty_[], x2)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs6(x0, x1, x2), y3, app(ty_[], x2)) new_nubByNubBy'(:(x1, y1), x0, y3, ty_Integer) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs3(x0, x1), y3, ty_Integer) new_nubByNubBy'(:(x1, y1), x0, y3, app(app(ty_Either, x2), x3)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs13(x0, x1, x2, x3), y3, app(app(ty_Either, x2), x3)) new_nubByNubBy'(:(x1, y1), x0, y3, ty_Bool) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs12(x0, x1), y3, ty_Bool) new_nubByNubBy'(:(x1, y1), x0, y3, app(app(ty_@2, x2), x3)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs2(x0, x1, x2, x3), y3, app(app(ty_@2, x2), x3)) new_nubByNubBy'(:(x1, y1), x0, y3, ty_Double) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs5(x0, x1), y3, ty_Double) new_nubByNubBy'(:(x1, y1), x0, y3, ty_Char) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs7(x0, x1), y3, ty_Char) new_nubByNubBy'(:(x1, y1), x0, y3, ty_Int) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs11(x0, x1), y3, ty_Int) new_nubByNubBy'(:(x1, y1), x0, y3, app(ty_Maybe, x2)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs9(x0, x1, x2), y3, app(ty_Maybe, x2)) new_nubByNubBy'(:(x1, y1), x0, y3, ty_Ordering) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs8(x0, x1), y3, ty_Ordering) new_nubByNubBy'(:(x1, y1), x0, y3, app(ty_Ratio, x2)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs1(x0, x1, x2), y3, app(ty_Ratio, x2)) new_nubByNubBy'(:(x1, y1), x0, y3, app(app(app(ty_@3, x2), x3), x4)) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs10(x0, x1, x2, x3, x4), y3, app(app(app(ty_@3, x2), x3), x4)) The TRS R consists of the following rules: new_esEs1(xw10, xw90, bc) -> error([]) new_esEs3(xw10, xw90) -> error([]) new_esEs0(xw51, xw500, ty_@0) -> new_esEs14(xw51, xw500) new_esEs10(xw10, xw90, eg, eh, fa) -> error([]) new_esEs0(xw51, xw500, ty_Float) -> new_esEs4(xw51, xw500) new_esEs11(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs(xw1470, xw142, app(ty_Ratio, bh)) -> new_esEs1(xw1470, xw142, bh) new_esEs0(xw51, xw500, app(ty_[], dd)) -> new_esEs6(xw51, xw500, dd) new_esEs0(xw51, xw500, ty_Integer) -> new_esEs3(xw51, xw500) new_esEs12(True, True) -> True new_esEs2(xw10, xw90, bd, be) -> error([]) new_esEs(xw1470, xw142, ty_Integer) -> new_esEs3(xw1470, xw142) new_esEs(xw1470, xw142, ty_@0) -> new_esEs14(xw1470, xw142) new_esEs0(xw51, xw500, app(app(ty_Either, ec), ed)) -> new_esEs13(xw51, xw500, ec, ed) new_esEs12(False, False) -> True new_esEs7(xw10, xw90) -> error([]) new_esEs(xw1470, xw142, ty_Double) -> new_esEs5(xw1470, xw142) new_esEs6(xw10, xw90, bf) -> error([]) new_esEs(xw1470, xw142, ty_Ordering) -> new_esEs8(xw1470, xw142) new_esEs(xw1470, xw142, ty_Char) -> new_esEs7(xw1470, xw142) new_esEs0(xw51, xw500, ty_Bool) -> new_esEs12(xw51, xw500) new_esEs(xw1470, xw142, ty_Bool) -> new_esEs12(xw1470, xw142) new_esEs(xw1470, xw142, app(app(ty_Either, da), db)) -> new_esEs13(xw1470, xw142, da, db) new_esEs(xw1470, xw142, ty_Int) -> new_esEs11(xw1470, xw142) new_esEs0(xw51, xw500, app(app(ty_@2, ea), eb)) -> new_esEs2(xw51, xw500, ea, eb) new_esEs4(xw10, xw90) -> error([]) new_esEs(xw1470, xw142, app(ty_Maybe, cb)) -> new_esEs9(xw1470, xw142, cb) new_esEs(xw1470, xw142, app(app(app(ty_@3, cc), cd), ce)) -> new_esEs10(xw1470, xw142, cc, cd, ce) new_esEs0(xw51, xw500, ty_Double) -> new_esEs5(xw51, xw500) new_esEs(xw1470, xw142, app(ty_[], ca)) -> new_esEs6(xw1470, xw142, ca) new_esEs14(xw10, xw90) -> error([]) new_esEs(xw1470, xw142, app(app(ty_@2, cf), cg)) -> new_esEs2(xw1470, xw142, cf, cg) new_esEs0(xw51, xw500, ty_Char) -> new_esEs7(xw51, xw500) new_esEs0(xw51, xw500, ty_Int) -> new_esEs11(xw51, xw500) new_esEs0(xw51, xw500, app(ty_Maybe, de)) -> new_esEs9(xw51, xw500, de) new_esEs13(xw10, xw90, ee, ef) -> error([]) new_esEs0(xw51, xw500, ty_Ordering) -> new_esEs8(xw51, xw500) new_esEs8(xw10, xw90) -> error([]) new_esEs0(xw51, xw500, app(ty_Ratio, dc)) -> new_esEs1(xw51, xw500, dc) new_esEs(xw1470, xw142, ty_Float) -> new_esEs4(xw1470, xw142) new_esEs0(xw51, xw500, app(app(app(ty_@3, df), dg), dh)) -> new_esEs10(xw51, xw500, df, dg, dh) new_esEs9(xw10, xw90, bg) -> error([]) new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs0(x0, x1, ty_Ordering) new_esEs7(x0, x1) new_esEs0(x0, x1, ty_Integer) new_esEs0(x0, x1, app(app(ty_@2, x2), x3)) new_esEs12(False, True) new_esEs12(True, False) new_esEs13(x0, x1, x2, x3) new_esEs12(True, True) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs0(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, ty_Integer) new_esEs0(x0, x1, ty_Float) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs12(False, False) new_esEs5(x0, x1) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs2(x0, x1, x2, x3) new_esEs0(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Int) new_esEs(x0, x1, ty_Float) new_esEs0(x0, x1, ty_@0) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs0(x0, x1, ty_Double) new_esEs0(x0, x1, app(ty_Ratio, x2)) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs10(x0, x1, x2, x3, x4) new_esEs4(x0, x1) new_esEs0(x0, x1, ty_Char) new_esEs(x0, x1, ty_Ordering) new_esEs3(x0, x1) new_esEs0(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs0(x0, x1, ty_Int) new_esEs0(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_@0) new_esEs0(x0, x1, app(ty_Maybe, x2)) new_esEs8(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (53) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 13 less nodes. ---------------------------------------- (54) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'(:(x1, y1), x0, y3, ty_Bool) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs12(x0, x1), y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, :(xw1470, xw1471), ba) -> new_nubByNubBy'1(xw142, xw143, xw144, xw145, new_esEs(xw1470, xw142, ba), xw1471, ba) The TRS R consists of the following rules: new_esEs1(xw10, xw90, bc) -> error([]) new_esEs3(xw10, xw90) -> error([]) new_esEs0(xw51, xw500, ty_@0) -> new_esEs14(xw51, xw500) new_esEs10(xw10, xw90, eg, eh, fa) -> error([]) new_esEs0(xw51, xw500, ty_Float) -> new_esEs4(xw51, xw500) new_esEs11(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs(xw1470, xw142, app(ty_Ratio, bh)) -> new_esEs1(xw1470, xw142, bh) new_esEs0(xw51, xw500, app(ty_[], dd)) -> new_esEs6(xw51, xw500, dd) new_esEs0(xw51, xw500, ty_Integer) -> new_esEs3(xw51, xw500) new_esEs12(True, True) -> True new_esEs2(xw10, xw90, bd, be) -> error([]) new_esEs(xw1470, xw142, ty_Integer) -> new_esEs3(xw1470, xw142) new_esEs(xw1470, xw142, ty_@0) -> new_esEs14(xw1470, xw142) new_esEs0(xw51, xw500, app(app(ty_Either, ec), ed)) -> new_esEs13(xw51, xw500, ec, ed) new_esEs12(False, False) -> True new_esEs7(xw10, xw90) -> error([]) new_esEs(xw1470, xw142, ty_Double) -> new_esEs5(xw1470, xw142) new_esEs6(xw10, xw90, bf) -> error([]) new_esEs(xw1470, xw142, ty_Ordering) -> new_esEs8(xw1470, xw142) new_esEs(xw1470, xw142, ty_Char) -> new_esEs7(xw1470, xw142) new_esEs0(xw51, xw500, ty_Bool) -> new_esEs12(xw51, xw500) new_esEs(xw1470, xw142, ty_Bool) -> new_esEs12(xw1470, xw142) new_esEs(xw1470, xw142, app(app(ty_Either, da), db)) -> new_esEs13(xw1470, xw142, da, db) new_esEs(xw1470, xw142, ty_Int) -> new_esEs11(xw1470, xw142) new_esEs0(xw51, xw500, app(app(ty_@2, ea), eb)) -> new_esEs2(xw51, xw500, ea, eb) new_esEs4(xw10, xw90) -> error([]) new_esEs(xw1470, xw142, app(ty_Maybe, cb)) -> new_esEs9(xw1470, xw142, cb) new_esEs(xw1470, xw142, app(app(app(ty_@3, cc), cd), ce)) -> new_esEs10(xw1470, xw142, cc, cd, ce) new_esEs0(xw51, xw500, ty_Double) -> new_esEs5(xw51, xw500) new_esEs(xw1470, xw142, app(ty_[], ca)) -> new_esEs6(xw1470, xw142, ca) new_esEs14(xw10, xw90) -> error([]) new_esEs(xw1470, xw142, app(app(ty_@2, cf), cg)) -> new_esEs2(xw1470, xw142, cf, cg) new_esEs0(xw51, xw500, ty_Char) -> new_esEs7(xw51, xw500) new_esEs0(xw51, xw500, ty_Int) -> new_esEs11(xw51, xw500) new_esEs0(xw51, xw500, app(ty_Maybe, de)) -> new_esEs9(xw51, xw500, de) new_esEs13(xw10, xw90, ee, ef) -> error([]) new_esEs0(xw51, xw500, ty_Ordering) -> new_esEs8(xw51, xw500) new_esEs8(xw10, xw90) -> error([]) new_esEs0(xw51, xw500, app(ty_Ratio, dc)) -> new_esEs1(xw51, xw500, dc) new_esEs(xw1470, xw142, ty_Float) -> new_esEs4(xw1470, xw142) new_esEs0(xw51, xw500, app(app(app(ty_@3, df), dg), dh)) -> new_esEs10(xw51, xw500, df, dg, dh) new_esEs9(xw10, xw90, bg) -> error([]) new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs0(x0, x1, ty_Ordering) new_esEs7(x0, x1) new_esEs0(x0, x1, ty_Integer) new_esEs0(x0, x1, app(app(ty_@2, x2), x3)) new_esEs12(False, True) new_esEs12(True, False) new_esEs13(x0, x1, x2, x3) new_esEs12(True, True) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs0(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, ty_Integer) new_esEs0(x0, x1, ty_Float) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs12(False, False) new_esEs5(x0, x1) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs2(x0, x1, x2, x3) new_esEs0(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Int) new_esEs(x0, x1, ty_Float) new_esEs0(x0, x1, ty_@0) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs0(x0, x1, ty_Double) new_esEs0(x0, x1, app(ty_Ratio, x2)) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs10(x0, x1, x2, x3, x4) new_esEs4(x0, x1) new_esEs0(x0, x1, ty_Char) new_esEs(x0, x1, ty_Ordering) new_esEs3(x0, x1) new_esEs0(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs0(x0, x1, ty_Int) new_esEs0(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_@0) new_esEs0(x0, x1, app(ty_Maybe, x2)) new_esEs8(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (55) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'(:(x1, y1), x0, y3, ty_Bool) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs12(x0, x1), y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, :(xw1470, xw1471), ba) -> new_nubByNubBy'1(xw142, xw143, xw144, xw145, new_esEs(xw1470, xw142, ba), xw1471, ba) The TRS R consists of the following rules: new_esEs(xw1470, xw142, app(ty_Ratio, bh)) -> new_esEs1(xw1470, xw142, bh) new_esEs(xw1470, xw142, ty_Integer) -> new_esEs3(xw1470, xw142) new_esEs(xw1470, xw142, ty_@0) -> new_esEs14(xw1470, xw142) new_esEs(xw1470, xw142, ty_Double) -> new_esEs5(xw1470, xw142) new_esEs(xw1470, xw142, ty_Ordering) -> new_esEs8(xw1470, xw142) new_esEs(xw1470, xw142, ty_Char) -> new_esEs7(xw1470, xw142) new_esEs(xw1470, xw142, ty_Bool) -> new_esEs12(xw1470, xw142) new_esEs(xw1470, xw142, app(app(ty_Either, da), db)) -> new_esEs13(xw1470, xw142, da, db) new_esEs(xw1470, xw142, ty_Int) -> new_esEs11(xw1470, xw142) new_esEs(xw1470, xw142, app(ty_Maybe, cb)) -> new_esEs9(xw1470, xw142, cb) new_esEs(xw1470, xw142, app(app(app(ty_@3, cc), cd), ce)) -> new_esEs10(xw1470, xw142, cc, cd, ce) new_esEs(xw1470, xw142, app(ty_[], ca)) -> new_esEs6(xw1470, xw142, ca) new_esEs(xw1470, xw142, app(app(ty_@2, cf), cg)) -> new_esEs2(xw1470, xw142, cf, cg) new_esEs(xw1470, xw142, ty_Float) -> new_esEs4(xw1470, xw142) new_esEs4(xw10, xw90) -> error([]) new_esEs2(xw10, xw90, bd, be) -> error([]) new_esEs6(xw10, xw90, bf) -> error([]) new_esEs10(xw10, xw90, eg, eh, fa) -> error([]) new_esEs9(xw10, xw90, bg) -> error([]) new_esEs11(xw10, xw90) -> error([]) new_esEs13(xw10, xw90, ee, ef) -> error([]) new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False new_esEs7(xw10, xw90) -> error([]) new_esEs8(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs14(xw10, xw90) -> error([]) new_esEs3(xw10, xw90) -> error([]) new_esEs1(xw10, xw90, bc) -> error([]) The set Q consists of the following terms: new_esEs0(x0, x1, ty_Ordering) new_esEs7(x0, x1) new_esEs0(x0, x1, ty_Integer) new_esEs0(x0, x1, app(app(ty_@2, x2), x3)) new_esEs12(False, True) new_esEs12(True, False) new_esEs13(x0, x1, x2, x3) new_esEs12(True, True) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs0(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, ty_Integer) new_esEs0(x0, x1, ty_Float) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs12(False, False) new_esEs5(x0, x1) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs2(x0, x1, x2, x3) new_esEs0(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Int) new_esEs(x0, x1, ty_Float) new_esEs0(x0, x1, ty_@0) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs0(x0, x1, ty_Double) new_esEs0(x0, x1, app(ty_Ratio, x2)) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs10(x0, x1, x2, x3, x4) new_esEs4(x0, x1) new_esEs0(x0, x1, ty_Char) new_esEs(x0, x1, ty_Ordering) new_esEs3(x0, x1) new_esEs0(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs0(x0, x1, ty_Int) new_esEs0(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_@0) new_esEs0(x0, x1, app(ty_Maybe, x2)) new_esEs8(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (57) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_esEs0(x0, x1, ty_Ordering) new_esEs0(x0, x1, ty_Integer) new_esEs0(x0, x1, app(app(ty_@2, x2), x3)) new_esEs0(x0, x1, app(app(ty_Either, x2), x3)) new_esEs0(x0, x1, ty_Float) new_esEs0(x0, x1, ty_Bool) new_esEs0(x0, x1, ty_@0) new_esEs0(x0, x1, ty_Double) new_esEs0(x0, x1, app(ty_Ratio, x2)) new_esEs0(x0, x1, ty_Char) new_esEs0(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs0(x0, x1, ty_Int) new_esEs0(x0, x1, app(ty_[], x2)) new_esEs0(x0, x1, app(ty_Maybe, x2)) ---------------------------------------- (58) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'(:(x1, y1), x0, y3, ty_Bool) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs12(x0, x1), y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, :(xw1470, xw1471), ba) -> new_nubByNubBy'1(xw142, xw143, xw144, xw145, new_esEs(xw1470, xw142, ba), xw1471, ba) The TRS R consists of the following rules: new_esEs(xw1470, xw142, app(ty_Ratio, bh)) -> new_esEs1(xw1470, xw142, bh) new_esEs(xw1470, xw142, ty_Integer) -> new_esEs3(xw1470, xw142) new_esEs(xw1470, xw142, ty_@0) -> new_esEs14(xw1470, xw142) new_esEs(xw1470, xw142, ty_Double) -> new_esEs5(xw1470, xw142) new_esEs(xw1470, xw142, ty_Ordering) -> new_esEs8(xw1470, xw142) new_esEs(xw1470, xw142, ty_Char) -> new_esEs7(xw1470, xw142) new_esEs(xw1470, xw142, ty_Bool) -> new_esEs12(xw1470, xw142) new_esEs(xw1470, xw142, app(app(ty_Either, da), db)) -> new_esEs13(xw1470, xw142, da, db) new_esEs(xw1470, xw142, ty_Int) -> new_esEs11(xw1470, xw142) new_esEs(xw1470, xw142, app(ty_Maybe, cb)) -> new_esEs9(xw1470, xw142, cb) new_esEs(xw1470, xw142, app(app(app(ty_@3, cc), cd), ce)) -> new_esEs10(xw1470, xw142, cc, cd, ce) new_esEs(xw1470, xw142, app(ty_[], ca)) -> new_esEs6(xw1470, xw142, ca) new_esEs(xw1470, xw142, app(app(ty_@2, cf), cg)) -> new_esEs2(xw1470, xw142, cf, cg) new_esEs(xw1470, xw142, ty_Float) -> new_esEs4(xw1470, xw142) new_esEs4(xw10, xw90) -> error([]) new_esEs2(xw10, xw90, bd, be) -> error([]) new_esEs6(xw10, xw90, bf) -> error([]) new_esEs10(xw10, xw90, eg, eh, fa) -> error([]) new_esEs9(xw10, xw90, bg) -> error([]) new_esEs11(xw10, xw90) -> error([]) new_esEs13(xw10, xw90, ee, ef) -> error([]) new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False new_esEs7(xw10, xw90) -> error([]) new_esEs8(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs14(xw10, xw90) -> error([]) new_esEs3(xw10, xw90) -> error([]) new_esEs1(xw10, xw90, bc) -> error([]) The set Q consists of the following terms: new_esEs7(x0, x1) new_esEs12(False, True) new_esEs12(True, False) new_esEs13(x0, x1, x2, x3) new_esEs12(True, True) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs(x0, x1, ty_Integer) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs12(False, False) new_esEs5(x0, x1) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs2(x0, x1, x2, x3) new_esEs(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Int) new_esEs(x0, x1, ty_Float) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs10(x0, x1, x2, x3, x4) new_esEs4(x0, x1) new_esEs(x0, x1, ty_Ordering) new_esEs3(x0, x1) new_esEs(x0, x1, ty_@0) new_esEs8(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (59) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_nubByNubBy'(:(x1, y1), x0, y3, ty_Bool) -> new_nubByNubBy'1(x1, y1, x0, y3, new_esEs12(x0, x1), y3, ty_Bool) at position [4] we obtained the following new rules [LPAR04]: (new_nubByNubBy'(:(True, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, True, y3, True, y3, ty_Bool),new_nubByNubBy'(:(True, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, True, y3, True, y3, ty_Bool)) (new_nubByNubBy'(:(False, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, False, y3, True, y3, ty_Bool),new_nubByNubBy'(:(False, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, False, y3, True, y3, ty_Bool)) (new_nubByNubBy'(:(True, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, False, y3, False, y3, ty_Bool),new_nubByNubBy'(:(True, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, False, y3, False, y3, ty_Bool)) (new_nubByNubBy'(:(False, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, True, y3, False, y3, ty_Bool),new_nubByNubBy'(:(False, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, True, y3, False, y3, ty_Bool)) ---------------------------------------- (60) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, :(xw1470, xw1471), ba) -> new_nubByNubBy'1(xw142, xw143, xw144, xw145, new_esEs(xw1470, xw142, ba), xw1471, ba) new_nubByNubBy'(:(True, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, True, y3, True, y3, ty_Bool) new_nubByNubBy'(:(False, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, False, y3, True, y3, ty_Bool) new_nubByNubBy'(:(True, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, False, y3, False, y3, ty_Bool) new_nubByNubBy'(:(False, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, True, y3, False, y3, ty_Bool) The TRS R consists of the following rules: new_esEs(xw1470, xw142, app(ty_Ratio, bh)) -> new_esEs1(xw1470, xw142, bh) new_esEs(xw1470, xw142, ty_Integer) -> new_esEs3(xw1470, xw142) new_esEs(xw1470, xw142, ty_@0) -> new_esEs14(xw1470, xw142) new_esEs(xw1470, xw142, ty_Double) -> new_esEs5(xw1470, xw142) new_esEs(xw1470, xw142, ty_Ordering) -> new_esEs8(xw1470, xw142) new_esEs(xw1470, xw142, ty_Char) -> new_esEs7(xw1470, xw142) new_esEs(xw1470, xw142, ty_Bool) -> new_esEs12(xw1470, xw142) new_esEs(xw1470, xw142, app(app(ty_Either, da), db)) -> new_esEs13(xw1470, xw142, da, db) new_esEs(xw1470, xw142, ty_Int) -> new_esEs11(xw1470, xw142) new_esEs(xw1470, xw142, app(ty_Maybe, cb)) -> new_esEs9(xw1470, xw142, cb) new_esEs(xw1470, xw142, app(app(app(ty_@3, cc), cd), ce)) -> new_esEs10(xw1470, xw142, cc, cd, ce) new_esEs(xw1470, xw142, app(ty_[], ca)) -> new_esEs6(xw1470, xw142, ca) new_esEs(xw1470, xw142, app(app(ty_@2, cf), cg)) -> new_esEs2(xw1470, xw142, cf, cg) new_esEs(xw1470, xw142, ty_Float) -> new_esEs4(xw1470, xw142) new_esEs4(xw10, xw90) -> error([]) new_esEs2(xw10, xw90, bd, be) -> error([]) new_esEs6(xw10, xw90, bf) -> error([]) new_esEs10(xw10, xw90, eg, eh, fa) -> error([]) new_esEs9(xw10, xw90, bg) -> error([]) new_esEs11(xw10, xw90) -> error([]) new_esEs13(xw10, xw90, ee, ef) -> error([]) new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False new_esEs7(xw10, xw90) -> error([]) new_esEs8(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs14(xw10, xw90) -> error([]) new_esEs3(xw10, xw90) -> error([]) new_esEs1(xw10, xw90, bc) -> error([]) The set Q consists of the following terms: new_esEs7(x0, x1) new_esEs12(False, True) new_esEs12(True, False) new_esEs13(x0, x1, x2, x3) new_esEs12(True, True) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs(x0, x1, ty_Integer) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs12(False, False) new_esEs5(x0, x1) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs2(x0, x1, x2, x3) new_esEs(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Int) new_esEs(x0, x1, ty_Float) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs10(x0, x1, x2, x3, x4) new_esEs4(x0, x1) new_esEs(x0, x1, ty_Ordering) new_esEs3(x0, x1) new_esEs(x0, x1, ty_@0) new_esEs8(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (61) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, :(xw1470, xw1471), ba) -> new_nubByNubBy'1(xw142, xw143, xw144, xw145, new_esEs(xw1470, xw142, ba), xw1471, ba) at position [4] we obtained the following new rules [LPAR04]: (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(ty_Ratio, x2)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs1(x0, x1, x2), y5, app(ty_Ratio, x2)),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(ty_Ratio, x2)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs1(x0, x1, x2), y5, app(ty_Ratio, x2))) (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Integer) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs3(x0, x1), y5, ty_Integer),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Integer) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs3(x0, x1), y5, ty_Integer)) (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_@0) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs14(x0, x1), y5, ty_@0),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_@0) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs14(x0, x1), y5, ty_@0)) (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Double) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs5(x0, x1), y5, ty_Double),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Double) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs5(x0, x1), y5, ty_Double)) (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Ordering) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs8(x0, x1), y5, ty_Ordering),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Ordering) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs8(x0, x1), y5, ty_Ordering)) (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Char) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs7(x0, x1), y5, ty_Char),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Char) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs7(x0, x1), y5, ty_Char)) (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Bool) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs12(x0, x1), y5, ty_Bool),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Bool) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs12(x0, x1), y5, ty_Bool)) (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(app(ty_Either, x2), x3)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs13(x0, x1, x2, x3), y5, app(app(ty_Either, x2), x3)),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(app(ty_Either, x2), x3)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs13(x0, x1, x2, x3), y5, app(app(ty_Either, x2), x3))) (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Int) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs11(x0, x1), y5, ty_Int),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Int) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs11(x0, x1), y5, ty_Int)) (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(ty_Maybe, x2)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs9(x0, x1, x2), y5, app(ty_Maybe, x2)),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(ty_Maybe, x2)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs9(x0, x1, x2), y5, app(ty_Maybe, x2))) (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(app(app(ty_@3, x2), x3), x4)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs10(x0, x1, x2, x3, x4), y5, app(app(app(ty_@3, x2), x3), x4)),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(app(app(ty_@3, x2), x3), x4)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs10(x0, x1, x2, x3, x4), y5, app(app(app(ty_@3, x2), x3), x4))) (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(ty_[], x2)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs6(x0, x1, x2), y5, app(ty_[], x2)),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(ty_[], x2)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs6(x0, x1, x2), y5, app(ty_[], x2))) (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(app(ty_@2, x2), x3)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs2(x0, x1, x2, x3), y5, app(app(ty_@2, x2), x3)),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(app(ty_@2, x2), x3)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs2(x0, x1, x2, x3), y5, app(app(ty_@2, x2), x3))) (new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Float) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs4(x0, x1), y5, ty_Float),new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Float) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs4(x0, x1), y5, ty_Float)) ---------------------------------------- (62) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) new_nubByNubBy'(:(True, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, True, y3, True, y3, ty_Bool) new_nubByNubBy'(:(False, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, False, y3, True, y3, ty_Bool) new_nubByNubBy'(:(True, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, False, y3, False, y3, ty_Bool) new_nubByNubBy'(:(False, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, True, y3, False, y3, ty_Bool) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(ty_Ratio, x2)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs1(x0, x1, x2), y5, app(ty_Ratio, x2)) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Integer) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs3(x0, x1), y5, ty_Integer) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_@0) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs14(x0, x1), y5, ty_@0) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Double) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs5(x0, x1), y5, ty_Double) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Ordering) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs8(x0, x1), y5, ty_Ordering) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Char) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs7(x0, x1), y5, ty_Char) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Bool) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs12(x0, x1), y5, ty_Bool) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(app(ty_Either, x2), x3)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs13(x0, x1, x2, x3), y5, app(app(ty_Either, x2), x3)) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Int) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs11(x0, x1), y5, ty_Int) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(ty_Maybe, x2)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs9(x0, x1, x2), y5, app(ty_Maybe, x2)) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(app(app(ty_@3, x2), x3), x4)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs10(x0, x1, x2, x3, x4), y5, app(app(app(ty_@3, x2), x3), x4)) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(ty_[], x2)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs6(x0, x1, x2), y5, app(ty_[], x2)) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), app(app(ty_@2, x2), x3)) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs2(x0, x1, x2, x3), y5, app(app(ty_@2, x2), x3)) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Float) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs4(x0, x1), y5, ty_Float) The TRS R consists of the following rules: new_esEs(xw1470, xw142, app(ty_Ratio, bh)) -> new_esEs1(xw1470, xw142, bh) new_esEs(xw1470, xw142, ty_Integer) -> new_esEs3(xw1470, xw142) new_esEs(xw1470, xw142, ty_@0) -> new_esEs14(xw1470, xw142) new_esEs(xw1470, xw142, ty_Double) -> new_esEs5(xw1470, xw142) new_esEs(xw1470, xw142, ty_Ordering) -> new_esEs8(xw1470, xw142) new_esEs(xw1470, xw142, ty_Char) -> new_esEs7(xw1470, xw142) new_esEs(xw1470, xw142, ty_Bool) -> new_esEs12(xw1470, xw142) new_esEs(xw1470, xw142, app(app(ty_Either, da), db)) -> new_esEs13(xw1470, xw142, da, db) new_esEs(xw1470, xw142, ty_Int) -> new_esEs11(xw1470, xw142) new_esEs(xw1470, xw142, app(ty_Maybe, cb)) -> new_esEs9(xw1470, xw142, cb) new_esEs(xw1470, xw142, app(app(app(ty_@3, cc), cd), ce)) -> new_esEs10(xw1470, xw142, cc, cd, ce) new_esEs(xw1470, xw142, app(ty_[], ca)) -> new_esEs6(xw1470, xw142, ca) new_esEs(xw1470, xw142, app(app(ty_@2, cf), cg)) -> new_esEs2(xw1470, xw142, cf, cg) new_esEs(xw1470, xw142, ty_Float) -> new_esEs4(xw1470, xw142) new_esEs4(xw10, xw90) -> error([]) new_esEs2(xw10, xw90, bd, be) -> error([]) new_esEs6(xw10, xw90, bf) -> error([]) new_esEs10(xw10, xw90, eg, eh, fa) -> error([]) new_esEs9(xw10, xw90, bg) -> error([]) new_esEs11(xw10, xw90) -> error([]) new_esEs13(xw10, xw90, ee, ef) -> error([]) new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False new_esEs7(xw10, xw90) -> error([]) new_esEs8(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs14(xw10, xw90) -> error([]) new_esEs3(xw10, xw90) -> error([]) new_esEs1(xw10, xw90, bc) -> error([]) The set Q consists of the following terms: new_esEs7(x0, x1) new_esEs12(False, True) new_esEs12(True, False) new_esEs13(x0, x1, x2, x3) new_esEs12(True, True) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs(x0, x1, ty_Integer) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs12(False, False) new_esEs5(x0, x1) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs2(x0, x1, x2, x3) new_esEs(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Int) new_esEs(x0, x1, ty_Float) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs10(x0, x1, x2, x3, x4) new_esEs4(x0, x1) new_esEs(x0, x1, ty_Ordering) new_esEs3(x0, x1) new_esEs(x0, x1, ty_@0) new_esEs8(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (63) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 13 less nodes. ---------------------------------------- (64) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'(:(True, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, True, y3, True, y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) new_nubByNubBy'(:(False, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, False, y3, True, y3, ty_Bool) new_nubByNubBy'(:(True, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, False, y3, False, y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'(:(False, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, True, y3, False, y3, ty_Bool) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Bool) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs12(x0, x1), y5, ty_Bool) The TRS R consists of the following rules: new_esEs(xw1470, xw142, app(ty_Ratio, bh)) -> new_esEs1(xw1470, xw142, bh) new_esEs(xw1470, xw142, ty_Integer) -> new_esEs3(xw1470, xw142) new_esEs(xw1470, xw142, ty_@0) -> new_esEs14(xw1470, xw142) new_esEs(xw1470, xw142, ty_Double) -> new_esEs5(xw1470, xw142) new_esEs(xw1470, xw142, ty_Ordering) -> new_esEs8(xw1470, xw142) new_esEs(xw1470, xw142, ty_Char) -> new_esEs7(xw1470, xw142) new_esEs(xw1470, xw142, ty_Bool) -> new_esEs12(xw1470, xw142) new_esEs(xw1470, xw142, app(app(ty_Either, da), db)) -> new_esEs13(xw1470, xw142, da, db) new_esEs(xw1470, xw142, ty_Int) -> new_esEs11(xw1470, xw142) new_esEs(xw1470, xw142, app(ty_Maybe, cb)) -> new_esEs9(xw1470, xw142, cb) new_esEs(xw1470, xw142, app(app(app(ty_@3, cc), cd), ce)) -> new_esEs10(xw1470, xw142, cc, cd, ce) new_esEs(xw1470, xw142, app(ty_[], ca)) -> new_esEs6(xw1470, xw142, ca) new_esEs(xw1470, xw142, app(app(ty_@2, cf), cg)) -> new_esEs2(xw1470, xw142, cf, cg) new_esEs(xw1470, xw142, ty_Float) -> new_esEs4(xw1470, xw142) new_esEs4(xw10, xw90) -> error([]) new_esEs2(xw10, xw90, bd, be) -> error([]) new_esEs6(xw10, xw90, bf) -> error([]) new_esEs10(xw10, xw90, eg, eh, fa) -> error([]) new_esEs9(xw10, xw90, bg) -> error([]) new_esEs11(xw10, xw90) -> error([]) new_esEs13(xw10, xw90, ee, ef) -> error([]) new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False new_esEs7(xw10, xw90) -> error([]) new_esEs8(xw10, xw90) -> error([]) new_esEs5(xw10, xw90) -> error([]) new_esEs14(xw10, xw90) -> error([]) new_esEs3(xw10, xw90) -> error([]) new_esEs1(xw10, xw90, bc) -> error([]) The set Q consists of the following terms: new_esEs7(x0, x1) new_esEs12(False, True) new_esEs12(True, False) new_esEs13(x0, x1, x2, x3) new_esEs12(True, True) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs(x0, x1, ty_Integer) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs12(False, False) new_esEs5(x0, x1) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs2(x0, x1, x2, x3) new_esEs(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Int) new_esEs(x0, x1, ty_Float) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs10(x0, x1, x2, x3, x4) new_esEs4(x0, x1) new_esEs(x0, x1, ty_Ordering) new_esEs3(x0, x1) new_esEs(x0, x1, ty_@0) new_esEs8(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (65) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (66) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'(:(True, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, True, y3, True, y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) new_nubByNubBy'(:(False, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, False, y3, True, y3, ty_Bool) new_nubByNubBy'(:(True, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, False, y3, False, y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'(:(False, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, True, y3, False, y3, ty_Bool) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Bool) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs12(x0, x1), y5, ty_Bool) The TRS R consists of the following rules: new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs7(x0, x1) new_esEs12(False, True) new_esEs12(True, False) new_esEs13(x0, x1, x2, x3) new_esEs12(True, True) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs(x0, x1, ty_Integer) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs12(False, False) new_esEs5(x0, x1) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs2(x0, x1, x2, x3) new_esEs(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Int) new_esEs(x0, x1, ty_Float) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs10(x0, x1, x2, x3, x4) new_esEs4(x0, x1) new_esEs(x0, x1, ty_Ordering) new_esEs3(x0, x1) new_esEs(x0, x1, ty_@0) new_esEs8(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (67) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_esEs7(x0, x1) new_esEs13(x0, x1, x2, x3) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs(x0, x1, ty_Integer) new_esEs14(x0, x1) new_esEs9(x0, x1, x2) new_esEs5(x0, x1) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs2(x0, x1, x2, x3) new_esEs(x0, x1, ty_Bool) new_esEs(x0, x1, ty_Int) new_esEs(x0, x1, ty_Float) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs1(x0, x1, x2) new_esEs6(x0, x1, x2) new_esEs11(x0, x1) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs10(x0, x1, x2, x3, x4) new_esEs4(x0, x1) new_esEs(x0, x1, ty_Ordering) new_esEs3(x0, x1) new_esEs(x0, x1, ty_@0) new_esEs8(x0, x1) ---------------------------------------- (68) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'(:(True, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, True, y3, True, y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) new_nubByNubBy'(:(False, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, False, y3, True, y3, ty_Bool) new_nubByNubBy'(:(True, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, False, y3, False, y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'(:(False, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, True, y3, False, y3, ty_Bool) new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Bool) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs12(x0, x1), y5, ty_Bool) The TRS R consists of the following rules: new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs12(False, True) new_esEs12(True, False) new_esEs12(True, True) new_esEs12(False, False) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (69) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_nubByNubBy'1(x1, y1, y2, y3, False, :(x0, y5), ty_Bool) -> new_nubByNubBy'1(x1, y1, y2, y3, new_esEs12(x0, x1), y5, ty_Bool) at position [4] we obtained the following new rules [LPAR04]: (new_nubByNubBy'1(True, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, True, y5, ty_Bool),new_nubByNubBy'1(True, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, True, y5, ty_Bool)) (new_nubByNubBy'1(False, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, True, y5, ty_Bool),new_nubByNubBy'1(False, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, True, y5, ty_Bool)) (new_nubByNubBy'1(True, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, False, y5, ty_Bool),new_nubByNubBy'1(True, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, False, y5, ty_Bool)) (new_nubByNubBy'1(False, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, False, y5, ty_Bool),new_nubByNubBy'1(False, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, False, y5, ty_Bool)) ---------------------------------------- (70) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'(:(True, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, True, y3, True, y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) new_nubByNubBy'(:(False, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, False, y3, True, y3, ty_Bool) new_nubByNubBy'(:(True, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, False, y3, False, y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'(:(False, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, True, y3, False, y3, ty_Bool) new_nubByNubBy'1(True, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, True, y5, ty_Bool) new_nubByNubBy'1(False, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, True, y5, ty_Bool) new_nubByNubBy'1(True, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, False, y5, ty_Bool) new_nubByNubBy'1(False, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, False, y5, ty_Bool) The TRS R consists of the following rules: new_esEs12(True, True) -> True new_esEs12(False, False) -> True new_esEs12(False, True) -> False new_esEs12(True, False) -> False The set Q consists of the following terms: new_esEs12(False, True) new_esEs12(True, False) new_esEs12(True, True) new_esEs12(False, False) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (71) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'(:(True, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, True, y3, True, y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) new_nubByNubBy'(:(False, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, False, y3, True, y3, ty_Bool) new_nubByNubBy'(:(True, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, False, y3, False, y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'(:(False, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, True, y3, False, y3, ty_Bool) new_nubByNubBy'1(True, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, True, y5, ty_Bool) new_nubByNubBy'1(False, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, True, y5, ty_Bool) new_nubByNubBy'1(True, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, False, y5, ty_Bool) new_nubByNubBy'1(False, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, False, y5, ty_Bool) R is empty. The set Q consists of the following terms: new_esEs12(False, True) new_esEs12(True, False) new_esEs12(True, True) new_esEs12(False, False) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (73) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_esEs12(False, True) new_esEs12(True, False) new_esEs12(True, True) new_esEs12(False, False) ---------------------------------------- (74) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'(:(True, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, True, y3, True, y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) new_nubByNubBy'(:(False, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, False, y3, True, y3, ty_Bool) new_nubByNubBy'(:(True, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, False, y3, False, y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'(:(False, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, True, y3, False, y3, ty_Bool) new_nubByNubBy'1(True, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, True, y5, ty_Bool) new_nubByNubBy'1(False, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, True, y5, ty_Bool) new_nubByNubBy'1(True, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, False, y5, ty_Bool) new_nubByNubBy'1(False, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, False, y5, ty_Bool) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (75) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_nubByNubBy'1(xw142, xw143, xw144, xw145, True, xw147, ba) -> new_nubByNubBy'(xw143, xw144, xw145, ba) we obtained the following new rules [LPAR04]: (new_nubByNubBy'1(True, z0, True, z1, True, z1, ty_Bool) -> new_nubByNubBy'(z0, True, z1, ty_Bool),new_nubByNubBy'1(True, z0, True, z1, True, z1, ty_Bool) -> new_nubByNubBy'(z0, True, z1, ty_Bool)) (new_nubByNubBy'1(False, z0, False, z1, True, z1, ty_Bool) -> new_nubByNubBy'(z0, False, z1, ty_Bool),new_nubByNubBy'1(False, z0, False, z1, True, z1, ty_Bool) -> new_nubByNubBy'(z0, False, z1, ty_Bool)) (new_nubByNubBy'1(True, z0, z1, z2, True, z3, ty_Bool) -> new_nubByNubBy'(z0, z1, z2, ty_Bool),new_nubByNubBy'1(True, z0, z1, z2, True, z3, ty_Bool) -> new_nubByNubBy'(z0, z1, z2, ty_Bool)) (new_nubByNubBy'1(False, z0, z1, z2, True, z3, ty_Bool) -> new_nubByNubBy'(z0, z1, z2, ty_Bool),new_nubByNubBy'1(False, z0, z1, z2, True, z3, ty_Bool) -> new_nubByNubBy'(z0, z1, z2, ty_Bool)) ---------------------------------------- (76) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'(:(True, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, True, y3, True, y3, ty_Bool) new_nubByNubBy'(:(False, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, False, y3, True, y3, ty_Bool) new_nubByNubBy'(:(True, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, False, y3, False, y3, ty_Bool) new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) new_nubByNubBy'(:(False, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, True, y3, False, y3, ty_Bool) new_nubByNubBy'1(True, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, True, y5, ty_Bool) new_nubByNubBy'1(False, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, True, y5, ty_Bool) new_nubByNubBy'1(True, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, False, y5, ty_Bool) new_nubByNubBy'1(False, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, False, y5, ty_Bool) new_nubByNubBy'1(True, z0, True, z1, True, z1, ty_Bool) -> new_nubByNubBy'(z0, True, z1, ty_Bool) new_nubByNubBy'1(False, z0, False, z1, True, z1, ty_Bool) -> new_nubByNubBy'(z0, False, z1, ty_Bool) new_nubByNubBy'1(True, z0, z1, z2, True, z3, ty_Bool) -> new_nubByNubBy'(z0, z1, z2, ty_Bool) new_nubByNubBy'1(False, z0, z1, z2, True, z3, ty_Bool) -> new_nubByNubBy'(z0, z1, z2, ty_Bool) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (77) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_nubByNubBy'1(xw142, xw143, xw144, xw145, False, [], ba) -> new_nubByNubBy'(xw143, xw142, :(xw144, xw145), ba) we obtained the following new rules [LPAR04]: (new_nubByNubBy'1(True, z0, False, [], False, [], ty_Bool) -> new_nubByNubBy'(z0, True, :(False, []), ty_Bool),new_nubByNubBy'1(True, z0, False, [], False, [], ty_Bool) -> new_nubByNubBy'(z0, True, :(False, []), ty_Bool)) (new_nubByNubBy'1(False, z0, True, [], False, [], ty_Bool) -> new_nubByNubBy'(z0, False, :(True, []), ty_Bool),new_nubByNubBy'1(False, z0, True, [], False, [], ty_Bool) -> new_nubByNubBy'(z0, False, :(True, []), ty_Bool)) (new_nubByNubBy'1(True, z0, z1, z2, False, [], ty_Bool) -> new_nubByNubBy'(z0, True, :(z1, z2), ty_Bool),new_nubByNubBy'1(True, z0, z1, z2, False, [], ty_Bool) -> new_nubByNubBy'(z0, True, :(z1, z2), ty_Bool)) (new_nubByNubBy'1(False, z0, z1, z2, False, [], ty_Bool) -> new_nubByNubBy'(z0, False, :(z1, z2), ty_Bool),new_nubByNubBy'1(False, z0, z1, z2, False, [], ty_Bool) -> new_nubByNubBy'(z0, False, :(z1, z2), ty_Bool)) ---------------------------------------- (78) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'(:(True, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, True, y3, True, y3, ty_Bool) new_nubByNubBy'(:(False, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, False, y3, True, y3, ty_Bool) new_nubByNubBy'(:(True, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, False, y3, False, y3, ty_Bool) new_nubByNubBy'(:(False, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, True, y3, False, y3, ty_Bool) new_nubByNubBy'1(True, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, True, y5, ty_Bool) new_nubByNubBy'1(False, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, True, y5, ty_Bool) new_nubByNubBy'1(True, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, False, y5, ty_Bool) new_nubByNubBy'1(False, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, False, y5, ty_Bool) new_nubByNubBy'1(True, z0, True, z1, True, z1, ty_Bool) -> new_nubByNubBy'(z0, True, z1, ty_Bool) new_nubByNubBy'1(False, z0, False, z1, True, z1, ty_Bool) -> new_nubByNubBy'(z0, False, z1, ty_Bool) new_nubByNubBy'1(True, z0, z1, z2, True, z3, ty_Bool) -> new_nubByNubBy'(z0, z1, z2, ty_Bool) new_nubByNubBy'1(False, z0, z1, z2, True, z3, ty_Bool) -> new_nubByNubBy'(z0, z1, z2, ty_Bool) new_nubByNubBy'1(True, z0, False, [], False, [], ty_Bool) -> new_nubByNubBy'(z0, True, :(False, []), ty_Bool) new_nubByNubBy'1(False, z0, True, [], False, [], ty_Bool) -> new_nubByNubBy'(z0, False, :(True, []), ty_Bool) new_nubByNubBy'1(True, z0, z1, z2, False, [], ty_Bool) -> new_nubByNubBy'(z0, True, :(z1, z2), ty_Bool) new_nubByNubBy'1(False, z0, z1, z2, False, [], ty_Bool) -> new_nubByNubBy'(z0, False, :(z1, z2), ty_Bool) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (79) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_nubByNubBy'1(True, z0, z1, z2, True, z3, ty_Bool) -> new_nubByNubBy'(z0, z1, z2, ty_Bool) The graph contains the following edges 2 >= 1, 3 >= 2, 4 >= 3, 7 >= 4 *new_nubByNubBy'1(True, z0, True, z1, True, z1, ty_Bool) -> new_nubByNubBy'(z0, True, z1, ty_Bool) The graph contains the following edges 2 >= 1, 1 >= 2, 3 >= 2, 5 >= 2, 4 >= 3, 6 >= 3, 7 >= 4 *new_nubByNubBy'1(False, z0, z1, z2, True, z3, ty_Bool) -> new_nubByNubBy'(z0, z1, z2, ty_Bool) The graph contains the following edges 2 >= 1, 3 >= 2, 4 >= 3, 7 >= 4 *new_nubByNubBy'1(False, z0, False, z1, True, z1, ty_Bool) -> new_nubByNubBy'(z0, False, z1, ty_Bool) The graph contains the following edges 2 >= 1, 1 >= 2, 3 >= 2, 4 >= 3, 6 >= 3, 7 >= 4 *new_nubByNubBy'1(True, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, False, y5, ty_Bool) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 > 5, 6 > 6, 7 >= 7 *new_nubByNubBy'1(True, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(True, y1, y2, y3, True, y5, ty_Bool) The graph contains the following edges 1 >= 1, 6 > 1, 2 >= 2, 3 >= 3, 4 >= 4, 1 >= 5, 6 > 5, 6 > 6, 7 >= 7 *new_nubByNubBy'(:(True, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, False, y3, False, y3, ty_Bool) The graph contains the following edges 1 > 1, 1 > 2, 2 >= 3, 3 >= 4, 2 >= 5, 3 >= 6, 4 >= 7 *new_nubByNubBy'1(False, y1, y2, y3, False, :(True, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, False, y5, ty_Bool) The graph contains the following edges 1 >= 1, 5 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 1 >= 5, 5 >= 5, 6 > 6, 7 >= 7 *new_nubByNubBy'1(False, y1, y2, y3, False, :(False, y5), ty_Bool) -> new_nubByNubBy'1(False, y1, y2, y3, True, y5, ty_Bool) The graph contains the following edges 1 >= 1, 5 >= 1, 6 > 1, 2 >= 2, 3 >= 3, 4 >= 4, 6 > 6, 7 >= 7 *new_nubByNubBy'(:(False, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, True, y3, False, y3, ty_Bool) The graph contains the following edges 1 > 1, 1 > 2, 2 >= 3, 3 >= 4, 1 > 5, 3 >= 6, 4 >= 7 *new_nubByNubBy'(:(True, y1), True, y3, ty_Bool) -> new_nubByNubBy'1(True, y1, True, y3, True, y3, ty_Bool) The graph contains the following edges 1 > 1, 2 >= 1, 1 > 2, 1 > 3, 2 >= 3, 3 >= 4, 1 > 5, 2 >= 5, 3 >= 6, 4 >= 7 *new_nubByNubBy'(:(False, y1), False, y3, ty_Bool) -> new_nubByNubBy'1(False, y1, False, y3, True, y3, ty_Bool) The graph contains the following edges 1 > 1, 2 >= 1, 1 > 2, 1 > 3, 2 >= 3, 3 >= 4, 3 >= 6, 4 >= 7 *new_nubByNubBy'1(True, z0, False, [], False, [], ty_Bool) -> new_nubByNubBy'(z0, True, :(False, []), ty_Bool) The graph contains the following edges 2 >= 1, 1 >= 2, 7 >= 4 *new_nubByNubBy'1(True, z0, z1, z2, False, [], ty_Bool) -> new_nubByNubBy'(z0, True, :(z1, z2), ty_Bool) The graph contains the following edges 2 >= 1, 1 >= 2, 7 >= 4 *new_nubByNubBy'1(False, z0, True, [], False, [], ty_Bool) -> new_nubByNubBy'(z0, False, :(True, []), ty_Bool) The graph contains the following edges 2 >= 1, 1 >= 2, 5 >= 2, 7 >= 4 *new_nubByNubBy'1(False, z0, z1, z2, False, [], ty_Bool) -> new_nubByNubBy'(z0, False, :(z1, z2), ty_Bool) The graph contains the following edges 2 >= 1, 1 >= 2, 5 >= 2, 7 >= 4 ---------------------------------------- (80) YES