8.83/3.78 MAYBE 10.72/4.32 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 10.72/4.32 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 10.72/4.32 10.72/4.32 10.72/4.32 H-Termination with start terms of the given HASKELL could not be shown: 10.72/4.32 10.72/4.32 (0) HASKELL 10.72/4.32 (1) LR [EQUIVALENT, 0 ms] 10.72/4.32 (2) HASKELL 10.72/4.32 (3) BR [EQUIVALENT, 0 ms] 10.72/4.32 (4) HASKELL 10.72/4.32 (5) COR [EQUIVALENT, 0 ms] 10.72/4.32 (6) HASKELL 10.72/4.32 (7) Narrow [SOUND, 0 ms] 10.72/4.32 (8) AND 10.72/4.32 (9) QDP 10.72/4.32 (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] 10.72/4.32 (11) YES 10.72/4.32 (12) QDP 10.72/4.32 (13) NonTerminationLoopProof [COMPLETE, 0 ms] 10.72/4.32 (14) NO 10.72/4.32 (15) Narrow [COMPLETE, 0 ms] 10.72/4.32 (16) TRUE 10.72/4.32 10.72/4.32 10.72/4.32 ---------------------------------------- 10.72/4.32 10.72/4.32 (0) 10.72/4.32 Obligation: 10.72/4.32 mainModule Main 10.72/4.32 module Main where { 10.72/4.32 import qualified Prelude; 10.72/4.32 } 10.72/4.32 10.72/4.32 ---------------------------------------- 10.72/4.32 10.72/4.32 (1) LR (EQUIVALENT) 10.72/4.32 Lambda Reductions: 10.72/4.32 The following Lambda expression 10.72/4.32 "\_->q" 10.72/4.32 is transformed to 10.72/4.32 "gtGt0 q _ = q; 10.72/4.32 " 10.72/4.32 The following Lambda expression 10.72/4.32 "\xs->return (x : xs)" 10.72/4.32 is transformed to 10.72/4.32 "getContents0 x xs = return (x : xs); 10.72/4.32 " 10.72/4.32 The following Lambda expression 10.72/4.32 "\x->getContents >>= getContents0 x" 10.72/4.32 is transformed to 10.72/4.32 "getContents1 x = getContents >>= getContents0 x; 10.72/4.32 " 10.72/4.32 10.72/4.32 ---------------------------------------- 10.72/4.32 10.72/4.32 (2) 10.72/4.32 Obligation: 10.72/4.32 mainModule Main 10.72/4.32 module Main where { 10.72/4.32 import qualified Prelude; 10.72/4.32 } 10.72/4.32 10.72/4.32 ---------------------------------------- 10.72/4.32 10.72/4.32 (3) BR (EQUIVALENT) 10.72/4.32 Replaced joker patterns by fresh variables and removed binding patterns. 10.72/4.32 ---------------------------------------- 10.72/4.32 10.72/4.32 (4) 10.72/4.32 Obligation: 10.72/4.32 mainModule Main 10.72/4.32 module Main where { 10.72/4.32 import qualified Prelude; 10.72/4.32 } 10.72/4.32 10.72/4.32 ---------------------------------------- 10.72/4.32 10.72/4.32 (5) COR (EQUIVALENT) 10.72/4.32 Cond Reductions: 10.72/4.32 The following Function with conditions 10.72/4.32 "randomSelect (x : []) = x; 10.72/4.32 randomSelect (x : xs)|terminatorrandomSelect xs|otherwisex; 10.72/4.32 " 10.72/4.32 is transformed to 10.72/4.32 "randomSelect (x : []) = randomSelect3 (x : []); 10.72/4.32 randomSelect (x : xs) = randomSelect2 (x : xs); 10.72/4.32 " 10.72/4.32 "randomSelect1 x xs True = randomSelect xs; 10.72/4.32 randomSelect1 x xs False = randomSelect0 x xs otherwise; 10.72/4.32 " 10.72/4.32 "randomSelect0 x xs True = x; 10.72/4.32 " 10.72/4.32 "randomSelect2 (x : xs) = randomSelect1 x xs terminator; 10.72/4.32 " 10.72/4.32 "randomSelect3 (x : []) = x; 10.72/4.32 randomSelect3 wv = randomSelect2 wv; 10.72/4.32 " 10.72/4.32 The following Function with conditions 10.72/4.32 "undefined |Falseundefined; 10.72/4.32 " 10.72/4.32 is transformed to 10.72/4.32 "undefined = undefined1; 10.72/4.32 " 10.72/4.32 "undefined0 True = undefined; 10.72/4.32 " 10.72/4.32 "undefined1 = undefined0 False; 10.72/4.32 " 10.72/4.32 The following Function with conditions 10.72/4.32 "getChar |terminatorreturn terminator|otherwiseaIOE IOError_EOF; 10.72/4.32 " 10.72/4.32 is transformed to 10.72/4.32 "getChar = getChar2; 10.72/4.32 " 10.72/4.32 "getChar1 True = return terminator; 10.72/4.32 getChar1 False = getChar0 otherwise; 10.72/4.32 " 10.72/4.32 "getChar0 True = aIOE IOError_EOF; 10.72/4.32 " 10.72/4.32 "getChar2 = getChar1 terminator; 10.72/4.32 " 10.72/4.32 The following Function with conditions 10.72/4.32 "getContents |terminatorreturn []|otherwisegetChar >>= getContents1; 10.72/4.32 " 10.72/4.32 is transformed to 10.72/4.32 "getContents = getContents4; 10.72/4.32 " 10.72/4.32 "getContents3 True = return []; 10.72/4.32 getContents3 False = getContents2 otherwise; 10.72/4.32 " 10.72/4.32 "getContents2 True = getChar >>= getContents1; 10.72/4.32 " 10.72/4.32 "getContents4 = getContents3 terminator; 10.72/4.32 " 10.72/4.32 10.72/4.32 ---------------------------------------- 10.72/4.32 10.72/4.32 (6) 10.72/4.32 Obligation: 10.72/4.32 mainModule Main 10.72/4.32 module Main where { 10.72/4.32 import qualified Prelude; 10.72/4.32 } 10.72/4.32 10.72/4.32 ---------------------------------------- 10.72/4.32 10.72/4.32 (7) Narrow (SOUND) 10.72/4.32 Haskell To QDPs 10.72/4.32 10.72/4.32 digraph dp_graph { 10.72/4.32 node [outthreshold=100, inthreshold=100];1[label="interact",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 10.72/4.32 3[label="interact ww3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 10.72/4.32 4[label="getContents >>= putStr . ww3",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 10.72/4.32 5 -> 235[label="",style="dashed", color="red", weight=0]; 10.72/4.32 5[label="primbindIO getContents (putStr . ww3)",fontsize=16,color="magenta"];5 -> 236[label="",style="dashed", color="magenta", weight=3]; 10.72/4.32 5 -> 237[label="",style="dashed", color="magenta", weight=3]; 10.72/4.32 236[label="ww3",fontsize=16,color="green",shape="box"];237[label="getContents",fontsize=16,color="black",shape="triangle"];237 -> 514[label="",style="solid", color="black", weight=3]; 10.72/4.32 235[label="primbindIO ww13 (putStr . ww14)",fontsize=16,color="burlywood",shape="triangle"];616[label="ww13/IO ww130",fontsize=10,color="white",style="solid",shape="box"];235 -> 616[label="",style="solid", color="burlywood", weight=9]; 10.72/4.32 616 -> 515[label="",style="solid", color="burlywood", weight=3]; 10.72/4.32 617[label="ww13/AProVE_IO ww130",fontsize=10,color="white",style="solid",shape="box"];235 -> 617[label="",style="solid", color="burlywood", weight=9]; 10.72/4.32 617 -> 516[label="",style="solid", color="burlywood", weight=3]; 10.72/4.32 618[label="ww13/AProVE_Exception ww130",fontsize=10,color="white",style="solid",shape="box"];235 -> 618[label="",style="solid", color="burlywood", weight=9]; 10.72/4.32 618 -> 517[label="",style="solid", color="burlywood", weight=3]; 10.72/4.32 619[label="ww13/AProVE_Error ww130",fontsize=10,color="white",style="solid",shape="box"];235 -> 619[label="",style="solid", color="burlywood", weight=9]; 10.72/4.32 619 -> 518[label="",style="solid", color="burlywood", weight=3]; 10.72/4.32 514[label="getContents4",fontsize=16,color="black",shape="box"];514 -> 519[label="",style="solid", color="black", weight=3]; 10.72/4.32 515[label="primbindIO (IO ww130) (putStr . ww14)",fontsize=16,color="black",shape="box"];515 -> 520[label="",style="solid", color="black", weight=3]; 10.72/4.32 516[label="primbindIO (AProVE_IO ww130) (putStr . ww14)",fontsize=16,color="black",shape="box"];516 -> 521[label="",style="solid", color="black", weight=3]; 10.72/4.32 517[label="primbindIO (AProVE_Exception ww130) (putStr . ww14)",fontsize=16,color="black",shape="box"];517 -> 522[label="",style="solid", color="black", weight=3]; 10.72/4.32 518[label="primbindIO (AProVE_Error ww130) (putStr . ww14)",fontsize=16,color="black",shape="box"];518 -> 523[label="",style="solid", color="black", weight=3]; 10.72/4.32 519[label="getContents3 terminator",fontsize=16,color="black",shape="box"];519 -> 524[label="",style="solid", color="black", weight=3]; 10.72/4.32 520[label="error []",fontsize=16,color="red",shape="box"];521[label="putStr . ww14",fontsize=16,color="black",shape="box"];521 -> 525[label="",style="solid", color="black", weight=3]; 10.72/4.32 522[label="AProVE_Exception ww130",fontsize=16,color="green",shape="box"];523[label="AProVE_Error ww130",fontsize=16,color="green",shape="box"];524[label="getContents3 ter12m",fontsize=16,color="burlywood",shape="box"];620[label="ter12m/False",fontsize=10,color="white",style="solid",shape="box"];524 -> 620[label="",style="solid", color="burlywood", weight=9]; 10.72/4.32 620 -> 526[label="",style="solid", color="burlywood", weight=3]; 10.72/4.32 621[label="ter12m/True",fontsize=10,color="white",style="solid",shape="box"];524 -> 621[label="",style="solid", color="burlywood", weight=9]; 10.72/4.32 621 -> 527[label="",style="solid", color="burlywood", weight=3]; 10.72/4.32 525 -> 528[label="",style="dashed", color="red", weight=0]; 10.72/4.32 525[label="putStr (ww14 ww130)",fontsize=16,color="magenta"];525 -> 529[label="",style="dashed", color="magenta", weight=3]; 10.72/4.32 526[label="getContents3 False",fontsize=16,color="black",shape="box"];526 -> 530[label="",style="solid", color="black", weight=3]; 10.72/4.32 527[label="getContents3 True",fontsize=16,color="black",shape="box"];527 -> 531[label="",style="solid", color="black", weight=3]; 10.72/4.32 529[label="ww14 ww130",fontsize=16,color="green",shape="box"];529 -> 535[label="",style="dashed", color="green", weight=3]; 10.72/4.32 528[label="putStr ww15",fontsize=16,color="burlywood",shape="triangle"];622[label="ww15/ww150 : ww151",fontsize=10,color="white",style="solid",shape="box"];528 -> 622[label="",style="solid", color="burlywood", weight=9]; 10.72/4.32 622 -> 533[label="",style="solid", color="burlywood", weight=3]; 10.72/4.32 623[label="ww15/[]",fontsize=10,color="white",style="solid",shape="box"];528 -> 623[label="",style="solid", color="burlywood", weight=9]; 10.72/4.32 623 -> 534[label="",style="solid", color="burlywood", weight=3]; 10.72/4.32 530[label="getContents2 otherwise",fontsize=16,color="black",shape="box"];530 -> 536[label="",style="solid", color="black", weight=3]; 10.72/4.32 531[label="return []",fontsize=16,color="black",shape="box"];531 -> 537[label="",style="solid", color="black", weight=3]; 10.72/4.32 535[label="ww130",fontsize=16,color="green",shape="box"];533[label="putStr (ww150 : ww151)",fontsize=16,color="black",shape="box"];533 -> 538[label="",style="solid", color="black", weight=3]; 10.72/4.32 534[label="putStr []",fontsize=16,color="black",shape="box"];534 -> 539[label="",style="solid", color="black", weight=3]; 10.72/4.33 536[label="getContents2 True",fontsize=16,color="black",shape="box"];536 -> 540[label="",style="solid", color="black", weight=3]; 10.72/4.33 537[label="primretIO []",fontsize=16,color="black",shape="box"];537 -> 541[label="",style="solid", color="black", weight=3]; 10.72/4.33 538 -> 542[label="",style="dashed", color="red", weight=0]; 10.72/4.33 538[label="putChar ww150 >> putStr ww151",fontsize=16,color="magenta"];538 -> 543[label="",style="dashed", color="magenta", weight=3]; 10.72/4.33 539[label="output",fontsize=16,color="black",shape="triangle"];539 -> 544[label="",style="solid", color="black", weight=3]; 10.72/4.33 540[label="getChar >>= getContents1",fontsize=16,color="black",shape="box"];540 -> 545[label="",style="solid", color="black", weight=3]; 10.72/4.33 541[label="AProVE_IO []",fontsize=16,color="green",shape="box"];543 -> 528[label="",style="dashed", color="red", weight=0]; 10.72/4.33 543[label="putStr ww151",fontsize=16,color="magenta"];543 -> 546[label="",style="dashed", color="magenta", weight=3]; 10.72/4.33 542[label="putChar ww150 >> ww16",fontsize=16,color="black",shape="triangle"];542 -> 547[label="",style="solid", color="black", weight=3]; 10.72/4.33 544[label="randomSelect (aIOE IOError_FullError : aIOE IOError_PermDenied : AProVE_IO () : [])",fontsize=16,color="black",shape="box"];544 -> 548[label="",style="solid", color="black", weight=3]; 10.72/4.33 545[label="primbindIO getChar getContents1",fontsize=16,color="black",shape="box"];545 -> 549[label="",style="solid", color="black", weight=3]; 10.72/4.33 546[label="ww151",fontsize=16,color="green",shape="box"];547[label="putChar ww150 >>= gtGt0 ww16",fontsize=16,color="black",shape="box"];547 -> 550[label="",style="solid", color="black", weight=3]; 10.72/4.33 548[label="randomSelect2 (aIOE IOError_FullError : aIOE IOError_PermDenied : AProVE_IO () : [])",fontsize=16,color="black",shape="box"];548 -> 551[label="",style="solid", color="black", weight=3]; 10.72/4.33 549[label="primbindIO getChar2 getContents1",fontsize=16,color="black",shape="box"];549 -> 552[label="",style="solid", color="black", weight=3]; 10.72/4.33 550[label="primbindIO (putChar ww150) (gtGt0 ww16)",fontsize=16,color="black",shape="box"];550 -> 553[label="",style="solid", color="black", weight=3]; 10.72/4.33 551[label="randomSelect1 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) terminator",fontsize=16,color="black",shape="box"];551 -> 554[label="",style="solid", color="black", weight=3]; 10.72/4.33 552[label="primbindIO (getChar1 terminator) getContents1",fontsize=16,color="black",shape="box"];552 -> 555[label="",style="solid", color="black", weight=3]; 10.72/4.33 553 -> 556[label="",style="dashed", color="red", weight=0]; 10.72/4.33 553[label="primbindIO (seq ww150 output) (gtGt0 ww16)",fontsize=16,color="magenta"];553 -> 557[label="",style="dashed", color="magenta", weight=3]; 10.72/4.33 554[label="randomSelect1 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) ter13m",fontsize=16,color="burlywood",shape="box"];624[label="ter13m/False",fontsize=10,color="white",style="solid",shape="box"];554 -> 624[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 624 -> 558[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 625[label="ter13m/True",fontsize=10,color="white",style="solid",shape="box"];554 -> 625[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 625 -> 559[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 555[label="primbindIO (getChar1 ter14m) getContents1",fontsize=16,color="burlywood",shape="box"];626[label="ter14m/False",fontsize=10,color="white",style="solid",shape="box"];555 -> 626[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 626 -> 560[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 627[label="ter14m/True",fontsize=10,color="white",style="solid",shape="box"];555 -> 627[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 627 -> 561[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 557 -> 539[label="",style="dashed", color="red", weight=0]; 10.72/4.33 557[label="output",fontsize=16,color="magenta"];556[label="primbindIO (seq ww150 ww17) (gtGt0 ww16)",fontsize=16,color="black",shape="triangle"];556 -> 562[label="",style="solid", color="black", weight=3]; 10.72/4.33 558[label="randomSelect1 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) False",fontsize=16,color="black",shape="box"];558 -> 563[label="",style="solid", color="black", weight=3]; 10.72/4.33 559[label="randomSelect1 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) True",fontsize=16,color="black",shape="box"];559 -> 564[label="",style="solid", color="black", weight=3]; 10.72/4.33 560[label="primbindIO (getChar1 False) getContents1",fontsize=16,color="black",shape="box"];560 -> 565[label="",style="solid", color="black", weight=3]; 10.72/4.33 561[label="primbindIO (getChar1 True) getContents1",fontsize=16,color="black",shape="box"];561 -> 566[label="",style="solid", color="black", weight=3]; 10.72/4.33 562[label="primbindIO (enforceWHNF (WHNF ww150) ww17) (gtGt0 ww16)",fontsize=16,color="black",shape="box"];562 -> 567[label="",style="solid", color="black", weight=3]; 10.72/4.33 563[label="randomSelect0 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) otherwise",fontsize=16,color="black",shape="box"];563 -> 568[label="",style="solid", color="black", weight=3]; 10.72/4.33 564[label="randomSelect (aIOE IOError_PermDenied : AProVE_IO () : [])",fontsize=16,color="black",shape="box"];564 -> 569[label="",style="solid", color="black", weight=3]; 10.72/4.33 565[label="primbindIO (getChar0 otherwise) getContents1",fontsize=16,color="black",shape="box"];565 -> 570[label="",style="solid", color="black", weight=3]; 10.72/4.33 566[label="primbindIO (return terminator) getContents1",fontsize=16,color="black",shape="box"];566 -> 571[label="",style="solid", color="black", weight=3]; 10.72/4.33 567[label="primbindIO ww17 (gtGt0 ww16)",fontsize=16,color="burlywood",shape="box"];628[label="ww17/IO ww170",fontsize=10,color="white",style="solid",shape="box"];567 -> 628[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 628 -> 572[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 629[label="ww17/AProVE_IO ww170",fontsize=10,color="white",style="solid",shape="box"];567 -> 629[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 629 -> 573[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 630[label="ww17/AProVE_Exception ww170",fontsize=10,color="white",style="solid",shape="box"];567 -> 630[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 630 -> 574[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 631[label="ww17/AProVE_Error ww170",fontsize=10,color="white",style="solid",shape="box"];567 -> 631[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 631 -> 575[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 568[label="randomSelect0 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) True",fontsize=16,color="black",shape="box"];568 -> 576[label="",style="solid", color="black", weight=3]; 10.72/4.33 569[label="randomSelect2 (aIOE IOError_PermDenied : AProVE_IO () : [])",fontsize=16,color="black",shape="box"];569 -> 577[label="",style="solid", color="black", weight=3]; 10.72/4.33 570[label="primbindIO (getChar0 True) getContents1",fontsize=16,color="black",shape="box"];570 -> 578[label="",style="solid", color="black", weight=3]; 10.72/4.33 571[label="primbindIO (primretIO terminator) getContents1",fontsize=16,color="black",shape="box"];571 -> 579[label="",style="solid", color="black", weight=3]; 10.72/4.33 572[label="primbindIO (IO ww170) (gtGt0 ww16)",fontsize=16,color="black",shape="box"];572 -> 580[label="",style="solid", color="black", weight=3]; 10.72/4.33 573[label="primbindIO (AProVE_IO ww170) (gtGt0 ww16)",fontsize=16,color="black",shape="box"];573 -> 581[label="",style="solid", color="black", weight=3]; 10.72/4.33 574[label="primbindIO (AProVE_Exception ww170) (gtGt0 ww16)",fontsize=16,color="black",shape="box"];574 -> 582[label="",style="solid", color="black", weight=3]; 10.72/4.33 575[label="primbindIO (AProVE_Error ww170) (gtGt0 ww16)",fontsize=16,color="black",shape="box"];575 -> 583[label="",style="solid", color="black", weight=3]; 10.72/4.33 576[label="aIOE IOError_FullError",fontsize=16,color="black",shape="box"];576 -> 584[label="",style="solid", color="black", weight=3]; 10.72/4.33 577[label="randomSelect1 (aIOE IOError_PermDenied) (AProVE_IO () : []) terminator",fontsize=16,color="black",shape="box"];577 -> 585[label="",style="solid", color="black", weight=3]; 10.72/4.33 578[label="primbindIO (aIOE IOError_EOF) getContents1",fontsize=16,color="black",shape="box"];578 -> 586[label="",style="solid", color="black", weight=3]; 10.72/4.33 579[label="primbindIO (AProVE_IO terminator) getContents1",fontsize=16,color="black",shape="box"];579 -> 587[label="",style="solid", color="black", weight=3]; 10.72/4.33 580[label="error []",fontsize=16,color="red",shape="box"];581[label="gtGt0 ww16 ww170",fontsize=16,color="black",shape="box"];581 -> 588[label="",style="solid", color="black", weight=3]; 10.72/4.33 582[label="AProVE_Exception ww170",fontsize=16,color="green",shape="box"];583[label="AProVE_Error ww170",fontsize=16,color="green",shape="box"];584[label="AProVE_Exception (AET_IOError (IOError IOError_FullError [] [] Nothing))",fontsize=16,color="green",shape="box"];585[label="randomSelect1 (aIOE IOError_PermDenied) (AProVE_IO () : []) ter15m",fontsize=16,color="burlywood",shape="box"];632[label="ter15m/False",fontsize=10,color="white",style="solid",shape="box"];585 -> 632[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 632 -> 589[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 633[label="ter15m/True",fontsize=10,color="white",style="solid",shape="box"];585 -> 633[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 633 -> 590[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 586[label="primbindIO (AProVE_Exception (AET_IOError (IOError IOError_EOF [] [] Nothing))) getContents1",fontsize=16,color="black",shape="box"];586 -> 591[label="",style="solid", color="black", weight=3]; 10.72/4.33 587[label="getContents1 terminator",fontsize=16,color="black",shape="box"];587 -> 592[label="",style="solid", color="black", weight=3]; 10.72/4.33 588[label="ww16",fontsize=16,color="green",shape="box"];589[label="randomSelect1 (aIOE IOError_PermDenied) (AProVE_IO () : []) False",fontsize=16,color="black",shape="box"];589 -> 593[label="",style="solid", color="black", weight=3]; 10.72/4.33 590[label="randomSelect1 (aIOE IOError_PermDenied) (AProVE_IO () : []) True",fontsize=16,color="black",shape="box"];590 -> 594[label="",style="solid", color="black", weight=3]; 10.72/4.33 591[label="AProVE_Exception (AET_IOError (IOError IOError_EOF [] [] Nothing))",fontsize=16,color="green",shape="box"];592 -> 595[label="",style="dashed", color="red", weight=0]; 10.72/4.33 592[label="getContents >>= getContents0 terminator",fontsize=16,color="magenta"];592 -> 596[label="",style="dashed", color="magenta", weight=3]; 10.72/4.33 593[label="randomSelect0 (aIOE IOError_PermDenied) (AProVE_IO () : []) otherwise",fontsize=16,color="black",shape="box"];593 -> 597[label="",style="solid", color="black", weight=3]; 10.72/4.33 594[label="randomSelect (AProVE_IO () : [])",fontsize=16,color="black",shape="box"];594 -> 598[label="",style="solid", color="black", weight=3]; 10.72/4.33 596 -> 237[label="",style="dashed", color="red", weight=0]; 10.72/4.33 596[label="getContents",fontsize=16,color="magenta"];595[label="ww18 >>= getContents0 terminator",fontsize=16,color="black",shape="triangle"];595 -> 599[label="",style="solid", color="black", weight=3]; 10.72/4.33 597[label="randomSelect0 (aIOE IOError_PermDenied) (AProVE_IO () : []) True",fontsize=16,color="black",shape="box"];597 -> 600[label="",style="solid", color="black", weight=3]; 10.72/4.33 598[label="randomSelect3 (AProVE_IO () : [])",fontsize=16,color="black",shape="box"];598 -> 601[label="",style="solid", color="black", weight=3]; 10.72/4.33 599[label="primbindIO ww18 (getContents0 terminator)",fontsize=16,color="burlywood",shape="box"];634[label="ww18/IO ww180",fontsize=10,color="white",style="solid",shape="box"];599 -> 634[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 634 -> 602[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 635[label="ww18/AProVE_IO ww180",fontsize=10,color="white",style="solid",shape="box"];599 -> 635[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 635 -> 603[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 636[label="ww18/AProVE_Exception ww180",fontsize=10,color="white",style="solid",shape="box"];599 -> 636[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 636 -> 604[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 637[label="ww18/AProVE_Error ww180",fontsize=10,color="white",style="solid",shape="box"];599 -> 637[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 637 -> 605[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 600[label="aIOE IOError_PermDenied",fontsize=16,color="black",shape="box"];600 -> 606[label="",style="solid", color="black", weight=3]; 10.72/4.33 601[label="AProVE_IO ()",fontsize=16,color="green",shape="box"];602[label="primbindIO (IO ww180) (getContents0 terminator)",fontsize=16,color="black",shape="box"];602 -> 607[label="",style="solid", color="black", weight=3]; 10.72/4.33 603[label="primbindIO (AProVE_IO ww180) (getContents0 terminator)",fontsize=16,color="black",shape="box"];603 -> 608[label="",style="solid", color="black", weight=3]; 10.72/4.33 604[label="primbindIO (AProVE_Exception ww180) (getContents0 terminator)",fontsize=16,color="black",shape="box"];604 -> 609[label="",style="solid", color="black", weight=3]; 10.72/4.33 605[label="primbindIO (AProVE_Error ww180) (getContents0 terminator)",fontsize=16,color="black",shape="box"];605 -> 610[label="",style="solid", color="black", weight=3]; 10.72/4.33 606[label="AProVE_Exception (AET_IOError (IOError IOError_PermDenied [] [] Nothing))",fontsize=16,color="green",shape="box"];607[label="error []",fontsize=16,color="red",shape="box"];608[label="getContents0 terminator ww180",fontsize=16,color="black",shape="box"];608 -> 611[label="",style="solid", color="black", weight=3]; 10.72/4.33 609[label="AProVE_Exception ww180",fontsize=16,color="green",shape="box"];610[label="AProVE_Error ww180",fontsize=16,color="green",shape="box"];611[label="return (terminator : ww180)",fontsize=16,color="black",shape="box"];611 -> 612[label="",style="solid", color="black", weight=3]; 10.72/4.33 612[label="primretIO (terminator : ww180)",fontsize=16,color="black",shape="box"];612 -> 613[label="",style="solid", color="black", weight=3]; 10.72/4.33 613[label="AProVE_IO (terminator : ww180)",fontsize=16,color="green",shape="box"];613 -> 614[label="",style="dashed", color="green", weight=3]; 10.72/4.33 614[label="terminator",fontsize=16,color="black",shape="box"];614 -> 615[label="",style="solid", color="black", weight=3]; 10.72/4.33 615[label="ter16m",fontsize=16,color="green",shape="box"];} 10.72/4.33 10.72/4.33 ---------------------------------------- 10.72/4.33 10.72/4.33 (8) 10.72/4.33 Complex Obligation (AND) 10.72/4.33 10.72/4.33 ---------------------------------------- 10.72/4.33 10.72/4.33 (9) 10.72/4.33 Obligation: 10.72/4.33 Q DP problem: 10.72/4.33 The TRS P consists of the following rules: 10.72/4.33 10.72/4.33 new_putStr(:(ww150, ww151)) -> new_putStr(ww151) 10.72/4.33 10.72/4.33 R is empty. 10.72/4.33 Q is empty. 10.72/4.33 We have to consider all minimal (P,Q,R)-chains. 10.72/4.33 ---------------------------------------- 10.72/4.33 10.72/4.33 (10) QDPSizeChangeProof (EQUIVALENT) 10.72/4.33 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.72/4.33 10.72/4.33 From the DPs we obtained the following set of size-change graphs: 10.72/4.33 *new_putStr(:(ww150, ww151)) -> new_putStr(ww151) 10.72/4.33 The graph contains the following edges 1 > 1 10.72/4.33 10.72/4.33 10.72/4.33 ---------------------------------------- 10.72/4.33 10.72/4.33 (11) 10.72/4.33 YES 10.72/4.33 10.72/4.33 ---------------------------------------- 10.72/4.33 10.72/4.33 (12) 10.72/4.33 Obligation: 10.72/4.33 Q DP problem: 10.72/4.33 The TRS P consists of the following rules: 10.72/4.33 10.72/4.33 new_getContents -> new_getContents 10.72/4.33 10.72/4.33 R is empty. 10.72/4.33 Q is empty. 10.72/4.33 We have to consider all minimal (P,Q,R)-chains. 10.72/4.33 ---------------------------------------- 10.72/4.33 10.72/4.33 (13) NonTerminationLoopProof (COMPLETE) 10.72/4.33 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 10.72/4.33 Found a loop by semiunifying a rule from P directly. 10.72/4.33 10.72/4.33 s = new_getContents evaluates to t =new_getContents 10.72/4.33 10.72/4.33 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 10.72/4.33 * Matcher: [ ] 10.72/4.33 * Semiunifier: [ ] 10.72/4.33 10.72/4.33 -------------------------------------------------------------------------------- 10.72/4.33 Rewriting sequence 10.72/4.33 10.72/4.33 The DP semiunifies directly so there is only one rewrite step from new_getContents to new_getContents. 10.72/4.33 10.72/4.33 10.72/4.33 10.72/4.33 10.72/4.33 ---------------------------------------- 10.72/4.33 10.72/4.33 (14) 10.72/4.33 NO 10.72/4.33 10.72/4.33 ---------------------------------------- 10.72/4.33 10.72/4.33 (15) Narrow (COMPLETE) 10.72/4.33 Haskell To QDPs 10.72/4.33 10.72/4.33 digraph dp_graph { 10.72/4.33 node [outthreshold=100, inthreshold=100];1[label="interact",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 10.72/4.33 3[label="interact ww3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 10.72/4.33 4[label="getContents >>= putStr . ww3",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 10.72/4.33 5 -> 235[label="",style="dashed", color="red", weight=0]; 10.72/4.33 5[label="primbindIO getContents (putStr . ww3)",fontsize=16,color="magenta"];5 -> 236[label="",style="dashed", color="magenta", weight=3]; 10.72/4.33 5 -> 237[label="",style="dashed", color="magenta", weight=3]; 10.72/4.33 236[label="ww3",fontsize=16,color="green",shape="box"];237[label="getContents",fontsize=16,color="black",shape="triangle"];237 -> 514[label="",style="solid", color="black", weight=3]; 10.72/4.33 235[label="primbindIO ww13 (putStr . ww14)",fontsize=16,color="burlywood",shape="triangle"];616[label="ww13/IO ww130",fontsize=10,color="white",style="solid",shape="box"];235 -> 616[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 616 -> 515[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 617[label="ww13/AProVE_IO ww130",fontsize=10,color="white",style="solid",shape="box"];235 -> 617[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 617 -> 516[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 618[label="ww13/AProVE_Exception ww130",fontsize=10,color="white",style="solid",shape="box"];235 -> 618[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 618 -> 517[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 619[label="ww13/AProVE_Error ww130",fontsize=10,color="white",style="solid",shape="box"];235 -> 619[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 619 -> 518[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 514[label="getContents4",fontsize=16,color="black",shape="box"];514 -> 519[label="",style="solid", color="black", weight=3]; 10.72/4.33 515[label="primbindIO (IO ww130) (putStr . ww14)",fontsize=16,color="black",shape="box"];515 -> 520[label="",style="solid", color="black", weight=3]; 10.72/4.33 516[label="primbindIO (AProVE_IO ww130) (putStr . ww14)",fontsize=16,color="black",shape="box"];516 -> 521[label="",style="solid", color="black", weight=3]; 10.72/4.33 517[label="primbindIO (AProVE_Exception ww130) (putStr . ww14)",fontsize=16,color="black",shape="box"];517 -> 522[label="",style="solid", color="black", weight=3]; 10.72/4.33 518[label="primbindIO (AProVE_Error ww130) (putStr . ww14)",fontsize=16,color="black",shape="box"];518 -> 523[label="",style="solid", color="black", weight=3]; 10.72/4.33 519[label="getContents3 terminator",fontsize=16,color="black",shape="box"];519 -> 524[label="",style="solid", color="black", weight=3]; 10.72/4.33 520[label="error []",fontsize=16,color="red",shape="box"];521[label="putStr . ww14",fontsize=16,color="black",shape="box"];521 -> 525[label="",style="solid", color="black", weight=3]; 10.72/4.33 522[label="AProVE_Exception ww130",fontsize=16,color="green",shape="box"];523[label="AProVE_Error ww130",fontsize=16,color="green",shape="box"];524[label="getContents3 ter12m",fontsize=16,color="burlywood",shape="box"];620[label="ter12m/False",fontsize=10,color="white",style="solid",shape="box"];524 -> 620[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 620 -> 526[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 621[label="ter12m/True",fontsize=10,color="white",style="solid",shape="box"];524 -> 621[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 621 -> 527[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 525 -> 528[label="",style="dashed", color="red", weight=0]; 10.72/4.33 525[label="putStr (ww14 ww130)",fontsize=16,color="magenta"];525 -> 529[label="",style="dashed", color="magenta", weight=3]; 10.72/4.33 526[label="getContents3 False",fontsize=16,color="black",shape="box"];526 -> 530[label="",style="solid", color="black", weight=3]; 10.72/4.33 527[label="getContents3 True",fontsize=16,color="black",shape="box"];527 -> 531[label="",style="solid", color="black", weight=3]; 10.72/4.33 529[label="ww14 ww130",fontsize=16,color="green",shape="box"];529 -> 535[label="",style="dashed", color="green", weight=3]; 10.72/4.33 528[label="putStr ww15",fontsize=16,color="burlywood",shape="triangle"];622[label="ww15/ww150 : ww151",fontsize=10,color="white",style="solid",shape="box"];528 -> 622[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 622 -> 533[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 623[label="ww15/[]",fontsize=10,color="white",style="solid",shape="box"];528 -> 623[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 623 -> 534[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 530[label="getContents2 otherwise",fontsize=16,color="black",shape="box"];530 -> 536[label="",style="solid", color="black", weight=3]; 10.72/4.33 531[label="return []",fontsize=16,color="black",shape="box"];531 -> 537[label="",style="solid", color="black", weight=3]; 10.72/4.33 535[label="ww130",fontsize=16,color="green",shape="box"];533[label="putStr (ww150 : ww151)",fontsize=16,color="black",shape="box"];533 -> 538[label="",style="solid", color="black", weight=3]; 10.72/4.33 534[label="putStr []",fontsize=16,color="black",shape="box"];534 -> 539[label="",style="solid", color="black", weight=3]; 10.72/4.33 536[label="getContents2 True",fontsize=16,color="black",shape="box"];536 -> 540[label="",style="solid", color="black", weight=3]; 10.72/4.33 537[label="primretIO []",fontsize=16,color="black",shape="box"];537 -> 541[label="",style="solid", color="black", weight=3]; 10.72/4.33 538 -> 542[label="",style="dashed", color="red", weight=0]; 10.72/4.33 538[label="putChar ww150 >> putStr ww151",fontsize=16,color="magenta"];538 -> 543[label="",style="dashed", color="magenta", weight=3]; 10.72/4.33 539[label="output",fontsize=16,color="black",shape="triangle"];539 -> 544[label="",style="solid", color="black", weight=3]; 10.72/4.33 540[label="getChar >>= getContents1",fontsize=16,color="black",shape="box"];540 -> 545[label="",style="solid", color="black", weight=3]; 10.72/4.33 541[label="AProVE_IO []",fontsize=16,color="green",shape="box"];543 -> 528[label="",style="dashed", color="red", weight=0]; 10.72/4.33 543[label="putStr ww151",fontsize=16,color="magenta"];543 -> 546[label="",style="dashed", color="magenta", weight=3]; 10.72/4.33 542[label="putChar ww150 >> ww16",fontsize=16,color="black",shape="triangle"];542 -> 547[label="",style="solid", color="black", weight=3]; 10.72/4.33 544[label="randomSelect (aIOE IOError_FullError : aIOE IOError_PermDenied : AProVE_IO () : [])",fontsize=16,color="black",shape="box"];544 -> 548[label="",style="solid", color="black", weight=3]; 10.72/4.33 545[label="primbindIO getChar getContents1",fontsize=16,color="black",shape="box"];545 -> 549[label="",style="solid", color="black", weight=3]; 10.72/4.33 546[label="ww151",fontsize=16,color="green",shape="box"];547[label="putChar ww150 >>= gtGt0 ww16",fontsize=16,color="black",shape="box"];547 -> 550[label="",style="solid", color="black", weight=3]; 10.72/4.33 548[label="randomSelect2 (aIOE IOError_FullError : aIOE IOError_PermDenied : AProVE_IO () : [])",fontsize=16,color="black",shape="box"];548 -> 551[label="",style="solid", color="black", weight=3]; 10.72/4.33 549[label="primbindIO getChar2 getContents1",fontsize=16,color="black",shape="box"];549 -> 552[label="",style="solid", color="black", weight=3]; 10.72/4.33 550[label="primbindIO (putChar ww150) (gtGt0 ww16)",fontsize=16,color="black",shape="box"];550 -> 553[label="",style="solid", color="black", weight=3]; 10.72/4.33 551[label="randomSelect1 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) terminator",fontsize=16,color="black",shape="box"];551 -> 554[label="",style="solid", color="black", weight=3]; 10.72/4.33 552[label="primbindIO (getChar1 terminator) getContents1",fontsize=16,color="black",shape="box"];552 -> 555[label="",style="solid", color="black", weight=3]; 10.72/4.33 553 -> 556[label="",style="dashed", color="red", weight=0]; 10.72/4.33 553[label="primbindIO (seq ww150 output) (gtGt0 ww16)",fontsize=16,color="magenta"];553 -> 557[label="",style="dashed", color="magenta", weight=3]; 10.72/4.33 554[label="randomSelect1 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) ter13m",fontsize=16,color="burlywood",shape="box"];624[label="ter13m/False",fontsize=10,color="white",style="solid",shape="box"];554 -> 624[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 624 -> 558[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 625[label="ter13m/True",fontsize=10,color="white",style="solid",shape="box"];554 -> 625[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 625 -> 559[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 555[label="primbindIO (getChar1 ter14m) getContents1",fontsize=16,color="burlywood",shape="box"];626[label="ter14m/False",fontsize=10,color="white",style="solid",shape="box"];555 -> 626[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 626 -> 560[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 627[label="ter14m/True",fontsize=10,color="white",style="solid",shape="box"];555 -> 627[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 627 -> 561[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 557 -> 539[label="",style="dashed", color="red", weight=0]; 10.72/4.33 557[label="output",fontsize=16,color="magenta"];556[label="primbindIO (seq ww150 ww17) (gtGt0 ww16)",fontsize=16,color="black",shape="triangle"];556 -> 562[label="",style="solid", color="black", weight=3]; 10.72/4.33 558[label="randomSelect1 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) False",fontsize=16,color="black",shape="box"];558 -> 563[label="",style="solid", color="black", weight=3]; 10.72/4.33 559[label="randomSelect1 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) True",fontsize=16,color="black",shape="box"];559 -> 564[label="",style="solid", color="black", weight=3]; 10.72/4.33 560[label="primbindIO (getChar1 False) getContents1",fontsize=16,color="black",shape="box"];560 -> 565[label="",style="solid", color="black", weight=3]; 10.72/4.33 561[label="primbindIO (getChar1 True) getContents1",fontsize=16,color="black",shape="box"];561 -> 566[label="",style="solid", color="black", weight=3]; 10.72/4.33 562[label="primbindIO (enforceWHNF (WHNF ww150) ww17) (gtGt0 ww16)",fontsize=16,color="black",shape="box"];562 -> 567[label="",style="solid", color="black", weight=3]; 10.72/4.33 563[label="randomSelect0 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) otherwise",fontsize=16,color="black",shape="box"];563 -> 568[label="",style="solid", color="black", weight=3]; 10.72/4.33 564[label="randomSelect (aIOE IOError_PermDenied : AProVE_IO () : [])",fontsize=16,color="black",shape="box"];564 -> 569[label="",style="solid", color="black", weight=3]; 10.72/4.33 565[label="primbindIO (getChar0 otherwise) getContents1",fontsize=16,color="black",shape="box"];565 -> 570[label="",style="solid", color="black", weight=3]; 10.72/4.33 566[label="primbindIO (return terminator) getContents1",fontsize=16,color="black",shape="box"];566 -> 571[label="",style="solid", color="black", weight=3]; 10.72/4.33 567[label="primbindIO ww17 (gtGt0 ww16)",fontsize=16,color="burlywood",shape="box"];628[label="ww17/IO ww170",fontsize=10,color="white",style="solid",shape="box"];567 -> 628[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 628 -> 572[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 629[label="ww17/AProVE_IO ww170",fontsize=10,color="white",style="solid",shape="box"];567 -> 629[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 629 -> 573[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 630[label="ww17/AProVE_Exception ww170",fontsize=10,color="white",style="solid",shape="box"];567 -> 630[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 630 -> 574[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 631[label="ww17/AProVE_Error ww170",fontsize=10,color="white",style="solid",shape="box"];567 -> 631[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 631 -> 575[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 568[label="randomSelect0 (aIOE IOError_FullError) (aIOE IOError_PermDenied : AProVE_IO () : []) True",fontsize=16,color="black",shape="box"];568 -> 576[label="",style="solid", color="black", weight=3]; 10.72/4.33 569[label="randomSelect2 (aIOE IOError_PermDenied : AProVE_IO () : [])",fontsize=16,color="black",shape="box"];569 -> 577[label="",style="solid", color="black", weight=3]; 10.72/4.33 570[label="primbindIO (getChar0 True) getContents1",fontsize=16,color="black",shape="box"];570 -> 578[label="",style="solid", color="black", weight=3]; 10.72/4.33 571[label="primbindIO (primretIO terminator) getContents1",fontsize=16,color="black",shape="box"];571 -> 579[label="",style="solid", color="black", weight=3]; 10.72/4.33 572[label="primbindIO (IO ww170) (gtGt0 ww16)",fontsize=16,color="black",shape="box"];572 -> 580[label="",style="solid", color="black", weight=3]; 10.72/4.33 573[label="primbindIO (AProVE_IO ww170) (gtGt0 ww16)",fontsize=16,color="black",shape="box"];573 -> 581[label="",style="solid", color="black", weight=3]; 10.72/4.33 574[label="primbindIO (AProVE_Exception ww170) (gtGt0 ww16)",fontsize=16,color="black",shape="box"];574 -> 582[label="",style="solid", color="black", weight=3]; 10.72/4.33 575[label="primbindIO (AProVE_Error ww170) (gtGt0 ww16)",fontsize=16,color="black",shape="box"];575 -> 583[label="",style="solid", color="black", weight=3]; 10.72/4.33 576[label="aIOE IOError_FullError",fontsize=16,color="black",shape="box"];576 -> 584[label="",style="solid", color="black", weight=3]; 10.72/4.33 577[label="randomSelect1 (aIOE IOError_PermDenied) (AProVE_IO () : []) terminator",fontsize=16,color="black",shape="box"];577 -> 585[label="",style="solid", color="black", weight=3]; 10.72/4.33 578[label="primbindIO (aIOE IOError_EOF) getContents1",fontsize=16,color="black",shape="box"];578 -> 586[label="",style="solid", color="black", weight=3]; 10.72/4.33 579[label="primbindIO (AProVE_IO terminator) getContents1",fontsize=16,color="black",shape="box"];579 -> 587[label="",style="solid", color="black", weight=3]; 10.72/4.33 580[label="error []",fontsize=16,color="red",shape="box"];581[label="gtGt0 ww16 ww170",fontsize=16,color="black",shape="box"];581 -> 588[label="",style="solid", color="black", weight=3]; 10.72/4.33 582[label="AProVE_Exception ww170",fontsize=16,color="green",shape="box"];583[label="AProVE_Error ww170",fontsize=16,color="green",shape="box"];584[label="AProVE_Exception (AET_IOError (IOError IOError_FullError [] [] Nothing))",fontsize=16,color="green",shape="box"];585[label="randomSelect1 (aIOE IOError_PermDenied) (AProVE_IO () : []) ter15m",fontsize=16,color="burlywood",shape="box"];632[label="ter15m/False",fontsize=10,color="white",style="solid",shape="box"];585 -> 632[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 632 -> 589[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 633[label="ter15m/True",fontsize=10,color="white",style="solid",shape="box"];585 -> 633[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 633 -> 590[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 586[label="primbindIO (AProVE_Exception (AET_IOError (IOError IOError_EOF [] [] Nothing))) getContents1",fontsize=16,color="black",shape="box"];586 -> 591[label="",style="solid", color="black", weight=3]; 10.72/4.33 587[label="getContents1 terminator",fontsize=16,color="black",shape="box"];587 -> 592[label="",style="solid", color="black", weight=3]; 10.72/4.33 588[label="ww16",fontsize=16,color="green",shape="box"];589[label="randomSelect1 (aIOE IOError_PermDenied) (AProVE_IO () : []) False",fontsize=16,color="black",shape="box"];589 -> 593[label="",style="solid", color="black", weight=3]; 10.72/4.33 590[label="randomSelect1 (aIOE IOError_PermDenied) (AProVE_IO () : []) True",fontsize=16,color="black",shape="box"];590 -> 594[label="",style="solid", color="black", weight=3]; 10.72/4.33 591[label="AProVE_Exception (AET_IOError (IOError IOError_EOF [] [] Nothing))",fontsize=16,color="green",shape="box"];592 -> 595[label="",style="dashed", color="red", weight=0]; 10.72/4.33 592[label="getContents >>= getContents0 terminator",fontsize=16,color="magenta"];592 -> 596[label="",style="dashed", color="magenta", weight=3]; 10.72/4.33 593[label="randomSelect0 (aIOE IOError_PermDenied) (AProVE_IO () : []) otherwise",fontsize=16,color="black",shape="box"];593 -> 597[label="",style="solid", color="black", weight=3]; 10.72/4.33 594[label="randomSelect (AProVE_IO () : [])",fontsize=16,color="black",shape="box"];594 -> 598[label="",style="solid", color="black", weight=3]; 10.72/4.33 596 -> 237[label="",style="dashed", color="red", weight=0]; 10.72/4.33 596[label="getContents",fontsize=16,color="magenta"];595[label="ww18 >>= getContents0 terminator",fontsize=16,color="black",shape="triangle"];595 -> 599[label="",style="solid", color="black", weight=3]; 10.72/4.33 597[label="randomSelect0 (aIOE IOError_PermDenied) (AProVE_IO () : []) True",fontsize=16,color="black",shape="box"];597 -> 600[label="",style="solid", color="black", weight=3]; 10.72/4.33 598[label="randomSelect3 (AProVE_IO () : [])",fontsize=16,color="black",shape="box"];598 -> 601[label="",style="solid", color="black", weight=3]; 10.72/4.33 599[label="primbindIO ww18 (getContents0 terminator)",fontsize=16,color="burlywood",shape="box"];634[label="ww18/IO ww180",fontsize=10,color="white",style="solid",shape="box"];599 -> 634[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 634 -> 602[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 635[label="ww18/AProVE_IO ww180",fontsize=10,color="white",style="solid",shape="box"];599 -> 635[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 635 -> 603[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 636[label="ww18/AProVE_Exception ww180",fontsize=10,color="white",style="solid",shape="box"];599 -> 636[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 636 -> 604[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 637[label="ww18/AProVE_Error ww180",fontsize=10,color="white",style="solid",shape="box"];599 -> 637[label="",style="solid", color="burlywood", weight=9]; 10.72/4.33 637 -> 605[label="",style="solid", color="burlywood", weight=3]; 10.72/4.33 600[label="aIOE IOError_PermDenied",fontsize=16,color="black",shape="box"];600 -> 606[label="",style="solid", color="black", weight=3]; 10.72/4.33 601[label="AProVE_IO ()",fontsize=16,color="green",shape="box"];602[label="primbindIO (IO ww180) (getContents0 terminator)",fontsize=16,color="black",shape="box"];602 -> 607[label="",style="solid", color="black", weight=3]; 10.72/4.33 603[label="primbindIO (AProVE_IO ww180) (getContents0 terminator)",fontsize=16,color="black",shape="box"];603 -> 608[label="",style="solid", color="black", weight=3]; 10.72/4.33 604[label="primbindIO (AProVE_Exception ww180) (getContents0 terminator)",fontsize=16,color="black",shape="box"];604 -> 609[label="",style="solid", color="black", weight=3]; 10.72/4.33 605[label="primbindIO (AProVE_Error ww180) (getContents0 terminator)",fontsize=16,color="black",shape="box"];605 -> 610[label="",style="solid", color="black", weight=3]; 10.72/4.33 606[label="AProVE_Exception (AET_IOError (IOError IOError_PermDenied [] [] Nothing))",fontsize=16,color="green",shape="box"];607[label="error []",fontsize=16,color="red",shape="box"];608[label="getContents0 terminator ww180",fontsize=16,color="black",shape="box"];608 -> 611[label="",style="solid", color="black", weight=3]; 10.72/4.33 609[label="AProVE_Exception ww180",fontsize=16,color="green",shape="box"];610[label="AProVE_Error ww180",fontsize=16,color="green",shape="box"];611[label="return (terminator : ww180)",fontsize=16,color="black",shape="box"];611 -> 612[label="",style="solid", color="black", weight=3]; 10.72/4.33 612[label="primretIO (terminator : ww180)",fontsize=16,color="black",shape="box"];612 -> 613[label="",style="solid", color="black", weight=3]; 10.72/4.33 613[label="AProVE_IO (terminator : ww180)",fontsize=16,color="green",shape="box"];613 -> 614[label="",style="dashed", color="green", weight=3]; 10.72/4.33 614[label="terminator",fontsize=16,color="black",shape="box"];614 -> 615[label="",style="solid", color="black", weight=3]; 10.72/4.33 615[label="ter16m",fontsize=16,color="green",shape="box"];} 10.72/4.33 10.72/4.33 ---------------------------------------- 10.72/4.33 10.72/4.33 (16) 10.72/4.33 TRUE 10.99/4.36 EOF