32.30/15.98 YES 34.28/16.51 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 34.28/16.51 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 34.28/16.51 34.28/16.51 34.28/16.51 H-Termination with start terms of the given HASKELL could be proven: 34.28/16.51 34.28/16.51 (0) HASKELL 34.28/16.51 (1) BR [EQUIVALENT, 0 ms] 34.28/16.51 (2) HASKELL 34.28/16.51 (3) COR [EQUIVALENT, 0 ms] 34.28/16.51 (4) HASKELL 34.28/16.51 (5) NumRed [SOUND, 0 ms] 34.28/16.51 (6) HASKELL 34.28/16.51 (7) Narrow [SOUND, 0 ms] 34.28/16.51 (8) QDP 34.28/16.51 (9) DependencyGraphProof [EQUIVALENT, 0 ms] 34.28/16.51 (10) AND 34.28/16.51 (11) QDP 34.28/16.51 (12) QDPSizeChangeProof [EQUIVALENT, 4 ms] 34.28/16.51 (13) YES 34.28/16.51 (14) QDP 34.28/16.51 (15) QDPSizeChangeProof [EQUIVALENT, 0 ms] 34.28/16.51 (16) YES 34.28/16.51 (17) QDP 34.28/16.51 (18) QDPPairToRuleProof [EQUIVALENT, 0 ms] 34.28/16.51 (19) AND 34.28/16.51 (20) QDP 34.28/16.51 (21) TransformationProof [EQUIVALENT, 0 ms] 34.28/16.51 (22) QDP 34.28/16.51 (23) DependencyGraphProof [EQUIVALENT, 0 ms] 34.28/16.51 (24) QDP 34.28/16.51 (25) UsableRulesProof [EQUIVALENT, 0 ms] 34.28/16.51 (26) QDP 34.28/16.51 (27) QReductionProof [EQUIVALENT, 0 ms] 34.28/16.51 (28) QDP 34.28/16.51 (29) InductionCalculusProof [EQUIVALENT, 0 ms] 34.28/16.51 (30) QDP 34.28/16.51 (31) NonInfProof [EQUIVALENT, 275 ms] 34.28/16.51 (32) AND 34.28/16.51 (33) QDP 34.28/16.51 (34) DependencyGraphProof [EQUIVALENT, 0 ms] 34.28/16.51 (35) TRUE 34.28/16.51 (36) QDP 34.28/16.51 (37) DependencyGraphProof [EQUIVALENT, 0 ms] 34.28/16.51 (38) TRUE 34.28/16.51 (39) QDP 34.28/16.51 (40) QDPSizeChangeProof [EQUIVALENT, 0 ms] 34.28/16.51 (41) YES 34.28/16.51 (42) QDP 34.28/16.51 (43) QDPSizeChangeProof [EQUIVALENT, 0 ms] 34.28/16.51 (44) YES 34.28/16.51 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (0) 34.28/16.51 Obligation: 34.28/16.51 mainModule Main 34.28/16.51 module Main where { 34.28/16.51 import qualified Prelude; 34.28/16.51 } 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (1) BR (EQUIVALENT) 34.28/16.51 Replaced joker patterns by fresh variables and removed binding patterns. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (2) 34.28/16.51 Obligation: 34.28/16.51 mainModule Main 34.28/16.51 module Main where { 34.28/16.51 import qualified Prelude; 34.28/16.51 } 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (3) COR (EQUIVALENT) 34.28/16.51 Cond Reductions: 34.28/16.51 The following Function with conditions 34.28/16.51 "takeWhile p [] = []; 34.28/16.51 takeWhile p (x : xs)|p xx : takeWhile p xs|otherwise[]; 34.28/16.51 " 34.28/16.51 is transformed to 34.28/16.51 "takeWhile p [] = takeWhile3 p []; 34.28/16.51 takeWhile p (x : xs) = takeWhile2 p (x : xs); 34.28/16.51 " 34.28/16.51 "takeWhile0 p x xs True = []; 34.28/16.51 " 34.28/16.51 "takeWhile1 p x xs True = x : takeWhile p xs; 34.28/16.51 takeWhile1 p x xs False = takeWhile0 p x xs otherwise; 34.28/16.51 " 34.28/16.51 "takeWhile2 p (x : xs) = takeWhile1 p x xs (p x); 34.28/16.51 " 34.28/16.51 "takeWhile3 p [] = []; 34.28/16.51 takeWhile3 vz wu = takeWhile2 vz wu; 34.28/16.51 " 34.28/16.51 The following Function with conditions 34.28/16.51 "undefined |Falseundefined; 34.28/16.51 " 34.28/16.51 is transformed to 34.28/16.51 "undefined = undefined1; 34.28/16.51 " 34.28/16.51 "undefined0 True = undefined; 34.28/16.51 " 34.28/16.51 "undefined1 = undefined0 False; 34.28/16.51 " 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (4) 34.28/16.51 Obligation: 34.28/16.51 mainModule Main 34.28/16.51 module Main where { 34.28/16.51 import qualified Prelude; 34.28/16.51 } 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (5) NumRed (SOUND) 34.28/16.51 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (6) 34.28/16.51 Obligation: 34.28/16.51 mainModule Main 34.28/16.51 module Main where { 34.28/16.51 import qualified Prelude; 34.28/16.51 } 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (7) Narrow (SOUND) 34.28/16.51 Haskell To QDPs 34.28/16.51 34.28/16.51 digraph dp_graph { 34.28/16.51 node [outthreshold=100, inthreshold=100];1[label="range",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 34.28/16.51 3[label="range wv3",fontsize=16,color="burlywood",shape="triangle"];949[label="wv3/(wv30,wv31)",fontsize=10,color="white",style="solid",shape="box"];3 -> 949[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 949 -> 4[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 4[label="range (wv30,wv31)",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 34.28/16.51 5[label="enumFromTo wv30 wv31",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 34.28/16.51 6[label="numericEnumFromTo wv30 wv31",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 34.28/16.51 7[label="takeWhile (flip (<=) wv31) (numericEnumFrom wv30)",fontsize=16,color="black",shape="triangle"];7 -> 8[label="",style="solid", color="black", weight=3]; 34.28/16.51 8[label="takeWhile (flip (<=) wv31) (wv30 : (numericEnumFrom $! wv30 + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];8 -> 9[label="",style="solid", color="black", weight=3]; 34.28/16.51 9[label="takeWhile2 (flip (<=) wv31) (wv30 : (numericEnumFrom $! wv30 + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];9 -> 10[label="",style="solid", color="black", weight=3]; 34.28/16.51 10[label="takeWhile1 (flip (<=) wv31) wv30 (numericEnumFrom $! wv30 + fromInt (Pos (Succ Zero))) (flip (<=) wv31 wv30)",fontsize=16,color="black",shape="box"];10 -> 11[label="",style="solid", color="black", weight=3]; 34.28/16.51 11[label="takeWhile1 (flip (<=) wv31) wv30 (numericEnumFrom $! wv30 + fromInt (Pos (Succ Zero))) ((<=) wv30 wv31)",fontsize=16,color="black",shape="box"];11 -> 12[label="",style="solid", color="black", weight=3]; 34.28/16.51 12[label="takeWhile1 (flip (<=) wv31) wv30 (numericEnumFrom $! wv30 + fromInt (Pos (Succ Zero))) (compare wv30 wv31 /= GT)",fontsize=16,color="black",shape="box"];12 -> 13[label="",style="solid", color="black", weight=3]; 34.28/16.51 13[label="takeWhile1 (flip (<=) wv31) wv30 (numericEnumFrom $! wv30 + fromInt (Pos (Succ Zero))) (not (compare wv30 wv31 == GT))",fontsize=16,color="black",shape="box"];13 -> 14[label="",style="solid", color="black", weight=3]; 34.28/16.51 14[label="takeWhile1 (flip (<=) wv31) wv30 (numericEnumFrom $! wv30 + fromInt (Pos (Succ Zero))) (not (primCmpInt wv30 wv31 == GT))",fontsize=16,color="burlywood",shape="box"];950[label="wv30/Pos wv300",fontsize=10,color="white",style="solid",shape="box"];14 -> 950[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 950 -> 15[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 951[label="wv30/Neg wv300",fontsize=10,color="white",style="solid",shape="box"];14 -> 951[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 951 -> 16[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 15[label="takeWhile1 (flip (<=) wv31) (Pos wv300) (numericEnumFrom $! Pos wv300 + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos wv300) wv31 == GT))",fontsize=16,color="burlywood",shape="box"];952[label="wv300/Succ wv3000",fontsize=10,color="white",style="solid",shape="box"];15 -> 952[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 952 -> 17[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 953[label="wv300/Zero",fontsize=10,color="white",style="solid",shape="box"];15 -> 953[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 953 -> 18[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 16[label="takeWhile1 (flip (<=) wv31) (Neg wv300) (numericEnumFrom $! Neg wv300 + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg wv300) wv31 == GT))",fontsize=16,color="burlywood",shape="box"];954[label="wv300/Succ wv3000",fontsize=10,color="white",style="solid",shape="box"];16 -> 954[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 954 -> 19[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 955[label="wv300/Zero",fontsize=10,color="white",style="solid",shape="box"];16 -> 955[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 955 -> 20[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 17[label="takeWhile1 (flip (<=) wv31) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos (Succ wv3000)) wv31 == GT))",fontsize=16,color="burlywood",shape="box"];956[label="wv31/Pos wv310",fontsize=10,color="white",style="solid",shape="box"];17 -> 956[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 956 -> 21[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 957[label="wv31/Neg wv310",fontsize=10,color="white",style="solid",shape="box"];17 -> 957[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 957 -> 22[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 18[label="takeWhile1 (flip (<=) wv31) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos Zero) wv31 == GT))",fontsize=16,color="burlywood",shape="box"];958[label="wv31/Pos wv310",fontsize=10,color="white",style="solid",shape="box"];18 -> 958[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 958 -> 23[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 959[label="wv31/Neg wv310",fontsize=10,color="white",style="solid",shape="box"];18 -> 959[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 959 -> 24[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 19[label="takeWhile1 (flip (<=) wv31) (Neg (Succ wv3000)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg (Succ wv3000)) wv31 == GT))",fontsize=16,color="burlywood",shape="box"];960[label="wv31/Pos wv310",fontsize=10,color="white",style="solid",shape="box"];19 -> 960[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 960 -> 25[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 961[label="wv31/Neg wv310",fontsize=10,color="white",style="solid",shape="box"];19 -> 961[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 961 -> 26[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 20[label="takeWhile1 (flip (<=) wv31) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg Zero) wv31 == GT))",fontsize=16,color="burlywood",shape="box"];962[label="wv31/Pos wv310",fontsize=10,color="white",style="solid",shape="box"];20 -> 962[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 962 -> 27[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 963[label="wv31/Neg wv310",fontsize=10,color="white",style="solid",shape="box"];20 -> 963[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 963 -> 28[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 21[label="takeWhile1 (flip (<=) (Pos wv310)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos (Succ wv3000)) (Pos wv310) == GT))",fontsize=16,color="black",shape="box"];21 -> 29[label="",style="solid", color="black", weight=3]; 34.28/16.51 22[label="takeWhile1 (flip (<=) (Neg wv310)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos (Succ wv3000)) (Neg wv310) == GT))",fontsize=16,color="black",shape="box"];22 -> 30[label="",style="solid", color="black", weight=3]; 34.28/16.51 23[label="takeWhile1 (flip (<=) (Pos wv310)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos Zero) (Pos wv310) == GT))",fontsize=16,color="burlywood",shape="box"];964[label="wv310/Succ wv3100",fontsize=10,color="white",style="solid",shape="box"];23 -> 964[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 964 -> 31[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 965[label="wv310/Zero",fontsize=10,color="white",style="solid",shape="box"];23 -> 965[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 965 -> 32[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 24[label="takeWhile1 (flip (<=) (Neg wv310)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos Zero) (Neg wv310) == GT))",fontsize=16,color="burlywood",shape="box"];966[label="wv310/Succ wv3100",fontsize=10,color="white",style="solid",shape="box"];24 -> 966[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 966 -> 33[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 967[label="wv310/Zero",fontsize=10,color="white",style="solid",shape="box"];24 -> 967[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 967 -> 34[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 25[label="takeWhile1 (flip (<=) (Pos wv310)) (Neg (Succ wv3000)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg (Succ wv3000)) (Pos wv310) == GT))",fontsize=16,color="black",shape="box"];25 -> 35[label="",style="solid", color="black", weight=3]; 34.28/16.51 26[label="takeWhile1 (flip (<=) (Neg wv310)) (Neg (Succ wv3000)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg (Succ wv3000)) (Neg wv310) == GT))",fontsize=16,color="black",shape="box"];26 -> 36[label="",style="solid", color="black", weight=3]; 34.28/16.51 27[label="takeWhile1 (flip (<=) (Pos wv310)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg Zero) (Pos wv310) == GT))",fontsize=16,color="burlywood",shape="box"];968[label="wv310/Succ wv3100",fontsize=10,color="white",style="solid",shape="box"];27 -> 968[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 968 -> 37[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 969[label="wv310/Zero",fontsize=10,color="white",style="solid",shape="box"];27 -> 969[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 969 -> 38[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 28[label="takeWhile1 (flip (<=) (Neg wv310)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg Zero) (Neg wv310) == GT))",fontsize=16,color="burlywood",shape="box"];970[label="wv310/Succ wv3100",fontsize=10,color="white",style="solid",shape="box"];28 -> 970[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 970 -> 39[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 971[label="wv310/Zero",fontsize=10,color="white",style="solid",shape="box"];28 -> 971[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 971 -> 40[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 29[label="takeWhile1 (flip (<=) (Pos wv310)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv3000) wv310 == GT))",fontsize=16,color="burlywood",shape="box"];972[label="wv310/Succ wv3100",fontsize=10,color="white",style="solid",shape="box"];29 -> 972[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 972 -> 41[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 973[label="wv310/Zero",fontsize=10,color="white",style="solid",shape="box"];29 -> 973[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 973 -> 42[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 30[label="takeWhile1 (flip (<=) (Neg wv310)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (GT == GT))",fontsize=16,color="black",shape="box"];30 -> 43[label="",style="solid", color="black", weight=3]; 34.28/16.51 31[label="takeWhile1 (flip (<=) (Pos (Succ wv3100))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos Zero) (Pos (Succ wv3100)) == GT))",fontsize=16,color="black",shape="box"];31 -> 44[label="",style="solid", color="black", weight=3]; 34.28/16.51 32[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"];32 -> 45[label="",style="solid", color="black", weight=3]; 34.28/16.51 33[label="takeWhile1 (flip (<=) (Neg (Succ wv3100))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Pos Zero) (Neg (Succ wv3100)) == GT))",fontsize=16,color="black",shape="box"];33 -> 46[label="",style="solid", color="black", weight=3]; 34.28/16.51 34[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"];34 -> 47[label="",style="solid", color="black", weight=3]; 34.28/16.51 35[label="takeWhile1 (flip (<=) (Pos wv310)) (Neg (Succ wv3000)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (LT == GT))",fontsize=16,color="black",shape="box"];35 -> 48[label="",style="solid", color="black", weight=3]; 34.28/16.51 36[label="takeWhile1 (flip (<=) (Neg wv310)) (Neg (Succ wv3000)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv310 (Succ wv3000) == GT))",fontsize=16,color="burlywood",shape="box"];974[label="wv310/Succ wv3100",fontsize=10,color="white",style="solid",shape="box"];36 -> 974[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 974 -> 49[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 975[label="wv310/Zero",fontsize=10,color="white",style="solid",shape="box"];36 -> 975[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 975 -> 50[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 37[label="takeWhile1 (flip (<=) (Pos (Succ wv3100))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg Zero) (Pos (Succ wv3100)) == GT))",fontsize=16,color="black",shape="box"];37 -> 51[label="",style="solid", color="black", weight=3]; 34.28/16.51 38[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"];38 -> 52[label="",style="solid", color="black", weight=3]; 34.28/16.51 39[label="takeWhile1 (flip (<=) (Neg (Succ wv3100))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpInt (Neg Zero) (Neg (Succ wv3100)) == GT))",fontsize=16,color="black",shape="box"];39 -> 53[label="",style="solid", color="black", weight=3]; 34.28/16.51 40[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"];40 -> 54[label="",style="solid", color="black", weight=3]; 34.28/16.51 41[label="takeWhile1 (flip (<=) (Pos (Succ wv3100))) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv3000) (Succ wv3100) == GT))",fontsize=16,color="black",shape="box"];41 -> 55[label="",style="solid", color="black", weight=3]; 34.28/16.51 42[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv3000) Zero == GT))",fontsize=16,color="black",shape="box"];42 -> 56[label="",style="solid", color="black", weight=3]; 34.28/16.51 43[label="takeWhile1 (flip (<=) (Neg wv310)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) (not True)",fontsize=16,color="black",shape="box"];43 -> 57[label="",style="solid", color="black", weight=3]; 34.28/16.51 44[label="takeWhile1 (flip (<=) (Pos (Succ wv3100))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero (Succ wv3100) == GT))",fontsize=16,color="black",shape="box"];44 -> 58[label="",style="solid", color="black", weight=3]; 34.28/16.51 45[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (EQ == GT))",fontsize=16,color="black",shape="box"];45 -> 59[label="",style="solid", color="black", weight=3]; 34.28/16.51 46[label="takeWhile1 (flip (<=) (Neg (Succ wv3100))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (GT == GT))",fontsize=16,color="black",shape="box"];46 -> 60[label="",style="solid", color="black", weight=3]; 34.28/16.51 47[label="takeWhile1 (flip (<=) (Neg Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (EQ == GT))",fontsize=16,color="black",shape="box"];47 -> 61[label="",style="solid", color="black", weight=3]; 34.28/16.51 48[label="takeWhile1 (flip (<=) (Pos wv310)) (Neg (Succ wv3000)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];48 -> 62[label="",style="solid", color="black", weight=3]; 34.28/16.51 49[label="takeWhile1 (flip (<=) (Neg (Succ wv3100))) (Neg (Succ wv3000)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv3100) (Succ wv3000) == GT))",fontsize=16,color="black",shape="box"];49 -> 63[label="",style="solid", color="black", weight=3]; 34.28/16.51 50[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg (Succ wv3000)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero (Succ wv3000) == GT))",fontsize=16,color="black",shape="box"];50 -> 64[label="",style="solid", color="black", weight=3]; 34.28/16.51 51[label="takeWhile1 (flip (<=) (Pos (Succ wv3100))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (LT == GT))",fontsize=16,color="black",shape="box"];51 -> 65[label="",style="solid", color="black", weight=3]; 34.28/16.51 52[label="takeWhile1 (flip (<=) (Pos Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (EQ == GT))",fontsize=16,color="black",shape="box"];52 -> 66[label="",style="solid", color="black", weight=3]; 34.28/16.51 53[label="takeWhile1 (flip (<=) (Neg (Succ wv3100))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv3100) Zero == GT))",fontsize=16,color="black",shape="box"];53 -> 67[label="",style="solid", color="black", weight=3]; 34.28/16.51 54[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (EQ == GT))",fontsize=16,color="black",shape="box"];54 -> 68[label="",style="solid", color="black", weight=3]; 34.28/16.51 55 -> 789[label="",style="dashed", color="red", weight=0]; 34.28/16.51 55[label="takeWhile1 (flip (<=) (Pos (Succ wv3100))) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv3000 wv3100 == GT))",fontsize=16,color="magenta"];55 -> 790[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 55 -> 791[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 55 -> 792[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 55 -> 793[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 56[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (GT == GT))",fontsize=16,color="black",shape="box"];56 -> 71[label="",style="solid", color="black", weight=3]; 34.28/16.51 57[label="takeWhile1 (flip (<=) (Neg wv310)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) False",fontsize=16,color="black",shape="box"];57 -> 72[label="",style="solid", color="black", weight=3]; 34.28/16.51 58[label="takeWhile1 (flip (<=) (Pos (Succ wv3100))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not (LT == GT))",fontsize=16,color="black",shape="box"];58 -> 73[label="",style="solid", color="black", weight=3]; 34.28/16.51 59[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];59 -> 74[label="",style="solid", color="black", weight=3]; 34.28/16.51 60[label="takeWhile1 (flip (<=) (Neg (Succ wv3100))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not True)",fontsize=16,color="black",shape="box"];60 -> 75[label="",style="solid", color="black", weight=3]; 34.28/16.51 61[label="takeWhile1 (flip (<=) (Neg Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];61 -> 76[label="",style="solid", color="black", weight=3]; 34.28/16.51 62[label="takeWhile1 (flip (<=) (Pos wv310)) (Neg (Succ wv3000)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];62 -> 77[label="",style="solid", color="black", weight=3]; 34.28/16.51 63 -> 835[label="",style="dashed", color="red", weight=0]; 34.28/16.51 63[label="takeWhile1 (flip (<=) (Neg (Succ wv3100))) (Neg (Succ wv3000)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv3100 wv3000 == GT))",fontsize=16,color="magenta"];63 -> 836[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 63 -> 837[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 63 -> 838[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 63 -> 839[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 64[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg (Succ wv3000)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero))) (not (LT == GT))",fontsize=16,color="black",shape="box"];64 -> 80[label="",style="solid", color="black", weight=3]; 34.28/16.51 65[label="takeWhile1 (flip (<=) (Pos (Succ wv3100))) (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]; 34.28/16.51 66[label="takeWhile1 (flip (<=) (Pos Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];66 -> 82[label="",style="solid", color="black", weight=3]; 34.28/16.51 67[label="takeWhile1 (flip (<=) (Neg (Succ wv3100))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not (GT == GT))",fontsize=16,color="black",shape="box"];67 -> 83[label="",style="solid", color="black", weight=3]; 34.28/16.51 68[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];68 -> 84[label="",style="solid", color="black", weight=3]; 34.28/16.51 790[label="wv3000",fontsize=16,color="green",shape="box"];791[label="wv3100",fontsize=16,color="green",shape="box"];792[label="wv3100",fontsize=16,color="green",shape="box"];793[label="wv3000",fontsize=16,color="green",shape="box"];789[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv52 wv53 == GT))",fontsize=16,color="burlywood",shape="triangle"];976[label="wv52/Succ wv520",fontsize=10,color="white",style="solid",shape="box"];789 -> 976[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 976 -> 830[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 977[label="wv52/Zero",fontsize=10,color="white",style="solid",shape="box"];789 -> 977[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 977 -> 831[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 71[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) (not True)",fontsize=16,color="black",shape="box"];71 -> 89[label="",style="solid", color="black", weight=3]; 34.28/16.51 72[label="takeWhile0 (flip (<=) (Neg wv310)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) otherwise",fontsize=16,color="black",shape="box"];72 -> 90[label="",style="solid", color="black", weight=3]; 34.28/16.51 73[label="takeWhile1 (flip (<=) (Pos (Succ wv3100))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];73 -> 91[label="",style="solid", color="black", weight=3]; 34.28/16.51 74[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];74 -> 92[label="",style="solid", color="black", weight=3]; 34.28/16.51 75[label="takeWhile1 (flip (<=) (Neg (Succ wv3100))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) False",fontsize=16,color="black",shape="box"];75 -> 93[label="",style="solid", color="black", weight=3]; 34.28/16.51 76[label="takeWhile1 (flip (<=) (Neg Zero)) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];76 -> 94[label="",style="solid", color="black", weight=3]; 34.28/16.51 77[label="Neg (Succ wv3000) : takeWhile (flip (<=) (Pos wv310)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];77 -> 95[label="",style="dashed", color="green", weight=3]; 34.28/16.51 836[label="wv3100",fontsize=16,color="green",shape="box"];837[label="wv3000",fontsize=16,color="green",shape="box"];838[label="wv3100",fontsize=16,color="green",shape="box"];839[label="wv3000",fontsize=16,color="green",shape="box"];835[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv57 wv58 == GT))",fontsize=16,color="burlywood",shape="triangle"];978[label="wv57/Succ wv570",fontsize=10,color="white",style="solid",shape="box"];835 -> 978[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 978 -> 876[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 979[label="wv57/Zero",fontsize=10,color="white",style="solid",shape="box"];835 -> 979[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 979 -> 877[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 80[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg (Succ wv3000)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="box"];80 -> 100[label="",style="solid", color="black", weight=3]; 34.28/16.51 81[label="takeWhile1 (flip (<=) (Pos (Succ wv3100))) (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]; 34.28/16.51 82[label="takeWhile1 (flip (<=) (Pos Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];82 -> 102[label="",style="solid", color="black", weight=3]; 34.28/16.51 83[label="takeWhile1 (flip (<=) (Neg (Succ wv3100))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) (not True)",fontsize=16,color="black",shape="box"];83 -> 103[label="",style="solid", color="black", weight=3]; 34.28/16.51 84[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];84 -> 104[label="",style="solid", color="black", weight=3]; 34.28/16.51 830[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv520) wv53 == GT))",fontsize=16,color="burlywood",shape="box"];980[label="wv53/Succ wv530",fontsize=10,color="white",style="solid",shape="box"];830 -> 980[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 980 -> 878[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 981[label="wv53/Zero",fontsize=10,color="white",style="solid",shape="box"];830 -> 981[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 981 -> 879[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 831[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero wv53 == GT))",fontsize=16,color="burlywood",shape="box"];982[label="wv53/Succ wv530",fontsize=10,color="white",style="solid",shape="box"];831 -> 982[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 982 -> 880[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 983[label="wv53/Zero",fontsize=10,color="white",style="solid",shape="box"];831 -> 983[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 983 -> 881[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 89[label="takeWhile1 (flip (<=) (Pos Zero)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) False",fontsize=16,color="black",shape="box"];89 -> 109[label="",style="solid", color="black", weight=3]; 34.28/16.51 90[label="takeWhile0 (flip (<=) (Neg wv310)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];90 -> 110[label="",style="solid", color="black", weight=3]; 34.28/16.51 91[label="takeWhile1 (flip (<=) (Pos (Succ wv3100))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];91 -> 111[label="",style="solid", color="black", weight=3]; 34.28/16.51 92[label="Pos Zero : takeWhile (flip (<=) (Pos Zero)) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];92 -> 112[label="",style="dashed", color="green", weight=3]; 34.28/16.51 93[label="takeWhile0 (flip (<=) (Neg (Succ wv3100))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) otherwise",fontsize=16,color="black",shape="box"];93 -> 113[label="",style="solid", color="black", weight=3]; 34.28/16.51 94[label="Pos Zero : takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];94 -> 114[label="",style="dashed", color="green", weight=3]; 34.28/16.51 95[label="takeWhile (flip (<=) (Pos wv310)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];95 -> 115[label="",style="solid", color="black", weight=3]; 34.28/16.51 876[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv570) wv58 == GT))",fontsize=16,color="burlywood",shape="box"];984[label="wv58/Succ wv580",fontsize=10,color="white",style="solid",shape="box"];876 -> 984[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 984 -> 882[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 985[label="wv58/Zero",fontsize=10,color="white",style="solid",shape="box"];876 -> 985[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 985 -> 883[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 877[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero wv58 == GT))",fontsize=16,color="burlywood",shape="box"];986[label="wv58/Succ wv580",fontsize=10,color="white",style="solid",shape="box"];877 -> 986[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 986 -> 884[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 987[label="wv58/Zero",fontsize=10,color="white",style="solid",shape="box"];877 -> 987[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 987 -> 885[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 100[label="takeWhile1 (flip (<=) (Neg Zero)) (Neg (Succ wv3000)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];100 -> 120[label="",style="solid", color="black", weight=3]; 34.28/16.51 101[label="Neg Zero : takeWhile (flip (<=) (Pos (Succ wv3100))) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];101 -> 121[label="",style="dashed", color="green", weight=3]; 34.28/16.51 102[label="Neg Zero : takeWhile (flip (<=) (Pos Zero)) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];102 -> 122[label="",style="dashed", color="green", weight=3]; 34.28/16.51 103[label="takeWhile1 (flip (<=) (Neg (Succ wv3100))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) False",fontsize=16,color="black",shape="box"];103 -> 123[label="",style="solid", color="black", weight=3]; 34.28/16.51 104[label="Neg Zero : takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];104 -> 124[label="",style="dashed", color="green", weight=3]; 34.28/16.51 878[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv520) (Succ wv530) == GT))",fontsize=16,color="black",shape="box"];878 -> 886[label="",style="solid", color="black", weight=3]; 34.28/16.51 879[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv520) Zero == GT))",fontsize=16,color="black",shape="box"];879 -> 887[label="",style="solid", color="black", weight=3]; 34.28/16.51 880[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero (Succ wv530) == GT))",fontsize=16,color="black",shape="box"];880 -> 888[label="",style="solid", color="black", weight=3]; 34.28/16.51 881[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero Zero == GT))",fontsize=16,color="black",shape="box"];881 -> 889[label="",style="solid", color="black", weight=3]; 34.28/16.51 109[label="takeWhile0 (flip (<=) (Pos Zero)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) otherwise",fontsize=16,color="black",shape="box"];109 -> 130[label="",style="solid", color="black", weight=3]; 34.28/16.51 110[label="[]",fontsize=16,color="green",shape="box"];111[label="Pos Zero : takeWhile (flip (<=) (Pos (Succ wv3100))) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];111 -> 131[label="",style="dashed", color="green", weight=3]; 34.28/16.51 112[label="takeWhile (flip (<=) (Pos Zero)) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];112 -> 132[label="",style="solid", color="black", weight=3]; 34.28/16.51 113[label="takeWhile0 (flip (<=) (Neg (Succ wv3100))) (Pos Zero) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];113 -> 133[label="",style="solid", color="black", weight=3]; 34.28/16.51 114[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];114 -> 134[label="",style="solid", color="black", weight=3]; 34.28/16.51 115[label="takeWhile (flip (<=) (Pos wv310)) (Neg (Succ wv3000) + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Neg (Succ wv3000) + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];115 -> 135[label="",style="solid", color="black", weight=3]; 34.28/16.51 882[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv570) (Succ wv580) == GT))",fontsize=16,color="black",shape="box"];882 -> 890[label="",style="solid", color="black", weight=3]; 34.28/16.51 883[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not (primCmpNat (Succ wv570) Zero == GT))",fontsize=16,color="black",shape="box"];883 -> 891[label="",style="solid", color="black", weight=3]; 34.28/16.51 884[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero (Succ wv580) == GT))",fontsize=16,color="black",shape="box"];884 -> 892[label="",style="solid", color="black", weight=3]; 34.28/16.51 885[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not (primCmpNat Zero Zero == GT))",fontsize=16,color="black",shape="box"];885 -> 893[label="",style="solid", color="black", weight=3]; 34.28/16.51 120[label="Neg (Succ wv3000) : takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];120 -> 141[label="",style="dashed", color="green", weight=3]; 34.28/16.51 121[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];121 -> 142[label="",style="solid", color="black", weight=3]; 34.28/16.51 122[label="takeWhile (flip (<=) (Pos Zero)) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];122 -> 143[label="",style="solid", color="black", weight=3]; 34.28/16.51 123[label="takeWhile0 (flip (<=) (Neg (Succ wv3100))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) otherwise",fontsize=16,color="black",shape="box"];123 -> 144[label="",style="solid", color="black", weight=3]; 34.28/16.51 124[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];124 -> 145[label="",style="solid", color="black", weight=3]; 34.28/16.51 886 -> 789[label="",style="dashed", color="red", weight=0]; 34.28/16.51 886[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv520 wv530 == GT))",fontsize=16,color="magenta"];886 -> 894[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 886 -> 895[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 887[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not (GT == GT))",fontsize=16,color="black",shape="box"];887 -> 896[label="",style="solid", color="black", weight=3]; 34.28/16.51 888[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not (LT == GT))",fontsize=16,color="black",shape="box"];888 -> 897[label="",style="solid", color="black", weight=3]; 34.28/16.51 889[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not (EQ == GT))",fontsize=16,color="black",shape="box"];889 -> 898[label="",style="solid", color="black", weight=3]; 34.28/16.51 130[label="takeWhile0 (flip (<=) (Pos Zero)) (Pos (Succ wv3000)) (numericEnumFrom $! Pos (Succ wv3000) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];130 -> 153[label="",style="solid", color="black", weight=3]; 34.28/16.51 131[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (numericEnumFrom $! Pos Zero + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];131 -> 154[label="",style="solid", color="black", weight=3]; 34.28/16.51 132[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"];132 -> 155[label="",style="solid", color="black", weight=3]; 34.28/16.51 133[label="[]",fontsize=16,color="green",shape="box"];134[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"];134 -> 156[label="",style="solid", color="black", weight=3]; 34.28/16.51 135[label="takeWhile (flip (<=) (Pos wv310)) (enforceWHNF (WHNF (Neg (Succ wv3000) + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Neg (Succ wv3000) + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];135 -> 157[label="",style="solid", color="black", weight=3]; 34.28/16.51 890 -> 835[label="",style="dashed", color="red", weight=0]; 34.28/16.51 890[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not (primCmpNat wv570 wv580 == GT))",fontsize=16,color="magenta"];890 -> 899[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 890 -> 900[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 891[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not (GT == GT))",fontsize=16,color="black",shape="box"];891 -> 901[label="",style="solid", color="black", weight=3]; 34.28/16.51 892[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not (LT == GT))",fontsize=16,color="black",shape="box"];892 -> 902[label="",style="solid", color="black", weight=3]; 34.28/16.51 893[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not (EQ == GT))",fontsize=16,color="black",shape="box"];893 -> 903[label="",style="solid", color="black", weight=3]; 34.28/16.51 141[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom $! Neg (Succ wv3000) + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];141 -> 165[label="",style="solid", color="black", weight=3]; 34.28/16.51 142[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (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]; 34.28/16.51 143[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"];143 -> 167[label="",style="solid", color="black", weight=3]; 34.28/16.51 144[label="takeWhile0 (flip (<=) (Neg (Succ wv3100))) (Neg Zero) (numericEnumFrom $! Neg Zero + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];144 -> 168[label="",style="solid", color="black", weight=3]; 34.28/16.51 145[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"];145 -> 169[label="",style="solid", color="black", weight=3]; 34.28/16.51 894[label="wv520",fontsize=16,color="green",shape="box"];895[label="wv530",fontsize=16,color="green",shape="box"];896[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not True)",fontsize=16,color="black",shape="box"];896 -> 904[label="",style="solid", color="black", weight=3]; 34.28/16.51 897[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="triangle"];897 -> 905[label="",style="solid", color="black", weight=3]; 34.28/16.51 898 -> 897[label="",style="dashed", color="red", weight=0]; 34.28/16.51 898[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="magenta"];153[label="[]",fontsize=16,color="green",shape="box"];154[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (Pos Zero + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];154 -> 177[label="",style="solid", color="black", weight=3]; 34.28/16.51 155[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"];155 -> 178[label="",style="solid", color="black", weight=3]; 34.28/16.51 156[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"];156 -> 179[label="",style="solid", color="black", weight=3]; 34.28/16.51 157[label="takeWhile (flip (<=) (Pos wv310)) (enforceWHNF (WHNF (primPlusInt (Neg (Succ wv3000)) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Neg (Succ wv3000)) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];157 -> 180[label="",style="solid", color="black", weight=3]; 34.28/16.51 899[label="wv580",fontsize=16,color="green",shape="box"];900[label="wv570",fontsize=16,color="green",shape="box"];901[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not True)",fontsize=16,color="black",shape="box"];901 -> 906[label="",style="solid", color="black", weight=3]; 34.28/16.51 902[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="black",shape="triangle"];902 -> 907[label="",style="solid", color="black", weight=3]; 34.28/16.51 903 -> 902[label="",style="dashed", color="red", weight=0]; 34.28/16.51 903[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) (not False)",fontsize=16,color="magenta"];165[label="takeWhile (flip (<=) (Neg Zero)) (Neg (Succ wv3000) + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Neg (Succ wv3000) + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];165 -> 188[label="",style="solid", color="black", weight=3]; 34.28/16.51 166[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (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]; 34.28/16.51 167[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"];167 -> 190[label="",style="solid", color="black", weight=3]; 34.28/16.51 168[label="[]",fontsize=16,color="green",shape="box"];169[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"];169 -> 191[label="",style="solid", color="black", weight=3]; 34.28/16.51 904[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) False",fontsize=16,color="black",shape="box"];904 -> 908[label="",style="solid", color="black", weight=3]; 34.28/16.51 905[label="takeWhile1 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];905 -> 909[label="",style="solid", color="black", weight=3]; 34.28/16.51 177[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (enforceWHNF (WHNF (Pos Zero + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos Zero + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];177 -> 200[label="",style="solid", color="black", weight=3]; 34.28/16.51 178[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"];178 -> 201[label="",style="solid", color="black", weight=3]; 34.28/16.51 179[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"];179 -> 202[label="",style="solid", color="black", weight=3]; 34.28/16.51 180[label="takeWhile (flip (<=) (Pos wv310)) (enforceWHNF (WHNF (primPlusInt (Neg (Succ wv3000)) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Neg (Succ wv3000)) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];180 -> 203[label="",style="solid", color="black", weight=3]; 34.28/16.51 906[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) False",fontsize=16,color="black",shape="box"];906 -> 910[label="",style="solid", color="black", weight=3]; 34.28/16.51 907[label="takeWhile1 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];907 -> 911[label="",style="solid", color="black", weight=3]; 34.28/16.51 188[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (Neg (Succ wv3000) + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Neg (Succ wv3000) + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];188 -> 212[label="",style="solid", color="black", weight=3]; 34.28/16.51 189[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (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]; 34.28/16.51 190[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"];190 -> 214[label="",style="solid", color="black", weight=3]; 34.28/16.51 191[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"];191 -> 215[label="",style="solid", color="black", weight=3]; 34.28/16.51 908[label="takeWhile0 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) otherwise",fontsize=16,color="black",shape="box"];908 -> 912[label="",style="solid", color="black", weight=3]; 34.28/16.51 909[label="Pos (Succ wv51) : takeWhile (flip (<=) (Pos (Succ wv50))) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];909 -> 913[label="",style="dashed", color="green", weight=3]; 34.28/16.51 200[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (enforceWHNF (WHNF (primPlusInt (Pos Zero) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Pos Zero) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];200 -> 226[label="",style="solid", color="black", weight=3]; 34.28/16.51 201[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"];201 -> 227[label="",style="solid", color="black", weight=3]; 34.28/16.51 202[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"];202 -> 228[label="",style="solid", color="black", weight=3]; 34.28/16.51 203[label="takeWhile (flip (<=) (Pos wv310)) (enforceWHNF (WHNF (primMinusNat (Succ Zero) (Succ wv3000))) (numericEnumFrom (primMinusNat (Succ Zero) (Succ wv3000))))",fontsize=16,color="black",shape="box"];203 -> 229[label="",style="solid", color="black", weight=3]; 34.28/16.51 910[label="takeWhile0 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) otherwise",fontsize=16,color="black",shape="box"];910 -> 914[label="",style="solid", color="black", weight=3]; 34.28/16.51 911[label="Neg (Succ wv56) : takeWhile (flip (<=) (Neg (Succ wv55))) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];911 -> 915[label="",style="dashed", color="green", weight=3]; 34.28/16.51 212[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primPlusInt (Neg (Succ wv3000)) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Neg (Succ wv3000)) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];212 -> 240[label="",style="solid", color="black", weight=3]; 34.28/16.51 213[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (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]; 34.28/16.51 214[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"];214 -> 242[label="",style="solid", color="black", weight=3]; 34.28/16.51 215[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"];215 -> 243[label="",style="solid", color="black", weight=3]; 34.28/16.51 912[label="takeWhile0 (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51)) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];912 -> 916[label="",style="solid", color="black", weight=3]; 34.28/16.51 913[label="takeWhile (flip (<=) (Pos (Succ wv50))) (numericEnumFrom $! Pos (Succ wv51) + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];913 -> 917[label="",style="solid", color="black", weight=3]; 34.28/16.51 226[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (enforceWHNF (WHNF (primPlusInt (Pos Zero) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Pos Zero) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];226 -> 253[label="",style="solid", color="black", weight=3]; 34.28/16.51 227[label="takeWhile (flip (<=) (Pos 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]; 34.28/16.51 228[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (Pos (primPlusNat Zero (Succ Zero)))) (numericEnumFrom (Pos (primPlusNat Zero (Succ Zero)))))",fontsize=16,color="black",shape="box"];228 -> 255[label="",style="solid", color="black", weight=3]; 34.28/16.51 229[label="takeWhile (flip (<=) (Pos wv310)) (enforceWHNF (WHNF (primMinusNat Zero wv3000)) (numericEnumFrom (primMinusNat Zero wv3000)))",fontsize=16,color="burlywood",shape="box"];988[label="wv3000/Succ wv30000",fontsize=10,color="white",style="solid",shape="box"];229 -> 988[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 988 -> 256[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 989[label="wv3000/Zero",fontsize=10,color="white",style="solid",shape="box"];229 -> 989[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 989 -> 257[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 914[label="takeWhile0 (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56)) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero))) True",fontsize=16,color="black",shape="box"];914 -> 918[label="",style="solid", color="black", weight=3]; 34.28/16.51 915[label="takeWhile (flip (<=) (Neg (Succ wv55))) (numericEnumFrom $! Neg (Succ wv56) + fromInt (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];915 -> 919[label="",style="solid", color="black", weight=3]; 34.28/16.51 240[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primPlusInt (Neg (Succ wv3000)) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Neg (Succ wv3000)) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];240 -> 267[label="",style="solid", color="black", weight=3]; 34.28/16.51 241[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (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]; 34.28/16.51 242[label="takeWhile (flip (<=) (Pos 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]; 34.28/16.51 243[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primMinusNat (Succ Zero) Zero)) (numericEnumFrom (primMinusNat (Succ Zero) Zero)))",fontsize=16,color="black",shape="box"];243 -> 270[label="",style="solid", color="black", weight=3]; 34.28/16.51 916[label="[]",fontsize=16,color="green",shape="box"];917[label="takeWhile (flip (<=) (Pos (Succ wv50))) (Pos (Succ wv51) + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Pos (Succ wv51) + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];917 -> 920[label="",style="solid", color="black", weight=3]; 34.28/16.51 253[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (enforceWHNF (WHNF (Pos (primPlusNat Zero (Succ Zero)))) (numericEnumFrom (Pos (primPlusNat Zero (Succ Zero)))))",fontsize=16,color="black",shape="box"];253 -> 281[label="",style="solid", color="black", weight=3]; 34.28/16.51 254 -> 7[label="",style="dashed", color="red", weight=0]; 34.28/16.51 254[label="takeWhile (flip (<=) (Pos Zero)) (numericEnumFrom (Pos (primPlusNat Zero (Succ Zero))))",fontsize=16,color="magenta"];254 -> 282[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 254 -> 283[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 255 -> 7[label="",style="dashed", color="red", weight=0]; 34.28/16.51 255[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom (Pos (primPlusNat Zero (Succ Zero))))",fontsize=16,color="magenta"];255 -> 284[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 255 -> 285[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 256[label="takeWhile (flip (<=) (Pos wv310)) (enforceWHNF (WHNF (primMinusNat Zero (Succ wv30000))) (numericEnumFrom (primMinusNat Zero (Succ wv30000))))",fontsize=16,color="black",shape="box"];256 -> 286[label="",style="solid", color="black", weight=3]; 34.28/16.51 257[label="takeWhile (flip (<=) (Pos wv310)) (enforceWHNF (WHNF (primMinusNat Zero Zero)) (numericEnumFrom (primMinusNat Zero Zero)))",fontsize=16,color="black",shape="box"];257 -> 287[label="",style="solid", color="black", weight=3]; 34.28/16.51 918[label="[]",fontsize=16,color="green",shape="box"];919[label="takeWhile (flip (<=) (Neg (Succ wv55))) (Neg (Succ wv56) + fromInt (Pos (Succ Zero)) `seq` numericEnumFrom (Neg (Succ wv56) + fromInt (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];919 -> 921[label="",style="solid", color="black", weight=3]; 34.28/16.51 267[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primMinusNat (Succ Zero) (Succ wv3000))) (numericEnumFrom (primMinusNat (Succ Zero) (Succ wv3000))))",fontsize=16,color="black",shape="box"];267 -> 298[label="",style="solid", color="black", weight=3]; 34.28/16.51 268[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (enforceWHNF (WHNF (Pos (Succ Zero))) (numericEnumFrom (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];268 -> 299[label="",style="solid", color="black", weight=3]; 34.28/16.51 269[label="takeWhile (flip (<=) (Pos 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]; 34.28/16.51 270[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (Pos (Succ Zero))) (numericEnumFrom (Pos (Succ Zero))))",fontsize=16,color="black",shape="box"];270 -> 301[label="",style="solid", color="black", weight=3]; 34.28/16.51 920[label="takeWhile (flip (<=) (Pos (Succ wv50))) (enforceWHNF (WHNF (Pos (Succ wv51) + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Pos (Succ wv51) + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];920 -> 922[label="",style="solid", color="black", weight=3]; 34.28/16.51 281 -> 7[label="",style="dashed", color="red", weight=0]; 34.28/16.51 281[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (numericEnumFrom (Pos (primPlusNat Zero (Succ Zero))))",fontsize=16,color="magenta"];281 -> 314[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 281 -> 315[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 282[label="Pos (primPlusNat Zero (Succ Zero))",fontsize=16,color="green",shape="box"];282 -> 316[label="",style="dashed", color="green", weight=3]; 34.28/16.51 283[label="Pos Zero",fontsize=16,color="green",shape="box"];284[label="Pos (primPlusNat Zero (Succ Zero))",fontsize=16,color="green",shape="box"];284 -> 317[label="",style="dashed", color="green", weight=3]; 34.28/16.51 285[label="Neg Zero",fontsize=16,color="green",shape="box"];286[label="takeWhile (flip (<=) (Pos wv310)) (enforceWHNF (WHNF (Neg (Succ wv30000))) (numericEnumFrom (Neg (Succ wv30000))))",fontsize=16,color="black",shape="box"];286 -> 318[label="",style="solid", color="black", weight=3]; 34.28/16.51 287[label="takeWhile (flip (<=) (Pos wv310)) (enforceWHNF (WHNF (Pos Zero)) (numericEnumFrom (Pos Zero)))",fontsize=16,color="black",shape="box"];287 -> 319[label="",style="solid", color="black", weight=3]; 34.28/16.51 921[label="takeWhile (flip (<=) (Neg (Succ wv55))) (enforceWHNF (WHNF (Neg (Succ wv56) + fromInt (Pos (Succ Zero)))) (numericEnumFrom (Neg (Succ wv56) + fromInt (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];921 -> 923[label="",style="solid", color="black", weight=3]; 34.28/16.51 298[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primMinusNat Zero wv3000)) (numericEnumFrom (primMinusNat Zero wv3000)))",fontsize=16,color="burlywood",shape="box"];990[label="wv3000/Succ wv30000",fontsize=10,color="white",style="solid",shape="box"];298 -> 990[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 990 -> 332[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 991[label="wv3000/Zero",fontsize=10,color="white",style="solid",shape="box"];298 -> 991[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 991 -> 333[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 299 -> 7[label="",style="dashed", color="red", weight=0]; 34.28/16.51 299[label="takeWhile (flip (<=) (Pos (Succ wv3100))) (numericEnumFrom (Pos (Succ Zero)))",fontsize=16,color="magenta"];299 -> 334[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 299 -> 335[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 300 -> 7[label="",style="dashed", color="red", weight=0]; 34.28/16.51 300[label="takeWhile (flip (<=) (Pos Zero)) (numericEnumFrom (Pos (Succ Zero)))",fontsize=16,color="magenta"];300 -> 336[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 300 -> 337[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 301 -> 7[label="",style="dashed", color="red", weight=0]; 34.28/16.51 301[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom (Pos (Succ Zero)))",fontsize=16,color="magenta"];301 -> 338[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 301 -> 339[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 922[label="takeWhile (flip (<=) (Pos (Succ wv50))) (enforceWHNF (WHNF (primPlusInt (Pos (Succ wv51)) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Pos (Succ wv51)) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];922 -> 924[label="",style="solid", color="black", weight=3]; 34.28/16.51 314[label="Pos (primPlusNat Zero (Succ Zero))",fontsize=16,color="green",shape="box"];314 -> 351[label="",style="dashed", color="green", weight=3]; 34.28/16.51 315[label="Pos (Succ wv3100)",fontsize=16,color="green",shape="box"];316[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="black",shape="triangle"];316 -> 352[label="",style="solid", color="black", weight=3]; 34.28/16.51 317 -> 316[label="",style="dashed", color="red", weight=0]; 34.28/16.51 317[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="magenta"];318 -> 7[label="",style="dashed", color="red", weight=0]; 34.28/16.51 318[label="takeWhile (flip (<=) (Pos wv310)) (numericEnumFrom (Neg (Succ wv30000)))",fontsize=16,color="magenta"];318 -> 353[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 318 -> 354[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 319 -> 7[label="",style="dashed", color="red", weight=0]; 34.28/16.51 319[label="takeWhile (flip (<=) (Pos wv310)) (numericEnumFrom (Pos Zero))",fontsize=16,color="magenta"];319 -> 355[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 319 -> 356[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 923[label="takeWhile (flip (<=) (Neg (Succ wv55))) (enforceWHNF (WHNF (primPlusInt (Neg (Succ wv56)) (fromInt (Pos (Succ Zero))))) (numericEnumFrom (primPlusInt (Neg (Succ wv56)) (fromInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];923 -> 925[label="",style="solid", color="black", weight=3]; 34.28/16.51 332[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primMinusNat Zero (Succ wv30000))) (numericEnumFrom (primMinusNat Zero (Succ wv30000))))",fontsize=16,color="black",shape="box"];332 -> 368[label="",style="solid", color="black", weight=3]; 34.28/16.51 333[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (primMinusNat Zero Zero)) (numericEnumFrom (primMinusNat Zero Zero)))",fontsize=16,color="black",shape="box"];333 -> 369[label="",style="solid", color="black", weight=3]; 34.28/16.51 334[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];335[label="Pos (Succ wv3100)",fontsize=16,color="green",shape="box"];336[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];337[label="Pos Zero",fontsize=16,color="green",shape="box"];338[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];339[label="Neg Zero",fontsize=16,color="green",shape="box"];924[label="takeWhile (flip (<=) (Pos (Succ wv50))) (enforceWHNF (WHNF (primPlusInt (Pos (Succ wv51)) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Pos (Succ wv51)) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];924 -> 926[label="",style="solid", color="black", weight=3]; 34.28/16.51 351 -> 316[label="",style="dashed", color="red", weight=0]; 34.28/16.51 351[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="magenta"];352[label="Succ Zero",fontsize=16,color="green",shape="box"];353[label="Neg (Succ wv30000)",fontsize=16,color="green",shape="box"];354[label="Pos wv310",fontsize=16,color="green",shape="box"];355[label="Pos Zero",fontsize=16,color="green",shape="box"];356[label="Pos wv310",fontsize=16,color="green",shape="box"];925[label="takeWhile (flip (<=) (Neg (Succ wv55))) (enforceWHNF (WHNF (primPlusInt (Neg (Succ wv56)) (Pos (Succ Zero)))) (numericEnumFrom (primPlusInt (Neg (Succ wv56)) (Pos (Succ Zero)))))",fontsize=16,color="black",shape="box"];925 -> 927[label="",style="solid", color="black", weight=3]; 34.28/16.51 368[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (Neg (Succ wv30000))) (numericEnumFrom (Neg (Succ wv30000))))",fontsize=16,color="black",shape="box"];368 -> 394[label="",style="solid", color="black", weight=3]; 34.28/16.51 369[label="takeWhile (flip (<=) (Neg Zero)) (enforceWHNF (WHNF (Pos Zero)) (numericEnumFrom (Pos Zero)))",fontsize=16,color="black",shape="box"];369 -> 395[label="",style="solid", color="black", weight=3]; 34.28/16.51 926[label="takeWhile (flip (<=) (Pos (Succ wv50))) (enforceWHNF (WHNF (Pos (primPlusNat (Succ wv51) (Succ Zero)))) (numericEnumFrom (Pos (primPlusNat (Succ wv51) (Succ Zero)))))",fontsize=16,color="black",shape="box"];926 -> 928[label="",style="solid", color="black", weight=3]; 34.28/16.51 927[label="takeWhile (flip (<=) (Neg (Succ wv55))) (enforceWHNF (WHNF (primMinusNat (Succ Zero) (Succ wv56))) (numericEnumFrom (primMinusNat (Succ Zero) (Succ wv56))))",fontsize=16,color="black",shape="box"];927 -> 929[label="",style="solid", color="black", weight=3]; 34.28/16.51 394 -> 7[label="",style="dashed", color="red", weight=0]; 34.28/16.51 394[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom (Neg (Succ wv30000)))",fontsize=16,color="magenta"];394 -> 426[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 394 -> 427[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 395 -> 7[label="",style="dashed", color="red", weight=0]; 34.28/16.51 395[label="takeWhile (flip (<=) (Neg Zero)) (numericEnumFrom (Pos Zero))",fontsize=16,color="magenta"];395 -> 428[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 395 -> 429[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 928 -> 7[label="",style="dashed", color="red", weight=0]; 34.28/16.51 928[label="takeWhile (flip (<=) (Pos (Succ wv50))) (numericEnumFrom (Pos (primPlusNat (Succ wv51) (Succ Zero))))",fontsize=16,color="magenta"];928 -> 930[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 928 -> 931[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 929[label="takeWhile (flip (<=) (Neg (Succ wv55))) (enforceWHNF (WHNF (primMinusNat Zero wv56)) (numericEnumFrom (primMinusNat Zero wv56)))",fontsize=16,color="burlywood",shape="box"];992[label="wv56/Succ wv560",fontsize=10,color="white",style="solid",shape="box"];929 -> 992[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 992 -> 932[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 993[label="wv56/Zero",fontsize=10,color="white",style="solid",shape="box"];929 -> 993[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 993 -> 933[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 426[label="Neg (Succ wv30000)",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"];429[label="Neg Zero",fontsize=16,color="green",shape="box"];930[label="Pos (primPlusNat (Succ wv51) (Succ Zero))",fontsize=16,color="green",shape="box"];930 -> 934[label="",style="dashed", color="green", weight=3]; 34.28/16.51 931[label="Pos (Succ wv50)",fontsize=16,color="green",shape="box"];932[label="takeWhile (flip (<=) (Neg (Succ wv55))) (enforceWHNF (WHNF (primMinusNat Zero (Succ wv560))) (numericEnumFrom (primMinusNat Zero (Succ wv560))))",fontsize=16,color="black",shape="box"];932 -> 935[label="",style="solid", color="black", weight=3]; 34.28/16.51 933[label="takeWhile (flip (<=) (Neg (Succ wv55))) (enforceWHNF (WHNF (primMinusNat Zero Zero)) (numericEnumFrom (primMinusNat Zero Zero)))",fontsize=16,color="black",shape="box"];933 -> 936[label="",style="solid", color="black", weight=3]; 34.28/16.51 934[label="primPlusNat (Succ wv51) (Succ Zero)",fontsize=16,color="black",shape="box"];934 -> 937[label="",style="solid", color="black", weight=3]; 34.28/16.51 935[label="takeWhile (flip (<=) (Neg (Succ wv55))) (enforceWHNF (WHNF (Neg (Succ wv560))) (numericEnumFrom (Neg (Succ wv560))))",fontsize=16,color="black",shape="box"];935 -> 938[label="",style="solid", color="black", weight=3]; 34.28/16.51 936[label="takeWhile (flip (<=) (Neg (Succ wv55))) (enforceWHNF (WHNF (Pos Zero)) (numericEnumFrom (Pos Zero)))",fontsize=16,color="black",shape="box"];936 -> 939[label="",style="solid", color="black", weight=3]; 34.28/16.51 937[label="Succ (Succ (primPlusNat wv51 Zero))",fontsize=16,color="green",shape="box"];937 -> 940[label="",style="dashed", color="green", weight=3]; 34.28/16.51 938 -> 7[label="",style="dashed", color="red", weight=0]; 34.28/16.51 938[label="takeWhile (flip (<=) (Neg (Succ wv55))) (numericEnumFrom (Neg (Succ wv560)))",fontsize=16,color="magenta"];938 -> 941[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 938 -> 942[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 939 -> 7[label="",style="dashed", color="red", weight=0]; 34.28/16.51 939[label="takeWhile (flip (<=) (Neg (Succ wv55))) (numericEnumFrom (Pos Zero))",fontsize=16,color="magenta"];939 -> 943[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 939 -> 944[label="",style="dashed", color="magenta", weight=3]; 34.28/16.51 940[label="primPlusNat wv51 Zero",fontsize=16,color="burlywood",shape="box"];994[label="wv51/Succ wv510",fontsize=10,color="white",style="solid",shape="box"];940 -> 994[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 994 -> 945[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 995[label="wv51/Zero",fontsize=10,color="white",style="solid",shape="box"];940 -> 995[label="",style="solid", color="burlywood", weight=9]; 34.28/16.51 995 -> 946[label="",style="solid", color="burlywood", weight=3]; 34.28/16.51 941[label="Neg (Succ wv560)",fontsize=16,color="green",shape="box"];942[label="Neg (Succ wv55)",fontsize=16,color="green",shape="box"];943[label="Pos Zero",fontsize=16,color="green",shape="box"];944[label="Neg (Succ wv55)",fontsize=16,color="green",shape="box"];945[label="primPlusNat (Succ wv510) Zero",fontsize=16,color="black",shape="box"];945 -> 947[label="",style="solid", color="black", weight=3]; 34.28/16.51 946[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];946 -> 948[label="",style="solid", color="black", weight=3]; 34.28/16.51 947[label="Succ wv510",fontsize=16,color="green",shape="box"];948[label="Zero",fontsize=16,color="green",shape="box"];} 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (8) 34.28/16.51 Obligation: 34.28/16.51 Q DP problem: 34.28/16.51 The TRS P consists of the following rules: 34.28/16.51 34.28/16.51 new_takeWhile1(wv50, wv51, Succ(wv520), Succ(wv530)) -> new_takeWhile1(wv50, wv51, wv520, wv530) 34.28/16.51 new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 new_takeWhile(Pos(wv310), Neg(Succ(Succ(wv30000)))) -> new_takeWhile(Pos(wv310), Neg(Succ(wv30000))) 34.28/16.51 new_takeWhile11(wv55, wv56, Succ(wv570), Succ(wv580)) -> new_takeWhile11(wv55, wv56, wv570, wv580) 34.28/16.51 new_takeWhile(Neg(Zero), Neg(Succ(Zero))) -> new_takeWhile(Neg(Zero), Pos(Zero)) 34.28/16.51 new_takeWhile(Pos(Succ(wv3100)), Pos(Zero)) -> new_takeWhile(Pos(Succ(wv3100)), Pos(new_primPlusNat0)) 34.28/16.51 new_takeWhile12(wv55, Succ(wv560)) -> new_takeWhile(Neg(Succ(wv55)), Neg(Succ(wv560))) 34.28/16.51 new_takeWhile11(wv55, Succ(wv560), Zero, Succ(wv580)) -> new_takeWhile(Neg(Succ(wv55)), Neg(Succ(wv560))) 34.28/16.51 new_takeWhile11(wv55, Zero, Zero, Succ(wv580)) -> new_takeWhile(Neg(Succ(wv55)), Pos(Zero)) 34.28/16.51 new_takeWhile(Pos(Zero), Pos(Zero)) -> new_takeWhile(Pos(Zero), Pos(new_primPlusNat0)) 34.28/16.51 new_takeWhile(Neg(Succ(wv3100)), Neg(Succ(wv3000))) -> new_takeWhile11(wv3100, wv3000, wv3100, wv3000) 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) 34.28/16.51 new_takeWhile11(wv55, wv56, Zero, Zero) -> new_takeWhile12(wv55, wv56) 34.28/16.51 new_takeWhile12(wv55, Zero) -> new_takeWhile(Neg(Succ(wv55)), Pos(Zero)) 34.28/16.51 new_takeWhile(Pos(Zero), Neg(Zero)) -> new_takeWhile(Pos(Zero), Pos(Succ(Zero))) 34.28/16.51 new_takeWhile(Neg(Zero), Pos(Zero)) -> new_takeWhile(Neg(Zero), Pos(new_primPlusNat0)) 34.28/16.51 new_takeWhile(Neg(Zero), Neg(Zero)) -> new_takeWhile(Neg(Zero), Pos(Succ(Zero))) 34.28/16.51 new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> new_takeWhile1(wv3100, wv3000, wv3000, wv3100) 34.28/16.51 new_takeWhile(Neg(Zero), Neg(Succ(Succ(wv30000)))) -> new_takeWhile(Neg(Zero), Neg(Succ(wv30000))) 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 new_takeWhile(Pos(wv310), Neg(Succ(Zero))) -> new_takeWhile(Pos(wv310), Pos(Zero)) 34.28/16.51 new_takeWhile(Pos(Succ(wv3100)), Neg(Zero)) -> new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(Zero))) 34.28/16.51 34.28/16.51 The TRS R consists of the following rules: 34.28/16.51 34.28/16.51 new_primPlusNat(Zero) -> Zero 34.28/16.51 new_primPlusNat(Succ(wv510)) -> Succ(wv510) 34.28/16.51 new_primPlusNat0 -> Succ(Zero) 34.28/16.51 34.28/16.51 The set Q consists of the following terms: 34.28/16.51 34.28/16.51 new_primPlusNat(Succ(x0)) 34.28/16.51 new_primPlusNat0 34.28/16.51 new_primPlusNat(Zero) 34.28/16.51 34.28/16.51 We have to consider all minimal (P,Q,R)-chains. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (9) DependencyGraphProof (EQUIVALENT) 34.28/16.51 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 4 SCCs with 10 less nodes. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (10) 34.28/16.51 Complex Obligation (AND) 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (11) 34.28/16.51 Obligation: 34.28/16.51 Q DP problem: 34.28/16.51 The TRS P consists of the following rules: 34.28/16.51 34.28/16.51 new_takeWhile(Neg(Zero), Neg(Succ(Succ(wv30000)))) -> new_takeWhile(Neg(Zero), Neg(Succ(wv30000))) 34.28/16.51 34.28/16.51 The TRS R consists of the following rules: 34.28/16.51 34.28/16.51 new_primPlusNat(Zero) -> Zero 34.28/16.51 new_primPlusNat(Succ(wv510)) -> Succ(wv510) 34.28/16.51 new_primPlusNat0 -> Succ(Zero) 34.28/16.51 34.28/16.51 The set Q consists of the following terms: 34.28/16.51 34.28/16.51 new_primPlusNat(Succ(x0)) 34.28/16.51 new_primPlusNat0 34.28/16.51 new_primPlusNat(Zero) 34.28/16.51 34.28/16.51 We have to consider all minimal (P,Q,R)-chains. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (12) QDPSizeChangeProof (EQUIVALENT) 34.28/16.51 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. 34.28/16.51 34.28/16.51 Order:EMB rules! 34.28/16.51 34.28/16.51 AFS: 34.28/16.51 Zero = Zero 34.28/16.51 34.28/16.51 Neg(x1) = x1 34.28/16.51 34.28/16.51 Succ(x1) = Succ(x1) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 From the DPs we obtained the following set of size-change graphs: 34.28/16.51 *new_takeWhile(Neg(Zero), Neg(Succ(Succ(wv30000)))) -> new_takeWhile(Neg(Zero), Neg(Succ(wv30000))) (allowed arguments on rhs = {1, 2}) 34.28/16.51 The graph contains the following edges 1 >= 1, 2 > 2 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We oriented the following set of usable rules [AAECC05,FROCOS05]. 34.28/16.51 none 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (13) 34.28/16.51 YES 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (14) 34.28/16.51 Obligation: 34.28/16.51 Q DP problem: 34.28/16.51 The TRS P consists of the following rules: 34.28/16.51 34.28/16.51 new_takeWhile11(wv55, Succ(wv560), Zero, Succ(wv580)) -> new_takeWhile(Neg(Succ(wv55)), Neg(Succ(wv560))) 34.28/16.51 new_takeWhile(Neg(Succ(wv3100)), Neg(Succ(wv3000))) -> new_takeWhile11(wv3100, wv3000, wv3100, wv3000) 34.28/16.51 new_takeWhile11(wv55, wv56, Succ(wv570), Succ(wv580)) -> new_takeWhile11(wv55, wv56, wv570, wv580) 34.28/16.51 new_takeWhile11(wv55, wv56, Zero, Zero) -> new_takeWhile12(wv55, wv56) 34.28/16.51 new_takeWhile12(wv55, Succ(wv560)) -> new_takeWhile(Neg(Succ(wv55)), Neg(Succ(wv560))) 34.28/16.51 34.28/16.51 The TRS R consists of the following rules: 34.28/16.51 34.28/16.51 new_primPlusNat(Zero) -> Zero 34.28/16.51 new_primPlusNat(Succ(wv510)) -> Succ(wv510) 34.28/16.51 new_primPlusNat0 -> Succ(Zero) 34.28/16.51 34.28/16.51 The set Q consists of the following terms: 34.28/16.51 34.28/16.51 new_primPlusNat(Succ(x0)) 34.28/16.51 new_primPlusNat0 34.28/16.51 new_primPlusNat(Zero) 34.28/16.51 34.28/16.51 We have to consider all minimal (P,Q,R)-chains. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (15) QDPSizeChangeProof (EQUIVALENT) 34.28/16.51 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. 34.28/16.51 34.28/16.51 Order:EMB rules! 34.28/16.51 34.28/16.51 AFS: 34.28/16.51 Zero = Zero 34.28/16.51 34.28/16.51 Neg(x1) = x1 34.28/16.51 34.28/16.51 Succ(x1) = Succ(x1) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 From the DPs we obtained the following set of size-change graphs: 34.28/16.51 *new_takeWhile(Neg(Succ(wv3100)), Neg(Succ(wv3000))) -> new_takeWhile11(wv3100, wv3000, wv3100, wv3000) (allowed arguments on rhs = {1, 2, 3, 4}) 34.28/16.51 The graph contains the following edges 1 > 1, 2 > 2, 1 > 3, 2 > 4 34.28/16.51 34.28/16.51 34.28/16.51 *new_takeWhile11(wv55, wv56, Succ(wv570), Succ(wv580)) -> new_takeWhile11(wv55, wv56, wv570, wv580) (allowed arguments on rhs = {1, 2, 3, 4}) 34.28/16.51 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 34.28/16.51 34.28/16.51 34.28/16.51 *new_takeWhile11(wv55, Succ(wv560), Zero, Succ(wv580)) -> new_takeWhile(Neg(Succ(wv55)), Neg(Succ(wv560))) (allowed arguments on rhs = {1, 2}) 34.28/16.51 The graph contains the following edges 2 >= 2 34.28/16.51 34.28/16.51 34.28/16.51 *new_takeWhile11(wv55, wv56, Zero, Zero) -> new_takeWhile12(wv55, wv56) (allowed arguments on rhs = {1, 2}) 34.28/16.51 The graph contains the following edges 1 >= 1, 2 >= 2 34.28/16.51 34.28/16.51 34.28/16.51 *new_takeWhile12(wv55, Succ(wv560)) -> new_takeWhile(Neg(Succ(wv55)), Neg(Succ(wv560))) (allowed arguments on rhs = {1, 2}) 34.28/16.51 The graph contains the following edges 2 >= 2 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We oriented the following set of usable rules [AAECC05,FROCOS05]. 34.28/16.51 none 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (16) 34.28/16.51 YES 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (17) 34.28/16.51 Obligation: 34.28/16.51 Q DP problem: 34.28/16.51 The TRS P consists of the following rules: 34.28/16.51 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) 34.28/16.51 new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> new_takeWhile1(wv3100, wv3000, wv3000, wv3100) 34.28/16.51 new_takeWhile1(wv50, wv51, Succ(wv520), Succ(wv530)) -> new_takeWhile1(wv50, wv51, wv520, wv530) 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 34.28/16.51 The TRS R consists of the following rules: 34.28/16.51 34.28/16.51 new_primPlusNat(Zero) -> Zero 34.28/16.51 new_primPlusNat(Succ(wv510)) -> Succ(wv510) 34.28/16.51 new_primPlusNat0 -> Succ(Zero) 34.28/16.51 34.28/16.51 The set Q consists of the following terms: 34.28/16.51 34.28/16.51 new_primPlusNat(Succ(x0)) 34.28/16.51 new_primPlusNat0 34.28/16.51 new_primPlusNat(Zero) 34.28/16.51 34.28/16.51 We have to consider all minimal (P,Q,R)-chains. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (18) QDPPairToRuleProof (EQUIVALENT) 34.28/16.51 The dependency pair new_takeWhile1(wv50, wv51, Succ(wv520), Succ(wv530)) -> new_takeWhile1(wv50, wv51, wv520, wv530) was transformed to the following new rules: 34.28/16.51 anew_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 34.28/16.51 new_new_takeWhile1(Zero, Succ(wv530)) -> cons_new_takeWhile1(Zero, Succ(wv530)) 34.28/16.51 34.28/16.51 the following new pairs maintain the fan-in: 34.28/16.51 new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> H(wv3100, wv3000, anew_new_takeWhile1(wv3000, wv3100)) 34.28/16.51 34.28/16.51 the following new pairs maintain the fan-out: 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv50, wv51, Zero, Zero) 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Succ(wv530))) -> new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (19) 34.28/16.51 Complex Obligation (AND) 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (20) 34.28/16.51 Obligation: 34.28/16.51 Q DP problem: 34.28/16.51 The TRS P consists of the following rules: 34.28/16.51 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) 34.28/16.51 new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> new_takeWhile1(wv3100, wv3000, wv3000, wv3100) 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> H(wv3100, wv3000, anew_new_takeWhile1(wv3000, wv3100)) 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv50, wv51, Zero, Zero) 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Succ(wv530))) -> new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) 34.28/16.51 34.28/16.51 The TRS R consists of the following rules: 34.28/16.51 34.28/16.51 new_primPlusNat(Zero) -> Zero 34.28/16.51 new_primPlusNat(Succ(wv510)) -> Succ(wv510) 34.28/16.51 new_primPlusNat0 -> Succ(Zero) 34.28/16.51 anew_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 34.28/16.51 new_new_takeWhile1(Zero, Succ(wv530)) -> cons_new_takeWhile1(Zero, Succ(wv530)) 34.28/16.51 34.28/16.51 The set Q consists of the following terms: 34.28/16.51 34.28/16.51 new_primPlusNat(Succ(x0)) 34.28/16.51 new_primPlusNat0 34.28/16.51 new_primPlusNat(Zero) 34.28/16.51 new_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.51 anew_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.51 new_new_takeWhile1(Zero, Zero) 34.28/16.51 new_new_takeWhile1(Zero, Succ(x0)) 34.28/16.51 34.28/16.51 We have to consider all minimal (P,Q,R)-chains. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (21) TransformationProof (EQUIVALENT) 34.28/16.51 By instantiating [LPAR04] the rule new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> new_takeWhile1(wv3100, wv3000, wv3000, wv3100) we obtained the following new rules [LPAR04]: 34.28/16.51 34.28/16.51 (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)) 34.28/16.51 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (22) 34.28/16.51 Obligation: 34.28/16.51 Q DP problem: 34.28/16.51 The TRS P consists of the following rules: 34.28/16.51 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) 34.28/16.51 new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> H(wv3100, wv3000, anew_new_takeWhile1(wv3000, wv3100)) 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv50, wv51, Zero, Zero) 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Succ(wv530))) -> new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) 34.28/16.51 new_takeWhile(Pos(Succ(z0)), Pos(Succ(Succ(y_0)))) -> new_takeWhile1(z0, Succ(y_0), Succ(y_0), z0) 34.28/16.51 34.28/16.51 The TRS R consists of the following rules: 34.28/16.51 34.28/16.51 new_primPlusNat(Zero) -> Zero 34.28/16.51 new_primPlusNat(Succ(wv510)) -> Succ(wv510) 34.28/16.51 new_primPlusNat0 -> Succ(Zero) 34.28/16.51 anew_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 34.28/16.51 new_new_takeWhile1(Zero, Succ(wv530)) -> cons_new_takeWhile1(Zero, Succ(wv530)) 34.28/16.51 34.28/16.51 The set Q consists of the following terms: 34.28/16.51 34.28/16.51 new_primPlusNat(Succ(x0)) 34.28/16.51 new_primPlusNat0 34.28/16.51 new_primPlusNat(Zero) 34.28/16.51 new_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.51 anew_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.51 new_new_takeWhile1(Zero, Zero) 34.28/16.51 new_new_takeWhile1(Zero, Succ(x0)) 34.28/16.51 34.28/16.51 We have to consider all minimal (P,Q,R)-chains. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (23) DependencyGraphProof (EQUIVALENT) 34.28/16.51 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (24) 34.28/16.51 Obligation: 34.28/16.51 Q DP problem: 34.28/16.51 The TRS P consists of the following rules: 34.28/16.51 34.28/16.51 new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> H(wv3100, wv3000, anew_new_takeWhile1(wv3000, wv3100)) 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv50, wv51, Zero, Zero) 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Succ(wv530))) -> new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 34.28/16.51 The TRS R consists of the following rules: 34.28/16.51 34.28/16.51 new_primPlusNat(Zero) -> Zero 34.28/16.51 new_primPlusNat(Succ(wv510)) -> Succ(wv510) 34.28/16.51 new_primPlusNat0 -> Succ(Zero) 34.28/16.51 anew_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 34.28/16.51 new_new_takeWhile1(Zero, Succ(wv530)) -> cons_new_takeWhile1(Zero, Succ(wv530)) 34.28/16.51 34.28/16.51 The set Q consists of the following terms: 34.28/16.51 34.28/16.51 new_primPlusNat(Succ(x0)) 34.28/16.51 new_primPlusNat0 34.28/16.51 new_primPlusNat(Zero) 34.28/16.51 new_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.51 anew_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.51 new_new_takeWhile1(Zero, Zero) 34.28/16.51 new_new_takeWhile1(Zero, Succ(x0)) 34.28/16.51 34.28/16.51 We have to consider all minimal (P,Q,R)-chains. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (25) UsableRulesProof (EQUIVALENT) 34.28/16.51 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. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (26) 34.28/16.51 Obligation: 34.28/16.51 Q DP problem: 34.28/16.51 The TRS P consists of the following rules: 34.28/16.51 34.28/16.51 new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> H(wv3100, wv3000, anew_new_takeWhile1(wv3000, wv3100)) 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv50, wv51, Zero, Zero) 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Succ(wv530))) -> new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 34.28/16.51 The TRS R consists of the following rules: 34.28/16.51 34.28/16.51 new_primPlusNat(Zero) -> Zero 34.28/16.51 new_primPlusNat(Succ(wv510)) -> Succ(wv510) 34.28/16.51 anew_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 34.28/16.51 new_new_takeWhile1(Zero, Succ(wv530)) -> cons_new_takeWhile1(Zero, Succ(wv530)) 34.28/16.51 34.28/16.51 The set Q consists of the following terms: 34.28/16.51 34.28/16.51 new_primPlusNat(Succ(x0)) 34.28/16.51 new_primPlusNat0 34.28/16.51 new_primPlusNat(Zero) 34.28/16.51 new_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.51 anew_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.51 new_new_takeWhile1(Zero, Zero) 34.28/16.51 new_new_takeWhile1(Zero, Succ(x0)) 34.28/16.51 34.28/16.51 We have to consider all minimal (P,Q,R)-chains. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (27) QReductionProof (EQUIVALENT) 34.28/16.51 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 34.28/16.51 34.28/16.51 new_primPlusNat0 34.28/16.51 34.28/16.51 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (28) 34.28/16.51 Obligation: 34.28/16.51 Q DP problem: 34.28/16.51 The TRS P consists of the following rules: 34.28/16.51 34.28/16.51 new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> H(wv3100, wv3000, anew_new_takeWhile1(wv3000, wv3100)) 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv50, wv51, Zero, Zero) 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Succ(wv530))) -> new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 34.28/16.51 The TRS R consists of the following rules: 34.28/16.51 34.28/16.51 new_primPlusNat(Zero) -> Zero 34.28/16.51 new_primPlusNat(Succ(wv510)) -> Succ(wv510) 34.28/16.51 anew_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 34.28/16.51 new_new_takeWhile1(Zero, Succ(wv530)) -> cons_new_takeWhile1(Zero, Succ(wv530)) 34.28/16.51 34.28/16.51 The set Q consists of the following terms: 34.28/16.51 34.28/16.51 new_primPlusNat(Succ(x0)) 34.28/16.51 new_primPlusNat(Zero) 34.28/16.51 new_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.51 anew_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.51 new_new_takeWhile1(Zero, Zero) 34.28/16.51 new_new_takeWhile1(Zero, Succ(x0)) 34.28/16.51 34.28/16.51 We have to consider all minimal (P,Q,R)-chains. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (29) InductionCalculusProof (EQUIVALENT) 34.28/16.51 Note that final constraints are written in bold face. 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 For Pair new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) the following chains were created: 34.28/16.51 *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: 34.28/16.51 34.28/16.51 (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)))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (2) (new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 For Pair new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> H(wv3100, wv3000, anew_new_takeWhile1(wv3000, wv3100)) the following chains were created: 34.28/16.51 *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: 34.28/16.51 34.28/16.51 (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))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (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))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 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: 34.28/16.51 34.28/16.51 (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)))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 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: 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 (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)))) 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 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: 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (5) using rules (I), (II) which results in the following new constraint: 34.28/16.51 34.28/16.51 (8) (new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We solved constraint (6) using rules (I), (II). 34.28/16.51 *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: 34.28/16.51 34.28/16.51 (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))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (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))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 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: 34.28/16.51 34.28/16.51 (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)))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 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: 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 (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)))) 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 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: 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 For Pair H(wv50, wv51, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv50, wv51, Zero, Zero) the following chains were created: 34.28/16.51 *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: 34.28/16.51 34.28/16.51 (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)) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (2) (H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 For Pair new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) the following chains were created: 34.28/16.51 *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: 34.28/16.51 34.28/16.51 (1) (new_takeWhile10(x45, x46)=new_takeWhile10(x47, x48) ==> new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (2) (new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 For Pair H(wv50, wv51, cons_new_takeWhile1(Zero, Succ(wv530))) -> new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) the following chains were created: 34.28/16.51 *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: 34.28/16.51 34.28/16.51 (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))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (2) (H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 For Pair new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) the following chains were created: 34.28/16.51 *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: 34.28/16.51 34.28/16.51 (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)))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (2) (new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 To summarize, we get the following constraints P__>=_ for the following pairs. 34.28/16.51 34.28/16.51 *new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 34.28/16.51 *(new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 *new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> H(wv3100, wv3000, anew_new_takeWhile1(wv3000, wv3100)) 34.28/16.51 34.28/16.51 *(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))))) 34.28/16.51 34.28/16.51 34.28/16.51 *(new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) 34.28/16.51 34.28/16.51 34.28/16.51 *(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))))) 34.28/16.51 34.28/16.51 34.28/16.51 *(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))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 *H(wv50, wv51, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv50, wv51, Zero, Zero) 34.28/16.51 34.28/16.51 *(H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 *new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) 34.28/16.51 34.28/16.51 *(new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 *H(wv50, wv51, cons_new_takeWhile1(Zero, Succ(wv530))) -> new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) 34.28/16.51 34.28/16.51 *(H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 *new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 34.28/16.51 *(new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 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. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (30) 34.28/16.51 Obligation: 34.28/16.51 Q DP problem: 34.28/16.51 The TRS P consists of the following rules: 34.28/16.51 34.28/16.51 new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> H(wv3100, wv3000, anew_new_takeWhile1(wv3000, wv3100)) 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv50, wv51, Zero, Zero) 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) 34.28/16.51 H(wv50, wv51, cons_new_takeWhile1(Zero, Succ(wv530))) -> new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) 34.28/16.51 new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.51 34.28/16.51 The TRS R consists of the following rules: 34.28/16.51 34.28/16.51 new_primPlusNat(Zero) -> Zero 34.28/16.51 new_primPlusNat(Succ(wv510)) -> Succ(wv510) 34.28/16.51 anew_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.51 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 34.28/16.51 new_new_takeWhile1(Zero, Succ(wv530)) -> cons_new_takeWhile1(Zero, Succ(wv530)) 34.28/16.51 34.28/16.51 The set Q consists of the following terms: 34.28/16.51 34.28/16.51 new_primPlusNat(Succ(x0)) 34.28/16.51 new_primPlusNat(Zero) 34.28/16.51 new_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.51 anew_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.51 new_new_takeWhile1(Zero, Zero) 34.28/16.51 new_new_takeWhile1(Zero, Succ(x0)) 34.28/16.51 34.28/16.51 We have to consider all minimal (P,Q,R)-chains. 34.28/16.51 ---------------------------------------- 34.28/16.51 34.28/16.51 (31) NonInfProof (EQUIVALENT) 34.28/16.51 The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps: 34.28/16.51 34.28/16.51 Note that final constraints are written in bold face. 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 For Pair new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) the following chains were created: 34.28/16.51 *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: 34.28/16.51 34.28/16.51 (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)))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (2) (new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 For Pair new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> H(wv3100, wv3000, anew_new_takeWhile1(wv3000, wv3100)) the following chains were created: 34.28/16.51 *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: 34.28/16.51 34.28/16.51 (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))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (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))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 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: 34.28/16.51 34.28/16.51 (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)))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 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: 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 (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)))) 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 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: 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (5) using rules (I), (II) which results in the following new constraint: 34.28/16.51 34.28/16.51 (8) (new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We solved constraint (6) using rules (I), (II). 34.28/16.51 *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: 34.28/16.51 34.28/16.51 (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))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (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))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 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: 34.28/16.51 34.28/16.51 (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)))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 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: 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 (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)))) 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 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: 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (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))))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 For Pair H(wv50, wv51, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv50, wv51, Zero, Zero) the following chains were created: 34.28/16.51 *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: 34.28/16.51 34.28/16.51 (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)) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (2) (H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 For Pair new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) the following chains were created: 34.28/16.51 *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: 34.28/16.51 34.28/16.51 (1) (new_takeWhile10(x45, x46)=new_takeWhile10(x47, x48) ==> new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (2) (new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 For Pair H(wv50, wv51, cons_new_takeWhile1(Zero, Succ(wv530))) -> new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) the following chains were created: 34.28/16.51 *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: 34.28/16.51 34.28/16.51 (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))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.51 34.28/16.51 (2) (H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 34.28/16.51 For Pair new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) the following chains were created: 34.28/16.51 *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: 34.28/16.52 34.28/16.52 (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)))))) 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 34.28/16.52 34.28/16.52 (2) (new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 To summarize, we get the following constraints P__>=_ for the following pairs. 34.28/16.52 34.28/16.52 *new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.52 34.28/16.52 *(new_takeWhile10(x2, x3)_>=_new_takeWhile(Pos(Succ(x2)), Pos(Succ(Succ(new_primPlusNat(x3)))))) 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 *new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> H(wv3100, wv3000, anew_new_takeWhile1(wv3000, wv3100)) 34.28/16.52 34.28/16.52 *(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))))) 34.28/16.52 34.28/16.52 34.28/16.52 *(new_takeWhile(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))_>=_H(Succ(Zero), Succ(Zero), anew_new_takeWhile1(Succ(Zero), Succ(Zero)))) 34.28/16.52 34.28/16.52 34.28/16.52 *(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))))) 34.28/16.52 34.28/16.52 34.28/16.52 *(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))))) 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 *H(wv50, wv51, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv50, wv51, Zero, Zero) 34.28/16.52 34.28/16.52 *(H(x37, x38, cons_new_takeWhile1(Zero, Zero))_>=_new_takeWhile1(x37, x38, Zero, Zero)) 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 *new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) 34.28/16.52 34.28/16.52 *(new_takeWhile1(x45, x46, Zero, Zero)_>=_new_takeWhile10(x45, x46)) 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 *H(wv50, wv51, cons_new_takeWhile1(Zero, Succ(wv530))) -> new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) 34.28/16.52 34.28/16.52 *(H(x74, x75, cons_new_takeWhile1(Zero, Succ(x76)))_>=_new_takeWhile1(x74, x75, Zero, Succ(x76))) 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 *new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.52 34.28/16.52 *(new_takeWhile1(x83, x84, Zero, Succ(x85))_>=_new_takeWhile(Pos(Succ(x83)), Pos(Succ(Succ(new_primPlusNat(x84)))))) 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 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. 34.28/16.52 34.28/16.52 Using the following integer polynomial ordering the resulting constraints can be solved 34.28/16.52 34.28/16.52 Polynomial interpretation [NONINF]: 34.28/16.52 34.28/16.52 POL(H(x_1, x_2, x_3)) = -1 + x_1 - x_2 - x_3 34.28/16.52 POL(Pos(x_1)) = x_1 34.28/16.52 POL(Succ(x_1)) = 1 + x_1 34.28/16.52 POL(Zero) = 0 34.28/16.52 POL(anew_new_takeWhile1(x_1, x_2)) = 0 34.28/16.52 POL(c) = -1 34.28/16.52 POL(cons_new_takeWhile1(x_1, x_2)) = 0 34.28/16.52 POL(new_new_takeWhile1(x_1, x_2)) = 0 34.28/16.52 POL(new_primPlusNat(x_1)) = x_1 34.28/16.52 POL(new_takeWhile(x_1, x_2)) = -1 + x_1 - x_2 34.28/16.52 POL(new_takeWhile1(x_1, x_2, x_3, x_4)) = -1 + x_1 - x_2 + x_3 34.28/16.52 POL(new_takeWhile10(x_1, x_2)) = -1 + x_1 - x_2 34.28/16.52 34.28/16.52 34.28/16.52 The following pairs are in P_>: 34.28/16.52 new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.52 new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.52 The following pairs are in P_bound: 34.28/16.52 new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> H(wv3100, wv3000, anew_new_takeWhile1(wv3000, wv3100)) 34.28/16.52 The following rules are usable: 34.28/16.52 Zero -> new_primPlusNat(Zero) 34.28/16.52 Succ(wv510) -> new_primPlusNat(Succ(wv510)) 34.28/16.52 new_new_takeWhile1(wv520, wv530) -> anew_new_takeWhile1(Succ(wv520), Succ(wv530)) 34.28/16.52 new_new_takeWhile1(wv520, wv530) -> new_new_takeWhile1(Succ(wv520), Succ(wv530)) 34.28/16.52 cons_new_takeWhile1(Zero, Zero) -> new_new_takeWhile1(Zero, Zero) 34.28/16.52 cons_new_takeWhile1(Zero, Succ(wv530)) -> new_new_takeWhile1(Zero, Succ(wv530)) 34.28/16.52 34.28/16.52 ---------------------------------------- 34.28/16.52 34.28/16.52 (32) 34.28/16.52 Complex Obligation (AND) 34.28/16.52 34.28/16.52 ---------------------------------------- 34.28/16.52 34.28/16.52 (33) 34.28/16.52 Obligation: 34.28/16.52 Q DP problem: 34.28/16.52 The TRS P consists of the following rules: 34.28/16.52 34.28/16.52 new_takeWhile(Pos(Succ(wv3100)), Pos(Succ(wv3000))) -> H(wv3100, wv3000, anew_new_takeWhile1(wv3000, wv3100)) 34.28/16.52 H(wv50, wv51, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv50, wv51, Zero, Zero) 34.28/16.52 new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) 34.28/16.52 H(wv50, wv51, cons_new_takeWhile1(Zero, Succ(wv530))) -> new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) 34.28/16.52 34.28/16.52 The TRS R consists of the following rules: 34.28/16.52 34.28/16.52 new_primPlusNat(Zero) -> Zero 34.28/16.52 new_primPlusNat(Succ(wv510)) -> Succ(wv510) 34.28/16.52 anew_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.52 new_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.52 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 34.28/16.52 new_new_takeWhile1(Zero, Succ(wv530)) -> cons_new_takeWhile1(Zero, Succ(wv530)) 34.28/16.52 34.28/16.52 The set Q consists of the following terms: 34.28/16.52 34.28/16.52 new_primPlusNat(Succ(x0)) 34.28/16.52 new_primPlusNat(Zero) 34.28/16.52 new_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.52 anew_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.52 new_new_takeWhile1(Zero, Zero) 34.28/16.52 new_new_takeWhile1(Zero, Succ(x0)) 34.28/16.52 34.28/16.52 We have to consider all minimal (P,Q,R)-chains. 34.28/16.52 ---------------------------------------- 34.28/16.52 34.28/16.52 (34) DependencyGraphProof (EQUIVALENT) 34.28/16.52 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 4 less nodes. 34.28/16.52 ---------------------------------------- 34.28/16.52 34.28/16.52 (35) 34.28/16.52 TRUE 34.28/16.52 34.28/16.52 ---------------------------------------- 34.28/16.52 34.28/16.52 (36) 34.28/16.52 Obligation: 34.28/16.52 Q DP problem: 34.28/16.52 The TRS P consists of the following rules: 34.28/16.52 34.28/16.52 new_takeWhile10(wv50, wv51) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.52 H(wv50, wv51, cons_new_takeWhile1(Zero, Zero)) -> new_takeWhile1(wv50, wv51, Zero, Zero) 34.28/16.52 new_takeWhile1(wv50, wv51, Zero, Zero) -> new_takeWhile10(wv50, wv51) 34.28/16.52 H(wv50, wv51, cons_new_takeWhile1(Zero, Succ(wv530))) -> new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) 34.28/16.52 new_takeWhile1(wv50, wv51, Zero, Succ(wv530)) -> new_takeWhile(Pos(Succ(wv50)), Pos(Succ(Succ(new_primPlusNat(wv51))))) 34.28/16.52 34.28/16.52 The TRS R consists of the following rules: 34.28/16.52 34.28/16.52 new_primPlusNat(Zero) -> Zero 34.28/16.52 new_primPlusNat(Succ(wv510)) -> Succ(wv510) 34.28/16.52 anew_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.52 new_new_takeWhile1(Succ(wv520), Succ(wv530)) -> new_new_takeWhile1(wv520, wv530) 34.28/16.52 new_new_takeWhile1(Zero, Zero) -> cons_new_takeWhile1(Zero, Zero) 34.28/16.52 new_new_takeWhile1(Zero, Succ(wv530)) -> cons_new_takeWhile1(Zero, Succ(wv530)) 34.28/16.52 34.28/16.52 The set Q consists of the following terms: 34.28/16.52 34.28/16.52 new_primPlusNat(Succ(x0)) 34.28/16.52 new_primPlusNat(Zero) 34.28/16.52 new_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.52 anew_new_takeWhile1(Succ(x0), Succ(x1)) 34.28/16.52 new_new_takeWhile1(Zero, Zero) 34.28/16.52 new_new_takeWhile1(Zero, Succ(x0)) 34.28/16.52 34.28/16.52 We have to consider all minimal (P,Q,R)-chains. 34.28/16.52 ---------------------------------------- 34.28/16.52 34.28/16.52 (37) DependencyGraphProof (EQUIVALENT) 34.28/16.52 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 5 less nodes. 34.28/16.52 ---------------------------------------- 34.28/16.52 34.28/16.52 (38) 34.28/16.52 TRUE 34.28/16.52 34.28/16.52 ---------------------------------------- 34.28/16.52 34.28/16.52 (39) 34.28/16.52 Obligation: 34.28/16.52 Q DP problem: 34.28/16.52 The TRS P consists of the following rules: 34.28/16.52 34.28/16.52 new_takeWhile1(wv50, wv51, Succ(wv520), Succ(wv530)) -> new_takeWhile1(wv50, wv51, wv520, wv530) 34.28/16.52 34.28/16.52 R is empty. 34.28/16.52 Q is empty. 34.28/16.52 We have to consider all minimal (P,Q,R)-chains. 34.28/16.52 ---------------------------------------- 34.28/16.52 34.28/16.52 (40) QDPSizeChangeProof (EQUIVALENT) 34.28/16.52 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. 34.28/16.52 34.28/16.52 From the DPs we obtained the following set of size-change graphs: 34.28/16.52 *new_takeWhile1(wv50, wv51, Succ(wv520), Succ(wv530)) -> new_takeWhile1(wv50, wv51, wv520, wv530) 34.28/16.52 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 34.28/16.52 34.28/16.52 34.28/16.52 ---------------------------------------- 34.28/16.52 34.28/16.52 (41) 34.28/16.52 YES 34.28/16.52 34.28/16.52 ---------------------------------------- 34.28/16.52 34.28/16.52 (42) 34.28/16.52 Obligation: 34.28/16.52 Q DP problem: 34.28/16.52 The TRS P consists of the following rules: 34.28/16.52 34.28/16.52 new_takeWhile(Pos(wv310), Neg(Succ(Succ(wv30000)))) -> new_takeWhile(Pos(wv310), Neg(Succ(wv30000))) 34.28/16.52 34.28/16.52 The TRS R consists of the following rules: 34.28/16.52 34.28/16.52 new_primPlusNat(Zero) -> Zero 34.28/16.52 new_primPlusNat(Succ(wv510)) -> Succ(wv510) 34.28/16.52 new_primPlusNat0 -> Succ(Zero) 34.28/16.52 34.28/16.52 The set Q consists of the following terms: 34.28/16.52 34.28/16.52 new_primPlusNat(Succ(x0)) 34.28/16.52 new_primPlusNat0 34.28/16.52 new_primPlusNat(Zero) 34.28/16.52 34.28/16.52 We have to consider all minimal (P,Q,R)-chains. 34.28/16.52 ---------------------------------------- 34.28/16.52 34.28/16.52 (43) QDPSizeChangeProof (EQUIVALENT) 34.28/16.52 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. 34.28/16.52 34.28/16.52 Order:EMB rules! 34.28/16.52 34.28/16.52 AFS: 34.28/16.52 Neg(x1) = x1 34.28/16.52 34.28/16.52 Pos(x1) = Pos 34.28/16.52 34.28/16.52 Succ(x1) = Succ(x1) 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 From the DPs we obtained the following set of size-change graphs: 34.28/16.52 *new_takeWhile(Pos(wv310), Neg(Succ(Succ(wv30000)))) -> new_takeWhile(Pos(wv310), Neg(Succ(wv30000))) (allowed arguments on rhs = {1, 2}) 34.28/16.52 The graph contains the following edges 1 >= 1, 2 > 2 34.28/16.52 34.28/16.52 34.28/16.52 34.28/16.52 We oriented the following set of usable rules [AAECC05,FROCOS05]. 34.28/16.52 none 34.28/16.52 34.28/16.52 ---------------------------------------- 34.28/16.52 34.28/16.52 (44) 34.28/16.52 YES 34.55/16.55 EOF