/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.hs /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.hs # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty H-Termination with start terms of the given HASKELL could be proven: (0) HASKELL (1) IFR [EQUIVALENT, 0 ms] (2) HASKELL (3) BR [EQUIVALENT, 0 ms] (4) HASKELL (5) COR [EQUIVALENT, 21 ms] (6) HASKELL (7) Narrow [SOUND, 0 ms] (8) AND (9) QDP (10) DependencyGraphProof [EQUIVALENT, 0 ms] (11) AND (12) QDP (13) QDPSizeChangeProof [EQUIVALENT, 0 ms] (14) YES (15) QDP (16) QDPSizeChangeProof [EQUIVALENT, 0 ms] (17) YES (18) QDP (19) QDPSizeChangeProof [EQUIVALENT, 0 ms] (20) YES (21) QDP (22) QDPSizeChangeProof [EQUIVALENT, 0 ms] (23) YES (24) QDP (25) QDPSizeChangeProof [EQUIVALENT, 0 ms] (26) YES ---------------------------------------- (0) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; infix 5 \\; (\\) :: Eq a => [a] -> [a] -> [a]; (\\) = foldl (flip delete); delete :: Eq a => a -> [a] -> [a]; delete = deleteBy (==); deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy _ _ [] = []; deleteBy eq x (y : ys) = if x `eq` y then ys else y : deleteBy eq x ys; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (1) IFR (EQUIVALENT) If Reductions: The following If expression "if eq x y then ys else y : deleteBy eq x ys" is transformed to "deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x ys; " ---------------------------------------- (2) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; infix 5 \\; (\\) :: Eq a => [a] -> [a] -> [a]; (\\) = foldl (flip delete); delete :: Eq a => a -> [a] -> [a]; delete = deleteBy (==); deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy _ _ [] = []; deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x ys; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (3) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (4) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; infix 5 \\; (\\) :: Eq a => [a] -> [a] -> [a]; (\\) = foldl (flip delete); delete :: Eq a => a -> [a] -> [a]; delete = deleteBy (==); deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy wu wv [] = []; deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x ys; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (5) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " ---------------------------------------- (6) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; infix 5 \\; (\\) :: Eq a => [a] -> [a] -> [a]; (\\) = foldl (flip delete); delete :: Eq a => a -> [a] -> [a]; delete = deleteBy (==); deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]; deleteBy wu wv [] = []; deleteBy eq x (y : ys) = deleteBy0 ys y eq x (x `eq` y); deleteBy0 ys y eq x True = ys; deleteBy0 ys y eq x False = y : deleteBy eq x ys; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (7) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="(List.\\)",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="ww3 (List.\\)",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="ww3 (List.\\) ww4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="foldl (flip List.delete) ww3 ww4",fontsize=16,color="burlywood",shape="triangle"];619[label="ww4/ww40 : ww41",fontsize=10,color="white",style="solid",shape="box"];5 -> 619[label="",style="solid", color="burlywood", weight=9]; 619 -> 6[label="",style="solid", color="burlywood", weight=3]; 620[label="ww4/[]",fontsize=10,color="white",style="solid",shape="box"];5 -> 620[label="",style="solid", color="burlywood", weight=9]; 620 -> 7[label="",style="solid", color="burlywood", weight=3]; 6[label="foldl (flip List.delete) ww3 (ww40 : ww41)",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 7[label="foldl (flip List.delete) ww3 []",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8 -> 5[label="",style="dashed", color="red", weight=0]; 8[label="foldl (flip List.delete) (flip List.delete ww3 ww40) ww41",fontsize=16,color="magenta"];8 -> 10[label="",style="dashed", color="magenta", weight=3]; 8 -> 11[label="",style="dashed", color="magenta", weight=3]; 9[label="ww3",fontsize=16,color="green",shape="box"];10[label="ww41",fontsize=16,color="green",shape="box"];11[label="flip List.delete ww3 ww40",fontsize=16,color="black",shape="box"];11 -> 12[label="",style="solid", color="black", weight=3]; 12[label="List.delete ww40 ww3",fontsize=16,color="black",shape="box"];12 -> 13[label="",style="solid", color="black", weight=3]; 13[label="List.deleteBy (==) ww40 ww3",fontsize=16,color="burlywood",shape="box"];621[label="ww3/ww30 : ww31",fontsize=10,color="white",style="solid",shape="box"];13 -> 621[label="",style="solid", color="burlywood", weight=9]; 621 -> 14[label="",style="solid", color="burlywood", weight=3]; 622[label="ww3/[]",fontsize=10,color="white",style="solid",shape="box"];13 -> 622[label="",style="solid", color="burlywood", weight=9]; 622 -> 15[label="",style="solid", color="burlywood", weight=3]; 14[label="List.deleteBy (==) ww40 (ww30 : ww31)",fontsize=16,color="black",shape="box"];14 -> 16[label="",style="solid", color="black", weight=3]; 15[label="List.deleteBy (==) ww40 []",fontsize=16,color="black",shape="box"];15 -> 17[label="",style="solid", color="black", weight=3]; 16[label="List.deleteBy0 ww31 ww30 (==) ww40 ((==) ww40 ww30)",fontsize=16,color="black",shape="box"];16 -> 18[label="",style="solid", color="black", weight=3]; 17[label="[]",fontsize=16,color="green",shape="box"];18[label="List.deleteBy0 ww31 ww30 primEqInt ww40 (primEqInt ww40 ww30)",fontsize=16,color="burlywood",shape="triangle"];623[label="ww40/Pos ww400",fontsize=10,color="white",style="solid",shape="box"];18 -> 623[label="",style="solid", color="burlywood", weight=9]; 623 -> 19[label="",style="solid", color="burlywood", weight=3]; 624[label="ww40/Neg ww400",fontsize=10,color="white",style="solid",shape="box"];18 -> 624[label="",style="solid", color="burlywood", weight=9]; 624 -> 20[label="",style="solid", color="burlywood", weight=3]; 19[label="List.deleteBy0 ww31 ww30 primEqInt (Pos ww400) (primEqInt (Pos ww400) ww30)",fontsize=16,color="burlywood",shape="box"];625[label="ww400/Succ ww4000",fontsize=10,color="white",style="solid",shape="box"];19 -> 625[label="",style="solid", color="burlywood", weight=9]; 625 -> 21[label="",style="solid", color="burlywood", weight=3]; 626[label="ww400/Zero",fontsize=10,color="white",style="solid",shape="box"];19 -> 626[label="",style="solid", color="burlywood", weight=9]; 626 -> 22[label="",style="solid", color="burlywood", weight=3]; 20[label="List.deleteBy0 ww31 ww30 primEqInt (Neg ww400) (primEqInt (Neg ww400) ww30)",fontsize=16,color="burlywood",shape="box"];627[label="ww400/Succ ww4000",fontsize=10,color="white",style="solid",shape="box"];20 -> 627[label="",style="solid", color="burlywood", weight=9]; 627 -> 23[label="",style="solid", color="burlywood", weight=3]; 628[label="ww400/Zero",fontsize=10,color="white",style="solid",shape="box"];20 -> 628[label="",style="solid", color="burlywood", weight=9]; 628 -> 24[label="",style="solid", color="burlywood", weight=3]; 21[label="List.deleteBy0 ww31 ww30 primEqInt (Pos (Succ ww4000)) (primEqInt (Pos (Succ ww4000)) ww30)",fontsize=16,color="burlywood",shape="box"];629[label="ww30/Pos ww300",fontsize=10,color="white",style="solid",shape="box"];21 -> 629[label="",style="solid", color="burlywood", weight=9]; 629 -> 25[label="",style="solid", color="burlywood", weight=3]; 630[label="ww30/Neg ww300",fontsize=10,color="white",style="solid",shape="box"];21 -> 630[label="",style="solid", color="burlywood", weight=9]; 630 -> 26[label="",style="solid", color="burlywood", weight=3]; 22[label="List.deleteBy0 ww31 ww30 primEqInt (Pos Zero) (primEqInt (Pos Zero) ww30)",fontsize=16,color="burlywood",shape="box"];631[label="ww30/Pos ww300",fontsize=10,color="white",style="solid",shape="box"];22 -> 631[label="",style="solid", color="burlywood", weight=9]; 631 -> 27[label="",style="solid", color="burlywood", weight=3]; 632[label="ww30/Neg ww300",fontsize=10,color="white",style="solid",shape="box"];22 -> 632[label="",style="solid", color="burlywood", weight=9]; 632 -> 28[label="",style="solid", color="burlywood", weight=3]; 23[label="List.deleteBy0 ww31 ww30 primEqInt (Neg (Succ ww4000)) (primEqInt (Neg (Succ ww4000)) ww30)",fontsize=16,color="burlywood",shape="box"];633[label="ww30/Pos ww300",fontsize=10,color="white",style="solid",shape="box"];23 -> 633[label="",style="solid", color="burlywood", weight=9]; 633 -> 29[label="",style="solid", color="burlywood", weight=3]; 634[label="ww30/Neg ww300",fontsize=10,color="white",style="solid",shape="box"];23 -> 634[label="",style="solid", color="burlywood", weight=9]; 634 -> 30[label="",style="solid", color="burlywood", weight=3]; 24[label="List.deleteBy0 ww31 ww30 primEqInt (Neg Zero) (primEqInt (Neg Zero) ww30)",fontsize=16,color="burlywood",shape="box"];635[label="ww30/Pos ww300",fontsize=10,color="white",style="solid",shape="box"];24 -> 635[label="",style="solid", color="burlywood", weight=9]; 635 -> 31[label="",style="solid", color="burlywood", weight=3]; 636[label="ww30/Neg ww300",fontsize=10,color="white",style="solid",shape="box"];24 -> 636[label="",style="solid", color="burlywood", weight=9]; 636 -> 32[label="",style="solid", color="burlywood", weight=3]; 25[label="List.deleteBy0 ww31 (Pos ww300) primEqInt (Pos (Succ ww4000)) (primEqInt (Pos (Succ ww4000)) (Pos ww300))",fontsize=16,color="burlywood",shape="box"];637[label="ww300/Succ ww3000",fontsize=10,color="white",style="solid",shape="box"];25 -> 637[label="",style="solid", color="burlywood", weight=9]; 637 -> 33[label="",style="solid", color="burlywood", weight=3]; 638[label="ww300/Zero",fontsize=10,color="white",style="solid",shape="box"];25 -> 638[label="",style="solid", color="burlywood", weight=9]; 638 -> 34[label="",style="solid", color="burlywood", weight=3]; 26[label="List.deleteBy0 ww31 (Neg ww300) primEqInt (Pos (Succ ww4000)) (primEqInt (Pos (Succ ww4000)) (Neg ww300))",fontsize=16,color="black",shape="box"];26 -> 35[label="",style="solid", color="black", weight=3]; 27[label="List.deleteBy0 ww31 (Pos ww300) primEqInt (Pos Zero) (primEqInt (Pos Zero) (Pos ww300))",fontsize=16,color="burlywood",shape="box"];639[label="ww300/Succ ww3000",fontsize=10,color="white",style="solid",shape="box"];27 -> 639[label="",style="solid", color="burlywood", weight=9]; 639 -> 36[label="",style="solid", color="burlywood", weight=3]; 640[label="ww300/Zero",fontsize=10,color="white",style="solid",shape="box"];27 -> 640[label="",style="solid", color="burlywood", weight=9]; 640 -> 37[label="",style="solid", color="burlywood", weight=3]; 28[label="List.deleteBy0 ww31 (Neg ww300) primEqInt (Pos Zero) (primEqInt (Pos Zero) (Neg ww300))",fontsize=16,color="burlywood",shape="box"];641[label="ww300/Succ ww3000",fontsize=10,color="white",style="solid",shape="box"];28 -> 641[label="",style="solid", color="burlywood", weight=9]; 641 -> 38[label="",style="solid", color="burlywood", weight=3]; 642[label="ww300/Zero",fontsize=10,color="white",style="solid",shape="box"];28 -> 642[label="",style="solid", color="burlywood", weight=9]; 642 -> 39[label="",style="solid", color="burlywood", weight=3]; 29[label="List.deleteBy0 ww31 (Pos ww300) primEqInt (Neg (Succ ww4000)) (primEqInt (Neg (Succ ww4000)) (Pos ww300))",fontsize=16,color="black",shape="box"];29 -> 40[label="",style="solid", color="black", weight=3]; 30[label="List.deleteBy0 ww31 (Neg ww300) primEqInt (Neg (Succ ww4000)) (primEqInt (Neg (Succ ww4000)) (Neg ww300))",fontsize=16,color="burlywood",shape="box"];643[label="ww300/Succ ww3000",fontsize=10,color="white",style="solid",shape="box"];30 -> 643[label="",style="solid", color="burlywood", weight=9]; 643 -> 41[label="",style="solid", color="burlywood", weight=3]; 644[label="ww300/Zero",fontsize=10,color="white",style="solid",shape="box"];30 -> 644[label="",style="solid", color="burlywood", weight=9]; 644 -> 42[label="",style="solid", color="burlywood", weight=3]; 31[label="List.deleteBy0 ww31 (Pos ww300) primEqInt (Neg Zero) (primEqInt (Neg Zero) (Pos ww300))",fontsize=16,color="burlywood",shape="box"];645[label="ww300/Succ ww3000",fontsize=10,color="white",style="solid",shape="box"];31 -> 645[label="",style="solid", color="burlywood", weight=9]; 645 -> 43[label="",style="solid", color="burlywood", weight=3]; 646[label="ww300/Zero",fontsize=10,color="white",style="solid",shape="box"];31 -> 646[label="",style="solid", color="burlywood", weight=9]; 646 -> 44[label="",style="solid", color="burlywood", weight=3]; 32[label="List.deleteBy0 ww31 (Neg ww300) primEqInt (Neg Zero) (primEqInt (Neg Zero) (Neg ww300))",fontsize=16,color="burlywood",shape="box"];647[label="ww300/Succ ww3000",fontsize=10,color="white",style="solid",shape="box"];32 -> 647[label="",style="solid", color="burlywood", weight=9]; 647 -> 45[label="",style="solid", color="burlywood", weight=3]; 648[label="ww300/Zero",fontsize=10,color="white",style="solid",shape="box"];32 -> 648[label="",style="solid", color="burlywood", weight=9]; 648 -> 46[label="",style="solid", color="burlywood", weight=3]; 33[label="List.deleteBy0 ww31 (Pos (Succ ww3000)) primEqInt (Pos (Succ ww4000)) (primEqInt (Pos (Succ ww4000)) (Pos (Succ ww3000)))",fontsize=16,color="black",shape="box"];33 -> 47[label="",style="solid", color="black", weight=3]; 34[label="List.deleteBy0 ww31 (Pos Zero) primEqInt (Pos (Succ ww4000)) (primEqInt (Pos (Succ ww4000)) (Pos Zero))",fontsize=16,color="black",shape="box"];34 -> 48[label="",style="solid", color="black", weight=3]; 35[label="List.deleteBy0 ww31 (Neg ww300) primEqInt (Pos (Succ ww4000)) False",fontsize=16,color="black",shape="box"];35 -> 49[label="",style="solid", color="black", weight=3]; 36[label="List.deleteBy0 ww31 (Pos (Succ ww3000)) primEqInt (Pos Zero) (primEqInt (Pos Zero) (Pos (Succ ww3000)))",fontsize=16,color="black",shape="box"];36 -> 50[label="",style="solid", color="black", weight=3]; 37[label="List.deleteBy0 ww31 (Pos Zero) primEqInt (Pos Zero) (primEqInt (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];37 -> 51[label="",style="solid", color="black", weight=3]; 38[label="List.deleteBy0 ww31 (Neg (Succ ww3000)) primEqInt (Pos Zero) (primEqInt (Pos Zero) (Neg (Succ ww3000)))",fontsize=16,color="black",shape="box"];38 -> 52[label="",style="solid", color="black", weight=3]; 39[label="List.deleteBy0 ww31 (Neg Zero) primEqInt (Pos Zero) (primEqInt (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];39 -> 53[label="",style="solid", color="black", weight=3]; 40[label="List.deleteBy0 ww31 (Pos ww300) primEqInt (Neg (Succ ww4000)) False",fontsize=16,color="black",shape="box"];40 -> 54[label="",style="solid", color="black", weight=3]; 41[label="List.deleteBy0 ww31 (Neg (Succ ww3000)) primEqInt (Neg (Succ ww4000)) (primEqInt (Neg (Succ ww4000)) (Neg (Succ ww3000)))",fontsize=16,color="black",shape="box"];41 -> 55[label="",style="solid", color="black", weight=3]; 42[label="List.deleteBy0 ww31 (Neg Zero) primEqInt (Neg (Succ ww4000)) (primEqInt (Neg (Succ ww4000)) (Neg Zero))",fontsize=16,color="black",shape="box"];42 -> 56[label="",style="solid", color="black", weight=3]; 43[label="List.deleteBy0 ww31 (Pos (Succ ww3000)) primEqInt (Neg Zero) (primEqInt (Neg Zero) (Pos (Succ ww3000)))",fontsize=16,color="black",shape="box"];43 -> 57[label="",style="solid", color="black", weight=3]; 44[label="List.deleteBy0 ww31 (Pos Zero) primEqInt (Neg Zero) (primEqInt (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];44 -> 58[label="",style="solid", color="black", weight=3]; 45[label="List.deleteBy0 ww31 (Neg (Succ ww3000)) primEqInt (Neg Zero) (primEqInt (Neg Zero) (Neg (Succ ww3000)))",fontsize=16,color="black",shape="box"];45 -> 59[label="",style="solid", color="black", weight=3]; 46[label="List.deleteBy0 ww31 (Neg Zero) primEqInt (Neg Zero) (primEqInt (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];46 -> 60[label="",style="solid", color="black", weight=3]; 47 -> 483[label="",style="dashed", color="red", weight=0]; 47[label="List.deleteBy0 ww31 (Pos (Succ ww3000)) primEqInt (Pos (Succ ww4000)) (primEqNat ww4000 ww3000)",fontsize=16,color="magenta"];47 -> 484[label="",style="dashed", color="magenta", weight=3]; 47 -> 485[label="",style="dashed", color="magenta", weight=3]; 47 -> 486[label="",style="dashed", color="magenta", weight=3]; 47 -> 487[label="",style="dashed", color="magenta", weight=3]; 47 -> 488[label="",style="dashed", color="magenta", weight=3]; 48[label="List.deleteBy0 ww31 (Pos Zero) primEqInt (Pos (Succ ww4000)) False",fontsize=16,color="black",shape="box"];48 -> 63[label="",style="solid", color="black", weight=3]; 49[label="Neg ww300 : List.deleteBy primEqInt (Pos (Succ ww4000)) ww31",fontsize=16,color="green",shape="box"];49 -> 64[label="",style="dashed", color="green", weight=3]; 50[label="List.deleteBy0 ww31 (Pos (Succ ww3000)) primEqInt (Pos Zero) False",fontsize=16,color="black",shape="box"];50 -> 65[label="",style="solid", color="black", weight=3]; 51[label="List.deleteBy0 ww31 (Pos Zero) primEqInt (Pos Zero) True",fontsize=16,color="black",shape="box"];51 -> 66[label="",style="solid", color="black", weight=3]; 52[label="List.deleteBy0 ww31 (Neg (Succ ww3000)) primEqInt (Pos Zero) False",fontsize=16,color="black",shape="box"];52 -> 67[label="",style="solid", color="black", weight=3]; 53[label="List.deleteBy0 ww31 (Neg Zero) primEqInt (Pos Zero) True",fontsize=16,color="black",shape="box"];53 -> 68[label="",style="solid", color="black", weight=3]; 54[label="Pos ww300 : List.deleteBy primEqInt (Neg (Succ ww4000)) ww31",fontsize=16,color="green",shape="box"];54 -> 69[label="",style="dashed", color="green", weight=3]; 55 -> 536[label="",style="dashed", color="red", weight=0]; 55[label="List.deleteBy0 ww31 (Neg (Succ ww3000)) primEqInt (Neg (Succ ww4000)) (primEqNat ww4000 ww3000)",fontsize=16,color="magenta"];55 -> 537[label="",style="dashed", color="magenta", weight=3]; 55 -> 538[label="",style="dashed", color="magenta", weight=3]; 55 -> 539[label="",style="dashed", color="magenta", weight=3]; 55 -> 540[label="",style="dashed", color="magenta", weight=3]; 55 -> 541[label="",style="dashed", color="magenta", weight=3]; 56[label="List.deleteBy0 ww31 (Neg Zero) primEqInt (Neg (Succ ww4000)) False",fontsize=16,color="black",shape="box"];56 -> 72[label="",style="solid", color="black", weight=3]; 57[label="List.deleteBy0 ww31 (Pos (Succ ww3000)) primEqInt (Neg Zero) False",fontsize=16,color="black",shape="box"];57 -> 73[label="",style="solid", color="black", weight=3]; 58[label="List.deleteBy0 ww31 (Pos Zero) primEqInt (Neg Zero) True",fontsize=16,color="black",shape="box"];58 -> 74[label="",style="solid", color="black", weight=3]; 59[label="List.deleteBy0 ww31 (Neg (Succ ww3000)) primEqInt (Neg Zero) False",fontsize=16,color="black",shape="box"];59 -> 75[label="",style="solid", color="black", weight=3]; 60[label="List.deleteBy0 ww31 (Neg Zero) primEqInt (Neg Zero) True",fontsize=16,color="black",shape="box"];60 -> 76[label="",style="solid", color="black", weight=3]; 484[label="ww4000",fontsize=16,color="green",shape="box"];485[label="ww3000",fontsize=16,color="green",shape="box"];486[label="ww3000",fontsize=16,color="green",shape="box"];487[label="ww4000",fontsize=16,color="green",shape="box"];488[label="ww31",fontsize=16,color="green",shape="box"];483[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat ww48 ww49)",fontsize=16,color="burlywood",shape="triangle"];649[label="ww48/Succ ww480",fontsize=10,color="white",style="solid",shape="box"];483 -> 649[label="",style="solid", color="burlywood", weight=9]; 649 -> 534[label="",style="solid", color="burlywood", weight=3]; 650[label="ww48/Zero",fontsize=10,color="white",style="solid",shape="box"];483 -> 650[label="",style="solid", color="burlywood", weight=9]; 650 -> 535[label="",style="solid", color="burlywood", weight=3]; 63[label="Pos Zero : List.deleteBy primEqInt (Pos (Succ ww4000)) ww31",fontsize=16,color="green",shape="box"];63 -> 81[label="",style="dashed", color="green", weight=3]; 64[label="List.deleteBy primEqInt (Pos (Succ ww4000)) ww31",fontsize=16,color="burlywood",shape="triangle"];651[label="ww31/ww310 : ww311",fontsize=10,color="white",style="solid",shape="box"];64 -> 651[label="",style="solid", color="burlywood", weight=9]; 651 -> 82[label="",style="solid", color="burlywood", weight=3]; 652[label="ww31/[]",fontsize=10,color="white",style="solid",shape="box"];64 -> 652[label="",style="solid", color="burlywood", weight=9]; 652 -> 83[label="",style="solid", color="burlywood", weight=3]; 65[label="Pos (Succ ww3000) : List.deleteBy primEqInt (Pos Zero) ww31",fontsize=16,color="green",shape="box"];65 -> 84[label="",style="dashed", color="green", weight=3]; 66[label="ww31",fontsize=16,color="green",shape="box"];67[label="Neg (Succ ww3000) : List.deleteBy primEqInt (Pos Zero) ww31",fontsize=16,color="green",shape="box"];67 -> 85[label="",style="dashed", color="green", weight=3]; 68[label="ww31",fontsize=16,color="green",shape="box"];69[label="List.deleteBy primEqInt (Neg (Succ ww4000)) ww31",fontsize=16,color="burlywood",shape="triangle"];653[label="ww31/ww310 : ww311",fontsize=10,color="white",style="solid",shape="box"];69 -> 653[label="",style="solid", color="burlywood", weight=9]; 653 -> 86[label="",style="solid", color="burlywood", weight=3]; 654[label="ww31/[]",fontsize=10,color="white",style="solid",shape="box"];69 -> 654[label="",style="solid", color="burlywood", weight=9]; 654 -> 87[label="",style="solid", color="burlywood", weight=3]; 537[label="ww3000",fontsize=16,color="green",shape="box"];538[label="ww3000",fontsize=16,color="green",shape="box"];539[label="ww4000",fontsize=16,color="green",shape="box"];540[label="ww31",fontsize=16,color="green",shape="box"];541[label="ww4000",fontsize=16,color="green",shape="box"];536[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat ww54 ww55)",fontsize=16,color="burlywood",shape="triangle"];655[label="ww54/Succ ww540",fontsize=10,color="white",style="solid",shape="box"];536 -> 655[label="",style="solid", color="burlywood", weight=9]; 655 -> 587[label="",style="solid", color="burlywood", weight=3]; 656[label="ww54/Zero",fontsize=10,color="white",style="solid",shape="box"];536 -> 656[label="",style="solid", color="burlywood", weight=9]; 656 -> 588[label="",style="solid", color="burlywood", weight=3]; 72[label="Neg Zero : List.deleteBy primEqInt (Neg (Succ ww4000)) ww31",fontsize=16,color="green",shape="box"];72 -> 92[label="",style="dashed", color="green", weight=3]; 73[label="Pos (Succ ww3000) : List.deleteBy primEqInt (Neg Zero) ww31",fontsize=16,color="green",shape="box"];73 -> 93[label="",style="dashed", color="green", weight=3]; 74[label="ww31",fontsize=16,color="green",shape="box"];75[label="Neg (Succ ww3000) : List.deleteBy primEqInt (Neg Zero) ww31",fontsize=16,color="green",shape="box"];75 -> 94[label="",style="dashed", color="green", weight=3]; 76[label="ww31",fontsize=16,color="green",shape="box"];534[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat (Succ ww480) ww49)",fontsize=16,color="burlywood",shape="box"];657[label="ww49/Succ ww490",fontsize=10,color="white",style="solid",shape="box"];534 -> 657[label="",style="solid", color="burlywood", weight=9]; 657 -> 589[label="",style="solid", color="burlywood", weight=3]; 658[label="ww49/Zero",fontsize=10,color="white",style="solid",shape="box"];534 -> 658[label="",style="solid", color="burlywood", weight=9]; 658 -> 590[label="",style="solid", color="burlywood", weight=3]; 535[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat Zero ww49)",fontsize=16,color="burlywood",shape="box"];659[label="ww49/Succ ww490",fontsize=10,color="white",style="solid",shape="box"];535 -> 659[label="",style="solid", color="burlywood", weight=9]; 659 -> 591[label="",style="solid", color="burlywood", weight=3]; 660[label="ww49/Zero",fontsize=10,color="white",style="solid",shape="box"];535 -> 660[label="",style="solid", color="burlywood", weight=9]; 660 -> 592[label="",style="solid", color="burlywood", weight=3]; 81 -> 64[label="",style="dashed", color="red", weight=0]; 81[label="List.deleteBy primEqInt (Pos (Succ ww4000)) ww31",fontsize=16,color="magenta"];82[label="List.deleteBy primEqInt (Pos (Succ ww4000)) (ww310 : ww311)",fontsize=16,color="black",shape="box"];82 -> 99[label="",style="solid", color="black", weight=3]; 83[label="List.deleteBy primEqInt (Pos (Succ ww4000)) []",fontsize=16,color="black",shape="box"];83 -> 100[label="",style="solid", color="black", weight=3]; 84[label="List.deleteBy primEqInt (Pos Zero) ww31",fontsize=16,color="burlywood",shape="triangle"];661[label="ww31/ww310 : ww311",fontsize=10,color="white",style="solid",shape="box"];84 -> 661[label="",style="solid", color="burlywood", weight=9]; 661 -> 101[label="",style="solid", color="burlywood", weight=3]; 662[label="ww31/[]",fontsize=10,color="white",style="solid",shape="box"];84 -> 662[label="",style="solid", color="burlywood", weight=9]; 662 -> 102[label="",style="solid", color="burlywood", weight=3]; 85 -> 84[label="",style="dashed", color="red", weight=0]; 85[label="List.deleteBy primEqInt (Pos Zero) ww31",fontsize=16,color="magenta"];86[label="List.deleteBy primEqInt (Neg (Succ ww4000)) (ww310 : ww311)",fontsize=16,color="black",shape="box"];86 -> 103[label="",style="solid", color="black", weight=3]; 87[label="List.deleteBy primEqInt (Neg (Succ ww4000)) []",fontsize=16,color="black",shape="box"];87 -> 104[label="",style="solid", color="black", weight=3]; 587[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat (Succ ww540) ww55)",fontsize=16,color="burlywood",shape="box"];663[label="ww55/Succ ww550",fontsize=10,color="white",style="solid",shape="box"];587 -> 663[label="",style="solid", color="burlywood", weight=9]; 663 -> 593[label="",style="solid", color="burlywood", weight=3]; 664[label="ww55/Zero",fontsize=10,color="white",style="solid",shape="box"];587 -> 664[label="",style="solid", color="burlywood", weight=9]; 664 -> 594[label="",style="solid", color="burlywood", weight=3]; 588[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat Zero ww55)",fontsize=16,color="burlywood",shape="box"];665[label="ww55/Succ ww550",fontsize=10,color="white",style="solid",shape="box"];588 -> 665[label="",style="solid", color="burlywood", weight=9]; 665 -> 595[label="",style="solid", color="burlywood", weight=3]; 666[label="ww55/Zero",fontsize=10,color="white",style="solid",shape="box"];588 -> 666[label="",style="solid", color="burlywood", weight=9]; 666 -> 596[label="",style="solid", color="burlywood", weight=3]; 92 -> 69[label="",style="dashed", color="red", weight=0]; 92[label="List.deleteBy primEqInt (Neg (Succ ww4000)) ww31",fontsize=16,color="magenta"];93[label="List.deleteBy primEqInt (Neg Zero) ww31",fontsize=16,color="burlywood",shape="triangle"];667[label="ww31/ww310 : ww311",fontsize=10,color="white",style="solid",shape="box"];93 -> 667[label="",style="solid", color="burlywood", weight=9]; 667 -> 109[label="",style="solid", color="burlywood", weight=3]; 668[label="ww31/[]",fontsize=10,color="white",style="solid",shape="box"];93 -> 668[label="",style="solid", color="burlywood", weight=9]; 668 -> 110[label="",style="solid", color="burlywood", weight=3]; 94 -> 93[label="",style="dashed", color="red", weight=0]; 94[label="List.deleteBy primEqInt (Neg Zero) ww31",fontsize=16,color="magenta"];589[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat (Succ ww480) (Succ ww490))",fontsize=16,color="black",shape="box"];589 -> 597[label="",style="solid", color="black", weight=3]; 590[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat (Succ ww480) Zero)",fontsize=16,color="black",shape="box"];590 -> 598[label="",style="solid", color="black", weight=3]; 591[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat Zero (Succ ww490))",fontsize=16,color="black",shape="box"];591 -> 599[label="",style="solid", color="black", weight=3]; 592[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat Zero Zero)",fontsize=16,color="black",shape="box"];592 -> 600[label="",style="solid", color="black", weight=3]; 99 -> 18[label="",style="dashed", color="red", weight=0]; 99[label="List.deleteBy0 ww311 ww310 primEqInt (Pos (Succ ww4000)) (primEqInt (Pos (Succ ww4000)) ww310)",fontsize=16,color="magenta"];99 -> 116[label="",style="dashed", color="magenta", weight=3]; 99 -> 117[label="",style="dashed", color="magenta", weight=3]; 99 -> 118[label="",style="dashed", color="magenta", weight=3]; 100[label="[]",fontsize=16,color="green",shape="box"];101[label="List.deleteBy primEqInt (Pos Zero) (ww310 : ww311)",fontsize=16,color="black",shape="box"];101 -> 119[label="",style="solid", color="black", weight=3]; 102[label="List.deleteBy primEqInt (Pos Zero) []",fontsize=16,color="black",shape="box"];102 -> 120[label="",style="solid", color="black", weight=3]; 103 -> 18[label="",style="dashed", color="red", weight=0]; 103[label="List.deleteBy0 ww311 ww310 primEqInt (Neg (Succ ww4000)) (primEqInt (Neg (Succ ww4000)) ww310)",fontsize=16,color="magenta"];103 -> 121[label="",style="dashed", color="magenta", weight=3]; 103 -> 122[label="",style="dashed", color="magenta", weight=3]; 103 -> 123[label="",style="dashed", color="magenta", weight=3]; 104[label="[]",fontsize=16,color="green",shape="box"];593[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat (Succ ww540) (Succ ww550))",fontsize=16,color="black",shape="box"];593 -> 601[label="",style="solid", color="black", weight=3]; 594[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat (Succ ww540) Zero)",fontsize=16,color="black",shape="box"];594 -> 602[label="",style="solid", color="black", weight=3]; 595[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat Zero (Succ ww550))",fontsize=16,color="black",shape="box"];595 -> 603[label="",style="solid", color="black", weight=3]; 596[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat Zero Zero)",fontsize=16,color="black",shape="box"];596 -> 604[label="",style="solid", color="black", weight=3]; 109[label="List.deleteBy primEqInt (Neg Zero) (ww310 : ww311)",fontsize=16,color="black",shape="box"];109 -> 129[label="",style="solid", color="black", weight=3]; 110[label="List.deleteBy primEqInt (Neg Zero) []",fontsize=16,color="black",shape="box"];110 -> 130[label="",style="solid", color="black", weight=3]; 597 -> 483[label="",style="dashed", color="red", weight=0]; 597[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat ww480 ww490)",fontsize=16,color="magenta"];597 -> 605[label="",style="dashed", color="magenta", weight=3]; 597 -> 606[label="",style="dashed", color="magenta", weight=3]; 598[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) False",fontsize=16,color="black",shape="triangle"];598 -> 607[label="",style="solid", color="black", weight=3]; 599 -> 598[label="",style="dashed", color="red", weight=0]; 599[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) False",fontsize=16,color="magenta"];600[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) True",fontsize=16,color="black",shape="box"];600 -> 608[label="",style="solid", color="black", weight=3]; 116[label="ww310",fontsize=16,color="green",shape="box"];117[label="Pos (Succ ww4000)",fontsize=16,color="green",shape="box"];118[label="ww311",fontsize=16,color="green",shape="box"];119 -> 18[label="",style="dashed", color="red", weight=0]; 119[label="List.deleteBy0 ww311 ww310 primEqInt (Pos Zero) (primEqInt (Pos Zero) ww310)",fontsize=16,color="magenta"];119 -> 137[label="",style="dashed", color="magenta", weight=3]; 119 -> 138[label="",style="dashed", color="magenta", weight=3]; 119 -> 139[label="",style="dashed", color="magenta", weight=3]; 120[label="[]",fontsize=16,color="green",shape="box"];121[label="ww310",fontsize=16,color="green",shape="box"];122[label="Neg (Succ ww4000)",fontsize=16,color="green",shape="box"];123[label="ww311",fontsize=16,color="green",shape="box"];601 -> 536[label="",style="dashed", color="red", weight=0]; 601[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat ww540 ww550)",fontsize=16,color="magenta"];601 -> 609[label="",style="dashed", color="magenta", weight=3]; 601 -> 610[label="",style="dashed", color="magenta", weight=3]; 602[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) False",fontsize=16,color="black",shape="triangle"];602 -> 611[label="",style="solid", color="black", weight=3]; 603 -> 602[label="",style="dashed", color="red", weight=0]; 603[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) False",fontsize=16,color="magenta"];604[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) True",fontsize=16,color="black",shape="box"];604 -> 612[label="",style="solid", color="black", weight=3]; 129 -> 18[label="",style="dashed", color="red", weight=0]; 129[label="List.deleteBy0 ww311 ww310 primEqInt (Neg Zero) (primEqInt (Neg Zero) ww310)",fontsize=16,color="magenta"];129 -> 146[label="",style="dashed", color="magenta", weight=3]; 129 -> 147[label="",style="dashed", color="magenta", weight=3]; 129 -> 148[label="",style="dashed", color="magenta", weight=3]; 130[label="[]",fontsize=16,color="green",shape="box"];605[label="ww480",fontsize=16,color="green",shape="box"];606[label="ww490",fontsize=16,color="green",shape="box"];607[label="Pos (Succ ww46) : List.deleteBy primEqInt (Pos (Succ ww47)) ww45",fontsize=16,color="green",shape="box"];607 -> 613[label="",style="dashed", color="green", weight=3]; 608[label="ww45",fontsize=16,color="green",shape="box"];137[label="ww310",fontsize=16,color="green",shape="box"];138[label="Pos Zero",fontsize=16,color="green",shape="box"];139[label="ww311",fontsize=16,color="green",shape="box"];609[label="ww550",fontsize=16,color="green",shape="box"];610[label="ww540",fontsize=16,color="green",shape="box"];611[label="Neg (Succ ww52) : List.deleteBy primEqInt (Neg (Succ ww53)) ww51",fontsize=16,color="green",shape="box"];611 -> 614[label="",style="dashed", color="green", weight=3]; 612[label="ww51",fontsize=16,color="green",shape="box"];146[label="ww310",fontsize=16,color="green",shape="box"];147[label="Neg Zero",fontsize=16,color="green",shape="box"];148[label="ww311",fontsize=16,color="green",shape="box"];613 -> 64[label="",style="dashed", color="red", weight=0]; 613[label="List.deleteBy primEqInt (Pos (Succ ww47)) ww45",fontsize=16,color="magenta"];613 -> 615[label="",style="dashed", color="magenta", weight=3]; 613 -> 616[label="",style="dashed", color="magenta", weight=3]; 614 -> 69[label="",style="dashed", color="red", weight=0]; 614[label="List.deleteBy primEqInt (Neg (Succ ww53)) ww51",fontsize=16,color="magenta"];614 -> 617[label="",style="dashed", color="magenta", weight=3]; 614 -> 618[label="",style="dashed", color="magenta", weight=3]; 615[label="ww47",fontsize=16,color="green",shape="box"];616[label="ww45",fontsize=16,color="green",shape="box"];617[label="ww51",fontsize=16,color="green",shape="box"];618[label="ww53",fontsize=16,color="green",shape="box"];} ---------------------------------------- (8) Complex Obligation (AND) ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy0(ww45, ww46, ww47, Succ(ww480), Zero) -> new_deleteBy(ww47, ww45) new_deleteBy02(ww51, ww52, ww53, Succ(ww540), Zero) -> new_deleteBy2(ww53, ww51) new_deleteBy(ww4000, :(ww310, ww311)) -> new_deleteBy01(ww311, ww310, Pos(Succ(ww4000))) new_deleteBy02(ww51, ww52, ww53, Zero, Succ(ww550)) -> new_deleteBy03(ww51, ww52, ww53) new_deleteBy03(ww51, ww52, ww53) -> new_deleteBy2(ww53, ww51) new_deleteBy00(ww45, ww46, ww47) -> new_deleteBy(ww47, ww45) new_deleteBy01(:(ww310, ww311), Pos(Succ(ww3000)), Pos(Zero)) -> new_deleteBy01(ww311, ww310, Pos(Zero)) new_deleteBy01(:(ww310, ww311), Pos(Succ(ww3000)), Neg(Zero)) -> new_deleteBy01(ww311, ww310, Neg(Zero)) new_deleteBy01(ww31, Neg(Succ(ww3000)), Neg(Zero)) -> new_deleteBy3(ww31) new_deleteBy01(ww31, Pos(Succ(ww3000)), Pos(Succ(ww4000))) -> new_deleteBy0(ww31, ww3000, ww4000, ww4000, ww3000) new_deleteBy01(:(ww310, ww311), Neg(ww300), Pos(Succ(ww4000))) -> new_deleteBy01(ww311, ww310, Pos(Succ(ww4000))) new_deleteBy01(ww31, Neg(Succ(ww3000)), Pos(Zero)) -> new_deleteBy1(ww31) new_deleteBy02(ww51, ww52, ww53, Succ(ww540), Succ(ww550)) -> new_deleteBy02(ww51, ww52, ww53, ww540, ww550) new_deleteBy0(ww45, ww46, ww47, Zero, Succ(ww490)) -> new_deleteBy00(ww45, ww46, ww47) new_deleteBy01(ww31, Neg(Succ(ww3000)), Neg(Succ(ww4000))) -> new_deleteBy02(ww31, ww3000, ww4000, ww4000, ww3000) new_deleteBy2(ww4000, :(ww310, ww311)) -> new_deleteBy01(ww311, ww310, Neg(Succ(ww4000))) new_deleteBy3(:(ww310, ww311)) -> new_deleteBy01(ww311, ww310, Neg(Zero)) new_deleteBy0(ww45, ww46, ww47, Succ(ww480), Succ(ww490)) -> new_deleteBy0(ww45, ww46, ww47, ww480, ww490) new_deleteBy1(:(ww310, ww311)) -> new_deleteBy01(ww311, ww310, Pos(Zero)) new_deleteBy01(ww31, Neg(Zero), Neg(Succ(ww4000))) -> new_deleteBy2(ww4000, ww31) new_deleteBy01(ww31, Pos(Zero), Pos(Succ(ww4000))) -> new_deleteBy(ww4000, ww31) new_deleteBy01(:(ww310, ww311), Pos(ww300), Neg(Succ(ww4000))) -> new_deleteBy01(ww311, ww310, Neg(Succ(ww4000))) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 4 SCCs. ---------------------------------------- (11) Complex Obligation (AND) ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy01(ww31, Neg(Succ(ww3000)), Neg(Zero)) -> new_deleteBy3(ww31) new_deleteBy3(:(ww310, ww311)) -> new_deleteBy01(ww311, ww310, Neg(Zero)) new_deleteBy01(:(ww310, ww311), Pos(Succ(ww3000)), Neg(Zero)) -> new_deleteBy01(ww311, ww310, Neg(Zero)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_deleteBy3(:(ww310, ww311)) -> new_deleteBy01(ww311, ww310, Neg(Zero)) The graph contains the following edges 1 > 1, 1 > 2 *new_deleteBy01(:(ww310, ww311), Pos(Succ(ww3000)), Neg(Zero)) -> new_deleteBy01(ww311, ww310, Neg(Zero)) The graph contains the following edges 1 > 1, 1 > 2, 3 >= 3 *new_deleteBy01(ww31, Neg(Succ(ww3000)), Neg(Zero)) -> new_deleteBy3(ww31) The graph contains the following edges 1 >= 1 ---------------------------------------- (14) YES ---------------------------------------- (15) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy01(ww31, Neg(Succ(ww3000)), Pos(Zero)) -> new_deleteBy1(ww31) new_deleteBy1(:(ww310, ww311)) -> new_deleteBy01(ww311, ww310, Pos(Zero)) new_deleteBy01(:(ww310, ww311), Pos(Succ(ww3000)), Pos(Zero)) -> new_deleteBy01(ww311, ww310, Pos(Zero)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (16) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_deleteBy1(:(ww310, ww311)) -> new_deleteBy01(ww311, ww310, Pos(Zero)) The graph contains the following edges 1 > 1, 1 > 2 *new_deleteBy01(:(ww310, ww311), Pos(Succ(ww3000)), Pos(Zero)) -> new_deleteBy01(ww311, ww310, Pos(Zero)) The graph contains the following edges 1 > 1, 1 > 2, 3 >= 3 *new_deleteBy01(ww31, Neg(Succ(ww3000)), Pos(Zero)) -> new_deleteBy1(ww31) The graph contains the following edges 1 >= 1 ---------------------------------------- (17) YES ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy2(ww4000, :(ww310, ww311)) -> new_deleteBy01(ww311, ww310, Neg(Succ(ww4000))) new_deleteBy01(ww31, Neg(Succ(ww3000)), Neg(Succ(ww4000))) -> new_deleteBy02(ww31, ww3000, ww4000, ww4000, ww3000) new_deleteBy02(ww51, ww52, ww53, Succ(ww540), Zero) -> new_deleteBy2(ww53, ww51) new_deleteBy02(ww51, ww52, ww53, Zero, Succ(ww550)) -> new_deleteBy03(ww51, ww52, ww53) new_deleteBy03(ww51, ww52, ww53) -> new_deleteBy2(ww53, ww51) new_deleteBy02(ww51, ww52, ww53, Succ(ww540), Succ(ww550)) -> new_deleteBy02(ww51, ww52, ww53, ww540, ww550) new_deleteBy01(ww31, Neg(Zero), Neg(Succ(ww4000))) -> new_deleteBy2(ww4000, ww31) new_deleteBy01(:(ww310, ww311), Pos(ww300), Neg(Succ(ww4000))) -> new_deleteBy01(ww311, ww310, Neg(Succ(ww4000))) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (19) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_deleteBy01(ww31, Neg(Zero), Neg(Succ(ww4000))) -> new_deleteBy2(ww4000, ww31) The graph contains the following edges 3 > 1, 1 >= 2 *new_deleteBy01(:(ww310, ww311), Pos(ww300), Neg(Succ(ww4000))) -> new_deleteBy01(ww311, ww310, Neg(Succ(ww4000))) The graph contains the following edges 1 > 1, 1 > 2, 3 >= 3 *new_deleteBy01(ww31, Neg(Succ(ww3000)), Neg(Succ(ww4000))) -> new_deleteBy02(ww31, ww3000, ww4000, ww4000, ww3000) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 3 > 4, 2 > 5 *new_deleteBy02(ww51, ww52, ww53, Succ(ww540), Zero) -> new_deleteBy2(ww53, ww51) The graph contains the following edges 3 >= 1, 1 >= 2 *new_deleteBy03(ww51, ww52, ww53) -> new_deleteBy2(ww53, ww51) The graph contains the following edges 3 >= 1, 1 >= 2 *new_deleteBy2(ww4000, :(ww310, ww311)) -> new_deleteBy01(ww311, ww310, Neg(Succ(ww4000))) The graph contains the following edges 2 > 1, 2 > 2 *new_deleteBy02(ww51, ww52, ww53, Succ(ww540), Succ(ww550)) -> new_deleteBy02(ww51, ww52, ww53, ww540, ww550) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4, 5 > 5 *new_deleteBy02(ww51, ww52, ww53, Zero, Succ(ww550)) -> new_deleteBy03(ww51, ww52, ww53) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3 ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy(ww4000, :(ww310, ww311)) -> new_deleteBy01(ww311, ww310, Pos(Succ(ww4000))) new_deleteBy01(ww31, Pos(Succ(ww3000)), Pos(Succ(ww4000))) -> new_deleteBy0(ww31, ww3000, ww4000, ww4000, ww3000) new_deleteBy0(ww45, ww46, ww47, Succ(ww480), Zero) -> new_deleteBy(ww47, ww45) new_deleteBy0(ww45, ww46, ww47, Zero, Succ(ww490)) -> new_deleteBy00(ww45, ww46, ww47) new_deleteBy00(ww45, ww46, ww47) -> new_deleteBy(ww47, ww45) new_deleteBy0(ww45, ww46, ww47, Succ(ww480), Succ(ww490)) -> new_deleteBy0(ww45, ww46, ww47, ww480, ww490) new_deleteBy01(:(ww310, ww311), Neg(ww300), Pos(Succ(ww4000))) -> new_deleteBy01(ww311, ww310, Pos(Succ(ww4000))) new_deleteBy01(ww31, Pos(Zero), Pos(Succ(ww4000))) -> new_deleteBy(ww4000, ww31) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (22) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_deleteBy01(ww31, Pos(Zero), Pos(Succ(ww4000))) -> new_deleteBy(ww4000, ww31) The graph contains the following edges 3 > 1, 1 >= 2 *new_deleteBy01(:(ww310, ww311), Neg(ww300), Pos(Succ(ww4000))) -> new_deleteBy01(ww311, ww310, Pos(Succ(ww4000))) The graph contains the following edges 1 > 1, 1 > 2, 3 >= 3 *new_deleteBy01(ww31, Pos(Succ(ww3000)), Pos(Succ(ww4000))) -> new_deleteBy0(ww31, ww3000, ww4000, ww4000, ww3000) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 3 > 4, 2 > 5 *new_deleteBy0(ww45, ww46, ww47, Succ(ww480), Zero) -> new_deleteBy(ww47, ww45) The graph contains the following edges 3 >= 1, 1 >= 2 *new_deleteBy00(ww45, ww46, ww47) -> new_deleteBy(ww47, ww45) The graph contains the following edges 3 >= 1, 1 >= 2 *new_deleteBy(ww4000, :(ww310, ww311)) -> new_deleteBy01(ww311, ww310, Pos(Succ(ww4000))) The graph contains the following edges 2 > 1, 2 > 2 *new_deleteBy0(ww45, ww46, ww47, Succ(ww480), Succ(ww490)) -> new_deleteBy0(ww45, ww46, ww47, ww480, ww490) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4, 5 > 5 *new_deleteBy0(ww45, ww46, ww47, Zero, Succ(ww490)) -> new_deleteBy00(ww45, ww46, ww47) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3 ---------------------------------------- (23) YES ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: new_foldl(ww3, :(ww40, ww41)) -> new_foldl(new_deleteBy4(ww40, ww3), ww41) The TRS R consists of the following rules: new_deleteBy04(ww45, ww46, ww47, Zero, Zero) -> ww45 new_deleteBy07(ww51, ww52, ww53, Succ(ww540), Zero) -> new_deleteBy08(ww51, ww52, ww53) new_deleteBy07(ww51, ww52, ww53, Zero, Succ(ww550)) -> new_deleteBy08(ww51, ww52, ww53) new_deleteBy4(ww40, []) -> [] new_deleteBy06(ww31, Neg(Zero), Neg(Succ(ww4000))) -> :(Neg(Zero), new_deleteBy8(ww4000, ww31)) new_deleteBy06(ww31, Pos(Succ(ww3000)), Pos(Succ(ww4000))) -> new_deleteBy04(ww31, ww3000, ww4000, ww4000, ww3000) new_deleteBy7(:(ww310, ww311)) -> new_deleteBy06(ww311, ww310, Pos(Zero)) new_deleteBy06(ww31, Neg(Succ(ww3000)), Pos(Zero)) -> :(Neg(Succ(ww3000)), new_deleteBy7(ww31)) new_deleteBy6(ww4000, []) -> [] new_deleteBy06(ww31, Pos(Zero), Pos(Succ(ww4000))) -> :(Pos(Zero), new_deleteBy6(ww4000, ww31)) new_deleteBy4(ww40, :(ww30, ww31)) -> new_deleteBy06(ww31, ww30, ww40) new_deleteBy8(ww4000, []) -> [] new_deleteBy04(ww45, ww46, ww47, Succ(ww480), Zero) -> new_deleteBy05(ww45, ww46, ww47) new_deleteBy04(ww45, ww46, ww47, Zero, Succ(ww490)) -> new_deleteBy05(ww45, ww46, ww47) new_deleteBy06(ww31, Pos(Zero), Pos(Zero)) -> ww31 new_deleteBy06(ww31, Neg(Zero), Pos(Zero)) -> ww31 new_deleteBy06(ww31, Pos(Zero), Neg(Zero)) -> ww31 new_deleteBy06(ww31, Neg(Succ(ww3000)), Neg(Zero)) -> :(Neg(Succ(ww3000)), new_deleteBy5(ww31)) new_deleteBy5(:(ww310, ww311)) -> new_deleteBy06(ww311, ww310, Neg(Zero)) new_deleteBy06(ww31, Neg(ww300), Pos(Succ(ww4000))) -> :(Neg(ww300), new_deleteBy6(ww4000, ww31)) new_deleteBy06(ww31, Pos(Succ(ww3000)), Pos(Zero)) -> :(Pos(Succ(ww3000)), new_deleteBy7(ww31)) new_deleteBy04(ww45, ww46, ww47, Succ(ww480), Succ(ww490)) -> new_deleteBy04(ww45, ww46, ww47, ww480, ww490) new_deleteBy06(ww31, Pos(Succ(ww3000)), Neg(Zero)) -> :(Pos(Succ(ww3000)), new_deleteBy5(ww31)) new_deleteBy06(ww31, Neg(Zero), Neg(Zero)) -> ww31 new_deleteBy06(ww31, Neg(Succ(ww3000)), Neg(Succ(ww4000))) -> new_deleteBy07(ww31, ww3000, ww4000, ww4000, ww3000) new_deleteBy7([]) -> [] new_deleteBy5([]) -> [] new_deleteBy07(ww51, ww52, ww53, Succ(ww540), Succ(ww550)) -> new_deleteBy07(ww51, ww52, ww53, ww540, ww550) new_deleteBy07(ww51, ww52, ww53, Zero, Zero) -> ww51 new_deleteBy06(ww31, Pos(ww300), Neg(Succ(ww4000))) -> :(Pos(ww300), new_deleteBy8(ww4000, ww31)) new_deleteBy05(ww45, ww46, ww47) -> :(Pos(Succ(ww46)), new_deleteBy6(ww47, ww45)) new_deleteBy8(ww4000, :(ww310, ww311)) -> new_deleteBy06(ww311, ww310, Neg(Succ(ww4000))) new_deleteBy6(ww4000, :(ww310, ww311)) -> new_deleteBy06(ww311, ww310, Pos(Succ(ww4000))) new_deleteBy08(ww51, ww52, ww53) -> :(Neg(Succ(ww52)), new_deleteBy8(ww53, ww51)) The set Q consists of the following terms: new_deleteBy06(x0, Neg(Succ(x1)), Neg(Zero)) new_deleteBy04(x0, x1, x2, Succ(x3), Zero) new_deleteBy07(x0, x1, x2, Zero, Succ(x3)) new_deleteBy6(x0, :(x1, x2)) new_deleteBy08(x0, x1, x2) new_deleteBy05(x0, x1, x2) new_deleteBy07(x0, x1, x2, Succ(x3), Zero) new_deleteBy04(x0, x1, x2, Succ(x3), Succ(x4)) new_deleteBy5(:(x0, x1)) new_deleteBy7([]) new_deleteBy6(x0, []) new_deleteBy04(x0, x1, x2, Zero, Zero) new_deleteBy8(x0, []) new_deleteBy06(x0, Pos(Zero), Pos(Succ(x1))) new_deleteBy06(x0, Neg(Zero), Neg(Zero)) new_deleteBy4(x0, []) new_deleteBy06(x0, Neg(Zero), Pos(Zero)) new_deleteBy06(x0, Pos(Zero), Neg(Zero)) new_deleteBy06(x0, Pos(Succ(x1)), Pos(Zero)) new_deleteBy8(x0, :(x1, x2)) new_deleteBy04(x0, x1, x2, Zero, Succ(x3)) new_deleteBy06(x0, Pos(Zero), Pos(Zero)) new_deleteBy06(x0, Neg(Succ(x1)), Neg(Succ(x2))) new_deleteBy06(x0, Neg(Succ(x1)), Pos(Zero)) new_deleteBy06(x0, Pos(Succ(x1)), Neg(Zero)) new_deleteBy5([]) new_deleteBy7(:(x0, x1)) new_deleteBy06(x0, Pos(Succ(x1)), Pos(Succ(x2))) new_deleteBy07(x0, x1, x2, Zero, Zero) new_deleteBy06(x0, Neg(x1), Pos(Succ(x2))) new_deleteBy06(x0, Pos(x1), Neg(Succ(x2))) new_deleteBy4(x0, :(x1, x2)) new_deleteBy07(x0, x1, x2, Succ(x3), Succ(x4)) new_deleteBy06(x0, Neg(Zero), Neg(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_foldl(ww3, :(ww40, ww41)) -> new_foldl(new_deleteBy4(ww40, ww3), ww41) The graph contains the following edges 2 > 2 ---------------------------------------- (26) YES