/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.hs /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES 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 be proven: (0) HASKELL (1) BR [EQUIVALENT, 0 ms] (2) HASKELL (3) COR [EQUIVALENT, 0 ms] (4) HASKELL (5) Narrow [SOUND, 0 ms] (6) AND (7) QDP (8) TransformationProof [EQUIVALENT, 0 ms] (9) QDP (10) UsableRulesProof [EQUIVALENT, 0 ms] (11) QDP (12) QReductionProof [EQUIVALENT, 0 ms] (13) QDP (14) QDPSizeChangeProof [EQUIVALENT, 0 ms] (15) YES (16) QDP (17) TransformationProof [EQUIVALENT, 0 ms] (18) QDP (19) DependencyGraphProof [EQUIVALENT, 0 ms] (20) QDP (21) UsableRulesProof [EQUIVALENT, 0 ms] (22) QDP (23) QReductionProof [EQUIVALENT, 0 ms] (24) QDP (25) TransformationProof [EQUIVALENT, 0 ms] (26) QDP (27) DependencyGraphProof [EQUIVALENT, 0 ms] (28) QDP (29) UsableRulesProof [EQUIVALENT, 0 ms] (30) QDP (31) QReductionProof [EQUIVALENT, 0 ms] (32) QDP (33) QDPSizeChangeProof [EQUIVALENT, 0 ms] (34) YES (35) QDP (36) TransformationProof [EQUIVALENT, 0 ms] (37) QDP (38) UsableRulesProof [EQUIVALENT, 0 ms] (39) QDP (40) QReductionProof [EQUIVALENT, 0 ms] (41) QDP (42) QDPSizeChangeProof [EQUIVALENT, 0 ms] (43) YES ---------------------------------------- (0) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; isPrefixOf :: Eq a => [a] -> [a] -> Bool; isPrefixOf [] _ = True; isPrefixOf _ [] = False; isPrefixOf (x : xs) (y : ys) = x == y && isPrefixOf xs ys; isSuffixOf :: Eq a => [a] -> [a] -> Bool; isSuffixOf x y = reverse x `isPrefixOf` reverse y; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (1) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (2) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; isPrefixOf :: Eq a => [a] -> [a] -> Bool; isPrefixOf [] vy = True; isPrefixOf vz [] = False; isPrefixOf (x : xs) (y : ys) = x == y && isPrefixOf xs ys; isSuffixOf :: Eq a => [a] -> [a] -> Bool; isSuffixOf x y = reverse x `isPrefixOf` reverse y; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (3) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " ---------------------------------------- (4) Obligation: mainModule Main module Maybe where { import qualified List; import qualified Main; import qualified Prelude; } module List where { import qualified Main; import qualified Maybe; import qualified Prelude; isPrefixOf :: Eq a => [a] -> [a] -> Bool; isPrefixOf [] vy = True; isPrefixOf vz [] = False; isPrefixOf (x : xs) (y : ys) = x == y && isPrefixOf xs ys; isSuffixOf :: Eq a => [a] -> [a] -> Bool; isSuffixOf x y = reverse x `isPrefixOf` reverse y; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (5) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="List.isSuffixOf",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="List.isSuffixOf wu3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="List.isSuffixOf wu3 wu4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="List.isPrefixOf (reverse wu3) (reverse wu4)",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 6[label="List.isPrefixOf (foldl (flip (:)) [] wu3) (reverse wu4)",fontsize=16,color="burlywood",shape="box"];510[label="wu3/wu30 : wu31",fontsize=10,color="white",style="solid",shape="box"];6 -> 510[label="",style="solid", color="burlywood", weight=9]; 510 -> 7[label="",style="solid", color="burlywood", weight=3]; 511[label="wu3/[]",fontsize=10,color="white",style="solid",shape="box"];6 -> 511[label="",style="solid", color="burlywood", weight=9]; 511 -> 8[label="",style="solid", color="burlywood", weight=3]; 7[label="List.isPrefixOf (foldl (flip (:)) [] (wu30 : wu31)) (reverse wu4)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="List.isPrefixOf (foldl (flip (:)) [] []) (reverse wu4)",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 9 -> 335[label="",style="dashed", color="red", weight=0]; 9[label="List.isPrefixOf (foldl (flip (:)) (flip (:) [] wu30) wu31) (reverse wu4)",fontsize=16,color="magenta"];9 -> 336[label="",style="dashed", color="magenta", weight=3]; 9 -> 337[label="",style="dashed", color="magenta", weight=3]; 9 -> 338[label="",style="dashed", color="magenta", weight=3]; 9 -> 339[label="",style="dashed", color="magenta", weight=3]; 10[label="List.isPrefixOf [] (reverse wu4)",fontsize=16,color="black",shape="box"];10 -> 13[label="",style="solid", color="black", weight=3]; 336[label="wu4",fontsize=16,color="green",shape="box"];337[label="[]",fontsize=16,color="green",shape="box"];338[label="wu31",fontsize=16,color="green",shape="box"];339[label="wu30",fontsize=16,color="green",shape="box"];335[label="List.isPrefixOf (foldl (flip (:)) (flip (:) wu16 wu17) wu18) (reverse wu19)",fontsize=16,color="burlywood",shape="triangle"];512[label="wu18/wu180 : wu181",fontsize=10,color="white",style="solid",shape="box"];335 -> 512[label="",style="solid", color="burlywood", weight=9]; 512 -> 372[label="",style="solid", color="burlywood", weight=3]; 513[label="wu18/[]",fontsize=10,color="white",style="solid",shape="box"];335 -> 513[label="",style="solid", color="burlywood", weight=9]; 513 -> 373[label="",style="solid", color="burlywood", weight=3]; 13[label="True",fontsize=16,color="green",shape="box"];372[label="List.isPrefixOf (foldl (flip (:)) (flip (:) wu16 wu17) (wu180 : wu181)) (reverse wu19)",fontsize=16,color="black",shape="box"];372 -> 374[label="",style="solid", color="black", weight=3]; 373[label="List.isPrefixOf (foldl (flip (:)) (flip (:) wu16 wu17) []) (reverse wu19)",fontsize=16,color="black",shape="box"];373 -> 375[label="",style="solid", color="black", weight=3]; 374 -> 335[label="",style="dashed", color="red", weight=0]; 374[label="List.isPrefixOf (foldl (flip (:)) (flip (:) (flip (:) wu16 wu17) wu180) wu181) (reverse wu19)",fontsize=16,color="magenta"];374 -> 376[label="",style="dashed", color="magenta", weight=3]; 374 -> 377[label="",style="dashed", color="magenta", weight=3]; 374 -> 378[label="",style="dashed", color="magenta", weight=3]; 375[label="List.isPrefixOf (flip (:) wu16 wu17) (reverse wu19)",fontsize=16,color="black",shape="box"];375 -> 379[label="",style="solid", color="black", weight=3]; 376[label="flip (:) wu16 wu17",fontsize=16,color="black",shape="triangle"];376 -> 380[label="",style="solid", color="black", weight=3]; 377[label="wu181",fontsize=16,color="green",shape="box"];378[label="wu180",fontsize=16,color="green",shape="box"];379[label="List.isPrefixOf ((:) wu17 wu16) (reverse wu19)",fontsize=16,color="black",shape="box"];379 -> 381[label="",style="solid", color="black", weight=3]; 380[label="(:) wu17 wu16",fontsize=16,color="green",shape="box"];381 -> 386[label="",style="dashed", color="red", weight=0]; 381[label="List.isPrefixOf ((:) wu17 wu16) (foldl (flip (:)) [] wu19)",fontsize=16,color="magenta"];381 -> 387[label="",style="dashed", color="magenta", weight=3]; 381 -> 388[label="",style="dashed", color="magenta", weight=3]; 387[label="[]",fontsize=16,color="green",shape="box"];388[label="wu19",fontsize=16,color="green",shape="box"];386[label="List.isPrefixOf ((:) wu17 wu16) (foldl (flip (:)) wu20 wu191)",fontsize=16,color="burlywood",shape="triangle"];514[label="wu191/wu1910 : wu1911",fontsize=10,color="white",style="solid",shape="box"];386 -> 514[label="",style="solid", color="burlywood", weight=9]; 514 -> 390[label="",style="solid", color="burlywood", weight=3]; 515[label="wu191/[]",fontsize=10,color="white",style="solid",shape="box"];386 -> 515[label="",style="solid", color="burlywood", weight=9]; 515 -> 391[label="",style="solid", color="burlywood", weight=3]; 390[label="List.isPrefixOf ((:) wu17 wu16) (foldl (flip (:)) wu20 (wu1910 : wu1911))",fontsize=16,color="black",shape="box"];390 -> 392[label="",style="solid", color="black", weight=3]; 391[label="List.isPrefixOf ((:) wu17 wu16) (foldl (flip (:)) wu20 [])",fontsize=16,color="black",shape="box"];391 -> 393[label="",style="solid", color="black", weight=3]; 392 -> 386[label="",style="dashed", color="red", weight=0]; 392[label="List.isPrefixOf ((:) wu17 wu16) (foldl (flip (:)) (flip (:) wu20 wu1910) wu1911)",fontsize=16,color="magenta"];392 -> 394[label="",style="dashed", color="magenta", weight=3]; 392 -> 395[label="",style="dashed", color="magenta", weight=3]; 393[label="List.isPrefixOf ((:) wu17 wu16) wu20",fontsize=16,color="burlywood",shape="box"];516[label="wu20/wu200 : wu201",fontsize=10,color="white",style="solid",shape="box"];393 -> 516[label="",style="solid", color="burlywood", weight=9]; 516 -> 396[label="",style="solid", color="burlywood", weight=3]; 517[label="wu20/[]",fontsize=10,color="white",style="solid",shape="box"];393 -> 517[label="",style="solid", color="burlywood", weight=9]; 517 -> 397[label="",style="solid", color="burlywood", weight=3]; 394 -> 376[label="",style="dashed", color="red", weight=0]; 394[label="flip (:) wu20 wu1910",fontsize=16,color="magenta"];394 -> 398[label="",style="dashed", color="magenta", weight=3]; 394 -> 399[label="",style="dashed", color="magenta", weight=3]; 395[label="wu1911",fontsize=16,color="green",shape="box"];396[label="List.isPrefixOf ((:) wu17 wu16) (wu200 : wu201)",fontsize=16,color="black",shape="box"];396 -> 400[label="",style="solid", color="black", weight=3]; 397[label="List.isPrefixOf ((:) wu17 wu16) []",fontsize=16,color="black",shape="box"];397 -> 401[label="",style="solid", color="black", weight=3]; 398[label="wu20",fontsize=16,color="green",shape="box"];399[label="wu1910",fontsize=16,color="green",shape="box"];400 -> 402[label="",style="dashed", color="red", weight=0]; 400[label="wu17 == wu200 && List.isPrefixOf wu16 wu201",fontsize=16,color="magenta"];400 -> 403[label="",style="dashed", color="magenta", weight=3]; 400 -> 404[label="",style="dashed", color="magenta", weight=3]; 400 -> 405[label="",style="dashed", color="magenta", weight=3]; 401[label="False",fontsize=16,color="green",shape="box"];403[label="wu17 == wu200",fontsize=16,color="blue",shape="box"];518[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 518[label="",style="solid", color="blue", weight=9]; 518 -> 406[label="",style="solid", color="blue", weight=3]; 519[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 519[label="",style="solid", color="blue", weight=9]; 519 -> 407[label="",style="solid", color="blue", weight=3]; 520[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 520[label="",style="solid", color="blue", weight=9]; 520 -> 408[label="",style="solid", color="blue", weight=3]; 521[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 521[label="",style="solid", color="blue", weight=9]; 521 -> 409[label="",style="solid", color="blue", weight=3]; 522[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 522[label="",style="solid", color="blue", weight=9]; 522 -> 410[label="",style="solid", color="blue", weight=3]; 523[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 523[label="",style="solid", color="blue", weight=9]; 523 -> 411[label="",style="solid", color="blue", weight=3]; 524[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 524[label="",style="solid", color="blue", weight=9]; 524 -> 412[label="",style="solid", color="blue", weight=3]; 525[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 525[label="",style="solid", color="blue", weight=9]; 525 -> 413[label="",style="solid", color="blue", weight=3]; 526[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 526[label="",style="solid", color="blue", weight=9]; 526 -> 414[label="",style="solid", color="blue", weight=3]; 527[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 527[label="",style="solid", color="blue", weight=9]; 527 -> 415[label="",style="solid", color="blue", weight=3]; 528[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 528[label="",style="solid", color="blue", weight=9]; 528 -> 416[label="",style="solid", color="blue", weight=3]; 529[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 529[label="",style="solid", color="blue", weight=9]; 529 -> 417[label="",style="solid", color="blue", weight=3]; 530[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 530[label="",style="solid", color="blue", weight=9]; 530 -> 418[label="",style="solid", color="blue", weight=3]; 531[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];403 -> 531[label="",style="solid", color="blue", weight=9]; 531 -> 419[label="",style="solid", color="blue", weight=3]; 404[label="wu16",fontsize=16,color="green",shape="box"];405[label="wu201",fontsize=16,color="green",shape="box"];402[label="wu25 && List.isPrefixOf wu26 wu27",fontsize=16,color="burlywood",shape="triangle"];532[label="wu25/False",fontsize=10,color="white",style="solid",shape="box"];402 -> 532[label="",style="solid", color="burlywood", weight=9]; 532 -> 420[label="",style="solid", color="burlywood", weight=3]; 533[label="wu25/True",fontsize=10,color="white",style="solid",shape="box"];402 -> 533[label="",style="solid", color="burlywood", weight=9]; 533 -> 421[label="",style="solid", color="burlywood", weight=3]; 406[label="wu17 == wu200",fontsize=16,color="black",shape="triangle"];406 -> 422[label="",style="solid", color="black", weight=3]; 407[label="wu17 == wu200",fontsize=16,color="black",shape="triangle"];407 -> 423[label="",style="solid", color="black", weight=3]; 408[label="wu17 == wu200",fontsize=16,color="burlywood",shape="triangle"];534[label="wu17/LT",fontsize=10,color="white",style="solid",shape="box"];408 -> 534[label="",style="solid", color="burlywood", weight=9]; 534 -> 424[label="",style="solid", color="burlywood", weight=3]; 535[label="wu17/EQ",fontsize=10,color="white",style="solid",shape="box"];408 -> 535[label="",style="solid", color="burlywood", weight=9]; 535 -> 425[label="",style="solid", color="burlywood", weight=3]; 536[label="wu17/GT",fontsize=10,color="white",style="solid",shape="box"];408 -> 536[label="",style="solid", color="burlywood", weight=9]; 536 -> 426[label="",style="solid", color="burlywood", weight=3]; 409[label="wu17 == wu200",fontsize=16,color="black",shape="triangle"];409 -> 427[label="",style="solid", color="black", weight=3]; 410[label="wu17 == wu200",fontsize=16,color="black",shape="triangle"];410 -> 428[label="",style="solid", color="black", weight=3]; 411[label="wu17 == wu200",fontsize=16,color="black",shape="triangle"];411 -> 429[label="",style="solid", color="black", weight=3]; 412[label="wu17 == wu200",fontsize=16,color="black",shape="triangle"];412 -> 430[label="",style="solid", color="black", weight=3]; 413[label="wu17 == wu200",fontsize=16,color="black",shape="triangle"];413 -> 431[label="",style="solid", color="black", weight=3]; 414[label="wu17 == wu200",fontsize=16,color="black",shape="triangle"];414 -> 432[label="",style="solid", color="black", weight=3]; 415[label="wu17 == wu200",fontsize=16,color="black",shape="triangle"];415 -> 433[label="",style="solid", color="black", weight=3]; 416[label="wu17 == wu200",fontsize=16,color="black",shape="triangle"];416 -> 434[label="",style="solid", color="black", weight=3]; 417[label="wu17 == wu200",fontsize=16,color="black",shape="triangle"];417 -> 435[label="",style="solid", color="black", weight=3]; 418[label="wu17 == wu200",fontsize=16,color="black",shape="triangle"];418 -> 436[label="",style="solid", color="black", weight=3]; 419[label="wu17 == wu200",fontsize=16,color="black",shape="triangle"];419 -> 437[label="",style="solid", color="black", weight=3]; 420[label="False && List.isPrefixOf wu26 wu27",fontsize=16,color="black",shape="box"];420 -> 438[label="",style="solid", color="black", weight=3]; 421[label="True && List.isPrefixOf wu26 wu27",fontsize=16,color="black",shape="box"];421 -> 439[label="",style="solid", color="black", weight=3]; 422[label="error []",fontsize=16,color="red",shape="box"];423[label="error []",fontsize=16,color="red",shape="box"];424[label="LT == wu200",fontsize=16,color="burlywood",shape="box"];537[label="wu200/LT",fontsize=10,color="white",style="solid",shape="box"];424 -> 537[label="",style="solid", color="burlywood", weight=9]; 537 -> 440[label="",style="solid", color="burlywood", weight=3]; 538[label="wu200/EQ",fontsize=10,color="white",style="solid",shape="box"];424 -> 538[label="",style="solid", color="burlywood", weight=9]; 538 -> 441[label="",style="solid", color="burlywood", weight=3]; 539[label="wu200/GT",fontsize=10,color="white",style="solid",shape="box"];424 -> 539[label="",style="solid", color="burlywood", weight=9]; 539 -> 442[label="",style="solid", color="burlywood", weight=3]; 425[label="EQ == wu200",fontsize=16,color="burlywood",shape="box"];540[label="wu200/LT",fontsize=10,color="white",style="solid",shape="box"];425 -> 540[label="",style="solid", color="burlywood", weight=9]; 540 -> 443[label="",style="solid", color="burlywood", weight=3]; 541[label="wu200/EQ",fontsize=10,color="white",style="solid",shape="box"];425 -> 541[label="",style="solid", color="burlywood", weight=9]; 541 -> 444[label="",style="solid", color="burlywood", weight=3]; 542[label="wu200/GT",fontsize=10,color="white",style="solid",shape="box"];425 -> 542[label="",style="solid", color="burlywood", weight=9]; 542 -> 445[label="",style="solid", color="burlywood", weight=3]; 426[label="GT == wu200",fontsize=16,color="burlywood",shape="box"];543[label="wu200/LT",fontsize=10,color="white",style="solid",shape="box"];426 -> 543[label="",style="solid", color="burlywood", weight=9]; 543 -> 446[label="",style="solid", color="burlywood", weight=3]; 544[label="wu200/EQ",fontsize=10,color="white",style="solid",shape="box"];426 -> 544[label="",style="solid", color="burlywood", weight=9]; 544 -> 447[label="",style="solid", color="burlywood", weight=3]; 545[label="wu200/GT",fontsize=10,color="white",style="solid",shape="box"];426 -> 545[label="",style="solid", color="burlywood", weight=9]; 545 -> 448[label="",style="solid", color="burlywood", weight=3]; 427[label="error []",fontsize=16,color="red",shape="box"];428[label="error []",fontsize=16,color="red",shape="box"];429[label="error []",fontsize=16,color="red",shape="box"];430[label="error []",fontsize=16,color="red",shape="box"];431[label="error []",fontsize=16,color="red",shape="box"];432[label="error []",fontsize=16,color="red",shape="box"];433[label="error []",fontsize=16,color="red",shape="box"];434[label="error []",fontsize=16,color="red",shape="box"];435[label="error []",fontsize=16,color="red",shape="box"];436[label="error []",fontsize=16,color="red",shape="box"];437[label="error []",fontsize=16,color="red",shape="box"];438[label="False",fontsize=16,color="green",shape="box"];439[label="List.isPrefixOf wu26 wu27",fontsize=16,color="burlywood",shape="box"];546[label="wu26/wu260 : wu261",fontsize=10,color="white",style="solid",shape="box"];439 -> 546[label="",style="solid", color="burlywood", weight=9]; 546 -> 449[label="",style="solid", color="burlywood", weight=3]; 547[label="wu26/[]",fontsize=10,color="white",style="solid",shape="box"];439 -> 547[label="",style="solid", color="burlywood", weight=9]; 547 -> 450[label="",style="solid", color="burlywood", weight=3]; 440[label="LT == LT",fontsize=16,color="black",shape="box"];440 -> 451[label="",style="solid", color="black", weight=3]; 441[label="LT == EQ",fontsize=16,color="black",shape="box"];441 -> 452[label="",style="solid", color="black", weight=3]; 442[label="LT == GT",fontsize=16,color="black",shape="box"];442 -> 453[label="",style="solid", color="black", weight=3]; 443[label="EQ == LT",fontsize=16,color="black",shape="box"];443 -> 454[label="",style="solid", color="black", weight=3]; 444[label="EQ == EQ",fontsize=16,color="black",shape="box"];444 -> 455[label="",style="solid", color="black", weight=3]; 445[label="EQ == GT",fontsize=16,color="black",shape="box"];445 -> 456[label="",style="solid", color="black", weight=3]; 446[label="GT == LT",fontsize=16,color="black",shape="box"];446 -> 457[label="",style="solid", color="black", weight=3]; 447[label="GT == EQ",fontsize=16,color="black",shape="box"];447 -> 458[label="",style="solid", color="black", weight=3]; 448[label="GT == GT",fontsize=16,color="black",shape="box"];448 -> 459[label="",style="solid", color="black", weight=3]; 449[label="List.isPrefixOf (wu260 : wu261) wu27",fontsize=16,color="burlywood",shape="box"];548[label="wu27/wu270 : wu271",fontsize=10,color="white",style="solid",shape="box"];449 -> 548[label="",style="solid", color="burlywood", weight=9]; 548 -> 460[label="",style="solid", color="burlywood", weight=3]; 549[label="wu27/[]",fontsize=10,color="white",style="solid",shape="box"];449 -> 549[label="",style="solid", color="burlywood", weight=9]; 549 -> 461[label="",style="solid", color="burlywood", weight=3]; 450[label="List.isPrefixOf [] wu27",fontsize=16,color="black",shape="box"];450 -> 462[label="",style="solid", color="black", weight=3]; 451[label="True",fontsize=16,color="green",shape="box"];452[label="False",fontsize=16,color="green",shape="box"];453[label="False",fontsize=16,color="green",shape="box"];454[label="False",fontsize=16,color="green",shape="box"];455[label="True",fontsize=16,color="green",shape="box"];456[label="False",fontsize=16,color="green",shape="box"];457[label="False",fontsize=16,color="green",shape="box"];458[label="False",fontsize=16,color="green",shape="box"];459[label="True",fontsize=16,color="green",shape="box"];460[label="List.isPrefixOf (wu260 : wu261) (wu270 : wu271)",fontsize=16,color="black",shape="box"];460 -> 463[label="",style="solid", color="black", weight=3]; 461[label="List.isPrefixOf (wu260 : wu261) []",fontsize=16,color="black",shape="box"];461 -> 464[label="",style="solid", color="black", weight=3]; 462[label="True",fontsize=16,color="green",shape="box"];463 -> 402[label="",style="dashed", color="red", weight=0]; 463[label="wu260 == wu270 && List.isPrefixOf wu261 wu271",fontsize=16,color="magenta"];463 -> 465[label="",style="dashed", color="magenta", weight=3]; 463 -> 466[label="",style="dashed", color="magenta", weight=3]; 463 -> 467[label="",style="dashed", color="magenta", weight=3]; 464[label="False",fontsize=16,color="green",shape="box"];465[label="wu260 == wu270",fontsize=16,color="blue",shape="box"];550[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 550[label="",style="solid", color="blue", weight=9]; 550 -> 468[label="",style="solid", color="blue", weight=3]; 551[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 551[label="",style="solid", color="blue", weight=9]; 551 -> 469[label="",style="solid", color="blue", weight=3]; 552[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 552[label="",style="solid", color="blue", weight=9]; 552 -> 470[label="",style="solid", color="blue", weight=3]; 553[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 553[label="",style="solid", color="blue", weight=9]; 553 -> 471[label="",style="solid", color="blue", weight=3]; 554[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 554[label="",style="solid", color="blue", weight=9]; 554 -> 472[label="",style="solid", color="blue", weight=3]; 555[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 555[label="",style="solid", color="blue", weight=9]; 555 -> 473[label="",style="solid", color="blue", weight=3]; 556[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 556[label="",style="solid", color="blue", weight=9]; 556 -> 474[label="",style="solid", color="blue", weight=3]; 557[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 557[label="",style="solid", color="blue", weight=9]; 557 -> 475[label="",style="solid", color="blue", weight=3]; 558[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 558[label="",style="solid", color="blue", weight=9]; 558 -> 476[label="",style="solid", color="blue", weight=3]; 559[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 559[label="",style="solid", color="blue", weight=9]; 559 -> 477[label="",style="solid", color="blue", weight=3]; 560[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 560[label="",style="solid", color="blue", weight=9]; 560 -> 478[label="",style="solid", color="blue", weight=3]; 561[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 561[label="",style="solid", color="blue", weight=9]; 561 -> 479[label="",style="solid", color="blue", weight=3]; 562[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 562[label="",style="solid", color="blue", weight=9]; 562 -> 480[label="",style="solid", color="blue", weight=3]; 563[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];465 -> 563[label="",style="solid", color="blue", weight=9]; 563 -> 481[label="",style="solid", color="blue", weight=3]; 466[label="wu261",fontsize=16,color="green",shape="box"];467[label="wu271",fontsize=16,color="green",shape="box"];468 -> 406[label="",style="dashed", color="red", weight=0]; 468[label="wu260 == wu270",fontsize=16,color="magenta"];468 -> 482[label="",style="dashed", color="magenta", weight=3]; 468 -> 483[label="",style="dashed", color="magenta", weight=3]; 469 -> 407[label="",style="dashed", color="red", weight=0]; 469[label="wu260 == wu270",fontsize=16,color="magenta"];469 -> 484[label="",style="dashed", color="magenta", weight=3]; 469 -> 485[label="",style="dashed", color="magenta", weight=3]; 470 -> 408[label="",style="dashed", color="red", weight=0]; 470[label="wu260 == wu270",fontsize=16,color="magenta"];470 -> 486[label="",style="dashed", color="magenta", weight=3]; 470 -> 487[label="",style="dashed", color="magenta", weight=3]; 471 -> 409[label="",style="dashed", color="red", weight=0]; 471[label="wu260 == wu270",fontsize=16,color="magenta"];471 -> 488[label="",style="dashed", color="magenta", weight=3]; 471 -> 489[label="",style="dashed", color="magenta", weight=3]; 472 -> 410[label="",style="dashed", color="red", weight=0]; 472[label="wu260 == wu270",fontsize=16,color="magenta"];472 -> 490[label="",style="dashed", color="magenta", weight=3]; 472 -> 491[label="",style="dashed", color="magenta", weight=3]; 473 -> 411[label="",style="dashed", color="red", weight=0]; 473[label="wu260 == wu270",fontsize=16,color="magenta"];473 -> 492[label="",style="dashed", color="magenta", weight=3]; 473 -> 493[label="",style="dashed", color="magenta", weight=3]; 474 -> 412[label="",style="dashed", color="red", weight=0]; 474[label="wu260 == wu270",fontsize=16,color="magenta"];474 -> 494[label="",style="dashed", color="magenta", weight=3]; 474 -> 495[label="",style="dashed", color="magenta", weight=3]; 475 -> 413[label="",style="dashed", color="red", weight=0]; 475[label="wu260 == wu270",fontsize=16,color="magenta"];475 -> 496[label="",style="dashed", color="magenta", weight=3]; 475 -> 497[label="",style="dashed", color="magenta", weight=3]; 476 -> 414[label="",style="dashed", color="red", weight=0]; 476[label="wu260 == wu270",fontsize=16,color="magenta"];476 -> 498[label="",style="dashed", color="magenta", weight=3]; 476 -> 499[label="",style="dashed", color="magenta", weight=3]; 477 -> 415[label="",style="dashed", color="red", weight=0]; 477[label="wu260 == wu270",fontsize=16,color="magenta"];477 -> 500[label="",style="dashed", color="magenta", weight=3]; 477 -> 501[label="",style="dashed", color="magenta", weight=3]; 478 -> 416[label="",style="dashed", color="red", weight=0]; 478[label="wu260 == wu270",fontsize=16,color="magenta"];478 -> 502[label="",style="dashed", color="magenta", weight=3]; 478 -> 503[label="",style="dashed", color="magenta", weight=3]; 479 -> 417[label="",style="dashed", color="red", weight=0]; 479[label="wu260 == wu270",fontsize=16,color="magenta"];479 -> 504[label="",style="dashed", color="magenta", weight=3]; 479 -> 505[label="",style="dashed", color="magenta", weight=3]; 480 -> 418[label="",style="dashed", color="red", weight=0]; 480[label="wu260 == wu270",fontsize=16,color="magenta"];480 -> 506[label="",style="dashed", color="magenta", weight=3]; 480 -> 507[label="",style="dashed", color="magenta", weight=3]; 481 -> 419[label="",style="dashed", color="red", weight=0]; 481[label="wu260 == wu270",fontsize=16,color="magenta"];481 -> 508[label="",style="dashed", color="magenta", weight=3]; 481 -> 509[label="",style="dashed", color="magenta", weight=3]; 482[label="wu270",fontsize=16,color="green",shape="box"];483[label="wu260",fontsize=16,color="green",shape="box"];484[label="wu270",fontsize=16,color="green",shape="box"];485[label="wu260",fontsize=16,color="green",shape="box"];486[label="wu270",fontsize=16,color="green",shape="box"];487[label="wu260",fontsize=16,color="green",shape="box"];488[label="wu270",fontsize=16,color="green",shape="box"];489[label="wu260",fontsize=16,color="green",shape="box"];490[label="wu270",fontsize=16,color="green",shape="box"];491[label="wu260",fontsize=16,color="green",shape="box"];492[label="wu270",fontsize=16,color="green",shape="box"];493[label="wu260",fontsize=16,color="green",shape="box"];494[label="wu270",fontsize=16,color="green",shape="box"];495[label="wu260",fontsize=16,color="green",shape="box"];496[label="wu270",fontsize=16,color="green",shape="box"];497[label="wu260",fontsize=16,color="green",shape="box"];498[label="wu270",fontsize=16,color="green",shape="box"];499[label="wu260",fontsize=16,color="green",shape="box"];500[label="wu270",fontsize=16,color="green",shape="box"];501[label="wu260",fontsize=16,color="green",shape="box"];502[label="wu270",fontsize=16,color="green",shape="box"];503[label="wu260",fontsize=16,color="green",shape="box"];504[label="wu270",fontsize=16,color="green",shape="box"];505[label="wu260",fontsize=16,color="green",shape="box"];506[label="wu270",fontsize=16,color="green",shape="box"];507[label="wu260",fontsize=16,color="green",shape="box"];508[label="wu270",fontsize=16,color="green",shape="box"];509[label="wu260",fontsize=16,color="green",shape="box"];} ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: new_isPrefixOf(wu17, wu16, wu20, :(wu1910, wu1911), ba) -> new_isPrefixOf(wu17, wu16, new_flip(wu20, wu1910, ba), wu1911, ba) The TRS R consists of the following rules: new_flip(wu16, wu17, ba) -> :(wu17, wu16) The set Q consists of the following terms: new_flip(x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_isPrefixOf(wu17, wu16, wu20, :(wu1910, wu1911), ba) -> new_isPrefixOf(wu17, wu16, new_flip(wu20, wu1910, ba), wu1911, ba) at position [2] we obtained the following new rules [LPAR04]: (new_isPrefixOf(wu17, wu16, wu20, :(wu1910, wu1911), ba) -> new_isPrefixOf(wu17, wu16, :(wu1910, wu20), wu1911, ba),new_isPrefixOf(wu17, wu16, wu20, :(wu1910, wu1911), ba) -> new_isPrefixOf(wu17, wu16, :(wu1910, wu20), wu1911, ba)) ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: new_isPrefixOf(wu17, wu16, wu20, :(wu1910, wu1911), ba) -> new_isPrefixOf(wu17, wu16, :(wu1910, wu20), wu1911, ba) The TRS R consists of the following rules: new_flip(wu16, wu17, ba) -> :(wu17, wu16) The set Q consists of the following terms: new_flip(x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: new_isPrefixOf(wu17, wu16, wu20, :(wu1910, wu1911), ba) -> new_isPrefixOf(wu17, wu16, :(wu1910, wu20), wu1911, ba) R is empty. The set Q consists of the following terms: new_flip(x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_flip(x0, x1, x2) ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: new_isPrefixOf(wu17, wu16, wu20, :(wu1910, wu1911), ba) -> new_isPrefixOf(wu17, wu16, :(wu1910, wu20), wu1911, ba) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) 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_isPrefixOf(wu17, wu16, wu20, :(wu1910, wu1911), ba) -> new_isPrefixOf(wu17, wu16, :(wu1910, wu20), wu1911, ba) The graph contains the following edges 1 >= 1, 2 >= 2, 4 > 4, 5 >= 5 ---------------------------------------- (15) YES ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: new_asAs(True, :(wu260, wu261), :(wu270, wu271), ba) -> new_asAs(new_esEs(wu260, wu270, ba), wu261, wu271, ba) The TRS R consists of the following rules: new_esEs(wu260, wu270, ty_Char) -> new_esEs10(wu260, wu270) new_esEs5(LT, EQ) -> False new_esEs5(EQ, LT) -> False new_esEs3(wu17, wu200) -> error([]) new_esEs(wu260, wu270, ty_@0) -> new_esEs2(wu260, wu270) new_esEs11(wu17, wu200) -> error([]) new_esEs(wu260, wu270, app(app(app(ty_@3, cb), cc), cd)) -> new_esEs0(wu260, wu270, cb, cc, cd) new_esEs(wu260, wu270, ty_Integer) -> new_esEs11(wu260, wu270) new_esEs(wu260, wu270, app(app(ty_Either, cf), cg)) -> new_esEs1(wu260, wu270, cf, cg) new_esEs(wu260, wu270, app(ty_[], da)) -> new_esEs13(wu260, wu270, da) new_esEs(wu260, wu270, app(ty_Ratio, bg)) -> new_esEs6(wu260, wu270, bg) new_esEs7(wu17, wu200) -> error([]) new_esEs6(wu17, wu200, db) -> error([]) new_esEs9(wu17, wu200) -> error([]) new_esEs5(LT, GT) -> False new_esEs5(GT, LT) -> False new_esEs0(wu17, wu200, bb, bc, bd) -> error([]) new_esEs5(GT, GT) -> True new_esEs4(wu17, wu200) -> error([]) new_esEs8(wu17, wu200, dd, de) -> error([]) new_esEs(wu260, wu270, app(ty_Maybe, ce)) -> new_esEs12(wu260, wu270, ce) new_esEs2(wu17, wu200) -> error([]) new_esEs12(wu17, wu200, df) -> error([]) new_esEs13(wu17, wu200, dc) -> error([]) new_esEs5(EQ, EQ) -> True new_esEs1(wu17, wu200, be, bf) -> error([]) new_esEs(wu260, wu270, ty_Float) -> new_esEs3(wu260, wu270) new_esEs(wu260, wu270, ty_Ordering) -> new_esEs5(wu260, wu270) new_esEs5(EQ, GT) -> False new_esEs5(GT, EQ) -> False new_esEs(wu260, wu270, ty_Bool) -> new_esEs4(wu260, wu270) new_esEs10(wu17, wu200) -> error([]) new_esEs(wu260, wu270, ty_Int) -> new_esEs9(wu260, wu270) new_esEs5(LT, LT) -> True new_esEs(wu260, wu270, ty_Double) -> new_esEs7(wu260, wu270) new_esEs(wu260, wu270, app(app(ty_@2, bh), ca)) -> new_esEs8(wu260, wu270, bh, ca) The set Q consists of the following terms: new_esEs(x0, x1, ty_Int) new_esEs0(x0, x1, x2, x3, x4) new_esEs(x0, x1, ty_Float) new_esEs6(x0, x1, x2) new_esEs9(x0, x1) new_esEs1(x0, x1, x2, x3) new_esEs4(x0, x1) new_esEs(x0, x1, ty_Integer) new_esEs8(x0, x1, x2, x3) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs5(EQ, GT) new_esEs5(GT, EQ) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs11(x0, x1) new_esEs5(LT, EQ) new_esEs5(EQ, LT) new_esEs5(GT, GT) new_esEs3(x0, x1) new_esEs7(x0, x1) new_esEs(x0, x1, ty_Bool) new_esEs12(x0, x1, x2) new_esEs5(EQ, EQ) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs5(LT, GT) new_esEs5(GT, LT) new_esEs2(x0, x1) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Ordering) new_esEs13(x0, x1, x2) new_esEs5(LT, LT) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, ty_@0) new_esEs10(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_asAs(True, :(wu260, wu261), :(wu270, wu271), ba) -> new_asAs(new_esEs(wu260, wu270, ba), wu261, wu271, ba) at position [0] we obtained the following new rules [LPAR04]: (new_asAs(True, :(x0, y1), :(x1, y3), ty_Char) -> new_asAs(new_esEs10(x0, x1), y1, y3, ty_Char),new_asAs(True, :(x0, y1), :(x1, y3), ty_Char) -> new_asAs(new_esEs10(x0, x1), y1, y3, ty_Char)) (new_asAs(True, :(x0, y1), :(x1, y3), ty_@0) -> new_asAs(new_esEs2(x0, x1), y1, y3, ty_@0),new_asAs(True, :(x0, y1), :(x1, y3), ty_@0) -> new_asAs(new_esEs2(x0, x1), y1, y3, ty_@0)) (new_asAs(True, :(x0, y1), :(x1, y3), app(app(app(ty_@3, x2), x3), x4)) -> new_asAs(new_esEs0(x0, x1, x2, x3, x4), y1, y3, app(app(app(ty_@3, x2), x3), x4)),new_asAs(True, :(x0, y1), :(x1, y3), app(app(app(ty_@3, x2), x3), x4)) -> new_asAs(new_esEs0(x0, x1, x2, x3, x4), y1, y3, app(app(app(ty_@3, x2), x3), x4))) (new_asAs(True, :(x0, y1), :(x1, y3), ty_Integer) -> new_asAs(new_esEs11(x0, x1), y1, y3, ty_Integer),new_asAs(True, :(x0, y1), :(x1, y3), ty_Integer) -> new_asAs(new_esEs11(x0, x1), y1, y3, ty_Integer)) (new_asAs(True, :(x0, y1), :(x1, y3), app(app(ty_Either, x2), x3)) -> new_asAs(new_esEs1(x0, x1, x2, x3), y1, y3, app(app(ty_Either, x2), x3)),new_asAs(True, :(x0, y1), :(x1, y3), app(app(ty_Either, x2), x3)) -> new_asAs(new_esEs1(x0, x1, x2, x3), y1, y3, app(app(ty_Either, x2), x3))) (new_asAs(True, :(x0, y1), :(x1, y3), app(ty_[], x2)) -> new_asAs(new_esEs13(x0, x1, x2), y1, y3, app(ty_[], x2)),new_asAs(True, :(x0, y1), :(x1, y3), app(ty_[], x2)) -> new_asAs(new_esEs13(x0, x1, x2), y1, y3, app(ty_[], x2))) (new_asAs(True, :(x0, y1), :(x1, y3), app(ty_Ratio, x2)) -> new_asAs(new_esEs6(x0, x1, x2), y1, y3, app(ty_Ratio, x2)),new_asAs(True, :(x0, y1), :(x1, y3), app(ty_Ratio, x2)) -> new_asAs(new_esEs6(x0, x1, x2), y1, y3, app(ty_Ratio, x2))) (new_asAs(True, :(x0, y1), :(x1, y3), app(ty_Maybe, x2)) -> new_asAs(new_esEs12(x0, x1, x2), y1, y3, app(ty_Maybe, x2)),new_asAs(True, :(x0, y1), :(x1, y3), app(ty_Maybe, x2)) -> new_asAs(new_esEs12(x0, x1, x2), y1, y3, app(ty_Maybe, x2))) (new_asAs(True, :(x0, y1), :(x1, y3), ty_Float) -> new_asAs(new_esEs3(x0, x1), y1, y3, ty_Float),new_asAs(True, :(x0, y1), :(x1, y3), ty_Float) -> new_asAs(new_esEs3(x0, x1), y1, y3, ty_Float)) (new_asAs(True, :(x0, y1), :(x1, y3), ty_Ordering) -> new_asAs(new_esEs5(x0, x1), y1, y3, ty_Ordering),new_asAs(True, :(x0, y1), :(x1, y3), ty_Ordering) -> new_asAs(new_esEs5(x0, x1), y1, y3, ty_Ordering)) (new_asAs(True, :(x0, y1), :(x1, y3), ty_Bool) -> new_asAs(new_esEs4(x0, x1), y1, y3, ty_Bool),new_asAs(True, :(x0, y1), :(x1, y3), ty_Bool) -> new_asAs(new_esEs4(x0, x1), y1, y3, ty_Bool)) (new_asAs(True, :(x0, y1), :(x1, y3), ty_Int) -> new_asAs(new_esEs9(x0, x1), y1, y3, ty_Int),new_asAs(True, :(x0, y1), :(x1, y3), ty_Int) -> new_asAs(new_esEs9(x0, x1), y1, y3, ty_Int)) (new_asAs(True, :(x0, y1), :(x1, y3), ty_Double) -> new_asAs(new_esEs7(x0, x1), y1, y3, ty_Double),new_asAs(True, :(x0, y1), :(x1, y3), ty_Double) -> new_asAs(new_esEs7(x0, x1), y1, y3, ty_Double)) (new_asAs(True, :(x0, y1), :(x1, y3), app(app(ty_@2, x2), x3)) -> new_asAs(new_esEs8(x0, x1, x2, x3), y1, y3, app(app(ty_@2, x2), x3)),new_asAs(True, :(x0, y1), :(x1, y3), app(app(ty_@2, x2), x3)) -> new_asAs(new_esEs8(x0, x1, x2, x3), y1, y3, app(app(ty_@2, x2), x3))) ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: new_asAs(True, :(x0, y1), :(x1, y3), ty_Char) -> new_asAs(new_esEs10(x0, x1), y1, y3, ty_Char) new_asAs(True, :(x0, y1), :(x1, y3), ty_@0) -> new_asAs(new_esEs2(x0, x1), y1, y3, ty_@0) new_asAs(True, :(x0, y1), :(x1, y3), app(app(app(ty_@3, x2), x3), x4)) -> new_asAs(new_esEs0(x0, x1, x2, x3, x4), y1, y3, app(app(app(ty_@3, x2), x3), x4)) new_asAs(True, :(x0, y1), :(x1, y3), ty_Integer) -> new_asAs(new_esEs11(x0, x1), y1, y3, ty_Integer) new_asAs(True, :(x0, y1), :(x1, y3), app(app(ty_Either, x2), x3)) -> new_asAs(new_esEs1(x0, x1, x2, x3), y1, y3, app(app(ty_Either, x2), x3)) new_asAs(True, :(x0, y1), :(x1, y3), app(ty_[], x2)) -> new_asAs(new_esEs13(x0, x1, x2), y1, y3, app(ty_[], x2)) new_asAs(True, :(x0, y1), :(x1, y3), app(ty_Ratio, x2)) -> new_asAs(new_esEs6(x0, x1, x2), y1, y3, app(ty_Ratio, x2)) new_asAs(True, :(x0, y1), :(x1, y3), app(ty_Maybe, x2)) -> new_asAs(new_esEs12(x0, x1, x2), y1, y3, app(ty_Maybe, x2)) new_asAs(True, :(x0, y1), :(x1, y3), ty_Float) -> new_asAs(new_esEs3(x0, x1), y1, y3, ty_Float) new_asAs(True, :(x0, y1), :(x1, y3), ty_Ordering) -> new_asAs(new_esEs5(x0, x1), y1, y3, ty_Ordering) new_asAs(True, :(x0, y1), :(x1, y3), ty_Bool) -> new_asAs(new_esEs4(x0, x1), y1, y3, ty_Bool) new_asAs(True, :(x0, y1), :(x1, y3), ty_Int) -> new_asAs(new_esEs9(x0, x1), y1, y3, ty_Int) new_asAs(True, :(x0, y1), :(x1, y3), ty_Double) -> new_asAs(new_esEs7(x0, x1), y1, y3, ty_Double) new_asAs(True, :(x0, y1), :(x1, y3), app(app(ty_@2, x2), x3)) -> new_asAs(new_esEs8(x0, x1, x2, x3), y1, y3, app(app(ty_@2, x2), x3)) The TRS R consists of the following rules: new_esEs(wu260, wu270, ty_Char) -> new_esEs10(wu260, wu270) new_esEs5(LT, EQ) -> False new_esEs5(EQ, LT) -> False new_esEs3(wu17, wu200) -> error([]) new_esEs(wu260, wu270, ty_@0) -> new_esEs2(wu260, wu270) new_esEs11(wu17, wu200) -> error([]) new_esEs(wu260, wu270, app(app(app(ty_@3, cb), cc), cd)) -> new_esEs0(wu260, wu270, cb, cc, cd) new_esEs(wu260, wu270, ty_Integer) -> new_esEs11(wu260, wu270) new_esEs(wu260, wu270, app(app(ty_Either, cf), cg)) -> new_esEs1(wu260, wu270, cf, cg) new_esEs(wu260, wu270, app(ty_[], da)) -> new_esEs13(wu260, wu270, da) new_esEs(wu260, wu270, app(ty_Ratio, bg)) -> new_esEs6(wu260, wu270, bg) new_esEs7(wu17, wu200) -> error([]) new_esEs6(wu17, wu200, db) -> error([]) new_esEs9(wu17, wu200) -> error([]) new_esEs5(LT, GT) -> False new_esEs5(GT, LT) -> False new_esEs0(wu17, wu200, bb, bc, bd) -> error([]) new_esEs5(GT, GT) -> True new_esEs4(wu17, wu200) -> error([]) new_esEs8(wu17, wu200, dd, de) -> error([]) new_esEs(wu260, wu270, app(ty_Maybe, ce)) -> new_esEs12(wu260, wu270, ce) new_esEs2(wu17, wu200) -> error([]) new_esEs12(wu17, wu200, df) -> error([]) new_esEs13(wu17, wu200, dc) -> error([]) new_esEs5(EQ, EQ) -> True new_esEs1(wu17, wu200, be, bf) -> error([]) new_esEs(wu260, wu270, ty_Float) -> new_esEs3(wu260, wu270) new_esEs(wu260, wu270, ty_Ordering) -> new_esEs5(wu260, wu270) new_esEs5(EQ, GT) -> False new_esEs5(GT, EQ) -> False new_esEs(wu260, wu270, ty_Bool) -> new_esEs4(wu260, wu270) new_esEs10(wu17, wu200) -> error([]) new_esEs(wu260, wu270, ty_Int) -> new_esEs9(wu260, wu270) new_esEs5(LT, LT) -> True new_esEs(wu260, wu270, ty_Double) -> new_esEs7(wu260, wu270) new_esEs(wu260, wu270, app(app(ty_@2, bh), ca)) -> new_esEs8(wu260, wu270, bh, ca) The set Q consists of the following terms: new_esEs(x0, x1, ty_Int) new_esEs0(x0, x1, x2, x3, x4) new_esEs(x0, x1, ty_Float) new_esEs6(x0, x1, x2) new_esEs9(x0, x1) new_esEs1(x0, x1, x2, x3) new_esEs4(x0, x1) new_esEs(x0, x1, ty_Integer) new_esEs8(x0, x1, x2, x3) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs5(EQ, GT) new_esEs5(GT, EQ) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs11(x0, x1) new_esEs5(LT, EQ) new_esEs5(EQ, LT) new_esEs5(GT, GT) new_esEs3(x0, x1) new_esEs7(x0, x1) new_esEs(x0, x1, ty_Bool) new_esEs12(x0, x1, x2) new_esEs5(EQ, EQ) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs5(LT, GT) new_esEs5(GT, LT) new_esEs2(x0, x1) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Ordering) new_esEs13(x0, x1, x2) new_esEs5(LT, LT) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, ty_@0) new_esEs10(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (19) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 13 less nodes. ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: new_asAs(True, :(x0, y1), :(x1, y3), ty_Ordering) -> new_asAs(new_esEs5(x0, x1), y1, y3, ty_Ordering) The TRS R consists of the following rules: new_esEs(wu260, wu270, ty_Char) -> new_esEs10(wu260, wu270) new_esEs5(LT, EQ) -> False new_esEs5(EQ, LT) -> False new_esEs3(wu17, wu200) -> error([]) new_esEs(wu260, wu270, ty_@0) -> new_esEs2(wu260, wu270) new_esEs11(wu17, wu200) -> error([]) new_esEs(wu260, wu270, app(app(app(ty_@3, cb), cc), cd)) -> new_esEs0(wu260, wu270, cb, cc, cd) new_esEs(wu260, wu270, ty_Integer) -> new_esEs11(wu260, wu270) new_esEs(wu260, wu270, app(app(ty_Either, cf), cg)) -> new_esEs1(wu260, wu270, cf, cg) new_esEs(wu260, wu270, app(ty_[], da)) -> new_esEs13(wu260, wu270, da) new_esEs(wu260, wu270, app(ty_Ratio, bg)) -> new_esEs6(wu260, wu270, bg) new_esEs7(wu17, wu200) -> error([]) new_esEs6(wu17, wu200, db) -> error([]) new_esEs9(wu17, wu200) -> error([]) new_esEs5(LT, GT) -> False new_esEs5(GT, LT) -> False new_esEs0(wu17, wu200, bb, bc, bd) -> error([]) new_esEs5(GT, GT) -> True new_esEs4(wu17, wu200) -> error([]) new_esEs8(wu17, wu200, dd, de) -> error([]) new_esEs(wu260, wu270, app(ty_Maybe, ce)) -> new_esEs12(wu260, wu270, ce) new_esEs2(wu17, wu200) -> error([]) new_esEs12(wu17, wu200, df) -> error([]) new_esEs13(wu17, wu200, dc) -> error([]) new_esEs5(EQ, EQ) -> True new_esEs1(wu17, wu200, be, bf) -> error([]) new_esEs(wu260, wu270, ty_Float) -> new_esEs3(wu260, wu270) new_esEs(wu260, wu270, ty_Ordering) -> new_esEs5(wu260, wu270) new_esEs5(EQ, GT) -> False new_esEs5(GT, EQ) -> False new_esEs(wu260, wu270, ty_Bool) -> new_esEs4(wu260, wu270) new_esEs10(wu17, wu200) -> error([]) new_esEs(wu260, wu270, ty_Int) -> new_esEs9(wu260, wu270) new_esEs5(LT, LT) -> True new_esEs(wu260, wu270, ty_Double) -> new_esEs7(wu260, wu270) new_esEs(wu260, wu270, app(app(ty_@2, bh), ca)) -> new_esEs8(wu260, wu270, bh, ca) The set Q consists of the following terms: new_esEs(x0, x1, ty_Int) new_esEs0(x0, x1, x2, x3, x4) new_esEs(x0, x1, ty_Float) new_esEs6(x0, x1, x2) new_esEs9(x0, x1) new_esEs1(x0, x1, x2, x3) new_esEs4(x0, x1) new_esEs(x0, x1, ty_Integer) new_esEs8(x0, x1, x2, x3) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs5(EQ, GT) new_esEs5(GT, EQ) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs11(x0, x1) new_esEs5(LT, EQ) new_esEs5(EQ, LT) new_esEs5(GT, GT) new_esEs3(x0, x1) new_esEs7(x0, x1) new_esEs(x0, x1, ty_Bool) new_esEs12(x0, x1, x2) new_esEs5(EQ, EQ) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs5(LT, GT) new_esEs5(GT, LT) new_esEs2(x0, x1) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Ordering) new_esEs13(x0, x1, x2) new_esEs5(LT, LT) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, ty_@0) new_esEs10(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: new_asAs(True, :(x0, y1), :(x1, y3), ty_Ordering) -> new_asAs(new_esEs5(x0, x1), y1, y3, ty_Ordering) The TRS R consists of the following rules: new_esEs5(LT, EQ) -> False new_esEs5(EQ, LT) -> False new_esEs5(LT, GT) -> False new_esEs5(GT, LT) -> False new_esEs5(GT, GT) -> True new_esEs5(EQ, EQ) -> True new_esEs5(EQ, GT) -> False new_esEs5(GT, EQ) -> False new_esEs5(LT, LT) -> True The set Q consists of the following terms: new_esEs(x0, x1, ty_Int) new_esEs0(x0, x1, x2, x3, x4) new_esEs(x0, x1, ty_Float) new_esEs6(x0, x1, x2) new_esEs9(x0, x1) new_esEs1(x0, x1, x2, x3) new_esEs4(x0, x1) new_esEs(x0, x1, ty_Integer) new_esEs8(x0, x1, x2, x3) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs5(EQ, GT) new_esEs5(GT, EQ) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs11(x0, x1) new_esEs5(LT, EQ) new_esEs5(EQ, LT) new_esEs5(GT, GT) new_esEs3(x0, x1) new_esEs7(x0, x1) new_esEs(x0, x1, ty_Bool) new_esEs12(x0, x1, x2) new_esEs5(EQ, EQ) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs5(LT, GT) new_esEs5(GT, LT) new_esEs2(x0, x1) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Ordering) new_esEs13(x0, x1, x2) new_esEs5(LT, LT) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, ty_@0) new_esEs10(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_esEs(x0, x1, ty_Int) new_esEs0(x0, x1, x2, x3, x4) new_esEs(x0, x1, ty_Float) new_esEs6(x0, x1, x2) new_esEs9(x0, x1) new_esEs1(x0, x1, x2, x3) new_esEs4(x0, x1) new_esEs(x0, x1, ty_Integer) new_esEs8(x0, x1, x2, x3) new_esEs(x0, x1, app(app(ty_Either, x2), x3)) new_esEs(x0, x1, app(ty_Maybe, x2)) new_esEs11(x0, x1) new_esEs3(x0, x1) new_esEs7(x0, x1) new_esEs(x0, x1, ty_Bool) new_esEs12(x0, x1, x2) new_esEs(x0, x1, app(app(ty_@2, x2), x3)) new_esEs2(x0, x1) new_esEs(x0, x1, ty_Char) new_esEs(x0, x1, app(ty_Ratio, x2)) new_esEs(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs(x0, x1, app(ty_[], x2)) new_esEs(x0, x1, ty_Ordering) new_esEs13(x0, x1, x2) new_esEs(x0, x1, ty_Double) new_esEs(x0, x1, ty_@0) new_esEs10(x0, x1) ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: new_asAs(True, :(x0, y1), :(x1, y3), ty_Ordering) -> new_asAs(new_esEs5(x0, x1), y1, y3, ty_Ordering) The TRS R consists of the following rules: new_esEs5(LT, EQ) -> False new_esEs5(EQ, LT) -> False new_esEs5(LT, GT) -> False new_esEs5(GT, LT) -> False new_esEs5(GT, GT) -> True new_esEs5(EQ, EQ) -> True new_esEs5(EQ, GT) -> False new_esEs5(GT, EQ) -> False new_esEs5(LT, LT) -> True The set Q consists of the following terms: new_esEs5(EQ, GT) new_esEs5(GT, EQ) new_esEs5(LT, EQ) new_esEs5(EQ, LT) new_esEs5(GT, GT) new_esEs5(EQ, EQ) new_esEs5(LT, GT) new_esEs5(GT, LT) new_esEs5(LT, LT) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_asAs(True, :(x0, y1), :(x1, y3), ty_Ordering) -> new_asAs(new_esEs5(x0, x1), y1, y3, ty_Ordering) at position [0] we obtained the following new rules [LPAR04]: (new_asAs(True, :(LT, y1), :(EQ, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering),new_asAs(True, :(LT, y1), :(EQ, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering)) (new_asAs(True, :(EQ, y1), :(LT, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering),new_asAs(True, :(EQ, y1), :(LT, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering)) (new_asAs(True, :(LT, y1), :(GT, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering),new_asAs(True, :(LT, y1), :(GT, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering)) (new_asAs(True, :(GT, y1), :(LT, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering),new_asAs(True, :(GT, y1), :(LT, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering)) (new_asAs(True, :(GT, y1), :(GT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering),new_asAs(True, :(GT, y1), :(GT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering)) (new_asAs(True, :(EQ, y1), :(EQ, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering),new_asAs(True, :(EQ, y1), :(EQ, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering)) (new_asAs(True, :(EQ, y1), :(GT, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering),new_asAs(True, :(EQ, y1), :(GT, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering)) (new_asAs(True, :(GT, y1), :(EQ, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering),new_asAs(True, :(GT, y1), :(EQ, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering)) (new_asAs(True, :(LT, y1), :(LT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering),new_asAs(True, :(LT, y1), :(LT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering)) ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: new_asAs(True, :(LT, y1), :(EQ, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering) new_asAs(True, :(EQ, y1), :(LT, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering) new_asAs(True, :(LT, y1), :(GT, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering) new_asAs(True, :(GT, y1), :(LT, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering) new_asAs(True, :(GT, y1), :(GT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) new_asAs(True, :(EQ, y1), :(EQ, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) new_asAs(True, :(EQ, y1), :(GT, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering) new_asAs(True, :(GT, y1), :(EQ, y3), ty_Ordering) -> new_asAs(False, y1, y3, ty_Ordering) new_asAs(True, :(LT, y1), :(LT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) The TRS R consists of the following rules: new_esEs5(LT, EQ) -> False new_esEs5(EQ, LT) -> False new_esEs5(LT, GT) -> False new_esEs5(GT, LT) -> False new_esEs5(GT, GT) -> True new_esEs5(EQ, EQ) -> True new_esEs5(EQ, GT) -> False new_esEs5(GT, EQ) -> False new_esEs5(LT, LT) -> True The set Q consists of the following terms: new_esEs5(EQ, GT) new_esEs5(GT, EQ) new_esEs5(LT, EQ) new_esEs5(EQ, LT) new_esEs5(GT, GT) new_esEs5(EQ, EQ) new_esEs5(LT, GT) new_esEs5(GT, LT) new_esEs5(LT, LT) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 6 less nodes. ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: new_asAs(True, :(GT, y1), :(GT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) new_asAs(True, :(EQ, y1), :(EQ, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) new_asAs(True, :(LT, y1), :(LT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) The TRS R consists of the following rules: new_esEs5(LT, EQ) -> False new_esEs5(EQ, LT) -> False new_esEs5(LT, GT) -> False new_esEs5(GT, LT) -> False new_esEs5(GT, GT) -> True new_esEs5(EQ, EQ) -> True new_esEs5(EQ, GT) -> False new_esEs5(GT, EQ) -> False new_esEs5(LT, LT) -> True The set Q consists of the following terms: new_esEs5(EQ, GT) new_esEs5(GT, EQ) new_esEs5(LT, EQ) new_esEs5(EQ, LT) new_esEs5(GT, GT) new_esEs5(EQ, EQ) new_esEs5(LT, GT) new_esEs5(GT, LT) new_esEs5(LT, LT) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: new_asAs(True, :(GT, y1), :(GT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) new_asAs(True, :(EQ, y1), :(EQ, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) new_asAs(True, :(LT, y1), :(LT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) R is empty. The set Q consists of the following terms: new_esEs5(EQ, GT) new_esEs5(GT, EQ) new_esEs5(LT, EQ) new_esEs5(EQ, LT) new_esEs5(GT, GT) new_esEs5(EQ, EQ) new_esEs5(LT, GT) new_esEs5(GT, LT) new_esEs5(LT, LT) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_esEs5(EQ, GT) new_esEs5(GT, EQ) new_esEs5(LT, EQ) new_esEs5(EQ, LT) new_esEs5(GT, GT) new_esEs5(EQ, EQ) new_esEs5(LT, GT) new_esEs5(GT, LT) new_esEs5(LT, LT) ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: new_asAs(True, :(GT, y1), :(GT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) new_asAs(True, :(EQ, y1), :(EQ, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) new_asAs(True, :(LT, y1), :(LT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) 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_asAs(True, :(GT, y1), :(GT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4 *new_asAs(True, :(EQ, y1), :(EQ, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4 *new_asAs(True, :(LT, y1), :(LT, y3), ty_Ordering) -> new_asAs(True, y1, y3, ty_Ordering) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4 ---------------------------------------- (34) YES ---------------------------------------- (35) Obligation: Q DP problem: The TRS P consists of the following rules: new_isPrefixOf0(wu16, wu17, :(wu180, wu181), wu19, ba) -> new_isPrefixOf0(new_flip(wu16, wu17, ba), wu180, wu181, wu19, ba) The TRS R consists of the following rules: new_flip(wu16, wu17, ba) -> :(wu17, wu16) The set Q consists of the following terms: new_flip(x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (36) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_isPrefixOf0(wu16, wu17, :(wu180, wu181), wu19, ba) -> new_isPrefixOf0(new_flip(wu16, wu17, ba), wu180, wu181, wu19, ba) at position [0] we obtained the following new rules [LPAR04]: (new_isPrefixOf0(wu16, wu17, :(wu180, wu181), wu19, ba) -> new_isPrefixOf0(:(wu17, wu16), wu180, wu181, wu19, ba),new_isPrefixOf0(wu16, wu17, :(wu180, wu181), wu19, ba) -> new_isPrefixOf0(:(wu17, wu16), wu180, wu181, wu19, ba)) ---------------------------------------- (37) Obligation: Q DP problem: The TRS P consists of the following rules: new_isPrefixOf0(wu16, wu17, :(wu180, wu181), wu19, ba) -> new_isPrefixOf0(:(wu17, wu16), wu180, wu181, wu19, ba) The TRS R consists of the following rules: new_flip(wu16, wu17, ba) -> :(wu17, wu16) The set Q consists of the following terms: new_flip(x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (38) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (39) Obligation: Q DP problem: The TRS P consists of the following rules: new_isPrefixOf0(wu16, wu17, :(wu180, wu181), wu19, ba) -> new_isPrefixOf0(:(wu17, wu16), wu180, wu181, wu19, ba) R is empty. The set Q consists of the following terms: new_flip(x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (40) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_flip(x0, x1, x2) ---------------------------------------- (41) Obligation: Q DP problem: The TRS P consists of the following rules: new_isPrefixOf0(wu16, wu17, :(wu180, wu181), wu19, ba) -> new_isPrefixOf0(:(wu17, wu16), wu180, wu181, wu19, ba) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (42) 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_isPrefixOf0(wu16, wu17, :(wu180, wu181), wu19, ba) -> new_isPrefixOf0(:(wu17, wu16), wu180, wu181, wu19, ba) The graph contains the following edges 3 > 2, 3 > 3, 4 >= 4, 5 >= 5 ---------------------------------------- (43) YES