/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, 0 ms] (6) HASKELL (7) Narrow [SOUND, 0 ms] (8) AND (9) QDP (10) DependencyGraphProof [EQUIVALENT, 0 ms] (11) AND (12) QDP (13) MRRProof [EQUIVALENT, 4 ms] (14) QDP (15) PisEmptyProof [EQUIVALENT, 0 ms] (16) YES (17) QDP (18) QDPSizeChangeProof [EQUIVALENT, 13 ms] (19) YES (20) QDP (21) DependencyGraphProof [EQUIVALENT, 0 ms] (22) AND (23) QDP (24) QDPSizeChangeProof [EQUIVALENT, 0 ms] (25) YES (26) QDP (27) MRRProof [EQUIVALENT, 0 ms] (28) QDP (29) PisEmptyProof [EQUIVALENT, 0 ms] (30) YES (31) QDP (32) QDPSizeChangeProof [EQUIVALENT, 0 ms] (33) YES ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (1) IFR (EQUIVALENT) If Reductions: The following If expression "if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x" is transformed to "primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y); primModNatS0 x y False = Succ x; " The following If expression "if primGEqNatS x y then primModNatP (primMinusNatS x y) (Succ y) else primMinusNatS y x" is transformed to "primModNatP0 x y True = primModNatP (primMinusNatS x y) (Succ y); primModNatP0 x y False = primMinusNatS y x; " ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (3) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (4) Obligation: mainModule Main module Main where { 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 Main where { import qualified Prelude; } ---------------------------------------- (7) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="mod",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="mod vz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="mod vz3 vz4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="primModInt vz3 vz4",fontsize=16,color="burlywood",shape="box"];679[label="vz3/Pos vz30",fontsize=10,color="white",style="solid",shape="box"];5 -> 679[label="",style="solid", color="burlywood", weight=9]; 679 -> 6[label="",style="solid", color="burlywood", weight=3]; 680[label="vz3/Neg vz30",fontsize=10,color="white",style="solid",shape="box"];5 -> 680[label="",style="solid", color="burlywood", weight=9]; 680 -> 7[label="",style="solid", color="burlywood", weight=3]; 6[label="primModInt (Pos vz30) vz4",fontsize=16,color="burlywood",shape="box"];681[label="vz4/Pos vz40",fontsize=10,color="white",style="solid",shape="box"];6 -> 681[label="",style="solid", color="burlywood", weight=9]; 681 -> 8[label="",style="solid", color="burlywood", weight=3]; 682[label="vz4/Neg vz40",fontsize=10,color="white",style="solid",shape="box"];6 -> 682[label="",style="solid", color="burlywood", weight=9]; 682 -> 9[label="",style="solid", color="burlywood", weight=3]; 7[label="primModInt (Neg vz30) vz4",fontsize=16,color="burlywood",shape="box"];683[label="vz4/Pos vz40",fontsize=10,color="white",style="solid",shape="box"];7 -> 683[label="",style="solid", color="burlywood", weight=9]; 683 -> 10[label="",style="solid", color="burlywood", weight=3]; 684[label="vz4/Neg vz40",fontsize=10,color="white",style="solid",shape="box"];7 -> 684[label="",style="solid", color="burlywood", weight=9]; 684 -> 11[label="",style="solid", color="burlywood", weight=3]; 8[label="primModInt (Pos vz30) (Pos vz40)",fontsize=16,color="burlywood",shape="box"];685[label="vz40/Succ vz400",fontsize=10,color="white",style="solid",shape="box"];8 -> 685[label="",style="solid", color="burlywood", weight=9]; 685 -> 12[label="",style="solid", color="burlywood", weight=3]; 686[label="vz40/Zero",fontsize=10,color="white",style="solid",shape="box"];8 -> 686[label="",style="solid", color="burlywood", weight=9]; 686 -> 13[label="",style="solid", color="burlywood", weight=3]; 9[label="primModInt (Pos vz30) (Neg vz40)",fontsize=16,color="burlywood",shape="box"];687[label="vz40/Succ vz400",fontsize=10,color="white",style="solid",shape="box"];9 -> 687[label="",style="solid", color="burlywood", weight=9]; 687 -> 14[label="",style="solid", color="burlywood", weight=3]; 688[label="vz40/Zero",fontsize=10,color="white",style="solid",shape="box"];9 -> 688[label="",style="solid", color="burlywood", weight=9]; 688 -> 15[label="",style="solid", color="burlywood", weight=3]; 10[label="primModInt (Neg vz30) (Pos vz40)",fontsize=16,color="burlywood",shape="box"];689[label="vz40/Succ vz400",fontsize=10,color="white",style="solid",shape="box"];10 -> 689[label="",style="solid", color="burlywood", weight=9]; 689 -> 16[label="",style="solid", color="burlywood", weight=3]; 690[label="vz40/Zero",fontsize=10,color="white",style="solid",shape="box"];10 -> 690[label="",style="solid", color="burlywood", weight=9]; 690 -> 17[label="",style="solid", color="burlywood", weight=3]; 11[label="primModInt (Neg vz30) (Neg vz40)",fontsize=16,color="burlywood",shape="box"];691[label="vz40/Succ vz400",fontsize=10,color="white",style="solid",shape="box"];11 -> 691[label="",style="solid", color="burlywood", weight=9]; 691 -> 18[label="",style="solid", color="burlywood", weight=3]; 692[label="vz40/Zero",fontsize=10,color="white",style="solid",shape="box"];11 -> 692[label="",style="solid", color="burlywood", weight=9]; 692 -> 19[label="",style="solid", color="burlywood", weight=3]; 12[label="primModInt (Pos vz30) (Pos (Succ vz400))",fontsize=16,color="black",shape="box"];12 -> 20[label="",style="solid", color="black", weight=3]; 13[label="primModInt (Pos vz30) (Pos Zero)",fontsize=16,color="black",shape="box"];13 -> 21[label="",style="solid", color="black", weight=3]; 14[label="primModInt (Pos vz30) (Neg (Succ vz400))",fontsize=16,color="black",shape="box"];14 -> 22[label="",style="solid", color="black", weight=3]; 15[label="primModInt (Pos vz30) (Neg Zero)",fontsize=16,color="black",shape="box"];15 -> 23[label="",style="solid", color="black", weight=3]; 16[label="primModInt (Neg vz30) (Pos (Succ vz400))",fontsize=16,color="black",shape="box"];16 -> 24[label="",style="solid", color="black", weight=3]; 17[label="primModInt (Neg vz30) (Pos Zero)",fontsize=16,color="black",shape="box"];17 -> 25[label="",style="solid", color="black", weight=3]; 18[label="primModInt (Neg vz30) (Neg (Succ vz400))",fontsize=16,color="black",shape="box"];18 -> 26[label="",style="solid", color="black", weight=3]; 19[label="primModInt (Neg vz30) (Neg Zero)",fontsize=16,color="black",shape="box"];19 -> 27[label="",style="solid", color="black", weight=3]; 20[label="Pos (primModNatS vz30 (Succ vz400))",fontsize=16,color="green",shape="box"];20 -> 28[label="",style="dashed", color="green", weight=3]; 21[label="error []",fontsize=16,color="black",shape="triangle"];21 -> 29[label="",style="solid", color="black", weight=3]; 22[label="Neg (primModNatP vz30 (Succ vz400))",fontsize=16,color="green",shape="box"];22 -> 30[label="",style="dashed", color="green", weight=3]; 23 -> 21[label="",style="dashed", color="red", weight=0]; 23[label="error []",fontsize=16,color="magenta"];24[label="Pos (primModNatP vz30 (Succ vz400))",fontsize=16,color="green",shape="box"];24 -> 31[label="",style="dashed", color="green", weight=3]; 25 -> 21[label="",style="dashed", color="red", weight=0]; 25[label="error []",fontsize=16,color="magenta"];26[label="Neg (primModNatS vz30 (Succ vz400))",fontsize=16,color="green",shape="box"];26 -> 32[label="",style="dashed", color="green", weight=3]; 27 -> 21[label="",style="dashed", color="red", weight=0]; 27[label="error []",fontsize=16,color="magenta"];28[label="primModNatS vz30 (Succ vz400)",fontsize=16,color="burlywood",shape="triangle"];693[label="vz30/Succ vz300",fontsize=10,color="white",style="solid",shape="box"];28 -> 693[label="",style="solid", color="burlywood", weight=9]; 693 -> 33[label="",style="solid", color="burlywood", weight=3]; 694[label="vz30/Zero",fontsize=10,color="white",style="solid",shape="box"];28 -> 694[label="",style="solid", color="burlywood", weight=9]; 694 -> 34[label="",style="solid", color="burlywood", weight=3]; 29[label="error []",fontsize=16,color="red",shape="box"];30[label="primModNatP vz30 (Succ vz400)",fontsize=16,color="burlywood",shape="triangle"];695[label="vz30/Succ vz300",fontsize=10,color="white",style="solid",shape="box"];30 -> 695[label="",style="solid", color="burlywood", weight=9]; 695 -> 35[label="",style="solid", color="burlywood", weight=3]; 696[label="vz30/Zero",fontsize=10,color="white",style="solid",shape="box"];30 -> 696[label="",style="solid", color="burlywood", weight=9]; 696 -> 36[label="",style="solid", color="burlywood", weight=3]; 31 -> 30[label="",style="dashed", color="red", weight=0]; 31[label="primModNatP vz30 (Succ vz400)",fontsize=16,color="magenta"];31 -> 37[label="",style="dashed", color="magenta", weight=3]; 31 -> 38[label="",style="dashed", color="magenta", weight=3]; 32 -> 28[label="",style="dashed", color="red", weight=0]; 32[label="primModNatS vz30 (Succ vz400)",fontsize=16,color="magenta"];32 -> 39[label="",style="dashed", color="magenta", weight=3]; 32 -> 40[label="",style="dashed", color="magenta", weight=3]; 33[label="primModNatS (Succ vz300) (Succ vz400)",fontsize=16,color="black",shape="box"];33 -> 41[label="",style="solid", color="black", weight=3]; 34[label="primModNatS Zero (Succ vz400)",fontsize=16,color="black",shape="box"];34 -> 42[label="",style="solid", color="black", weight=3]; 35[label="primModNatP (Succ vz300) (Succ vz400)",fontsize=16,color="black",shape="box"];35 -> 43[label="",style="solid", color="black", weight=3]; 36[label="primModNatP Zero (Succ vz400)",fontsize=16,color="black",shape="box"];36 -> 44[label="",style="solid", color="black", weight=3]; 37[label="vz30",fontsize=16,color="green",shape="box"];38[label="vz400",fontsize=16,color="green",shape="box"];39[label="vz30",fontsize=16,color="green",shape="box"];40[label="vz400",fontsize=16,color="green",shape="box"];41[label="primModNatS0 vz300 vz400 (primGEqNatS vz300 vz400)",fontsize=16,color="burlywood",shape="box"];697[label="vz300/Succ vz3000",fontsize=10,color="white",style="solid",shape="box"];41 -> 697[label="",style="solid", color="burlywood", weight=9]; 697 -> 45[label="",style="solid", color="burlywood", weight=3]; 698[label="vz300/Zero",fontsize=10,color="white",style="solid",shape="box"];41 -> 698[label="",style="solid", color="burlywood", weight=9]; 698 -> 46[label="",style="solid", color="burlywood", weight=3]; 42[label="Zero",fontsize=16,color="green",shape="box"];43[label="primModNatP0 vz300 vz400 (primGEqNatS vz300 vz400)",fontsize=16,color="burlywood",shape="box"];699[label="vz300/Succ vz3000",fontsize=10,color="white",style="solid",shape="box"];43 -> 699[label="",style="solid", color="burlywood", weight=9]; 699 -> 47[label="",style="solid", color="burlywood", weight=3]; 700[label="vz300/Zero",fontsize=10,color="white",style="solid",shape="box"];43 -> 700[label="",style="solid", color="burlywood", weight=9]; 700 -> 48[label="",style="solid", color="burlywood", weight=3]; 44[label="Zero",fontsize=16,color="green",shape="box"];45[label="primModNatS0 (Succ vz3000) vz400 (primGEqNatS (Succ vz3000) vz400)",fontsize=16,color="burlywood",shape="box"];701[label="vz400/Succ vz4000",fontsize=10,color="white",style="solid",shape="box"];45 -> 701[label="",style="solid", color="burlywood", weight=9]; 701 -> 49[label="",style="solid", color="burlywood", weight=3]; 702[label="vz400/Zero",fontsize=10,color="white",style="solid",shape="box"];45 -> 702[label="",style="solid", color="burlywood", weight=9]; 702 -> 50[label="",style="solid", color="burlywood", weight=3]; 46[label="primModNatS0 Zero vz400 (primGEqNatS Zero vz400)",fontsize=16,color="burlywood",shape="box"];703[label="vz400/Succ vz4000",fontsize=10,color="white",style="solid",shape="box"];46 -> 703[label="",style="solid", color="burlywood", weight=9]; 703 -> 51[label="",style="solid", color="burlywood", weight=3]; 704[label="vz400/Zero",fontsize=10,color="white",style="solid",shape="box"];46 -> 704[label="",style="solid", color="burlywood", weight=9]; 704 -> 52[label="",style="solid", color="burlywood", weight=3]; 47[label="primModNatP0 (Succ vz3000) vz400 (primGEqNatS (Succ vz3000) vz400)",fontsize=16,color="burlywood",shape="box"];705[label="vz400/Succ vz4000",fontsize=10,color="white",style="solid",shape="box"];47 -> 705[label="",style="solid", color="burlywood", weight=9]; 705 -> 53[label="",style="solid", color="burlywood", weight=3]; 706[label="vz400/Zero",fontsize=10,color="white",style="solid",shape="box"];47 -> 706[label="",style="solid", color="burlywood", weight=9]; 706 -> 54[label="",style="solid", color="burlywood", weight=3]; 48[label="primModNatP0 Zero vz400 (primGEqNatS Zero vz400)",fontsize=16,color="burlywood",shape="box"];707[label="vz400/Succ vz4000",fontsize=10,color="white",style="solid",shape="box"];48 -> 707[label="",style="solid", color="burlywood", weight=9]; 707 -> 55[label="",style="solid", color="burlywood", weight=3]; 708[label="vz400/Zero",fontsize=10,color="white",style="solid",shape="box"];48 -> 708[label="",style="solid", color="burlywood", weight=9]; 708 -> 56[label="",style="solid", color="burlywood", weight=3]; 49[label="primModNatS0 (Succ vz3000) (Succ vz4000) (primGEqNatS (Succ vz3000) (Succ vz4000))",fontsize=16,color="black",shape="box"];49 -> 57[label="",style="solid", color="black", weight=3]; 50[label="primModNatS0 (Succ vz3000) Zero (primGEqNatS (Succ vz3000) Zero)",fontsize=16,color="black",shape="box"];50 -> 58[label="",style="solid", color="black", weight=3]; 51[label="primModNatS0 Zero (Succ vz4000) (primGEqNatS Zero (Succ vz4000))",fontsize=16,color="black",shape="box"];51 -> 59[label="",style="solid", color="black", weight=3]; 52[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];52 -> 60[label="",style="solid", color="black", weight=3]; 53[label="primModNatP0 (Succ vz3000) (Succ vz4000) (primGEqNatS (Succ vz3000) (Succ vz4000))",fontsize=16,color="black",shape="box"];53 -> 61[label="",style="solid", color="black", weight=3]; 54[label="primModNatP0 (Succ vz3000) Zero (primGEqNatS (Succ vz3000) Zero)",fontsize=16,color="black",shape="box"];54 -> 62[label="",style="solid", color="black", weight=3]; 55[label="primModNatP0 Zero (Succ vz4000) (primGEqNatS Zero (Succ vz4000))",fontsize=16,color="black",shape="box"];55 -> 63[label="",style="solid", color="black", weight=3]; 56[label="primModNatP0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];56 -> 64[label="",style="solid", color="black", weight=3]; 57 -> 548[label="",style="dashed", color="red", weight=0]; 57[label="primModNatS0 (Succ vz3000) (Succ vz4000) (primGEqNatS vz3000 vz4000)",fontsize=16,color="magenta"];57 -> 549[label="",style="dashed", color="magenta", weight=3]; 57 -> 550[label="",style="dashed", color="magenta", weight=3]; 57 -> 551[label="",style="dashed", color="magenta", weight=3]; 57 -> 552[label="",style="dashed", color="magenta", weight=3]; 58[label="primModNatS0 (Succ vz3000) Zero True",fontsize=16,color="black",shape="box"];58 -> 67[label="",style="solid", color="black", weight=3]; 59[label="primModNatS0 Zero (Succ vz4000) False",fontsize=16,color="black",shape="box"];59 -> 68[label="",style="solid", color="black", weight=3]; 60[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];60 -> 69[label="",style="solid", color="black", weight=3]; 61 -> 591[label="",style="dashed", color="red", weight=0]; 61[label="primModNatP0 (Succ vz3000) (Succ vz4000) (primGEqNatS vz3000 vz4000)",fontsize=16,color="magenta"];61 -> 592[label="",style="dashed", color="magenta", weight=3]; 61 -> 593[label="",style="dashed", color="magenta", weight=3]; 61 -> 594[label="",style="dashed", color="magenta", weight=3]; 61 -> 595[label="",style="dashed", color="magenta", weight=3]; 62[label="primModNatP0 (Succ vz3000) Zero True",fontsize=16,color="black",shape="box"];62 -> 72[label="",style="solid", color="black", weight=3]; 63[label="primModNatP0 Zero (Succ vz4000) False",fontsize=16,color="black",shape="box"];63 -> 73[label="",style="solid", color="black", weight=3]; 64[label="primModNatP0 Zero Zero True",fontsize=16,color="black",shape="box"];64 -> 74[label="",style="solid", color="black", weight=3]; 549[label="vz4000",fontsize=16,color="green",shape="box"];550[label="vz4000",fontsize=16,color="green",shape="box"];551[label="vz3000",fontsize=16,color="green",shape="box"];552[label="vz3000",fontsize=16,color="green",shape="box"];548[label="primModNatS0 (Succ vz50) (Succ vz51) (primGEqNatS vz52 vz53)",fontsize=16,color="burlywood",shape="triangle"];709[label="vz52/Succ vz520",fontsize=10,color="white",style="solid",shape="box"];548 -> 709[label="",style="solid", color="burlywood", weight=9]; 709 -> 589[label="",style="solid", color="burlywood", weight=3]; 710[label="vz52/Zero",fontsize=10,color="white",style="solid",shape="box"];548 -> 710[label="",style="solid", color="burlywood", weight=9]; 710 -> 590[label="",style="solid", color="burlywood", weight=3]; 67 -> 28[label="",style="dashed", color="red", weight=0]; 67[label="primModNatS (primMinusNatS (Succ vz3000) Zero) (Succ Zero)",fontsize=16,color="magenta"];67 -> 79[label="",style="dashed", color="magenta", weight=3]; 67 -> 80[label="",style="dashed", color="magenta", weight=3]; 68[label="Succ Zero",fontsize=16,color="green",shape="box"];69 -> 28[label="",style="dashed", color="red", weight=0]; 69[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];69 -> 81[label="",style="dashed", color="magenta", weight=3]; 69 -> 82[label="",style="dashed", color="magenta", weight=3]; 592[label="vz4000",fontsize=16,color="green",shape="box"];593[label="vz3000",fontsize=16,color="green",shape="box"];594[label="vz3000",fontsize=16,color="green",shape="box"];595[label="vz4000",fontsize=16,color="green",shape="box"];591[label="primModNatP0 (Succ vz55) (Succ vz56) (primGEqNatS vz57 vz58)",fontsize=16,color="burlywood",shape="triangle"];711[label="vz57/Succ vz570",fontsize=10,color="white",style="solid",shape="box"];591 -> 711[label="",style="solid", color="burlywood", weight=9]; 711 -> 632[label="",style="solid", color="burlywood", weight=3]; 712[label="vz57/Zero",fontsize=10,color="white",style="solid",shape="box"];591 -> 712[label="",style="solid", color="burlywood", weight=9]; 712 -> 633[label="",style="solid", color="burlywood", weight=3]; 72 -> 30[label="",style="dashed", color="red", weight=0]; 72[label="primModNatP (primMinusNatS (Succ vz3000) Zero) (Succ Zero)",fontsize=16,color="magenta"];72 -> 87[label="",style="dashed", color="magenta", weight=3]; 72 -> 88[label="",style="dashed", color="magenta", weight=3]; 73[label="primMinusNatS (Succ vz4000) Zero",fontsize=16,color="black",shape="triangle"];73 -> 89[label="",style="solid", color="black", weight=3]; 74 -> 30[label="",style="dashed", color="red", weight=0]; 74[label="primModNatP (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];74 -> 90[label="",style="dashed", color="magenta", weight=3]; 74 -> 91[label="",style="dashed", color="magenta", weight=3]; 589[label="primModNatS0 (Succ vz50) (Succ vz51) (primGEqNatS (Succ vz520) vz53)",fontsize=16,color="burlywood",shape="box"];713[label="vz53/Succ vz530",fontsize=10,color="white",style="solid",shape="box"];589 -> 713[label="",style="solid", color="burlywood", weight=9]; 713 -> 634[label="",style="solid", color="burlywood", weight=3]; 714[label="vz53/Zero",fontsize=10,color="white",style="solid",shape="box"];589 -> 714[label="",style="solid", color="burlywood", weight=9]; 714 -> 635[label="",style="solid", color="burlywood", weight=3]; 590[label="primModNatS0 (Succ vz50) (Succ vz51) (primGEqNatS Zero vz53)",fontsize=16,color="burlywood",shape="box"];715[label="vz53/Succ vz530",fontsize=10,color="white",style="solid",shape="box"];590 -> 715[label="",style="solid", color="burlywood", weight=9]; 715 -> 636[label="",style="solid", color="burlywood", weight=3]; 716[label="vz53/Zero",fontsize=10,color="white",style="solid",shape="box"];590 -> 716[label="",style="solid", color="burlywood", weight=9]; 716 -> 637[label="",style="solid", color="burlywood", weight=3]; 79 -> 73[label="",style="dashed", color="red", weight=0]; 79[label="primMinusNatS (Succ vz3000) Zero",fontsize=16,color="magenta"];79 -> 96[label="",style="dashed", color="magenta", weight=3]; 80[label="Zero",fontsize=16,color="green",shape="box"];81[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];81 -> 97[label="",style="solid", color="black", weight=3]; 82[label="Zero",fontsize=16,color="green",shape="box"];632[label="primModNatP0 (Succ vz55) (Succ vz56) (primGEqNatS (Succ vz570) vz58)",fontsize=16,color="burlywood",shape="box"];717[label="vz58/Succ vz580",fontsize=10,color="white",style="solid",shape="box"];632 -> 717[label="",style="solid", color="burlywood", weight=9]; 717 -> 638[label="",style="solid", color="burlywood", weight=3]; 718[label="vz58/Zero",fontsize=10,color="white",style="solid",shape="box"];632 -> 718[label="",style="solid", color="burlywood", weight=9]; 718 -> 639[label="",style="solid", color="burlywood", weight=3]; 633[label="primModNatP0 (Succ vz55) (Succ vz56) (primGEqNatS Zero vz58)",fontsize=16,color="burlywood",shape="box"];719[label="vz58/Succ vz580",fontsize=10,color="white",style="solid",shape="box"];633 -> 719[label="",style="solid", color="burlywood", weight=9]; 719 -> 640[label="",style="solid", color="burlywood", weight=3]; 720[label="vz58/Zero",fontsize=10,color="white",style="solid",shape="box"];633 -> 720[label="",style="solid", color="burlywood", weight=9]; 720 -> 641[label="",style="solid", color="burlywood", weight=3]; 87 -> 73[label="",style="dashed", color="red", weight=0]; 87[label="primMinusNatS (Succ vz3000) Zero",fontsize=16,color="magenta"];87 -> 102[label="",style="dashed", color="magenta", weight=3]; 88[label="Zero",fontsize=16,color="green",shape="box"];89[label="Succ vz4000",fontsize=16,color="green",shape="box"];90 -> 81[label="",style="dashed", color="red", weight=0]; 90[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];91[label="Zero",fontsize=16,color="green",shape="box"];634[label="primModNatS0 (Succ vz50) (Succ vz51) (primGEqNatS (Succ vz520) (Succ vz530))",fontsize=16,color="black",shape="box"];634 -> 642[label="",style="solid", color="black", weight=3]; 635[label="primModNatS0 (Succ vz50) (Succ vz51) (primGEqNatS (Succ vz520) Zero)",fontsize=16,color="black",shape="box"];635 -> 643[label="",style="solid", color="black", weight=3]; 636[label="primModNatS0 (Succ vz50) (Succ vz51) (primGEqNatS Zero (Succ vz530))",fontsize=16,color="black",shape="box"];636 -> 644[label="",style="solid", color="black", weight=3]; 637[label="primModNatS0 (Succ vz50) (Succ vz51) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];637 -> 645[label="",style="solid", color="black", weight=3]; 96[label="vz3000",fontsize=16,color="green",shape="box"];97[label="Zero",fontsize=16,color="green",shape="box"];638[label="primModNatP0 (Succ vz55) (Succ vz56) (primGEqNatS (Succ vz570) (Succ vz580))",fontsize=16,color="black",shape="box"];638 -> 646[label="",style="solid", color="black", weight=3]; 639[label="primModNatP0 (Succ vz55) (Succ vz56) (primGEqNatS (Succ vz570) Zero)",fontsize=16,color="black",shape="box"];639 -> 647[label="",style="solid", color="black", weight=3]; 640[label="primModNatP0 (Succ vz55) (Succ vz56) (primGEqNatS Zero (Succ vz580))",fontsize=16,color="black",shape="box"];640 -> 648[label="",style="solid", color="black", weight=3]; 641[label="primModNatP0 (Succ vz55) (Succ vz56) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];641 -> 649[label="",style="solid", color="black", weight=3]; 102[label="vz3000",fontsize=16,color="green",shape="box"];642 -> 548[label="",style="dashed", color="red", weight=0]; 642[label="primModNatS0 (Succ vz50) (Succ vz51) (primGEqNatS vz520 vz530)",fontsize=16,color="magenta"];642 -> 650[label="",style="dashed", color="magenta", weight=3]; 642 -> 651[label="",style="dashed", color="magenta", weight=3]; 643[label="primModNatS0 (Succ vz50) (Succ vz51) True",fontsize=16,color="black",shape="triangle"];643 -> 652[label="",style="solid", color="black", weight=3]; 644[label="primModNatS0 (Succ vz50) (Succ vz51) False",fontsize=16,color="black",shape="box"];644 -> 653[label="",style="solid", color="black", weight=3]; 645 -> 643[label="",style="dashed", color="red", weight=0]; 645[label="primModNatS0 (Succ vz50) (Succ vz51) True",fontsize=16,color="magenta"];646 -> 591[label="",style="dashed", color="red", weight=0]; 646[label="primModNatP0 (Succ vz55) (Succ vz56) (primGEqNatS vz570 vz580)",fontsize=16,color="magenta"];646 -> 654[label="",style="dashed", color="magenta", weight=3]; 646 -> 655[label="",style="dashed", color="magenta", weight=3]; 647[label="primModNatP0 (Succ vz55) (Succ vz56) True",fontsize=16,color="black",shape="triangle"];647 -> 656[label="",style="solid", color="black", weight=3]; 648[label="primModNatP0 (Succ vz55) (Succ vz56) False",fontsize=16,color="black",shape="box"];648 -> 657[label="",style="solid", color="black", weight=3]; 649 -> 647[label="",style="dashed", color="red", weight=0]; 649[label="primModNatP0 (Succ vz55) (Succ vz56) True",fontsize=16,color="magenta"];650[label="vz530",fontsize=16,color="green",shape="box"];651[label="vz520",fontsize=16,color="green",shape="box"];652 -> 28[label="",style="dashed", color="red", weight=0]; 652[label="primModNatS (primMinusNatS (Succ vz50) (Succ vz51)) (Succ (Succ vz51))",fontsize=16,color="magenta"];652 -> 658[label="",style="dashed", color="magenta", weight=3]; 652 -> 659[label="",style="dashed", color="magenta", weight=3]; 653[label="Succ (Succ vz50)",fontsize=16,color="green",shape="box"];654[label="vz570",fontsize=16,color="green",shape="box"];655[label="vz580",fontsize=16,color="green",shape="box"];656 -> 30[label="",style="dashed", color="red", weight=0]; 656[label="primModNatP (primMinusNatS (Succ vz55) (Succ vz56)) (Succ (Succ vz56))",fontsize=16,color="magenta"];656 -> 660[label="",style="dashed", color="magenta", weight=3]; 656 -> 661[label="",style="dashed", color="magenta", weight=3]; 657[label="primMinusNatS (Succ vz56) (Succ vz55)",fontsize=16,color="black",shape="triangle"];657 -> 662[label="",style="solid", color="black", weight=3]; 658 -> 657[label="",style="dashed", color="red", weight=0]; 658[label="primMinusNatS (Succ vz50) (Succ vz51)",fontsize=16,color="magenta"];658 -> 663[label="",style="dashed", color="magenta", weight=3]; 658 -> 664[label="",style="dashed", color="magenta", weight=3]; 659[label="Succ vz51",fontsize=16,color="green",shape="box"];660 -> 657[label="",style="dashed", color="red", weight=0]; 660[label="primMinusNatS (Succ vz55) (Succ vz56)",fontsize=16,color="magenta"];660 -> 665[label="",style="dashed", color="magenta", weight=3]; 660 -> 666[label="",style="dashed", color="magenta", weight=3]; 661[label="Succ vz56",fontsize=16,color="green",shape="box"];662[label="primMinusNatS vz56 vz55",fontsize=16,color="burlywood",shape="triangle"];721[label="vz56/Succ vz560",fontsize=10,color="white",style="solid",shape="box"];662 -> 721[label="",style="solid", color="burlywood", weight=9]; 721 -> 667[label="",style="solid", color="burlywood", weight=3]; 722[label="vz56/Zero",fontsize=10,color="white",style="solid",shape="box"];662 -> 722[label="",style="solid", color="burlywood", weight=9]; 722 -> 668[label="",style="solid", color="burlywood", weight=3]; 663[label="vz50",fontsize=16,color="green",shape="box"];664[label="vz51",fontsize=16,color="green",shape="box"];665[label="vz55",fontsize=16,color="green",shape="box"];666[label="vz56",fontsize=16,color="green",shape="box"];667[label="primMinusNatS (Succ vz560) vz55",fontsize=16,color="burlywood",shape="box"];723[label="vz55/Succ vz550",fontsize=10,color="white",style="solid",shape="box"];667 -> 723[label="",style="solid", color="burlywood", weight=9]; 723 -> 669[label="",style="solid", color="burlywood", weight=3]; 724[label="vz55/Zero",fontsize=10,color="white",style="solid",shape="box"];667 -> 724[label="",style="solid", color="burlywood", weight=9]; 724 -> 670[label="",style="solid", color="burlywood", weight=3]; 668[label="primMinusNatS Zero vz55",fontsize=16,color="burlywood",shape="box"];725[label="vz55/Succ vz550",fontsize=10,color="white",style="solid",shape="box"];668 -> 725[label="",style="solid", color="burlywood", weight=9]; 725 -> 671[label="",style="solid", color="burlywood", weight=3]; 726[label="vz55/Zero",fontsize=10,color="white",style="solid",shape="box"];668 -> 726[label="",style="solid", color="burlywood", weight=9]; 726 -> 672[label="",style="solid", color="burlywood", weight=3]; 669[label="primMinusNatS (Succ vz560) (Succ vz550)",fontsize=16,color="black",shape="box"];669 -> 673[label="",style="solid", color="black", weight=3]; 670[label="primMinusNatS (Succ vz560) Zero",fontsize=16,color="black",shape="box"];670 -> 674[label="",style="solid", color="black", weight=3]; 671[label="primMinusNatS Zero (Succ vz550)",fontsize=16,color="black",shape="box"];671 -> 675[label="",style="solid", color="black", weight=3]; 672[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];672 -> 676[label="",style="solid", color="black", weight=3]; 673 -> 662[label="",style="dashed", color="red", weight=0]; 673[label="primMinusNatS vz560 vz550",fontsize=16,color="magenta"];673 -> 677[label="",style="dashed", color="magenta", weight=3]; 673 -> 678[label="",style="dashed", color="magenta", weight=3]; 674[label="Succ vz560",fontsize=16,color="green",shape="box"];675[label="Zero",fontsize=16,color="green",shape="box"];676[label="Zero",fontsize=16,color="green",shape="box"];677[label="vz560",fontsize=16,color="green",shape="box"];678[label="vz550",fontsize=16,color="green",shape="box"];} ---------------------------------------- (8) Complex Obligation (AND) ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS00(vz50, vz51) -> new_primModNatS(new_primMinusNatS2(vz50, vz51), Succ(vz51)) new_primModNatS(Succ(Succ(vz3000)), Zero) -> new_primModNatS(new_primMinusNatS0(vz3000), Zero) new_primModNatS(Succ(Succ(vz3000)), Succ(vz4000)) -> new_primModNatS0(vz3000, vz4000, vz3000, vz4000) new_primModNatS(Succ(Zero), Zero) -> new_primModNatS(new_primMinusNatS1, Zero) new_primModNatS0(vz50, vz51, Succ(vz520), Succ(vz530)) -> new_primModNatS0(vz50, vz51, vz520, vz530) new_primModNatS0(vz50, vz51, Succ(vz520), Zero) -> new_primModNatS(new_primMinusNatS2(vz50, vz51), Succ(vz51)) new_primModNatS0(vz50, vz51, Zero, Zero) -> new_primModNatS00(vz50, vz51) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS3(Succ(vz560), Zero) -> Succ(vz560) new_primMinusNatS3(Zero, Zero) -> Zero new_primMinusNatS2(vz56, vz55) -> new_primMinusNatS3(vz56, vz55) new_primMinusNatS0(vz4000) -> Succ(vz4000) new_primMinusNatS3(Succ(vz560), Succ(vz550)) -> new_primMinusNatS3(vz560, vz550) new_primMinusNatS3(Zero, Succ(vz550)) -> Zero The set Q consists of the following terms: new_primMinusNatS3(Zero, Succ(x0)) new_primMinusNatS3(Succ(x0), Zero) new_primMinusNatS3(Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS3(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (11) Complex Obligation (AND) ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vz3000)), Zero) -> new_primModNatS(new_primMinusNatS0(vz3000), Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS3(Succ(vz560), Zero) -> Succ(vz560) new_primMinusNatS3(Zero, Zero) -> Zero new_primMinusNatS2(vz56, vz55) -> new_primMinusNatS3(vz56, vz55) new_primMinusNatS0(vz4000) -> Succ(vz4000) new_primMinusNatS3(Succ(vz560), Succ(vz550)) -> new_primMinusNatS3(vz560, vz550) new_primMinusNatS3(Zero, Succ(vz550)) -> Zero The set Q consists of the following terms: new_primMinusNatS3(Zero, Succ(x0)) new_primMinusNatS3(Succ(x0), Zero) new_primMinusNatS3(Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS3(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented dependency pairs: new_primModNatS(Succ(Succ(vz3000)), Zero) -> new_primModNatS(new_primMinusNatS0(vz3000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS3(Succ(vz560), Zero) -> Succ(vz560) new_primMinusNatS3(Zero, Zero) -> Zero new_primMinusNatS3(Succ(vz560), Succ(vz550)) -> new_primMinusNatS3(vz560, vz550) new_primMinusNatS3(Zero, Succ(vz550)) -> Zero Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 2 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 2 POL(new_primMinusNatS2(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 POL(new_primMinusNatS3(x_1, x_2)) = 1 + 2*x_1 + x_2 POL(new_primModNatS(x_1, x_2)) = x_1 + x_2 ---------------------------------------- (14) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(vz56, vz55) -> new_primMinusNatS3(vz56, vz55) new_primMinusNatS0(vz4000) -> Succ(vz4000) The set Q consists of the following terms: new_primMinusNatS3(Zero, Succ(x0)) new_primMinusNatS3(Succ(x0), Zero) new_primMinusNatS3(Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS3(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (16) YES ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vz3000)), Succ(vz4000)) -> new_primModNatS0(vz3000, vz4000, vz3000, vz4000) new_primModNatS0(vz50, vz51, Succ(vz520), Succ(vz530)) -> new_primModNatS0(vz50, vz51, vz520, vz530) new_primModNatS0(vz50, vz51, Succ(vz520), Zero) -> new_primModNatS(new_primMinusNatS2(vz50, vz51), Succ(vz51)) new_primModNatS0(vz50, vz51, Zero, Zero) -> new_primModNatS00(vz50, vz51) new_primModNatS00(vz50, vz51) -> new_primModNatS(new_primMinusNatS2(vz50, vz51), Succ(vz51)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS3(Succ(vz560), Zero) -> Succ(vz560) new_primMinusNatS3(Zero, Zero) -> Zero new_primMinusNatS2(vz56, vz55) -> new_primMinusNatS3(vz56, vz55) new_primMinusNatS0(vz4000) -> Succ(vz4000) new_primMinusNatS3(Succ(vz560), Succ(vz550)) -> new_primMinusNatS3(vz560, vz550) new_primMinusNatS3(Zero, Succ(vz550)) -> Zero The set Q consists of the following terms: new_primMinusNatS3(Zero, Succ(x0)) new_primMinusNatS3(Succ(x0), Zero) new_primMinusNatS3(Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS3(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primMinusNatS3(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_primModNatS0(vz50, vz51, Succ(vz520), Zero) -> new_primModNatS(new_primMinusNatS2(vz50, vz51), Succ(vz51)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primModNatS00(vz50, vz51) -> new_primModNatS(new_primMinusNatS2(vz50, vz51), Succ(vz51)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primModNatS(Succ(Succ(vz3000)), Succ(vz4000)) -> new_primModNatS0(vz3000, vz4000, vz3000, vz4000) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 > 1, 2 > 2, 1 > 3, 2 > 4 *new_primModNatS0(vz50, vz51, Succ(vz520), Succ(vz530)) -> new_primModNatS0(vz50, vz51, vz520, vz530) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 *new_primModNatS0(vz50, vz51, Zero, Zero) -> new_primModNatS00(vz50, vz51) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1, 2 >= 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primMinusNatS3(Zero, Zero) -> Zero new_primMinusNatS3(Zero, Succ(vz550)) -> Zero new_primMinusNatS3(Succ(vz560), Zero) -> Succ(vz560) new_primMinusNatS3(Succ(vz560), Succ(vz550)) -> new_primMinusNatS3(vz560, vz550) new_primMinusNatS2(vz56, vz55) -> new_primMinusNatS3(vz56, vz55) ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatP(Succ(Succ(vz3000)), Zero) -> new_primModNatP(new_primMinusNatS0(vz3000), Zero) new_primModNatP00(vz55, vz56) -> new_primModNatP(new_primMinusNatS2(vz55, vz56), Succ(vz56)) new_primModNatP(Succ(Succ(vz3000)), Succ(vz4000)) -> new_primModNatP0(vz3000, vz4000, vz3000, vz4000) new_primModNatP0(vz55, vz56, Succ(vz570), Zero) -> new_primModNatP(new_primMinusNatS2(vz55, vz56), Succ(vz56)) new_primModNatP(Succ(Zero), Zero) -> new_primModNatP(new_primMinusNatS1, Zero) new_primModNatP0(vz55, vz56, Zero, Zero) -> new_primModNatP00(vz55, vz56) new_primModNatP0(vz55, vz56, Succ(vz570), Succ(vz580)) -> new_primModNatP0(vz55, vz56, vz570, vz580) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS3(Succ(vz560), Zero) -> Succ(vz560) new_primMinusNatS3(Zero, Zero) -> Zero new_primMinusNatS2(vz56, vz55) -> new_primMinusNatS3(vz56, vz55) new_primMinusNatS0(vz4000) -> Succ(vz4000) new_primMinusNatS3(Succ(vz560), Succ(vz550)) -> new_primMinusNatS3(vz560, vz550) new_primMinusNatS3(Zero, Succ(vz550)) -> Zero The set Q consists of the following terms: new_primMinusNatS3(Zero, Succ(x0)) new_primMinusNatS3(Succ(x0), Zero) new_primMinusNatS3(Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS3(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (22) Complex Obligation (AND) ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatP(Succ(Succ(vz3000)), Succ(vz4000)) -> new_primModNatP0(vz3000, vz4000, vz3000, vz4000) new_primModNatP0(vz55, vz56, Succ(vz570), Zero) -> new_primModNatP(new_primMinusNatS2(vz55, vz56), Succ(vz56)) new_primModNatP0(vz55, vz56, Zero, Zero) -> new_primModNatP00(vz55, vz56) new_primModNatP00(vz55, vz56) -> new_primModNatP(new_primMinusNatS2(vz55, vz56), Succ(vz56)) new_primModNatP0(vz55, vz56, Succ(vz570), Succ(vz580)) -> new_primModNatP0(vz55, vz56, vz570, vz580) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS3(Succ(vz560), Zero) -> Succ(vz560) new_primMinusNatS3(Zero, Zero) -> Zero new_primMinusNatS2(vz56, vz55) -> new_primMinusNatS3(vz56, vz55) new_primMinusNatS0(vz4000) -> Succ(vz4000) new_primMinusNatS3(Succ(vz560), Succ(vz550)) -> new_primMinusNatS3(vz560, vz550) new_primMinusNatS3(Zero, Succ(vz550)) -> Zero The set Q consists of the following terms: new_primMinusNatS3(Zero, Succ(x0)) new_primMinusNatS3(Succ(x0), Zero) new_primMinusNatS3(Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS3(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (24) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primMinusNatS3(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_primModNatP0(vz55, vz56, Succ(vz570), Zero) -> new_primModNatP(new_primMinusNatS2(vz55, vz56), Succ(vz56)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primModNatP00(vz55, vz56) -> new_primModNatP(new_primMinusNatS2(vz55, vz56), Succ(vz56)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primModNatP(Succ(Succ(vz3000)), Succ(vz4000)) -> new_primModNatP0(vz3000, vz4000, vz3000, vz4000) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 > 1, 2 > 2, 1 > 3, 2 > 4 *new_primModNatP0(vz55, vz56, Succ(vz570), Succ(vz580)) -> new_primModNatP0(vz55, vz56, vz570, vz580) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 *new_primModNatP0(vz55, vz56, Zero, Zero) -> new_primModNatP00(vz55, vz56) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1, 2 >= 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primMinusNatS3(Zero, Zero) -> Zero new_primMinusNatS3(Zero, Succ(vz550)) -> Zero new_primMinusNatS3(Succ(vz560), Zero) -> Succ(vz560) new_primMinusNatS3(Succ(vz560), Succ(vz550)) -> new_primMinusNatS3(vz560, vz550) new_primMinusNatS2(vz56, vz55) -> new_primMinusNatS3(vz56, vz55) ---------------------------------------- (25) YES ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatP(Succ(Succ(vz3000)), Zero) -> new_primModNatP(new_primMinusNatS0(vz3000), Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS3(Succ(vz560), Zero) -> Succ(vz560) new_primMinusNatS3(Zero, Zero) -> Zero new_primMinusNatS2(vz56, vz55) -> new_primMinusNatS3(vz56, vz55) new_primMinusNatS0(vz4000) -> Succ(vz4000) new_primMinusNatS3(Succ(vz560), Succ(vz550)) -> new_primMinusNatS3(vz560, vz550) new_primMinusNatS3(Zero, Succ(vz550)) -> Zero The set Q consists of the following terms: new_primMinusNatS3(Zero, Succ(x0)) new_primMinusNatS3(Succ(x0), Zero) new_primMinusNatS3(Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS3(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented dependency pairs: new_primModNatP(Succ(Succ(vz3000)), Zero) -> new_primModNatP(new_primMinusNatS0(vz3000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS3(Succ(vz560), Zero) -> Succ(vz560) new_primMinusNatS3(Zero, Zero) -> Zero new_primMinusNatS3(Succ(vz560), Succ(vz550)) -> new_primMinusNatS3(vz560, vz550) new_primMinusNatS3(Zero, Succ(vz550)) -> Zero Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 2 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 2 POL(new_primMinusNatS2(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 POL(new_primMinusNatS3(x_1, x_2)) = 1 + 2*x_1 + x_2 POL(new_primModNatP(x_1, x_2)) = x_1 + x_2 ---------------------------------------- (28) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(vz56, vz55) -> new_primMinusNatS3(vz56, vz55) new_primMinusNatS0(vz4000) -> Succ(vz4000) The set Q consists of the following terms: new_primMinusNatS3(Zero, Succ(x0)) new_primMinusNatS3(Succ(x0), Zero) new_primMinusNatS3(Zero, Zero) new_primMinusNatS0(x0) new_primMinusNatS3(Succ(x0), Succ(x1)) new_primMinusNatS1 new_primMinusNatS2(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (30) YES ---------------------------------------- (31) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNatS(Succ(vz560), Succ(vz550)) -> new_primMinusNatS(vz560, vz550) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (32) 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_primMinusNatS(Succ(vz560), Succ(vz550)) -> new_primMinusNatS(vz560, vz550) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (33) YES