/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: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 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) NumRed [SOUND, 3 ms] (6) HASKELL (7) Narrow [SOUND, 0 ms] (8) QDP (9) DependencyGraphProof [EQUIVALENT, 0 ms] (10) AND (11) QDP (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] (13) YES (14) QDP (15) QDPSizeChangeProof [EQUIVALENT, 0 ms] (16) YES (17) QDP (18) QDPPairToRuleProof [EQUIVALENT, 0 ms] (19) AND (20) QDP (21) TransformationProof [EQUIVALENT, 0 ms] (22) QDP (23) DependencyGraphProof [EQUIVALENT, 0 ms] (24) QDP (25) UsableRulesProof [EQUIVALENT, 0 ms] (26) QDP (27) QReductionProof [EQUIVALENT, 0 ms] (28) QDP (29) InductionCalculusProof [EQUIVALENT, 0 ms] (30) QDP (31) NonInfProof [EQUIVALENT, 305 ms] (32) AND (33) QDP (34) DependencyGraphProof [EQUIVALENT, 0 ms] (35) TRUE (36) QDP (37) DependencyGraphProof [EQUIVALENT, 0 ms] (38) TRUE (39) QDP (40) QDPSizeChangeProof [EQUIVALENT, 0 ms] (41) YES (42) QDP (43) QDPSizeChangeProof [EQUIVALENT, 0 ms] (44) YES ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (1) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (3) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "takeWhile p [] = []; takeWhile p (x : xs)|p xx : takeWhile p xs|otherwise[]; " is transformed to "takeWhile p [] = takeWhile3 p []; takeWhile p (x : xs) = takeWhile2 p (x : xs); " "takeWhile1 p x xs True = x : takeWhile p xs; takeWhile1 p x xs False = takeWhile0 p x xs otherwise; " "takeWhile0 p x xs True = []; " "takeWhile2 p (x : xs) = takeWhile1 p x xs (p x); " "takeWhile3 p [] = []; takeWhile3 vz wu = takeWhile2 vz wu; " The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (5) NumRed (SOUND) Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. ---------------------------------------- (6) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (7) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="enumFromTo",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="enumFromTo wv3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="enumFromTo wv3 wv4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="numericEnumFromTo wv3 wv4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 6[label="takeWhile (flip (<=) wv4) (numericEnumFrom wv3)",fontsize=16,color="black",shape="triangle"];6 -> 7[label="",style="solid", color="black", weight=3]; 7[label="takeWhile (flip (<=) wv4) (wv3 : (numericEnumFrom $! wv3 + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];7 -> 8[label="",style="solid", color="black", weight=3]; 8[label="takeWhile2 (flip (<=) wv4) (wv3 : (numericEnumFrom $! wv3 + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];8 -> 9[label="",style="solid", color="black", weight=3]; 9[label="takeWhile1 (flip (<=) wv4) wv3 (numericEnumFrom $! wv3 + fromInt (Pos (Succ Zero))) (flip (<=) wv4 wv3)",fontsize=16,color="black",shape="box"];9 -> 10[label="",style="solid", color="black", weight=3]; 10[label="takeWhile1 (flip (<=) wv4) wv3 (numericEnumFrom $! wv3 + fromInt (Pos (Succ Zero))) ((<=) wv3 wv4)",fontsize=16,color="black",shape="box"];10 -> 11[label="",style="solid", color="black", weight=3]; 11[label="takeWhile1 (flip (<=) wv4) wv3 (numericEnumFrom $! wv3 + fromInt (Pos (Succ Zero))) (compare wv3 wv4 /= GT)",fontsize=16,color="black",shape="box"];11 -> 12[label="",style="solid", color="black", weight=3]; 12[label="takeWhile1 (flip (<=) wv4) wv3 (numericEnumFrom $! wv3 + fromInt (Pos (Succ Zero))) (not (compare wv3 wv4 == GT))",fontsize=16,color="black",shape="box"];12 -> 13[label="",style="solid", color="black", weight=3]; 13[label="takeWhile1 (flip (<=) wv4) wv3 (numericEnumFrom $! wv3 + fromInt (Pos (Succ Zero))) (not (primCmpInt wv3 wv4 == GT))",fontsize=16,color="burlywood",shape="box"];948[label="wv3/Pos wv30",fontsize=10,color="white",style="solid",shape="box"];13 -> 948[label="",style="solid", color="burlywood", weight=9]; 948 -> 14[label="",style="solid", color="burlywood", weight=3]; 949[label="wv3/Neg wv30",fontsize=10,color="white",style="solid",shape="box"];13 -> 949[label="",style="solid", color="burlywood", weight=9]; 949 -> 15[label="",style="solid", color="burlywood", weight=3]; 14[label="takeWhile1 (flip (<=) wv4) (Pos wv30) (numericEnumFrom $! Pos wv30 + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos wv30) wv4 == GT))",fontsize=16,color="burlywood",shape="box"];950[label="wv30/Succ wv300",fontsize=10,color="white",style="solid",shape="box"];14 -> 950[label="",style="solid", color="burlywood", weight=9]; 950 -> 16[label="",style="solid", color="burlywood", weight=3]; 951[label="wv30/Zero",fontsize=10,color="white",style="solid",shape="box"];14 -> 951[label="",style="solid", color="burlywood", weight=9]; 951 -> 17[label="",style="solid", color="burlywood", weight=3]; 15[label="takeWhile1 (flip (<=) wv4) (Neg wv30) (numericEnumFrom $! Neg wv30 + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg wv30) wv4 == GT))",fontsize=16,color="burlywood",shape="box"];952[label="wv30/Succ wv300",fontsize=10,color="white",style="solid",shape="box"];15 -> 952[label="",style="solid", color="burlywood", weight=9]; 952 -> 18[label="",style="solid", color="burlywood", weight=3]; 953[label="wv30/Zero",fontsize=10,color="white",style="solid",shape="box"];15 -> 953[label="",style="solid", color="burlywood", weight=9]; 953 -> 19[label="",style="solid", color="burlywood", weight=3]; 16[label="takeWhile1 (flip (<=) wv4) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos (Succ wv300)) wv4 == GT))",fontsize=16,color="burlywood",shape="box"];954[label="wv4/Pos wv40",fontsize=10,color="white",style="solid",shape="box"];16 -> 954[label="",style="solid", color="burlywood", weight=9]; 954 -> 20[label="",style="solid", color="burlywood", weight=3]; 955[label="wv4/Neg wv40",fontsize=10,color="white",style="solid",shape="box"];16 -> 955[label="",style="solid", color="burlywood", weight=9]; 955 -> 21[label="",style="solid", color="burlywood", weight=3]; 17[label="takeWhile1 (flip (<=) wv4) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos Zero) wv4 == GT))",fontsize=16,color="burlywood",shape="box"];956[label="wv4/Pos wv40",fontsize=10,color="white",style="solid",shape="box"];17 -> 956[label="",style="solid", color="burlywood", weight=9]; 956 -> 22[label="",style="solid", color="burlywood", weight=3]; 957[label="wv4/Neg wv40",fontsize=10,color="white",style="solid",shape="box"];17 -> 957[label="",style="solid", color="burlywood", weight=9]; 957 -> 23[label="",style="solid", color="burlywood", weight=3]; 18[label="takeWhile1 (flip (<=) wv4) (Neg (Succ wv300)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg (Succ wv300)) wv4 == GT))",fontsize=16,color="burlywood",shape="box"];958[label="wv4/Pos wv40",fontsize=10,color="white",style="solid",shape="box"];18 -> 958[label="",style="solid", color="burlywood", weight=9]; 958 -> 24[label="",style="solid", color="burlywood", weight=3]; 959[label="wv4/Neg wv40",fontsize=10,color="white",style="solid",shape="box"];18 -> 959[label="",style="solid", color="burlywood", weight=9]; 959 -> 25[label="",style="solid", color="burlywood", weight=3]; 19[label="takeWhile1 (flip (<=) wv4) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg Zero) wv4 == GT))",fontsize=16,color="burlywood",shape="box"];960[label="wv4/Pos wv40",fontsize=10,color="white",style="solid",shape="box"];19 -> 960[label="",style="solid", color="burlywood", weight=9]; 960 -> 26[label="",style="solid", color="burlywood", weight=3]; 961[label="wv4/Neg wv40",fontsize=10,color="white",style="solid",shape="box"];19 -> 961[label="",style="solid", color="burlywood", weight=9]; 961 -> 27[label="",style="solid", color="burlywood", weight=3]; 20[label="takeWhile1 (flip (<=) (Pos wv40)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos (Succ wv300)) (Pos wv40) == GT))",fontsize=16,color="black",shape="box"];20 -> 28[label="",style="solid", color="black", weight=3]; 21[label="takeWhile1 (flip (<=) (Neg wv40)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos (Succ wv300)) (Neg wv40) == GT))",fontsize=16,color="black",shape="box"];21 -> 29[label="",style="solid", color="black", weight=3]; 22[label="takeWhile1 (flip (<=) (Pos wv40)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos Zero) (Pos wv40) == GT))",fontsize=16,color="burlywood",shape="box"];962[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];22 -> 962[label="",style="solid", color="burlywood", weight=9]; 962 -> 30[label="",style="solid", color="burlywood", weight=3]; 963[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];22 -> 963[label="",style="solid", color="burlywood", weight=9]; 963 -> 31[label="",style="solid", color="burlywood", weight=3]; 23[label="takeWhile1 (flip (<=) (Neg wv40)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos Zero) (Neg wv40) == GT))",fontsize=16,color="burlywood",shape="box"];964[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];23 -> 964[label="",style="solid", color="burlywood", weight=9]; 964 -> 32[label="",style="solid", color="burlywood", weight=3]; 965[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];23 -> 965[label="",style="solid", color="burlywood", weight=9]; 965 -> 33[label="",style="solid", color="burlywood", weight=3]; 24[label="takeWhile1 (flip (<=) (Pos wv40)) (Neg (Succ wv300)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg (Succ wv300)) (Pos wv40) == GT))",fontsize=16,color="black",shape="box"];24 -> 34[label="",style="solid", color="black", weight=3]; 25[label="takeWhile1 (flip (<=) (Neg wv40)) (Neg (Succ wv300)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg (Succ wv300)) (Neg wv40) == GT))",fontsize=16,color="black",shape="box"];25 -> 35[label="",style="solid", color="black", weight=3]; 26[label="takeWhile1 (flip (<=) (Pos wv40)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg Zero) (Pos wv40) == GT))",fontsize=16,color="burlywood",shape="box"];966[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];26 -> 966[label="",style="solid", color="burlywood", weight=9]; 966 -> 36[label="",style="solid", color="burlywood", weight=3]; 967[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];26 -> 967[label="",style="solid", color="burlywood", weight=9]; 967 -> 37[label="",style="solid", color="burlywood", weight=3]; 27[label="takeWhile1 (flip (<=) (Neg wv40)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg Zero) (Neg wv40) == GT))",fontsize=16,color="burlywood",shape="box"];968[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];27 -> 968[label="",style="solid", color="burlywood", weight=9]; 968 -> 38[label="",style="solid", color="burlywood", weight=3]; 969[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];27 -> 969[label="",style="solid", color="burlywood", weight=9]; 969 -> 39[label="",style="solid", color="burlywood", weight=3]; 28[label="takeWhile1 (flip (<=) (Pos wv40)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv300) wv40 == GT))",fontsize=16,color="burlywood",shape="box"];970[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];28 -> 970[label="",style="solid", color="burlywood", weight=9]; 970 -> 40[label="",style="solid", color="burlywood", weight=3]; 971[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];28 -> 971[label="",style="solid", color="burlywood", weight=9]; 971 -> 41[label="",style="solid", color="burlywood", weight=3]; 29[label="takeWhile1 (flip (<=) (Neg wv40)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) (not (GT == GT))",fontsize=16,color="black",shape="box"];29 -> 42[label="",style="solid", color="black", weight=3]; 30[label="takeWhile1 (flip (<=) (Pos (Succ wv400))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos Zero) (Pos (Succ wv400)) == GT))",fontsize=16,color="black",shape="box"];30 -> 43[label="",style="solid", color="black", weight=3]; 31[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos Zero) (Pos Zero) == GT))",fontsize=16,color="black",shape="box"];31 -> 44[label="",style="solid", color="black", weight=3]; 32[label="takeWhile1 (flip (<=) (Neg (Succ wv400))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos Zero) (Neg (Succ wv400)) == GT))",fontsize=16,color="black",shape="box"];32 -> 45[label="",style="solid", color="black", weight=3]; 33[label="takeWhile1 (flip (<=) (Neg Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos Zero) (Neg Zero) == GT))",fontsize=16,color="black",shape="box"];33 -> 46[label="",style="solid", color="black", weight=3]; 34[label="takeWhile1 (flip (<=) (Pos wv40)) (Neg (Succ wv300)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero))) (not (LT == GT))",fontsize=16,color="black",shape="box"];34 -> 47[label="",style="solid", color="black", weight=3]; 35[label="takeWhile1 (flip (<=) (Neg wv40)) (Neg (Succ wv300)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv40 (Succ wv300) == GT))",fontsize=16,color="burlywood",shape="box"];972[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];35 -> 972[label="",style="solid", color="burlywood", weight=9]; 972 -> 48[label="",style="solid", color="burlywood", weight=3]; 973[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];35 -> 973[label="",style="solid", color="burlywood", weight=9]; 973 -> 49[label="",style="solid", color="burlywood", weight=3]; 36[label="takeWhile1 (flip (<=) (Pos (Succ wv400))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg Zero) (Pos (Succ wv400)) == GT))",fontsize=16,color="black",shape="box"];36 -> 50[label="",style="solid", color="black", weight=3]; 37[label="takeWhile1 (flip (<=) (Pos Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg Zero) (Pos Zero) == GT))",fontsize=16,color="black",shape="box"];37 -> 51[label="",style="solid", color="black", weight=3]; 38[label="takeWhile1 (flip (<=) (Neg (Succ wv400))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg Zero) (Neg (Succ wv400)) == GT))",fontsize=16,color="black",shape="box"];38 -> 52[label="",style="solid", color="black", weight=3]; 39[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg Zero) (Neg Zero) == GT))",fontsize=16,color="black",shape="box"];39 -> 53[label="",style="solid", color="black", weight=3]; 40[label="takeWhile1 (flip (<=) (Pos (Succ wv400))) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv300) (Succ wv400) == GT))",fontsize=16,color="black",shape="box"];40 -> 54[label="",style="solid", color="black", weight=3]; 41[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv300) Zero == GT))",fontsize=16,color="black",shape="box"];41 -> 55[label="",style="solid", color="black", weight=3]; 42[label="takeWhile1 (flip (<=) (Neg wv40)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) (not True)",fontsize=16,color="black",shape="box"];42 -> 56[label="",style="solid", color="black", weight=3]; 43[label="takeWhile1 (flip (<=) (Pos (Succ wv400))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero (Succ wv400) == GT))",fontsize=16,color="black",shape="box"];43 -> 57[label="",style="solid", color="black", weight=3]; 44[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (EQ == GT))",fontsize=16,color="black",shape="box"];44 -> 58[label="",style="solid", color="black", weight=3]; 45[label="takeWhile1 (flip (<=) (Neg (Succ wv400))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (GT == GT))",fontsize=16,color="black",shape="box"];45 -> 59[label="",style="solid", color="black", weight=3]; 46[label="takeWhile1 (flip (<=) (Neg Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (EQ == GT))",fontsize=16,color="black",shape="box"];46 -> 60[label="",style="solid", color="black", weight=3]; 47[label="takeWhile1 (flip (<=) (Pos wv40)) (Neg (Succ wv300)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];47 -> 61[label="",style="solid", color="black", weight=3]; 48[label="takeWhile1 (flip (<=) (Neg (Succ wv400))) (Neg (Succ wv300)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv400) (Succ wv300) == GT))",fontsize=16,color="black",shape="box"];48 -> 62[label="",style="solid", color="black", weight=3]; 49[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg (Succ wv300)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero (Succ wv300) == GT))",fontsize=16,color="black",shape="box"];49 -> 63[label="",style="solid", color="black", weight=3]; 50[label="takeWhile1 (flip (<=) (Pos (Succ wv400))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (LT == GT))",fontsize=16,color="black",shape="box"];50 -> 64[label="",style="solid", color="black", weight=3]; 51[label="takeWhile1 (flip (<=) (Pos Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (EQ == GT))",fontsize=16,color="black",shape="box"];51 -> 65[label="",style="solid", color="black", weight=3]; 52[label="takeWhile1 (flip (<=) (Neg (Succ wv400))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv400) Zero == GT))",fontsize=16,color="black",shape="box"];52 -> 66[label="",style="solid", color="black", weight=3]; 53[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (EQ == GT))",fontsize=16,color="black",shape="box"];53 -> 67[label="",style="solid", color="black", weight=3]; 54 -> 788[label="",style="dashed", color="red", weight=0]; 54[label="takeWhile1 (flip (<=) (Pos (Succ wv400))) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv300 wv400 == GT))",fontsize=16,color="magenta"];54 -> 789[label="",style="dashed", color="magenta", weight=3]; 54 -> 790[label="",style="dashed", color="magenta", weight=3]; 54 -> 791[label="",style="dashed", color="magenta", weight=3]; 54 -> 792[label="",style="dashed", color="magenta", weight=3]; 55[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) (not (GT == GT))",fontsize=16,color="black",shape="box"];55 -> 70[label="",style="solid", color="black", weight=3]; 56[label="takeWhile1 (flip (<=) (Neg wv40)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) False",fontsize=16,color="black",shape="box"];56 -> 71[label="",style="solid", color="black", weight=3]; 57[label="takeWhile1 (flip (<=) (Pos (Succ wv400))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (LT == GT))",fontsize=16,color="black",shape="box"];57 -> 72[label="",style="solid", color="black", weight=3]; 58[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];58 -> 73[label="",style="solid", color="black", weight=3]; 59[label="takeWhile1 (flip (<=) (Neg (Succ wv400))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not True)",fontsize=16,color="black",shape="box"];59 -> 74[label="",style="solid", color="black", weight=3]; 60[label="takeWhile1 (flip (<=) (Neg Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];60 -> 75[label="",style="solid", color="black", weight=3]; 61[label="takeWhile1 (flip (<=) (Pos wv40)) (Neg (Succ wv300)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];61 -> 76[label="",style="solid", color="black", weight=3]; 62 -> 834[label="",style="dashed", color="red", weight=0]; 62[label="takeWhile1 (flip (<=) (Neg (Succ wv400))) (Neg (Succ wv300)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv400 wv300 == GT))",fontsize=16,color="magenta"];62 -> 835[label="",style="dashed", color="magenta", weight=3]; 62 -> 836[label="",style="dashed", color="magenta", weight=3]; 62 -> 837[label="",style="dashed", color="magenta", weight=3]; 62 -> 838[label="",style="dashed", color="magenta", weight=3]; 63[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg (Succ wv300)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero))) (not (LT == GT))",fontsize=16,color="black",shape="box"];63 -> 79[label="",style="solid", color="black", weight=3]; 64[label="takeWhile1 (flip (<=) (Pos (Succ wv400))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];64 -> 80[label="",style="solid", color="black", weight=3]; 65[label="takeWhile1 (flip (<=) (Pos Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];65 -> 81[label="",style="solid", color="black", weight=3]; 66[label="takeWhile1 (flip (<=) (Neg (Succ wv400))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (GT == GT))",fontsize=16,color="black",shape="box"];66 -> 82[label="",style="solid", color="black", weight=3]; 67[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];67 -> 83[label="",style="solid", color="black", weight=3]; 789[label="wv400",fontsize=16,color="green",shape="box"];790[label="wv300",fontsize=16,color="green",shape="box"];791[label="wv400",fontsize=16,color="green",shape="box"];792[label="wv300",fontsize=16,color="green",shape="box"];788[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv53 wv54 == GT))",fontsize=16,color="burlywood",shape="triangle"];974[label="wv53/Succ wv530",fontsize=10,color="white",style="solid",shape="box"];788 -> 974[label="",style="solid", color="burlywood", weight=9]; 974 -> 829[label="",style="solid", color="burlywood", weight=3]; 975[label="wv53/Zero",fontsize=10,color="white",style="solid",shape="box"];788 -> 975[label="",style="solid", color="burlywood", weight=9]; 975 -> 830[label="",style="solid", color="burlywood", weight=3]; 70[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) (not True)",fontsize=16,color="black",shape="box"];70 -> 88[label="",style="solid", color="black", weight=3]; 71[label="takeWhile0 (flip (<=) (Neg wv40)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) otherwise",fontsize=16,color="black",shape="box"];71 -> 89[label="",style="solid", color="black", weight=3]; 72[label="takeWhile1 (flip (<=) (Pos (Succ wv400))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];72 -> 90[label="",style="solid", color="black", weight=3]; 73[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];73 -> 91[label="",style="solid", color="black", weight=3]; 74[label="takeWhile1 (flip (<=) (Neg (Succ wv400))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) False",fontsize=16,color="black",shape="box"];74 -> 92[label="",style="solid", color="black", weight=3]; 75[label="takeWhile1 (flip (<=) (Neg Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];75 -> 93[label="",style="solid", color="black", weight=3]; 76[label="Neg (Succ wv300) : takeWhile (flip (<=) (Pos wv40)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];76 -> 94[label="",style="dashed", color="green", weight=3]; 835[label="wv300",fontsize=16,color="green",shape="box"];836[label="wv400",fontsize=16,color="green",shape="box"];837[label="wv300",fontsize=16,color="green",shape="box"];838[label="wv400",fontsize=16,color="green",shape="box"];834[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv58 wv59 == GT))",fontsize=16,color="burlywood",shape="triangle"];976[label="wv58/Succ wv580",fontsize=10,color="white",style="solid",shape="box"];834 -> 976[label="",style="solid", color="burlywood", weight=9]; 976 -> 875[label="",style="solid", color="burlywood", weight=3]; 977[label="wv58/Zero",fontsize=10,color="white",style="solid",shape="box"];834 -> 977[label="",style="solid", color="burlywood", weight=9]; 977 -> 876[label="",style="solid", color="burlywood", weight=3]; 79[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg (Succ wv300)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];79 -> 99[label="",style="solid", color="black", weight=3]; 80[label="takeWhile1 (flip (<=) (Pos (Succ wv400))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];80 -> 100[label="",style="solid", color="black", weight=3]; 81[label="takeWhile1 (flip (<=) (Pos Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];81 -> 101[label="",style="solid", color="black", weight=3]; 82[label="takeWhile1 (flip (<=) (Neg (Succ wv400))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not True)",fontsize=16,color="black",shape="box"];82 -> 102[label="",style="solid", color="black", weight=3]; 83[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];83 -> 103[label="",style="solid", color="black", weight=3]; 829[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv530) wv54 == GT))",fontsize=16,color="burlywood",shape="box"];978[label="wv54/Succ wv540",fontsize=10,color="white",style="solid",shape="box"];829 -> 978[label="",style="solid", color="burlywood", weight=9]; 978 -> 877[label="",style="solid", color="burlywood", weight=3]; 979[label="wv54/Zero",fontsize=10,color="white",style="solid",shape="box"];829 -> 979[label="",style="solid", color="burlywood", weight=9]; 979 -> 878[label="",style="solid", color="burlywood", weight=3]; 830[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero wv54 == GT))",fontsize=16,color="burlywood",shape="box"];980[label="wv54/Succ wv540",fontsize=10,color="white",style="solid",shape="box"];830 -> 980[label="",style="solid", color="burlywood", weight=9]; 980 -> 879[label="",style="solid", color="burlywood", weight=3]; 981[label="wv54/Zero",fontsize=10,color="white",style="solid",shape="box"];830 -> 981[label="",style="solid", color="burlywood", weight=9]; 981 -> 880[label="",style="solid", color="burlywood", weight=3]; 88[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) False",fontsize=16,color="black",shape="box"];88 -> 108[label="",style="solid", color="black", weight=3]; 89[label="takeWhile0 (flip (<=) (Neg wv40)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];89 -> 109[label="",style="solid", color="black", weight=3]; 90[label="takeWhile1 (flip (<=) (Pos (Succ wv400))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];90 -> 110[label="",style="solid", color="black", weight=3]; 91[label="Pos Zero : takeWhile (flip (<=) (Pos Zero)) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];91 -> 111[label="",style="dashed", color="green", weight=3]; 92[label="takeWhile0 (flip (<=) (Neg (Succ wv400))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) otherwise",fontsize=16,color="black",shape="box"];92 -> 112[label="",style="solid", color="black", weight=3]; 93[label="Pos Zero : takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];93 -> 113[label="",style="dashed", color="green", weight=3]; 94[label="takeWhile (flip (<=) (Pos wv40)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];94 -> 114[label="",style="solid", color="black", weight=3]; 875[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv580) wv59 == GT))",fontsize=16,color="burlywood",shape="box"];982[label="wv59/Succ wv590",fontsize=10,color="white",style="solid",shape="box"];875 -> 982[label="",style="solid", color="burlywood", weight=9]; 982 -> 881[label="",style="solid", color="burlywood", weight=3]; 983[label="wv59/Zero",fontsize=10,color="white",style="solid",shape="box"];875 -> 983[label="",style="solid", color="burlywood", weight=9]; 983 -> 882[label="",style="solid", color="burlywood", weight=3]; 876[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero wv59 == GT))",fontsize=16,color="burlywood",shape="box"];984[label="wv59/Succ wv590",fontsize=10,color="white",style="solid",shape="box"];876 -> 984[label="",style="solid", color="burlywood", weight=9]; 984 -> 883[label="",style="solid", color="burlywood", weight=3]; 985[label="wv59/Zero",fontsize=10,color="white",style="solid",shape="box"];876 -> 985[label="",style="solid", color="burlywood", weight=9]; 985 -> 884[label="",style="solid", color="burlywood", weight=3]; 99[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg (Succ wv300)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];99 -> 119[label="",style="solid", color="black", weight=3]; 100[label="Neg Zero : takeWhile (flip (<=) (Pos (Succ wv400))) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];100 -> 120[label="",style="dashed", color="green", weight=3]; 101[label="Neg Zero : takeWhile (flip (<=) (Pos Zero)) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];101 -> 121[label="",style="dashed", color="green", weight=3]; 102[label="takeWhile1 (flip (<=) (Neg (Succ wv400))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) False",fontsize=16,color="black",shape="box"];102 -> 122[label="",style="solid", color="black", weight=3]; 103[label="Neg Zero : takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];103 -> 123[label="",style="dashed", color="green", weight=3]; 877[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv530) (Succ wv540) == GT))",fontsize=16,color="black",shape="box"];877 -> 885[label="",style="solid", color="black", weight=3]; 878[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv530) Zero == GT))",fontsize=16,color="black",shape="box"];878 -> 886[label="",style="solid", color="black", weight=3]; 879[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero (Succ wv540) == GT))",fontsize=16,color="black",shape="box"];879 -> 887[label="",style="solid", color="black", weight=3]; 880[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero Zero == GT))",fontsize=16,color="black",shape="box"];880 -> 888[label="",style="solid", color="black", weight=3]; 108[label="takeWhile0 (flip (<=) (Pos Zero)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) otherwise",fontsize=16,color="black",shape="box"];108 -> 129[label="",style="solid", color="black", weight=3]; 109[label="[]",fontsize=16,color="green",shape="box"];110[label="Pos Zero : takeWhile (flip (<=) (Pos (Succ wv400))) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];110 -> 130[label="",style="dashed", color="green", weight=3]; 111[label="takeWhile (flip (<=) (Pos Zero)) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];111 -> 131[label="",style="solid", color="black", weight=3]; 112[label="takeWhile0 (flip (<=) (Neg (Succ wv400))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];112 -> 132[label="",style="solid", color="black", weight=3]; 113[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];113 -> 133[label="",style="solid", color="black", weight=3]; 114[label="takeWhile (flip (<=) (Pos wv40)) (Neg (Succ wv300) + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Neg (Succ wv300) + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];114 -> 134[label="",style="solid", color="black", weight=3]; 881[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv580) (Succ wv590) == GT))",fontsize=16,color="black",shape="box"];881 -> 889[label="",style="solid", color="black", weight=3]; 882[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv580) Zero == GT))",fontsize=16,color="black",shape="box"];882 -> 890[label="",style="solid", color="black", weight=3]; 883[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero (Succ wv590) == GT))",fontsize=16,color="black",shape="box"];883 -> 891[label="",style="solid", color="black", weight=3]; 884[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero Zero == GT))",fontsize=16,color="black",shape="box"];884 -> 892[label="",style="solid", color="black", weight=3]; 119[label="Neg (Succ wv300) : takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];119 -> 140[label="",style="dashed", color="green", weight=3]; 120[label="takeWhile (flip (<=) (Pos (Succ wv400))) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];120 -> 141[label="",style="solid", color="black", weight=3]; 121[label="takeWhile (flip (<=) (Pos Zero)) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];121 -> 142[label="",style="solid", color="black", weight=3]; 122[label="takeWhile0 (flip (<=) (Neg (Succ wv400))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) otherwise",fontsize=16,color="black",shape="box"];122 -> 143[label="",style="solid", color="black", weight=3]; 123[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];123 -> 144[label="",style="solid", color="black", weight=3]; 885 -> 788[label="",style="dashed", color="red", weight=0]; 885[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv530 wv540 == GT))",fontsize=16,color="magenta"];885 -> 893[label="",style="dashed", color="magenta", weight=3]; 885 -> 894[label="",style="dashed", color="magenta", weight=3]; 886[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not (GT == GT))",fontsize=16,color="black",shape="box"];886 -> 895[label="",style="solid", color="black", weight=3]; 887[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not (LT == GT))",fontsize=16,color="black",shape="box"];887 -> 896[label="",style="solid", color="black", weight=3]; 888[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not (EQ == GT))",fontsize=16,color="black",shape="box"];888 -> 897[label="",style="solid", color="black", weight=3]; 129[label="takeWhile0 (flip (<=) (Pos Zero)) (Pos (Succ wv300)) (numericEnumFrom $! Pos (Succ wv300) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];129 -> 152[label="",style="solid", color="black", weight=3]; 130[label="takeWhile (flip (<=) (Pos (Succ wv400))) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];130 -> 153[label="",style="solid", color="black", weight=3]; 131[label="takeWhile (flip (<=) (Pos Zero)) (Pos Zero + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];131 -> 154[label="",style="solid", color="black", weight=3]; 132[label="[]",fontsize=16,color="green",shape="box"];133[label="takeWhile (flip (<=) (Neg Zero)) (Pos Zero + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];133 -> 155[label="",style="solid", color="black", weight=3]; 134[label="takeWhile (flip (<=) (Pos wv40)) (enforceWHNF (WHNF (Neg (Succ wv300) + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Neg (Succ wv300) + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];134 -> 156[label="",style="solid", color="black", weight=3]; 889 -> 834[label="",style="dashed", color="red", weight=0]; 889[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv580 wv590 == GT))",fontsize=16,color="magenta"];889 -> 898[label="",style="dashed", color="magenta", weight=3]; 889 -> 899[label="",style="dashed", color="magenta", weight=3]; 890[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not (GT == GT))",fontsize=16,color="black",shape="box"];890 -> 900[label="",style="solid", color="black", weight=3]; 891[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not (LT == GT))",fontsize=16,color="black",shape="box"];891 -> 901[label="",style="solid", color="black", weight=3]; 892[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not (EQ == GT))",fontsize=16,color="black",shape="box"];892 -> 902[label="",style="solid", color="black", weight=3]; 140[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom $! Neg (Succ wv300) + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];140 -> 164[label="",style="solid", color="black", weight=3]; 141[label="takeWhile (flip (<=) (Pos (Succ wv400))) (Neg Zero + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Neg Zero + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];141 -> 165[label="",style="solid", color="black", weight=3]; 142[label="takeWhile (flip (<=) (Pos Zero)) (Neg Zero + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Neg Zero + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];142 -> 166[label="",style="solid", color="black", weight=3]; 143[label="takeWhile0 (flip (<=) (Neg (Succ wv400))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];143 -> 167[label="",style="solid", color="black", weight=3]; 144[label="takeWhile (flip (<=) (Neg Zero)) (Neg Zero + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Neg Zero + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];144 -> 168[label="",style="solid", color="black", weight=3]; 893[label="wv530",fontsize=16,color="green",shape="box"];894[label="wv540",fontsize=16,color="green",shape="box"];895[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not True)",fontsize=16,color="black",shape="box"];895 -> 903[label="",style="solid", color="black", weight=3]; 896[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="triangle"];896 -> 904[label="",style="solid", color="black", weight=3]; 897 -> 896[label="",style="dashed", color="red", weight=0]; 897[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="magenta"];152[label="[]",fontsize=16,color="green",shape="box"];153[label="takeWhile (flip (<=) (Pos (Succ wv400))) (Pos Zero + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];153 -> 176[label="",style="solid", color="black", weight=3]; 154[label="takeWhile (flip (<=) (Pos Zero)) (enforceWHNF (WHNF (Pos Zero + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];154 -> 177[label="",style="solid", color="black", weight=3]; 155[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (Pos Zero + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];155 -> 178[label="",style="solid", color="black", weight=3]; 156[label="takeWhile (flip (<=) (Pos wv40)) (enforceWHNF (WHNF (primPlusInt (Neg (Succ wv300)) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Neg (Succ wv300)) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];156 -> 179[label="",style="solid", color="black", weight=3]; 898[label="wv580",fontsize=16,color="green",shape="box"];899[label="wv590",fontsize=16,color="green",shape="box"];900[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not True)",fontsize=16,color="black",shape="box"];900 -> 905[label="",style="solid", color="black", weight=3]; 901[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="triangle"];901 -> 906[label="",style="solid", color="black", weight=3]; 902 -> 901[label="",style="dashed", color="red", weight=0]; 902[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="magenta"];164[label="takeWhile (flip (<=) (Neg Zero)) (Neg (Succ wv300) + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Neg (Succ wv300) + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];164 -> 187[label="",style="solid", color="black", weight=3]; 165[label="takeWhile (flip (<=) (Pos (Succ wv400))) (enforceWHNF (WHNF (Neg Zero + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Neg Zero + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];165 -> 188[label="",style="solid", color="black", weight=3]; 166[label="takeWhile (flip (<=) (Pos Zero)) (enforceWHNF (WHNF (Neg Zero + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Neg Zero + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];166 -> 189[label="",style="solid", color="black", weight=3]; 167[label="[]",fontsize=16,color="green",shape="box"];168[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (Neg Zero + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Neg Zero + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];168 -> 190[label="",style="solid", color="black", weight=3]; 903[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) False",fontsize=16,color="black",shape="box"];903 -> 907[label="",style="solid", color="black", weight=3]; 904[label="takeWhile1 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];904 -> 908[label="",style="solid", color="black", weight=3]; 176[label="takeWhile (flip (<=) (Pos (Succ wv400))) (enforceWHNF (WHNF (Pos Zero + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];176 -> 199[label="",style="solid", color="black", weight=3]; 177[label="takeWhile (flip (<=) (Pos Zero)) (enforceWHNF (WHNF (primPlusInt (Pos Zero) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Pos Zero) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];177 -> 200[label="",style="solid", color="black", weight=3]; 178[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primPlusInt (Pos Zero) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Pos Zero) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];178 -> 201[label="",style="solid", color="black", weight=3]; 179[label="takeWhile (flip (<=) (Pos wv40)) (enforceWHNF (WHNF (primPlusInt (Neg (Succ wv300)) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Neg (Succ wv300)) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];179 -> 202[label="",style="solid", color="black", weight=3]; 905[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) False",fontsize=16,color="black",shape="box"];905 -> 909[label="",style="solid", color="black", weight=3]; 906[label="takeWhile1 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];906 -> 910[label="",style="solid", color="black", weight=3]; 187[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (Neg (Succ wv300) + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Neg (Succ wv300) + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];187 -> 211[label="",style="solid", color="black", weight=3]; 188[label="takeWhile (flip (<=) (Pos (Succ wv400))) (enforceWHNF (WHNF (primPlusInt (Neg Zero) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Neg Zero) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];188 -> 212[label="",style="solid", color="black", weight=3]; 189[label="takeWhile (flip (<=) (Pos Zero)) (enforceWHNF (WHNF (primPlusInt (Neg Zero) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Neg Zero) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];189 -> 213[label="",style="solid", color="black", weight=3]; 190[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primPlusInt (Neg Zero) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Neg Zero) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];190 -> 214[label="",style="solid", color="black", weight=3]; 907[label="takeWhile0 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) otherwise",fontsize=16,color="black",shape="box"];907 -> 911[label="",style="solid", color="black", weight=3]; 908[label="Pos (Succ wv52) : takeWhile (flip (<=) (Pos (Succ wv51))) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];908 -> 912[label="",style="dashed", color="green", weight=3]; 199[label="takeWhile (flip (<=) (Pos (Succ wv400))) (enforceWHNF (WHNF (primPlusInt (Pos Zero) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Pos Zero) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];199 -> 225[label="",style="solid", color="black", weight=3]; 200[label="takeWhile (flip (<=) (Pos Zero)) (enforceWHNF (WHNF (primPlusInt (Pos Zero) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Pos Zero) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];200 -> 226[label="",style="solid", color="black", weight=3]; 201[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primPlusInt (Pos Zero) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Pos Zero) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];201 -> 227[label="",style="solid", color="black", weight=3]; 202[label="takeWhile (flip (<=) (Pos wv40)) (enforceWHNF (WHNF (primMinusNat (Succ Zero) (Succ wv300))) (numericEnumFrom (primMinusNat (Succ Zero) (Succ wv300))))",fontsize=16,color="black",shape="box"];202 -> 228[label="",style="solid", color="black", weight=3]; 909[label="takeWhile0 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) otherwise",fontsize=16,color="black",shape="box"];909 -> 913[label="",style="solid", color="black", weight=3]; 910[label="Neg (Succ wv57) : takeWhile (flip (<=) (Neg (Succ wv56))) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];910 -> 914[label="",style="dashed", color="green", weight=3]; 211[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primPlusInt (Neg (Succ wv300)) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Neg (Succ wv300)) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];211 -> 239[label="",style="solid", color="black", weight=3]; 212[label="takeWhile (flip (<=) (Pos (Succ wv400))) (enforceWHNF (WHNF (primPlusInt (Neg Zero) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Neg Zero) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];212 -> 240[label="",style="solid", color="black", weight=3]; 213[label="takeWhile (flip (<=) (Pos Zero)) (enforceWHNF (WHNF (primPlusInt (Neg Zero) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Neg Zero) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];213 -> 241[label="",style="solid", color="black", weight=3]; 214[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primPlusInt (Neg Zero) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Neg Zero) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];214 -> 242[label="",style="solid", color="black", weight=3]; 911[label="takeWhile0 (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52)) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];911 -> 915[label="",style="solid", color="black", weight=3]; 912[label="takeWhile (flip (<=) (Pos (Succ wv51))) (numericEnumFrom $! Pos (Succ wv52) + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];912 -> 916[label="",style="solid", color="black", weight=3]; 225[label="takeWhile (flip (<=) (Pos (Succ wv400))) (enforceWHNF (WHNF (primPlusInt (Pos Zero) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Pos Zero) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];225 -> 252[label="",style="solid", color="black", weight=3]; 226[label="takeWhile (flip (<=) (Pos Zero)) (enforceWHNF (WHNF (Pos (primPlusNat Zero (Succ Zero)))) (numericEnumFrom (Pos (primPlusNat Zero (Succ Zero)))))",fontsize=16,color="black",shape="box"];226 -> 253[label="",style="solid", color="black", weight=3]; 227[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (Pos (primPlusNat Zero (Succ Zero)))) (numericEnumFrom (Pos (primPlusNat Zero (Succ Zero)))))",fontsize=16,color="black",shape="box"];227 -> 254[label="",style="solid", color="black", weight=3]; 228[label="takeWhile (flip (<=) (Pos wv40)) (enforceWHNF (WHNF (primMinusNat Zero wv300)) (numericEnumFrom (primMinusNat Zero wv300)))",fontsize=16,color="burlywood",shape="box"];986[label="wv300/Succ wv3000",fontsize=10,color="white",style="solid",shape="box"];228 -> 986[label="",style="solid", color="burlywood", weight=9]; 986 -> 255[label="",style="solid", color="burlywood", weight=3]; 987[label="wv300/Zero",fontsize=10,color="white",style="solid",shape="box"];228 -> 987[label="",style="solid", color="burlywood", weight=9]; 987 -> 256[label="",style="solid", color="burlywood", weight=3]; 913[label="takeWhile0 (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57)) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];913 -> 917[label="",style="solid", color="black", weight=3]; 914[label="takeWhile (flip (<=) (Neg (Succ wv56))) (numericEnumFrom $! Neg (Succ wv57) + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];914 -> 918[label="",style="solid", color="black", weight=3]; 239[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primPlusInt (Neg (Succ wv300)) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Neg (Succ wv300)) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];239 -> 266[label="",style="solid", color="black", weight=3]; 240[label="takeWhile (flip (<=) (Pos (Succ wv400))) (enforceWHNF (WHNF (primMinusNat (Succ Zero) Zero)) (numericEnumFrom (primMinusNat (Succ Zero) Zero)))",fontsize=16,color="black",shape="box"];240 -> 267[label="",style="solid", color="black", weight=3]; 241[label="takeWhile (flip (<=) (Pos Zero)) (enforceWHNF (WHNF (primMinusNat (Succ Zero) Zero)) (numericEnumFrom (primMinusNat (Succ Zero) Zero)))",fontsize=16,color="black",shape="box"];241 -> 268[label="",style="solid", color="black", weight=3]; 242[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primMinusNat (Succ Zero) Zero)) (numericEnumFrom (primMinusNat (Succ Zero) Zero)))",fontsize=16,color="black",shape="box"];242 -> 269[label="",style="solid", color="black", weight=3]; 915[label="[]",fontsize=16,color="green",shape="box"];916[label="takeWhile (flip (<=) (Pos (Succ wv51))) (Pos (Succ wv52) + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos (Succ wv52) + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];916 -> 919[label="",style="solid", color="black", weight=3]; 252[label="takeWhile (flip (<=) (Pos (Succ wv400))) (enforceWHNF (WHNF (Pos (primPlusNat Zero (Succ Zero)))) (numericEnumFrom (Pos (primPlusNat Zero (Succ Zero)))))",fontsize=16,color="black",shape="box"];252 -> 280[label="",style="solid", color="black", weight=3]; 253 -> 6[label="",style="dashed", color="red", weight=0]; 253[label="takeWhile (flip (<=) (Pos Zero)) (numericEnumFrom (Pos (primPlusNat Zero (Succ Zero))))",fontsize=16,color="magenta"];253 -> 281[label="",style="dashed", color="magenta", weight=3]; 253 -> 282[label="",style="dashed", color="magenta", weight=3]; 254 -> 6[label="",style="dashed", color="red", weight=0]; 254[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom (Pos (primPlusNat Zero (Succ Zero))))",fontsize=16,color="magenta"];254 -> 283[label="",style="dashed", color="magenta", weight=3]; 254 -> 284[label="",style="dashed", color="magenta", weight=3]; 255[label="takeWhile (flip (<=) (Pos wv40)) (enforceWHNF (WHNF (primMinusNat Zero (Succ wv3000))) (numericEnumFrom (primMinusNat Zero (Succ wv3000))))",fontsize=16,color="black",shape="box"];255 -> 285[label="",style="solid", color="black", weight=3]; 256[label="takeWhile (flip (<=) (Pos wv40)) (enforceWHNF (WHNF (primMinusNat Zero Zero)) (numericEnumFrom (primMinusNat Zero Zero)))",fontsize=16,color="black",shape="box"];256 -> 286[label="",style="solid", color="black", weight=3]; 917[label="[]",fontsize=16,color="green",shape="box"];918[label="takeWhile (flip (<=) (Neg (Succ wv56))) (Neg (Succ wv57) + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Neg (Succ wv57) + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];918 -> 920[label="",style="solid", color="black", weight=3]; 266[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primMinusNat (Succ Zero) (Succ wv300))) (numericEnumFrom (primMinusNat (Succ Zero) (Succ wv300))))",fontsize=16,color="black",shape="box"];266 -> 297[label="",style="solid", color="black", weight=3]; 267[label="takeWhile (flip (<=) (Pos (Succ wv400))) (enforceWHNF (WHNF (Pos (Succ Zero))) (numericEnumFrom (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];267 -> 298[label="",style="solid", color="black", weight=3]; 268[label="takeWhile (flip (<=) (Pos Zero)) (enforceWHNF (WHNF (Pos (Succ Zero))) (numericEnumFrom (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];268 -> 299[label="",style="solid", color="black", weight=3]; 269[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (Pos (Succ Zero))) (numericEnumFrom (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];269 -> 300[label="",style="solid", color="black", weight=3]; 919[label="takeWhile (flip (<=) (Pos (Succ wv51))) (enforceWHNF (WHNF (Pos (Succ wv52) + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos (Succ wv52) + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];919 -> 921[label="",style="solid", color="black", weight=3]; 280 -> 6[label="",style="dashed", color="red", weight=0]; 280[label="takeWhile (flip (<=) (Pos (Succ wv400))) (numericEnumFrom (Pos (primPlusNat Zero (Succ Zero))))",fontsize=16,color="magenta"];280 -> 313[label="",style="dashed", color="magenta", weight=3]; 280 -> 314[label="",style="dashed", color="magenta", weight=3]; 281[label="Pos (primPlusNat Zero (Succ Zero))",fontsize=16,color="green",shape="box"];281 -> 315[label="",style="dashed", color="green", weight=3]; 282[label="Pos Zero",fontsize=16,color="green",shape="box"];283[label="Pos (primPlusNat Zero (Succ Zero))",fontsize=16,color="green",shape="box"];283 -> 316[label="",style="dashed", color="green", weight=3]; 284[label="Neg Zero",fontsize=16,color="green",shape="box"];285[label="takeWhile (flip (<=) (Pos wv40)) (enforceWHNF (WHNF (Neg (Succ wv3000))) (numericEnumFrom (Neg (Succ wv3000))))",fontsize=16,color="black",shape="box"];285 -> 317[label="",style="solid", color="black", weight=3]; 286[label="takeWhile (flip (<=) (Pos wv40)) (enforceWHNF (WHNF (Pos Zero)) (numericEnumFrom (Pos Zero)))",fontsize=16,color="black",shape="box"];286 -> 318[label="",style="solid", color="black", weight=3]; 920[label="takeWhile (flip (<=) (Neg (Succ wv56))) (enforceWHNF (WHNF (Neg (Succ wv57) + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Neg (Succ wv57) + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];920 -> 922[label="",style="solid", color="black", weight=3]; 297[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primMinusNat Zero wv300)) (numericEnumFrom (primMinusNat Zero wv300)))",fontsize=16,color="burlywood",shape="box"];988[label="wv300/Succ wv3000",fontsize=10,color="white",style="solid",shape="box"];297 -> 988[label="",style="solid", color="burlywood", weight=9]; 988 -> 331[label="",style="solid", color="burlywood", weight=3]; 989[label="wv300/Zero",fontsize=10,color="white",style="solid",shape="box"];297 -> 989[label="",style="solid", color="burlywood", weight=9]; 989 -> 332[label="",style="solid", color="burlywood", weight=3]; 298 -> 6[label="",style="dashed", color="red", weight=0]; 298[label="takeWhile (flip (<=) (Pos (Succ wv400))) (numericEnumFrom (Pos (Succ Zero)))",fontsize=16,color="magenta"];298 -> 333[label="",style="dashed", color="magenta", weight=3]; 298 -> 334[label="",style="dashed", color="magenta", weight=3]; 299 -> 6[label="",style="dashed", color="red", weight=0]; 299[label="takeWhile (flip (<=) (Pos Zero)) (numericEnumFrom (Pos (Succ Zero)))",fontsize=16,color="magenta"];299 -> 335[label="",style="dashed", color="magenta", weight=3]; 299 -> 336[label="",style="dashed", color="magenta", weight=3]; 300 -> 6[label="",style="dashed", color="red", weight=0]; 300[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom (Pos (Succ Zero)))",fontsize=16,color="magenta"];300 -> 337[label="",style="dashed", color="magenta", weight=3]; 300 -> 338[label="",style="dashed", color="magenta", weight=3]; 921[label="takeWhile (flip (<=) (Pos (Succ wv51))) (enforceWHNF (WHNF (primPlusInt (Pos (Succ wv52)) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Pos (Succ wv52)) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];921 -> 923[label="",style="solid", color="black", weight=3]; 313[label="Pos (primPlusNat Zero (Succ Zero))",fontsize=16,color="green",shape="box"];313 -> 350[label="",style="dashed", color="green", weight=3]; 314[label="Pos (Succ wv400)",fontsize=16,color="green",shape="box"];315[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="black",shape="triangle"];315 -> 351[label="",style="solid", color="black", weight=3]; 316 -> 315[label="",style="dashed", color="red", weight=0]; 316[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="magenta"];317 -> 6[label="",style="dashed", color="red", weight=0]; 317[label="takeWhile (flip (<=) (Pos wv40)) (numericEnumFrom (Neg (Succ wv3000)))",fontsize=16,color="magenta"];317 -> 352[label="",style="dashed", color="magenta", weight=3]; 317 -> 353[label="",style="dashed", color="magenta", weight=3]; 318 -> 6[label="",style="dashed", color="red", weight=0]; 318[label="takeWhile (flip (<=) (Pos wv40)) (numericEnumFrom (Pos Zero))",fontsize=16,color="magenta"];318 -> 354[label="",style="dashed", color="magenta", weight=3]; 318 -> 355[label="",style="dashed", color="magenta", weight=3]; 922[label="takeWhile (flip (<=) (Neg (Succ wv56))) (enforceWHNF (WHNF (primPlusInt (Neg (Succ wv57)) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Neg (Succ wv57)) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];922 -> 924[label="",style="solid", color="black", weight=3]; 331[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primMinusNat Zero (Succ wv3000))) (numericEnumFrom (primMinusNat Zero (Succ wv3000))))",fontsize=16,color="black",shape="box"];331 -> 367[label="",style="solid", color="black", weight=3]; 332[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primMinusNat Zero Zero)) (numericEnumFrom (primMinusNat Zero Zero)))",fontsize=16,color="black",shape="box"];332 -> 368[label="",style="solid", color="black", weight=3]; 333[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];334[label="Pos (Succ wv400)",fontsize=16,color="green",shape="box"];335[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];336[label="Pos Zero",fontsize=16,color="green",shape="box"];337[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];338[label="Neg Zero",fontsize=16,color="green",shape="box"];923[label="takeWhile (flip (<=) (Pos (Succ wv51))) (enforceWHNF (WHNF (primPlusInt (Pos (Succ wv52)) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Pos (Succ wv52)) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];923 -> 925[label="",style="solid", color="black", weight=3]; 350 -> 315[label="",style="dashed", color="red", weight=0]; 350[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="magenta"];351[label="Succ Zero",fontsize=16,color="green",shape="box"];352[label="Neg (Succ wv3000)",fontsize=16,color="green",shape="box"];353[label="Pos wv40",fontsize=16,color="green",shape="box"];354[label="Pos Zero",fontsize=16,color="green",shape="box"];355[label="Pos wv40",fontsize=16,color="green",shape="box"];924[label="takeWhile (flip (<=) (Neg (Succ wv56))) (enforceWHNF (WHNF (primPlusInt (Neg (Succ wv57)) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Neg (Succ wv57)) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];924 -> 926[label="",style="solid", color="black", weight=3]; 367[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (Neg (Succ wv3000))) (numericEnumFrom (Neg (Succ wv3000))))",fontsize=16,color="black",shape="box"];367 -> 393[label="",style="solid", color="black", weight=3]; 368[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (Pos Zero)) (numericEnumFrom (Pos Zero)))",fontsize=16,color="black",shape="box"];368 -> 394[label="",style="solid", color="black", weight=3]; 925[label="takeWhile (flip (<=) (Pos (Succ wv51))) (enforceWHNF (WHNF (Pos (primPlusNat (Succ wv52) (Succ Zero)))) (numericEnumFrom (Pos (primPlusNat (Succ wv52) (Succ Zero)))))",fontsize=16,color="black",shape="box"];925 -> 927[label="",style="solid", color="black", weight=3]; 926[label="takeWhile (flip (<=) (Neg (Succ wv56))) (enforceWHNF (WHNF (primMinusNat (Succ Zero) (Succ wv57))) (numericEnumFrom (primMinusNat (Succ Zero) (Succ wv57))))",fontsize=16,color="black",shape="box"];926 -> 928[label="",style="solid", color="black", weight=3]; 393 -> 6[label="",style="dashed", color="red", weight=0]; 393[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom (Neg (Succ wv3000)))",fontsize=16,color="magenta"];393 -> 425[label="",style="dashed", color="magenta", weight=3]; 393 -> 426[label="",style="dashed", color="magenta", weight=3]; 394 -> 6[label="",style="dashed", color="red", weight=0]; 394[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom (Pos Zero))",fontsize=16,color="magenta"];394 -> 427[label="",style="dashed", color="magenta", weight=3]; 394 -> 428[label="",style="dashed", color="magenta", weight=3]; 927 -> 6[label="",style="dashed", color="red", weight=0]; 927[label="takeWhile (flip (<=) (Pos (Succ wv51))) (numericEnumFrom (Pos (primPlusNat (Succ wv52) (Succ Zero))))",fontsize=16,color="magenta"];927 -> 929[label="",style="dashed", color="magenta", weight=3]; 927 -> 930[label="",style="dashed", color="magenta", weight=3]; 928[label="takeWhile (flip (<=) (Neg (Succ wv56))) (enforceWHNF (WHNF (primMinusNat Zero wv57)) (numericEnumFrom (primMinusNat Zero wv57)))",fontsize=16,color="burlywood",shape="box"];990[label="wv57/Succ wv570",fontsize=10,color="white",style="solid",shape="box"];928 -> 990[label="",style="solid", color="burlywood", weight=9]; 990 -> 931[label="",style="solid", color="burlywood", weight=3]; 991[label="wv57/Zero",fontsize=10,color="white",style="solid",shape="box"];928 -> 991[label="",style="solid", color="burlywood", weight=9]; 991 -> 932[label="",style="solid", color="burlywood", weight=3]; 425[label="Neg (Succ wv3000)",fontsize=16,color="green",shape="box"];426[label="Neg Zero",fontsize=16,color="green",shape="box"];427[label="Pos Zero",fontsize=16,color="green",shape="box"];428[label="Neg Zero",fontsize=16,color="green",shape="box"];929[label="Pos (primPlusNat (Succ wv52) (Succ Zero))",fontsize=16,color="green",shape="box"];929 -> 933[label="",style="dashed", color="green", weight=3]; 930[label="Pos (Succ wv51)",fontsize=16,color="green",shape="box"];931[label="takeWhile (flip (<=) (Neg (Succ wv56))) (enforceWHNF (WHNF (primMinusNat Zero (Succ wv570))) (numericEnumFrom (primMinusNat Zero (Succ wv570))))",fontsize=16,color="black",shape="box"];931 -> 934[label="",style="solid", color="black", weight=3]; 932[label="takeWhile (flip (<=) (Neg (Succ wv56))) (enforceWHNF (WHNF (primMinusNat Zero Zero)) (numericEnumFrom (primMinusNat Zero Zero)))",fontsize=16,color="black",shape="box"];932 -> 935[label="",style="solid", color="black", weight=3]; 933[label="primPlusNat (Succ wv52) (Succ Zero)",fontsize=16,color="black",shape="box"];933 -> 936[label="",style="solid", color="black", weight=3]; 934[label="takeWhile (flip (<=) (Neg (Succ wv56))) (enforceWHNF (WHNF (Neg (Succ wv570))) (numericEnumFrom (Neg (Succ wv570))))",fontsize=16,color="black",shape="box"];934 -> 937[label="",style="solid", color="black", weight=3]; 935[label="takeWhile (flip (<=) (Neg (Succ wv56))) (enforceWHNF (WHNF (Pos Zero)) (numericEnumFrom (Pos Zero)))",fontsize=16,color="black",shape="box"];935 -> 938[label="",style="solid", color="black", weight=3]; 936[label="Succ (Succ (primPlusNat wv52 Zero))",fontsize=16,color="green",shape="box"];936 -> 939[label="",style="dashed", color="green", weight=3]; 937 -> 6[label="",style="dashed", color="red", weight=0]; 937[label="takeWhile (flip (<=) (Neg (Succ wv56))) (numericEnumFrom (Neg (Succ wv570)))",fontsize=16,color="magenta"];937 -> 940[label="",style="dashed", color="magenta", weight=3]; 937 -> 941[label="",style="dashed", color="magenta", weight=3]; 938 -> 6[label="",style="dashed", color="red", weight=0]; 938[label="takeWhile (flip (<=) (Neg (Succ wv56))) (numericEnumFrom (Pos Zero))",fontsize=16,color="magenta"];938 -> 942[label="",style="dashed", color="magenta", weight=3]; 938 -> 943[label="",style="dashed", color="magenta", weight=3]; 939[label="primPlusNat wv52 Zero",fontsize=16,color="burlywood",shape="box"];992[label="wv52/Succ wv520",fontsize=10,color="white",style="solid",shape="box"];939 -> 992[label="",style="solid", color="burlywood", weight=9]; 992 -> 944[label="",style="solid", color="burlywood", weight=3]; 993[label="wv52/Zero",fontsize=10,color="white",style="solid",shape="box"];939 -> 993[label="",style="solid", color="burlywood", weight=9]; 993 -> 945[label="",style="solid", color="burlywood", weight=3]; 940[label="Neg (Succ wv570)",fontsize=16,color="green",shape="box"];941[label="Neg (Succ wv56)",fontsize=16,color="green",shape="box"];942[label="Pos Zero",fontsize=16,color="green",shape="box"];943[label="Neg (Succ wv56)",fontsize=16,color="green",shape="box"];944[label="primPlusNat (Succ wv520) Zero",fontsize=16,color="black",shape="box"];944 -> 946[label="",style="solid", color="black", weight=3]; 945[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];945 -> 947[label="",style="solid", color="black", weight=3]; 946[label="Succ wv520",fontsize=16,color="green",shape="box"];947[label="Zero",fontsize=16,color="green",shape="box"];} ---------------------------------------- (8) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wv51, wv52, Succ(wv530), Succ(wv540)) -> new_takeWhile1(wv51, wv52, wv530, wv540) new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) new_takeWhile(Pos(wv40), Neg(Succ(Succ(wv3000)))) -> new_takeWhile(Pos(wv40), Neg(Succ(wv3000))) new_takeWhile11(wv56, wv57, Succ(wv580), Succ(wv590)) -> new_takeWhile11(wv56, wv57, wv580, wv590) new_takeWhile(Neg(Zero), Neg(Succ(Zero))) -> new_takeWhile(Neg(Zero), Pos(Zero)) new_takeWhile(Pos(Succ(wv400)), Pos(Zero)) -> new_takeWhile(Pos(Succ(wv400)), Pos(new_primPlusNat0)) new_takeWhile12(wv56, Succ(wv570)) -> new_takeWhile(Neg(Succ(wv56)), Neg(Succ(wv570))) new_takeWhile11(wv56, Succ(wv570), Zero, Succ(wv590)) -> new_takeWhile(Neg(Succ(wv56)), Neg(Succ(wv570))) new_takeWhile11(wv56, Zero, Zero, Succ(wv590)) -> new_takeWhile(Neg(Succ(wv56)), Pos(Zero)) new_takeWhile(Pos(Zero), Pos(Zero)) -> new_takeWhile(Pos(Zero), Pos(new_primPlusNat0)) new_takeWhile(Neg(Succ(wv400)), Neg(Succ(wv300))) -> new_takeWhile11(wv400, wv300, wv400, wv300) new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) new_takeWhile11(wv56, wv57, Zero, Zero) -> new_takeWhile12(wv56, wv57) new_takeWhile12(wv56, Zero) -> new_takeWhile(Neg(Succ(wv56)), Pos(Zero)) new_takeWhile(Pos(Zero), Neg(Zero)) -> new_takeWhile(Pos(Zero), Pos(Succ(Zero))) new_takeWhile(Neg(Zero), Pos(Zero)) -> new_takeWhile(Neg(Zero), Pos(new_primPlusNat0)) new_takeWhile(Neg(Zero), Neg(Zero)) -> new_takeWhile(Neg(Zero), Pos(Succ(Zero))) new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> new_takeWhile1(wv400, wv300, wv300, wv400) new_takeWhile(Neg(Zero), Neg(Succ(Succ(wv3000)))) -> new_takeWhile(Neg(Zero), Neg(Succ(wv3000))) new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) new_takeWhile(Pos(wv40), Neg(Succ(Zero))) -> new_takeWhile(Pos(wv40), Pos(Zero)) new_takeWhile(Pos(Succ(wv400)), Neg(Zero)) -> new_takeWhile(Pos(Succ(wv400)), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primPlusNat(Zero) -> Zero new_primPlusNat(Succ(wv520)) -> Succ(wv520) new_primPlusNat0 -> Succ(Zero) The set Q consists of the following terms: new_primPlusNat0 new_primPlusNat(Succ(x0)) new_primPlusNat(Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (9) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 4 SCCs with 10 less nodes. ---------------------------------------- (10) Complex Obligation (AND) ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile(Neg(Zero), Neg(Succ(Succ(wv3000)))) -> new_takeWhile(Neg(Zero), Neg(Succ(wv3000))) The TRS R consists of the following rules: new_primPlusNat(Zero) -> Zero new_primPlusNat(Succ(wv520)) -> Succ(wv520) new_primPlusNat0 -> Succ(Zero) The set Q consists of the following terms: new_primPlusNat0 new_primPlusNat(Succ(x0)) new_primPlusNat(Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Zero = Zero Neg(x1) = x1 Succ(x1) = Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile(Neg(Zero), Neg(Succ(Succ(wv3000)))) -> new_takeWhile(Neg(Zero), Neg(Succ(wv3000))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1, 2 > 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wv56, Succ(wv570), Zero, Succ(wv590)) -> new_takeWhile(Neg(Succ(wv56)), Neg(Succ(wv570))) new_takeWhile(Neg(Succ(wv400)), Neg(Succ(wv300))) -> new_takeWhile11(wv400, wv300, wv400, wv300) new_takeWhile11(wv56, wv57, Succ(wv580), Succ(wv590)) -> new_takeWhile11(wv56, wv57, wv580, wv590) new_takeWhile11(wv56, wv57, Zero, Zero) -> new_takeWhile12(wv56, wv57) new_takeWhile12(wv56, Succ(wv570)) -> new_takeWhile(Neg(Succ(wv56)), Neg(Succ(wv570))) The TRS R consists of the following rules: new_primPlusNat(Zero) -> Zero new_primPlusNat(Succ(wv520)) -> Succ(wv520) new_primPlusNat0 -> Succ(Zero) The set Q consists of the following terms: new_primPlusNat0 new_primPlusNat(Succ(x0)) new_primPlusNat(Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Zero = Zero Neg(x1) = x1 Succ(x1) = Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile(Neg(Succ(wv400)), Neg(Succ(wv300))) -> new_takeWhile11(wv400, wv300, wv400, wv300) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 > 1, 2 > 2, 1 > 3, 2 > 4 *new_takeWhile11(wv56, wv57, Succ(wv580), Succ(wv590)) -> new_takeWhile11(wv56, wv57, wv580, wv590) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 *new_takeWhile11(wv56, Succ(wv570), Zero, Succ(wv590)) -> new_takeWhile(Neg(Succ(wv56)), Neg(Succ(wv570))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 2 *new_takeWhile11(wv56, wv57, Zero, Zero) -> new_takeWhile12(wv56, wv57) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1, 2 >= 2 *new_takeWhile12(wv56, Succ(wv570)) -> new_takeWhile(Neg(Succ(wv56)), Neg(Succ(wv570))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (16) YES ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> new_takeWhile1(wv400, wv300, wv300, wv400) new_takeWhile1(wv51, wv52, Succ(wv530), Succ(wv540)) -> new_takeWhile1(wv51, wv52, wv530, wv540) new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) The TRS R consists of the following rules: new_primPlusNat(Zero) -> Zero new_primPlusNat(Succ(wv520)) -> Succ(wv520) new_primPlusNat0 -> Succ(Zero) The set Q consists of the following terms: new_primPlusNat0 new_primPlusNat(Succ(x0)) new_primPlusNat(Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) QDPPairToRuleProof (EQUIVALENT) The dependency pair new_takeWhile1(wv51, wv52, Succ(wv530), Succ(wv540)) -> new_takeWhile1(wv51, wv52, wv530, wv540) was transformed to the following new rules: anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) the following new pairs maintain the fan-in: new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) the following new pairs maintain the fan-out: H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) ---------------------------------------- (19) Complex Obligation (AND) ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> new_takeWhile1(wv400, wv300, wv300, wv400) new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) The TRS R consists of the following rules: new_primPlusNat(Zero) -> Zero new_primPlusNat(Succ(wv520)) -> Succ(wv520) new_primPlusNat0 -> Succ(Zero) anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) The set Q consists of the following terms: new_primPlusNat0 new_primPlusNat(Succ(x0)) new_primPlusNat(Zero) new_new_takeWhile1(Succ(x0), Succ(x1)) anew_new_takeWhile1(Succ(x0), Succ(x1)) new_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> new_takeWhile1(wv400, wv300, wv300, wv400) we obtained the following new rules [LPAR04]: (new_takeWhile(Pos(Succ(z0)), Pos(Succ(Succ(y_0)))) -> new_takeWhile1(z0, Succ(y_0), Succ(y_0), z0),new_takeWhile(Pos(Succ(z0)), Pos(Succ(Succ(y_0)))) -> new_takeWhile1(z0, Succ(y_0), Succ(y_0), z0)) ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) new_takeWhile(Pos(Succ(z0)), Pos(Succ(Succ(y_0)))) -> new_takeWhile1(z0, Succ(y_0), Succ(y_0), z0) The TRS R consists of the following rules: new_primPlusNat(Zero) -> Zero new_primPlusNat(Succ(wv520)) -> Succ(wv520) new_primPlusNat0 -> Succ(Zero) anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) The set Q consists of the following terms: new_primPlusNat0 new_primPlusNat(Succ(x0)) new_primPlusNat(Zero) new_new_takeWhile1(Succ(x0), Succ(x1)) anew_new_takeWhile1(Succ(x0), Succ(x1)) new_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) The TRS R consists of the following rules: new_primPlusNat(Zero) -> Zero new_primPlusNat(Succ(wv520)) -> Succ(wv520) new_primPlusNat0 -> Succ(Zero) anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) The set Q consists of the following terms: new_primPlusNat0 new_primPlusNat(Succ(x0)) new_primPlusNat(Zero) new_new_takeWhile1(Succ(x0), Succ(x1)) anew_new_takeWhile1(Succ(x0), Succ(x1)) new_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) 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. ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) The TRS R consists of the following rules: new_primPlusNat(Zero) -> Zero new_primPlusNat(Succ(wv520)) -> Succ(wv520) anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) The set Q consists of the following terms: new_primPlusNat0 new_primPlusNat(Succ(x0)) new_primPlusNat(Zero) new_new_takeWhile1(Succ(x0), Succ(x1)) anew_new_takeWhile1(Succ(x0), Succ(x1)) new_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) 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_primPlusNat0 ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) The TRS R consists of the following rules: new_primPlusNat(Zero) -> Zero new_primPlusNat(Succ(wv520)) -> Succ(wv520) anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) The set Q consists of the following terms: new_primPlusNat(Succ(x0)) new_primPlusNat(Zero) new_new_takeWhile1(Succ(x0), Succ(x1)) anew_new_takeWhile1(Succ(x0), Succ(x1)) new_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) the following chains were created: *We consider the chain new_takeWhile10(x2, x3) -> new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3))))), new_takeWhile(Pos(Succ(x4)), Pos(Succ(x5))) -> H(x4, x5, anew_new_takeWhile1(x5, x4)) which results in the following constraint: (1) (new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))=new_takeWhile(Pos(Succ(x4)), Pos(Succ(x5))) ==> new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) For Pair new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) the following chains were created: *We consider the chain new_takeWhile(Pos(Succ(x18)), Pos(Succ(x19))) -> H(x18, x19, anew_new_takeWhile1(x19, x18)), H(x20, x21, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(x20, x21, Zero, Zero) which results in the following constraint: (1) (H(x18, x19, anew_new_takeWhile1(x19, x18))=H(x20, x21, cons_new_takeWhile1(Zero, Zero)) ==> new_takeWhile(Pos(Succ(x18)), Pos(Succ(x19)))_>=_H(x18, x19, anew_new_takeWhile1(x19, x18))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (anew_new_takeWhile1(x19, x18)=cons_new_takeWhile1(Zero, Zero) ==> new_takeWhile(Pos(Succ(x18)), Pos(Succ(x19)))_>=_H(x18, x19, anew_new_takeWhile1(x19, x18))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on anew_new_takeWhile1(x19, x18)=cons_new_takeWhile1(Zero, Zero) which results in the following new constraint: (3) (new_new_takeWhile1(x101, x100)=cons_new_takeWhile1(Zero, Zero) ==> new_takeWhile(Pos(Succ(Succ(x100))), Pos(Succ(Succ(x101))))_>=_H(Succ(x100), Succ(x101), anew_new_takeWhile1(Succ(x101), Succ(x100)))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_new_takeWhile1(x101, x100)=cons_new_takeWhile1(Zero, Zero) which results in the following new constraints: (4) (new_new_takeWhile1(x103, x102)=cons_new_takeWhile1(Zero, Zero) & (new_new_takeWhile1(x103, x102)=cons_new_takeWhile1(Zero, Zero) ==> new_takeWhile(Pos(Succ(Succ(x102))), Pos(Succ(Succ(x103))))_>=_H(Succ(x102), Succ(x103), anew_new_takeWhile1(Succ(x103), Succ(x102)))) ==> new_takeWhile(Pos(Succ(Succ(Succ(x102)))), Pos(Succ(Succ(Succ(x103)))))_>=_H(Succ(Succ(x102)), Succ(Succ(x103)), anew_new_takeWhile1(Succ(Succ(x103)), Succ(Succ(x102))))) (5) (cons_new_takeWhile1(Zero, Zero)=cons_new_takeWhile1(Zero, Zero) ==> new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) (6) (cons_new_takeWhile1(Zero, Succ(x104))=cons_new_takeWhile1(Zero, Zero) ==> new_takeWhile(Pos(Succ(Succ(Succ(x104)))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Succ(x104)), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Succ(x104))))) We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (new_new_takeWhile1(x103, x102)=cons_new_takeWhile1(Zero, Zero) ==> new_takeWhile(Pos(Succ(Succ(x102))), Pos(Succ(Succ(x103))))_>=_H(Succ(x102), Succ(x103), anew_new_takeWhile1(Succ(x103), Succ(x102)))) with sigma = [ ] which results in the following new constraint: (7) (new_takeWhile(Pos(Succ(Succ(x102))), Pos(Succ(Succ(x103))))_>=_H(Succ(x102), Succ(x103), anew_new_takeWhile1(Succ(x103), Succ(x102))) ==> new_takeWhile(Pos(Succ(Succ(Succ(x102)))), Pos(Succ(Succ(Succ(x103)))))_>=_H(Succ(Succ(x102)), Succ(Succ(x103)), anew_new_takeWhile1(Succ(Succ(x103)), Succ(Succ(x102))))) We simplified constraint (5) using rules (I), (II) which results in the following new constraint: (8) (new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) We solved constraint (6) using rules (I), (II). *We consider the chain new_takeWhile(Pos(Succ(x24)), Pos(Succ(x25))) -> H(x24, x25, anew_new_takeWhile1(x25, x24)), H(x26, x27, cons_new_takeWhile1(Zero, Succ(x28))) -> new_takeWhile1(x26, x27, Zero, Succ(x28)) which results in the following constraint: (1) (H(x24, x25, anew_new_takeWhile1(x25, x24))=H(x26, x27, cons_new_takeWhile1(Zero, Succ(x28))) ==> new_takeWhile(Pos(Succ(x24)), Pos(Succ(x25)))_>=_H(x24, x25, anew_new_takeWhile1(x25, x24))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (anew_new_takeWhile1(x25, x24)=cons_new_takeWhile1(Zero, Succ(x28)) ==> new_takeWhile(Pos(Succ(x24)), Pos(Succ(x25)))_>=_H(x24, x25, anew_new_takeWhile1(x25, x24))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on anew_new_takeWhile1(x25, x24)=cons_new_takeWhile1(Zero, Succ(x28)) which results in the following new constraint: (3) (new_new_takeWhile1(x106, x105)=cons_new_takeWhile1(Zero, Succ(x28)) ==> new_takeWhile(Pos(Succ(Succ(x105))), Pos(Succ(Succ(x106))))_>=_H(Succ(x105), Succ(x106), anew_new_takeWhile1(Succ(x106), Succ(x105)))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_new_takeWhile1(x106, x105)=cons_new_takeWhile1(Zero, Succ(x28)) which results in the following new constraints: (4) (new_new_takeWhile1(x108, x107)=cons_new_takeWhile1(Zero, Succ(x28)) & (\/x109:new_new_takeWhile1(x108, x107)=cons_new_takeWhile1(Zero, Succ(x109)) ==> new_takeWhile(Pos(Succ(Succ(x107))), Pos(Succ(Succ(x108))))_>=_H(Succ(x107), Succ(x108), anew_new_takeWhile1(Succ(x108), Succ(x107)))) ==> new_takeWhile(Pos(Succ(Succ(Succ(x107)))), Pos(Succ(Succ(Succ(x108)))))_>=_H(Succ(Succ(x107)), Succ(Succ(x108)), anew_new_takeWhile1(Succ(Succ(x108)), Succ(Succ(x107))))) (5) (cons_new_takeWhile1(Zero, Zero)=cons_new_takeWhile1(Zero, Succ(x28)) ==> new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) (6) (cons_new_takeWhile1(Zero, Succ(x110))=cons_new_takeWhile1(Zero, Succ(x28)) ==> new_takeWhile(Pos(Succ(Succ(Succ(x110)))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Succ(x110)), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Succ(x110))))) We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (\/x109:new_new_takeWhile1(x108, x107)=cons_new_takeWhile1(Zero, Succ(x109)) ==> new_takeWhile(Pos(Succ(Succ(x107))), Pos(Succ(Succ(x108))))_>=_H(Succ(x107), Succ(x108), anew_new_takeWhile1(Succ(x108), Succ(x107)))) with sigma = [x109 / x28] which results in the following new constraint: (7) (new_takeWhile(Pos(Succ(Succ(x107))), Pos(Succ(Succ(x108))))_>=_H(Succ(x107), Succ(x108), anew_new_takeWhile1(Succ(x108), Succ(x107))) ==> new_takeWhile(Pos(Succ(Succ(Succ(x107)))), Pos(Succ(Succ(Succ(x108)))))_>=_H(Succ(Succ(x107)), Succ(Succ(x108)), anew_new_takeWhile1(Succ(Succ(x108)), Succ(Succ(x107))))) We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (IV) which results in the following new constraint: (8) (new_takeWhile(Pos(Succ(Succ(Succ(x110)))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Succ(x110)), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Succ(x110))))) For Pair H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) the following chains were created: *We consider the chain H(x37, x38, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(x37, x38, Zero, Zero), new_takeWhile1(x39, x40, Zero, Zero) -> new_takeWhile10(x39, x40) which results in the following constraint: (1) (new_takeWhile1(x37, x38, Zero, Zero)=new_takeWhile1(x39, x40, Zero, Zero) ==> H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) For Pair new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) the following chains were created: *We consider the chain new_takeWhile1(x45, x46, Zero, Zero) -> new_takeWhile10(x45, x46), new_takeWhile10(x47, x48) -> new_takeWhile(Pos(Succ(x47)), Pos(Succ(Succ(new_primPlusNat(x48))))) which results in the following constraint: (1) (new_takeWhile10(x45, x46)=new_takeWhile10(x47, x48) ==> new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) For Pair H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) the following chains were created: *We consider the chain H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76))) -> new_takeWhile1(x74, x75, Zero, Succ(x76)), new_takeWhile1(x77, x78, Zero, Succ(x79)) -> new_takeWhile(Pos(Succ(x77)), Pos(Succ(Succ(new_primPlusNat(x78))))) which results in the following constraint: (1) (new_takeWhile1(x74, x75, Zero, Succ(x76))=new_takeWhile1(x77, x78, Zero, Succ(x79)) ==> H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) For Pair new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) the following chains were created: *We consider the chain new_takeWhile1(x83, x84, Zero, Succ(x85)) -> new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84))))), new_takeWhile(Pos(Succ(x86)), Pos(Succ(x87))) -> H(x86, x87, anew_new_takeWhile1(x87, x86)) which results in the following constraint: (1) (new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))=new_takeWhile(Pos(Succ(x86)), Pos(Succ(x87))) ==> new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) *(new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) *new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) *(new_takeWhile(Pos(Succ(Succ(x102))), Pos(Succ(Succ(x103))))_>=_H(Succ(x102), Succ(x103), anew_new_takeWhile1(Succ(x103), Succ(x102))) ==> new_takeWhile(Pos(Succ(Succ(Succ(x102)))), Pos(Succ(Succ(Succ(x103)))))_>=_H(Succ(Succ(x102)), Succ(Succ(x103)), anew_new_takeWhile1(Succ(Succ(x103)), Succ(Succ(x102))))) *(new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) *(new_takeWhile(Pos(Succ(Succ(x107))), Pos(Succ(Succ(x108))))_>=_H(Succ(x107), Succ(x108), anew_new_takeWhile1(Succ(x108), Succ(x107))) ==> new_takeWhile(Pos(Succ(Succ(Succ(x107)))), Pos(Succ(Succ(Succ(x108)))))_>=_H(Succ(Succ(x107)), Succ(Succ(x108)), anew_new_takeWhile1(Succ(Succ(x108)), Succ(Succ(x107))))) *(new_takeWhile(Pos(Succ(Succ(Succ(x110)))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Succ(x110)), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Succ(x110))))) *H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) *(H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) *new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) *(new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) *H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) *(H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) *new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) *(new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) The TRS R consists of the following rules: new_primPlusNat(Zero) -> Zero new_primPlusNat(Succ(wv520)) -> Succ(wv520) anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) The set Q consists of the following terms: new_primPlusNat(Succ(x0)) new_primPlusNat(Zero) new_new_takeWhile1(Succ(x0), Succ(x1)) anew_new_takeWhile1(Succ(x0), Succ(x1)) new_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) NonInfProof (EQUIVALENT) The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps: Note that final constraints are written in bold face. For Pair new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) the following chains were created: *We consider the chain new_takeWhile10(x2, x3) -> new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3))))), new_takeWhile(Pos(Succ(x4)), Pos(Succ(x5))) -> H(x4, x5, anew_new_takeWhile1(x5, x4)) which results in the following constraint: (1) (new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))=new_takeWhile(Pos(Succ(x4)), Pos(Succ(x5))) ==> new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) For Pair new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) the following chains were created: *We consider the chain new_takeWhile(Pos(Succ(x18)), Pos(Succ(x19))) -> H(x18, x19, anew_new_takeWhile1(x19, x18)), H(x20, x21, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(x20, x21, Zero, Zero) which results in the following constraint: (1) (H(x18, x19, anew_new_takeWhile1(x19, x18))=H(x20, x21, cons_new_takeWhile1(Zero, Zero)) ==> new_takeWhile(Pos(Succ(x18)), Pos(Succ(x19)))_>=_H(x18, x19, anew_new_takeWhile1(x19, x18))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (anew_new_takeWhile1(x19, x18)=cons_new_takeWhile1(Zero, Zero) ==> new_takeWhile(Pos(Succ(x18)), Pos(Succ(x19)))_>=_H(x18, x19, anew_new_takeWhile1(x19, x18))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on anew_new_takeWhile1(x19, x18)=cons_new_takeWhile1(Zero, Zero) which results in the following new constraint: (3) (new_new_takeWhile1(x101, x100)=cons_new_takeWhile1(Zero, Zero) ==> new_takeWhile(Pos(Succ(Succ(x100))), Pos(Succ(Succ(x101))))_>=_H(Succ(x100), Succ(x101), anew_new_takeWhile1(Succ(x101), Succ(x100)))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_new_takeWhile1(x101, x100)=cons_new_takeWhile1(Zero, Zero) which results in the following new constraints: (4) (new_new_takeWhile1(x103, x102)=cons_new_takeWhile1(Zero, Zero) & (new_new_takeWhile1(x103, x102)=cons_new_takeWhile1(Zero, Zero) ==> new_takeWhile(Pos(Succ(Succ(x102))), Pos(Succ(Succ(x103))))_>=_H(Succ(x102), Succ(x103), anew_new_takeWhile1(Succ(x103), Succ(x102)))) ==> new_takeWhile(Pos(Succ(Succ(Succ(x102)))), Pos(Succ(Succ(Succ(x103)))))_>=_H(Succ(Succ(x102)), Succ(Succ(x103)), anew_new_takeWhile1(Succ(Succ(x103)), Succ(Succ(x102))))) (5) (cons_new_takeWhile1(Zero, Zero)=cons_new_takeWhile1(Zero, Zero) ==> new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) (6) (cons_new_takeWhile1(Zero, Succ(x104))=cons_new_takeWhile1(Zero, Zero) ==> new_takeWhile(Pos(Succ(Succ(Succ(x104)))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Succ(x104)), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Succ(x104))))) We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (new_new_takeWhile1(x103, x102)=cons_new_takeWhile1(Zero, Zero) ==> new_takeWhile(Pos(Succ(Succ(x102))), Pos(Succ(Succ(x103))))_>=_H(Succ(x102), Succ(x103), anew_new_takeWhile1(Succ(x103), Succ(x102)))) with sigma = [ ] which results in the following new constraint: (7) (new_takeWhile(Pos(Succ(Succ(x102))), Pos(Succ(Succ(x103))))_>=_H(Succ(x102), Succ(x103), anew_new_takeWhile1(Succ(x103), Succ(x102))) ==> new_takeWhile(Pos(Succ(Succ(Succ(x102)))), Pos(Succ(Succ(Succ(x103)))))_>=_H(Succ(Succ(x102)), Succ(Succ(x103)), anew_new_takeWhile1(Succ(Succ(x103)), Succ(Succ(x102))))) We simplified constraint (5) using rules (I), (II) which results in the following new constraint: (8) (new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) We solved constraint (6) using rules (I), (II). *We consider the chain new_takeWhile(Pos(Succ(x24)), Pos(Succ(x25))) -> H(x24, x25, anew_new_takeWhile1(x25, x24)), H(x26, x27, cons_new_takeWhile1(Zero, Succ(x28))) -> new_takeWhile1(x26, x27, Zero, Succ(x28)) which results in the following constraint: (1) (H(x24, x25, anew_new_takeWhile1(x25, x24))=H(x26, x27, cons_new_takeWhile1(Zero, Succ(x28))) ==> new_takeWhile(Pos(Succ(x24)), Pos(Succ(x25)))_>=_H(x24, x25, anew_new_takeWhile1(x25, x24))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (anew_new_takeWhile1(x25, x24)=cons_new_takeWhile1(Zero, Succ(x28)) ==> new_takeWhile(Pos(Succ(x24)), Pos(Succ(x25)))_>=_H(x24, x25, anew_new_takeWhile1(x25, x24))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on anew_new_takeWhile1(x25, x24)=cons_new_takeWhile1(Zero, Succ(x28)) which results in the following new constraint: (3) (new_new_takeWhile1(x106, x105)=cons_new_takeWhile1(Zero, Succ(x28)) ==> new_takeWhile(Pos(Succ(Succ(x105))), Pos(Succ(Succ(x106))))_>=_H(Succ(x105), Succ(x106), anew_new_takeWhile1(Succ(x106), Succ(x105)))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_new_takeWhile1(x106, x105)=cons_new_takeWhile1(Zero, Succ(x28)) which results in the following new constraints: (4) (new_new_takeWhile1(x108, x107)=cons_new_takeWhile1(Zero, Succ(x28)) & (\/x109:new_new_takeWhile1(x108, x107)=cons_new_takeWhile1(Zero, Succ(x109)) ==> new_takeWhile(Pos(Succ(Succ(x107))), Pos(Succ(Succ(x108))))_>=_H(Succ(x107), Succ(x108), anew_new_takeWhile1(Succ(x108), Succ(x107)))) ==> new_takeWhile(Pos(Succ(Succ(Succ(x107)))), Pos(Succ(Succ(Succ(x108)))))_>=_H(Succ(Succ(x107)), Succ(Succ(x108)), anew_new_takeWhile1(Succ(Succ(x108)), Succ(Succ(x107))))) (5) (cons_new_takeWhile1(Zero, Zero)=cons_new_takeWhile1(Zero, Succ(x28)) ==> new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) (6) (cons_new_takeWhile1(Zero, Succ(x110))=cons_new_takeWhile1(Zero, Succ(x28)) ==> new_takeWhile(Pos(Succ(Succ(Succ(x110)))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Succ(x110)), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Succ(x110))))) We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (\/x109:new_new_takeWhile1(x108, x107)=cons_new_takeWhile1(Zero, Succ(x109)) ==> new_takeWhile(Pos(Succ(Succ(x107))), Pos(Succ(Succ(x108))))_>=_H(Succ(x107), Succ(x108), anew_new_takeWhile1(Succ(x108), Succ(x107)))) with sigma = [x109 / x28] which results in the following new constraint: (7) (new_takeWhile(Pos(Succ(Succ(x107))), Pos(Succ(Succ(x108))))_>=_H(Succ(x107), Succ(x108), anew_new_takeWhile1(Succ(x108), Succ(x107))) ==> new_takeWhile(Pos(Succ(Succ(Succ(x107)))), Pos(Succ(Succ(Succ(x108)))))_>=_H(Succ(Succ(x107)), Succ(Succ(x108)), anew_new_takeWhile1(Succ(Succ(x108)), Succ(Succ(x107))))) We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (IV) which results in the following new constraint: (8) (new_takeWhile(Pos(Succ(Succ(Succ(x110)))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Succ(x110)), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Succ(x110))))) For Pair H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) the following chains were created: *We consider the chain H(x37, x38, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(x37, x38, Zero, Zero), new_takeWhile1(x39, x40, Zero, Zero) -> new_takeWhile10(x39, x40) which results in the following constraint: (1) (new_takeWhile1(x37, x38, Zero, Zero)=new_takeWhile1(x39, x40, Zero, Zero) ==> H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) For Pair new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) the following chains were created: *We consider the chain new_takeWhile1(x45, x46, Zero, Zero) -> new_takeWhile10(x45, x46), new_takeWhile10(x47, x48) -> new_takeWhile(Pos(Succ(x47)), Pos(Succ(Succ(new_primPlusNat(x48))))) which results in the following constraint: (1) (new_takeWhile10(x45, x46)=new_takeWhile10(x47, x48) ==> new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) For Pair H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) the following chains were created: *We consider the chain H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76))) -> new_takeWhile1(x74, x75, Zero, Succ(x76)), new_takeWhile1(x77, x78, Zero, Succ(x79)) -> new_takeWhile(Pos(Succ(x77)), Pos(Succ(Succ(new_primPlusNat(x78))))) which results in the following constraint: (1) (new_takeWhile1(x74, x75, Zero, Succ(x76))=new_takeWhile1(x77, x78, Zero, Succ(x79)) ==> H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) For Pair new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) the following chains were created: *We consider the chain new_takeWhile1(x83, x84, Zero, Succ(x85)) -> new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84))))), new_takeWhile(Pos(Succ(x86)), Pos(Succ(x87))) -> H(x86, x87, anew_new_takeWhile1(x87, x86)) which results in the following constraint: (1) (new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))=new_takeWhile(Pos(Succ(x86)), Pos(Succ(x87))) ==> new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) *(new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) *new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) *(new_takeWhile(Pos(Succ(Succ(x102))), Pos(Succ(Succ(x103))))_>=_H(Succ(x102), Succ(x103), anew_new_takeWhile1(Succ(x103), Succ(x102))) ==> new_takeWhile(Pos(Succ(Succ(Succ(x102)))), Pos(Succ(Succ(Succ(x103)))))_>=_H(Succ(Succ(x102)), Succ(Succ(x103)), anew_new_takeWhile1(Succ(Succ(x103)), Succ(Succ(x102))))) *(new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) *(new_takeWhile(Pos(Succ(Succ(x107))), Pos(Succ(Succ(x108))))_>=_H(Succ(x107), Succ(x108), anew_new_takeWhile1(Succ(x108), Succ(x107))) ==> new_takeWhile(Pos(Succ(Succ(Succ(x107)))), Pos(Succ(Succ(Succ(x108)))))_>=_H(Succ(Succ(x107)), Succ(Succ(x108)), anew_new_takeWhile1(Succ(Succ(x108)), Succ(Succ(x107))))) *(new_takeWhile(Pos(Succ(Succ(Succ(x110)))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Succ(x110)), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Succ(x110))))) *H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) *(H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) *new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) *(new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) *H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) *(H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) *new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) *(new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. Using the following integer polynomial ordering the resulting constraints can be solved Polynomial interpretation [NONINF]: POL(H(x_1, x_2, x_3)) = -1 + x_1 - x_2 - x_3 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 0 POL(anew_new_takeWhile1(x_1, x_2)) = 0 POL(c) = -1 POL(cons_new_takeWhile1(x_1, x_2)) = 0 POL(new_new_takeWhile1(x_1, x_2)) = 0 POL(new_primPlusNat(x_1)) = x_1 POL(new_takeWhile(x_1, x_2)) = -1 + x_1 - x_2 POL(new_takeWhile1(x_1, x_2, x_3, x_4)) = -1 + x_1 - x_2 + x_3 POL(new_takeWhile10(x_1, x_2)) = -1 + x_1 - x_2 The following pairs are in P_>: new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) The following pairs are in P_bound: new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) The following rules are usable: Zero -> new_primPlusNat(Zero) Succ(wv520) -> new_primPlusNat(Succ(wv520)) new_new_takeWhile1(wv530, wv540) -> anew_new_takeWhile1(Succ(wv530), Succ(wv540)) new_new_takeWhile1(wv530, wv540) -> new_new_takeWhile1(Succ(wv530), Succ(wv540)) cons_new_takeWhile1(Zero, Zero) -> new_new_takeWhile1(Zero, Zero) cons_new_takeWhile1(Zero, Succ(wv540)) -> new_new_takeWhile1(Zero, Succ(wv540)) ---------------------------------------- (32) Complex Obligation (AND) ---------------------------------------- (33) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) The TRS R consists of the following rules: new_primPlusNat(Zero) -> Zero new_primPlusNat(Succ(wv520)) -> Succ(wv520) anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) The set Q consists of the following terms: new_primPlusNat(Succ(x0)) new_primPlusNat(Zero) new_new_takeWhile1(Succ(x0), Succ(x1)) anew_new_takeWhile1(Succ(x0), Succ(x1)) new_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (34) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 4 less nodes. ---------------------------------------- (35) TRUE ---------------------------------------- (36) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) The TRS R consists of the following rules: new_primPlusNat(Zero) -> Zero new_primPlusNat(Succ(wv520)) -> Succ(wv520) anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) The set Q consists of the following terms: new_primPlusNat(Succ(x0)) new_primPlusNat(Zero) new_new_takeWhile1(Succ(x0), Succ(x1)) anew_new_takeWhile1(Succ(x0), Succ(x1)) new_new_takeWhile1(Zero, Zero) new_new_takeWhile1(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (37) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 5 less nodes. ---------------------------------------- (38) TRUE ---------------------------------------- (39) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wv51, wv52, Succ(wv530), Succ(wv540)) -> new_takeWhile1(wv51, wv52, wv530, wv540) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (40) 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_takeWhile1(wv51, wv52, Succ(wv530), Succ(wv540)) -> new_takeWhile1(wv51, wv52, wv530, wv540) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (41) YES ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile(Pos(wv40), Neg(Succ(Succ(wv3000)))) -> new_takeWhile(Pos(wv40), Neg(Succ(wv3000))) The TRS R consists of the following rules: new_primPlusNat(Zero) -> Zero new_primPlusNat(Succ(wv520)) -> Succ(wv520) new_primPlusNat0 -> Succ(Zero) The set Q consists of the following terms: new_primPlusNat0 new_primPlusNat(Succ(x0)) new_primPlusNat(Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (43) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Neg(x1) = x1 Pos(x1) = Pos Succ(x1) = Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile(Pos(wv40), Neg(Succ(Succ(wv3000)))) -> new_takeWhile(Pos(wv40), Neg(Succ(wv3000))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1, 2 > 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (44) YES