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