10.51/4.67 YES 12.39/5.17 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 12.39/5.17 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 12.39/5.17 12.39/5.17 12.39/5.17 H-Termination with start terms of the given HASKELL could be proven: 12.39/5.17 12.39/5.17 (0) HASKELL 12.39/5.17 (1) BR [EQUIVALENT, 0 ms] 12.39/5.17 (2) HASKELL 12.39/5.17 (3) COR [EQUIVALENT, 0 ms] 12.39/5.17 (4) HASKELL 12.39/5.17 (5) Narrow [SOUND, 0 ms] 12.39/5.17 (6) QDP 12.39/5.17 (7) DependencyGraphProof [EQUIVALENT, 0 ms] 12.39/5.17 (8) AND 12.39/5.17 (9) QDP 12.39/5.17 (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.39/5.17 (11) YES 12.39/5.17 (12) QDP 12.39/5.17 (13) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.39/5.17 (14) YES 12.39/5.17 12.39/5.17 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (0) 12.39/5.17 Obligation: 12.39/5.17 mainModule Main 12.39/5.17 module FiniteMap where { 12.39/5.17 import qualified Main; 12.39/5.17 import qualified Maybe; 12.39/5.17 import qualified Prelude; 12.39/5.17 data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) ; 12.39/5.17 12.39/5.17 instance (Eq a, Eq b) => Eq FiniteMap a b where { 12.39/5.17 } 12.39/5.17 lookupFM :: Ord b => FiniteMap b a -> b -> Maybe a; 12.39/5.17 lookupFM EmptyFM key = Nothing; 12.39/5.17 lookupFM (Branch key elt _ fm_l fm_r) key_to_find | key_to_find < key = lookupFM fm_l key_to_find 12.39/5.17 | key_to_find > key = lookupFM fm_r key_to_find 12.39/5.17 | otherwise = Just elt; 12.39/5.17 12.39/5.17 } 12.39/5.17 module Maybe where { 12.39/5.17 import qualified FiniteMap; 12.39/5.17 import qualified Main; 12.39/5.17 import qualified Prelude; 12.39/5.17 } 12.39/5.17 module Main where { 12.39/5.17 import qualified FiniteMap; 12.39/5.17 import qualified Maybe; 12.39/5.17 import qualified Prelude; 12.39/5.17 } 12.39/5.17 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (1) BR (EQUIVALENT) 12.39/5.17 Replaced joker patterns by fresh variables and removed binding patterns. 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (2) 12.39/5.17 Obligation: 12.39/5.17 mainModule Main 12.39/5.17 module FiniteMap where { 12.39/5.17 import qualified Main; 12.39/5.17 import qualified Maybe; 12.39/5.17 import qualified Prelude; 12.39/5.17 data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) ; 12.39/5.17 12.39/5.17 instance (Eq a, Eq b) => Eq FiniteMap a b where { 12.39/5.17 } 12.39/5.17 lookupFM :: Ord b => FiniteMap b a -> b -> Maybe a; 12.39/5.17 lookupFM EmptyFM key = Nothing; 12.39/5.17 lookupFM (Branch key elt vy fm_l fm_r) key_to_find | key_to_find < key = lookupFM fm_l key_to_find 12.39/5.17 | key_to_find > key = lookupFM fm_r key_to_find 12.39/5.17 | otherwise = Just elt; 12.39/5.17 12.39/5.17 } 12.39/5.17 module Maybe where { 12.39/5.17 import qualified FiniteMap; 12.39/5.17 import qualified Main; 12.39/5.17 import qualified Prelude; 12.39/5.17 } 12.39/5.17 module Main where { 12.39/5.17 import qualified FiniteMap; 12.39/5.17 import qualified Maybe; 12.39/5.17 import qualified Prelude; 12.39/5.17 } 12.39/5.17 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (3) COR (EQUIVALENT) 12.39/5.17 Cond Reductions: 12.39/5.17 The following Function with conditions 12.39/5.17 "undefined |Falseundefined; 12.39/5.17 " 12.39/5.17 is transformed to 12.39/5.17 "undefined = undefined1; 12.39/5.17 " 12.39/5.17 "undefined0 True = undefined; 12.39/5.17 " 12.39/5.17 "undefined1 = undefined0 False; 12.39/5.17 " 12.39/5.17 The following Function with conditions 12.39/5.17 "lookupFM EmptyFM key = Nothing; 12.39/5.17 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; 12.39/5.17 " 12.39/5.17 is transformed to 12.39/5.17 "lookupFM EmptyFM key = lookupFM4 EmptyFM key; 12.39/5.17 lookupFM (Branch key elt vy fm_l fm_r) key_to_find = lookupFM3 (Branch key elt vy fm_l fm_r) key_to_find; 12.39/5.17 " 12.39/5.17 "lookupFM0 key elt vy fm_l fm_r key_to_find True = Just elt; 12.39/5.17 " 12.39/5.17 "lookupFM1 key elt vy fm_l fm_r key_to_find True = lookupFM fm_r key_to_find; 12.39/5.17 lookupFM1 key elt vy fm_l fm_r key_to_find False = lookupFM0 key elt vy fm_l fm_r key_to_find otherwise; 12.39/5.17 " 12.39/5.17 "lookupFM2 key elt vy fm_l fm_r key_to_find True = lookupFM fm_l key_to_find; 12.39/5.17 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); 12.39/5.17 " 12.39/5.17 "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); 12.39/5.17 " 12.39/5.17 "lookupFM4 EmptyFM key = Nothing; 12.39/5.17 lookupFM4 wv ww = lookupFM3 wv ww; 12.39/5.17 " 12.39/5.17 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (4) 12.39/5.17 Obligation: 12.39/5.17 mainModule Main 12.39/5.17 module FiniteMap where { 12.39/5.17 import qualified Main; 12.39/5.17 import qualified Maybe; 12.39/5.17 import qualified Prelude; 12.39/5.17 data FiniteMap b a = EmptyFM | Branch b a Int (FiniteMap b a) (FiniteMap b a) ; 12.39/5.17 12.39/5.17 instance (Eq a, Eq b) => Eq FiniteMap b a where { 12.39/5.17 } 12.39/5.17 lookupFM :: Ord a => FiniteMap a b -> a -> Maybe b; 12.39/5.17 lookupFM EmptyFM key = lookupFM4 EmptyFM key; 12.39/5.17 lookupFM (Branch key elt vy fm_l fm_r) key_to_find = lookupFM3 (Branch key elt vy fm_l fm_r) key_to_find; 12.39/5.17 12.39/5.17 lookupFM0 key elt vy fm_l fm_r key_to_find True = Just elt; 12.39/5.17 12.39/5.17 lookupFM1 key elt vy fm_l fm_r key_to_find True = lookupFM fm_r key_to_find; 12.39/5.17 lookupFM1 key elt vy fm_l fm_r key_to_find False = lookupFM0 key elt vy fm_l fm_r key_to_find otherwise; 12.39/5.17 12.39/5.17 lookupFM2 key elt vy fm_l fm_r key_to_find True = lookupFM fm_l key_to_find; 12.39/5.17 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); 12.39/5.17 12.39/5.17 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); 12.39/5.17 12.39/5.17 lookupFM4 EmptyFM key = Nothing; 12.39/5.17 lookupFM4 wv ww = lookupFM3 wv ww; 12.39/5.17 12.39/5.17 } 12.39/5.17 module Maybe where { 12.39/5.17 import qualified FiniteMap; 12.39/5.17 import qualified Main; 12.39/5.17 import qualified Prelude; 12.39/5.17 } 12.39/5.17 module Main where { 12.39/5.17 import qualified FiniteMap; 12.39/5.17 import qualified Maybe; 12.39/5.17 import qualified Prelude; 12.39/5.17 } 12.39/5.17 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (5) Narrow (SOUND) 12.39/5.17 Haskell To QDPs 12.39/5.17 12.39/5.17 digraph dp_graph { 12.39/5.17 node [outthreshold=100, inthreshold=100];1[label="FiniteMap.lookupFM",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 12.39/5.17 3[label="FiniteMap.lookupFM wx3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 12.39/5.17 4[label="FiniteMap.lookupFM wx3 wx4",fontsize=16,color="burlywood",shape="triangle"];486[label="wx3/FiniteMap.EmptyFM",fontsize=10,color="white",style="solid",shape="box"];4 -> 486[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 486 -> 5[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 487[label="wx3/FiniteMap.Branch wx30 wx31 wx32 wx33 wx34",fontsize=10,color="white",style="solid",shape="box"];4 -> 487[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 487 -> 6[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 5[label="FiniteMap.lookupFM FiniteMap.EmptyFM wx4",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 12.39/5.17 6[label="FiniteMap.lookupFM (FiniteMap.Branch wx30 wx31 wx32 wx33 wx34) wx4",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 12.39/5.17 7[label="FiniteMap.lookupFM4 FiniteMap.EmptyFM wx4",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 12.39/5.17 8[label="FiniteMap.lookupFM3 (FiniteMap.Branch wx30 wx31 wx32 wx33 wx34) wx4",fontsize=16,color="black",shape="box"];8 -> 10[label="",style="solid", color="black", weight=3]; 12.39/5.17 9[label="Nothing",fontsize=16,color="green",shape="box"];10[label="FiniteMap.lookupFM2 wx30 wx31 wx32 wx33 wx34 wx4 (wx4 < wx30)",fontsize=16,color="black",shape="box"];10 -> 11[label="",style="solid", color="black", weight=3]; 12.39/5.17 11[label="FiniteMap.lookupFM2 wx30 wx31 wx32 wx33 wx34 wx4 (compare wx4 wx30 == LT)",fontsize=16,color="black",shape="box"];11 -> 12[label="",style="solid", color="black", weight=3]; 12.39/5.17 12[label="FiniteMap.lookupFM2 wx30 wx31 wx32 wx33 wx34 wx4 (primCmpChar wx4 wx30 == LT)",fontsize=16,color="burlywood",shape="box"];488[label="wx4/Char wx40",fontsize=10,color="white",style="solid",shape="box"];12 -> 488[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 488 -> 13[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 13[label="FiniteMap.lookupFM2 wx30 wx31 wx32 wx33 wx34 (Char wx40) (primCmpChar (Char wx40) wx30 == LT)",fontsize=16,color="burlywood",shape="box"];489[label="wx30/Char wx300",fontsize=10,color="white",style="solid",shape="box"];13 -> 489[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 489 -> 14[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 14[label="FiniteMap.lookupFM2 (Char wx300) wx31 wx32 wx33 wx34 (Char wx40) (primCmpChar (Char wx40) (Char wx300) == LT)",fontsize=16,color="black",shape="box"];14 -> 15[label="",style="solid", color="black", weight=3]; 12.39/5.17 15[label="FiniteMap.lookupFM2 (Char wx300) wx31 wx32 wx33 wx34 (Char wx40) (primCmpNat wx40 wx300 == LT)",fontsize=16,color="burlywood",shape="box"];490[label="wx40/Succ wx400",fontsize=10,color="white",style="solid",shape="box"];15 -> 490[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 490 -> 16[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 491[label="wx40/Zero",fontsize=10,color="white",style="solid",shape="box"];15 -> 491[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 491 -> 17[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 16[label="FiniteMap.lookupFM2 (Char wx300) wx31 wx32 wx33 wx34 (Char (Succ wx400)) (primCmpNat (Succ wx400) wx300 == LT)",fontsize=16,color="burlywood",shape="box"];492[label="wx300/Succ wx3000",fontsize=10,color="white",style="solid",shape="box"];16 -> 492[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 492 -> 18[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 493[label="wx300/Zero",fontsize=10,color="white",style="solid",shape="box"];16 -> 493[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 493 -> 19[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 17[label="FiniteMap.lookupFM2 (Char wx300) wx31 wx32 wx33 wx34 (Char Zero) (primCmpNat Zero wx300 == LT)",fontsize=16,color="burlywood",shape="box"];494[label="wx300/Succ wx3000",fontsize=10,color="white",style="solid",shape="box"];17 -> 494[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 494 -> 20[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 495[label="wx300/Zero",fontsize=10,color="white",style="solid",shape="box"];17 -> 495[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 495 -> 21[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 18[label="FiniteMap.lookupFM2 (Char (Succ wx3000)) wx31 wx32 wx33 wx34 (Char (Succ wx400)) (primCmpNat (Succ wx400) (Succ wx3000) == LT)",fontsize=16,color="black",shape="box"];18 -> 22[label="",style="solid", color="black", weight=3]; 12.39/5.17 19[label="FiniteMap.lookupFM2 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx400)) (primCmpNat (Succ wx400) Zero == LT)",fontsize=16,color="black",shape="box"];19 -> 23[label="",style="solid", color="black", weight=3]; 12.39/5.17 20[label="FiniteMap.lookupFM2 (Char (Succ wx3000)) wx31 wx32 wx33 wx34 (Char Zero) (primCmpNat Zero (Succ wx3000) == LT)",fontsize=16,color="black",shape="box"];20 -> 24[label="",style="solid", color="black", weight=3]; 12.39/5.17 21[label="FiniteMap.lookupFM2 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (primCmpNat Zero Zero == LT)",fontsize=16,color="black",shape="box"];21 -> 25[label="",style="solid", color="black", weight=3]; 12.39/5.17 22 -> 201[label="",style="dashed", color="red", weight=0]; 12.39/5.17 22[label="FiniteMap.lookupFM2 (Char (Succ wx3000)) wx31 wx32 wx33 wx34 (Char (Succ wx400)) (primCmpNat wx400 wx3000 == LT)",fontsize=16,color="magenta"];22 -> 202[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 22 -> 203[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 22 -> 204[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 22 -> 205[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 22 -> 206[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 22 -> 207[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 22 -> 208[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 22 -> 209[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 23[label="FiniteMap.lookupFM2 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx400)) (GT == LT)",fontsize=16,color="black",shape="box"];23 -> 28[label="",style="solid", color="black", weight=3]; 12.39/5.17 24[label="FiniteMap.lookupFM2 (Char (Succ wx3000)) wx31 wx32 wx33 wx34 (Char Zero) (LT == LT)",fontsize=16,color="black",shape="box"];24 -> 29[label="",style="solid", color="black", weight=3]; 12.39/5.17 25[label="FiniteMap.lookupFM2 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (EQ == LT)",fontsize=16,color="black",shape="box"];25 -> 30[label="",style="solid", color="black", weight=3]; 12.39/5.17 202[label="wx3000",fontsize=16,color="green",shape="box"];203[label="wx32",fontsize=16,color="green",shape="box"];204[label="wx33",fontsize=16,color="green",shape="box"];205[label="wx3000",fontsize=16,color="green",shape="box"];206[label="wx31",fontsize=16,color="green",shape="box"];207[label="wx34",fontsize=16,color="green",shape="box"];208[label="wx400",fontsize=16,color="green",shape="box"];209[label="wx400",fontsize=16,color="green",shape="box"];201[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (primCmpNat wx32 wx33 == LT)",fontsize=16,color="burlywood",shape="triangle"];496[label="wx32/Succ wx320",fontsize=10,color="white",style="solid",shape="box"];201 -> 496[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 496 -> 258[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 497[label="wx32/Zero",fontsize=10,color="white",style="solid",shape="box"];201 -> 497[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 497 -> 259[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 28[label="FiniteMap.lookupFM2 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx400)) False",fontsize=16,color="black",shape="box"];28 -> 35[label="",style="solid", color="black", weight=3]; 12.39/5.17 29[label="FiniteMap.lookupFM2 (Char (Succ wx3000)) wx31 wx32 wx33 wx34 (Char Zero) True",fontsize=16,color="black",shape="box"];29 -> 36[label="",style="solid", color="black", weight=3]; 12.39/5.17 30[label="FiniteMap.lookupFM2 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) False",fontsize=16,color="black",shape="box"];30 -> 37[label="",style="solid", color="black", weight=3]; 12.39/5.17 258[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (primCmpNat (Succ wx320) wx33 == LT)",fontsize=16,color="burlywood",shape="box"];498[label="wx33/Succ wx330",fontsize=10,color="white",style="solid",shape="box"];258 -> 498[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 498 -> 260[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 499[label="wx33/Zero",fontsize=10,color="white",style="solid",shape="box"];258 -> 499[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 499 -> 261[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 259[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (primCmpNat Zero wx33 == LT)",fontsize=16,color="burlywood",shape="box"];500[label="wx33/Succ wx330",fontsize=10,color="white",style="solid",shape="box"];259 -> 500[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 500 -> 262[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 501[label="wx33/Zero",fontsize=10,color="white",style="solid",shape="box"];259 -> 501[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 501 -> 263[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 35[label="FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx400)) (Char (Succ wx400) > Char Zero)",fontsize=16,color="black",shape="box"];35 -> 42[label="",style="solid", color="black", weight=3]; 12.39/5.17 36 -> 4[label="",style="dashed", color="red", weight=0]; 12.39/5.17 36[label="FiniteMap.lookupFM wx33 (Char Zero)",fontsize=16,color="magenta"];36 -> 43[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 36 -> 44[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 37[label="FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (Char Zero > Char Zero)",fontsize=16,color="black",shape="box"];37 -> 45[label="",style="solid", color="black", weight=3]; 12.39/5.17 260[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (primCmpNat (Succ wx320) (Succ wx330) == LT)",fontsize=16,color="black",shape="box"];260 -> 264[label="",style="solid", color="black", weight=3]; 12.39/5.17 261[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (primCmpNat (Succ wx320) Zero == LT)",fontsize=16,color="black",shape="box"];261 -> 265[label="",style="solid", color="black", weight=3]; 12.39/5.17 262[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (primCmpNat Zero (Succ wx330) == LT)",fontsize=16,color="black",shape="box"];262 -> 266[label="",style="solid", color="black", weight=3]; 12.39/5.17 263[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (primCmpNat Zero Zero == LT)",fontsize=16,color="black",shape="box"];263 -> 267[label="",style="solid", color="black", weight=3]; 12.39/5.17 42[label="FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx400)) (compare (Char (Succ wx400)) (Char Zero) == GT)",fontsize=16,color="black",shape="box"];42 -> 51[label="",style="solid", color="black", weight=3]; 12.39/5.17 43[label="wx33",fontsize=16,color="green",shape="box"];44[label="Char Zero",fontsize=16,color="green",shape="box"];45[label="FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (compare (Char Zero) (Char Zero) == GT)",fontsize=16,color="black",shape="box"];45 -> 52[label="",style="solid", color="black", weight=3]; 12.39/5.17 264 -> 201[label="",style="dashed", color="red", weight=0]; 12.39/5.17 264[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (primCmpNat wx320 wx330 == LT)",fontsize=16,color="magenta"];264 -> 268[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 264 -> 269[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 265[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (GT == LT)",fontsize=16,color="black",shape="box"];265 -> 270[label="",style="solid", color="black", weight=3]; 12.39/5.17 266[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (LT == LT)",fontsize=16,color="black",shape="box"];266 -> 271[label="",style="solid", color="black", weight=3]; 12.39/5.17 267[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (EQ == LT)",fontsize=16,color="black",shape="box"];267 -> 272[label="",style="solid", color="black", weight=3]; 12.39/5.17 51[label="FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx400)) (primCmpChar (Char (Succ wx400)) (Char Zero) == GT)",fontsize=16,color="black",shape="box"];51 -> 60[label="",style="solid", color="black", weight=3]; 12.39/5.17 52[label="FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (primCmpChar (Char Zero) (Char Zero) == GT)",fontsize=16,color="black",shape="box"];52 -> 61[label="",style="solid", color="black", weight=3]; 12.39/5.17 268[label="wx330",fontsize=16,color="green",shape="box"];269[label="wx320",fontsize=16,color="green",shape="box"];270[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) False",fontsize=16,color="black",shape="triangle"];270 -> 273[label="",style="solid", color="black", weight=3]; 12.39/5.17 271[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) True",fontsize=16,color="black",shape="box"];271 -> 274[label="",style="solid", color="black", weight=3]; 12.39/5.17 272 -> 270[label="",style="dashed", color="red", weight=0]; 12.39/5.17 272[label="FiniteMap.lookupFM2 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) False",fontsize=16,color="magenta"];60[label="FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx400)) (primCmpNat (Succ wx400) Zero == GT)",fontsize=16,color="black",shape="box"];60 -> 70[label="",style="solid", color="black", weight=3]; 12.39/5.17 61[label="FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];61 -> 71[label="",style="solid", color="black", weight=3]; 12.39/5.17 273[label="FiniteMap.lookupFM1 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (Char (Succ wx31) > Char (Succ wx26))",fontsize=16,color="black",shape="box"];273 -> 275[label="",style="solid", color="black", weight=3]; 12.39/5.17 274 -> 4[label="",style="dashed", color="red", weight=0]; 12.39/5.17 274[label="FiniteMap.lookupFM wx29 (Char (Succ wx31))",fontsize=16,color="magenta"];274 -> 276[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 274 -> 277[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 70[label="FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx400)) (GT == GT)",fontsize=16,color="black",shape="box"];70 -> 79[label="",style="solid", color="black", weight=3]; 12.39/5.17 71[label="FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) (EQ == GT)",fontsize=16,color="black",shape="box"];71 -> 80[label="",style="solid", color="black", weight=3]; 12.39/5.17 275[label="FiniteMap.lookupFM1 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (compare (Char (Succ wx31)) (Char (Succ wx26)) == GT)",fontsize=16,color="black",shape="box"];275 -> 278[label="",style="solid", color="black", weight=3]; 12.39/5.17 276[label="wx29",fontsize=16,color="green",shape="box"];277[label="Char (Succ wx31)",fontsize=16,color="green",shape="box"];79[label="FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char (Succ wx400)) True",fontsize=16,color="black",shape="box"];79 -> 90[label="",style="solid", color="black", weight=3]; 12.39/5.17 80[label="FiniteMap.lookupFM1 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) False",fontsize=16,color="black",shape="box"];80 -> 91[label="",style="solid", color="black", weight=3]; 12.39/5.17 278[label="FiniteMap.lookupFM1 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (primCmpChar (Char (Succ wx31)) (Char (Succ wx26)) == GT)",fontsize=16,color="black",shape="box"];278 -> 279[label="",style="solid", color="black", weight=3]; 12.39/5.17 90 -> 4[label="",style="dashed", color="red", weight=0]; 12.39/5.17 90[label="FiniteMap.lookupFM wx34 (Char (Succ wx400))",fontsize=16,color="magenta"];90 -> 102[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 90 -> 103[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 91[label="FiniteMap.lookupFM0 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) otherwise",fontsize=16,color="black",shape="box"];91 -> 104[label="",style="solid", color="black", weight=3]; 12.39/5.17 279 -> 400[label="",style="dashed", color="red", weight=0]; 12.39/5.17 279[label="FiniteMap.lookupFM1 (Char (Succ wx26)) wx27 wx28 wx29 wx30 (Char (Succ wx31)) (primCmpNat (Succ wx31) (Succ wx26) == GT)",fontsize=16,color="magenta"];279 -> 401[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 279 -> 402[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 279 -> 403[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 279 -> 404[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 279 -> 405[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 279 -> 406[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 279 -> 407[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 279 -> 408[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 102[label="wx34",fontsize=16,color="green",shape="box"];103[label="Char (Succ wx400)",fontsize=16,color="green",shape="box"];104[label="FiniteMap.lookupFM0 (Char Zero) wx31 wx32 wx33 wx34 (Char Zero) True",fontsize=16,color="black",shape="box"];104 -> 114[label="",style="solid", color="black", weight=3]; 12.39/5.17 401[label="wx26",fontsize=16,color="green",shape="box"];402[label="wx29",fontsize=16,color="green",shape="box"];403[label="wx30",fontsize=16,color="green",shape="box"];404[label="Succ wx31",fontsize=16,color="green",shape="box"];405[label="wx28",fontsize=16,color="green",shape="box"];406[label="wx27",fontsize=16,color="green",shape="box"];407[label="wx31",fontsize=16,color="green",shape="box"];408[label="Succ wx26",fontsize=16,color="green",shape="box"];400[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) (primCmpNat wx61 wx62 == GT)",fontsize=16,color="burlywood",shape="triangle"];502[label="wx61/Succ wx610",fontsize=10,color="white",style="solid",shape="box"];400 -> 502[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 502 -> 465[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 503[label="wx61/Zero",fontsize=10,color="white",style="solid",shape="box"];400 -> 503[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 503 -> 466[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 114[label="Just wx31",fontsize=16,color="green",shape="box"];465[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) (primCmpNat (Succ wx610) wx62 == GT)",fontsize=16,color="burlywood",shape="box"];504[label="wx62/Succ wx620",fontsize=10,color="white",style="solid",shape="box"];465 -> 504[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 504 -> 467[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 505[label="wx62/Zero",fontsize=10,color="white",style="solid",shape="box"];465 -> 505[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 505 -> 468[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 466[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) (primCmpNat Zero wx62 == GT)",fontsize=16,color="burlywood",shape="box"];506[label="wx62/Succ wx620",fontsize=10,color="white",style="solid",shape="box"];466 -> 506[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 506 -> 469[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 507[label="wx62/Zero",fontsize=10,color="white",style="solid",shape="box"];466 -> 507[label="",style="solid", color="burlywood", weight=9]; 12.39/5.17 507 -> 470[label="",style="solid", color="burlywood", weight=3]; 12.39/5.17 467[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) (primCmpNat (Succ wx610) (Succ wx620) == GT)",fontsize=16,color="black",shape="box"];467 -> 471[label="",style="solid", color="black", weight=3]; 12.39/5.17 468[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) (primCmpNat (Succ wx610) Zero == GT)",fontsize=16,color="black",shape="box"];468 -> 472[label="",style="solid", color="black", weight=3]; 12.39/5.17 469[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) (primCmpNat Zero (Succ wx620) == GT)",fontsize=16,color="black",shape="box"];469 -> 473[label="",style="solid", color="black", weight=3]; 12.39/5.17 470[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) (primCmpNat Zero Zero == GT)",fontsize=16,color="black",shape="box"];470 -> 474[label="",style="solid", color="black", weight=3]; 12.39/5.17 471 -> 400[label="",style="dashed", color="red", weight=0]; 12.39/5.17 471[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) (primCmpNat wx610 wx620 == GT)",fontsize=16,color="magenta"];471 -> 475[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 471 -> 476[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 472[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) (GT == GT)",fontsize=16,color="black",shape="box"];472 -> 477[label="",style="solid", color="black", weight=3]; 12.39/5.17 473[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) (LT == GT)",fontsize=16,color="black",shape="box"];473 -> 478[label="",style="solid", color="black", weight=3]; 12.39/5.17 474[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) (EQ == GT)",fontsize=16,color="black",shape="box"];474 -> 479[label="",style="solid", color="black", weight=3]; 12.39/5.17 475[label="wx610",fontsize=16,color="green",shape="box"];476[label="wx620",fontsize=16,color="green",shape="box"];477[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) True",fontsize=16,color="black",shape="box"];477 -> 480[label="",style="solid", color="black", weight=3]; 12.39/5.17 478[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) False",fontsize=16,color="black",shape="triangle"];478 -> 481[label="",style="solid", color="black", weight=3]; 12.39/5.17 479 -> 478[label="",style="dashed", color="red", weight=0]; 12.39/5.17 479[label="FiniteMap.lookupFM1 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) False",fontsize=16,color="magenta"];480 -> 4[label="",style="dashed", color="red", weight=0]; 12.39/5.17 480[label="FiniteMap.lookupFM wx59 (Char (Succ wx60))",fontsize=16,color="magenta"];480 -> 482[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 480 -> 483[label="",style="dashed", color="magenta", weight=3]; 12.39/5.17 481[label="FiniteMap.lookupFM0 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) otherwise",fontsize=16,color="black",shape="box"];481 -> 484[label="",style="solid", color="black", weight=3]; 12.39/5.17 482[label="wx59",fontsize=16,color="green",shape="box"];483[label="Char (Succ wx60)",fontsize=16,color="green",shape="box"];484[label="FiniteMap.lookupFM0 (Char (Succ wx55)) wx56 wx57 wx58 wx59 (Char (Succ wx60)) True",fontsize=16,color="black",shape="box"];484 -> 485[label="",style="solid", color="black", weight=3]; 12.39/5.17 485[label="Just wx56",fontsize=16,color="green",shape="box"];} 12.39/5.17 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (6) 12.39/5.17 Obligation: 12.39/5.17 Q DP problem: 12.39/5.17 The TRS P consists of the following rules: 12.39/5.17 12.39/5.17 new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, Succ(wx320), Succ(wx330), h) -> new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, wx320, wx330, h) 12.39/5.17 new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, Succ(wx320), Zero, h) -> new_lookupFM1(wx26, wx27, wx28, wx29, wx30, wx31, Succ(wx31), Succ(wx26), h) 12.39/5.17 new_lookupFM1(wx55, wx56, wx57, wx58, wx59, wx60, Succ(wx610), Succ(wx620), ba) -> new_lookupFM1(wx55, wx56, wx57, wx58, wx59, wx60, wx610, wx620, ba) 12.39/5.17 new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, Zero, Succ(wx330), h) -> new_lookupFM(wx29, Char(Succ(wx31)), h) 12.39/5.17 new_lookupFM1(wx55, wx56, wx57, wx58, wx59, wx60, Succ(wx610), Zero, ba) -> new_lookupFM(wx59, Char(Succ(wx60)), ba) 12.39/5.17 new_lookupFM(Branch(Char(Zero), wx31, wx32, wx33, wx34), Char(Succ(wx400)), bb) -> new_lookupFM(wx34, Char(Succ(wx400)), bb) 12.39/5.17 new_lookupFM(Branch(Char(Succ(wx3000)), wx31, wx32, wx33, wx34), Char(Zero), bb) -> new_lookupFM(wx33, Char(Zero), bb) 12.39/5.17 new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, Zero, Zero, h) -> new_lookupFM20(wx26, wx27, wx28, wx29, wx30, wx31, h) 12.39/5.17 new_lookupFM20(wx26, wx27, wx28, wx29, wx30, wx31, h) -> new_lookupFM1(wx26, wx27, wx28, wx29, wx30, wx31, Succ(wx31), Succ(wx26), h) 12.39/5.17 new_lookupFM(Branch(Char(Succ(wx3000)), wx31, wx32, wx33, wx34), Char(Succ(wx400)), bb) -> new_lookupFM2(wx3000, wx31, wx32, wx33, wx34, wx400, wx400, wx3000, bb) 12.39/5.17 12.39/5.17 R is empty. 12.39/5.17 Q is empty. 12.39/5.17 We have to consider all minimal (P,Q,R)-chains. 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (7) DependencyGraphProof (EQUIVALENT) 12.39/5.17 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (8) 12.39/5.17 Complex Obligation (AND) 12.39/5.17 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (9) 12.39/5.17 Obligation: 12.39/5.17 Q DP problem: 12.39/5.17 The TRS P consists of the following rules: 12.39/5.17 12.39/5.17 new_lookupFM(Branch(Char(Succ(wx3000)), wx31, wx32, wx33, wx34), Char(Zero), bb) -> new_lookupFM(wx33, Char(Zero), bb) 12.39/5.17 12.39/5.17 R is empty. 12.39/5.17 Q is empty. 12.39/5.17 We have to consider all minimal (P,Q,R)-chains. 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (10) QDPSizeChangeProof (EQUIVALENT) 12.39/5.17 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. 12.39/5.17 12.39/5.17 From the DPs we obtained the following set of size-change graphs: 12.39/5.17 *new_lookupFM(Branch(Char(Succ(wx3000)), wx31, wx32, wx33, wx34), Char(Zero), bb) -> new_lookupFM(wx33, Char(Zero), bb) 12.39/5.17 The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 12.39/5.17 12.39/5.17 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (11) 12.39/5.17 YES 12.39/5.17 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (12) 12.39/5.17 Obligation: 12.39/5.17 Q DP problem: 12.39/5.17 The TRS P consists of the following rules: 12.39/5.17 12.39/5.17 new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, Succ(wx320), Zero, h) -> new_lookupFM1(wx26, wx27, wx28, wx29, wx30, wx31, Succ(wx31), Succ(wx26), h) 12.39/5.17 new_lookupFM1(wx55, wx56, wx57, wx58, wx59, wx60, Succ(wx610), Succ(wx620), ba) -> new_lookupFM1(wx55, wx56, wx57, wx58, wx59, wx60, wx610, wx620, ba) 12.39/5.17 new_lookupFM1(wx55, wx56, wx57, wx58, wx59, wx60, Succ(wx610), Zero, ba) -> new_lookupFM(wx59, Char(Succ(wx60)), ba) 12.39/5.17 new_lookupFM(Branch(Char(Zero), wx31, wx32, wx33, wx34), Char(Succ(wx400)), bb) -> new_lookupFM(wx34, Char(Succ(wx400)), bb) 12.39/5.17 new_lookupFM(Branch(Char(Succ(wx3000)), wx31, wx32, wx33, wx34), Char(Succ(wx400)), bb) -> new_lookupFM2(wx3000, wx31, wx32, wx33, wx34, wx400, wx400, wx3000, bb) 12.39/5.17 new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, Succ(wx320), Succ(wx330), h) -> new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, wx320, wx330, h) 12.39/5.17 new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, Zero, Succ(wx330), h) -> new_lookupFM(wx29, Char(Succ(wx31)), h) 12.39/5.17 new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, Zero, Zero, h) -> new_lookupFM20(wx26, wx27, wx28, wx29, wx30, wx31, h) 12.39/5.17 new_lookupFM20(wx26, wx27, wx28, wx29, wx30, wx31, h) -> new_lookupFM1(wx26, wx27, wx28, wx29, wx30, wx31, Succ(wx31), Succ(wx26), h) 12.39/5.17 12.39/5.17 R is empty. 12.39/5.17 Q is empty. 12.39/5.17 We have to consider all minimal (P,Q,R)-chains. 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (13) QDPSizeChangeProof (EQUIVALENT) 12.39/5.17 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. 12.39/5.17 12.39/5.17 From the DPs we obtained the following set of size-change graphs: 12.39/5.17 *new_lookupFM1(wx55, wx56, wx57, wx58, wx59, wx60, Succ(wx610), Succ(wx620), ba) -> new_lookupFM1(wx55, wx56, wx57, wx58, wx59, wx60, wx610, wx620, ba) 12.39/5.17 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 > 7, 8 > 8, 9 >= 9 12.39/5.17 12.39/5.17 12.39/5.17 *new_lookupFM1(wx55, wx56, wx57, wx58, wx59, wx60, Succ(wx610), Zero, ba) -> new_lookupFM(wx59, Char(Succ(wx60)), ba) 12.39/5.17 The graph contains the following edges 5 >= 1, 9 >= 3 12.39/5.17 12.39/5.17 12.39/5.17 *new_lookupFM(Branch(Char(Succ(wx3000)), wx31, wx32, wx33, wx34), Char(Succ(wx400)), bb) -> new_lookupFM2(wx3000, wx31, wx32, wx33, wx34, wx400, wx400, wx3000, bb) 12.39/5.17 The graph contains the following edges 1 > 1, 1 > 2, 1 > 3, 1 > 4, 1 > 5, 2 > 6, 2 > 7, 1 > 8, 3 >= 9 12.39/5.17 12.39/5.17 12.39/5.17 *new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, Succ(wx320), Succ(wx330), h) -> new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, wx320, wx330, h) 12.39/5.17 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 > 7, 8 > 8, 9 >= 9 12.39/5.17 12.39/5.17 12.39/5.17 *new_lookupFM(Branch(Char(Zero), wx31, wx32, wx33, wx34), Char(Succ(wx400)), bb) -> new_lookupFM(wx34, Char(Succ(wx400)), bb) 12.39/5.17 The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 12.39/5.17 12.39/5.17 12.39/5.17 *new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, Zero, Succ(wx330), h) -> new_lookupFM(wx29, Char(Succ(wx31)), h) 12.39/5.17 The graph contains the following edges 4 >= 1, 9 >= 3 12.39/5.17 12.39/5.17 12.39/5.17 *new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, Zero, Zero, h) -> new_lookupFM20(wx26, wx27, wx28, wx29, wx30, wx31, h) 12.39/5.17 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 9 >= 7 12.39/5.17 12.39/5.17 12.39/5.17 *new_lookupFM2(wx26, wx27, wx28, wx29, wx30, wx31, Succ(wx320), Zero, h) -> new_lookupFM1(wx26, wx27, wx28, wx29, wx30, wx31, Succ(wx31), Succ(wx26), h) 12.39/5.17 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 9 >= 9 12.39/5.17 12.39/5.17 12.39/5.17 *new_lookupFM20(wx26, wx27, wx28, wx29, wx30, wx31, h) -> new_lookupFM1(wx26, wx27, wx28, wx29, wx30, wx31, Succ(wx31), Succ(wx26), h) 12.39/5.17 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 >= 6, 7 >= 9 12.39/5.17 12.39/5.17 12.39/5.17 ---------------------------------------- 12.39/5.17 12.39/5.17 (14) 12.39/5.17 YES 12.51/7.35 EOF