10.05/4.02 YES 12.42/4.65 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 12.42/4.65 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 12.42/4.65 12.42/4.65 12.42/4.65 H-Termination with start terms of the given HASKELL could be proven: 12.42/4.65 12.42/4.65 (0) HASKELL 12.42/4.65 (1) BR [EQUIVALENT, 0 ms] 12.42/4.65 (2) HASKELL 12.42/4.65 (3) COR [EQUIVALENT, 0 ms] 12.42/4.65 (4) HASKELL 12.42/4.65 (5) Narrow [SOUND, 0 ms] 12.42/4.65 (6) AND 12.42/4.65 (7) QDP 12.42/4.65 (8) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.42/4.65 (9) YES 12.42/4.65 (10) QDP 12.42/4.65 (11) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.42/4.65 (12) YES 12.42/4.65 (13) QDP 12.42/4.65 (14) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.42/4.65 (15) YES 12.42/4.65 (16) QDP 12.42/4.65 (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.42/4.65 (18) YES 12.42/4.65 (19) QDP 12.42/4.65 (20) TransformationProof [EQUIVALENT, 0 ms] 12.42/4.65 (21) QDP 12.42/4.65 (22) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.42/4.65 (23) YES 12.42/4.65 12.42/4.65 12.42/4.65 ---------------------------------------- 12.42/4.65 12.42/4.65 (0) 12.42/4.65 Obligation: 12.42/4.65 mainModule Main 12.42/4.65 module Main where { 12.42/4.65 import qualified Prelude; 12.42/4.65 data Main.Char = Char MyInt ; 12.42/4.65 12.42/4.65 data Integer = Integer MyInt ; 12.42/4.65 12.42/4.65 data List a = Cons a (List a) | Nil ; 12.42/4.66 12.42/4.66 data MyBool = MyTrue | MyFalse ; 12.42/4.66 12.42/4.66 data MyInt = Pos Main.Nat | Neg Main.Nat ; 12.42/4.66 12.42/4.66 data Main.Nat = Succ Main.Nat | Zero ; 12.42/4.66 12.42/4.66 data Tup2 b a = Tup2 b a ; 12.42/4.66 12.42/4.66 concat :: List (List a) -> List a; 12.42/4.66 concat = foldr psPs Nil; 12.42/4.66 12.42/4.66 concatMap :: (b -> List a) -> List b -> List a; 12.42/4.66 concatMap f = pt concat (map f); 12.42/4.66 12.42/4.66 foldl :: (b -> a -> b) -> b -> List a -> b; 12.42/4.66 foldl f z Nil = z; 12.42/4.66 foldl f z (Cons x xs) = foldl f (f z x) xs; 12.42/4.66 12.42/4.66 foldl1 :: (a -> a -> a) -> List a -> a; 12.42/4.66 foldl1 f (Cons x xs) = foldl f x xs; 12.42/4.66 12.42/4.66 foldr :: (b -> a -> a) -> a -> List b -> a; 12.42/4.66 foldr f z Nil = z; 12.42/4.66 foldr f z (Cons x xs) = f x (foldr f z xs); 12.42/4.66 12.42/4.66 fromIntegerMyInt :: Integer -> MyInt; 12.42/4.66 fromIntegerMyInt (Integer x) = x; 12.42/4.66 12.42/4.66 fromIntegral = pt fromIntegerMyInt toIntegerMyInt; 12.42/4.66 12.42/4.66 map :: (b -> a) -> List b -> List a; 12.42/4.66 map f Nil = Nil; 12.42/4.66 map f (Cons x xs) = Cons (f x) (map f xs); 12.42/4.66 12.42/4.66 nonnull :: (Main.Char -> MyBool) -> List Main.Char -> List (Tup2 (List Main.Char) (List Main.Char)); 12.42/4.66 nonnull p s = concatMap nonnull0 (Cons (span p s) Nil); 12.42/4.66 12.42/4.66 nonnull0 vu68 = nonnull00 vu68; 12.42/4.66 12.42/4.66 nonnull00 (Tup2 (Cons vy vz) t) = Cons (Tup2 (Cons vy vz) t) Nil; 12.42/4.66 nonnull00 wu = Nil; 12.42/4.66 12.42/4.66 otherwise :: MyBool; 12.42/4.66 otherwise = MyTrue; 12.42/4.66 12.42/4.66 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 12.42/4.66 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 12.42/4.66 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 12.42/4.66 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 12.42/4.66 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 12.42/4.66 12.42/4.66 primMulInt :: MyInt -> MyInt -> MyInt; 12.42/4.66 primMulInt (Main.Pos x) (Main.Pos y) = Main.Pos (primMulNat x y); 12.42/4.66 primMulInt (Main.Pos x) (Main.Neg y) = Main.Neg (primMulNat x y); 12.42/4.66 primMulInt (Main.Neg x) (Main.Pos y) = Main.Neg (primMulNat x y); 12.42/4.66 primMulInt (Main.Neg x) (Main.Neg y) = Main.Pos (primMulNat x y); 12.42/4.66 12.42/4.66 primMulNat :: Main.Nat -> Main.Nat -> Main.Nat; 12.42/4.66 primMulNat Main.Zero Main.Zero = Main.Zero; 12.42/4.66 primMulNat Main.Zero (Main.Succ y) = Main.Zero; 12.42/4.66 primMulNat (Main.Succ x) Main.Zero = Main.Zero; 12.42/4.66 primMulNat (Main.Succ x) (Main.Succ y) = primPlusNat (primMulNat x (Main.Succ y)) (Main.Succ y); 12.42/4.66 12.42/4.66 primPlusInt :: MyInt -> MyInt -> MyInt; 12.42/4.66 primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; 12.42/4.66 primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; 12.42/4.66 primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); 12.42/4.66 primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); 12.42/4.66 12.42/4.66 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 12.42/4.66 primPlusNat Main.Zero Main.Zero = Main.Zero; 12.42/4.66 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 12.42/4.66 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 12.42/4.66 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 12.42/4.66 12.42/4.66 psMyInt :: MyInt -> MyInt -> MyInt; 12.42/4.66 psMyInt = primPlusInt; 12.42/4.66 12.42/4.66 psPs :: List a -> List a -> List a; 12.42/4.66 psPs Nil ys = ys; 12.42/4.66 psPs (Cons x xs) ys = Cons x (psPs xs ys); 12.42/4.66 12.42/4.66 pt :: (c -> a) -> (b -> c) -> b -> a; 12.42/4.66 pt f g x = f (g x); 12.42/4.66 12.42/4.66 readInt radix isDig digToInt s = concatMap (readInt1 radix digToInt) (nonnull isDig s); 12.42/4.66 12.42/4.66 readInt0 radix n d = psMyInt (srMyInt n radix) d; 12.42/4.66 12.42/4.66 readInt1 radix digToInt vu77 = readInt10 radix digToInt vu77; 12.42/4.66 12.42/4.66 readInt10 radix digToInt (Tup2 ds r) = Cons (Tup2 (foldl1 (readInt0 radix) (map (pt fromIntegral digToInt) ds)) r) Nil; 12.42/4.66 readInt10 radix digToInt vv = Nil; 12.42/4.66 12.42/4.66 span :: (a -> MyBool) -> List a -> Tup2 (List a) (List a); 12.42/4.66 span p Nil = span3 p Nil; 12.42/4.66 span p (Cons wv ww) = span2 p (Cons wv ww); 12.42/4.66 12.42/4.66 span2 p (Cons wv ww) = span2Span1 p ww p wv ww (p wv); 12.42/4.66 12.42/4.66 span2Span0 xx xy p wv ww MyTrue = Tup2 Nil (Cons wv ww); 12.42/4.66 12.42/4.66 span2Span1 xx xy p wv ww MyTrue = Tup2 (Cons wv (span2Ys xx xy)) (span2Zs xx xy); 12.42/4.66 span2Span1 xx xy p wv ww MyFalse = span2Span0 xx xy p wv ww otherwise; 12.42/4.66 12.42/4.66 span2Vu43 xx xy = span xx xy; 12.42/4.66 12.42/4.66 span2Ys xx xy = span2Ys0 xx xy (span2Vu43 xx xy); 12.42/4.66 12.42/4.66 span2Ys0 xx xy (Tup2 ys wx) = ys; 12.42/4.66 12.42/4.66 span2Zs xx xy = span2Zs0 xx xy (span2Vu43 xx xy); 12.42/4.66 12.42/4.66 span2Zs0 xx xy (Tup2 wy zs) = zs; 12.42/4.66 12.42/4.66 span3 p Nil = Tup2 Nil Nil; 12.42/4.66 span3 xv xw = span2 xv xw; 12.42/4.66 12.42/4.66 srMyInt :: MyInt -> MyInt -> MyInt; 12.42/4.66 srMyInt = primMulInt; 12.42/4.66 12.42/4.66 toIntegerMyInt :: MyInt -> Integer; 12.42/4.66 toIntegerMyInt x = Integer x; 12.42/4.66 12.42/4.66 } 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (1) BR (EQUIVALENT) 12.42/4.66 Replaced joker patterns by fresh variables and removed binding patterns. 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (2) 12.42/4.66 Obligation: 12.42/4.66 mainModule Main 12.42/4.66 module Main where { 12.42/4.66 import qualified Prelude; 12.42/4.66 data Main.Char = Char MyInt ; 12.42/4.66 12.42/4.66 data Integer = Integer MyInt ; 12.42/4.66 12.42/4.66 data List a = Cons a (List a) | Nil ; 12.42/4.66 12.42/4.66 data MyBool = MyTrue | MyFalse ; 12.42/4.66 12.42/4.66 data MyInt = Pos Main.Nat | Neg Main.Nat ; 12.42/4.66 12.42/4.66 data Main.Nat = Succ Main.Nat | Zero ; 12.42/4.66 12.42/4.66 data Tup2 a b = Tup2 a b ; 12.42/4.66 12.42/4.66 concat :: List (List a) -> List a; 12.42/4.66 concat = foldr psPs Nil; 12.42/4.66 12.42/4.66 concatMap :: (b -> List a) -> List b -> List a; 12.42/4.66 concatMap f = pt concat (map f); 12.42/4.66 12.42/4.66 foldl :: (a -> b -> a) -> a -> List b -> a; 12.42/4.66 foldl f z Nil = z; 12.42/4.66 foldl f z (Cons x xs) = foldl f (f z x) xs; 12.42/4.66 12.42/4.66 foldl1 :: (a -> a -> a) -> List a -> a; 12.42/4.66 foldl1 f (Cons x xs) = foldl f x xs; 12.42/4.66 12.42/4.66 foldr :: (b -> a -> a) -> a -> List b -> a; 12.42/4.66 foldr f z Nil = z; 12.42/4.66 foldr f z (Cons x xs) = f x (foldr f z xs); 12.42/4.66 12.42/4.66 fromIntegerMyInt :: Integer -> MyInt; 12.42/4.66 fromIntegerMyInt (Integer x) = x; 12.42/4.66 12.42/4.66 fromIntegral = pt fromIntegerMyInt toIntegerMyInt; 12.42/4.66 12.42/4.66 map :: (b -> a) -> List b -> List a; 12.42/4.66 map f Nil = Nil; 12.42/4.66 map f (Cons x xs) = Cons (f x) (map f xs); 12.42/4.66 12.42/4.66 nonnull :: (Main.Char -> MyBool) -> List Main.Char -> List (Tup2 (List Main.Char) (List Main.Char)); 12.42/4.66 nonnull p s = concatMap nonnull0 (Cons (span p s) Nil); 12.42/4.66 12.42/4.66 nonnull0 vu68 = nonnull00 vu68; 12.42/4.66 12.42/4.66 nonnull00 (Tup2 (Cons vy vz) t) = Cons (Tup2 (Cons vy vz) t) Nil; 12.42/4.66 nonnull00 wu = Nil; 12.42/4.66 12.42/4.66 otherwise :: MyBool; 12.42/4.66 otherwise = MyTrue; 12.42/4.66 12.42/4.66 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 12.42/4.66 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 12.42/4.66 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 12.42/4.66 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 12.42/4.66 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 12.42/4.66 12.42/4.66 primMulInt :: MyInt -> MyInt -> MyInt; 12.42/4.66 primMulInt (Main.Pos x) (Main.Pos y) = Main.Pos (primMulNat x y); 12.42/4.66 primMulInt (Main.Pos x) (Main.Neg y) = Main.Neg (primMulNat x y); 12.42/4.66 primMulInt (Main.Neg x) (Main.Pos y) = Main.Neg (primMulNat x y); 12.42/4.66 primMulInt (Main.Neg x) (Main.Neg y) = Main.Pos (primMulNat x y); 12.42/4.66 12.42/4.66 primMulNat :: Main.Nat -> Main.Nat -> Main.Nat; 12.42/4.66 primMulNat Main.Zero Main.Zero = Main.Zero; 12.42/4.66 primMulNat Main.Zero (Main.Succ y) = Main.Zero; 12.42/4.66 primMulNat (Main.Succ x) Main.Zero = Main.Zero; 12.42/4.66 primMulNat (Main.Succ x) (Main.Succ y) = primPlusNat (primMulNat x (Main.Succ y)) (Main.Succ y); 12.42/4.66 12.42/4.66 primPlusInt :: MyInt -> MyInt -> MyInt; 12.42/4.66 primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; 12.42/4.66 primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; 12.42/4.66 primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); 12.42/4.66 primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); 12.42/4.66 12.42/4.66 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 12.42/4.66 primPlusNat Main.Zero Main.Zero = Main.Zero; 12.42/4.66 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 12.42/4.66 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 12.42/4.66 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 12.42/4.66 12.42/4.66 psMyInt :: MyInt -> MyInt -> MyInt; 12.42/4.66 psMyInt = primPlusInt; 12.42/4.66 12.42/4.66 psPs :: List a -> List a -> List a; 12.42/4.66 psPs Nil ys = ys; 12.42/4.66 psPs (Cons x xs) ys = Cons x (psPs xs ys); 12.42/4.66 12.42/4.66 pt :: (b -> a) -> (c -> b) -> c -> a; 12.42/4.66 pt f g x = f (g x); 12.42/4.66 12.42/4.66 readInt radix isDig digToInt s = concatMap (readInt1 radix digToInt) (nonnull isDig s); 12.42/4.66 12.42/4.66 readInt0 radix n d = psMyInt (srMyInt n radix) d; 12.42/4.66 12.42/4.66 readInt1 radix digToInt vu77 = readInt10 radix digToInt vu77; 12.42/4.66 12.42/4.66 readInt10 radix digToInt (Tup2 ds r) = Cons (Tup2 (foldl1 (readInt0 radix) (map (pt fromIntegral digToInt) ds)) r) Nil; 12.42/4.66 readInt10 radix digToInt vv = Nil; 12.42/4.66 12.42/4.66 span :: (a -> MyBool) -> List a -> Tup2 (List a) (List a); 12.42/4.66 span p Nil = span3 p Nil; 12.42/4.66 span p (Cons wv ww) = span2 p (Cons wv ww); 12.42/4.66 12.42/4.66 span2 p (Cons wv ww) = span2Span1 p ww p wv ww (p wv); 12.42/4.66 12.42/4.66 span2Span0 xx xy p wv ww MyTrue = Tup2 Nil (Cons wv ww); 12.42/4.66 12.42/4.66 span2Span1 xx xy p wv ww MyTrue = Tup2 (Cons wv (span2Ys xx xy)) (span2Zs xx xy); 12.42/4.66 span2Span1 xx xy p wv ww MyFalse = span2Span0 xx xy p wv ww otherwise; 12.42/4.66 12.42/4.66 span2Vu43 xx xy = span xx xy; 12.42/4.66 12.42/4.66 span2Ys xx xy = span2Ys0 xx xy (span2Vu43 xx xy); 12.42/4.66 12.42/4.66 span2Ys0 xx xy (Tup2 ys wx) = ys; 12.42/4.66 12.42/4.66 span2Zs xx xy = span2Zs0 xx xy (span2Vu43 xx xy); 12.42/4.66 12.42/4.66 span2Zs0 xx xy (Tup2 wy zs) = zs; 12.42/4.66 12.42/4.66 span3 p Nil = Tup2 Nil Nil; 12.42/4.66 span3 xv xw = span2 xv xw; 12.42/4.66 12.42/4.66 srMyInt :: MyInt -> MyInt -> MyInt; 12.42/4.66 srMyInt = primMulInt; 12.42/4.66 12.42/4.66 toIntegerMyInt :: MyInt -> Integer; 12.42/4.66 toIntegerMyInt x = Integer x; 12.42/4.66 12.42/4.66 } 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (3) COR (EQUIVALENT) 12.42/4.66 Cond Reductions: 12.42/4.66 The following Function with conditions 12.42/4.66 "undefined |Falseundefined; 12.42/4.66 " 12.42/4.66 is transformed to 12.42/4.66 "undefined = undefined1; 12.42/4.66 " 12.42/4.66 "undefined0 True = undefined; 12.42/4.66 " 12.42/4.66 "undefined1 = undefined0 False; 12.42/4.66 " 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (4) 12.42/4.66 Obligation: 12.42/4.66 mainModule Main 12.42/4.66 module Main where { 12.42/4.66 import qualified Prelude; 12.42/4.66 data Main.Char = Char MyInt ; 12.42/4.66 12.42/4.66 data Integer = Integer MyInt ; 12.42/4.66 12.42/4.66 data List a = Cons a (List a) | Nil ; 12.42/4.66 12.42/4.66 data MyBool = MyTrue | MyFalse ; 12.42/4.66 12.42/4.66 data MyInt = Pos Main.Nat | Neg Main.Nat ; 12.42/4.66 12.42/4.66 data Main.Nat = Succ Main.Nat | Zero ; 12.42/4.66 12.42/4.66 data Tup2 b a = Tup2 b a ; 12.42/4.66 12.42/4.66 concat :: List (List a) -> List a; 12.42/4.66 concat = foldr psPs Nil; 12.42/4.66 12.42/4.66 concatMap :: (a -> List b) -> List a -> List b; 12.42/4.66 concatMap f = pt concat (map f); 12.42/4.66 12.42/4.66 foldl :: (b -> a -> b) -> b -> List a -> b; 12.42/4.66 foldl f z Nil = z; 12.42/4.66 foldl f z (Cons x xs) = foldl f (f z x) xs; 12.42/4.66 12.42/4.66 foldl1 :: (a -> a -> a) -> List a -> a; 12.42/4.66 foldl1 f (Cons x xs) = foldl f x xs; 12.42/4.66 12.42/4.66 foldr :: (a -> b -> b) -> b -> List a -> b; 12.42/4.66 foldr f z Nil = z; 12.42/4.66 foldr f z (Cons x xs) = f x (foldr f z xs); 12.42/4.66 12.42/4.66 fromIntegerMyInt :: Integer -> MyInt; 12.42/4.66 fromIntegerMyInt (Integer x) = x; 12.42/4.66 12.42/4.66 fromIntegral = pt fromIntegerMyInt toIntegerMyInt; 12.42/4.66 12.42/4.66 map :: (b -> a) -> List b -> List a; 12.42/4.66 map f Nil = Nil; 12.42/4.66 map f (Cons x xs) = Cons (f x) (map f xs); 12.42/4.66 12.42/4.66 nonnull :: (Main.Char -> MyBool) -> List Main.Char -> List (Tup2 (List Main.Char) (List Main.Char)); 12.42/4.66 nonnull p s = concatMap nonnull0 (Cons (span p s) Nil); 12.42/4.66 12.42/4.66 nonnull0 vu68 = nonnull00 vu68; 12.42/4.66 12.42/4.66 nonnull00 (Tup2 (Cons vy vz) t) = Cons (Tup2 (Cons vy vz) t) Nil; 12.42/4.66 nonnull00 wu = Nil; 12.42/4.66 12.42/4.66 otherwise :: MyBool; 12.42/4.66 otherwise = MyTrue; 12.42/4.66 12.42/4.66 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 12.42/4.66 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 12.42/4.66 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 12.42/4.66 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 12.42/4.66 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 12.42/4.66 12.42/4.66 primMulInt :: MyInt -> MyInt -> MyInt; 12.42/4.66 primMulInt (Main.Pos x) (Main.Pos y) = Main.Pos (primMulNat x y); 12.42/4.66 primMulInt (Main.Pos x) (Main.Neg y) = Main.Neg (primMulNat x y); 12.42/4.66 primMulInt (Main.Neg x) (Main.Pos y) = Main.Neg (primMulNat x y); 12.42/4.66 primMulInt (Main.Neg x) (Main.Neg y) = Main.Pos (primMulNat x y); 12.42/4.66 12.42/4.66 primMulNat :: Main.Nat -> Main.Nat -> Main.Nat; 12.42/4.66 primMulNat Main.Zero Main.Zero = Main.Zero; 12.42/4.66 primMulNat Main.Zero (Main.Succ y) = Main.Zero; 12.42/4.66 primMulNat (Main.Succ x) Main.Zero = Main.Zero; 12.42/4.66 primMulNat (Main.Succ x) (Main.Succ y) = primPlusNat (primMulNat x (Main.Succ y)) (Main.Succ y); 12.42/4.66 12.42/4.66 primPlusInt :: MyInt -> MyInt -> MyInt; 12.42/4.66 primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; 12.42/4.66 primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; 12.42/4.66 primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); 12.42/4.66 primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); 12.42/4.66 12.42/4.66 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 12.42/4.66 primPlusNat Main.Zero Main.Zero = Main.Zero; 12.42/4.66 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 12.42/4.66 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 12.42/4.66 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 12.42/4.66 12.42/4.66 psMyInt :: MyInt -> MyInt -> MyInt; 12.42/4.66 psMyInt = primPlusInt; 12.42/4.66 12.42/4.66 psPs :: List a -> List a -> List a; 12.42/4.66 psPs Nil ys = ys; 12.42/4.66 psPs (Cons x xs) ys = Cons x (psPs xs ys); 12.42/4.66 12.42/4.66 pt :: (a -> c) -> (b -> a) -> b -> c; 12.42/4.66 pt f g x = f (g x); 12.42/4.66 12.42/4.66 readInt radix isDig digToInt s = concatMap (readInt1 radix digToInt) (nonnull isDig s); 12.42/4.66 12.42/4.66 readInt0 radix n d = psMyInt (srMyInt n radix) d; 12.42/4.66 12.42/4.66 readInt1 radix digToInt vu77 = readInt10 radix digToInt vu77; 12.42/4.66 12.42/4.66 readInt10 radix digToInt (Tup2 ds r) = Cons (Tup2 (foldl1 (readInt0 radix) (map (pt fromIntegral digToInt) ds)) r) Nil; 12.42/4.66 readInt10 radix digToInt vv = Nil; 12.42/4.66 12.42/4.66 span :: (a -> MyBool) -> List a -> Tup2 (List a) (List a); 12.42/4.66 span p Nil = span3 p Nil; 12.42/4.66 span p (Cons wv ww) = span2 p (Cons wv ww); 12.42/4.66 12.42/4.66 span2 p (Cons wv ww) = span2Span1 p ww p wv ww (p wv); 12.42/4.66 12.42/4.66 span2Span0 xx xy p wv ww MyTrue = Tup2 Nil (Cons wv ww); 12.42/4.66 12.42/4.66 span2Span1 xx xy p wv ww MyTrue = Tup2 (Cons wv (span2Ys xx xy)) (span2Zs xx xy); 12.42/4.66 span2Span1 xx xy p wv ww MyFalse = span2Span0 xx xy p wv ww otherwise; 12.42/4.66 12.42/4.66 span2Vu43 xx xy = span xx xy; 12.42/4.66 12.42/4.66 span2Ys xx xy = span2Ys0 xx xy (span2Vu43 xx xy); 12.42/4.66 12.42/4.66 span2Ys0 xx xy (Tup2 ys wx) = ys; 12.42/4.66 12.42/4.66 span2Zs xx xy = span2Zs0 xx xy (span2Vu43 xx xy); 12.42/4.66 12.42/4.66 span2Zs0 xx xy (Tup2 wy zs) = zs; 12.42/4.66 12.42/4.66 span3 p Nil = Tup2 Nil Nil; 12.42/4.66 span3 xv xw = span2 xv xw; 12.42/4.66 12.42/4.66 srMyInt :: MyInt -> MyInt -> MyInt; 12.42/4.66 srMyInt = primMulInt; 12.42/4.66 12.42/4.66 toIntegerMyInt :: MyInt -> Integer; 12.42/4.66 toIntegerMyInt x = Integer x; 12.42/4.66 12.42/4.66 } 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (5) Narrow (SOUND) 12.42/4.66 Haskell To QDPs 12.42/4.66 12.42/4.66 digraph dp_graph { 12.42/4.66 node [outthreshold=100, inthreshold=100];1[label="readInt",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 12.42/4.66 3[label="readInt wz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 12.42/4.66 4[label="readInt wz3 wz4",fontsize=16,color="grey",shape="box"];4 -> 5[label="",style="dashed", color="grey", weight=3]; 12.42/4.66 5[label="readInt wz3 wz4 wz5",fontsize=16,color="grey",shape="box"];5 -> 6[label="",style="dashed", color="grey", weight=3]; 12.42/4.66 6[label="readInt wz3 wz4 wz5 wz6",fontsize=16,color="black",shape="triangle"];6 -> 7[label="",style="solid", color="black", weight=3]; 12.42/4.66 7[label="concatMap (readInt1 wz3 wz5) (nonnull wz4 wz6)",fontsize=16,color="black",shape="box"];7 -> 8[label="",style="solid", color="black", weight=3]; 12.42/4.66 8[label="pt concat (map (readInt1 wz3 wz5)) (nonnull wz4 wz6)",fontsize=16,color="black",shape="box"];8 -> 9[label="",style="solid", color="black", weight=3]; 12.42/4.66 9[label="concat (map (readInt1 wz3 wz5) (nonnull wz4 wz6))",fontsize=16,color="black",shape="box"];9 -> 10[label="",style="solid", color="black", weight=3]; 12.42/4.66 10[label="foldr psPs Nil (map (readInt1 wz3 wz5) (nonnull wz4 wz6))",fontsize=16,color="black",shape="box"];10 -> 11[label="",style="solid", color="black", weight=3]; 12.42/4.66 11[label="foldr psPs Nil (map (readInt1 wz3 wz5) (concatMap nonnull0 (Cons (span wz4 wz6) Nil)))",fontsize=16,color="black",shape="box"];11 -> 12[label="",style="solid", color="black", weight=3]; 12.42/4.66 12[label="foldr psPs Nil (map (readInt1 wz3 wz5) (pt concat (map nonnull0) (Cons (span wz4 wz6) Nil)))",fontsize=16,color="black",shape="box"];12 -> 13[label="",style="solid", color="black", weight=3]; 12.42/4.66 13[label="foldr psPs Nil (map (readInt1 wz3 wz5) (concat (map nonnull0 (Cons (span wz4 wz6) Nil))))",fontsize=16,color="black",shape="box"];13 -> 14[label="",style="solid", color="black", weight=3]; 12.42/4.66 14[label="foldr psPs Nil (map (readInt1 wz3 wz5) (foldr psPs Nil (map nonnull0 (Cons (span wz4 wz6) Nil))))",fontsize=16,color="black",shape="box"];14 -> 15[label="",style="solid", color="black", weight=3]; 12.42/4.66 15[label="foldr psPs Nil (map (readInt1 wz3 wz5) (foldr psPs Nil (Cons (nonnull0 (span wz4 wz6)) (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];15 -> 16[label="",style="solid", color="black", weight=3]; 12.42/4.66 16[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull0 (span wz4 wz6)) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];16 -> 17[label="",style="solid", color="black", weight=3]; 12.42/4.66 17[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (span wz4 wz6)) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="burlywood",shape="box"];278[label="wz6/Cons wz60 wz61",fontsize=10,color="white",style="solid",shape="box"];17 -> 278[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 278 -> 18[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 279[label="wz6/Nil",fontsize=10,color="white",style="solid",shape="box"];17 -> 279[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 279 -> 19[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 18[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (span wz4 (Cons wz60 wz61))) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];18 -> 20[label="",style="solid", color="black", weight=3]; 12.42/4.66 19[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (span wz4 Nil)) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];19 -> 21[label="",style="solid", color="black", weight=3]; 12.42/4.66 20[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (span2 wz4 (Cons wz60 wz61))) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];20 -> 22[label="",style="solid", color="black", weight=3]; 12.42/4.66 21[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (span3 wz4 Nil)) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];21 -> 23[label="",style="solid", color="black", weight=3]; 12.42/4.66 22 -> 24[label="",style="dashed", color="red", weight=0]; 12.42/4.66 22[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (span2Span1 wz4 wz61 wz4 wz60 wz61 (wz4 wz60))) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="magenta"];22 -> 25[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 23[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (Tup2 Nil Nil)) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];23 -> 26[label="",style="solid", color="black", weight=3]; 12.42/4.66 25[label="wz4 wz60",fontsize=16,color="green",shape="box"];25 -> 30[label="",style="dashed", color="green", weight=3]; 12.42/4.66 24[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (span2Span1 wz4 wz61 wz4 wz60 wz61 wz7)) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="burlywood",shape="triangle"];280[label="wz7/MyTrue",fontsize=10,color="white",style="solid",shape="box"];24 -> 280[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 280 -> 28[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 281[label="wz7/MyFalse",fontsize=10,color="white",style="solid",shape="box"];24 -> 281[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 281 -> 29[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 26[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs Nil (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="triangle"];26 -> 31[label="",style="solid", color="black", weight=3]; 12.42/4.66 30[label="wz60",fontsize=16,color="green",shape="box"];28[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (span2Span1 wz4 wz61 wz4 wz60 wz61 MyTrue)) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];28 -> 32[label="",style="solid", color="black", weight=3]; 12.42/4.66 29[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (span2Span1 wz4 wz61 wz4 wz60 wz61 MyFalse)) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];29 -> 33[label="",style="solid", color="black", weight=3]; 12.42/4.66 31[label="foldr psPs Nil (map (readInt1 wz3 wz5) (foldr psPs Nil (map nonnull0 Nil)))",fontsize=16,color="black",shape="box"];31 -> 34[label="",style="solid", color="black", weight=3]; 12.42/4.66 32[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (Tup2 (Cons wz60 (span2Ys wz4 wz61)) (span2Zs wz4 wz61))) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];32 -> 35[label="",style="solid", color="black", weight=3]; 12.42/4.66 33[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (span2Span0 wz4 wz61 wz4 wz60 wz61 otherwise)) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];33 -> 36[label="",style="solid", color="black", weight=3]; 12.42/4.66 34[label="foldr psPs Nil (map (readInt1 wz3 wz5) (foldr psPs Nil Nil))",fontsize=16,color="black",shape="box"];34 -> 37[label="",style="solid", color="black", weight=3]; 12.42/4.66 35[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (Cons (Tup2 (Cons wz60 (span2Ys wz4 wz61)) (span2Zs wz4 wz61)) Nil) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];35 -> 38[label="",style="solid", color="black", weight=3]; 12.42/4.66 36[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (span2Span0 wz4 wz61 wz4 wz60 wz61 MyTrue)) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];36 -> 39[label="",style="solid", color="black", weight=3]; 12.42/4.66 37[label="foldr psPs Nil (map (readInt1 wz3 wz5) Nil)",fontsize=16,color="black",shape="box"];37 -> 40[label="",style="solid", color="black", weight=3]; 12.42/4.66 38[label="foldr psPs Nil (map (readInt1 wz3 wz5) (Cons (Tup2 (Cons wz60 (span2Ys wz4 wz61)) (span2Zs wz4 wz61)) (psPs Nil (foldr psPs Nil (map nonnull0 Nil)))))",fontsize=16,color="black",shape="box"];38 -> 41[label="",style="solid", color="black", weight=3]; 12.42/4.66 39[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs (nonnull00 (Tup2 Nil (Cons wz60 wz61))) (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="black",shape="box"];39 -> 42[label="",style="solid", color="black", weight=3]; 12.42/4.66 40[label="foldr psPs Nil Nil",fontsize=16,color="black",shape="box"];40 -> 43[label="",style="solid", color="black", weight=3]; 12.42/4.66 41[label="foldr psPs Nil (Cons (readInt1 wz3 wz5 (Tup2 (Cons wz60 (span2Ys wz4 wz61)) (span2Zs wz4 wz61))) (map (readInt1 wz3 wz5) (psPs Nil (foldr psPs Nil (map nonnull0 Nil)))))",fontsize=16,color="black",shape="box"];41 -> 44[label="",style="solid", color="black", weight=3]; 12.42/4.66 42 -> 26[label="",style="dashed", color="red", weight=0]; 12.42/4.66 42[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs Nil (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="magenta"];43[label="Nil",fontsize=16,color="green",shape="box"];44 -> 45[label="",style="dashed", color="red", weight=0]; 12.42/4.66 44[label="psPs (readInt1 wz3 wz5 (Tup2 (Cons wz60 (span2Ys wz4 wz61)) (span2Zs wz4 wz61))) (foldr psPs Nil (map (readInt1 wz3 wz5) (psPs Nil (foldr psPs Nil (map nonnull0 Nil)))))",fontsize=16,color="magenta"];44 -> 46[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 46 -> 26[label="",style="dashed", color="red", weight=0]; 12.42/4.66 46[label="foldr psPs Nil (map (readInt1 wz3 wz5) (psPs Nil (foldr psPs Nil (map nonnull0 Nil))))",fontsize=16,color="magenta"];45[label="psPs (readInt1 wz3 wz5 (Tup2 (Cons wz60 (span2Ys wz4 wz61)) (span2Zs wz4 wz61))) wz8",fontsize=16,color="black",shape="triangle"];45 -> 47[label="",style="solid", color="black", weight=3]; 12.42/4.66 47[label="psPs (readInt10 wz3 wz5 (Tup2 (Cons wz60 (span2Ys wz4 wz61)) (span2Zs wz4 wz61))) wz8",fontsize=16,color="black",shape="box"];47 -> 48[label="",style="solid", color="black", weight=3]; 12.42/4.66 48[label="psPs (Cons (Tup2 (foldl1 (readInt0 wz3) (map (pt fromIntegral wz5) (Cons wz60 (span2Ys wz4 wz61)))) (span2Zs wz4 wz61)) Nil) wz8",fontsize=16,color="black",shape="box"];48 -> 49[label="",style="solid", color="black", weight=3]; 12.42/4.66 49[label="Cons (Tup2 (foldl1 (readInt0 wz3) (map (pt fromIntegral wz5) (Cons wz60 (span2Ys wz4 wz61)))) (span2Zs wz4 wz61)) (psPs Nil wz8)",fontsize=16,color="green",shape="box"];49 -> 50[label="",style="dashed", color="green", weight=3]; 12.42/4.66 49 -> 51[label="",style="dashed", color="green", weight=3]; 12.42/4.66 49 -> 52[label="",style="dashed", color="green", weight=3]; 12.42/4.66 50[label="foldl1 (readInt0 wz3) (map (pt fromIntegral wz5) (Cons wz60 (span2Ys wz4 wz61)))",fontsize=16,color="black",shape="box"];50 -> 53[label="",style="solid", color="black", weight=3]; 12.42/4.66 51[label="span2Zs wz4 wz61",fontsize=16,color="black",shape="triangle"];51 -> 54[label="",style="solid", color="black", weight=3]; 12.42/4.66 52[label="psPs Nil wz8",fontsize=16,color="black",shape="box"];52 -> 55[label="",style="solid", color="black", weight=3]; 12.42/4.66 53[label="foldl1 (readInt0 wz3) (Cons (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys wz4 wz61)))",fontsize=16,color="black",shape="box"];53 -> 56[label="",style="solid", color="black", weight=3]; 12.42/4.66 54[label="span2Zs0 wz4 wz61 (span2Vu43 wz4 wz61)",fontsize=16,color="black",shape="box"];54 -> 57[label="",style="solid", color="black", weight=3]; 12.42/4.66 55[label="wz8",fontsize=16,color="green",shape="box"];56[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys wz4 wz61))",fontsize=16,color="black",shape="box"];56 -> 58[label="",style="solid", color="black", weight=3]; 12.42/4.66 57[label="span2Zs0 wz4 wz61 (span wz4 wz61)",fontsize=16,color="burlywood",shape="box"];282[label="wz61/Cons wz610 wz611",fontsize=10,color="white",style="solid",shape="box"];57 -> 282[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 282 -> 59[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 283[label="wz61/Nil",fontsize=10,color="white",style="solid",shape="box"];57 -> 283[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 283 -> 60[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 58[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys0 wz4 wz61 (span2Vu43 wz4 wz61)))",fontsize=16,color="black",shape="box"];58 -> 61[label="",style="solid", color="black", weight=3]; 12.42/4.66 59[label="span2Zs0 wz4 (Cons wz610 wz611) (span wz4 (Cons wz610 wz611))",fontsize=16,color="black",shape="box"];59 -> 62[label="",style="solid", color="black", weight=3]; 12.42/4.66 60[label="span2Zs0 wz4 Nil (span wz4 Nil)",fontsize=16,color="black",shape="box"];60 -> 63[label="",style="solid", color="black", weight=3]; 12.42/4.66 61[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys0 wz4 wz61 (span wz4 wz61)))",fontsize=16,color="burlywood",shape="box"];284[label="wz61/Cons wz610 wz611",fontsize=10,color="white",style="solid",shape="box"];61 -> 284[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 284 -> 64[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 285[label="wz61/Nil",fontsize=10,color="white",style="solid",shape="box"];61 -> 285[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 285 -> 65[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 62[label="span2Zs0 wz4 (Cons wz610 wz611) (span2 wz4 (Cons wz610 wz611))",fontsize=16,color="black",shape="box"];62 -> 66[label="",style="solid", color="black", weight=3]; 12.42/4.66 63[label="span2Zs0 wz4 Nil (span3 wz4 Nil)",fontsize=16,color="black",shape="box"];63 -> 67[label="",style="solid", color="black", weight=3]; 12.42/4.66 64[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz610 wz611) (span wz4 (Cons wz610 wz611))))",fontsize=16,color="black",shape="box"];64 -> 68[label="",style="solid", color="black", weight=3]; 12.42/4.66 65[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys0 wz4 Nil (span wz4 Nil)))",fontsize=16,color="black",shape="box"];65 -> 69[label="",style="solid", color="black", weight=3]; 12.42/4.66 66 -> 70[label="",style="dashed", color="red", weight=0]; 12.42/4.66 66[label="span2Zs0 wz4 (Cons wz610 wz611) (span2Span1 wz4 wz611 wz4 wz610 wz611 (wz4 wz610))",fontsize=16,color="magenta"];66 -> 71[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 67[label="span2Zs0 wz4 Nil (Tup2 Nil Nil)",fontsize=16,color="black",shape="box"];67 -> 72[label="",style="solid", color="black", weight=3]; 12.42/4.66 68[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz610 wz611) (span2 wz4 (Cons wz610 wz611))))",fontsize=16,color="black",shape="box"];68 -> 73[label="",style="solid", color="black", weight=3]; 12.42/4.66 69[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys0 wz4 Nil (span3 wz4 Nil)))",fontsize=16,color="black",shape="box"];69 -> 74[label="",style="solid", color="black", weight=3]; 12.42/4.66 71[label="wz4 wz610",fontsize=16,color="green",shape="box"];71 -> 78[label="",style="dashed", color="green", weight=3]; 12.42/4.66 70[label="span2Zs0 wz4 (Cons wz610 wz611) (span2Span1 wz4 wz611 wz4 wz610 wz611 wz9)",fontsize=16,color="burlywood",shape="triangle"];286[label="wz9/MyTrue",fontsize=10,color="white",style="solid",shape="box"];70 -> 286[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 286 -> 76[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 287[label="wz9/MyFalse",fontsize=10,color="white",style="solid",shape="box"];70 -> 287[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 287 -> 77[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 72[label="Nil",fontsize=16,color="green",shape="box"];73 -> 79[label="",style="dashed", color="red", weight=0]; 12.42/4.66 73[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz610 wz611) (span2Span1 wz4 wz611 wz4 wz610 wz611 (wz4 wz610))))",fontsize=16,color="magenta"];73 -> 80[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 74[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys0 wz4 Nil (Tup2 Nil Nil)))",fontsize=16,color="black",shape="box"];74 -> 81[label="",style="solid", color="black", weight=3]; 12.42/4.66 78[label="wz610",fontsize=16,color="green",shape="box"];76[label="span2Zs0 wz4 (Cons wz610 wz611) (span2Span1 wz4 wz611 wz4 wz610 wz611 MyTrue)",fontsize=16,color="black",shape="box"];76 -> 82[label="",style="solid", color="black", weight=3]; 12.42/4.66 77[label="span2Zs0 wz4 (Cons wz610 wz611) (span2Span1 wz4 wz611 wz4 wz610 wz611 MyFalse)",fontsize=16,color="black",shape="box"];77 -> 83[label="",style="solid", color="black", weight=3]; 12.42/4.66 80[label="wz4 wz610",fontsize=16,color="green",shape="box"];80 -> 87[label="",style="dashed", color="green", weight=3]; 12.42/4.66 79[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz610 wz611) (span2Span1 wz4 wz611 wz4 wz610 wz611 wz10)))",fontsize=16,color="burlywood",shape="triangle"];288[label="wz10/MyTrue",fontsize=10,color="white",style="solid",shape="box"];79 -> 288[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 288 -> 85[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 289[label="wz10/MyFalse",fontsize=10,color="white",style="solid",shape="box"];79 -> 289[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 289 -> 86[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 81[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) Nil)",fontsize=16,color="black",shape="box"];81 -> 88[label="",style="solid", color="black", weight=3]; 12.42/4.66 82 -> 89[label="",style="dashed", color="red", weight=0]; 12.42/4.66 82[label="span2Zs0 wz4 (Cons wz610 wz611) (Tup2 (Cons wz610 (span2Ys wz4 wz611)) (span2Zs wz4 wz611))",fontsize=16,color="magenta"];82 -> 90[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 83[label="span2Zs0 wz4 (Cons wz610 wz611) (span2Span0 wz4 wz611 wz4 wz610 wz611 otherwise)",fontsize=16,color="black",shape="box"];83 -> 91[label="",style="solid", color="black", weight=3]; 12.42/4.66 87[label="wz610",fontsize=16,color="green",shape="box"];85[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz610 wz611) (span2Span1 wz4 wz611 wz4 wz610 wz611 MyTrue)))",fontsize=16,color="black",shape="box"];85 -> 92[label="",style="solid", color="black", weight=3]; 12.42/4.66 86[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz610 wz611) (span2Span1 wz4 wz611 wz4 wz610 wz611 MyFalse)))",fontsize=16,color="black",shape="box"];86 -> 93[label="",style="solid", color="black", weight=3]; 12.42/4.66 88[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) Nil",fontsize=16,color="black",shape="box"];88 -> 94[label="",style="solid", color="black", weight=3]; 12.42/4.66 90 -> 51[label="",style="dashed", color="red", weight=0]; 12.42/4.66 90[label="span2Zs wz4 wz611",fontsize=16,color="magenta"];90 -> 95[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 89[label="span2Zs0 wz4 (Cons wz610 wz611) (Tup2 (Cons wz610 (span2Ys wz4 wz611)) wz11)",fontsize=16,color="black",shape="triangle"];89 -> 96[label="",style="solid", color="black", weight=3]; 12.42/4.66 91[label="span2Zs0 wz4 (Cons wz610 wz611) (span2Span0 wz4 wz611 wz4 wz610 wz611 MyTrue)",fontsize=16,color="black",shape="box"];91 -> 97[label="",style="solid", color="black", weight=3]; 12.42/4.66 92 -> 104[label="",style="dashed", color="red", weight=0]; 12.42/4.66 92[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz610 wz611) (Tup2 (Cons wz610 (span2Ys wz4 wz611)) (span2Zs wz4 wz611))))",fontsize=16,color="magenta"];92 -> 105[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 92 -> 106[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 93 -> 149[label="",style="dashed", color="red", weight=0]; 12.42/4.66 93[label="foldl (readInt0 wz3) (pt fromIntegral wz5 wz60) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz610 wz611) (span2Span0 wz4 wz611 wz4 wz610 wz611 otherwise)))",fontsize=16,color="magenta"];93 -> 150[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 93 -> 151[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 93 -> 152[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 94[label="pt fromIntegral wz5 wz60",fontsize=16,color="black",shape="triangle"];94 -> 101[label="",style="solid", color="black", weight=3]; 12.42/4.66 95[label="wz611",fontsize=16,color="green",shape="box"];96[label="wz11",fontsize=16,color="green",shape="box"];97[label="span2Zs0 wz4 (Cons wz610 wz611) (Tup2 Nil (Cons wz610 wz611))",fontsize=16,color="black",shape="box"];97 -> 102[label="",style="solid", color="black", weight=3]; 12.42/4.66 105 -> 94[label="",style="dashed", color="red", weight=0]; 12.42/4.66 105[label="pt fromIntegral wz5 wz60",fontsize=16,color="magenta"];106 -> 51[label="",style="dashed", color="red", weight=0]; 12.42/4.66 106[label="span2Zs wz4 wz611",fontsize=16,color="magenta"];106 -> 108[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 104[label="foldl (readInt0 wz3) wz13 (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz610 wz611) (Tup2 (Cons wz610 (span2Ys wz4 wz611)) wz12)))",fontsize=16,color="black",shape="triangle"];104 -> 109[label="",style="solid", color="black", weight=3]; 12.42/4.66 150[label="wz610",fontsize=16,color="green",shape="box"];151 -> 94[label="",style="dashed", color="red", weight=0]; 12.42/4.66 151[label="pt fromIntegral wz5 wz60",fontsize=16,color="magenta"];152[label="wz611",fontsize=16,color="green",shape="box"];149[label="foldl (readInt0 wz3) wz17 (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz6110 wz6111) (span2Span0 wz4 wz6111 wz4 wz6110 wz6111 otherwise)))",fontsize=16,color="black",shape="triangle"];149 -> 154[label="",style="solid", color="black", weight=3]; 12.42/4.66 101[label="fromIntegral (wz5 wz60)",fontsize=16,color="black",shape="box"];101 -> 112[label="",style="solid", color="black", weight=3]; 12.42/4.66 102[label="Cons wz610 wz611",fontsize=16,color="green",shape="box"];108[label="wz611",fontsize=16,color="green",shape="box"];109[label="foldl (readInt0 wz3) wz13 (map (pt fromIntegral wz5) (Cons wz610 (span2Ys wz4 wz611)))",fontsize=16,color="black",shape="box"];109 -> 113[label="",style="solid", color="black", weight=3]; 12.42/4.66 154[label="foldl (readInt0 wz3) wz17 (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz6110 wz6111) (span2Span0 wz4 wz6111 wz4 wz6110 wz6111 MyTrue)))",fontsize=16,color="black",shape="box"];154 -> 157[label="",style="solid", color="black", weight=3]; 12.42/4.66 112[label="pt fromIntegerMyInt toIntegerMyInt (wz5 wz60)",fontsize=16,color="black",shape="box"];112 -> 115[label="",style="solid", color="black", weight=3]; 12.42/4.66 113 -> 116[label="",style="dashed", color="red", weight=0]; 12.42/4.66 113[label="foldl (readInt0 wz3) wz13 (Cons (pt fromIntegral wz5 wz610) (map (pt fromIntegral wz5) (span2Ys wz4 wz611)))",fontsize=16,color="magenta"];113 -> 117[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 157[label="foldl (readInt0 wz3) wz17 (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz6110 wz6111) (Tup2 Nil (Cons wz6110 wz6111))))",fontsize=16,color="black",shape="box"];157 -> 159[label="",style="solid", color="black", weight=3]; 12.42/4.66 115[label="fromIntegerMyInt (toIntegerMyInt (wz5 wz60))",fontsize=16,color="black",shape="box"];115 -> 119[label="",style="solid", color="black", weight=3]; 12.42/4.66 117 -> 94[label="",style="dashed", color="red", weight=0]; 12.42/4.66 117[label="pt fromIntegral wz5 wz610",fontsize=16,color="magenta"];117 -> 120[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 116[label="foldl (readInt0 wz3) wz13 (Cons wz15 (map (pt fromIntegral wz5) (span2Ys wz4 wz611)))",fontsize=16,color="black",shape="triangle"];116 -> 121[label="",style="solid", color="black", weight=3]; 12.42/4.66 159 -> 118[label="",style="dashed", color="red", weight=0]; 12.42/4.66 159[label="foldl (readInt0 wz3) wz17 (map (pt fromIntegral wz5) Nil)",fontsize=16,color="magenta"];159 -> 162[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 119[label="fromIntegerMyInt (Integer (wz5 wz60))",fontsize=16,color="black",shape="box"];119 -> 123[label="",style="solid", color="black", weight=3]; 12.42/4.66 120[label="wz610",fontsize=16,color="green",shape="box"];121[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys wz4 wz611))",fontsize=16,color="black",shape="box"];121 -> 124[label="",style="solid", color="black", weight=3]; 12.42/4.66 162[label="wz17",fontsize=16,color="green",shape="box"];118[label="foldl (readInt0 wz3) wz14 (map (pt fromIntegral wz5) Nil)",fontsize=16,color="black",shape="triangle"];118 -> 122[label="",style="solid", color="black", weight=3]; 12.42/4.66 123[label="wz5 wz60",fontsize=16,color="green",shape="box"];123 -> 126[label="",style="dashed", color="green", weight=3]; 12.42/4.66 124[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys0 wz4 wz611 (span2Vu43 wz4 wz611)))",fontsize=16,color="black",shape="box"];124 -> 127[label="",style="solid", color="black", weight=3]; 12.42/4.66 122[label="foldl (readInt0 wz3) wz14 Nil",fontsize=16,color="black",shape="box"];122 -> 125[label="",style="solid", color="black", weight=3]; 12.42/4.66 126[label="wz60",fontsize=16,color="green",shape="box"];127[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys0 wz4 wz611 (span wz4 wz611)))",fontsize=16,color="burlywood",shape="box"];290[label="wz611/Cons wz6110 wz6111",fontsize=10,color="white",style="solid",shape="box"];127 -> 290[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 290 -> 128[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 291[label="wz611/Nil",fontsize=10,color="white",style="solid",shape="box"];127 -> 291[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 291 -> 129[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 125[label="wz14",fontsize=16,color="green",shape="box"];128[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz6110 wz6111) (span wz4 (Cons wz6110 wz6111))))",fontsize=16,color="black",shape="box"];128 -> 130[label="",style="solid", color="black", weight=3]; 12.42/4.66 129[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys0 wz4 Nil (span wz4 Nil)))",fontsize=16,color="black",shape="box"];129 -> 131[label="",style="solid", color="black", weight=3]; 12.42/4.66 130[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz6110 wz6111) (span2 wz4 (Cons wz6110 wz6111))))",fontsize=16,color="black",shape="box"];130 -> 132[label="",style="solid", color="black", weight=3]; 12.42/4.66 131[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys0 wz4 Nil (span3 wz4 Nil)))",fontsize=16,color="black",shape="box"];131 -> 133[label="",style="solid", color="black", weight=3]; 12.42/4.66 132 -> 134[label="",style="dashed", color="red", weight=0]; 12.42/4.66 132[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz6110 wz6111) (span2Span1 wz4 wz6111 wz4 wz6110 wz6111 (wz4 wz6110))))",fontsize=16,color="magenta"];132 -> 135[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 133[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys0 wz4 Nil (Tup2 Nil Nil)))",fontsize=16,color="black",shape="box"];133 -> 136[label="",style="solid", color="black", weight=3]; 12.42/4.66 135[label="wz4 wz6110",fontsize=16,color="green",shape="box"];135 -> 140[label="",style="dashed", color="green", weight=3]; 12.42/4.66 134[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz6110 wz6111) (span2Span1 wz4 wz6111 wz4 wz6110 wz6111 wz16)))",fontsize=16,color="burlywood",shape="triangle"];292[label="wz16/MyTrue",fontsize=10,color="white",style="solid",shape="box"];134 -> 292[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 292 -> 138[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 293[label="wz16/MyFalse",fontsize=10,color="white",style="solid",shape="box"];134 -> 293[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 293 -> 139[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 136 -> 118[label="",style="dashed", color="red", weight=0]; 12.42/4.66 136[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) Nil)",fontsize=16,color="magenta"];136 -> 141[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 140[label="wz6110",fontsize=16,color="green",shape="box"];138[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz6110 wz6111) (span2Span1 wz4 wz6111 wz4 wz6110 wz6111 MyTrue)))",fontsize=16,color="black",shape="box"];138 -> 142[label="",style="solid", color="black", weight=3]; 12.42/4.66 139[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz6110 wz6111) (span2Span1 wz4 wz6111 wz4 wz6110 wz6111 MyFalse)))",fontsize=16,color="black",shape="box"];139 -> 143[label="",style="solid", color="black", weight=3]; 12.42/4.66 141[label="readInt0 wz3 wz13 wz15",fontsize=16,color="black",shape="triangle"];141 -> 144[label="",style="solid", color="black", weight=3]; 12.42/4.66 142 -> 104[label="",style="dashed", color="red", weight=0]; 12.42/4.66 142[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz6110 wz6111) (Tup2 (Cons wz6110 (span2Ys wz4 wz6111)) (span2Zs wz4 wz6111))))",fontsize=16,color="magenta"];142 -> 145[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 142 -> 146[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 142 -> 147[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 142 -> 148[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 143 -> 149[label="",style="dashed", color="red", weight=0]; 12.42/4.66 143[label="foldl (readInt0 wz3) (readInt0 wz3 wz13 wz15) (map (pt fromIntegral wz5) (span2Ys0 wz4 (Cons wz6110 wz6111) (span2Span0 wz4 wz6111 wz4 wz6110 wz6111 otherwise)))",fontsize=16,color="magenta"];143 -> 153[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 144[label="psMyInt (srMyInt wz13 wz3) wz15",fontsize=16,color="black",shape="box"];144 -> 155[label="",style="solid", color="black", weight=3]; 12.42/4.66 145[label="wz6110",fontsize=16,color="green",shape="box"];146[label="wz6111",fontsize=16,color="green",shape="box"];147 -> 141[label="",style="dashed", color="red", weight=0]; 12.42/4.66 147[label="readInt0 wz3 wz13 wz15",fontsize=16,color="magenta"];148 -> 51[label="",style="dashed", color="red", weight=0]; 12.42/4.66 148[label="span2Zs wz4 wz6111",fontsize=16,color="magenta"];148 -> 156[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 153 -> 141[label="",style="dashed", color="red", weight=0]; 12.42/4.66 153[label="readInt0 wz3 wz13 wz15",fontsize=16,color="magenta"];155[label="primPlusInt (srMyInt wz13 wz3) wz15",fontsize=16,color="black",shape="box"];155 -> 158[label="",style="solid", color="black", weight=3]; 12.42/4.66 156[label="wz6111",fontsize=16,color="green",shape="box"];158[label="primPlusInt (primMulInt wz13 wz3) wz15",fontsize=16,color="burlywood",shape="box"];294[label="wz13/Pos wz130",fontsize=10,color="white",style="solid",shape="box"];158 -> 294[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 294 -> 160[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 295[label="wz13/Neg wz130",fontsize=10,color="white",style="solid",shape="box"];158 -> 295[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 295 -> 161[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 160[label="primPlusInt (primMulInt (Pos wz130) wz3) wz15",fontsize=16,color="burlywood",shape="box"];296[label="wz3/Pos wz30",fontsize=10,color="white",style="solid",shape="box"];160 -> 296[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 296 -> 163[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 297[label="wz3/Neg wz30",fontsize=10,color="white",style="solid",shape="box"];160 -> 297[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 297 -> 164[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 161[label="primPlusInt (primMulInt (Neg wz130) wz3) wz15",fontsize=16,color="burlywood",shape="box"];298[label="wz3/Pos wz30",fontsize=10,color="white",style="solid",shape="box"];161 -> 298[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 298 -> 165[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 299[label="wz3/Neg wz30",fontsize=10,color="white",style="solid",shape="box"];161 -> 299[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 299 -> 166[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 163[label="primPlusInt (primMulInt (Pos wz130) (Pos wz30)) wz15",fontsize=16,color="black",shape="box"];163 -> 167[label="",style="solid", color="black", weight=3]; 12.42/4.66 164[label="primPlusInt (primMulInt (Pos wz130) (Neg wz30)) wz15",fontsize=16,color="black",shape="box"];164 -> 168[label="",style="solid", color="black", weight=3]; 12.42/4.66 165[label="primPlusInt (primMulInt (Neg wz130) (Pos wz30)) wz15",fontsize=16,color="black",shape="box"];165 -> 169[label="",style="solid", color="black", weight=3]; 12.42/4.66 166[label="primPlusInt (primMulInt (Neg wz130) (Neg wz30)) wz15",fontsize=16,color="black",shape="box"];166 -> 170[label="",style="solid", color="black", weight=3]; 12.42/4.66 167[label="primPlusInt (Pos (primMulNat wz130 wz30)) wz15",fontsize=16,color="burlywood",shape="triangle"];300[label="wz15/Pos wz150",fontsize=10,color="white",style="solid",shape="box"];167 -> 300[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 300 -> 171[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 301[label="wz15/Neg wz150",fontsize=10,color="white",style="solid",shape="box"];167 -> 301[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 301 -> 172[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 168[label="primPlusInt (Neg (primMulNat wz130 wz30)) wz15",fontsize=16,color="burlywood",shape="triangle"];302[label="wz15/Pos wz150",fontsize=10,color="white",style="solid",shape="box"];168 -> 302[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 302 -> 173[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 303[label="wz15/Neg wz150",fontsize=10,color="white",style="solid",shape="box"];168 -> 303[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 303 -> 174[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 169 -> 168[label="",style="dashed", color="red", weight=0]; 12.42/4.66 169[label="primPlusInt (Neg (primMulNat wz130 wz30)) wz15",fontsize=16,color="magenta"];169 -> 175[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 169 -> 176[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 170 -> 167[label="",style="dashed", color="red", weight=0]; 12.42/4.66 170[label="primPlusInt (Pos (primMulNat wz130 wz30)) wz15",fontsize=16,color="magenta"];170 -> 177[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 170 -> 178[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 171[label="primPlusInt (Pos (primMulNat wz130 wz30)) (Pos wz150)",fontsize=16,color="black",shape="box"];171 -> 179[label="",style="solid", color="black", weight=3]; 12.42/4.66 172[label="primPlusInt (Pos (primMulNat wz130 wz30)) (Neg wz150)",fontsize=16,color="black",shape="box"];172 -> 180[label="",style="solid", color="black", weight=3]; 12.42/4.66 173[label="primPlusInt (Neg (primMulNat wz130 wz30)) (Pos wz150)",fontsize=16,color="black",shape="box"];173 -> 181[label="",style="solid", color="black", weight=3]; 12.42/4.66 174[label="primPlusInt (Neg (primMulNat wz130 wz30)) (Neg wz150)",fontsize=16,color="black",shape="box"];174 -> 182[label="",style="solid", color="black", weight=3]; 12.42/4.66 175[label="wz30",fontsize=16,color="green",shape="box"];176[label="wz130",fontsize=16,color="green",shape="box"];177[label="wz30",fontsize=16,color="green",shape="box"];178[label="wz130",fontsize=16,color="green",shape="box"];179[label="Pos (primPlusNat (primMulNat wz130 wz30) wz150)",fontsize=16,color="green",shape="box"];179 -> 183[label="",style="dashed", color="green", weight=3]; 12.42/4.66 180 -> 221[label="",style="dashed", color="red", weight=0]; 12.42/4.66 180[label="primMinusNat (primMulNat wz130 wz30) wz150",fontsize=16,color="magenta"];180 -> 222[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 181 -> 221[label="",style="dashed", color="red", weight=0]; 12.42/4.66 181[label="primMinusNat wz150 (primMulNat wz130 wz30)",fontsize=16,color="magenta"];181 -> 223[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 181 -> 224[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 182[label="Neg (primPlusNat (primMulNat wz130 wz30) wz150)",fontsize=16,color="green",shape="box"];182 -> 188[label="",style="dashed", color="green", weight=3]; 12.42/4.66 183 -> 234[label="",style="dashed", color="red", weight=0]; 12.42/4.66 183[label="primPlusNat (primMulNat wz130 wz30) wz150",fontsize=16,color="magenta"];183 -> 235[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 222[label="primMulNat wz130 wz30",fontsize=16,color="burlywood",shape="triangle"];304[label="wz130/Succ wz1300",fontsize=10,color="white",style="solid",shape="box"];222 -> 304[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 304 -> 229[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 305[label="wz130/Zero",fontsize=10,color="white",style="solid",shape="box"];222 -> 305[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 305 -> 230[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 221[label="primMinusNat wz18 wz150",fontsize=16,color="burlywood",shape="triangle"];306[label="wz18/Succ wz180",fontsize=10,color="white",style="solid",shape="box"];221 -> 306[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 306 -> 231[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 307[label="wz18/Zero",fontsize=10,color="white",style="solid",shape="box"];221 -> 307[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 307 -> 232[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 223 -> 222[label="",style="dashed", color="red", weight=0]; 12.42/4.66 223[label="primMulNat wz130 wz30",fontsize=16,color="magenta"];223 -> 233[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 224[label="wz150",fontsize=16,color="green",shape="box"];188 -> 234[label="",style="dashed", color="red", weight=0]; 12.42/4.66 188[label="primPlusNat (primMulNat wz130 wz30) wz150",fontsize=16,color="magenta"];188 -> 236[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 188 -> 237[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 235 -> 222[label="",style="dashed", color="red", weight=0]; 12.42/4.66 235[label="primMulNat wz130 wz30",fontsize=16,color="magenta"];234[label="primPlusNat wz19 wz150",fontsize=16,color="burlywood",shape="triangle"];308[label="wz19/Succ wz190",fontsize=10,color="white",style="solid",shape="box"];234 -> 308[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 308 -> 242[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 309[label="wz19/Zero",fontsize=10,color="white",style="solid",shape="box"];234 -> 309[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 309 -> 243[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 229[label="primMulNat (Succ wz1300) wz30",fontsize=16,color="burlywood",shape="box"];310[label="wz30/Succ wz300",fontsize=10,color="white",style="solid",shape="box"];229 -> 310[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 310 -> 244[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 311[label="wz30/Zero",fontsize=10,color="white",style="solid",shape="box"];229 -> 311[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 311 -> 245[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 230[label="primMulNat Zero wz30",fontsize=16,color="burlywood",shape="box"];312[label="wz30/Succ wz300",fontsize=10,color="white",style="solid",shape="box"];230 -> 312[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 312 -> 246[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 313[label="wz30/Zero",fontsize=10,color="white",style="solid",shape="box"];230 -> 313[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 313 -> 247[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 231[label="primMinusNat (Succ wz180) wz150",fontsize=16,color="burlywood",shape="box"];314[label="wz150/Succ wz1500",fontsize=10,color="white",style="solid",shape="box"];231 -> 314[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 314 -> 248[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 315[label="wz150/Zero",fontsize=10,color="white",style="solid",shape="box"];231 -> 315[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 315 -> 249[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 232[label="primMinusNat Zero wz150",fontsize=16,color="burlywood",shape="box"];316[label="wz150/Succ wz1500",fontsize=10,color="white",style="solid",shape="box"];232 -> 316[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 316 -> 250[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 317[label="wz150/Zero",fontsize=10,color="white",style="solid",shape="box"];232 -> 317[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 317 -> 251[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 233[label="wz30",fontsize=16,color="green",shape="box"];236[label="wz150",fontsize=16,color="green",shape="box"];237 -> 222[label="",style="dashed", color="red", weight=0]; 12.42/4.66 237[label="primMulNat wz130 wz30",fontsize=16,color="magenta"];237 -> 252[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 242[label="primPlusNat (Succ wz190) wz150",fontsize=16,color="burlywood",shape="box"];318[label="wz150/Succ wz1500",fontsize=10,color="white",style="solid",shape="box"];242 -> 318[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 318 -> 253[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 319[label="wz150/Zero",fontsize=10,color="white",style="solid",shape="box"];242 -> 319[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 319 -> 254[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 243[label="primPlusNat Zero wz150",fontsize=16,color="burlywood",shape="box"];320[label="wz150/Succ wz1500",fontsize=10,color="white",style="solid",shape="box"];243 -> 320[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 320 -> 255[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 321[label="wz150/Zero",fontsize=10,color="white",style="solid",shape="box"];243 -> 321[label="",style="solid", color="burlywood", weight=9]; 12.42/4.66 321 -> 256[label="",style="solid", color="burlywood", weight=3]; 12.42/4.66 244[label="primMulNat (Succ wz1300) (Succ wz300)",fontsize=16,color="black",shape="box"];244 -> 257[label="",style="solid", color="black", weight=3]; 12.42/4.66 245[label="primMulNat (Succ wz1300) Zero",fontsize=16,color="black",shape="box"];245 -> 258[label="",style="solid", color="black", weight=3]; 12.42/4.66 246[label="primMulNat Zero (Succ wz300)",fontsize=16,color="black",shape="box"];246 -> 259[label="",style="solid", color="black", weight=3]; 12.42/4.66 247[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];247 -> 260[label="",style="solid", color="black", weight=3]; 12.42/4.66 248[label="primMinusNat (Succ wz180) (Succ wz1500)",fontsize=16,color="black",shape="box"];248 -> 261[label="",style="solid", color="black", weight=3]; 12.42/4.66 249[label="primMinusNat (Succ wz180) Zero",fontsize=16,color="black",shape="box"];249 -> 262[label="",style="solid", color="black", weight=3]; 12.42/4.66 250[label="primMinusNat Zero (Succ wz1500)",fontsize=16,color="black",shape="box"];250 -> 263[label="",style="solid", color="black", weight=3]; 12.42/4.66 251[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];251 -> 264[label="",style="solid", color="black", weight=3]; 12.42/4.66 252[label="wz30",fontsize=16,color="green",shape="box"];253[label="primPlusNat (Succ wz190) (Succ wz1500)",fontsize=16,color="black",shape="box"];253 -> 265[label="",style="solid", color="black", weight=3]; 12.42/4.66 254[label="primPlusNat (Succ wz190) Zero",fontsize=16,color="black",shape="box"];254 -> 266[label="",style="solid", color="black", weight=3]; 12.42/4.66 255[label="primPlusNat Zero (Succ wz1500)",fontsize=16,color="black",shape="box"];255 -> 267[label="",style="solid", color="black", weight=3]; 12.42/4.66 256[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];256 -> 268[label="",style="solid", color="black", weight=3]; 12.42/4.66 257 -> 234[label="",style="dashed", color="red", weight=0]; 12.42/4.66 257[label="primPlusNat (primMulNat wz1300 (Succ wz300)) (Succ wz300)",fontsize=16,color="magenta"];257 -> 269[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 257 -> 270[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 258[label="Zero",fontsize=16,color="green",shape="box"];259[label="Zero",fontsize=16,color="green",shape="box"];260[label="Zero",fontsize=16,color="green",shape="box"];261 -> 221[label="",style="dashed", color="red", weight=0]; 12.42/4.66 261[label="primMinusNat wz180 wz1500",fontsize=16,color="magenta"];261 -> 271[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 261 -> 272[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 262[label="Pos (Succ wz180)",fontsize=16,color="green",shape="box"];263[label="Neg (Succ wz1500)",fontsize=16,color="green",shape="box"];264[label="Pos Zero",fontsize=16,color="green",shape="box"];265[label="Succ (Succ (primPlusNat wz190 wz1500))",fontsize=16,color="green",shape="box"];265 -> 273[label="",style="dashed", color="green", weight=3]; 12.42/4.66 266[label="Succ wz190",fontsize=16,color="green",shape="box"];267[label="Succ wz1500",fontsize=16,color="green",shape="box"];268[label="Zero",fontsize=16,color="green",shape="box"];269[label="Succ wz300",fontsize=16,color="green",shape="box"];270 -> 222[label="",style="dashed", color="red", weight=0]; 12.42/4.66 270[label="primMulNat wz1300 (Succ wz300)",fontsize=16,color="magenta"];270 -> 274[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 270 -> 275[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 271[label="wz1500",fontsize=16,color="green",shape="box"];272[label="wz180",fontsize=16,color="green",shape="box"];273 -> 234[label="",style="dashed", color="red", weight=0]; 12.42/4.66 273[label="primPlusNat wz190 wz1500",fontsize=16,color="magenta"];273 -> 276[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 273 -> 277[label="",style="dashed", color="magenta", weight=3]; 12.42/4.66 274[label="Succ wz300",fontsize=16,color="green",shape="box"];275[label="wz1300",fontsize=16,color="green",shape="box"];276[label="wz1500",fontsize=16,color="green",shape="box"];277[label="wz190",fontsize=16,color="green",shape="box"];} 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (6) 12.42/4.66 Complex Obligation (AND) 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (7) 12.42/4.66 Obligation: 12.42/4.66 Q DP problem: 12.42/4.66 The TRS P consists of the following rules: 12.42/4.66 12.42/4.66 new_span2Zs0(wz4, wz610, wz611) -> new_span2Zs(wz4, wz611) 12.42/4.66 new_span2Zs(wz4, Cons(wz610, wz611)) -> new_span2Zs0(wz4, wz610, wz611) 12.42/4.66 12.42/4.66 R is empty. 12.42/4.66 Q is empty. 12.42/4.66 We have to consider all minimal (P,Q,R)-chains. 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (8) QDPSizeChangeProof (EQUIVALENT) 12.42/4.66 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. 12.42/4.66 12.42/4.66 From the DPs we obtained the following set of size-change graphs: 12.42/4.66 *new_span2Zs(wz4, Cons(wz610, wz611)) -> new_span2Zs0(wz4, wz610, wz611) 12.42/4.66 The graph contains the following edges 1 >= 1, 2 > 2, 2 > 3 12.42/4.66 12.42/4.66 12.42/4.66 *new_span2Zs0(wz4, wz610, wz611) -> new_span2Zs(wz4, wz611) 12.42/4.66 The graph contains the following edges 1 >= 1, 3 >= 2 12.42/4.66 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (9) 12.42/4.66 YES 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (10) 12.42/4.66 Obligation: 12.42/4.66 Q DP problem: 12.42/4.66 The TRS P consists of the following rules: 12.42/4.66 12.42/4.66 new_primMulNat(Main.Succ(wz1300), Main.Succ(wz300)) -> new_primMulNat(wz1300, Main.Succ(wz300)) 12.42/4.66 12.42/4.66 R is empty. 12.42/4.66 Q is empty. 12.42/4.66 We have to consider all minimal (P,Q,R)-chains. 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (11) QDPSizeChangeProof (EQUIVALENT) 12.42/4.66 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. 12.42/4.66 12.42/4.66 From the DPs we obtained the following set of size-change graphs: 12.42/4.66 *new_primMulNat(Main.Succ(wz1300), Main.Succ(wz300)) -> new_primMulNat(wz1300, Main.Succ(wz300)) 12.42/4.66 The graph contains the following edges 1 > 1, 2 >= 2 12.42/4.66 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (12) 12.42/4.66 YES 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (13) 12.42/4.66 Obligation: 12.42/4.66 Q DP problem: 12.42/4.66 The TRS P consists of the following rules: 12.42/4.66 12.42/4.66 new_primMinusNat(Main.Succ(wz180), Main.Succ(wz1500)) -> new_primMinusNat(wz180, wz1500) 12.42/4.66 12.42/4.66 R is empty. 12.42/4.66 Q is empty. 12.42/4.66 We have to consider all minimal (P,Q,R)-chains. 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (14) QDPSizeChangeProof (EQUIVALENT) 12.42/4.66 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. 12.42/4.66 12.42/4.66 From the DPs we obtained the following set of size-change graphs: 12.42/4.66 *new_primMinusNat(Main.Succ(wz180), Main.Succ(wz1500)) -> new_primMinusNat(wz180, wz1500) 12.42/4.66 The graph contains the following edges 1 > 1, 2 > 2 12.42/4.66 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (15) 12.42/4.66 YES 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (16) 12.42/4.66 Obligation: 12.42/4.66 Q DP problem: 12.42/4.66 The TRS P consists of the following rules: 12.42/4.66 12.42/4.66 new_primPlusNat(Main.Succ(wz190), Main.Succ(wz1500)) -> new_primPlusNat(wz190, wz1500) 12.42/4.66 12.42/4.66 R is empty. 12.42/4.66 Q is empty. 12.42/4.66 We have to consider all minimal (P,Q,R)-chains. 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (17) QDPSizeChangeProof (EQUIVALENT) 12.42/4.66 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. 12.42/4.66 12.42/4.66 From the DPs we obtained the following set of size-change graphs: 12.42/4.66 *new_primPlusNat(Main.Succ(wz190), Main.Succ(wz1500)) -> new_primPlusNat(wz190, wz1500) 12.42/4.66 The graph contains the following edges 1 > 1, 2 > 2 12.42/4.66 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (18) 12.42/4.66 YES 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (19) 12.42/4.66 Obligation: 12.42/4.66 Q DP problem: 12.42/4.66 The TRS P consists of the following rules: 12.42/4.66 12.42/4.66 new_foldl1(wz3, wz13, wz5, wz4, wz610, wz611, wz12) -> new_foldl(wz3, wz13, new_pt(wz5, wz610), wz5, wz4, wz611) 12.42/4.66 new_foldl(wz3, wz13, wz15, wz5, wz4, Cons(wz6110, wz6111)) -> new_foldl0(wz3, wz13, wz15, wz5, wz4, wz6110, wz6111) 12.42/4.66 new_foldl0(wz3, wz13, wz15, wz5, wz4, wz6110, wz6111) -> new_foldl1(wz3, new_readInt0(wz3, wz13, wz15), wz5, wz4, wz6110, wz6111, new_span2Zs1(wz4, wz6111)) 12.42/4.66 12.42/4.66 The TRS R consists of the following rules: 12.42/4.66 12.42/4.66 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 12.42/4.66 new_primPlusInt(wz130, wz30, Main.Pos(wz150)) -> new_primMinusNat0(wz150, new_primMulNat0(wz130, wz30)) 12.42/4.66 new_primMinusNat0(Main.Succ(wz180), Main.Succ(wz1500)) -> new_primMinusNat0(wz180, wz1500) 12.42/4.66 new_primMulNat0(Main.Zero, Main.Zero) -> Main.Zero 12.42/4.66 new_primPlusNat0(Main.Succ(wz190), Main.Succ(wz1500)) -> Main.Succ(Main.Succ(new_primPlusNat0(wz190, wz1500))) 12.42/4.66 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 12.42/4.66 new_primPlusNat0(Main.Succ(wz190), Main.Zero) -> Main.Succ(wz190) 12.42/4.66 new_primPlusNat0(Main.Zero, Main.Succ(wz1500)) -> Main.Succ(wz1500) 12.42/4.66 new_primMinusNat0(Main.Zero, Main.Succ(wz1500)) -> Main.Neg(Main.Succ(wz1500)) 12.42/4.66 new_primMulNat0(Main.Succ(wz1300), Main.Zero) -> Main.Zero 12.42/4.66 new_primMulNat0(Main.Zero, Main.Succ(wz300)) -> Main.Zero 12.42/4.66 new_primPlusInt0(wz130, wz30, Main.Pos(wz150)) -> Main.Pos(new_primPlusNat0(new_primMulNat0(wz130, wz30), wz150)) 12.42/4.66 new_readInt0(Main.Neg(wz30), Main.Neg(wz130), wz15) -> new_primPlusInt0(wz130, wz30, wz15) 12.42/4.66 new_readInt0(Main.Neg(wz30), Main.Pos(wz130), wz15) -> new_primPlusInt(wz130, wz30, wz15) 12.42/4.66 new_readInt0(Main.Pos(wz30), Main.Neg(wz130), wz15) -> new_primPlusInt(wz130, wz30, wz15) 12.42/4.66 new_primPlusInt0(wz130, wz30, Main.Neg(wz150)) -> new_primMinusNat0(new_primMulNat0(wz130, wz30), wz150) 12.42/4.66 new_primPlusInt(wz130, wz30, Main.Neg(wz150)) -> Main.Neg(new_primPlusNat0(new_primMulNat0(wz130, wz30), wz150)) 12.42/4.66 new_primMinusNat0(Main.Succ(wz180), Main.Zero) -> Main.Pos(Main.Succ(wz180)) 12.42/4.66 new_readInt0(Main.Pos(wz30), Main.Pos(wz130), wz15) -> new_primPlusInt0(wz130, wz30, wz15) 12.42/4.66 new_primMulNat0(Main.Succ(wz1300), Main.Succ(wz300)) -> new_primPlusNat0(new_primMulNat0(wz1300, Main.Succ(wz300)), Main.Succ(wz300)) 12.42/4.66 12.42/4.66 The set Q consists of the following terms: 12.42/4.66 12.42/4.66 new_primPlusInt0(x0, x1, Main.Pos(x2)) 12.42/4.66 new_readInt0(Main.Neg(x0), Main.Pos(x1), x2) 12.42/4.66 new_readInt0(Main.Pos(x0), Main.Neg(x1), x2) 12.42/4.66 new_primPlusNat0(Main.Zero, Main.Zero) 12.42/4.66 new_primPlusInt(x0, x1, Main.Neg(x2)) 12.42/4.66 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 12.42/4.66 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 12.42/4.66 new_readInt0(Main.Neg(x0), Main.Neg(x1), x2) 12.42/4.66 new_primPlusInt(x0, x1, Main.Pos(x2)) 12.42/4.66 new_primPlusNat0(Main.Succ(x0), Main.Zero) 12.42/4.66 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 12.42/4.66 new_primPlusInt0(x0, x1, Main.Neg(x2)) 12.42/4.66 new_readInt0(Main.Pos(x0), Main.Pos(x1), x2) 12.42/4.66 new_primMinusNat0(Main.Zero, Main.Zero) 12.42/4.66 new_primMulNat0(Main.Succ(x0), Main.Zero) 12.42/4.66 new_primMulNat0(Main.Zero, Main.Succ(x0)) 12.42/4.66 new_primMinusNat0(Main.Succ(x0), Main.Zero) 12.42/4.66 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 12.42/4.66 new_primMulNat0(Main.Zero, Main.Zero) 12.42/4.66 new_primMulNat0(Main.Succ(x0), Main.Succ(x1)) 12.42/4.66 12.42/4.66 We have to consider all minimal (P,Q,R)-chains. 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (20) TransformationProof (EQUIVALENT) 12.42/4.66 By instantiating [LPAR04] the rule new_foldl1(wz3, wz13, wz5, wz4, wz610, wz611, wz12) -> new_foldl(wz3, wz13, new_pt(wz5, wz610), wz5, wz4, wz611) we obtained the following new rules [LPAR04]: 12.42/4.66 12.42/4.66 (new_foldl1(z0, y_0, z3, z4, z5, z6, new_span2Zs1(z4, z6)) -> new_foldl(z0, y_0, new_pt(z3, z5), z3, z4, z6),new_foldl1(z0, y_0, z3, z4, z5, z6, new_span2Zs1(z4, z6)) -> new_foldl(z0, y_0, new_pt(z3, z5), z3, z4, z6)) 12.42/4.66 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (21) 12.42/4.66 Obligation: 12.42/4.66 Q DP problem: 12.42/4.66 The TRS P consists of the following rules: 12.42/4.66 12.42/4.66 new_foldl(wz3, wz13, wz15, wz5, wz4, Cons(wz6110, wz6111)) -> new_foldl0(wz3, wz13, wz15, wz5, wz4, wz6110, wz6111) 12.42/4.66 new_foldl0(wz3, wz13, wz15, wz5, wz4, wz6110, wz6111) -> new_foldl1(wz3, new_readInt0(wz3, wz13, wz15), wz5, wz4, wz6110, wz6111, new_span2Zs1(wz4, wz6111)) 12.42/4.66 new_foldl1(z0, y_0, z3, z4, z5, z6, new_span2Zs1(z4, z6)) -> new_foldl(z0, y_0, new_pt(z3, z5), z3, z4, z6) 12.42/4.66 12.42/4.66 The TRS R consists of the following rules: 12.42/4.66 12.42/4.66 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) 12.42/4.66 new_primPlusInt(wz130, wz30, Main.Pos(wz150)) -> new_primMinusNat0(wz150, new_primMulNat0(wz130, wz30)) 12.42/4.66 new_primMinusNat0(Main.Succ(wz180), Main.Succ(wz1500)) -> new_primMinusNat0(wz180, wz1500) 12.42/4.66 new_primMulNat0(Main.Zero, Main.Zero) -> Main.Zero 12.42/4.66 new_primPlusNat0(Main.Succ(wz190), Main.Succ(wz1500)) -> Main.Succ(Main.Succ(new_primPlusNat0(wz190, wz1500))) 12.42/4.66 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero 12.42/4.66 new_primPlusNat0(Main.Succ(wz190), Main.Zero) -> Main.Succ(wz190) 12.42/4.66 new_primPlusNat0(Main.Zero, Main.Succ(wz1500)) -> Main.Succ(wz1500) 12.42/4.66 new_primMinusNat0(Main.Zero, Main.Succ(wz1500)) -> Main.Neg(Main.Succ(wz1500)) 12.42/4.66 new_primMulNat0(Main.Succ(wz1300), Main.Zero) -> Main.Zero 12.42/4.66 new_primMulNat0(Main.Zero, Main.Succ(wz300)) -> Main.Zero 12.42/4.66 new_primPlusInt0(wz130, wz30, Main.Pos(wz150)) -> Main.Pos(new_primPlusNat0(new_primMulNat0(wz130, wz30), wz150)) 12.42/4.66 new_readInt0(Main.Neg(wz30), Main.Neg(wz130), wz15) -> new_primPlusInt0(wz130, wz30, wz15) 12.42/4.66 new_readInt0(Main.Neg(wz30), Main.Pos(wz130), wz15) -> new_primPlusInt(wz130, wz30, wz15) 12.42/4.66 new_readInt0(Main.Pos(wz30), Main.Neg(wz130), wz15) -> new_primPlusInt(wz130, wz30, wz15) 12.42/4.66 new_primPlusInt0(wz130, wz30, Main.Neg(wz150)) -> new_primMinusNat0(new_primMulNat0(wz130, wz30), wz150) 12.42/4.66 new_primPlusInt(wz130, wz30, Main.Neg(wz150)) -> Main.Neg(new_primPlusNat0(new_primMulNat0(wz130, wz30), wz150)) 12.42/4.66 new_primMinusNat0(Main.Succ(wz180), Main.Zero) -> Main.Pos(Main.Succ(wz180)) 12.42/4.66 new_readInt0(Main.Pos(wz30), Main.Pos(wz130), wz15) -> new_primPlusInt0(wz130, wz30, wz15) 12.42/4.66 new_primMulNat0(Main.Succ(wz1300), Main.Succ(wz300)) -> new_primPlusNat0(new_primMulNat0(wz1300, Main.Succ(wz300)), Main.Succ(wz300)) 12.42/4.66 12.42/4.66 The set Q consists of the following terms: 12.42/4.66 12.42/4.66 new_primPlusInt0(x0, x1, Main.Pos(x2)) 12.42/4.66 new_readInt0(Main.Neg(x0), Main.Pos(x1), x2) 12.42/4.66 new_readInt0(Main.Pos(x0), Main.Neg(x1), x2) 12.42/4.66 new_primPlusNat0(Main.Zero, Main.Zero) 12.42/4.66 new_primPlusInt(x0, x1, Main.Neg(x2)) 12.42/4.66 new_primMinusNat0(Main.Zero, Main.Succ(x0)) 12.42/4.66 new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) 12.42/4.66 new_readInt0(Main.Neg(x0), Main.Neg(x1), x2) 12.42/4.66 new_primPlusInt(x0, x1, Main.Pos(x2)) 12.42/4.66 new_primPlusNat0(Main.Succ(x0), Main.Zero) 12.42/4.66 new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) 12.42/4.66 new_primPlusInt0(x0, x1, Main.Neg(x2)) 12.42/4.66 new_readInt0(Main.Pos(x0), Main.Pos(x1), x2) 12.42/4.66 new_primMinusNat0(Main.Zero, Main.Zero) 12.42/4.66 new_primMulNat0(Main.Succ(x0), Main.Zero) 12.42/4.66 new_primMulNat0(Main.Zero, Main.Succ(x0)) 12.42/4.66 new_primMinusNat0(Main.Succ(x0), Main.Zero) 12.42/4.66 new_primPlusNat0(Main.Zero, Main.Succ(x0)) 12.42/4.66 new_primMulNat0(Main.Zero, Main.Zero) 12.42/4.66 new_primMulNat0(Main.Succ(x0), Main.Succ(x1)) 12.42/4.66 12.42/4.66 We have to consider all minimal (P,Q,R)-chains. 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (22) QDPSizeChangeProof (EQUIVALENT) 12.42/4.66 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. 12.42/4.66 12.42/4.66 From the DPs we obtained the following set of size-change graphs: 12.42/4.66 *new_foldl0(wz3, wz13, wz15, wz5, wz4, wz6110, wz6111) -> new_foldl1(wz3, new_readInt0(wz3, wz13, wz15), wz5, wz4, wz6110, wz6111, new_span2Zs1(wz4, wz6111)) 12.42/4.66 The graph contains the following edges 1 >= 1, 4 >= 3, 5 >= 4, 6 >= 5, 7 >= 6 12.42/4.66 12.42/4.66 12.42/4.66 *new_foldl1(z0, y_0, z3, z4, z5, z6, new_span2Zs1(z4, z6)) -> new_foldl(z0, y_0, new_pt(z3, z5), z3, z4, z6) 12.42/4.66 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 4, 4 >= 5, 7 > 5, 6 >= 6, 7 > 6 12.42/4.66 12.42/4.66 12.42/4.66 *new_foldl(wz3, wz13, wz15, wz5, wz4, Cons(wz6110, wz6111)) -> new_foldl0(wz3, wz13, wz15, wz5, wz4, wz6110, wz6111) 12.42/4.66 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 >= 4, 5 >= 5, 6 > 6, 6 > 7 12.42/4.66 12.42/4.66 12.42/4.66 ---------------------------------------- 12.42/4.66 12.42/4.66 (23) 12.42/4.66 YES 12.66/6.76 EOF