/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.hs /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.hs # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty H-Termination with start terms of the given HASKELL could be proven: (0) HASKELL (1) CR [EQUIVALENT, 0 ms] (2) HASKELL (3) BR [EQUIVALENT, 0 ms] (4) HASKELL (5) COR [EQUIVALENT, 0 ms] (6) HASKELL (7) Narrow [SOUND, 0 ms] (8) QDP (9) DependencyGraphProof [EQUIVALENT, 0 ms] (10) AND (11) QDP (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] (13) YES (14) QDP (15) QDPSizeChangeProof [EQUIVALENT, 0 ms] (16) YES ---------------------------------------- (0) Obligation: mainModule Main module FiniteMap where { import qualified Main; import qualified Maybe; import qualified Prelude; data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) ; instance (Eq a, Eq b) => Eq FiniteMap b a where { } lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b; lookupFM EmptyFM key = Nothing; lookupFM (Branch key elt _ fm_l fm_r) key_to_find | key_to_find < key = lookupFM fm_l key_to_find | key_to_find > key = lookupFM fm_r key_to_find | otherwise = Just elt; lookupWithDefaultFM :: Ord b => FiniteMap b a -> a -> b -> a; lookupWithDefaultFM fm deflt key = case lookupFM fm key of { Nothing-> deflt; Just elt-> elt; } ; } module Maybe where { import qualified FiniteMap; import qualified Main; import qualified Prelude; } module Main where { import qualified FiniteMap; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (1) CR (EQUIVALENT) Case Reductions: The following Case expression "case lookupFM fm key of { Nothing -> deflt; Just elt -> elt} " is transformed to "lookupWithDefaultFM0 deflt Nothing = deflt; lookupWithDefaultFM0 deflt (Just elt) = elt; " ---------------------------------------- (2) Obligation: mainModule Main module FiniteMap where { import qualified Main; import qualified Maybe; import qualified Prelude; data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) ; instance (Eq a, Eq b) => Eq FiniteMap a b where { } lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b; lookupFM EmptyFM key = Nothing; lookupFM (Branch key elt _ fm_l fm_r) key_to_find | key_to_find < key = lookupFM fm_l key_to_find | key_to_find > key = lookupFM fm_r key_to_find | otherwise = Just elt; lookupWithDefaultFM :: Ord b => FiniteMap b a -> a -> b -> a; lookupWithDefaultFM fm deflt key = lookupWithDefaultFM0 deflt (lookupFM fm key); lookupWithDefaultFM0 deflt Nothing = deflt; lookupWithDefaultFM0 deflt (Just elt) = elt; } module Maybe where { import qualified FiniteMap; import qualified Main; import qualified Prelude; } module Main where { import qualified FiniteMap; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (3) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (4) Obligation: mainModule Main module FiniteMap where { import qualified Main; import qualified Maybe; import qualified Prelude; data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; instance (Eq a, Eq b) => Eq FiniteMap b a where { } lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b; lookupFM EmptyFM key = Nothing; lookupFM (Branch key elt vy fm_l fm_r) key_to_find | key_to_find < key = lookupFM fm_l key_to_find | key_to_find > key = lookupFM fm_r key_to_find | otherwise = Just elt; lookupWithDefaultFM :: Ord b => FiniteMap b a -> a -> b -> a; lookupWithDefaultFM fm deflt key = lookupWithDefaultFM0 deflt (lookupFM fm key); lookupWithDefaultFM0 deflt Nothing = deflt; lookupWithDefaultFM0 deflt (Just elt) = elt; } module Maybe where { import qualified FiniteMap; import qualified Main; import qualified Prelude; } module Main where { import qualified FiniteMap; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (5) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " The following Function with conditions "lookupFM EmptyFM key = Nothing; lookupFM (Branch key elt vy fm_l fm_r) key_to_find|key_to_find < keylookupFM fm_l key_to_find|key_to_find > keylookupFM fm_r key_to_find|otherwiseJust elt; " is transformed to "lookupFM EmptyFM key = lookupFM4 EmptyFM key; lookupFM (Branch key elt vy fm_l fm_r) key_to_find = lookupFM3 (Branch key elt vy fm_l fm_r) key_to_find; " "lookupFM0 key elt vy fm_l fm_r key_to_find True = Just elt; " "lookupFM1 key elt vy fm_l fm_r key_to_find True = lookupFM fm_r key_to_find; lookupFM1 key elt vy fm_l fm_r key_to_find False = lookupFM0 key elt vy fm_l fm_r key_to_find otherwise; " "lookupFM2 key elt vy fm_l fm_r key_to_find True = lookupFM fm_l key_to_find; lookupFM2 key elt vy fm_l fm_r key_to_find False = lookupFM1 key elt vy fm_l fm_r key_to_find (key_to_find > key); " "lookupFM3 (Branch key elt vy fm_l fm_r) key_to_find = lookupFM2 key elt vy fm_l fm_r key_to_find (key_to_find < key); " "lookupFM4 EmptyFM key = Nothing; lookupFM4 wv ww = lookupFM3 wv ww; " ---------------------------------------- (6) Obligation: mainModule Main module FiniteMap where { import qualified Main; import qualified Maybe; import qualified Prelude; data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) ; instance (Eq a, Eq b) => Eq FiniteMap b a where { } lookupFM :: Ord b => FiniteMap b a -> b -> Maybe a; lookupFM EmptyFM key = lookupFM4 EmptyFM key; lookupFM (Branch key elt vy fm_l fm_r) key_to_find = lookupFM3 (Branch key elt vy fm_l fm_r) key_to_find; lookupFM0 key elt vy fm_l fm_r key_to_find True = Just elt; lookupFM1 key elt vy fm_l fm_r key_to_find True = lookupFM fm_r key_to_find; lookupFM1 key elt vy fm_l fm_r key_to_find False = lookupFM0 key elt vy fm_l fm_r key_to_find otherwise; lookupFM2 key elt vy fm_l fm_r key_to_find True = lookupFM fm_l key_to_find; lookupFM2 key elt vy fm_l fm_r key_to_find False = lookupFM1 key elt vy fm_l fm_r key_to_find (key_to_find > key); lookupFM3 (Branch key elt vy fm_l fm_r) key_to_find = lookupFM2 key elt vy fm_l fm_r key_to_find (key_to_find < key); lookupFM4 EmptyFM key = Nothing; lookupFM4 wv ww = lookupFM3 wv ww; lookupWithDefaultFM :: Ord b => FiniteMap b a -> a -> b -> a; lookupWithDefaultFM fm deflt key = lookupWithDefaultFM0 deflt (lookupFM fm key); lookupWithDefaultFM0 deflt Nothing = deflt; lookupWithDefaultFM0 deflt (Just elt) = elt; } module Maybe where { import qualified FiniteMap; import qualified Main; import qualified Prelude; } module Main where { import qualified FiniteMap; import qualified Maybe; import qualified Prelude; } ---------------------------------------- (7) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="FiniteMap.lookupWithDefaultFM",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="FiniteMap.lookupWithDefaultFM wx3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="FiniteMap.lookupWithDefaultFM wx3 wx4",fontsize=16,color="grey",shape="box"];4 -> 5[label="",style="dashed", color="grey", weight=3]; 5[label="FiniteMap.lookupWithDefaultFM wx3 wx4 wx5",fontsize=16,color="black",shape="triangle"];5 -> 6[label="",style="solid", color="black", weight=3]; 6[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM wx3 wx5)",fontsize=16,color="burlywood",shape="triangle"];813[label="wx3/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];6 -> 813[label="",style="solid", color="burlywood", weight=9]; 813 -> 7[label="",style="solid", color="burlywood", weight=3]; 814[label="wx3/FiniteMap.Branch wx30 wx31 wx32 wx33 wx34",fontsize=10,color="white",style="solid",shape="box"];6 -> 814[label="",style="solid", color="burlywood", weight=9]; 814 -> 8[label="",style="solid", color="burlywood", weight=3]; 7[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM FiniteMap.EmptyFM wx5)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM (FiniteMap.Branch wx30 wx31 wx32 wx33 wx34) wx5)",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 9[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM4 FiniteMap.EmptyFM wx5)",fontsize=16,color="black",shape="box"];9 -> 11[label="",style="solid", color="black", weight=3]; 10[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM3 (FiniteMap.Branch wx30 wx31 wx32 wx33 wx34) wx5)",fontsize=16,color="black",shape="box"];10 -> 12[label="",style="solid", color="black", weight=3]; 11[label="FiniteMap.lookupWithDefaultFM0 wx4 Nothing",fontsize=16,color="black",shape="box"];11 -> 13[label="",style="solid", color="black", weight=3]; 12[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 wx30 wx31 wx32 wx33 wx34 wx5 (wx5 < wx30))",fontsize=16,color="black",shape="box"];12 -> 14[label="",style="solid", color="black", weight=3]; 13[label="wx4",fontsize=16,color="green",shape="box"];14[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 wx30 wx31 wx32 wx33 wx34 wx5 (compare wx5 wx30 == LT))",fontsize=16,color="black",shape="box"];14 -> 15[label="",style="solid", color="black", weight=3]; 15[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 wx30 wx31 wx32 wx33 wx34 wx5 (primCmpChar wx5 wx30 == LT))",fontsize=16,color="burlywood",shape="box"];815[label="wx5/Char wx50",fontsize=10,color="white",style="solid",shape="box"];15 -> 815[label="",style="solid", color="burlywood", weight=9]; 815 -> 16[label="",style="solid", color="burlywood", weight=3]; 16[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 wx30 wx31 wx32 wx33 wx34 (Char wx50) (primCmpChar (Char wx50) wx30 == LT))",fontsize=16,color="burlywood",shape="box"];816[label="wx30/Char wx300",fontsize=10,color="white",style="solid",shape="box"];16 -> 816[label="",style="solid", color="burlywood", weight=9]; 816 -> 17[label="",style="solid", color="burlywood", weight=3]; 17[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char wx300) wx31 wx32 wx33 wx34 (Char wx50) (primCmpChar (Char wx50) (Char wx300) == LT))",fontsize=16,color="black",shape="box"];17 -> 18[label="",style="solid", color="black", weight=3]; 18[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char wx300) wx31 wx32 wx33 wx34 (Char wx50) (primCmpNat wx50 wx300 == LT))",fontsize=16,color="burlywood",shape="box"];817[label="wx50/Succ wx500",fontsize=10,color="white",style="solid",shape="box"];18 -> 817[label="",style="solid", color="burlywood", weight=9]; 817 -> 19[label="",style="solid", color="burlywood", weight=3]; 818[label="wx50/Zero",fontsize=10,color="white",style="solid",shape="box"];18 -> 818[label="",style="solid", color="burlywood", weight=9]; 818 -> 20[label="",style="solid", color="burlywood", weight=3]; 19[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char wx300) wx31 wx32 wx33 wx34 (Char (Succ wx500)) (primCmpNat (Succ wx500) wx300 == LT))",fontsize=16,color="burlywood",shape="box"];819[label="wx300/Succ wx3000",fontsize=10,color="white",style="solid",shape="box"];19 -> 819[label="",style="solid", color="burlywood", weight=9]; 819 -> 21[label="",style="solid", color="burlywood", weight=3]; 820[label="wx300/Zero",fontsize=10,color="white",style="solid",shape="box"];19 -> 820[label="",style="solid", color="burlywood", weight=9]; 820 -> 22[label="",style="solid", color="burlywood", weight=3]; 20[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char wx300) wx31 wx32 wx33 wx34 (Char Zero) (primCmpNat Zero wx300 == LT))",fontsize=16,color="burlywood",shape="box"];821[label="wx300/Succ wx3000",fontsize=10,color="white",style="solid",shape="box"];20 -> 821[label="",style="solid", color="burlywood", weight=9]; 821 -> 23[label="",style="solid", color="burlywood", weight=3]; 822[label="wx300/Zero",fontsize=10,color="white",style="solid",shape="box"];20 -> 822[label="",style="solid", color="burlywood", weight=9]; 822 -> 24[label="",style="solid", color="burlywood", weight=3]; 21[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char (Succ wx3000)) wx31 wx32 wx33 wx34 (Char (Succ wx500)) (primCmpNat (Succ wx500) (Succ wx3000) == LT))",fontsize=16,color="black",shape="box"];21 -> 25[label="",style="solid", color="black", weight=3]; 22[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx500)) (primCmpNat (Succ wx500) Zero == LT))",fontsize=16,color="black",shape="box"];22 -> 26[label="",style="solid", color="black", weight=3]; 23[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char (Succ wx3000)) wx31 wx32 wx33 wx34 (Char Zero) (primCmpNat Zero (Succ wx3000) == LT))",fontsize=16,color="black",shape="box"];23 -> 27[label="",style="solid", color="black", weight=3]; 24[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];24 -> 28[label="",style="solid", color="black", weight=3]; 25 -> 327[label="",style="dashed", color="red", weight=0]; 25[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char (Succ wx3000)) wx31 wx32 wx33 wx34 (Char (Succ wx500)) (primCmpNat wx500 wx3000 == LT))",fontsize=16,color="magenta"];25 -> 328[label="",style="dashed", color="magenta", weight=3]; 25 -> 329[label="",style="dashed", color="magenta", weight=3]; 25 -> 330[label="",style="dashed", color="magenta", weight=3]; 25 -> 331[label="",style="dashed", color="magenta", weight=3]; 25 -> 332[label="",style="dashed", color="magenta", weight=3]; 25 -> 333[label="",style="dashed", color="magenta", weight=3]; 25 -> 334[label="",style="dashed", color="magenta", weight=3]; 25 -> 335[label="",style="dashed", color="magenta", weight=3]; 25 -> 336[label="",style="dashed", color="magenta", weight=3]; 26[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx500)) (GT == LT))",fontsize=16,color="black",shape="box"];26 -> 31[label="",style="solid", color="black", weight=3]; 27[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char (Succ wx3000)) wx31 wx32 wx33 wx34 (Char Zero) (LT == LT))",fontsize=16,color="black",shape="box"];27 -> 32[label="",style="solid", color="black", weight=3]; 28[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (EQ == LT))",fontsize=16,color="black",shape="box"];28 -> 33[label="",style="solid", color="black", weight=3]; 328[label="wx500",fontsize=16,color="green",shape="box"];329[label="wx32",fontsize=16,color="green",shape="box"];330[label="wx4",fontsize=16,color="green",shape="box"];331[label="wx3000",fontsize=16,color="green",shape="box"];332[label="wx31",fontsize=16,color="green",shape="box"];333[label="wx34",fontsize=16,color="green",shape="box"];334[label="wx500",fontsize=16,color="green",shape="box"];335[label="wx3000",fontsize=16,color="green",shape="box"];336[label="wx33",fontsize=16,color="green",shape="box"];327[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (primCmpNat wx37 wx38 == LT))",fontsize=16,color="burlywood",shape="triangle"];823[label="wx37/Succ wx370",fontsize=10,color="white",style="solid",shape="box"];327 -> 823[label="",style="solid", color="burlywood", weight=9]; 823 -> 418[label="",style="solid", color="burlywood", weight=3]; 824[label="wx37/Zero",fontsize=10,color="white",style="solid",shape="box"];327 -> 824[label="",style="solid", color="burlywood", weight=9]; 824 -> 419[label="",style="solid", color="burlywood", weight=3]; 31[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx500)) False)",fontsize=16,color="black",shape="box"];31 -> 38[label="",style="solid", color="black", weight=3]; 32[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char (Succ wx3000)) wx31 wx32 wx33 wx34 (Char Zero) True)",fontsize=16,color="black",shape="box"];32 -> 39[label="",style="solid", color="black", weight=3]; 33[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM2 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) False)",fontsize=16,color="black",shape="box"];33 -> 40[label="",style="solid", color="black", weight=3]; 418[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (primCmpNat (Succ wx370) wx38 == LT))",fontsize=16,color="burlywood",shape="box"];825[label="wx38/Succ wx380",fontsize=10,color="white",style="solid",shape="box"];418 -> 825[label="",style="solid", color="burlywood", weight=9]; 825 -> 420[label="",style="solid", color="burlywood", weight=3]; 826[label="wx38/Zero",fontsize=10,color="white",style="solid",shape="box"];418 -> 826[label="",style="solid", color="burlywood", weight=9]; 826 -> 421[label="",style="solid", color="burlywood", weight=3]; 419[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (primCmpNat Zero wx38 == LT))",fontsize=16,color="burlywood",shape="box"];827[label="wx38/Succ wx380",fontsize=10,color="white",style="solid",shape="box"];419 -> 827[label="",style="solid", color="burlywood", weight=9]; 827 -> 422[label="",style="solid", color="burlywood", weight=3]; 828[label="wx38/Zero",fontsize=10,color="white",style="solid",shape="box"];419 -> 828[label="",style="solid", color="burlywood", weight=9]; 828 -> 423[label="",style="solid", color="burlywood", weight=3]; 38[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx500)) (Char (Succ wx500) > Char Zero))",fontsize=16,color="black",shape="box"];38 -> 45[label="",style="solid", color="black", weight=3]; 39 -> 6[label="",style="dashed", color="red", weight=0]; 39[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM wx33 (Char Zero))",fontsize=16,color="magenta"];39 -> 46[label="",style="dashed", color="magenta", weight=3]; 39 -> 47[label="",style="dashed", color="magenta", weight=3]; 40[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (Char Zero > Char Zero))",fontsize=16,color="black",shape="box"];40 -> 48[label="",style="solid", color="black", weight=3]; 420[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (primCmpNat (Succ wx370) (Succ wx380) == LT))",fontsize=16,color="black",shape="box"];420 -> 424[label="",style="solid", color="black", weight=3]; 421[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (primCmpNat (Succ wx370) Zero == LT))",fontsize=16,color="black",shape="box"];421 -> 425[label="",style="solid", color="black", weight=3]; 422[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (primCmpNat Zero (Succ wx380) == LT))",fontsize=16,color="black",shape="box"];422 -> 426[label="",style="solid", color="black", weight=3]; 423[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];423 -> 427[label="",style="solid", color="black", weight=3]; 45[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx500)) (compare (Char (Succ wx500)) (Char Zero) == GT))",fontsize=16,color="black",shape="box"];45 -> 54[label="",style="solid", color="black", weight=3]; 46[label="wx33",fontsize=16,color="green",shape="box"];47[label="Char Zero",fontsize=16,color="green",shape="box"];48[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (compare (Char Zero) (Char Zero) == GT))",fontsize=16,color="black",shape="box"];48 -> 55[label="",style="solid", color="black", weight=3]; 424 -> 327[label="",style="dashed", color="red", weight=0]; 424[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (primCmpNat wx370 wx380 == LT))",fontsize=16,color="magenta"];424 -> 428[label="",style="dashed", color="magenta", weight=3]; 424 -> 429[label="",style="dashed", color="magenta", weight=3]; 425[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (GT == LT))",fontsize=16,color="black",shape="box"];425 -> 430[label="",style="solid", color="black", weight=3]; 426[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (LT == LT))",fontsize=16,color="black",shape="box"];426 -> 431[label="",style="solid", color="black", weight=3]; 427[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (EQ == LT))",fontsize=16,color="black",shape="box"];427 -> 432[label="",style="solid", color="black", weight=3]; 54[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx500)) (primCmpChar (Char (Succ wx500)) (Char Zero) == GT))",fontsize=16,color="black",shape="box"];54 -> 63[label="",style="solid", color="black", weight=3]; 55[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (primCmpChar (Char Zero) (Char Zero) == GT))",fontsize=16,color="black",shape="box"];55 -> 64[label="",style="solid", color="black", weight=3]; 428[label="wx370",fontsize=16,color="green",shape="box"];429[label="wx380",fontsize=16,color="green",shape="box"];430[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) False)",fontsize=16,color="black",shape="triangle"];430 -> 433[label="",style="solid", color="black", weight=3]; 431[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) True)",fontsize=16,color="black",shape="box"];431 -> 434[label="",style="solid", color="black", weight=3]; 432 -> 430[label="",style="dashed", color="red", weight=0]; 432[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM2 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) False)",fontsize=16,color="magenta"];63[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx500)) (primCmpNat (Succ wx500) Zero == GT))",fontsize=16,color="black",shape="box"];63 -> 73[label="",style="solid", color="black", weight=3]; 64[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (primCmpNat Zero Zero == GT))",fontsize=16,color="black",shape="box"];64 -> 74[label="",style="solid", color="black", weight=3]; 433[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM1 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (Char (Succ wx36) > Char (Succ wx31)))",fontsize=16,color="black",shape="box"];433 -> 435[label="",style="solid", color="black", weight=3]; 434 -> 6[label="",style="dashed", color="red", weight=0]; 434[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM wx34 (Char (Succ wx36)))",fontsize=16,color="magenta"];434 -> 436[label="",style="dashed", color="magenta", weight=3]; 434 -> 437[label="",style="dashed", color="magenta", weight=3]; 434 -> 438[label="",style="dashed", color="magenta", weight=3]; 73[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx500)) (GT == GT))",fontsize=16,color="black",shape="box"];73 -> 82[label="",style="solid", color="black", weight=3]; 74[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (EQ == GT))",fontsize=16,color="black",shape="box"];74 -> 83[label="",style="solid", color="black", weight=3]; 435[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM1 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (compare (Char (Succ wx36)) (Char (Succ wx31)) == GT))",fontsize=16,color="black",shape="box"];435 -> 439[label="",style="solid", color="black", weight=3]; 436[label="wx30",fontsize=16,color="green",shape="box"];437[label="wx34",fontsize=16,color="green",shape="box"];438[label="Char (Succ wx36)",fontsize=16,color="green",shape="box"];82[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx500)) True)",fontsize=16,color="black",shape="box"];82 -> 93[label="",style="solid", color="black", weight=3]; 83[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) False)",fontsize=16,color="black",shape="box"];83 -> 94[label="",style="solid", color="black", weight=3]; 439[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM1 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (primCmpChar (Char (Succ wx36)) (Char (Succ wx31)) == GT))",fontsize=16,color="black",shape="box"];439 -> 440[label="",style="solid", color="black", weight=3]; 93 -> 6[label="",style="dashed", color="red", weight=0]; 93[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM wx34 (Char (Succ wx500)))",fontsize=16,color="magenta"];93 -> 105[label="",style="dashed", color="magenta", weight=3]; 93 -> 106[label="",style="dashed", color="magenta", weight=3]; 94[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM0 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) otherwise)",fontsize=16,color="black",shape="box"];94 -> 107[label="",style="solid", color="black", weight=3]; 440 -> 689[label="",style="dashed", color="red", weight=0]; 440[label="FiniteMap.lookupWithDefaultFM0 wx30 (FiniteMap.lookupFM1 (Char (Succ wx31)) wx32 wx33 wx34 wx35 (Char (Succ wx36)) (primCmpNat (Succ wx36) (Succ wx31) == GT))",fontsize=16,color="magenta"];440 -> 690[label="",style="dashed", color="magenta", weight=3]; 440 -> 691[label="",style="dashed", color="magenta", weight=3]; 440 -> 692[label="",style="dashed", color="magenta", weight=3]; 440 -> 693[label="",style="dashed", color="magenta", weight=3]; 440 -> 694[label="",style="dashed", color="magenta", weight=3]; 440 -> 695[label="",style="dashed", color="magenta", weight=3]; 440 -> 696[label="",style="dashed", color="magenta", weight=3]; 440 -> 697[label="",style="dashed", color="magenta", weight=3]; 440 -> 698[label="",style="dashed", color="magenta", weight=3]; 105[label="wx34",fontsize=16,color="green",shape="box"];106[label="Char (Succ wx500)",fontsize=16,color="green",shape="box"];107[label="FiniteMap.lookupWithDefaultFM0 wx4 (FiniteMap.lookupFM0 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) True)",fontsize=16,color="black",shape="box"];107 -> 117[label="",style="solid", color="black", weight=3]; 690[label="wx34",fontsize=16,color="green",shape="box"];691[label="wx30",fontsize=16,color="green",shape="box"];692[label="Succ wx36",fontsize=16,color="green",shape="box"];693[label="wx36",fontsize=16,color="green",shape="box"];694[label="wx32",fontsize=16,color="green",shape="box"];695[label="wx33",fontsize=16,color="green",shape="box"];696[label="wx31",fontsize=16,color="green",shape="box"];697[label="Succ wx31",fontsize=16,color="green",shape="box"];698[label="wx35",fontsize=16,color="green",shape="box"];689[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) (primCmpNat wx91 wx92 == GT))",fontsize=16,color="burlywood",shape="triangle"];829[label="wx91/Succ wx910",fontsize=10,color="white",style="solid",shape="box"];689 -> 829[label="",style="solid", color="burlywood", weight=9]; 829 -> 789[label="",style="solid", color="burlywood", weight=3]; 830[label="wx91/Zero",fontsize=10,color="white",style="solid",shape="box"];689 -> 830[label="",style="solid", color="burlywood", weight=9]; 830 -> 790[label="",style="solid", color="burlywood", weight=3]; 117[label="FiniteMap.lookupWithDefaultFM0 wx4 (Just wx31)",fontsize=16,color="black",shape="triangle"];117 -> 129[label="",style="solid", color="black", weight=3]; 789[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) (primCmpNat (Succ wx910) wx92 == GT))",fontsize=16,color="burlywood",shape="box"];831[label="wx92/Succ wx920",fontsize=10,color="white",style="solid",shape="box"];789 -> 831[label="",style="solid", color="burlywood", weight=9]; 831 -> 791[label="",style="solid", color="burlywood", weight=3]; 832[label="wx92/Zero",fontsize=10,color="white",style="solid",shape="box"];789 -> 832[label="",style="solid", color="burlywood", weight=9]; 832 -> 792[label="",style="solid", color="burlywood", weight=3]; 790[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) (primCmpNat Zero wx92 == GT))",fontsize=16,color="burlywood",shape="box"];833[label="wx92/Succ wx920",fontsize=10,color="white",style="solid",shape="box"];790 -> 833[label="",style="solid", color="burlywood", weight=9]; 833 -> 793[label="",style="solid", color="burlywood", weight=3]; 834[label="wx92/Zero",fontsize=10,color="white",style="solid",shape="box"];790 -> 834[label="",style="solid", color="burlywood", weight=9]; 834 -> 794[label="",style="solid", color="burlywood", weight=3]; 129[label="wx31",fontsize=16,color="green",shape="box"];791[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) (primCmpNat (Succ wx910) (Succ wx920) == GT))",fontsize=16,color="black",shape="box"];791 -> 795[label="",style="solid", color="black", weight=3]; 792[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) (primCmpNat (Succ wx910) Zero == GT))",fontsize=16,color="black",shape="box"];792 -> 796[label="",style="solid", color="black", weight=3]; 793[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) (primCmpNat Zero (Succ wx920) == GT))",fontsize=16,color="black",shape="box"];793 -> 797[label="",style="solid", color="black", weight=3]; 794[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) (primCmpNat Zero Zero == GT))",fontsize=16,color="black",shape="box"];794 -> 798[label="",style="solid", color="black", weight=3]; 795 -> 689[label="",style="dashed", color="red", weight=0]; 795[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) (primCmpNat wx910 wx920 == GT))",fontsize=16,color="magenta"];795 -> 799[label="",style="dashed", color="magenta", weight=3]; 795 -> 800[label="",style="dashed", color="magenta", weight=3]; 796[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) (GT == GT))",fontsize=16,color="black",shape="box"];796 -> 801[label="",style="solid", color="black", weight=3]; 797[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) (LT == GT))",fontsize=16,color="black",shape="box"];797 -> 802[label="",style="solid", color="black", weight=3]; 798[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) (EQ == GT))",fontsize=16,color="black",shape="box"];798 -> 803[label="",style="solid", color="black", weight=3]; 799[label="wx910",fontsize=16,color="green",shape="box"];800[label="wx920",fontsize=16,color="green",shape="box"];801[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) True)",fontsize=16,color="black",shape="box"];801 -> 804[label="",style="solid", color="black", weight=3]; 802[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) False)",fontsize=16,color="black",shape="triangle"];802 -> 805[label="",style="solid", color="black", weight=3]; 803 -> 802[label="",style="dashed", color="red", weight=0]; 803[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM1 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) False)",fontsize=16,color="magenta"];804 -> 6[label="",style="dashed", color="red", weight=0]; 804[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM wx89 (Char (Succ wx90)))",fontsize=16,color="magenta"];804 -> 806[label="",style="dashed", color="magenta", weight=3]; 804 -> 807[label="",style="dashed", color="magenta", weight=3]; 804 -> 808[label="",style="dashed", color="magenta", weight=3]; 805[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM0 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) otherwise)",fontsize=16,color="black",shape="box"];805 -> 809[label="",style="solid", color="black", weight=3]; 806[label="wx84",fontsize=16,color="green",shape="box"];807[label="wx89",fontsize=16,color="green",shape="box"];808[label="Char (Succ wx90)",fontsize=16,color="green",shape="box"];809[label="FiniteMap.lookupWithDefaultFM0 wx84 (FiniteMap.lookupFM0 (Char (Succ wx85)) wx86 wx87 wx88 wx89 (Char (Succ wx90)) True)",fontsize=16,color="black",shape="box"];809 -> 810[label="",style="solid", color="black", weight=3]; 810 -> 117[label="",style="dashed", color="red", weight=0]; 810[label="FiniteMap.lookupWithDefaultFM0 wx84 (Just wx86)",fontsize=16,color="magenta"];810 -> 811[label="",style="dashed", color="magenta", weight=3]; 810 -> 812[label="",style="dashed", color="magenta", weight=3]; 811[label="wx84",fontsize=16,color="green",shape="box"];812[label="wx86",fontsize=16,color="green",shape="box"];} ---------------------------------------- (8) Obligation: Q DP problem: The TRS P consists of the following rules: new_lookupWithDefaultFM02(wx30, wx31, wx32, wx33, wx34, wx35, wx36, h) -> new_lookupWithDefaultFM00(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Succ(wx36), Succ(wx31), h) new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Succ(wx370), Zero, h) -> new_lookupWithDefaultFM00(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Succ(wx36), Succ(wx31), h) new_lookupWithDefaultFM00(wx84, wx85, wx86, wx87, wx88, wx89, wx90, Succ(wx910), Succ(wx920), ba) -> new_lookupWithDefaultFM00(wx84, wx85, wx86, wx87, wx88, wx89, wx90, wx910, wx920, ba) new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Succ(wx370), Succ(wx380), h) -> new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, wx370, wx380, h) new_lookupWithDefaultFM01(wx4, Branch(Char(Succ(wx3000)), wx31, wx32, wx33, wx34), Char(Zero), bb) -> new_lookupWithDefaultFM01(wx4, wx33, Char(Zero), bb) new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Zero, Succ(wx380), h) -> new_lookupWithDefaultFM01(wx30, wx34, Char(Succ(wx36)), h) new_lookupWithDefaultFM01(wx4, Branch(Char(Succ(wx3000)), wx31, wx32, wx33, wx34), Char(Succ(wx500)), bb) -> new_lookupWithDefaultFM0(wx4, wx3000, wx31, wx32, wx33, wx34, wx500, wx500, wx3000, bb) new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Zero, Zero, h) -> new_lookupWithDefaultFM02(wx30, wx31, wx32, wx33, wx34, wx35, wx36, h) new_lookupWithDefaultFM01(wx4, Branch(Char(Zero), wx31, wx32, wx33, wx34), Char(Succ(wx500)), bb) -> new_lookupWithDefaultFM01(wx4, wx34, Char(Succ(wx500)), bb) new_lookupWithDefaultFM00(wx84, wx85, wx86, wx87, wx88, wx89, wx90, Succ(wx910), Zero, ba) -> new_lookupWithDefaultFM01(wx84, wx89, Char(Succ(wx90)), ba) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (9) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (10) Complex Obligation (AND) ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: new_lookupWithDefaultFM01(wx4, Branch(Char(Succ(wx3000)), wx31, wx32, wx33, wx34), Char(Zero), bb) -> new_lookupWithDefaultFM01(wx4, wx33, Char(Zero), bb) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *new_lookupWithDefaultFM01(wx4, Branch(Char(Succ(wx3000)), wx31, wx32, wx33, wx34), Char(Zero), bb) -> new_lookupWithDefaultFM01(wx4, wx33, Char(Zero), bb) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: new_lookupWithDefaultFM00(wx84, wx85, wx86, wx87, wx88, wx89, wx90, Succ(wx910), Succ(wx920), ba) -> new_lookupWithDefaultFM00(wx84, wx85, wx86, wx87, wx88, wx89, wx90, wx910, wx920, ba) new_lookupWithDefaultFM00(wx84, wx85, wx86, wx87, wx88, wx89, wx90, Succ(wx910), Zero, ba) -> new_lookupWithDefaultFM01(wx84, wx89, Char(Succ(wx90)), ba) new_lookupWithDefaultFM01(wx4, Branch(Char(Succ(wx3000)), wx31, wx32, wx33, wx34), Char(Succ(wx500)), bb) -> new_lookupWithDefaultFM0(wx4, wx3000, wx31, wx32, wx33, wx34, wx500, wx500, wx3000, bb) new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Succ(wx370), Zero, h) -> new_lookupWithDefaultFM00(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Succ(wx36), Succ(wx31), h) new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Succ(wx370), Succ(wx380), h) -> new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, wx370, wx380, h) new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Zero, Succ(wx380), h) -> new_lookupWithDefaultFM01(wx30, wx34, Char(Succ(wx36)), h) new_lookupWithDefaultFM01(wx4, Branch(Char(Zero), wx31, wx32, wx33, wx34), Char(Succ(wx500)), bb) -> new_lookupWithDefaultFM01(wx4, wx34, Char(Succ(wx500)), bb) new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Zero, Zero, h) -> new_lookupWithDefaultFM02(wx30, wx31, wx32, wx33, wx34, wx35, wx36, h) new_lookupWithDefaultFM02(wx30, wx31, wx32, wx33, wx34, wx35, wx36, h) -> new_lookupWithDefaultFM00(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Succ(wx36), Succ(wx31), h) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *new_lookupWithDefaultFM00(wx84, wx85, wx86, wx87, wx88, wx89, wx90, Succ(wx910), Succ(wx920), ba) -> new_lookupWithDefaultFM00(wx84, wx85, wx86, wx87, wx88, wx89, wx90, wx910, wx920, ba) 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 *new_lookupWithDefaultFM00(wx84, wx85, wx86, wx87, wx88, wx89, wx90, Succ(wx910), Zero, ba) -> new_lookupWithDefaultFM01(wx84, wx89, Char(Succ(wx90)), ba) The graph contains the following edges 1 >= 1, 6 >= 2, 10 >= 4 *new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Succ(wx370), Zero, h) -> new_lookupWithDefaultFM00(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Succ(wx36), Succ(wx31), h) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 10 >= 10 *new_lookupWithDefaultFM02(wx30, wx31, wx32, wx33, wx34, wx35, wx36, h) -> new_lookupWithDefaultFM00(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Succ(wx36), Succ(wx31), h) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 8 >= 10 *new_lookupWithDefaultFM01(wx4, Branch(Char(Zero), wx31, wx32, wx33, wx34), Char(Succ(wx500)), bb) -> new_lookupWithDefaultFM01(wx4, wx34, Char(Succ(wx500)), bb) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 *new_lookupWithDefaultFM01(wx4, Branch(Char(Succ(wx3000)), wx31, wx32, wx33, wx34), Char(Succ(wx500)), bb) -> new_lookupWithDefaultFM0(wx4, wx3000, wx31, wx32, wx33, wx34, wx500, wx500, wx3000, bb) The graph contains the following edges 1 >= 1, 2 > 2, 2 > 3, 2 > 4, 2 > 5, 2 > 6, 3 > 7, 3 > 8, 2 > 9, 4 >= 10 *new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Zero, Succ(wx380), h) -> new_lookupWithDefaultFM01(wx30, wx34, Char(Succ(wx36)), h) The graph contains the following edges 1 >= 1, 5 >= 2, 10 >= 4 *new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Succ(wx370), Succ(wx380), h) -> new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, wx370, wx380, h) 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 *new_lookupWithDefaultFM0(wx30, wx31, wx32, wx33, wx34, wx35, wx36, Zero, Zero, h) -> new_lookupWithDefaultFM02(wx30, wx31, wx32, wx33, wx34, wx35, wx36, h) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 7, 10 >= 8 ---------------------------------------- (16) YES