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