10.97/4.49 YES 12.89/5.03 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 12.89/5.03 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 12.89/5.03 12.89/5.03 12.89/5.03 H-Termination with start terms of the given HASKELL could be proven: 12.89/5.03 12.89/5.03 (0) HASKELL 12.89/5.03 (1) BR [EQUIVALENT, 0 ms] 12.89/5.03 (2) HASKELL 12.89/5.03 (3) COR [EQUIVALENT, 22 ms] 12.89/5.03 (4) HASKELL 12.89/5.03 (5) NumRed [SOUND, 0 ms] 12.89/5.03 (6) HASKELL 12.89/5.03 (7) Narrow [SOUND, 0 ms] 12.89/5.03 (8) AND 12.89/5.03 (9) QDP 12.89/5.03 (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.89/5.03 (11) YES 12.89/5.03 (12) QDP 12.89/5.03 (13) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.89/5.03 (14) YES 12.89/5.03 (15) QDP 12.89/5.03 (16) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.89/5.03 (17) YES 12.89/5.03 (18) QDP 12.89/5.03 (19) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.89/5.03 (20) YES 12.89/5.03 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (0) 12.89/5.03 Obligation: 12.89/5.03 mainModule Main 12.89/5.03 module Maybe where { 12.89/5.03 import qualified List; 12.89/5.03 import qualified Main; 12.89/5.03 import qualified Prelude; 12.89/5.03 } 12.89/5.03 module List where { 12.89/5.03 import qualified Main; 12.89/5.03 import qualified Maybe; 12.89/5.03 import qualified Prelude; 12.89/5.03 genericLength :: Num b => [a] -> b; 12.89/5.03 genericLength [] = 0; 12.89/5.03 genericLength (_ : l) = 1 + genericLength l; 12.89/5.03 12.89/5.03 } 12.89/5.03 module Main where { 12.89/5.03 import qualified List; 12.89/5.03 import qualified Maybe; 12.89/5.03 import qualified Prelude; 12.89/5.03 } 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (1) BR (EQUIVALENT) 12.89/5.03 Replaced joker patterns by fresh variables and removed binding patterns. 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (2) 12.89/5.03 Obligation: 12.89/5.03 mainModule Main 12.89/5.03 module Maybe where { 12.89/5.03 import qualified List; 12.89/5.03 import qualified Main; 12.89/5.03 import qualified Prelude; 12.89/5.03 } 12.89/5.03 module List where { 12.89/5.03 import qualified Main; 12.89/5.03 import qualified Maybe; 12.89/5.03 import qualified Prelude; 12.89/5.03 genericLength :: Num a => [b] -> a; 12.89/5.03 genericLength [] = 0; 12.89/5.03 genericLength (vy : l) = 1 + genericLength l; 12.89/5.03 12.89/5.03 } 12.89/5.03 module Main where { 12.89/5.03 import qualified List; 12.89/5.03 import qualified Maybe; 12.89/5.03 import qualified Prelude; 12.89/5.03 } 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (3) COR (EQUIVALENT) 12.89/5.03 Cond Reductions: 12.89/5.03 The following Function with conditions 12.89/5.03 "undefined |Falseundefined; 12.89/5.03 " 12.89/5.03 is transformed to 12.89/5.03 "undefined = undefined1; 12.89/5.03 " 12.89/5.03 "undefined0 True = undefined; 12.89/5.03 " 12.89/5.03 "undefined1 = undefined0 False; 12.89/5.03 " 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (4) 12.89/5.03 Obligation: 12.89/5.03 mainModule Main 12.89/5.03 module Maybe where { 12.89/5.03 import qualified List; 12.89/5.03 import qualified Main; 12.89/5.03 import qualified Prelude; 12.89/5.03 } 12.89/5.03 module List where { 12.89/5.03 import qualified Main; 12.89/5.03 import qualified Maybe; 12.89/5.03 import qualified Prelude; 12.89/5.03 genericLength :: Num a => [b] -> a; 12.89/5.03 genericLength [] = 0; 12.89/5.03 genericLength (vy : l) = 1 + genericLength l; 12.89/5.03 12.89/5.03 } 12.89/5.03 module Main where { 12.89/5.03 import qualified List; 12.89/5.03 import qualified Maybe; 12.89/5.03 import qualified Prelude; 12.89/5.03 } 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (5) NumRed (SOUND) 12.89/5.03 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (6) 12.89/5.03 Obligation: 12.89/5.03 mainModule Main 12.89/5.03 module Maybe where { 12.89/5.03 import qualified List; 12.89/5.03 import qualified Main; 12.89/5.03 import qualified Prelude; 12.89/5.03 } 12.89/5.03 module List where { 12.89/5.03 import qualified Main; 12.89/5.03 import qualified Maybe; 12.89/5.03 import qualified Prelude; 12.89/5.03 genericLength :: Num b => [a] -> b; 12.89/5.03 genericLength [] = fromInt (Pos Zero); 12.89/5.03 genericLength (vy : l) = fromInt (Pos (Succ Zero)) + genericLength l; 12.89/5.03 12.89/5.03 } 12.89/5.03 module Main where { 12.89/5.03 import qualified List; 12.89/5.03 import qualified Maybe; 12.89/5.03 import qualified Prelude; 12.89/5.03 } 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (7) Narrow (SOUND) 12.89/5.03 Haskell To QDPs 12.89/5.03 12.89/5.03 digraph dp_graph { 12.89/5.03 node [outthreshold=100, inthreshold=100];1[label="List.genericLength",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 12.89/5.03 3[label="List.genericLength vz3",fontsize=16,color="burlywood",shape="triangle"];294[label="vz3/vz30 : vz31",fontsize=10,color="white",style="solid",shape="box"];3 -> 294[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 294 -> 4[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 295[label="vz3/[]",fontsize=10,color="white",style="solid",shape="box"];3 -> 295[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 295 -> 5[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 4[label="List.genericLength (vz30 : vz31)",fontsize=16,color="black",shape="box"];4 -> 6[label="",style="solid", color="black", weight=3]; 12.89/5.03 5[label="List.genericLength []",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 12.89/5.03 6 -> 8[label="",style="dashed", color="red", weight=0]; 12.89/5.03 6[label="fromInt (Pos (Succ Zero)) + List.genericLength vz31",fontsize=16,color="magenta"];6 -> 9[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 7[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];7 -> 10[label="",style="solid", color="black", weight=3]; 12.89/5.03 9 -> 3[label="",style="dashed", color="red", weight=0]; 12.89/5.03 9[label="List.genericLength vz31",fontsize=16,color="magenta"];9 -> 11[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 8[label="fromInt (Pos (Succ Zero)) + vz4",fontsize=16,color="black",shape="triangle"];8 -> 12[label="",style="solid", color="black", weight=3]; 12.89/5.03 10[label="primIntToFloat (Pos Zero)",fontsize=16,color="black",shape="box"];10 -> 13[label="",style="solid", color="black", weight=3]; 12.89/5.03 11[label="vz31",fontsize=16,color="green",shape="box"];12[label="primPlusFloat (fromInt (Pos (Succ Zero))) vz4",fontsize=16,color="black",shape="box"];12 -> 14[label="",style="solid", color="black", weight=3]; 12.89/5.03 13[label="Float (Pos Zero) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];14[label="primPlusFloat (primIntToFloat (Pos (Succ Zero))) vz4",fontsize=16,color="black",shape="box"];14 -> 15[label="",style="solid", color="black", weight=3]; 12.89/5.03 15[label="primPlusFloat (Float (Pos (Succ Zero)) (Pos (Succ Zero))) vz4",fontsize=16,color="burlywood",shape="box"];296[label="vz4/Float vz40 vz41",fontsize=10,color="white",style="solid",shape="box"];15 -> 296[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 296 -> 16[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 16[label="primPlusFloat (Float (Pos (Succ Zero)) (Pos (Succ Zero))) (Float vz40 vz41)",fontsize=16,color="black",shape="box"];16 -> 17[label="",style="solid", color="black", weight=3]; 12.89/5.03 17[label="Float (Pos (Succ Zero) * vz41 + vz40 * Pos (Succ Zero)) (Pos (Succ Zero) * vz41)",fontsize=16,color="green",shape="box"];17 -> 18[label="",style="dashed", color="green", weight=3]; 12.89/5.03 17 -> 19[label="",style="dashed", color="green", weight=3]; 12.89/5.03 18[label="Pos (Succ Zero) * vz41 + vz40 * Pos (Succ Zero)",fontsize=16,color="black",shape="box"];18 -> 20[label="",style="solid", color="black", weight=3]; 12.89/5.03 19[label="Pos (Succ Zero) * vz41",fontsize=16,color="black",shape="triangle"];19 -> 21[label="",style="solid", color="black", weight=3]; 12.89/5.03 20 -> 22[label="",style="dashed", color="red", weight=0]; 12.89/5.03 20[label="primPlusInt (Pos (Succ Zero) * vz41) (vz40 * Pos (Succ Zero))",fontsize=16,color="magenta"];20 -> 23[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 21[label="primMulInt (Pos (Succ Zero)) vz41",fontsize=16,color="burlywood",shape="box"];297[label="vz41/Pos vz410",fontsize=10,color="white",style="solid",shape="box"];21 -> 297[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 297 -> 24[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 298[label="vz41/Neg vz410",fontsize=10,color="white",style="solid",shape="box"];21 -> 298[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 298 -> 25[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 23 -> 19[label="",style="dashed", color="red", weight=0]; 12.89/5.03 23[label="Pos (Succ Zero) * vz41",fontsize=16,color="magenta"];22[label="primPlusInt vz5 (vz40 * Pos (Succ Zero))",fontsize=16,color="burlywood",shape="triangle"];299[label="vz5/Pos vz50",fontsize=10,color="white",style="solid",shape="box"];22 -> 299[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 299 -> 26[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 300[label="vz5/Neg vz50",fontsize=10,color="white",style="solid",shape="box"];22 -> 300[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 300 -> 27[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 24[label="primMulInt (Pos (Succ Zero)) (Pos vz410)",fontsize=16,color="black",shape="box"];24 -> 28[label="",style="solid", color="black", weight=3]; 12.89/5.03 25[label="primMulInt (Pos (Succ Zero)) (Neg vz410)",fontsize=16,color="black",shape="box"];25 -> 29[label="",style="solid", color="black", weight=3]; 12.89/5.03 26[label="primPlusInt (Pos vz50) (vz40 * Pos (Succ Zero))",fontsize=16,color="black",shape="box"];26 -> 30[label="",style="solid", color="black", weight=3]; 12.89/5.03 27[label="primPlusInt (Neg vz50) (vz40 * Pos (Succ Zero))",fontsize=16,color="black",shape="box"];27 -> 31[label="",style="solid", color="black", weight=3]; 12.89/5.03 28[label="Pos (primMulNat (Succ Zero) vz410)",fontsize=16,color="green",shape="box"];28 -> 32[label="",style="dashed", color="green", weight=3]; 12.89/5.03 29[label="Neg (primMulNat (Succ Zero) vz410)",fontsize=16,color="green",shape="box"];29 -> 33[label="",style="dashed", color="green", weight=3]; 12.89/5.03 30[label="primPlusInt (Pos vz50) (primMulInt vz40 (Pos (Succ Zero)))",fontsize=16,color="burlywood",shape="box"];301[label="vz40/Pos vz400",fontsize=10,color="white",style="solid",shape="box"];30 -> 301[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 301 -> 34[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 302[label="vz40/Neg vz400",fontsize=10,color="white",style="solid",shape="box"];30 -> 302[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 302 -> 35[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 31[label="primPlusInt (Neg vz50) (primMulInt vz40 (Pos (Succ Zero)))",fontsize=16,color="burlywood",shape="box"];303[label="vz40/Pos vz400",fontsize=10,color="white",style="solid",shape="box"];31 -> 303[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 303 -> 36[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 304[label="vz40/Neg vz400",fontsize=10,color="white",style="solid",shape="box"];31 -> 304[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 304 -> 37[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 32[label="primMulNat (Succ Zero) vz410",fontsize=16,color="burlywood",shape="triangle"];305[label="vz410/Succ vz4100",fontsize=10,color="white",style="solid",shape="box"];32 -> 305[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 305 -> 38[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 306[label="vz410/Zero",fontsize=10,color="white",style="solid",shape="box"];32 -> 306[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 306 -> 39[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 33 -> 32[label="",style="dashed", color="red", weight=0]; 12.89/5.03 33[label="primMulNat (Succ Zero) vz410",fontsize=16,color="magenta"];33 -> 40[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 34[label="primPlusInt (Pos vz50) (primMulInt (Pos vz400) (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];34 -> 41[label="",style="solid", color="black", weight=3]; 12.89/5.03 35[label="primPlusInt (Pos vz50) (primMulInt (Neg vz400) (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];35 -> 42[label="",style="solid", color="black", weight=3]; 12.89/5.03 36[label="primPlusInt (Neg vz50) (primMulInt (Pos vz400) (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];36 -> 43[label="",style="solid", color="black", weight=3]; 12.89/5.03 37[label="primPlusInt (Neg vz50) (primMulInt (Neg vz400) (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];37 -> 44[label="",style="solid", color="black", weight=3]; 12.89/5.03 38[label="primMulNat (Succ Zero) (Succ vz4100)",fontsize=16,color="black",shape="box"];38 -> 45[label="",style="solid", color="black", weight=3]; 12.89/5.03 39[label="primMulNat (Succ Zero) Zero",fontsize=16,color="black",shape="box"];39 -> 46[label="",style="solid", color="black", weight=3]; 12.89/5.03 40[label="vz410",fontsize=16,color="green",shape="box"];41[label="primPlusInt (Pos vz50) (Pos (primMulNat vz400 (Succ Zero)))",fontsize=16,color="black",shape="box"];41 -> 47[label="",style="solid", color="black", weight=3]; 12.89/5.03 42[label="primPlusInt (Pos vz50) (Neg (primMulNat vz400 (Succ Zero)))",fontsize=16,color="black",shape="box"];42 -> 48[label="",style="solid", color="black", weight=3]; 12.89/5.03 43[label="primPlusInt (Neg vz50) (Pos (primMulNat vz400 (Succ Zero)))",fontsize=16,color="black",shape="box"];43 -> 49[label="",style="solid", color="black", weight=3]; 12.89/5.03 44[label="primPlusInt (Neg vz50) (Neg (primMulNat vz400 (Succ Zero)))",fontsize=16,color="black",shape="box"];44 -> 50[label="",style="solid", color="black", weight=3]; 12.89/5.03 45 -> 192[label="",style="dashed", color="red", weight=0]; 12.89/5.03 45[label="primPlusNat (primMulNat Zero (Succ vz4100)) (Succ vz4100)",fontsize=16,color="magenta"];45 -> 193[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 45 -> 194[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 46[label="Zero",fontsize=16,color="green",shape="box"];47[label="Pos (primPlusNat vz50 (primMulNat vz400 (Succ Zero)))",fontsize=16,color="green",shape="box"];47 -> 52[label="",style="dashed", color="green", weight=3]; 12.89/5.03 48 -> 219[label="",style="dashed", color="red", weight=0]; 12.89/5.03 48[label="primMinusNat vz50 (primMulNat vz400 (Succ Zero))",fontsize=16,color="magenta"];48 -> 220[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 48 -> 221[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 49 -> 219[label="",style="dashed", color="red", weight=0]; 12.89/5.03 49[label="primMinusNat (primMulNat vz400 (Succ Zero)) vz50",fontsize=16,color="magenta"];49 -> 222[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 49 -> 223[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 50[label="Neg (primPlusNat vz50 (primMulNat vz400 (Succ Zero)))",fontsize=16,color="green",shape="box"];50 -> 57[label="",style="dashed", color="green", weight=3]; 12.89/5.03 193[label="primMulNat Zero (Succ vz4100)",fontsize=16,color="black",shape="box"];193 -> 212[label="",style="solid", color="black", weight=3]; 12.89/5.03 194[label="vz4100",fontsize=16,color="green",shape="box"];192[label="primPlusNat vz500 (Succ vz15)",fontsize=16,color="burlywood",shape="triangle"];307[label="vz500/Succ vz5000",fontsize=10,color="white",style="solid",shape="box"];192 -> 307[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 307 -> 213[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 308[label="vz500/Zero",fontsize=10,color="white",style="solid",shape="box"];192 -> 308[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 308 -> 214[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 52[label="primPlusNat vz50 (primMulNat vz400 (Succ Zero))",fontsize=16,color="burlywood",shape="triangle"];309[label="vz50/Succ vz500",fontsize=10,color="white",style="solid",shape="box"];52 -> 309[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 309 -> 59[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 310[label="vz50/Zero",fontsize=10,color="white",style="solid",shape="box"];52 -> 310[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 310 -> 60[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 220[label="vz50",fontsize=16,color="green",shape="box"];221 -> 105[label="",style="dashed", color="red", weight=0]; 12.89/5.03 221[label="primMulNat vz400 (Succ Zero)",fontsize=16,color="magenta"];221 -> 259[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 219[label="primMinusNat vz5000 vz16",fontsize=16,color="burlywood",shape="triangle"];311[label="vz5000/Succ vz50000",fontsize=10,color="white",style="solid",shape="box"];219 -> 311[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 311 -> 260[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 312[label="vz5000/Zero",fontsize=10,color="white",style="solid",shape="box"];219 -> 312[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 312 -> 261[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 222 -> 105[label="",style="dashed", color="red", weight=0]; 12.89/5.03 222[label="primMulNat vz400 (Succ Zero)",fontsize=16,color="magenta"];222 -> 262[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 223[label="vz50",fontsize=16,color="green",shape="box"];57 -> 52[label="",style="dashed", color="red", weight=0]; 12.89/5.03 57[label="primPlusNat vz50 (primMulNat vz400 (Succ Zero))",fontsize=16,color="magenta"];57 -> 67[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 57 -> 68[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 212[label="Zero",fontsize=16,color="green",shape="box"];213[label="primPlusNat (Succ vz5000) (Succ vz15)",fontsize=16,color="black",shape="box"];213 -> 263[label="",style="solid", color="black", weight=3]; 12.89/5.03 214[label="primPlusNat Zero (Succ vz15)",fontsize=16,color="black",shape="box"];214 -> 264[label="",style="solid", color="black", weight=3]; 12.89/5.03 59[label="primPlusNat (Succ vz500) (primMulNat vz400 (Succ Zero))",fontsize=16,color="burlywood",shape="box"];313[label="vz400/Succ vz4000",fontsize=10,color="white",style="solid",shape="box"];59 -> 313[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 313 -> 69[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 314[label="vz400/Zero",fontsize=10,color="white",style="solid",shape="box"];59 -> 314[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 314 -> 70[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 60[label="primPlusNat Zero (primMulNat vz400 (Succ Zero))",fontsize=16,color="burlywood",shape="box"];315[label="vz400/Succ vz4000",fontsize=10,color="white",style="solid",shape="box"];60 -> 315[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 315 -> 71[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 316[label="vz400/Zero",fontsize=10,color="white",style="solid",shape="box"];60 -> 316[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 316 -> 72[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 259[label="vz400",fontsize=16,color="green",shape="box"];105[label="primMulNat vz4000 (Succ Zero)",fontsize=16,color="burlywood",shape="triangle"];317[label="vz4000/Succ vz40000",fontsize=10,color="white",style="solid",shape="box"];105 -> 317[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 317 -> 108[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 318[label="vz4000/Zero",fontsize=10,color="white",style="solid",shape="box"];105 -> 318[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 318 -> 109[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 260[label="primMinusNat (Succ vz50000) vz16",fontsize=16,color="burlywood",shape="box"];319[label="vz16/Succ vz160",fontsize=10,color="white",style="solid",shape="box"];260 -> 319[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 319 -> 268[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 320[label="vz16/Zero",fontsize=10,color="white",style="solid",shape="box"];260 -> 320[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 320 -> 269[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 261[label="primMinusNat Zero vz16",fontsize=16,color="burlywood",shape="box"];321[label="vz16/Succ vz160",fontsize=10,color="white",style="solid",shape="box"];261 -> 321[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 321 -> 270[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 322[label="vz16/Zero",fontsize=10,color="white",style="solid",shape="box"];261 -> 322[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 322 -> 271[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 262[label="vz400",fontsize=16,color="green",shape="box"];67[label="vz50",fontsize=16,color="green",shape="box"];68[label="vz400",fontsize=16,color="green",shape="box"];263[label="Succ (Succ (primPlusNat vz5000 vz15))",fontsize=16,color="green",shape="box"];263 -> 272[label="",style="dashed", color="green", weight=3]; 12.89/5.03 264[label="Succ vz15",fontsize=16,color="green",shape="box"];69[label="primPlusNat (Succ vz500) (primMulNat (Succ vz4000) (Succ Zero))",fontsize=16,color="black",shape="box"];69 -> 81[label="",style="solid", color="black", weight=3]; 12.89/5.03 70[label="primPlusNat (Succ vz500) (primMulNat Zero (Succ Zero))",fontsize=16,color="black",shape="box"];70 -> 82[label="",style="solid", color="black", weight=3]; 12.89/5.03 71[label="primPlusNat Zero (primMulNat (Succ vz4000) (Succ Zero))",fontsize=16,color="black",shape="box"];71 -> 83[label="",style="solid", color="black", weight=3]; 12.89/5.03 72[label="primPlusNat Zero (primMulNat Zero (Succ Zero))",fontsize=16,color="black",shape="box"];72 -> 84[label="",style="solid", color="black", weight=3]; 12.89/5.03 108[label="primMulNat (Succ vz40000) (Succ Zero)",fontsize=16,color="black",shape="box"];108 -> 123[label="",style="solid", color="black", weight=3]; 12.89/5.03 109[label="primMulNat Zero (Succ Zero)",fontsize=16,color="black",shape="box"];109 -> 124[label="",style="solid", color="black", weight=3]; 12.89/5.03 268[label="primMinusNat (Succ vz50000) (Succ vz160)",fontsize=16,color="black",shape="box"];268 -> 275[label="",style="solid", color="black", weight=3]; 12.89/5.03 269[label="primMinusNat (Succ vz50000) Zero",fontsize=16,color="black",shape="box"];269 -> 276[label="",style="solid", color="black", weight=3]; 12.89/5.03 270[label="primMinusNat Zero (Succ vz160)",fontsize=16,color="black",shape="box"];270 -> 277[label="",style="solid", color="black", weight=3]; 12.89/5.03 271[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];271 -> 278[label="",style="solid", color="black", weight=3]; 12.89/5.03 272[label="primPlusNat vz5000 vz15",fontsize=16,color="burlywood",shape="triangle"];323[label="vz5000/Succ vz50000",fontsize=10,color="white",style="solid",shape="box"];272 -> 323[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 323 -> 279[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 324[label="vz5000/Zero",fontsize=10,color="white",style="solid",shape="box"];272 -> 324[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 324 -> 280[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 81 -> 129[label="",style="dashed", color="red", weight=0]; 12.89/5.03 81[label="primPlusNat (Succ vz500) (primPlusNat (primMulNat vz4000 (Succ Zero)) (Succ Zero))",fontsize=16,color="magenta"];81 -> 130[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 82[label="primPlusNat (Succ vz500) Zero",fontsize=16,color="black",shape="box"];82 -> 96[label="",style="solid", color="black", weight=3]; 12.89/5.03 83 -> 142[label="",style="dashed", color="red", weight=0]; 12.89/5.03 83[label="primPlusNat Zero (primPlusNat (primMulNat vz4000 (Succ Zero)) (Succ Zero))",fontsize=16,color="magenta"];83 -> 143[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 84[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];84 -> 99[label="",style="solid", color="black", weight=3]; 12.89/5.03 123 -> 192[label="",style="dashed", color="red", weight=0]; 12.89/5.03 123[label="primPlusNat (primMulNat vz40000 (Succ Zero)) (Succ Zero)",fontsize=16,color="magenta"];123 -> 201[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 123 -> 202[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 124[label="Zero",fontsize=16,color="green",shape="box"];275 -> 219[label="",style="dashed", color="red", weight=0]; 12.89/5.03 275[label="primMinusNat vz50000 vz160",fontsize=16,color="magenta"];275 -> 281[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 275 -> 282[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 276[label="Pos (Succ vz50000)",fontsize=16,color="green",shape="box"];277[label="Neg (Succ vz160)",fontsize=16,color="green",shape="box"];278[label="Pos Zero",fontsize=16,color="green",shape="box"];279[label="primPlusNat (Succ vz50000) vz15",fontsize=16,color="burlywood",shape="box"];325[label="vz15/Succ vz150",fontsize=10,color="white",style="solid",shape="box"];279 -> 325[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 325 -> 283[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 326[label="vz15/Zero",fontsize=10,color="white",style="solid",shape="box"];279 -> 326[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 326 -> 284[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 280[label="primPlusNat Zero vz15",fontsize=16,color="burlywood",shape="box"];327[label="vz15/Succ vz150",fontsize=10,color="white",style="solid",shape="box"];280 -> 327[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 327 -> 285[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 328[label="vz15/Zero",fontsize=10,color="white",style="solid",shape="box"];280 -> 328[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 328 -> 286[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 130 -> 105[label="",style="dashed", color="red", weight=0]; 12.89/5.03 130[label="primMulNat vz4000 (Succ Zero)",fontsize=16,color="magenta"];129[label="primPlusNat (Succ vz500) (primPlusNat vz9 (Succ Zero))",fontsize=16,color="burlywood",shape="triangle"];329[label="vz9/Succ vz90",fontsize=10,color="white",style="solid",shape="box"];129 -> 329[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 329 -> 133[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 330[label="vz9/Zero",fontsize=10,color="white",style="solid",shape="box"];129 -> 330[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 330 -> 134[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 96[label="Succ vz500",fontsize=16,color="green",shape="box"];143 -> 105[label="",style="dashed", color="red", weight=0]; 12.89/5.03 143[label="primMulNat vz4000 (Succ Zero)",fontsize=16,color="magenta"];142[label="primPlusNat Zero (primPlusNat vz11 (Succ Zero))",fontsize=16,color="burlywood",shape="triangle"];331[label="vz11/Succ vz110",fontsize=10,color="white",style="solid",shape="box"];142 -> 331[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 331 -> 146[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 332[label="vz11/Zero",fontsize=10,color="white",style="solid",shape="box"];142 -> 332[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 332 -> 147[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 99[label="Zero",fontsize=16,color="green",shape="box"];201 -> 105[label="",style="dashed", color="red", weight=0]; 12.89/5.03 201[label="primMulNat vz40000 (Succ Zero)",fontsize=16,color="magenta"];201 -> 216[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 202[label="Zero",fontsize=16,color="green",shape="box"];281[label="vz50000",fontsize=16,color="green",shape="box"];282[label="vz160",fontsize=16,color="green",shape="box"];283[label="primPlusNat (Succ vz50000) (Succ vz150)",fontsize=16,color="black",shape="box"];283 -> 287[label="",style="solid", color="black", weight=3]; 12.89/5.03 284[label="primPlusNat (Succ vz50000) Zero",fontsize=16,color="black",shape="box"];284 -> 288[label="",style="solid", color="black", weight=3]; 12.89/5.03 285[label="primPlusNat Zero (Succ vz150)",fontsize=16,color="black",shape="box"];285 -> 289[label="",style="solid", color="black", weight=3]; 12.89/5.03 286[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];286 -> 290[label="",style="solid", color="black", weight=3]; 12.89/5.03 133[label="primPlusNat (Succ vz500) (primPlusNat (Succ vz90) (Succ Zero))",fontsize=16,color="black",shape="box"];133 -> 148[label="",style="solid", color="black", weight=3]; 12.89/5.03 134[label="primPlusNat (Succ vz500) (primPlusNat Zero (Succ Zero))",fontsize=16,color="black",shape="box"];134 -> 149[label="",style="solid", color="black", weight=3]; 12.89/5.03 146[label="primPlusNat Zero (primPlusNat (Succ vz110) (Succ Zero))",fontsize=16,color="black",shape="box"];146 -> 161[label="",style="solid", color="black", weight=3]; 12.89/5.03 147[label="primPlusNat Zero (primPlusNat Zero (Succ Zero))",fontsize=16,color="black",shape="box"];147 -> 162[label="",style="solid", color="black", weight=3]; 12.89/5.03 216[label="vz40000",fontsize=16,color="green",shape="box"];287[label="Succ (Succ (primPlusNat vz50000 vz150))",fontsize=16,color="green",shape="box"];287 -> 291[label="",style="dashed", color="green", weight=3]; 12.89/5.03 288[label="Succ vz50000",fontsize=16,color="green",shape="box"];289[label="Succ vz150",fontsize=16,color="green",shape="box"];290[label="Zero",fontsize=16,color="green",shape="box"];148 -> 192[label="",style="dashed", color="red", weight=0]; 12.89/5.03 148[label="primPlusNat (Succ vz500) (Succ (Succ (primPlusNat vz90 Zero)))",fontsize=16,color="magenta"];148 -> 203[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 148 -> 204[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 149 -> 192[label="",style="dashed", color="red", weight=0]; 12.89/5.03 149[label="primPlusNat (Succ vz500) (Succ Zero)",fontsize=16,color="magenta"];149 -> 205[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 149 -> 206[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 161 -> 192[label="",style="dashed", color="red", weight=0]; 12.89/5.03 161[label="primPlusNat Zero (Succ (Succ (primPlusNat vz110 Zero)))",fontsize=16,color="magenta"];161 -> 207[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 161 -> 208[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 162 -> 192[label="",style="dashed", color="red", weight=0]; 12.89/5.03 162[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="magenta"];162 -> 209[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 162 -> 210[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 291 -> 272[label="",style="dashed", color="red", weight=0]; 12.89/5.03 291[label="primPlusNat vz50000 vz150",fontsize=16,color="magenta"];291 -> 292[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 291 -> 293[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 203[label="Succ vz500",fontsize=16,color="green",shape="box"];204[label="Succ (primPlusNat vz90 Zero)",fontsize=16,color="green",shape="box"];204 -> 217[label="",style="dashed", color="green", weight=3]; 12.89/5.03 205[label="Succ vz500",fontsize=16,color="green",shape="box"];206[label="Zero",fontsize=16,color="green",shape="box"];207[label="Zero",fontsize=16,color="green",shape="box"];208[label="Succ (primPlusNat vz110 Zero)",fontsize=16,color="green",shape="box"];208 -> 218[label="",style="dashed", color="green", weight=3]; 12.89/5.03 209[label="Zero",fontsize=16,color="green",shape="box"];210[label="Zero",fontsize=16,color="green",shape="box"];292[label="vz50000",fontsize=16,color="green",shape="box"];293[label="vz150",fontsize=16,color="green",shape="box"];217[label="primPlusNat vz90 Zero",fontsize=16,color="burlywood",shape="triangle"];333[label="vz90/Succ vz900",fontsize=10,color="white",style="solid",shape="box"];217 -> 333[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 333 -> 265[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 334[label="vz90/Zero",fontsize=10,color="white",style="solid",shape="box"];217 -> 334[label="",style="solid", color="burlywood", weight=9]; 12.89/5.03 334 -> 266[label="",style="solid", color="burlywood", weight=3]; 12.89/5.03 218 -> 217[label="",style="dashed", color="red", weight=0]; 12.89/5.03 218[label="primPlusNat vz110 Zero",fontsize=16,color="magenta"];218 -> 267[label="",style="dashed", color="magenta", weight=3]; 12.89/5.03 265[label="primPlusNat (Succ vz900) Zero",fontsize=16,color="black",shape="box"];265 -> 273[label="",style="solid", color="black", weight=3]; 12.89/5.03 266[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];266 -> 274[label="",style="solid", color="black", weight=3]; 12.89/5.03 267[label="vz110",fontsize=16,color="green",shape="box"];273[label="Succ vz900",fontsize=16,color="green",shape="box"];274[label="Zero",fontsize=16,color="green",shape="box"];} 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (8) 12.89/5.03 Complex Obligation (AND) 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (9) 12.89/5.03 Obligation: 12.89/5.03 Q DP problem: 12.89/5.03 The TRS P consists of the following rules: 12.89/5.03 12.89/5.03 new_genericLength(:(vz30, vz31), ba) -> new_genericLength(vz31, ba) 12.89/5.03 12.89/5.03 R is empty. 12.89/5.03 Q is empty. 12.89/5.03 We have to consider all minimal (P,Q,R)-chains. 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (10) QDPSizeChangeProof (EQUIVALENT) 12.89/5.03 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. 12.89/5.03 12.89/5.03 From the DPs we obtained the following set of size-change graphs: 12.89/5.03 *new_genericLength(:(vz30, vz31), ba) -> new_genericLength(vz31, ba) 12.89/5.03 The graph contains the following edges 1 > 1, 2 >= 2 12.89/5.03 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (11) 12.89/5.03 YES 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (12) 12.89/5.03 Obligation: 12.89/5.03 Q DP problem: 12.89/5.03 The TRS P consists of the following rules: 12.89/5.03 12.89/5.03 new_primMulNat(Succ(vz40000)) -> new_primMulNat(vz40000) 12.89/5.03 12.89/5.03 R is empty. 12.89/5.03 Q is empty. 12.89/5.03 We have to consider all minimal (P,Q,R)-chains. 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (13) QDPSizeChangeProof (EQUIVALENT) 12.89/5.03 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. 12.89/5.03 12.89/5.03 From the DPs we obtained the following set of size-change graphs: 12.89/5.03 *new_primMulNat(Succ(vz40000)) -> new_primMulNat(vz40000) 12.89/5.03 The graph contains the following edges 1 > 1 12.89/5.03 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (14) 12.89/5.03 YES 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (15) 12.89/5.03 Obligation: 12.89/5.03 Q DP problem: 12.89/5.03 The TRS P consists of the following rules: 12.89/5.03 12.89/5.03 new_primMinusNat(Succ(vz50000), Succ(vz160)) -> new_primMinusNat(vz50000, vz160) 12.89/5.03 12.89/5.03 R is empty. 12.89/5.03 Q is empty. 12.89/5.03 We have to consider all minimal (P,Q,R)-chains. 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (16) QDPSizeChangeProof (EQUIVALENT) 12.89/5.03 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. 12.89/5.03 12.89/5.03 From the DPs we obtained the following set of size-change graphs: 12.89/5.03 *new_primMinusNat(Succ(vz50000), Succ(vz160)) -> new_primMinusNat(vz50000, vz160) 12.89/5.03 The graph contains the following edges 1 > 1, 2 > 2 12.89/5.03 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (17) 12.89/5.03 YES 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (18) 12.89/5.03 Obligation: 12.89/5.03 Q DP problem: 12.89/5.03 The TRS P consists of the following rules: 12.89/5.03 12.89/5.03 new_primPlusNat(Succ(vz50000), Succ(vz150)) -> new_primPlusNat(vz50000, vz150) 12.89/5.03 12.89/5.03 R is empty. 12.89/5.03 Q is empty. 12.89/5.03 We have to consider all minimal (P,Q,R)-chains. 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (19) QDPSizeChangeProof (EQUIVALENT) 12.89/5.03 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. 12.89/5.03 12.89/5.03 From the DPs we obtained the following set of size-change graphs: 12.89/5.03 *new_primPlusNat(Succ(vz50000), Succ(vz150)) -> new_primPlusNat(vz50000, vz150) 12.89/5.03 The graph contains the following edges 1 > 1, 2 > 2 12.89/5.03 12.89/5.03 12.89/5.03 ---------------------------------------- 12.89/5.03 12.89/5.03 (20) 12.89/5.03 YES 12.93/5.41 EOF