29.49/16.26 YES 31.25/16.76 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 31.25/16.76 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 31.25/16.76 31.25/16.76 31.25/16.76 H-Termination with start terms of the given HASKELL could be proven: 31.25/16.76 31.25/16.76 (0) HASKELL 31.25/16.76 (1) BR [EQUIVALENT, 0 ms] 31.25/16.76 (2) HASKELL 31.25/16.76 (3) COR [EQUIVALENT, 0 ms] 31.25/16.76 (4) HASKELL 31.25/16.76 (5) NumRed [SOUND, 0 ms] 31.25/16.76 (6) HASKELL 31.25/16.76 (7) Narrow [SOUND, 0 ms] 31.25/16.76 (8) QDP 31.25/16.76 (9) DependencyGraphProof [EQUIVALENT, 0 ms] 31.25/16.76 (10) AND 31.25/16.76 (11) QDP 31.25/16.76 (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] 31.25/16.76 (13) YES 31.25/16.76 (14) QDP 31.25/16.76 (15) QDPSizeChangeProof [EQUIVALENT, 0 ms] 31.25/16.76 (16) YES 31.25/16.76 (17) QDP 31.25/16.76 (18) QDPPairToRuleProof [EQUIVALENT, 0 ms] 31.25/16.76 (19) AND 31.25/16.76 (20) QDP 31.25/16.76 (21) TransformationProof [EQUIVALENT, 0 ms] 31.25/16.76 (22) QDP 31.25/16.76 (23) DependencyGraphProof [EQUIVALENT, 0 ms] 31.25/16.76 (24) QDP 31.25/16.76 (25) UsableRulesProof [EQUIVALENT, 0 ms] 31.25/16.76 (26) QDP 31.25/16.76 (27) QReductionProof [EQUIVALENT, 0 ms] 31.25/16.76 (28) QDP 31.25/16.76 (29) InductionCalculusProof [EQUIVALENT, 0 ms] 31.25/16.76 (30) QDP 31.25/16.76 (31) NonInfProof [EQUIVALENT, 286 ms] 31.25/16.76 (32) AND 31.25/16.76 (33) QDP 31.25/16.76 (34) DependencyGraphProof [EQUIVALENT, 0 ms] 31.25/16.76 (35) TRUE 31.25/16.76 (36) QDP 31.25/16.76 (37) DependencyGraphProof [EQUIVALENT, 0 ms] 31.25/16.76 (38) TRUE 31.25/16.76 (39) QDP 31.25/16.76 (40) QDPSizeChangeProof [EQUIVALENT, 0 ms] 31.25/16.76 (41) YES 31.25/16.76 (42) QDP 31.25/16.76 (43) QDPSizeChangeProof [EQUIVALENT, 0 ms] 31.25/16.76 (44) YES 31.25/16.76 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (0) 31.25/16.76 Obligation: 31.25/16.76 mainModule Main 31.25/16.76 module Main where { 31.25/16.76 import qualified Prelude; 31.25/16.76 } 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (1) BR (EQUIVALENT) 31.25/16.76 Replaced joker patterns by fresh variables and removed binding patterns. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (2) 31.25/16.76 Obligation: 31.25/16.76 mainModule Main 31.25/16.76 module Main where { 31.25/16.76 import qualified Prelude; 31.25/16.76 } 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (3) COR (EQUIVALENT) 31.25/16.76 Cond Reductions: 31.25/16.76 The following Function with conditions 31.25/16.76 "takeWhile p [] = []; 31.25/16.76 takeWhile p (x : xs)|p xx : takeWhile p xs|otherwise[]; 31.25/16.76 " 31.25/16.76 is transformed to 31.25/16.76 "takeWhile p [] = takeWhile3 p []; 31.25/16.76 takeWhile p (x : xs) = takeWhile2 p (x : xs); 31.25/16.76 " 31.25/16.76 "takeWhile1 p x xs True = x : takeWhile p xs; 31.25/16.76 takeWhile1 p x xs False = takeWhile0 p x xs otherwise; 31.25/16.76 " 31.25/16.76 "takeWhile0 p x xs True = []; 31.25/16.76 " 31.25/16.76 "takeWhile2 p (x : xs) = takeWhile1 p x xs (p x); 31.25/16.76 " 31.25/16.76 "takeWhile3 p [] = []; 31.25/16.76 takeWhile3 vz wu = takeWhile2 vz wu; 31.25/16.76 " 31.25/16.76 The following Function with conditions 31.25/16.76 "undefined |Falseundefined; 31.25/16.76 " 31.25/16.76 is transformed to 31.25/16.76 "undefined = undefined1; 31.25/16.76 " 31.25/16.76 "undefined0 True = undefined; 31.25/16.76 " 31.25/16.76 "undefined1 = undefined0 False; 31.25/16.76 " 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (4) 31.25/16.76 Obligation: 31.25/16.76 mainModule Main 31.25/16.76 module Main where { 31.25/16.76 import qualified Prelude; 31.25/16.76 } 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (5) NumRed (SOUND) 31.25/16.76 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (6) 31.25/16.76 Obligation: 31.25/16.76 mainModule Main 31.25/16.76 module Main where { 31.25/16.76 import qualified Prelude; 31.25/16.76 } 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (7) Narrow (SOUND) 31.25/16.76 Haskell To QDPs 31.25/16.76 31.25/16.76 digraph dp_graph { 31.25/16.76 node [outthreshold=100, inthreshold=100];1[label="enumFromTo",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 31.25/16.76 3[label="enumFromTo wv3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 31.25/16.76 4[label="enumFromTo wv3 wv4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 31.25/16.76 5[label="numericEnumFromTo wv3 wv4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 31.25/16.76 6[label="takeWhile (flip (<=) wv4) (numericEnumFrom wv3)",fontsize=16,color="black",shape="triangle"];6 -> 7[label="",style="solid", color="black", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 948 -> 14[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 949[label="wv3/Neg wv30",fontsize=10,color="white",style="solid",shape="box"];13 -> 949[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 949 -> 15[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 950 -> 16[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 951[label="wv30/Zero",fontsize=10,color="white",style="solid",shape="box"];14 -> 951[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 951 -> 17[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 952 -> 18[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 953[label="wv30/Zero",fontsize=10,color="white",style="solid",shape="box"];15 -> 953[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 953 -> 19[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 954 -> 20[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 955[label="wv4/Neg wv40",fontsize=10,color="white",style="solid",shape="box"];16 -> 955[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 955 -> 21[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 956 -> 22[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 957[label="wv4/Neg wv40",fontsize=10,color="white",style="solid",shape="box"];17 -> 957[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 957 -> 23[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 958 -> 24[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 959[label="wv4/Neg wv40",fontsize=10,color="white",style="solid",shape="box"];18 -> 959[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 959 -> 25[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 960 -> 26[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 961[label="wv4/Neg wv40",fontsize=10,color="white",style="solid",shape="box"];19 -> 961[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 961 -> 27[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 962 -> 30[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 963[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];22 -> 963[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 963 -> 31[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 964 -> 32[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 965[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];23 -> 965[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 965 -> 33[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 966 -> 36[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 967[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];26 -> 967[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 967 -> 37[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 968 -> 38[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 969[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];27 -> 969[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 969 -> 39[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 970 -> 40[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 971[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];28 -> 971[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 971 -> 41[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 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.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 972 -> 48[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 973[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];35 -> 973[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 973 -> 49[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 54 -> 788[label="",style="dashed", color="red", weight=0]; 31.25/16.76 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]; 31.25/16.76 54 -> 790[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 54 -> 791[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 54 -> 792[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 62 -> 834[label="",style="dashed", color="red", weight=0]; 31.25/16.76 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]; 31.25/16.76 62 -> 836[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 62 -> 837[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 62 -> 838[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 789[label="wv400",fontsize=16,color="green",shape="box"];790[label="wv400",fontsize=16,color="green",shape="box"];791[label="wv300",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]; 31.25/16.76 974 -> 829[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 975[label="wv53/Zero",fontsize=10,color="white",style="solid",shape="box"];788 -> 975[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 975 -> 830[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 835[label="wv400",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="wv300",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]; 31.25/16.76 976 -> 875[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 977[label="wv58/Zero",fontsize=10,color="white",style="solid",shape="box"];834 -> 977[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 977 -> 876[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 978 -> 877[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 979[label="wv54/Zero",fontsize=10,color="white",style="solid",shape="box"];829 -> 979[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 979 -> 878[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 980 -> 879[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 981[label="wv54/Zero",fontsize=10,color="white",style="solid",shape="box"];830 -> 981[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 981 -> 880[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 982 -> 881[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 983[label="wv59/Zero",fontsize=10,color="white",style="solid",shape="box"];875 -> 983[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 983 -> 882[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 984 -> 883[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 985[label="wv59/Zero",fontsize=10,color="white",style="solid",shape="box"];876 -> 985[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 985 -> 884[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 885 -> 788[label="",style="dashed", color="red", weight=0]; 31.25/16.76 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]; 31.25/16.76 885 -> 894[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 889 -> 834[label="",style="dashed", color="red", weight=0]; 31.25/16.76 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]; 31.25/16.76 889 -> 899[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 893[label="wv540",fontsize=16,color="green",shape="box"];894[label="wv530",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]; 31.25/16.76 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]; 31.25/16.76 897 -> 896[label="",style="dashed", color="red", weight=0]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 902 -> 901[label="",style="dashed", color="red", weight=0]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 986 -> 255[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 987[label="wv300/Zero",fontsize=10,color="white",style="solid",shape="box"];228 -> 987[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 987 -> 256[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 253 -> 6[label="",style="dashed", color="red", weight=0]; 31.25/16.76 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]; 31.25/16.76 253 -> 282[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 254 -> 6[label="",style="dashed", color="red", weight=0]; 31.25/16.76 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]; 31.25/16.76 254 -> 284[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 280 -> 6[label="",style="dashed", color="red", weight=0]; 31.25/16.76 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]; 31.25/16.76 280 -> 314[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 281[label="Pos Zero",fontsize=16,color="green",shape="box"];282[label="Pos (primPlusNat Zero (Succ Zero))",fontsize=16,color="green",shape="box"];282 -> 315[label="",style="dashed", color="green", weight=3]; 31.25/16.76 283[label="Neg Zero",fontsize=16,color="green",shape="box"];284[label="Pos (primPlusNat Zero (Succ Zero))",fontsize=16,color="green",shape="box"];284 -> 316[label="",style="dashed", color="green", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 988 -> 331[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 989[label="wv300/Zero",fontsize=10,color="white",style="solid",shape="box"];297 -> 989[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 989 -> 332[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 298 -> 6[label="",style="dashed", color="red", weight=0]; 31.25/16.76 298[label="takeWhile (flip (<=) (Pos (Succ wv400))) (numericEnumFrom (Pos (Succ Zero)))",fontsize=16,color="magenta"];298 -> 333[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 298 -> 334[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 299 -> 6[label="",style="dashed", color="red", weight=0]; 31.25/16.76 299[label="takeWhile (flip (<=) (Pos Zero)) (numericEnumFrom (Pos (Succ Zero)))",fontsize=16,color="magenta"];299 -> 335[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 299 -> 336[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 300 -> 6[label="",style="dashed", color="red", weight=0]; 31.25/16.76 300[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom (Pos (Succ Zero)))",fontsize=16,color="magenta"];300 -> 337[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 300 -> 338[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 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]; 31.25/16.76 313[label="Pos (Succ wv400)",fontsize=16,color="green",shape="box"];314[label="Pos (primPlusNat Zero (Succ Zero))",fontsize=16,color="green",shape="box"];314 -> 350[label="",style="dashed", color="green", weight=3]; 31.25/16.76 315[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="black",shape="triangle"];315 -> 351[label="",style="solid", color="black", weight=3]; 31.25/16.76 316 -> 315[label="",style="dashed", color="red", weight=0]; 31.25/16.76 316[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="magenta"];317 -> 6[label="",style="dashed", color="red", weight=0]; 31.25/16.76 317[label="takeWhile (flip (<=) (Pos wv40)) (numericEnumFrom (Neg (Succ wv3000)))",fontsize=16,color="magenta"];317 -> 352[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 317 -> 353[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 318 -> 6[label="",style="dashed", color="red", weight=0]; 31.25/16.76 318[label="takeWhile (flip (<=) (Pos wv40)) (numericEnumFrom (Pos Zero))",fontsize=16,color="magenta"];318 -> 354[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 318 -> 355[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 333[label="Pos (Succ wv400)",fontsize=16,color="green",shape="box"];334[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];335[label="Pos Zero",fontsize=16,color="green",shape="box"];336[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];337[label="Neg Zero",fontsize=16,color="green",shape="box"];338[label="Pos (Succ 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]; 31.25/16.76 350 -> 315[label="",style="dashed", color="red", weight=0]; 31.25/16.76 350[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="magenta"];351[label="Succ Zero",fontsize=16,color="green",shape="box"];352[label="Pos wv40",fontsize=16,color="green",shape="box"];353[label="Neg (Succ wv3000)",fontsize=16,color="green",shape="box"];354[label="Pos wv40",fontsize=16,color="green",shape="box"];355[label="Pos Zero",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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 393 -> 6[label="",style="dashed", color="red", weight=0]; 31.25/16.76 393[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom (Neg (Succ wv3000)))",fontsize=16,color="magenta"];393 -> 425[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 393 -> 426[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 394 -> 6[label="",style="dashed", color="red", weight=0]; 31.25/16.76 394[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom (Pos Zero))",fontsize=16,color="magenta"];394 -> 427[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 394 -> 428[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 927 -> 6[label="",style="dashed", color="red", weight=0]; 31.25/16.76 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]; 31.25/16.76 927 -> 930[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 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]; 31.25/16.76 990 -> 931[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 991[label="wv57/Zero",fontsize=10,color="white",style="solid",shape="box"];928 -> 991[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 991 -> 932[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 425[label="Neg Zero",fontsize=16,color="green",shape="box"];426[label="Neg (Succ wv3000)",fontsize=16,color="green",shape="box"];427[label="Neg Zero",fontsize=16,color="green",shape="box"];428[label="Pos Zero",fontsize=16,color="green",shape="box"];929[label="Pos (Succ wv51)",fontsize=16,color="green",shape="box"];930[label="Pos (primPlusNat (Succ wv52) (Succ Zero))",fontsize=16,color="green",shape="box"];930 -> 933[label="",style="dashed", color="green", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 933[label="primPlusNat (Succ wv52) (Succ Zero)",fontsize=16,color="black",shape="box"];933 -> 936[label="",style="solid", color="black", weight=3]; 31.25/16.76 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]; 31.25/16.76 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]; 31.25/16.76 936[label="Succ (Succ (primPlusNat wv52 Zero))",fontsize=16,color="green",shape="box"];936 -> 939[label="",style="dashed", color="green", weight=3]; 31.25/16.76 937 -> 6[label="",style="dashed", color="red", weight=0]; 31.25/16.76 937[label="takeWhile (flip (<=) (Neg (Succ wv56))) (numericEnumFrom (Neg (Succ wv570)))",fontsize=16,color="magenta"];937 -> 940[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 937 -> 941[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 938 -> 6[label="",style="dashed", color="red", weight=0]; 31.25/16.76 938[label="takeWhile (flip (<=) (Neg (Succ wv56))) (numericEnumFrom (Pos Zero))",fontsize=16,color="magenta"];938 -> 942[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 938 -> 943[label="",style="dashed", color="magenta", weight=3]; 31.25/16.76 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]; 31.25/16.76 992 -> 944[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 993[label="wv52/Zero",fontsize=10,color="white",style="solid",shape="box"];939 -> 993[label="",style="solid", color="burlywood", weight=9]; 31.25/16.76 993 -> 945[label="",style="solid", color="burlywood", weight=3]; 31.25/16.76 940[label="Neg (Succ wv56)",fontsize=16,color="green",shape="box"];941[label="Neg (Succ wv570)",fontsize=16,color="green",shape="box"];942[label="Neg (Succ wv56)",fontsize=16,color="green",shape="box"];943[label="Pos Zero",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]; 31.25/16.76 945[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];945 -> 947[label="",style="solid", color="black", weight=3]; 31.25/16.76 946[label="Succ wv520",fontsize=16,color="green",shape="box"];947[label="Zero",fontsize=16,color="green",shape="box"];} 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (8) 31.25/16.76 Obligation: 31.25/16.76 Q DP problem: 31.25/16.76 The TRS P consists of the following rules: 31.25/16.76 31.25/16.76 new_takeWhile1(wv51, wv52, Succ(wv530), Succ(wv540)) -> new_takeWhile1(wv51, wv52, wv530, wv540) 31.25/16.76 new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 new_takeWhile(Pos(wv40), Neg(Succ(Succ(wv3000)))) -> new_takeWhile(Pos(wv40), Neg(Succ(wv3000))) 31.25/16.76 new_takeWhile11(wv56, wv57, Succ(wv580), Succ(wv590)) -> new_takeWhile11(wv56, wv57, wv580, wv590) 31.25/16.76 new_takeWhile(Neg(Zero), Neg(Succ(Zero))) -> new_takeWhile(Neg(Zero), Pos(Zero)) 31.25/16.76 new_takeWhile(Pos(Succ(wv400)), Pos(Zero)) -> new_takeWhile(Pos(Succ(wv400)), Pos(new_primPlusNat0)) 31.25/16.76 new_takeWhile12(wv56, Succ(wv570)) -> new_takeWhile(Neg(Succ(wv56)), Neg(Succ(wv570))) 31.25/16.76 new_takeWhile11(wv56, Succ(wv570), Zero, Succ(wv590)) -> new_takeWhile(Neg(Succ(wv56)), Neg(Succ(wv570))) 31.25/16.76 new_takeWhile11(wv56, Zero, Zero, Succ(wv590)) -> new_takeWhile(Neg(Succ(wv56)), Pos(Zero)) 31.25/16.76 new_takeWhile(Pos(Zero), Pos(Zero)) -> new_takeWhile(Pos(Zero), Pos(new_primPlusNat0)) 31.25/16.76 new_takeWhile(Neg(Succ(wv400)), Neg(Succ(wv300))) -> new_takeWhile11(wv400, wv300, wv400, wv300) 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) 31.25/16.76 new_takeWhile11(wv56, wv57, Zero, Zero) -> new_takeWhile12(wv56, wv57) 31.25/16.76 new_takeWhile12(wv56, Zero) -> new_takeWhile(Neg(Succ(wv56)), Pos(Zero)) 31.25/16.76 new_takeWhile(Pos(Zero), Neg(Zero)) -> new_takeWhile(Pos(Zero), Pos(Succ(Zero))) 31.25/16.76 new_takeWhile(Neg(Zero), Pos(Zero)) -> new_takeWhile(Neg(Zero), Pos(new_primPlusNat0)) 31.25/16.76 new_takeWhile(Neg(Zero), Neg(Zero)) -> new_takeWhile(Neg(Zero), Pos(Succ(Zero))) 31.25/16.76 new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> new_takeWhile1(wv400, wv300, wv300, wv400) 31.25/16.76 new_takeWhile(Neg(Zero), Neg(Succ(Succ(wv3000)))) -> new_takeWhile(Neg(Zero), Neg(Succ(wv3000))) 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 new_takeWhile(Pos(wv40), Neg(Succ(Zero))) -> new_takeWhile(Pos(wv40), Pos(Zero)) 31.25/16.76 new_takeWhile(Pos(Succ(wv400)), Neg(Zero)) -> new_takeWhile(Pos(Succ(wv400)), Pos(Succ(Zero))) 31.25/16.76 31.25/16.76 The TRS R consists of the following rules: 31.25/16.76 31.25/16.76 new_primPlusNat(Zero) -> Zero 31.25/16.76 new_primPlusNat(Succ(wv520)) -> Succ(wv520) 31.25/16.76 new_primPlusNat0 -> Succ(Zero) 31.25/16.76 31.25/16.76 The set Q consists of the following terms: 31.25/16.76 31.25/16.76 new_primPlusNat0 31.25/16.76 new_primPlusNat(Succ(x0)) 31.25/16.76 new_primPlusNat(Zero) 31.25/16.76 31.25/16.76 We have to consider all minimal (P,Q,R)-chains. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (9) DependencyGraphProof (EQUIVALENT) 31.25/16.76 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 4 SCCs with 10 less nodes. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (10) 31.25/16.76 Complex Obligation (AND) 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (11) 31.25/16.76 Obligation: 31.25/16.76 Q DP problem: 31.25/16.76 The TRS P consists of the following rules: 31.25/16.76 31.25/16.76 new_takeWhile(Neg(Zero), Neg(Succ(Succ(wv3000)))) -> new_takeWhile(Neg(Zero), Neg(Succ(wv3000))) 31.25/16.76 31.25/16.76 The TRS R consists of the following rules: 31.25/16.76 31.25/16.76 new_primPlusNat(Zero) -> Zero 31.25/16.76 new_primPlusNat(Succ(wv520)) -> Succ(wv520) 31.25/16.76 new_primPlusNat0 -> Succ(Zero) 31.25/16.76 31.25/16.76 The set Q consists of the following terms: 31.25/16.76 31.25/16.76 new_primPlusNat0 31.25/16.76 new_primPlusNat(Succ(x0)) 31.25/16.76 new_primPlusNat(Zero) 31.25/16.76 31.25/16.76 We have to consider all minimal (P,Q,R)-chains. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (12) QDPSizeChangeProof (EQUIVALENT) 31.25/16.76 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. 31.25/16.76 31.25/16.76 Order:EMB rules! 31.25/16.76 31.25/16.76 AFS: 31.25/16.76 Zero = Zero 31.25/16.76 31.25/16.76 Neg(x1) = x1 31.25/16.76 31.25/16.76 Succ(x1) = Succ(x1) 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 From the DPs we obtained the following set of size-change graphs: 31.25/16.76 *new_takeWhile(Neg(Zero), Neg(Succ(Succ(wv3000)))) -> new_takeWhile(Neg(Zero), Neg(Succ(wv3000))) (allowed arguments on rhs = {1, 2}) 31.25/16.76 The graph contains the following edges 1 >= 1, 2 > 2 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 We oriented the following set of usable rules [AAECC05,FROCOS05]. 31.25/16.76 none 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (13) 31.25/16.76 YES 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (14) 31.25/16.76 Obligation: 31.25/16.76 Q DP problem: 31.25/16.76 The TRS P consists of the following rules: 31.25/16.76 31.25/16.76 new_takeWhile11(wv56, Succ(wv570), Zero, Succ(wv590)) -> new_takeWhile(Neg(Succ(wv56)), Neg(Succ(wv570))) 31.25/16.76 new_takeWhile(Neg(Succ(wv400)), Neg(Succ(wv300))) -> new_takeWhile11(wv400, wv300, wv400, wv300) 31.25/16.76 new_takeWhile11(wv56, wv57, Succ(wv580), Succ(wv590)) -> new_takeWhile11(wv56, wv57, wv580, wv590) 31.25/16.76 new_takeWhile11(wv56, wv57, Zero, Zero) -> new_takeWhile12(wv56, wv57) 31.25/16.76 new_takeWhile12(wv56, Succ(wv570)) -> new_takeWhile(Neg(Succ(wv56)), Neg(Succ(wv570))) 31.25/16.76 31.25/16.76 The TRS R consists of the following rules: 31.25/16.76 31.25/16.76 new_primPlusNat(Zero) -> Zero 31.25/16.76 new_primPlusNat(Succ(wv520)) -> Succ(wv520) 31.25/16.76 new_primPlusNat0 -> Succ(Zero) 31.25/16.76 31.25/16.76 The set Q consists of the following terms: 31.25/16.76 31.25/16.76 new_primPlusNat0 31.25/16.76 new_primPlusNat(Succ(x0)) 31.25/16.76 new_primPlusNat(Zero) 31.25/16.76 31.25/16.76 We have to consider all minimal (P,Q,R)-chains. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (15) QDPSizeChangeProof (EQUIVALENT) 31.25/16.76 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. 31.25/16.76 31.25/16.76 Order:EMB rules! 31.25/16.76 31.25/16.76 AFS: 31.25/16.76 Zero = Zero 31.25/16.76 31.25/16.76 Neg(x1) = x1 31.25/16.76 31.25/16.76 Succ(x1) = Succ(x1) 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 From the DPs we obtained the following set of size-change graphs: 31.25/16.76 *new_takeWhile(Neg(Succ(wv400)), Neg(Succ(wv300))) -> new_takeWhile11(wv400, wv300, wv400, wv300) (allowed arguments on rhs = {1, 2, 3, 4}) 31.25/16.76 The graph contains the following edges 1 > 1, 2 > 2, 1 > 3, 2 > 4 31.25/16.76 31.25/16.76 31.25/16.76 *new_takeWhile11(wv56, wv57, Succ(wv580), Succ(wv590)) -> new_takeWhile11(wv56, wv57, wv580, wv590) (allowed arguments on rhs = {1, 2, 3, 4}) 31.25/16.76 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 31.25/16.76 31.25/16.76 31.25/16.76 *new_takeWhile11(wv56, Succ(wv570), Zero, Succ(wv590)) -> new_takeWhile(Neg(Succ(wv56)), Neg(Succ(wv570))) (allowed arguments on rhs = {1, 2}) 31.25/16.76 The graph contains the following edges 2 >= 2 31.25/16.76 31.25/16.76 31.25/16.76 *new_takeWhile11(wv56, wv57, Zero, Zero) -> new_takeWhile12(wv56, wv57) (allowed arguments on rhs = {1, 2}) 31.25/16.76 The graph contains the following edges 1 >= 1, 2 >= 2 31.25/16.76 31.25/16.76 31.25/16.76 *new_takeWhile12(wv56, Succ(wv570)) -> new_takeWhile(Neg(Succ(wv56)), Neg(Succ(wv570))) (allowed arguments on rhs = {1, 2}) 31.25/16.76 The graph contains the following edges 2 >= 2 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 We oriented the following set of usable rules [AAECC05,FROCOS05]. 31.25/16.76 none 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (16) 31.25/16.76 YES 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (17) 31.25/16.76 Obligation: 31.25/16.76 Q DP problem: 31.25/16.76 The TRS P consists of the following rules: 31.25/16.76 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) 31.25/16.76 new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> new_takeWhile1(wv400, wv300, wv300, wv400) 31.25/16.76 new_takeWhile1(wv51, wv52, Succ(wv530), Succ(wv540)) -> new_takeWhile1(wv51, wv52, wv530, wv540) 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 31.25/16.76 The TRS R consists of the following rules: 31.25/16.76 31.25/16.76 new_primPlusNat(Zero) -> Zero 31.25/16.76 new_primPlusNat(Succ(wv520)) -> Succ(wv520) 31.25/16.76 new_primPlusNat0 -> Succ(Zero) 31.25/16.76 31.25/16.76 The set Q consists of the following terms: 31.25/16.76 31.25/16.76 new_primPlusNat0 31.25/16.76 new_primPlusNat(Succ(x0)) 31.25/16.76 new_primPlusNat(Zero) 31.25/16.76 31.25/16.76 We have to consider all minimal (P,Q,R)-chains. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (18) QDPPairToRuleProof (EQUIVALENT) 31.25/16.76 The dependency pair new_takeWhile1(wv51, wv52, Succ(wv530), Succ(wv540)) -> new_takeWhile1(wv51, wv52, wv530, wv540) was transformed to the following new rules: 31.25/16.76 anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.25/16.76 new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.25/16.76 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 31.25/16.76 new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) 31.25/16.76 31.25/16.76 the following new pairs maintain the fan-in: 31.25/16.76 new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) 31.25/16.76 31.25/16.76 the following new pairs maintain the fan-out: 31.25/16.76 H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) 31.25/16.76 H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (19) 31.25/16.76 Complex Obligation (AND) 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (20) 31.25/16.76 Obligation: 31.25/16.76 Q DP problem: 31.25/16.76 The TRS P consists of the following rules: 31.25/16.76 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) 31.25/16.76 new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> new_takeWhile1(wv400, wv300, wv300, wv400) 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) 31.25/16.76 H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) 31.25/16.76 H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) 31.25/16.76 31.25/16.76 The TRS R consists of the following rules: 31.25/16.76 31.25/16.76 new_primPlusNat(Zero) -> Zero 31.25/16.76 new_primPlusNat(Succ(wv520)) -> Succ(wv520) 31.25/16.76 new_primPlusNat0 -> Succ(Zero) 31.25/16.76 anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.25/16.76 new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.25/16.76 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 31.25/16.76 new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) 31.25/16.76 31.25/16.76 The set Q consists of the following terms: 31.25/16.76 31.25/16.76 new_primPlusNat0 31.25/16.76 new_primPlusNat(Succ(x0)) 31.25/16.76 new_primPlusNat(Zero) 31.25/16.76 new_new_takeWhile1(Succ(x0), Succ(x1)) 31.25/16.76 anew_new_takeWhile1(Succ(x0), Succ(x1)) 31.25/16.76 new_new_takeWhile1(Zero, Zero) 31.25/16.76 new_new_takeWhile1(Zero, Succ(x0)) 31.25/16.76 31.25/16.76 We have to consider all minimal (P,Q,R)-chains. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (21) TransformationProof (EQUIVALENT) 31.25/16.76 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]: 31.25/16.76 31.25/16.76 (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)) 31.25/16.76 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (22) 31.25/16.76 Obligation: 31.25/16.76 Q DP problem: 31.25/16.76 The TRS P consists of the following rules: 31.25/16.76 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) 31.25/16.76 new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) 31.25/16.76 H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) 31.25/16.76 H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) 31.25/16.76 new_takeWhile(Pos(Succ(z0)), Pos(Succ(Succ(y_0)))) -> new_takeWhile1(z0, Succ(y_0), Succ(y_0), z0) 31.25/16.76 31.25/16.76 The TRS R consists of the following rules: 31.25/16.76 31.25/16.76 new_primPlusNat(Zero) -> Zero 31.25/16.76 new_primPlusNat(Succ(wv520)) -> Succ(wv520) 31.25/16.76 new_primPlusNat0 -> Succ(Zero) 31.25/16.76 anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.25/16.76 new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.25/16.76 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 31.25/16.76 new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) 31.25/16.76 31.25/16.76 The set Q consists of the following terms: 31.25/16.76 31.25/16.76 new_primPlusNat0 31.25/16.76 new_primPlusNat(Succ(x0)) 31.25/16.76 new_primPlusNat(Zero) 31.25/16.76 new_new_takeWhile1(Succ(x0), Succ(x1)) 31.25/16.76 anew_new_takeWhile1(Succ(x0), Succ(x1)) 31.25/16.76 new_new_takeWhile1(Zero, Zero) 31.25/16.76 new_new_takeWhile1(Zero, Succ(x0)) 31.25/16.76 31.25/16.76 We have to consider all minimal (P,Q,R)-chains. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (23) DependencyGraphProof (EQUIVALENT) 31.25/16.76 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (24) 31.25/16.76 Obligation: 31.25/16.76 Q DP problem: 31.25/16.76 The TRS P consists of the following rules: 31.25/16.76 31.25/16.76 new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) 31.25/16.76 H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) 31.25/16.76 H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 31.25/16.76 The TRS R consists of the following rules: 31.25/16.76 31.25/16.76 new_primPlusNat(Zero) -> Zero 31.25/16.76 new_primPlusNat(Succ(wv520)) -> Succ(wv520) 31.25/16.76 new_primPlusNat0 -> Succ(Zero) 31.25/16.76 anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.25/16.76 new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.25/16.76 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 31.25/16.76 new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) 31.25/16.76 31.25/16.76 The set Q consists of the following terms: 31.25/16.76 31.25/16.76 new_primPlusNat0 31.25/16.76 new_primPlusNat(Succ(x0)) 31.25/16.76 new_primPlusNat(Zero) 31.25/16.76 new_new_takeWhile1(Succ(x0), Succ(x1)) 31.25/16.76 anew_new_takeWhile1(Succ(x0), Succ(x1)) 31.25/16.76 new_new_takeWhile1(Zero, Zero) 31.25/16.76 new_new_takeWhile1(Zero, Succ(x0)) 31.25/16.76 31.25/16.76 We have to consider all minimal (P,Q,R)-chains. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (25) UsableRulesProof (EQUIVALENT) 31.25/16.76 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (26) 31.25/16.76 Obligation: 31.25/16.76 Q DP problem: 31.25/16.76 The TRS P consists of the following rules: 31.25/16.76 31.25/16.76 new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) 31.25/16.76 H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) 31.25/16.76 H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 31.25/16.76 The TRS R consists of the following rules: 31.25/16.76 31.25/16.76 new_primPlusNat(Zero) -> Zero 31.25/16.76 new_primPlusNat(Succ(wv520)) -> Succ(wv520) 31.25/16.76 anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.25/16.76 new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.25/16.76 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 31.25/16.76 new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) 31.25/16.76 31.25/16.76 The set Q consists of the following terms: 31.25/16.76 31.25/16.76 new_primPlusNat0 31.25/16.76 new_primPlusNat(Succ(x0)) 31.25/16.76 new_primPlusNat(Zero) 31.25/16.76 new_new_takeWhile1(Succ(x0), Succ(x1)) 31.25/16.76 anew_new_takeWhile1(Succ(x0), Succ(x1)) 31.25/16.76 new_new_takeWhile1(Zero, Zero) 31.25/16.76 new_new_takeWhile1(Zero, Succ(x0)) 31.25/16.76 31.25/16.76 We have to consider all minimal (P,Q,R)-chains. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (27) QReductionProof (EQUIVALENT) 31.25/16.76 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 31.25/16.76 31.25/16.76 new_primPlusNat0 31.25/16.76 31.25/16.76 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (28) 31.25/16.76 Obligation: 31.25/16.76 Q DP problem: 31.25/16.76 The TRS P consists of the following rules: 31.25/16.76 31.25/16.76 new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) 31.25/16.76 H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) 31.25/16.76 H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) 31.25/16.76 new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.25/16.76 31.25/16.76 The TRS R consists of the following rules: 31.25/16.76 31.25/16.76 new_primPlusNat(Zero) -> Zero 31.25/16.76 new_primPlusNat(Succ(wv520)) -> Succ(wv520) 31.25/16.76 anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.25/16.76 new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.25/16.76 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 31.25/16.76 new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) 31.25/16.76 31.25/16.76 The set Q consists of the following terms: 31.25/16.76 31.25/16.76 new_primPlusNat(Succ(x0)) 31.25/16.76 new_primPlusNat(Zero) 31.25/16.76 new_new_takeWhile1(Succ(x0), Succ(x1)) 31.25/16.76 anew_new_takeWhile1(Succ(x0), Succ(x1)) 31.25/16.76 new_new_takeWhile1(Zero, Zero) 31.25/16.76 new_new_takeWhile1(Zero, Succ(x0)) 31.25/16.76 31.25/16.76 We have to consider all minimal (P,Q,R)-chains. 31.25/16.76 ---------------------------------------- 31.25/16.76 31.25/16.76 (29) InductionCalculusProof (EQUIVALENT) 31.25/16.76 Note that final constraints are written in bold face. 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 For Pair new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) the following chains were created: 31.25/16.76 *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: 31.25/16.76 31.25/16.76 (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)))))) 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.25/16.76 31.25/16.76 (2) (new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 For Pair new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) the following chains were created: 31.25/16.76 *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: 31.25/16.76 31.25/16.76 (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))) 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.25/16.76 31.25/16.76 (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))) 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 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: 31.25/16.76 31.25/16.76 (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)))) 31.25/16.76 31.25/16.76 31.25/16.76 31.25/16.76 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: 31.25/16.76 31.25/16.76 (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))))) 31.25/16.76 31.25/16.76 (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)))) 31.25/16.77 31.25/16.77 (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))))) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 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: 31.25/16.77 31.25/16.77 (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))))) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 We simplified constraint (5) using rules (I), (II) which results in the following new constraint: 31.25/16.77 31.25/16.77 (8) (new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 We solved constraint (6) using rules (I), (II). 31.25/16.77 *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: 31.25/16.77 31.25/16.77 (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))) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.25/16.77 31.25/16.77 (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))) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 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: 31.25/16.77 31.25/16.77 (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)))) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 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: 31.25/16.77 31.25/16.77 (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))))) 31.25/16.77 31.25/16.77 (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)))) 31.25/16.77 31.25/16.77 (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))))) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 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: 31.25/16.77 31.25/16.77 (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))))) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (IV) which results in the following new constraint: 31.25/16.77 31.25/16.77 (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))))) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 For Pair H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) the following chains were created: 31.25/16.77 *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: 31.25/16.77 31.25/16.77 (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)) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.25/16.77 31.25/16.77 (2) (H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 For Pair new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) the following chains were created: 31.25/16.77 *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: 31.25/16.77 31.25/16.77 (1) (new_takeWhile10(x45, x46)=new_takeWhile10(x47, x48) ==> new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.25/16.77 31.25/16.77 (2) (new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 For Pair H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) the following chains were created: 31.25/16.77 *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: 31.25/16.77 31.25/16.77 (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))) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.25/16.77 31.25/16.77 (2) (H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 31.25/16.77 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: 31.25/16.77 *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: 31.37/16.77 31.37/16.77 (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)))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.37/16.77 31.37/16.77 (2) (new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 To summarize, we get the following constraints P__>=_ for the following pairs. 31.37/16.77 31.37/16.77 *new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.37/16.77 31.37/16.77 *(new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 *new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) 31.37/16.77 31.37/16.77 *(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))))) 31.37/16.77 31.37/16.77 31.37/16.77 *(new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) 31.37/16.77 31.37/16.77 31.37/16.77 *(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))))) 31.37/16.77 31.37/16.77 31.37/16.77 *(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))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 *H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) 31.37/16.77 31.37/16.77 *(H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 *new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) 31.37/16.77 31.37/16.77 *(new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 *H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) 31.37/16.77 31.37/16.77 *(H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 *new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.37/16.77 31.37/16.77 *(new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 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. 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (30) 31.37/16.77 Obligation: 31.37/16.77 Q DP problem: 31.37/16.77 The TRS P consists of the following rules: 31.37/16.77 31.37/16.77 new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.37/16.77 new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) 31.37/16.77 H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) 31.37/16.77 new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) 31.37/16.77 H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) 31.37/16.77 new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.37/16.77 31.37/16.77 The TRS R consists of the following rules: 31.37/16.77 31.37/16.77 new_primPlusNat(Zero) -> Zero 31.37/16.77 new_primPlusNat(Succ(wv520)) -> Succ(wv520) 31.37/16.77 anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.37/16.77 new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.37/16.77 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 31.37/16.77 new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) 31.37/16.77 31.37/16.77 The set Q consists of the following terms: 31.37/16.77 31.37/16.77 new_primPlusNat(Succ(x0)) 31.37/16.77 new_primPlusNat(Zero) 31.37/16.77 new_new_takeWhile1(Succ(x0), Succ(x1)) 31.37/16.77 anew_new_takeWhile1(Succ(x0), Succ(x1)) 31.37/16.77 new_new_takeWhile1(Zero, Zero) 31.37/16.77 new_new_takeWhile1(Zero, Succ(x0)) 31.37/16.77 31.37/16.77 We have to consider all minimal (P,Q,R)-chains. 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (31) NonInfProof (EQUIVALENT) 31.37/16.77 The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps: 31.37/16.77 31.37/16.77 Note that final constraints are written in bold face. 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 For Pair new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) the following chains were created: 31.37/16.77 *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: 31.37/16.77 31.37/16.77 (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)))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.37/16.77 31.37/16.77 (2) (new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 For Pair new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) the following chains were created: 31.37/16.77 *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: 31.37/16.77 31.37/16.77 (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))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.37/16.77 31.37/16.77 (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))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 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: 31.37/16.77 31.37/16.77 (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)))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 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: 31.37/16.77 31.37/16.77 (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))))) 31.37/16.77 31.37/16.77 (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)))) 31.37/16.77 31.37/16.77 (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))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 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: 31.37/16.77 31.37/16.77 (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))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 We simplified constraint (5) using rules (I), (II) which results in the following new constraint: 31.37/16.77 31.37/16.77 (8) (new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 We solved constraint (6) using rules (I), (II). 31.37/16.77 *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: 31.37/16.77 31.37/16.77 (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))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.37/16.77 31.37/16.77 (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))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 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: 31.37/16.77 31.37/16.77 (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)))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 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: 31.37/16.77 31.37/16.77 (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))))) 31.37/16.77 31.37/16.77 (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)))) 31.37/16.77 31.37/16.77 (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))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 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: 31.37/16.77 31.37/16.77 (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))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (IV) which results in the following new constraint: 31.37/16.77 31.37/16.77 (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))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 For Pair H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) the following chains were created: 31.37/16.77 *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: 31.37/16.77 31.37/16.77 (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)) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.37/16.77 31.37/16.77 (2) (H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 For Pair new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) the following chains were created: 31.37/16.77 *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: 31.37/16.77 31.37/16.77 (1) (new_takeWhile10(x45, x46)=new_takeWhile10(x47, x48) ==> new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.37/16.77 31.37/16.77 (2) (new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 For Pair H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) the following chains were created: 31.37/16.77 *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: 31.37/16.77 31.37/16.77 (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))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.37/16.77 31.37/16.77 (2) (H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 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: 31.37/16.77 *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: 31.37/16.77 31.37/16.77 (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)))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 31.37/16.77 31.37/16.77 (2) (new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 To summarize, we get the following constraints P__>=_ for the following pairs. 31.37/16.77 31.37/16.77 *new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.37/16.77 31.37/16.77 *(new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 *new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) 31.37/16.77 31.37/16.77 *(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))))) 31.37/16.77 31.37/16.77 31.37/16.77 *(new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) 31.37/16.77 31.37/16.77 31.37/16.77 *(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))))) 31.37/16.77 31.37/16.77 31.37/16.77 *(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))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 *H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) 31.37/16.77 31.37/16.77 *(H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 *new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) 31.37/16.77 31.37/16.77 *(new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 *H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) 31.37/16.77 31.37/16.77 *(H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 *new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.37/16.77 31.37/16.77 *(new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 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. 31.37/16.77 31.37/16.77 Using the following integer polynomial ordering the resulting constraints can be solved 31.37/16.77 31.37/16.77 Polynomial interpretation [NONINF]: 31.37/16.77 31.37/16.77 POL(H(x_1, x_2, x_3)) = -1 + x_1 - x_2 - x_3 31.37/16.77 POL(Pos(x_1)) = x_1 31.37/16.77 POL(Succ(x_1)) = 1 + x_1 31.37/16.77 POL(Zero) = 0 31.37/16.77 POL(anew_new_takeWhile1(x_1, x_2)) = 0 31.37/16.77 POL(c) = -1 31.37/16.77 POL(cons_new_takeWhile1(x_1, x_2)) = 0 31.37/16.77 POL(new_new_takeWhile1(x_1, x_2)) = 0 31.37/16.77 POL(new_primPlusNat(x_1)) = x_1 31.37/16.77 POL(new_takeWhile(x_1, x_2)) = -1 + x_1 - x_2 31.37/16.77 POL(new_takeWhile1(x_1, x_2, x_3, x_4)) = -1 + x_1 - x_2 + x_3 31.37/16.77 POL(new_takeWhile10(x_1, x_2)) = -1 + x_1 - x_2 31.37/16.77 31.37/16.77 31.37/16.77 The following pairs are in P_>: 31.37/16.77 new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.37/16.77 new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.37/16.77 The following pairs are in P_bound: 31.37/16.77 new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) 31.37/16.77 The following rules are usable: 31.37/16.77 Zero -> new_primPlusNat(Zero) 31.37/16.77 Succ(wv520) -> new_primPlusNat(Succ(wv520)) 31.37/16.77 new_new_takeWhile1(wv530, wv540) -> anew_new_takeWhile1(Succ(wv530), Succ(wv540)) 31.37/16.77 new_new_takeWhile1(wv530, wv540) -> new_new_takeWhile1(Succ(wv530), Succ(wv540)) 31.37/16.77 cons_new_takeWhile1(Zero, Zero) -> new_new_takeWhile1(Zero, Zero) 31.37/16.77 cons_new_takeWhile1(Zero, Succ(wv540)) -> new_new_takeWhile1(Zero, Succ(wv540)) 31.37/16.77 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (32) 31.37/16.77 Complex Obligation (AND) 31.37/16.77 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (33) 31.37/16.77 Obligation: 31.37/16.77 Q DP problem: 31.37/16.77 The TRS P consists of the following rules: 31.37/16.77 31.37/16.77 new_takeWhile(Pos(Succ(wv400)), Pos(Succ(wv300))) -> H(wv400, wv300, anew_new_takeWhile1(wv300, wv400)) 31.37/16.77 H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) 31.37/16.77 new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) 31.37/16.77 H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) 31.37/16.77 31.37/16.77 The TRS R consists of the following rules: 31.37/16.77 31.37/16.77 new_primPlusNat(Zero) -> Zero 31.37/16.77 new_primPlusNat(Succ(wv520)) -> Succ(wv520) 31.37/16.77 anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.37/16.77 new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.37/16.77 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 31.37/16.77 new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) 31.37/16.77 31.37/16.77 The set Q consists of the following terms: 31.37/16.77 31.37/16.77 new_primPlusNat(Succ(x0)) 31.37/16.77 new_primPlusNat(Zero) 31.37/16.77 new_new_takeWhile1(Succ(x0), Succ(x1)) 31.37/16.77 anew_new_takeWhile1(Succ(x0), Succ(x1)) 31.37/16.77 new_new_takeWhile1(Zero, Zero) 31.37/16.77 new_new_takeWhile1(Zero, Succ(x0)) 31.37/16.77 31.37/16.77 We have to consider all minimal (P,Q,R)-chains. 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (34) DependencyGraphProof (EQUIVALENT) 31.37/16.77 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 4 less nodes. 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (35) 31.37/16.77 TRUE 31.37/16.77 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (36) 31.37/16.77 Obligation: 31.37/16.77 Q DP problem: 31.37/16.77 The TRS P consists of the following rules: 31.37/16.77 31.37/16.77 new_takeWhile10(wv51, wv52) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.37/16.77 H(wv51, wv52, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv51, wv52, Zero, Zero) 31.37/16.77 new_takeWhile1(wv51, wv52, Zero, Zero) -> new_takeWhile10(wv51, wv52) 31.37/16.77 H(wv51, wv52, cons_new_takeWhile1(Zero, Succ(wv540))) -> new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) 31.37/16.77 new_takeWhile1(wv51, wv52, Zero, Succ(wv540)) -> new_takeWhile(Pos(Succ(wv51)), Pos(Succ(Succ(new_primPlusNat(wv52))))) 31.37/16.77 31.37/16.77 The TRS R consists of the following rules: 31.37/16.77 31.37/16.77 new_primPlusNat(Zero) -> Zero 31.37/16.77 new_primPlusNat(Succ(wv520)) -> Succ(wv520) 31.37/16.77 anew_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.37/16.77 new_new_takeWhile1(Succ(wv530), Succ(wv540)) -> new_new_takeWhile1(wv530, wv540) 31.37/16.77 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 31.37/16.77 new_new_takeWhile1(Zero, Succ(wv540)) -> cons_new_takeWhile1(Zero, Succ(wv540)) 31.37/16.77 31.37/16.77 The set Q consists of the following terms: 31.37/16.77 31.37/16.77 new_primPlusNat(Succ(x0)) 31.37/16.77 new_primPlusNat(Zero) 31.37/16.77 new_new_takeWhile1(Succ(x0), Succ(x1)) 31.37/16.77 anew_new_takeWhile1(Succ(x0), Succ(x1)) 31.37/16.77 new_new_takeWhile1(Zero, Zero) 31.37/16.77 new_new_takeWhile1(Zero, Succ(x0)) 31.37/16.77 31.37/16.77 We have to consider all minimal (P,Q,R)-chains. 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (37) DependencyGraphProof (EQUIVALENT) 31.37/16.77 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 5 less nodes. 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (38) 31.37/16.77 TRUE 31.37/16.77 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (39) 31.37/16.77 Obligation: 31.37/16.77 Q DP problem: 31.37/16.77 The TRS P consists of the following rules: 31.37/16.77 31.37/16.77 new_takeWhile1(wv51, wv52, Succ(wv530), Succ(wv540)) -> new_takeWhile1(wv51, wv52, wv530, wv540) 31.37/16.77 31.37/16.77 R is empty. 31.37/16.77 Q is empty. 31.37/16.77 We have to consider all minimal (P,Q,R)-chains. 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (40) QDPSizeChangeProof (EQUIVALENT) 31.37/16.77 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. 31.37/16.77 31.37/16.77 From the DPs we obtained the following set of size-change graphs: 31.37/16.77 *new_takeWhile1(wv51, wv52, Succ(wv530), Succ(wv540)) -> new_takeWhile1(wv51, wv52, wv530, wv540) 31.37/16.77 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 31.37/16.77 31.37/16.77 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (41) 31.37/16.77 YES 31.37/16.77 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (42) 31.37/16.77 Obligation: 31.37/16.77 Q DP problem: 31.37/16.77 The TRS P consists of the following rules: 31.37/16.77 31.37/16.77 new_takeWhile(Pos(wv40), Neg(Succ(Succ(wv3000)))) -> new_takeWhile(Pos(wv40), Neg(Succ(wv3000))) 31.37/16.77 31.37/16.77 The TRS R consists of the following rules: 31.37/16.77 31.37/16.77 new_primPlusNat(Zero) -> Zero 31.37/16.77 new_primPlusNat(Succ(wv520)) -> Succ(wv520) 31.37/16.77 new_primPlusNat0 -> Succ(Zero) 31.37/16.77 31.37/16.77 The set Q consists of the following terms: 31.37/16.77 31.37/16.77 new_primPlusNat0 31.37/16.77 new_primPlusNat(Succ(x0)) 31.37/16.77 new_primPlusNat(Zero) 31.37/16.77 31.37/16.77 We have to consider all minimal (P,Q,R)-chains. 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (43) QDPSizeChangeProof (EQUIVALENT) 31.37/16.77 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. 31.37/16.77 31.37/16.77 Order:EMB rules! 31.37/16.77 31.37/16.77 AFS: 31.37/16.77 Neg(x1) = x1 31.37/16.77 31.37/16.77 Pos(x1) = Pos 31.37/16.77 31.37/16.77 Succ(x1) = Succ(x1) 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 From the DPs we obtained the following set of size-change graphs: 31.37/16.77 *new_takeWhile(Pos(wv40), Neg(Succ(Succ(wv3000)))) -> new_takeWhile(Pos(wv40), Neg(Succ(wv3000))) (allowed arguments on rhs = {1, 2}) 31.37/16.77 The graph contains the following edges 1 >= 1, 2 > 2 31.37/16.77 31.37/16.77 31.37/16.77 31.37/16.77 We oriented the following set of usable rules [AAECC05,FROCOS05]. 31.37/16.77 none 31.37/16.77 31.37/16.77 ---------------------------------------- 31.37/16.77 31.37/16.77 (44) 31.37/16.77 YES 31.37/16.81 EOF