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