8.23/3.62 YES 10.04/4.10 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 10.04/4.10 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 10.04/4.10 10.04/4.10 10.04/4.10 H-Termination with start terms of the given HASKELL could be proven: 10.04/4.10 10.04/4.10 (0) HASKELL 10.04/4.10 (1) BR [EQUIVALENT, 0 ms] 10.04/4.10 (2) HASKELL 10.04/4.10 (3) COR [EQUIVALENT, 0 ms] 10.04/4.10 (4) HASKELL 10.04/4.10 (5) Narrow [SOUND, 0 ms] 10.04/4.10 (6) AND 10.04/4.10 (7) QDP 10.04/4.10 (8) QDPSizeChangeProof [EQUIVALENT, 0 ms] 10.04/4.10 (9) YES 10.04/4.10 (10) QDP 10.04/4.10 (11) QDPSizeChangeProof [EQUIVALENT, 0 ms] 10.04/4.10 (12) YES 10.04/4.10 10.04/4.10 10.04/4.10 ---------------------------------------- 10.04/4.10 10.04/4.10 (0) 10.04/4.10 Obligation: 10.04/4.10 mainModule Main 10.04/4.10 module Main where { 10.04/4.10 import qualified Prelude; 10.04/4.10 } 10.04/4.10 10.04/4.10 ---------------------------------------- 10.04/4.10 10.04/4.10 (1) BR (EQUIVALENT) 10.04/4.10 Replaced joker patterns by fresh variables and removed binding patterns. 10.04/4.10 ---------------------------------------- 10.04/4.10 10.04/4.10 (2) 10.04/4.10 Obligation: 10.04/4.10 mainModule Main 10.04/4.10 module Main where { 10.04/4.10 import qualified Prelude; 10.04/4.10 } 10.04/4.10 10.04/4.10 ---------------------------------------- 10.04/4.10 10.04/4.10 (3) COR (EQUIVALENT) 10.04/4.10 Cond Reductions: 10.04/4.10 The following Function with conditions 10.04/4.10 "undefined |Falseundefined; 10.04/4.10 " 10.04/4.10 is transformed to 10.04/4.10 "undefined = undefined1; 10.04/4.10 " 10.04/4.10 "undefined0 True = undefined; 10.04/4.10 " 10.04/4.10 "undefined1 = undefined0 False; 10.04/4.10 " 10.04/4.10 10.04/4.10 ---------------------------------------- 10.04/4.10 10.04/4.10 (4) 10.04/4.10 Obligation: 10.04/4.10 mainModule Main 10.04/4.10 module Main where { 10.04/4.10 import qualified Prelude; 10.04/4.10 } 10.04/4.10 10.04/4.10 ---------------------------------------- 10.04/4.10 10.04/4.10 (5) Narrow (SOUND) 10.04/4.10 Haskell To QDPs 10.04/4.10 10.04/4.10 digraph dp_graph { 10.04/4.10 node [outthreshold=100, inthreshold=100];1[label="inRange",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 10.04/4.10 3[label="inRange vx3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 10.04/4.10 4[label="inRange vx3 vx4",fontsize=16,color="burlywood",shape="triangle"];210[label="vx3/(vx30,vx31)",fontsize=10,color="white",style="solid",shape="box"];4 -> 210[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 210 -> 5[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 5[label="inRange (vx30,vx31) vx4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 10.04/4.10 6[label="vx30 <= vx4 && vx4 <= vx31",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 10.04/4.10 7[label="compare vx30 vx4 /= GT && vx4 <= vx31",fontsize=16,color="black",shape="box"];7 -> 8[label="",style="solid", color="black", weight=3]; 10.04/4.10 8[label="not (compare vx30 vx4 == GT) && vx4 <= vx31",fontsize=16,color="black",shape="box"];8 -> 9[label="",style="solid", color="black", weight=3]; 10.04/4.10 9[label="not (primCmpInt vx30 vx4 == GT) && vx4 <= vx31",fontsize=16,color="burlywood",shape="box"];211[label="vx30/Pos vx300",fontsize=10,color="white",style="solid",shape="box"];9 -> 211[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 211 -> 10[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 212[label="vx30/Neg vx300",fontsize=10,color="white",style="solid",shape="box"];9 -> 212[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 212 -> 11[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 10[label="not (primCmpInt (Pos vx300) vx4 == GT) && vx4 <= vx31",fontsize=16,color="burlywood",shape="box"];213[label="vx300/Succ vx3000",fontsize=10,color="white",style="solid",shape="box"];10 -> 213[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 213 -> 12[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 214[label="vx300/Zero",fontsize=10,color="white",style="solid",shape="box"];10 -> 214[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 214 -> 13[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 11[label="not (primCmpInt (Neg vx300) vx4 == GT) && vx4 <= vx31",fontsize=16,color="burlywood",shape="box"];215[label="vx300/Succ vx3000",fontsize=10,color="white",style="solid",shape="box"];11 -> 215[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 215 -> 14[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 216[label="vx300/Zero",fontsize=10,color="white",style="solid",shape="box"];11 -> 216[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 216 -> 15[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 12[label="not (primCmpInt (Pos (Succ vx3000)) vx4 == GT) && vx4 <= vx31",fontsize=16,color="burlywood",shape="box"];217[label="vx4/Pos vx40",fontsize=10,color="white",style="solid",shape="box"];12 -> 217[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 217 -> 16[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 218[label="vx4/Neg vx40",fontsize=10,color="white",style="solid",shape="box"];12 -> 218[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 218 -> 17[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 13[label="not (primCmpInt (Pos Zero) vx4 == GT) && vx4 <= vx31",fontsize=16,color="burlywood",shape="box"];219[label="vx4/Pos vx40",fontsize=10,color="white",style="solid",shape="box"];13 -> 219[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 219 -> 18[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 220[label="vx4/Neg vx40",fontsize=10,color="white",style="solid",shape="box"];13 -> 220[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 220 -> 19[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 14[label="not (primCmpInt (Neg (Succ vx3000)) vx4 == GT) && vx4 <= vx31",fontsize=16,color="burlywood",shape="box"];221[label="vx4/Pos vx40",fontsize=10,color="white",style="solid",shape="box"];14 -> 221[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 221 -> 20[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 222[label="vx4/Neg vx40",fontsize=10,color="white",style="solid",shape="box"];14 -> 222[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 222 -> 21[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 15[label="not (primCmpInt (Neg Zero) vx4 == GT) && vx4 <= vx31",fontsize=16,color="burlywood",shape="box"];223[label="vx4/Pos vx40",fontsize=10,color="white",style="solid",shape="box"];15 -> 223[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 223 -> 22[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 224[label="vx4/Neg vx40",fontsize=10,color="white",style="solid",shape="box"];15 -> 224[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 224 -> 23[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 16[label="not (primCmpInt (Pos (Succ vx3000)) (Pos vx40) == GT) && Pos vx40 <= vx31",fontsize=16,color="black",shape="box"];16 -> 24[label="",style="solid", color="black", weight=3]; 10.04/4.10 17[label="not (primCmpInt (Pos (Succ vx3000)) (Neg vx40) == GT) && Neg vx40 <= vx31",fontsize=16,color="black",shape="box"];17 -> 25[label="",style="solid", color="black", weight=3]; 10.04/4.10 18[label="not (primCmpInt (Pos Zero) (Pos vx40) == GT) && Pos vx40 <= vx31",fontsize=16,color="burlywood",shape="box"];225[label="vx40/Succ vx400",fontsize=10,color="white",style="solid",shape="box"];18 -> 225[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 225 -> 26[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 226[label="vx40/Zero",fontsize=10,color="white",style="solid",shape="box"];18 -> 226[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 226 -> 27[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 19[label="not (primCmpInt (Pos Zero) (Neg vx40) == GT) && Neg vx40 <= vx31",fontsize=16,color="burlywood",shape="box"];227[label="vx40/Succ vx400",fontsize=10,color="white",style="solid",shape="box"];19 -> 227[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 227 -> 28[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 228[label="vx40/Zero",fontsize=10,color="white",style="solid",shape="box"];19 -> 228[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 228 -> 29[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 20[label="not (primCmpInt (Neg (Succ vx3000)) (Pos vx40) == GT) && Pos vx40 <= vx31",fontsize=16,color="black",shape="box"];20 -> 30[label="",style="solid", color="black", weight=3]; 10.04/4.10 21[label="not (primCmpInt (Neg (Succ vx3000)) (Neg vx40) == GT) && Neg vx40 <= vx31",fontsize=16,color="black",shape="box"];21 -> 31[label="",style="solid", color="black", weight=3]; 10.04/4.10 22[label="not (primCmpInt (Neg Zero) (Pos vx40) == GT) && Pos vx40 <= vx31",fontsize=16,color="burlywood",shape="box"];229[label="vx40/Succ vx400",fontsize=10,color="white",style="solid",shape="box"];22 -> 229[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 229 -> 32[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 230[label="vx40/Zero",fontsize=10,color="white",style="solid",shape="box"];22 -> 230[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 230 -> 33[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 23[label="not (primCmpInt (Neg Zero) (Neg vx40) == GT) && Neg vx40 <= vx31",fontsize=16,color="burlywood",shape="box"];231[label="vx40/Succ vx400",fontsize=10,color="white",style="solid",shape="box"];23 -> 231[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 231 -> 34[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 232[label="vx40/Zero",fontsize=10,color="white",style="solid",shape="box"];23 -> 232[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 232 -> 35[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 24 -> 100[label="",style="dashed", color="red", weight=0]; 10.04/4.10 24[label="not (primCmpNat (Succ vx3000) vx40 == GT) && Pos vx40 <= vx31",fontsize=16,color="magenta"];24 -> 101[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 24 -> 102[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 24 -> 103[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 25[label="not (GT == GT) && Neg vx40 <= vx31",fontsize=16,color="black",shape="triangle"];25 -> 38[label="",style="solid", color="black", weight=3]; 10.04/4.10 26[label="not (primCmpInt (Pos Zero) (Pos (Succ vx400)) == GT) && Pos (Succ vx400) <= vx31",fontsize=16,color="black",shape="box"];26 -> 39[label="",style="solid", color="black", weight=3]; 10.04/4.10 27[label="not (primCmpInt (Pos Zero) (Pos Zero) == GT) && Pos Zero <= vx31",fontsize=16,color="black",shape="box"];27 -> 40[label="",style="solid", color="black", weight=3]; 10.04/4.10 28[label="not (primCmpInt (Pos Zero) (Neg (Succ vx400)) == GT) && Neg (Succ vx400) <= vx31",fontsize=16,color="black",shape="box"];28 -> 41[label="",style="solid", color="black", weight=3]; 10.04/4.10 29[label="not (primCmpInt (Pos Zero) (Neg Zero) == GT) && Neg Zero <= vx31",fontsize=16,color="black",shape="box"];29 -> 42[label="",style="solid", color="black", weight=3]; 10.04/4.10 30[label="not (LT == GT) && Pos vx40 <= vx31",fontsize=16,color="black",shape="triangle"];30 -> 43[label="",style="solid", color="black", weight=3]; 10.04/4.10 31 -> 100[label="",style="dashed", color="red", weight=0]; 10.04/4.10 31[label="not (primCmpNat vx40 (Succ vx3000) == GT) && Neg vx40 <= vx31",fontsize=16,color="magenta"];31 -> 104[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 31 -> 105[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 31 -> 106[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 32[label="not (primCmpInt (Neg Zero) (Pos (Succ vx400)) == GT) && Pos (Succ vx400) <= vx31",fontsize=16,color="black",shape="box"];32 -> 46[label="",style="solid", color="black", weight=3]; 10.04/4.10 33[label="not (primCmpInt (Neg Zero) (Pos Zero) == GT) && Pos Zero <= vx31",fontsize=16,color="black",shape="box"];33 -> 47[label="",style="solid", color="black", weight=3]; 10.04/4.10 34[label="not (primCmpInt (Neg Zero) (Neg (Succ vx400)) == GT) && Neg (Succ vx400) <= vx31",fontsize=16,color="black",shape="box"];34 -> 48[label="",style="solid", color="black", weight=3]; 10.04/4.10 35[label="not (primCmpInt (Neg Zero) (Neg Zero) == GT) && Neg Zero <= vx31",fontsize=16,color="black",shape="box"];35 -> 49[label="",style="solid", color="black", weight=3]; 10.04/4.10 101[label="Succ vx3000",fontsize=16,color="green",shape="box"];102 -> 69[label="",style="dashed", color="red", weight=0]; 10.04/4.10 102[label="Pos vx40 <= vx31",fontsize=16,color="magenta"];103[label="vx40",fontsize=16,color="green",shape="box"];100[label="not (primCmpNat vx30000 vx4000 == GT) && vx6",fontsize=16,color="burlywood",shape="triangle"];233[label="vx30000/Succ vx300000",fontsize=10,color="white",style="solid",shape="box"];100 -> 233[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 233 -> 123[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 234[label="vx30000/Zero",fontsize=10,color="white",style="solid",shape="box"];100 -> 234[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 234 -> 124[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 38[label="not True && Neg vx40 <= vx31",fontsize=16,color="black",shape="box"];38 -> 52[label="",style="solid", color="black", weight=3]; 10.04/4.10 39 -> 100[label="",style="dashed", color="red", weight=0]; 10.04/4.10 39[label="not (primCmpNat Zero (Succ vx400) == GT) && Pos (Succ vx400) <= vx31",fontsize=16,color="magenta"];39 -> 107[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 39 -> 108[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 39 -> 109[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 40[label="not (EQ == GT) && Pos Zero <= vx31",fontsize=16,color="black",shape="triangle"];40 -> 54[label="",style="solid", color="black", weight=3]; 10.04/4.10 41 -> 25[label="",style="dashed", color="red", weight=0]; 10.04/4.10 41[label="not (GT == GT) && Neg (Succ vx400) <= vx31",fontsize=16,color="magenta"];41 -> 55[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 42[label="not (EQ == GT) && Neg Zero <= vx31",fontsize=16,color="black",shape="triangle"];42 -> 56[label="",style="solid", color="black", weight=3]; 10.04/4.10 43[label="not False && Pos vx40 <= vx31",fontsize=16,color="black",shape="triangle"];43 -> 57[label="",style="solid", color="black", weight=3]; 10.04/4.10 104[label="vx40",fontsize=16,color="green",shape="box"];105 -> 90[label="",style="dashed", color="red", weight=0]; 10.04/4.10 105[label="Neg vx40 <= vx31",fontsize=16,color="magenta"];106[label="Succ vx3000",fontsize=16,color="green",shape="box"];46 -> 30[label="",style="dashed", color="red", weight=0]; 10.04/4.10 46[label="not (LT == GT) && Pos (Succ vx400) <= vx31",fontsize=16,color="magenta"];46 -> 60[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 47 -> 40[label="",style="dashed", color="red", weight=0]; 10.04/4.10 47[label="not (EQ == GT) && Pos Zero <= vx31",fontsize=16,color="magenta"];48 -> 100[label="",style="dashed", color="red", weight=0]; 10.04/4.10 48[label="not (primCmpNat (Succ vx400) Zero == GT) && Neg (Succ vx400) <= vx31",fontsize=16,color="magenta"];48 -> 110[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 48 -> 111[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 48 -> 112[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 49 -> 42[label="",style="dashed", color="red", weight=0]; 10.04/4.10 49[label="not (EQ == GT) && Neg Zero <= vx31",fontsize=16,color="magenta"];69[label="Pos vx40 <= vx31",fontsize=16,color="black",shape="triangle"];69 -> 80[label="",style="solid", color="black", weight=3]; 10.04/4.10 123[label="not (primCmpNat (Succ vx300000) vx4000 == GT) && vx6",fontsize=16,color="burlywood",shape="box"];235[label="vx4000/Succ vx40000",fontsize=10,color="white",style="solid",shape="box"];123 -> 235[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 235 -> 129[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 236[label="vx4000/Zero",fontsize=10,color="white",style="solid",shape="box"];123 -> 236[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 236 -> 130[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 124[label="not (primCmpNat Zero vx4000 == GT) && vx6",fontsize=16,color="burlywood",shape="box"];237[label="vx4000/Succ vx40000",fontsize=10,color="white",style="solid",shape="box"];124 -> 237[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 237 -> 131[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 238[label="vx4000/Zero",fontsize=10,color="white",style="solid",shape="box"];124 -> 238[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 238 -> 132[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 52 -> 89[label="",style="dashed", color="red", weight=0]; 10.04/4.10 52[label="False && Neg vx40 <= vx31",fontsize=16,color="magenta"];52 -> 90[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 107[label="Zero",fontsize=16,color="green",shape="box"];108 -> 69[label="",style="dashed", color="red", weight=0]; 10.04/4.10 108[label="Pos (Succ vx400) <= vx31",fontsize=16,color="magenta"];108 -> 125[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 109[label="Succ vx400",fontsize=16,color="green",shape="box"];54 -> 43[label="",style="dashed", color="red", weight=0]; 10.04/4.10 54[label="not False && Pos Zero <= vx31",fontsize=16,color="magenta"];54 -> 67[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 55[label="Succ vx400",fontsize=16,color="green",shape="box"];56[label="not False && Neg Zero <= vx31",fontsize=16,color="black",shape="triangle"];56 -> 68[label="",style="solid", color="black", weight=3]; 10.04/4.10 57[label="True && Pos vx40 <= vx31",fontsize=16,color="black",shape="box"];57 -> 69[label="",style="solid", color="black", weight=3]; 10.04/4.10 90[label="Neg vx40 <= vx31",fontsize=16,color="black",shape="triangle"];90 -> 92[label="",style="solid", color="black", weight=3]; 10.04/4.10 60[label="Succ vx400",fontsize=16,color="green",shape="box"];110[label="Succ vx400",fontsize=16,color="green",shape="box"];111 -> 90[label="",style="dashed", color="red", weight=0]; 10.04/4.10 111[label="Neg (Succ vx400) <= vx31",fontsize=16,color="magenta"];111 -> 126[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 112[label="Zero",fontsize=16,color="green",shape="box"];80[label="compare (Pos vx40) vx31 /= GT",fontsize=16,color="black",shape="box"];80 -> 95[label="",style="solid", color="black", weight=3]; 10.04/4.10 129[label="not (primCmpNat (Succ vx300000) (Succ vx40000) == GT) && vx6",fontsize=16,color="black",shape="box"];129 -> 136[label="",style="solid", color="black", weight=3]; 10.04/4.10 130[label="not (primCmpNat (Succ vx300000) Zero == GT) && vx6",fontsize=16,color="black",shape="box"];130 -> 137[label="",style="solid", color="black", weight=3]; 10.04/4.10 131[label="not (primCmpNat Zero (Succ vx40000) == GT) && vx6",fontsize=16,color="black",shape="box"];131 -> 138[label="",style="solid", color="black", weight=3]; 10.04/4.10 132[label="not (primCmpNat Zero Zero == GT) && vx6",fontsize=16,color="black",shape="box"];132 -> 139[label="",style="solid", color="black", weight=3]; 10.04/4.10 89[label="False && vx5",fontsize=16,color="black",shape="triangle"];89 -> 93[label="",style="solid", color="black", weight=3]; 10.04/4.10 125[label="Succ vx400",fontsize=16,color="green",shape="box"];67[label="Zero",fontsize=16,color="green",shape="box"];68[label="True && Neg Zero <= vx31",fontsize=16,color="black",shape="box"];68 -> 79[label="",style="solid", color="black", weight=3]; 10.04/4.10 92[label="compare (Neg vx40) vx31 /= GT",fontsize=16,color="black",shape="box"];92 -> 127[label="",style="solid", color="black", weight=3]; 10.04/4.10 126[label="Succ vx400",fontsize=16,color="green",shape="box"];95[label="not (compare (Pos vx40) vx31 == GT)",fontsize=16,color="black",shape="box"];95 -> 128[label="",style="solid", color="black", weight=3]; 10.04/4.10 136 -> 100[label="",style="dashed", color="red", weight=0]; 10.04/4.10 136[label="not (primCmpNat vx300000 vx40000 == GT) && vx6",fontsize=16,color="magenta"];136 -> 146[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 136 -> 147[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 137[label="not (GT == GT) && vx6",fontsize=16,color="black",shape="box"];137 -> 148[label="",style="solid", color="black", weight=3]; 10.04/4.10 138[label="not (LT == GT) && vx6",fontsize=16,color="black",shape="box"];138 -> 149[label="",style="solid", color="black", weight=3]; 10.04/4.10 139[label="not (EQ == GT) && vx6",fontsize=16,color="black",shape="box"];139 -> 150[label="",style="solid", color="black", weight=3]; 10.04/4.10 93[label="False",fontsize=16,color="green",shape="box"];79 -> 90[label="",style="dashed", color="red", weight=0]; 10.04/4.10 79[label="Neg Zero <= vx31",fontsize=16,color="magenta"];79 -> 94[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 127[label="not (compare (Neg vx40) vx31 == GT)",fontsize=16,color="black",shape="box"];127 -> 133[label="",style="solid", color="black", weight=3]; 10.04/4.10 128[label="not (primCmpInt (Pos vx40) vx31 == GT)",fontsize=16,color="burlywood",shape="box"];239[label="vx40/Succ vx400",fontsize=10,color="white",style="solid",shape="box"];128 -> 239[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 239 -> 134[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 240[label="vx40/Zero",fontsize=10,color="white",style="solid",shape="box"];128 -> 240[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 240 -> 135[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 146[label="vx300000",fontsize=16,color="green",shape="box"];147[label="vx40000",fontsize=16,color="green",shape="box"];148[label="not True && vx6",fontsize=16,color="black",shape="box"];148 -> 161[label="",style="solid", color="black", weight=3]; 10.04/4.10 149[label="not False && vx6",fontsize=16,color="black",shape="triangle"];149 -> 162[label="",style="solid", color="black", weight=3]; 10.04/4.10 150 -> 149[label="",style="dashed", color="red", weight=0]; 10.04/4.10 150[label="not False && vx6",fontsize=16,color="magenta"];94[label="Zero",fontsize=16,color="green",shape="box"];133[label="not (primCmpInt (Neg vx40) vx31 == GT)",fontsize=16,color="burlywood",shape="box"];241[label="vx40/Succ vx400",fontsize=10,color="white",style="solid",shape="box"];133 -> 241[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 241 -> 140[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 242[label="vx40/Zero",fontsize=10,color="white",style="solid",shape="box"];133 -> 242[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 242 -> 141[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 134[label="not (primCmpInt (Pos (Succ vx400)) vx31 == GT)",fontsize=16,color="burlywood",shape="box"];243[label="vx31/Pos vx310",fontsize=10,color="white",style="solid",shape="box"];134 -> 243[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 243 -> 142[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 244[label="vx31/Neg vx310",fontsize=10,color="white",style="solid",shape="box"];134 -> 244[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 244 -> 143[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 135[label="not (primCmpInt (Pos Zero) vx31 == GT)",fontsize=16,color="burlywood",shape="box"];245[label="vx31/Pos vx310",fontsize=10,color="white",style="solid",shape="box"];135 -> 245[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 245 -> 144[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 246[label="vx31/Neg vx310",fontsize=10,color="white",style="solid",shape="box"];135 -> 246[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 246 -> 145[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 161 -> 89[label="",style="dashed", color="red", weight=0]; 10.04/4.10 161[label="False && vx6",fontsize=16,color="magenta"];161 -> 176[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 162[label="True && vx6",fontsize=16,color="black",shape="box"];162 -> 177[label="",style="solid", color="black", weight=3]; 10.04/4.10 140[label="not (primCmpInt (Neg (Succ vx400)) vx31 == GT)",fontsize=16,color="burlywood",shape="box"];247[label="vx31/Pos vx310",fontsize=10,color="white",style="solid",shape="box"];140 -> 247[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 247 -> 151[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 248[label="vx31/Neg vx310",fontsize=10,color="white",style="solid",shape="box"];140 -> 248[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 248 -> 152[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 141[label="not (primCmpInt (Neg Zero) vx31 == GT)",fontsize=16,color="burlywood",shape="box"];249[label="vx31/Pos vx310",fontsize=10,color="white",style="solid",shape="box"];141 -> 249[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 249 -> 153[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 250[label="vx31/Neg vx310",fontsize=10,color="white",style="solid",shape="box"];141 -> 250[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 250 -> 154[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 142[label="not (primCmpInt (Pos (Succ vx400)) (Pos vx310) == GT)",fontsize=16,color="black",shape="box"];142 -> 155[label="",style="solid", color="black", weight=3]; 10.04/4.10 143[label="not (primCmpInt (Pos (Succ vx400)) (Neg vx310) == GT)",fontsize=16,color="black",shape="box"];143 -> 156[label="",style="solid", color="black", weight=3]; 10.04/4.10 144[label="not (primCmpInt (Pos Zero) (Pos vx310) == GT)",fontsize=16,color="burlywood",shape="box"];251[label="vx310/Succ vx3100",fontsize=10,color="white",style="solid",shape="box"];144 -> 251[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 251 -> 157[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 252[label="vx310/Zero",fontsize=10,color="white",style="solid",shape="box"];144 -> 252[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 252 -> 158[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 145[label="not (primCmpInt (Pos Zero) (Neg vx310) == GT)",fontsize=16,color="burlywood",shape="box"];253[label="vx310/Succ vx3100",fontsize=10,color="white",style="solid",shape="box"];145 -> 253[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 253 -> 159[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 254[label="vx310/Zero",fontsize=10,color="white",style="solid",shape="box"];145 -> 254[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 254 -> 160[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 176[label="vx6",fontsize=16,color="green",shape="box"];177[label="vx6",fontsize=16,color="green",shape="box"];151[label="not (primCmpInt (Neg (Succ vx400)) (Pos vx310) == GT)",fontsize=16,color="black",shape="box"];151 -> 163[label="",style="solid", color="black", weight=3]; 10.04/4.10 152[label="not (primCmpInt (Neg (Succ vx400)) (Neg vx310) == GT)",fontsize=16,color="black",shape="box"];152 -> 164[label="",style="solid", color="black", weight=3]; 10.04/4.10 153[label="not (primCmpInt (Neg Zero) (Pos vx310) == GT)",fontsize=16,color="burlywood",shape="box"];255[label="vx310/Succ vx3100",fontsize=10,color="white",style="solid",shape="box"];153 -> 255[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 255 -> 165[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 256[label="vx310/Zero",fontsize=10,color="white",style="solid",shape="box"];153 -> 256[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 256 -> 166[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 154[label="not (primCmpInt (Neg Zero) (Neg vx310) == GT)",fontsize=16,color="burlywood",shape="box"];257[label="vx310/Succ vx3100",fontsize=10,color="white",style="solid",shape="box"];154 -> 257[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 257 -> 167[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 258[label="vx310/Zero",fontsize=10,color="white",style="solid",shape="box"];154 -> 258[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 258 -> 168[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 155[label="not (primCmpNat (Succ vx400) vx310 == GT)",fontsize=16,color="burlywood",shape="triangle"];259[label="vx310/Succ vx3100",fontsize=10,color="white",style="solid",shape="box"];155 -> 259[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 259 -> 169[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 260[label="vx310/Zero",fontsize=10,color="white",style="solid",shape="box"];155 -> 260[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 260 -> 170[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 156[label="not (GT == GT)",fontsize=16,color="black",shape="triangle"];156 -> 171[label="",style="solid", color="black", weight=3]; 10.04/4.10 157[label="not (primCmpInt (Pos Zero) (Pos (Succ vx3100)) == GT)",fontsize=16,color="black",shape="box"];157 -> 172[label="",style="solid", color="black", weight=3]; 10.04/4.10 158[label="not (primCmpInt (Pos Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];158 -> 173[label="",style="solid", color="black", weight=3]; 10.04/4.10 159[label="not (primCmpInt (Pos Zero) (Neg (Succ vx3100)) == GT)",fontsize=16,color="black",shape="box"];159 -> 174[label="",style="solid", color="black", weight=3]; 10.04/4.10 160[label="not (primCmpInt (Pos Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];160 -> 175[label="",style="solid", color="black", weight=3]; 10.04/4.10 163[label="not (LT == GT)",fontsize=16,color="black",shape="triangle"];163 -> 178[label="",style="solid", color="black", weight=3]; 10.04/4.10 164[label="not (primCmpNat vx310 (Succ vx400) == GT)",fontsize=16,color="burlywood",shape="triangle"];261[label="vx310/Succ vx3100",fontsize=10,color="white",style="solid",shape="box"];164 -> 261[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 261 -> 179[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 262[label="vx310/Zero",fontsize=10,color="white",style="solid",shape="box"];164 -> 262[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 262 -> 180[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 165[label="not (primCmpInt (Neg Zero) (Pos (Succ vx3100)) == GT)",fontsize=16,color="black",shape="box"];165 -> 181[label="",style="solid", color="black", weight=3]; 10.04/4.10 166[label="not (primCmpInt (Neg Zero) (Pos Zero) == GT)",fontsize=16,color="black",shape="box"];166 -> 182[label="",style="solid", color="black", weight=3]; 10.04/4.10 167[label="not (primCmpInt (Neg Zero) (Neg (Succ vx3100)) == GT)",fontsize=16,color="black",shape="box"];167 -> 183[label="",style="solid", color="black", weight=3]; 10.04/4.10 168[label="not (primCmpInt (Neg Zero) (Neg Zero) == GT)",fontsize=16,color="black",shape="box"];168 -> 184[label="",style="solid", color="black", weight=3]; 10.04/4.10 169[label="not (primCmpNat (Succ vx400) (Succ vx3100) == GT)",fontsize=16,color="black",shape="box"];169 -> 185[label="",style="solid", color="black", weight=3]; 10.04/4.10 170[label="not (primCmpNat (Succ vx400) Zero == GT)",fontsize=16,color="black",shape="box"];170 -> 186[label="",style="solid", color="black", weight=3]; 10.04/4.10 171[label="not True",fontsize=16,color="black",shape="box"];171 -> 187[label="",style="solid", color="black", weight=3]; 10.04/4.10 172 -> 164[label="",style="dashed", color="red", weight=0]; 10.04/4.10 172[label="not (primCmpNat Zero (Succ vx3100) == GT)",fontsize=16,color="magenta"];172 -> 188[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 172 -> 189[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 173[label="not (EQ == GT)",fontsize=16,color="black",shape="triangle"];173 -> 190[label="",style="solid", color="black", weight=3]; 10.04/4.10 174 -> 156[label="",style="dashed", color="red", weight=0]; 10.04/4.10 174[label="not (GT == GT)",fontsize=16,color="magenta"];175 -> 173[label="",style="dashed", color="red", weight=0]; 10.04/4.10 175[label="not (EQ == GT)",fontsize=16,color="magenta"];178[label="not False",fontsize=16,color="black",shape="triangle"];178 -> 191[label="",style="solid", color="black", weight=3]; 10.04/4.10 179[label="not (primCmpNat (Succ vx3100) (Succ vx400) == GT)",fontsize=16,color="black",shape="box"];179 -> 192[label="",style="solid", color="black", weight=3]; 10.04/4.10 180[label="not (primCmpNat Zero (Succ vx400) == GT)",fontsize=16,color="black",shape="box"];180 -> 193[label="",style="solid", color="black", weight=3]; 10.04/4.10 181 -> 163[label="",style="dashed", color="red", weight=0]; 10.04/4.10 181[label="not (LT == GT)",fontsize=16,color="magenta"];182 -> 173[label="",style="dashed", color="red", weight=0]; 10.04/4.10 182[label="not (EQ == GT)",fontsize=16,color="magenta"];183 -> 155[label="",style="dashed", color="red", weight=0]; 10.04/4.10 183[label="not (primCmpNat (Succ vx3100) Zero == GT)",fontsize=16,color="magenta"];183 -> 194[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 183 -> 195[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 184 -> 173[label="",style="dashed", color="red", weight=0]; 10.04/4.10 184[label="not (EQ == GT)",fontsize=16,color="magenta"];185[label="not (primCmpNat vx400 vx3100 == GT)",fontsize=16,color="burlywood",shape="triangle"];263[label="vx400/Succ vx4000",fontsize=10,color="white",style="solid",shape="box"];185 -> 263[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 263 -> 196[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 264[label="vx400/Zero",fontsize=10,color="white",style="solid",shape="box"];185 -> 264[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 264 -> 197[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 186 -> 156[label="",style="dashed", color="red", weight=0]; 10.04/4.10 186[label="not (GT == GT)",fontsize=16,color="magenta"];187[label="False",fontsize=16,color="green",shape="box"];188[label="vx3100",fontsize=16,color="green",shape="box"];189[label="Zero",fontsize=16,color="green",shape="box"];190 -> 178[label="",style="dashed", color="red", weight=0]; 10.04/4.10 190[label="not False",fontsize=16,color="magenta"];191[label="True",fontsize=16,color="green",shape="box"];192 -> 185[label="",style="dashed", color="red", weight=0]; 10.04/4.10 192[label="not (primCmpNat vx3100 vx400 == GT)",fontsize=16,color="magenta"];192 -> 198[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 192 -> 199[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 193 -> 163[label="",style="dashed", color="red", weight=0]; 10.04/4.10 193[label="not (LT == GT)",fontsize=16,color="magenta"];194[label="vx3100",fontsize=16,color="green",shape="box"];195[label="Zero",fontsize=16,color="green",shape="box"];196[label="not (primCmpNat (Succ vx4000) vx3100 == GT)",fontsize=16,color="burlywood",shape="box"];265[label="vx3100/Succ vx31000",fontsize=10,color="white",style="solid",shape="box"];196 -> 265[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 265 -> 200[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 266[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];196 -> 266[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 266 -> 201[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 197[label="not (primCmpNat Zero vx3100 == GT)",fontsize=16,color="burlywood",shape="box"];267[label="vx3100/Succ vx31000",fontsize=10,color="white",style="solid",shape="box"];197 -> 267[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 267 -> 202[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 268[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];197 -> 268[label="",style="solid", color="burlywood", weight=9]; 10.04/4.10 268 -> 203[label="",style="solid", color="burlywood", weight=3]; 10.04/4.10 198[label="vx3100",fontsize=16,color="green",shape="box"];199[label="vx400",fontsize=16,color="green",shape="box"];200[label="not (primCmpNat (Succ vx4000) (Succ vx31000) == GT)",fontsize=16,color="black",shape="box"];200 -> 204[label="",style="solid", color="black", weight=3]; 10.04/4.10 201[label="not (primCmpNat (Succ vx4000) Zero == GT)",fontsize=16,color="black",shape="box"];201 -> 205[label="",style="solid", color="black", weight=3]; 10.04/4.10 202[label="not (primCmpNat Zero (Succ vx31000) == GT)",fontsize=16,color="black",shape="box"];202 -> 206[label="",style="solid", color="black", weight=3]; 10.04/4.10 203[label="not (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];203 -> 207[label="",style="solid", color="black", weight=3]; 10.04/4.10 204 -> 185[label="",style="dashed", color="red", weight=0]; 10.04/4.10 204[label="not (primCmpNat vx4000 vx31000 == GT)",fontsize=16,color="magenta"];204 -> 208[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 204 -> 209[label="",style="dashed", color="magenta", weight=3]; 10.04/4.10 205 -> 156[label="",style="dashed", color="red", weight=0]; 10.04/4.10 205[label="not (GT == GT)",fontsize=16,color="magenta"];206 -> 163[label="",style="dashed", color="red", weight=0]; 10.04/4.10 206[label="not (LT == GT)",fontsize=16,color="magenta"];207 -> 173[label="",style="dashed", color="red", weight=0]; 10.04/4.10 207[label="not (EQ == GT)",fontsize=16,color="magenta"];208[label="vx4000",fontsize=16,color="green",shape="box"];209[label="vx31000",fontsize=16,color="green",shape="box"];} 10.04/4.10 10.04/4.10 ---------------------------------------- 10.04/4.10 10.04/4.10 (6) 10.04/4.10 Complex Obligation (AND) 10.04/4.10 10.04/4.10 ---------------------------------------- 10.04/4.10 10.04/4.10 (7) 10.04/4.10 Obligation: 10.04/4.10 Q DP problem: 10.04/4.10 The TRS P consists of the following rules: 10.04/4.10 10.04/4.10 new_not(Succ(vx4000), Succ(vx31000)) -> new_not(vx4000, vx31000) 10.04/4.10 10.04/4.10 R is empty. 10.04/4.10 Q is empty. 10.04/4.10 We have to consider all minimal (P,Q,R)-chains. 10.04/4.10 ---------------------------------------- 10.04/4.10 10.04/4.10 (8) QDPSizeChangeProof (EQUIVALENT) 10.04/4.10 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 10.04/4.10 10.04/4.10 From the DPs we obtained the following set of size-change graphs: 10.04/4.10 *new_not(Succ(vx4000), Succ(vx31000)) -> new_not(vx4000, vx31000) 10.04/4.10 The graph contains the following edges 1 > 1, 2 > 2 10.04/4.10 10.04/4.10 10.04/4.10 ---------------------------------------- 10.04/4.10 10.04/4.10 (9) 10.04/4.10 YES 10.04/4.10 10.04/4.10 ---------------------------------------- 10.04/4.10 10.04/4.10 (10) 10.04/4.10 Obligation: 10.04/4.10 Q DP problem: 10.04/4.10 The TRS P consists of the following rules: 10.04/4.10 10.04/4.10 new_asAs(Succ(vx300000), Succ(vx40000), vx6) -> new_asAs(vx300000, vx40000, vx6) 10.04/4.10 10.04/4.10 R is empty. 10.04/4.10 Q is empty. 10.04/4.10 We have to consider all minimal (P,Q,R)-chains. 10.04/4.10 ---------------------------------------- 10.04/4.10 10.04/4.10 (11) QDPSizeChangeProof (EQUIVALENT) 10.04/4.10 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 10.04/4.10 10.04/4.10 From the DPs we obtained the following set of size-change graphs: 10.04/4.10 *new_asAs(Succ(vx300000), Succ(vx40000), vx6) -> new_asAs(vx300000, vx40000, vx6) 10.04/4.10 The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 10.04/4.10 10.04/4.10 10.04/4.10 ---------------------------------------- 10.04/4.10 10.04/4.10 (12) 10.04/4.10 YES 10.30/4.24 EOF