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