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