9.04/3.82 MAYBE 11.16/4.41 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 11.16/4.41 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 11.16/4.41 11.16/4.41 11.16/4.41 H-Termination with start terms of the given HASKELL could not be shown: 11.16/4.41 11.16/4.41 (0) HASKELL 11.16/4.41 (1) BR [EQUIVALENT, 0 ms] 11.16/4.41 (2) HASKELL 11.16/4.41 (3) COR [EQUIVALENT, 0 ms] 11.16/4.41 (4) HASKELL 11.16/4.41 (5) LetRed [EQUIVALENT, 0 ms] 11.16/4.41 (6) HASKELL 11.16/4.41 (7) NumRed [SOUND, 0 ms] 11.16/4.41 (8) HASKELL 11.16/4.41 (9) Narrow [COMPLETE, 0 ms] 11.16/4.41 (10) AND 11.16/4.41 (11) QDP 11.16/4.41 (12) PisEmptyProof [EQUIVALENT, 0 ms] 11.16/4.41 (13) YES 11.16/4.41 (14) QDP 11.16/4.41 (15) NonTerminationLoopProof [COMPLETE, 0 ms] 11.16/4.41 (16) NO 11.16/4.41 11.16/4.41 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (0) 11.16/4.41 Obligation: 11.16/4.41 mainModule Main 11.16/4.41 module Main where { 11.16/4.41 import qualified Prelude; 11.16/4.41 } 11.16/4.41 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (1) BR (EQUIVALENT) 11.16/4.41 Replaced joker patterns by fresh variables and removed binding patterns. 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (2) 11.16/4.41 Obligation: 11.16/4.41 mainModule Main 11.16/4.41 module Main where { 11.16/4.41 import qualified Prelude; 11.16/4.41 } 11.16/4.41 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (3) COR (EQUIVALENT) 11.16/4.41 Cond Reductions: 11.16/4.41 The following Function with conditions 11.16/4.41 "toEnum 0 = (); 11.16/4.41 " 11.16/4.41 is transformed to 11.16/4.41 "toEnum vz = toEnum1 vz; 11.16/4.41 " 11.16/4.41 "toEnum0 True vz = (); 11.16/4.41 " 11.16/4.41 "toEnum1 vz = toEnum0 (vz == 0) vz; 11.16/4.41 " 11.16/4.41 The following Function with conditions 11.16/4.41 "takeWhile p [] = []; 11.16/4.41 takeWhile p (x : xs)|p xx : takeWhile p xs|otherwise[]; 11.16/4.41 " 11.16/4.41 is transformed to 11.16/4.41 "takeWhile p [] = takeWhile3 p []; 11.16/4.41 takeWhile p (x : xs) = takeWhile2 p (x : xs); 11.16/4.41 " 11.16/4.41 "takeWhile1 p x xs True = x : takeWhile p xs; 11.16/4.41 takeWhile1 p x xs False = takeWhile0 p x xs otherwise; 11.16/4.41 " 11.16/4.41 "takeWhile0 p x xs True = []; 11.16/4.41 " 11.16/4.41 "takeWhile2 p (x : xs) = takeWhile1 p x xs (p x); 11.16/4.41 " 11.16/4.41 "takeWhile3 p [] = []; 11.16/4.41 takeWhile3 ww wx = takeWhile2 ww wx; 11.16/4.41 " 11.16/4.41 The following Function with conditions 11.16/4.41 "p |n' >= nflip (<=) m|otherwiseflip (>=) m; 11.16/4.41 " 11.16/4.41 is transformed to 11.16/4.41 "p = p2; 11.16/4.41 " 11.16/4.41 "p0 True = flip (>=) m; 11.16/4.41 " 11.16/4.41 "p1 True = flip (<=) m; 11.16/4.41 p1 False = p0 otherwise; 11.16/4.41 " 11.16/4.41 "p2 = p1 (n' >= n); 11.16/4.41 " 11.16/4.41 The following Function with conditions 11.16/4.41 "undefined |Falseundefined; 11.16/4.41 " 11.16/4.41 is transformed to 11.16/4.41 "undefined = undefined1; 11.16/4.41 " 11.16/4.41 "undefined0 True = undefined; 11.16/4.41 " 11.16/4.41 "undefined1 = undefined0 False; 11.16/4.41 " 11.16/4.41 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (4) 11.16/4.41 Obligation: 11.16/4.41 mainModule Main 11.16/4.41 module Main where { 11.16/4.41 import qualified Prelude; 11.16/4.41 } 11.16/4.41 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (5) LetRed (EQUIVALENT) 11.16/4.41 Let/Where Reductions: 11.16/4.41 The bindings of the following Let/Where expression 11.16/4.41 "takeWhile p (numericEnumFromThen n n') where { 11.16/4.41 p = p2; 11.16/4.41 ; 11.16/4.41 p0 True = flip (>=) m; 11.16/4.41 ; 11.16/4.41 p1 True = flip (<=) m; 11.16/4.41 p1 False = p0 otherwise; 11.16/4.41 ; 11.16/4.41 p2 = p1 (n' >= n); 11.16/4.41 } 11.16/4.41 " 11.16/4.41 are unpacked to the following functions on top level 11.16/4.41 "numericEnumFromThenToP wy wz xu = numericEnumFromThenToP2 wy wz xu; 11.16/4.41 " 11.16/4.41 "numericEnumFromThenToP2 wy wz xu = numericEnumFromThenToP1 wy wz xu (wy >= wz); 11.16/4.41 " 11.16/4.41 "numericEnumFromThenToP0 wy wz xu True = flip (>=) xu; 11.16/4.41 " 11.16/4.41 "numericEnumFromThenToP1 wy wz xu True = flip (<=) xu; 11.16/4.41 numericEnumFromThenToP1 wy wz xu False = numericEnumFromThenToP0 wy wz xu otherwise; 11.16/4.41 " 11.16/4.41 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (6) 11.16/4.41 Obligation: 11.16/4.41 mainModule Main 11.16/4.41 module Main where { 11.16/4.41 import qualified Prelude; 11.16/4.41 } 11.16/4.41 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (7) NumRed (SOUND) 11.16/4.41 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (8) 11.16/4.41 Obligation: 11.16/4.41 mainModule Main 11.16/4.41 module Main where { 11.16/4.41 import qualified Prelude; 11.16/4.41 } 11.16/4.41 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (9) Narrow (COMPLETE) 11.16/4.41 Haskell To QDPs 11.16/4.41 11.16/4.41 digraph dp_graph { 11.16/4.41 node [outthreshold=100, inthreshold=100];1[label="enumFromThenTo",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 11.16/4.41 3[label="enumFromThenTo xv3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 11.16/4.41 4[label="enumFromThenTo xv3 xv4",fontsize=16,color="grey",shape="box"];4 -> 5[label="",style="dashed", color="grey", weight=3]; 11.16/4.41 5[label="enumFromThenTo xv3 xv4 xv5",fontsize=16,color="black",shape="triangle"];5 -> 6[label="",style="solid", color="black", weight=3]; 11.16/4.41 6[label="map toEnum (enumFromThenTo (fromEnum xv3) (fromEnum xv4) (fromEnum xv5))",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 11.16/4.41 7[label="map toEnum (numericEnumFromThenTo (fromEnum xv3) (fromEnum xv4) (fromEnum xv5))",fontsize=16,color="black",shape="box"];7 -> 8[label="",style="solid", color="black", weight=3]; 11.16/4.41 8[label="map toEnum (takeWhile (numericEnumFromThenToP (fromEnum xv4) (fromEnum xv3) (fromEnum xv5)) (numericEnumFromThen (fromEnum xv3) (fromEnum xv4)))",fontsize=16,color="black",shape="box"];8 -> 9[label="",style="solid", color="black", weight=3]; 11.16/4.41 9[label="map toEnum (takeWhile (numericEnumFromThenToP (fromEnum xv4) (fromEnum xv3) (fromEnum xv5)) (iterate (fromEnum xv4 - fromEnum xv3 +) (fromEnum xv3)))",fontsize=16,color="black",shape="box"];9 -> 10[label="",style="solid", color="black", weight=3]; 11.16/4.41 10[label="map toEnum (takeWhile (numericEnumFromThenToP (fromEnum xv4) (fromEnum xv3) (fromEnum xv5)) (fromEnum xv3 : iterate (fromEnum xv4 - fromEnum xv3 +) (fromEnum xv4 - fromEnum xv3 + fromEnum xv3)))",fontsize=16,color="black",shape="box"];10 -> 11[label="",style="solid", color="black", weight=3]; 11.16/4.41 11[label="map toEnum (takeWhile2 (numericEnumFromThenToP (fromEnum xv4) (fromEnum xv3) (fromEnum xv5)) (fromEnum xv3 : iterate (fromEnum xv4 - fromEnum xv3 +) (fromEnum xv4 - fromEnum xv3 + fromEnum xv3)))",fontsize=16,color="black",shape="box"];11 -> 12[label="",style="solid", color="black", weight=3]; 11.16/4.41 12[label="map toEnum (takeWhile1 (numericEnumFromThenToP (fromEnum xv4) (fromEnum xv3) (fromEnum xv5)) (fromEnum xv3) (iterate (fromEnum xv4 - fromEnum xv3 +) (fromEnum xv4 - fromEnum xv3 + fromEnum xv3)) (numericEnumFromThenToP (fromEnum xv4) (fromEnum xv3) (fromEnum xv5) (fromEnum xv3)))",fontsize=16,color="black",shape="box"];12 -> 13[label="",style="solid", color="black", weight=3]; 11.16/4.41 13[label="map toEnum (takeWhile1 (numericEnumFromThenToP2 (fromEnum xv4) (fromEnum xv3) (fromEnum xv5)) (fromEnum xv3) (iterate (fromEnum xv4 - fromEnum xv3 +) (fromEnum xv4 - fromEnum xv3 + fromEnum xv3)) (numericEnumFromThenToP2 (fromEnum xv4) (fromEnum xv3) (fromEnum xv5) (fromEnum xv3)))",fontsize=16,color="black",shape="box"];13 -> 14[label="",style="solid", color="black", weight=3]; 11.16/4.41 14[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum xv4) (fromEnum xv3) (fromEnum xv5) (fromEnum xv4 >= fromEnum xv3)) (fromEnum xv3) (iterate (fromEnum xv4 - fromEnum xv3 +) (fromEnum xv4 - fromEnum xv3 + fromEnum xv3)) (numericEnumFromThenToP1 (fromEnum xv4) (fromEnum xv3) (fromEnum xv5) (fromEnum xv4 >= fromEnum xv3) (fromEnum xv3)))",fontsize=16,color="black",shape="box"];14 -> 15[label="",style="solid", color="black", weight=3]; 11.16/4.41 15[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum xv4) (fromEnum xv3) (fromEnum xv5) (compare (fromEnum xv4) (fromEnum xv3) /= LT)) (fromEnum xv3) (iterate (fromEnum xv4 - fromEnum xv3 +) (fromEnum xv4 - fromEnum xv3 + fromEnum xv3)) (numericEnumFromThenToP1 (fromEnum xv4) (fromEnum xv3) (fromEnum xv5) (compare (fromEnum xv4) (fromEnum xv3) /= LT) (fromEnum xv3)))",fontsize=16,color="black",shape="box"];15 -> 16[label="",style="solid", color="black", weight=3]; 11.16/4.41 16[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum xv4) (fromEnum xv3) (fromEnum xv5) (not (compare (fromEnum xv4) (fromEnum xv3) == LT))) (fromEnum xv3) (iterate (fromEnum xv4 - fromEnum xv3 +) (fromEnum xv4 - fromEnum xv3 + fromEnum xv3)) (numericEnumFromThenToP1 (fromEnum xv4) (fromEnum xv3) (fromEnum xv5) (not (compare (fromEnum xv4) (fromEnum xv3) == LT)) (fromEnum xv3)))",fontsize=16,color="black",shape="box"];16 -> 17[label="",style="solid", color="black", weight=3]; 11.16/4.41 17[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum xv4) (fromEnum xv3) (fromEnum xv5) (not (primCmpInt (fromEnum xv4) (fromEnum xv3) == LT))) (fromEnum xv3) (iterate (fromEnum xv4 - fromEnum xv3 +) (fromEnum xv4 - fromEnum xv3 + fromEnum xv3)) (numericEnumFromThenToP1 (fromEnum xv4) (fromEnum xv3) (fromEnum xv5) (not (primCmpInt (fromEnum xv4) (fromEnum xv3) == LT)) (fromEnum xv3)))",fontsize=16,color="burlywood",shape="box"];71[label="xv4/()",fontsize=10,color="white",style="solid",shape="box"];17 -> 71[label="",style="solid", color="burlywood", weight=9]; 11.16/4.41 71 -> 18[label="",style="solid", color="burlywood", weight=3]; 11.16/4.41 18[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (fromEnum ()) (fromEnum xv3) (fromEnum xv5) (not (primCmpInt (fromEnum ()) (fromEnum xv3) == LT))) (fromEnum xv3) (iterate (fromEnum () - fromEnum xv3 +) (fromEnum () - fromEnum xv3 + fromEnum xv3)) (numericEnumFromThenToP1 (fromEnum ()) (fromEnum xv3) (fromEnum xv5) (not (primCmpInt (fromEnum ()) (fromEnum xv3) == LT)) (fromEnum xv3)))",fontsize=16,color="black",shape="box"];18 -> 19[label="",style="solid", color="black", weight=3]; 11.16/4.41 19[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (Pos Zero) (fromEnum xv3) (fromEnum xv5) (not (primCmpInt (Pos Zero) (fromEnum xv3) == LT))) (fromEnum xv3) (iterate (Pos Zero - fromEnum xv3 +) (Pos Zero - fromEnum xv3 + fromEnum xv3)) (numericEnumFromThenToP1 (Pos Zero) (fromEnum xv3) (fromEnum xv5) (not (primCmpInt (Pos Zero) (fromEnum xv3) == LT)) (fromEnum xv3)))",fontsize=16,color="burlywood",shape="box"];72[label="xv3/()",fontsize=10,color="white",style="solid",shape="box"];19 -> 72[label="",style="solid", color="burlywood", weight=9]; 11.16/4.41 72 -> 20[label="",style="solid", color="burlywood", weight=3]; 11.16/4.41 20[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (Pos Zero) (fromEnum ()) (fromEnum xv5) (not (primCmpInt (Pos Zero) (fromEnum ()) == LT))) (fromEnum ()) (iterate (Pos Zero - fromEnum () +) (Pos Zero - fromEnum () + fromEnum ())) (numericEnumFromThenToP1 (Pos Zero) (fromEnum ()) (fromEnum xv5) (not (primCmpInt (Pos Zero) (fromEnum ()) == LT)) (fromEnum ())))",fontsize=16,color="black",shape="box"];20 -> 21[label="",style="solid", color="black", weight=3]; 11.16/4.41 21[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (Pos Zero) (Pos Zero) (fromEnum xv5) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (numericEnumFromThenToP1 (Pos Zero) (Pos Zero) (fromEnum xv5) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) (Pos Zero)))",fontsize=16,color="black",shape="box"];21 -> 22[label="",style="solid", color="black", weight=3]; 11.16/4.41 22[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (Pos Zero) (Pos Zero) (fromEnum xv5) (not (EQ == LT))) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (numericEnumFromThenToP1 (Pos Zero) (Pos Zero) (fromEnum xv5) (not (EQ == LT)) (Pos Zero)))",fontsize=16,color="black",shape="box"];22 -> 23[label="",style="solid", color="black", weight=3]; 11.16/4.41 23[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (Pos Zero) (Pos Zero) (fromEnum xv5) (not False)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (numericEnumFromThenToP1 (Pos Zero) (Pos Zero) (fromEnum xv5) (not False) (Pos Zero)))",fontsize=16,color="black",shape="box"];23 -> 24[label="",style="solid", color="black", weight=3]; 11.16/4.41 24[label="map toEnum (takeWhile1 (numericEnumFromThenToP1 (Pos Zero) (Pos Zero) (fromEnum xv5) True) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (numericEnumFromThenToP1 (Pos Zero) (Pos Zero) (fromEnum xv5) True (Pos Zero)))",fontsize=16,color="black",shape="box"];24 -> 25[label="",style="solid", color="black", weight=3]; 11.16/4.41 25[label="map toEnum (takeWhile1 (flip (<=) (fromEnum xv5)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (flip (<=) (fromEnum xv5) (Pos Zero)))",fontsize=16,color="black",shape="box"];25 -> 26[label="",style="solid", color="black", weight=3]; 11.16/4.41 26[label="map toEnum (takeWhile1 (flip (<=) (fromEnum xv5)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) ((<=) Pos Zero fromEnum xv5))",fontsize=16,color="black",shape="box"];26 -> 27[label="",style="solid", color="black", weight=3]; 11.16/4.41 27[label="map toEnum (takeWhile1 (flip (<=) (fromEnum xv5)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (compare (Pos Zero) (fromEnum xv5) /= GT))",fontsize=16,color="black",shape="box"];27 -> 28[label="",style="solid", color="black", weight=3]; 11.16/4.41 28[label="map toEnum (takeWhile1 (flip (<=) (fromEnum xv5)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (not (compare (Pos Zero) (fromEnum xv5) == GT)))",fontsize=16,color="black",shape="box"];28 -> 29[label="",style="solid", color="black", weight=3]; 11.16/4.41 29[label="map toEnum (takeWhile1 (flip (<=) (fromEnum xv5)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (not (primCmpInt (Pos Zero) (fromEnum xv5) == GT)))",fontsize=16,color="burlywood",shape="box"];73[label="xv5/()",fontsize=10,color="white",style="solid",shape="box"];29 -> 73[label="",style="solid", color="burlywood", weight=9]; 11.16/4.41 73 -> 30[label="",style="solid", color="burlywood", weight=3]; 11.16/4.41 30[label="map toEnum (takeWhile1 (flip (<=) (fromEnum ())) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (not (primCmpInt (Pos Zero) (fromEnum ()) == GT)))",fontsize=16,color="black",shape="box"];30 -> 31[label="",style="solid", color="black", weight=3]; 11.16/4.41 31[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == GT)))",fontsize=16,color="black",shape="box"];31 -> 32[label="",style="solid", color="black", weight=3]; 11.16/4.41 32[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (not (EQ == GT)))",fontsize=16,color="black",shape="box"];32 -> 33[label="",style="solid", color="black", weight=3]; 11.16/4.41 33[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) (not False))",fontsize=16,color="black",shape="box"];33 -> 34[label="",style="solid", color="black", weight=3]; 11.16/4.41 34[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)) True)",fontsize=16,color="black",shape="box"];34 -> 35[label="",style="solid", color="black", weight=3]; 11.16/4.41 35[label="map toEnum (Pos Zero : takeWhile (flip (<=) (Pos Zero)) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)))",fontsize=16,color="black",shape="box"];35 -> 36[label="",style="solid", color="black", weight=3]; 11.16/4.41 36[label="toEnum (Pos Zero) : map toEnum (takeWhile (flip (<=) (Pos Zero)) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)))",fontsize=16,color="green",shape="box"];36 -> 37[label="",style="dashed", color="green", weight=3]; 11.16/4.41 36 -> 38[label="",style="dashed", color="green", weight=3]; 11.16/4.41 37[label="toEnum (Pos Zero)",fontsize=16,color="black",shape="triangle"];37 -> 39[label="",style="solid", color="black", weight=3]; 11.16/4.41 38[label="map toEnum (takeWhile (flip (<=) (Pos Zero)) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + Pos Zero)))",fontsize=16,color="black",shape="box"];38 -> 40[label="",style="solid", color="black", weight=3]; 11.16/4.41 39[label="toEnum1 (Pos Zero)",fontsize=16,color="black",shape="box"];39 -> 41[label="",style="solid", color="black", weight=3]; 11.16/4.41 40[label="map toEnum (takeWhile (flip (<=) (Pos Zero)) (Pos Zero - Pos Zero + Pos Zero : iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))))",fontsize=16,color="black",shape="box"];40 -> 42[label="",style="solid", color="black", weight=3]; 11.16/4.41 41[label="toEnum0 (Pos Zero == Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];41 -> 43[label="",style="solid", color="black", weight=3]; 11.16/4.41 42[label="map toEnum (takeWhile2 (flip (<=) (Pos Zero)) (Pos Zero - Pos Zero + Pos Zero : iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))))",fontsize=16,color="black",shape="box"];42 -> 44[label="",style="solid", color="black", weight=3]; 11.16/4.41 43[label="toEnum0 (primEqInt (Pos Zero) (Pos Zero)) (Pos Zero)",fontsize=16,color="black",shape="box"];43 -> 45[label="",style="solid", color="black", weight=3]; 11.16/4.41 44[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero - Pos Zero + Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))) (flip (<=) (Pos Zero) (Pos Zero - Pos Zero + Pos Zero)))",fontsize=16,color="black",shape="box"];44 -> 46[label="",style="solid", color="black", weight=3]; 11.16/4.41 45[label="toEnum0 True (Pos Zero)",fontsize=16,color="black",shape="box"];45 -> 47[label="",style="solid", color="black", weight=3]; 11.16/4.41 46[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero - Pos Zero + Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))) ((<=) Pos Zero - Pos Zero + Pos Zero Pos Zero))",fontsize=16,color="black",shape="box"];46 -> 48[label="",style="solid", color="black", weight=3]; 11.16/4.41 47[label="()",fontsize=16,color="green",shape="box"];48[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero - Pos Zero + Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))) (compare (Pos Zero - Pos Zero + Pos Zero) (Pos Zero) /= GT))",fontsize=16,color="black",shape="box"];48 -> 49[label="",style="solid", color="black", weight=3]; 11.16/4.41 49[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero - Pos Zero + Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))) (not (compare (Pos Zero - Pos Zero + Pos Zero) (Pos Zero) == GT)))",fontsize=16,color="black",shape="box"];49 -> 50[label="",style="solid", color="black", weight=3]; 11.16/4.41 50[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero - Pos Zero + Pos Zero) (iterate (Pos Zero - Pos Zero +) (Pos Zero - Pos Zero + (Pos Zero - Pos Zero + Pos Zero))) (not (primCmpInt (Pos Zero - Pos Zero + Pos Zero) (Pos Zero) == GT)))",fontsize=16,color="black",shape="box"];50 -> 51[label="",style="solid", color="black", weight=3]; 11.16/4.41 51[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (primPlusInt (Pos Zero - Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero - Pos Zero)) (primPlusInt (Pos Zero - Pos Zero) (primPlusInt (Pos Zero - Pos Zero) (Pos Zero)))) (not (primCmpInt (primPlusInt (Pos Zero - Pos Zero) (Pos Zero)) (Pos Zero) == GT)))",fontsize=16,color="black",shape="box"];51 -> 52[label="",style="solid", color="black", weight=3]; 11.16/4.41 52[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (primPlusInt (primMinusInt (Pos Zero) (Pos Zero)) (Pos Zero)) (iterate (primPlusInt (primMinusInt (Pos Zero) (Pos Zero))) (primPlusInt (primMinusInt (Pos Zero) (Pos Zero)) (primPlusInt (primMinusInt (Pos Zero) (Pos Zero)) (Pos Zero)))) (not (primCmpInt (primPlusInt (primMinusInt (Pos Zero) (Pos Zero)) (Pos Zero)) (Pos Zero) == GT)))",fontsize=16,color="black",shape="box"];52 -> 53[label="",style="solid", color="black", weight=3]; 11.16/4.41 53[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (primPlusInt (primMinusNat Zero Zero) (Pos Zero)) (iterate (primPlusInt (primMinusNat Zero Zero)) (primPlusInt (primMinusNat Zero Zero) (primPlusInt (primMinusNat Zero Zero) (Pos Zero)))) (not (primCmpInt (primPlusInt (primMinusNat Zero Zero) (Pos Zero)) (Pos Zero) == GT)))",fontsize=16,color="black",shape="box"];53 -> 54[label="",style="solid", color="black", weight=3]; 11.16/4.41 54[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))) (not (primCmpInt (primPlusInt (Pos Zero) (Pos Zero)) (Pos Zero) == GT)))",fontsize=16,color="black",shape="triangle"];54 -> 55[label="",style="solid", color="black", weight=3]; 11.16/4.41 55[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos (primPlusNat Zero Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos (primPlusNat Zero Zero)))) (not (primCmpInt (Pos (primPlusNat Zero Zero)) (Pos Zero) == GT)))",fontsize=16,color="black",shape="box"];55 -> 56[label="",style="solid", color="black", weight=3]; 11.16/4.41 56[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))) (not (primCmpInt (Pos Zero) (Pos Zero) == GT)))",fontsize=16,color="black",shape="box"];56 -> 57[label="",style="solid", color="black", weight=3]; 11.16/4.41 57[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))) (not (EQ == GT)))",fontsize=16,color="black",shape="box"];57 -> 58[label="",style="solid", color="black", weight=3]; 11.16/4.41 58[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))) (not False))",fontsize=16,color="black",shape="box"];58 -> 59[label="",style="solid", color="black", weight=3]; 11.16/4.41 59[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (Pos Zero) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))) True)",fontsize=16,color="black",shape="box"];59 -> 60[label="",style="solid", color="black", weight=3]; 11.16/4.41 60[label="map toEnum (Pos Zero : takeWhile (flip (<=) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))))",fontsize=16,color="black",shape="box"];60 -> 61[label="",style="solid", color="black", weight=3]; 11.16/4.41 61[label="toEnum (Pos Zero) : map toEnum (takeWhile (flip (<=) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))))",fontsize=16,color="green",shape="box"];61 -> 62[label="",style="dashed", color="green", weight=3]; 11.16/4.41 61 -> 63[label="",style="dashed", color="green", weight=3]; 11.16/4.41 62 -> 37[label="",style="dashed", color="red", weight=0]; 11.16/4.41 62[label="toEnum (Pos Zero)",fontsize=16,color="magenta"];63[label="map toEnum (takeWhile (flip (<=) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero))))",fontsize=16,color="black",shape="box"];63 -> 64[label="",style="solid", color="black", weight=3]; 11.16/4.41 64[label="map toEnum (takeWhile (flip (<=) (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero) : iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))))",fontsize=16,color="black",shape="box"];64 -> 65[label="",style="solid", color="black", weight=3]; 11.16/4.41 65[label="map toEnum (takeWhile2 (flip (<=) (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero) : iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))))",fontsize=16,color="black",shape="box"];65 -> 66[label="",style="solid", color="black", weight=3]; 11.16/4.41 66[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))) (flip (<=) (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero))))",fontsize=16,color="black",shape="box"];66 -> 67[label="",style="solid", color="black", weight=3]; 11.16/4.41 67[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))) ((<=) primPlusInt (Pos Zero) (Pos Zero) Pos Zero))",fontsize=16,color="black",shape="box"];67 -> 68[label="",style="solid", color="black", weight=3]; 11.16/4.41 68[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))) (compare (primPlusInt (Pos Zero) (Pos Zero)) (Pos Zero) /= GT))",fontsize=16,color="black",shape="box"];68 -> 69[label="",style="solid", color="black", weight=3]; 11.16/4.41 69[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))) (not (compare (primPlusInt (Pos Zero) (Pos Zero)) (Pos Zero) == GT)))",fontsize=16,color="black",shape="box"];69 -> 70[label="",style="solid", color="black", weight=3]; 11.16/4.41 70 -> 54[label="",style="dashed", color="red", weight=0]; 11.16/4.41 70[label="map toEnum (takeWhile1 (flip (<=) (Pos Zero)) (primPlusInt (Pos Zero) (Pos Zero)) (iterate (primPlusInt (Pos Zero)) (primPlusInt (Pos Zero) (primPlusInt (Pos Zero) (Pos Zero)))) (not (primCmpInt (primPlusInt (Pos Zero) (Pos Zero)) (Pos Zero) == GT)))",fontsize=16,color="magenta"];} 11.16/4.41 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (10) 11.16/4.41 Complex Obligation (AND) 11.16/4.41 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (11) 11.16/4.41 Obligation: 11.16/4.41 Q DP problem: 11.16/4.41 P is empty. 11.16/4.41 R is empty. 11.16/4.41 Q is empty. 11.16/4.41 We have to consider all (P,Q,R)-chains. 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (12) PisEmptyProof (EQUIVALENT) 11.16/4.41 The TRS P is empty. Hence, there is no (P,Q,R) chain. 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (13) 11.16/4.41 YES 11.16/4.41 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (14) 11.16/4.41 Obligation: 11.16/4.41 Q DP problem: 11.16/4.41 The TRS P consists of the following rules: 11.16/4.41 11.16/4.41 new_map([]) -> new_map([]) 11.16/4.41 11.16/4.41 R is empty. 11.16/4.41 Q is empty. 11.16/4.41 We have to consider all (P,Q,R)-chains. 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (15) NonTerminationLoopProof (COMPLETE) 11.16/4.41 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 11.16/4.41 Found a loop by semiunifying a rule from P directly. 11.16/4.41 11.16/4.41 s = new_map([]) evaluates to t =new_map([]) 11.16/4.41 11.16/4.41 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 11.16/4.41 * Matcher: [ ] 11.16/4.41 * Semiunifier: [ ] 11.16/4.41 11.16/4.41 -------------------------------------------------------------------------------- 11.16/4.41 Rewriting sequence 11.16/4.41 11.16/4.41 The DP semiunifies directly so there is only one rewrite step from new_map([]) to new_map([]). 11.16/4.41 11.16/4.41 11.16/4.41 11.16/4.41 11.16/4.41 ---------------------------------------- 11.16/4.41 11.16/4.41 (16) 11.16/4.41 NO 11.35/4.46 EOF