190.27/173.41 MAYBE 192.86/174.14 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 192.86/174.14 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 192.86/174.14 192.86/174.14 192.86/174.14 H-Termination with start terms of the given HASKELL could not be shown: 192.86/174.14 192.86/174.14 (0) HASKELL 192.86/174.14 (1) LR [EQUIVALENT, 0 ms] 192.86/174.14 (2) HASKELL 192.86/174.14 (3) CR [EQUIVALENT, 0 ms] 192.86/174.14 (4) HASKELL 192.86/174.14 (5) IFR [EQUIVALENT, 0 ms] 192.86/174.14 (6) HASKELL 192.86/174.14 (7) BR [EQUIVALENT, 4 ms] 192.86/174.14 (8) HASKELL 192.86/174.14 (9) COR [EQUIVALENT, 0 ms] 192.86/174.14 (10) HASKELL 192.86/174.14 (11) LetRed [EQUIVALENT, 0 ms] 192.86/174.14 (12) HASKELL 192.86/174.14 (13) NumRed [SOUND, 0 ms] 192.86/174.14 (14) HASKELL 192.86/174.14 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (0) 192.86/174.14 Obligation: 192.86/174.14 mainModule Main 192.86/174.14 module Main where { 192.86/174.14 import qualified Prelude; 192.86/174.14 } 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (1) LR (EQUIVALENT) 192.86/174.14 Lambda Reductions: 192.86/174.14 The following Lambda expression 192.86/174.14 "\ab->(a,b)" 192.86/174.14 is transformed to 192.86/174.14 "zip0 a b = (a,b); 192.86/174.14 " 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (2) 192.86/174.14 Obligation: 192.86/174.14 mainModule Main 192.86/174.14 module Main where { 192.86/174.14 import qualified Prelude; 192.86/174.14 } 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (3) CR (EQUIVALENT) 192.86/174.14 Case Reductions: 192.86/174.14 The following Case expression 192.86/174.14 "case loc of { 192.86/174.14 [] -> id; 192.86/174.14 _ -> (showString ('\10' : 'A' : 'c' : 't' : 'i' : 'o' : 'n' : ':' : '\32' : [])) . showString loc} 192.86/174.14 " 192.86/174.14 is transformed to 192.86/174.14 "showsPrec0 loc [] = id; 192.86/174.14 showsPrec0 loc _ = (showString ('\10' : 'A' : 'c' : 't' : 'i' : 'o' : 'n' : ':' : '\32' : [])) . showString loc; 192.86/174.14 " 192.86/174.14 The following Case expression 192.86/174.14 "case descr of { 192.86/174.14 [] -> id; 192.86/174.14 _ -> (showString ('\10' : 'R' : 'e' : 'a' : 's' : 'o' : 'n' : ':' : '\32' : [])) . showString descr} 192.86/174.14 " 192.86/174.14 is transformed to 192.86/174.14 "showsPrec1 descr [] = id; 192.86/174.14 showsPrec1 descr _ = (showString ('\10' : 'R' : 'e' : 'a' : 's' : 'o' : 'n' : ':' : '\32' : [])) . showString descr; 192.86/174.14 " 192.86/174.14 The following Case expression 192.86/174.14 "case mbFile of { 192.86/174.14 Nothing -> id; 192.86/174.14 Just name -> (showString ('\10' : 'R' : 'e' : 's' : 'o' : 'u' : 'r' : 'c' : 'e' : ':' : '\32' : [])) . showString name} 192.86/174.14 " 192.86/174.14 is transformed to 192.86/174.14 "showsPrec2 Nothing = id; 192.86/174.14 showsPrec2 (Just name) = (showString ('\10' : 'R' : 'e' : 's' : 'o' : 'u' : 'r' : 'c' : 'e' : ':' : '\32' : [])) . showString name; 192.86/174.14 " 192.86/174.14 The following Case expression 192.86/174.14 "case x of { 192.86/174.14 IOError_UserError -> 'U' : 'E' : []; 192.86/174.14 IOError_IllegalError -> 'I' : 'O' : []; 192.86/174.14 IOError_PermDenied -> 'P' : 'D' : []; 192.86/174.14 IOError_AlreadyExists -> 'A' : 'E' : []; 192.86/174.14 IOError_AlreadyInUse -> 'R' : 'B' : []; 192.86/174.14 IOError_DoesNotExist -> 'D' : 'N' : 'E' : []; 192.86/174.14 IOError_FullError -> 'R' : 'E' : []; 192.86/174.14 IOError_EOF -> 'E' : 'O' : 'F' : []; 192.86/174.14 IOError_WriteError -> 'W' : 'E' : []} 192.86/174.14 " 192.86/174.14 is transformed to 192.86/174.14 "show0 IOError_UserError = 'U' : 'E' : []; 192.86/174.14 show0 IOError_IllegalError = 'I' : 'O' : []; 192.86/174.14 show0 IOError_PermDenied = 'P' : 'D' : []; 192.86/174.14 show0 IOError_AlreadyExists = 'A' : 'E' : []; 192.86/174.14 show0 IOError_AlreadyInUse = 'R' : 'B' : []; 192.86/174.14 show0 IOError_DoesNotExist = 'D' : 'N' : 'E' : []; 192.86/174.14 show0 IOError_FullError = 'R' : 'E' : []; 192.86/174.14 show0 IOError_EOF = 'E' : 'O' : 'F' : []; 192.86/174.14 show0 IOError_WriteError = 'W' : 'E' : []; 192.86/174.14 " 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (4) 192.86/174.14 Obligation: 192.86/174.14 mainModule Main 192.86/174.14 module Main where { 192.86/174.14 import qualified Prelude; 192.86/174.14 } 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (5) IFR (EQUIVALENT) 192.86/174.14 If Reductions: 192.86/174.14 The following If expression 192.86/174.14 "if b then (showChar '(') . p . showChar ')' else p" 192.86/174.14 is transformed to 192.86/174.14 "showParen0 p True = (showChar '(') . p . showChar ')'; 192.86/174.14 showParen0 p False = p; 192.86/174.14 " 192.86/174.14 The following If expression 192.86/174.14 "if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero" 192.86/174.14 is transformed to 192.86/174.14 "primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y)); 192.86/174.14 primDivNatS0 x y False = Zero; 192.86/174.14 " 192.86/174.14 The following If expression 192.86/174.14 "if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x" 192.86/174.14 is transformed to 192.86/174.14 "primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y); 192.86/174.14 primModNatS0 x y False = Succ x; 192.86/174.14 " 192.86/174.14 The following If expression 192.86/174.14 "if primGEqNatS x y then primModNatP (primMinusNatS x y) (Succ y) else primMinusNatS y x" 192.86/174.14 is transformed to 192.86/174.14 "primModNatP0 x y True = primModNatP (primMinusNatS x y) (Succ y); 192.86/174.14 primModNatP0 x y False = primMinusNatS y x; 192.86/174.14 " 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (6) 192.86/174.14 Obligation: 192.86/174.14 mainModule Main 192.86/174.14 module Main where { 192.86/174.14 import qualified Prelude; 192.86/174.14 } 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (7) BR (EQUIVALENT) 192.86/174.14 Replaced joker patterns by fresh variables and removed binding patterns. 192.86/174.14 192.86/174.14 Binding Reductions: 192.86/174.14 The bind variable of the following binding Pattern 192.86/174.14 "s@(wz : xu)" 192.86/174.14 is replaced by the following term 192.86/174.14 "wz : xu" 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (8) 192.86/174.14 Obligation: 192.86/174.14 mainModule Main 192.86/174.14 module Main where { 192.86/174.14 import qualified Prelude; 192.86/174.14 } 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (9) COR (EQUIVALENT) 192.86/174.14 Cond Reductions: 192.86/174.14 The following Function with conditions 192.86/174.14 "showsPrec p ''' = showString (''' : '\' : ''' : ''' : []); 192.86/174.14 showsPrec p c = (showChar ''') . (showLitChar c) . showChar '''; 192.86/174.14 " 192.86/174.14 is transformed to 192.86/174.14 "showsPrec p zw = showsPrec5 p zw; 192.86/174.14 showsPrec p c = showsPrec3 p c; 192.86/174.14 " 192.86/174.14 "showsPrec3 p c = (showChar ''') . (showLitChar c) . showChar '''; 192.86/174.14 " 192.86/174.14 "showsPrec4 True p zw = showString (''' : '\' : ''' : ''' : []); 192.86/174.14 showsPrec4 zx zy zz = showsPrec3 zy zz; 192.86/174.14 " 192.86/174.14 "showsPrec5 p zw = showsPrec4 (zw == ''') p zw; 192.86/174.14 showsPrec5 vuu vuv = showsPrec3 vuu vuv; 192.86/174.14 " 192.86/174.14 The following Function with conditions 192.86/174.14 "showl [] = showChar '"'; 192.86/174.14 showl ('"' : cs) = (showString ('\' : '"' : [])) . showl cs; 192.86/174.14 showl (c : cs) = (showLitChar c) . showl cs; 192.86/174.14 " 192.86/174.14 is transformed to 192.86/174.14 "showl [] = showl3 []; 192.86/174.14 showl (vuy : cs) = showl2 (vuy : cs); 192.86/174.14 showl (c : cs) = showl0 (c : cs); 192.86/174.14 " 192.86/174.14 "showl0 (c : cs) = (showLitChar c) . showl cs; 192.86/174.14 " 192.86/174.14 "showl1 True (vuy : cs) = (showString ('\' : '"' : [])) . showl cs; 192.86/174.14 showl1 vuz vvu = showl0 vvu; 192.86/174.14 " 192.86/174.14 "showl2 (vuy : cs) = showl1 (vuy == '"') (vuy : cs); 192.86/174.14 showl2 vvv = showl0 vvv; 192.86/174.14 " 192.86/174.14 "showl3 [] = showChar '"'; 192.86/174.14 showl3 vvx = showl2 vvx; 192.86/174.14 " 192.86/174.14 The following Function with conditions 192.86/174.14 "takeWhile p [] = []; 192.86/174.14 takeWhile p (x : xs)|p xx : takeWhile p xs|otherwise[]; 192.86/174.14 " 192.86/174.14 is transformed to 192.86/174.14 "takeWhile p [] = takeWhile3 p []; 192.86/174.14 takeWhile p (x : xs) = takeWhile2 p (x : xs); 192.86/174.14 " 192.86/174.14 "takeWhile1 p x xs True = x : takeWhile p xs; 192.86/174.14 takeWhile1 p x xs False = takeWhile0 p x xs otherwise; 192.86/174.14 " 192.86/174.14 "takeWhile0 p x xs True = []; 192.86/174.14 " 192.86/174.14 "takeWhile2 p (x : xs) = takeWhile1 p x xs (p x); 192.86/174.14 " 192.86/174.14 "takeWhile3 p [] = []; 192.86/174.14 takeWhile3 vwu vwv = takeWhile2 vwu vwv; 192.86/174.14 " 192.86/174.14 The following Function with conditions 192.86/174.14 "!! (x : vy) 0 = x; 192.86/174.14 !! (vz : xs) n|n > 0xs !! (n - 1); 192.86/174.14 !! (wu : wv) ww = error []; 192.86/174.14 !! [] wx = error []; 192.86/174.14 " 192.86/174.14 is transformed to 192.86/174.14 "!! (x : vy) vxy = emEm5 (x : vy) vxy; 192.86/174.14 !! (vz : xs) n = emEm3 (vz : xs) n; 192.86/174.14 !! (wu : wv) ww = emEm1 (wu : wv) ww; 192.86/174.14 !! [] wx = emEm0 [] wx; 192.86/174.14 " 192.86/174.14 "emEm0 [] wx = error []; 192.86/174.14 " 192.86/174.14 "emEm1 (wu : wv) ww = error []; 192.86/174.14 emEm1 vwy vwz = emEm0 vwy vwz; 192.86/174.14 " 192.86/174.14 "emEm2 vz xs n True = xs !! (n - 1); 192.86/174.14 emEm2 vz xs n False = emEm1 (vz : xs) n; 192.86/174.14 " 192.86/174.14 "emEm3 (vz : xs) n = emEm2 vz xs n (n > 0); 192.86/174.14 emEm3 vxv vxw = emEm1 vxv vxw; 192.86/174.14 " 192.86/174.14 "emEm4 True (x : vy) vxy = x; 192.86/174.14 emEm4 vxz vyu vyv = emEm3 vyu vyv; 192.86/174.14 " 192.86/174.14 "emEm5 (x : vy) vxy = emEm4 (vxy == 0) (x : vy) vxy; 192.86/174.14 emEm5 vyw vyx = emEm3 vyw vyx; 192.86/174.14 " 192.86/174.14 The following Function with conditions 192.86/174.14 "showLitChar c|c > '\127'(showChar '\') . protectEsc isDigit (shows (fromEnum c)); 192.86/174.14 showLitChar '\127' = showString ('\' : 'D' : 'E' : 'L' : []); 192.86/174.14 showLitChar '\' = showString ('\' : '\' : []); 192.86/174.14 showLitChar c|c >= '\32'showChar c; 192.86/174.14 showLitChar '\7' = showString ('\' : 'a' : []); 192.86/174.14 showLitChar '\8' = showString ('\' : 'b' : []); 192.86/174.14 showLitChar '\12' = showString ('\' : 'f' : []); 192.86/174.14 showLitChar '\10' = showString ('\' : 'n' : []); 192.86/174.14 showLitChar '\13' = showString ('\' : 'r' : []); 192.86/174.14 showLitChar '\9' = showString ('\' : 't' : []); 192.86/174.14 showLitChar '\11' = showString ('\' : 'v' : []); 192.86/174.14 showLitChar '\14' = protectEsc ('H' ==) (showString ('\' : 'S' : 'O' : [])); 192.86/174.14 showLitChar c = showString ('\' : snd (asciiTab !! (fromEnum c))); 192.86/174.14 " 192.86/174.14 is transformed to 192.86/174.14 "showLitChar c = showLitChar24 c; 192.86/174.14 showLitChar wyz = showLitChar22 wyz; 192.86/174.14 showLitChar wyv = showLitChar20 wyv; 192.86/174.14 showLitChar c = showLitChar18 c; 192.86/174.14 showLitChar wxw = showLitChar16 wxw; 192.86/174.14 showLitChar wwy = showLitChar14 wwy; 192.86/174.14 showLitChar wwu = showLitChar12 wwu; 192.86/174.14 showLitChar wvw = showLitChar10 wvw; 192.86/174.14 showLitChar wuy = showLitChar8 wuy; 192.86/174.14 showLitChar wuu = showLitChar6 wuu; 192.86/174.14 showLitChar vzw = showLitChar4 vzw; 192.86/174.14 showLitChar vyy = showLitChar2 vyy; 192.86/174.14 showLitChar c = showLitChar0 c; 192.86/174.14 " 192.86/174.14 "showLitChar0 c = showString ('\' : snd (asciiTab !! (fromEnum c))); 192.86/174.14 " 192.86/174.14 "showLitChar1 True vyy = protectEsc ('H' ==) (showString ('\' : 'S' : 'O' : [])); 192.86/174.14 showLitChar1 vyz vzu = showLitChar0 vzu; 192.86/174.14 " 192.86/174.14 "showLitChar2 vyy = showLitChar1 (vyy == '\14') vyy; 192.86/174.14 showLitChar2 vzv = showLitChar0 vzv; 192.86/174.14 " 192.86/174.14 "showLitChar3 True vzw = showString ('\' : 'v' : []); 192.86/174.14 showLitChar3 vzx vzy = showLitChar2 vzy; 192.86/174.14 " 192.86/174.14 "showLitChar4 vzw = showLitChar3 (vzw == '\11') vzw; 192.86/174.14 showLitChar4 vzz = showLitChar2 vzz; 192.86/174.14 " 192.86/174.14 "showLitChar5 True wuu = showString ('\' : 't' : []); 192.86/174.14 showLitChar5 wuv wuw = showLitChar4 wuw; 192.86/174.14 " 192.86/174.14 "showLitChar6 wuu = showLitChar5 (wuu == '\9') wuu; 192.86/174.14 showLitChar6 wux = showLitChar4 wux; 192.86/174.14 " 192.86/174.14 "showLitChar7 True wuy = showString ('\' : 'r' : []); 192.86/174.14 showLitChar7 wuz wvu = showLitChar6 wvu; 192.86/174.14 " 192.86/174.14 "showLitChar8 wuy = showLitChar7 (wuy == '\13') wuy; 192.86/174.14 showLitChar8 wvv = showLitChar6 wvv; 192.86/174.14 " 192.86/174.14 "showLitChar9 True wvw = showString ('\' : 'n' : []); 192.86/174.14 showLitChar9 wvx wvy = showLitChar8 wvy; 192.86/174.14 " 192.86/174.14 "showLitChar10 wvw = showLitChar9 (wvw == '\10') wvw; 192.86/174.14 showLitChar10 wvz = showLitChar8 wvz; 192.86/174.14 " 192.86/174.14 "showLitChar11 True wwu = showString ('\' : 'f' : []); 192.86/174.14 showLitChar11 wwv www = showLitChar10 www; 192.86/174.14 " 192.86/174.14 "showLitChar12 wwu = showLitChar11 (wwu == '\12') wwu; 192.86/174.14 showLitChar12 wwx = showLitChar10 wwx; 192.86/174.14 " 192.86/174.14 "showLitChar13 True wwy = showString ('\' : 'b' : []); 192.86/174.14 showLitChar13 wwz wxu = showLitChar12 wxu; 192.86/174.14 " 192.86/174.14 "showLitChar14 wwy = showLitChar13 (wwy == '\8') wwy; 192.86/174.14 showLitChar14 wxv = showLitChar12 wxv; 192.86/174.14 " 192.86/174.14 "showLitChar15 True wxw = showString ('\' : 'a' : []); 192.86/174.14 showLitChar15 wxx wxy = showLitChar14 wxy; 192.86/174.14 " 192.86/174.14 "showLitChar16 wxw = showLitChar15 (wxw == '\7') wxw; 192.86/174.14 showLitChar16 wxz = showLitChar14 wxz; 192.86/174.14 " 192.86/174.14 "showLitChar17 c True = showChar c; 192.86/174.14 showLitChar17 c False = showLitChar16 c; 192.86/174.14 " 192.86/174.14 "showLitChar18 c = showLitChar17 c (c >= '\32'); 192.86/174.14 showLitChar18 wyu = showLitChar16 wyu; 192.86/174.14 " 192.86/174.14 "showLitChar19 True wyv = showString ('\' : '\' : []); 192.86/174.14 showLitChar19 wyw wyx = showLitChar18 wyx; 192.86/174.14 " 192.86/174.14 "showLitChar20 wyv = showLitChar19 (wyv == '\') wyv; 192.86/174.14 showLitChar20 wyy = showLitChar18 wyy; 192.86/174.14 " 192.86/174.14 "showLitChar21 True wyz = showString ('\' : 'D' : 'E' : 'L' : []); 192.86/174.14 showLitChar21 wzu wzv = showLitChar20 wzv; 192.86/174.14 " 192.86/174.14 "showLitChar22 wyz = showLitChar21 (wyz == '\127') wyz; 192.86/174.14 showLitChar22 wzw = showLitChar20 wzw; 192.86/174.14 " 192.86/174.14 "showLitChar23 c True = (showChar '\') . protectEsc isDigit (shows (fromEnum c)); 192.86/174.14 showLitChar23 c False = showLitChar22 c; 192.86/174.14 " 192.86/174.14 "showLitChar24 c = showLitChar23 c (c > '\127'); 192.86/174.14 showLitChar24 wzx = showLitChar22 wzx; 192.86/174.14 " 192.86/174.14 The following Function with conditions 192.86/174.14 "cont (wz : xu)|p wz('\' : '&' : []) ++ wz : xu; 192.86/174.14 cont s = s; 192.86/174.14 " 192.86/174.14 is transformed to 192.86/174.14 "cont (wz : xu) = cont2 (wz : xu); 192.86/174.14 cont s = cont0 s; 192.86/174.14 " 192.86/174.14 "cont0 s = s; 192.86/174.14 " 192.86/174.14 "cont1 wz xu True = ('\' : '&' : []) ++ wz : xu; 192.86/174.14 cont1 wz xu False = cont0 (wz : xu); 192.86/174.14 " 192.86/174.14 "cont2 (wz : xu) = cont1 wz xu (p wz); 192.86/174.14 cont2 wzz = cont0 wzz; 192.86/174.14 " 192.86/174.14 The following Function with conditions 192.86/174.14 "undefined |Falseundefined; 192.86/174.14 " 192.86/174.14 is transformed to 192.86/174.14 "undefined = undefined1; 192.86/174.14 " 192.86/174.14 "undefined0 True = undefined; 192.86/174.14 " 192.86/174.14 "undefined1 = undefined0 False; 192.86/174.14 " 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (10) 192.86/174.14 Obligation: 192.86/174.14 mainModule Main 192.86/174.14 module Main where { 192.86/174.14 import qualified Prelude; 192.86/174.14 } 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (11) LetRed (EQUIVALENT) 192.86/174.14 Let/Where Reductions: 192.86/174.14 The bindings of the following Let/Where expression 192.86/174.14 "(showChar '[') . (shows x) . showl xs where { 192.86/174.14 showl [] = showChar ']'; 192.86/174.14 showl (x : xs) = (showChar ',') . (shows x) . showl xs; 192.86/174.14 } 192.86/174.14 " 192.86/174.14 are unpacked to the following functions on top level 192.86/174.14 "showListShowl [] = showChar ']'; 192.86/174.14 showListShowl (x : xs) = (showChar ',') . (shows x) . showListShowl xs; 192.86/174.14 " 192.86/174.14 The bindings of the following Let/Where expression 192.86/174.14 "(showChar '"') . showl cs where { 192.86/174.14 showl [] = showl3 []; 192.86/174.14 showl (vuy : cs) = showl2 (vuy : cs); 192.86/174.14 showl (c : cs) = showl0 (c : cs); 192.86/174.14 ; 192.86/174.14 showl0 (c : cs) = (showLitChar c) . showl cs; 192.86/174.14 ; 192.86/174.14 showl1 True (vuy : cs) = (showString ('\' : '"' : [])) . showl cs; 192.86/174.14 showl1 vuz vvu = showl0 vvu; 192.86/174.14 ; 192.86/174.14 showl2 (vuy : cs) = showl1 (vuy == '"') (vuy : cs); 192.86/174.14 showl2 vvv = showl0 vvv; 192.86/174.14 ; 192.86/174.14 showl3 [] = showChar '"'; 192.86/174.14 showl3 vvx = showl2 vvx; 192.86/174.14 } 192.86/174.14 " 192.86/174.14 are unpacked to the following functions on top level 192.86/174.14 "showListShowl2 (vuy : cs) = showListShowl10 (vuy == '"') (vuy : cs); 192.86/174.14 showListShowl2 vvv = showListShowl0 vvv; 192.86/174.14 " 192.86/174.14 "showListShowl0 (c : cs) = (showLitChar c) . showListShowl1 cs; 192.86/174.14 " 192.86/174.14 "showListShowl3 [] = showChar '"'; 192.86/174.14 showListShowl3 vvx = showListShowl2 vvx; 192.86/174.14 " 192.86/174.14 "showListShowl1 [] = showListShowl3 []; 192.86/174.14 showListShowl1 (vuy : cs) = showListShowl2 (vuy : cs); 192.86/174.14 showListShowl1 (c : cs) = showListShowl0 (c : cs); 192.86/174.14 " 192.86/174.14 "showListShowl10 True (vuy : cs) = (showString ('\' : '"' : [])) . showListShowl1 cs; 192.86/174.14 showListShowl10 vuz vvu = showListShowl0 vvu; 192.86/174.14 " 192.86/174.14 The bindings of the following Let/Where expression 192.86/174.14 "f . cont where { 192.86/174.14 cont (wz : xu) = cont2 (wz : xu); 192.86/174.14 cont s = cont0 s; 192.86/174.14 ; 192.86/174.14 cont0 s = s; 192.86/174.14 ; 192.86/174.14 cont1 wz xu True = ('\' : '&' : []) ++ wz : xu; 192.86/174.14 cont1 wz xu False = cont0 (wz : xu); 192.86/174.14 ; 192.86/174.14 cont2 (wz : xu) = cont1 wz xu (p wz); 192.86/174.14 cont2 wzz = cont0 wzz; 192.86/174.14 } 192.86/174.14 " 192.86/174.14 are unpacked to the following functions on top level 192.86/174.14 "protectEscCont2 xuu (wz : xu) = protectEscCont1 xuu wz xu (xuu wz); 192.86/174.14 protectEscCont2 xuu wzz = protectEscCont0 xuu wzz; 192.86/174.14 " 192.86/174.14 "protectEscCont1 xuu wz xu True = ('\' : '&' : []) ++ wz : xu; 192.86/174.14 protectEscCont1 xuu wz xu False = protectEscCont0 xuu (wz : xu); 192.86/174.14 " 192.86/174.14 "protectEscCont0 xuu s = s; 192.86/174.14 " 192.86/174.14 "protectEscCont xuu (wz : xu) = protectEscCont2 xuu (wz : xu); 192.86/174.14 protectEscCont xuu s = protectEscCont0 xuu s; 192.86/174.14 " 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (12) 192.86/174.14 Obligation: 192.86/174.14 mainModule Main 192.86/174.14 module Main where { 192.86/174.14 import qualified Prelude; 192.86/174.14 } 192.86/174.14 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (13) NumRed (SOUND) 192.86/174.14 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 192.86/174.14 ---------------------------------------- 192.86/174.14 192.86/174.14 (14) 192.86/174.14 Obligation: 192.86/174.14 mainModule Main 192.86/174.14 module Main where { 192.86/174.14 import qualified Prelude; 192.86/174.14 } 192.86/174.18 EOF