/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, 29 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) QDPSizeChangeProof [EQUIVALENT, 0 ms] (18) YES (19) QDP (20) TransformationProof [EQUIVALENT, 0 ms] (21) QDP (22) DependencyGraphProof [EQUIVALENT, 0 ms] (23) TRUE (24) QDP (25) QDPSizeChangeProof [EQUIVALENT, 0 ms] (26) YES (27) QDP (28) TransformationProof [EQUIVALENT, 0 ms] (29) QDP (30) UsableRulesProof [EQUIVALENT, 0 ms] (31) QDP (32) QReductionProof [EQUIVALENT, 0 ms] (33) QDP (34) QDPSizeChangeProof [EQUIVALENT, 0 ms] (35) 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 [] wu = True; isPrefixOf wv [] = 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 [] wu = True; isPrefixOf wv [] = 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 ww3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="List.isSuffixOf ww3 ww4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="List.isPrefixOf (reverse ww3) (reverse ww4)",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 6[label="List.isPrefixOf (foldl (flip (:)) [] ww3) (reverse ww4)",fontsize=16,color="burlywood",shape="box"];504[label="ww3/ww30 : ww31",fontsize=10,color="white",style="solid",shape="box"];6 -> 504[label="",style="solid", color="burlywood", weight=9]; 504 -> 7[label="",style="solid", color="burlywood", weight=3]; 505[label="ww3/[]",fontsize=10,color="white",style="solid",shape="box"];6 -> 505[label="",style="solid", color="burlywood", weight=9]; 505 -> 8[label="",style="solid", color="burlywood", weight=3]; 7[label="List.isPrefixOf (foldl (flip (:)) [] (ww30 : ww31)) (reverse ww4)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="List.isPrefixOf (foldl (flip (:)) [] []) (reverse ww4)",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 9 -> 237[label="",style="dashed", color="red", weight=0]; 9[label="List.isPrefixOf (foldl (flip (:)) (flip (:) [] ww30) ww31) (reverse ww4)",fontsize=16,color="magenta"];9 -> 238[label="",style="dashed", color="magenta", weight=3]; 9 -> 239[label="",style="dashed", color="magenta", weight=3]; 9 -> 240[label="",style="dashed", color="magenta", weight=3]; 9 -> 241[label="",style="dashed", color="magenta", weight=3]; 10[label="List.isPrefixOf [] (reverse ww4)",fontsize=16,color="black",shape="box"];10 -> 13[label="",style="solid", color="black", weight=3]; 238[label="[]",fontsize=16,color="green",shape="box"];239[label="ww4",fontsize=16,color="green",shape="box"];240[label="ww31",fontsize=16,color="green",shape="box"];241[label="ww30",fontsize=16,color="green",shape="box"];237[label="List.isPrefixOf (foldl (flip (:)) (flip (:) ww15 ww16) ww17) (reverse ww18)",fontsize=16,color="burlywood",shape="triangle"];506[label="ww17/ww170 : ww171",fontsize=10,color="white",style="solid",shape="box"];237 -> 506[label="",style="solid", color="burlywood", weight=9]; 506 -> 274[label="",style="solid", color="burlywood", weight=3]; 507[label="ww17/[]",fontsize=10,color="white",style="solid",shape="box"];237 -> 507[label="",style="solid", color="burlywood", weight=9]; 507 -> 275[label="",style="solid", color="burlywood", weight=3]; 13[label="True",fontsize=16,color="green",shape="box"];274[label="List.isPrefixOf (foldl (flip (:)) (flip (:) ww15 ww16) (ww170 : ww171)) (reverse ww18)",fontsize=16,color="black",shape="box"];274 -> 276[label="",style="solid", color="black", weight=3]; 275[label="List.isPrefixOf (foldl (flip (:)) (flip (:) ww15 ww16) []) (reverse ww18)",fontsize=16,color="black",shape="box"];275 -> 277[label="",style="solid", color="black", weight=3]; 276 -> 237[label="",style="dashed", color="red", weight=0]; 276[label="List.isPrefixOf (foldl (flip (:)) (flip (:) (flip (:) ww15 ww16) ww170) ww171) (reverse ww18)",fontsize=16,color="magenta"];276 -> 278[label="",style="dashed", color="magenta", weight=3]; 276 -> 279[label="",style="dashed", color="magenta", weight=3]; 276 -> 280[label="",style="dashed", color="magenta", weight=3]; 277[label="List.isPrefixOf (flip (:) ww15 ww16) (reverse ww18)",fontsize=16,color="black",shape="box"];277 -> 281[label="",style="solid", color="black", weight=3]; 278[label="flip (:) ww15 ww16",fontsize=16,color="black",shape="triangle"];278 -> 282[label="",style="solid", color="black", weight=3]; 279[label="ww171",fontsize=16,color="green",shape="box"];280[label="ww170",fontsize=16,color="green",shape="box"];281[label="List.isPrefixOf ((:) ww16 ww15) (reverse ww18)",fontsize=16,color="black",shape="box"];281 -> 283[label="",style="solid", color="black", weight=3]; 282[label="(:) ww16 ww15",fontsize=16,color="green",shape="box"];283 -> 288[label="",style="dashed", color="red", weight=0]; 283[label="List.isPrefixOf ((:) ww16 ww15) (foldl (flip (:)) [] ww18)",fontsize=16,color="magenta"];283 -> 289[label="",style="dashed", color="magenta", weight=3]; 283 -> 290[label="",style="dashed", color="magenta", weight=3]; 289[label="[]",fontsize=16,color="green",shape="box"];290[label="ww18",fontsize=16,color="green",shape="box"];288[label="List.isPrefixOf ((:) ww16 ww15) (foldl (flip (:)) ww19 ww181)",fontsize=16,color="burlywood",shape="triangle"];508[label="ww181/ww1810 : ww1811",fontsize=10,color="white",style="solid",shape="box"];288 -> 508[label="",style="solid", color="burlywood", weight=9]; 508 -> 292[label="",style="solid", color="burlywood", weight=3]; 509[label="ww181/[]",fontsize=10,color="white",style="solid",shape="box"];288 -> 509[label="",style="solid", color="burlywood", weight=9]; 509 -> 293[label="",style="solid", color="burlywood", weight=3]; 292[label="List.isPrefixOf ((:) ww16 ww15) (foldl (flip (:)) ww19 (ww1810 : ww1811))",fontsize=16,color="black",shape="box"];292 -> 294[label="",style="solid", color="black", weight=3]; 293[label="List.isPrefixOf ((:) ww16 ww15) (foldl (flip (:)) ww19 [])",fontsize=16,color="black",shape="box"];293 -> 295[label="",style="solid", color="black", weight=3]; 294 -> 288[label="",style="dashed", color="red", weight=0]; 294[label="List.isPrefixOf ((:) ww16 ww15) (foldl (flip (:)) (flip (:) ww19 ww1810) ww1811)",fontsize=16,color="magenta"];294 -> 296[label="",style="dashed", color="magenta", weight=3]; 294 -> 297[label="",style="dashed", color="magenta", weight=3]; 295[label="List.isPrefixOf ((:) ww16 ww15) ww19",fontsize=16,color="burlywood",shape="box"];510[label="ww19/ww190 : ww191",fontsize=10,color="white",style="solid",shape="box"];295 -> 510[label="",style="solid", color="burlywood", weight=9]; 510 -> 298[label="",style="solid", color="burlywood", weight=3]; 511[label="ww19/[]",fontsize=10,color="white",style="solid",shape="box"];295 -> 511[label="",style="solid", color="burlywood", weight=9]; 511 -> 299[label="",style="solid", color="burlywood", weight=3]; 296 -> 278[label="",style="dashed", color="red", weight=0]; 296[label="flip (:) ww19 ww1810",fontsize=16,color="magenta"];296 -> 300[label="",style="dashed", color="magenta", weight=3]; 296 -> 301[label="",style="dashed", color="magenta", weight=3]; 297[label="ww1811",fontsize=16,color="green",shape="box"];298[label="List.isPrefixOf ((:) ww16 ww15) (ww190 : ww191)",fontsize=16,color="black",shape="box"];298 -> 302[label="",style="solid", color="black", weight=3]; 299[label="List.isPrefixOf ((:) ww16 ww15) []",fontsize=16,color="black",shape="box"];299 -> 303[label="",style="solid", color="black", weight=3]; 300[label="ww19",fontsize=16,color="green",shape="box"];301[label="ww1810",fontsize=16,color="green",shape="box"];302 -> 304[label="",style="dashed", color="red", weight=0]; 302[label="ww16 == ww190 && List.isPrefixOf ww15 ww191",fontsize=16,color="magenta"];302 -> 305[label="",style="dashed", color="magenta", weight=3]; 302 -> 306[label="",style="dashed", color="magenta", weight=3]; 302 -> 307[label="",style="dashed", color="magenta", weight=3]; 303[label="False",fontsize=16,color="green",shape="box"];305[label="ww16 == ww190",fontsize=16,color="blue",shape="box"];512[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 512[label="",style="solid", color="blue", weight=9]; 512 -> 308[label="",style="solid", color="blue", weight=3]; 513[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 513[label="",style="solid", color="blue", weight=9]; 513 -> 309[label="",style="solid", color="blue", weight=3]; 514[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 514[label="",style="solid", color="blue", weight=9]; 514 -> 310[label="",style="solid", color="blue", weight=3]; 515[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 515[label="",style="solid", color="blue", weight=9]; 515 -> 311[label="",style="solid", color="blue", weight=3]; 516[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 516[label="",style="solid", color="blue", weight=9]; 516 -> 312[label="",style="solid", color="blue", weight=3]; 517[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 517[label="",style="solid", color="blue", weight=9]; 517 -> 313[label="",style="solid", color="blue", weight=3]; 518[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 518[label="",style="solid", color="blue", weight=9]; 518 -> 314[label="",style="solid", color="blue", weight=3]; 519[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 519[label="",style="solid", color="blue", weight=9]; 519 -> 315[label="",style="solid", color="blue", weight=3]; 520[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 520[label="",style="solid", color="blue", weight=9]; 520 -> 316[label="",style="solid", color="blue", weight=3]; 521[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 521[label="",style="solid", color="blue", weight=9]; 521 -> 317[label="",style="solid", color="blue", weight=3]; 522[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 522[label="",style="solid", color="blue", weight=9]; 522 -> 318[label="",style="solid", color="blue", weight=3]; 523[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 523[label="",style="solid", color="blue", weight=9]; 523 -> 319[label="",style="solid", color="blue", weight=3]; 524[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 524[label="",style="solid", color="blue", weight=9]; 524 -> 320[label="",style="solid", color="blue", weight=3]; 525[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];305 -> 525[label="",style="solid", color="blue", weight=9]; 525 -> 321[label="",style="solid", color="blue", weight=3]; 306[label="ww15",fontsize=16,color="green",shape="box"];307[label="ww191",fontsize=16,color="green",shape="box"];304[label="ww24 && List.isPrefixOf ww25 ww26",fontsize=16,color="burlywood",shape="triangle"];526[label="ww24/False",fontsize=10,color="white",style="solid",shape="box"];304 -> 526[label="",style="solid", color="burlywood", weight=9]; 526 -> 322[label="",style="solid", color="burlywood", weight=3]; 527[label="ww24/True",fontsize=10,color="white",style="solid",shape="box"];304 -> 527[label="",style="solid", color="burlywood", weight=9]; 527 -> 323[label="",style="solid", color="burlywood", weight=3]; 308[label="ww16 == ww190",fontsize=16,color="black",shape="triangle"];308 -> 324[label="",style="solid", color="black", weight=3]; 309[label="ww16 == ww190",fontsize=16,color="black",shape="triangle"];309 -> 325[label="",style="solid", color="black", weight=3]; 310[label="ww16 == ww190",fontsize=16,color="black",shape="triangle"];310 -> 326[label="",style="solid", color="black", weight=3]; 311[label="ww16 == ww190",fontsize=16,color="black",shape="triangle"];311 -> 327[label="",style="solid", color="black", weight=3]; 312[label="ww16 == ww190",fontsize=16,color="black",shape="triangle"];312 -> 328[label="",style="solid", color="black", weight=3]; 313[label="ww16 == ww190",fontsize=16,color="black",shape="triangle"];313 -> 329[label="",style="solid", color="black", weight=3]; 314[label="ww16 == ww190",fontsize=16,color="black",shape="triangle"];314 -> 330[label="",style="solid", color="black", weight=3]; 315[label="ww16 == ww190",fontsize=16,color="black",shape="triangle"];315 -> 331[label="",style="solid", color="black", weight=3]; 316[label="ww16 == ww190",fontsize=16,color="black",shape="triangle"];316 -> 332[label="",style="solid", color="black", weight=3]; 317[label="ww16 == ww190",fontsize=16,color="black",shape="triangle"];317 -> 333[label="",style="solid", color="black", weight=3]; 318[label="ww16 == ww190",fontsize=16,color="black",shape="triangle"];318 -> 334[label="",style="solid", color="black", weight=3]; 319[label="ww16 == ww190",fontsize=16,color="black",shape="triangle"];319 -> 335[label="",style="solid", color="black", weight=3]; 320[label="ww16 == ww190",fontsize=16,color="burlywood",shape="triangle"];528[label="ww16/ww160 :% ww161",fontsize=10,color="white",style="solid",shape="box"];320 -> 528[label="",style="solid", color="burlywood", weight=9]; 528 -> 336[label="",style="solid", color="burlywood", weight=3]; 321[label="ww16 == ww190",fontsize=16,color="black",shape="triangle"];321 -> 337[label="",style="solid", color="black", weight=3]; 322[label="False && List.isPrefixOf ww25 ww26",fontsize=16,color="black",shape="box"];322 -> 338[label="",style="solid", color="black", weight=3]; 323[label="True && List.isPrefixOf ww25 ww26",fontsize=16,color="black",shape="box"];323 -> 339[label="",style="solid", color="black", weight=3]; 324[label="error []",fontsize=16,color="red",shape="box"];325[label="error []",fontsize=16,color="red",shape="box"];326[label="error []",fontsize=16,color="red",shape="box"];327[label="error []",fontsize=16,color="red",shape="box"];328[label="error []",fontsize=16,color="red",shape="box"];329[label="error []",fontsize=16,color="red",shape="box"];330[label="error []",fontsize=16,color="red",shape="box"];331[label="error []",fontsize=16,color="red",shape="box"];332[label="error []",fontsize=16,color="red",shape="box"];333[label="error []",fontsize=16,color="red",shape="box"];334[label="error []",fontsize=16,color="red",shape="box"];335[label="error []",fontsize=16,color="red",shape="box"];336[label="ww160 :% ww161 == ww190",fontsize=16,color="burlywood",shape="box"];529[label="ww190/ww1900 :% ww1901",fontsize=10,color="white",style="solid",shape="box"];336 -> 529[label="",style="solid", color="burlywood", weight=9]; 529 -> 340[label="",style="solid", color="burlywood", weight=3]; 337[label="primEqInt ww16 ww190",fontsize=16,color="burlywood",shape="box"];530[label="ww16/Pos ww160",fontsize=10,color="white",style="solid",shape="box"];337 -> 530[label="",style="solid", color="burlywood", weight=9]; 530 -> 341[label="",style="solid", color="burlywood", weight=3]; 531[label="ww16/Neg ww160",fontsize=10,color="white",style="solid",shape="box"];337 -> 531[label="",style="solid", color="burlywood", weight=9]; 531 -> 342[label="",style="solid", color="burlywood", weight=3]; 338[label="False",fontsize=16,color="green",shape="box"];339[label="List.isPrefixOf ww25 ww26",fontsize=16,color="burlywood",shape="box"];532[label="ww25/ww250 : ww251",fontsize=10,color="white",style="solid",shape="box"];339 -> 532[label="",style="solid", color="burlywood", weight=9]; 532 -> 343[label="",style="solid", color="burlywood", weight=3]; 533[label="ww25/[]",fontsize=10,color="white",style="solid",shape="box"];339 -> 533[label="",style="solid", color="burlywood", weight=9]; 533 -> 344[label="",style="solid", color="burlywood", weight=3]; 340[label="ww160 :% ww161 == ww1900 :% ww1901",fontsize=16,color="black",shape="box"];340 -> 345[label="",style="solid", color="black", weight=3]; 341[label="primEqInt (Pos ww160) ww190",fontsize=16,color="burlywood",shape="box"];534[label="ww160/Succ ww1600",fontsize=10,color="white",style="solid",shape="box"];341 -> 534[label="",style="solid", color="burlywood", weight=9]; 534 -> 346[label="",style="solid", color="burlywood", weight=3]; 535[label="ww160/Zero",fontsize=10,color="white",style="solid",shape="box"];341 -> 535[label="",style="solid", color="burlywood", weight=9]; 535 -> 347[label="",style="solid", color="burlywood", weight=3]; 342[label="primEqInt (Neg ww160) ww190",fontsize=16,color="burlywood",shape="box"];536[label="ww160/Succ ww1600",fontsize=10,color="white",style="solid",shape="box"];342 -> 536[label="",style="solid", color="burlywood", weight=9]; 536 -> 348[label="",style="solid", color="burlywood", weight=3]; 537[label="ww160/Zero",fontsize=10,color="white",style="solid",shape="box"];342 -> 537[label="",style="solid", color="burlywood", weight=9]; 537 -> 349[label="",style="solid", color="burlywood", weight=3]; 343[label="List.isPrefixOf (ww250 : ww251) ww26",fontsize=16,color="burlywood",shape="box"];538[label="ww26/ww260 : ww261",fontsize=10,color="white",style="solid",shape="box"];343 -> 538[label="",style="solid", color="burlywood", weight=9]; 538 -> 350[label="",style="solid", color="burlywood", weight=3]; 539[label="ww26/[]",fontsize=10,color="white",style="solid",shape="box"];343 -> 539[label="",style="solid", color="burlywood", weight=9]; 539 -> 351[label="",style="solid", color="burlywood", weight=3]; 344[label="List.isPrefixOf [] ww26",fontsize=16,color="black",shape="box"];344 -> 352[label="",style="solid", color="black", weight=3]; 345 -> 353[label="",style="dashed", color="red", weight=0]; 345[label="ww160 == ww1900 && ww161 == ww1901",fontsize=16,color="magenta"];345 -> 354[label="",style="dashed", color="magenta", weight=3]; 345 -> 355[label="",style="dashed", color="magenta", weight=3]; 345 -> 356[label="",style="dashed", color="magenta", weight=3]; 346[label="primEqInt (Pos (Succ ww1600)) ww190",fontsize=16,color="burlywood",shape="box"];540[label="ww190/Pos ww1900",fontsize=10,color="white",style="solid",shape="box"];346 -> 540[label="",style="solid", color="burlywood", weight=9]; 540 -> 357[label="",style="solid", color="burlywood", weight=3]; 541[label="ww190/Neg ww1900",fontsize=10,color="white",style="solid",shape="box"];346 -> 541[label="",style="solid", color="burlywood", weight=9]; 541 -> 358[label="",style="solid", color="burlywood", weight=3]; 347[label="primEqInt (Pos Zero) ww190",fontsize=16,color="burlywood",shape="box"];542[label="ww190/Pos ww1900",fontsize=10,color="white",style="solid",shape="box"];347 -> 542[label="",style="solid", color="burlywood", weight=9]; 542 -> 359[label="",style="solid", color="burlywood", weight=3]; 543[label="ww190/Neg ww1900",fontsize=10,color="white",style="solid",shape="box"];347 -> 543[label="",style="solid", color="burlywood", weight=9]; 543 -> 360[label="",style="solid", color="burlywood", weight=3]; 348[label="primEqInt (Neg (Succ ww1600)) ww190",fontsize=16,color="burlywood",shape="box"];544[label="ww190/Pos ww1900",fontsize=10,color="white",style="solid",shape="box"];348 -> 544[label="",style="solid", color="burlywood", weight=9]; 544 -> 361[label="",style="solid", color="burlywood", weight=3]; 545[label="ww190/Neg ww1900",fontsize=10,color="white",style="solid",shape="box"];348 -> 545[label="",style="solid", color="burlywood", weight=9]; 545 -> 362[label="",style="solid", color="burlywood", weight=3]; 349[label="primEqInt (Neg Zero) ww190",fontsize=16,color="burlywood",shape="box"];546[label="ww190/Pos ww1900",fontsize=10,color="white",style="solid",shape="box"];349 -> 546[label="",style="solid", color="burlywood", weight=9]; 546 -> 363[label="",style="solid", color="burlywood", weight=3]; 547[label="ww190/Neg ww1900",fontsize=10,color="white",style="solid",shape="box"];349 -> 547[label="",style="solid", color="burlywood", weight=9]; 547 -> 364[label="",style="solid", color="burlywood", weight=3]; 350[label="List.isPrefixOf (ww250 : ww251) (ww260 : ww261)",fontsize=16,color="black",shape="box"];350 -> 365[label="",style="solid", color="black", weight=3]; 351[label="List.isPrefixOf (ww250 : ww251) []",fontsize=16,color="black",shape="box"];351 -> 366[label="",style="solid", color="black", weight=3]; 352[label="True",fontsize=16,color="green",shape="box"];354[label="ww161",fontsize=16,color="green",shape="box"];355[label="ww160 == ww1900",fontsize=16,color="blue",shape="box"];548[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];355 -> 548[label="",style="solid", color="blue", weight=9]; 548 -> 367[label="",style="solid", color="blue", weight=3]; 549[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];355 -> 549[label="",style="solid", color="blue", weight=9]; 549 -> 368[label="",style="solid", color="blue", weight=3]; 356[label="ww1901",fontsize=16,color="green",shape="box"];353[label="ww31 && ww32 == ww33",fontsize=16,color="burlywood",shape="triangle"];550[label="ww31/False",fontsize=10,color="white",style="solid",shape="box"];353 -> 550[label="",style="solid", color="burlywood", weight=9]; 550 -> 369[label="",style="solid", color="burlywood", weight=3]; 551[label="ww31/True",fontsize=10,color="white",style="solid",shape="box"];353 -> 551[label="",style="solid", color="burlywood", weight=9]; 551 -> 370[label="",style="solid", color="burlywood", weight=3]; 357[label="primEqInt (Pos (Succ ww1600)) (Pos ww1900)",fontsize=16,color="burlywood",shape="box"];552[label="ww1900/Succ ww19000",fontsize=10,color="white",style="solid",shape="box"];357 -> 552[label="",style="solid", color="burlywood", weight=9]; 552 -> 371[label="",style="solid", color="burlywood", weight=3]; 553[label="ww1900/Zero",fontsize=10,color="white",style="solid",shape="box"];357 -> 553[label="",style="solid", color="burlywood", weight=9]; 553 -> 372[label="",style="solid", color="burlywood", weight=3]; 358[label="primEqInt (Pos (Succ ww1600)) (Neg ww1900)",fontsize=16,color="black",shape="box"];358 -> 373[label="",style="solid", color="black", weight=3]; 359[label="primEqInt (Pos Zero) (Pos ww1900)",fontsize=16,color="burlywood",shape="box"];554[label="ww1900/Succ ww19000",fontsize=10,color="white",style="solid",shape="box"];359 -> 554[label="",style="solid", color="burlywood", weight=9]; 554 -> 374[label="",style="solid", color="burlywood", weight=3]; 555[label="ww1900/Zero",fontsize=10,color="white",style="solid",shape="box"];359 -> 555[label="",style="solid", color="burlywood", weight=9]; 555 -> 375[label="",style="solid", color="burlywood", weight=3]; 360[label="primEqInt (Pos Zero) (Neg ww1900)",fontsize=16,color="burlywood",shape="box"];556[label="ww1900/Succ ww19000",fontsize=10,color="white",style="solid",shape="box"];360 -> 556[label="",style="solid", color="burlywood", weight=9]; 556 -> 376[label="",style="solid", color="burlywood", weight=3]; 557[label="ww1900/Zero",fontsize=10,color="white",style="solid",shape="box"];360 -> 557[label="",style="solid", color="burlywood", weight=9]; 557 -> 377[label="",style="solid", color="burlywood", weight=3]; 361[label="primEqInt (Neg (Succ ww1600)) (Pos ww1900)",fontsize=16,color="black",shape="box"];361 -> 378[label="",style="solid", color="black", weight=3]; 362[label="primEqInt (Neg (Succ ww1600)) (Neg ww1900)",fontsize=16,color="burlywood",shape="box"];558[label="ww1900/Succ ww19000",fontsize=10,color="white",style="solid",shape="box"];362 -> 558[label="",style="solid", color="burlywood", weight=9]; 558 -> 379[label="",style="solid", color="burlywood", weight=3]; 559[label="ww1900/Zero",fontsize=10,color="white",style="solid",shape="box"];362 -> 559[label="",style="solid", color="burlywood", weight=9]; 559 -> 380[label="",style="solid", color="burlywood", weight=3]; 363[label="primEqInt (Neg Zero) (Pos ww1900)",fontsize=16,color="burlywood",shape="box"];560[label="ww1900/Succ ww19000",fontsize=10,color="white",style="solid",shape="box"];363 -> 560[label="",style="solid", color="burlywood", weight=9]; 560 -> 381[label="",style="solid", color="burlywood", weight=3]; 561[label="ww1900/Zero",fontsize=10,color="white",style="solid",shape="box"];363 -> 561[label="",style="solid", color="burlywood", weight=9]; 561 -> 382[label="",style="solid", color="burlywood", weight=3]; 364[label="primEqInt (Neg Zero) (Neg ww1900)",fontsize=16,color="burlywood",shape="box"];562[label="ww1900/Succ ww19000",fontsize=10,color="white",style="solid",shape="box"];364 -> 562[label="",style="solid", color="burlywood", weight=9]; 562 -> 383[label="",style="solid", color="burlywood", weight=3]; 563[label="ww1900/Zero",fontsize=10,color="white",style="solid",shape="box"];364 -> 563[label="",style="solid", color="burlywood", weight=9]; 563 -> 384[label="",style="solid", color="burlywood", weight=3]; 365 -> 304[label="",style="dashed", color="red", weight=0]; 365[label="ww250 == ww260 && List.isPrefixOf ww251 ww261",fontsize=16,color="magenta"];365 -> 385[label="",style="dashed", color="magenta", weight=3]; 365 -> 386[label="",style="dashed", color="magenta", weight=3]; 365 -> 387[label="",style="dashed", color="magenta", weight=3]; 366[label="False",fontsize=16,color="green",shape="box"];367 -> 310[label="",style="dashed", color="red", weight=0]; 367[label="ww160 == ww1900",fontsize=16,color="magenta"];367 -> 388[label="",style="dashed", color="magenta", weight=3]; 367 -> 389[label="",style="dashed", color="magenta", weight=3]; 368 -> 321[label="",style="dashed", color="red", weight=0]; 368[label="ww160 == ww1900",fontsize=16,color="magenta"];368 -> 390[label="",style="dashed", color="magenta", weight=3]; 368 -> 391[label="",style="dashed", color="magenta", weight=3]; 369[label="False && ww32 == ww33",fontsize=16,color="black",shape="box"];369 -> 392[label="",style="solid", color="black", weight=3]; 370[label="True && ww32 == ww33",fontsize=16,color="black",shape="box"];370 -> 393[label="",style="solid", color="black", weight=3]; 371[label="primEqInt (Pos (Succ ww1600)) (Pos (Succ ww19000))",fontsize=16,color="black",shape="box"];371 -> 394[label="",style="solid", color="black", weight=3]; 372[label="primEqInt (Pos (Succ ww1600)) (Pos Zero)",fontsize=16,color="black",shape="box"];372 -> 395[label="",style="solid", color="black", weight=3]; 373[label="False",fontsize=16,color="green",shape="box"];374[label="primEqInt (Pos Zero) (Pos (Succ ww19000))",fontsize=16,color="black",shape="box"];374 -> 396[label="",style="solid", color="black", weight=3]; 375[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];375 -> 397[label="",style="solid", color="black", weight=3]; 376[label="primEqInt (Pos Zero) (Neg (Succ ww19000))",fontsize=16,color="black",shape="box"];376 -> 398[label="",style="solid", color="black", weight=3]; 377[label="primEqInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];377 -> 399[label="",style="solid", color="black", weight=3]; 378[label="False",fontsize=16,color="green",shape="box"];379[label="primEqInt (Neg (Succ ww1600)) (Neg (Succ ww19000))",fontsize=16,color="black",shape="box"];379 -> 400[label="",style="solid", color="black", weight=3]; 380[label="primEqInt (Neg (Succ ww1600)) (Neg Zero)",fontsize=16,color="black",shape="box"];380 -> 401[label="",style="solid", color="black", weight=3]; 381[label="primEqInt (Neg Zero) (Pos (Succ ww19000))",fontsize=16,color="black",shape="box"];381 -> 402[label="",style="solid", color="black", weight=3]; 382[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];382 -> 403[label="",style="solid", color="black", weight=3]; 383[label="primEqInt (Neg Zero) (Neg (Succ ww19000))",fontsize=16,color="black",shape="box"];383 -> 404[label="",style="solid", color="black", weight=3]; 384[label="primEqInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];384 -> 405[label="",style="solid", color="black", weight=3]; 385[label="ww250 == ww260",fontsize=16,color="blue",shape="box"];564[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 564[label="",style="solid", color="blue", weight=9]; 564 -> 406[label="",style="solid", color="blue", weight=3]; 565[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 565[label="",style="solid", color="blue", weight=9]; 565 -> 407[label="",style="solid", color="blue", weight=3]; 566[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 566[label="",style="solid", color="blue", weight=9]; 566 -> 408[label="",style="solid", color="blue", weight=3]; 567[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 567[label="",style="solid", color="blue", weight=9]; 567 -> 409[label="",style="solid", color="blue", weight=3]; 568[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 568[label="",style="solid", color="blue", weight=9]; 568 -> 410[label="",style="solid", color="blue", weight=3]; 569[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 569[label="",style="solid", color="blue", weight=9]; 569 -> 411[label="",style="solid", color="blue", weight=3]; 570[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 570[label="",style="solid", color="blue", weight=9]; 570 -> 412[label="",style="solid", color="blue", weight=3]; 571[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 571[label="",style="solid", color="blue", weight=9]; 571 -> 413[label="",style="solid", color="blue", weight=3]; 572[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 572[label="",style="solid", color="blue", weight=9]; 572 -> 414[label="",style="solid", color="blue", weight=3]; 573[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 573[label="",style="solid", color="blue", weight=9]; 573 -> 415[label="",style="solid", color="blue", weight=3]; 574[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 574[label="",style="solid", color="blue", weight=9]; 574 -> 416[label="",style="solid", color="blue", weight=3]; 575[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 575[label="",style="solid", color="blue", weight=9]; 575 -> 417[label="",style="solid", color="blue", weight=3]; 576[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 576[label="",style="solid", color="blue", weight=9]; 576 -> 418[label="",style="solid", color="blue", weight=3]; 577[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];385 -> 577[label="",style="solid", color="blue", weight=9]; 577 -> 419[label="",style="solid", color="blue", weight=3]; 386[label="ww251",fontsize=16,color="green",shape="box"];387[label="ww261",fontsize=16,color="green",shape="box"];388[label="ww1900",fontsize=16,color="green",shape="box"];389[label="ww160",fontsize=16,color="green",shape="box"];390[label="ww1900",fontsize=16,color="green",shape="box"];391[label="ww160",fontsize=16,color="green",shape="box"];392[label="False",fontsize=16,color="green",shape="box"];393[label="ww32 == ww33",fontsize=16,color="blue",shape="box"];578[label="== :: ([] a) -> ([] a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 578[label="",style="solid", color="blue", weight=9]; 578 -> 420[label="",style="solid", color="blue", weight=3]; 579[label="== :: Double -> Double -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 579[label="",style="solid", color="blue", weight=9]; 579 -> 421[label="",style="solid", color="blue", weight=3]; 580[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 580[label="",style="solid", color="blue", weight=9]; 580 -> 422[label="",style="solid", color="blue", weight=3]; 581[label="== :: Char -> Char -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 581[label="",style="solid", color="blue", weight=9]; 581 -> 423[label="",style="solid", color="blue", weight=3]; 582[label="== :: (Either a b) -> (Either a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 582[label="",style="solid", color="blue", weight=9]; 582 -> 424[label="",style="solid", color="blue", weight=3]; 583[label="== :: () -> () -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 583[label="",style="solid", color="blue", weight=9]; 583 -> 425[label="",style="solid", color="blue", weight=3]; 584[label="== :: Ordering -> Ordering -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 584[label="",style="solid", color="blue", weight=9]; 584 -> 426[label="",style="solid", color="blue", weight=3]; 585[label="== :: ((@3) a b c) -> ((@3) a b c) -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 585[label="",style="solid", color="blue", weight=9]; 585 -> 427[label="",style="solid", color="blue", weight=3]; 586[label="== :: (Maybe a) -> (Maybe a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 586[label="",style="solid", color="blue", weight=9]; 586 -> 428[label="",style="solid", color="blue", weight=3]; 587[label="== :: Float -> Float -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 587[label="",style="solid", color="blue", weight=9]; 587 -> 429[label="",style="solid", color="blue", weight=3]; 588[label="== :: Bool -> Bool -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 588[label="",style="solid", color="blue", weight=9]; 588 -> 430[label="",style="solid", color="blue", weight=3]; 589[label="== :: ((@2) a b) -> ((@2) a b) -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 589[label="",style="solid", color="blue", weight=9]; 589 -> 431[label="",style="solid", color="blue", weight=3]; 590[label="== :: (Ratio a) -> (Ratio a) -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 590[label="",style="solid", color="blue", weight=9]; 590 -> 432[label="",style="solid", color="blue", weight=3]; 591[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];393 -> 591[label="",style="solid", color="blue", weight=9]; 591 -> 433[label="",style="solid", color="blue", weight=3]; 394[label="primEqNat ww1600 ww19000",fontsize=16,color="burlywood",shape="triangle"];592[label="ww1600/Succ ww16000",fontsize=10,color="white",style="solid",shape="box"];394 -> 592[label="",style="solid", color="burlywood", weight=9]; 592 -> 434[label="",style="solid", color="burlywood", weight=3]; 593[label="ww1600/Zero",fontsize=10,color="white",style="solid",shape="box"];394 -> 593[label="",style="solid", color="burlywood", weight=9]; 593 -> 435[label="",style="solid", color="burlywood", weight=3]; 395[label="False",fontsize=16,color="green",shape="box"];396[label="False",fontsize=16,color="green",shape="box"];397[label="True",fontsize=16,color="green",shape="box"];398[label="False",fontsize=16,color="green",shape="box"];399[label="True",fontsize=16,color="green",shape="box"];400 -> 394[label="",style="dashed", color="red", weight=0]; 400[label="primEqNat ww1600 ww19000",fontsize=16,color="magenta"];400 -> 436[label="",style="dashed", color="magenta", weight=3]; 400 -> 437[label="",style="dashed", color="magenta", weight=3]; 401[label="False",fontsize=16,color="green",shape="box"];402[label="False",fontsize=16,color="green",shape="box"];403[label="True",fontsize=16,color="green",shape="box"];404[label="False",fontsize=16,color="green",shape="box"];405[label="True",fontsize=16,color="green",shape="box"];406 -> 308[label="",style="dashed", color="red", weight=0]; 406[label="ww250 == ww260",fontsize=16,color="magenta"];406 -> 438[label="",style="dashed", color="magenta", weight=3]; 406 -> 439[label="",style="dashed", color="magenta", weight=3]; 407 -> 309[label="",style="dashed", color="red", weight=0]; 407[label="ww250 == ww260",fontsize=16,color="magenta"];407 -> 440[label="",style="dashed", color="magenta", weight=3]; 407 -> 441[label="",style="dashed", color="magenta", weight=3]; 408 -> 310[label="",style="dashed", color="red", weight=0]; 408[label="ww250 == ww260",fontsize=16,color="magenta"];408 -> 442[label="",style="dashed", color="magenta", weight=3]; 408 -> 443[label="",style="dashed", color="magenta", weight=3]; 409 -> 311[label="",style="dashed", color="red", weight=0]; 409[label="ww250 == ww260",fontsize=16,color="magenta"];409 -> 444[label="",style="dashed", color="magenta", weight=3]; 409 -> 445[label="",style="dashed", color="magenta", weight=3]; 410 -> 312[label="",style="dashed", color="red", weight=0]; 410[label="ww250 == ww260",fontsize=16,color="magenta"];410 -> 446[label="",style="dashed", color="magenta", weight=3]; 410 -> 447[label="",style="dashed", color="magenta", weight=3]; 411 -> 313[label="",style="dashed", color="red", weight=0]; 411[label="ww250 == ww260",fontsize=16,color="magenta"];411 -> 448[label="",style="dashed", color="magenta", weight=3]; 411 -> 449[label="",style="dashed", color="magenta", weight=3]; 412 -> 314[label="",style="dashed", color="red", weight=0]; 412[label="ww250 == ww260",fontsize=16,color="magenta"];412 -> 450[label="",style="dashed", color="magenta", weight=3]; 412 -> 451[label="",style="dashed", color="magenta", weight=3]; 413 -> 315[label="",style="dashed", color="red", weight=0]; 413[label="ww250 == ww260",fontsize=16,color="magenta"];413 -> 452[label="",style="dashed", color="magenta", weight=3]; 413 -> 453[label="",style="dashed", color="magenta", weight=3]; 414 -> 316[label="",style="dashed", color="red", weight=0]; 414[label="ww250 == ww260",fontsize=16,color="magenta"];414 -> 454[label="",style="dashed", color="magenta", weight=3]; 414 -> 455[label="",style="dashed", color="magenta", weight=3]; 415 -> 317[label="",style="dashed", color="red", weight=0]; 415[label="ww250 == ww260",fontsize=16,color="magenta"];415 -> 456[label="",style="dashed", color="magenta", weight=3]; 415 -> 457[label="",style="dashed", color="magenta", weight=3]; 416 -> 318[label="",style="dashed", color="red", weight=0]; 416[label="ww250 == ww260",fontsize=16,color="magenta"];416 -> 458[label="",style="dashed", color="magenta", weight=3]; 416 -> 459[label="",style="dashed", color="magenta", weight=3]; 417 -> 319[label="",style="dashed", color="red", weight=0]; 417[label="ww250 == ww260",fontsize=16,color="magenta"];417 -> 460[label="",style="dashed", color="magenta", weight=3]; 417 -> 461[label="",style="dashed", color="magenta", weight=3]; 418 -> 320[label="",style="dashed", color="red", weight=0]; 418[label="ww250 == ww260",fontsize=16,color="magenta"];418 -> 462[label="",style="dashed", color="magenta", weight=3]; 418 -> 463[label="",style="dashed", color="magenta", weight=3]; 419 -> 321[label="",style="dashed", color="red", weight=0]; 419[label="ww250 == ww260",fontsize=16,color="magenta"];419 -> 464[label="",style="dashed", color="magenta", weight=3]; 419 -> 465[label="",style="dashed", color="magenta", weight=3]; 420 -> 308[label="",style="dashed", color="red", weight=0]; 420[label="ww32 == ww33",fontsize=16,color="magenta"];420 -> 466[label="",style="dashed", color="magenta", weight=3]; 420 -> 467[label="",style="dashed", color="magenta", weight=3]; 421 -> 309[label="",style="dashed", color="red", weight=0]; 421[label="ww32 == ww33",fontsize=16,color="magenta"];421 -> 468[label="",style="dashed", color="magenta", weight=3]; 421 -> 469[label="",style="dashed", color="magenta", weight=3]; 422 -> 310[label="",style="dashed", color="red", weight=0]; 422[label="ww32 == ww33",fontsize=16,color="magenta"];422 -> 470[label="",style="dashed", color="magenta", weight=3]; 422 -> 471[label="",style="dashed", color="magenta", weight=3]; 423 -> 311[label="",style="dashed", color="red", weight=0]; 423[label="ww32 == ww33",fontsize=16,color="magenta"];423 -> 472[label="",style="dashed", color="magenta", weight=3]; 423 -> 473[label="",style="dashed", color="magenta", weight=3]; 424 -> 312[label="",style="dashed", color="red", weight=0]; 424[label="ww32 == ww33",fontsize=16,color="magenta"];424 -> 474[label="",style="dashed", color="magenta", weight=3]; 424 -> 475[label="",style="dashed", color="magenta", weight=3]; 425 -> 313[label="",style="dashed", color="red", weight=0]; 425[label="ww32 == ww33",fontsize=16,color="magenta"];425 -> 476[label="",style="dashed", color="magenta", weight=3]; 425 -> 477[label="",style="dashed", color="magenta", weight=3]; 426 -> 314[label="",style="dashed", color="red", weight=0]; 426[label="ww32 == ww33",fontsize=16,color="magenta"];426 -> 478[label="",style="dashed", color="magenta", weight=3]; 426 -> 479[label="",style="dashed", color="magenta", weight=3]; 427 -> 315[label="",style="dashed", color="red", weight=0]; 427[label="ww32 == ww33",fontsize=16,color="magenta"];427 -> 480[label="",style="dashed", color="magenta", weight=3]; 427 -> 481[label="",style="dashed", color="magenta", weight=3]; 428 -> 316[label="",style="dashed", color="red", weight=0]; 428[label="ww32 == ww33",fontsize=16,color="magenta"];428 -> 482[label="",style="dashed", color="magenta", weight=3]; 428 -> 483[label="",style="dashed", color="magenta", weight=3]; 429 -> 317[label="",style="dashed", color="red", weight=0]; 429[label="ww32 == ww33",fontsize=16,color="magenta"];429 -> 484[label="",style="dashed", color="magenta", weight=3]; 429 -> 485[label="",style="dashed", color="magenta", weight=3]; 430 -> 318[label="",style="dashed", color="red", weight=0]; 430[label="ww32 == ww33",fontsize=16,color="magenta"];430 -> 486[label="",style="dashed", color="magenta", weight=3]; 430 -> 487[label="",style="dashed", color="magenta", weight=3]; 431 -> 319[label="",style="dashed", color="red", weight=0]; 431[label="ww32 == ww33",fontsize=16,color="magenta"];431 -> 488[label="",style="dashed", color="magenta", weight=3]; 431 -> 489[label="",style="dashed", color="magenta", weight=3]; 432 -> 320[label="",style="dashed", color="red", weight=0]; 432[label="ww32 == ww33",fontsize=16,color="magenta"];432 -> 490[label="",style="dashed", color="magenta", weight=3]; 432 -> 491[label="",style="dashed", color="magenta", weight=3]; 433 -> 321[label="",style="dashed", color="red", weight=0]; 433[label="ww32 == ww33",fontsize=16,color="magenta"];433 -> 492[label="",style="dashed", color="magenta", weight=3]; 433 -> 493[label="",style="dashed", color="magenta", weight=3]; 434[label="primEqNat (Succ ww16000) ww19000",fontsize=16,color="burlywood",shape="box"];594[label="ww19000/Succ ww190000",fontsize=10,color="white",style="solid",shape="box"];434 -> 594[label="",style="solid", color="burlywood", weight=9]; 594 -> 494[label="",style="solid", color="burlywood", weight=3]; 595[label="ww19000/Zero",fontsize=10,color="white",style="solid",shape="box"];434 -> 595[label="",style="solid", color="burlywood", weight=9]; 595 -> 495[label="",style="solid", color="burlywood", weight=3]; 435[label="primEqNat Zero ww19000",fontsize=16,color="burlywood",shape="box"];596[label="ww19000/Succ ww190000",fontsize=10,color="white",style="solid",shape="box"];435 -> 596[label="",style="solid", color="burlywood", weight=9]; 596 -> 496[label="",style="solid", color="burlywood", weight=3]; 597[label="ww19000/Zero",fontsize=10,color="white",style="solid",shape="box"];435 -> 597[label="",style="solid", color="burlywood", weight=9]; 597 -> 497[label="",style="solid", color="burlywood", weight=3]; 436[label="ww1600",fontsize=16,color="green",shape="box"];437[label="ww19000",fontsize=16,color="green",shape="box"];438[label="ww260",fontsize=16,color="green",shape="box"];439[label="ww250",fontsize=16,color="green",shape="box"];440[label="ww260",fontsize=16,color="green",shape="box"];441[label="ww250",fontsize=16,color="green",shape="box"];442[label="ww260",fontsize=16,color="green",shape="box"];443[label="ww250",fontsize=16,color="green",shape="box"];444[label="ww260",fontsize=16,color="green",shape="box"];445[label="ww250",fontsize=16,color="green",shape="box"];446[label="ww260",fontsize=16,color="green",shape="box"];447[label="ww250",fontsize=16,color="green",shape="box"];448[label="ww260",fontsize=16,color="green",shape="box"];449[label="ww250",fontsize=16,color="green",shape="box"];450[label="ww260",fontsize=16,color="green",shape="box"];451[label="ww250",fontsize=16,color="green",shape="box"];452[label="ww260",fontsize=16,color="green",shape="box"];453[label="ww250",fontsize=16,color="green",shape="box"];454[label="ww260",fontsize=16,color="green",shape="box"];455[label="ww250",fontsize=16,color="green",shape="box"];456[label="ww260",fontsize=16,color="green",shape="box"];457[label="ww250",fontsize=16,color="green",shape="box"];458[label="ww260",fontsize=16,color="green",shape="box"];459[label="ww250",fontsize=16,color="green",shape="box"];460[label="ww260",fontsize=16,color="green",shape="box"];461[label="ww250",fontsize=16,color="green",shape="box"];462[label="ww260",fontsize=16,color="green",shape="box"];463[label="ww250",fontsize=16,color="green",shape="box"];464[label="ww260",fontsize=16,color="green",shape="box"];465[label="ww250",fontsize=16,color="green",shape="box"];466[label="ww33",fontsize=16,color="green",shape="box"];467[label="ww32",fontsize=16,color="green",shape="box"];468[label="ww33",fontsize=16,color="green",shape="box"];469[label="ww32",fontsize=16,color="green",shape="box"];470[label="ww33",fontsize=16,color="green",shape="box"];471[label="ww32",fontsize=16,color="green",shape="box"];472[label="ww33",fontsize=16,color="green",shape="box"];473[label="ww32",fontsize=16,color="green",shape="box"];474[label="ww33",fontsize=16,color="green",shape="box"];475[label="ww32",fontsize=16,color="green",shape="box"];476[label="ww33",fontsize=16,color="green",shape="box"];477[label="ww32",fontsize=16,color="green",shape="box"];478[label="ww33",fontsize=16,color="green",shape="box"];479[label="ww32",fontsize=16,color="green",shape="box"];480[label="ww33",fontsize=16,color="green",shape="box"];481[label="ww32",fontsize=16,color="green",shape="box"];482[label="ww33",fontsize=16,color="green",shape="box"];483[label="ww32",fontsize=16,color="green",shape="box"];484[label="ww33",fontsize=16,color="green",shape="box"];485[label="ww32",fontsize=16,color="green",shape="box"];486[label="ww33",fontsize=16,color="green",shape="box"];487[label="ww32",fontsize=16,color="green",shape="box"];488[label="ww33",fontsize=16,color="green",shape="box"];489[label="ww32",fontsize=16,color="green",shape="box"];490[label="ww33",fontsize=16,color="green",shape="box"];491[label="ww32",fontsize=16,color="green",shape="box"];492[label="ww33",fontsize=16,color="green",shape="box"];493[label="ww32",fontsize=16,color="green",shape="box"];494[label="primEqNat (Succ ww16000) (Succ ww190000)",fontsize=16,color="black",shape="box"];494 -> 498[label="",style="solid", color="black", weight=3]; 495[label="primEqNat (Succ ww16000) Zero",fontsize=16,color="black",shape="box"];495 -> 499[label="",style="solid", color="black", weight=3]; 496[label="primEqNat Zero (Succ ww190000)",fontsize=16,color="black",shape="box"];496 -> 500[label="",style="solid", color="black", weight=3]; 497[label="primEqNat Zero Zero",fontsize=16,color="black",shape="box"];497 -> 501[label="",style="solid", color="black", weight=3]; 498 -> 394[label="",style="dashed", color="red", weight=0]; 498[label="primEqNat ww16000 ww190000",fontsize=16,color="magenta"];498 -> 502[label="",style="dashed", color="magenta", weight=3]; 498 -> 503[label="",style="dashed", color="magenta", weight=3]; 499[label="False",fontsize=16,color="green",shape="box"];500[label="False",fontsize=16,color="green",shape="box"];501[label="True",fontsize=16,color="green",shape="box"];502[label="ww16000",fontsize=16,color="green",shape="box"];503[label="ww190000",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(ww16, ww15, ww19, :(ww1810, ww1811), ba) -> new_isPrefixOf(ww16, ww15, new_flip(ww19, ww1810, ba), ww1811, ba) The TRS R consists of the following rules: new_flip(ww15, ww16, ba) -> :(ww16, ww15) 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(ww16, ww15, ww19, :(ww1810, ww1811), ba) -> new_isPrefixOf(ww16, ww15, new_flip(ww19, ww1810, ba), ww1811, ba) at position [2] we obtained the following new rules [LPAR04]: (new_isPrefixOf(ww16, ww15, ww19, :(ww1810, ww1811), ba) -> new_isPrefixOf(ww16, ww15, :(ww1810, ww19), ww1811, ba),new_isPrefixOf(ww16, ww15, ww19, :(ww1810, ww1811), ba) -> new_isPrefixOf(ww16, ww15, :(ww1810, ww19), ww1811, ba)) ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: new_isPrefixOf(ww16, ww15, ww19, :(ww1810, ww1811), ba) -> new_isPrefixOf(ww16, ww15, :(ww1810, ww19), ww1811, ba) The TRS R consists of the following rules: new_flip(ww15, ww16, ba) -> :(ww16, ww15) 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(ww16, ww15, ww19, :(ww1810, ww1811), ba) -> new_isPrefixOf(ww16, ww15, :(ww1810, ww19), ww1811, 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(ww16, ww15, ww19, :(ww1810, ww1811), ba) -> new_isPrefixOf(ww16, ww15, :(ww1810, ww19), ww1811, 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(ww16, ww15, ww19, :(ww1810, ww1811), ba) -> new_isPrefixOf(ww16, ww15, :(ww1810, ww19), ww1811, 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_asAs0(True, :(ww250, ww251), :(ww260, ww261), ba) -> new_asAs0(new_esEs3(ww250, ww260, ba), ww251, ww261, ba) The TRS R consists of the following rules: new_esEs2(Pos(Zero), Neg(Succ(ww19000))) -> False new_esEs2(Neg(Zero), Pos(Succ(ww19000))) -> False new_esEs13(ww16, ww190) -> error([]) new_esEs3(ww250, ww260, app(app(app(ty_@3, dc), dd), de)) -> new_esEs11(ww250, ww260, dc, dd, de) new_esEs1(ww16, ww190) -> error([]) new_esEs3(ww250, ww260, ty_Bool) -> new_esEs13(ww250, ww260) new_esEs3(ww250, ww260, app(ty_Ratio, ea)) -> new_esEs15(ww250, ww260, ea) new_asAs1(True, ww32, ww33, ty_Int) -> new_esEs2(ww32, ww33) new_esEs3(ww250, ww260, app(ty_Maybe, df)) -> new_esEs5(ww250, ww260, df) new_asAs1(True, ww32, ww33, app(app(ty_Either, bf), bg)) -> new_esEs8(ww32, ww33, bf, bg) new_esEs9(ww16, ww190) -> error([]) new_asAs1(True, ww32, ww33, ty_Float) -> new_esEs12(ww32, ww33) new_esEs12(ww16, ww190) -> error([]) new_esEs3(ww250, ww260, ty_Char) -> new_esEs7(ww250, ww260) new_esEs2(Neg(Succ(ww1600)), Neg(Succ(ww19000))) -> new_primEqNat0(ww1600, ww19000) new_esEs2(Neg(Zero), Neg(Zero)) -> True new_esEs3(ww250, ww260, ty_Int) -> new_esEs2(ww250, ww260) new_esEs11(ww16, ww190, eb, ec, ed) -> error([]) new_primEqNat0(Succ(ww16000), Zero) -> False new_primEqNat0(Zero, Succ(ww190000)) -> False new_esEs0(ww160, ww1900, ty_Int) -> new_esEs2(ww160, ww1900) new_asAs1(False, ww32, ww33, bd) -> False new_esEs0(ww160, ww1900, ty_Integer) -> new_esEs1(ww160, ww1900) new_asAs1(True, ww32, ww33, app(app(ty_@2, cd), ce)) -> new_esEs14(ww32, ww33, cd, ce) new_asAs1(True, ww32, ww33, ty_@0) -> new_esEs9(ww32, ww33) new_asAs1(True, ww32, ww33, app(ty_Ratio, cf)) -> new_esEs15(ww32, ww33, cf) new_esEs3(ww250, ww260, ty_Ordering) -> new_esEs10(ww250, ww260) new_esEs3(ww250, ww260, ty_Integer) -> new_esEs1(ww250, ww260) new_primEqNat0(Zero, Zero) -> True new_esEs3(ww250, ww260, app(app(ty_Either, da), db)) -> new_esEs8(ww250, ww260, da, db) new_esEs2(Neg(Succ(ww1600)), Neg(Zero)) -> False new_esEs2(Neg(Zero), Neg(Succ(ww19000))) -> False new_esEs4(ww16, ww190, bb) -> error([]) new_asAs1(True, ww32, ww33, ty_Char) -> new_esEs7(ww32, ww33) new_esEs2(Pos(Succ(ww1600)), Neg(ww1900)) -> False new_esEs2(Neg(Succ(ww1600)), Pos(ww1900)) -> False new_asAs1(True, ww32, ww33, app(ty_[], be)) -> new_esEs4(ww32, ww33, be) new_esEs15(:%(ww160, ww161), :%(ww1900, ww1901), ee) -> new_asAs1(new_esEs0(ww160, ww1900, ee), ww161, ww1901, ee) new_asAs1(True, ww32, ww33, app(app(app(ty_@3, bh), ca), cb)) -> new_esEs11(ww32, ww33, bh, ca, cb) new_esEs7(ww16, ww190) -> error([]) new_esEs3(ww250, ww260, ty_@0) -> new_esEs9(ww250, ww260) new_esEs3(ww250, ww260, app(app(ty_@2, dg), dh)) -> new_esEs14(ww250, ww260, dg, dh) new_esEs3(ww250, ww260, ty_Float) -> new_esEs12(ww250, ww260) new_esEs2(Pos(Succ(ww1600)), Pos(Succ(ww19000))) -> new_primEqNat0(ww1600, ww19000) new_esEs2(Pos(Zero), Neg(Zero)) -> True new_esEs2(Neg(Zero), Pos(Zero)) -> True new_esEs8(ww16, ww190, ef, eg) -> error([]) new_asAs1(True, ww32, ww33, ty_Double) -> new_esEs6(ww32, ww33) new_asAs1(True, ww32, ww33, app(ty_Maybe, cc)) -> new_esEs5(ww32, ww33, cc) new_esEs14(ww16, ww190, eh, fa) -> error([]) new_primEqNat0(Succ(ww16000), Succ(ww190000)) -> new_primEqNat0(ww16000, ww190000) new_asAs1(True, ww32, ww33, ty_Ordering) -> new_esEs10(ww32, ww33) new_asAs1(True, ww32, ww33, ty_Integer) -> new_esEs1(ww32, ww33) new_asAs1(True, ww32, ww33, ty_Bool) -> new_esEs13(ww32, ww33) new_esEs3(ww250, ww260, ty_Double) -> new_esEs6(ww250, ww260) new_esEs5(ww16, ww190, bc) -> error([]) new_esEs6(ww16, ww190) -> error([]) new_esEs10(ww16, ww190) -> error([]) new_esEs2(Pos(Succ(ww1600)), Pos(Zero)) -> False new_esEs2(Pos(Zero), Pos(Succ(ww19000))) -> False new_esEs2(Pos(Zero), Pos(Zero)) -> True new_esEs3(ww250, ww260, app(ty_[], cg)) -> new_esEs4(ww250, ww260, cg) The set Q consists of the following terms: new_esEs3(x0, x1, ty_@0) new_primEqNat0(Zero, Zero) new_esEs5(x0, x1, x2) new_esEs3(x0, x1, ty_Char) new_asAs1(True, x0, x1, ty_Double) new_esEs2(Pos(Zero), Neg(Succ(x0))) new_esEs2(Neg(Zero), Pos(Succ(x0))) new_asAs1(True, x0, x1, ty_@0) new_esEs2(Neg(Zero), Neg(Succ(x0))) new_esEs11(x0, x1, x2, x3, x4) new_esEs2(Pos(Succ(x0)), Pos(Zero)) new_esEs3(x0, x1, ty_Double) new_esEs2(Pos(Zero), Pos(Succ(x0))) new_esEs8(x0, x1, x2, x3) new_esEs3(x0, x1, app(ty_Ratio, x2)) new_asAs1(True, x0, x1, ty_Char) new_primEqNat0(Succ(x0), Succ(x1)) new_asAs1(True, x0, x1, app(ty_Ratio, x2)) new_asAs1(True, x0, x1, ty_Ordering) new_esEs3(x0, x1, app(app(ty_Either, x2), x3)) new_esEs3(x0, x1, ty_Ordering) new_esEs15(:%(x0, x1), :%(x2, x3), x4) new_esEs2(Neg(Succ(x0)), Neg(Succ(x1))) new_asAs1(True, x0, x1, app(ty_[], x2)) new_esEs10(x0, x1) new_esEs3(x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_asAs1(True, x0, x1, app(app(app(ty_@3, x2), x3), x4)) new_esEs13(x0, x1) new_esEs2(Neg(Zero), Neg(Zero)) new_esEs3(x0, x1, ty_Int) new_asAs1(True, x0, x1, ty_Int) new_esEs3(x0, x1, app(ty_Maybe, x2)) new_asAs1(False, x0, x1, x2) new_esEs2(Pos(Zero), Neg(Zero)) new_esEs2(Neg(Zero), Pos(Zero)) new_esEs3(x0, x1, app(ty_[], x2)) new_esEs12(x0, x1) new_esEs14(x0, x1, x2, x3) new_esEs7(x0, x1) new_primEqNat0(Succ(x0), Zero) new_esEs6(x0, x1) new_esEs0(x0, x1, ty_Integer) new_esEs2(Neg(Succ(x0)), Neg(Zero)) new_primEqNat0(Zero, Succ(x0)) new_esEs0(x0, x1, ty_Int) new_asAs1(True, x0, x1, app(ty_Maybe, x2)) new_asAs1(True, x0, x1, ty_Integer) new_esEs3(x0, x1, ty_Bool) new_esEs4(x0, x1, x2) new_esEs3(x0, x1, ty_Integer) new_esEs2(Pos(Succ(x0)), Neg(x1)) new_esEs2(Neg(Succ(x0)), Pos(x1)) new_esEs1(x0, x1) new_asAs1(True, x0, x1, ty_Bool) new_esEs3(x0, x1, app(app(ty_@2, x2), x3)) new_asAs1(True, x0, x1, app(app(ty_@2, x2), x3)) new_asAs1(True, x0, x1, ty_Float) new_esEs2(Pos(Succ(x0)), Pos(Succ(x1))) new_esEs2(Pos(Zero), Pos(Zero)) new_esEs3(x0, x1, ty_Float) new_asAs1(True, x0, x1, app(app(ty_Either, x2), x3)) new_esEs9(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) 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_asAs0(True, :(ww250, ww251), :(ww260, ww261), ba) -> new_asAs0(new_esEs3(ww250, ww260, ba), ww251, ww261, ba) The graph contains the following edges 2 > 2, 3 > 3, 4 >= 4 ---------------------------------------- (18) YES ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: new_esEs(:%(ww160, ww161), :%(ww1900, ww1901), ba) -> new_asAs(new_esEs0(ww160, ww1900, ba), ww161, ww1901, ba) new_asAs(True, ww32, ww33, app(ty_Ratio, bb)) -> new_esEs(ww32, ww33, bb) The TRS R consists of the following rules: new_esEs2(Neg(Succ(ww1600)), Neg(Succ(ww19000))) -> new_primEqNat0(ww1600, ww19000) new_esEs2(Neg(Zero), Neg(Zero)) -> True new_esEs2(Pos(Succ(ww1600)), Pos(Succ(ww19000))) -> new_primEqNat0(ww1600, ww19000) new_esEs2(Pos(Zero), Neg(Succ(ww19000))) -> False new_esEs2(Neg(Zero), Pos(Succ(ww19000))) -> False new_esEs2(Pos(Zero), Neg(Zero)) -> True new_esEs2(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(ww16000), Zero) -> False new_primEqNat0(Zero, Succ(ww190000)) -> False new_esEs2(Neg(Succ(ww1600)), Neg(Zero)) -> False new_esEs2(Neg(Zero), Neg(Succ(ww19000))) -> False new_primEqNat0(Succ(ww16000), Succ(ww190000)) -> new_primEqNat0(ww16000, ww190000) new_esEs0(ww160, ww1900, ty_Int) -> new_esEs2(ww160, ww1900) new_esEs1(ww16, ww190) -> error([]) new_esEs0(ww160, ww1900, ty_Integer) -> new_esEs1(ww160, ww1900) new_esEs2(Pos(Succ(ww1600)), Neg(ww1900)) -> False new_esEs2(Neg(Succ(ww1600)), Pos(ww1900)) -> False new_esEs2(Pos(Succ(ww1600)), Pos(Zero)) -> False new_esEs2(Pos(Zero), Pos(Succ(ww19000))) -> False new_esEs2(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_esEs2(Pos(Zero), Neg(Succ(x0))) new_esEs2(Neg(Zero), Pos(Succ(x0))) new_esEs2(Pos(Zero), Neg(Zero)) new_esEs2(Neg(Zero), Pos(Zero)) new_esEs2(Neg(Succ(x0)), Neg(Succ(x1))) new_esEs2(Pos(Succ(x0)), Neg(x1)) new_esEs2(Neg(Succ(x0)), Pos(x1)) new_esEs2(Neg(Zero), Neg(Succ(x0))) new_esEs1(x0, x1) new_esEs2(Pos(Succ(x0)), Pos(Zero)) new_esEs2(Pos(Succ(x0)), Pos(Succ(x1))) new_esEs2(Pos(Zero), Pos(Succ(x0))) new_esEs2(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Zero) new_esEs2(Neg(Succ(x0)), Neg(Zero)) new_esEs0(x0, x1, ty_Integer) new_primEqNat0(Zero, Succ(x0)) new_esEs0(x0, x1, ty_Int) new_esEs2(Neg(Zero), Neg(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_esEs(:%(ww160, ww161), :%(ww1900, ww1901), ba) -> new_asAs(new_esEs0(ww160, ww1900, ba), ww161, ww1901, ba) at position [0] we obtained the following new rules [LPAR04]: (new_esEs(:%(x0, y1), :%(x1, y3), ty_Int) -> new_asAs(new_esEs2(x0, x1), y1, y3, ty_Int),new_esEs(:%(x0, y1), :%(x1, y3), ty_Int) -> new_asAs(new_esEs2(x0, x1), y1, y3, ty_Int)) (new_esEs(:%(x0, y1), :%(x1, y3), ty_Integer) -> new_asAs(new_esEs1(x0, x1), y1, y3, ty_Integer),new_esEs(:%(x0, y1), :%(x1, y3), ty_Integer) -> new_asAs(new_esEs1(x0, x1), y1, y3, ty_Integer)) ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: new_asAs(True, ww32, ww33, app(ty_Ratio, bb)) -> new_esEs(ww32, ww33, bb) new_esEs(:%(x0, y1), :%(x1, y3), ty_Int) -> new_asAs(new_esEs2(x0, x1), y1, y3, ty_Int) new_esEs(:%(x0, y1), :%(x1, y3), ty_Integer) -> new_asAs(new_esEs1(x0, x1), y1, y3, ty_Integer) The TRS R consists of the following rules: new_esEs2(Neg(Succ(ww1600)), Neg(Succ(ww19000))) -> new_primEqNat0(ww1600, ww19000) new_esEs2(Neg(Zero), Neg(Zero)) -> True new_esEs2(Pos(Succ(ww1600)), Pos(Succ(ww19000))) -> new_primEqNat0(ww1600, ww19000) new_esEs2(Pos(Zero), Neg(Succ(ww19000))) -> False new_esEs2(Neg(Zero), Pos(Succ(ww19000))) -> False new_esEs2(Pos(Zero), Neg(Zero)) -> True new_esEs2(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(ww16000), Zero) -> False new_primEqNat0(Zero, Succ(ww190000)) -> False new_esEs2(Neg(Succ(ww1600)), Neg(Zero)) -> False new_esEs2(Neg(Zero), Neg(Succ(ww19000))) -> False new_primEqNat0(Succ(ww16000), Succ(ww190000)) -> new_primEqNat0(ww16000, ww190000) new_esEs0(ww160, ww1900, ty_Int) -> new_esEs2(ww160, ww1900) new_esEs1(ww16, ww190) -> error([]) new_esEs0(ww160, ww1900, ty_Integer) -> new_esEs1(ww160, ww1900) new_esEs2(Pos(Succ(ww1600)), Neg(ww1900)) -> False new_esEs2(Neg(Succ(ww1600)), Pos(ww1900)) -> False new_esEs2(Pos(Succ(ww1600)), Pos(Zero)) -> False new_esEs2(Pos(Zero), Pos(Succ(ww19000))) -> False new_esEs2(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_esEs2(Pos(Zero), Neg(Succ(x0))) new_esEs2(Neg(Zero), Pos(Succ(x0))) new_esEs2(Pos(Zero), Neg(Zero)) new_esEs2(Neg(Zero), Pos(Zero)) new_esEs2(Neg(Succ(x0)), Neg(Succ(x1))) new_esEs2(Pos(Succ(x0)), Neg(x1)) new_esEs2(Neg(Succ(x0)), Pos(x1)) new_esEs2(Neg(Zero), Neg(Succ(x0))) new_esEs1(x0, x1) new_esEs2(Pos(Succ(x0)), Pos(Zero)) new_esEs2(Pos(Succ(x0)), Pos(Succ(x1))) new_esEs2(Pos(Zero), Pos(Succ(x0))) new_esEs2(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Zero) new_esEs2(Neg(Succ(x0)), Neg(Zero)) new_esEs0(x0, x1, ty_Integer) new_primEqNat0(Zero, Succ(x0)) new_esEs0(x0, x1, ty_Int) new_esEs2(Neg(Zero), Neg(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (22) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (23) TRUE ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: new_primEqNat(Succ(ww16000), Succ(ww190000)) -> new_primEqNat(ww16000, ww190000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) 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_primEqNat(Succ(ww16000), Succ(ww190000)) -> new_primEqNat(ww16000, ww190000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (26) YES ---------------------------------------- (27) Obligation: Q DP problem: The TRS P consists of the following rules: new_isPrefixOf0(ww15, ww16, :(ww170, ww171), ww18, ba) -> new_isPrefixOf0(new_flip(ww15, ww16, ba), ww170, ww171, ww18, ba) The TRS R consists of the following rules: new_flip(ww15, ww16, ba) -> :(ww16, ww15) The set Q consists of the following terms: new_flip(x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (28) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_isPrefixOf0(ww15, ww16, :(ww170, ww171), ww18, ba) -> new_isPrefixOf0(new_flip(ww15, ww16, ba), ww170, ww171, ww18, ba) at position [0] we obtained the following new rules [LPAR04]: (new_isPrefixOf0(ww15, ww16, :(ww170, ww171), ww18, ba) -> new_isPrefixOf0(:(ww16, ww15), ww170, ww171, ww18, ba),new_isPrefixOf0(ww15, ww16, :(ww170, ww171), ww18, ba) -> new_isPrefixOf0(:(ww16, ww15), ww170, ww171, ww18, ba)) ---------------------------------------- (29) Obligation: Q DP problem: The TRS P consists of the following rules: new_isPrefixOf0(ww15, ww16, :(ww170, ww171), ww18, ba) -> new_isPrefixOf0(:(ww16, ww15), ww170, ww171, ww18, ba) The TRS R consists of the following rules: new_flip(ww15, ww16, ba) -> :(ww16, ww15) The set Q consists of the following terms: new_flip(x0, x1, x2) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (30) 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. ---------------------------------------- (31) Obligation: Q DP problem: The TRS P consists of the following rules: new_isPrefixOf0(ww15, ww16, :(ww170, ww171), ww18, ba) -> new_isPrefixOf0(:(ww16, ww15), ww170, ww171, ww18, 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. ---------------------------------------- (32) 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) ---------------------------------------- (33) Obligation: Q DP problem: The TRS P consists of the following rules: new_isPrefixOf0(ww15, ww16, :(ww170, ww171), ww18, ba) -> new_isPrefixOf0(:(ww16, ww15), ww170, ww171, ww18, ba) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (34) 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(ww15, ww16, :(ww170, ww171), ww18, ba) -> new_isPrefixOf0(:(ww16, ww15), ww170, ww171, ww18, ba) The graph contains the following edges 3 > 2, 3 > 3, 4 >= 4, 5 >= 5 ---------------------------------------- (35) YES