/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.hs /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty H-Termination with start terms of the given HASKELL could not be shown: (0) HASKELL (1) BR [EQUIVALENT, 0 ms] (2) HASKELL (3) COR [EQUIVALENT, 0 ms] (4) HASKELL (5) LetRed [EQUIVALENT, 1 ms] (6) HASKELL (7) NumRed [SOUND, 0 ms] (8) HASKELL (9) Narrow [COMPLETE, 0 ms] (10) AND (11) QDP (12) PisEmptyProof [EQUIVALENT, 0 ms] (13) YES (14) QDP (15) NonTerminationLoopProof [COMPLETE, 0 ms] (16) NO (17) QDP ---------------------------------------- (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 wv ww = takeWhile2 wv ww; " The following Function with conditions "p |n' >= nflip (<=) m|otherwiseflip (>=) m; " is transformed to "p = p2; " "p1 True = flip (<=) m; p1 False = p0 otherwise; " "p0 True = flip (>=) m; " "p2 = p1 (n' >= n); " The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " The following Function with conditions "toEnum 0 = False; toEnum 1 = True; " is transformed to "toEnum wy = toEnum3 wy; toEnum wx = toEnum1 wx; " "toEnum0 True wx = True; " "toEnum1 wx = toEnum0 (wx == 1) wx; " "toEnum2 True wy = False; toEnum2 wz xu = toEnum1 xu; " "toEnum3 wy = toEnum2 (wy == 0) wy; toEnum3 xv = toEnum1 xv; " ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (5) LetRed (EQUIVALENT) Let/Where Reductions: The bindings of the following Let/Where expression "takeWhile p (numericEnumFromThen n n') where { p = p2; ; p0 True = flip (>=) m; ; p1 True = flip (<=) m; p1 False = p0 otherwise; ; p2 = p1 (n' >= n); } " are unpacked to the following functions on top level "numericEnumFromThenToP xw xx xy = numericEnumFromThenToP2 xw xx xy; " "numericEnumFromThenToP0 xw xx xy True = flip (>=) xw; " "numericEnumFromThenToP2 xw xx xy = numericEnumFromThenToP1 xw xx xy (xx >= xy); " "numericEnumFromThenToP1 xw xx xy True = flip (<=) xw; numericEnumFromThenToP1 xw xx xy False = numericEnumFromThenToP0 xw xx xy otherwise; " ---------------------------------------- (6) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (7) NumRed (SOUND) Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. ---------------------------------------- (8) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (9) Narrow (COMPLETE) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="enumFromThen",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="enumFromThen xz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="enumFromThen xz3 xz4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="enumFromThenTo xz3 xz4 True",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 6[label="map toEnum (enumFromThenTo (fromEnum xz3) (fromEnum xz4) (fromEnum True))",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 7[label="map toEnum (numericEnumFromThenTo (fromEnum xz3) (fromEnum xz4) (fromEnum True))",fontsize=16,color="black",shape="box"];7 -> 8[label="",style="solid", color="black", weight=3]; 8[label="map toEnum (takeWhile (numericEnumFromThenToP (fromEnum True) (fromEnum xz4) (fromEnum xz3)) (numericEnumFromThen (fromEnum xz3) (fromEnum xz4)))",fontsize=16,color="black",shape="box"];8 -> 9[label="",style="solid", color="black", weight=3]; 9[label="map toEnum (takeWhile (numericEnumFromThenToP (fromEnum True) (fromEnum xz4) (fromEnum xz3)) (iterate (fromEnum xz4 - fromEnum xz3 +) (fromEnum xz3)))",fontsize=16,color="black",shape="box"];9 -> 10[label="",style="solid", color="black", weight=3]; 10[label="map toEnum (takeWhile (numericEnumFromThenToP (fromEnum True) (fromEnum xz4) (fromEnum xz3)) (fromEnum xz3 : iterate (fromEnum xz4 - fromEnum xz3 +) (fromEnum xz4 - fromEnum xz3 + fromEnum xz3)))",fontsize=16,color="black",shape="box"];10 -> 11[label="",style="solid", color="black", weight=3]; 11[label="map toEnum (takeWhile2 (numericEnumFromThenToP (fromEnum True) (fromEnum xz4) (fromEnum xz3)) (fromEnum xz3 : iterate (fromEnum xz4 - fromEnum xz3 +) (fromEnum xz4 - fromEnum xz3 + fromEnum xz3)))",fontsize=16,color="black",shape="box"];11 -> 12[label="",style="solid", color="black", weight=3]; 12[label="map toEnum (takeWhile1 (numericEnumFromThenToP (fromEnum True) (fromEnum xz4) (fromEnum xz3)) (fromEnum xz3) (iterate (fromEnum xz4 - fromEnum xz3 +) (fromEnum xz4 - fromEnum xz3 + fromEnum xz3)) (numericEnumFromThenToP (fromEnum True) (fromEnum xz4) (fromEnum xz3) (fromEnum xz3)))",fontsize=16,color="black",shape="box"];12 -> 13[label="",style="solid", color="black", weight=3]; 13[label="map toEnum (takeWhile1 (numericEnumFromThenToP2 (fromEnum True) (fromEnum xz4) (fromEnum xz3)) (fromEnum xz3) (iterate (fromEnum xz4 - fromEnum xz3 +) (fromEnum xz4 - fromEnum xz3 + fromEnum xz3)) (numericEnumFromThenToP2 (fromEnum True) (fromEnum xz4) (fromEnum xz3) (fromEnum xz3)))",fontsize=16,color="black",shape="box"];13 -> 14[label="",style="solid", color="black", weight=3]; 14[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (fromEnum xz4) (fromEnum xz3) (fromEnum xz4 >= fromEnum xz3)) (fromEnum xz3) (iterate (fromEnum xz4 - fromEnum xz3 +) (fromEnum xz4 - fromEnum xz3 + fromEnum xz3)) (numericEnumFromThenToP1 (fromEnum True) (fromEnum xz4) (fromEnum xz3) (fromEnum xz4 >= fromEnum xz3) (fromEnum xz3)))",fontsize=16,color="black",shape="box"];14 -> 15[label="",style="solid", color="black", weight=3]; 15[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (fromEnum xz4) (fromEnum xz3) (compare (fromEnum xz4) (fromEnum xz3) /= LT)) (fromEnum xz3) (iterate (fromEnum xz4 - fromEnum xz3 +) (fromEnum xz4 - fromEnum xz3 + fromEnum xz3)) (numericEnumFromThenToP1 (fromEnum True) (fromEnum xz4) (fromEnum xz3) (compare (fromEnum xz4) (fromEnum xz3) /= LT) (fromEnum xz3)))",fontsize=16,color="black",shape="box"];15 -> 16[label="",style="solid", color="black", weight=3]; 16[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (fromEnum xz4) (fromEnum xz3) (not (compare (fromEnum xz4) (fromEnum xz3) == LT))) (fromEnum xz3) (iterate (fromEnum xz4 - fromEnum xz3 +) (fromEnum xz4 - fromEnum xz3 + fromEnum xz3)) (numericEnumFromThenToP1 (fromEnum True) (fromEnum xz4) (fromEnum xz3) (not (compare (fromEnum xz4) (fromEnum xz3) == LT)) (fromEnum xz3)))",fontsize=16,color="black",shape="box"];16 -> 17[label="",style="solid", color="black", weight=3]; 17[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (fromEnum xz4) (fromEnum xz3) (not (primCmpInt (fromEnum xz4) (fromEnum xz3) == LT))) (fromEnum xz3) (iterate (fromEnum xz4 - fromEnum xz3 +) (fromEnum xz4 - fromEnum xz3 + fromEnum xz3)) (numericEnumFromThenToP1 (fromEnum True) (fromEnum xz4) (fromEnum xz3) (not (primCmpInt (fromEnum xz4) (fromEnum xz3) == LT)) (fromEnum xz3)))",fontsize=16,color="burlywood",shape="box"];240[label="xz4/False",fontsize=10,color="white",style="solid",shape="box"];17 -> 240[label="",style="solid", color="burlywood", weight=9]; 240 -> 18[label="",style="solid", color="burlywood", weight=3]; 241[label="xz4/True",fontsize=10,color="white",style="solid",shape="box"];17 -> 241[label="",style="solid", color="burlywood", weight=9]; 241 -> 19[label="",style="solid", color="burlywood", weight=3]; 18[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (fromEnum False) (fromEnum xz3) (not (primCmpInt (fromEnum False) (fromEnum xz3) == LT))) (fromEnum xz3) (iterate (fromEnum False - fromEnum xz3 +) (fromEnum False - fromEnum xz3 + fromEnum xz3)) (numericEnumFromThenToP1 (fromEnum True) (fromEnum False) (fromEnum xz3) (not (primCmpInt (fromEnum False) (fromEnum xz3) == LT)) (fromEnum xz3)))",fontsize=16,color="black",shape="box"];18 -> 20[label="",style="solid", color="black", weight=3]; 19[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (fromEnum True) (fromEnum xz3) (not (primCmpInt (fromEnum True) (fromEnum xz3) == LT))) (fromEnum xz3) (iterate (fromEnum True - fromEnum xz3 +) (fromEnum True - fromEnum xz3 + fromEnum xz3)) (numericEnumFromThenToP1 (fromEnum True) (fromEnum True) (fromEnum xz3) (not (primCmpInt (fromEnum True) (fromEnum xz3) == LT)) (fromEnum xz3)))",fontsize=16,color="black",shape="box"];19 -> 21[label="",style="solid", color="black", weight=3]; 20[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (fromEnum xz3) (not (primCmpInt (Pos Zero) (fromEnum xz3) == LT))) (fromEnum xz3) (iterate (Pos Zero - fromEnum xz3 +) (Pos Zero - fromEnum xz3 + fromEnum xz3)) (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (fromEnum xz3) (not (primCmpInt (Pos Zero) (fromEnum xz3) == LT)) (fromEnum xz3)))",fontsize=16,color="burlywood",shape="box"];242[label="xz3/False",fontsize=10,color="white",style="solid",shape="box"];20 -> 242[label="",style="solid", color="burlywood", weight=9]; 242 -> 22[label="",style="solid", color="burlywood", weight=3]; 243[label="xz3/True",fontsize=10,color="white",style="solid",shape="box"];20 -> 243[label="",style="solid", color="burlywood", weight=9]; 243 -> 23[label="",style="solid", color="burlywood", weight=3]; 21[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (fromEnum xz3) (not (primCmpInt (Pos (Succ Zero)) (fromEnum xz3) == LT))) (fromEnum xz3) (iterate (Pos (Succ Zero) - fromEnum xz3 +) (Pos (Succ Zero) - fromEnum xz3 + fromEnum xz3)) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (fromEnum xz3) (not (primCmpInt (Pos (Succ Zero)) (fromEnum xz3) == LT)) (fromEnum xz3)))",fontsize=16,color="burlywood",shape="box"];244[label="xz3/False",fontsize=10,color="white",style="solid",shape="box"];21 -> 244[label="",style="solid", color="burlywood", weight=9]; 244 -> 24[label="",style="solid", color="burlywood", weight=3]; 245[label="xz3/True",fontsize=10,color="white",style="solid",shape="box"];21 -> 245[label="",style="solid", color="burlywood", weight=9]; 245 -> 25[label="",style="solid", color="burlywood", weight=3]; 22[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (fromEnum False) (not (primCmpInt (Pos Zero) (fromEnum False) == LT))) (fromEnum False) (iterate (Pos Zero - fromEnum False +) (Pos Zero - fromEnum False + fromEnum False)) (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (fromEnum False) (not (primCmpInt (Pos Zero) (fromEnum False) == LT)) (fromEnum False)))",fontsize=16,color="black",shape="box"];22 -> 26[label="",style="solid", color="black", weight=3]; 23[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (fromEnum True) (not (primCmpInt (Pos Zero) (fromEnum True) == LT))) (fromEnum True) (iterate (Pos Zero - fromEnum True +) (Pos Zero - fromEnum True + fromEnum True)) (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (fromEnum True) (not (primCmpInt (Pos Zero) (fromEnum True) == LT)) (fromEnum True)))",fontsize=16,color="black",shape="box"];23 -> 27[label="",style="solid", color="black", weight=3]; 24[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (fromEnum False) (not (primCmpInt (Pos (Succ Zero)) (fromEnum False) == LT))) (fromEnum False) (iterate (Pos (Succ Zero) - fromEnum False +) (Pos (Succ Zero) - fromEnum False + fromEnum False)) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (fromEnum False) (not (primCmpInt (Pos (Succ Zero)) (fromEnum False) == LT)) (fromEnum False)))",fontsize=16,color="black",shape="box"];24 -> 28[label="",style="solid", color="black", weight=3]; 25[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (fromEnum True) (not (primCmpInt (Pos (Succ Zero)) (fromEnum True) == LT))) (fromEnum True) (iterate (Pos (Succ Zero) - fromEnum True +) (Pos (Succ Zero) - fromEnum True + fromEnum True)) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (fromEnum True) (not (primCmpInt (Pos (Succ Zero)) (fromEnum True) == LT)) (fromEnum True)))",fontsize=16,color="black",shape="box"];25 -> 29[label="",style="solid", color="black", weight=3]; 26[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) (Pos Zero)))",fontsize=16,color="black",shape="box"];26 -> 30[label="",style="solid", color="black", weight=3]; 27[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ Zero)) == LT))) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ Zero)) == LT)) (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];27 -> 31[label="",style="solid", color="black", weight=3]; 28[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos Zero) (not (primCmpInt (Pos (Succ Zero)) (Pos Zero) == LT))) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos Zero) (not (primCmpInt (Pos (Succ Zero)) (Pos Zero) == LT)) (Pos Zero)))",fontsize=16,color="black",shape="box"];28 -> 32[label="",style="solid", color="black", weight=3]; 29[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos (Succ Zero)) (not (primCmpInt (Pos (Succ Zero)) (Pos (Succ Zero)) == LT))) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos (Succ Zero)) (not (primCmpInt (Pos (Succ Zero)) (Pos (Succ Zero)) == LT)) (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];29 -> 33[label="",style="solid", color="black", weight=3]; 30[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos Zero) (not (EQ == LT))) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos Zero) (not (EQ == LT)) (Pos Zero)))",fontsize=16,color="black",shape="box"];30 -> 34[label="",style="solid", color="black", weight=3]; 31[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) (not (primCmpNat Zero (Succ Zero) == LT))) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) (not (primCmpNat Zero (Succ Zero) == LT)) (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];31 -> 35[label="",style="solid", color="black", weight=3]; 32[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos Zero) (not (primCmpNat (Succ Zero) Zero == LT))) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos Zero) (not (primCmpNat (Succ Zero) Zero == LT)) (Pos Zero)))",fontsize=16,color="black",shape="box"];32 -> 36[label="",style="solid", color="black", weight=3]; 33[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos (Succ Zero)) (not (primCmpNat (Succ Zero) (Succ Zero) == LT))) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos (Succ Zero)) (not (primCmpNat (Succ Zero) (Succ Zero) == LT)) (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];33 -> 37[label="",style="solid", color="black", weight=3]; 34[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos Zero) (not False)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos Zero) (not False) (Pos Zero)))",fontsize=16,color="black",shape="box"];34 -> 38[label="",style="solid", color="black", weight=3]; 35[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) (not (LT == LT))) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) (not (LT == LT)) (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];35 -> 39[label="",style="solid", color="black", weight=3]; 36[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos Zero) (not (GT == LT))) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos Zero) (not (GT == LT)) (Pos Zero)))",fontsize=16,color="black",shape="box"];36 -> 40[label="",style="solid", color="black", weight=3]; 37[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos (Succ Zero)) (not (primCmpNat Zero Zero == LT))) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos (Succ Zero)) (not (primCmpNat Zero Zero == LT)) (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];37 -> 41[label="",style="solid", color="black", weight=3]; 38[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos Zero) True) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos Zero) True (Pos Zero)))",fontsize=16,color="black",shape="box"];38 -> 42[label="",style="solid", color="black", weight=3]; 39[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) (not True)) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) (not True) (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];39 -> 43[label="",style="solid", color="black", weight=3]; 40[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos Zero) (not False)) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos Zero) (not False) (Pos Zero)))",fontsize=16,color="black",shape="box"];40 -> 44[label="",style="solid", color="black", weight=3]; 41[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos (Succ Zero)) (not (EQ == LT))) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos (Succ Zero)) (not (EQ == LT)) (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];41 -> 45[label="",style="solid", color="black", weight=3]; 42[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (flip (<=) (fromEnum True) (Pos Zero)))",fontsize=16,color="black",shape="box"];42 -> 46[label="",style="solid", color="black", weight=3]; 43[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) False) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (numericEnumFromThenToP1 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) False (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];43 -> 47[label="",style="solid", color="black", weight=3]; 44[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos Zero) True) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos Zero) True (Pos Zero)))",fontsize=16,color="black",shape="box"];44 -> 48[label="",style="solid", color="black", weight=3]; 45[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos (Succ Zero)) (not False)) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos (Succ Zero)) (not False) (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];45 -> 49[label="",style="solid", color="black", weight=3]; 46[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) ((<=) Pos Zero fromEnum True))",fontsize=16,color="black",shape="box"];46 -> 50[label="",style="solid", color="black", weight=3]; 47[label="map toEnum (takeWhile1 (numericEnumFromThenToP0 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) otherwise) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (numericEnumFromThenToP0 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) otherwise (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];47 -> 51[label="",style="solid", color="black", weight=3]; 48[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) (flip (<=) (fromEnum True) (Pos Zero)))",fontsize=16,color="black",shape="box"];48 -> 52[label="",style="solid", color="black", weight=3]; 49[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos (Succ Zero)) True) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (numericEnumFromThenToP1 (fromEnum True) (Pos (Succ Zero)) (Pos (Succ Zero)) True (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];49 -> 53[label="",style="solid", color="black", weight=3]; 50[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (compare (Pos Zero) (fromEnum True) /= GT))",fontsize=16,color="black",shape="box"];50 -> 54[label="",style="solid", color="black", weight=3]; 51[label="map toEnum (takeWhile1 (numericEnumFromThenToP0 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) True) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (numericEnumFromThenToP0 (fromEnum True) (Pos Zero) (Pos (Succ Zero)) True (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];51 -> 55[label="",style="solid", color="black", weight=3]; 52[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) ((<=) Pos Zero fromEnum True))",fontsize=16,color="black",shape="box"];52 -> 56[label="",style="solid", color="black", weight=3]; 53[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (flip (<=) (fromEnum True) (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];53 -> 57[label="",style="solid", color="black", weight=3]; 54[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (not (compare (Pos Zero) (fromEnum True) == GT)))",fontsize=16,color="black",shape="box"];54 -> 58[label="",style="solid", color="black", weight=3]; 55[label="map toEnum (takeWhile1 (flip (>=) (fromEnum True)) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (flip (>=) (fromEnum True) (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];55 -> 59[label="",style="solid", color="black", weight=3]; 56[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) (compare (Pos Zero) (fromEnum True) /= GT))",fontsize=16,color="black",shape="box"];56 -> 60[label="",style="solid", color="black", weight=3]; 57[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) ((<=) Pos (Succ Zero) fromEnum True))",fontsize=16,color="black",shape="box"];57 -> 61[label="",style="solid", color="black", weight=3]; 58[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (not (primCmpInt (Pos Zero) (fromEnum True) == GT)))",fontsize=16,color="black",shape="box"];58 -> 62[label="",style="solid", color="black", weight=3]; 59[label="map toEnum (takeWhile1 (flip (>=) (fromEnum True)) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) ((>=) Pos (Succ Zero) fromEnum True))",fontsize=16,color="black",shape="box"];59 -> 63[label="",style="solid", color="black", weight=3]; 60[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) (not (compare (Pos Zero) (fromEnum True) == GT)))",fontsize=16,color="black",shape="box"];60 -> 64[label="",style="solid", color="black", weight=3]; 61[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (compare (Pos (Succ Zero)) (fromEnum True) /= GT))",fontsize=16,color="black",shape="box"];61 -> 65[label="",style="solid", color="black", weight=3]; 62[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];62 -> 66[label="",style="solid", color="black", weight=3]; 63[label="map toEnum (takeWhile1 (flip (>=) (fromEnum True)) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (compare (Pos (Succ Zero)) (fromEnum True) /= LT))",fontsize=16,color="black",shape="box"];63 -> 67[label="",style="solid", color="black", weight=3]; 64[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) (not (primCmpInt (Pos Zero) (fromEnum True) == GT)))",fontsize=16,color="black",shape="box"];64 -> 68[label="",style="solid", color="black", weight=3]; 65[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (not (compare (Pos (Succ Zero)) (fromEnum True) == GT)))",fontsize=16,color="black",shape="box"];65 -> 69[label="",style="solid", color="black", weight=3]; 66[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (not (primCmpNat Zero (Succ Zero) == GT)))",fontsize=16,color="black",shape="box"];66 -> 70[label="",style="solid", color="black", weight=3]; 67[label="map toEnum (takeWhile1 (flip (>=) (fromEnum True)) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (not (compare (Pos (Succ Zero)) (fromEnum True) == LT)))",fontsize=16,color="black",shape="box"];67 -> 71[label="",style="solid", color="black", weight=3]; 68[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];68 -> 72[label="",style="solid", color="black", weight=3]; 69[label="map toEnum (takeWhile1 (flip (<=) (fromEnum True)) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (not (primCmpInt (Pos (Succ Zero)) (fromEnum True) == GT)))",fontsize=16,color="black",shape="box"];69 -> 73[label="",style="solid", color="black", weight=3]; 70[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (not (LT == GT)))",fontsize=16,color="black",shape="box"];70 -> 74[label="",style="solid", color="black", weight=3]; 71[label="map toEnum (takeWhile1 (flip (>=) (fromEnum True)) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (not (primCmpInt (Pos (Succ Zero)) (fromEnum True) == LT)))",fontsize=16,color="black",shape="box"];71 -> 75[label="",style="solid", color="black", weight=3]; 72[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) (not (primCmpNat Zero (Succ Zero) == GT)))",fontsize=16,color="black",shape="box"];72 -> 76[label="",style="solid", color="black", weight=3]; 73[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (not (primCmpInt (Pos (Succ Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];73 -> 77[label="",style="solid", color="black", weight=3]; 74[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (not False))",fontsize=16,color="black",shape="box"];74 -> 78[label="",style="solid", color="black", weight=3]; 75[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (not (primCmpInt (Pos (Succ Zero)) (Pos (Succ Zero)) == LT)))",fontsize=16,color="black",shape="box"];75 -> 79[label="",style="solid", color="black", weight=3]; 76[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) (not (LT == GT)))",fontsize=16,color="black",shape="box"];76 -> 80[label="",style="solid", color="black", weight=3]; 77[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (not (primCmpNat (Succ Zero) (Succ Zero) == GT)))",fontsize=16,color="black",shape="box"];77 -> 81[label="",style="solid", color="black", weight=3]; 78[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) True)",fontsize=16,color="black",shape="box"];78 -> 82[label="",style="solid", color="black", weight=3]; 79[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (not (primCmpNat (Succ Zero) (Succ Zero) == LT)))",fontsize=16,color="black",shape="box"];79 -> 83[label="",style="solid", color="black", weight=3]; 80[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) (not False))",fontsize=16,color="black",shape="box"];80 -> 84[label="",style="solid", color="black", weight=3]; 81[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (not (primCmpNat Zero Zero == GT)))",fontsize=16,color="black",shape="box"];81 -> 85[label="",style="solid", color="black", weight=3]; 82[label="map toEnum (Pos Zero : takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)))",fontsize=16,color="black",shape="box"];82 -> 86[label="",style="solid", color="black", weight=3]; 83[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (not (primCmpNat Zero Zero == LT)))",fontsize=16,color="black",shape="box"];83 -> 87[label="",style="solid", color="black", weight=3]; 84[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)) True)",fontsize=16,color="black",shape="box"];84 -> 88[label="",style="solid", color="black", weight=3]; 85[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (not (EQ == GT)))",fontsize=16,color="black",shape="box"];85 -> 89[label="",style="solid", color="black", weight=3]; 86[label="toEnum (Pos Zero) : map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)))",fontsize=16,color="green",shape="box"];86 -> 90[label="",style="dashed", color="green", weight=3]; 86 -> 91[label="",style="dashed", color="green", weight=3]; 87[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (not (EQ == LT)))",fontsize=16,color="black",shape="box"];87 -> 92[label="",style="solid", color="black", weight=3]; 88[label="map toEnum (Pos Zero : takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)))",fontsize=16,color="black",shape="box"];88 -> 93[label="",style="solid", color="black", weight=3]; 89[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) (not False))",fontsize=16,color="black",shape="box"];89 -> 94[label="",style="solid", color="black", weight=3]; 90[label="toEnum (Pos Zero)",fontsize=16,color="black",shape="triangle"];90 -> 95[label="",style="solid", color="black", weight=3]; 91[label="map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)))",fontsize=16,color="black",shape="box"];91 -> 96[label="",style="solid", color="black", weight=3]; 92[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) (not False))",fontsize=16,color="black",shape="box"];92 -> 97[label="",style="solid", color="black", weight=3]; 93[label="toEnum (Pos Zero) : map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)))",fontsize=16,color="green",shape="box"];93 -> 98[label="",style="dashed", color="green", weight=3]; 93 -> 99[label="",style="dashed", color="green", weight=3]; 94[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))) True)",fontsize=16,color="black",shape="box"];94 -> 100[label="",style="solid", color="black", weight=3]; 95[label="toEnum3 (Pos Zero)",fontsize=16,color="black",shape="box"];95 -> 101[label="",style="solid", color="black", weight=3]; 96[label="map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (Pos Zero - Pos Zero + Pos Zero : iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))))",fontsize=16,color="black",shape="box"];96 -> 102[label="",style="solid", color="black", weight=3]; 97[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))) True)",fontsize=16,color="black",shape="box"];97 -> 103[label="",style="solid", color="black", weight=3]; 98 -> 90[label="",style="dashed", color="red", weight=0]; 98[label="toEnum (Pos Zero)",fontsize=16,color="magenta"];99[label="map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + Pos Zero)))",fontsize=16,color="black",shape="box"];99 -> 104[label="",style="solid", color="black", weight=3]; 100[label="map toEnum (Pos (Succ Zero) : takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];100 -> 105[label="",style="solid", color="black", weight=3]; 101[label="toEnum2 (Pos Zero == Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];101 -> 106[label="",style="solid", color="black", weight=3]; 102[label="map toEnum (takeWhile2 (flip (<=) (Pos (Succ Zero))) (Pos Zero - Pos Zero + Pos Zero : iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))))",fontsize=16,color="black",shape="box"];102 -> 107[label="",style="solid", color="black", weight=3]; 103[label="map toEnum (Pos (Succ Zero) : takeWhile (flip (>=) (Pos (Succ Zero))) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];103 -> 108[label="",style="solid", color="black", weight=3]; 104[label="map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos Zero + Pos Zero : iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + (Pos (Succ Zero) - Pos Zero + Pos Zero))))",fontsize=16,color="black",shape="box"];104 -> 109[label="",style="solid", color="black", weight=3]; 105[label="toEnum (Pos (Succ Zero)) : map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))))",fontsize=16,color="green",shape="box"];105 -> 110[label="",style="dashed", color="green", weight=3]; 105 -> 111[label="",style="dashed", color="green", weight=3]; 106[label="toEnum2 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero)",fontsize=16,color="black",shape="box"];106 -> 112[label="",style="solid", color="black", weight=3]; 107[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero - Pos Zero + Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))) (flip (<=) (Pos (Succ Zero)) (Pos Zero - Pos Zero + Pos Zero)))",fontsize=16,color="black",shape="box"];107 -> 113[label="",style="solid", color="black", weight=3]; 108[label="toEnum (Pos (Succ Zero)) : map toEnum (takeWhile (flip (>=) (Pos (Succ Zero))) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))))",fontsize=16,color="green",shape="box"];108 -> 114[label="",style="dashed", color="green", weight=3]; 108 -> 115[label="",style="dashed", color="green", weight=3]; 109[label="map toEnum (takeWhile2 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos Zero + Pos Zero : iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + (Pos (Succ Zero) - Pos Zero + Pos Zero))))",fontsize=16,color="black",shape="box"];109 -> 116[label="",style="solid", color="black", weight=3]; 110[label="toEnum (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];110 -> 117[label="",style="solid", color="black", weight=3]; 111[label="map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];111 -> 118[label="",style="solid", color="black", weight=3]; 112[label="toEnum2 True (Pos Zero)",fontsize=16,color="black",shape="box"];112 -> 119[label="",style="solid", color="black", weight=3]; 113[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero - Pos Zero + Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))) ((<=) Pos Zero - Pos Zero + Pos Zero Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];113 -> 120[label="",style="solid", color="black", weight=3]; 114 -> 110[label="",style="dashed", color="red", weight=0]; 114[label="toEnum (Pos (Succ Zero))",fontsize=16,color="magenta"];115[label="map toEnum (takeWhile (flip (>=) (Pos (Succ Zero))) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];115 -> 121[label="",style="solid", color="black", weight=3]; 116[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos Zero + Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + (Pos (Succ Zero) - Pos Zero + Pos Zero))) (flip (<=) (Pos (Succ Zero)) (Pos (Succ Zero) - Pos Zero + Pos Zero)))",fontsize=16,color="black",shape="box"];116 -> 122[label="",style="solid", color="black", weight=3]; 117[label="toEnum3 (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];117 -> 123[label="",style="solid", color="black", weight=3]; 118[label="map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero) : iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];118 -> 124[label="",style="solid", color="black", weight=3]; 119[label="False",fontsize=16,color="green",shape="box"];120[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero - Pos Zero + Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))) (compare (Pos Zero - Pos Zero + Pos Zero) (Pos (Succ Zero)) /= GT))",fontsize=16,color="black",shape="box"];120 -> 125[label="",style="solid", color="black", weight=3]; 121[label="map toEnum (takeWhile (flip (>=) (Pos (Succ Zero))) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero) : iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];121 -> 126[label="",style="solid", color="black", weight=3]; 122[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos Zero + Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + (Pos (Succ Zero) - Pos Zero + Pos Zero))) ((<=) Pos (Succ Zero) - Pos Zero + Pos Zero Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];122 -> 127[label="",style="solid", color="black", weight=3]; 123[label="toEnum2 (Pos (Succ Zero) == Pos Zero) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];123 -> 128[label="",style="solid", color="black", weight=3]; 124[label="map toEnum (takeWhile2 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero) : iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];124 -> 129[label="",style="solid", color="black", weight=3]; 125[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero - Pos Zero + Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))) (not (compare (Pos Zero - Pos Zero + Pos Zero) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];125 -> 130[label="",style="solid", color="black", weight=3]; 126[label="map toEnum (takeWhile2 (flip (>=) (Pos (Succ Zero))) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero) : iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];126 -> 131[label="",style="solid", color="black", weight=3]; 127[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos Zero + Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + (Pos (Succ Zero) - Pos Zero + Pos Zero))) (compare (Pos (Succ Zero) - Pos Zero + Pos Zero) (Pos (Succ Zero)) /= GT))",fontsize=16,color="black",shape="box"];127 -> 132[label="",style="solid", color="black", weight=3]; 128[label="toEnum2 (primEqInt (Pos (Succ Zero)) (Pos Zero)) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];128 -> 133[label="",style="solid", color="black", weight=3]; 129[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)))) (flip (<=) (Pos (Succ Zero)) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];129 -> 134[label="",style="solid", color="black", weight=3]; 130[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero - Pos Zero + Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))) (not (primCmpInt (Pos Zero - Pos Zero + Pos Zero) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];130 -> 135[label="",style="solid", color="black", weight=3]; 131[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)))) (flip (>=) (Pos (Succ Zero)) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];131 -> 136[label="",style="solid", color="black", weight=3]; 132[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos Zero + Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + (Pos (Succ Zero) - Pos Zero + Pos Zero))) (not (compare (Pos (Succ Zero) - Pos Zero + Pos Zero) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];132 -> 137[label="",style="solid", color="black", weight=3]; 133[label="toEnum2 False (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];133 -> 138[label="",style="solid", color="black", weight=3]; 134[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)))) ((<=) Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero) Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];134 -> 139[label="",style="solid", color="black", weight=3]; 135[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero - Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero - Pos Zero)) (primPlusInt (Pos Zero - Pos Zero) (primPlusInt (Pos Zero - Pos Zero) (Pos Zero)))) (not (primCmpInt (primPlusInt (Pos Zero - Pos Zero) (Pos Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];135 -> 140[label="",style="solid", color="black", weight=3]; 136[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)))) ((>=) Pos Zero - Pos (Succ Zero) + Pos (Succ Zero) Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];136 -> 141[label="",style="solid", color="black", weight=3]; 137[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos Zero + Pos Zero) (iterate (Pos (Succ Zero) - Pos Zero +) (Pos (Succ Zero) - Pos Zero + (Pos (Succ Zero) - Pos Zero + Pos Zero))) (not (primCmpInt (Pos (Succ Zero) - Pos Zero + Pos Zero) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];137 -> 142[label="",style="solid", color="black", weight=3]; 138[label="toEnum1 (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];138 -> 143[label="",style="solid", color="black", weight=3]; 139[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)))) (compare (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)) (Pos (Succ Zero)) /= GT))",fontsize=16,color="black",shape="box"];139 -> 144[label="",style="solid", color="black", weight=3]; 140[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (primMinusInt (Pos Zero) (Pos Zero)) (Pos Zero)) (iterate (primPlusInt (primMinusInt (Pos Zero) (Pos Zero))) (primPlusInt (primMinusInt (Pos Zero) (Pos Zero)) (primPlusInt (primMinusInt (Pos Zero) (Pos Zero)) (Pos Zero)))) (not (primCmpInt (primPlusInt (primMinusInt (Pos Zero) (Pos Zero)) (Pos Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];140 -> 145[label="",style="solid", color="black", weight=3]; 141[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)))) (compare (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)) (Pos (Succ Zero)) /= LT))",fontsize=16,color="black",shape="box"];141 -> 146[label="",style="solid", color="black", weight=3]; 142[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero) - Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos (Succ Zero) - Pos Zero)) (primPlusInt (Pos (Succ Zero) - Pos Zero) (primPlusInt (Pos (Succ Zero) - Pos Zero) (Pos Zero)))) (not (primCmpInt (primPlusInt (Pos (Succ Zero) - Pos Zero) (Pos Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];142 -> 147[label="",style="solid", color="black", weight=3]; 143[label="toEnum0 (Pos (Succ Zero) == Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];143 -> 148[label="",style="solid", color="black", weight=3]; 144[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)))) (not (compare (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];144 -> 149[label="",style="solid", color="black", weight=3]; 145[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (primMinusNat Zero Zero) (Pos Zero)) (iterate (primPlusInt (primMinusNat Zero Zero)) (primPlusInt (primMinusNat Zero Zero) (primPlusInt (primMinusNat Zero Zero) (Pos Zero)))) (not (primCmpInt (primPlusInt (primMinusNat Zero Zero) (Pos Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];145 -> 150[label="",style="solid", color="black", weight=3]; 146[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)))) (not (compare (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)) (Pos (Succ Zero)) == LT)))",fontsize=16,color="black",shape="box"];146 -> 151[label="",style="solid", color="black", weight=3]; 147[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (primMinusInt (Pos (Succ Zero)) (Pos Zero)) (Pos Zero)) (iterate (primPlusInt (primMinusInt (Pos (Succ Zero)) (Pos Zero))) (primPlusInt (primMinusInt (Pos (Succ Zero)) (Pos Zero)) (primPlusInt (primMinusInt (Pos (Succ Zero)) (Pos Zero)) (Pos Zero)))) (not (primCmpInt (primPlusInt (primMinusInt (Pos (Succ Zero)) (Pos Zero)) (Pos Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];147 -> 152[label="",style="solid", color="black", weight=3]; 148[label="toEnum0 (primEqInt (Pos (Succ Zero)) (Pos (Succ Zero))) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];148 -> 153[label="",style="solid", color="black", weight=3]; 149[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)) (iterate (Pos (Succ Zero) - Pos (Succ Zero) +) (Pos (Succ Zero) - Pos (Succ Zero) + (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)))) (not (primCmpInt (Pos (Succ Zero) - Pos (Succ Zero) + Pos (Succ Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];149 -> 154[label="",style="solid", color="black", weight=3]; 150[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))) (not (primCmpInt (primPlusInt (Pos Zero) (Pos Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="triangle"];150 -> 155[label="",style="solid", color="black", weight=3]; 151[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)) (iterate (Pos Zero - Pos (Succ Zero) +) (Pos Zero - Pos (Succ Zero) + (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)))) (not (primCmpInt (Pos Zero - Pos (Succ Zero) + Pos (Succ Zero)) (Pos (Succ Zero)) == LT)))",fontsize=16,color="black",shape="box"];151 -> 156[label="",style="solid", color="black", weight=3]; 152[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (primMinusNat (Succ Zero) Zero) (Pos Zero)) (iterate (primPlusInt (primMinusNat (Succ Zero) Zero)) (primPlusInt (primMinusNat (Succ Zero) Zero) (primPlusInt (primMinusNat (Succ Zero) Zero) (Pos Zero)))) (not (primCmpInt (primPlusInt (primMinusNat (Succ Zero) Zero) (Pos Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];152 -> 157[label="",style="solid", color="black", weight=3]; 153[label="toEnum0 (primEqNat Zero Zero) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];153 -> 158[label="",style="solid", color="black", weight=3]; 154[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero) - Pos (Succ Zero)) (Pos (Succ Zero))) (iterate (primPlusInt (Pos (Succ Zero) - Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero) - Pos (Succ Zero)) (primPlusInt (Pos (Succ Zero) - Pos (Succ Zero)) (Pos (Succ Zero))))) (not (primCmpInt (primPlusInt (Pos (Succ Zero) - Pos (Succ Zero)) (Pos (Succ Zero))) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];154 -> 159[label="",style="solid", color="black", weight=3]; 155[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (primPlusNat Zero Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos (primPlusNat Zero Zero)))) (not (primCmpInt (Pos (primPlusNat Zero Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];155 -> 160[label="",style="solid", color="black", weight=3]; 156[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (primPlusInt (Pos Zero - Pos (Succ Zero)) (Pos (Succ Zero))) (iterate (primPlusInt (Pos Zero - Pos (Succ Zero))) (primPlusInt (Pos Zero - Pos (Succ Zero)) (primPlusInt (Pos Zero - Pos (Succ Zero)) (Pos (Succ Zero))))) (not (primCmpInt (primPlusInt (Pos Zero - Pos (Succ Zero)) (Pos (Succ Zero))) (Pos (Succ Zero)) == LT)))",fontsize=16,color="black",shape="box"];156 -> 161[label="",style="solid", color="black", weight=3]; 157[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos Zero)) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (primPlusInt (Pos (Succ Zero)) (Pos Zero)))) (not (primCmpInt (primPlusInt (Pos (Succ Zero)) (Pos Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];157 -> 162[label="",style="solid", color="black", weight=3]; 158[label="toEnum0 True (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];158 -> 163[label="",style="solid", color="black", weight=3]; 159[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (primMinusInt (Pos (Succ Zero)) (Pos (Succ Zero))) (Pos (Succ Zero))) (iterate (primPlusInt (primMinusInt (Pos (Succ Zero)) (Pos (Succ Zero)))) (primPlusInt (primMinusInt (Pos (Succ Zero)) (Pos (Succ Zero))) (primPlusInt (primMinusInt (Pos (Succ Zero)) (Pos (Succ Zero))) (Pos (Succ Zero))))) (not (primCmpInt (primPlusInt (primMinusInt (Pos (Succ Zero)) (Pos (Succ Zero))) (Pos (Succ Zero))) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];159 -> 164[label="",style="solid", color="black", weight=3]; 160[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))) (not (primCmpInt (Pos Zero) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];160 -> 165[label="",style="solid", color="black", weight=3]; 161[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (primPlusInt (primMinusInt (Pos Zero) (Pos (Succ Zero))) (Pos (Succ Zero))) (iterate (primPlusInt (primMinusInt (Pos Zero) (Pos (Succ Zero)))) (primPlusInt (primMinusInt (Pos Zero) (Pos (Succ Zero))) (primPlusInt (primMinusInt (Pos Zero) (Pos (Succ Zero))) (Pos (Succ Zero))))) (not (primCmpInt (primPlusInt (primMinusInt (Pos Zero) (Pos (Succ Zero))) (Pos (Succ Zero))) (Pos (Succ Zero)) == LT)))",fontsize=16,color="black",shape="box"];161 -> 166[label="",style="solid", color="black", weight=3]; 162[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (primPlusNat (Succ Zero) Zero)) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (primPlusNat (Succ Zero) Zero)))) (not (primCmpInt (Pos (primPlusNat (Succ Zero) Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];162 -> 167[label="",style="solid", color="black", weight=3]; 163[label="True",fontsize=16,color="green",shape="box"];164[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (primMinusNat (Succ Zero) (Succ Zero)) (Pos (Succ Zero))) (iterate (primPlusInt (primMinusNat (Succ Zero) (Succ Zero))) (primPlusInt (primMinusNat (Succ Zero) (Succ Zero)) (primPlusInt (primMinusNat (Succ Zero) (Succ Zero)) (Pos (Succ Zero))))) (not (primCmpInt (primPlusInt (primMinusNat (Succ Zero) (Succ Zero)) (Pos (Succ Zero))) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];164 -> 168[label="",style="solid", color="black", weight=3]; 165[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))) (not (primCmpNat Zero (Succ Zero) == GT)))",fontsize=16,color="black",shape="box"];165 -> 169[label="",style="solid", color="black", weight=3]; 166[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (primPlusInt (primMinusNat Zero (Succ Zero)) (Pos (Succ Zero))) (iterate (primPlusInt (primMinusNat Zero (Succ Zero))) (primPlusInt (primMinusNat Zero (Succ Zero)) (primPlusInt (primMinusNat Zero (Succ Zero)) (Pos (Succ Zero))))) (not (primCmpInt (primPlusInt (primMinusNat Zero (Succ Zero)) (Pos (Succ Zero))) (Pos (Succ Zero)) == LT)))",fontsize=16,color="black",shape="box"];166 -> 170[label="",style="solid", color="black", weight=3]; 167[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero)))) (not (primCmpInt (Pos (Succ Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];167 -> 171[label="",style="solid", color="black", weight=3]; 168[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (primMinusNat Zero Zero) (Pos (Succ Zero))) (iterate (primPlusInt (primMinusNat Zero Zero)) (primPlusInt (primMinusNat Zero Zero) (primPlusInt (primMinusNat Zero Zero) (Pos (Succ Zero))))) (not (primCmpInt (primPlusInt (primMinusNat Zero Zero) (Pos (Succ Zero))) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];168 -> 172[label="",style="solid", color="black", weight=3]; 169[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))) (not (LT == GT)))",fontsize=16,color="black",shape="box"];169 -> 173[label="",style="solid", color="black", weight=3]; 170[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (primPlusInt (Neg (Succ Zero)) (Pos (Succ Zero))) (iterate (primPlusInt (Neg (Succ Zero))) (primPlusInt (Neg (Succ Zero)) (primPlusInt (Neg (Succ Zero)) (Pos (Succ Zero))))) (not (primCmpInt (primPlusInt (Neg (Succ Zero)) (Pos (Succ Zero))) (Pos (Succ Zero)) == LT)))",fontsize=16,color="black",shape="box"];170 -> 174[label="",style="solid", color="black", weight=3]; 171[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero)))) (not (primCmpNat (Succ Zero) (Succ Zero) == GT)))",fontsize=16,color="black",shape="box"];171 -> 175[label="",style="solid", color="black", weight=3]; 172[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos (Succ Zero))) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos (Succ Zero))))) (not (primCmpInt (primPlusInt (Pos Zero) (Pos (Succ Zero))) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="triangle"];172 -> 176[label="",style="solid", color="black", weight=3]; 173[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))) (not False))",fontsize=16,color="black",shape="box"];173 -> 177[label="",style="solid", color="black", weight=3]; 174[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (primMinusNat (Succ Zero) (Succ Zero)) (iterate (primPlusInt (Neg (Succ Zero))) (primPlusInt (Neg (Succ Zero)) (primMinusNat (Succ Zero) (Succ Zero)))) (not (primCmpInt (primMinusNat (Succ Zero) (Succ Zero)) (Pos (Succ Zero)) == LT)))",fontsize=16,color="black",shape="box"];174 -> 178[label="",style="solid", color="black", weight=3]; 175[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero)))) (not (primCmpNat Zero Zero == GT)))",fontsize=16,color="black",shape="box"];175 -> 179[label="",style="solid", color="black", weight=3]; 176[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (primPlusNat Zero (Succ Zero))) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos (primPlusNat Zero (Succ Zero))))) (not (primCmpInt (Pos (primPlusNat Zero (Succ Zero))) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];176 -> 180[label="",style="solid", color="black", weight=3]; 177[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos Zero) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))) True)",fontsize=16,color="black",shape="box"];177 -> 181[label="",style="solid", color="black", weight=3]; 178[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (primMinusNat Zero Zero) (iterate (primPlusInt (Neg (Succ Zero))) (primPlusInt (Neg (Succ Zero)) (primMinusNat Zero Zero))) (not (primCmpInt (primMinusNat Zero Zero) (Pos (Succ Zero)) == LT)))",fontsize=16,color="black",shape="box"];178 -> 182[label="",style="solid", color="black", weight=3]; 179[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero)))) (not (EQ == GT)))",fontsize=16,color="black",shape="box"];179 -> 183[label="",style="solid", color="black", weight=3]; 180[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos (Succ Zero)))) (not (primCmpInt (Pos (Succ Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];180 -> 184[label="",style="solid", color="black", weight=3]; 181[label="map toEnum (Pos Zero : takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))))",fontsize=16,color="black",shape="box"];181 -> 185[label="",style="solid", color="black", weight=3]; 182[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos Zero) (iterate (primPlusInt (Neg (Succ Zero))) (primPlusInt (Neg (Succ Zero)) (Pos Zero))) (not (primCmpInt (Pos Zero) (Pos (Succ Zero)) == LT)))",fontsize=16,color="black",shape="box"];182 -> 186[label="",style="solid", color="black", weight=3]; 183[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero)))) (not False))",fontsize=16,color="black",shape="box"];183 -> 187[label="",style="solid", color="black", weight=3]; 184[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos (Succ Zero)))) (not (primCmpNat (Succ Zero) (Succ Zero) == GT)))",fontsize=16,color="black",shape="box"];184 -> 188[label="",style="solid", color="black", weight=3]; 185[label="toEnum (Pos Zero) : map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))))",fontsize=16,color="green",shape="box"];185 -> 189[label="",style="dashed", color="green", weight=3]; 185 -> 190[label="",style="dashed", color="green", weight=3]; 186[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos Zero) (iterate (primPlusInt (Neg (Succ Zero))) (primPlusInt (Neg (Succ Zero)) (Pos Zero))) (not (primCmpNat Zero (Succ Zero) == LT)))",fontsize=16,color="black",shape="box"];186 -> 191[label="",style="solid", color="black", weight=3]; 187[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero)))) True)",fontsize=16,color="black",shape="box"];187 -> 192[label="",style="solid", color="black", weight=3]; 188[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos (Succ Zero)))) (not (primCmpNat Zero Zero == GT)))",fontsize=16,color="black",shape="box"];188 -> 193[label="",style="solid", color="black", weight=3]; 189 -> 90[label="",style="dashed", color="red", weight=0]; 189[label="toEnum (Pos Zero)",fontsize=16,color="magenta"];190[label="map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))))",fontsize=16,color="black",shape="box"];190 -> 194[label="",style="solid", color="black", weight=3]; 191[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos Zero) (iterate (primPlusInt (Neg (Succ Zero))) (primPlusInt (Neg (Succ Zero)) (Pos Zero))) (not (LT == LT)))",fontsize=16,color="black",shape="box"];191 -> 195[label="",style="solid", color="black", weight=3]; 192[label="map toEnum (Pos (Succ Zero) : takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];192 -> 196[label="",style="solid", color="black", weight=3]; 193[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos (Succ Zero)))) (not (EQ == GT)))",fontsize=16,color="black",shape="box"];193 -> 197[label="",style="solid", color="black", weight=3]; 194[label="map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos Zero) : iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))))",fontsize=16,color="black",shape="box"];194 -> 198[label="",style="solid", color="black", weight=3]; 195[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos Zero) (iterate (primPlusInt (Neg (Succ Zero))) (primPlusInt (Neg (Succ Zero)) (Pos Zero))) (not True))",fontsize=16,color="black",shape="box"];195 -> 199[label="",style="solid", color="black", weight=3]; 196[label="toEnum (Pos (Succ Zero)) : map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero)))))",fontsize=16,color="green",shape="box"];196 -> 200[label="",style="dashed", color="green", weight=3]; 196 -> 201[label="",style="dashed", color="green", weight=3]; 197[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos (Succ Zero)))) (not False))",fontsize=16,color="black",shape="box"];197 -> 202[label="",style="solid", color="black", weight=3]; 198[label="map toEnum (takeWhile2 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos Zero) : iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))))",fontsize=16,color="black",shape="box"];198 -> 203[label="",style="solid", color="black", weight=3]; 199[label="map toEnum (takeWhile1 (flip (>=) (Pos (Succ Zero))) (Pos Zero) (iterate (primPlusInt (Neg (Succ Zero))) (primPlusInt (Neg (Succ Zero)) (Pos Zero))) False)",fontsize=16,color="black",shape="box"];199 -> 204[label="",style="solid", color="black", weight=3]; 200 -> 110[label="",style="dashed", color="red", weight=0]; 200[label="toEnum (Pos (Succ Zero))",fontsize=16,color="magenta"];201[label="map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];201 -> 205[label="",style="solid", color="black", weight=3]; 202[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos (Succ Zero)))) True)",fontsize=16,color="black",shape="box"];202 -> 206[label="",style="solid", color="black", weight=3]; 203[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))) (flip (<=) (Pos (Succ Zero)) (primPlusInt (Pos Zero) (Pos Zero))))",fontsize=16,color="black",shape="box"];203 -> 207[label="",style="solid", color="black", weight=3]; 204[label="map toEnum (takeWhile0 (flip (>=) (Pos (Succ Zero))) (Pos Zero) (iterate (primPlusInt (Neg (Succ Zero))) (primPlusInt (Neg (Succ Zero)) (Pos Zero))) otherwise)",fontsize=16,color="black",shape="box"];204 -> 208[label="",style="solid", color="black", weight=3]; 205[label="map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero)) : iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];205 -> 209[label="",style="solid", color="black", weight=3]; 206[label="map toEnum (Pos (Succ Zero) : takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];206 -> 210[label="",style="solid", color="black", weight=3]; 207[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))) ((<=) primPlusInt (Pos Zero) (Pos Zero) Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];207 -> 211[label="",style="solid", color="black", weight=3]; 208[label="map toEnum (takeWhile0 (flip (>=) (Pos (Succ Zero))) (Pos Zero) (iterate (primPlusInt (Neg (Succ Zero))) (primPlusInt (Neg (Succ Zero)) (Pos Zero))) True)",fontsize=16,color="black",shape="box"];208 -> 212[label="",style="solid", color="black", weight=3]; 209[label="map toEnum (takeWhile2 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero)) : iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];209 -> 213[label="",style="solid", color="black", weight=3]; 210[label="toEnum (Pos (Succ Zero)) : map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos (Succ Zero)))))",fontsize=16,color="green",shape="box"];210 -> 214[label="",style="dashed", color="green", weight=3]; 210 -> 215[label="",style="dashed", color="green", weight=3]; 211[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))) (compare (primPlusInt (Pos Zero) (Pos Zero)) (Pos (Succ Zero)) /= GT))",fontsize=16,color="black",shape="box"];211 -> 216[label="",style="solid", color="black", weight=3]; 212[label="map toEnum []",fontsize=16,color="black",shape="triangle"];212 -> 217[label="",style="solid", color="black", weight=3]; 213[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))))) (flip (<=) (Pos (Succ Zero)) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];213 -> 218[label="",style="solid", color="black", weight=3]; 214 -> 110[label="",style="dashed", color="red", weight=0]; 214[label="toEnum (Pos (Succ Zero))",fontsize=16,color="magenta"];215[label="map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];215 -> 219[label="",style="solid", color="black", weight=3]; 216[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))) (not (compare (primPlusInt (Pos Zero) (Pos Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];216 -> 220[label="",style="solid", color="black", weight=3]; 217[label="[]",fontsize=16,color="green",shape="box"];218[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))))) ((<=) primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero)) Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];218 -> 221[label="",style="solid", color="black", weight=3]; 219[label="map toEnum (takeWhile (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos (Succ Zero)) : iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];219 -> 222[label="",style="solid", color="black", weight=3]; 220 -> 150[label="",style="dashed", color="red", weight=0]; 220[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))) (not (primCmpInt (primPlusInt (Pos Zero) (Pos Zero)) (Pos (Succ Zero)) == GT)))",fontsize=16,color="magenta"];221[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))))) (compare (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))) (Pos (Succ Zero)) /= GT))",fontsize=16,color="black",shape="box"];221 -> 223[label="",style="solid", color="black", weight=3]; 222[label="map toEnum (takeWhile2 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos (Succ Zero)) : iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];222 -> 224[label="",style="solid", color="black", weight=3]; 223[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))))) (not (compare (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];223 -> 225[label="",style="solid", color="black", weight=3]; 224[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos (Succ Zero))) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos (Succ Zero))))) (flip (<=) (Pos (Succ Zero)) (primPlusInt (Pos Zero) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];224 -> 226[label="",style="solid", color="black", weight=3]; 225[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))))) (not (primCmpInt (primPlusInt (Pos (Succ Zero)) (Pos (Succ Zero))) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];225 -> 227[label="",style="solid", color="black", weight=3]; 226[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos (Succ Zero))) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos (Succ Zero))))) ((<=) primPlusInt (Pos Zero) (Pos (Succ Zero)) Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];226 -> 228[label="",style="solid", color="black", weight=3]; 227[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (primPlusNat (Succ Zero) (Succ Zero))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (primPlusNat (Succ Zero) (Succ Zero))))) (not (primCmpInt (Pos (primPlusNat (Succ Zero) (Succ Zero))) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];227 -> 229[label="",style="solid", color="black", weight=3]; 228[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos (Succ Zero))) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos (Succ Zero))))) (compare (primPlusInt (Pos Zero) (Pos (Succ Zero))) (Pos (Succ Zero)) /= GT))",fontsize=16,color="black",shape="box"];228 -> 230[label="",style="solid", color="black", weight=3]; 229[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ (Succ (primPlusNat Zero Zero)))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ (Succ (primPlusNat Zero Zero)))))) (not (primCmpInt (Pos (Succ (Succ (primPlusNat Zero Zero)))) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];229 -> 231[label="",style="solid", color="black", weight=3]; 230[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos (Succ Zero))) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos (Succ Zero))))) (not (compare (primPlusInt (Pos Zero) (Pos (Succ Zero))) (Pos (Succ Zero)) == GT)))",fontsize=16,color="black",shape="box"];230 -> 232[label="",style="solid", color="black", weight=3]; 231[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ (Succ (primPlusNat Zero Zero)))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ (Succ (primPlusNat Zero Zero)))))) (not (primCmpNat (Succ (Succ (primPlusNat Zero Zero))) (Succ Zero) == GT)))",fontsize=16,color="black",shape="box"];231 -> 233[label="",style="solid", color="black", weight=3]; 232 -> 172[label="",style="dashed", color="red", weight=0]; 232[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (primPlusInt (Pos Zero) (Pos (Succ Zero))) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos (Succ Zero))))) (not (primCmpInt (primPlusInt (Pos Zero) (Pos (Succ Zero))) (Pos (Succ Zero)) == GT)))",fontsize=16,color="magenta"];233[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ (Succ (primPlusNat Zero Zero)))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ (Succ (primPlusNat Zero Zero)))))) (not (primCmpNat (Succ (primPlusNat Zero Zero)) Zero == GT)))",fontsize=16,color="black",shape="box"];233 -> 234[label="",style="solid", color="black", weight=3]; 234[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ (Succ (primPlusNat Zero Zero)))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ (Succ (primPlusNat Zero Zero)))))) (not (GT == GT)))",fontsize=16,color="black",shape="box"];234 -> 235[label="",style="solid", color="black", weight=3]; 235[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ (Succ (primPlusNat Zero Zero)))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ (Succ (primPlusNat Zero Zero)))))) (not True))",fontsize=16,color="black",shape="box"];235 -> 236[label="",style="solid", color="black", weight=3]; 236[label="map toEnum (takeWhile1 (flip (<=) (Pos (Succ Zero))) (Pos (Succ (Succ (primPlusNat Zero Zero)))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ (Succ (primPlusNat Zero Zero)))))) False)",fontsize=16,color="black",shape="box"];236 -> 237[label="",style="solid", color="black", weight=3]; 237[label="map toEnum (takeWhile0 (flip (<=) (Pos (Succ Zero))) (Pos (Succ (Succ (primPlusNat Zero Zero)))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ (Succ (primPlusNat Zero Zero)))))) otherwise)",fontsize=16,color="black",shape="box"];237 -> 238[label="",style="solid", color="black", weight=3]; 238[label="map toEnum (takeWhile0 (flip (<=) (Pos (Succ Zero))) (Pos (Succ (Succ (primPlusNat Zero Zero)))) (iterate (primPlusInt (Pos (Succ Zero))) (primPlusInt (Pos (Succ Zero)) (Pos (Succ (Succ (primPlusNat Zero Zero)))))) True)",fontsize=16,color="black",shape="box"];238 -> 239[label="",style="solid", color="black", weight=3]; 239 -> 212[label="",style="dashed", color="red", weight=0]; 239[label="map toEnum []",fontsize=16,color="magenta"];} ---------------------------------------- (10) Complex Obligation (AND) ---------------------------------------- (11) Obligation: Q DP problem: P is empty. R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (12) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: new_map0([]) -> new_map0([]) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (15) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_map0([]) evaluates to t =new_map0([]) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_map0([]) to new_map0([]). ---------------------------------------- (16) NO ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: new_map([]) -> new_map([]) R is empty. Q is empty. We have to consider all (P,Q,R)-chains.