/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.hs /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.hs # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty H-Termination with start terms of the given HASKELL could not be shown: (0) HASKELL (1) LR [EQUIVALENT, 0 ms] (2) HASKELL (3) CR [EQUIVALENT, 0 ms] (4) HASKELL (5) IFR [EQUIVALENT, 0 ms] (6) HASKELL (7) BR [EQUIVALENT, 14 ms] (8) HASKELL (9) COR [EQUIVALENT, 0 ms] (10) HASKELL (11) LetRed [EQUIVALENT, 2 ms] (12) HASKELL (13) NumRed [SOUND, 0 ms] (14) HASKELL ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (1) LR (EQUIVALENT) Lambda Reductions: The following Lambda expression "\nd->n * radix + d" is transformed to "readInt0 radix n d = n * radix + d; " The following Lambda expression "\vu77->case vu77 of { (ds,r) -> (foldl1 (readInt0 radix) (map (fromIntegral . digToInt) ds),r) : []; _ -> []} " is transformed to "readInt1 radix digToInt vu77 = case vu77 of { (ds,r) -> (foldl1 (readInt0 radix) (map (fromIntegral . digToInt) ds),r) : []; _ -> []} ; " The following Lambda expression "\ab->(a,b)" is transformed to "zip0 a b = (a,b); " The following Lambda expression "\vu71->case vu71 of { (n,t) -> (toEnum n,t) : []; _ -> []} " is transformed to "readEsc0 vu71 = case vu71 of { (n,t) -> (toEnum n,t) : []; _ -> []} ; " The following Lambda expression "\vu72->case vu72 of { (n,t) -> (toEnum n,t) : []; _ -> []} " is transformed to "readEsc1 vu72 = case vu72 of { (n,t) -> (toEnum n,t) : []; _ -> []} ; " The following Lambda expression "\vu73->case vu73 of { (n,t) -> (toEnum n,t) : []; _ -> []} " is transformed to "readEsc2 vu73 = case vu73 of { (n,t) -> (toEnum n,t) : []; _ -> []} ; " The following Lambda expression "\vu74->case vu74 of { ([],s') -> (c,s') : []; _ -> []} " is transformed to "readEsc3 c vu74 = case vu74 of { ([],s') -> (c,s') : []; _ -> []} ; " The following Lambda expression "\vu75->case vu75 of { (c,mne) -> concatMap (readEsc3 c) (lexmatch mne s : []); _ -> []} " is transformed to "readEsc4 s vu75 = case vu75 of { (c,mne) -> concatMap (readEsc3 c) (lexmatch mne s : []); _ -> []} ; " The following Lambda expression "\vu68->case vu68 of { (cs@(_ : _),t) -> (cs,t) : []; _ -> []} " is transformed to "nonnull0 vu68 = case vu68 of { (cs@(_ : _),t) -> (cs,t) : []; _ -> []} ; " The following Lambda expression "\d->fromEnum d - fromEnum_0" is transformed to "readOct0 d = fromEnum d - fromEnum_0; " The following Lambda expression "\d->fromEnum d - fromEnum_0" is transformed to "readDec0 d = fromEnum d - fromEnum_0; " The following Lambda expression "\(_,zs)->zs" is transformed to "zs0 (_,zs) = zs; " The following Lambda expression "\(ys,_)->ys" is transformed to "ys0 (ys,_) = ys; " ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (3) CR (EQUIVALENT) Case Reductions: The following Case expression "case vu77 of { (ds,r) -> (foldl1 (readInt0 radix) (map (fromIntegral . digToInt) ds),r) : []; _ -> []} " is transformed to "readInt10 radix digToInt (ds,r) = (foldl1 (readInt0 radix) (map (fromIntegral . digToInt) ds),r) : []; readInt10 radix digToInt _ = []; " The following Case expression "case vu73 of { (n,t) -> (toEnum n,t) : []; _ -> []} " is transformed to "readEsc20 (n,t) = (toEnum n,t) : []; readEsc20 _ = []; " The following Case expression "case vu72 of { (n,t) -> (toEnum n,t) : []; _ -> []} " is transformed to "readEsc10 (n,t) = (toEnum n,t) : []; readEsc10 _ = []; " The following Case expression "case vu71 of { (n,t) -> (toEnum n,t) : []; _ -> []} " is transformed to "readEsc00 (n,t) = (toEnum n,t) : []; readEsc00 _ = []; " The following Case expression "case vu75 of { (c,mne) -> concatMap (readEsc3 c) (lexmatch mne s : []); _ -> []} " is transformed to "readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); readEsc40 s _ = []; " The following Case expression "case vu74 of { ([],s') -> (c,s') : []; _ -> []} " is transformed to "readEsc30 c ([],s') = (c,s') : []; readEsc30 c _ = []; " The following Case expression "case concatMap (readEsc4 s) table of { pr : _ -> pr : []; [] -> []} " is transformed to "readEsc5 (pr : _) = pr : []; readEsc5 [] = []; " The following Case expression "case vu68 of { (cs@(_ : _),t) -> (cs,t) : []; _ -> []} " is transformed to "nonnull00 (cs@(_ : _),t) = (cs,t) : []; nonnull00 _ = []; " ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (5) IFR (EQUIVALENT) If Reductions: The following If expression "if isUpper d then 'A' else 'a'" is transformed to "hex0 True = 'A'; hex0 False = 'a'; " The following If expression "if isDigit d then fromEnum_0 else fromEnum (hex0 (isUpper d)) - 10" is transformed to "hex1 d True = fromEnum_0; hex1 d False = fromEnum (hex0 (isUpper d)) - 10; " ---------------------------------------- (6) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (7) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. Binding Reductions: The bind variable of the following binding Pattern "cs@(vy : vz)" is replaced by the following term "vy : vz" The bind variable of the following binding Pattern "s@(ww : wx)" is replaced by the following term "ww : wx" The bind variable of the following binding Pattern "s@(wz : xu)" is replaced by the following term "wz : xu" The bind variable of the following binding Pattern "xs@(zv : zw)" is replaced by the following term "zv : zw" ---------------------------------------- (8) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (9) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "takeWhile p [] = []; takeWhile p (x : xs)|p xx : takeWhile p xs|otherwise[]; " is transformed to "takeWhile p [] = takeWhile3 p []; takeWhile p (x : xs) = takeWhile2 p (x : xs); " "takeWhile0 p x xs True = []; " "takeWhile1 p x xs True = x : takeWhile p xs; takeWhile1 p x xs False = takeWhile0 p x xs otherwise; " "takeWhile2 p (x : xs) = takeWhile1 p x xs (p x); " "takeWhile3 p [] = []; takeWhile3 vuv vuw = takeWhile2 vuv vuw; " The following Function with conditions "readEsc ('a' : s) = ('\7',s) : []; readEsc ('b' : s) = ('\8',s) : []; readEsc ('f' : s) = ('\12',s) : []; readEsc ('n' : s) = ('\10',s) : []; readEsc ('r' : s) = ('\13',s) : []; readEsc ('t' : s) = ('\9',s) : []; readEsc ('v' : s) = ('\11',s) : []; readEsc ('\' : s) = ('\',s) : []; readEsc ('"' : s) = ('"',s) : []; readEsc (''' : s) = (''',s) : []; readEsc ('^' : c : s)|c >= '@' && c <= '_'(toEnum (fromEnum c - fromEnum '@'),s) : []; readEsc (ww : wx)|isDigit wwconcatMap readEsc0 (readDec (ww : wx)); readEsc ('o' : s) = concatMap readEsc1 (readOct s); readEsc ('x' : s) = concatMap readEsc2 (readHex s); readEsc (wz : xu)|isUpper wzlet { readEsc3 c vu74 = readEsc30 c vu74; ; readEsc30 c ([],s') = (c,s') : []; readEsc30 c xx = []; ; readEsc4 s vu75 = readEsc40 s vu75; ; readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); readEsc40 s xw = []; ; readEsc5 (pr : xv) = pr : []; readEsc5 [] = []; ; table = ('\127','D' : 'E' : 'L' : []) : asciiTab; } in readEsc5 (concatMap (readEsc4 (wz : xu)) table); readEsc xy = []; " is transformed to "readEsc (wzz : s) = readEsc41 (wzz : s); readEsc (wzu : s) = readEsc38 (wzu : s); readEsc (wyv : s) = readEsc36 (wyv : s); readEsc (wxw : s) = readEsc34 (wxw : s); readEsc (wwx : s) = readEsc32 (wwx : s); readEsc (wvy : s) = readEsc29 (wvy : s); readEsc (wuz : s) = readEsc27 (wuz : s); readEsc (wuu : s) = readEsc25 (wuu : s); readEsc (vzv : s) = readEsc23 (vzv : s); readEsc (vyw : s) = readEsc21 (vyw : s); readEsc (vxu : vxx) = readEsc18 (vxu : vxx); readEsc (ww : wx) = readEsc15 (ww : wx); readEsc (vvz : s) = readEsc13 (vvz : s); readEsc (vvu : s) = readEsc11 (vvu : s); readEsc (wz : xu) = readEsc8 (wz : xu); readEsc xy = readEsc6 xy; " "readEsc6 xy = []; " "readEsc7 wz xu True = let { readEsc3 c vu74 = readEsc30 c vu74; ; readEsc30 c ([],s') = (c,s') : []; readEsc30 c xx = []; ; readEsc4 s vu75 = readEsc40 s vu75; ; readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); readEsc40 s xw = []; ; readEsc5 (pr : xv) = pr : []; readEsc5 [] = []; ; table = ('\127','D' : 'E' : 'L' : []) : asciiTab; } in readEsc5 (concatMap (readEsc4 (wz : xu)) table); readEsc7 wz xu False = readEsc6 (wz : xu); " "readEsc8 (wz : xu) = readEsc7 wz xu (isUpper wz); readEsc8 vuy = readEsc6 vuy; " "readEsc9 True (vvu : s) = concatMap readEsc2 (readHex s); readEsc9 vvv vvw = readEsc8 vvw; " "readEsc11 (vvu : s) = readEsc9 (vvu == 'x') (vvu : s); readEsc11 vvx = readEsc8 vvx; " "readEsc12 True (vvz : s) = concatMap readEsc1 (readOct s); readEsc12 vwu vwv = readEsc11 vwv; " "readEsc13 (vvz : s) = readEsc12 (vvz == 'o') (vvz : s); readEsc13 vww = readEsc11 vww; " "readEsc14 ww wx True = concatMap readEsc0 (readDec (ww : wx)); readEsc14 ww wx False = readEsc13 (ww : wx); " "readEsc15 (ww : wx) = readEsc14 ww wx (isDigit ww); readEsc15 vwy = readEsc13 vwy; " "readEsc16 vxu c s True = (toEnum (fromEnum c - fromEnum '@'),s) : []; readEsc16 vxu c s False = readEsc15 (vxu : c : s); " "readEsc17 True (vxu : c : s) = readEsc16 vxu c s (c >= '@' && c <= '_'); readEsc17 vxy vxz = readEsc15 vxz; " "readEsc18 (vxu : vxx) = readEsc17 (vxu == '^') (vxu : vxx); readEsc18 vyu = readEsc15 vyu; " "readEsc19 True (vyw : s) = (''',s) : []; readEsc19 vyx vyy = readEsc18 vyy; " "readEsc21 (vyw : s) = readEsc19 (vyw == ''') (vyw : s); readEsc21 vyz = readEsc18 vyz; " "readEsc22 True (vzv : s) = ('"',s) : []; readEsc22 vzw vzx = readEsc21 vzx; " "readEsc23 (vzv : s) = readEsc22 (vzv == '"') (vzv : s); readEsc23 vzy = readEsc21 vzy; " "readEsc24 True (wuu : s) = ('\',s) : []; readEsc24 wuv wuw = readEsc23 wuw; " "readEsc25 (wuu : s) = readEsc24 (wuu == '\') (wuu : s); readEsc25 wux = readEsc23 wux; " "readEsc26 True (wuz : s) = ('\11',s) : []; readEsc26 wvu wvv = readEsc25 wvv; " "readEsc27 (wuz : s) = readEsc26 (wuz == 'v') (wuz : s); readEsc27 wvw = readEsc25 wvw; " "readEsc28 True (wvy : s) = ('\9',s) : []; readEsc28 wvz wwu = readEsc27 wwu; " "readEsc29 (wvy : s) = readEsc28 (wvy == 't') (wvy : s); readEsc29 wwv = readEsc27 wwv; " "readEsc31 True (wwx : s) = ('\13',s) : []; readEsc31 wwy wwz = readEsc29 wwz; " "readEsc32 (wwx : s) = readEsc31 (wwx == 'r') (wwx : s); readEsc32 wxu = readEsc29 wxu; " "readEsc33 True (wxw : s) = ('\10',s) : []; readEsc33 wxx wxy = readEsc32 wxy; " "readEsc34 (wxw : s) = readEsc33 (wxw == 'n') (wxw : s); readEsc34 wxz = readEsc32 wxz; " "readEsc35 True (wyv : s) = ('\12',s) : []; readEsc35 wyw wyx = readEsc34 wyx; " "readEsc36 (wyv : s) = readEsc35 (wyv == 'f') (wyv : s); readEsc36 wyy = readEsc34 wyy; " "readEsc37 True (wzu : s) = ('\8',s) : []; readEsc37 wzv wzw = readEsc36 wzw; " "readEsc38 (wzu : s) = readEsc37 (wzu == 'b') (wzu : s); readEsc38 wzx = readEsc36 wzx; " "readEsc39 True (wzz : s) = ('\7',s) : []; readEsc39 xuu xuv = readEsc38 xuv; " "readEsc41 (wzz : s) = readEsc39 (wzz == 'a') (wzz : s); readEsc41 xuw = readEsc38 xuw; " The following Function with conditions "readLitChar ('\' : s) = readEsc s where { readEsc ('a' : s) = ('\7',s) : []; readEsc ('b' : s) = ('\8',s) : []; readEsc ('f' : s) = ('\12',s) : []; readEsc ('n' : s) = ('\10',s) : []; readEsc ('r' : s) = ('\13',s) : []; readEsc ('t' : s) = ('\9',s) : []; readEsc ('v' : s) = ('\11',s) : []; readEsc ('\' : s) = ('\',s) : []; readEsc ('"' : s) = ('"',s) : []; readEsc (''' : s) = (''',s) : []; readEsc ('^' : c : s)|c >= '@' && c <= '_'(toEnum (fromEnum c - fromEnum '@'),s) : []; readEsc (ww : wx)|isDigit wwconcatMap readEsc0 (readDec (ww : wx)); readEsc ('o' : s) = concatMap readEsc1 (readOct s); readEsc ('x' : s) = concatMap readEsc2 (readHex s); readEsc (wz : xu)|isUpper wzlet { readEsc3 c vu74 = readEsc30 c vu74; ; readEsc30 c ([],s') = (c,s') : []; readEsc30 c xx = []; ; readEsc4 s vu75 = readEsc40 s vu75; ; readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); readEsc40 s xw = []; ; readEsc5 (pr : xv) = pr : []; readEsc5 [] = []; ; table = ('\127','D' : 'E' : 'L' : []) : asciiTab; } in readEsc5 (concatMap (readEsc4 (wz : xu)) table); readEsc xy = []; ; readEsc0 vu71 = readEsc00 vu71; ; readEsc00 (n,t) = (toEnum n,t) : []; readEsc00 xz = []; ; readEsc1 vu72 = readEsc10 vu72; ; readEsc10 (n,t) = (toEnum n,t) : []; readEsc10 yu = []; ; readEsc2 vu73 = readEsc20 vu73; ; readEsc20 (n,t) = (toEnum n,t) : []; readEsc20 yv = []; } ; readLitChar (c : s) = (c,s) : []; " is transformed to "readLitChar (xuz : s) = readLitChar2 (xuz : s); readLitChar (c : s) = readLitChar0 (c : s); " "readLitChar0 (c : s) = (c,s) : []; " "readLitChar1 True (xuz : s) = readEsc s where { readEsc (wzz : s) = readEsc41 (wzz : s); readEsc (wzu : s) = readEsc38 (wzu : s); readEsc (wyv : s) = readEsc36 (wyv : s); readEsc (wxw : s) = readEsc34 (wxw : s); readEsc (wwx : s) = readEsc32 (wwx : s); readEsc (wvy : s) = readEsc29 (wvy : s); readEsc (wuz : s) = readEsc27 (wuz : s); readEsc (wuu : s) = readEsc25 (wuu : s); readEsc (vzv : s) = readEsc23 (vzv : s); readEsc (vyw : s) = readEsc21 (vyw : s); readEsc (vxu : vxx) = readEsc18 (vxu : vxx); readEsc (ww : wx) = readEsc15 (ww : wx); readEsc (vvz : s) = readEsc13 (vvz : s); readEsc (vvu : s) = readEsc11 (vvu : s); readEsc (wz : xu) = readEsc8 (wz : xu); readEsc xy = readEsc6 xy; ; readEsc0 vu71 = readEsc00 vu71; ; readEsc00 (n,t) = (toEnum n,t) : []; readEsc00 xz = []; ; readEsc1 vu72 = readEsc10 vu72; ; readEsc10 (n,t) = (toEnum n,t) : []; readEsc10 yu = []; ; readEsc11 (vvu : s) = readEsc9 (vvu == 'x') (vvu : s); readEsc11 vvx = readEsc8 vvx; ; readEsc12 True (vvz : s) = concatMap readEsc1 (readOct s); readEsc12 vwu vwv = readEsc11 vwv; ; readEsc13 (vvz : s) = readEsc12 (vvz == 'o') (vvz : s); readEsc13 vww = readEsc11 vww; ; readEsc14 ww wx True = concatMap readEsc0 (readDec (ww : wx)); readEsc14 ww wx False = readEsc13 (ww : wx); ; readEsc15 (ww : wx) = readEsc14 ww wx (isDigit ww); readEsc15 vwy = readEsc13 vwy; ; readEsc16 vxu c s True = (toEnum (fromEnum c - fromEnum '@'),s) : []; readEsc16 vxu c s False = readEsc15 (vxu : c : s); ; readEsc17 True (vxu : c : s) = readEsc16 vxu c s (c >= '@' && c <= '_'); readEsc17 vxy vxz = readEsc15 vxz; ; readEsc18 (vxu : vxx) = readEsc17 (vxu == '^') (vxu : vxx); readEsc18 vyu = readEsc15 vyu; ; readEsc19 True (vyw : s) = (''',s) : []; readEsc19 vyx vyy = readEsc18 vyy; ; readEsc2 vu73 = readEsc20 vu73; ; readEsc20 (n,t) = (toEnum n,t) : []; readEsc20 yv = []; ; readEsc21 (vyw : s) = readEsc19 (vyw == ''') (vyw : s); readEsc21 vyz = readEsc18 vyz; ; readEsc22 True (vzv : s) = ('"',s) : []; readEsc22 vzw vzx = readEsc21 vzx; ; readEsc23 (vzv : s) = readEsc22 (vzv == '"') (vzv : s); readEsc23 vzy = readEsc21 vzy; ; readEsc24 True (wuu : s) = ('\',s) : []; readEsc24 wuv wuw = readEsc23 wuw; ; readEsc25 (wuu : s) = readEsc24 (wuu == '\') (wuu : s); readEsc25 wux = readEsc23 wux; ; readEsc26 True (wuz : s) = ('\11',s) : []; readEsc26 wvu wvv = readEsc25 wvv; ; readEsc27 (wuz : s) = readEsc26 (wuz == 'v') (wuz : s); readEsc27 wvw = readEsc25 wvw; ; readEsc28 True (wvy : s) = ('\9',s) : []; readEsc28 wvz wwu = readEsc27 wwu; ; readEsc29 (wvy : s) = readEsc28 (wvy == 't') (wvy : s); readEsc29 wwv = readEsc27 wwv; ; readEsc31 True (wwx : s) = ('\13',s) : []; readEsc31 wwy wwz = readEsc29 wwz; ; readEsc32 (wwx : s) = readEsc31 (wwx == 'r') (wwx : s); readEsc32 wxu = readEsc29 wxu; ; readEsc33 True (wxw : s) = ('\10',s) : []; readEsc33 wxx wxy = readEsc32 wxy; ; readEsc34 (wxw : s) = readEsc33 (wxw == 'n') (wxw : s); readEsc34 wxz = readEsc32 wxz; ; readEsc35 True (wyv : s) = ('\12',s) : []; readEsc35 wyw wyx = readEsc34 wyx; ; readEsc36 (wyv : s) = readEsc35 (wyv == 'f') (wyv : s); readEsc36 wyy = readEsc34 wyy; ; readEsc37 True (wzu : s) = ('\8',s) : []; readEsc37 wzv wzw = readEsc36 wzw; ; readEsc38 (wzu : s) = readEsc37 (wzu == 'b') (wzu : s); readEsc38 wzx = readEsc36 wzx; ; readEsc39 True (wzz : s) = ('\7',s) : []; readEsc39 xuu xuv = readEsc38 xuv; ; readEsc41 (wzz : s) = readEsc39 (wzz == 'a') (wzz : s); readEsc41 xuw = readEsc38 xuw; ; readEsc6 xy = []; ; readEsc7 wz xu True = let { readEsc3 c vu74 = readEsc30 c vu74; ; readEsc30 c ([],s') = (c,s') : []; readEsc30 c xx = []; ; readEsc4 s vu75 = readEsc40 s vu75; ; readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); readEsc40 s xw = []; ; readEsc5 (pr : xv) = pr : []; readEsc5 [] = []; ; table = ('\127','D' : 'E' : 'L' : []) : asciiTab; } in readEsc5 (concatMap (readEsc4 (wz : xu)) table); readEsc7 wz xu False = readEsc6 (wz : xu); ; readEsc8 (wz : xu) = readEsc7 wz xu (isUpper wz); readEsc8 vuy = readEsc6 vuy; ; readEsc9 True (vvu : s) = concatMap readEsc2 (readHex s); readEsc9 vvv vvw = readEsc8 vvw; } ; readLitChar1 xvu xvv = readLitChar0 xvv; " "readLitChar2 (xuz : s) = readLitChar1 (xuz == '\') (xuz : s); readLitChar2 xvw = readLitChar0 xvw; " The following Function with conditions "lexmatch (x : xs) (y : ys)|x == ylexmatch xs ys; lexmatch xs ys = (xs,ys); " is transformed to "lexmatch (x : xs) (y : ys) = lexmatch2 (x : xs) (y : ys); lexmatch xs ys = lexmatch0 xs ys; " "lexmatch0 xs ys = (xs,ys); " "lexmatch1 x xs y ys True = lexmatch xs ys; lexmatch1 x xs y ys False = lexmatch0 (x : xs) (y : ys); " "lexmatch2 (x : xs) (y : ys) = lexmatch1 x xs y ys (x == y); lexmatch2 xvz xwu = lexmatch0 xvz xwu; " The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " The following Function with conditions "span p [] = ([],[]); span p (zv : zw)|p zv(zv : ys,zs)|otherwise([],zv : zw) where { vu43 = span p zw; ; ys = ys0 vu43; ; ys0 (ys,zy) = ys; ; zs = zs0 vu43; ; zs0 (zx,zs) = zs; } ; " is transformed to "span p [] = span3 p []; span p (zv : zw) = span2 p (zv : zw); " "span2 p (zv : zw) = span1 p zv zw (p zv) where { span0 p zv zw True = ([],zv : zw); ; span1 p zv zw True = (zv : ys,zs); span1 p zv zw False = span0 p zv zw otherwise; ; vu43 = span p zw; ; ys = ys0 vu43; ; ys0 (ys,zy) = ys; ; zs = zs0 vu43; ; zs0 (zx,zs) = zs; } ; " "span3 p [] = ([],[]); span3 xwx xwy = span2 xwx xwy; " ---------------------------------------- (10) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (11) LetRed (EQUIVALENT) Let/Where Reductions: The bindings of the following Let/Where expression "span1 p zv zw (p zv) where { span0 p zv zw True = ([],zv : zw); ; span1 p zv zw True = (zv : ys,zs); span1 p zv zw False = span0 p zv zw otherwise; ; vu43 = span p zw; ; ys = ys0 vu43; ; ys0 (ys,zy) = ys; ; zs = zs0 vu43; ; zs0 (zx,zs) = zs; } " are unpacked to the following functions on top level "span2Span0 xwz xxu p zv zw True = ([],zv : zw); " "span2Zs xwz xxu = span2Zs0 xwz xxu (span2Vu43 xwz xxu); " "span2Zs0 xwz xxu (zx,zs) = zs; " "span2Vu43 xwz xxu = span xwz xxu; " "span2Ys xwz xxu = span2Ys0 xwz xxu (span2Vu43 xwz xxu); " "span2Span1 xwz xxu p zv zw True = (zv : span2Ys xwz xxu,span2Zs xwz xxu); span2Span1 xwz xxu p zv zw False = span2Span0 xwz xxu p zv zw otherwise; " "span2Ys0 xwz xxu (ys,zy) = ys; " The bindings of the following Let/Where expression "readInt 16 isHexDigit hex where { hex d = fromEnum d - hex1 d (isDigit d); ; hex0 True = 'A'; hex0 False = 'a'; ; hex1 d True = fromEnum_0; hex1 d False = fromEnum (hex0 (isUpper d)) - 10; } " are unpacked to the following functions on top level "readHexHex0 True = 'A'; readHexHex0 False = 'a'; " "readHexHex d = fromEnum d - readHexHex1 d (isDigit d); " "readHexHex1 d True = fromEnum_0; readHexHex1 d False = fromEnum (readHexHex0 (isUpper d)) - 10; " The bindings of the following Let/Where expression "readEsc s where { readEsc (wzz : s) = readEsc41 (wzz : s); readEsc (wzu : s) = readEsc38 (wzu : s); readEsc (wyv : s) = readEsc36 (wyv : s); readEsc (wxw : s) = readEsc34 (wxw : s); readEsc (wwx : s) = readEsc32 (wwx : s); readEsc (wvy : s) = readEsc29 (wvy : s); readEsc (wuz : s) = readEsc27 (wuz : s); readEsc (wuu : s) = readEsc25 (wuu : s); readEsc (vzv : s) = readEsc23 (vzv : s); readEsc (vyw : s) = readEsc21 (vyw : s); readEsc (vxu : vxx) = readEsc18 (vxu : vxx); readEsc (ww : wx) = readEsc15 (ww : wx); readEsc (vvz : s) = readEsc13 (vvz : s); readEsc (vvu : s) = readEsc11 (vvu : s); readEsc (wz : xu) = readEsc8 (wz : xu); readEsc xy = readEsc6 xy; ; readEsc0 vu71 = readEsc00 vu71; ; readEsc00 (n,t) = (toEnum n,t) : []; readEsc00 xz = []; ; readEsc1 vu72 = readEsc10 vu72; ; readEsc10 (n,t) = (toEnum n,t) : []; readEsc10 yu = []; ; readEsc11 (vvu : s) = readEsc9 (vvu == 'x') (vvu : s); readEsc11 vvx = readEsc8 vvx; ; readEsc12 True (vvz : s) = concatMap readEsc1 (readOct s); readEsc12 vwu vwv = readEsc11 vwv; ; readEsc13 (vvz : s) = readEsc12 (vvz == 'o') (vvz : s); readEsc13 vww = readEsc11 vww; ; readEsc14 ww wx True = concatMap readEsc0 (readDec (ww : wx)); readEsc14 ww wx False = readEsc13 (ww : wx); ; readEsc15 (ww : wx) = readEsc14 ww wx (isDigit ww); readEsc15 vwy = readEsc13 vwy; ; readEsc16 vxu c s True = (toEnum (fromEnum c - fromEnum '@'),s) : []; readEsc16 vxu c s False = readEsc15 (vxu : c : s); ; readEsc17 True (vxu : c : s) = readEsc16 vxu c s (c >= '@' && c <= '_'); readEsc17 vxy vxz = readEsc15 vxz; ; readEsc18 (vxu : vxx) = readEsc17 (vxu == '^') (vxu : vxx); readEsc18 vyu = readEsc15 vyu; ; readEsc19 True (vyw : s) = (''',s) : []; readEsc19 vyx vyy = readEsc18 vyy; ; readEsc2 vu73 = readEsc20 vu73; ; readEsc20 (n,t) = (toEnum n,t) : []; readEsc20 yv = []; ; readEsc21 (vyw : s) = readEsc19 (vyw == ''') (vyw : s); readEsc21 vyz = readEsc18 vyz; ; readEsc22 True (vzv : s) = ('"',s) : []; readEsc22 vzw vzx = readEsc21 vzx; ; readEsc23 (vzv : s) = readEsc22 (vzv == '"') (vzv : s); readEsc23 vzy = readEsc21 vzy; ; readEsc24 True (wuu : s) = ('\',s) : []; readEsc24 wuv wuw = readEsc23 wuw; ; readEsc25 (wuu : s) = readEsc24 (wuu == '\') (wuu : s); readEsc25 wux = readEsc23 wux; ; readEsc26 True (wuz : s) = ('\11',s) : []; readEsc26 wvu wvv = readEsc25 wvv; ; readEsc27 (wuz : s) = readEsc26 (wuz == 'v') (wuz : s); readEsc27 wvw = readEsc25 wvw; ; readEsc28 True (wvy : s) = ('\9',s) : []; readEsc28 wvz wwu = readEsc27 wwu; ; readEsc29 (wvy : s) = readEsc28 (wvy == 't') (wvy : s); readEsc29 wwv = readEsc27 wwv; ; readEsc31 True (wwx : s) = ('\13',s) : []; readEsc31 wwy wwz = readEsc29 wwz; ; readEsc32 (wwx : s) = readEsc31 (wwx == 'r') (wwx : s); readEsc32 wxu = readEsc29 wxu; ; readEsc33 True (wxw : s) = ('\10',s) : []; readEsc33 wxx wxy = readEsc32 wxy; ; readEsc34 (wxw : s) = readEsc33 (wxw == 'n') (wxw : s); readEsc34 wxz = readEsc32 wxz; ; readEsc35 True (wyv : s) = ('\12',s) : []; readEsc35 wyw wyx = readEsc34 wyx; ; readEsc36 (wyv : s) = readEsc35 (wyv == 'f') (wyv : s); readEsc36 wyy = readEsc34 wyy; ; readEsc37 True (wzu : s) = ('\8',s) : []; readEsc37 wzv wzw = readEsc36 wzw; ; readEsc38 (wzu : s) = readEsc37 (wzu == 'b') (wzu : s); readEsc38 wzx = readEsc36 wzx; ; readEsc39 True (wzz : s) = ('\7',s) : []; readEsc39 xuu xuv = readEsc38 xuv; ; readEsc41 (wzz : s) = readEsc39 (wzz == 'a') (wzz : s); readEsc41 xuw = readEsc38 xuw; ; readEsc6 xy = []; ; readEsc7 wz xu True = let { readEsc3 c vu74 = readEsc30 c vu74; ; readEsc30 c ([],s') = (c,s') : []; readEsc30 c xx = []; ; readEsc4 s vu75 = readEsc40 s vu75; ; readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); readEsc40 s xw = []; ; readEsc5 (pr : xv) = pr : []; readEsc5 [] = []; ; table = ('\127','D' : 'E' : 'L' : []) : asciiTab; } in readEsc5 (concatMap (readEsc4 (wz : xu)) table); readEsc7 wz xu False = readEsc6 (wz : xu); ; readEsc8 (wz : xu) = readEsc7 wz xu (isUpper wz); readEsc8 vuy = readEsc6 vuy; ; readEsc9 True (vvu : s) = concatMap readEsc2 (readHex s); readEsc9 vvv vvw = readEsc8 vvw; } " are unpacked to the following functions on top level "readLitChar1ReadEsc14 ww wx True = concatMap readLitChar1ReadEsc0 (readDec (ww : wx)); readLitChar1ReadEsc14 ww wx False = readLitChar1ReadEsc13 (ww : wx); " "readLitChar1ReadEsc2 vu73 = readLitChar1ReadEsc20 vu73; " "readLitChar1ReadEsc29 (wvy : s) = readLitChar1ReadEsc28 (wvy == 't') (wvy : s); readLitChar1ReadEsc29 wwv = readLitChar1ReadEsc27 wwv; " "readLitChar1ReadEsc23 (vzv : s) = readLitChar1ReadEsc22 (vzv == '"') (vzv : s); readLitChar1ReadEsc23 vzy = readLitChar1ReadEsc21 vzy; " "readLitChar1ReadEsc1 vu72 = readLitChar1ReadEsc10 vu72; " "readLitChar1ReadEsc00 (n,t) = (toEnum n,t) : []; readLitChar1ReadEsc00 xz = []; " "readLitChar1ReadEsc17 True (vxu : c : s) = readLitChar1ReadEsc16 vxu c s (c >= '@' && c <= '_'); readLitChar1ReadEsc17 vxy vxz = readLitChar1ReadEsc15 vxz; " "readLitChar1ReadEsc22 True (vzv : s) = ('"',s) : []; readLitChar1ReadEsc22 vzw vzx = readLitChar1ReadEsc21 vzx; " "readLitChar1ReadEsc21 (vyw : s) = readLitChar1ReadEsc19 (vyw == ''') (vyw : s); readLitChar1ReadEsc21 vyz = readLitChar1ReadEsc18 vyz; " "readLitChar1ReadEsc27 (wuz : s) = readLitChar1ReadEsc26 (wuz == 'v') (wuz : s); readLitChar1ReadEsc27 wvw = readLitChar1ReadEsc25 wvw; " "readLitChar1ReadEsc32 (wwx : s) = readLitChar1ReadEsc31 (wwx == 'r') (wwx : s); readLitChar1ReadEsc32 wxu = readLitChar1ReadEsc29 wxu; " "readLitChar1ReadEsc9 True (vvu : s) = concatMap readLitChar1ReadEsc2 (readHex s); readLitChar1ReadEsc9 vvv vvw = readLitChar1ReadEsc8 vvw; " "readLitChar1ReadEsc35 True (wyv : s) = ('\12',s) : []; readLitChar1ReadEsc35 wyw wyx = readLitChar1ReadEsc34 wyx; " "readLitChar1ReadEsc31 True (wwx : s) = ('\13',s) : []; readLitChar1ReadEsc31 wwy wwz = readLitChar1ReadEsc29 wwz; " "readLitChar1ReadEsc11 (vvu : s) = readLitChar1ReadEsc9 (vvu == 'x') (vvu : s); readLitChar1ReadEsc11 vvx = readLitChar1ReadEsc8 vvx; " "readLitChar1ReadEsc (wzz : s) = readLitChar1ReadEsc41 (wzz : s); readLitChar1ReadEsc (wzu : s) = readLitChar1ReadEsc38 (wzu : s); readLitChar1ReadEsc (wyv : s) = readLitChar1ReadEsc36 (wyv : s); readLitChar1ReadEsc (wxw : s) = readLitChar1ReadEsc34 (wxw : s); readLitChar1ReadEsc (wwx : s) = readLitChar1ReadEsc32 (wwx : s); readLitChar1ReadEsc (wvy : s) = readLitChar1ReadEsc29 (wvy : s); readLitChar1ReadEsc (wuz : s) = readLitChar1ReadEsc27 (wuz : s); readLitChar1ReadEsc (wuu : s) = readLitChar1ReadEsc25 (wuu : s); readLitChar1ReadEsc (vzv : s) = readLitChar1ReadEsc23 (vzv : s); readLitChar1ReadEsc (vyw : s) = readLitChar1ReadEsc21 (vyw : s); readLitChar1ReadEsc (vxu : vxx) = readLitChar1ReadEsc18 (vxu : vxx); readLitChar1ReadEsc (ww : wx) = readLitChar1ReadEsc15 (ww : wx); readLitChar1ReadEsc (vvz : s) = readLitChar1ReadEsc13 (vvz : s); readLitChar1ReadEsc (vvu : s) = readLitChar1ReadEsc11 (vvu : s); readLitChar1ReadEsc (wz : xu) = readLitChar1ReadEsc8 (wz : xu); readLitChar1ReadEsc xy = readLitChar1ReadEsc6 xy; " "readLitChar1ReadEsc24 True (wuu : s) = ('\',s) : []; readLitChar1ReadEsc24 wuv wuw = readLitChar1ReadEsc23 wuw; " "readLitChar1ReadEsc6 xy = []; " "readLitChar1ReadEsc18 (vxu : vxx) = readLitChar1ReadEsc17 (vxu == '^') (vxu : vxx); readLitChar1ReadEsc18 vyu = readLitChar1ReadEsc15 vyu; " "readLitChar1ReadEsc10 (n,t) = (toEnum n,t) : []; readLitChar1ReadEsc10 yu = []; " "readLitChar1ReadEsc37 True (wzu : s) = ('\8',s) : []; readLitChar1ReadEsc37 wzv wzw = readLitChar1ReadEsc36 wzw; " "readLitChar1ReadEsc0 vu71 = readLitChar1ReadEsc00 vu71; " "readLitChar1ReadEsc15 (ww : wx) = readLitChar1ReadEsc14 ww wx (isDigit ww); readLitChar1ReadEsc15 vwy = readLitChar1ReadEsc13 vwy; " "readLitChar1ReadEsc34 (wxw : s) = readLitChar1ReadEsc33 (wxw == 'n') (wxw : s); readLitChar1ReadEsc34 wxz = readLitChar1ReadEsc32 wxz; " "readLitChar1ReadEsc36 (wyv : s) = readLitChar1ReadEsc35 (wyv == 'f') (wyv : s); readLitChar1ReadEsc36 wyy = readLitChar1ReadEsc34 wyy; " "readLitChar1ReadEsc26 True (wuz : s) = ('\11',s) : []; readLitChar1ReadEsc26 wvu wvv = readLitChar1ReadEsc25 wvv; " "readLitChar1ReadEsc16 vxu c s True = (toEnum (fromEnum c - fromEnum '@'),s) : []; readLitChar1ReadEsc16 vxu c s False = readLitChar1ReadEsc15 (vxu : c : s); " "readLitChar1ReadEsc20 (n,t) = (toEnum n,t) : []; readLitChar1ReadEsc20 yv = []; " "readLitChar1ReadEsc12 True (vvz : s) = concatMap readLitChar1ReadEsc1 (readOct s); readLitChar1ReadEsc12 vwu vwv = readLitChar1ReadEsc11 vwv; " "readLitChar1ReadEsc38 (wzu : s) = readLitChar1ReadEsc37 (wzu == 'b') (wzu : s); readLitChar1ReadEsc38 wzx = readLitChar1ReadEsc36 wzx; " "readLitChar1ReadEsc33 True (wxw : s) = ('\10',s) : []; readLitChar1ReadEsc33 wxx wxy = readLitChar1ReadEsc32 wxy; " "readLitChar1ReadEsc41 (wzz : s) = readLitChar1ReadEsc39 (wzz == 'a') (wzz : s); readLitChar1ReadEsc41 xuw = readLitChar1ReadEsc38 xuw; " "readLitChar1ReadEsc25 (wuu : s) = readLitChar1ReadEsc24 (wuu == '\') (wuu : s); readLitChar1ReadEsc25 wux = readLitChar1ReadEsc23 wux; " "readLitChar1ReadEsc19 True (vyw : s) = (''',s) : []; readLitChar1ReadEsc19 vyx vyy = readLitChar1ReadEsc18 vyy; " "readLitChar1ReadEsc39 True (wzz : s) = ('\7',s) : []; readLitChar1ReadEsc39 xuu xuv = readLitChar1ReadEsc38 xuv; " "readLitChar1ReadEsc13 (vvz : s) = readLitChar1ReadEsc12 (vvz == 'o') (vvz : s); readLitChar1ReadEsc13 vww = readLitChar1ReadEsc11 vww; " "readLitChar1ReadEsc8 (wz : xu) = readLitChar1ReadEsc7 wz xu (isUpper wz); readLitChar1ReadEsc8 vuy = readLitChar1ReadEsc6 vuy; " "readLitChar1ReadEsc7 wz xu True = readLitChar1ReadEsc7ReadEsc5 (concatMap (readLitChar1ReadEsc7ReadEsc4 (wz : xu)) readLitChar1ReadEsc7Table); readLitChar1ReadEsc7 wz xu False = readLitChar1ReadEsc6 (wz : xu); " "readLitChar1ReadEsc28 True (wvy : s) = ('\9',s) : []; readLitChar1ReadEsc28 wvz wwu = readLitChar1ReadEsc27 wwu; " The bindings of the following Let/Where expression "let { readEsc3 c vu74 = readEsc30 c vu74; ; readEsc30 c ([],s') = (c,s') : []; readEsc30 c xx = []; ; readEsc4 s vu75 = readEsc40 s vu75; ; readEsc40 s (c,mne) = concatMap (readEsc3 c) (lexmatch mne s : []); readEsc40 s xw = []; ; readEsc5 (pr : xv) = pr : []; readEsc5 [] = []; ; table = ('\127','D' : 'E' : 'L' : []) : asciiTab; } in readEsc5 (concatMap (readEsc4 (wz : xu)) table)" are unpacked to the following functions on top level "readLitChar1ReadEsc7ReadEsc3 c vu74 = readLitChar1ReadEsc7ReadEsc30 c vu74; " "readLitChar1ReadEsc7ReadEsc30 c ([],s') = (c,s') : []; readLitChar1ReadEsc7ReadEsc30 c xx = []; " "readLitChar1ReadEsc7ReadEsc4 s vu75 = readLitChar1ReadEsc7ReadEsc40 s vu75; " "readLitChar1ReadEsc7ReadEsc5 (pr : xv) = pr : []; readLitChar1ReadEsc7ReadEsc5 [] = []; " "readLitChar1ReadEsc7Table = ('\127','D' : 'E' : 'L' : []) : asciiTab; " "readLitChar1ReadEsc7ReadEsc40 s (c,mne) = concatMap (readLitChar1ReadEsc7ReadEsc3 c) (lexmatch mne s : []); readLitChar1ReadEsc7ReadEsc40 s xw = []; " ---------------------------------------- (12) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (13) NumRed (SOUND) Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. ---------------------------------------- (14) Obligation: mainModule Main module Main where { import qualified Prelude; }