11.02/4.58 YES 13.52/5.26 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 13.52/5.26 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 13.52/5.26 13.52/5.26 13.52/5.26 H-Termination with start terms of the given HASKELL could be proven: 13.52/5.26 13.52/5.26 (0) HASKELL 13.52/5.26 (1) LR [EQUIVALENT, 0 ms] 13.52/5.26 (2) HASKELL 13.52/5.26 (3) CR [EQUIVALENT, 0 ms] 13.52/5.26 (4) HASKELL 13.52/5.26 (5) IFR [EQUIVALENT, 0 ms] 13.52/5.26 (6) HASKELL 13.52/5.26 (7) BR [EQUIVALENT, 0 ms] 13.52/5.26 (8) HASKELL 13.52/5.26 (9) COR [EQUIVALENT, 20 ms] 13.52/5.26 (10) HASKELL 13.52/5.26 (11) Narrow [SOUND, 0 ms] 13.52/5.26 (12) AND 13.52/5.26 (13) QDP 13.52/5.26 (14) DependencyGraphProof [EQUIVALENT, 0 ms] 13.52/5.26 (15) AND 13.52/5.26 (16) QDP 13.52/5.26 (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] 13.52/5.26 (18) YES 13.52/5.26 (19) QDP 13.52/5.26 (20) QDPSizeChangeProof [EQUIVALENT, 0 ms] 13.52/5.26 (21) YES 13.52/5.26 (22) QDP 13.52/5.26 (23) QDPSizeChangeProof [EQUIVALENT, 0 ms] 13.52/5.26 (24) YES 13.52/5.26 (25) QDP 13.52/5.26 (26) QDPSizeChangeProof [EQUIVALENT, 0 ms] 13.52/5.26 (27) YES 13.52/5.26 (28) QDP 13.52/5.26 (29) QDPSizeChangeProof [EQUIVALENT, 0 ms] 13.52/5.26 (30) YES 13.52/5.26 13.52/5.26 13.52/5.26 ---------------------------------------- 13.52/5.26 13.52/5.26 (0) 13.52/5.26 Obligation: 13.52/5.26 mainModule Main 13.52/5.26 module Maybe where { 13.52/5.26 import qualified List; 13.52/5.26 import qualified Main; 13.52/5.26 import qualified Prelude; 13.52/5.26 } 13.52/5.26 module List where { 13.52/5.26 import qualified Main; 13.52/5.26 import qualified Maybe; 13.52/5.26 import qualified Prelude; 13.52/5.26 intersect :: Eq a => [a] -> [a] -> [a]; 13.52/5.26 intersect = intersectBy (==); 13.52/5.26 13.52/5.26 intersectBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 13.52/5.26 intersectBy eq xs ys = concatMap (\vv2 ->case vv2 of { 13.52/5.26 x-> if any (eq x) ys then x : [] else []; 13.52/5.26 _-> []; 13.52/5.26 } ) xs; 13.52/5.26 13.52/5.26 } 13.52/5.26 module Main where { 13.52/5.26 import qualified List; 13.52/5.26 import qualified Maybe; 13.52/5.26 import qualified Prelude; 13.52/5.26 } 13.52/5.26 13.52/5.26 ---------------------------------------- 13.52/5.26 13.52/5.26 (1) LR (EQUIVALENT) 13.52/5.26 Lambda Reductions: 13.52/5.26 The following Lambda expression 13.52/5.26 "\vv2->case vv2 of { 13.52/5.26 x -> if any (eq x) ys then x : [] else []; 13.52/5.26 _ -> []} 13.52/5.26 " 13.52/5.26 is transformed to 13.52/5.26 "intersectBy0 eq ys vv2 = case vv2 of { 13.52/5.26 x -> if any (eq x) ys then x : [] else []; 13.52/5.26 _ -> []} 13.52/5.26 ; 13.52/5.26 " 13.52/5.26 13.52/5.26 ---------------------------------------- 13.52/5.26 13.52/5.26 (2) 13.52/5.26 Obligation: 13.52/5.26 mainModule Main 13.52/5.26 module Maybe where { 13.52/5.26 import qualified List; 13.52/5.26 import qualified Main; 13.52/5.26 import qualified Prelude; 13.52/5.26 } 13.52/5.26 module List where { 13.52/5.26 import qualified Main; 13.52/5.26 import qualified Maybe; 13.52/5.26 import qualified Prelude; 13.52/5.26 intersect :: Eq a => [a] -> [a] -> [a]; 13.52/5.26 intersect = intersectBy (==); 13.52/5.26 13.52/5.26 intersectBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 13.52/5.26 intersectBy eq xs ys = concatMap (intersectBy0 eq ys) xs; 13.52/5.26 13.52/5.26 intersectBy0 eq ys vv2 = case vv2 of { 13.52/5.26 x-> if any (eq x) ys then x : [] else []; 13.52/5.26 _-> []; 13.52/5.26 } ; 13.52/5.26 13.52/5.26 } 13.52/5.26 module Main where { 13.52/5.26 import qualified List; 13.52/5.26 import qualified Maybe; 13.52/5.26 import qualified Prelude; 13.52/5.26 } 13.52/5.26 13.52/5.26 ---------------------------------------- 13.52/5.26 13.52/5.26 (3) CR (EQUIVALENT) 13.52/5.26 Case Reductions: 13.52/5.26 The following Case expression 13.52/5.26 "case vv2 of { 13.52/5.26 x -> if any (eq x) ys then x : [] else []; 13.52/5.26 _ -> []} 13.52/5.26 " 13.52/5.26 is transformed to 13.52/5.26 "intersectBy00 eq ys x = if any (eq x) ys then x : [] else []; 13.52/5.26 intersectBy00 eq ys _ = []; 13.52/5.26 " 13.52/5.26 13.52/5.26 ---------------------------------------- 13.52/5.26 13.52/5.26 (4) 13.52/5.26 Obligation: 13.52/5.26 mainModule Main 13.52/5.26 module Maybe where { 13.52/5.26 import qualified List; 13.52/5.26 import qualified Main; 13.52/5.26 import qualified Prelude; 13.52/5.26 } 13.52/5.26 module List where { 13.52/5.26 import qualified Main; 13.52/5.26 import qualified Maybe; 13.52/5.26 import qualified Prelude; 13.52/5.26 intersect :: Eq a => [a] -> [a] -> [a]; 13.52/5.26 intersect = intersectBy (==); 13.52/5.26 13.52/5.26 intersectBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 13.52/5.26 intersectBy eq xs ys = concatMap (intersectBy0 eq ys) xs; 13.52/5.26 13.52/5.26 intersectBy0 eq ys vv2 = intersectBy00 eq ys vv2; 13.52/5.26 13.52/5.26 intersectBy00 eq ys x = if any (eq x) ys then x : [] else []; 13.52/5.26 intersectBy00 eq ys _ = []; 13.52/5.26 13.52/5.26 } 13.52/5.26 module Main where { 13.52/5.26 import qualified List; 13.52/5.26 import qualified Maybe; 13.52/5.26 import qualified Prelude; 13.52/5.26 } 13.52/5.26 13.52/5.26 ---------------------------------------- 13.52/5.26 13.52/5.26 (5) IFR (EQUIVALENT) 13.52/5.26 If Reductions: 13.52/5.26 The following If expression 13.52/5.26 "if any (eq x) ys then x : [] else []" 13.52/5.26 is transformed to 13.52/5.26 "intersectBy000 x True = x : []; 13.52/5.26 intersectBy000 x False = []; 13.52/5.26 " 13.52/5.26 13.52/5.26 ---------------------------------------- 13.52/5.26 13.52/5.26 (6) 13.52/5.26 Obligation: 13.52/5.26 mainModule Main 13.52/5.26 module Maybe where { 13.52/5.26 import qualified List; 13.52/5.26 import qualified Main; 13.52/5.26 import qualified Prelude; 13.52/5.26 } 13.52/5.26 module List where { 13.52/5.26 import qualified Main; 13.52/5.26 import qualified Maybe; 13.52/5.26 import qualified Prelude; 13.52/5.26 intersect :: Eq a => [a] -> [a] -> [a]; 13.52/5.26 intersect = intersectBy (==); 13.52/5.26 13.52/5.26 intersectBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 13.52/5.26 intersectBy eq xs ys = concatMap (intersectBy0 eq ys) xs; 13.52/5.26 13.52/5.26 intersectBy0 eq ys vv2 = intersectBy00 eq ys vv2; 13.52/5.26 13.52/5.26 intersectBy00 eq ys x = intersectBy000 x (any (eq x) ys); 13.52/5.26 intersectBy00 eq ys _ = []; 13.52/5.26 13.52/5.26 intersectBy000 x True = x : []; 13.52/5.26 intersectBy000 x False = []; 13.52/5.26 13.52/5.26 } 13.52/5.26 module Main where { 13.52/5.26 import qualified List; 13.52/5.26 import qualified Maybe; 13.52/5.26 import qualified Prelude; 13.52/5.26 } 13.52/5.26 13.52/5.26 ---------------------------------------- 13.52/5.26 13.52/5.26 (7) BR (EQUIVALENT) 13.52/5.26 Replaced joker patterns by fresh variables and removed binding patterns. 13.52/5.26 ---------------------------------------- 13.52/5.26 13.52/5.26 (8) 13.52/5.26 Obligation: 13.52/5.26 mainModule Main 13.52/5.26 module Maybe where { 13.52/5.26 import qualified List; 13.52/5.26 import qualified Main; 13.52/5.26 import qualified Prelude; 13.52/5.26 } 13.52/5.26 module List where { 13.52/5.26 import qualified Main; 13.52/5.26 import qualified Maybe; 13.52/5.26 import qualified Prelude; 13.52/5.26 intersect :: Eq a => [a] -> [a] -> [a]; 13.52/5.26 intersect = intersectBy (==); 13.52/5.26 13.52/5.26 intersectBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 13.52/5.26 intersectBy eq xs ys = concatMap (intersectBy0 eq ys) xs; 13.52/5.26 13.52/5.26 intersectBy0 eq ys vv2 = intersectBy00 eq ys vv2; 13.52/5.26 13.52/5.26 intersectBy00 eq ys x = intersectBy000 x (any (eq x) ys); 13.52/5.26 intersectBy00 eq ys wu = []; 13.52/5.26 13.52/5.26 intersectBy000 x True = x : []; 13.52/5.26 intersectBy000 x False = []; 13.52/5.26 13.52/5.26 } 13.52/5.26 module Main where { 13.52/5.26 import qualified List; 13.52/5.26 import qualified Maybe; 13.52/5.26 import qualified Prelude; 13.52/5.26 } 13.52/5.26 13.52/5.26 ---------------------------------------- 13.52/5.26 13.52/5.26 (9) COR (EQUIVALENT) 13.52/5.26 Cond Reductions: 13.52/5.26 The following Function with conditions 13.52/5.26 "undefined |Falseundefined; 13.52/5.26 " 13.52/5.26 is transformed to 13.52/5.26 "undefined = undefined1; 13.52/5.26 " 13.52/5.26 "undefined0 True = undefined; 13.52/5.26 " 13.52/5.26 "undefined1 = undefined0 False; 13.52/5.26 " 13.52/5.26 13.52/5.26 ---------------------------------------- 13.52/5.26 13.52/5.26 (10) 13.52/5.26 Obligation: 13.52/5.26 mainModule Main 13.52/5.26 module Maybe where { 13.52/5.26 import qualified List; 13.52/5.26 import qualified Main; 13.52/5.26 import qualified Prelude; 13.52/5.26 } 13.52/5.26 module List where { 13.52/5.26 import qualified Main; 13.52/5.26 import qualified Maybe; 13.52/5.26 import qualified Prelude; 13.52/5.26 intersect :: Eq a => [a] -> [a] -> [a]; 13.52/5.26 intersect = intersectBy (==); 13.52/5.26 13.52/5.26 intersectBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]; 13.52/5.27 intersectBy eq xs ys = concatMap (intersectBy0 eq ys) xs; 13.52/5.27 13.52/5.27 intersectBy0 eq ys vv2 = intersectBy00 eq ys vv2; 13.52/5.27 13.52/5.27 intersectBy00 eq ys x = intersectBy000 x (any (eq x) ys); 13.52/5.27 intersectBy00 eq ys wu = []; 13.52/5.27 13.52/5.27 intersectBy000 x True = x : []; 13.52/5.27 intersectBy000 x False = []; 13.52/5.27 13.52/5.27 } 13.52/5.27 module Main where { 13.52/5.27 import qualified List; 13.52/5.27 import qualified Maybe; 13.52/5.27 import qualified Prelude; 13.52/5.27 } 13.52/5.27 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (11) Narrow (SOUND) 13.52/5.27 Haskell To QDPs 13.52/5.27 13.52/5.27 digraph dp_graph { 13.52/5.27 node [outthreshold=100, inthreshold=100];1[label="List.intersect",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 13.52/5.27 3[label="List.intersect wv3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 13.52/5.27 4[label="List.intersect wv3 wv4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 13.52/5.27 5[label="List.intersectBy (==) wv3 wv4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 13.52/5.27 6[label="concatMap (List.intersectBy0 (==) wv4) wv3",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 13.52/5.27 7[label="concat . map (List.intersectBy0 (==) wv4)",fontsize=16,color="black",shape="box"];7 -> 8[label="",style="solid", color="black", weight=3]; 13.52/5.27 8[label="concat (map (List.intersectBy0 (==) wv4) wv3)",fontsize=16,color="black",shape="box"];8 -> 9[label="",style="solid", color="black", weight=3]; 13.52/5.27 9[label="foldr (++) [] (map (List.intersectBy0 (==) wv4) wv3)",fontsize=16,color="burlywood",shape="triangle"];526[label="wv3/wv30 : wv31",fontsize=10,color="white",style="solid",shape="box"];9 -> 526[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 526 -> 10[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 527[label="wv3/[]",fontsize=10,color="white",style="solid",shape="box"];9 -> 527[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 527 -> 11[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 10[label="foldr (++) [] (map (List.intersectBy0 (==) wv4) (wv30 : wv31))",fontsize=16,color="black",shape="box"];10 -> 12[label="",style="solid", color="black", weight=3]; 13.52/5.27 11[label="foldr (++) [] (map (List.intersectBy0 (==) wv4) [])",fontsize=16,color="black",shape="box"];11 -> 13[label="",style="solid", color="black", weight=3]; 13.52/5.27 12[label="foldr (++) [] (List.intersectBy0 (==) wv4 wv30 : map (List.intersectBy0 (==) wv4) wv31)",fontsize=16,color="black",shape="box"];12 -> 14[label="",style="solid", color="black", weight=3]; 13.52/5.27 13[label="foldr (++) [] []",fontsize=16,color="black",shape="box"];13 -> 15[label="",style="solid", color="black", weight=3]; 13.52/5.27 14 -> 16[label="",style="dashed", color="red", weight=0]; 13.52/5.27 14[label="(++) List.intersectBy0 (==) wv4 wv30 foldr (++) [] (map (List.intersectBy0 (==) wv4) wv31)",fontsize=16,color="magenta"];14 -> 17[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 15[label="[]",fontsize=16,color="green",shape="box"];17 -> 9[label="",style="dashed", color="red", weight=0]; 13.52/5.27 17[label="foldr (++) [] (map (List.intersectBy0 (==) wv4) wv31)",fontsize=16,color="magenta"];17 -> 18[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 16[label="(++) List.intersectBy0 (==) wv4 wv30 wv5",fontsize=16,color="black",shape="triangle"];16 -> 19[label="",style="solid", color="black", weight=3]; 13.52/5.27 18[label="wv31",fontsize=16,color="green",shape="box"];19[label="(++) List.intersectBy00 (==) wv4 wv30 wv5",fontsize=16,color="black",shape="box"];19 -> 20[label="",style="solid", color="black", weight=3]; 13.52/5.27 20[label="(++) List.intersectBy000 wv30 (any ((==) wv30) wv4) wv5",fontsize=16,color="black",shape="box"];20 -> 21[label="",style="solid", color="black", weight=3]; 13.52/5.27 21[label="(++) List.intersectBy000 wv30 (or . map ((==) wv30)) wv5",fontsize=16,color="black",shape="box"];21 -> 22[label="",style="solid", color="black", weight=3]; 13.52/5.27 22[label="(++) List.intersectBy000 wv30 (or (map ((==) wv30) wv4)) wv5",fontsize=16,color="black",shape="box"];22 -> 23[label="",style="solid", color="black", weight=3]; 13.52/5.27 23[label="(++) List.intersectBy000 wv30 (foldr (||) False (map ((==) wv30) wv4)) wv5",fontsize=16,color="burlywood",shape="box"];528[label="wv4/wv40 : wv41",fontsize=10,color="white",style="solid",shape="box"];23 -> 528[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 528 -> 24[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 529[label="wv4/[]",fontsize=10,color="white",style="solid",shape="box"];23 -> 529[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 529 -> 25[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 24[label="(++) List.intersectBy000 wv30 (foldr (||) False (map ((==) wv30) (wv40 : wv41))) wv5",fontsize=16,color="black",shape="box"];24 -> 26[label="",style="solid", color="black", weight=3]; 13.52/5.27 25[label="(++) List.intersectBy000 wv30 (foldr (||) False (map ((==) wv30) [])) wv5",fontsize=16,color="black",shape="box"];25 -> 27[label="",style="solid", color="black", weight=3]; 13.52/5.27 26[label="(++) List.intersectBy000 wv30 (foldr (||) False (((==) wv30 wv40) : map ((==) wv30) wv41)) wv5",fontsize=16,color="black",shape="box"];26 -> 28[label="",style="solid", color="black", weight=3]; 13.52/5.27 27[label="(++) List.intersectBy000 wv30 (foldr (||) False []) wv5",fontsize=16,color="black",shape="triangle"];27 -> 29[label="",style="solid", color="black", weight=3]; 13.52/5.27 28[label="(++) List.intersectBy000 wv30 ((||) (==) wv30 wv40 foldr (||) False (map ((==) wv30) wv41)) wv5",fontsize=16,color="black",shape="box"];28 -> 30[label="",style="solid", color="black", weight=3]; 13.52/5.27 29[label="(++) List.intersectBy000 wv30 False wv5",fontsize=16,color="black",shape="box"];29 -> 31[label="",style="solid", color="black", weight=3]; 13.52/5.27 30[label="(++) List.intersectBy000 wv30 ((||) primEqInt wv30 wv40 foldr (||) False (map (primEqInt wv30) wv41)) wv5",fontsize=16,color="burlywood",shape="triangle"];530[label="wv30/Pos wv300",fontsize=10,color="white",style="solid",shape="box"];30 -> 530[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 530 -> 32[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 531[label="wv30/Neg wv300",fontsize=10,color="white",style="solid",shape="box"];30 -> 531[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 531 -> 33[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 31[label="(++) [] wv5",fontsize=16,color="black",shape="triangle"];31 -> 34[label="",style="solid", color="black", weight=3]; 13.52/5.27 32[label="(++) List.intersectBy000 (Pos wv300) ((||) primEqInt (Pos wv300) wv40 foldr (||) False (map (primEqInt (Pos wv300)) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];532[label="wv300/Succ wv3000",fontsize=10,color="white",style="solid",shape="box"];32 -> 532[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 532 -> 35[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 533[label="wv300/Zero",fontsize=10,color="white",style="solid",shape="box"];32 -> 533[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 533 -> 36[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 33[label="(++) List.intersectBy000 (Neg wv300) ((||) primEqInt (Neg wv300) wv40 foldr (||) False (map (primEqInt (Neg wv300)) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];534[label="wv300/Succ wv3000",fontsize=10,color="white",style="solid",shape="box"];33 -> 534[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 534 -> 37[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 535[label="wv300/Zero",fontsize=10,color="white",style="solid",shape="box"];33 -> 535[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 535 -> 38[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 34[label="wv5",fontsize=16,color="green",shape="box"];35[label="(++) List.intersectBy000 (Pos (Succ wv3000)) ((||) primEqInt (Pos (Succ wv3000)) wv40 foldr (||) False (map (primEqInt (Pos (Succ wv3000))) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];536[label="wv40/Pos wv400",fontsize=10,color="white",style="solid",shape="box"];35 -> 536[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 536 -> 39[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 537[label="wv40/Neg wv400",fontsize=10,color="white",style="solid",shape="box"];35 -> 537[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 537 -> 40[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 36[label="(++) List.intersectBy000 (Pos Zero) ((||) primEqInt (Pos Zero) wv40 foldr (||) False (map (primEqInt (Pos Zero)) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];538[label="wv40/Pos wv400",fontsize=10,color="white",style="solid",shape="box"];36 -> 538[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 538 -> 41[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 539[label="wv40/Neg wv400",fontsize=10,color="white",style="solid",shape="box"];36 -> 539[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 539 -> 42[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 37[label="(++) List.intersectBy000 (Neg (Succ wv3000)) ((||) primEqInt (Neg (Succ wv3000)) wv40 foldr (||) False (map (primEqInt (Neg (Succ wv3000))) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];540[label="wv40/Pos wv400",fontsize=10,color="white",style="solid",shape="box"];37 -> 540[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 540 -> 43[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 541[label="wv40/Neg wv400",fontsize=10,color="white",style="solid",shape="box"];37 -> 541[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 541 -> 44[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 38[label="(++) List.intersectBy000 (Neg Zero) ((||) primEqInt (Neg Zero) wv40 foldr (||) False (map (primEqInt (Neg Zero)) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];542[label="wv40/Pos wv400",fontsize=10,color="white",style="solid",shape="box"];38 -> 542[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 542 -> 45[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 543[label="wv40/Neg wv400",fontsize=10,color="white",style="solid",shape="box"];38 -> 543[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 543 -> 46[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 39[label="(++) List.intersectBy000 (Pos (Succ wv3000)) ((||) primEqInt (Pos (Succ wv3000)) (Pos wv400) foldr (||) False (map (primEqInt (Pos (Succ wv3000))) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];544[label="wv400/Succ wv4000",fontsize=10,color="white",style="solid",shape="box"];39 -> 544[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 544 -> 47[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 545[label="wv400/Zero",fontsize=10,color="white",style="solid",shape="box"];39 -> 545[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 545 -> 48[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 40[label="(++) List.intersectBy000 (Pos (Succ wv3000)) ((||) primEqInt (Pos (Succ wv3000)) (Neg wv400) foldr (||) False (map (primEqInt (Pos (Succ wv3000))) wv41)) wv5",fontsize=16,color="black",shape="box"];40 -> 49[label="",style="solid", color="black", weight=3]; 13.52/5.27 41[label="(++) List.intersectBy000 (Pos Zero) ((||) primEqInt (Pos Zero) (Pos wv400) foldr (||) False (map (primEqInt (Pos Zero)) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];546[label="wv400/Succ wv4000",fontsize=10,color="white",style="solid",shape="box"];41 -> 546[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 546 -> 50[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 547[label="wv400/Zero",fontsize=10,color="white",style="solid",shape="box"];41 -> 547[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 547 -> 51[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 42[label="(++) List.intersectBy000 (Pos Zero) ((||) primEqInt (Pos Zero) (Neg wv400) foldr (||) False (map (primEqInt (Pos Zero)) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];548[label="wv400/Succ wv4000",fontsize=10,color="white",style="solid",shape="box"];42 -> 548[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 548 -> 52[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 549[label="wv400/Zero",fontsize=10,color="white",style="solid",shape="box"];42 -> 549[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 549 -> 53[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 43[label="(++) List.intersectBy000 (Neg (Succ wv3000)) ((||) primEqInt (Neg (Succ wv3000)) (Pos wv400) foldr (||) False (map (primEqInt (Neg (Succ wv3000))) wv41)) wv5",fontsize=16,color="black",shape="box"];43 -> 54[label="",style="solid", color="black", weight=3]; 13.52/5.27 44[label="(++) List.intersectBy000 (Neg (Succ wv3000)) ((||) primEqInt (Neg (Succ wv3000)) (Neg wv400) foldr (||) False (map (primEqInt (Neg (Succ wv3000))) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];550[label="wv400/Succ wv4000",fontsize=10,color="white",style="solid",shape="box"];44 -> 550[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 550 -> 55[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 551[label="wv400/Zero",fontsize=10,color="white",style="solid",shape="box"];44 -> 551[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 551 -> 56[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 45[label="(++) List.intersectBy000 (Neg Zero) ((||) primEqInt (Neg Zero) (Pos wv400) foldr (||) False (map (primEqInt (Neg Zero)) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];552[label="wv400/Succ wv4000",fontsize=10,color="white",style="solid",shape="box"];45 -> 552[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 552 -> 57[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 553[label="wv400/Zero",fontsize=10,color="white",style="solid",shape="box"];45 -> 553[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 553 -> 58[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 46[label="(++) List.intersectBy000 (Neg Zero) ((||) primEqInt (Neg Zero) (Neg wv400) foldr (||) False (map (primEqInt (Neg Zero)) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];554[label="wv400/Succ wv4000",fontsize=10,color="white",style="solid",shape="box"];46 -> 554[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 554 -> 59[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 555[label="wv400/Zero",fontsize=10,color="white",style="solid",shape="box"];46 -> 555[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 555 -> 60[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 47[label="(++) List.intersectBy000 (Pos (Succ wv3000)) ((||) primEqInt (Pos (Succ wv3000)) (Pos (Succ wv4000)) foldr (||) False (map (primEqInt (Pos (Succ wv3000))) wv41)) wv5",fontsize=16,color="black",shape="box"];47 -> 61[label="",style="solid", color="black", weight=3]; 13.52/5.27 48[label="(++) List.intersectBy000 (Pos (Succ wv3000)) ((||) primEqInt (Pos (Succ wv3000)) (Pos Zero) foldr (||) False (map (primEqInt (Pos (Succ wv3000))) wv41)) wv5",fontsize=16,color="black",shape="box"];48 -> 62[label="",style="solid", color="black", weight=3]; 13.52/5.27 49[label="(++) List.intersectBy000 (Pos (Succ wv3000)) ((||) False foldr (||) False (map (primEqInt (Pos (Succ wv3000))) wv41)) wv5",fontsize=16,color="black",shape="triangle"];49 -> 63[label="",style="solid", color="black", weight=3]; 13.52/5.27 50[label="(++) List.intersectBy000 (Pos Zero) ((||) primEqInt (Pos Zero) (Pos (Succ wv4000)) foldr (||) False (map (primEqInt (Pos Zero)) wv41)) wv5",fontsize=16,color="black",shape="box"];50 -> 64[label="",style="solid", color="black", weight=3]; 13.52/5.27 51[label="(++) List.intersectBy000 (Pos Zero) ((||) primEqInt (Pos Zero) (Pos Zero) foldr (||) False (map (primEqInt (Pos Zero)) wv41)) wv5",fontsize=16,color="black",shape="box"];51 -> 65[label="",style="solid", color="black", weight=3]; 13.52/5.27 52[label="(++) List.intersectBy000 (Pos Zero) ((||) primEqInt (Pos Zero) (Neg (Succ wv4000)) foldr (||) False (map (primEqInt (Pos Zero)) wv41)) wv5",fontsize=16,color="black",shape="box"];52 -> 66[label="",style="solid", color="black", weight=3]; 13.52/5.27 53[label="(++) List.intersectBy000 (Pos Zero) ((||) primEqInt (Pos Zero) (Neg Zero) foldr (||) False (map (primEqInt (Pos Zero)) wv41)) wv5",fontsize=16,color="black",shape="box"];53 -> 67[label="",style="solid", color="black", weight=3]; 13.52/5.27 54[label="(++) List.intersectBy000 (Neg (Succ wv3000)) ((||) False foldr (||) False (map (primEqInt (Neg (Succ wv3000))) wv41)) wv5",fontsize=16,color="black",shape="triangle"];54 -> 68[label="",style="solid", color="black", weight=3]; 13.52/5.27 55[label="(++) List.intersectBy000 (Neg (Succ wv3000)) ((||) primEqInt (Neg (Succ wv3000)) (Neg (Succ wv4000)) foldr (||) False (map (primEqInt (Neg (Succ wv3000))) wv41)) wv5",fontsize=16,color="black",shape="box"];55 -> 69[label="",style="solid", color="black", weight=3]; 13.52/5.27 56[label="(++) List.intersectBy000 (Neg (Succ wv3000)) ((||) primEqInt (Neg (Succ wv3000)) (Neg Zero) foldr (||) False (map (primEqInt (Neg (Succ wv3000))) wv41)) wv5",fontsize=16,color="black",shape="box"];56 -> 70[label="",style="solid", color="black", weight=3]; 13.52/5.27 57[label="(++) List.intersectBy000 (Neg Zero) ((||) primEqInt (Neg Zero) (Pos (Succ wv4000)) foldr (||) False (map (primEqInt (Neg Zero)) wv41)) wv5",fontsize=16,color="black",shape="box"];57 -> 71[label="",style="solid", color="black", weight=3]; 13.52/5.27 58[label="(++) List.intersectBy000 (Neg Zero) ((||) primEqInt (Neg Zero) (Pos Zero) foldr (||) False (map (primEqInt (Neg Zero)) wv41)) wv5",fontsize=16,color="black",shape="box"];58 -> 72[label="",style="solid", color="black", weight=3]; 13.52/5.27 59[label="(++) List.intersectBy000 (Neg Zero) ((||) primEqInt (Neg Zero) (Neg (Succ wv4000)) foldr (||) False (map (primEqInt (Neg Zero)) wv41)) wv5",fontsize=16,color="black",shape="box"];59 -> 73[label="",style="solid", color="black", weight=3]; 13.52/5.27 60[label="(++) List.intersectBy000 (Neg Zero) ((||) primEqInt (Neg Zero) (Neg Zero) foldr (||) False (map (primEqInt (Neg Zero)) wv41)) wv5",fontsize=16,color="black",shape="box"];60 -> 74[label="",style="solid", color="black", weight=3]; 13.52/5.27 61 -> 388[label="",style="dashed", color="red", weight=0]; 13.52/5.27 61[label="(++) List.intersectBy000 (Pos (Succ wv3000)) ((||) primEqNat wv3000 wv4000 foldr (||) False (map (primEqInt (Pos (Succ wv3000))) wv41)) wv5",fontsize=16,color="magenta"];61 -> 389[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 61 -> 390[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 61 -> 391[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 61 -> 392[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 61 -> 393[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 62 -> 49[label="",style="dashed", color="red", weight=0]; 13.52/5.27 62[label="(++) List.intersectBy000 (Pos (Succ wv3000)) ((||) False foldr (||) False (map (primEqInt (Pos (Succ wv3000))) wv41)) wv5",fontsize=16,color="magenta"];63[label="(++) List.intersectBy000 (Pos (Succ wv3000)) (foldr (||) False (map (primEqInt (Pos (Succ wv3000))) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];556[label="wv41/wv410 : wv411",fontsize=10,color="white",style="solid",shape="box"];63 -> 556[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 556 -> 77[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 557[label="wv41/[]",fontsize=10,color="white",style="solid",shape="box"];63 -> 557[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 557 -> 78[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 64[label="(++) List.intersectBy000 (Pos Zero) ((||) False foldr (||) False (map (primEqInt (Pos Zero)) wv41)) wv5",fontsize=16,color="black",shape="triangle"];64 -> 79[label="",style="solid", color="black", weight=3]; 13.52/5.27 65[label="(++) List.intersectBy000 (Pos Zero) ((||) True foldr (||) False (map (primEqInt (Pos Zero)) wv41)) wv5",fontsize=16,color="black",shape="triangle"];65 -> 80[label="",style="solid", color="black", weight=3]; 13.52/5.27 66 -> 64[label="",style="dashed", color="red", weight=0]; 13.52/5.27 66[label="(++) List.intersectBy000 (Pos Zero) ((||) False foldr (||) False (map (primEqInt (Pos Zero)) wv41)) wv5",fontsize=16,color="magenta"];67 -> 65[label="",style="dashed", color="red", weight=0]; 13.52/5.27 67[label="(++) List.intersectBy000 (Pos Zero) ((||) True foldr (||) False (map (primEqInt (Pos Zero)) wv41)) wv5",fontsize=16,color="magenta"];68[label="(++) List.intersectBy000 (Neg (Succ wv3000)) (foldr (||) False (map (primEqInt (Neg (Succ wv3000))) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];558[label="wv41/wv410 : wv411",fontsize=10,color="white",style="solid",shape="box"];68 -> 558[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 558 -> 81[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 559[label="wv41/[]",fontsize=10,color="white",style="solid",shape="box"];68 -> 559[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 559 -> 82[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 69 -> 436[label="",style="dashed", color="red", weight=0]; 13.52/5.27 69[label="(++) List.intersectBy000 (Neg (Succ wv3000)) ((||) primEqNat wv3000 wv4000 foldr (||) False (map (primEqInt (Neg (Succ wv3000))) wv41)) wv5",fontsize=16,color="magenta"];69 -> 437[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 69 -> 438[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 69 -> 439[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 69 -> 440[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 69 -> 441[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 70 -> 54[label="",style="dashed", color="red", weight=0]; 13.52/5.27 70[label="(++) List.intersectBy000 (Neg (Succ wv3000)) ((||) False foldr (||) False (map (primEqInt (Neg (Succ wv3000))) wv41)) wv5",fontsize=16,color="magenta"];71[label="(++) List.intersectBy000 (Neg Zero) ((||) False foldr (||) False (map (primEqInt (Neg Zero)) wv41)) wv5",fontsize=16,color="black",shape="triangle"];71 -> 85[label="",style="solid", color="black", weight=3]; 13.52/5.27 72[label="(++) List.intersectBy000 (Neg Zero) ((||) True foldr (||) False (map (primEqInt (Neg Zero)) wv41)) wv5",fontsize=16,color="black",shape="triangle"];72 -> 86[label="",style="solid", color="black", weight=3]; 13.52/5.27 73 -> 71[label="",style="dashed", color="red", weight=0]; 13.52/5.27 73[label="(++) List.intersectBy000 (Neg Zero) ((||) False foldr (||) False (map (primEqInt (Neg Zero)) wv41)) wv5",fontsize=16,color="magenta"];74 -> 72[label="",style="dashed", color="red", weight=0]; 13.52/5.27 74[label="(++) List.intersectBy000 (Neg Zero) ((||) True foldr (||) False (map (primEqInt (Neg Zero)) wv41)) wv5",fontsize=16,color="magenta"];389[label="wv41",fontsize=16,color="green",shape="box"];390[label="wv3000",fontsize=16,color="green",shape="box"];391[label="wv4000",fontsize=16,color="green",shape="box"];392[label="wv3000",fontsize=16,color="green",shape="box"];393[label="wv5",fontsize=16,color="green",shape="box"];388[label="(++) List.intersectBy000 (Pos (Succ wv13)) ((||) primEqNat wv14 wv15 foldr (||) False (map (primEqInt (Pos (Succ wv13))) wv16)) wv17",fontsize=16,color="burlywood",shape="triangle"];560[label="wv14/Succ wv140",fontsize=10,color="white",style="solid",shape="box"];388 -> 560[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 560 -> 434[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 561[label="wv14/Zero",fontsize=10,color="white",style="solid",shape="box"];388 -> 561[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 561 -> 435[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 77[label="(++) List.intersectBy000 (Pos (Succ wv3000)) (foldr (||) False (map (primEqInt (Pos (Succ wv3000))) (wv410 : wv411))) wv5",fontsize=16,color="black",shape="box"];77 -> 91[label="",style="solid", color="black", weight=3]; 13.52/5.27 78[label="(++) List.intersectBy000 (Pos (Succ wv3000)) (foldr (||) False (map (primEqInt (Pos (Succ wv3000))) [])) wv5",fontsize=16,color="black",shape="box"];78 -> 92[label="",style="solid", color="black", weight=3]; 13.52/5.27 79[label="(++) List.intersectBy000 (Pos Zero) (foldr (||) False (map (primEqInt (Pos Zero)) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];562[label="wv41/wv410 : wv411",fontsize=10,color="white",style="solid",shape="box"];79 -> 562[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 562 -> 93[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 563[label="wv41/[]",fontsize=10,color="white",style="solid",shape="box"];79 -> 563[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 563 -> 94[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 80[label="(++) List.intersectBy000 (Pos Zero) True wv5",fontsize=16,color="black",shape="box"];80 -> 95[label="",style="solid", color="black", weight=3]; 13.52/5.27 81[label="(++) List.intersectBy000 (Neg (Succ wv3000)) (foldr (||) False (map (primEqInt (Neg (Succ wv3000))) (wv410 : wv411))) wv5",fontsize=16,color="black",shape="box"];81 -> 96[label="",style="solid", color="black", weight=3]; 13.52/5.27 82[label="(++) List.intersectBy000 (Neg (Succ wv3000)) (foldr (||) False (map (primEqInt (Neg (Succ wv3000))) [])) wv5",fontsize=16,color="black",shape="box"];82 -> 97[label="",style="solid", color="black", weight=3]; 13.52/5.27 437[label="wv3000",fontsize=16,color="green",shape="box"];438[label="wv4000",fontsize=16,color="green",shape="box"];439[label="wv41",fontsize=16,color="green",shape="box"];440[label="wv5",fontsize=16,color="green",shape="box"];441[label="wv3000",fontsize=16,color="green",shape="box"];436[label="(++) List.intersectBy000 (Neg (Succ wv19)) ((||) primEqNat wv20 wv21 foldr (||) False (map (primEqInt (Neg (Succ wv19))) wv22)) wv23",fontsize=16,color="burlywood",shape="triangle"];564[label="wv20/Succ wv200",fontsize=10,color="white",style="solid",shape="box"];436 -> 564[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 564 -> 482[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 565[label="wv20/Zero",fontsize=10,color="white",style="solid",shape="box"];436 -> 565[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 565 -> 483[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 85[label="(++) List.intersectBy000 (Neg Zero) (foldr (||) False (map (primEqInt (Neg Zero)) wv41)) wv5",fontsize=16,color="burlywood",shape="box"];566[label="wv41/wv410 : wv411",fontsize=10,color="white",style="solid",shape="box"];85 -> 566[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 566 -> 102[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 567[label="wv41/[]",fontsize=10,color="white",style="solid",shape="box"];85 -> 567[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 567 -> 103[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 86[label="(++) List.intersectBy000 (Neg Zero) True wv5",fontsize=16,color="black",shape="box"];86 -> 104[label="",style="solid", color="black", weight=3]; 13.52/5.27 434[label="(++) List.intersectBy000 (Pos (Succ wv13)) ((||) primEqNat (Succ wv140) wv15 foldr (||) False (map (primEqInt (Pos (Succ wv13))) wv16)) wv17",fontsize=16,color="burlywood",shape="box"];568[label="wv15/Succ wv150",fontsize=10,color="white",style="solid",shape="box"];434 -> 568[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 568 -> 484[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 569[label="wv15/Zero",fontsize=10,color="white",style="solid",shape="box"];434 -> 569[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 569 -> 485[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 435[label="(++) List.intersectBy000 (Pos (Succ wv13)) ((||) primEqNat Zero wv15 foldr (||) False (map (primEqInt (Pos (Succ wv13))) wv16)) wv17",fontsize=16,color="burlywood",shape="box"];570[label="wv15/Succ wv150",fontsize=10,color="white",style="solid",shape="box"];435 -> 570[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 570 -> 486[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 571[label="wv15/Zero",fontsize=10,color="white",style="solid",shape="box"];435 -> 571[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 571 -> 487[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 91[label="(++) List.intersectBy000 (Pos (Succ wv3000)) (foldr (||) False (primEqInt (Pos (Succ wv3000)) wv410 : map (primEqInt (Pos (Succ wv3000))) wv411)) wv5",fontsize=16,color="black",shape="box"];91 -> 109[label="",style="solid", color="black", weight=3]; 13.52/5.27 92 -> 27[label="",style="dashed", color="red", weight=0]; 13.52/5.27 92[label="(++) List.intersectBy000 (Pos (Succ wv3000)) (foldr (||) False []) wv5",fontsize=16,color="magenta"];92 -> 110[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 93[label="(++) List.intersectBy000 (Pos Zero) (foldr (||) False (map (primEqInt (Pos Zero)) (wv410 : wv411))) wv5",fontsize=16,color="black",shape="box"];93 -> 111[label="",style="solid", color="black", weight=3]; 13.52/5.27 94[label="(++) List.intersectBy000 (Pos Zero) (foldr (||) False (map (primEqInt (Pos Zero)) [])) wv5",fontsize=16,color="black",shape="box"];94 -> 112[label="",style="solid", color="black", weight=3]; 13.52/5.27 95[label="(++) (Pos Zero : []) wv5",fontsize=16,color="black",shape="box"];95 -> 113[label="",style="solid", color="black", weight=3]; 13.52/5.27 96[label="(++) List.intersectBy000 (Neg (Succ wv3000)) (foldr (||) False (primEqInt (Neg (Succ wv3000)) wv410 : map (primEqInt (Neg (Succ wv3000))) wv411)) wv5",fontsize=16,color="black",shape="box"];96 -> 114[label="",style="solid", color="black", weight=3]; 13.52/5.27 97 -> 27[label="",style="dashed", color="red", weight=0]; 13.52/5.27 97[label="(++) List.intersectBy000 (Neg (Succ wv3000)) (foldr (||) False []) wv5",fontsize=16,color="magenta"];97 -> 115[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 482[label="(++) List.intersectBy000 (Neg (Succ wv19)) ((||) primEqNat (Succ wv200) wv21 foldr (||) False (map (primEqInt (Neg (Succ wv19))) wv22)) wv23",fontsize=16,color="burlywood",shape="box"];572[label="wv21/Succ wv210",fontsize=10,color="white",style="solid",shape="box"];482 -> 572[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 572 -> 488[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 573[label="wv21/Zero",fontsize=10,color="white",style="solid",shape="box"];482 -> 573[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 573 -> 489[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 483[label="(++) List.intersectBy000 (Neg (Succ wv19)) ((||) primEqNat Zero wv21 foldr (||) False (map (primEqInt (Neg (Succ wv19))) wv22)) wv23",fontsize=16,color="burlywood",shape="box"];574[label="wv21/Succ wv210",fontsize=10,color="white",style="solid",shape="box"];483 -> 574[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 574 -> 490[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 575[label="wv21/Zero",fontsize=10,color="white",style="solid",shape="box"];483 -> 575[label="",style="solid", color="burlywood", weight=9]; 13.52/5.27 575 -> 491[label="",style="solid", color="burlywood", weight=3]; 13.52/5.27 102[label="(++) List.intersectBy000 (Neg Zero) (foldr (||) False (map (primEqInt (Neg Zero)) (wv410 : wv411))) wv5",fontsize=16,color="black",shape="box"];102 -> 120[label="",style="solid", color="black", weight=3]; 13.52/5.27 103[label="(++) List.intersectBy000 (Neg Zero) (foldr (||) False (map (primEqInt (Neg Zero)) [])) wv5",fontsize=16,color="black",shape="box"];103 -> 121[label="",style="solid", color="black", weight=3]; 13.52/5.27 104[label="(++) (Neg Zero : []) wv5",fontsize=16,color="black",shape="box"];104 -> 122[label="",style="solid", color="black", weight=3]; 13.52/5.27 484[label="(++) List.intersectBy000 (Pos (Succ wv13)) ((||) primEqNat (Succ wv140) (Succ wv150) foldr (||) False (map (primEqInt (Pos (Succ wv13))) wv16)) wv17",fontsize=16,color="black",shape="box"];484 -> 492[label="",style="solid", color="black", weight=3]; 13.52/5.27 485[label="(++) List.intersectBy000 (Pos (Succ wv13)) ((||) primEqNat (Succ wv140) Zero foldr (||) False (map (primEqInt (Pos (Succ wv13))) wv16)) wv17",fontsize=16,color="black",shape="box"];485 -> 493[label="",style="solid", color="black", weight=3]; 13.52/5.27 486[label="(++) List.intersectBy000 (Pos (Succ wv13)) ((||) primEqNat Zero (Succ wv150) foldr (||) False (map (primEqInt (Pos (Succ wv13))) wv16)) wv17",fontsize=16,color="black",shape="box"];486 -> 494[label="",style="solid", color="black", weight=3]; 13.52/5.27 487[label="(++) List.intersectBy000 (Pos (Succ wv13)) ((||) primEqNat Zero Zero foldr (||) False (map (primEqInt (Pos (Succ wv13))) wv16)) wv17",fontsize=16,color="black",shape="box"];487 -> 495[label="",style="solid", color="black", weight=3]; 13.52/5.27 109 -> 30[label="",style="dashed", color="red", weight=0]; 13.52/5.27 109[label="(++) List.intersectBy000 (Pos (Succ wv3000)) ((||) primEqInt (Pos (Succ wv3000)) wv410 foldr (||) False (map (primEqInt (Pos (Succ wv3000))) wv411)) wv5",fontsize=16,color="magenta"];109 -> 128[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 109 -> 129[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 109 -> 130[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 110[label="Pos (Succ wv3000)",fontsize=16,color="green",shape="box"];111[label="(++) List.intersectBy000 (Pos Zero) (foldr (||) False (primEqInt (Pos Zero) wv410 : map (primEqInt (Pos Zero)) wv411)) wv5",fontsize=16,color="black",shape="box"];111 -> 131[label="",style="solid", color="black", weight=3]; 13.52/5.27 112 -> 27[label="",style="dashed", color="red", weight=0]; 13.52/5.27 112[label="(++) List.intersectBy000 (Pos Zero) (foldr (||) False []) wv5",fontsize=16,color="magenta"];112 -> 132[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 113[label="Pos Zero : [] ++ wv5",fontsize=16,color="green",shape="box"];113 -> 133[label="",style="dashed", color="green", weight=3]; 13.52/5.27 114 -> 30[label="",style="dashed", color="red", weight=0]; 13.52/5.27 114[label="(++) List.intersectBy000 (Neg (Succ wv3000)) ((||) primEqInt (Neg (Succ wv3000)) wv410 foldr (||) False (map (primEqInt (Neg (Succ wv3000))) wv411)) wv5",fontsize=16,color="magenta"];114 -> 134[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 114 -> 135[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 114 -> 136[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 115[label="Neg (Succ wv3000)",fontsize=16,color="green",shape="box"];488[label="(++) List.intersectBy000 (Neg (Succ wv19)) ((||) primEqNat (Succ wv200) (Succ wv210) foldr (||) False (map (primEqInt (Neg (Succ wv19))) wv22)) wv23",fontsize=16,color="black",shape="box"];488 -> 496[label="",style="solid", color="black", weight=3]; 13.52/5.27 489[label="(++) List.intersectBy000 (Neg (Succ wv19)) ((||) primEqNat (Succ wv200) Zero foldr (||) False (map (primEqInt (Neg (Succ wv19))) wv22)) wv23",fontsize=16,color="black",shape="box"];489 -> 497[label="",style="solid", color="black", weight=3]; 13.52/5.27 490[label="(++) List.intersectBy000 (Neg (Succ wv19)) ((||) primEqNat Zero (Succ wv210) foldr (||) False (map (primEqInt (Neg (Succ wv19))) wv22)) wv23",fontsize=16,color="black",shape="box"];490 -> 498[label="",style="solid", color="black", weight=3]; 13.52/5.27 491[label="(++) List.intersectBy000 (Neg (Succ wv19)) ((||) primEqNat Zero Zero foldr (||) False (map (primEqInt (Neg (Succ wv19))) wv22)) wv23",fontsize=16,color="black",shape="box"];491 -> 499[label="",style="solid", color="black", weight=3]; 13.52/5.27 120[label="(++) List.intersectBy000 (Neg Zero) (foldr (||) False (primEqInt (Neg Zero) wv410 : map (primEqInt (Neg Zero)) wv411)) wv5",fontsize=16,color="black",shape="box"];120 -> 142[label="",style="solid", color="black", weight=3]; 13.52/5.27 121 -> 27[label="",style="dashed", color="red", weight=0]; 13.52/5.27 121[label="(++) List.intersectBy000 (Neg Zero) (foldr (||) False []) wv5",fontsize=16,color="magenta"];121 -> 143[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 122[label="Neg Zero : [] ++ wv5",fontsize=16,color="green",shape="box"];122 -> 144[label="",style="dashed", color="green", weight=3]; 13.52/5.27 492 -> 388[label="",style="dashed", color="red", weight=0]; 13.52/5.27 492[label="(++) List.intersectBy000 (Pos (Succ wv13)) ((||) primEqNat wv140 wv150 foldr (||) False (map (primEqInt (Pos (Succ wv13))) wv16)) wv17",fontsize=16,color="magenta"];492 -> 500[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 492 -> 501[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 493 -> 49[label="",style="dashed", color="red", weight=0]; 13.52/5.27 493[label="(++) List.intersectBy000 (Pos (Succ wv13)) ((||) False foldr (||) False (map (primEqInt (Pos (Succ wv13))) wv16)) wv17",fontsize=16,color="magenta"];493 -> 502[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 493 -> 503[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 493 -> 504[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 494 -> 49[label="",style="dashed", color="red", weight=0]; 13.52/5.27 494[label="(++) List.intersectBy000 (Pos (Succ wv13)) ((||) False foldr (||) False (map (primEqInt (Pos (Succ wv13))) wv16)) wv17",fontsize=16,color="magenta"];494 -> 505[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 494 -> 506[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 494 -> 507[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 495[label="(++) List.intersectBy000 (Pos (Succ wv13)) ((||) True foldr (||) False (map (primEqInt (Pos (Succ wv13))) wv16)) wv17",fontsize=16,color="black",shape="box"];495 -> 508[label="",style="solid", color="black", weight=3]; 13.52/5.27 128[label="Pos (Succ wv3000)",fontsize=16,color="green",shape="box"];129[label="wv411",fontsize=16,color="green",shape="box"];130[label="wv410",fontsize=16,color="green",shape="box"];131 -> 30[label="",style="dashed", color="red", weight=0]; 13.52/5.27 131[label="(++) List.intersectBy000 (Pos Zero) ((||) primEqInt (Pos Zero) wv410 foldr (||) False (map (primEqInt (Pos Zero)) wv411)) wv5",fontsize=16,color="magenta"];131 -> 150[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 131 -> 151[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 131 -> 152[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 132[label="Pos Zero",fontsize=16,color="green",shape="box"];133 -> 31[label="",style="dashed", color="red", weight=0]; 13.52/5.27 133[label="[] ++ wv5",fontsize=16,color="magenta"];134[label="Neg (Succ wv3000)",fontsize=16,color="green",shape="box"];135[label="wv411",fontsize=16,color="green",shape="box"];136[label="wv410",fontsize=16,color="green",shape="box"];496 -> 436[label="",style="dashed", color="red", weight=0]; 13.52/5.27 496[label="(++) List.intersectBy000 (Neg (Succ wv19)) ((||) primEqNat wv200 wv210 foldr (||) False (map (primEqInt (Neg (Succ wv19))) wv22)) wv23",fontsize=16,color="magenta"];496 -> 509[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 496 -> 510[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 497 -> 54[label="",style="dashed", color="red", weight=0]; 13.52/5.27 497[label="(++) List.intersectBy000 (Neg (Succ wv19)) ((||) False foldr (||) False (map (primEqInt (Neg (Succ wv19))) wv22)) wv23",fontsize=16,color="magenta"];497 -> 511[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 497 -> 512[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 497 -> 513[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 498 -> 54[label="",style="dashed", color="red", weight=0]; 13.52/5.27 498[label="(++) List.intersectBy000 (Neg (Succ wv19)) ((||) False foldr (||) False (map (primEqInt (Neg (Succ wv19))) wv22)) wv23",fontsize=16,color="magenta"];498 -> 514[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 498 -> 515[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 498 -> 516[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 499[label="(++) List.intersectBy000 (Neg (Succ wv19)) ((||) True foldr (||) False (map (primEqInt (Neg (Succ wv19))) wv22)) wv23",fontsize=16,color="black",shape="box"];499 -> 517[label="",style="solid", color="black", weight=3]; 13.52/5.27 142 -> 30[label="",style="dashed", color="red", weight=0]; 13.52/5.27 142[label="(++) List.intersectBy000 (Neg Zero) ((||) primEqInt (Neg Zero) wv410 foldr (||) False (map (primEqInt (Neg Zero)) wv411)) wv5",fontsize=16,color="magenta"];142 -> 158[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 142 -> 159[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 142 -> 160[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 143[label="Neg Zero",fontsize=16,color="green",shape="box"];144 -> 31[label="",style="dashed", color="red", weight=0]; 13.52/5.27 144[label="[] ++ wv5",fontsize=16,color="magenta"];500[label="wv150",fontsize=16,color="green",shape="box"];501[label="wv140",fontsize=16,color="green",shape="box"];502[label="wv16",fontsize=16,color="green",shape="box"];503[label="wv17",fontsize=16,color="green",shape="box"];504[label="wv13",fontsize=16,color="green",shape="box"];505[label="wv16",fontsize=16,color="green",shape="box"];506[label="wv17",fontsize=16,color="green",shape="box"];507[label="wv13",fontsize=16,color="green",shape="box"];508[label="(++) List.intersectBy000 (Pos (Succ wv13)) True wv17",fontsize=16,color="black",shape="box"];508 -> 518[label="",style="solid", color="black", weight=3]; 13.52/5.27 150[label="Pos Zero",fontsize=16,color="green",shape="box"];151[label="wv411",fontsize=16,color="green",shape="box"];152[label="wv410",fontsize=16,color="green",shape="box"];509[label="wv200",fontsize=16,color="green",shape="box"];510[label="wv210",fontsize=16,color="green",shape="box"];511[label="wv22",fontsize=16,color="green",shape="box"];512[label="wv23",fontsize=16,color="green",shape="box"];513[label="wv19",fontsize=16,color="green",shape="box"];514[label="wv22",fontsize=16,color="green",shape="box"];515[label="wv23",fontsize=16,color="green",shape="box"];516[label="wv19",fontsize=16,color="green",shape="box"];517[label="(++) List.intersectBy000 (Neg (Succ wv19)) True wv23",fontsize=16,color="black",shape="box"];517 -> 519[label="",style="solid", color="black", weight=3]; 13.52/5.27 158[label="Neg Zero",fontsize=16,color="green",shape="box"];159[label="wv411",fontsize=16,color="green",shape="box"];160[label="wv410",fontsize=16,color="green",shape="box"];518[label="(++) (Pos (Succ wv13) : []) wv17",fontsize=16,color="black",shape="box"];518 -> 520[label="",style="solid", color="black", weight=3]; 13.52/5.27 519[label="(++) (Neg (Succ wv19) : []) wv23",fontsize=16,color="black",shape="box"];519 -> 521[label="",style="solid", color="black", weight=3]; 13.52/5.27 520[label="Pos (Succ wv13) : [] ++ wv17",fontsize=16,color="green",shape="box"];520 -> 522[label="",style="dashed", color="green", weight=3]; 13.52/5.27 521[label="Neg (Succ wv19) : [] ++ wv23",fontsize=16,color="green",shape="box"];521 -> 523[label="",style="dashed", color="green", weight=3]; 13.52/5.27 522 -> 31[label="",style="dashed", color="red", weight=0]; 13.52/5.27 522[label="[] ++ wv17",fontsize=16,color="magenta"];522 -> 524[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 523 -> 31[label="",style="dashed", color="red", weight=0]; 13.52/5.27 523[label="[] ++ wv23",fontsize=16,color="magenta"];523 -> 525[label="",style="dashed", color="magenta", weight=3]; 13.52/5.27 524[label="wv17",fontsize=16,color="green",shape="box"];525[label="wv23",fontsize=16,color="green",shape="box"];} 13.52/5.27 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (12) 13.52/5.27 Complex Obligation (AND) 13.52/5.27 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (13) 13.52/5.27 Obligation: 13.52/5.27 Q DP problem: 13.52/5.27 The TRS P consists of the following rules: 13.52/5.27 13.52/5.27 new_psPs(wv13, Succ(wv140), Succ(wv150), wv16, wv17) -> new_psPs(wv13, wv140, wv150, wv16, wv17) 13.52/5.27 new_psPs(wv13, Succ(wv140), Zero, wv16, wv17) -> new_psPs0(wv13, wv16, wv17) 13.52/5.27 new_psPs(wv13, Zero, Succ(wv150), wv16, wv17) -> new_psPs0(wv13, wv16, wv17) 13.52/5.27 new_psPs1(Neg(Zero), Neg(Succ(wv4000)), wv41, wv5) -> new_psPs5(wv41, wv5) 13.52/5.27 new_psPs1(Neg(Succ(wv3000)), Pos(wv400), :(wv410, wv411), wv5) -> new_psPs1(Neg(Succ(wv3000)), wv410, wv411, wv5) 13.52/5.27 new_psPs4(wv3000, :(wv410, wv411), wv5) -> new_psPs1(Neg(Succ(wv3000)), wv410, wv411, wv5) 13.52/5.27 new_psPs3(wv19, Succ(wv200), Zero, wv22, wv23) -> new_psPs4(wv19, wv22, wv23) 13.52/5.27 new_psPs3(wv19, Zero, Succ(wv210), wv22, wv23) -> new_psPs4(wv19, wv22, wv23) 13.52/5.27 new_psPs0(wv3000, :(wv410, wv411), wv5) -> new_psPs1(Pos(Succ(wv3000)), wv410, wv411, wv5) 13.52/5.27 new_psPs1(Neg(Zero), Pos(Succ(wv4000)), :(wv410, wv411), wv5) -> new_psPs1(Neg(Zero), wv410, wv411, wv5) 13.52/5.27 new_psPs1(Neg(Succ(wv3000)), Neg(Zero), wv41, wv5) -> new_psPs4(wv3000, wv41, wv5) 13.52/5.27 new_psPs2(:(wv410, wv411), wv5) -> new_psPs1(Pos(Zero), wv410, wv411, wv5) 13.52/5.27 new_psPs1(Pos(Succ(wv3000)), Pos(Succ(wv4000)), wv41, wv5) -> new_psPs(wv3000, wv3000, wv4000, wv41, wv5) 13.52/5.27 new_psPs5(:(wv410, wv411), wv5) -> new_psPs1(Neg(Zero), wv410, wv411, wv5) 13.52/5.27 new_psPs3(wv19, Succ(wv200), Succ(wv210), wv22, wv23) -> new_psPs3(wv19, wv200, wv210, wv22, wv23) 13.52/5.27 new_psPs1(Pos(Succ(wv3000)), Pos(Zero), wv41, wv5) -> new_psPs0(wv3000, wv41, wv5) 13.52/5.27 new_psPs1(Pos(Succ(wv3000)), Neg(wv400), :(wv410, wv411), wv5) -> new_psPs1(Pos(Succ(wv3000)), wv410, wv411, wv5) 13.52/5.27 new_psPs1(Pos(Zero), Pos(Succ(wv4000)), :(wv410, wv411), wv5) -> new_psPs1(Pos(Zero), wv410, wv411, wv5) 13.52/5.27 new_psPs1(Pos(Zero), Neg(Succ(wv4000)), wv41, wv5) -> new_psPs2(wv41, wv5) 13.52/5.27 new_psPs1(Neg(Succ(wv3000)), Neg(Succ(wv4000)), wv41, wv5) -> new_psPs3(wv3000, wv3000, wv4000, wv41, wv5) 13.52/5.27 13.52/5.27 R is empty. 13.52/5.27 Q is empty. 13.52/5.27 We have to consider all minimal (P,Q,R)-chains. 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (14) DependencyGraphProof (EQUIVALENT) 13.52/5.27 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 4 SCCs. 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (15) 13.52/5.27 Complex Obligation (AND) 13.52/5.27 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (16) 13.52/5.27 Obligation: 13.52/5.27 Q DP problem: 13.52/5.27 The TRS P consists of the following rules: 13.52/5.27 13.52/5.27 new_psPs1(Pos(Zero), Pos(Succ(wv4000)), :(wv410, wv411), wv5) -> new_psPs1(Pos(Zero), wv410, wv411, wv5) 13.52/5.27 new_psPs1(Pos(Zero), Neg(Succ(wv4000)), wv41, wv5) -> new_psPs2(wv41, wv5) 13.52/5.27 new_psPs2(:(wv410, wv411), wv5) -> new_psPs1(Pos(Zero), wv410, wv411, wv5) 13.52/5.27 13.52/5.27 R is empty. 13.52/5.27 Q is empty. 13.52/5.27 We have to consider all minimal (P,Q,R)-chains. 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (17) QDPSizeChangeProof (EQUIVALENT) 13.52/5.27 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. 13.52/5.27 13.52/5.27 From the DPs we obtained the following set of size-change graphs: 13.52/5.27 *new_psPs1(Pos(Zero), Pos(Succ(wv4000)), :(wv410, wv411), wv5) -> new_psPs1(Pos(Zero), wv410, wv411, wv5) 13.52/5.27 The graph contains the following edges 1 >= 1, 3 > 2, 3 > 3, 4 >= 4 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs1(Pos(Zero), Neg(Succ(wv4000)), wv41, wv5) -> new_psPs2(wv41, wv5) 13.52/5.27 The graph contains the following edges 3 >= 1, 4 >= 2 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs2(:(wv410, wv411), wv5) -> new_psPs1(Pos(Zero), wv410, wv411, wv5) 13.52/5.27 The graph contains the following edges 1 > 2, 1 > 3, 2 >= 4 13.52/5.27 13.52/5.27 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (18) 13.52/5.27 YES 13.52/5.27 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (19) 13.52/5.27 Obligation: 13.52/5.27 Q DP problem: 13.52/5.27 The TRS P consists of the following rules: 13.52/5.27 13.52/5.27 new_psPs1(Neg(Succ(wv3000)), Neg(Zero), wv41, wv5) -> new_psPs4(wv3000, wv41, wv5) 13.52/5.27 new_psPs4(wv3000, :(wv410, wv411), wv5) -> new_psPs1(Neg(Succ(wv3000)), wv410, wv411, wv5) 13.52/5.27 new_psPs1(Neg(Succ(wv3000)), Pos(wv400), :(wv410, wv411), wv5) -> new_psPs1(Neg(Succ(wv3000)), wv410, wv411, wv5) 13.52/5.27 new_psPs1(Neg(Succ(wv3000)), Neg(Succ(wv4000)), wv41, wv5) -> new_psPs3(wv3000, wv3000, wv4000, wv41, wv5) 13.52/5.27 new_psPs3(wv19, Succ(wv200), Zero, wv22, wv23) -> new_psPs4(wv19, wv22, wv23) 13.52/5.27 new_psPs3(wv19, Zero, Succ(wv210), wv22, wv23) -> new_psPs4(wv19, wv22, wv23) 13.52/5.27 new_psPs3(wv19, Succ(wv200), Succ(wv210), wv22, wv23) -> new_psPs3(wv19, wv200, wv210, wv22, wv23) 13.52/5.27 13.52/5.27 R is empty. 13.52/5.27 Q is empty. 13.52/5.27 We have to consider all minimal (P,Q,R)-chains. 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (20) QDPSizeChangeProof (EQUIVALENT) 13.52/5.27 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. 13.52/5.27 13.52/5.27 From the DPs we obtained the following set of size-change graphs: 13.52/5.27 *new_psPs4(wv3000, :(wv410, wv411), wv5) -> new_psPs1(Neg(Succ(wv3000)), wv410, wv411, wv5) 13.52/5.27 The graph contains the following edges 2 > 2, 2 > 3, 3 >= 4 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs1(Neg(Succ(wv3000)), Pos(wv400), :(wv410, wv411), wv5) -> new_psPs1(Neg(Succ(wv3000)), wv410, wv411, wv5) 13.52/5.27 The graph contains the following edges 1 >= 1, 3 > 2, 3 > 3, 4 >= 4 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs1(Neg(Succ(wv3000)), Neg(Zero), wv41, wv5) -> new_psPs4(wv3000, wv41, wv5) 13.52/5.27 The graph contains the following edges 1 > 1, 3 >= 2, 4 >= 3 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs1(Neg(Succ(wv3000)), Neg(Succ(wv4000)), wv41, wv5) -> new_psPs3(wv3000, wv3000, wv4000, wv41, wv5) 13.52/5.27 The graph contains the following edges 1 > 1, 1 > 2, 2 > 3, 3 >= 4, 4 >= 5 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs3(wv19, Succ(wv200), Succ(wv210), wv22, wv23) -> new_psPs3(wv19, wv200, wv210, wv22, wv23) 13.52/5.27 The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4, 5 >= 5 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs3(wv19, Succ(wv200), Zero, wv22, wv23) -> new_psPs4(wv19, wv22, wv23) 13.52/5.27 The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs3(wv19, Zero, Succ(wv210), wv22, wv23) -> new_psPs4(wv19, wv22, wv23) 13.52/5.27 The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3 13.52/5.27 13.52/5.27 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (21) 13.52/5.27 YES 13.52/5.27 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (22) 13.52/5.27 Obligation: 13.52/5.27 Q DP problem: 13.52/5.27 The TRS P consists of the following rules: 13.52/5.27 13.52/5.27 new_psPs5(:(wv410, wv411), wv5) -> new_psPs1(Neg(Zero), wv410, wv411, wv5) 13.52/5.27 new_psPs1(Neg(Zero), Neg(Succ(wv4000)), wv41, wv5) -> new_psPs5(wv41, wv5) 13.52/5.27 new_psPs1(Neg(Zero), Pos(Succ(wv4000)), :(wv410, wv411), wv5) -> new_psPs1(Neg(Zero), wv410, wv411, wv5) 13.52/5.27 13.52/5.27 R is empty. 13.52/5.27 Q is empty. 13.52/5.27 We have to consider all minimal (P,Q,R)-chains. 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (23) QDPSizeChangeProof (EQUIVALENT) 13.52/5.27 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. 13.52/5.27 13.52/5.27 From the DPs we obtained the following set of size-change graphs: 13.52/5.27 *new_psPs1(Neg(Zero), Neg(Succ(wv4000)), wv41, wv5) -> new_psPs5(wv41, wv5) 13.52/5.27 The graph contains the following edges 3 >= 1, 4 >= 2 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs1(Neg(Zero), Pos(Succ(wv4000)), :(wv410, wv411), wv5) -> new_psPs1(Neg(Zero), wv410, wv411, wv5) 13.52/5.27 The graph contains the following edges 1 >= 1, 3 > 2, 3 > 3, 4 >= 4 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs5(:(wv410, wv411), wv5) -> new_psPs1(Neg(Zero), wv410, wv411, wv5) 13.52/5.27 The graph contains the following edges 1 > 2, 1 > 3, 2 >= 4 13.52/5.27 13.52/5.27 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (24) 13.52/5.27 YES 13.52/5.27 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (25) 13.52/5.27 Obligation: 13.52/5.27 Q DP problem: 13.52/5.27 The TRS P consists of the following rules: 13.52/5.27 13.52/5.27 new_psPs(wv13, Succ(wv140), Zero, wv16, wv17) -> new_psPs0(wv13, wv16, wv17) 13.52/5.27 new_psPs0(wv3000, :(wv410, wv411), wv5) -> new_psPs1(Pos(Succ(wv3000)), wv410, wv411, wv5) 13.52/5.27 new_psPs1(Pos(Succ(wv3000)), Pos(Succ(wv4000)), wv41, wv5) -> new_psPs(wv3000, wv3000, wv4000, wv41, wv5) 13.52/5.27 new_psPs(wv13, Succ(wv140), Succ(wv150), wv16, wv17) -> new_psPs(wv13, wv140, wv150, wv16, wv17) 13.52/5.27 new_psPs(wv13, Zero, Succ(wv150), wv16, wv17) -> new_psPs0(wv13, wv16, wv17) 13.52/5.27 new_psPs1(Pos(Succ(wv3000)), Pos(Zero), wv41, wv5) -> new_psPs0(wv3000, wv41, wv5) 13.52/5.27 new_psPs1(Pos(Succ(wv3000)), Neg(wv400), :(wv410, wv411), wv5) -> new_psPs1(Pos(Succ(wv3000)), wv410, wv411, wv5) 13.52/5.27 13.52/5.27 R is empty. 13.52/5.27 Q is empty. 13.52/5.27 We have to consider all minimal (P,Q,R)-chains. 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (26) QDPSizeChangeProof (EQUIVALENT) 13.52/5.27 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. 13.52/5.27 13.52/5.27 From the DPs we obtained the following set of size-change graphs: 13.52/5.27 *new_psPs0(wv3000, :(wv410, wv411), wv5) -> new_psPs1(Pos(Succ(wv3000)), wv410, wv411, wv5) 13.52/5.27 The graph contains the following edges 2 > 2, 2 > 3, 3 >= 4 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs1(Pos(Succ(wv3000)), Pos(Succ(wv4000)), wv41, wv5) -> new_psPs(wv3000, wv3000, wv4000, wv41, wv5) 13.52/5.27 The graph contains the following edges 1 > 1, 1 > 2, 2 > 3, 3 >= 4, 4 >= 5 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs(wv13, Succ(wv140), Succ(wv150), wv16, wv17) -> new_psPs(wv13, wv140, wv150, wv16, wv17) 13.52/5.27 The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4, 5 >= 5 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs1(Pos(Succ(wv3000)), Pos(Zero), wv41, wv5) -> new_psPs0(wv3000, wv41, wv5) 13.52/5.27 The graph contains the following edges 1 > 1, 3 >= 2, 4 >= 3 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs1(Pos(Succ(wv3000)), Neg(wv400), :(wv410, wv411), wv5) -> new_psPs1(Pos(Succ(wv3000)), wv410, wv411, wv5) 13.52/5.27 The graph contains the following edges 1 >= 1, 3 > 2, 3 > 3, 4 >= 4 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs(wv13, Succ(wv140), Zero, wv16, wv17) -> new_psPs0(wv13, wv16, wv17) 13.52/5.27 The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3 13.52/5.27 13.52/5.27 13.52/5.27 *new_psPs(wv13, Zero, Succ(wv150), wv16, wv17) -> new_psPs0(wv13, wv16, wv17) 13.52/5.27 The graph contains the following edges 1 >= 1, 4 >= 2, 5 >= 3 13.52/5.27 13.52/5.27 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (27) 13.52/5.27 YES 13.52/5.27 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (28) 13.52/5.27 Obligation: 13.52/5.27 Q DP problem: 13.52/5.27 The TRS P consists of the following rules: 13.52/5.27 13.52/5.27 new_foldr(wv4, :(wv30, wv31)) -> new_foldr(wv4, wv31) 13.52/5.27 13.52/5.27 R is empty. 13.52/5.27 Q is empty. 13.52/5.27 We have to consider all minimal (P,Q,R)-chains. 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (29) QDPSizeChangeProof (EQUIVALENT) 13.52/5.27 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. 13.52/5.27 13.52/5.27 From the DPs we obtained the following set of size-change graphs: 13.52/5.27 *new_foldr(wv4, :(wv30, wv31)) -> new_foldr(wv4, wv31) 13.52/5.27 The graph contains the following edges 1 >= 1, 2 > 2 13.52/5.27 13.52/5.27 13.52/5.27 ---------------------------------------- 13.52/5.27 13.52/5.27 (30) 13.52/5.27 YES 13.79/5.30 EOF