8.28/3.66 YES 10.31/4.23 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 10.31/4.23 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 10.31/4.23 10.31/4.23 10.31/4.23 H-Termination with start terms of the given HASKELL could be proven: 10.31/4.23 10.31/4.23 (0) HASKELL 10.31/4.23 (1) BR [EQUIVALENT, 0 ms] 10.31/4.23 (2) HASKELL 10.31/4.23 (3) COR [EQUIVALENT, 0 ms] 10.31/4.23 (4) HASKELL 10.31/4.23 (5) LetRed [EQUIVALENT, 0 ms] 10.31/4.23 (6) HASKELL 10.31/4.23 (7) NumRed [SOUND, 0 ms] 10.31/4.23 (8) HASKELL 10.31/4.23 (9) Narrow [SOUND, 0 ms] 10.31/4.23 (10) QDP 10.31/4.23 (11) TransformationProof [EQUIVALENT, 3 ms] 10.31/4.23 (12) QDP 10.31/4.23 (13) QDPSizeChangeProof [EQUIVALENT, 0 ms] 10.31/4.23 (14) YES 10.31/4.23 10.31/4.23 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (0) 10.31/4.23 Obligation: 10.31/4.23 mainModule Main 10.31/4.23 module Main where { 10.31/4.23 import qualified Prelude; 10.31/4.23 } 10.31/4.23 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (1) BR (EQUIVALENT) 10.31/4.23 Replaced joker patterns by fresh variables and removed binding patterns. 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (2) 10.31/4.23 Obligation: 10.31/4.23 mainModule Main 10.31/4.23 module Main where { 10.31/4.23 import qualified Prelude; 10.31/4.23 } 10.31/4.23 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (3) COR (EQUIVALENT) 10.31/4.23 Cond Reductions: 10.31/4.23 The following Function with conditions 10.31/4.23 "undefined |Falseundefined; 10.31/4.23 " 10.31/4.23 is transformed to 10.31/4.23 "undefined = undefined1; 10.31/4.23 " 10.31/4.23 "undefined0 True = undefined; 10.31/4.23 " 10.31/4.23 "undefined1 = undefined0 False; 10.31/4.23 " 10.31/4.23 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (4) 10.31/4.23 Obligation: 10.31/4.23 mainModule Main 10.31/4.23 module Main where { 10.31/4.23 import qualified Prelude; 10.31/4.23 } 10.31/4.23 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (5) LetRed (EQUIVALENT) 10.31/4.23 Let/Where Reductions: 10.31/4.23 The bindings of the following Let/Where expression 10.31/4.23 "(showChar '[') . (shows x) . showl xs where { 10.31/4.23 showl [] = showChar ']'; 10.31/4.23 showl (x : xs) = (showChar ',') . (shows x) . showl xs; 10.31/4.23 } 10.31/4.23 " 10.31/4.23 are unpacked to the following functions on top level 10.31/4.23 "showListShowl [] = showChar ']'; 10.31/4.23 showListShowl (x : xs) = (showChar ',') . (shows x) . showListShowl xs; 10.31/4.23 " 10.31/4.23 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (6) 10.31/4.23 Obligation: 10.31/4.23 mainModule Main 10.31/4.23 module Main where { 10.31/4.23 import qualified Prelude; 10.31/4.23 } 10.31/4.23 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (7) NumRed (SOUND) 10.31/4.23 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (8) 10.31/4.23 Obligation: 10.31/4.23 mainModule Main 10.31/4.23 module Main where { 10.31/4.23 import qualified Prelude; 10.31/4.23 } 10.31/4.23 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (9) Narrow (SOUND) 10.31/4.23 Haskell To QDPs 10.31/4.23 10.31/4.23 digraph dp_graph { 10.31/4.23 node [outthreshold=100, inthreshold=100];1[label="showList",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 10.31/4.23 3[label="showList vx3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 10.31/4.23 4[label="showList vx3 vx4",fontsize=16,color="burlywood",shape="triangle"];139[label="vx3/vx30 : vx31",fontsize=10,color="white",style="solid",shape="box"];4 -> 139[label="",style="solid", color="burlywood", weight=9]; 10.31/4.23 139 -> 5[label="",style="solid", color="burlywood", weight=3]; 10.31/4.23 140[label="vx3/[]",fontsize=10,color="white",style="solid",shape="box"];4 -> 140[label="",style="solid", color="burlywood", weight=9]; 10.31/4.23 140 -> 6[label="",style="solid", color="burlywood", weight=3]; 10.31/4.23 5[label="showList (vx30 : vx31) vx4",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 10.31/4.23 6[label="showList [] vx4",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 10.31/4.23 7 -> 9[label="",style="dashed", color="red", weight=0]; 10.31/4.23 7[label="(showChar (Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) . (shows vx30) . showListShowl vx31",fontsize=16,color="magenta"];7 -> 10[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 7 -> 11[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 7 -> 12[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 7 -> 13[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 8 -> 18[label="",style="dashed", color="red", weight=0]; 10.31/4.23 8[label="showString (Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) : Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) : []) vx4",fontsize=16,color="magenta"];8 -> 19[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 8 -> 20[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 8 -> 21[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 10[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];11[label="vx30",fontsize=16,color="green",shape="box"];12[label="vx31",fontsize=16,color="green",shape="box"];13[label="vx4",fontsize=16,color="green",shape="box"];9[label="(showChar (Char (Succ vx6))) . (shows vx7) . showListShowl vx8",fontsize=16,color="black",shape="triangle"];9 -> 17[label="",style="solid", color="black", weight=3]; 10.31/4.23 19[label="vx4",fontsize=16,color="green",shape="box"];20[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];21[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];18[label="showString (Char (Succ vx14) : Char (Succ vx15) : []) vx16",fontsize=16,color="black",shape="triangle"];18 -> 25[label="",style="solid", color="black", weight=3]; 10.31/4.23 17 -> 82[label="",style="dashed", color="red", weight=0]; 10.31/4.23 17[label="showChar (Char (Succ vx6)) ((shows vx7) . showListShowl vx8)",fontsize=16,color="magenta"];17 -> 83[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 17 -> 84[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 25[label="(++) (Char (Succ vx14) : Char (Succ vx15) : []) vx16",fontsize=16,color="black",shape="box"];25 -> 27[label="",style="solid", color="black", weight=3]; 10.31/4.23 83[label="(shows vx7) . showListShowl vx8",fontsize=16,color="black",shape="box"];83 -> 87[label="",style="solid", color="black", weight=3]; 10.31/4.23 84[label="vx6",fontsize=16,color="green",shape="box"];82[label="showChar (Char (Succ vx18)) vx19",fontsize=16,color="black",shape="triangle"];82 -> 88[label="",style="solid", color="black", weight=3]; 10.31/4.23 27[label="Char (Succ vx14) : (Char (Succ vx15) : []) ++ vx16",fontsize=16,color="green",shape="box"];27 -> 29[label="",style="dashed", color="green", weight=3]; 10.31/4.23 87[label="shows vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];87 -> 89[label="",style="solid", color="black", weight=3]; 10.31/4.23 88[label="(:) Char (Succ vx18) vx19",fontsize=16,color="green",shape="box"];29[label="(Char (Succ vx15) : []) ++ vx16",fontsize=16,color="black",shape="box"];29 -> 31[label="",style="solid", color="black", weight=3]; 10.31/4.23 89[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="blue",shape="box"];141[label="showsPrec :: Int -> ((@3) a b c) -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 141[label="",style="solid", color="blue", weight=9]; 10.31/4.23 141 -> 90[label="",style="solid", color="blue", weight=3]; 10.31/4.23 142[label="showsPrec :: Int -> IOError -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 142[label="",style="solid", color="blue", weight=9]; 10.31/4.23 142 -> 91[label="",style="solid", color="blue", weight=3]; 10.31/4.23 143[label="showsPrec :: Int -> Integer -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 143[label="",style="solid", color="blue", weight=9]; 10.31/4.23 143 -> 92[label="",style="solid", color="blue", weight=3]; 10.31/4.23 144[label="showsPrec :: Int -> (Ratio a) -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 144[label="",style="solid", color="blue", weight=9]; 10.31/4.23 144 -> 93[label="",style="solid", color="blue", weight=3]; 10.31/4.23 145[label="showsPrec :: Int -> Bool -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 145[label="",style="solid", color="blue", weight=9]; 10.31/4.23 145 -> 94[label="",style="solid", color="blue", weight=3]; 10.31/4.23 146[label="showsPrec :: Int -> (Maybe a) -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 146[label="",style="solid", color="blue", weight=9]; 10.31/4.23 146 -> 95[label="",style="solid", color="blue", weight=3]; 10.31/4.23 147[label="showsPrec :: Int -> (IO a) -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 147[label="",style="solid", color="blue", weight=9]; 10.31/4.23 147 -> 96[label="",style="solid", color="blue", weight=3]; 10.31/4.23 148[label="showsPrec :: Int -> IOErrorKind -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 148[label="",style="solid", color="blue", weight=9]; 10.31/4.23 148 -> 97[label="",style="solid", color="blue", weight=3]; 10.31/4.23 149[label="showsPrec :: Int -> Int -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 149[label="",style="solid", color="blue", weight=9]; 10.31/4.23 149 -> 98[label="",style="solid", color="blue", weight=3]; 10.31/4.23 150[label="showsPrec :: Int -> ([] a) -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 150[label="",style="solid", color="blue", weight=9]; 10.31/4.23 150 -> 99[label="",style="solid", color="blue", weight=3]; 10.31/4.23 151[label="showsPrec :: Int -> () -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 151[label="",style="solid", color="blue", weight=9]; 10.31/4.23 151 -> 100[label="",style="solid", color="blue", weight=3]; 10.31/4.23 152[label="showsPrec :: Int -> Double -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 152[label="",style="solid", color="blue", weight=9]; 10.31/4.23 152 -> 101[label="",style="solid", color="blue", weight=3]; 10.31/4.23 153[label="showsPrec :: Int -> Float -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 153[label="",style="solid", color="blue", weight=9]; 10.31/4.23 153 -> 102[label="",style="solid", color="blue", weight=3]; 10.31/4.23 154[label="showsPrec :: Int -> HugsException -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 154[label="",style="solid", color="blue", weight=9]; 10.31/4.23 154 -> 103[label="",style="solid", color="blue", weight=3]; 10.31/4.23 155[label="showsPrec :: Int -> ((@2) a b) -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 155[label="",style="solid", color="blue", weight=9]; 10.31/4.23 155 -> 104[label="",style="solid", color="blue", weight=3]; 10.31/4.23 156[label="showsPrec :: Int -> Ordering -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 156[label="",style="solid", color="blue", weight=9]; 10.31/4.23 156 -> 105[label="",style="solid", color="blue", weight=3]; 10.31/4.23 157[label="showsPrec :: Int -> Char -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 157[label="",style="solid", color="blue", weight=9]; 10.31/4.23 157 -> 106[label="",style="solid", color="blue", weight=3]; 10.31/4.23 158[label="showsPrec :: Int -> (Either a b) -> ([] Char) -> [] Char",fontsize=10,color="white",style="solid",shape="box"];89 -> 158[label="",style="solid", color="blue", weight=9]; 10.31/4.23 158 -> 107[label="",style="solid", color="blue", weight=3]; 10.31/4.23 31[label="Char (Succ vx15) : [] ++ vx16",fontsize=16,color="green",shape="box"];31 -> 33[label="",style="dashed", color="green", weight=3]; 10.31/4.23 90[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];90 -> 108[label="",style="solid", color="black", weight=3]; 10.31/4.23 91[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];91 -> 109[label="",style="solid", color="black", weight=3]; 10.31/4.23 92[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];92 -> 110[label="",style="solid", color="black", weight=3]; 10.31/4.23 93[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];93 -> 111[label="",style="solid", color="black", weight=3]; 10.31/4.23 94[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];94 -> 112[label="",style="solid", color="black", weight=3]; 10.31/4.23 95[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];95 -> 113[label="",style="solid", color="black", weight=3]; 10.31/4.23 96[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];96 -> 114[label="",style="solid", color="black", weight=3]; 10.31/4.23 97[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];97 -> 115[label="",style="solid", color="black", weight=3]; 10.31/4.23 98[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];98 -> 116[label="",style="solid", color="black", weight=3]; 10.31/4.23 99[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];99 -> 117[label="",style="solid", color="black", weight=3]; 10.31/4.23 100[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="burlywood",shape="box"];159[label="vx7/()",fontsize=10,color="white",style="solid",shape="box"];100 -> 159[label="",style="solid", color="burlywood", weight=9]; 10.31/4.23 159 -> 118[label="",style="solid", color="burlywood", weight=3]; 10.31/4.23 101[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];101 -> 119[label="",style="solid", color="black", weight=3]; 10.31/4.23 102[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];102 -> 120[label="",style="solid", color="black", weight=3]; 10.31/4.23 103[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];103 -> 121[label="",style="solid", color="black", weight=3]; 10.31/4.23 104[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];104 -> 122[label="",style="solid", color="black", weight=3]; 10.31/4.23 105[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];105 -> 123[label="",style="solid", color="black", weight=3]; 10.31/4.23 106[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];106 -> 124[label="",style="solid", color="black", weight=3]; 10.31/4.23 107[label="showsPrec (Pos Zero) vx7 (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];107 -> 125[label="",style="solid", color="black", weight=3]; 10.31/4.23 33[label="[] ++ vx16",fontsize=16,color="black",shape="box"];33 -> 52[label="",style="solid", color="black", weight=3]; 10.31/4.23 108[label="error []",fontsize=16,color="red",shape="box"];109[label="error []",fontsize=16,color="red",shape="box"];110[label="error []",fontsize=16,color="red",shape="box"];111[label="error []",fontsize=16,color="red",shape="box"];112[label="error []",fontsize=16,color="red",shape="box"];113[label="error []",fontsize=16,color="red",shape="box"];114[label="error []",fontsize=16,color="red",shape="box"];115[label="error []",fontsize=16,color="red",shape="box"];116[label="error []",fontsize=16,color="red",shape="box"];117[label="error []",fontsize=16,color="red",shape="box"];118[label="showsPrec (Pos Zero) () (showListShowl vx8 vx9)",fontsize=16,color="black",shape="box"];118 -> 126[label="",style="solid", color="black", weight=3]; 10.31/4.23 119[label="error []",fontsize=16,color="red",shape="box"];120[label="error []",fontsize=16,color="red",shape="box"];121[label="error []",fontsize=16,color="red",shape="box"];122[label="error []",fontsize=16,color="red",shape="box"];123[label="error []",fontsize=16,color="red",shape="box"];124[label="error []",fontsize=16,color="red",shape="box"];125[label="error []",fontsize=16,color="red",shape="box"];52[label="vx16",fontsize=16,color="green",shape="box"];126 -> 18[label="",style="dashed", color="red", weight=0]; 10.31/4.23 126[label="showString (Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))) : Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))) : []) (showListShowl vx8 vx9)",fontsize=16,color="magenta"];126 -> 127[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 126 -> 128[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 126 -> 129[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 127[label="showListShowl vx8 vx9",fontsize=16,color="burlywood",shape="box"];160[label="vx8/vx80 : vx81",fontsize=10,color="white",style="solid",shape="box"];127 -> 160[label="",style="solid", color="burlywood", weight=9]; 10.31/4.23 160 -> 130[label="",style="solid", color="burlywood", weight=3]; 10.31/4.23 161[label="vx8/[]",fontsize=10,color="white",style="solid",shape="box"];127 -> 161[label="",style="solid", color="burlywood", weight=9]; 10.31/4.23 161 -> 131[label="",style="solid", color="burlywood", weight=3]; 10.31/4.23 128[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];129[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];130[label="showListShowl (vx80 : vx81) vx9",fontsize=16,color="black",shape="box"];130 -> 132[label="",style="solid", color="black", weight=3]; 10.31/4.23 131[label="showListShowl [] vx9",fontsize=16,color="black",shape="box"];131 -> 133[label="",style="solid", color="black", weight=3]; 10.31/4.23 132 -> 9[label="",style="dashed", color="red", weight=0]; 10.31/4.23 132[label="(showChar (Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))) . (shows vx80) . showListShowl vx81",fontsize=16,color="magenta"];132 -> 134[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 132 -> 135[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 132 -> 136[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 133 -> 82[label="",style="dashed", color="red", weight=0]; 10.31/4.23 133[label="showChar (Char (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) vx9",fontsize=16,color="magenta"];133 -> 137[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 133 -> 138[label="",style="dashed", color="magenta", weight=3]; 10.31/4.23 134[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];135[label="vx80",fontsize=16,color="green",shape="box"];136[label="vx81",fontsize=16,color="green",shape="box"];137[label="vx9",fontsize=16,color="green",shape="box"];138[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];} 10.31/4.23 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (10) 10.31/4.23 Obligation: 10.31/4.23 Q DP problem: 10.31/4.23 The TRS P consists of the following rules: 10.31/4.23 10.31/4.23 new_pt(vx6, @0, :(vx80, vx81), vx9, ty_@0, h) -> new_pt(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))))))))))))))))))))))))))))))))))))), vx80, vx81, vx9, h, h) 10.31/4.23 10.31/4.23 R is empty. 10.31/4.23 Q is empty. 10.31/4.23 We have to consider all minimal (P,Q,R)-chains. 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (11) TransformationProof (EQUIVALENT) 10.31/4.23 By instantiating [LPAR04] the rule new_pt(vx6, @0, :(vx80, vx81), vx9, ty_@0, h) -> new_pt(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))))))))))))))))))))))))))))))))))))), vx80, vx81, vx9, h, h) we obtained the following new rules [LPAR04]: 10.31/4.23 10.31/4.23 (new_pt(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))))))))))))))))))))))))))))))))))))), @0, :(x1, x2), z3, ty_@0, ty_@0) -> new_pt(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))))))))))))))))))))))))))))))))))))), x1, x2, z3, ty_@0, ty_@0),new_pt(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))))))))))))))))))))))))))))))))))))), @0, :(x1, x2), z3, ty_@0, ty_@0) -> new_pt(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))))))))))))))))))))))))))))))))))))), x1, x2, z3, ty_@0, ty_@0)) 10.31/4.23 10.31/4.23 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (12) 10.31/4.23 Obligation: 10.31/4.23 Q DP problem: 10.31/4.23 The TRS P consists of the following rules: 10.31/4.23 10.31/4.23 new_pt(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))))))))))))))))))))))))))))))))))))), @0, :(x1, x2), z3, ty_@0, ty_@0) -> new_pt(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))))))))))))))))))))))))))))))))))))), x1, x2, z3, ty_@0, ty_@0) 10.31/4.23 10.31/4.23 R is empty. 10.31/4.23 Q is empty. 10.31/4.23 We have to consider all minimal (P,Q,R)-chains. 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (13) QDPSizeChangeProof (EQUIVALENT) 10.31/4.23 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. 10.31/4.23 10.31/4.23 From the DPs we obtained the following set of size-change graphs: 10.31/4.23 *new_pt(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))))))))))))))))))))))))))))))))))))), @0, :(x1, x2), z3, ty_@0, ty_@0) -> new_pt(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Succ(Zero))))))))))))))))))))))))))))))))))))))))))), x1, x2, z3, ty_@0, ty_@0) 10.31/4.23 The graph contains the following edges 1 >= 1, 3 > 2, 3 > 3, 4 >= 4, 5 >= 5, 6 >= 5, 5 >= 6, 6 >= 6 10.31/4.23 10.31/4.23 10.31/4.23 ---------------------------------------- 10.31/4.23 10.31/4.23 (14) 10.31/4.23 YES 10.31/4.27 EOF