/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.hs /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty H-Termination with start terms of the given HASKELL could be proven: (0) HASKELL (1) IFR [EQUIVALENT, 0 ms] (2) HASKELL (3) BR [EQUIVALENT, 0 ms] (4) HASKELL (5) COR [EQUIVALENT, 20 ms] (6) HASKELL (7) Narrow [SOUND, 0 ms] (8) QDP (9) DependencyGraphProof [EQUIVALENT, 0 ms] (10) AND (11) QDP (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] (13) YES (14) QDP (15) QDPSizeChangeProof [EQUIVALENT, 0 ms] (16) YES (17) QDP (18) QDPSizeChangeProof [EQUIVALENT, 0 ms] (19) YES (20) QDP (21) QDPSizeChangeProof [EQUIVALENT, 0 ms] (22) 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; 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; 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; 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; 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.delete",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="List.delete ww3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="List.delete ww3 ww4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="List.deleteBy (==) ww3 ww4",fontsize=16,color="burlywood",shape="box"];611[label="ww4/ww40 : ww41",fontsize=10,color="white",style="solid",shape="box"];5 -> 611[label="",style="solid", color="burlywood", weight=9]; 611 -> 6[label="",style="solid", color="burlywood", weight=3]; 612[label="ww4/[]",fontsize=10,color="white",style="solid",shape="box"];5 -> 612[label="",style="solid", color="burlywood", weight=9]; 612 -> 7[label="",style="solid", color="burlywood", weight=3]; 6[label="List.deleteBy (==) ww3 (ww40 : ww41)",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 7[label="List.deleteBy (==) ww3 []",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="List.deleteBy0 ww41 ww40 (==) ww3 ((==) ww3 ww40)",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 9[label="[]",fontsize=16,color="green",shape="box"];10[label="List.deleteBy0 ww41 ww40 primEqInt ww3 (primEqInt ww3 ww40)",fontsize=16,color="burlywood",shape="triangle"];613[label="ww3/Pos ww30",fontsize=10,color="white",style="solid",shape="box"];10 -> 613[label="",style="solid", color="burlywood", weight=9]; 613 -> 11[label="",style="solid", color="burlywood", weight=3]; 614[label="ww3/Neg ww30",fontsize=10,color="white",style="solid",shape="box"];10 -> 614[label="",style="solid", color="burlywood", weight=9]; 614 -> 12[label="",style="solid", color="burlywood", weight=3]; 11[label="List.deleteBy0 ww41 ww40 primEqInt (Pos ww30) (primEqInt (Pos ww30) ww40)",fontsize=16,color="burlywood",shape="box"];615[label="ww30/Succ ww300",fontsize=10,color="white",style="solid",shape="box"];11 -> 615[label="",style="solid", color="burlywood", weight=9]; 615 -> 13[label="",style="solid", color="burlywood", weight=3]; 616[label="ww30/Zero",fontsize=10,color="white",style="solid",shape="box"];11 -> 616[label="",style="solid", color="burlywood", weight=9]; 616 -> 14[label="",style="solid", color="burlywood", weight=3]; 12[label="List.deleteBy0 ww41 ww40 primEqInt (Neg ww30) (primEqInt (Neg ww30) ww40)",fontsize=16,color="burlywood",shape="box"];617[label="ww30/Succ ww300",fontsize=10,color="white",style="solid",shape="box"];12 -> 617[label="",style="solid", color="burlywood", weight=9]; 617 -> 15[label="",style="solid", color="burlywood", weight=3]; 618[label="ww30/Zero",fontsize=10,color="white",style="solid",shape="box"];12 -> 618[label="",style="solid", color="burlywood", weight=9]; 618 -> 16[label="",style="solid", color="burlywood", weight=3]; 13[label="List.deleteBy0 ww41 ww40 primEqInt (Pos (Succ ww300)) (primEqInt (Pos (Succ ww300)) ww40)",fontsize=16,color="burlywood",shape="box"];619[label="ww40/Pos ww400",fontsize=10,color="white",style="solid",shape="box"];13 -> 619[label="",style="solid", color="burlywood", weight=9]; 619 -> 17[label="",style="solid", color="burlywood", weight=3]; 620[label="ww40/Neg ww400",fontsize=10,color="white",style="solid",shape="box"];13 -> 620[label="",style="solid", color="burlywood", weight=9]; 620 -> 18[label="",style="solid", color="burlywood", weight=3]; 14[label="List.deleteBy0 ww41 ww40 primEqInt (Pos Zero) (primEqInt (Pos Zero) ww40)",fontsize=16,color="burlywood",shape="box"];621[label="ww40/Pos ww400",fontsize=10,color="white",style="solid",shape="box"];14 -> 621[label="",style="solid", color="burlywood", weight=9]; 621 -> 19[label="",style="solid", color="burlywood", weight=3]; 622[label="ww40/Neg ww400",fontsize=10,color="white",style="solid",shape="box"];14 -> 622[label="",style="solid", color="burlywood", weight=9]; 622 -> 20[label="",style="solid", color="burlywood", weight=3]; 15[label="List.deleteBy0 ww41 ww40 primEqInt (Neg (Succ ww300)) (primEqInt (Neg (Succ ww300)) ww40)",fontsize=16,color="burlywood",shape="box"];623[label="ww40/Pos ww400",fontsize=10,color="white",style="solid",shape="box"];15 -> 623[label="",style="solid", color="burlywood", weight=9]; 623 -> 21[label="",style="solid", color="burlywood", weight=3]; 624[label="ww40/Neg ww400",fontsize=10,color="white",style="solid",shape="box"];15 -> 624[label="",style="solid", color="burlywood", weight=9]; 624 -> 22[label="",style="solid", color="burlywood", weight=3]; 16[label="List.deleteBy0 ww41 ww40 primEqInt (Neg Zero) (primEqInt (Neg Zero) ww40)",fontsize=16,color="burlywood",shape="box"];625[label="ww40/Pos ww400",fontsize=10,color="white",style="solid",shape="box"];16 -> 625[label="",style="solid", color="burlywood", weight=9]; 625 -> 23[label="",style="solid", color="burlywood", weight=3]; 626[label="ww40/Neg ww400",fontsize=10,color="white",style="solid",shape="box"];16 -> 626[label="",style="solid", color="burlywood", weight=9]; 626 -> 24[label="",style="solid", color="burlywood", weight=3]; 17[label="List.deleteBy0 ww41 (Pos ww400) primEqInt (Pos (Succ ww300)) (primEqInt (Pos (Succ ww300)) (Pos ww400))",fontsize=16,color="burlywood",shape="box"];627[label="ww400/Succ ww4000",fontsize=10,color="white",style="solid",shape="box"];17 -> 627[label="",style="solid", color="burlywood", weight=9]; 627 -> 25[label="",style="solid", color="burlywood", weight=3]; 628[label="ww400/Zero",fontsize=10,color="white",style="solid",shape="box"];17 -> 628[label="",style="solid", color="burlywood", weight=9]; 628 -> 26[label="",style="solid", color="burlywood", weight=3]; 18[label="List.deleteBy0 ww41 (Neg ww400) primEqInt (Pos (Succ ww300)) (primEqInt (Pos (Succ ww300)) (Neg ww400))",fontsize=16,color="black",shape="box"];18 -> 27[label="",style="solid", color="black", weight=3]; 19[label="List.deleteBy0 ww41 (Pos ww400) primEqInt (Pos Zero) (primEqInt (Pos Zero) (Pos ww400))",fontsize=16,color="burlywood",shape="box"];629[label="ww400/Succ ww4000",fontsize=10,color="white",style="solid",shape="box"];19 -> 629[label="",style="solid", color="burlywood", weight=9]; 629 -> 28[label="",style="solid", color="burlywood", weight=3]; 630[label="ww400/Zero",fontsize=10,color="white",style="solid",shape="box"];19 -> 630[label="",style="solid", color="burlywood", weight=9]; 630 -> 29[label="",style="solid", color="burlywood", weight=3]; 20[label="List.deleteBy0 ww41 (Neg ww400) primEqInt (Pos Zero) (primEqInt (Pos Zero) (Neg ww400))",fontsize=16,color="burlywood",shape="box"];631[label="ww400/Succ ww4000",fontsize=10,color="white",style="solid",shape="box"];20 -> 631[label="",style="solid", color="burlywood", weight=9]; 631 -> 30[label="",style="solid", color="burlywood", weight=3]; 632[label="ww400/Zero",fontsize=10,color="white",style="solid",shape="box"];20 -> 632[label="",style="solid", color="burlywood", weight=9]; 632 -> 31[label="",style="solid", color="burlywood", weight=3]; 21[label="List.deleteBy0 ww41 (Pos ww400) primEqInt (Neg (Succ ww300)) (primEqInt (Neg (Succ ww300)) (Pos ww400))",fontsize=16,color="black",shape="box"];21 -> 32[label="",style="solid", color="black", weight=3]; 22[label="List.deleteBy0 ww41 (Neg ww400) primEqInt (Neg (Succ ww300)) (primEqInt (Neg (Succ ww300)) (Neg ww400))",fontsize=16,color="burlywood",shape="box"];633[label="ww400/Succ ww4000",fontsize=10,color="white",style="solid",shape="box"];22 -> 633[label="",style="solid", color="burlywood", weight=9]; 633 -> 33[label="",style="solid", color="burlywood", weight=3]; 634[label="ww400/Zero",fontsize=10,color="white",style="solid",shape="box"];22 -> 634[label="",style="solid", color="burlywood", weight=9]; 634 -> 34[label="",style="solid", color="burlywood", weight=3]; 23[label="List.deleteBy0 ww41 (Pos ww400) primEqInt (Neg Zero) (primEqInt (Neg Zero) (Pos ww400))",fontsize=16,color="burlywood",shape="box"];635[label="ww400/Succ ww4000",fontsize=10,color="white",style="solid",shape="box"];23 -> 635[label="",style="solid", color="burlywood", weight=9]; 635 -> 35[label="",style="solid", color="burlywood", weight=3]; 636[label="ww400/Zero",fontsize=10,color="white",style="solid",shape="box"];23 -> 636[label="",style="solid", color="burlywood", weight=9]; 636 -> 36[label="",style="solid", color="burlywood", weight=3]; 24[label="List.deleteBy0 ww41 (Neg ww400) primEqInt (Neg Zero) (primEqInt (Neg Zero) (Neg ww400))",fontsize=16,color="burlywood",shape="box"];637[label="ww400/Succ ww4000",fontsize=10,color="white",style="solid",shape="box"];24 -> 637[label="",style="solid", color="burlywood", weight=9]; 637 -> 37[label="",style="solid", color="burlywood", weight=3]; 638[label="ww400/Zero",fontsize=10,color="white",style="solid",shape="box"];24 -> 638[label="",style="solid", color="burlywood", weight=9]; 638 -> 38[label="",style="solid", color="burlywood", weight=3]; 25[label="List.deleteBy0 ww41 (Pos (Succ ww4000)) primEqInt (Pos (Succ ww300)) (primEqInt (Pos (Succ ww300)) (Pos (Succ ww4000)))",fontsize=16,color="black",shape="box"];25 -> 39[label="",style="solid", color="black", weight=3]; 26[label="List.deleteBy0 ww41 (Pos Zero) primEqInt (Pos (Succ ww300)) (primEqInt (Pos (Succ ww300)) (Pos Zero))",fontsize=16,color="black",shape="box"];26 -> 40[label="",style="solid", color="black", weight=3]; 27[label="List.deleteBy0 ww41 (Neg ww400) primEqInt (Pos (Succ ww300)) False",fontsize=16,color="black",shape="box"];27 -> 41[label="",style="solid", color="black", weight=3]; 28[label="List.deleteBy0 ww41 (Pos (Succ ww4000)) primEqInt (Pos Zero) (primEqInt (Pos Zero) (Pos (Succ ww4000)))",fontsize=16,color="black",shape="box"];28 -> 42[label="",style="solid", color="black", weight=3]; 29[label="List.deleteBy0 ww41 (Pos Zero) primEqInt (Pos Zero) (primEqInt (Pos Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];29 -> 43[label="",style="solid", color="black", weight=3]; 30[label="List.deleteBy0 ww41 (Neg (Succ ww4000)) primEqInt (Pos Zero) (primEqInt (Pos Zero) (Neg (Succ ww4000)))",fontsize=16,color="black",shape="box"];30 -> 44[label="",style="solid", color="black", weight=3]; 31[label="List.deleteBy0 ww41 (Neg Zero) primEqInt (Pos Zero) (primEqInt (Pos Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];31 -> 45[label="",style="solid", color="black", weight=3]; 32[label="List.deleteBy0 ww41 (Pos ww400) primEqInt (Neg (Succ ww300)) False",fontsize=16,color="black",shape="box"];32 -> 46[label="",style="solid", color="black", weight=3]; 33[label="List.deleteBy0 ww41 (Neg (Succ ww4000)) primEqInt (Neg (Succ ww300)) (primEqInt (Neg (Succ ww300)) (Neg (Succ ww4000)))",fontsize=16,color="black",shape="box"];33 -> 47[label="",style="solid", color="black", weight=3]; 34[label="List.deleteBy0 ww41 (Neg Zero) primEqInt (Neg (Succ ww300)) (primEqInt (Neg (Succ ww300)) (Neg Zero))",fontsize=16,color="black",shape="box"];34 -> 48[label="",style="solid", color="black", weight=3]; 35[label="List.deleteBy0 ww41 (Pos (Succ ww4000)) primEqInt (Neg Zero) (primEqInt (Neg Zero) (Pos (Succ ww4000)))",fontsize=16,color="black",shape="box"];35 -> 49[label="",style="solid", color="black", weight=3]; 36[label="List.deleteBy0 ww41 (Pos Zero) primEqInt (Neg Zero) (primEqInt (Neg Zero) (Pos Zero))",fontsize=16,color="black",shape="box"];36 -> 50[label="",style="solid", color="black", weight=3]; 37[label="List.deleteBy0 ww41 (Neg (Succ ww4000)) primEqInt (Neg Zero) (primEqInt (Neg Zero) (Neg (Succ ww4000)))",fontsize=16,color="black",shape="box"];37 -> 51[label="",style="solid", color="black", weight=3]; 38[label="List.deleteBy0 ww41 (Neg Zero) primEqInt (Neg Zero) (primEqInt (Neg Zero) (Neg Zero))",fontsize=16,color="black",shape="box"];38 -> 52[label="",style="solid", color="black", weight=3]; 39 -> 475[label="",style="dashed", color="red", weight=0]; 39[label="List.deleteBy0 ww41 (Pos (Succ ww4000)) primEqInt (Pos (Succ ww300)) (primEqNat ww300 ww4000)",fontsize=16,color="magenta"];39 -> 476[label="",style="dashed", color="magenta", weight=3]; 39 -> 477[label="",style="dashed", color="magenta", weight=3]; 39 -> 478[label="",style="dashed", color="magenta", weight=3]; 39 -> 479[label="",style="dashed", color="magenta", weight=3]; 39 -> 480[label="",style="dashed", color="magenta", weight=3]; 40[label="List.deleteBy0 ww41 (Pos Zero) primEqInt (Pos (Succ ww300)) False",fontsize=16,color="black",shape="box"];40 -> 55[label="",style="solid", color="black", weight=3]; 41[label="Neg ww400 : List.deleteBy primEqInt (Pos (Succ ww300)) ww41",fontsize=16,color="green",shape="box"];41 -> 56[label="",style="dashed", color="green", weight=3]; 42[label="List.deleteBy0 ww41 (Pos (Succ ww4000)) primEqInt (Pos Zero) False",fontsize=16,color="black",shape="box"];42 -> 57[label="",style="solid", color="black", weight=3]; 43[label="List.deleteBy0 ww41 (Pos Zero) primEqInt (Pos Zero) True",fontsize=16,color="black",shape="box"];43 -> 58[label="",style="solid", color="black", weight=3]; 44[label="List.deleteBy0 ww41 (Neg (Succ ww4000)) primEqInt (Pos Zero) False",fontsize=16,color="black",shape="box"];44 -> 59[label="",style="solid", color="black", weight=3]; 45[label="List.deleteBy0 ww41 (Neg Zero) primEqInt (Pos Zero) True",fontsize=16,color="black",shape="box"];45 -> 60[label="",style="solid", color="black", weight=3]; 46[label="Pos ww400 : List.deleteBy primEqInt (Neg (Succ ww300)) ww41",fontsize=16,color="green",shape="box"];46 -> 61[label="",style="dashed", color="green", weight=3]; 47 -> 528[label="",style="dashed", color="red", weight=0]; 47[label="List.deleteBy0 ww41 (Neg (Succ ww4000)) primEqInt (Neg (Succ ww300)) (primEqNat ww300 ww4000)",fontsize=16,color="magenta"];47 -> 529[label="",style="dashed", color="magenta", weight=3]; 47 -> 530[label="",style="dashed", color="magenta", weight=3]; 47 -> 531[label="",style="dashed", color="magenta", weight=3]; 47 -> 532[label="",style="dashed", color="magenta", weight=3]; 47 -> 533[label="",style="dashed", color="magenta", weight=3]; 48[label="List.deleteBy0 ww41 (Neg Zero) primEqInt (Neg (Succ ww300)) False",fontsize=16,color="black",shape="box"];48 -> 64[label="",style="solid", color="black", weight=3]; 49[label="List.deleteBy0 ww41 (Pos (Succ ww4000)) primEqInt (Neg Zero) False",fontsize=16,color="black",shape="box"];49 -> 65[label="",style="solid", color="black", weight=3]; 50[label="List.deleteBy0 ww41 (Pos Zero) primEqInt (Neg Zero) True",fontsize=16,color="black",shape="box"];50 -> 66[label="",style="solid", color="black", weight=3]; 51[label="List.deleteBy0 ww41 (Neg (Succ ww4000)) primEqInt (Neg Zero) False",fontsize=16,color="black",shape="box"];51 -> 67[label="",style="solid", color="black", weight=3]; 52[label="List.deleteBy0 ww41 (Neg Zero) primEqInt (Neg Zero) True",fontsize=16,color="black",shape="box"];52 -> 68[label="",style="solid", color="black", weight=3]; 476[label="ww41",fontsize=16,color="green",shape="box"];477[label="ww4000",fontsize=16,color="green",shape="box"];478[label="ww300",fontsize=16,color="green",shape="box"];479[label="ww4000",fontsize=16,color="green",shape="box"];480[label="ww300",fontsize=16,color="green",shape="box"];475[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat ww48 ww49)",fontsize=16,color="burlywood",shape="triangle"];639[label="ww48/Succ ww480",fontsize=10,color="white",style="solid",shape="box"];475 -> 639[label="",style="solid", color="burlywood", weight=9]; 639 -> 526[label="",style="solid", color="burlywood", weight=3]; 640[label="ww48/Zero",fontsize=10,color="white",style="solid",shape="box"];475 -> 640[label="",style="solid", color="burlywood", weight=9]; 640 -> 527[label="",style="solid", color="burlywood", weight=3]; 55[label="Pos Zero : List.deleteBy primEqInt (Pos (Succ ww300)) ww41",fontsize=16,color="green",shape="box"];55 -> 73[label="",style="dashed", color="green", weight=3]; 56[label="List.deleteBy primEqInt (Pos (Succ ww300)) ww41",fontsize=16,color="burlywood",shape="triangle"];641[label="ww41/ww410 : ww411",fontsize=10,color="white",style="solid",shape="box"];56 -> 641[label="",style="solid", color="burlywood", weight=9]; 641 -> 74[label="",style="solid", color="burlywood", weight=3]; 642[label="ww41/[]",fontsize=10,color="white",style="solid",shape="box"];56 -> 642[label="",style="solid", color="burlywood", weight=9]; 642 -> 75[label="",style="solid", color="burlywood", weight=3]; 57[label="Pos (Succ ww4000) : List.deleteBy primEqInt (Pos Zero) ww41",fontsize=16,color="green",shape="box"];57 -> 76[label="",style="dashed", color="green", weight=3]; 58[label="ww41",fontsize=16,color="green",shape="box"];59[label="Neg (Succ ww4000) : List.deleteBy primEqInt (Pos Zero) ww41",fontsize=16,color="green",shape="box"];59 -> 77[label="",style="dashed", color="green", weight=3]; 60[label="ww41",fontsize=16,color="green",shape="box"];61[label="List.deleteBy primEqInt (Neg (Succ ww300)) ww41",fontsize=16,color="burlywood",shape="triangle"];643[label="ww41/ww410 : ww411",fontsize=10,color="white",style="solid",shape="box"];61 -> 643[label="",style="solid", color="burlywood", weight=9]; 643 -> 78[label="",style="solid", color="burlywood", weight=3]; 644[label="ww41/[]",fontsize=10,color="white",style="solid",shape="box"];61 -> 644[label="",style="solid", color="burlywood", weight=9]; 644 -> 79[label="",style="solid", color="burlywood", weight=3]; 529[label="ww4000",fontsize=16,color="green",shape="box"];530[label="ww300",fontsize=16,color="green",shape="box"];531[label="ww300",fontsize=16,color="green",shape="box"];532[label="ww4000",fontsize=16,color="green",shape="box"];533[label="ww41",fontsize=16,color="green",shape="box"];528[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat ww54 ww55)",fontsize=16,color="burlywood",shape="triangle"];645[label="ww54/Succ ww540",fontsize=10,color="white",style="solid",shape="box"];528 -> 645[label="",style="solid", color="burlywood", weight=9]; 645 -> 579[label="",style="solid", color="burlywood", weight=3]; 646[label="ww54/Zero",fontsize=10,color="white",style="solid",shape="box"];528 -> 646[label="",style="solid", color="burlywood", weight=9]; 646 -> 580[label="",style="solid", color="burlywood", weight=3]; 64[label="Neg Zero : List.deleteBy primEqInt (Neg (Succ ww300)) ww41",fontsize=16,color="green",shape="box"];64 -> 84[label="",style="dashed", color="green", weight=3]; 65[label="Pos (Succ ww4000) : List.deleteBy primEqInt (Neg Zero) ww41",fontsize=16,color="green",shape="box"];65 -> 85[label="",style="dashed", color="green", weight=3]; 66[label="ww41",fontsize=16,color="green",shape="box"];67[label="Neg (Succ ww4000) : List.deleteBy primEqInt (Neg Zero) ww41",fontsize=16,color="green",shape="box"];67 -> 86[label="",style="dashed", color="green", weight=3]; 68[label="ww41",fontsize=16,color="green",shape="box"];526[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat (Succ ww480) ww49)",fontsize=16,color="burlywood",shape="box"];647[label="ww49/Succ ww490",fontsize=10,color="white",style="solid",shape="box"];526 -> 647[label="",style="solid", color="burlywood", weight=9]; 647 -> 581[label="",style="solid", color="burlywood", weight=3]; 648[label="ww49/Zero",fontsize=10,color="white",style="solid",shape="box"];526 -> 648[label="",style="solid", color="burlywood", weight=9]; 648 -> 582[label="",style="solid", color="burlywood", weight=3]; 527[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat Zero ww49)",fontsize=16,color="burlywood",shape="box"];649[label="ww49/Succ ww490",fontsize=10,color="white",style="solid",shape="box"];527 -> 649[label="",style="solid", color="burlywood", weight=9]; 649 -> 583[label="",style="solid", color="burlywood", weight=3]; 650[label="ww49/Zero",fontsize=10,color="white",style="solid",shape="box"];527 -> 650[label="",style="solid", color="burlywood", weight=9]; 650 -> 584[label="",style="solid", color="burlywood", weight=3]; 73 -> 56[label="",style="dashed", color="red", weight=0]; 73[label="List.deleteBy primEqInt (Pos (Succ ww300)) ww41",fontsize=16,color="magenta"];74[label="List.deleteBy primEqInt (Pos (Succ ww300)) (ww410 : ww411)",fontsize=16,color="black",shape="box"];74 -> 91[label="",style="solid", color="black", weight=3]; 75[label="List.deleteBy primEqInt (Pos (Succ ww300)) []",fontsize=16,color="black",shape="box"];75 -> 92[label="",style="solid", color="black", weight=3]; 76[label="List.deleteBy primEqInt (Pos Zero) ww41",fontsize=16,color="burlywood",shape="triangle"];651[label="ww41/ww410 : ww411",fontsize=10,color="white",style="solid",shape="box"];76 -> 651[label="",style="solid", color="burlywood", weight=9]; 651 -> 93[label="",style="solid", color="burlywood", weight=3]; 652[label="ww41/[]",fontsize=10,color="white",style="solid",shape="box"];76 -> 652[label="",style="solid", color="burlywood", weight=9]; 652 -> 94[label="",style="solid", color="burlywood", weight=3]; 77 -> 76[label="",style="dashed", color="red", weight=0]; 77[label="List.deleteBy primEqInt (Pos Zero) ww41",fontsize=16,color="magenta"];78[label="List.deleteBy primEqInt (Neg (Succ ww300)) (ww410 : ww411)",fontsize=16,color="black",shape="box"];78 -> 95[label="",style="solid", color="black", weight=3]; 79[label="List.deleteBy primEqInt (Neg (Succ ww300)) []",fontsize=16,color="black",shape="box"];79 -> 96[label="",style="solid", color="black", weight=3]; 579[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat (Succ ww540) ww55)",fontsize=16,color="burlywood",shape="box"];653[label="ww55/Succ ww550",fontsize=10,color="white",style="solid",shape="box"];579 -> 653[label="",style="solid", color="burlywood", weight=9]; 653 -> 585[label="",style="solid", color="burlywood", weight=3]; 654[label="ww55/Zero",fontsize=10,color="white",style="solid",shape="box"];579 -> 654[label="",style="solid", color="burlywood", weight=9]; 654 -> 586[label="",style="solid", color="burlywood", weight=3]; 580[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat Zero ww55)",fontsize=16,color="burlywood",shape="box"];655[label="ww55/Succ ww550",fontsize=10,color="white",style="solid",shape="box"];580 -> 655[label="",style="solid", color="burlywood", weight=9]; 655 -> 587[label="",style="solid", color="burlywood", weight=3]; 656[label="ww55/Zero",fontsize=10,color="white",style="solid",shape="box"];580 -> 656[label="",style="solid", color="burlywood", weight=9]; 656 -> 588[label="",style="solid", color="burlywood", weight=3]; 84 -> 61[label="",style="dashed", color="red", weight=0]; 84[label="List.deleteBy primEqInt (Neg (Succ ww300)) ww41",fontsize=16,color="magenta"];85[label="List.deleteBy primEqInt (Neg Zero) ww41",fontsize=16,color="burlywood",shape="triangle"];657[label="ww41/ww410 : ww411",fontsize=10,color="white",style="solid",shape="box"];85 -> 657[label="",style="solid", color="burlywood", weight=9]; 657 -> 101[label="",style="solid", color="burlywood", weight=3]; 658[label="ww41/[]",fontsize=10,color="white",style="solid",shape="box"];85 -> 658[label="",style="solid", color="burlywood", weight=9]; 658 -> 102[label="",style="solid", color="burlywood", weight=3]; 86 -> 85[label="",style="dashed", color="red", weight=0]; 86[label="List.deleteBy primEqInt (Neg Zero) ww41",fontsize=16,color="magenta"];581[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat (Succ ww480) (Succ ww490))",fontsize=16,color="black",shape="box"];581 -> 589[label="",style="solid", color="black", weight=3]; 582[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat (Succ ww480) Zero)",fontsize=16,color="black",shape="box"];582 -> 590[label="",style="solid", color="black", weight=3]; 583[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat Zero (Succ ww490))",fontsize=16,color="black",shape="box"];583 -> 591[label="",style="solid", color="black", weight=3]; 584[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat Zero Zero)",fontsize=16,color="black",shape="box"];584 -> 592[label="",style="solid", color="black", weight=3]; 91 -> 10[label="",style="dashed", color="red", weight=0]; 91[label="List.deleteBy0 ww411 ww410 primEqInt (Pos (Succ ww300)) (primEqInt (Pos (Succ ww300)) ww410)",fontsize=16,color="magenta"];91 -> 108[label="",style="dashed", color="magenta", weight=3]; 91 -> 109[label="",style="dashed", color="magenta", weight=3]; 91 -> 110[label="",style="dashed", color="magenta", weight=3]; 92[label="[]",fontsize=16,color="green",shape="box"];93[label="List.deleteBy primEqInt (Pos Zero) (ww410 : ww411)",fontsize=16,color="black",shape="box"];93 -> 111[label="",style="solid", color="black", weight=3]; 94[label="List.deleteBy primEqInt (Pos Zero) []",fontsize=16,color="black",shape="box"];94 -> 112[label="",style="solid", color="black", weight=3]; 95 -> 10[label="",style="dashed", color="red", weight=0]; 95[label="List.deleteBy0 ww411 ww410 primEqInt (Neg (Succ ww300)) (primEqInt (Neg (Succ ww300)) ww410)",fontsize=16,color="magenta"];95 -> 113[label="",style="dashed", color="magenta", weight=3]; 95 -> 114[label="",style="dashed", color="magenta", weight=3]; 95 -> 115[label="",style="dashed", color="magenta", weight=3]; 96[label="[]",fontsize=16,color="green",shape="box"];585[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat (Succ ww540) (Succ ww550))",fontsize=16,color="black",shape="box"];585 -> 593[label="",style="solid", color="black", weight=3]; 586[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat (Succ ww540) Zero)",fontsize=16,color="black",shape="box"];586 -> 594[label="",style="solid", color="black", weight=3]; 587[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat Zero (Succ ww550))",fontsize=16,color="black",shape="box"];587 -> 595[label="",style="solid", color="black", weight=3]; 588[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat Zero Zero)",fontsize=16,color="black",shape="box"];588 -> 596[label="",style="solid", color="black", weight=3]; 101[label="List.deleteBy primEqInt (Neg Zero) (ww410 : ww411)",fontsize=16,color="black",shape="box"];101 -> 121[label="",style="solid", color="black", weight=3]; 102[label="List.deleteBy primEqInt (Neg Zero) []",fontsize=16,color="black",shape="box"];102 -> 122[label="",style="solid", color="black", weight=3]; 589 -> 475[label="",style="dashed", color="red", weight=0]; 589[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) (primEqNat ww480 ww490)",fontsize=16,color="magenta"];589 -> 597[label="",style="dashed", color="magenta", weight=3]; 589 -> 598[label="",style="dashed", color="magenta", weight=3]; 590[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) False",fontsize=16,color="black",shape="triangle"];590 -> 599[label="",style="solid", color="black", weight=3]; 591 -> 590[label="",style="dashed", color="red", weight=0]; 591[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) False",fontsize=16,color="magenta"];592[label="List.deleteBy0 ww45 (Pos (Succ ww46)) primEqInt (Pos (Succ ww47)) True",fontsize=16,color="black",shape="box"];592 -> 600[label="",style="solid", color="black", weight=3]; 108[label="ww411",fontsize=16,color="green",shape="box"];109[label="Pos (Succ ww300)",fontsize=16,color="green",shape="box"];110[label="ww410",fontsize=16,color="green",shape="box"];111 -> 10[label="",style="dashed", color="red", weight=0]; 111[label="List.deleteBy0 ww411 ww410 primEqInt (Pos Zero) (primEqInt (Pos Zero) ww410)",fontsize=16,color="magenta"];111 -> 129[label="",style="dashed", color="magenta", weight=3]; 111 -> 130[label="",style="dashed", color="magenta", weight=3]; 111 -> 131[label="",style="dashed", color="magenta", weight=3]; 112[label="[]",fontsize=16,color="green",shape="box"];113[label="ww411",fontsize=16,color="green",shape="box"];114[label="Neg (Succ ww300)",fontsize=16,color="green",shape="box"];115[label="ww410",fontsize=16,color="green",shape="box"];593 -> 528[label="",style="dashed", color="red", weight=0]; 593[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) (primEqNat ww540 ww550)",fontsize=16,color="magenta"];593 -> 601[label="",style="dashed", color="magenta", weight=3]; 593 -> 602[label="",style="dashed", color="magenta", weight=3]; 594[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) False",fontsize=16,color="black",shape="triangle"];594 -> 603[label="",style="solid", color="black", weight=3]; 595 -> 594[label="",style="dashed", color="red", weight=0]; 595[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) False",fontsize=16,color="magenta"];596[label="List.deleteBy0 ww51 (Neg (Succ ww52)) primEqInt (Neg (Succ ww53)) True",fontsize=16,color="black",shape="box"];596 -> 604[label="",style="solid", color="black", weight=3]; 121 -> 10[label="",style="dashed", color="red", weight=0]; 121[label="List.deleteBy0 ww411 ww410 primEqInt (Neg Zero) (primEqInt (Neg Zero) ww410)",fontsize=16,color="magenta"];121 -> 138[label="",style="dashed", color="magenta", weight=3]; 121 -> 139[label="",style="dashed", color="magenta", weight=3]; 121 -> 140[label="",style="dashed", color="magenta", weight=3]; 122[label="[]",fontsize=16,color="green",shape="box"];597[label="ww490",fontsize=16,color="green",shape="box"];598[label="ww480",fontsize=16,color="green",shape="box"];599[label="Pos (Succ ww46) : List.deleteBy primEqInt (Pos (Succ ww47)) ww45",fontsize=16,color="green",shape="box"];599 -> 605[label="",style="dashed", color="green", weight=3]; 600[label="ww45",fontsize=16,color="green",shape="box"];129[label="ww411",fontsize=16,color="green",shape="box"];130[label="Pos Zero",fontsize=16,color="green",shape="box"];131[label="ww410",fontsize=16,color="green",shape="box"];601[label="ww540",fontsize=16,color="green",shape="box"];602[label="ww550",fontsize=16,color="green",shape="box"];603[label="Neg (Succ ww52) : List.deleteBy primEqInt (Neg (Succ ww53)) ww51",fontsize=16,color="green",shape="box"];603 -> 606[label="",style="dashed", color="green", weight=3]; 604[label="ww51",fontsize=16,color="green",shape="box"];138[label="ww411",fontsize=16,color="green",shape="box"];139[label="Neg Zero",fontsize=16,color="green",shape="box"];140[label="ww410",fontsize=16,color="green",shape="box"];605 -> 56[label="",style="dashed", color="red", weight=0]; 605[label="List.deleteBy primEqInt (Pos (Succ ww47)) ww45",fontsize=16,color="magenta"];605 -> 607[label="",style="dashed", color="magenta", weight=3]; 605 -> 608[label="",style="dashed", color="magenta", weight=3]; 606 -> 61[label="",style="dashed", color="red", weight=0]; 606[label="List.deleteBy primEqInt (Neg (Succ ww53)) ww51",fontsize=16,color="magenta"];606 -> 609[label="",style="dashed", color="magenta", weight=3]; 606 -> 610[label="",style="dashed", color="magenta", weight=3]; 607[label="ww45",fontsize=16,color="green",shape="box"];608[label="ww47",fontsize=16,color="green",shape="box"];609[label="ww53",fontsize=16,color="green",shape="box"];610[label="ww51",fontsize=16,color="green",shape="box"];} ---------------------------------------- (8) 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(ww300, :(ww410, ww411)) -> new_deleteBy01(ww411, ww410, Pos(Succ(ww300))) 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(:(ww410, ww411), Pos(Succ(ww4000)), Pos(Zero)) -> new_deleteBy01(ww411, ww410, Pos(Zero)) new_deleteBy01(:(ww410, ww411), Pos(Succ(ww4000)), Neg(Zero)) -> new_deleteBy01(ww411, ww410, Neg(Zero)) new_deleteBy01(ww41, Neg(Succ(ww4000)), Neg(Zero)) -> new_deleteBy3(ww41) new_deleteBy01(ww41, Pos(Succ(ww4000)), Pos(Succ(ww300))) -> new_deleteBy0(ww41, ww4000, ww300, ww300, ww4000) new_deleteBy01(:(ww410, ww411), Neg(ww400), Pos(Succ(ww300))) -> new_deleteBy01(ww411, ww410, Pos(Succ(ww300))) new_deleteBy01(ww41, Neg(Succ(ww4000)), Pos(Zero)) -> new_deleteBy1(ww41) 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(ww41, Neg(Succ(ww4000)), Neg(Succ(ww300))) -> new_deleteBy02(ww41, ww4000, ww300, ww300, ww4000) new_deleteBy2(ww300, :(ww410, ww411)) -> new_deleteBy01(ww411, ww410, Neg(Succ(ww300))) new_deleteBy3(:(ww410, ww411)) -> new_deleteBy01(ww411, ww410, Neg(Zero)) new_deleteBy0(ww45, ww46, ww47, Succ(ww480), Succ(ww490)) -> new_deleteBy0(ww45, ww46, ww47, ww480, ww490) new_deleteBy1(:(ww410, ww411)) -> new_deleteBy01(ww411, ww410, Pos(Zero)) new_deleteBy01(ww41, Neg(Zero), Neg(Succ(ww300))) -> new_deleteBy2(ww300, ww41) new_deleteBy01(ww41, Pos(Zero), Pos(Succ(ww300))) -> new_deleteBy(ww300, ww41) new_deleteBy01(:(ww410, ww411), Pos(ww400), Neg(Succ(ww300))) -> new_deleteBy01(ww411, ww410, Neg(Succ(ww300))) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (9) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 4 SCCs. ---------------------------------------- (10) Complex Obligation (AND) ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy01(ww41, Neg(Succ(ww4000)), Neg(Zero)) -> new_deleteBy3(ww41) new_deleteBy3(:(ww410, ww411)) -> new_deleteBy01(ww411, ww410, Neg(Zero)) new_deleteBy01(:(ww410, ww411), Pos(Succ(ww4000)), Neg(Zero)) -> new_deleteBy01(ww411, ww410, Neg(Zero)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) 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(:(ww410, ww411)) -> new_deleteBy01(ww411, ww410, Neg(Zero)) The graph contains the following edges 1 > 1, 1 > 2 *new_deleteBy01(:(ww410, ww411), Pos(Succ(ww4000)), Neg(Zero)) -> new_deleteBy01(ww411, ww410, Neg(Zero)) The graph contains the following edges 1 > 1, 1 > 2, 3 >= 3 *new_deleteBy01(ww41, Neg(Succ(ww4000)), Neg(Zero)) -> new_deleteBy3(ww41) The graph contains the following edges 1 >= 1 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy01(ww41, Neg(Succ(ww4000)), Pos(Zero)) -> new_deleteBy1(ww41) new_deleteBy1(:(ww410, ww411)) -> new_deleteBy01(ww411, ww410, Pos(Zero)) new_deleteBy01(:(ww410, ww411), Pos(Succ(ww4000)), Pos(Zero)) -> new_deleteBy01(ww411, ww410, Pos(Zero)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) 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(:(ww410, ww411)) -> new_deleteBy01(ww411, ww410, Pos(Zero)) The graph contains the following edges 1 > 1, 1 > 2 *new_deleteBy01(:(ww410, ww411), Pos(Succ(ww4000)), Pos(Zero)) -> new_deleteBy01(ww411, ww410, Pos(Zero)) The graph contains the following edges 1 > 1, 1 > 2, 3 >= 3 *new_deleteBy01(ww41, Neg(Succ(ww4000)), Pos(Zero)) -> new_deleteBy1(ww41) The graph contains the following edges 1 >= 1 ---------------------------------------- (16) YES ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy2(ww300, :(ww410, ww411)) -> new_deleteBy01(ww411, ww410, Neg(Succ(ww300))) new_deleteBy01(ww41, Neg(Succ(ww4000)), Neg(Succ(ww300))) -> new_deleteBy02(ww41, ww4000, ww300, ww300, ww4000) 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(ww41, Neg(Zero), Neg(Succ(ww300))) -> new_deleteBy2(ww300, ww41) new_deleteBy01(:(ww410, ww411), Pos(ww400), Neg(Succ(ww300))) -> new_deleteBy01(ww411, ww410, Neg(Succ(ww300))) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_deleteBy01(ww41, Neg(Zero), Neg(Succ(ww300))) -> new_deleteBy2(ww300, ww41) The graph contains the following edges 3 > 1, 1 >= 2 *new_deleteBy01(:(ww410, ww411), Pos(ww400), Neg(Succ(ww300))) -> new_deleteBy01(ww411, ww410, Neg(Succ(ww300))) The graph contains the following edges 1 > 1, 1 > 2, 3 >= 3 *new_deleteBy01(ww41, Neg(Succ(ww4000)), Neg(Succ(ww300))) -> new_deleteBy02(ww41, ww4000, ww300, ww300, ww4000) 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(ww300, :(ww410, ww411)) -> new_deleteBy01(ww411, ww410, Neg(Succ(ww300))) 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 ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: new_deleteBy(ww300, :(ww410, ww411)) -> new_deleteBy01(ww411, ww410, Pos(Succ(ww300))) new_deleteBy01(ww41, Pos(Succ(ww4000)), Pos(Succ(ww300))) -> new_deleteBy0(ww41, ww4000, ww300, ww300, ww4000) 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(:(ww410, ww411), Neg(ww400), Pos(Succ(ww300))) -> new_deleteBy01(ww411, ww410, Pos(Succ(ww300))) new_deleteBy01(ww41, Pos(Zero), Pos(Succ(ww300))) -> new_deleteBy(ww300, ww41) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) 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(ww41, Pos(Zero), Pos(Succ(ww300))) -> new_deleteBy(ww300, ww41) The graph contains the following edges 3 > 1, 1 >= 2 *new_deleteBy01(:(ww410, ww411), Neg(ww400), Pos(Succ(ww300))) -> new_deleteBy01(ww411, ww410, Pos(Succ(ww300))) The graph contains the following edges 1 > 1, 1 > 2, 3 >= 3 *new_deleteBy01(ww41, Pos(Succ(ww4000)), Pos(Succ(ww300))) -> new_deleteBy0(ww41, ww4000, ww300, ww300, ww4000) 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(ww300, :(ww410, ww411)) -> new_deleteBy01(ww411, ww410, Pos(Succ(ww300))) 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 ---------------------------------------- (22) YES