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