9.28/4.34 YES 11.08/4.80 proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs 11.08/4.80 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 11.08/4.80 11.08/4.80 11.08/4.80 H-Termination with start terms of the given HASKELL could be proven: 11.08/4.80 11.08/4.80 (0) HASKELL 11.08/4.80 (1) BR [EQUIVALENT, 0 ms] 11.08/4.80 (2) HASKELL 11.08/4.80 (3) COR [EQUIVALENT, 0 ms] 11.08/4.80 (4) HASKELL 11.08/4.80 (5) Narrow [EQUIVALENT, 24 ms] 11.08/4.80 (6) YES 11.08/4.80 11.08/4.80 11.08/4.80 ---------------------------------------- 11.08/4.80 11.08/4.80 (0) 11.08/4.80 Obligation: 11.08/4.80 mainModule Main 11.08/4.80 module FiniteMap where { 11.08/4.80 import qualified Main; 11.08/4.80 import qualified Maybe; 11.08/4.80 import qualified Prelude; 11.08/4.80 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 11.08/4.80 11.08/4.80 emptyFM :: FiniteMap a b; 11.08/4.80 emptyFM = EmptyFM; 11.08/4.80 11.08/4.80 } 11.08/4.80 module Maybe where { 11.08/4.80 import qualified FiniteMap; 11.08/4.80 import qualified Main; 11.08/4.80 import qualified Prelude; 11.08/4.80 } 11.08/4.80 module Main where { 11.08/4.80 import qualified FiniteMap; 11.08/4.80 import qualified Maybe; 11.08/4.80 import qualified Prelude; 11.08/4.80 } 11.08/4.80 11.08/4.80 ---------------------------------------- 11.08/4.80 11.08/4.80 (1) BR (EQUIVALENT) 11.08/4.80 Replaced joker patterns by fresh variables and removed binding patterns. 11.08/4.80 ---------------------------------------- 11.08/4.80 11.08/4.80 (2) 11.08/4.80 Obligation: 11.08/4.80 mainModule Main 11.08/4.80 module FiniteMap where { 11.08/4.80 import qualified Main; 11.08/4.80 import qualified Maybe; 11.08/4.80 import qualified Prelude; 11.08/4.80 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 11.08/4.80 11.08/4.80 emptyFM :: FiniteMap b a; 11.08/4.80 emptyFM = EmptyFM; 11.08/4.80 11.08/4.80 } 11.08/4.80 module Maybe where { 11.08/4.80 import qualified FiniteMap; 11.08/4.80 import qualified Main; 11.08/4.80 import qualified Prelude; 11.08/4.80 } 11.08/4.80 module Main where { 11.08/4.80 import qualified FiniteMap; 11.08/4.80 import qualified Maybe; 11.08/4.80 import qualified Prelude; 11.08/4.80 } 11.08/4.80 11.08/4.80 ---------------------------------------- 11.08/4.80 11.08/4.80 (3) COR (EQUIVALENT) 11.08/4.80 Cond Reductions: 11.08/4.80 The following Function with conditions 11.08/4.80 "undefined |Falseundefined; 11.08/4.80 " 11.08/4.80 is transformed to 11.08/4.80 "undefined = undefined1; 11.08/4.80 " 11.08/4.80 "undefined0 True = undefined; 11.08/4.80 " 11.08/4.80 "undefined1 = undefined0 False; 11.08/4.80 " 11.08/4.80 11.08/4.80 ---------------------------------------- 11.08/4.80 11.08/4.80 (4) 11.08/4.80 Obligation: 11.08/4.80 mainModule Main 11.08/4.80 module FiniteMap where { 11.08/4.80 import qualified Main; 11.08/4.80 import qualified Maybe; 11.08/4.80 import qualified Prelude; 11.08/4.80 data FiniteMap a b = EmptyFM | Branch a b Int (FiniteMap a b) (FiniteMap a b) ; 11.08/4.80 11.08/4.80 emptyFM :: FiniteMap b a; 11.08/4.80 emptyFM = EmptyFM; 11.08/4.80 11.08/4.80 } 11.08/4.80 module Maybe where { 11.08/4.80 import qualified FiniteMap; 11.08/4.80 import qualified Main; 11.08/4.80 import qualified Prelude; 11.08/4.80 } 11.08/4.80 module Main where { 11.08/4.80 import qualified FiniteMap; 11.08/4.80 import qualified Maybe; 11.08/4.80 import qualified Prelude; 11.08/4.80 } 11.08/4.80 11.08/4.80 ---------------------------------------- 11.08/4.80 11.08/4.80 (5) Narrow (EQUIVALENT) 11.08/4.80 Haskell To QDPs 11.08/4.80 11.08/4.80 digraph dp_graph { 11.08/4.80 node [outthreshold=100, inthreshold=100];1[label="FiniteMap.emptyFM",fontsize=16,color="black",shape="box"];1 -> 3[label="",style="solid", color="black", weight=3]; 11.08/4.80 3[label="FiniteMap.EmptyFM",fontsize=16,color="green",shape="box"];} 11.08/4.80 11.08/4.80 ---------------------------------------- 11.08/4.80 11.08/4.80 (6) 11.08/4.80 YES 11.21/5.83 EOF