/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.hs /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/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, 25 ms] (4) HASKELL (5) LetRed [EQUIVALENT, 0 ms] (6) HASKELL (7) Narrow [SOUND, 0 ms] (8) QDP (9) DependencyGraphProof [EQUIVALENT, 0 ms] (10) QDP (11) TransformationProof [EQUIVALENT, 0 ms] (12) QDP (13) QDPSizeChangeProof [EQUIVALENT, 0 ms] (14) 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; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by _ _ [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubBy' l [] where { nubBy' [] _ = []; nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs | otherwise = y : nubBy' ys (y : xs); }; } 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; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by vy vz [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubBy' l [] where { nubBy' [] wu = []; nubBy' (y : ys) xs | elem_by eq y xs = nubBy' ys xs | otherwise = y : nubBy' ys (y : xs); }; } 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; " The following Function with conditions "nubBy' [] wu = []; nubBy' (y : ys) xs|elem_by eq y xsnubBy' ys xs|otherwisey : nubBy' ys (y : xs); " is transformed to "nubBy' [] wu = nubBy'3 [] wu; nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; " "nubBy'0 y ys xs True = y : nubBy' ys (y : xs); " "nubBy'1 y ys xs True = nubBy' ys xs; nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; " "nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); " "nubBy'3 [] wu = []; nubBy'3 wx wy = nubBy'2 wx wy; " ---------------------------------------- (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; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by vy vz [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubBy' l [] where { nubBy' [] wu = nubBy'3 [] wu; nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; nubBy'0 y ys xs True = y : nubBy' ys (y : xs); nubBy'1 y ys xs True = nubBy' ys xs; nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); nubBy'3 [] wu = []; nubBy'3 wx wy = nubBy'2 wx wy; }; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (5) LetRed (EQUIVALENT) Let/Where Reductions: The bindings of the following Let/Where expression "nubBy' l [] where { nubBy' [] wu = nubBy'3 [] wu; nubBy' (y : ys) xs = nubBy'2 (y : ys) xs; ; nubBy'0 y ys xs True = y : nubBy' ys (y : xs); ; nubBy'1 y ys xs True = nubBy' ys xs; nubBy'1 y ys xs False = nubBy'0 y ys xs otherwise; ; nubBy'2 (y : ys) xs = nubBy'1 y ys xs (elem_by eq y xs); ; nubBy'3 [] wu = []; nubBy'3 wx wy = nubBy'2 wx wy; } " are unpacked to the following functions on top level "nubByNubBy'2 wz (y : ys) xs = nubByNubBy'1 wz y ys xs (elem_by wz y xs); " "nubByNubBy'3 wz [] wu = []; nubByNubBy'3 wz wx wy = nubByNubBy'2 wz wx wy; " "nubByNubBy'1 wz y ys xs True = nubByNubBy' wz ys xs; nubByNubBy'1 wz y ys xs False = nubByNubBy'0 wz y ys xs otherwise; " "nubByNubBy' wz [] wu = nubByNubBy'3 wz [] wu; nubByNubBy' wz (y : ys) xs = nubByNubBy'2 wz (y : ys) xs; " "nubByNubBy'0 wz y ys xs True = y : nubByNubBy' wz ys (y : xs); " ---------------------------------------- (6) 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; elem_by :: (a -> a -> Bool) -> a -> [a] -> Bool; elem_by vy vz [] = False; elem_by eq y (x : xs) = x `eq` y || elem_by eq y xs; nubBy :: (a -> a -> Bool) -> [a] -> [a]; nubBy eq l = nubByNubBy' eq l []; nubByNubBy' wz [] wu = nubByNubBy'3 wz [] wu; nubByNubBy' wz (y : ys) xs = nubByNubBy'2 wz (y : ys) xs; nubByNubBy'0 wz y ys xs True = y : nubByNubBy' wz ys (y : xs); nubByNubBy'1 wz y ys xs True = nubByNubBy' wz ys xs; nubByNubBy'1 wz y ys xs False = nubByNubBy'0 wz y ys xs otherwise; nubByNubBy'2 wz (y : ys) xs = nubByNubBy'1 wz y ys xs (elem_by wz y xs); nubByNubBy'3 wz [] wu = []; nubByNubBy'3 wz wx wy = nubByNubBy'2 wz wx wy; } module Main where { import qualified List; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (7) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="List.nubBy",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="List.nubBy xu3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="List.nubBy xu3 xu4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="List.nubByNubBy' xu3 xu4 []",fontsize=16,color="burlywood",shape="box"];493[label="xu4/xu40 : xu41",fontsize=10,color="white",style="solid",shape="box"];5 -> 493[label="",style="solid", color="burlywood", weight=9]; 493 -> 6[label="",style="solid", color="burlywood", weight=3]; 494[label="xu4/[]",fontsize=10,color="white",style="solid",shape="box"];5 -> 494[label="",style="solid", color="burlywood", weight=9]; 494 -> 7[label="",style="solid", color="burlywood", weight=3]; 6[label="List.nubByNubBy' xu3 (xu40 : xu41) []",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 7[label="List.nubByNubBy' xu3 [] []",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="List.nubByNubBy'2 xu3 (xu40 : xu41) []",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 9[label="List.nubByNubBy'3 xu3 [] []",fontsize=16,color="black",shape="box"];9 -> 11[label="",style="solid", color="black", weight=3]; 10[label="List.nubByNubBy'1 xu3 xu40 xu41 [] (List.elem_by xu3 xu40 [])",fontsize=16,color="black",shape="box"];10 -> 12[label="",style="solid", color="black", weight=3]; 11[label="[]",fontsize=16,color="green",shape="box"];12[label="List.nubByNubBy'1 xu3 xu40 xu41 [] False",fontsize=16,color="black",shape="box"];12 -> 13[label="",style="solid", color="black", weight=3]; 13[label="List.nubByNubBy'0 xu3 xu40 xu41 [] otherwise",fontsize=16,color="black",shape="box"];13 -> 14[label="",style="solid", color="black", weight=3]; 14[label="List.nubByNubBy'0 xu3 xu40 xu41 [] True",fontsize=16,color="black",shape="box"];14 -> 15[label="",style="solid", color="black", weight=3]; 15[label="xu40 : List.nubByNubBy' xu3 xu41 (xu40 : [])",fontsize=16,color="green",shape="box"];15 -> 16[label="",style="dashed", color="green", weight=3]; 16[label="List.nubByNubBy' xu3 xu41 (xu40 : [])",fontsize=16,color="burlywood",shape="triangle"];495[label="xu41/xu410 : xu411",fontsize=10,color="white",style="solid",shape="box"];16 -> 495[label="",style="solid", color="burlywood", weight=9]; 495 -> 17[label="",style="solid", color="burlywood", weight=3]; 496[label="xu41/[]",fontsize=10,color="white",style="solid",shape="box"];16 -> 496[label="",style="solid", color="burlywood", weight=9]; 496 -> 18[label="",style="solid", color="burlywood", weight=3]; 17[label="List.nubByNubBy' xu3 (xu410 : xu411) (xu40 : [])",fontsize=16,color="black",shape="box"];17 -> 19[label="",style="solid", color="black", weight=3]; 18[label="List.nubByNubBy' xu3 [] (xu40 : [])",fontsize=16,color="black",shape="box"];18 -> 20[label="",style="solid", color="black", weight=3]; 19[label="List.nubByNubBy'2 xu3 (xu410 : xu411) (xu40 : [])",fontsize=16,color="black",shape="box"];19 -> 21[label="",style="solid", color="black", weight=3]; 20[label="List.nubByNubBy'3 xu3 [] (xu40 : [])",fontsize=16,color="black",shape="box"];20 -> 22[label="",style="solid", color="black", weight=3]; 21[label="List.nubByNubBy'1 xu3 xu410 xu411 (xu40 : []) (List.elem_by xu3 xu410 (xu40 : []))",fontsize=16,color="black",shape="box"];21 -> 23[label="",style="solid", color="black", weight=3]; 22[label="[]",fontsize=16,color="green",shape="box"];23 -> 452[label="",style="dashed", color="red", weight=0]; 23[label="List.nubByNubBy'1 xu3 xu410 xu411 (xu40 : []) (xu3 xu40 xu410 || List.elem_by xu3 xu410 [])",fontsize=16,color="magenta"];23 -> 453[label="",style="dashed", color="magenta", weight=3]; 23 -> 454[label="",style="dashed", color="magenta", weight=3]; 23 -> 455[label="",style="dashed", color="magenta", weight=3]; 23 -> 456[label="",style="dashed", color="magenta", weight=3]; 23 -> 457[label="",style="dashed", color="magenta", weight=3]; 23 -> 458[label="",style="dashed", color="magenta", weight=3]; 23 -> 459[label="",style="dashed", color="magenta", weight=3]; 453[label="xu40",fontsize=16,color="green",shape="box"];454[label="[]",fontsize=16,color="green",shape="box"];455[label="xu3",fontsize=16,color="green",shape="box"];456[label="[]",fontsize=16,color="green",shape="box"];457[label="xu3 xu40 xu410",fontsize=16,color="green",shape="box"];457 -> 461[label="",style="dashed", color="green", weight=3]; 457 -> 462[label="",style="dashed", color="green", weight=3]; 458[label="xu410",fontsize=16,color="green",shape="box"];459[label="xu411",fontsize=16,color="green",shape="box"];452[label="List.nubByNubBy'1 xu32 xu33 xu34 (xu35 : xu36) (xu39 || List.elem_by xu32 xu33 xu38)",fontsize=16,color="burlywood",shape="triangle"];497[label="xu39/False",fontsize=10,color="white",style="solid",shape="box"];452 -> 497[label="",style="solid", color="burlywood", weight=9]; 497 -> 463[label="",style="solid", color="burlywood", weight=3]; 498[label="xu39/True",fontsize=10,color="white",style="solid",shape="box"];452 -> 498[label="",style="solid", color="burlywood", weight=9]; 498 -> 464[label="",style="solid", color="burlywood", weight=3]; 461[label="xu40",fontsize=16,color="green",shape="box"];462[label="xu410",fontsize=16,color="green",shape="box"];463[label="List.nubByNubBy'1 xu32 xu33 xu34 (xu35 : xu36) (False || List.elem_by xu32 xu33 xu38)",fontsize=16,color="black",shape="box"];463 -> 467[label="",style="solid", color="black", weight=3]; 464[label="List.nubByNubBy'1 xu32 xu33 xu34 (xu35 : xu36) (True || List.elem_by xu32 xu33 xu38)",fontsize=16,color="black",shape="box"];464 -> 468[label="",style="solid", color="black", weight=3]; 467[label="List.nubByNubBy'1 xu32 xu33 xu34 (xu35 : xu36) (List.elem_by xu32 xu33 xu38)",fontsize=16,color="burlywood",shape="triangle"];499[label="xu38/xu380 : xu381",fontsize=10,color="white",style="solid",shape="box"];467 -> 499[label="",style="solid", color="burlywood", weight=9]; 499 -> 469[label="",style="solid", color="burlywood", weight=3]; 500[label="xu38/[]",fontsize=10,color="white",style="solid",shape="box"];467 -> 500[label="",style="solid", color="burlywood", weight=9]; 500 -> 470[label="",style="solid", color="burlywood", weight=3]; 468[label="List.nubByNubBy'1 xu32 xu33 xu34 (xu35 : xu36) True",fontsize=16,color="black",shape="box"];468 -> 471[label="",style="solid", color="black", weight=3]; 469[label="List.nubByNubBy'1 xu32 xu33 xu34 (xu35 : xu36) (List.elem_by xu32 xu33 (xu380 : xu381))",fontsize=16,color="black",shape="box"];469 -> 472[label="",style="solid", color="black", weight=3]; 470[label="List.nubByNubBy'1 xu32 xu33 xu34 (xu35 : xu36) (List.elem_by xu32 xu33 [])",fontsize=16,color="black",shape="box"];470 -> 473[label="",style="solid", color="black", weight=3]; 471[label="List.nubByNubBy' xu32 xu34 (xu35 : xu36)",fontsize=16,color="burlywood",shape="triangle"];501[label="xu34/xu340 : xu341",fontsize=10,color="white",style="solid",shape="box"];471 -> 501[label="",style="solid", color="burlywood", weight=9]; 501 -> 474[label="",style="solid", color="burlywood", weight=3]; 502[label="xu34/[]",fontsize=10,color="white",style="solid",shape="box"];471 -> 502[label="",style="solid", color="burlywood", weight=9]; 502 -> 475[label="",style="solid", color="burlywood", weight=3]; 472 -> 452[label="",style="dashed", color="red", weight=0]; 472[label="List.nubByNubBy'1 xu32 xu33 xu34 (xu35 : xu36) (xu32 xu380 xu33 || List.elem_by xu32 xu33 xu381)",fontsize=16,color="magenta"];472 -> 476[label="",style="dashed", color="magenta", weight=3]; 472 -> 477[label="",style="dashed", color="magenta", weight=3]; 473[label="List.nubByNubBy'1 xu32 xu33 xu34 (xu35 : xu36) False",fontsize=16,color="black",shape="box"];473 -> 478[label="",style="solid", color="black", weight=3]; 474[label="List.nubByNubBy' xu32 (xu340 : xu341) (xu35 : xu36)",fontsize=16,color="black",shape="box"];474 -> 479[label="",style="solid", color="black", weight=3]; 475[label="List.nubByNubBy' xu32 [] (xu35 : xu36)",fontsize=16,color="black",shape="box"];475 -> 480[label="",style="solid", color="black", weight=3]; 476[label="xu381",fontsize=16,color="green",shape="box"];477[label="xu32 xu380 xu33",fontsize=16,color="green",shape="box"];477 -> 481[label="",style="dashed", color="green", weight=3]; 477 -> 482[label="",style="dashed", color="green", weight=3]; 478[label="List.nubByNubBy'0 xu32 xu33 xu34 (xu35 : xu36) otherwise",fontsize=16,color="black",shape="box"];478 -> 483[label="",style="solid", color="black", weight=3]; 479[label="List.nubByNubBy'2 xu32 (xu340 : xu341) (xu35 : xu36)",fontsize=16,color="black",shape="box"];479 -> 484[label="",style="solid", color="black", weight=3]; 480[label="List.nubByNubBy'3 xu32 [] (xu35 : xu36)",fontsize=16,color="black",shape="box"];480 -> 485[label="",style="solid", color="black", weight=3]; 481[label="xu380",fontsize=16,color="green",shape="box"];482[label="xu33",fontsize=16,color="green",shape="box"];483[label="List.nubByNubBy'0 xu32 xu33 xu34 (xu35 : xu36) True",fontsize=16,color="black",shape="box"];483 -> 486[label="",style="solid", color="black", weight=3]; 484 -> 467[label="",style="dashed", color="red", weight=0]; 484[label="List.nubByNubBy'1 xu32 xu340 xu341 (xu35 : xu36) (List.elem_by xu32 xu340 (xu35 : xu36))",fontsize=16,color="magenta"];484 -> 487[label="",style="dashed", color="magenta", weight=3]; 484 -> 488[label="",style="dashed", color="magenta", weight=3]; 484 -> 489[label="",style="dashed", color="magenta", weight=3]; 485[label="[]",fontsize=16,color="green",shape="box"];486[label="xu33 : List.nubByNubBy' xu32 xu34 (xu33 : xu35 : xu36)",fontsize=16,color="green",shape="box"];486 -> 490[label="",style="dashed", color="green", weight=3]; 487[label="xu35 : xu36",fontsize=16,color="green",shape="box"];488[label="xu340",fontsize=16,color="green",shape="box"];489[label="xu341",fontsize=16,color="green",shape="box"];490 -> 471[label="",style="dashed", color="red", weight=0]; 490[label="List.nubByNubBy' xu32 xu34 (xu33 : xu35 : xu36)",fontsize=16,color="magenta"];490 -> 491[label="",style="dashed", color="magenta", weight=3]; 490 -> 492[label="",style="dashed", color="magenta", weight=3]; 491[label="xu33",fontsize=16,color="green",shape="box"];492[label="xu35 : xu36",fontsize=16,color="green",shape="box"];} ---------------------------------------- (8) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'(xu32, :(xu340, xu341), xu35, xu36, ba) -> new_nubByNubBy'1(xu32, xu340, xu341, xu35, xu36, :(xu35, xu36), ba) new_nubByNubBy'1(xu32, xu33, xu34, xu35, xu36, :(xu380, xu381), ba) -> new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, xu381, ba) new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, [], ba) -> new_nubByNubBy'(xu32, xu34, xu33, :(xu35, xu36), ba) new_nubByNubBy'10(xu32, xu33, :(xu340, xu341), xu35, xu36, xu38, ba) -> new_nubByNubBy'1(xu32, xu340, xu341, xu35, xu36, :(xu35, xu36), ba) new_nubByNubBy'1(xu32, xu33, xu34, xu35, xu36, [], ba) -> new_nubByNubBy'(xu32, xu34, xu33, :(xu35, xu36), ba) new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, :(xu380, xu381), ba) -> new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, xu381, ba) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (9) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (10) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'1(xu32, xu33, xu34, xu35, xu36, :(xu380, xu381), ba) -> new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, xu381, ba) new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, [], ba) -> new_nubByNubBy'(xu32, xu34, xu33, :(xu35, xu36), ba) new_nubByNubBy'(xu32, :(xu340, xu341), xu35, xu36, ba) -> new_nubByNubBy'1(xu32, xu340, xu341, xu35, xu36, :(xu35, xu36), ba) new_nubByNubBy'10(xu32, xu33, :(xu340, xu341), xu35, xu36, xu38, ba) -> new_nubByNubBy'1(xu32, xu340, xu341, xu35, xu36, :(xu35, xu36), ba) new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, :(xu380, xu381), ba) -> new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, xu381, ba) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (11) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_nubByNubBy'1(xu32, xu33, xu34, xu35, xu36, :(xu380, xu381), ba) -> new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, xu381, ba) we obtained the following new rules [LPAR04]: (new_nubByNubBy'1(z0, z1, z2, z3, z4, :(z3, z4), z5) -> new_nubByNubBy'10(z0, z1, z2, z3, z4, z4, z5),new_nubByNubBy'1(z0, z1, z2, z3, z4, :(z3, z4), z5) -> new_nubByNubBy'10(z0, z1, z2, z3, z4, z4, z5)) ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, [], ba) -> new_nubByNubBy'(xu32, xu34, xu33, :(xu35, xu36), ba) new_nubByNubBy'(xu32, :(xu340, xu341), xu35, xu36, ba) -> new_nubByNubBy'1(xu32, xu340, xu341, xu35, xu36, :(xu35, xu36), ba) new_nubByNubBy'10(xu32, xu33, :(xu340, xu341), xu35, xu36, xu38, ba) -> new_nubByNubBy'1(xu32, xu340, xu341, xu35, xu36, :(xu35, xu36), ba) new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, :(xu380, xu381), ba) -> new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, xu381, ba) new_nubByNubBy'1(z0, z1, z2, z3, z4, :(z3, z4), z5) -> new_nubByNubBy'10(z0, z1, z2, z3, z4, z4, z5) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) 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_nubByNubBy'(xu32, :(xu340, xu341), xu35, xu36, ba) -> new_nubByNubBy'1(xu32, xu340, xu341, xu35, xu36, :(xu35, xu36), ba) The graph contains the following edges 1 >= 1, 2 > 2, 2 > 3, 3 >= 4, 4 >= 5, 5 >= 7 *new_nubByNubBy'1(z0, z1, z2, z3, z4, :(z3, z4), z5) -> new_nubByNubBy'10(z0, z1, z2, z3, z4, z4, z5) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 6 > 4, 5 >= 5, 6 > 5, 5 >= 6, 6 > 6, 7 >= 7 *new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, :(xu380, xu381), ba) -> new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, xu381, ba) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 > 6, 7 >= 7 *new_nubByNubBy'10(xu32, xu33, xu34, xu35, xu36, [], ba) -> new_nubByNubBy'(xu32, xu34, xu33, :(xu35, xu36), ba) The graph contains the following edges 1 >= 1, 3 >= 2, 2 >= 3, 7 >= 5 *new_nubByNubBy'10(xu32, xu33, :(xu340, xu341), xu35, xu36, xu38, ba) -> new_nubByNubBy'1(xu32, xu340, xu341, xu35, xu36, :(xu35, xu36), ba) The graph contains the following edges 1 >= 1, 3 > 2, 3 > 3, 4 >= 4, 5 >= 5, 7 >= 7 ---------------------------------------- (14) YES