11.40/5.66 YES 13.49/6.25 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 13.49/6.25 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 13.49/6.25 13.49/6.25 13.49/6.25 H-Termination with start terms of the given HASKELL could be proven: 13.49/6.25 13.49/6.25 (0) HASKELL 13.49/6.25 (1) LR [EQUIVALENT, 0 ms] 13.49/6.25 (2) HASKELL 13.49/6.25 (3) BR [EQUIVALENT, 0 ms] 13.49/6.25 (4) HASKELL 13.49/6.25 (5) COR [EQUIVALENT, 0 ms] 13.49/6.25 (6) HASKELL 13.49/6.25 (7) Narrow [SOUND, 0 ms] 13.49/6.25 (8) AND 13.49/6.25 (9) QDP 13.49/6.25 (10) TransformationProof [EQUIVALENT, 0 ms] 13.49/6.25 (11) QDP 13.49/6.25 (12) TransformationProof [EQUIVALENT, 0 ms] 13.49/6.25 (13) QDP 13.49/6.25 (14) QDPSizeChangeProof [EQUIVALENT, 0 ms] 13.49/6.25 (15) YES 13.49/6.25 (16) QDP 13.49/6.25 (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] 13.49/6.25 (18) YES 13.49/6.25 (19) QDP 13.49/6.25 (20) TransformationProof [EQUIVALENT, 0 ms] 13.49/6.25 (21) QDP 13.49/6.25 (22) TransformationProof [EQUIVALENT, 0 ms] 13.49/6.25 (23) QDP 13.49/6.25 (24) QDPSizeChangeProof [EQUIVALENT, 0 ms] 13.49/6.25 (25) YES 13.49/6.25 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (0) 13.49/6.25 Obligation: 13.49/6.25 mainModule Main 13.49/6.25 module FiniteMap where { 13.49/6.25 import qualified Main; 13.49/6.25 import qualified Maybe; 13.49/6.25 import qualified Prelude; 13.49/6.25 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 13.49/6.25 13.49/6.25 instance (Eq a, Eq b) => Eq FiniteMap a b where { 13.49/6.25 } 13.49/6.25 fmToList_GE :: Ord b => FiniteMap b a -> b -> [(b,a)]; 13.49/6.25 fmToList_GE fm fr = foldFM_GE (\key elt rest ->(key,elt) : rest) [] fr fm; 13.49/6.25 13.49/6.25 foldFM_GE :: Ord b => (b -> a -> c -> c) -> c -> b -> FiniteMap b a -> c; 13.49/6.25 foldFM_GE k z fr EmptyFM = z; 13.49/6.25 foldFM_GE k z fr (Branch key elt _ fm_l fm_r) | key >= fr = foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l 13.49/6.25 | otherwise = foldFM_GE k z fr fm_r; 13.49/6.25 13.49/6.25 } 13.49/6.25 module Maybe where { 13.49/6.25 import qualified FiniteMap; 13.49/6.25 import qualified Main; 13.49/6.25 import qualified Prelude; 13.49/6.25 } 13.49/6.25 module Main where { 13.49/6.25 import qualified FiniteMap; 13.49/6.25 import qualified Maybe; 13.49/6.25 import qualified Prelude; 13.49/6.25 } 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (1) LR (EQUIVALENT) 13.49/6.25 Lambda Reductions: 13.49/6.25 The following Lambda expression 13.49/6.25 "\keyeltrest->(key,elt) : rest" 13.49/6.25 is transformed to 13.49/6.25 "fmToList_GE0 key elt rest = (key,elt) : rest; 13.49/6.25 " 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (2) 13.49/6.25 Obligation: 13.49/6.25 mainModule Main 13.49/6.25 module FiniteMap where { 13.49/6.25 import qualified Main; 13.49/6.25 import qualified Maybe; 13.49/6.25 import qualified Prelude; 13.49/6.25 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 13.49/6.25 13.49/6.25 instance (Eq a, Eq b) => Eq FiniteMap a b where { 13.49/6.25 } 13.49/6.25 fmToList_GE :: Ord a => FiniteMap a b -> a -> [(a,b)]; 13.49/6.25 fmToList_GE fm fr = foldFM_GE fmToList_GE0 [] fr fm; 13.49/6.25 13.49/6.25 fmToList_GE0 key elt rest = (key,elt) : rest; 13.49/6.25 13.49/6.25 foldFM_GE :: Ord b => (b -> a -> c -> c) -> c -> b -> FiniteMap b a -> c; 13.49/6.25 foldFM_GE k z fr EmptyFM = z; 13.49/6.25 foldFM_GE k z fr (Branch key elt _ fm_l fm_r) | key >= fr = foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l 13.49/6.25 | otherwise = foldFM_GE k z fr fm_r; 13.49/6.25 13.49/6.25 } 13.49/6.25 module Maybe where { 13.49/6.25 import qualified FiniteMap; 13.49/6.25 import qualified Main; 13.49/6.25 import qualified Prelude; 13.49/6.25 } 13.49/6.25 module Main where { 13.49/6.25 import qualified FiniteMap; 13.49/6.25 import qualified Maybe; 13.49/6.25 import qualified Prelude; 13.49/6.25 } 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (3) BR (EQUIVALENT) 13.49/6.25 Replaced joker patterns by fresh variables and removed binding patterns. 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (4) 13.49/6.25 Obligation: 13.49/6.25 mainModule Main 13.49/6.25 module FiniteMap where { 13.49/6.25 import qualified Main; 13.49/6.25 import qualified Maybe; 13.49/6.25 import qualified Prelude; 13.49/6.25 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 13.49/6.25 13.49/6.25 instance (Eq a, Eq b) => Eq FiniteMap a b where { 13.49/6.25 } 13.49/6.25 fmToList_GE :: Ord b => FiniteMap b a -> b -> [(b,a)]; 13.49/6.25 fmToList_GE fm fr = foldFM_GE fmToList_GE0 [] fr fm; 13.49/6.25 13.49/6.25 fmToList_GE0 key elt rest = (key,elt) : rest; 13.49/6.25 13.49/6.25 foldFM_GE :: Ord b => (b -> a -> c -> c) -> c -> b -> FiniteMap b a -> c; 13.49/6.25 foldFM_GE k z fr EmptyFM = z; 13.49/6.25 foldFM_GE k z fr (Branch key elt vy fm_l fm_r) | key >= fr = foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l 13.49/6.25 | otherwise = foldFM_GE k z fr fm_r; 13.49/6.25 13.49/6.25 } 13.49/6.25 module Maybe where { 13.49/6.25 import qualified FiniteMap; 13.49/6.25 import qualified Main; 13.49/6.25 import qualified Prelude; 13.49/6.25 } 13.49/6.25 module Main where { 13.49/6.25 import qualified FiniteMap; 13.49/6.25 import qualified Maybe; 13.49/6.25 import qualified Prelude; 13.49/6.25 } 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (5) COR (EQUIVALENT) 13.49/6.25 Cond Reductions: 13.49/6.25 The following Function with conditions 13.49/6.25 "undefined |Falseundefined; 13.49/6.25 " 13.49/6.25 is transformed to 13.49/6.25 "undefined = undefined1; 13.49/6.25 " 13.49/6.25 "undefined0 True = undefined; 13.49/6.25 " 13.49/6.25 "undefined1 = undefined0 False; 13.49/6.25 " 13.49/6.25 The following Function with conditions 13.49/6.25 "foldFM_GE k z fr EmptyFM = z; 13.49/6.25 foldFM_GE k z fr (Branch key elt vy fm_l fm_r)|key >= frfoldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l|otherwisefoldFM_GE k z fr fm_r; 13.49/6.25 " 13.49/6.25 is transformed to 13.49/6.25 "foldFM_GE k z fr EmptyFM = foldFM_GE3 k z fr EmptyFM; 13.49/6.25 foldFM_GE k z fr (Branch key elt vy fm_l fm_r) = foldFM_GE2 k z fr (Branch key elt vy fm_l fm_r); 13.49/6.25 " 13.49/6.25 "foldFM_GE0 k z fr key elt vy fm_l fm_r True = foldFM_GE k z fr fm_r; 13.49/6.25 " 13.49/6.25 "foldFM_GE1 k z fr key elt vy fm_l fm_r True = foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l; 13.49/6.25 foldFM_GE1 k z fr key elt vy fm_l fm_r False = foldFM_GE0 k z fr key elt vy fm_l fm_r otherwise; 13.49/6.25 " 13.49/6.25 "foldFM_GE2 k z fr (Branch key elt vy fm_l fm_r) = foldFM_GE1 k z fr key elt vy fm_l fm_r (key >= fr); 13.49/6.25 " 13.49/6.25 "foldFM_GE3 k z fr EmptyFM = z; 13.49/6.25 foldFM_GE3 wv ww wx wy = foldFM_GE2 wv ww wx wy; 13.49/6.25 " 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (6) 13.49/6.25 Obligation: 13.49/6.25 mainModule Main 13.49/6.25 module FiniteMap where { 13.49/6.25 import qualified Main; 13.49/6.25 import qualified Maybe; 13.49/6.25 import qualified Prelude; 13.49/6.25 data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) ; 13.49/6.25 13.49/6.25 instance (Eq a, Eq b) => Eq FiniteMap a b where { 13.49/6.25 } 13.49/6.25 fmToList_GE :: Ord a => FiniteMap a b -> a -> [(a,b)]; 13.49/6.25 fmToList_GE fm fr = foldFM_GE fmToList_GE0 [] fr fm; 13.49/6.25 13.49/6.25 fmToList_GE0 key elt rest = (key,elt) : rest; 13.49/6.25 13.49/6.25 foldFM_GE :: Ord c => (c -> b -> a -> a) -> a -> c -> FiniteMap c b -> a; 13.49/6.25 foldFM_GE k z fr EmptyFM = foldFM_GE3 k z fr EmptyFM; 13.49/6.25 foldFM_GE k z fr (Branch key elt vy fm_l fm_r) = foldFM_GE2 k z fr (Branch key elt vy fm_l fm_r); 13.49/6.25 13.49/6.25 foldFM_GE0 k z fr key elt vy fm_l fm_r True = foldFM_GE k z fr fm_r; 13.49/6.25 13.49/6.25 foldFM_GE1 k z fr key elt vy fm_l fm_r True = foldFM_GE k (k key elt (foldFM_GE k z fr fm_r)) fr fm_l; 13.49/6.25 foldFM_GE1 k z fr key elt vy fm_l fm_r False = foldFM_GE0 k z fr key elt vy fm_l fm_r otherwise; 13.49/6.25 13.49/6.25 foldFM_GE2 k z fr (Branch key elt vy fm_l fm_r) = foldFM_GE1 k z fr key elt vy fm_l fm_r (key >= fr); 13.49/6.25 13.49/6.25 foldFM_GE3 k z fr EmptyFM = z; 13.49/6.25 foldFM_GE3 wv ww wx wy = foldFM_GE2 wv ww wx wy; 13.49/6.25 13.49/6.25 } 13.49/6.25 module Maybe where { 13.49/6.25 import qualified FiniteMap; 13.49/6.25 import qualified Main; 13.49/6.25 import qualified Prelude; 13.49/6.25 } 13.49/6.25 module Main where { 13.49/6.25 import qualified FiniteMap; 13.49/6.25 import qualified Maybe; 13.49/6.25 import qualified Prelude; 13.49/6.25 } 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (7) Narrow (SOUND) 13.49/6.25 Haskell To QDPs 13.49/6.25 13.49/6.25 digraph dp_graph { 13.49/6.25 node [outthreshold=100, inthreshold=100];1[label="FiniteMap.fmToList_GE",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 13.49/6.25 3[label="FiniteMap.fmToList_GE wz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 13.49/6.25 4[label="FiniteMap.fmToList_GE wz3 wz4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 13.49/6.25 5[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 [] wz4 wz3",fontsize=16,color="burlywood",shape="triangle"];1087[label="wz3/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];5 -> 1087[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1087 -> 6[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1088[label="wz3/FiniteMap.Branch wz30 wz31 wz32 wz33 wz34",fontsize=10,color="white",style="solid",shape="box"];5 -> 1088[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1088 -> 7[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 6[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 [] wz4 FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 13.49/6.25 7[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 [] wz4 (FiniteMap.Branch wz30 wz31 wz32 wz33 wz34)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 13.49/6.25 8[label="FiniteMap.foldFM_GE3 FiniteMap.fmToList_GE0 [] wz4 FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 13.49/6.25 9[label="FiniteMap.foldFM_GE2 FiniteMap.fmToList_GE0 [] wz4 (FiniteMap.Branch wz30 wz31 wz32 wz33 wz34)",fontsize=16,color="black",shape="box"];9 -> 11[label="",style="solid", color="black", weight=3]; 13.49/6.25 10[label="[]",fontsize=16,color="green",shape="box"];11[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] wz4 wz30 wz31 wz32 wz33 wz34 (wz30 >= wz4)",fontsize=16,color="black",shape="box"];11 -> 12[label="",style="solid", color="black", weight=3]; 13.49/6.25 12[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] wz4 wz30 wz31 wz32 wz33 wz34 (compare wz30 wz4 /= LT)",fontsize=16,color="black",shape="box"];12 -> 13[label="",style="solid", color="black", weight=3]; 13.49/6.25 13[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] wz4 wz30 wz31 wz32 wz33 wz34 (not (compare wz30 wz4 == LT))",fontsize=16,color="black",shape="box"];13 -> 14[label="",style="solid", color="black", weight=3]; 13.49/6.25 14[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] wz4 wz30 wz31 wz32 wz33 wz34 (not (primCmpChar wz30 wz4 == LT))",fontsize=16,color="burlywood",shape="box"];1089[label="wz30/Char wz300",fontsize=10,color="white",style="solid",shape="box"];14 -> 1089[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1089 -> 15[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 15[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] wz4 (Char wz300) wz31 wz32 wz33 wz34 (not (primCmpChar (Char wz300) wz4 == LT))",fontsize=16,color="burlywood",shape="box"];1090[label="wz4/Char wz40",fontsize=10,color="white",style="solid",shape="box"];15 -> 1090[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1090 -> 16[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 16[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char wz40) (Char wz300) wz31 wz32 wz33 wz34 (not (primCmpChar (Char wz300) (Char wz40) == LT))",fontsize=16,color="black",shape="box"];16 -> 17[label="",style="solid", color="black", weight=3]; 13.49/6.25 17[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char wz40) (Char wz300) wz31 wz32 wz33 wz34 (not (primCmpNat wz300 wz40 == LT))",fontsize=16,color="burlywood",shape="box"];1091[label="wz300/Succ wz3000",fontsize=10,color="white",style="solid",shape="box"];17 -> 1091[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1091 -> 18[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1092[label="wz300/Zero",fontsize=10,color="white",style="solid",shape="box"];17 -> 1092[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1092 -> 19[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 18[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char wz40) (Char (Succ wz3000)) wz31 wz32 wz33 wz34 (not (primCmpNat (Succ wz3000) wz40 == LT))",fontsize=16,color="burlywood",shape="box"];1093[label="wz40/Succ wz400",fontsize=10,color="white",style="solid",shape="box"];18 -> 1093[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1093 -> 20[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1094[label="wz40/Zero",fontsize=10,color="white",style="solid",shape="box"];18 -> 1094[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1094 -> 21[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 19[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char wz40) (Char Zero) wz31 wz32 wz33 wz34 (not (primCmpNat Zero wz40 == LT))",fontsize=16,color="burlywood",shape="box"];1095[label="wz40/Succ wz400",fontsize=10,color="white",style="solid",shape="box"];19 -> 1095[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1095 -> 22[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1096[label="wz40/Zero",fontsize=10,color="white",style="solid",shape="box"];19 -> 1096[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1096 -> 23[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 20[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char (Succ wz400)) (Char (Succ wz3000)) wz31 wz32 wz33 wz34 (not (primCmpNat (Succ wz3000) (Succ wz400) == LT))",fontsize=16,color="black",shape="box"];20 -> 24[label="",style="solid", color="black", weight=3]; 13.49/6.25 21[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char Zero) (Char (Succ wz3000)) wz31 wz32 wz33 wz34 (not (primCmpNat (Succ wz3000) Zero == LT))",fontsize=16,color="black",shape="box"];21 -> 25[label="",style="solid", color="black", weight=3]; 13.49/6.25 22[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char (Succ wz400)) (Char Zero) wz31 wz32 wz33 wz34 (not (primCmpNat Zero (Succ wz400) == LT))",fontsize=16,color="black",shape="box"];22 -> 26[label="",style="solid", color="black", weight=3]; 13.49/6.25 23[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char Zero) (Char Zero) wz31 wz32 wz33 wz34 (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];23 -> 27[label="",style="solid", color="black", weight=3]; 13.49/6.25 24 -> 963[label="",style="dashed", color="red", weight=0]; 13.49/6.25 24[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char (Succ wz400)) (Char (Succ wz3000)) wz31 wz32 wz33 wz34 (not (primCmpNat wz3000 wz400 == LT))",fontsize=16,color="magenta"];24 -> 964[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 24 -> 965[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 24 -> 966[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 24 -> 967[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 24 -> 968[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 24 -> 969[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 24 -> 970[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 24 -> 971[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 24 -> 972[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 25[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char Zero) (Char (Succ wz3000)) wz31 wz32 wz33 wz34 (not (GT == LT))",fontsize=16,color="black",shape="box"];25 -> 30[label="",style="solid", color="black", weight=3]; 13.49/6.25 26[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char (Succ wz400)) (Char Zero) wz31 wz32 wz33 wz34 (not (LT == LT))",fontsize=16,color="black",shape="box"];26 -> 31[label="",style="solid", color="black", weight=3]; 13.49/6.25 27[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char Zero) (Char Zero) wz31 wz32 wz33 wz34 (not (EQ == LT))",fontsize=16,color="black",shape="box"];27 -> 32[label="",style="solid", color="black", weight=3]; 13.49/6.25 964[label="wz400",fontsize=16,color="green",shape="box"];965[label="wz3000",fontsize=16,color="green",shape="box"];966[label="[]",fontsize=16,color="green",shape="box"];967[label="wz34",fontsize=16,color="green",shape="box"];968[label="wz33",fontsize=16,color="green",shape="box"];969[label="wz400",fontsize=16,color="green",shape="box"];970[label="wz32",fontsize=16,color="green",shape="box"];971[label="wz31",fontsize=16,color="green",shape="box"];972[label="wz3000",fontsize=16,color="green",shape="box"];963[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not (primCmpNat wz110 wz111 == LT))",fontsize=16,color="burlywood",shape="triangle"];1097[label="wz110/Succ wz1100",fontsize=10,color="white",style="solid",shape="box"];963 -> 1097[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1097 -> 1054[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1098[label="wz110/Zero",fontsize=10,color="white",style="solid",shape="box"];963 -> 1098[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1098 -> 1055[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 30[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char Zero) (Char (Succ wz3000)) wz31 wz32 wz33 wz34 (not False)",fontsize=16,color="black",shape="box"];30 -> 37[label="",style="solid", color="black", weight=3]; 13.49/6.25 31[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char (Succ wz400)) (Char Zero) wz31 wz32 wz33 wz34 (not True)",fontsize=16,color="black",shape="box"];31 -> 38[label="",style="solid", color="black", weight=3]; 13.49/6.25 32[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char Zero) (Char Zero) wz31 wz32 wz33 wz34 (not False)",fontsize=16,color="black",shape="box"];32 -> 39[label="",style="solid", color="black", weight=3]; 13.49/6.25 1054[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not (primCmpNat (Succ wz1100) wz111 == LT))",fontsize=16,color="burlywood",shape="box"];1099[label="wz111/Succ wz1110",fontsize=10,color="white",style="solid",shape="box"];1054 -> 1099[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1099 -> 1056[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1100[label="wz111/Zero",fontsize=10,color="white",style="solid",shape="box"];1054 -> 1100[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1100 -> 1057[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1055[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not (primCmpNat Zero wz111 == LT))",fontsize=16,color="burlywood",shape="box"];1101[label="wz111/Succ wz1110",fontsize=10,color="white",style="solid",shape="box"];1055 -> 1101[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1101 -> 1058[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1102[label="wz111/Zero",fontsize=10,color="white",style="solid",shape="box"];1055 -> 1102[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1102 -> 1059[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 37[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char Zero) (Char (Succ wz3000)) wz31 wz32 wz33 wz34 True",fontsize=16,color="black",shape="box"];37 -> 44[label="",style="solid", color="black", weight=3]; 13.49/6.25 38[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char (Succ wz400)) (Char Zero) wz31 wz32 wz33 wz34 False",fontsize=16,color="black",shape="box"];38 -> 45[label="",style="solid", color="black", weight=3]; 13.49/6.25 39[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 [] (Char Zero) (Char Zero) wz31 wz32 wz33 wz34 True",fontsize=16,color="black",shape="box"];39 -> 46[label="",style="solid", color="black", weight=3]; 13.49/6.25 1056[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not (primCmpNat (Succ wz1100) (Succ wz1110) == LT))",fontsize=16,color="black",shape="box"];1056 -> 1060[label="",style="solid", color="black", weight=3]; 13.49/6.25 1057[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not (primCmpNat (Succ wz1100) Zero == LT))",fontsize=16,color="black",shape="box"];1057 -> 1061[label="",style="solid", color="black", weight=3]; 13.49/6.25 1058[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not (primCmpNat Zero (Succ wz1110) == LT))",fontsize=16,color="black",shape="box"];1058 -> 1062[label="",style="solid", color="black", weight=3]; 13.49/6.25 1059[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];1059 -> 1063[label="",style="solid", color="black", weight=3]; 13.49/6.25 44 -> 52[label="",style="dashed", color="red", weight=0]; 13.49/6.25 44[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char (Succ wz3000)) wz31 (FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 [] (Char Zero) wz34)) (Char Zero) wz33",fontsize=16,color="magenta"];44 -> 53[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 45[label="FiniteMap.foldFM_GE0 FiniteMap.fmToList_GE0 [] (Char (Succ wz400)) (Char Zero) wz31 wz32 wz33 wz34 otherwise",fontsize=16,color="black",shape="box"];45 -> 54[label="",style="solid", color="black", weight=3]; 13.49/6.25 46 -> 55[label="",style="dashed", color="red", weight=0]; 13.49/6.25 46[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char Zero) wz31 (FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 [] (Char Zero) wz34)) (Char Zero) wz33",fontsize=16,color="magenta"];46 -> 56[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1060 -> 963[label="",style="dashed", color="red", weight=0]; 13.49/6.25 1060[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not (primCmpNat wz1100 wz1110 == LT))",fontsize=16,color="magenta"];1060 -> 1064[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1060 -> 1065[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1061[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not (GT == LT))",fontsize=16,color="black",shape="box"];1061 -> 1066[label="",style="solid", color="black", weight=3]; 13.49/6.25 1062[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not (LT == LT))",fontsize=16,color="black",shape="box"];1062 -> 1067[label="",style="solid", color="black", weight=3]; 13.49/6.25 1063[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not (EQ == LT))",fontsize=16,color="black",shape="box"];1063 -> 1068[label="",style="solid", color="black", weight=3]; 13.49/6.25 53 -> 5[label="",style="dashed", color="red", weight=0]; 13.49/6.25 53[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 [] (Char Zero) wz34",fontsize=16,color="magenta"];53 -> 64[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 53 -> 65[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 52[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char (Succ wz3000)) wz31 wz5) (Char Zero) wz33",fontsize=16,color="burlywood",shape="triangle"];1103[label="wz33/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];52 -> 1103[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1103 -> 66[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1104[label="wz33/FiniteMap.Branch wz330 wz331 wz332 wz333 wz334",fontsize=10,color="white",style="solid",shape="box"];52 -> 1104[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1104 -> 67[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 54[label="FiniteMap.foldFM_GE0 FiniteMap.fmToList_GE0 [] (Char (Succ wz400)) (Char Zero) wz31 wz32 wz33 wz34 True",fontsize=16,color="black",shape="box"];54 -> 68[label="",style="solid", color="black", weight=3]; 13.49/6.25 56 -> 5[label="",style="dashed", color="red", weight=0]; 13.49/6.25 56[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 [] (Char Zero) wz34",fontsize=16,color="magenta"];56 -> 69[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 56 -> 70[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 55[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char Zero) wz31 wz6) (Char Zero) wz33",fontsize=16,color="burlywood",shape="triangle"];1105[label="wz33/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];55 -> 1105[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1105 -> 71[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1106[label="wz33/FiniteMap.Branch wz330 wz331 wz332 wz333 wz334",fontsize=10,color="white",style="solid",shape="box"];55 -> 1106[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1106 -> 72[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1064[label="wz1110",fontsize=16,color="green",shape="box"];1065[label="wz1100",fontsize=16,color="green",shape="box"];1066[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not False)",fontsize=16,color="black",shape="triangle"];1066 -> 1069[label="",style="solid", color="black", weight=3]; 13.49/6.25 1067[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not True)",fontsize=16,color="black",shape="box"];1067 -> 1070[label="",style="solid", color="black", weight=3]; 13.49/6.25 1068 -> 1066[label="",style="dashed", color="red", weight=0]; 13.49/6.25 1068[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 (not False)",fontsize=16,color="magenta"];64[label="wz34",fontsize=16,color="green",shape="box"];65[label="Char Zero",fontsize=16,color="green",shape="box"];66[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char (Succ wz3000)) wz31 wz5) (Char Zero) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];66 -> 80[label="",style="solid", color="black", weight=3]; 13.49/6.25 67[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char (Succ wz3000)) wz31 wz5) (Char Zero) (FiniteMap.Branch wz330 wz331 wz332 wz333 wz334)",fontsize=16,color="black",shape="box"];67 -> 81[label="",style="solid", color="black", weight=3]; 13.49/6.25 68 -> 494[label="",style="dashed", color="red", weight=0]; 13.49/6.25 68[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 [] (Char (Succ wz400)) wz34",fontsize=16,color="magenta"];68 -> 495[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 68 -> 496[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 68 -> 497[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 69[label="wz34",fontsize=16,color="green",shape="box"];70[label="Char Zero",fontsize=16,color="green",shape="box"];71[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char Zero) wz31 wz6) (Char Zero) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];71 -> 84[label="",style="solid", color="black", weight=3]; 13.49/6.25 72[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char Zero) wz31 wz6) (Char Zero) (FiniteMap.Branch wz330 wz331 wz332 wz333 wz334)",fontsize=16,color="black",shape="box"];72 -> 85[label="",style="solid", color="black", weight=3]; 13.49/6.25 1069[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 True",fontsize=16,color="black",shape="box"];1069 -> 1071[label="",style="solid", color="black", weight=3]; 13.49/6.25 1070[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 False",fontsize=16,color="black",shape="box"];1070 -> 1072[label="",style="solid", color="black", weight=3]; 13.49/6.25 80[label="FiniteMap.foldFM_GE3 FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char (Succ wz3000)) wz31 wz5) (Char Zero) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];80 -> 96[label="",style="solid", color="black", weight=3]; 13.49/6.25 81[label="FiniteMap.foldFM_GE2 FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char (Succ wz3000)) wz31 wz5) (Char Zero) (FiniteMap.Branch wz330 wz331 wz332 wz333 wz334)",fontsize=16,color="black",shape="box"];81 -> 97[label="",style="solid", color="black", weight=3]; 13.49/6.25 495[label="wz400",fontsize=16,color="green",shape="box"];496[label="[]",fontsize=16,color="green",shape="box"];497[label="wz34",fontsize=16,color="green",shape="box"];494[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) wz52",fontsize=16,color="burlywood",shape="triangle"];1107[label="wz52/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];494 -> 1107[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1107 -> 548[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1108[label="wz52/FiniteMap.Branch wz520 wz521 wz522 wz523 wz524",fontsize=10,color="white",style="solid",shape="box"];494 -> 1108[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1108 -> 549[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 84[label="FiniteMap.foldFM_GE3 FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char Zero) wz31 wz6) (Char Zero) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];84 -> 98[label="",style="solid", color="black", weight=3]; 13.49/6.25 85[label="FiniteMap.foldFM_GE2 FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char Zero) wz31 wz6) (Char Zero) (FiniteMap.Branch wz330 wz331 wz332 wz333 wz334)",fontsize=16,color="black",shape="box"];85 -> 99[label="",style="solid", color="black", weight=3]; 13.49/6.25 1071 -> 494[label="",style="dashed", color="red", weight=0]; 13.49/6.25 1071[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char (Succ wz105)) wz106 (FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) wz109)) (Char (Succ wz104)) wz108",fontsize=16,color="magenta"];1071 -> 1073[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1071 -> 1074[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1071 -> 1075[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1072[label="FiniteMap.foldFM_GE0 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 otherwise",fontsize=16,color="black",shape="box"];1072 -> 1076[label="",style="solid", color="black", weight=3]; 13.49/6.25 96[label="FiniteMap.fmToList_GE0 (Char (Succ wz3000)) wz31 wz5",fontsize=16,color="black",shape="triangle"];96 -> 116[label="",style="solid", color="black", weight=3]; 13.49/6.25 97 -> 117[label="",style="dashed", color="red", weight=0]; 13.49/6.25 97[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char (Succ wz3000)) wz31 wz5) (Char Zero) wz330 wz331 wz332 wz333 wz334 (wz330 >= Char Zero)",fontsize=16,color="magenta"];97 -> 118[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 548[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];548 -> 626[label="",style="solid", color="black", weight=3]; 13.49/6.25 549[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) (FiniteMap.Branch wz520 wz521 wz522 wz523 wz524)",fontsize=16,color="black",shape="box"];549 -> 627[label="",style="solid", color="black", weight=3]; 13.49/6.25 98[label="FiniteMap.fmToList_GE0 (Char Zero) wz31 wz6",fontsize=16,color="black",shape="triangle"];98 -> 120[label="",style="solid", color="black", weight=3]; 13.49/6.25 99 -> 117[label="",style="dashed", color="red", weight=0]; 13.49/6.25 99[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char Zero) wz31 wz6) (Char Zero) wz330 wz331 wz332 wz333 wz334 (wz330 >= Char Zero)",fontsize=16,color="magenta"];99 -> 119[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1073[label="wz104",fontsize=16,color="green",shape="box"];1074 -> 96[label="",style="dashed", color="red", weight=0]; 13.49/6.25 1074[label="FiniteMap.fmToList_GE0 (Char (Succ wz105)) wz106 (FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) wz109)",fontsize=16,color="magenta"];1074 -> 1077[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1074 -> 1078[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1074 -> 1079[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1075[label="wz108",fontsize=16,color="green",shape="box"];1076[label="FiniteMap.foldFM_GE0 FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) (Char (Succ wz105)) wz106 wz107 wz108 wz109 True",fontsize=16,color="black",shape="box"];1076 -> 1080[label="",style="solid", color="black", weight=3]; 13.49/6.25 116[label="(Char (Succ wz3000),wz31) : wz5",fontsize=16,color="green",shape="box"];118 -> 96[label="",style="dashed", color="red", weight=0]; 13.49/6.25 118[label="FiniteMap.fmToList_GE0 (Char (Succ wz3000)) wz31 wz5",fontsize=16,color="magenta"];117[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) wz330 wz331 wz332 wz333 wz334 (wz330 >= Char Zero)",fontsize=16,color="black",shape="triangle"];117 -> 134[label="",style="solid", color="black", weight=3]; 13.49/6.25 626[label="FiniteMap.foldFM_GE3 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];626 -> 648[label="",style="solid", color="black", weight=3]; 13.49/6.25 627[label="FiniteMap.foldFM_GE2 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) (FiniteMap.Branch wz520 wz521 wz522 wz523 wz524)",fontsize=16,color="black",shape="box"];627 -> 649[label="",style="solid", color="black", weight=3]; 13.49/6.25 120[label="(Char Zero,wz31) : wz6",fontsize=16,color="green",shape="box"];119 -> 98[label="",style="dashed", color="red", weight=0]; 13.49/6.25 119[label="FiniteMap.fmToList_GE0 (Char Zero) wz31 wz6",fontsize=16,color="magenta"];1077[label="wz105",fontsize=16,color="green",shape="box"];1078[label="wz106",fontsize=16,color="green",shape="box"];1079 -> 494[label="",style="dashed", color="red", weight=0]; 13.49/6.25 1079[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) wz109",fontsize=16,color="magenta"];1079 -> 1081[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1079 -> 1082[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1079 -> 1083[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1080 -> 494[label="",style="dashed", color="red", weight=0]; 13.49/6.25 1080[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz103 (Char (Succ wz104)) wz109",fontsize=16,color="magenta"];1080 -> 1084[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1080 -> 1085[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 1080 -> 1086[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 134[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) wz330 wz331 wz332 wz333 wz334 (compare wz330 (Char Zero) /= LT)",fontsize=16,color="black",shape="box"];134 -> 150[label="",style="solid", color="black", weight=3]; 13.49/6.25 648[label="wz61",fontsize=16,color="green",shape="box"];649[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) wz520 wz521 wz522 wz523 wz524 (wz520 >= Char (Succ wz48))",fontsize=16,color="black",shape="box"];649 -> 657[label="",style="solid", color="black", weight=3]; 13.49/6.25 1081[label="wz104",fontsize=16,color="green",shape="box"];1082[label="wz103",fontsize=16,color="green",shape="box"];1083[label="wz109",fontsize=16,color="green",shape="box"];1084[label="wz104",fontsize=16,color="green",shape="box"];1085[label="wz103",fontsize=16,color="green",shape="box"];1086[label="wz109",fontsize=16,color="green",shape="box"];150[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) wz330 wz331 wz332 wz333 wz334 (not (compare wz330 (Char Zero) == LT))",fontsize=16,color="black",shape="box"];150 -> 175[label="",style="solid", color="black", weight=3]; 13.49/6.25 657[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) wz520 wz521 wz522 wz523 wz524 (compare wz520 (Char (Succ wz48)) /= LT)",fontsize=16,color="black",shape="box"];657 -> 741[label="",style="solid", color="black", weight=3]; 13.49/6.25 175[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) wz330 wz331 wz332 wz333 wz334 (not (primCmpChar wz330 (Char Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1109[label="wz330/Char wz3300",fontsize=10,color="white",style="solid",shape="box"];175 -> 1109[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1109 -> 192[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 741[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) wz520 wz521 wz522 wz523 wz524 (not (compare wz520 (Char (Succ wz48)) == LT))",fontsize=16,color="black",shape="box"];741 -> 746[label="",style="solid", color="black", weight=3]; 13.49/6.25 192[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) (Char wz3300) wz331 wz332 wz333 wz334 (not (primCmpChar (Char wz3300) (Char Zero) == LT))",fontsize=16,color="black",shape="box"];192 -> 205[label="",style="solid", color="black", weight=3]; 13.49/6.25 746[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) wz520 wz521 wz522 wz523 wz524 (not (primCmpChar wz520 (Char (Succ wz48)) == LT))",fontsize=16,color="burlywood",shape="box"];1110[label="wz520/Char wz5200",fontsize=10,color="white",style="solid",shape="box"];746 -> 1110[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1110 -> 751[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 205[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) (Char wz3300) wz331 wz332 wz333 wz334 (not (primCmpNat wz3300 Zero == LT))",fontsize=16,color="burlywood",shape="box"];1111[label="wz3300/Succ wz33000",fontsize=10,color="white",style="solid",shape="box"];205 -> 1111[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1111 -> 222[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1112[label="wz3300/Zero",fontsize=10,color="white",style="solid",shape="box"];205 -> 1112[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1112 -> 223[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 751[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) (Char wz5200) wz521 wz522 wz523 wz524 (not (primCmpChar (Char wz5200) (Char (Succ wz48)) == LT))",fontsize=16,color="black",shape="box"];751 -> 757[label="",style="solid", color="black", weight=3]; 13.49/6.25 222[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) (Char (Succ wz33000)) wz331 wz332 wz333 wz334 (not (primCmpNat (Succ wz33000) Zero == LT))",fontsize=16,color="black",shape="box"];222 -> 241[label="",style="solid", color="black", weight=3]; 13.49/6.25 223[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) (Char Zero) wz331 wz332 wz333 wz334 (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];223 -> 242[label="",style="solid", color="black", weight=3]; 13.49/6.25 757[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) (Char wz5200) wz521 wz522 wz523 wz524 (not (primCmpNat wz5200 (Succ wz48) == LT))",fontsize=16,color="burlywood",shape="box"];1113[label="wz5200/Succ wz52000",fontsize=10,color="white",style="solid",shape="box"];757 -> 1113[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1113 -> 760[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1114[label="wz5200/Zero",fontsize=10,color="white",style="solid",shape="box"];757 -> 1114[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1114 -> 761[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 241[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) (Char (Succ wz33000)) wz331 wz332 wz333 wz334 (not (GT == LT))",fontsize=16,color="black",shape="box"];241 -> 272[label="",style="solid", color="black", weight=3]; 13.49/6.25 242[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) (Char Zero) wz331 wz332 wz333 wz334 (not (EQ == LT))",fontsize=16,color="black",shape="box"];242 -> 273[label="",style="solid", color="black", weight=3]; 13.49/6.25 760[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) (Char (Succ wz52000)) wz521 wz522 wz523 wz524 (not (primCmpNat (Succ wz52000) (Succ wz48) == LT))",fontsize=16,color="black",shape="box"];760 -> 764[label="",style="solid", color="black", weight=3]; 13.49/6.25 761[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) (Char Zero) wz521 wz522 wz523 wz524 (not (primCmpNat Zero (Succ wz48) == LT))",fontsize=16,color="black",shape="box"];761 -> 765[label="",style="solid", color="black", weight=3]; 13.49/6.25 272[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) (Char (Succ wz33000)) wz331 wz332 wz333 wz334 (not False)",fontsize=16,color="black",shape="box"];272 -> 326[label="",style="solid", color="black", weight=3]; 13.49/6.25 273[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) (Char Zero) wz331 wz332 wz333 wz334 (not False)",fontsize=16,color="black",shape="box"];273 -> 327[label="",style="solid", color="black", weight=3]; 13.49/6.25 764 -> 963[label="",style="dashed", color="red", weight=0]; 13.49/6.25 764[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) (Char (Succ wz52000)) wz521 wz522 wz523 wz524 (not (primCmpNat wz52000 wz48 == LT))",fontsize=16,color="magenta"];764 -> 991[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 764 -> 992[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 764 -> 993[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 764 -> 994[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 764 -> 995[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 764 -> 996[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 764 -> 997[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 764 -> 998[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 764 -> 999[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 765[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) (Char Zero) wz521 wz522 wz523 wz524 (not (LT == LT))",fontsize=16,color="black",shape="box"];765 -> 772[label="",style="solid", color="black", weight=3]; 13.49/6.25 326[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) (Char (Succ wz33000)) wz331 wz332 wz333 wz334 True",fontsize=16,color="black",shape="box"];326 -> 345[label="",style="solid", color="black", weight=3]; 13.49/6.25 327[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) (Char Zero) wz331 wz332 wz333 wz334 True",fontsize=16,color="black",shape="box"];327 -> 346[label="",style="solid", color="black", weight=3]; 13.49/6.25 991[label="wz48",fontsize=16,color="green",shape="box"];992[label="wz52000",fontsize=16,color="green",shape="box"];993[label="wz61",fontsize=16,color="green",shape="box"];994[label="wz524",fontsize=16,color="green",shape="box"];995[label="wz523",fontsize=16,color="green",shape="box"];996[label="wz48",fontsize=16,color="green",shape="box"];997[label="wz522",fontsize=16,color="green",shape="box"];998[label="wz521",fontsize=16,color="green",shape="box"];999[label="wz52000",fontsize=16,color="green",shape="box"];772[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) (Char Zero) wz521 wz522 wz523 wz524 (not True)",fontsize=16,color="black",shape="box"];772 -> 781[label="",style="solid", color="black", weight=3]; 13.49/6.25 345 -> 52[label="",style="dashed", color="red", weight=0]; 13.49/6.25 345[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char (Succ wz33000)) wz331 (FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz9 (Char Zero) wz334)) (Char Zero) wz333",fontsize=16,color="magenta"];345 -> 366[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 345 -> 367[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 345 -> 368[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 345 -> 369[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 346 -> 55[label="",style="dashed", color="red", weight=0]; 13.49/6.25 346[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 (FiniteMap.fmToList_GE0 (Char Zero) wz331 (FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz9 (Char Zero) wz334)) (Char Zero) wz333",fontsize=16,color="magenta"];346 -> 370[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 346 -> 371[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 346 -> 372[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 781[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) (Char Zero) wz521 wz522 wz523 wz524 False",fontsize=16,color="black",shape="box"];781 -> 792[label="",style="solid", color="black", weight=3]; 13.49/6.25 366[label="wz33000",fontsize=16,color="green",shape="box"];367[label="wz333",fontsize=16,color="green",shape="box"];368[label="wz331",fontsize=16,color="green",shape="box"];369[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz9 (Char Zero) wz334",fontsize=16,color="burlywood",shape="triangle"];1115[label="wz334/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];369 -> 1115[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1115 -> 438[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 1116[label="wz334/FiniteMap.Branch wz3340 wz3341 wz3342 wz3343 wz3344",fontsize=10,color="white",style="solid",shape="box"];369 -> 1116[label="",style="solid", color="burlywood", weight=9]; 13.49/6.25 1116 -> 439[label="",style="solid", color="burlywood", weight=3]; 13.49/6.25 370[label="wz333",fontsize=16,color="green",shape="box"];371[label="wz331",fontsize=16,color="green",shape="box"];372 -> 369[label="",style="dashed", color="red", weight=0]; 13.49/6.25 372[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz9 (Char Zero) wz334",fontsize=16,color="magenta"];792[label="FiniteMap.foldFM_GE0 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) (Char Zero) wz521 wz522 wz523 wz524 otherwise",fontsize=16,color="black",shape="box"];792 -> 798[label="",style="solid", color="black", weight=3]; 13.49/6.25 438[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz9 (Char Zero) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];438 -> 479[label="",style="solid", color="black", weight=3]; 13.49/6.25 439[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz9 (Char Zero) (FiniteMap.Branch wz3340 wz3341 wz3342 wz3343 wz3344)",fontsize=16,color="black",shape="box"];439 -> 480[label="",style="solid", color="black", weight=3]; 13.49/6.25 798[label="FiniteMap.foldFM_GE0 FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) (Char Zero) wz521 wz522 wz523 wz524 True",fontsize=16,color="black",shape="box"];798 -> 806[label="",style="solid", color="black", weight=3]; 13.49/6.25 479[label="FiniteMap.foldFM_GE3 FiniteMap.fmToList_GE0 wz9 (Char Zero) FiniteMap.EmptyFM",fontsize=16,color="black",shape="box"];479 -> 563[label="",style="solid", color="black", weight=3]; 13.49/6.25 480[label="FiniteMap.foldFM_GE2 FiniteMap.fmToList_GE0 wz9 (Char Zero) (FiniteMap.Branch wz3340 wz3341 wz3342 wz3343 wz3344)",fontsize=16,color="black",shape="box"];480 -> 564[label="",style="solid", color="black", weight=3]; 13.49/6.25 806 -> 494[label="",style="dashed", color="red", weight=0]; 13.49/6.25 806[label="FiniteMap.foldFM_GE FiniteMap.fmToList_GE0 wz61 (Char (Succ wz48)) wz524",fontsize=16,color="magenta"];806 -> 814[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 563[label="wz9",fontsize=16,color="green",shape="box"];564 -> 117[label="",style="dashed", color="red", weight=0]; 13.49/6.25 564[label="FiniteMap.foldFM_GE1 FiniteMap.fmToList_GE0 wz9 (Char Zero) wz3340 wz3341 wz3342 wz3343 wz3344 (wz3340 >= Char Zero)",fontsize=16,color="magenta"];564 -> 630[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 564 -> 631[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 564 -> 632[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 564 -> 633[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 564 -> 634[label="",style="dashed", color="magenta", weight=3]; 13.49/6.25 814[label="wz524",fontsize=16,color="green",shape="box"];630[label="wz3343",fontsize=16,color="green",shape="box"];631[label="wz3341",fontsize=16,color="green",shape="box"];632[label="wz3342",fontsize=16,color="green",shape="box"];633[label="wz3344",fontsize=16,color="green",shape="box"];634[label="wz3340",fontsize=16,color="green",shape="box"];} 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (8) 13.49/6.25 Complex Obligation (AND) 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (9) 13.49/6.25 Obligation: 13.49/6.25 Q DP problem: 13.49/6.25 The TRS P consists of the following rules: 13.49/6.25 13.49/6.25 new_foldFM_GE6(wz61, wz48, Branch(Char(Succ(wz52000)), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE11(wz61, wz48, wz52000, wz521, wz522, wz523, wz524, wz52000, wz48, ba) 13.49/6.25 new_foldFM_GE6(wz61, wz48, Branch(Char(Zero), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE6(wz61, wz48, wz524, ba) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Zero, h) -> new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE6(new_fmToList_GE0(wz105, wz106, new_foldFM_GE7(wz103, wz104, wz109, h), h), wz104, wz108, h) 13.49/6.25 new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE6(wz103, wz104, wz109, h) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Succ(wz1110), h) -> new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, wz1100, wz1110, h) 13.49/6.25 new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE6(new_fmToList_GE0(wz105, wz106, new_foldFM_GE7(wz103, wz104, wz109, h), h), wz104, wz108, h) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE6(wz103, wz104, wz109, h) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Succ(wz1110), h) -> new_foldFM_GE6(wz103, wz104, wz109, h) 13.49/6.25 13.49/6.25 The TRS R consists of the following rules: 13.49/6.25 13.49/6.25 new_fmToList_GE0(wz3000, wz31, wz5, bb) -> :(@2(Char(Succ(wz3000)), wz31), wz5) 13.49/6.25 new_foldFM_GE14(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE7(new_fmToList_GE0(wz105, wz106, new_foldFM_GE7(wz103, wz104, wz109, h), h), wz104, wz108, h) 13.49/6.25 new_foldFM_GE7(wz61, wz48, Branch(Char(Zero), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE7(wz61, wz48, wz524, ba) 13.49/6.25 new_foldFM_GE7(wz61, wz48, EmptyFM, ba) -> wz61 13.49/6.25 new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Succ(wz1110), h) -> new_foldFM_GE7(wz103, wz104, wz109, h) 13.49/6.25 new_foldFM_GE7(wz61, wz48, Branch(Char(Succ(wz52000)), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE13(wz61, wz48, wz52000, wz521, wz522, wz523, wz524, wz52000, wz48, ba) 13.49/6.25 new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Succ(wz1110), h) -> new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, wz1100, wz1110, h) 13.49/6.25 new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Zero, h) -> new_foldFM_GE14(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) 13.49/6.25 new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE14(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) 13.49/6.25 13.49/6.25 The set Q consists of the following terms: 13.49/6.25 13.49/6.25 new_foldFM_GE13(x0, x1, x2, x3, x4, x5, x6, Succ(x7), Succ(x8), x9) 13.49/6.25 new_foldFM_GE13(x0, x1, x2, x3, x4, x5, x6, Zero, Zero, x7) 13.49/6.25 new_foldFM_GE13(x0, x1, x2, x3, x4, x5, x6, Zero, Succ(x7), x8) 13.49/6.25 new_foldFM_GE7(x0, x1, Branch(Char(Succ(x2)), x3, x4, x5, x6), x7) 13.49/6.25 new_foldFM_GE7(x0, x1, EmptyFM, x2) 13.49/6.25 new_foldFM_GE7(x0, x1, Branch(Char(Zero), x2, x3, x4, x5), x6) 13.49/6.25 new_fmToList_GE0(x0, x1, x2, x3) 13.49/6.25 new_foldFM_GE14(x0, x1, x2, x3, x4, x5, x6, x7) 13.49/6.25 new_foldFM_GE13(x0, x1, x2, x3, x4, x5, x6, Succ(x7), Zero, x8) 13.49/6.25 13.49/6.25 We have to consider all minimal (P,Q,R)-chains. 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (10) TransformationProof (EQUIVALENT) 13.49/6.25 By rewriting [LPAR04] the rule new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE6(new_fmToList_GE0(wz105, wz106, new_foldFM_GE7(wz103, wz104, wz109, h), h), wz104, wz108, h) at position [0] we obtained the following new rules [LPAR04]: 13.49/6.25 13.49/6.25 (new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE6(:(@2(Char(Succ(wz105)), wz106), new_foldFM_GE7(wz103, wz104, wz109, h)), wz104, wz108, h),new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE6(:(@2(Char(Succ(wz105)), wz106), new_foldFM_GE7(wz103, wz104, wz109, h)), wz104, wz108, h)) 13.49/6.25 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (11) 13.49/6.25 Obligation: 13.49/6.25 Q DP problem: 13.49/6.25 The TRS P consists of the following rules: 13.49/6.25 13.49/6.25 new_foldFM_GE6(wz61, wz48, Branch(Char(Succ(wz52000)), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE11(wz61, wz48, wz52000, wz521, wz522, wz523, wz524, wz52000, wz48, ba) 13.49/6.25 new_foldFM_GE6(wz61, wz48, Branch(Char(Zero), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE6(wz61, wz48, wz524, ba) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Zero, h) -> new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) 13.49/6.25 new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE6(wz103, wz104, wz109, h) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Succ(wz1110), h) -> new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, wz1100, wz1110, h) 13.49/6.25 new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE6(new_fmToList_GE0(wz105, wz106, new_foldFM_GE7(wz103, wz104, wz109, h), h), wz104, wz108, h) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE6(wz103, wz104, wz109, h) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Succ(wz1110), h) -> new_foldFM_GE6(wz103, wz104, wz109, h) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE6(:(@2(Char(Succ(wz105)), wz106), new_foldFM_GE7(wz103, wz104, wz109, h)), wz104, wz108, h) 13.49/6.25 13.49/6.25 The TRS R consists of the following rules: 13.49/6.25 13.49/6.25 new_fmToList_GE0(wz3000, wz31, wz5, bb) -> :(@2(Char(Succ(wz3000)), wz31), wz5) 13.49/6.25 new_foldFM_GE14(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE7(new_fmToList_GE0(wz105, wz106, new_foldFM_GE7(wz103, wz104, wz109, h), h), wz104, wz108, h) 13.49/6.25 new_foldFM_GE7(wz61, wz48, Branch(Char(Zero), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE7(wz61, wz48, wz524, ba) 13.49/6.25 new_foldFM_GE7(wz61, wz48, EmptyFM, ba) -> wz61 13.49/6.25 new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Succ(wz1110), h) -> new_foldFM_GE7(wz103, wz104, wz109, h) 13.49/6.25 new_foldFM_GE7(wz61, wz48, Branch(Char(Succ(wz52000)), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE13(wz61, wz48, wz52000, wz521, wz522, wz523, wz524, wz52000, wz48, ba) 13.49/6.25 new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Succ(wz1110), h) -> new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, wz1100, wz1110, h) 13.49/6.25 new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Zero, h) -> new_foldFM_GE14(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) 13.49/6.25 new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE14(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) 13.49/6.25 13.49/6.25 The set Q consists of the following terms: 13.49/6.25 13.49/6.25 new_foldFM_GE13(x0, x1, x2, x3, x4, x5, x6, Succ(x7), Succ(x8), x9) 13.49/6.25 new_foldFM_GE13(x0, x1, x2, x3, x4, x5, x6, Zero, Zero, x7) 13.49/6.25 new_foldFM_GE13(x0, x1, x2, x3, x4, x5, x6, Zero, Succ(x7), x8) 13.49/6.25 new_foldFM_GE7(x0, x1, Branch(Char(Succ(x2)), x3, x4, x5, x6), x7) 13.49/6.25 new_foldFM_GE7(x0, x1, EmptyFM, x2) 13.49/6.25 new_foldFM_GE7(x0, x1, Branch(Char(Zero), x2, x3, x4, x5), x6) 13.49/6.25 new_fmToList_GE0(x0, x1, x2, x3) 13.49/6.25 new_foldFM_GE14(x0, x1, x2, x3, x4, x5, x6, x7) 13.49/6.25 new_foldFM_GE13(x0, x1, x2, x3, x4, x5, x6, Succ(x7), Zero, x8) 13.49/6.25 13.49/6.25 We have to consider all minimal (P,Q,R)-chains. 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (12) TransformationProof (EQUIVALENT) 13.49/6.25 By rewriting [LPAR04] the rule new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE6(new_fmToList_GE0(wz105, wz106, new_foldFM_GE7(wz103, wz104, wz109, h), h), wz104, wz108, h) at position [0] we obtained the following new rules [LPAR04]: 13.49/6.25 13.49/6.25 (new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE6(:(@2(Char(Succ(wz105)), wz106), new_foldFM_GE7(wz103, wz104, wz109, h)), wz104, wz108, h),new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE6(:(@2(Char(Succ(wz105)), wz106), new_foldFM_GE7(wz103, wz104, wz109, h)), wz104, wz108, h)) 13.49/6.25 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (13) 13.49/6.25 Obligation: 13.49/6.25 Q DP problem: 13.49/6.25 The TRS P consists of the following rules: 13.49/6.25 13.49/6.25 new_foldFM_GE6(wz61, wz48, Branch(Char(Succ(wz52000)), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE11(wz61, wz48, wz52000, wz521, wz522, wz523, wz524, wz52000, wz48, ba) 13.49/6.25 new_foldFM_GE6(wz61, wz48, Branch(Char(Zero), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE6(wz61, wz48, wz524, ba) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Zero, h) -> new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) 13.49/6.25 new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE6(wz103, wz104, wz109, h) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Succ(wz1110), h) -> new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, wz1100, wz1110, h) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE6(wz103, wz104, wz109, h) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Succ(wz1110), h) -> new_foldFM_GE6(wz103, wz104, wz109, h) 13.49/6.25 new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE6(:(@2(Char(Succ(wz105)), wz106), new_foldFM_GE7(wz103, wz104, wz109, h)), wz104, wz108, h) 13.49/6.25 new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE6(:(@2(Char(Succ(wz105)), wz106), new_foldFM_GE7(wz103, wz104, wz109, h)), wz104, wz108, h) 13.49/6.25 13.49/6.25 The TRS R consists of the following rules: 13.49/6.25 13.49/6.25 new_fmToList_GE0(wz3000, wz31, wz5, bb) -> :(@2(Char(Succ(wz3000)), wz31), wz5) 13.49/6.25 new_foldFM_GE14(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE7(new_fmToList_GE0(wz105, wz106, new_foldFM_GE7(wz103, wz104, wz109, h), h), wz104, wz108, h) 13.49/6.25 new_foldFM_GE7(wz61, wz48, Branch(Char(Zero), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE7(wz61, wz48, wz524, ba) 13.49/6.25 new_foldFM_GE7(wz61, wz48, EmptyFM, ba) -> wz61 13.49/6.25 new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Succ(wz1110), h) -> new_foldFM_GE7(wz103, wz104, wz109, h) 13.49/6.25 new_foldFM_GE7(wz61, wz48, Branch(Char(Succ(wz52000)), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE13(wz61, wz48, wz52000, wz521, wz522, wz523, wz524, wz52000, wz48, ba) 13.49/6.25 new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Succ(wz1110), h) -> new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, wz1100, wz1110, h) 13.49/6.25 new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Zero, h) -> new_foldFM_GE14(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) 13.49/6.25 new_foldFM_GE13(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE14(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) 13.49/6.25 13.49/6.25 The set Q consists of the following terms: 13.49/6.25 13.49/6.25 new_foldFM_GE13(x0, x1, x2, x3, x4, x5, x6, Succ(x7), Succ(x8), x9) 13.49/6.25 new_foldFM_GE13(x0, x1, x2, x3, x4, x5, x6, Zero, Zero, x7) 13.49/6.25 new_foldFM_GE13(x0, x1, x2, x3, x4, x5, x6, Zero, Succ(x7), x8) 13.49/6.25 new_foldFM_GE7(x0, x1, Branch(Char(Succ(x2)), x3, x4, x5, x6), x7) 13.49/6.25 new_foldFM_GE7(x0, x1, EmptyFM, x2) 13.49/6.25 new_foldFM_GE7(x0, x1, Branch(Char(Zero), x2, x3, x4, x5), x6) 13.49/6.25 new_fmToList_GE0(x0, x1, x2, x3) 13.49/6.25 new_foldFM_GE14(x0, x1, x2, x3, x4, x5, x6, x7) 13.49/6.25 new_foldFM_GE13(x0, x1, x2, x3, x4, x5, x6, Succ(x7), Zero, x8) 13.49/6.25 13.49/6.25 We have to consider all minimal (P,Q,R)-chains. 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (14) QDPSizeChangeProof (EQUIVALENT) 13.49/6.25 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. 13.49/6.25 13.49/6.25 From the DPs we obtained the following set of size-change graphs: 13.49/6.25 *new_foldFM_GE6(wz61, wz48, Branch(Char(Succ(wz52000)), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE11(wz61, wz48, wz52000, wz521, wz522, wz523, wz524, wz52000, wz48, ba) 13.49/6.25 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 3 > 4, 3 > 5, 3 > 6, 3 > 7, 3 > 8, 2 >= 9, 4 >= 10 13.49/6.25 13.49/6.25 13.49/6.25 *new_foldFM_GE6(wz61, wz48, Branch(Char(Zero), wz521, wz522, wz523, wz524), ba) -> new_foldFM_GE6(wz61, wz48, wz524, ba) 13.49/6.25 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4 13.49/6.25 13.49/6.25 13.49/6.25 *new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Succ(wz1110), h) -> new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, wz1100, wz1110, h) 13.49/6.25 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 8 > 8, 9 > 9, 10 >= 10 13.49/6.25 13.49/6.25 13.49/6.25 *new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Zero, h) -> new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) 13.49/6.25 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 10 >= 8 13.49/6.25 13.49/6.25 13.49/6.25 *new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE6(wz103, wz104, wz109, h) 13.49/6.25 The graph contains the following edges 1 >= 1, 2 >= 2, 7 >= 3, 10 >= 4 13.49/6.25 13.49/6.25 13.49/6.25 *new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Zero, Succ(wz1110), h) -> new_foldFM_GE6(wz103, wz104, wz109, h) 13.49/6.25 The graph contains the following edges 1 >= 1, 2 >= 2, 7 >= 3, 10 >= 4 13.49/6.25 13.49/6.25 13.49/6.25 *new_foldFM_GE11(wz103, wz104, wz105, wz106, wz107, wz108, wz109, Succ(wz1100), Zero, h) -> new_foldFM_GE6(:(@2(Char(Succ(wz105)), wz106), new_foldFM_GE7(wz103, wz104, wz109, h)), wz104, wz108, h) 13.49/6.25 The graph contains the following edges 2 >= 2, 6 >= 3, 10 >= 4 13.49/6.25 13.49/6.25 13.49/6.25 *new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE6(wz103, wz104, wz109, h) 13.49/6.25 The graph contains the following edges 1 >= 1, 2 >= 2, 7 >= 3, 8 >= 4 13.49/6.25 13.49/6.25 13.49/6.25 *new_foldFM_GE12(wz103, wz104, wz105, wz106, wz107, wz108, wz109, h) -> new_foldFM_GE6(:(@2(Char(Succ(wz105)), wz106), new_foldFM_GE7(wz103, wz104, wz109, h)), wz104, wz108, h) 13.49/6.25 The graph contains the following edges 2 >= 2, 6 >= 3, 8 >= 4 13.49/6.25 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (15) 13.49/6.25 YES 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (16) 13.49/6.25 Obligation: 13.49/6.25 Q DP problem: 13.49/6.25 The TRS P consists of the following rules: 13.49/6.25 13.49/6.25 new_foldFM_GE8(Char(Zero), Branch(Char(Zero), wz31, wz32, wz33, wz34), h) -> new_foldFM_GE8(Char(Zero), wz34, h) 13.49/6.25 new_foldFM_GE8(Char(Zero), Branch(Char(Succ(wz3000)), wz31, wz32, wz33, wz34), h) -> new_foldFM_GE8(Char(Zero), wz34, h) 13.49/6.25 13.49/6.25 R is empty. 13.49/6.25 Q is empty. 13.49/6.25 We have to consider all minimal (P,Q,R)-chains. 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (17) QDPSizeChangeProof (EQUIVALENT) 13.49/6.25 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. 13.49/6.25 13.49/6.25 From the DPs we obtained the following set of size-change graphs: 13.49/6.25 *new_foldFM_GE8(Char(Zero), Branch(Char(Zero), wz31, wz32, wz33, wz34), h) -> new_foldFM_GE8(Char(Zero), wz34, h) 13.49/6.25 The graph contains the following edges 1 >= 1, 2 > 1, 2 > 2, 3 >= 3 13.49/6.25 13.49/6.25 13.49/6.25 *new_foldFM_GE8(Char(Zero), Branch(Char(Succ(wz3000)), wz31, wz32, wz33, wz34), h) -> new_foldFM_GE8(Char(Zero), wz34, h) 13.49/6.25 The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 13.49/6.25 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (18) 13.49/6.25 YES 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (19) 13.49/6.25 Obligation: 13.49/6.25 Q DP problem: 13.49/6.25 The TRS P consists of the following rules: 13.49/6.25 13.49/6.25 new_foldFM_GE1(wz9, Char(Succ(wz33000)), wz331, wz332, wz333, Branch(wz3340, wz3341, wz3342, wz3343, wz3344), h) -> new_foldFM_GE1(wz9, wz3340, wz3341, wz3342, wz3343, wz3344, h) 13.49/6.25 new_foldFM_GE(wz3000, wz31, wz5, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(new_fmToList_GE0(wz3000, wz31, wz5, h), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.25 new_foldFM_GE2(wz31, wz6, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(new_fmToList_GE00(wz31, wz6, h), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.25 new_foldFM_GE1(wz9, Char(Zero), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE2(wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.25 new_foldFM_GE1(wz9, Char(Zero), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE3(wz9, wz334, h) 13.49/6.25 new_foldFM_GE3(wz9, Branch(wz3340, wz3341, wz3342, wz3343, wz3344), h) -> new_foldFM_GE1(wz9, wz3340, wz3341, wz3342, wz3343, wz3344, h) 13.49/6.25 new_foldFM_GE1(wz9, Char(Succ(wz33000)), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE(wz33000, wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.25 13.49/6.25 The TRS R consists of the following rules: 13.49/6.25 13.49/6.25 new_foldFM_GE10(wz9, Char(Zero), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE5(wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.25 new_fmToList_GE0(wz3000, wz31, wz5, h) -> :(@2(Char(Succ(wz3000)), wz31), wz5) 13.49/6.25 new_foldFM_GE5(wz31, wz6, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE10(new_fmToList_GE00(wz31, wz6, h), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.25 new_fmToList_GE00(wz31, wz6, h) -> :(@2(Char(Zero), wz31), wz6) 13.49/6.25 new_foldFM_GE0(wz9, EmptyFM, h) -> wz9 13.49/6.25 new_foldFM_GE0(wz9, Branch(wz3340, wz3341, wz3342, wz3343, wz3344), h) -> new_foldFM_GE10(wz9, wz3340, wz3341, wz3342, wz3343, wz3344, h) 13.49/6.25 new_foldFM_GE10(wz9, Char(Succ(wz33000)), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE4(wz33000, wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.25 new_foldFM_GE4(wz3000, wz31, wz5, EmptyFM, h) -> new_fmToList_GE0(wz3000, wz31, wz5, h) 13.49/6.25 new_foldFM_GE5(wz31, wz6, EmptyFM, h) -> new_fmToList_GE00(wz31, wz6, h) 13.49/6.25 new_foldFM_GE4(wz3000, wz31, wz5, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE10(new_fmToList_GE0(wz3000, wz31, wz5, h), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.25 13.49/6.25 The set Q consists of the following terms: 13.49/6.25 13.49/6.25 new_foldFM_GE5(x0, x1, Branch(x2, x3, x4, x5, x6), x7) 13.49/6.25 new_foldFM_GE0(x0, EmptyFM, x1) 13.49/6.25 new_foldFM_GE4(x0, x1, x2, Branch(x3, x4, x5, x6, x7), x8) 13.49/6.25 new_foldFM_GE10(x0, Char(Zero), x1, x2, x3, x4, x5) 13.49/6.25 new_fmToList_GE00(x0, x1, x2) 13.49/6.25 new_foldFM_GE10(x0, Char(Succ(x1)), x2, x3, x4, x5, x6) 13.49/6.25 new_foldFM_GE0(x0, Branch(x1, x2, x3, x4, x5), x6) 13.49/6.25 new_foldFM_GE4(x0, x1, x2, EmptyFM, x3) 13.49/6.25 new_foldFM_GE5(x0, x1, EmptyFM, x2) 13.49/6.25 new_fmToList_GE0(x0, x1, x2, x3) 13.49/6.25 13.49/6.25 We have to consider all minimal (P,Q,R)-chains. 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (20) TransformationProof (EQUIVALENT) 13.49/6.25 By rewriting [LPAR04] the rule new_foldFM_GE(wz3000, wz31, wz5, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(new_fmToList_GE0(wz3000, wz31, wz5, h), wz330, wz331, wz332, wz333, wz334, h) at position [0] we obtained the following new rules [LPAR04]: 13.49/6.25 13.49/6.25 (new_foldFM_GE(wz3000, wz31, wz5, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(:(@2(Char(Succ(wz3000)), wz31), wz5), wz330, wz331, wz332, wz333, wz334, h),new_foldFM_GE(wz3000, wz31, wz5, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(:(@2(Char(Succ(wz3000)), wz31), wz5), wz330, wz331, wz332, wz333, wz334, h)) 13.49/6.25 13.49/6.25 13.49/6.25 ---------------------------------------- 13.49/6.25 13.49/6.25 (21) 13.49/6.25 Obligation: 13.49/6.25 Q DP problem: 13.49/6.25 The TRS P consists of the following rules: 13.49/6.25 13.49/6.25 new_foldFM_GE1(wz9, Char(Succ(wz33000)), wz331, wz332, wz333, Branch(wz3340, wz3341, wz3342, wz3343, wz3344), h) -> new_foldFM_GE1(wz9, wz3340, wz3341, wz3342, wz3343, wz3344, h) 13.49/6.25 new_foldFM_GE2(wz31, wz6, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(new_fmToList_GE00(wz31, wz6, h), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.26 new_foldFM_GE1(wz9, Char(Zero), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE2(wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.26 new_foldFM_GE1(wz9, Char(Zero), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE3(wz9, wz334, h) 13.49/6.26 new_foldFM_GE3(wz9, Branch(wz3340, wz3341, wz3342, wz3343, wz3344), h) -> new_foldFM_GE1(wz9, wz3340, wz3341, wz3342, wz3343, wz3344, h) 13.49/6.26 new_foldFM_GE1(wz9, Char(Succ(wz33000)), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE(wz33000, wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.26 new_foldFM_GE(wz3000, wz31, wz5, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(:(@2(Char(Succ(wz3000)), wz31), wz5), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.26 13.49/6.26 The TRS R consists of the following rules: 13.49/6.26 13.49/6.26 new_foldFM_GE10(wz9, Char(Zero), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE5(wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.26 new_fmToList_GE0(wz3000, wz31, wz5, h) -> :(@2(Char(Succ(wz3000)), wz31), wz5) 13.49/6.26 new_foldFM_GE5(wz31, wz6, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE10(new_fmToList_GE00(wz31, wz6, h), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.26 new_fmToList_GE00(wz31, wz6, h) -> :(@2(Char(Zero), wz31), wz6) 13.49/6.26 new_foldFM_GE0(wz9, EmptyFM, h) -> wz9 13.49/6.26 new_foldFM_GE0(wz9, Branch(wz3340, wz3341, wz3342, wz3343, wz3344), h) -> new_foldFM_GE10(wz9, wz3340, wz3341, wz3342, wz3343, wz3344, h) 13.49/6.26 new_foldFM_GE10(wz9, Char(Succ(wz33000)), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE4(wz33000, wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.26 new_foldFM_GE4(wz3000, wz31, wz5, EmptyFM, h) -> new_fmToList_GE0(wz3000, wz31, wz5, h) 13.49/6.26 new_foldFM_GE5(wz31, wz6, EmptyFM, h) -> new_fmToList_GE00(wz31, wz6, h) 13.49/6.26 new_foldFM_GE4(wz3000, wz31, wz5, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE10(new_fmToList_GE0(wz3000, wz31, wz5, h), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.26 13.49/6.26 The set Q consists of the following terms: 13.49/6.26 13.49/6.26 new_foldFM_GE5(x0, x1, Branch(x2, x3, x4, x5, x6), x7) 13.49/6.26 new_foldFM_GE0(x0, EmptyFM, x1) 13.49/6.26 new_foldFM_GE4(x0, x1, x2, Branch(x3, x4, x5, x6, x7), x8) 13.49/6.26 new_foldFM_GE10(x0, Char(Zero), x1, x2, x3, x4, x5) 13.49/6.26 new_fmToList_GE00(x0, x1, x2) 13.49/6.26 new_foldFM_GE10(x0, Char(Succ(x1)), x2, x3, x4, x5, x6) 13.49/6.26 new_foldFM_GE0(x0, Branch(x1, x2, x3, x4, x5), x6) 13.49/6.26 new_foldFM_GE4(x0, x1, x2, EmptyFM, x3) 13.49/6.26 new_foldFM_GE5(x0, x1, EmptyFM, x2) 13.49/6.26 new_fmToList_GE0(x0, x1, x2, x3) 13.49/6.26 13.49/6.26 We have to consider all minimal (P,Q,R)-chains. 13.49/6.26 ---------------------------------------- 13.49/6.26 13.49/6.26 (22) TransformationProof (EQUIVALENT) 13.49/6.26 By rewriting [LPAR04] the rule new_foldFM_GE2(wz31, wz6, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(new_fmToList_GE00(wz31, wz6, h), wz330, wz331, wz332, wz333, wz334, h) at position [0] we obtained the following new rules [LPAR04]: 13.49/6.26 13.49/6.26 (new_foldFM_GE2(wz31, wz6, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(:(@2(Char(Zero), wz31), wz6), wz330, wz331, wz332, wz333, wz334, h),new_foldFM_GE2(wz31, wz6, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(:(@2(Char(Zero), wz31), wz6), wz330, wz331, wz332, wz333, wz334, h)) 13.49/6.26 13.49/6.26 13.49/6.26 ---------------------------------------- 13.49/6.26 13.49/6.26 (23) 13.49/6.26 Obligation: 13.49/6.26 Q DP problem: 13.49/6.26 The TRS P consists of the following rules: 13.49/6.26 13.49/6.26 new_foldFM_GE1(wz9, Char(Succ(wz33000)), wz331, wz332, wz333, Branch(wz3340, wz3341, wz3342, wz3343, wz3344), h) -> new_foldFM_GE1(wz9, wz3340, wz3341, wz3342, wz3343, wz3344, h) 13.49/6.26 new_foldFM_GE1(wz9, Char(Zero), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE2(wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.26 new_foldFM_GE1(wz9, Char(Zero), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE3(wz9, wz334, h) 13.49/6.26 new_foldFM_GE3(wz9, Branch(wz3340, wz3341, wz3342, wz3343, wz3344), h) -> new_foldFM_GE1(wz9, wz3340, wz3341, wz3342, wz3343, wz3344, h) 13.49/6.26 new_foldFM_GE1(wz9, Char(Succ(wz33000)), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE(wz33000, wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.26 new_foldFM_GE(wz3000, wz31, wz5, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(:(@2(Char(Succ(wz3000)), wz31), wz5), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.26 new_foldFM_GE2(wz31, wz6, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(:(@2(Char(Zero), wz31), wz6), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.26 13.49/6.26 The TRS R consists of the following rules: 13.49/6.26 13.49/6.26 new_foldFM_GE10(wz9, Char(Zero), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE5(wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.26 new_fmToList_GE0(wz3000, wz31, wz5, h) -> :(@2(Char(Succ(wz3000)), wz31), wz5) 13.49/6.26 new_foldFM_GE5(wz31, wz6, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE10(new_fmToList_GE00(wz31, wz6, h), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.26 new_fmToList_GE00(wz31, wz6, h) -> :(@2(Char(Zero), wz31), wz6) 13.49/6.26 new_foldFM_GE0(wz9, EmptyFM, h) -> wz9 13.49/6.26 new_foldFM_GE0(wz9, Branch(wz3340, wz3341, wz3342, wz3343, wz3344), h) -> new_foldFM_GE10(wz9, wz3340, wz3341, wz3342, wz3343, wz3344, h) 13.49/6.26 new_foldFM_GE10(wz9, Char(Succ(wz33000)), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE4(wz33000, wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.26 new_foldFM_GE4(wz3000, wz31, wz5, EmptyFM, h) -> new_fmToList_GE0(wz3000, wz31, wz5, h) 13.49/6.26 new_foldFM_GE5(wz31, wz6, EmptyFM, h) -> new_fmToList_GE00(wz31, wz6, h) 13.49/6.26 new_foldFM_GE4(wz3000, wz31, wz5, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE10(new_fmToList_GE0(wz3000, wz31, wz5, h), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.26 13.49/6.26 The set Q consists of the following terms: 13.49/6.26 13.49/6.26 new_foldFM_GE5(x0, x1, Branch(x2, x3, x4, x5, x6), x7) 13.49/6.26 new_foldFM_GE0(x0, EmptyFM, x1) 13.49/6.26 new_foldFM_GE4(x0, x1, x2, Branch(x3, x4, x5, x6, x7), x8) 13.49/6.26 new_foldFM_GE10(x0, Char(Zero), x1, x2, x3, x4, x5) 13.49/6.26 new_fmToList_GE00(x0, x1, x2) 13.49/6.26 new_foldFM_GE10(x0, Char(Succ(x1)), x2, x3, x4, x5, x6) 13.49/6.26 new_foldFM_GE0(x0, Branch(x1, x2, x3, x4, x5), x6) 13.49/6.26 new_foldFM_GE4(x0, x1, x2, EmptyFM, x3) 13.49/6.26 new_foldFM_GE5(x0, x1, EmptyFM, x2) 13.49/6.26 new_fmToList_GE0(x0, x1, x2, x3) 13.49/6.26 13.49/6.26 We have to consider all minimal (P,Q,R)-chains. 13.49/6.26 ---------------------------------------- 13.49/6.26 13.49/6.26 (24) QDPSizeChangeProof (EQUIVALENT) 13.49/6.26 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. 13.49/6.26 13.49/6.26 From the DPs we obtained the following set of size-change graphs: 13.49/6.26 *new_foldFM_GE1(wz9, Char(Succ(wz33000)), wz331, wz332, wz333, Branch(wz3340, wz3341, wz3342, wz3343, wz3344), h) -> new_foldFM_GE1(wz9, wz3340, wz3341, wz3342, wz3343, wz3344, h) 13.49/6.26 The graph contains the following edges 1 >= 1, 6 > 2, 6 > 3, 6 > 4, 6 > 5, 6 > 6, 7 >= 7 13.49/6.26 13.49/6.26 13.49/6.26 *new_foldFM_GE2(wz31, wz6, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(:(@2(Char(Zero), wz31), wz6), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.26 The graph contains the following edges 3 > 2, 3 > 3, 3 > 4, 3 > 5, 3 > 6, 4 >= 7 13.49/6.26 13.49/6.26 13.49/6.26 *new_foldFM_GE3(wz9, Branch(wz3340, wz3341, wz3342, wz3343, wz3344), h) -> new_foldFM_GE1(wz9, wz3340, wz3341, wz3342, wz3343, wz3344, h) 13.49/6.26 The graph contains the following edges 1 >= 1, 2 > 2, 2 > 3, 2 > 4, 2 > 5, 2 > 6, 3 >= 7 13.49/6.26 13.49/6.26 13.49/6.26 *new_foldFM_GE(wz3000, wz31, wz5, Branch(wz330, wz331, wz332, wz333, wz334), h) -> new_foldFM_GE1(:(@2(Char(Succ(wz3000)), wz31), wz5), wz330, wz331, wz332, wz333, wz334, h) 13.49/6.26 The graph contains the following edges 4 > 2, 4 > 3, 4 > 4, 4 > 5, 4 > 6, 5 >= 7 13.49/6.26 13.49/6.26 13.49/6.26 *new_foldFM_GE1(wz9, Char(Zero), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE3(wz9, wz334, h) 13.49/6.26 The graph contains the following edges 1 >= 1, 6 >= 2, 7 >= 3 13.49/6.26 13.49/6.26 13.49/6.26 *new_foldFM_GE1(wz9, Char(Succ(wz33000)), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE(wz33000, wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.26 The graph contains the following edges 2 > 1, 3 >= 2, 5 >= 4, 7 >= 5 13.49/6.26 13.49/6.26 13.49/6.26 *new_foldFM_GE1(wz9, Char(Zero), wz331, wz332, wz333, wz334, h) -> new_foldFM_GE2(wz331, new_foldFM_GE0(wz9, wz334, h), wz333, h) 13.49/6.26 The graph contains the following edges 3 >= 1, 5 >= 3, 7 >= 4 13.49/6.26 13.49/6.26 13.49/6.26 ---------------------------------------- 13.49/6.26 13.49/6.26 (25) 13.49/6.26 YES 13.65/10.70 EOF