8.35/3.69 YES 10.66/4.26 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 10.66/4.26 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 10.66/4.26 10.66/4.26 10.66/4.26 H-Termination with start terms of the given HASKELL could be proven: 10.66/4.26 10.66/4.26 (0) HASKELL 10.66/4.26 (1) LR [EQUIVALENT, 0 ms] 10.66/4.26 (2) HASKELL 10.66/4.26 (3) BR [EQUIVALENT, 0 ms] 10.66/4.26 (4) HASKELL 10.66/4.26 (5) COR [EQUIVALENT, 0 ms] 10.66/4.26 (6) HASKELL 10.66/4.26 (7) NumRed [SOUND, 0 ms] 10.66/4.26 (8) HASKELL 10.66/4.26 (9) Narrow [SOUND, 0 ms] 10.66/4.26 (10) QDP 10.66/4.26 (11) QDPSizeChangeProof [EQUIVALENT, 0 ms] 10.66/4.26 (12) YES 10.66/4.26 10.66/4.26 10.66/4.26 ---------------------------------------- 10.66/4.26 10.66/4.26 (0) 10.66/4.26 Obligation: 10.66/4.26 mainModule Main 10.66/4.26 module Main where { 10.66/4.26 import qualified Prelude; 10.66/4.26 } 10.66/4.26 10.66/4.26 ---------------------------------------- 10.66/4.26 10.66/4.26 (1) LR (EQUIVALENT) 10.66/4.26 Lambda Reductions: 10.66/4.26 The following Lambda expression 10.66/4.26 "\_->q" 10.66/4.26 is transformed to 10.66/4.26 "gtGt0 q _ = q; 10.66/4.26 " 10.66/4.26 10.66/4.26 ---------------------------------------- 10.66/4.26 10.66/4.26 (2) 10.66/4.26 Obligation: 10.66/4.26 mainModule Main 10.66/4.26 module Main where { 10.66/4.26 import qualified Prelude; 10.66/4.26 } 10.66/4.26 10.66/4.26 ---------------------------------------- 10.66/4.26 10.66/4.26 (3) BR (EQUIVALENT) 10.66/4.26 Replaced joker patterns by fresh variables and removed binding patterns. 10.66/4.26 ---------------------------------------- 10.66/4.26 10.66/4.26 (4) 10.66/4.26 Obligation: 10.66/4.26 mainModule Main 10.66/4.26 module Main where { 10.66/4.26 import qualified Prelude; 10.66/4.26 } 10.66/4.26 10.66/4.26 ---------------------------------------- 10.66/4.26 10.66/4.26 (5) COR (EQUIVALENT) 10.66/4.26 Cond Reductions: 10.66/4.26 The following Function with conditions 10.66/4.26 "randomSelect (x : []) = x; 10.66/4.26 randomSelect (x : xs)|terminatorrandomSelect xs|otherwisex; 10.66/4.26 " 10.66/4.26 is transformed to 10.66/4.26 "randomSelect (x : []) = randomSelect3 (x : []); 10.66/4.26 randomSelect (x : xs) = randomSelect2 (x : xs); 10.66/4.26 " 10.66/4.26 "randomSelect1 x xs True = randomSelect xs; 10.66/4.26 randomSelect1 x xs False = randomSelect0 x xs otherwise; 10.66/4.26 " 10.66/4.26 "randomSelect0 x xs True = x; 10.66/4.26 " 10.66/4.26 "randomSelect2 (x : xs) = randomSelect1 x xs terminator; 10.66/4.26 " 10.66/4.26 "randomSelect3 (x : []) = x; 10.66/4.26 randomSelect3 wv = randomSelect2 wv; 10.66/4.26 " 10.66/4.26 The following Function with conditions 10.66/4.26 "undefined |Falseundefined; 10.66/4.26 " 10.66/4.26 is transformed to 10.66/4.26 "undefined = undefined1; 10.66/4.26 " 10.66/4.26 "undefined0 True = undefined; 10.66/4.26 " 10.66/4.26 "undefined1 = undefined0 False; 10.66/4.26 " 10.66/4.26 10.66/4.26 ---------------------------------------- 10.66/4.26 10.66/4.26 (6) 10.66/4.26 Obligation: 10.66/4.26 mainModule Main 10.66/4.26 module Main where { 10.66/4.26 import qualified Prelude; 10.66/4.26 } 10.66/4.26 10.66/4.26 ---------------------------------------- 10.66/4.26 10.66/4.26 (7) NumRed (SOUND) 10.66/4.26 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 10.66/4.26 ---------------------------------------- 10.66/4.26 10.66/4.26 (8) 10.66/4.26 Obligation: 10.66/4.26 mainModule Main 10.66/4.26 module Main where { 10.66/4.26 import qualified Prelude; 10.66/4.26 } 10.66/4.26 10.66/4.26 ---------------------------------------- 10.66/4.26 10.66/4.26 (9) Narrow (SOUND) 10.66/4.26 Haskell To QDPs 10.66/4.26 10.66/4.26 digraph dp_graph { 10.66/4.26 node [outthreshold=100, inthreshold=100];1[label="print",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 10.66/4.26 3[label="print ww3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 10.66/4.26 4[label="putStrLn . show",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 10.66/4.26 5[label="putStrLn (show ww3)",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 10.66/4.26 6 -> 7[label="",style="dashed", color="red", weight=0]; 10.66/4.26 6[label="putStr (show ww3) >> putChar (Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))",fontsize=16,color="magenta"];6 -> 8[label="",style="dashed", color="magenta", weight=3]; 10.66/4.26 6 -> 9[label="",style="dashed", color="magenta", weight=3]; 10.66/4.26 8[label="ww3",fontsize=16,color="green",shape="box"];9[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];7[label="putStr (show ww5) >> putChar (Char (Succ ww6))",fontsize=16,color="black",shape="triangle"];7 -> 10[label="",style="solid", color="black", weight=3]; 10.66/4.26 10[label="putStr (show ww5) >>= gtGt0 (putChar (Char (Succ ww6)))",fontsize=16,color="black",shape="box"];10 -> 11[label="",style="solid", color="black", weight=3]; 10.66/4.26 11 -> 156[label="",style="dashed", color="red", weight=0]; 10.66/4.26 11[label="primbindIO (putStr (show ww5)) (gtGt0 (putChar (Char (Succ ww6))))",fontsize=16,color="magenta"];11 -> 157[label="",style="dashed", color="magenta", weight=3]; 10.66/4.26 11 -> 158[label="",style="dashed", color="magenta", weight=3]; 10.66/4.26 157 -> 261[label="",style="dashed", color="red", weight=0]; 10.66/4.26 157[label="putStr (show ww5)",fontsize=16,color="magenta"];157 -> 262[label="",style="dashed", color="magenta", weight=3]; 10.66/4.26 158[label="putChar (Char (Succ ww6))",fontsize=16,color="black",shape="box"];158 -> 263[label="",style="solid", color="black", weight=3]; 10.66/4.26 156[label="primbindIO ww14 (gtGt0 ww13)",fontsize=16,color="burlywood",shape="triangle"];375[label="ww14/IO ww140",fontsize=10,color="white",style="solid",shape="box"];156 -> 375[label="",style="solid", color="burlywood", weight=9]; 10.66/4.26 375 -> 264[label="",style="solid", color="burlywood", weight=3]; 10.66/4.26 376[label="ww14/AProVE_IO ww140",fontsize=10,color="white",style="solid",shape="box"];156 -> 376[label="",style="solid", color="burlywood", weight=9]; 10.66/4.26 376 -> 265[label="",style="solid", color="burlywood", weight=3]; 10.66/4.26 377[label="ww14/AProVE_Exception ww140",fontsize=10,color="white",style="solid",shape="box"];156 -> 377[label="",style="solid", color="burlywood", weight=9]; 10.66/4.26 377 -> 266[label="",style="solid", color="burlywood", weight=3]; 10.66/4.26 378[label="ww14/AProVE_Error ww140",fontsize=10,color="white",style="solid",shape="box"];156 -> 378[label="",style="solid", color="burlywood", weight=9]; 10.66/4.26 378 -> 267[label="",style="solid", color="burlywood", weight=3]; 10.66/4.26 262[label="show ww5",fontsize=16,color="blue",shape="box"];379[label="show :: ((@3) a b c) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 379[label="",style="solid", color="blue", weight=9]; 10.66/4.26 379 -> 268[label="",style="solid", color="blue", weight=3]; 10.66/4.26 380[label="show :: (Maybe a) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 380[label="",style="solid", color="blue", weight=9]; 10.66/4.26 380 -> 269[label="",style="solid", color="blue", weight=3]; 10.66/4.26 381[label="show :: Double -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 381[label="",style="solid", color="blue", weight=9]; 10.66/4.26 381 -> 270[label="",style="solid", color="blue", weight=3]; 10.66/4.26 382[label="show :: () -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 382[label="",style="solid", color="blue", weight=9]; 10.66/4.26 382 -> 271[label="",style="solid", color="blue", weight=3]; 10.66/4.26 383[label="show :: Char -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 383[label="",style="solid", color="blue", weight=9]; 10.66/4.26 383 -> 272[label="",style="solid", color="blue", weight=3]; 10.66/4.26 384[label="show :: Bool -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 384[label="",style="solid", color="blue", weight=9]; 10.66/4.26 384 -> 273[label="",style="solid", color="blue", weight=3]; 10.66/4.26 385[label="show :: Int -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 385[label="",style="solid", color="blue", weight=9]; 10.66/4.26 385 -> 274[label="",style="solid", color="blue", weight=3]; 10.66/4.26 386[label="show :: IOError -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 386[label="",style="solid", color="blue", weight=9]; 10.66/4.26 386 -> 275[label="",style="solid", color="blue", weight=3]; 10.66/4.26 387[label="show :: Float -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 387[label="",style="solid", color="blue", weight=9]; 10.66/4.26 387 -> 276[label="",style="solid", color="blue", weight=3]; 10.66/4.26 388[label="show :: Ordering -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 388[label="",style="solid", color="blue", weight=9]; 10.66/4.26 388 -> 277[label="",style="solid", color="blue", weight=3]; 10.66/4.26 389[label="show :: IOErrorKind -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 389[label="",style="solid", color="blue", weight=9]; 10.66/4.26 389 -> 278[label="",style="solid", color="blue", weight=3]; 10.66/4.26 390[label="show :: ([] a) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 390[label="",style="solid", color="blue", weight=9]; 10.66/4.26 390 -> 279[label="",style="solid", color="blue", weight=3]; 10.66/4.26 391[label="show :: Integer -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 391[label="",style="solid", color="blue", weight=9]; 10.66/4.26 391 -> 280[label="",style="solid", color="blue", weight=3]; 10.66/4.26 392[label="show :: ((@2) a b) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 392[label="",style="solid", color="blue", weight=9]; 10.66/4.26 392 -> 281[label="",style="solid", color="blue", weight=3]; 10.66/4.26 393[label="show :: (IO a) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 393[label="",style="solid", color="blue", weight=9]; 10.66/4.26 393 -> 282[label="",style="solid", color="blue", weight=3]; 10.66/4.26 394[label="show :: (Ratio a) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 394[label="",style="solid", color="blue", weight=9]; 10.66/4.26 394 -> 283[label="",style="solid", color="blue", weight=3]; 10.66/4.26 395[label="show :: (Either a b) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 395[label="",style="solid", color="blue", weight=9]; 10.66/4.26 395 -> 284[label="",style="solid", color="blue", weight=3]; 10.66/4.26 396[label="show :: HugsException -> [] Char",fontsize=10,color="white",style="solid",shape="box"];262 -> 396[label="",style="solid", color="blue", weight=9]; 10.66/4.26 396 -> 285[label="",style="solid", color="blue", weight=3]; 10.66/4.26 261[label="putStr ww17",fontsize=16,color="burlywood",shape="triangle"];397[label="ww17/ww170 : ww171",fontsize=10,color="white",style="solid",shape="box"];261 -> 397[label="",style="solid", color="burlywood", weight=9]; 10.66/4.26 397 -> 286[label="",style="solid", color="burlywood", weight=3]; 10.66/4.26 398[label="ww17/[]",fontsize=10,color="white",style="solid",shape="box"];261 -> 398[label="",style="solid", color="burlywood", weight=9]; 10.66/4.26 398 -> 287[label="",style="solid", color="burlywood", weight=3]; 10.66/4.26 263 -> 352[label="",style="dashed", color="red", weight=0]; 10.66/4.26 263[label="(seq Char (Succ ww6) output)",fontsize=16,color="magenta"];263 -> 353[label="",style="dashed", color="magenta", weight=3]; 10.66/4.26 263 -> 354[label="",style="dashed", color="magenta", weight=3]; 10.66/4.26 264[label="primbindIO (IO ww140) (gtGt0 ww13)",fontsize=16,color="black",shape="box"];264 -> 289[label="",style="solid", color="black", weight=3]; 10.66/4.26 265[label="primbindIO (AProVE_IO ww140) (gtGt0 ww13)",fontsize=16,color="black",shape="box"];265 -> 290[label="",style="solid", color="black", weight=3]; 10.66/4.26 266[label="primbindIO (AProVE_Exception ww140) (gtGt0 ww13)",fontsize=16,color="black",shape="box"];266 -> 291[label="",style="solid", color="black", weight=3]; 10.66/4.26 267[label="primbindIO (AProVE_Error ww140) (gtGt0 ww13)",fontsize=16,color="black",shape="box"];267 -> 292[label="",style="solid", color="black", weight=3]; 10.66/4.26 268[label="show ww5",fontsize=16,color="black",shape="box"];268 -> 293[label="",style="solid", color="black", weight=3]; 10.66/4.26 269[label="show ww5",fontsize=16,color="black",shape="box"];269 -> 294[label="",style="solid", color="black", weight=3]; 10.66/4.26 270[label="show ww5",fontsize=16,color="black",shape="box"];270 -> 295[label="",style="solid", color="black", weight=3]; 10.66/4.26 271[label="show ww5",fontsize=16,color="black",shape="box"];271 -> 296[label="",style="solid", color="black", weight=3]; 10.66/4.26 272[label="show ww5",fontsize=16,color="black",shape="box"];272 -> 297[label="",style="solid", color="black", weight=3]; 10.66/4.26 273[label="show ww5",fontsize=16,color="black",shape="box"];273 -> 298[label="",style="solid", color="black", weight=3]; 10.66/4.26 274[label="show ww5",fontsize=16,color="black",shape="box"];274 -> 299[label="",style="solid", color="black", weight=3]; 10.66/4.26 275[label="show ww5",fontsize=16,color="black",shape="box"];275 -> 300[label="",style="solid", color="black", weight=3]; 10.66/4.26 276[label="show ww5",fontsize=16,color="black",shape="box"];276 -> 301[label="",style="solid", color="black", weight=3]; 10.66/4.26 277[label="show ww5",fontsize=16,color="black",shape="box"];277 -> 302[label="",style="solid", color="black", weight=3]; 10.66/4.26 278[label="show ww5",fontsize=16,color="black",shape="box"];278 -> 303[label="",style="solid", color="black", weight=3]; 10.66/4.26 279[label="show ww5",fontsize=16,color="black",shape="box"];279 -> 304[label="",style="solid", color="black", weight=3]; 10.66/4.26 280[label="show ww5",fontsize=16,color="black",shape="box"];280 -> 305[label="",style="solid", color="black", weight=3]; 10.66/4.26 281[label="show ww5",fontsize=16,color="black",shape="box"];281 -> 306[label="",style="solid", color="black", weight=3]; 10.66/4.26 282[label="show ww5",fontsize=16,color="black",shape="box"];282 -> 307[label="",style="solid", color="black", weight=3]; 10.66/4.26 283[label="show ww5",fontsize=16,color="black",shape="box"];283 -> 308[label="",style="solid", color="black", weight=3]; 10.66/4.26 284[label="show ww5",fontsize=16,color="black",shape="box"];284 -> 309[label="",style="solid", color="black", weight=3]; 10.66/4.26 285[label="show ww5",fontsize=16,color="black",shape="box"];285 -> 310[label="",style="solid", color="black", weight=3]; 10.66/4.26 286[label="putStr (ww170 : ww171)",fontsize=16,color="black",shape="box"];286 -> 311[label="",style="solid", color="black", weight=3]; 10.66/4.26 287[label="putStr []",fontsize=16,color="black",shape="box"];287 -> 312[label="",style="solid", color="black", weight=3]; 10.66/4.26 353 -> 312[label="",style="dashed", color="red", weight=0]; 10.66/4.26 353[label="output",fontsize=16,color="magenta"];354[label="Char (Succ ww6)",fontsize=16,color="green",shape="box"];352[label="(seq ww170 ww19)",fontsize=16,color="black",shape="triangle"];352 -> 356[label="",style="solid", color="black", weight=3]; 10.66/4.26 289[label="error []",fontsize=16,color="red",shape="box"];290[label="gtGt0 ww13 ww140",fontsize=16,color="black",shape="box"];290 -> 314[label="",style="solid", color="black", weight=3]; 10.66/4.26 291[label="AProVE_Exception ww140",fontsize=16,color="green",shape="box"];292[label="AProVE_Error ww140",fontsize=16,color="green",shape="box"];293[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];293 -> 315[label="",style="solid", color="black", weight=3]; 10.66/4.26 294[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];294 -> 316[label="",style="solid", color="black", weight=3]; 10.66/4.26 295[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];295 -> 317[label="",style="solid", color="black", weight=3]; 10.66/4.26 296[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];296 -> 318[label="",style="solid", color="black", weight=3]; 10.66/4.26 297[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];297 -> 319[label="",style="solid", color="black", weight=3]; 10.66/4.26 298[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];298 -> 320[label="",style="solid", color="black", weight=3]; 10.66/4.26 299[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];299 -> 321[label="",style="solid", color="black", weight=3]; 10.66/4.26 300[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];300 -> 322[label="",style="solid", color="black", weight=3]; 10.66/4.26 301[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];301 -> 323[label="",style="solid", color="black", weight=3]; 10.66/4.26 302[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];302 -> 324[label="",style="solid", color="black", weight=3]; 10.66/4.26 303[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];303 -> 325[label="",style="solid", color="black", weight=3]; 10.66/4.26 304[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];304 -> 326[label="",style="solid", color="black", weight=3]; 10.66/4.26 305[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];305 -> 327[label="",style="solid", color="black", weight=3]; 10.66/4.26 306[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];306 -> 328[label="",style="solid", color="black", weight=3]; 10.66/4.26 307[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];307 -> 329[label="",style="solid", color="black", weight=3]; 10.66/4.26 308[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];308 -> 330[label="",style="solid", color="black", weight=3]; 10.66/4.26 309[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];309 -> 331[label="",style="solid", color="black", weight=3]; 10.66/4.26 310[label="showsPrec (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];310 -> 332[label="",style="solid", color="black", weight=3]; 10.66/4.26 311 -> 333[label="",style="dashed", color="red", weight=0]; 10.66/4.26 311[label="putChar ww170 >> putStr ww171",fontsize=16,color="magenta"];311 -> 334[label="",style="dashed", color="magenta", weight=3]; 10.66/4.26 312[label="output",fontsize=16,color="black",shape="triangle"];312 -> 335[label="",style="solid", color="black", weight=3]; 10.66/4.26 356[label="enforceWHNF (WHNF ww170) ww19",fontsize=16,color="black",shape="box"];356 -> 359[label="",style="solid", color="black", weight=3]; 10.66/4.26 314[label="ww13",fontsize=16,color="green",shape="box"];315[label="error []",fontsize=16,color="red",shape="box"];316[label="error []",fontsize=16,color="red",shape="box"];317[label="error []",fontsize=16,color="red",shape="box"];318[label="error []",fontsize=16,color="red",shape="box"];319[label="error []",fontsize=16,color="red",shape="box"];320[label="error []",fontsize=16,color="red",shape="box"];321[label="error []",fontsize=16,color="red",shape="box"];322[label="error []",fontsize=16,color="red",shape="box"];323[label="primShowsFloat (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];323 -> 336[label="",style="solid", color="black", weight=3]; 10.66/4.26 324[label="error []",fontsize=16,color="red",shape="box"];325[label="error []",fontsize=16,color="red",shape="box"];326[label="error []",fontsize=16,color="red",shape="box"];327[label="error []",fontsize=16,color="red",shape="box"];328[label="error []",fontsize=16,color="red",shape="box"];329[label="error []",fontsize=16,color="red",shape="box"];330[label="error []",fontsize=16,color="red",shape="box"];331[label="error []",fontsize=16,color="red",shape="box"];332[label="error []",fontsize=16,color="red",shape="box"];334 -> 261[label="",style="dashed", color="red", weight=0]; 10.66/4.26 334[label="putStr ww171",fontsize=16,color="magenta"];334 -> 337[label="",style="dashed", color="magenta", weight=3]; 10.66/4.26 333[label="putChar ww170 >> ww18",fontsize=16,color="black",shape="triangle"];333 -> 338[label="",style="solid", color="black", weight=3]; 10.66/4.26 335[label="randomSelect (aIOE IOError_FullError : aIOE IOError_PermDenied : AProVE_IO () : [])",fontsize=16,color="black",shape="box"];335 -> 339[label="",style="solid", color="black", weight=3]; 10.66/4.26 359[label="ww19",fontsize=16,color="green",shape="box"];336[label="terminator (Pos Zero) ww5 []",fontsize=16,color="black",shape="box"];336 -> 340[label="",style="solid", color="black", weight=3]; 10.66/4.26 337[label="ww171",fontsize=16,color="green",shape="box"];338[label="putChar ww170 >>= gtGt0 ww18",fontsize=16,color="black",shape="box"];338 -> 341[label="",style="solid", color="black", weight=3]; 10.66/4.26 339[label="randomSelect2 (aIOE IOError_FullError : aIOE IOError_PermDenied : AProVE_IO () : [])",fontsize=16,color="black",shape="box"];339 -> 342[label="",style="solid", color="black", weight=3]; 10.66/4.26 340[label="ter6m (Pos Zero) ww5 []",fontsize=16,color="green",shape="box"];340 -> 343[label="",style="dashed", color="green", weight=3]; 10.66/4.26 340 -> 344[label="",style="dashed", color="green", weight=3]; 10.66/4.26 340 -> 345[label="",style="dashed", color="green", weight=3]; 10.66/4.26 341 -> 156[label="",style="dashed", color="red", weight=0]; 10.66/4.26 341[label="primbindIO (putChar ww170) (gtGt0 ww18)",fontsize=16,color="magenta"];341 -> 346[label="",style="dashed", color="magenta", weight=3]; 10.66/4.26 341 -> 347[label="",style="dashed", color="magenta", weight=3]; 10.66/4.26 342[label="randomSelect1 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) terminator",fontsize=16,color="black",shape="box"];342 -> 348[label="",style="solid", color="black", weight=3]; 10.66/4.26 343[label="Pos Zero",fontsize=16,color="green",shape="box"];344[label="ww5",fontsize=16,color="green",shape="box"];345[label="[]",fontsize=16,color="green",shape="box"];346[label="putChar ww170",fontsize=16,color="black",shape="box"];346 -> 349[label="",style="solid", color="black", weight=3]; 10.66/4.26 347[label="ww18",fontsize=16,color="green",shape="box"];348[label="randomSelect1 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) ter7m",fontsize=16,color="burlywood",shape="box"];399[label="ter7m/False",fontsize=10,color="white",style="solid",shape="box"];348 -> 399[label="",style="solid", color="burlywood", weight=9]; 10.66/4.26 399 -> 350[label="",style="solid", color="burlywood", weight=3]; 10.66/4.26 400[label="ter7m/True",fontsize=10,color="white",style="solid",shape="box"];348 -> 400[label="",style="solid", color="burlywood", weight=9]; 10.66/4.26 400 -> 351[label="",style="solid", color="burlywood", weight=3]; 10.66/4.26 349 -> 352[label="",style="dashed", color="red", weight=0]; 10.66/4.26 349[label="(seq ww170 output)",fontsize=16,color="magenta"];349 -> 355[label="",style="dashed", color="magenta", weight=3]; 10.66/4.26 350[label="randomSelect1 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) False",fontsize=16,color="black",shape="box"];350 -> 357[label="",style="solid", color="black", weight=3]; 10.66/4.26 351[label="randomSelect1 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) True",fontsize=16,color="black",shape="box"];351 -> 358[label="",style="solid", color="black", weight=3]; 10.66/4.26 355 -> 312[label="",style="dashed", color="red", weight=0]; 10.66/4.26 355[label="output",fontsize=16,color="magenta"];357[label="randomSelect0 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) otherwise",fontsize=16,color="black",shape="box"];357 -> 360[label="",style="solid", color="black", weight=3]; 10.66/4.26 358[label="randomSelect (aIOE IOError_PermDenied : AProVE_IO () : [])",fontsize=16,color="black",shape="box"];358 -> 361[label="",style="solid", color="black", weight=3]; 10.66/4.26 360[label="randomSelect0 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) True",fontsize=16,color="black",shape="box"];360 -> 362[label="",style="solid", color="black", weight=3]; 10.66/4.26 361[label="randomSelect2 (aIOE IOError_PermDenied : AProVE_IO () : [])",fontsize=16,color="black",shape="box"];361 -> 363[label="",style="solid", color="black", weight=3]; 10.66/4.26 362[label="aIOE IOError_FullError",fontsize=16,color="black",shape="box"];362 -> 364[label="",style="solid", color="black", weight=3]; 10.66/4.26 363[label="randomSelect1 (aIOE IOError_PermDenied) (AProVE_IO () : []) terminator",fontsize=16,color="black",shape="box"];363 -> 365[label="",style="solid", color="black", weight=3]; 10.66/4.26 364[label="AProVE_Exception (AET_IOError (IOError IOError_FullError [] [] Nothing))",fontsize=16,color="green",shape="box"];365[label="randomSelect1 (aIOE IOError_PermDenied) (AProVE_IO () : []) ter8m",fontsize=16,color="burlywood",shape="box"];401[label="ter8m/False",fontsize=10,color="white",style="solid",shape="box"];365 -> 401[label="",style="solid", color="burlywood", weight=9]; 10.66/4.26 401 -> 366[label="",style="solid", color="burlywood", weight=3]; 10.66/4.26 402[label="ter8m/True",fontsize=10,color="white",style="solid",shape="box"];365 -> 402[label="",style="solid", color="burlywood", weight=9]; 10.66/4.26 402 -> 367[label="",style="solid", color="burlywood", weight=3]; 10.66/4.26 366[label="randomSelect1 (aIOE IOError_PermDenied) (AProVE_IO () : []) False",fontsize=16,color="black",shape="box"];366 -> 368[label="",style="solid", color="black", weight=3]; 10.66/4.26 367[label="randomSelect1 (aIOE IOError_PermDenied) (AProVE_IO () : []) True",fontsize=16,color="black",shape="box"];367 -> 369[label="",style="solid", color="black", weight=3]; 10.66/4.26 368[label="randomSelect0 (aIOE IOError_PermDenied) (AProVE_IO () : []) otherwise",fontsize=16,color="black",shape="box"];368 -> 370[label="",style="solid", color="black", weight=3]; 10.66/4.26 369[label="randomSelect (AProVE_IO () : [])",fontsize=16,color="black",shape="box"];369 -> 371[label="",style="solid", color="black", weight=3]; 10.66/4.26 370[label="randomSelect0 (aIOE IOError_PermDenied) (AProVE_IO () : []) True",fontsize=16,color="black",shape="box"];370 -> 372[label="",style="solid", color="black", weight=3]; 10.66/4.26 371[label="randomSelect3 (AProVE_IO () : [])",fontsize=16,color="black",shape="box"];371 -> 373[label="",style="solid", color="black", weight=3]; 10.66/4.26 372[label="aIOE IOError_PermDenied",fontsize=16,color="black",shape="box"];372 -> 374[label="",style="solid", color="black", weight=3]; 10.66/4.26 373[label="AProVE_IO ()",fontsize=16,color="green",shape="box"];374[label="AProVE_Exception (AET_IOError (IOError IOError_PermDenied [] [] Nothing))",fontsize=16,color="green",shape="box"];} 10.66/4.26 10.66/4.26 ---------------------------------------- 10.66/4.26 10.66/4.26 (10) 10.66/4.26 Obligation: 10.66/4.26 Q DP problem: 10.66/4.26 The TRS P consists of the following rules: 10.66/4.26 10.66/4.26 new_putStr(:(ww170, ww171)) -> new_putStr(ww171) 10.66/4.26 10.66/4.26 R is empty. 10.66/4.26 Q is empty. 10.66/4.26 We have to consider all minimal (P,Q,R)-chains. 10.66/4.26 ---------------------------------------- 10.66/4.26 10.66/4.26 (11) QDPSizeChangeProof (EQUIVALENT) 10.66/4.26 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.66/4.26 10.66/4.26 From the DPs we obtained the following set of size-change graphs: 10.66/4.26 *new_putStr(:(ww170, ww171)) -> new_putStr(ww171) 10.66/4.26 The graph contains the following edges 1 > 1 10.66/4.26 10.66/4.26 10.66/4.26 ---------------------------------------- 10.66/4.26 10.66/4.26 (12) 10.66/4.26 YES 10.66/4.30 EOF