/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.hs /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty H-Termination with start terms of the given HASKELL could be proven: (0) HASKELL (1) LR [EQUIVALENT, 0 ms] (2) HASKELL (3) IFR [EQUIVALENT, 0 ms] (4) HASKELL (5) BR [EQUIVALENT, 0 ms] (6) HASKELL (7) COR [EQUIVALENT, 0 ms] (8) HASKELL (9) LetRed [EQUIVALENT, 9 ms] (10) HASKELL (11) Narrow [SOUND, 0 ms] (12) AND (13) QDP (14) DependencyGraphProof [EQUIVALENT, 0 ms] (15) AND (16) QDP (17) MRRProof [EQUIVALENT, 38 ms] (18) QDP (19) PisEmptyProof [EQUIVALENT, 0 ms] (20) YES (21) QDP (22) QDPSizeChangeProof [EQUIVALENT, 0 ms] (23) YES (24) QDP (25) DependencyGraphProof [EQUIVALENT, 0 ms] (26) AND (27) QDP (28) MRRProof [EQUIVALENT, 0 ms] (29) QDP (30) PisEmptyProof [EQUIVALENT, 0 ms] (31) YES (32) QDP (33) QDPOrderProof [EQUIVALENT, 42 ms] (34) QDP (35) DependencyGraphProof [EQUIVALENT, 0 ms] (36) QDP (37) QDPSizeChangeProof [EQUIVALENT, 0 ms] (38) YES (39) QDP (40) QDPSizeChangeProof [EQUIVALENT, 0 ms] (41) YES ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (1) LR (EQUIVALENT) Lambda Reductions: The following Lambda expression "\(q,_)->q" is transformed to "q1 (q,_) = q; " The following Lambda expression "\(_,r)->r" is transformed to "r0 (_,r) = r; " ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (3) 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 Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero" is transformed to "primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y)); primDivNatS0 x y False = Zero; " ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (5) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (6) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (7) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " ---------------------------------------- (8) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (9) LetRed (EQUIVALENT) Let/Where Reductions: The bindings of the following Let/Where expression "(fromIntegral q,r :% y) where { q = q1 vu30; ; q1 (q,vv) = q; ; r = r0 vu30; ; r0 (vw,r) = r; ; vu30 = quotRem x y; } " are unpacked to the following functions on top level "properFractionR wx wy = properFractionR0 wx wy (properFractionVu30 wx wy); " "properFractionVu30 wx wy = quotRem wx wy; " "properFractionQ1 wx wy (q,vv) = q; " "properFractionQ wx wy = properFractionQ1 wx wy (properFractionVu30 wx wy); " "properFractionR0 wx wy (vw,r) = r; " ---------------------------------------- (10) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (11) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="properFraction",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="properFraction wz3",fontsize=16,color="burlywood",shape="triangle"];561[label="wz3/wz30 :% wz31",fontsize=10,color="white",style="solid",shape="box"];3 -> 561[label="",style="solid", color="burlywood", weight=9]; 561 -> 4[label="",style="solid", color="burlywood", weight=3]; 4[label="properFraction (wz30 :% wz31)",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="(fromIntegral (properFractionQ wz30 wz31),properFractionR wz30 wz31 :% wz31)",fontsize=16,color="green",shape="box"];5 -> 6[label="",style="dashed", color="green", weight=3]; 5 -> 7[label="",style="dashed", color="green", weight=3]; 6[label="fromIntegral (properFractionQ wz30 wz31)",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 7[label="properFractionR wz30 wz31",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="fromInteger . toInteger",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 9[label="properFractionR0 wz30 wz31 (properFractionVu30 wz30 wz31)",fontsize=16,color="black",shape="box"];9 -> 11[label="",style="solid", color="black", weight=3]; 10[label="fromInteger (toInteger (properFractionQ wz30 wz31))",fontsize=16,color="black",shape="box"];10 -> 12[label="",style="solid", color="black", weight=3]; 11[label="properFractionR0 wz30 wz31 (quotRem wz30 wz31)",fontsize=16,color="black",shape="box"];11 -> 13[label="",style="solid", color="black", weight=3]; 12[label="fromInteger (Integer (properFractionQ wz30 wz31))",fontsize=16,color="black",shape="box"];12 -> 14[label="",style="solid", color="black", weight=3]; 13[label="properFractionR0 wz30 wz31 (primQrmInt wz30 wz31)",fontsize=16,color="black",shape="box"];13 -> 15[label="",style="solid", color="black", weight=3]; 14[label="properFractionQ wz30 wz31",fontsize=16,color="black",shape="box"];14 -> 16[label="",style="solid", color="black", weight=3]; 15[label="properFractionR0 wz30 wz31 (primQuotInt wz30 wz31,primRemInt wz30 wz31)",fontsize=16,color="black",shape="box"];15 -> 17[label="",style="solid", color="black", weight=3]; 16[label="properFractionQ1 wz30 wz31 (properFractionVu30 wz30 wz31)",fontsize=16,color="black",shape="box"];16 -> 18[label="",style="solid", color="black", weight=3]; 17[label="primRemInt wz30 wz31",fontsize=16,color="burlywood",shape="triangle"];562[label="wz30/Pos wz300",fontsize=10,color="white",style="solid",shape="box"];17 -> 562[label="",style="solid", color="burlywood", weight=9]; 562 -> 19[label="",style="solid", color="burlywood", weight=3]; 563[label="wz30/Neg wz300",fontsize=10,color="white",style="solid",shape="box"];17 -> 563[label="",style="solid", color="burlywood", weight=9]; 563 -> 20[label="",style="solid", color="burlywood", weight=3]; 18[label="properFractionQ1 wz30 wz31 (quotRem wz30 wz31)",fontsize=16,color="black",shape="box"];18 -> 21[label="",style="solid", color="black", weight=3]; 19[label="primRemInt (Pos wz300) wz31",fontsize=16,color="burlywood",shape="box"];564[label="wz31/Pos wz310",fontsize=10,color="white",style="solid",shape="box"];19 -> 564[label="",style="solid", color="burlywood", weight=9]; 564 -> 22[label="",style="solid", color="burlywood", weight=3]; 565[label="wz31/Neg wz310",fontsize=10,color="white",style="solid",shape="box"];19 -> 565[label="",style="solid", color="burlywood", weight=9]; 565 -> 23[label="",style="solid", color="burlywood", weight=3]; 20[label="primRemInt (Neg wz300) wz31",fontsize=16,color="burlywood",shape="box"];566[label="wz31/Pos wz310",fontsize=10,color="white",style="solid",shape="box"];20 -> 566[label="",style="solid", color="burlywood", weight=9]; 566 -> 24[label="",style="solid", color="burlywood", weight=3]; 567[label="wz31/Neg wz310",fontsize=10,color="white",style="solid",shape="box"];20 -> 567[label="",style="solid", color="burlywood", weight=9]; 567 -> 25[label="",style="solid", color="burlywood", weight=3]; 21[label="properFractionQ1 wz30 wz31 (primQrmInt wz30 wz31)",fontsize=16,color="black",shape="box"];21 -> 26[label="",style="solid", color="black", weight=3]; 22[label="primRemInt (Pos wz300) (Pos wz310)",fontsize=16,color="burlywood",shape="box"];568[label="wz310/Succ wz3100",fontsize=10,color="white",style="solid",shape="box"];22 -> 568[label="",style="solid", color="burlywood", weight=9]; 568 -> 27[label="",style="solid", color="burlywood", weight=3]; 569[label="wz310/Zero",fontsize=10,color="white",style="solid",shape="box"];22 -> 569[label="",style="solid", color="burlywood", weight=9]; 569 -> 28[label="",style="solid", color="burlywood", weight=3]; 23[label="primRemInt (Pos wz300) (Neg wz310)",fontsize=16,color="burlywood",shape="box"];570[label="wz310/Succ wz3100",fontsize=10,color="white",style="solid",shape="box"];23 -> 570[label="",style="solid", color="burlywood", weight=9]; 570 -> 29[label="",style="solid", color="burlywood", weight=3]; 571[label="wz310/Zero",fontsize=10,color="white",style="solid",shape="box"];23 -> 571[label="",style="solid", color="burlywood", weight=9]; 571 -> 30[label="",style="solid", color="burlywood", weight=3]; 24[label="primRemInt (Neg wz300) (Pos wz310)",fontsize=16,color="burlywood",shape="box"];572[label="wz310/Succ wz3100",fontsize=10,color="white",style="solid",shape="box"];24 -> 572[label="",style="solid", color="burlywood", weight=9]; 572 -> 31[label="",style="solid", color="burlywood", weight=3]; 573[label="wz310/Zero",fontsize=10,color="white",style="solid",shape="box"];24 -> 573[label="",style="solid", color="burlywood", weight=9]; 573 -> 32[label="",style="solid", color="burlywood", weight=3]; 25[label="primRemInt (Neg wz300) (Neg wz310)",fontsize=16,color="burlywood",shape="box"];574[label="wz310/Succ wz3100",fontsize=10,color="white",style="solid",shape="box"];25 -> 574[label="",style="solid", color="burlywood", weight=9]; 574 -> 33[label="",style="solid", color="burlywood", weight=3]; 575[label="wz310/Zero",fontsize=10,color="white",style="solid",shape="box"];25 -> 575[label="",style="solid", color="burlywood", weight=9]; 575 -> 34[label="",style="solid", color="burlywood", weight=3]; 26 -> 35[label="",style="dashed", color="red", weight=0]; 26[label="properFractionQ1 wz30 wz31 (primQuotInt wz30 wz31,primRemInt wz30 wz31)",fontsize=16,color="magenta"];26 -> 36[label="",style="dashed", color="magenta", weight=3]; 27[label="primRemInt (Pos wz300) (Pos (Succ wz3100))",fontsize=16,color="black",shape="box"];27 -> 37[label="",style="solid", color="black", weight=3]; 28[label="primRemInt (Pos wz300) (Pos Zero)",fontsize=16,color="black",shape="box"];28 -> 38[label="",style="solid", color="black", weight=3]; 29[label="primRemInt (Pos wz300) (Neg (Succ wz3100))",fontsize=16,color="black",shape="box"];29 -> 39[label="",style="solid", color="black", weight=3]; 30[label="primRemInt (Pos wz300) (Neg Zero)",fontsize=16,color="black",shape="box"];30 -> 40[label="",style="solid", color="black", weight=3]; 31[label="primRemInt (Neg wz300) (Pos (Succ wz3100))",fontsize=16,color="black",shape="box"];31 -> 41[label="",style="solid", color="black", weight=3]; 32[label="primRemInt (Neg wz300) (Pos Zero)",fontsize=16,color="black",shape="box"];32 -> 42[label="",style="solid", color="black", weight=3]; 33[label="primRemInt (Neg wz300) (Neg (Succ wz3100))",fontsize=16,color="black",shape="box"];33 -> 43[label="",style="solid", color="black", weight=3]; 34[label="primRemInt (Neg wz300) (Neg Zero)",fontsize=16,color="black",shape="box"];34 -> 44[label="",style="solid", color="black", weight=3]; 36 -> 17[label="",style="dashed", color="red", weight=0]; 36[label="primRemInt wz30 wz31",fontsize=16,color="magenta"];35[label="properFractionQ1 wz30 wz31 (primQuotInt wz30 wz31,wz4)",fontsize=16,color="black",shape="triangle"];35 -> 45[label="",style="solid", color="black", weight=3]; 37[label="Pos (primModNatS wz300 (Succ wz3100))",fontsize=16,color="green",shape="box"];37 -> 46[label="",style="dashed", color="green", weight=3]; 38[label="error []",fontsize=16,color="black",shape="triangle"];38 -> 47[label="",style="solid", color="black", weight=3]; 39[label="Pos (primModNatS wz300 (Succ wz3100))",fontsize=16,color="green",shape="box"];39 -> 48[label="",style="dashed", color="green", weight=3]; 40 -> 38[label="",style="dashed", color="red", weight=0]; 40[label="error []",fontsize=16,color="magenta"];41[label="Neg (primModNatS wz300 (Succ wz3100))",fontsize=16,color="green",shape="box"];41 -> 49[label="",style="dashed", color="green", weight=3]; 42 -> 38[label="",style="dashed", color="red", weight=0]; 42[label="error []",fontsize=16,color="magenta"];43[label="Neg (primModNatS wz300 (Succ wz3100))",fontsize=16,color="green",shape="box"];43 -> 50[label="",style="dashed", color="green", weight=3]; 44 -> 38[label="",style="dashed", color="red", weight=0]; 44[label="error []",fontsize=16,color="magenta"];45[label="primQuotInt wz30 wz31",fontsize=16,color="burlywood",shape="box"];576[label="wz30/Pos wz300",fontsize=10,color="white",style="solid",shape="box"];45 -> 576[label="",style="solid", color="burlywood", weight=9]; 576 -> 51[label="",style="solid", color="burlywood", weight=3]; 577[label="wz30/Neg wz300",fontsize=10,color="white",style="solid",shape="box"];45 -> 577[label="",style="solid", color="burlywood", weight=9]; 577 -> 52[label="",style="solid", color="burlywood", weight=3]; 46[label="primModNatS wz300 (Succ wz3100)",fontsize=16,color="burlywood",shape="triangle"];578[label="wz300/Succ wz3000",fontsize=10,color="white",style="solid",shape="box"];46 -> 578[label="",style="solid", color="burlywood", weight=9]; 578 -> 53[label="",style="solid", color="burlywood", weight=3]; 579[label="wz300/Zero",fontsize=10,color="white",style="solid",shape="box"];46 -> 579[label="",style="solid", color="burlywood", weight=9]; 579 -> 54[label="",style="solid", color="burlywood", weight=3]; 47[label="error []",fontsize=16,color="red",shape="box"];48 -> 46[label="",style="dashed", color="red", weight=0]; 48[label="primModNatS wz300 (Succ wz3100)",fontsize=16,color="magenta"];48 -> 55[label="",style="dashed", color="magenta", weight=3]; 49 -> 46[label="",style="dashed", color="red", weight=0]; 49[label="primModNatS wz300 (Succ wz3100)",fontsize=16,color="magenta"];49 -> 56[label="",style="dashed", color="magenta", weight=3]; 50 -> 46[label="",style="dashed", color="red", weight=0]; 50[label="primModNatS wz300 (Succ wz3100)",fontsize=16,color="magenta"];50 -> 57[label="",style="dashed", color="magenta", weight=3]; 50 -> 58[label="",style="dashed", color="magenta", weight=3]; 51[label="primQuotInt (Pos wz300) wz31",fontsize=16,color="burlywood",shape="box"];580[label="wz31/Pos wz310",fontsize=10,color="white",style="solid",shape="box"];51 -> 580[label="",style="solid", color="burlywood", weight=9]; 580 -> 59[label="",style="solid", color="burlywood", weight=3]; 581[label="wz31/Neg wz310",fontsize=10,color="white",style="solid",shape="box"];51 -> 581[label="",style="solid", color="burlywood", weight=9]; 581 -> 60[label="",style="solid", color="burlywood", weight=3]; 52[label="primQuotInt (Neg wz300) wz31",fontsize=16,color="burlywood",shape="box"];582[label="wz31/Pos wz310",fontsize=10,color="white",style="solid",shape="box"];52 -> 582[label="",style="solid", color="burlywood", weight=9]; 582 -> 61[label="",style="solid", color="burlywood", weight=3]; 583[label="wz31/Neg wz310",fontsize=10,color="white",style="solid",shape="box"];52 -> 583[label="",style="solid", color="burlywood", weight=9]; 583 -> 62[label="",style="solid", color="burlywood", weight=3]; 53[label="primModNatS (Succ wz3000) (Succ wz3100)",fontsize=16,color="black",shape="box"];53 -> 63[label="",style="solid", color="black", weight=3]; 54[label="primModNatS Zero (Succ wz3100)",fontsize=16,color="black",shape="box"];54 -> 64[label="",style="solid", color="black", weight=3]; 55[label="wz3100",fontsize=16,color="green",shape="box"];56[label="wz300",fontsize=16,color="green",shape="box"];57[label="wz300",fontsize=16,color="green",shape="box"];58[label="wz3100",fontsize=16,color="green",shape="box"];59[label="primQuotInt (Pos wz300) (Pos wz310)",fontsize=16,color="burlywood",shape="box"];584[label="wz310/Succ wz3100",fontsize=10,color="white",style="solid",shape="box"];59 -> 584[label="",style="solid", color="burlywood", weight=9]; 584 -> 65[label="",style="solid", color="burlywood", weight=3]; 585[label="wz310/Zero",fontsize=10,color="white",style="solid",shape="box"];59 -> 585[label="",style="solid", color="burlywood", weight=9]; 585 -> 66[label="",style="solid", color="burlywood", weight=3]; 60[label="primQuotInt (Pos wz300) (Neg wz310)",fontsize=16,color="burlywood",shape="box"];586[label="wz310/Succ wz3100",fontsize=10,color="white",style="solid",shape="box"];60 -> 586[label="",style="solid", color="burlywood", weight=9]; 586 -> 67[label="",style="solid", color="burlywood", weight=3]; 587[label="wz310/Zero",fontsize=10,color="white",style="solid",shape="box"];60 -> 587[label="",style="solid", color="burlywood", weight=9]; 587 -> 68[label="",style="solid", color="burlywood", weight=3]; 61[label="primQuotInt (Neg wz300) (Pos wz310)",fontsize=16,color="burlywood",shape="box"];588[label="wz310/Succ wz3100",fontsize=10,color="white",style="solid",shape="box"];61 -> 588[label="",style="solid", color="burlywood", weight=9]; 588 -> 69[label="",style="solid", color="burlywood", weight=3]; 589[label="wz310/Zero",fontsize=10,color="white",style="solid",shape="box"];61 -> 589[label="",style="solid", color="burlywood", weight=9]; 589 -> 70[label="",style="solid", color="burlywood", weight=3]; 62[label="primQuotInt (Neg wz300) (Neg wz310)",fontsize=16,color="burlywood",shape="box"];590[label="wz310/Succ wz3100",fontsize=10,color="white",style="solid",shape="box"];62 -> 590[label="",style="solid", color="burlywood", weight=9]; 590 -> 71[label="",style="solid", color="burlywood", weight=3]; 591[label="wz310/Zero",fontsize=10,color="white",style="solid",shape="box"];62 -> 591[label="",style="solid", color="burlywood", weight=9]; 591 -> 72[label="",style="solid", color="burlywood", weight=3]; 63[label="primModNatS0 wz3000 wz3100 (primGEqNatS wz3000 wz3100)",fontsize=16,color="burlywood",shape="box"];592[label="wz3000/Succ wz30000",fontsize=10,color="white",style="solid",shape="box"];63 -> 592[label="",style="solid", color="burlywood", weight=9]; 592 -> 73[label="",style="solid", color="burlywood", weight=3]; 593[label="wz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];63 -> 593[label="",style="solid", color="burlywood", weight=9]; 593 -> 74[label="",style="solid", color="burlywood", weight=3]; 64[label="Zero",fontsize=16,color="green",shape="box"];65[label="primQuotInt (Pos wz300) (Pos (Succ wz3100))",fontsize=16,color="black",shape="box"];65 -> 75[label="",style="solid", color="black", weight=3]; 66[label="primQuotInt (Pos wz300) (Pos Zero)",fontsize=16,color="black",shape="box"];66 -> 76[label="",style="solid", color="black", weight=3]; 67[label="primQuotInt (Pos wz300) (Neg (Succ wz3100))",fontsize=16,color="black",shape="box"];67 -> 77[label="",style="solid", color="black", weight=3]; 68[label="primQuotInt (Pos wz300) (Neg Zero)",fontsize=16,color="black",shape="box"];68 -> 78[label="",style="solid", color="black", weight=3]; 69[label="primQuotInt (Neg wz300) (Pos (Succ wz3100))",fontsize=16,color="black",shape="box"];69 -> 79[label="",style="solid", color="black", weight=3]; 70[label="primQuotInt (Neg wz300) (Pos Zero)",fontsize=16,color="black",shape="box"];70 -> 80[label="",style="solid", color="black", weight=3]; 71[label="primQuotInt (Neg wz300) (Neg (Succ wz3100))",fontsize=16,color="black",shape="box"];71 -> 81[label="",style="solid", color="black", weight=3]; 72[label="primQuotInt (Neg wz300) (Neg Zero)",fontsize=16,color="black",shape="box"];72 -> 82[label="",style="solid", color="black", weight=3]; 73[label="primModNatS0 (Succ wz30000) wz3100 (primGEqNatS (Succ wz30000) wz3100)",fontsize=16,color="burlywood",shape="box"];594[label="wz3100/Succ wz31000",fontsize=10,color="white",style="solid",shape="box"];73 -> 594[label="",style="solid", color="burlywood", weight=9]; 594 -> 83[label="",style="solid", color="burlywood", weight=3]; 595[label="wz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];73 -> 595[label="",style="solid", color="burlywood", weight=9]; 595 -> 84[label="",style="solid", color="burlywood", weight=3]; 74[label="primModNatS0 Zero wz3100 (primGEqNatS Zero wz3100)",fontsize=16,color="burlywood",shape="box"];596[label="wz3100/Succ wz31000",fontsize=10,color="white",style="solid",shape="box"];74 -> 596[label="",style="solid", color="burlywood", weight=9]; 596 -> 85[label="",style="solid", color="burlywood", weight=3]; 597[label="wz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];74 -> 597[label="",style="solid", color="burlywood", weight=9]; 597 -> 86[label="",style="solid", color="burlywood", weight=3]; 75[label="Pos (primDivNatS wz300 (Succ wz3100))",fontsize=16,color="green",shape="box"];75 -> 87[label="",style="dashed", color="green", weight=3]; 76 -> 38[label="",style="dashed", color="red", weight=0]; 76[label="error []",fontsize=16,color="magenta"];77[label="Neg (primDivNatS wz300 (Succ wz3100))",fontsize=16,color="green",shape="box"];77 -> 88[label="",style="dashed", color="green", weight=3]; 78 -> 38[label="",style="dashed", color="red", weight=0]; 78[label="error []",fontsize=16,color="magenta"];79[label="Neg (primDivNatS wz300 (Succ wz3100))",fontsize=16,color="green",shape="box"];79 -> 89[label="",style="dashed", color="green", weight=3]; 80 -> 38[label="",style="dashed", color="red", weight=0]; 80[label="error []",fontsize=16,color="magenta"];81[label="Pos (primDivNatS wz300 (Succ wz3100))",fontsize=16,color="green",shape="box"];81 -> 90[label="",style="dashed", color="green", weight=3]; 82 -> 38[label="",style="dashed", color="red", weight=0]; 82[label="error []",fontsize=16,color="magenta"];83[label="primModNatS0 (Succ wz30000) (Succ wz31000) (primGEqNatS (Succ wz30000) (Succ wz31000))",fontsize=16,color="black",shape="box"];83 -> 91[label="",style="solid", color="black", weight=3]; 84[label="primModNatS0 (Succ wz30000) Zero (primGEqNatS (Succ wz30000) Zero)",fontsize=16,color="black",shape="box"];84 -> 92[label="",style="solid", color="black", weight=3]; 85[label="primModNatS0 Zero (Succ wz31000) (primGEqNatS Zero (Succ wz31000))",fontsize=16,color="black",shape="box"];85 -> 93[label="",style="solid", color="black", weight=3]; 86[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];86 -> 94[label="",style="solid", color="black", weight=3]; 87[label="primDivNatS wz300 (Succ wz3100)",fontsize=16,color="burlywood",shape="triangle"];598[label="wz300/Succ wz3000",fontsize=10,color="white",style="solid",shape="box"];87 -> 598[label="",style="solid", color="burlywood", weight=9]; 598 -> 95[label="",style="solid", color="burlywood", weight=3]; 599[label="wz300/Zero",fontsize=10,color="white",style="solid",shape="box"];87 -> 599[label="",style="solid", color="burlywood", weight=9]; 599 -> 96[label="",style="solid", color="burlywood", weight=3]; 88 -> 87[label="",style="dashed", color="red", weight=0]; 88[label="primDivNatS wz300 (Succ wz3100)",fontsize=16,color="magenta"];88 -> 97[label="",style="dashed", color="magenta", weight=3]; 89 -> 87[label="",style="dashed", color="red", weight=0]; 89[label="primDivNatS wz300 (Succ wz3100)",fontsize=16,color="magenta"];89 -> 98[label="",style="dashed", color="magenta", weight=3]; 90 -> 87[label="",style="dashed", color="red", weight=0]; 90[label="primDivNatS wz300 (Succ wz3100)",fontsize=16,color="magenta"];90 -> 99[label="",style="dashed", color="magenta", weight=3]; 90 -> 100[label="",style="dashed", color="magenta", weight=3]; 91 -> 362[label="",style="dashed", color="red", weight=0]; 91[label="primModNatS0 (Succ wz30000) (Succ wz31000) (primGEqNatS wz30000 wz31000)",fontsize=16,color="magenta"];91 -> 363[label="",style="dashed", color="magenta", weight=3]; 91 -> 364[label="",style="dashed", color="magenta", weight=3]; 91 -> 365[label="",style="dashed", color="magenta", weight=3]; 91 -> 366[label="",style="dashed", color="magenta", weight=3]; 92[label="primModNatS0 (Succ wz30000) Zero True",fontsize=16,color="black",shape="box"];92 -> 103[label="",style="solid", color="black", weight=3]; 93[label="primModNatS0 Zero (Succ wz31000) False",fontsize=16,color="black",shape="box"];93 -> 104[label="",style="solid", color="black", weight=3]; 94[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];94 -> 105[label="",style="solid", color="black", weight=3]; 95[label="primDivNatS (Succ wz3000) (Succ wz3100)",fontsize=16,color="black",shape="box"];95 -> 106[label="",style="solid", color="black", weight=3]; 96[label="primDivNatS Zero (Succ wz3100)",fontsize=16,color="black",shape="box"];96 -> 107[label="",style="solid", color="black", weight=3]; 97[label="wz3100",fontsize=16,color="green",shape="box"];98[label="wz300",fontsize=16,color="green",shape="box"];99[label="wz300",fontsize=16,color="green",shape="box"];100[label="wz3100",fontsize=16,color="green",shape="box"];363[label="wz31000",fontsize=16,color="green",shape="box"];364[label="wz30000",fontsize=16,color="green",shape="box"];365[label="wz31000",fontsize=16,color="green",shape="box"];366[label="wz30000",fontsize=16,color="green",shape="box"];362[label="primModNatS0 (Succ wz21) (Succ wz22) (primGEqNatS wz23 wz24)",fontsize=16,color="burlywood",shape="triangle"];600[label="wz23/Succ wz230",fontsize=10,color="white",style="solid",shape="box"];362 -> 600[label="",style="solid", color="burlywood", weight=9]; 600 -> 395[label="",style="solid", color="burlywood", weight=3]; 601[label="wz23/Zero",fontsize=10,color="white",style="solid",shape="box"];362 -> 601[label="",style="solid", color="burlywood", weight=9]; 601 -> 396[label="",style="solid", color="burlywood", weight=3]; 103 -> 46[label="",style="dashed", color="red", weight=0]; 103[label="primModNatS (primMinusNatS (Succ wz30000) Zero) (Succ Zero)",fontsize=16,color="magenta"];103 -> 112[label="",style="dashed", color="magenta", weight=3]; 103 -> 113[label="",style="dashed", color="magenta", weight=3]; 104[label="Succ Zero",fontsize=16,color="green",shape="box"];105 -> 46[label="",style="dashed", color="red", weight=0]; 105[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];105 -> 114[label="",style="dashed", color="magenta", weight=3]; 105 -> 115[label="",style="dashed", color="magenta", weight=3]; 106[label="primDivNatS0 wz3000 wz3100 (primGEqNatS wz3000 wz3100)",fontsize=16,color="burlywood",shape="box"];602[label="wz3000/Succ wz30000",fontsize=10,color="white",style="solid",shape="box"];106 -> 602[label="",style="solid", color="burlywood", weight=9]; 602 -> 116[label="",style="solid", color="burlywood", weight=3]; 603[label="wz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];106 -> 603[label="",style="solid", color="burlywood", weight=9]; 603 -> 117[label="",style="solid", color="burlywood", weight=3]; 107[label="Zero",fontsize=16,color="green",shape="box"];395[label="primModNatS0 (Succ wz21) (Succ wz22) (primGEqNatS (Succ wz230) wz24)",fontsize=16,color="burlywood",shape="box"];604[label="wz24/Succ wz240",fontsize=10,color="white",style="solid",shape="box"];395 -> 604[label="",style="solid", color="burlywood", weight=9]; 604 -> 402[label="",style="solid", color="burlywood", weight=3]; 605[label="wz24/Zero",fontsize=10,color="white",style="solid",shape="box"];395 -> 605[label="",style="solid", color="burlywood", weight=9]; 605 -> 403[label="",style="solid", color="burlywood", weight=3]; 396[label="primModNatS0 (Succ wz21) (Succ wz22) (primGEqNatS Zero wz24)",fontsize=16,color="burlywood",shape="box"];606[label="wz24/Succ wz240",fontsize=10,color="white",style="solid",shape="box"];396 -> 606[label="",style="solid", color="burlywood", weight=9]; 606 -> 404[label="",style="solid", color="burlywood", weight=3]; 607[label="wz24/Zero",fontsize=10,color="white",style="solid",shape="box"];396 -> 607[label="",style="solid", color="burlywood", weight=9]; 607 -> 405[label="",style="solid", color="burlywood", weight=3]; 112[label="primMinusNatS (Succ wz30000) Zero",fontsize=16,color="black",shape="triangle"];112 -> 122[label="",style="solid", color="black", weight=3]; 113[label="Zero",fontsize=16,color="green",shape="box"];114[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];114 -> 123[label="",style="solid", color="black", weight=3]; 115[label="Zero",fontsize=16,color="green",shape="box"];116[label="primDivNatS0 (Succ wz30000) wz3100 (primGEqNatS (Succ wz30000) wz3100)",fontsize=16,color="burlywood",shape="box"];608[label="wz3100/Succ wz31000",fontsize=10,color="white",style="solid",shape="box"];116 -> 608[label="",style="solid", color="burlywood", weight=9]; 608 -> 124[label="",style="solid", color="burlywood", weight=3]; 609[label="wz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];116 -> 609[label="",style="solid", color="burlywood", weight=9]; 609 -> 125[label="",style="solid", color="burlywood", weight=3]; 117[label="primDivNatS0 Zero wz3100 (primGEqNatS Zero wz3100)",fontsize=16,color="burlywood",shape="box"];610[label="wz3100/Succ wz31000",fontsize=10,color="white",style="solid",shape="box"];117 -> 610[label="",style="solid", color="burlywood", weight=9]; 610 -> 126[label="",style="solid", color="burlywood", weight=3]; 611[label="wz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];117 -> 611[label="",style="solid", color="burlywood", weight=9]; 611 -> 127[label="",style="solid", color="burlywood", weight=3]; 402[label="primModNatS0 (Succ wz21) (Succ wz22) (primGEqNatS (Succ wz230) (Succ wz240))",fontsize=16,color="black",shape="box"];402 -> 408[label="",style="solid", color="black", weight=3]; 403[label="primModNatS0 (Succ wz21) (Succ wz22) (primGEqNatS (Succ wz230) Zero)",fontsize=16,color="black",shape="box"];403 -> 409[label="",style="solid", color="black", weight=3]; 404[label="primModNatS0 (Succ wz21) (Succ wz22) (primGEqNatS Zero (Succ wz240))",fontsize=16,color="black",shape="box"];404 -> 410[label="",style="solid", color="black", weight=3]; 405[label="primModNatS0 (Succ wz21) (Succ wz22) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];405 -> 411[label="",style="solid", color="black", weight=3]; 122[label="Succ wz30000",fontsize=16,color="green",shape="box"];123[label="Zero",fontsize=16,color="green",shape="box"];124[label="primDivNatS0 (Succ wz30000) (Succ wz31000) (primGEqNatS (Succ wz30000) (Succ wz31000))",fontsize=16,color="black",shape="box"];124 -> 133[label="",style="solid", color="black", weight=3]; 125[label="primDivNatS0 (Succ wz30000) Zero (primGEqNatS (Succ wz30000) Zero)",fontsize=16,color="black",shape="box"];125 -> 134[label="",style="solid", color="black", weight=3]; 126[label="primDivNatS0 Zero (Succ wz31000) (primGEqNatS Zero (Succ wz31000))",fontsize=16,color="black",shape="box"];126 -> 135[label="",style="solid", color="black", weight=3]; 127[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];127 -> 136[label="",style="solid", color="black", weight=3]; 408 -> 362[label="",style="dashed", color="red", weight=0]; 408[label="primModNatS0 (Succ wz21) (Succ wz22) (primGEqNatS wz230 wz240)",fontsize=16,color="magenta"];408 -> 420[label="",style="dashed", color="magenta", weight=3]; 408 -> 421[label="",style="dashed", color="magenta", weight=3]; 409[label="primModNatS0 (Succ wz21) (Succ wz22) True",fontsize=16,color="black",shape="triangle"];409 -> 422[label="",style="solid", color="black", weight=3]; 410[label="primModNatS0 (Succ wz21) (Succ wz22) False",fontsize=16,color="black",shape="box"];410 -> 423[label="",style="solid", color="black", weight=3]; 411 -> 409[label="",style="dashed", color="red", weight=0]; 411[label="primModNatS0 (Succ wz21) (Succ wz22) True",fontsize=16,color="magenta"];133 -> 505[label="",style="dashed", color="red", weight=0]; 133[label="primDivNatS0 (Succ wz30000) (Succ wz31000) (primGEqNatS wz30000 wz31000)",fontsize=16,color="magenta"];133 -> 506[label="",style="dashed", color="magenta", weight=3]; 133 -> 507[label="",style="dashed", color="magenta", weight=3]; 133 -> 508[label="",style="dashed", color="magenta", weight=3]; 133 -> 509[label="",style="dashed", color="magenta", weight=3]; 134[label="primDivNatS0 (Succ wz30000) Zero True",fontsize=16,color="black",shape="box"];134 -> 147[label="",style="solid", color="black", weight=3]; 135[label="primDivNatS0 Zero (Succ wz31000) False",fontsize=16,color="black",shape="box"];135 -> 148[label="",style="solid", color="black", weight=3]; 136[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];136 -> 149[label="",style="solid", color="black", weight=3]; 420[label="wz240",fontsize=16,color="green",shape="box"];421[label="wz230",fontsize=16,color="green",shape="box"];422 -> 46[label="",style="dashed", color="red", weight=0]; 422[label="primModNatS (primMinusNatS (Succ wz21) (Succ wz22)) (Succ (Succ wz22))",fontsize=16,color="magenta"];422 -> 430[label="",style="dashed", color="magenta", weight=3]; 422 -> 431[label="",style="dashed", color="magenta", weight=3]; 423[label="Succ (Succ wz21)",fontsize=16,color="green",shape="box"];506[label="wz31000",fontsize=16,color="green",shape="box"];507[label="wz30000",fontsize=16,color="green",shape="box"];508[label="wz30000",fontsize=16,color="green",shape="box"];509[label="wz31000",fontsize=16,color="green",shape="box"];505[label="primDivNatS0 (Succ wz45) (Succ wz46) (primGEqNatS wz47 wz48)",fontsize=16,color="burlywood",shape="triangle"];612[label="wz47/Succ wz470",fontsize=10,color="white",style="solid",shape="box"];505 -> 612[label="",style="solid", color="burlywood", weight=9]; 612 -> 542[label="",style="solid", color="burlywood", weight=3]; 613[label="wz47/Zero",fontsize=10,color="white",style="solid",shape="box"];505 -> 613[label="",style="solid", color="burlywood", weight=9]; 613 -> 543[label="",style="solid", color="burlywood", weight=3]; 147[label="Succ (primDivNatS (primMinusNatS (Succ wz30000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];147 -> 160[label="",style="dashed", color="green", weight=3]; 148[label="Zero",fontsize=16,color="green",shape="box"];149[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];149 -> 161[label="",style="dashed", color="green", weight=3]; 430[label="primMinusNatS (Succ wz21) (Succ wz22)",fontsize=16,color="black",shape="box"];430 -> 436[label="",style="solid", color="black", weight=3]; 431[label="Succ wz22",fontsize=16,color="green",shape="box"];542[label="primDivNatS0 (Succ wz45) (Succ wz46) (primGEqNatS (Succ wz470) wz48)",fontsize=16,color="burlywood",shape="box"];614[label="wz48/Succ wz480",fontsize=10,color="white",style="solid",shape="box"];542 -> 614[label="",style="solid", color="burlywood", weight=9]; 614 -> 544[label="",style="solid", color="burlywood", weight=3]; 615[label="wz48/Zero",fontsize=10,color="white",style="solid",shape="box"];542 -> 615[label="",style="solid", color="burlywood", weight=9]; 615 -> 545[label="",style="solid", color="burlywood", weight=3]; 543[label="primDivNatS0 (Succ wz45) (Succ wz46) (primGEqNatS Zero wz48)",fontsize=16,color="burlywood",shape="box"];616[label="wz48/Succ wz480",fontsize=10,color="white",style="solid",shape="box"];543 -> 616[label="",style="solid", color="burlywood", weight=9]; 616 -> 546[label="",style="solid", color="burlywood", weight=3]; 617[label="wz48/Zero",fontsize=10,color="white",style="solid",shape="box"];543 -> 617[label="",style="solid", color="burlywood", weight=9]; 617 -> 547[label="",style="solid", color="burlywood", weight=3]; 160 -> 87[label="",style="dashed", color="red", weight=0]; 160[label="primDivNatS (primMinusNatS (Succ wz30000) Zero) (Succ Zero)",fontsize=16,color="magenta"];160 -> 172[label="",style="dashed", color="magenta", weight=3]; 160 -> 173[label="",style="dashed", color="magenta", weight=3]; 161 -> 87[label="",style="dashed", color="red", weight=0]; 161[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];161 -> 174[label="",style="dashed", color="magenta", weight=3]; 161 -> 175[label="",style="dashed", color="magenta", weight=3]; 436[label="primMinusNatS wz21 wz22",fontsize=16,color="burlywood",shape="triangle"];618[label="wz21/Succ wz210",fontsize=10,color="white",style="solid",shape="box"];436 -> 618[label="",style="solid", color="burlywood", weight=9]; 618 -> 440[label="",style="solid", color="burlywood", weight=3]; 619[label="wz21/Zero",fontsize=10,color="white",style="solid",shape="box"];436 -> 619[label="",style="solid", color="burlywood", weight=9]; 619 -> 441[label="",style="solid", color="burlywood", weight=3]; 544[label="primDivNatS0 (Succ wz45) (Succ wz46) (primGEqNatS (Succ wz470) (Succ wz480))",fontsize=16,color="black",shape="box"];544 -> 548[label="",style="solid", color="black", weight=3]; 545[label="primDivNatS0 (Succ wz45) (Succ wz46) (primGEqNatS (Succ wz470) Zero)",fontsize=16,color="black",shape="box"];545 -> 549[label="",style="solid", color="black", weight=3]; 546[label="primDivNatS0 (Succ wz45) (Succ wz46) (primGEqNatS Zero (Succ wz480))",fontsize=16,color="black",shape="box"];546 -> 550[label="",style="solid", color="black", weight=3]; 547[label="primDivNatS0 (Succ wz45) (Succ wz46) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];547 -> 551[label="",style="solid", color="black", weight=3]; 172 -> 112[label="",style="dashed", color="red", weight=0]; 172[label="primMinusNatS (Succ wz30000) Zero",fontsize=16,color="magenta"];173[label="Zero",fontsize=16,color="green",shape="box"];174 -> 114[label="",style="dashed", color="red", weight=0]; 174[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];175[label="Zero",fontsize=16,color="green",shape="box"];440[label="primMinusNatS (Succ wz210) wz22",fontsize=16,color="burlywood",shape="box"];620[label="wz22/Succ wz220",fontsize=10,color="white",style="solid",shape="box"];440 -> 620[label="",style="solid", color="burlywood", weight=9]; 620 -> 445[label="",style="solid", color="burlywood", weight=3]; 621[label="wz22/Zero",fontsize=10,color="white",style="solid",shape="box"];440 -> 621[label="",style="solid", color="burlywood", weight=9]; 621 -> 446[label="",style="solid", color="burlywood", weight=3]; 441[label="primMinusNatS Zero wz22",fontsize=16,color="burlywood",shape="box"];622[label="wz22/Succ wz220",fontsize=10,color="white",style="solid",shape="box"];441 -> 622[label="",style="solid", color="burlywood", weight=9]; 622 -> 447[label="",style="solid", color="burlywood", weight=3]; 623[label="wz22/Zero",fontsize=10,color="white",style="solid",shape="box"];441 -> 623[label="",style="solid", color="burlywood", weight=9]; 623 -> 448[label="",style="solid", color="burlywood", weight=3]; 548 -> 505[label="",style="dashed", color="red", weight=0]; 548[label="primDivNatS0 (Succ wz45) (Succ wz46) (primGEqNatS wz470 wz480)",fontsize=16,color="magenta"];548 -> 552[label="",style="dashed", color="magenta", weight=3]; 548 -> 553[label="",style="dashed", color="magenta", weight=3]; 549[label="primDivNatS0 (Succ wz45) (Succ wz46) True",fontsize=16,color="black",shape="triangle"];549 -> 554[label="",style="solid", color="black", weight=3]; 550[label="primDivNatS0 (Succ wz45) (Succ wz46) False",fontsize=16,color="black",shape="box"];550 -> 555[label="",style="solid", color="black", weight=3]; 551 -> 549[label="",style="dashed", color="red", weight=0]; 551[label="primDivNatS0 (Succ wz45) (Succ wz46) True",fontsize=16,color="magenta"];445[label="primMinusNatS (Succ wz210) (Succ wz220)",fontsize=16,color="black",shape="box"];445 -> 451[label="",style="solid", color="black", weight=3]; 446[label="primMinusNatS (Succ wz210) Zero",fontsize=16,color="black",shape="box"];446 -> 452[label="",style="solid", color="black", weight=3]; 447[label="primMinusNatS Zero (Succ wz220)",fontsize=16,color="black",shape="box"];447 -> 453[label="",style="solid", color="black", weight=3]; 448[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];448 -> 454[label="",style="solid", color="black", weight=3]; 552[label="wz470",fontsize=16,color="green",shape="box"];553[label="wz480",fontsize=16,color="green",shape="box"];554[label="Succ (primDivNatS (primMinusNatS (Succ wz45) (Succ wz46)) (Succ (Succ wz46)))",fontsize=16,color="green",shape="box"];554 -> 556[label="",style="dashed", color="green", weight=3]; 555[label="Zero",fontsize=16,color="green",shape="box"];451 -> 436[label="",style="dashed", color="red", weight=0]; 451[label="primMinusNatS wz210 wz220",fontsize=16,color="magenta"];451 -> 491[label="",style="dashed", color="magenta", weight=3]; 451 -> 492[label="",style="dashed", color="magenta", weight=3]; 452[label="Succ wz210",fontsize=16,color="green",shape="box"];453[label="Zero",fontsize=16,color="green",shape="box"];454[label="Zero",fontsize=16,color="green",shape="box"];556 -> 87[label="",style="dashed", color="red", weight=0]; 556[label="primDivNatS (primMinusNatS (Succ wz45) (Succ wz46)) (Succ (Succ wz46))",fontsize=16,color="magenta"];556 -> 557[label="",style="dashed", color="magenta", weight=3]; 556 -> 558[label="",style="dashed", color="magenta", weight=3]; 491[label="wz220",fontsize=16,color="green",shape="box"];492[label="wz210",fontsize=16,color="green",shape="box"];557 -> 436[label="",style="dashed", color="red", weight=0]; 557[label="primMinusNatS (Succ wz45) (Succ wz46)",fontsize=16,color="magenta"];557 -> 559[label="",style="dashed", color="magenta", weight=3]; 557 -> 560[label="",style="dashed", color="magenta", weight=3]; 558[label="Succ wz46",fontsize=16,color="green",shape="box"];559[label="Succ wz46",fontsize=16,color="green",shape="box"];560[label="Succ wz45",fontsize=16,color="green",shape="box"];} ---------------------------------------- (12) Complex Obligation (AND) ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS00(wz21, wz22) -> new_primModNatS(new_primMinusNatS2(wz21, wz22), Succ(wz22)) new_primModNatS(Succ(Succ(wz30000)), Zero) -> new_primModNatS(new_primMinusNatS0(wz30000), Zero) new_primModNatS(Succ(Succ(wz30000)), Succ(wz31000)) -> new_primModNatS0(wz30000, wz31000, wz30000, wz31000) new_primModNatS(Succ(Zero), Zero) -> new_primModNatS(new_primMinusNatS1, Zero) new_primModNatS0(wz21, wz22, Succ(wz230), Succ(wz240)) -> new_primModNatS0(wz21, wz22, wz230, wz240) new_primModNatS0(wz21, wz22, Succ(wz230), Zero) -> new_primModNatS(new_primMinusNatS2(wz21, wz22), Succ(wz22)) new_primModNatS0(wz21, wz22, Zero, Zero) -> new_primModNatS00(wz21, wz22) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(wz210), Zero) -> Succ(wz210) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(wz210), Succ(wz220)) -> new_primMinusNatS2(wz210, wz220) new_primMinusNatS2(Zero, Succ(wz220)) -> Zero new_primMinusNatS0(wz30000) -> Succ(wz30000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (15) Complex Obligation (AND) ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(wz30000)), Zero) -> new_primModNatS(new_primMinusNatS0(wz30000), Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(wz210), Zero) -> Succ(wz210) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(wz210), Succ(wz220)) -> new_primMinusNatS2(wz210, wz220) new_primMinusNatS2(Zero, Succ(wz220)) -> Zero new_primMinusNatS0(wz30000) -> Succ(wz30000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) 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(wz30000)), Zero) -> new_primModNatS(new_primMinusNatS0(wz30000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS2(Succ(wz210), Zero) -> Succ(wz210) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(wz210), Succ(wz220)) -> new_primMinusNatS2(wz210, wz220) new_primMinusNatS2(Zero, Succ(wz220)) -> 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_primModNatS(x_1, x_2)) = x_1 + x_2 ---------------------------------------- (18) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS0(wz30000) -> Succ(wz30000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (19) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (20) YES ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(wz30000)), Succ(wz31000)) -> new_primModNatS0(wz30000, wz31000, wz30000, wz31000) new_primModNatS0(wz21, wz22, Succ(wz230), Succ(wz240)) -> new_primModNatS0(wz21, wz22, wz230, wz240) new_primModNatS0(wz21, wz22, Succ(wz230), Zero) -> new_primModNatS(new_primMinusNatS2(wz21, wz22), Succ(wz22)) new_primModNatS0(wz21, wz22, Zero, Zero) -> new_primModNatS00(wz21, wz22) new_primModNatS00(wz21, wz22) -> new_primModNatS(new_primMinusNatS2(wz21, wz22), Succ(wz22)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(wz210), Zero) -> Succ(wz210) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(wz210), Succ(wz220)) -> new_primMinusNatS2(wz210, wz220) new_primMinusNatS2(Zero, Succ(wz220)) -> Zero new_primMinusNatS0(wz30000) -> Succ(wz30000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (22) 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 From the DPs we obtained the following set of size-change graphs: *new_primModNatS0(wz21, wz22, Succ(wz230), Zero) -> new_primModNatS(new_primMinusNatS2(wz21, wz22), Succ(wz22)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primModNatS00(wz21, wz22) -> new_primModNatS(new_primMinusNatS2(wz21, wz22), Succ(wz22)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primModNatS(Succ(Succ(wz30000)), Succ(wz31000)) -> new_primModNatS0(wz30000, wz31000, wz30000, wz31000) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 > 1, 2 > 2, 1 > 3, 2 > 4 *new_primModNatS0(wz21, wz22, Succ(wz230), Succ(wz240)) -> new_primModNatS0(wz21, wz22, wz230, wz240) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 *new_primModNatS0(wz21, wz22, Zero, Zero) -> new_primModNatS00(wz21, wz22) (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_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(wz220)) -> Zero new_primMinusNatS2(Succ(wz210), Zero) -> Succ(wz210) new_primMinusNatS2(Succ(wz210), Succ(wz220)) -> new_primMinusNatS2(wz210, wz220) ---------------------------------------- (23) YES ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Succ(Succ(wz30000)), Succ(wz31000)) -> new_primDivNatS0(wz30000, wz31000, wz30000, wz31000) new_primDivNatS0(wz45, wz46, Zero, Zero) -> new_primDivNatS00(wz45, wz46) new_primDivNatS(Succ(Succ(wz30000)), Zero) -> new_primDivNatS(new_primMinusNatS0(wz30000), Zero) new_primDivNatS00(wz45, wz46) -> new_primDivNatS(new_primMinusNatS2(Succ(wz45), Succ(wz46)), Succ(wz46)) new_primDivNatS0(wz45, wz46, Succ(wz470), Succ(wz480)) -> new_primDivNatS0(wz45, wz46, wz470, wz480) new_primDivNatS0(wz45, wz46, Succ(wz470), Zero) -> new_primDivNatS(new_primMinusNatS2(Succ(wz45), Succ(wz46)), Succ(wz46)) new_primDivNatS(Succ(Zero), Zero) -> new_primDivNatS(new_primMinusNatS1, Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(wz210), Zero) -> Succ(wz210) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(wz210), Succ(wz220)) -> new_primMinusNatS2(wz210, wz220) new_primMinusNatS2(Zero, Succ(wz220)) -> Zero new_primMinusNatS0(wz30000) -> Succ(wz30000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (26) Complex Obligation (AND) ---------------------------------------- (27) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Succ(Succ(wz30000)), Zero) -> new_primDivNatS(new_primMinusNatS0(wz30000), Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(wz210), Zero) -> Succ(wz210) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(wz210), Succ(wz220)) -> new_primMinusNatS2(wz210, wz220) new_primMinusNatS2(Zero, Succ(wz220)) -> Zero new_primMinusNatS0(wz30000) -> Succ(wz30000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (28) 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_primDivNatS(Succ(Succ(wz30000)), Zero) -> new_primDivNatS(new_primMinusNatS0(wz30000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS2(Succ(wz210), Zero) -> Succ(wz210) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(wz210), Succ(wz220)) -> new_primMinusNatS2(wz210, wz220) new_primMinusNatS2(Zero, Succ(wz220)) -> Zero Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 2 POL(new_primDivNatS(x_1, x_2)) = x_1 + x_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 ---------------------------------------- (29) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS0(wz30000) -> Succ(wz30000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (30) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (31) YES ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(wz45, wz46, Zero, Zero) -> new_primDivNatS00(wz45, wz46) new_primDivNatS00(wz45, wz46) -> new_primDivNatS(new_primMinusNatS2(Succ(wz45), Succ(wz46)), Succ(wz46)) new_primDivNatS(Succ(Succ(wz30000)), Succ(wz31000)) -> new_primDivNatS0(wz30000, wz31000, wz30000, wz31000) new_primDivNatS0(wz45, wz46, Succ(wz470), Succ(wz480)) -> new_primDivNatS0(wz45, wz46, wz470, wz480) new_primDivNatS0(wz45, wz46, Succ(wz470), Zero) -> new_primDivNatS(new_primMinusNatS2(Succ(wz45), Succ(wz46)), Succ(wz46)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(wz210), Zero) -> Succ(wz210) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(wz210), Succ(wz220)) -> new_primMinusNatS2(wz210, wz220) new_primMinusNatS2(Zero, Succ(wz220)) -> Zero new_primMinusNatS0(wz30000) -> Succ(wz30000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_primDivNatS(Succ(Succ(wz30000)), Succ(wz31000)) -> new_primDivNatS0(wz30000, wz31000, wz30000, wz31000) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primDivNatS(x_1, x_2)) = x_1 POL(new_primDivNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 POL(new_primDivNatS00(x_1, x_2)) = 1 + x_1 POL(new_primMinusNatS2(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primMinusNatS2(Succ(wz210), Succ(wz220)) -> new_primMinusNatS2(wz210, wz220) new_primMinusNatS2(Succ(wz210), Zero) -> Succ(wz210) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(wz220)) -> Zero ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(wz45, wz46, Zero, Zero) -> new_primDivNatS00(wz45, wz46) new_primDivNatS00(wz45, wz46) -> new_primDivNatS(new_primMinusNatS2(Succ(wz45), Succ(wz46)), Succ(wz46)) new_primDivNatS0(wz45, wz46, Succ(wz470), Succ(wz480)) -> new_primDivNatS0(wz45, wz46, wz470, wz480) new_primDivNatS0(wz45, wz46, Succ(wz470), Zero) -> new_primDivNatS(new_primMinusNatS2(Succ(wz45), Succ(wz46)), Succ(wz46)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(wz210), Zero) -> Succ(wz210) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(wz210), Succ(wz220)) -> new_primMinusNatS2(wz210, wz220) new_primMinusNatS2(Zero, Succ(wz220)) -> Zero new_primMinusNatS0(wz30000) -> Succ(wz30000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (36) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(wz45, wz46, Succ(wz470), Succ(wz480)) -> new_primDivNatS0(wz45, wz46, wz470, wz480) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(wz210), Zero) -> Succ(wz210) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(wz210), Succ(wz220)) -> new_primMinusNatS2(wz210, wz220) new_primMinusNatS2(Zero, Succ(wz220)) -> Zero new_primMinusNatS0(wz30000) -> Succ(wz30000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (37) 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_primDivNatS0(wz45, wz46, Succ(wz470), Succ(wz480)) -> new_primDivNatS0(wz45, wz46, wz470, wz480) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (38) YES ---------------------------------------- (39) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNatS(Succ(wz210), Succ(wz220)) -> new_primMinusNatS(wz210, wz220) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (40) 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(wz210), Succ(wz220)) -> new_primMinusNatS(wz210, wz220) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (41) YES