17.12/7.70 YES 19.67/8.41 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 19.67/8.41 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 19.67/8.41 19.67/8.41 19.67/8.41 H-Termination with start terms of the given HASKELL could be proven: 19.67/8.41 19.67/8.41 (0) HASKELL 19.67/8.41 (1) IFR [EQUIVALENT, 0 ms] 19.67/8.41 (2) HASKELL 19.67/8.41 (3) BR [EQUIVALENT, 0 ms] 19.67/8.41 (4) HASKELL 19.67/8.41 (5) COR [EQUIVALENT, 16 ms] 19.67/8.41 (6) HASKELL 19.67/8.41 (7) LetRed [EQUIVALENT, 0 ms] 19.67/8.41 (8) HASKELL 19.67/8.41 (9) Narrow [SOUND, 0 ms] 19.67/8.41 (10) AND 19.67/8.41 (11) QDP 19.67/8.41 (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] 19.67/8.41 (13) YES 19.67/8.41 (14) QDP 19.67/8.41 (15) QDPSizeChangeProof [EQUIVALENT, 0 ms] 19.67/8.41 (16) YES 19.67/8.41 (17) QDP 19.67/8.41 (18) TransformationProof [EQUIVALENT, 32 ms] 19.67/8.41 (19) QDP 19.67/8.41 (20) UsableRulesProof [EQUIVALENT, 0 ms] 19.67/8.41 (21) QDP 19.67/8.41 (22) QReductionProof [EQUIVALENT, 0 ms] 19.67/8.41 (23) QDP 19.67/8.41 (24) QDPSizeChangeProof [EQUIVALENT, 0 ms] 19.67/8.41 (25) YES 19.67/8.41 (26) QDP 19.67/8.41 (27) DependencyGraphProof [EQUIVALENT, 0 ms] 19.67/8.41 (28) QDP 19.67/8.41 (29) TransformationProof [EQUIVALENT, 0 ms] 19.67/8.41 (30) QDP 19.67/8.41 (31) QDPSizeChangeProof [EQUIVALENT, 0 ms] 19.67/8.41 (32) YES 19.67/8.41 (33) QDP 19.67/8.41 (34) QDPSizeChangeProof [EQUIVALENT, 0 ms] 19.67/8.41 (35) YES 19.67/8.41 (36) QDP 19.67/8.41 (37) QDPSizeChangeProof [EQUIVALENT, 0 ms] 19.67/8.41 (38) YES 19.67/8.41 (39) QDP 19.67/8.41 (40) QDPSizeChangeProof [EQUIVALENT, 0 ms] 19.67/8.41 (41) YES 19.67/8.41 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (0) 19.67/8.41 Obligation: 19.67/8.41 mainModule Main 19.67/8.41 module Maybe where { 19.67/8.41 import qualified List; 19.67/8.41 import qualified Main; 19.67/8.41 import qualified Prelude; 19.67/8.41 } 19.67/8.41 module List where { 19.67/8.41 import qualified Main; 19.67/8.41 import qualified Maybe; 19.67/8.41 import qualified Prelude; 19.67/8.41 deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; 19.67/8.41 deleteBy _ _ [] = []; 19.67/8.41 deleteBy eq x (y : ys) = if x `eq` y then ys else y : deleteBy eq x ys; 19.67/8.41 19.67/8.41 elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; 19.67/8.41 elem_by _ _ [] = False; 19.67/8.41 elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; 19.67/8.41 19.67/8.41 nubBy :: (a -> a -> Bool) -> [a] -> [a]; 19.67/8.41 nubBy eq l = nubBy' l [] where { 19.67/8.41 nubBy' [] _ = []; 19.67/8.41 nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs 19.67/8.41 | otherwise = y : nubBy' ys (y : xs); 19.67/8.41 }; 19.67/8.41 19.67/8.41 union :: Eq a => [a] -> [a] -> [a]; 19.67/8.41 union = unionBy (==); 19.67/8.41 19.67/8.41 unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 19.67/8.41 unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; 19.67/8.41 19.67/8.41 } 19.67/8.41 module Main where { 19.67/8.41 import qualified List; 19.67/8.41 import qualified Maybe; 19.67/8.41 import qualified Prelude; 19.67/8.41 } 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (1) IFR (EQUIVALENT) 19.67/8.41 If Reductions: 19.67/8.41 The following If expression 19.67/8.41 "if eq x y then ys else y : deleteBy eq x ys" 19.67/8.41 is transformed to 19.67/8.41 "deleteBy0 ys y eq x True = ys; 19.67/8.41 deleteBy0 ys y eq x False = y : deleteBy eq x ys; 19.67/8.41 " 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (2) 19.67/8.41 Obligation: 19.67/8.41 mainModule Main 19.67/8.41 module Maybe where { 19.67/8.41 import qualified List; 19.67/8.41 import qualified Main; 19.67/8.41 import qualified Prelude; 19.67/8.41 } 19.67/8.41 module List where { 19.67/8.41 import qualified Main; 19.67/8.41 import qualified Maybe; 19.67/8.41 import qualified Prelude; 19.67/8.41 deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; 19.67/8.41 deleteBy _ _ [] = []; 19.67/8.41 deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); 19.67/8.41 19.67/8.41 deleteBy0 ys y eq x True = ys; 19.67/8.41 deleteBy0 ys y eq x False = y : deleteBy eq x ys; 19.67/8.41 19.67/8.41 elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; 19.67/8.41 elem_by _ _ [] = False; 19.67/8.41 elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; 19.67/8.41 19.67/8.41 nubBy :: (a -> a -> Bool) -> [a] -> [a]; 19.67/8.41 nubBy eq l = nubBy' l [] where { 19.67/8.41 nubBy' [] _ = []; 19.67/8.41 nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs 19.67/8.41 | otherwise = y : nubBy' ys (y : xs); 19.67/8.41 }; 19.67/8.41 19.67/8.41 union :: Eq a => [a] -> [a] -> [a]; 19.67/8.41 union = unionBy (==); 19.67/8.41 19.67/8.41 unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 19.67/8.41 unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; 19.67/8.41 19.67/8.41 } 19.67/8.41 module Main where { 19.67/8.41 import qualified List; 19.67/8.41 import qualified Maybe; 19.67/8.41 import qualified Prelude; 19.67/8.41 } 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (3) BR (EQUIVALENT) 19.67/8.41 Replaced joker patterns by fresh variables and removed binding patterns. 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (4) 19.67/8.41 Obligation: 19.67/8.41 mainModule Main 19.67/8.41 module Maybe where { 19.67/8.41 import qualified List; 19.67/8.41 import qualified Main; 19.67/8.41 import qualified Prelude; 19.67/8.41 } 19.67/8.41 module List where { 19.67/8.41 import qualified Main; 19.67/8.41 import qualified Maybe; 19.67/8.41 import qualified Prelude; 19.67/8.41 deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; 19.67/8.41 deleteBy wx wy [] = []; 19.67/8.41 deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); 19.67/8.41 19.67/8.41 deleteBy0 ys y eq x True = ys; 19.67/8.41 deleteBy0 ys y eq x False = y : deleteBy eq x ys; 19.67/8.41 19.67/8.41 elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; 19.67/8.41 elem_by wu wv [] = False; 19.67/8.41 elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; 19.67/8.41 19.67/8.41 nubBy :: (a -> a -> Bool) -> [a] -> [a]; 19.67/8.41 nubBy eq l = nubBy' l [] where { 19.67/8.41 nubBy' [] ww = []; 19.67/8.41 nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs 19.67/8.41 | otherwise = y : nubBy' ys (y : xs); 19.67/8.41 }; 19.67/8.41 19.67/8.41 union :: Eq a => [a] -> [a] -> [a]; 19.67/8.41 union = unionBy (==); 19.67/8.41 19.67/8.41 unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 19.67/8.41 unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; 19.67/8.41 19.67/8.41 } 19.67/8.41 module Main where { 19.67/8.41 import qualified List; 19.67/8.41 import qualified Maybe; 19.67/8.41 import qualified Prelude; 19.67/8.41 } 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (5) COR (EQUIVALENT) 19.67/8.41 Cond Reductions: 19.67/8.41 The following Function with conditions 19.67/8.41 "undefined |Falseundefined; 19.67/8.41 " 19.67/8.41 is transformed to 19.67/8.41 "undefined = undefined1; 19.67/8.41 " 19.67/8.41 "undefined0 True = undefined; 19.67/8.41 " 19.67/8.41 "undefined1 = undefined0 False; 19.67/8.41 " 19.67/8.41 The following Function with conditions 19.67/8.41 "nubBy' [] ww = []; 19.67/8.41 nubBy' (y : ys) xs|elem_by eq y xsnubBy' ys xs|otherwisey : nubBy' ys (y : xs); 19.67/8.41 " 19.67/8.41 is transformed to 19.67/8.41 "nubBy' [] ww = nubBy'3 [] ww; 19.67/8.41 nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; 19.67/8.41 " 19.67/8.41 "nubBy'0 y ys xs True = y : nubBy' ys (y : xs); 19.67/8.41 " 19.67/8.41 "nubBy'1 y ys xs True = nubBy' ys xs; 19.67/8.41 nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; 19.67/8.41 " 19.67/8.41 "nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); 19.67/8.41 " 19.67/8.41 "nubBy'3 [] ww = []; 19.67/8.41 nubBy'3 xv xw = nubBy'2 xv xw; 19.67/8.41 " 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (6) 19.67/8.41 Obligation: 19.67/8.41 mainModule Main 19.67/8.41 module Maybe where { 19.67/8.41 import qualified List; 19.67/8.41 import qualified Main; 19.67/8.41 import qualified Prelude; 19.67/8.41 } 19.67/8.41 module List where { 19.67/8.41 import qualified Main; 19.67/8.41 import qualified Maybe; 19.67/8.41 import qualified Prelude; 19.67/8.41 deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; 19.67/8.41 deleteBy wx wy [] = []; 19.67/8.41 deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); 19.67/8.41 19.67/8.41 deleteBy0 ys y eq x True = ys; 19.67/8.41 deleteBy0 ys y eq x False = y : deleteBy eq x ys; 19.67/8.41 19.67/8.41 elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; 19.67/8.41 elem_by wu wv [] = False; 19.67/8.41 elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; 19.67/8.41 19.67/8.41 nubBy :: (a -> a -> Bool) -> [a] -> [a]; 19.67/8.41 nubBy eq l = nubBy' l [] where { 19.67/8.41 nubBy' [] ww = nubBy'3 [] ww; 19.67/8.41 nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; 19.67/8.41 nubBy'0 y ys xs True = y : nubBy' ys (y : xs); 19.67/8.41 nubBy'1 y ys xs True = nubBy' ys xs; 19.67/8.41 nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; 19.67/8.41 nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); 19.67/8.41 nubBy'3 [] ww = []; 19.67/8.41 nubBy'3 xv xw = nubBy'2 xv xw; 19.67/8.41 }; 19.67/8.41 19.67/8.41 union :: Eq a => [a] -> [a] -> [a]; 19.67/8.41 union = unionBy (==); 19.67/8.41 19.67/8.41 unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 19.67/8.41 unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; 19.67/8.41 19.67/8.41 } 19.67/8.41 module Main where { 19.67/8.41 import qualified List; 19.67/8.41 import qualified Maybe; 19.67/8.41 import qualified Prelude; 19.67/8.41 } 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (7) LetRed (EQUIVALENT) 19.67/8.41 Let/Where Reductions: 19.67/8.41 The bindings of the following Let/Where expression 19.67/8.41 "nubBy' l [] where { 19.67/8.41 nubBy' [] ww = nubBy'3 [] ww; 19.67/8.41 nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; 19.67/8.41 ; 19.67/8.41 nubBy'0 y ys xs True = y : nubBy' ys (y : xs); 19.67/8.41 ; 19.67/8.41 nubBy'1 y ys xs True = nubBy' ys xs; 19.67/8.41 nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; 19.67/8.41 ; 19.67/8.41 nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); 19.67/8.41 ; 19.67/8.41 nubBy'3 [] ww = []; 19.67/8.41 nubBy'3 xv xw = nubBy'2 xv xw; 19.67/8.41 } 19.67/8.41 " 19.67/8.41 are unpacked to the following functions on top level 19.67/8.41 "nubByNubBy'1 xx y ys xs True = nubByNubBy' xx ys xs; 19.67/8.41 nubByNubBy'1 xx y ys xs False = nubByNubBy'0 xx y ys xs otherwise; 19.67/8.41 " 19.67/8.41 "nubByNubBy' xx [] ww = nubByNubBy'3 xx [] ww; 19.67/8.41 nubByNubBy' xx (y : ys) xs = nubByNubBy'2 xx (y : ys) xs; 19.67/8.41 " 19.67/8.41 "nubByNubBy'0 xx y ys xs True = y : nubByNubBy' xx ys (y : xs); 19.67/8.41 " 19.67/8.41 "nubByNubBy'3 xx [] ww = []; 19.67/8.41 nubByNubBy'3 xx xv xw = nubByNubBy'2 xx xv xw; 19.67/8.41 " 19.67/8.41 "nubByNubBy'2 xx (y : ys) xs = nubByNubBy'1 xx y ys xs (elem_by xx y xs); 19.67/8.41 " 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (8) 19.67/8.41 Obligation: 19.67/8.41 mainModule Main 19.67/8.41 module Maybe where { 19.67/8.41 import qualified List; 19.67/8.41 import qualified Main; 19.67/8.41 import qualified Prelude; 19.67/8.41 } 19.67/8.41 module List where { 19.67/8.41 import qualified Main; 19.67/8.41 import qualified Maybe; 19.67/8.41 import qualified Prelude; 19.67/8.41 deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; 19.67/8.41 deleteBy wx wy [] = []; 19.67/8.41 deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); 19.67/8.41 19.67/8.41 deleteBy0 ys y eq x True = ys; 19.67/8.41 deleteBy0 ys y eq x False = y : deleteBy eq x ys; 19.67/8.41 19.67/8.41 elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; 19.67/8.41 elem_by wu wv [] = False; 19.67/8.41 elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; 19.67/8.41 19.67/8.41 nubBy :: (a -> a -> Bool) -> [a] -> [a]; 19.67/8.41 nubBy eq l = nubByNubBy' eq l []; 19.67/8.41 19.67/8.41 nubByNubBy' xx [] ww = nubByNubBy'3 xx [] ww; 19.67/8.41 nubByNubBy' xx (y : ys) xs = nubByNubBy'2 xx (y : ys) xs; 19.67/8.41 19.67/8.41 nubByNubBy'0 xx y ys xs True = y : nubByNubBy' xx ys (y : xs); 19.67/8.41 19.67/8.41 nubByNubBy'1 xx y ys xs True = nubByNubBy' xx ys xs; 19.67/8.41 nubByNubBy'1 xx y ys xs False = nubByNubBy'0 xx y ys xs otherwise; 19.67/8.41 19.67/8.41 nubByNubBy'2 xx (y : ys) xs = nubByNubBy'1 xx y ys xs (elem_by xx y xs); 19.67/8.41 19.67/8.41 nubByNubBy'3 xx [] ww = []; 19.67/8.41 nubByNubBy'3 xx xv xw = nubByNubBy'2 xx xv xw; 19.67/8.41 19.67/8.41 union :: Eq a => [a] -> [a] -> [a]; 19.67/8.41 union = unionBy (==); 19.67/8.41 19.67/8.41 unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 19.67/8.41 unionBy eq xs ys = xs ++ foldl (flip (deleteBy eq)) (nubBy eq ys) xs; 19.67/8.41 19.67/8.41 } 19.67/8.41 module Main where { 19.67/8.41 import qualified List; 19.67/8.41 import qualified Maybe; 19.67/8.41 import qualified Prelude; 19.67/8.41 } 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (9) Narrow (SOUND) 19.67/8.41 Haskell To QDPs 19.67/8.41 19.67/8.41 digraph dp_graph { 19.67/8.41 node [outthreshold=100, inthreshold=100];1[label="List.union",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 19.67/8.41 3[label="List.union xy3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 19.67/8.41 4[label="List.union xy3 xy4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 19.67/8.41 5[label="List.unionBy (==) xy3 xy4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 19.67/8.41 6[label="xy3 ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) xy3",fontsize=16,color="burlywood",shape="box"];5374[label="xy3/xy30 : xy31",fontsize=10,color="white",style="solid",shape="box"];6 -> 5374[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5374 -> 7[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5375[label="xy3/[]",fontsize=10,color="white",style="solid",shape="box"];6 -> 5375[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5375 -> 8[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 7[label="(xy30 : xy31) ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) (xy30 : xy31)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 19.67/8.41 8[label="[] ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) []",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 19.67/8.41 9[label="xy30 : xy31 ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) (xy30 : xy31)",fontsize=16,color="green",shape="box"];9 -> 11[label="",style="dashed", color="green", weight=3]; 19.67/8.41 10[label="foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) []",fontsize=16,color="black",shape="box"];10 -> 12[label="",style="solid", color="black", weight=3]; 19.67/8.41 11 -> 99[label="",style="dashed", color="red", weight=0]; 19.67/8.41 11[label="xy31 ++ foldl (flip (List.deleteBy (==))) (List.nubBy (==) xy4) (xy30 : xy31)",fontsize=16,color="magenta"];11 -> 100[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 11 -> 101[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 11 -> 102[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 11 -> 103[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 12[label="List.nubBy (==) xy4",fontsize=16,color="black",shape="triangle"];12 -> 15[label="",style="solid", color="black", weight=3]; 19.67/8.41 100[label="xy31",fontsize=16,color="green",shape="box"];101 -> 12[label="",style="dashed", color="red", weight=0]; 19.67/8.41 101[label="List.nubBy (==) xy4",fontsize=16,color="magenta"];102[label="xy30",fontsize=16,color="green",shape="box"];103[label="xy31",fontsize=16,color="green",shape="box"];99[label="xy8 ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="burlywood",shape="triangle"];5376[label="xy8/xy80 : xy81",fontsize=10,color="white",style="solid",shape="box"];99 -> 5376[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5376 -> 128[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5377[label="xy8/[]",fontsize=10,color="white",style="solid",shape="box"];99 -> 5377[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5377 -> 129[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 15[label="List.nubByNubBy' (==) xy4 []",fontsize=16,color="burlywood",shape="box"];5378[label="xy4/xy40 : xy41",fontsize=10,color="white",style="solid",shape="box"];15 -> 5378[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5378 -> 18[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5379[label="xy4/[]",fontsize=10,color="white",style="solid",shape="box"];15 -> 5379[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5379 -> 19[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 128[label="(xy80 : xy81) ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="black",shape="box"];128 -> 131[label="",style="solid", color="black", weight=3]; 19.67/8.41 129[label="[] ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="black",shape="box"];129 -> 132[label="",style="solid", color="black", weight=3]; 19.67/8.41 18[label="List.nubByNubBy' (==) (xy40 : xy41) []",fontsize=16,color="black",shape="box"];18 -> 23[label="",style="solid", color="black", weight=3]; 19.67/8.41 19[label="List.nubByNubBy' (==) [] []",fontsize=16,color="black",shape="box"];19 -> 24[label="",style="solid", color="black", weight=3]; 19.67/8.41 131[label="xy80 : xy81 ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="green",shape="box"];131 -> 134[label="",style="dashed", color="green", weight=3]; 19.67/8.41 132[label="foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="black",shape="box"];132 -> 135[label="",style="solid", color="black", weight=3]; 19.67/8.41 23[label="List.nubByNubBy'2 (==) (xy40 : xy41) []",fontsize=16,color="black",shape="box"];23 -> 28[label="",style="solid", color="black", weight=3]; 19.67/8.41 24[label="List.nubByNubBy'3 (==) [] []",fontsize=16,color="black",shape="box"];24 -> 29[label="",style="solid", color="black", weight=3]; 19.67/8.41 134 -> 99[label="",style="dashed", color="red", weight=0]; 19.67/8.41 134[label="xy81 ++ foldl (flip (List.deleteBy (==))) xy9 (xy10 : xy11)",fontsize=16,color="magenta"];134 -> 137[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 135[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) xy9 xy10) xy11",fontsize=16,color="burlywood",shape="triangle"];5380[label="xy11/xy110 : xy111",fontsize=10,color="white",style="solid",shape="box"];135 -> 5380[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5380 -> 138[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5381[label="xy11/[]",fontsize=10,color="white",style="solid",shape="box"];135 -> 5381[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5381 -> 139[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 28[label="List.nubByNubBy'1 (==) xy40 xy41 [] (List.elem_by (==) xy40 [])",fontsize=16,color="black",shape="box"];28 -> 33[label="",style="solid", color="black", weight=3]; 19.67/8.41 29[label="[]",fontsize=16,color="green",shape="box"];137[label="xy81",fontsize=16,color="green",shape="box"];138[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) xy9 xy10) (xy110 : xy111)",fontsize=16,color="black",shape="box"];138 -> 142[label="",style="solid", color="black", weight=3]; 19.67/8.41 139[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) xy9 xy10) []",fontsize=16,color="black",shape="box"];139 -> 143[label="",style="solid", color="black", weight=3]; 19.67/8.41 33[label="List.nubByNubBy'1 (==) xy40 xy41 [] False",fontsize=16,color="black",shape="box"];33 -> 37[label="",style="solid", color="black", weight=3]; 19.67/8.41 142 -> 135[label="",style="dashed", color="red", weight=0]; 19.67/8.41 142[label="foldl (flip (List.deleteBy (==))) (flip (List.deleteBy (==)) (flip (List.deleteBy (==)) xy9 xy10) xy110) xy111",fontsize=16,color="magenta"];142 -> 148[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 142 -> 149[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 142 -> 150[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 143[label="flip (List.deleteBy (==)) xy9 xy10",fontsize=16,color="black",shape="triangle"];143 -> 151[label="",style="solid", color="black", weight=3]; 19.67/8.41 37[label="List.nubByNubBy'0 (==) xy40 xy41 [] otherwise",fontsize=16,color="black",shape="box"];37 -> 42[label="",style="solid", color="black", weight=3]; 19.67/8.41 148[label="xy111",fontsize=16,color="green",shape="box"];149 -> 143[label="",style="dashed", color="red", weight=0]; 19.67/8.41 149[label="flip (List.deleteBy (==)) xy9 xy10",fontsize=16,color="magenta"];150[label="xy110",fontsize=16,color="green",shape="box"];151[label="List.deleteBy (==) xy10 xy9",fontsize=16,color="burlywood",shape="triangle"];5382[label="xy9/xy90 : xy91",fontsize=10,color="white",style="solid",shape="box"];151 -> 5382[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5382 -> 156[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5383[label="xy9/[]",fontsize=10,color="white",style="solid",shape="box"];151 -> 5383[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5383 -> 157[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 42[label="List.nubByNubBy'0 (==) xy40 xy41 [] True",fontsize=16,color="black",shape="box"];42 -> 49[label="",style="solid", color="black", weight=3]; 19.67/8.41 156[label="List.deleteBy (==) xy10 (xy90 : xy91)",fontsize=16,color="black",shape="box"];156 -> 166[label="",style="solid", color="black", weight=3]; 19.67/8.41 157[label="List.deleteBy (==) xy10 []",fontsize=16,color="black",shape="box"];157 -> 167[label="",style="solid", color="black", weight=3]; 19.67/8.41 49[label="xy40 : List.nubByNubBy' (==) xy41 (xy40 : [])",fontsize=16,color="green",shape="box"];49 -> 54[label="",style="dashed", color="green", weight=3]; 19.67/8.41 166 -> 184[label="",style="dashed", color="red", weight=0]; 19.67/8.41 166[label="List.deleteBy0 xy91 xy90 (==) xy10 ((==) xy10 xy90)",fontsize=16,color="magenta"];166 -> 185[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 166 -> 186[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 166 -> 187[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 166 -> 188[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 167[label="[]",fontsize=16,color="green",shape="box"];54[label="List.nubByNubBy' (==) xy41 (xy40 : [])",fontsize=16,color="burlywood",shape="box"];5384[label="xy41/xy410 : xy411",fontsize=10,color="white",style="solid",shape="box"];54 -> 5384[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5384 -> 58[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5385[label="xy41/[]",fontsize=10,color="white",style="solid",shape="box"];54 -> 5385[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5385 -> 59[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 185[label="xy91",fontsize=16,color="green",shape="box"];186[label="xy10",fontsize=16,color="green",shape="box"];187[label="xy90",fontsize=16,color="green",shape="box"];188[label="(==) xy10 xy90",fontsize=16,color="blue",shape="box"];5386[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5386[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5386 -> 189[label="",style="solid", color="blue", weight=3]; 19.67/8.41 5387[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5387[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5387 -> 190[label="",style="solid", color="blue", weight=3]; 19.67/8.41 5388[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5388[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5388 -> 191[label="",style="solid", color="blue", weight=3]; 19.67/8.41 5389[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5389[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5389 -> 192[label="",style="solid", color="blue", weight=3]; 19.67/8.41 5390[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5390[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5390 -> 193[label="",style="solid", color="blue", weight=3]; 19.67/8.41 5391[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5391[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5391 -> 194[label="",style="solid", color="blue", weight=3]; 19.67/8.41 5392[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5392[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5392 -> 195[label="",style="solid", color="blue", weight=3]; 19.67/8.41 5393[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5393[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5393 -> 196[label="",style="solid", color="blue", weight=3]; 19.67/8.41 5394[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5394[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5394 -> 197[label="",style="solid", color="blue", weight=3]; 19.67/8.41 5395[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5395[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5395 -> 198[label="",style="solid", color="blue", weight=3]; 19.67/8.41 5396[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5396[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5396 -> 199[label="",style="solid", color="blue", weight=3]; 19.67/8.41 5397[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5397[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5397 -> 200[label="",style="solid", color="blue", weight=3]; 19.67/8.41 5398[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5398[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5398 -> 201[label="",style="solid", color="blue", weight=3]; 19.67/8.41 5399[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];188 -> 5399[label="",style="solid", color="blue", weight=9]; 19.67/8.41 5399 -> 202[label="",style="solid", color="blue", weight=3]; 19.67/8.41 184[label="List.deleteBy0 xy17 xy18 (==) xy19 xy20",fontsize=16,color="burlywood",shape="triangle"];5400[label="xy20/False",fontsize=10,color="white",style="solid",shape="box"];184 -> 5400[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5400 -> 203[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5401[label="xy20/True",fontsize=10,color="white",style="solid",shape="box"];184 -> 5401[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5401 -> 204[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 58[label="List.nubByNubBy' (==) (xy410 : xy411) (xy40 : [])",fontsize=16,color="black",shape="box"];58 -> 66[label="",style="solid", color="black", weight=3]; 19.67/8.41 59[label="List.nubByNubBy' (==) [] (xy40 : [])",fontsize=16,color="black",shape="box"];59 -> 67[label="",style="solid", color="black", weight=3]; 19.67/8.41 189[label="(==) xy10 xy90",fontsize=16,color="black",shape="triangle"];189 -> 221[label="",style="solid", color="black", weight=3]; 19.67/8.41 190[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];190 -> 222[label="",style="solid", color="black", weight=3]; 19.67/8.41 191[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];191 -> 223[label="",style="solid", color="black", weight=3]; 19.67/8.41 192[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];192 -> 224[label="",style="solid", color="black", weight=3]; 19.67/8.41 193[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];193 -> 225[label="",style="solid", color="black", weight=3]; 19.67/8.41 194[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];194 -> 226[label="",style="solid", color="black", weight=3]; 19.67/8.41 195[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];195 -> 227[label="",style="solid", color="black", weight=3]; 19.67/8.41 196[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];196 -> 228[label="",style="solid", color="black", weight=3]; 19.67/8.41 197[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];197 -> 229[label="",style="solid", color="black", weight=3]; 19.67/8.41 198[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];198 -> 230[label="",style="solid", color="black", weight=3]; 19.67/8.41 199[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];199 -> 231[label="",style="solid", color="black", weight=3]; 19.67/8.41 200[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];200 -> 232[label="",style="solid", color="black", weight=3]; 19.67/8.41 201[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];201 -> 233[label="",style="solid", color="black", weight=3]; 19.67/8.41 202[label="(==) xy10 xy90",fontsize=16,color="black",shape="box"];202 -> 234[label="",style="solid", color="black", weight=3]; 19.67/8.41 203[label="List.deleteBy0 xy17 xy18 (==) xy19 False",fontsize=16,color="black",shape="box"];203 -> 235[label="",style="solid", color="black", weight=3]; 19.67/8.41 204[label="List.deleteBy0 xy17 xy18 (==) xy19 True",fontsize=16,color="black",shape="box"];204 -> 236[label="",style="solid", color="black", weight=3]; 19.67/8.41 66[label="List.nubByNubBy'2 (==) (xy410 : xy411) (xy40 : [])",fontsize=16,color="black",shape="box"];66 -> 72[label="",style="solid", color="black", weight=3]; 19.67/8.41 67[label="List.nubByNubBy'3 (==) [] (xy40 : [])",fontsize=16,color="black",shape="box"];67 -> 73[label="",style="solid", color="black", weight=3]; 19.67/8.41 221[label="primEqInt xy10 xy90",fontsize=16,color="burlywood",shape="triangle"];5402[label="xy10/Pos xy100",fontsize=10,color="white",style="solid",shape="box"];221 -> 5402[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5402 -> 257[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5403[label="xy10/Neg xy100",fontsize=10,color="white",style="solid",shape="box"];221 -> 5403[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5403 -> 258[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 222[label="error []",fontsize=16,color="red",shape="box"];223[label="primEqFloat xy10 xy90",fontsize=16,color="burlywood",shape="triangle"];5404[label="xy10/Float xy100 xy101",fontsize=10,color="white",style="solid",shape="box"];223 -> 5404[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5404 -> 259[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 224[label="error []",fontsize=16,color="red",shape="box"];225[label="error []",fontsize=16,color="red",shape="box"];226[label="error []",fontsize=16,color="red",shape="box"];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="error []",fontsize=16,color="red",shape="box"];231[label="error []",fontsize=16,color="red",shape="box"];232[label="error []",fontsize=16,color="red",shape="box"];233[label="error []",fontsize=16,color="red",shape="box"];234[label="error []",fontsize=16,color="red",shape="box"];235[label="xy18 : List.deleteBy (==) xy19 xy17",fontsize=16,color="green",shape="box"];235 -> 260[label="",style="dashed", color="green", weight=3]; 19.67/8.41 236[label="xy17",fontsize=16,color="green",shape="box"];72[label="List.nubByNubBy'1 (==) xy410 xy411 (xy40 : []) (List.elem_by (==) xy410 (xy40 : []))",fontsize=16,color="black",shape="box"];72 -> 77[label="",style="solid", color="black", weight=3]; 19.67/8.41 73[label="[]",fontsize=16,color="green",shape="box"];257[label="primEqInt (Pos xy100) xy90",fontsize=16,color="burlywood",shape="box"];5405[label="xy100/Succ xy1000",fontsize=10,color="white",style="solid",shape="box"];257 -> 5405[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5405 -> 266[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5406[label="xy100/Zero",fontsize=10,color="white",style="solid",shape="box"];257 -> 5406[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5406 -> 267[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 258[label="primEqInt (Neg xy100) xy90",fontsize=16,color="burlywood",shape="box"];5407[label="xy100/Succ xy1000",fontsize=10,color="white",style="solid",shape="box"];258 -> 5407[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5407 -> 268[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5408[label="xy100/Zero",fontsize=10,color="white",style="solid",shape="box"];258 -> 5408[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5408 -> 269[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 259[label="primEqFloat (Float xy100 xy101) xy90",fontsize=16,color="burlywood",shape="box"];5409[label="xy90/Float xy900 xy901",fontsize=10,color="white",style="solid",shape="box"];259 -> 5409[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5409 -> 270[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 260 -> 151[label="",style="dashed", color="red", weight=0]; 19.67/8.41 260[label="List.deleteBy (==) xy19 xy17",fontsize=16,color="magenta"];260 -> 271[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 260 -> 272[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 77[label="List.nubByNubBy'1 (==) xy410 xy411 (xy40 : []) ((==) xy40 xy410 || List.elem_by (==) xy410 [])",fontsize=16,color="black",shape="box"];77 -> 85[label="",style="solid", color="black", weight=3]; 19.67/8.41 266[label="primEqInt (Pos (Succ xy1000)) xy90",fontsize=16,color="burlywood",shape="box"];5410[label="xy90/Pos xy900",fontsize=10,color="white",style="solid",shape="box"];266 -> 5410[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5410 -> 280[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5411[label="xy90/Neg xy900",fontsize=10,color="white",style="solid",shape="box"];266 -> 5411[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5411 -> 281[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 267[label="primEqInt (Pos Zero) xy90",fontsize=16,color="burlywood",shape="box"];5412[label="xy90/Pos xy900",fontsize=10,color="white",style="solid",shape="box"];267 -> 5412[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5412 -> 282[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5413[label="xy90/Neg xy900",fontsize=10,color="white",style="solid",shape="box"];267 -> 5413[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5413 -> 283[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 268[label="primEqInt (Neg (Succ xy1000)) xy90",fontsize=16,color="burlywood",shape="box"];5414[label="xy90/Pos xy900",fontsize=10,color="white",style="solid",shape="box"];268 -> 5414[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5414 -> 284[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5415[label="xy90/Neg xy900",fontsize=10,color="white",style="solid",shape="box"];268 -> 5415[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5415 -> 285[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 269[label="primEqInt (Neg Zero) xy90",fontsize=16,color="burlywood",shape="box"];5416[label="xy90/Pos xy900",fontsize=10,color="white",style="solid",shape="box"];269 -> 5416[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5416 -> 286[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5417[label="xy90/Neg xy900",fontsize=10,color="white",style="solid",shape="box"];269 -> 5417[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5417 -> 287[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 270[label="primEqFloat (Float xy100 xy101) (Float xy900 xy901)",fontsize=16,color="black",shape="box"];270 -> 288[label="",style="solid", color="black", weight=3]; 19.67/8.41 271[label="xy17",fontsize=16,color="green",shape="box"];272[label="xy19",fontsize=16,color="green",shape="box"];85 -> 5336[label="",style="dashed", color="red", weight=0]; 19.67/8.41 85[label="List.nubByNubBy'1 primEqFloat xy410 xy411 (xy40 : []) (primEqFloat xy40 xy410 || List.elem_by primEqFloat xy410 [])",fontsize=16,color="magenta"];85 -> 5337[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 85 -> 5338[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 85 -> 5339[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 85 -> 5340[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 85 -> 5341[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 85 -> 5342[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 280[label="primEqInt (Pos (Succ xy1000)) (Pos xy900)",fontsize=16,color="burlywood",shape="box"];5418[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];280 -> 5418[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5418 -> 296[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5419[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];280 -> 5419[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5419 -> 297[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 281[label="primEqInt (Pos (Succ xy1000)) (Neg xy900)",fontsize=16,color="black",shape="box"];281 -> 298[label="",style="solid", color="black", weight=3]; 19.67/8.41 282[label="primEqInt (Pos Zero) (Pos xy900)",fontsize=16,color="burlywood",shape="box"];5420[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];282 -> 5420[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5420 -> 299[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5421[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];282 -> 5421[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5421 -> 300[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 283[label="primEqInt (Pos Zero) (Neg xy900)",fontsize=16,color="burlywood",shape="box"];5422[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];283 -> 5422[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5422 -> 301[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5423[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];283 -> 5423[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5423 -> 302[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 284[label="primEqInt (Neg (Succ xy1000)) (Pos xy900)",fontsize=16,color="black",shape="box"];284 -> 303[label="",style="solid", color="black", weight=3]; 19.67/8.41 285[label="primEqInt (Neg (Succ xy1000)) (Neg xy900)",fontsize=16,color="burlywood",shape="box"];5424[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];285 -> 5424[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5424 -> 304[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5425[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];285 -> 5425[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5425 -> 305[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 286[label="primEqInt (Neg Zero) (Pos xy900)",fontsize=16,color="burlywood",shape="box"];5426[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];286 -> 5426[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5426 -> 306[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5427[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];286 -> 5427[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5427 -> 307[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 287[label="primEqInt (Neg Zero) (Neg xy900)",fontsize=16,color="burlywood",shape="box"];5428[label="xy900/Succ xy9000",fontsize=10,color="white",style="solid",shape="box"];287 -> 5428[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5428 -> 308[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5429[label="xy900/Zero",fontsize=10,color="white",style="solid",shape="box"];287 -> 5429[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5429 -> 309[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 288 -> 189[label="",style="dashed", color="red", weight=0]; 19.67/8.41 288[label="xy100 * xy901 == xy101 * xy900",fontsize=16,color="magenta"];288 -> 310[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 288 -> 311[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 5337[label="xy40",fontsize=16,color="green",shape="box"];5338[label="[]",fontsize=16,color="green",shape="box"];5339[label="xy411",fontsize=16,color="green",shape="box"];5340[label="[]",fontsize=16,color="green",shape="box"];5341[label="xy410",fontsize=16,color="green",shape="box"];5342 -> 223[label="",style="dashed", color="red", weight=0]; 19.67/8.41 5342[label="primEqFloat xy40 xy410",fontsize=16,color="magenta"];5342 -> 5344[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 5342 -> 5345[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 5336[label="List.nubByNubBy'1 primEqFloat xy363 xy364 (xy365 : xy366) (xy369 || List.elem_by primEqFloat xy363 xy368)",fontsize=16,color="burlywood",shape="triangle"];5430[label="xy369/False",fontsize=10,color="white",style="solid",shape="box"];5336 -> 5430[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5430 -> 5346[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5431[label="xy369/True",fontsize=10,color="white",style="solid",shape="box"];5336 -> 5431[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5431 -> 5347[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 296[label="primEqInt (Pos (Succ xy1000)) (Pos (Succ xy9000))",fontsize=16,color="black",shape="box"];296 -> 321[label="",style="solid", color="black", weight=3]; 19.67/8.41 297[label="primEqInt (Pos (Succ xy1000)) (Pos Zero)",fontsize=16,color="black",shape="box"];297 -> 322[label="",style="solid", color="black", weight=3]; 19.67/8.41 298[label="False",fontsize=16,color="green",shape="box"];299[label="primEqInt (Pos Zero) (Pos (Succ xy9000))",fontsize=16,color="black",shape="box"];299 -> 323[label="",style="solid", color="black", weight=3]; 19.67/8.41 300[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];300 -> 324[label="",style="solid", color="black", weight=3]; 19.67/8.41 301[label="primEqInt (Pos Zero) (Neg (Succ xy9000))",fontsize=16,color="black",shape="box"];301 -> 325[label="",style="solid", color="black", weight=3]; 19.67/8.41 302[label="primEqInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];302 -> 326[label="",style="solid", color="black", weight=3]; 19.67/8.41 303[label="False",fontsize=16,color="green",shape="box"];304[label="primEqInt (Neg (Succ xy1000)) (Neg (Succ xy9000))",fontsize=16,color="black",shape="box"];304 -> 327[label="",style="solid", color="black", weight=3]; 19.67/8.41 305[label="primEqInt (Neg (Succ xy1000)) (Neg Zero)",fontsize=16,color="black",shape="box"];305 -> 328[label="",style="solid", color="black", weight=3]; 19.67/8.41 306[label="primEqInt (Neg Zero) (Pos (Succ xy9000))",fontsize=16,color="black",shape="box"];306 -> 329[label="",style="solid", color="black", weight=3]; 19.67/8.41 307[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];307 -> 330[label="",style="solid", color="black", weight=3]; 19.67/8.41 308[label="primEqInt (Neg Zero) (Neg (Succ xy9000))",fontsize=16,color="black",shape="box"];308 -> 331[label="",style="solid", color="black", weight=3]; 19.67/8.41 309[label="primEqInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];309 -> 332[label="",style="solid", color="black", weight=3]; 19.67/8.41 310[label="xy101 * xy900",fontsize=16,color="black",shape="triangle"];310 -> 333[label="",style="solid", color="black", weight=3]; 19.67/8.41 311 -> 310[label="",style="dashed", color="red", weight=0]; 19.67/8.41 311[label="xy100 * xy901",fontsize=16,color="magenta"];311 -> 334[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 311 -> 335[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 5344[label="xy410",fontsize=16,color="green",shape="box"];5345[label="xy40",fontsize=16,color="green",shape="box"];5346[label="List.nubByNubBy'1 primEqFloat xy363 xy364 (xy365 : xy366) (False || List.elem_by primEqFloat xy363 xy368)",fontsize=16,color="black",shape="box"];5346 -> 5348[label="",style="solid", color="black", weight=3]; 19.67/8.41 5347[label="List.nubByNubBy'1 primEqFloat xy363 xy364 (xy365 : xy366) (True || List.elem_by primEqFloat xy363 xy368)",fontsize=16,color="black",shape="box"];5347 -> 5349[label="",style="solid", color="black", weight=3]; 19.67/8.41 321[label="primEqNat xy1000 xy9000",fontsize=16,color="burlywood",shape="triangle"];5432[label="xy1000/Succ xy10000",fontsize=10,color="white",style="solid",shape="box"];321 -> 5432[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5432 -> 343[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5433[label="xy1000/Zero",fontsize=10,color="white",style="solid",shape="box"];321 -> 5433[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5433 -> 344[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 322[label="False",fontsize=16,color="green",shape="box"];323[label="False",fontsize=16,color="green",shape="box"];324[label="True",fontsize=16,color="green",shape="box"];325[label="False",fontsize=16,color="green",shape="box"];326[label="True",fontsize=16,color="green",shape="box"];327 -> 321[label="",style="dashed", color="red", weight=0]; 19.67/8.41 327[label="primEqNat xy1000 xy9000",fontsize=16,color="magenta"];327 -> 345[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 327 -> 346[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 328[label="False",fontsize=16,color="green",shape="box"];329[label="False",fontsize=16,color="green",shape="box"];330[label="True",fontsize=16,color="green",shape="box"];331[label="False",fontsize=16,color="green",shape="box"];332[label="True",fontsize=16,color="green",shape="box"];333[label="primMulInt xy101 xy900",fontsize=16,color="burlywood",shape="box"];5434[label="xy101/Pos xy1010",fontsize=10,color="white",style="solid",shape="box"];333 -> 5434[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5434 -> 347[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5435[label="xy101/Neg xy1010",fontsize=10,color="white",style="solid",shape="box"];333 -> 5435[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5435 -> 348[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 334[label="xy901",fontsize=16,color="green",shape="box"];335[label="xy100",fontsize=16,color="green",shape="box"];5348[label="List.nubByNubBy'1 primEqFloat xy363 xy364 (xy365 : xy366) (List.elem_by primEqFloat xy363 xy368)",fontsize=16,color="burlywood",shape="triangle"];5436[label="xy368/xy3680 : xy3681",fontsize=10,color="white",style="solid",shape="box"];5348 -> 5436[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5436 -> 5350[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5437[label="xy368/[]",fontsize=10,color="white",style="solid",shape="box"];5348 -> 5437[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5437 -> 5351[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5349[label="List.nubByNubBy'1 primEqFloat xy363 xy364 (xy365 : xy366) True",fontsize=16,color="black",shape="box"];5349 -> 5352[label="",style="solid", color="black", weight=3]; 19.67/8.41 343[label="primEqNat (Succ xy10000) xy9000",fontsize=16,color="burlywood",shape="box"];5438[label="xy9000/Succ xy90000",fontsize=10,color="white",style="solid",shape="box"];343 -> 5438[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5438 -> 356[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5439[label="xy9000/Zero",fontsize=10,color="white",style="solid",shape="box"];343 -> 5439[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5439 -> 357[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 344[label="primEqNat Zero xy9000",fontsize=16,color="burlywood",shape="box"];5440[label="xy9000/Succ xy90000",fontsize=10,color="white",style="solid",shape="box"];344 -> 5440[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5440 -> 358[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5441[label="xy9000/Zero",fontsize=10,color="white",style="solid",shape="box"];344 -> 5441[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5441 -> 359[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 345[label="xy9000",fontsize=16,color="green",shape="box"];346[label="xy1000",fontsize=16,color="green",shape="box"];347[label="primMulInt (Pos xy1010) xy900",fontsize=16,color="burlywood",shape="box"];5442[label="xy900/Pos xy9000",fontsize=10,color="white",style="solid",shape="box"];347 -> 5442[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5442 -> 360[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5443[label="xy900/Neg xy9000",fontsize=10,color="white",style="solid",shape="box"];347 -> 5443[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5443 -> 361[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 348[label="primMulInt (Neg xy1010) xy900",fontsize=16,color="burlywood",shape="box"];5444[label="xy900/Pos xy9000",fontsize=10,color="white",style="solid",shape="box"];348 -> 5444[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5444 -> 362[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5445[label="xy900/Neg xy9000",fontsize=10,color="white",style="solid",shape="box"];348 -> 5445[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5445 -> 363[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5350[label="List.nubByNubBy'1 primEqFloat xy363 xy364 (xy365 : xy366) (List.elem_by primEqFloat xy363 (xy3680 : xy3681))",fontsize=16,color="black",shape="box"];5350 -> 5353[label="",style="solid", color="black", weight=3]; 19.67/8.41 5351[label="List.nubByNubBy'1 primEqFloat xy363 xy364 (xy365 : xy366) (List.elem_by primEqFloat xy363 [])",fontsize=16,color="black",shape="box"];5351 -> 5354[label="",style="solid", color="black", weight=3]; 19.67/8.41 5352[label="List.nubByNubBy' primEqFloat xy364 (xy365 : xy366)",fontsize=16,color="burlywood",shape="triangle"];5446[label="xy364/xy3640 : xy3641",fontsize=10,color="white",style="solid",shape="box"];5352 -> 5446[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5446 -> 5355[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5447[label="xy364/[]",fontsize=10,color="white",style="solid",shape="box"];5352 -> 5447[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5447 -> 5356[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 356[label="primEqNat (Succ xy10000) (Succ xy90000)",fontsize=16,color="black",shape="box"];356 -> 373[label="",style="solid", color="black", weight=3]; 19.67/8.41 357[label="primEqNat (Succ xy10000) Zero",fontsize=16,color="black",shape="box"];357 -> 374[label="",style="solid", color="black", weight=3]; 19.67/8.41 358[label="primEqNat Zero (Succ xy90000)",fontsize=16,color="black",shape="box"];358 -> 375[label="",style="solid", color="black", weight=3]; 19.67/8.41 359[label="primEqNat Zero Zero",fontsize=16,color="black",shape="box"];359 -> 376[label="",style="solid", color="black", weight=3]; 19.67/8.41 360[label="primMulInt (Pos xy1010) (Pos xy9000)",fontsize=16,color="black",shape="box"];360 -> 377[label="",style="solid", color="black", weight=3]; 19.67/8.41 361[label="primMulInt (Pos xy1010) (Neg xy9000)",fontsize=16,color="black",shape="box"];361 -> 378[label="",style="solid", color="black", weight=3]; 19.67/8.41 362[label="primMulInt (Neg xy1010) (Pos xy9000)",fontsize=16,color="black",shape="box"];362 -> 379[label="",style="solid", color="black", weight=3]; 19.67/8.41 363[label="primMulInt (Neg xy1010) (Neg xy9000)",fontsize=16,color="black",shape="box"];363 -> 380[label="",style="solid", color="black", weight=3]; 19.67/8.41 5353 -> 5336[label="",style="dashed", color="red", weight=0]; 19.67/8.41 5353[label="List.nubByNubBy'1 primEqFloat xy363 xy364 (xy365 : xy366) (primEqFloat xy3680 xy363 || List.elem_by primEqFloat xy363 xy3681)",fontsize=16,color="magenta"];5353 -> 5357[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 5353 -> 5358[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 5354[label="List.nubByNubBy'1 primEqFloat xy363 xy364 (xy365 : xy366) False",fontsize=16,color="black",shape="box"];5354 -> 5359[label="",style="solid", color="black", weight=3]; 19.67/8.41 5355[label="List.nubByNubBy' primEqFloat (xy3640 : xy3641) (xy365 : xy366)",fontsize=16,color="black",shape="box"];5355 -> 5360[label="",style="solid", color="black", weight=3]; 19.67/8.41 5356[label="List.nubByNubBy' primEqFloat [] (xy365 : xy366)",fontsize=16,color="black",shape="box"];5356 -> 5361[label="",style="solid", color="black", weight=3]; 19.67/8.41 373 -> 321[label="",style="dashed", color="red", weight=0]; 19.67/8.41 373[label="primEqNat xy10000 xy90000",fontsize=16,color="magenta"];373 -> 388[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 373 -> 389[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 374[label="False",fontsize=16,color="green",shape="box"];375[label="False",fontsize=16,color="green",shape="box"];376[label="True",fontsize=16,color="green",shape="box"];377[label="Pos (primMulNat xy1010 xy9000)",fontsize=16,color="green",shape="box"];377 -> 390[label="",style="dashed", color="green", weight=3]; 19.67/8.41 378[label="Neg (primMulNat xy1010 xy9000)",fontsize=16,color="green",shape="box"];378 -> 391[label="",style="dashed", color="green", weight=3]; 19.67/8.41 379[label="Neg (primMulNat xy1010 xy9000)",fontsize=16,color="green",shape="box"];379 -> 392[label="",style="dashed", color="green", weight=3]; 19.67/8.41 380[label="Pos (primMulNat xy1010 xy9000)",fontsize=16,color="green",shape="box"];380 -> 393[label="",style="dashed", color="green", weight=3]; 19.67/8.41 5357[label="xy3681",fontsize=16,color="green",shape="box"];5358 -> 223[label="",style="dashed", color="red", weight=0]; 19.67/8.41 5358[label="primEqFloat xy3680 xy363",fontsize=16,color="magenta"];5358 -> 5362[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 5358 -> 5363[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 5359[label="List.nubByNubBy'0 primEqFloat xy363 xy364 (xy365 : xy366) otherwise",fontsize=16,color="black",shape="box"];5359 -> 5364[label="",style="solid", color="black", weight=3]; 19.67/8.41 5360[label="List.nubByNubBy'2 primEqFloat (xy3640 : xy3641) (xy365 : xy366)",fontsize=16,color="black",shape="box"];5360 -> 5365[label="",style="solid", color="black", weight=3]; 19.67/8.41 5361[label="List.nubByNubBy'3 primEqFloat [] (xy365 : xy366)",fontsize=16,color="black",shape="box"];5361 -> 5366[label="",style="solid", color="black", weight=3]; 19.67/8.41 388[label="xy90000",fontsize=16,color="green",shape="box"];389[label="xy10000",fontsize=16,color="green",shape="box"];390[label="primMulNat xy1010 xy9000",fontsize=16,color="burlywood",shape="triangle"];5448[label="xy1010/Succ xy10100",fontsize=10,color="white",style="solid",shape="box"];390 -> 5448[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5448 -> 401[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5449[label="xy1010/Zero",fontsize=10,color="white",style="solid",shape="box"];390 -> 5449[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5449 -> 402[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 391 -> 390[label="",style="dashed", color="red", weight=0]; 19.67/8.41 391[label="primMulNat xy1010 xy9000",fontsize=16,color="magenta"];391 -> 403[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 392 -> 390[label="",style="dashed", color="red", weight=0]; 19.67/8.41 392[label="primMulNat xy1010 xy9000",fontsize=16,color="magenta"];392 -> 404[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 393 -> 390[label="",style="dashed", color="red", weight=0]; 19.67/8.41 393[label="primMulNat xy1010 xy9000",fontsize=16,color="magenta"];393 -> 405[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 393 -> 406[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 5362[label="xy363",fontsize=16,color="green",shape="box"];5363[label="xy3680",fontsize=16,color="green",shape="box"];5364[label="List.nubByNubBy'0 primEqFloat xy363 xy364 (xy365 : xy366) True",fontsize=16,color="black",shape="box"];5364 -> 5367[label="",style="solid", color="black", weight=3]; 19.67/8.41 5365 -> 5348[label="",style="dashed", color="red", weight=0]; 19.67/8.41 5365[label="List.nubByNubBy'1 primEqFloat xy3640 xy3641 (xy365 : xy366) (List.elem_by primEqFloat xy3640 (xy365 : xy366))",fontsize=16,color="magenta"];5365 -> 5368[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 5365 -> 5369[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 5365 -> 5370[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 5366[label="[]",fontsize=16,color="green",shape="box"];401[label="primMulNat (Succ xy10100) xy9000",fontsize=16,color="burlywood",shape="box"];5450[label="xy9000/Succ xy90000",fontsize=10,color="white",style="solid",shape="box"];401 -> 5450[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5450 -> 416[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5451[label="xy9000/Zero",fontsize=10,color="white",style="solid",shape="box"];401 -> 5451[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5451 -> 417[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 402[label="primMulNat Zero xy9000",fontsize=16,color="burlywood",shape="box"];5452[label="xy9000/Succ xy90000",fontsize=10,color="white",style="solid",shape="box"];402 -> 5452[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5452 -> 418[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5453[label="xy9000/Zero",fontsize=10,color="white",style="solid",shape="box"];402 -> 5453[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5453 -> 419[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 403[label="xy9000",fontsize=16,color="green",shape="box"];404[label="xy1010",fontsize=16,color="green",shape="box"];405[label="xy1010",fontsize=16,color="green",shape="box"];406[label="xy9000",fontsize=16,color="green",shape="box"];5367[label="xy363 : List.nubByNubBy' primEqFloat xy364 (xy363 : xy365 : xy366)",fontsize=16,color="green",shape="box"];5367 -> 5371[label="",style="dashed", color="green", weight=3]; 19.67/8.41 5368[label="xy365 : xy366",fontsize=16,color="green",shape="box"];5369[label="xy3641",fontsize=16,color="green",shape="box"];5370[label="xy3640",fontsize=16,color="green",shape="box"];416[label="primMulNat (Succ xy10100) (Succ xy90000)",fontsize=16,color="black",shape="box"];416 -> 427[label="",style="solid", color="black", weight=3]; 19.67/8.41 417[label="primMulNat (Succ xy10100) Zero",fontsize=16,color="black",shape="box"];417 -> 428[label="",style="solid", color="black", weight=3]; 19.67/8.41 418[label="primMulNat Zero (Succ xy90000)",fontsize=16,color="black",shape="box"];418 -> 429[label="",style="solid", color="black", weight=3]; 19.67/8.41 419[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];419 -> 430[label="",style="solid", color="black", weight=3]; 19.67/8.41 5371 -> 5352[label="",style="dashed", color="red", weight=0]; 19.67/8.41 5371[label="List.nubByNubBy' primEqFloat xy364 (xy363 : xy365 : xy366)",fontsize=16,color="magenta"];5371 -> 5372[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 5371 -> 5373[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 427 -> 438[label="",style="dashed", color="red", weight=0]; 19.67/8.41 427[label="primPlusNat (primMulNat xy10100 (Succ xy90000)) (Succ xy90000)",fontsize=16,color="magenta"];427 -> 439[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 428[label="Zero",fontsize=16,color="green",shape="box"];429[label="Zero",fontsize=16,color="green",shape="box"];430[label="Zero",fontsize=16,color="green",shape="box"];5372[label="xy363",fontsize=16,color="green",shape="box"];5373[label="xy365 : xy366",fontsize=16,color="green",shape="box"];439 -> 390[label="",style="dashed", color="red", weight=0]; 19.67/8.41 439[label="primMulNat xy10100 (Succ xy90000)",fontsize=16,color="magenta"];439 -> 440[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 439 -> 441[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 438[label="primPlusNat xy40 (Succ xy90000)",fontsize=16,color="burlywood",shape="triangle"];5454[label="xy40/Succ xy400",fontsize=10,color="white",style="solid",shape="box"];438 -> 5454[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5454 -> 442[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5455[label="xy40/Zero",fontsize=10,color="white",style="solid",shape="box"];438 -> 5455[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5455 -> 443[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 440[label="xy10100",fontsize=16,color="green",shape="box"];441[label="Succ xy90000",fontsize=16,color="green",shape="box"];442[label="primPlusNat (Succ xy400) (Succ xy90000)",fontsize=16,color="black",shape="box"];442 -> 450[label="",style="solid", color="black", weight=3]; 19.67/8.41 443[label="primPlusNat Zero (Succ xy90000)",fontsize=16,color="black",shape="box"];443 -> 451[label="",style="solid", color="black", weight=3]; 19.67/8.41 450[label="Succ (Succ (primPlusNat xy400 xy90000))",fontsize=16,color="green",shape="box"];450 -> 454[label="",style="dashed", color="green", weight=3]; 19.67/8.41 451[label="Succ xy90000",fontsize=16,color="green",shape="box"];454[label="primPlusNat xy400 xy90000",fontsize=16,color="burlywood",shape="triangle"];5456[label="xy400/Succ xy4000",fontsize=10,color="white",style="solid",shape="box"];454 -> 5456[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5456 -> 515[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5457[label="xy400/Zero",fontsize=10,color="white",style="solid",shape="box"];454 -> 5457[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5457 -> 516[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 515[label="primPlusNat (Succ xy4000) xy90000",fontsize=16,color="burlywood",shape="box"];5458[label="xy90000/Succ xy900000",fontsize=10,color="white",style="solid",shape="box"];515 -> 5458[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5458 -> 573[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5459[label="xy90000/Zero",fontsize=10,color="white",style="solid",shape="box"];515 -> 5459[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5459 -> 574[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 516[label="primPlusNat Zero xy90000",fontsize=16,color="burlywood",shape="box"];5460[label="xy90000/Succ xy900000",fontsize=10,color="white",style="solid",shape="box"];516 -> 5460[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5460 -> 575[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 5461[label="xy90000/Zero",fontsize=10,color="white",style="solid",shape="box"];516 -> 5461[label="",style="solid", color="burlywood", weight=9]; 19.67/8.41 5461 -> 576[label="",style="solid", color="burlywood", weight=3]; 19.67/8.41 573[label="primPlusNat (Succ xy4000) (Succ xy900000)",fontsize=16,color="black",shape="box"];573 -> 637[label="",style="solid", color="black", weight=3]; 19.67/8.41 574[label="primPlusNat (Succ xy4000) Zero",fontsize=16,color="black",shape="box"];574 -> 638[label="",style="solid", color="black", weight=3]; 19.67/8.41 575[label="primPlusNat Zero (Succ xy900000)",fontsize=16,color="black",shape="box"];575 -> 639[label="",style="solid", color="black", weight=3]; 19.67/8.41 576[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];576 -> 640[label="",style="solid", color="black", weight=3]; 19.67/8.41 637[label="Succ (Succ (primPlusNat xy4000 xy900000))",fontsize=16,color="green",shape="box"];637 -> 693[label="",style="dashed", color="green", weight=3]; 19.67/8.41 638[label="Succ xy4000",fontsize=16,color="green",shape="box"];639[label="Succ xy900000",fontsize=16,color="green",shape="box"];640[label="Zero",fontsize=16,color="green",shape="box"];693 -> 454[label="",style="dashed", color="red", weight=0]; 19.67/8.41 693[label="primPlusNat xy4000 xy900000",fontsize=16,color="magenta"];693 -> 738[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 693 -> 739[label="",style="dashed", color="magenta", weight=3]; 19.67/8.41 738[label="xy900000",fontsize=16,color="green",shape="box"];739[label="xy4000",fontsize=16,color="green",shape="box"];} 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (10) 19.67/8.41 Complex Obligation (AND) 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (11) 19.67/8.41 Obligation: 19.67/8.41 Q DP problem: 19.67/8.41 The TRS P consists of the following rules: 19.67/8.41 19.67/8.41 new_deleteBy(xy10, :(xy90, xy91), bb) -> new_deleteBy0(xy91, xy90, xy10, new_esEs0(xy10, xy90, bb), bb) 19.67/8.41 new_deleteBy0(xy17, xy18, xy19, False, ba) -> new_deleteBy(xy19, xy17, ba) 19.67/8.41 19.67/8.41 The TRS R consists of the following rules: 19.67/8.41 19.67/8.41 new_primEqFloat(Float(xy100, xy101), Float(xy900, xy901)) -> new_esEs(new_sr(xy100, xy901), new_sr(xy101, xy900)) 19.67/8.41 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 19.67/8.41 new_primMulNat0(Zero, Zero) -> Zero 19.67/8.41 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 19.67/8.41 new_primMulNat0(Succ(xy10100), Succ(xy90000)) -> new_primPlusNat0(new_primMulNat0(xy10100, Succ(xy90000)), xy90000) 19.67/8.41 new_esEs0(xy10, xy90, app(ty_[], cc)) -> error([]) 19.67/8.41 new_sr(Neg(xy1010), Neg(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.67/8.41 new_esEs0(xy10, xy90, app(app(ty_Either, bh), ca)) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, app(ty_Ratio, cb)) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, ty_Integer) -> error([]) 19.67/8.41 new_primPlusNat1(Succ(xy4000), Zero) -> Succ(xy4000) 19.67/8.41 new_primPlusNat1(Zero, Succ(xy900000)) -> Succ(xy900000) 19.67/8.41 new_esEs0(xy10, xy90, ty_Ordering) -> error([]) 19.67/8.41 new_primEqNat0(Succ(xy10000), Zero) -> False 19.67/8.41 new_primEqNat0(Zero, Succ(xy90000)) -> False 19.67/8.41 new_esEs0(xy10, xy90, ty_Double) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, ty_Int) -> new_esEs(xy10, xy90) 19.67/8.41 new_esEs0(xy10, xy90, app(ty_Maybe, cd)) -> error([]) 19.67/8.41 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 19.67/8.41 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 19.67/8.41 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 19.67/8.41 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 19.67/8.41 new_esEs0(xy10, xy90, app(app(app(ty_@3, be), bf), bg)) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, ty_@0) -> error([]) 19.67/8.41 new_primEqNat0(Zero, Zero) -> True 19.67/8.41 new_esEs0(xy10, xy90, ty_Char) -> error([]) 19.67/8.41 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.67/8.41 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 19.67/8.41 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 19.67/8.41 new_primPlusNat0(Succ(xy400), xy90000) -> Succ(Succ(new_primPlusNat1(xy400, xy90000))) 19.67/8.41 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 19.67/8.41 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 19.67/8.41 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.67/8.41 new_esEs(xy10, xy90) -> new_primEqInt(xy10, xy90) 19.67/8.41 new_esEs0(xy10, xy90, ty_Float) -> new_primEqFloat(xy10, xy90) 19.67/8.41 new_esEs0(xy10, xy90, ty_Bool) -> error([]) 19.67/8.41 new_sr(Pos(xy1010), Neg(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.67/8.41 new_sr(Neg(xy1010), Pos(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.67/8.41 new_primPlusNat1(Succ(xy4000), Succ(xy900000)) -> Succ(Succ(new_primPlusNat1(xy4000, xy900000))) 19.67/8.41 new_primPlusNat1(Zero, Zero) -> Zero 19.67/8.41 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 19.67/8.41 new_primMulNat0(Succ(xy10100), Zero) -> Zero 19.67/8.41 new_primMulNat0(Zero, Succ(xy90000)) -> Zero 19.67/8.41 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 19.67/8.41 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 19.67/8.41 new_sr(Pos(xy1010), Pos(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.67/8.41 new_primPlusNat0(Zero, xy90000) -> Succ(xy90000) 19.67/8.41 new_esEs0(xy10, xy90, app(app(ty_@2, bc), bd)) -> error([]) 19.67/8.41 19.67/8.41 The set Q consists of the following terms: 19.67/8.41 19.67/8.41 new_esEs0(x0, x1, ty_Float) 19.67/8.41 new_primEqNat0(Zero, Zero) 19.67/8.41 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 19.67/8.41 new_primEqInt(Pos(Zero), Neg(Zero)) 19.67/8.41 new_primEqInt(Neg(Zero), Pos(Zero)) 19.67/8.41 new_esEs0(x0, x1, ty_Int) 19.67/8.41 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 19.67/8.41 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 19.67/8.41 new_esEs0(x0, x1, ty_Bool) 19.67/8.41 new_primEqInt(Pos(Zero), Pos(Zero)) 19.67/8.41 new_primPlusNat1(Succ(x0), Succ(x1)) 19.67/8.41 new_sr(Neg(x0), Neg(x1)) 19.67/8.41 new_primMulNat0(Zero, Succ(x0)) 19.67/8.41 new_primMulNat0(Succ(x0), Succ(x1)) 19.67/8.41 new_primPlusNat1(Succ(x0), Zero) 19.67/8.41 new_primPlusNat0(Zero, x0) 19.67/8.41 new_primEqNat0(Succ(x0), Zero) 19.67/8.41 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 19.67/8.41 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 19.67/8.41 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 19.67/8.41 new_esEs0(x0, x1, app(ty_[], x2)) 19.67/8.41 new_sr(Pos(x0), Neg(x1)) 19.67/8.41 new_sr(Neg(x0), Pos(x1)) 19.67/8.41 new_esEs0(x0, x1, app(ty_Ratio, x2)) 19.67/8.41 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 19.67/8.41 new_esEs0(x0, x1, ty_Integer) 19.67/8.41 new_esEs(x0, x1) 19.67/8.41 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 19.67/8.41 new_esEs0(x0, x1, app(app(ty_Either, x2), x3)) 19.67/8.41 new_sr(Pos(x0), Pos(x1)) 19.67/8.41 new_esEs0(x0, x1, app(ty_Maybe, x2)) 19.67/8.41 new_primMulNat0(Zero, Zero) 19.67/8.41 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 19.67/8.41 new_primMulNat0(Succ(x0), Zero) 19.67/8.41 new_primEqNat0(Succ(x0), Succ(x1)) 19.67/8.41 new_primPlusNat0(Succ(x0), x1) 19.67/8.41 new_primPlusNat1(Zero, Zero) 19.67/8.41 new_esEs0(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 19.67/8.41 new_primPlusNat1(Zero, Succ(x0)) 19.67/8.41 new_primEqFloat(Float(x0, x1), Float(x2, x3)) 19.67/8.41 new_primEqNat0(Zero, Succ(x0)) 19.67/8.41 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 19.67/8.41 new_esEs0(x0, x1, ty_Char) 19.67/8.41 new_primEqInt(Neg(Zero), Neg(Zero)) 19.67/8.41 new_esEs0(x0, x1, app(app(ty_@2, x2), x3)) 19.67/8.41 new_esEs0(x0, x1, ty_Ordering) 19.67/8.41 new_esEs0(x0, x1, ty_@0) 19.67/8.41 new_esEs0(x0, x1, ty_Double) 19.67/8.41 19.67/8.41 We have to consider all minimal (P,Q,R)-chains. 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (12) QDPSizeChangeProof (EQUIVALENT) 19.67/8.41 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. 19.67/8.41 19.67/8.41 From the DPs we obtained the following set of size-change graphs: 19.67/8.41 *new_deleteBy0(xy17, xy18, xy19, False, ba) -> new_deleteBy(xy19, xy17, ba) 19.67/8.41 The graph contains the following edges 3 >= 1, 1 >= 2, 5 >= 3 19.67/8.41 19.67/8.41 19.67/8.41 *new_deleteBy(xy10, :(xy90, xy91), bb) -> new_deleteBy0(xy91, xy90, xy10, new_esEs0(xy10, xy90, bb), bb) 19.67/8.41 The graph contains the following edges 2 > 1, 2 > 2, 1 >= 3, 3 >= 5 19.67/8.41 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (13) 19.67/8.41 YES 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (14) 19.67/8.41 Obligation: 19.67/8.41 Q DP problem: 19.67/8.41 The TRS P consists of the following rules: 19.67/8.41 19.67/8.41 new_psPs(:(xy80, xy81), xy9, xy10, xy11, ba) -> new_psPs(xy81, xy9, xy10, xy11, ba) 19.67/8.41 19.67/8.41 R is empty. 19.67/8.41 Q is empty. 19.67/8.41 We have to consider all minimal (P,Q,R)-chains. 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (15) QDPSizeChangeProof (EQUIVALENT) 19.67/8.41 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. 19.67/8.41 19.67/8.41 From the DPs we obtained the following set of size-change graphs: 19.67/8.41 *new_psPs(:(xy80, xy81), xy9, xy10, xy11, ba) -> new_psPs(xy81, xy9, xy10, xy11, ba) 19.67/8.41 The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5 19.67/8.41 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (16) 19.67/8.41 YES 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (17) 19.67/8.41 Obligation: 19.67/8.41 Q DP problem: 19.67/8.41 The TRS P consists of the following rules: 19.67/8.41 19.67/8.41 new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_flip(xy9, xy10, ba), xy110, xy111, ba) 19.67/8.41 19.67/8.41 The TRS R consists of the following rules: 19.67/8.41 19.67/8.41 new_primEqFloat(Float(xy100, xy101), Float(xy900, xy901)) -> new_esEs(new_sr(xy100, xy901), new_sr(xy101, xy900)) 19.67/8.41 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 19.67/8.41 new_primMulNat0(Zero, Zero) -> Zero 19.67/8.41 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 19.67/8.41 new_primMulNat0(Succ(xy10100), Succ(xy90000)) -> new_primPlusNat0(new_primMulNat0(xy10100, Succ(xy90000)), xy90000) 19.67/8.41 new_esEs0(xy10, xy90, app(ty_[], cb)) -> error([]) 19.67/8.41 new_sr(Neg(xy1010), Neg(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.67/8.41 new_esEs0(xy10, xy90, app(app(ty_Either, bg), bh)) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, app(ty_Ratio, ca)) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, ty_Integer) -> error([]) 19.67/8.41 new_deleteBy00(xy17, xy18, xy19, True, cd) -> xy17 19.67/8.41 new_primPlusNat1(Succ(xy4000), Zero) -> Succ(xy4000) 19.67/8.41 new_primPlusNat1(Zero, Succ(xy900000)) -> Succ(xy900000) 19.67/8.41 new_esEs0(xy10, xy90, ty_Ordering) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, ty_Double) -> error([]) 19.67/8.41 new_primEqNat0(Succ(xy10000), Zero) -> False 19.67/8.41 new_primEqNat0(Zero, Succ(xy90000)) -> False 19.67/8.41 new_esEs0(xy10, xy90, ty_Int) -> new_esEs(xy10, xy90) 19.67/8.41 new_esEs0(xy10, xy90, app(ty_Maybe, cc)) -> error([]) 19.67/8.41 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 19.67/8.41 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 19.67/8.41 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 19.67/8.41 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 19.67/8.41 new_deleteBy00(xy17, xy18, xy19, False, cd) -> :(xy18, new_deleteBy1(xy19, xy17, cd)) 19.67/8.41 new_esEs0(xy10, xy90, app(app(app(ty_@3, bd), be), bf)) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, ty_@0) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, ty_Char) -> error([]) 19.67/8.41 new_primEqNat0(Zero, Zero) -> True 19.67/8.41 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.67/8.41 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 19.67/8.41 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 19.67/8.41 new_primPlusNat0(Succ(xy400), xy90000) -> Succ(Succ(new_primPlusNat1(xy400, xy90000))) 19.67/8.41 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 19.67/8.41 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 19.67/8.41 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.67/8.41 new_esEs(xy10, xy90) -> new_primEqInt(xy10, xy90) 19.67/8.41 new_esEs0(xy10, xy90, ty_Float) -> new_primEqFloat(xy10, xy90) 19.67/8.41 new_esEs0(xy10, xy90, ty_Bool) -> error([]) 19.67/8.41 new_deleteBy1(xy10, :(xy90, xy91), ba) -> new_deleteBy00(xy91, xy90, xy10, new_esEs0(xy10, xy90, ba), ba) 19.67/8.41 new_sr(Pos(xy1010), Neg(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.67/8.41 new_sr(Neg(xy1010), Pos(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.67/8.41 new_primPlusNat1(Succ(xy4000), Succ(xy900000)) -> Succ(Succ(new_primPlusNat1(xy4000, xy900000))) 19.67/8.41 new_primPlusNat1(Zero, Zero) -> Zero 19.67/8.41 new_flip(xy9, xy10, ba) -> new_deleteBy1(xy10, xy9, ba) 19.67/8.41 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 19.67/8.41 new_primMulNat0(Succ(xy10100), Zero) -> Zero 19.67/8.41 new_primMulNat0(Zero, Succ(xy90000)) -> Zero 19.67/8.41 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 19.67/8.41 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 19.67/8.41 new_sr(Pos(xy1010), Pos(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.67/8.41 new_primPlusNat0(Zero, xy90000) -> Succ(xy90000) 19.67/8.41 new_deleteBy1(xy10, [], ba) -> [] 19.67/8.41 new_esEs0(xy10, xy90, app(app(ty_@2, bb), bc)) -> error([]) 19.67/8.41 19.67/8.41 The set Q consists of the following terms: 19.67/8.41 19.67/8.41 new_esEs0(x0, x1, ty_Float) 19.67/8.41 new_primEqNat0(Zero, Zero) 19.67/8.41 new_esEs0(x0, x1, ty_Bool) 19.67/8.41 new_primPlusNat1(Succ(x0), Succ(x1)) 19.67/8.41 new_sr(Neg(x0), Neg(x1)) 19.67/8.41 new_primMulNat0(Zero, Succ(x0)) 19.67/8.41 new_primPlusNat0(Zero, x0) 19.67/8.41 new_primEqNat0(Succ(x0), Zero) 19.67/8.41 new_flip(x0, x1, x2) 19.67/8.41 new_sr(Pos(x0), Neg(x1)) 19.67/8.41 new_sr(Neg(x0), Pos(x1)) 19.67/8.41 new_esEs(x0, x1) 19.67/8.41 new_deleteBy1(x0, [], x1) 19.67/8.41 new_primMulNat0(Zero, Zero) 19.67/8.41 new_primEqNat0(Succ(x0), Succ(x1)) 19.67/8.41 new_primPlusNat1(Zero, Zero) 19.67/8.41 new_primPlusNat1(Zero, Succ(x0)) 19.67/8.41 new_primEqFloat(Float(x0, x1), Float(x2, x3)) 19.67/8.41 new_esEs0(x0, x1, ty_Char) 19.67/8.41 new_esEs0(x0, x1, app(ty_Maybe, x2)) 19.67/8.41 new_esEs0(x0, x1, ty_Double) 19.67/8.41 new_esEs0(x0, x1, app(ty_Ratio, x2)) 19.67/8.41 new_deleteBy00(x0, x1, x2, False, x3) 19.67/8.41 new_deleteBy00(x0, x1, x2, True, x3) 19.67/8.41 new_primEqInt(Pos(Zero), Neg(Zero)) 19.67/8.41 new_primEqInt(Neg(Zero), Pos(Zero)) 19.67/8.41 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 19.67/8.41 new_esEs0(x0, x1, ty_Int) 19.67/8.41 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 19.67/8.41 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 19.67/8.41 new_primEqInt(Pos(Zero), Pos(Zero)) 19.67/8.41 new_primMulNat0(Succ(x0), Succ(x1)) 19.67/8.41 new_primPlusNat1(Succ(x0), Zero) 19.67/8.41 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 19.67/8.41 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 19.67/8.41 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 19.67/8.41 new_esEs0(x0, x1, app(app(ty_@2, x2), x3)) 19.67/8.41 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 19.67/8.41 new_esEs0(x0, x1, ty_Integer) 19.67/8.41 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 19.67/8.41 new_sr(Pos(x0), Pos(x1)) 19.67/8.41 new_esEs0(x0, x1, app(ty_[], x2)) 19.67/8.41 new_esEs0(x0, x1, app(app(ty_Either, x2), x3)) 19.67/8.41 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 19.67/8.41 new_primMulNat0(Succ(x0), Zero) 19.67/8.41 new_primPlusNat0(Succ(x0), x1) 19.67/8.41 new_primEqNat0(Zero, Succ(x0)) 19.67/8.41 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 19.67/8.41 new_esEs0(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 19.67/8.41 new_primEqInt(Neg(Zero), Neg(Zero)) 19.67/8.41 new_deleteBy1(x0, :(x1, x2), x3) 19.67/8.41 new_esEs0(x0, x1, ty_Ordering) 19.67/8.41 new_esEs0(x0, x1, ty_@0) 19.67/8.41 19.67/8.41 We have to consider all minimal (P,Q,R)-chains. 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (18) TransformationProof (EQUIVALENT) 19.67/8.41 By rewriting [LPAR04] the rule new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_flip(xy9, xy10, ba), xy110, xy111, ba) at position [0] we obtained the following new rules [LPAR04]: 19.67/8.41 19.67/8.41 (new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba),new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba)) 19.67/8.41 19.67/8.41 19.67/8.41 ---------------------------------------- 19.67/8.41 19.67/8.41 (19) 19.67/8.41 Obligation: 19.67/8.41 Q DP problem: 19.67/8.41 The TRS P consists of the following rules: 19.67/8.41 19.67/8.41 new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba) 19.67/8.41 19.67/8.41 The TRS R consists of the following rules: 19.67/8.41 19.67/8.41 new_primEqFloat(Float(xy100, xy101), Float(xy900, xy901)) -> new_esEs(new_sr(xy100, xy901), new_sr(xy101, xy900)) 19.67/8.41 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 19.67/8.41 new_primMulNat0(Zero, Zero) -> Zero 19.67/8.41 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 19.67/8.41 new_primMulNat0(Succ(xy10100), Succ(xy90000)) -> new_primPlusNat0(new_primMulNat0(xy10100, Succ(xy90000)), xy90000) 19.67/8.41 new_esEs0(xy10, xy90, app(ty_[], cb)) -> error([]) 19.67/8.41 new_sr(Neg(xy1010), Neg(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.67/8.41 new_esEs0(xy10, xy90, app(app(ty_Either, bg), bh)) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, app(ty_Ratio, ca)) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, ty_Integer) -> error([]) 19.67/8.41 new_deleteBy00(xy17, xy18, xy19, True, cd) -> xy17 19.67/8.41 new_primPlusNat1(Succ(xy4000), Zero) -> Succ(xy4000) 19.67/8.41 new_primPlusNat1(Zero, Succ(xy900000)) -> Succ(xy900000) 19.67/8.41 new_esEs0(xy10, xy90, ty_Ordering) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, ty_Double) -> error([]) 19.67/8.41 new_primEqNat0(Succ(xy10000), Zero) -> False 19.67/8.41 new_primEqNat0(Zero, Succ(xy90000)) -> False 19.67/8.41 new_esEs0(xy10, xy90, ty_Int) -> new_esEs(xy10, xy90) 19.67/8.41 new_esEs0(xy10, xy90, app(ty_Maybe, cc)) -> error([]) 19.67/8.41 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 19.67/8.41 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 19.67/8.41 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 19.67/8.41 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 19.67/8.41 new_deleteBy00(xy17, xy18, xy19, False, cd) -> :(xy18, new_deleteBy1(xy19, xy17, cd)) 19.67/8.41 new_esEs0(xy10, xy90, app(app(app(ty_@3, bd), be), bf)) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, ty_@0) -> error([]) 19.67/8.41 new_esEs0(xy10, xy90, ty_Char) -> error([]) 19.67/8.41 new_primEqNat0(Zero, Zero) -> True 19.67/8.41 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.67/8.41 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 19.67/8.41 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 19.67/8.41 new_primPlusNat0(Succ(xy400), xy90000) -> Succ(Succ(new_primPlusNat1(xy400, xy90000))) 19.67/8.41 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 19.67/8.41 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 19.67/8.41 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.67/8.41 new_esEs(xy10, xy90) -> new_primEqInt(xy10, xy90) 19.67/8.41 new_esEs0(xy10, xy90, ty_Float) -> new_primEqFloat(xy10, xy90) 19.67/8.41 new_esEs0(xy10, xy90, ty_Bool) -> error([]) 19.67/8.41 new_deleteBy1(xy10, :(xy90, xy91), ba) -> new_deleteBy00(xy91, xy90, xy10, new_esEs0(xy10, xy90, ba), ba) 19.67/8.41 new_sr(Pos(xy1010), Neg(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.67/8.41 new_sr(Neg(xy1010), Pos(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.67/8.41 new_primPlusNat1(Succ(xy4000), Succ(xy900000)) -> Succ(Succ(new_primPlusNat1(xy4000, xy900000))) 19.84/8.41 new_primPlusNat1(Zero, Zero) -> Zero 19.84/8.41 new_flip(xy9, xy10, ba) -> new_deleteBy1(xy10, xy9, ba) 19.84/8.41 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 19.84/8.41 new_primMulNat0(Succ(xy10100), Zero) -> Zero 19.84/8.41 new_primMulNat0(Zero, Succ(xy90000)) -> Zero 19.84/8.41 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 19.84/8.41 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 19.84/8.41 new_sr(Pos(xy1010), Pos(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.84/8.41 new_primPlusNat0(Zero, xy90000) -> Succ(xy90000) 19.84/8.41 new_deleteBy1(xy10, [], ba) -> [] 19.84/8.41 new_esEs0(xy10, xy90, app(app(ty_@2, bb), bc)) -> error([]) 19.84/8.41 19.84/8.41 The set Q consists of the following terms: 19.84/8.41 19.84/8.41 new_esEs0(x0, x1, ty_Float) 19.84/8.41 new_primEqNat0(Zero, Zero) 19.84/8.41 new_esEs0(x0, x1, ty_Bool) 19.84/8.41 new_primPlusNat1(Succ(x0), Succ(x1)) 19.84/8.41 new_sr(Neg(x0), Neg(x1)) 19.84/8.41 new_primMulNat0(Zero, Succ(x0)) 19.84/8.41 new_primPlusNat0(Zero, x0) 19.84/8.41 new_primEqNat0(Succ(x0), Zero) 19.84/8.41 new_flip(x0, x1, x2) 19.84/8.41 new_sr(Pos(x0), Neg(x1)) 19.84/8.41 new_sr(Neg(x0), Pos(x1)) 19.84/8.41 new_esEs(x0, x1) 19.84/8.41 new_deleteBy1(x0, [], x1) 19.84/8.41 new_primMulNat0(Zero, Zero) 19.84/8.41 new_primEqNat0(Succ(x0), Succ(x1)) 19.84/8.41 new_primPlusNat1(Zero, Zero) 19.84/8.41 new_primPlusNat1(Zero, Succ(x0)) 19.84/8.41 new_primEqFloat(Float(x0, x1), Float(x2, x3)) 19.84/8.41 new_esEs0(x0, x1, ty_Char) 19.84/8.41 new_esEs0(x0, x1, app(ty_Maybe, x2)) 19.84/8.41 new_esEs0(x0, x1, ty_Double) 19.84/8.41 new_esEs0(x0, x1, app(ty_Ratio, x2)) 19.84/8.41 new_deleteBy00(x0, x1, x2, False, x3) 19.84/8.41 new_deleteBy00(x0, x1, x2, True, x3) 19.84/8.41 new_primEqInt(Pos(Zero), Neg(Zero)) 19.84/8.41 new_primEqInt(Neg(Zero), Pos(Zero)) 19.84/8.41 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 19.84/8.41 new_esEs0(x0, x1, ty_Int) 19.84/8.41 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 19.84/8.41 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 19.84/8.41 new_primEqInt(Pos(Zero), Pos(Zero)) 19.84/8.41 new_primMulNat0(Succ(x0), Succ(x1)) 19.84/8.41 new_primPlusNat1(Succ(x0), Zero) 19.84/8.41 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 19.84/8.41 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 19.84/8.41 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 19.84/8.41 new_esEs0(x0, x1, app(app(ty_@2, x2), x3)) 19.84/8.41 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 19.84/8.41 new_esEs0(x0, x1, ty_Integer) 19.84/8.41 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 19.84/8.41 new_sr(Pos(x0), Pos(x1)) 19.84/8.41 new_esEs0(x0, x1, app(ty_[], x2)) 19.84/8.41 new_esEs0(x0, x1, app(app(ty_Either, x2), x3)) 19.84/8.41 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 19.84/8.41 new_primMulNat0(Succ(x0), Zero) 19.84/8.41 new_primPlusNat0(Succ(x0), x1) 19.84/8.41 new_primEqNat0(Zero, Succ(x0)) 19.84/8.41 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 19.84/8.41 new_esEs0(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 19.84/8.41 new_primEqInt(Neg(Zero), Neg(Zero)) 19.84/8.41 new_deleteBy1(x0, :(x1, x2), x3) 19.84/8.41 new_esEs0(x0, x1, ty_Ordering) 19.84/8.41 new_esEs0(x0, x1, ty_@0) 19.84/8.41 19.84/8.41 We have to consider all minimal (P,Q,R)-chains. 19.84/8.41 ---------------------------------------- 19.84/8.41 19.84/8.41 (20) UsableRulesProof (EQUIVALENT) 19.84/8.41 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. 19.84/8.41 ---------------------------------------- 19.84/8.41 19.84/8.41 (21) 19.84/8.41 Obligation: 19.84/8.41 Q DP problem: 19.84/8.41 The TRS P consists of the following rules: 19.84/8.41 19.84/8.41 new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba) 19.84/8.41 19.84/8.41 The TRS R consists of the following rules: 19.84/8.41 19.84/8.41 new_deleteBy1(xy10, :(xy90, xy91), ba) -> new_deleteBy00(xy91, xy90, xy10, new_esEs0(xy10, xy90, ba), ba) 19.84/8.41 new_deleteBy1(xy10, [], ba) -> [] 19.84/8.41 new_esEs0(xy10, xy90, app(ty_[], cb)) -> error([]) 19.84/8.41 new_esEs0(xy10, xy90, app(app(ty_Either, bg), bh)) -> error([]) 19.84/8.41 new_esEs0(xy10, xy90, app(ty_Ratio, ca)) -> error([]) 19.84/8.41 new_esEs0(xy10, xy90, ty_Integer) -> error([]) 19.84/8.41 new_esEs0(xy10, xy90, ty_Ordering) -> error([]) 19.84/8.41 new_esEs0(xy10, xy90, ty_Double) -> error([]) 19.84/8.41 new_esEs0(xy10, xy90, ty_Int) -> new_esEs(xy10, xy90) 19.84/8.41 new_esEs0(xy10, xy90, app(ty_Maybe, cc)) -> error([]) 19.84/8.41 new_esEs0(xy10, xy90, app(app(app(ty_@3, bd), be), bf)) -> error([]) 19.84/8.41 new_esEs0(xy10, xy90, ty_@0) -> error([]) 19.84/8.41 new_esEs0(xy10, xy90, ty_Char) -> error([]) 19.84/8.41 new_esEs0(xy10, xy90, ty_Float) -> new_primEqFloat(xy10, xy90) 19.84/8.41 new_esEs0(xy10, xy90, ty_Bool) -> error([]) 19.84/8.41 new_esEs0(xy10, xy90, app(app(ty_@2, bb), bc)) -> error([]) 19.84/8.41 new_deleteBy00(xy17, xy18, xy19, True, cd) -> xy17 19.84/8.41 new_deleteBy00(xy17, xy18, xy19, False, cd) -> :(xy18, new_deleteBy1(xy19, xy17, cd)) 19.84/8.41 new_primEqFloat(Float(xy100, xy101), Float(xy900, xy901)) -> new_esEs(new_sr(xy100, xy901), new_sr(xy101, xy900)) 19.84/8.41 new_sr(Neg(xy1010), Neg(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.84/8.41 new_sr(Pos(xy1010), Neg(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.84/8.41 new_sr(Neg(xy1010), Pos(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.84/8.41 new_sr(Pos(xy1010), Pos(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.84/8.41 new_esEs(xy10, xy90) -> new_primEqInt(xy10, xy90) 19.84/8.41 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 19.84/8.41 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 19.84/8.41 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 19.84/8.41 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 19.84/8.41 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 19.84/8.41 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 19.84/8.41 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.84/8.41 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 19.84/8.41 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 19.84/8.41 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 19.84/8.41 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 19.84/8.41 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.84/8.41 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 19.84/8.41 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 19.84/8.41 new_primEqNat0(Succ(xy10000), Zero) -> False 19.84/8.41 new_primEqNat0(Zero, Succ(xy90000)) -> False 19.84/8.41 new_primEqNat0(Zero, Zero) -> True 19.84/8.41 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 19.84/8.41 new_primMulNat0(Zero, Zero) -> Zero 19.84/8.41 new_primMulNat0(Succ(xy10100), Succ(xy90000)) -> new_primPlusNat0(new_primMulNat0(xy10100, Succ(xy90000)), xy90000) 19.84/8.41 new_primMulNat0(Succ(xy10100), Zero) -> Zero 19.84/8.41 new_primMulNat0(Zero, Succ(xy90000)) -> Zero 19.84/8.41 new_primPlusNat0(Succ(xy400), xy90000) -> Succ(Succ(new_primPlusNat1(xy400, xy90000))) 19.84/8.41 new_primPlusNat0(Zero, xy90000) -> Succ(xy90000) 19.84/8.41 new_primPlusNat1(Succ(xy4000), Zero) -> Succ(xy4000) 19.84/8.41 new_primPlusNat1(Zero, Succ(xy900000)) -> Succ(xy900000) 19.84/8.41 new_primPlusNat1(Succ(xy4000), Succ(xy900000)) -> Succ(Succ(new_primPlusNat1(xy4000, xy900000))) 19.84/8.41 new_primPlusNat1(Zero, Zero) -> Zero 19.84/8.41 19.84/8.41 The set Q consists of the following terms: 19.84/8.41 19.84/8.41 new_esEs0(x0, x1, ty_Float) 19.84/8.41 new_primEqNat0(Zero, Zero) 19.84/8.41 new_esEs0(x0, x1, ty_Bool) 19.84/8.41 new_primPlusNat1(Succ(x0), Succ(x1)) 19.84/8.41 new_sr(Neg(x0), Neg(x1)) 19.84/8.41 new_primMulNat0(Zero, Succ(x0)) 19.84/8.41 new_primPlusNat0(Zero, x0) 19.84/8.41 new_primEqNat0(Succ(x0), Zero) 19.84/8.41 new_flip(x0, x1, x2) 19.84/8.41 new_sr(Pos(x0), Neg(x1)) 19.84/8.41 new_sr(Neg(x0), Pos(x1)) 19.84/8.41 new_esEs(x0, x1) 19.84/8.41 new_deleteBy1(x0, [], x1) 19.84/8.41 new_primMulNat0(Zero, Zero) 19.84/8.41 new_primEqNat0(Succ(x0), Succ(x1)) 19.84/8.41 new_primPlusNat1(Zero, Zero) 19.84/8.41 new_primPlusNat1(Zero, Succ(x0)) 19.84/8.41 new_primEqFloat(Float(x0, x1), Float(x2, x3)) 19.84/8.41 new_esEs0(x0, x1, ty_Char) 19.84/8.41 new_esEs0(x0, x1, app(ty_Maybe, x2)) 19.84/8.41 new_esEs0(x0, x1, ty_Double) 19.84/8.41 new_esEs0(x0, x1, app(ty_Ratio, x2)) 19.84/8.41 new_deleteBy00(x0, x1, x2, False, x3) 19.84/8.41 new_deleteBy00(x0, x1, x2, True, x3) 19.84/8.41 new_primEqInt(Pos(Zero), Neg(Zero)) 19.84/8.41 new_primEqInt(Neg(Zero), Pos(Zero)) 19.84/8.41 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 19.84/8.41 new_esEs0(x0, x1, ty_Int) 19.84/8.41 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 19.84/8.41 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 19.84/8.41 new_primEqInt(Pos(Zero), Pos(Zero)) 19.84/8.41 new_primMulNat0(Succ(x0), Succ(x1)) 19.84/8.41 new_primPlusNat1(Succ(x0), Zero) 19.84/8.41 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 19.84/8.41 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 19.84/8.41 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 19.84/8.41 new_esEs0(x0, x1, app(app(ty_@2, x2), x3)) 19.84/8.41 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 19.84/8.41 new_esEs0(x0, x1, ty_Integer) 19.84/8.41 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 19.84/8.41 new_sr(Pos(x0), Pos(x1)) 19.84/8.41 new_esEs0(x0, x1, app(ty_[], x2)) 19.84/8.41 new_esEs0(x0, x1, app(app(ty_Either, x2), x3)) 19.84/8.41 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 19.84/8.41 new_primMulNat0(Succ(x0), Zero) 19.84/8.41 new_primPlusNat0(Succ(x0), x1) 19.84/8.41 new_primEqNat0(Zero, Succ(x0)) 19.84/8.41 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 19.84/8.41 new_esEs0(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 19.84/8.41 new_primEqInt(Neg(Zero), Neg(Zero)) 19.84/8.41 new_deleteBy1(x0, :(x1, x2), x3) 19.84/8.41 new_esEs0(x0, x1, ty_Ordering) 19.84/8.41 new_esEs0(x0, x1, ty_@0) 19.84/8.41 19.84/8.41 We have to consider all minimal (P,Q,R)-chains. 19.84/8.41 ---------------------------------------- 19.84/8.41 19.84/8.41 (22) QReductionProof (EQUIVALENT) 19.84/8.41 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 19.84/8.41 19.84/8.41 new_flip(x0, x1, x2) 19.84/8.41 19.84/8.41 19.84/8.41 ---------------------------------------- 19.84/8.41 19.84/8.41 (23) 19.84/8.41 Obligation: 19.84/8.41 Q DP problem: 19.84/8.41 The TRS P consists of the following rules: 19.84/8.41 19.84/8.41 new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba) 19.84/8.41 19.84/8.41 The TRS R consists of the following rules: 19.84/8.41 19.84/8.41 new_deleteBy1(xy10, :(xy90, xy91), ba) -> new_deleteBy00(xy91, xy90, xy10, new_esEs0(xy10, xy90, ba), ba) 19.84/8.41 new_deleteBy1(xy10, [], ba) -> [] 19.84/8.41 new_esEs0(xy10, xy90, app(ty_[], cb)) -> error([]) 19.84/8.41 new_esEs0(xy10, xy90, app(app(ty_Either, bg), bh)) -> error([]) 19.84/8.42 new_esEs0(xy10, xy90, app(ty_Ratio, ca)) -> error([]) 19.84/8.42 new_esEs0(xy10, xy90, ty_Integer) -> error([]) 19.84/8.42 new_esEs0(xy10, xy90, ty_Ordering) -> error([]) 19.84/8.42 new_esEs0(xy10, xy90, ty_Double) -> error([]) 19.84/8.42 new_esEs0(xy10, xy90, ty_Int) -> new_esEs(xy10, xy90) 19.84/8.42 new_esEs0(xy10, xy90, app(ty_Maybe, cc)) -> error([]) 19.84/8.42 new_esEs0(xy10, xy90, app(app(app(ty_@3, bd), be), bf)) -> error([]) 19.84/8.42 new_esEs0(xy10, xy90, ty_@0) -> error([]) 19.84/8.42 new_esEs0(xy10, xy90, ty_Char) -> error([]) 19.84/8.42 new_esEs0(xy10, xy90, ty_Float) -> new_primEqFloat(xy10, xy90) 19.84/8.42 new_esEs0(xy10, xy90, ty_Bool) -> error([]) 19.84/8.42 new_esEs0(xy10, xy90, app(app(ty_@2, bb), bc)) -> error([]) 19.84/8.42 new_deleteBy00(xy17, xy18, xy19, True, cd) -> xy17 19.84/8.42 new_deleteBy00(xy17, xy18, xy19, False, cd) -> :(xy18, new_deleteBy1(xy19, xy17, cd)) 19.84/8.42 new_primEqFloat(Float(xy100, xy101), Float(xy900, xy901)) -> new_esEs(new_sr(xy100, xy901), new_sr(xy101, xy900)) 19.84/8.42 new_sr(Neg(xy1010), Neg(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_sr(Pos(xy1010), Neg(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_sr(Neg(xy1010), Pos(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_sr(Pos(xy1010), Pos(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_esEs(xy10, xy90) -> new_primEqInt(xy10, xy90) 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 19.84/8.42 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.84/8.42 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 19.84/8.42 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 19.84/8.42 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.84/8.42 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 19.84/8.42 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 19.84/8.42 new_primEqNat0(Succ(xy10000), Zero) -> False 19.84/8.42 new_primEqNat0(Zero, Succ(xy90000)) -> False 19.84/8.42 new_primEqNat0(Zero, Zero) -> True 19.84/8.42 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 19.84/8.42 new_primMulNat0(Zero, Zero) -> Zero 19.84/8.42 new_primMulNat0(Succ(xy10100), Succ(xy90000)) -> new_primPlusNat0(new_primMulNat0(xy10100, Succ(xy90000)), xy90000) 19.84/8.42 new_primMulNat0(Succ(xy10100), Zero) -> Zero 19.84/8.42 new_primMulNat0(Zero, Succ(xy90000)) -> Zero 19.84/8.42 new_primPlusNat0(Succ(xy400), xy90000) -> Succ(Succ(new_primPlusNat1(xy400, xy90000))) 19.84/8.42 new_primPlusNat0(Zero, xy90000) -> Succ(xy90000) 19.84/8.42 new_primPlusNat1(Succ(xy4000), Zero) -> Succ(xy4000) 19.84/8.42 new_primPlusNat1(Zero, Succ(xy900000)) -> Succ(xy900000) 19.84/8.42 new_primPlusNat1(Succ(xy4000), Succ(xy900000)) -> Succ(Succ(new_primPlusNat1(xy4000, xy900000))) 19.84/8.42 new_primPlusNat1(Zero, Zero) -> Zero 19.84/8.42 19.84/8.42 The set Q consists of the following terms: 19.84/8.42 19.84/8.42 new_esEs0(x0, x1, ty_Float) 19.84/8.42 new_primEqNat0(Zero, Zero) 19.84/8.42 new_esEs0(x0, x1, ty_Bool) 19.84/8.42 new_primPlusNat1(Succ(x0), Succ(x1)) 19.84/8.42 new_sr(Neg(x0), Neg(x1)) 19.84/8.42 new_primMulNat0(Zero, Succ(x0)) 19.84/8.42 new_primPlusNat0(Zero, x0) 19.84/8.42 new_primEqNat0(Succ(x0), Zero) 19.84/8.42 new_sr(Pos(x0), Neg(x1)) 19.84/8.42 new_sr(Neg(x0), Pos(x1)) 19.84/8.42 new_esEs(x0, x1) 19.84/8.42 new_deleteBy1(x0, [], x1) 19.84/8.42 new_primMulNat0(Zero, Zero) 19.84/8.42 new_primEqNat0(Succ(x0), Succ(x1)) 19.84/8.42 new_primPlusNat1(Zero, Zero) 19.84/8.42 new_primPlusNat1(Zero, Succ(x0)) 19.84/8.42 new_primEqFloat(Float(x0, x1), Float(x2, x3)) 19.84/8.42 new_esEs0(x0, x1, ty_Char) 19.84/8.42 new_esEs0(x0, x1, app(ty_Maybe, x2)) 19.84/8.42 new_esEs0(x0, x1, ty_Double) 19.84/8.42 new_esEs0(x0, x1, app(ty_Ratio, x2)) 19.84/8.42 new_deleteBy00(x0, x1, x2, False, x3) 19.84/8.42 new_deleteBy00(x0, x1, x2, True, x3) 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Zero)) 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Zero)) 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 19.84/8.42 new_esEs0(x0, x1, ty_Int) 19.84/8.42 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 19.84/8.42 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Zero)) 19.84/8.42 new_primMulNat0(Succ(x0), Succ(x1)) 19.84/8.42 new_primPlusNat1(Succ(x0), Zero) 19.84/8.42 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 19.84/8.42 new_esEs0(x0, x1, app(app(ty_@2, x2), x3)) 19.84/8.42 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 19.84/8.42 new_esEs0(x0, x1, ty_Integer) 19.84/8.42 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 19.84/8.42 new_sr(Pos(x0), Pos(x1)) 19.84/8.42 new_esEs0(x0, x1, app(ty_[], x2)) 19.84/8.42 new_esEs0(x0, x1, app(app(ty_Either, x2), x3)) 19.84/8.42 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 19.84/8.42 new_primMulNat0(Succ(x0), Zero) 19.84/8.42 new_primPlusNat0(Succ(x0), x1) 19.84/8.42 new_primEqNat0(Zero, Succ(x0)) 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 19.84/8.42 new_esEs0(x0, x1, app(app(app(ty_@3, x2), x3), x4)) 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Zero)) 19.84/8.42 new_deleteBy1(x0, :(x1, x2), x3) 19.84/8.42 new_esEs0(x0, x1, ty_Ordering) 19.84/8.42 new_esEs0(x0, x1, ty_@0) 19.84/8.42 19.84/8.42 We have to consider all minimal (P,Q,R)-chains. 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (24) QDPSizeChangeProof (EQUIVALENT) 19.84/8.42 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. 19.84/8.42 19.84/8.42 From the DPs we obtained the following set of size-change graphs: 19.84/8.42 *new_foldl(xy9, xy10, :(xy110, xy111), ba) -> new_foldl(new_deleteBy1(xy10, xy9, ba), xy110, xy111, ba) 19.84/8.42 The graph contains the following edges 3 > 2, 3 > 3, 4 >= 4 19.84/8.42 19.84/8.42 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (25) 19.84/8.42 YES 19.84/8.42 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (26) 19.84/8.42 Obligation: 19.84/8.42 Q DP problem: 19.84/8.42 The TRS P consists of the following rules: 19.84/8.42 19.84/8.42 new_nubByNubBy'1(xy363, xy364, xy365, xy366, False, []) -> new_nubByNubBy'(xy364, xy363, :(xy365, xy366)) 19.84/8.42 new_nubByNubBy'1(xy363, xy364, xy365, xy366, False, :(xy3680, xy3681)) -> new_nubByNubBy'1(xy363, xy364, xy365, xy366, new_primEqFloat(xy3680, xy363), xy3681) 19.84/8.42 new_nubByNubBy'(:(xy3640, xy3641), xy365, xy366) -> new_nubByNubBy'10(xy3640, xy3641, xy365, xy366, :(xy365, xy366)) 19.84/8.42 new_nubByNubBy'10(xy363, xy364, xy365, xy366, []) -> new_nubByNubBy'(xy364, xy363, :(xy365, xy366)) 19.84/8.42 new_nubByNubBy'10(xy363, xy364, xy365, xy366, :(xy3680, xy3681)) -> new_nubByNubBy'1(xy363, xy364, xy365, xy366, new_primEqFloat(xy3680, xy363), xy3681) 19.84/8.42 new_nubByNubBy'1(xy363, :(xy3640, xy3641), xy365, xy366, True, xy368) -> new_nubByNubBy'10(xy3640, xy3641, xy365, xy366, :(xy365, xy366)) 19.84/8.42 19.84/8.42 The TRS R consists of the following rules: 19.84/8.42 19.84/8.42 new_primEqFloat(Float(xy100, xy101), Float(xy900, xy901)) -> new_esEs(new_sr(xy100, xy901), new_sr(xy101, xy900)) 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 19.84/8.42 new_primEqNat0(Zero, Zero) -> True 19.84/8.42 new_primMulNat0(Zero, Zero) -> Zero 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 19.84/8.42 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.84/8.42 new_primMulNat0(Succ(xy10100), Succ(xy90000)) -> new_primPlusNat0(new_primMulNat0(xy10100, Succ(xy90000)), xy90000) 19.84/8.42 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 19.84/8.42 new_primPlusNat0(Succ(xy400), xy90000) -> Succ(Succ(new_primPlusNat1(xy400, xy90000))) 19.84/8.42 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 19.84/8.42 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.84/8.42 new_sr(Neg(xy1010), Neg(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_esEs(xy10, xy90) -> new_primEqInt(xy10, xy90) 19.84/8.42 new_primPlusNat1(Succ(xy4000), Zero) -> Succ(xy4000) 19.84/8.42 new_primPlusNat1(Zero, Succ(xy900000)) -> Succ(xy900000) 19.84/8.42 new_sr(Pos(xy1010), Neg(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_sr(Neg(xy1010), Pos(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_primEqNat0(Succ(xy10000), Zero) -> False 19.84/8.42 new_primEqNat0(Zero, Succ(xy90000)) -> False 19.84/8.42 new_primPlusNat1(Succ(xy4000), Succ(xy900000)) -> Succ(Succ(new_primPlusNat1(xy4000, xy900000))) 19.84/8.42 new_primPlusNat1(Zero, Zero) -> Zero 19.84/8.42 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 19.84/8.42 new_primMulNat0(Succ(xy10100), Zero) -> Zero 19.84/8.42 new_primMulNat0(Zero, Succ(xy90000)) -> Zero 19.84/8.42 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 19.84/8.42 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 19.84/8.42 new_sr(Pos(xy1010), Pos(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_primPlusNat0(Zero, xy90000) -> Succ(xy90000) 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 19.84/8.42 19.84/8.42 The set Q consists of the following terms: 19.84/8.42 19.84/8.42 new_primEqNat0(Zero, Zero) 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Zero)) 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Zero)) 19.84/8.42 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 19.84/8.42 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Zero)) 19.84/8.42 new_primPlusNat1(Succ(x0), Succ(x1)) 19.84/8.42 new_sr(Neg(x0), Neg(x1)) 19.84/8.42 new_primMulNat0(Zero, Succ(x0)) 19.84/8.42 new_primMulNat0(Succ(x0), Succ(x1)) 19.84/8.42 new_primPlusNat1(Succ(x0), Zero) 19.84/8.42 new_primPlusNat0(Zero, x0) 19.84/8.42 new_primEqNat0(Succ(x0), Zero) 19.84/8.42 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 19.84/8.42 new_sr(Pos(x0), Neg(x1)) 19.84/8.42 new_sr(Neg(x0), Pos(x1)) 19.84/8.42 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 19.84/8.42 new_esEs(x0, x1) 19.84/8.42 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 19.84/8.42 new_sr(Pos(x0), Pos(x1)) 19.84/8.42 new_primMulNat0(Zero, Zero) 19.84/8.42 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 19.84/8.42 new_primMulNat0(Succ(x0), Zero) 19.84/8.42 new_primEqNat0(Succ(x0), Succ(x1)) 19.84/8.42 new_primPlusNat0(Succ(x0), x1) 19.84/8.42 new_primPlusNat1(Zero, Zero) 19.84/8.42 new_primPlusNat1(Zero, Succ(x0)) 19.84/8.42 new_primEqFloat(Float(x0, x1), Float(x2, x3)) 19.84/8.42 new_primEqNat0(Zero, Succ(x0)) 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Zero)) 19.84/8.42 19.84/8.42 We have to consider all minimal (P,Q,R)-chains. 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (27) DependencyGraphProof (EQUIVALENT) 19.84/8.42 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (28) 19.84/8.42 Obligation: 19.84/8.42 Q DP problem: 19.84/8.42 The TRS P consists of the following rules: 19.84/8.42 19.84/8.42 new_nubByNubBy'(:(xy3640, xy3641), xy365, xy366) -> new_nubByNubBy'10(xy3640, xy3641, xy365, xy366, :(xy365, xy366)) 19.84/8.42 new_nubByNubBy'10(xy363, xy364, xy365, xy366, :(xy3680, xy3681)) -> new_nubByNubBy'1(xy363, xy364, xy365, xy366, new_primEqFloat(xy3680, xy363), xy3681) 19.84/8.42 new_nubByNubBy'1(xy363, xy364, xy365, xy366, False, []) -> new_nubByNubBy'(xy364, xy363, :(xy365, xy366)) 19.84/8.42 new_nubByNubBy'1(xy363, xy364, xy365, xy366, False, :(xy3680, xy3681)) -> new_nubByNubBy'1(xy363, xy364, xy365, xy366, new_primEqFloat(xy3680, xy363), xy3681) 19.84/8.42 new_nubByNubBy'1(xy363, :(xy3640, xy3641), xy365, xy366, True, xy368) -> new_nubByNubBy'10(xy3640, xy3641, xy365, xy366, :(xy365, xy366)) 19.84/8.42 19.84/8.42 The TRS R consists of the following rules: 19.84/8.42 19.84/8.42 new_primEqFloat(Float(xy100, xy101), Float(xy900, xy901)) -> new_esEs(new_sr(xy100, xy901), new_sr(xy101, xy900)) 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 19.84/8.42 new_primEqNat0(Zero, Zero) -> True 19.84/8.42 new_primMulNat0(Zero, Zero) -> Zero 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 19.84/8.42 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.84/8.42 new_primMulNat0(Succ(xy10100), Succ(xy90000)) -> new_primPlusNat0(new_primMulNat0(xy10100, Succ(xy90000)), xy90000) 19.84/8.42 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 19.84/8.42 new_primPlusNat0(Succ(xy400), xy90000) -> Succ(Succ(new_primPlusNat1(xy400, xy90000))) 19.84/8.42 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 19.84/8.42 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.84/8.42 new_sr(Neg(xy1010), Neg(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_esEs(xy10, xy90) -> new_primEqInt(xy10, xy90) 19.84/8.42 new_primPlusNat1(Succ(xy4000), Zero) -> Succ(xy4000) 19.84/8.42 new_primPlusNat1(Zero, Succ(xy900000)) -> Succ(xy900000) 19.84/8.42 new_sr(Pos(xy1010), Neg(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_sr(Neg(xy1010), Pos(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_primEqNat0(Succ(xy10000), Zero) -> False 19.84/8.42 new_primEqNat0(Zero, Succ(xy90000)) -> False 19.84/8.42 new_primPlusNat1(Succ(xy4000), Succ(xy900000)) -> Succ(Succ(new_primPlusNat1(xy4000, xy900000))) 19.84/8.42 new_primPlusNat1(Zero, Zero) -> Zero 19.84/8.42 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 19.84/8.42 new_primMulNat0(Succ(xy10100), Zero) -> Zero 19.84/8.42 new_primMulNat0(Zero, Succ(xy90000)) -> Zero 19.84/8.42 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 19.84/8.42 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 19.84/8.42 new_sr(Pos(xy1010), Pos(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_primPlusNat0(Zero, xy90000) -> Succ(xy90000) 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 19.84/8.42 19.84/8.42 The set Q consists of the following terms: 19.84/8.42 19.84/8.42 new_primEqNat0(Zero, Zero) 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Zero)) 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Zero)) 19.84/8.42 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 19.84/8.42 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Zero)) 19.84/8.42 new_primPlusNat1(Succ(x0), Succ(x1)) 19.84/8.42 new_sr(Neg(x0), Neg(x1)) 19.84/8.42 new_primMulNat0(Zero, Succ(x0)) 19.84/8.42 new_primMulNat0(Succ(x0), Succ(x1)) 19.84/8.42 new_primPlusNat1(Succ(x0), Zero) 19.84/8.42 new_primPlusNat0(Zero, x0) 19.84/8.42 new_primEqNat0(Succ(x0), Zero) 19.84/8.42 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 19.84/8.42 new_sr(Pos(x0), Neg(x1)) 19.84/8.42 new_sr(Neg(x0), Pos(x1)) 19.84/8.42 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 19.84/8.42 new_esEs(x0, x1) 19.84/8.42 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 19.84/8.42 new_sr(Pos(x0), Pos(x1)) 19.84/8.42 new_primMulNat0(Zero, Zero) 19.84/8.42 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 19.84/8.42 new_primMulNat0(Succ(x0), Zero) 19.84/8.42 new_primEqNat0(Succ(x0), Succ(x1)) 19.84/8.42 new_primPlusNat0(Succ(x0), x1) 19.84/8.42 new_primPlusNat1(Zero, Zero) 19.84/8.42 new_primPlusNat1(Zero, Succ(x0)) 19.84/8.42 new_primEqFloat(Float(x0, x1), Float(x2, x3)) 19.84/8.42 new_primEqNat0(Zero, Succ(x0)) 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Zero)) 19.84/8.42 19.84/8.42 We have to consider all minimal (P,Q,R)-chains. 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (29) TransformationProof (EQUIVALENT) 19.84/8.42 By instantiating [LPAR04] the rule new_nubByNubBy'10(xy363, xy364, xy365, xy366, :(xy3680, xy3681)) -> new_nubByNubBy'1(xy363, xy364, xy365, xy366, new_primEqFloat(xy3680, xy363), xy3681) we obtained the following new rules [LPAR04]: 19.84/8.42 19.84/8.42 (new_nubByNubBy'10(z0, z1, z2, z3, :(z2, z3)) -> new_nubByNubBy'1(z0, z1, z2, z3, new_primEqFloat(z2, z0), z3),new_nubByNubBy'10(z0, z1, z2, z3, :(z2, z3)) -> new_nubByNubBy'1(z0, z1, z2, z3, new_primEqFloat(z2, z0), z3)) 19.84/8.42 19.84/8.42 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (30) 19.84/8.42 Obligation: 19.84/8.42 Q DP problem: 19.84/8.42 The TRS P consists of the following rules: 19.84/8.42 19.84/8.42 new_nubByNubBy'(:(xy3640, xy3641), xy365, xy366) -> new_nubByNubBy'10(xy3640, xy3641, xy365, xy366, :(xy365, xy366)) 19.84/8.42 new_nubByNubBy'1(xy363, xy364, xy365, xy366, False, []) -> new_nubByNubBy'(xy364, xy363, :(xy365, xy366)) 19.84/8.42 new_nubByNubBy'1(xy363, xy364, xy365, xy366, False, :(xy3680, xy3681)) -> new_nubByNubBy'1(xy363, xy364, xy365, xy366, new_primEqFloat(xy3680, xy363), xy3681) 19.84/8.42 new_nubByNubBy'1(xy363, :(xy3640, xy3641), xy365, xy366, True, xy368) -> new_nubByNubBy'10(xy3640, xy3641, xy365, xy366, :(xy365, xy366)) 19.84/8.42 new_nubByNubBy'10(z0, z1, z2, z3, :(z2, z3)) -> new_nubByNubBy'1(z0, z1, z2, z3, new_primEqFloat(z2, z0), z3) 19.84/8.42 19.84/8.42 The TRS R consists of the following rules: 19.84/8.42 19.84/8.42 new_primEqFloat(Float(xy100, xy101), Float(xy900, xy901)) -> new_esEs(new_sr(xy100, xy901), new_sr(xy101, xy900)) 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Zero)) -> True 19.84/8.42 new_primEqNat0(Zero, Zero) -> True 19.84/8.42 new_primMulNat0(Zero, Zero) -> Zero 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Zero)) -> True 19.84/8.42 new_primEqInt(Neg(Succ(xy1000)), Neg(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.84/8.42 new_primMulNat0(Succ(xy10100), Succ(xy90000)) -> new_primPlusNat0(new_primMulNat0(xy10100, Succ(xy90000)), xy90000) 19.84/8.42 new_primEqInt(Neg(Succ(xy1000)), Neg(Zero)) -> False 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Succ(xy9000))) -> False 19.84/8.42 new_primPlusNat0(Succ(xy400), xy90000) -> Succ(Succ(new_primPlusNat1(xy400, xy90000))) 19.84/8.42 new_primEqInt(Pos(Succ(xy1000)), Pos(Zero)) -> False 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Succ(xy9000))) -> False 19.84/8.42 new_primEqInt(Pos(Succ(xy1000)), Pos(Succ(xy9000))) -> new_primEqNat0(xy1000, xy9000) 19.84/8.42 new_sr(Neg(xy1010), Neg(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_esEs(xy10, xy90) -> new_primEqInt(xy10, xy90) 19.84/8.42 new_primPlusNat1(Succ(xy4000), Zero) -> Succ(xy4000) 19.84/8.42 new_primPlusNat1(Zero, Succ(xy900000)) -> Succ(xy900000) 19.84/8.42 new_sr(Pos(xy1010), Neg(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_sr(Neg(xy1010), Pos(xy9000)) -> Neg(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_primEqNat0(Succ(xy10000), Zero) -> False 19.84/8.42 new_primEqNat0(Zero, Succ(xy90000)) -> False 19.84/8.42 new_primPlusNat1(Succ(xy4000), Succ(xy900000)) -> Succ(Succ(new_primPlusNat1(xy4000, xy900000))) 19.84/8.42 new_primPlusNat1(Zero, Zero) -> Zero 19.84/8.42 new_primEqNat0(Succ(xy10000), Succ(xy90000)) -> new_primEqNat0(xy10000, xy90000) 19.84/8.42 new_primMulNat0(Succ(xy10100), Zero) -> Zero 19.84/8.42 new_primMulNat0(Zero, Succ(xy90000)) -> Zero 19.84/8.42 new_primEqInt(Pos(Succ(xy1000)), Neg(xy900)) -> False 19.84/8.42 new_primEqInt(Neg(Succ(xy1000)), Pos(xy900)) -> False 19.84/8.42 new_sr(Pos(xy1010), Pos(xy9000)) -> Pos(new_primMulNat0(xy1010, xy9000)) 19.84/8.42 new_primPlusNat0(Zero, xy90000) -> Succ(xy90000) 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Succ(xy9000))) -> False 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Succ(xy9000))) -> False 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Zero)) -> True 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Zero)) -> True 19.84/8.42 19.84/8.42 The set Q consists of the following terms: 19.84/8.42 19.84/8.42 new_primEqNat0(Zero, Zero) 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Succ(x0))) 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Zero)) 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Zero)) 19.84/8.42 new_primEqInt(Pos(Succ(x0)), Neg(x1)) 19.84/8.42 new_primEqInt(Neg(Succ(x0)), Pos(x1)) 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Zero)) 19.84/8.42 new_primPlusNat1(Succ(x0), Succ(x1)) 19.84/8.42 new_sr(Neg(x0), Neg(x1)) 19.84/8.42 new_primMulNat0(Zero, Succ(x0)) 19.84/8.42 new_primMulNat0(Succ(x0), Succ(x1)) 19.84/8.42 new_primPlusNat1(Succ(x0), Zero) 19.84/8.42 new_primPlusNat0(Zero, x0) 19.84/8.42 new_primEqNat0(Succ(x0), Zero) 19.84/8.42 new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) 19.84/8.42 new_primEqInt(Pos(Zero), Neg(Succ(x0))) 19.84/8.42 new_primEqInt(Neg(Zero), Pos(Succ(x0))) 19.84/8.42 new_sr(Pos(x0), Neg(x1)) 19.84/8.42 new_sr(Neg(x0), Pos(x1)) 19.84/8.42 new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) 19.84/8.42 new_esEs(x0, x1) 19.84/8.42 new_primEqInt(Pos(Succ(x0)), Pos(Zero)) 19.84/8.42 new_sr(Pos(x0), Pos(x1)) 19.84/8.42 new_primMulNat0(Zero, Zero) 19.84/8.42 new_primEqInt(Neg(Succ(x0)), Neg(Zero)) 19.84/8.42 new_primMulNat0(Succ(x0), Zero) 19.84/8.42 new_primEqNat0(Succ(x0), Succ(x1)) 19.84/8.42 new_primPlusNat0(Succ(x0), x1) 19.84/8.42 new_primPlusNat1(Zero, Zero) 19.84/8.42 new_primPlusNat1(Zero, Succ(x0)) 19.84/8.42 new_primEqFloat(Float(x0, x1), Float(x2, x3)) 19.84/8.42 new_primEqNat0(Zero, Succ(x0)) 19.84/8.42 new_primEqInt(Pos(Zero), Pos(Succ(x0))) 19.84/8.42 new_primEqInt(Neg(Zero), Neg(Zero)) 19.84/8.42 19.84/8.42 We have to consider all minimal (P,Q,R)-chains. 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (31) QDPSizeChangeProof (EQUIVALENT) 19.84/8.42 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. 19.84/8.42 19.84/8.42 From the DPs we obtained the following set of size-change graphs: 19.84/8.42 *new_nubByNubBy'10(z0, z1, z2, z3, :(z2, z3)) -> new_nubByNubBy'1(z0, z1, z2, z3, new_primEqFloat(z2, z0), z3) 19.84/8.42 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 5 > 3, 4 >= 4, 5 > 4, 4 >= 6, 5 > 6 19.84/8.42 19.84/8.42 19.84/8.42 *new_nubByNubBy'1(xy363, xy364, xy365, xy366, False, []) -> new_nubByNubBy'(xy364, xy363, :(xy365, xy366)) 19.84/8.42 The graph contains the following edges 2 >= 1, 1 >= 2 19.84/8.42 19.84/8.42 19.84/8.42 *new_nubByNubBy'(:(xy3640, xy3641), xy365, xy366) -> new_nubByNubBy'10(xy3640, xy3641, xy365, xy366, :(xy365, xy366)) 19.84/8.42 The graph contains the following edges 1 > 1, 1 > 2, 2 >= 3, 3 >= 4 19.84/8.42 19.84/8.42 19.84/8.42 *new_nubByNubBy'1(xy363, xy364, xy365, xy366, False, :(xy3680, xy3681)) -> new_nubByNubBy'1(xy363, xy364, xy365, xy366, new_primEqFloat(xy3680, xy363), xy3681) 19.84/8.42 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 6 > 6 19.84/8.42 19.84/8.42 19.84/8.42 *new_nubByNubBy'1(xy363, :(xy3640, xy3641), xy365, xy366, True, xy368) -> new_nubByNubBy'10(xy3640, xy3641, xy365, xy366, :(xy365, xy366)) 19.84/8.42 The graph contains the following edges 2 > 1, 2 > 2, 3 >= 3, 4 >= 4 19.84/8.42 19.84/8.42 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (32) 19.84/8.42 YES 19.84/8.42 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (33) 19.84/8.42 Obligation: 19.84/8.42 Q DP problem: 19.84/8.42 The TRS P consists of the following rules: 19.84/8.42 19.84/8.42 new_primMulNat(Succ(xy10100), Succ(xy90000)) -> new_primMulNat(xy10100, Succ(xy90000)) 19.84/8.42 19.84/8.42 R is empty. 19.84/8.42 Q is empty. 19.84/8.42 We have to consider all minimal (P,Q,R)-chains. 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (34) QDPSizeChangeProof (EQUIVALENT) 19.84/8.42 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. 19.84/8.42 19.84/8.42 From the DPs we obtained the following set of size-change graphs: 19.84/8.42 *new_primMulNat(Succ(xy10100), Succ(xy90000)) -> new_primMulNat(xy10100, Succ(xy90000)) 19.84/8.42 The graph contains the following edges 1 > 1, 2 >= 2 19.84/8.42 19.84/8.42 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (35) 19.84/8.42 YES 19.84/8.42 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (36) 19.84/8.42 Obligation: 19.84/8.42 Q DP problem: 19.84/8.42 The TRS P consists of the following rules: 19.84/8.42 19.84/8.42 new_primPlusNat(Succ(xy4000), Succ(xy900000)) -> new_primPlusNat(xy4000, xy900000) 19.84/8.42 19.84/8.42 R is empty. 19.84/8.42 Q is empty. 19.84/8.42 We have to consider all minimal (P,Q,R)-chains. 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (37) QDPSizeChangeProof (EQUIVALENT) 19.84/8.42 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. 19.84/8.42 19.84/8.42 From the DPs we obtained the following set of size-change graphs: 19.84/8.42 *new_primPlusNat(Succ(xy4000), Succ(xy900000)) -> new_primPlusNat(xy4000, xy900000) 19.84/8.42 The graph contains the following edges 1 > 1, 2 > 2 19.84/8.42 19.84/8.42 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (38) 19.84/8.42 YES 19.84/8.42 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (39) 19.84/8.42 Obligation: 19.84/8.42 Q DP problem: 19.84/8.42 The TRS P consists of the following rules: 19.84/8.42 19.84/8.42 new_primEqNat(Succ(xy10000), Succ(xy90000)) -> new_primEqNat(xy10000, xy90000) 19.84/8.42 19.84/8.42 R is empty. 19.84/8.42 Q is empty. 19.84/8.42 We have to consider all minimal (P,Q,R)-chains. 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (40) QDPSizeChangeProof (EQUIVALENT) 19.84/8.42 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. 19.84/8.42 19.84/8.42 From the DPs we obtained the following set of size-change graphs: 19.84/8.42 *new_primEqNat(Succ(xy10000), Succ(xy90000)) -> new_primEqNat(xy10000, xy90000) 19.84/8.42 The graph contains the following edges 1 > 1, 2 > 2 19.84/8.42 19.84/8.42 19.84/8.42 ---------------------------------------- 19.84/8.42 19.84/8.42 (41) 19.84/8.42 YES 19.87/8.45 EOF