31.69/17.82 YES 33.88/18.43 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 33.88/18.43 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 33.88/18.43 33.88/18.43 33.88/18.43 H-Termination with start terms of the given HASKELL could be proven: 33.88/18.43 33.88/18.43 (0) HASKELL 33.88/18.43 (1) BR [EQUIVALENT, 0 ms] 33.88/18.43 (2) HASKELL 33.88/18.43 (3) COR [EQUIVALENT, 0 ms] 33.88/18.43 (4) HASKELL 33.88/18.43 (5) Narrow [SOUND, 0 ms] 33.88/18.43 (6) AND 33.88/18.43 (7) QDP 33.88/18.43 (8) QDPPairToRuleProof [EQUIVALENT, 0 ms] 33.88/18.43 (9) AND 33.88/18.43 (10) QDP 33.88/18.43 (11) TransformationProof [EQUIVALENT, 0 ms] 33.88/18.43 (12) QDP 33.88/18.43 (13) DependencyGraphProof [EQUIVALENT, 0 ms] 33.88/18.43 (14) QDP 33.88/18.43 (15) InductionCalculusProof [EQUIVALENT, 0 ms] 33.88/18.43 (16) QDP 33.88/18.43 (17) NonInfProof [EQUIVALENT, 102 ms] 33.88/18.43 (18) AND 33.88/18.43 (19) QDP 33.88/18.43 (20) DependencyGraphProof [EQUIVALENT, 0 ms] 33.88/18.43 (21) TRUE 33.88/18.43 (22) QDP 33.88/18.43 (23) DependencyGraphProof [EQUIVALENT, 0 ms] 33.88/18.43 (24) TRUE 33.88/18.43 (25) QDP 33.88/18.43 (26) QDPSizeChangeProof [EQUIVALENT, 0 ms] 33.88/18.43 (27) YES 33.88/18.43 (28) QDP 33.88/18.43 (29) DependencyGraphProof [EQUIVALENT, 0 ms] 33.88/18.43 (30) AND 33.88/18.43 (31) QDP 33.88/18.43 (32) QDPSizeChangeProof [EQUIVALENT, 0 ms] 33.88/18.43 (33) YES 33.88/18.43 (34) QDP 33.88/18.43 (35) QDPSizeChangeProof [EQUIVALENT, 0 ms] 33.88/18.43 (36) YES 33.88/18.43 (37) QDP 33.88/18.43 (38) QDPSizeChangeProof [EQUIVALENT, 0 ms] 33.88/18.43 (39) YES 33.88/18.43 33.88/18.43 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (0) 33.88/18.43 Obligation: 33.88/18.43 mainModule Main 33.88/18.43 module Main where { 33.88/18.43 import qualified Prelude; 33.88/18.43 data Main.Char = Char MyInt ; 33.88/18.43 33.88/18.43 data List a = Cons a (List a) | Nil ; 33.88/18.43 33.88/18.43 data MyBool = MyTrue | MyFalse ; 33.88/18.43 33.88/18.43 data MyInt = Pos Main.Nat | Neg Main.Nat ; 33.88/18.43 33.88/18.43 data Main.Nat = Succ Main.Nat | Zero ; 33.88/18.43 33.88/18.43 data Ordering = LT | EQ | GT ; 33.88/18.43 33.88/18.43 data Tup2 a b = Tup2 a b ; 33.88/18.43 33.88/18.43 data Main.WHNF a = WHNF a ; 33.88/18.43 33.88/18.43 compareMyInt :: MyInt -> MyInt -> Ordering; 33.88/18.43 compareMyInt = primCmpInt; 33.88/18.43 33.88/18.43 dsEm :: (a -> b) -> a -> b; 33.88/18.43 dsEm f x = Main.seq x (f x); 33.88/18.43 33.88/18.43 enforceWHNF :: Main.WHNF b -> a -> a; 33.88/18.43 enforceWHNF (Main.WHNF x) y = y; 33.88/18.43 33.88/18.43 enumFromToChar :: Main.Char -> Main.Char -> List Main.Char; 33.88/18.43 enumFromToChar x y = map toEnumChar (enumFromToMyInt (fromEnumChar x) (fromEnumChar y)); 33.88/18.43 33.88/18.43 enumFromToMyInt :: MyInt -> MyInt -> List MyInt; 33.88/18.43 enumFromToMyInt = numericEnumFromTo; 33.88/18.43 33.88/18.43 esEsOrdering :: Ordering -> Ordering -> MyBool; 33.88/18.43 esEsOrdering LT LT = MyTrue; 33.88/18.43 esEsOrdering LT EQ = MyFalse; 33.88/18.43 esEsOrdering LT GT = MyFalse; 33.88/18.43 esEsOrdering EQ LT = MyFalse; 33.88/18.43 esEsOrdering EQ EQ = MyTrue; 33.88/18.43 esEsOrdering EQ GT = MyFalse; 33.88/18.43 esEsOrdering GT LT = MyFalse; 33.88/18.43 esEsOrdering GT EQ = MyFalse; 33.88/18.43 esEsOrdering GT GT = MyTrue; 33.88/18.43 33.88/18.43 flip :: (c -> a -> b) -> a -> c -> b; 33.88/18.43 flip f x y = f y x; 33.88/18.43 33.88/18.43 fromEnumChar :: Main.Char -> MyInt; 33.88/18.43 fromEnumChar = primCharToInt; 33.88/18.43 33.88/18.43 fromIntMyInt :: MyInt -> MyInt; 33.88/18.43 fromIntMyInt x = x; 33.88/18.43 33.88/18.43 fsEsOrdering :: Ordering -> Ordering -> MyBool; 33.88/18.43 fsEsOrdering x y = not (esEsOrdering x y); 33.88/18.43 33.88/18.43 ltEsMyInt :: MyInt -> MyInt -> MyBool; 33.88/18.43 ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; 33.88/18.43 33.88/18.43 map :: (a -> b) -> List a -> List b; 33.88/18.43 map f Nil = Nil; 33.88/18.43 map f (Cons x xs) = Cons (f x) (map f xs); 33.88/18.43 33.88/18.43 not :: MyBool -> MyBool; 33.88/18.43 not MyTrue = MyFalse; 33.88/18.43 not MyFalse = MyTrue; 33.88/18.43 33.88/18.43 numericEnumFrom n = Cons n (dsEm numericEnumFrom (psMyInt n (fromIntMyInt (Main.Pos (Main.Succ Main.Zero))))); 33.88/18.43 33.88/18.43 numericEnumFromTo n m = takeWhile (flip ltEsMyInt m) (numericEnumFrom n); 33.88/18.43 33.88/18.43 otherwise :: MyBool; 33.88/18.43 otherwise = MyTrue; 33.88/18.43 33.88/18.43 primCharToInt :: Main.Char -> MyInt; 33.88/18.43 primCharToInt (Main.Char x) = x; 33.88/18.43 33.88/18.43 primCmpInt :: MyInt -> MyInt -> Ordering; 33.88/18.43 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 33.88/18.43 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 33.88/18.43 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 33.88/18.43 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 33.88/18.43 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 33.88/18.43 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 33.88/18.43 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 33.88/18.43 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 33.88/18.43 33.88/18.43 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 33.88/18.43 primCmpNat Main.Zero Main.Zero = EQ; 33.88/18.43 primCmpNat Main.Zero (Main.Succ y) = LT; 33.88/18.43 primCmpNat (Main.Succ x) Main.Zero = GT; 33.88/18.43 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 33.88/18.43 33.88/18.43 primIntToChar :: MyInt -> Main.Char; 33.88/18.43 primIntToChar x = Main.Char x; 33.88/18.43 33.88/18.43 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 33.88/18.43 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 33.88/18.43 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 33.88/18.43 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 33.88/18.43 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 33.88/18.43 33.88/18.43 primPlusInt :: MyInt -> MyInt -> MyInt; 33.88/18.43 primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; 33.88/18.43 primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; 33.88/18.43 primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); 33.88/18.43 primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); 33.88/18.43 33.88/18.43 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 33.88/18.43 primPlusNat Main.Zero Main.Zero = Main.Zero; 33.88/18.43 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 33.88/18.43 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 33.88/18.43 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 33.88/18.43 33.88/18.43 psMyInt :: MyInt -> MyInt -> MyInt; 33.88/18.43 psMyInt = primPlusInt; 33.88/18.43 33.88/18.43 rangeChar :: Tup2 Main.Char Main.Char -> List Main.Char; 33.88/18.43 rangeChar (Tup2 c c') = enumFromToChar c c'; 33.88/18.43 33.88/18.43 seq :: b -> a -> a; 33.88/18.43 seq x y = Main.enforceWHNF (Main.WHNF x) y; 33.88/18.43 33.88/18.43 takeWhile :: (a -> MyBool) -> List a -> List a; 33.88/18.43 takeWhile p Nil = takeWhile3 p Nil; 33.88/18.43 takeWhile p (Cons x xs) = takeWhile2 p (Cons x xs); 33.88/18.43 33.88/18.43 takeWhile0 p x xs MyTrue = Nil; 33.88/18.43 33.88/18.43 takeWhile1 p x xs MyTrue = Cons x (takeWhile p xs); 33.88/18.43 takeWhile1 p x xs MyFalse = takeWhile0 p x xs otherwise; 33.88/18.43 33.88/18.43 takeWhile2 p (Cons x xs) = takeWhile1 p x xs (p x); 33.88/18.43 33.88/18.43 takeWhile3 p Nil = Nil; 33.88/18.43 takeWhile3 vx vy = takeWhile2 vx vy; 33.88/18.43 33.88/18.43 toEnumChar :: MyInt -> Main.Char; 33.88/18.43 toEnumChar = primIntToChar; 33.88/18.43 33.88/18.43 } 33.88/18.43 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (1) BR (EQUIVALENT) 33.88/18.43 Replaced joker patterns by fresh variables and removed binding patterns. 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (2) 33.88/18.43 Obligation: 33.88/18.43 mainModule Main 33.88/18.43 module Main where { 33.88/18.43 import qualified Prelude; 33.88/18.43 data Main.Char = Char MyInt ; 33.88/18.43 33.88/18.43 data List a = Cons a (List a) | Nil ; 33.88/18.43 33.88/18.43 data MyBool = MyTrue | MyFalse ; 33.88/18.43 33.88/18.43 data MyInt = Pos Main.Nat | Neg Main.Nat ; 33.88/18.43 33.88/18.43 data Main.Nat = Succ Main.Nat | Zero ; 33.88/18.43 33.88/18.43 data Ordering = LT | EQ | GT ; 33.88/18.43 33.88/18.43 data Tup2 b a = Tup2 b a ; 33.88/18.43 33.88/18.43 data Main.WHNF a = WHNF a ; 33.88/18.43 33.88/18.43 compareMyInt :: MyInt -> MyInt -> Ordering; 33.88/18.43 compareMyInt = primCmpInt; 33.88/18.43 33.88/18.43 dsEm :: (b -> a) -> b -> a; 33.88/18.43 dsEm f x = Main.seq x (f x); 33.88/18.43 33.88/18.43 enforceWHNF :: Main.WHNF a -> b -> b; 33.88/18.43 enforceWHNF (Main.WHNF x) y = y; 33.88/18.43 33.88/18.43 enumFromToChar :: Main.Char -> Main.Char -> List Main.Char; 33.88/18.43 enumFromToChar x y = map toEnumChar (enumFromToMyInt (fromEnumChar x) (fromEnumChar y)); 33.88/18.43 33.88/18.43 enumFromToMyInt :: MyInt -> MyInt -> List MyInt; 33.88/18.43 enumFromToMyInt = numericEnumFromTo; 33.88/18.43 33.88/18.43 esEsOrdering :: Ordering -> Ordering -> MyBool; 33.88/18.43 esEsOrdering LT LT = MyTrue; 33.88/18.43 esEsOrdering LT EQ = MyFalse; 33.88/18.43 esEsOrdering LT GT = MyFalse; 33.88/18.43 esEsOrdering EQ LT = MyFalse; 33.88/18.43 esEsOrdering EQ EQ = MyTrue; 33.88/18.43 esEsOrdering EQ GT = MyFalse; 33.88/18.43 esEsOrdering GT LT = MyFalse; 33.88/18.43 esEsOrdering GT EQ = MyFalse; 33.88/18.43 esEsOrdering GT GT = MyTrue; 33.88/18.43 33.88/18.43 flip :: (b -> a -> c) -> a -> b -> c; 33.88/18.43 flip f x y = f y x; 33.88/18.43 33.88/18.43 fromEnumChar :: Main.Char -> MyInt; 33.88/18.43 fromEnumChar = primCharToInt; 33.88/18.43 33.88/18.43 fromIntMyInt :: MyInt -> MyInt; 33.88/18.43 fromIntMyInt x = x; 33.88/18.43 33.88/18.43 fsEsOrdering :: Ordering -> Ordering -> MyBool; 33.88/18.43 fsEsOrdering x y = not (esEsOrdering x y); 33.88/18.43 33.88/18.43 ltEsMyInt :: MyInt -> MyInt -> MyBool; 33.88/18.43 ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; 33.88/18.43 33.88/18.43 map :: (a -> b) -> List a -> List b; 33.88/18.43 map f Nil = Nil; 33.88/18.43 map f (Cons x xs) = Cons (f x) (map f xs); 33.88/18.43 33.88/18.43 not :: MyBool -> MyBool; 33.88/18.43 not MyTrue = MyFalse; 33.88/18.43 not MyFalse = MyTrue; 33.88/18.43 33.88/18.43 numericEnumFrom n = Cons n (dsEm numericEnumFrom (psMyInt n (fromIntMyInt (Main.Pos (Main.Succ Main.Zero))))); 33.88/18.43 33.88/18.43 numericEnumFromTo n m = takeWhile (flip ltEsMyInt m) (numericEnumFrom n); 33.88/18.43 33.88/18.43 otherwise :: MyBool; 33.88/18.43 otherwise = MyTrue; 33.88/18.43 33.88/18.43 primCharToInt :: Main.Char -> MyInt; 33.88/18.43 primCharToInt (Main.Char x) = x; 33.88/18.43 33.88/18.43 primCmpInt :: MyInt -> MyInt -> Ordering; 33.88/18.43 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 33.88/18.43 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 33.88/18.43 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 33.88/18.43 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 33.88/18.43 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 33.88/18.43 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 33.88/18.43 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 33.88/18.43 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 33.88/18.43 33.88/18.43 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 33.88/18.43 primCmpNat Main.Zero Main.Zero = EQ; 33.88/18.43 primCmpNat Main.Zero (Main.Succ y) = LT; 33.88/18.43 primCmpNat (Main.Succ x) Main.Zero = GT; 33.88/18.43 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 33.88/18.43 33.88/18.43 primIntToChar :: MyInt -> Main.Char; 33.88/18.43 primIntToChar x = Main.Char x; 33.88/18.43 33.88/18.43 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 33.88/18.43 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 33.88/18.43 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 33.88/18.43 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 33.88/18.43 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 33.88/18.43 33.88/18.43 primPlusInt :: MyInt -> MyInt -> MyInt; 33.88/18.43 primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; 33.88/18.43 primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; 33.88/18.43 primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); 33.88/18.43 primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); 33.88/18.43 33.88/18.43 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 33.88/18.43 primPlusNat Main.Zero Main.Zero = Main.Zero; 33.88/18.43 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 33.88/18.43 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 33.88/18.43 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 33.88/18.43 33.88/18.43 psMyInt :: MyInt -> MyInt -> MyInt; 33.88/18.43 psMyInt = primPlusInt; 33.88/18.43 33.88/18.43 rangeChar :: Tup2 Main.Char Main.Char -> List Main.Char; 33.88/18.43 rangeChar (Tup2 c c') = enumFromToChar c c'; 33.88/18.43 33.88/18.43 seq :: a -> b -> b; 33.88/18.43 seq x y = Main.enforceWHNF (Main.WHNF x) y; 33.88/18.43 33.88/18.43 takeWhile :: (a -> MyBool) -> List a -> List a; 33.88/18.43 takeWhile p Nil = takeWhile3 p Nil; 33.88/18.43 takeWhile p (Cons x xs) = takeWhile2 p (Cons x xs); 33.88/18.43 33.88/18.43 takeWhile0 p x xs MyTrue = Nil; 33.88/18.43 33.88/18.43 takeWhile1 p x xs MyTrue = Cons x (takeWhile p xs); 33.88/18.43 takeWhile1 p x xs MyFalse = takeWhile0 p x xs otherwise; 33.88/18.43 33.88/18.43 takeWhile2 p (Cons x xs) = takeWhile1 p x xs (p x); 33.88/18.43 33.88/18.43 takeWhile3 p Nil = Nil; 33.88/18.43 takeWhile3 vx vy = takeWhile2 vx vy; 33.88/18.43 33.88/18.43 toEnumChar :: MyInt -> Main.Char; 33.88/18.43 toEnumChar = primIntToChar; 33.88/18.43 33.88/18.43 } 33.88/18.43 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (3) COR (EQUIVALENT) 33.88/18.43 Cond Reductions: 33.88/18.43 The following Function with conditions 33.88/18.43 "undefined |Falseundefined; 33.88/18.43 " 33.88/18.43 is transformed to 33.88/18.43 "undefined = undefined1; 33.88/18.43 " 33.88/18.43 "undefined0 True = undefined; 33.88/18.43 " 33.88/18.43 "undefined1 = undefined0 False; 33.88/18.43 " 33.88/18.43 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (4) 33.88/18.43 Obligation: 33.88/18.43 mainModule Main 33.88/18.43 module Main where { 33.88/18.43 import qualified Prelude; 33.88/18.43 data Main.Char = Char MyInt ; 33.88/18.43 33.88/18.43 data List a = Cons a (List a) | Nil ; 33.88/18.43 33.88/18.43 data MyBool = MyTrue | MyFalse ; 33.88/18.43 33.88/18.43 data MyInt = Pos Main.Nat | Neg Main.Nat ; 33.88/18.43 33.88/18.43 data Main.Nat = Succ Main.Nat | Zero ; 33.88/18.43 33.88/18.43 data Ordering = LT | EQ | GT ; 33.88/18.43 33.88/18.43 data Tup2 a b = Tup2 a b ; 33.88/18.43 33.88/18.43 data Main.WHNF a = WHNF a ; 33.88/18.43 33.88/18.43 compareMyInt :: MyInt -> MyInt -> Ordering; 33.88/18.43 compareMyInt = primCmpInt; 33.88/18.43 33.88/18.43 dsEm :: (b -> a) -> b -> a; 33.88/18.43 dsEm f x = Main.seq x (f x); 33.88/18.43 33.88/18.43 enforceWHNF :: Main.WHNF b -> a -> a; 33.88/18.43 enforceWHNF (Main.WHNF x) y = y; 33.88/18.43 33.88/18.43 enumFromToChar :: Main.Char -> Main.Char -> List Main.Char; 33.88/18.43 enumFromToChar x y = map toEnumChar (enumFromToMyInt (fromEnumChar x) (fromEnumChar y)); 33.88/18.43 33.88/18.43 enumFromToMyInt :: MyInt -> MyInt -> List MyInt; 33.88/18.43 enumFromToMyInt = numericEnumFromTo; 33.88/18.43 33.88/18.43 esEsOrdering :: Ordering -> Ordering -> MyBool; 33.88/18.43 esEsOrdering LT LT = MyTrue; 33.88/18.43 esEsOrdering LT EQ = MyFalse; 33.88/18.43 esEsOrdering LT GT = MyFalse; 33.88/18.43 esEsOrdering EQ LT = MyFalse; 33.88/18.43 esEsOrdering EQ EQ = MyTrue; 33.88/18.43 esEsOrdering EQ GT = MyFalse; 33.88/18.43 esEsOrdering GT LT = MyFalse; 33.88/18.43 esEsOrdering GT EQ = MyFalse; 33.88/18.43 esEsOrdering GT GT = MyTrue; 33.88/18.43 33.88/18.43 flip :: (b -> a -> c) -> a -> b -> c; 33.88/18.43 flip f x y = f y x; 33.88/18.43 33.88/18.43 fromEnumChar :: Main.Char -> MyInt; 33.88/18.43 fromEnumChar = primCharToInt; 33.88/18.43 33.88/18.43 fromIntMyInt :: MyInt -> MyInt; 33.88/18.43 fromIntMyInt x = x; 33.88/18.43 33.88/18.43 fsEsOrdering :: Ordering -> Ordering -> MyBool; 33.88/18.43 fsEsOrdering x y = not (esEsOrdering x y); 33.88/18.43 33.88/18.43 ltEsMyInt :: MyInt -> MyInt -> MyBool; 33.88/18.43 ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; 33.88/18.43 33.88/18.43 map :: (a -> b) -> List a -> List b; 33.88/18.43 map f Nil = Nil; 33.88/18.43 map f (Cons x xs) = Cons (f x) (map f xs); 33.88/18.43 33.88/18.43 not :: MyBool -> MyBool; 33.88/18.43 not MyTrue = MyFalse; 33.88/18.43 not MyFalse = MyTrue; 33.88/18.43 33.88/18.43 numericEnumFrom n = Cons n (dsEm numericEnumFrom (psMyInt n (fromIntMyInt (Main.Pos (Main.Succ Main.Zero))))); 33.88/18.43 33.88/18.43 numericEnumFromTo n m = takeWhile (flip ltEsMyInt m) (numericEnumFrom n); 33.88/18.43 33.88/18.43 otherwise :: MyBool; 33.88/18.43 otherwise = MyTrue; 33.88/18.43 33.88/18.43 primCharToInt :: Main.Char -> MyInt; 33.88/18.43 primCharToInt (Main.Char x) = x; 33.88/18.43 33.88/18.43 primCmpInt :: MyInt -> MyInt -> Ordering; 33.88/18.43 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 33.88/18.43 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 33.88/18.43 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 33.88/18.43 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 33.88/18.43 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 33.88/18.43 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 33.88/18.43 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 33.88/18.43 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 33.88/18.43 33.88/18.43 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 33.88/18.43 primCmpNat Main.Zero Main.Zero = EQ; 33.88/18.43 primCmpNat Main.Zero (Main.Succ y) = LT; 33.88/18.43 primCmpNat (Main.Succ x) Main.Zero = GT; 33.88/18.43 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 33.88/18.43 33.88/18.43 primIntToChar :: MyInt -> Main.Char; 33.88/18.43 primIntToChar x = Main.Char x; 33.88/18.43 33.88/18.43 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 33.88/18.43 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 33.88/18.43 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 33.88/18.43 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 33.88/18.43 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 33.88/18.43 33.88/18.43 primPlusInt :: MyInt -> MyInt -> MyInt; 33.88/18.43 primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; 33.88/18.43 primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; 33.88/18.43 primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); 33.88/18.43 primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); 33.88/18.43 33.88/18.43 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 33.88/18.43 primPlusNat Main.Zero Main.Zero = Main.Zero; 33.88/18.43 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 33.88/18.43 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 33.88/18.43 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 33.88/18.43 33.88/18.43 psMyInt :: MyInt -> MyInt -> MyInt; 33.88/18.43 psMyInt = primPlusInt; 33.88/18.43 33.88/18.43 rangeChar :: Tup2 Main.Char Main.Char -> List Main.Char; 33.88/18.43 rangeChar (Tup2 c c') = enumFromToChar c c'; 33.88/18.43 33.88/18.43 seq :: b -> a -> a; 33.88/18.43 seq x y = Main.enforceWHNF (Main.WHNF x) y; 33.88/18.43 33.88/18.43 takeWhile :: (a -> MyBool) -> List a -> List a; 33.88/18.43 takeWhile p Nil = takeWhile3 p Nil; 33.88/18.43 takeWhile p (Cons x xs) = takeWhile2 p (Cons x xs); 33.88/18.43 33.88/18.43 takeWhile0 p x xs MyTrue = Nil; 33.88/18.43 33.88/18.43 takeWhile1 p x xs MyTrue = Cons x (takeWhile p xs); 33.88/18.43 takeWhile1 p x xs MyFalse = takeWhile0 p x xs otherwise; 33.88/18.43 33.88/18.43 takeWhile2 p (Cons x xs) = takeWhile1 p x xs (p x); 33.88/18.43 33.88/18.43 takeWhile3 p Nil = Nil; 33.88/18.43 takeWhile3 vx vy = takeWhile2 vx vy; 33.88/18.43 33.88/18.43 toEnumChar :: MyInt -> Main.Char; 33.88/18.43 toEnumChar = primIntToChar; 33.88/18.43 33.88/18.43 } 33.88/18.43 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (5) Narrow (SOUND) 33.88/18.43 Haskell To QDPs 33.88/18.43 33.88/18.43 digraph dp_graph { 33.88/18.43 node [outthreshold=100, inthreshold=100];1[label="rangeChar",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 33.88/18.43 3[label="rangeChar vz3",fontsize=16,color="burlywood",shape="triangle"];1111[label="vz3/Tup2 vz30 vz31",fontsize=10,color="white",style="solid",shape="box"];3 -> 1111[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1111 -> 4[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 4[label="rangeChar (Tup2 vz30 vz31)",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 33.88/18.43 5[label="enumFromToChar vz30 vz31",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 33.88/18.43 6[label="map toEnumChar (enumFromToMyInt (fromEnumChar vz30) (fromEnumChar vz31))",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 33.88/18.43 7[label="map toEnumChar (numericEnumFromTo (fromEnumChar vz30) (fromEnumChar vz31))",fontsize=16,color="black",shape="box"];7 -> 8[label="",style="solid", color="black", weight=3]; 33.88/18.43 8[label="map toEnumChar (takeWhile (flip ltEsMyInt (fromEnumChar vz31)) (numericEnumFrom (fromEnumChar vz30)))",fontsize=16,color="black",shape="box"];8 -> 9[label="",style="solid", color="black", weight=3]; 33.88/18.43 9[label="map toEnumChar (takeWhile (flip ltEsMyInt (fromEnumChar vz31)) (Cons (fromEnumChar vz30) (dsEm numericEnumFrom (psMyInt (fromEnumChar vz30) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];9 -> 10[label="",style="solid", color="black", weight=3]; 33.88/18.43 10[label="map toEnumChar (takeWhile2 (flip ltEsMyInt (fromEnumChar vz31)) (Cons (fromEnumChar vz30) (dsEm numericEnumFrom (psMyInt (fromEnumChar vz30) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];10 -> 11[label="",style="solid", color="black", weight=3]; 33.88/18.43 11[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) (fromEnumChar vz30) (dsEm numericEnumFrom (psMyInt (fromEnumChar vz30) (fromIntMyInt (Pos (Succ Zero))))) (flip ltEsMyInt (fromEnumChar vz31) (fromEnumChar vz30)))",fontsize=16,color="black",shape="box"];11 -> 12[label="",style="solid", color="black", weight=3]; 33.88/18.43 12[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) (fromEnumChar vz30) (dsEm numericEnumFrom (psMyInt (fromEnumChar vz30) (fromIntMyInt (Pos (Succ Zero))))) (ltEsMyInt (fromEnumChar vz30) (fromEnumChar vz31)))",fontsize=16,color="black",shape="box"];12 -> 13[label="",style="solid", color="black", weight=3]; 33.88/18.43 13[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) (fromEnumChar vz30) (dsEm numericEnumFrom (psMyInt (fromEnumChar vz30) (fromIntMyInt (Pos (Succ Zero))))) (fsEsOrdering (compareMyInt (fromEnumChar vz30) (fromEnumChar vz31)) GT))",fontsize=16,color="black",shape="box"];13 -> 14[label="",style="solid", color="black", weight=3]; 33.88/18.43 14[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) (fromEnumChar vz30) (dsEm numericEnumFrom (psMyInt (fromEnumChar vz30) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (compareMyInt (fromEnumChar vz30) (fromEnumChar vz31)) GT)))",fontsize=16,color="black",shape="box"];14 -> 15[label="",style="solid", color="black", weight=3]; 33.88/18.43 15[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) (fromEnumChar vz30) (dsEm numericEnumFrom (psMyInt (fromEnumChar vz30) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (fromEnumChar vz30) (fromEnumChar vz31)) GT)))",fontsize=16,color="black",shape="box"];15 -> 16[label="",style="solid", color="black", weight=3]; 33.88/18.43 16[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) (primCharToInt vz30) (dsEm numericEnumFrom (psMyInt (primCharToInt vz30) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primCharToInt vz30) (fromEnumChar vz31)) GT)))",fontsize=16,color="burlywood",shape="box"];1112[label="vz30/Char vz300",fontsize=10,color="white",style="solid",shape="box"];16 -> 1112[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1112 -> 17[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 17[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) (primCharToInt (Char vz300)) (dsEm numericEnumFrom (psMyInt (primCharToInt (Char vz300)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primCharToInt (Char vz300)) (fromEnumChar vz31)) GT)))",fontsize=16,color="black",shape="box"];17 -> 18[label="",style="solid", color="black", weight=3]; 33.88/18.43 18[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) vz300 (dsEm numericEnumFrom (psMyInt vz300 (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt vz300 (fromEnumChar vz31)) GT)))",fontsize=16,color="burlywood",shape="box"];1113[label="vz300/Pos vz3000",fontsize=10,color="white",style="solid",shape="box"];18 -> 1113[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1113 -> 19[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1114[label="vz300/Neg vz3000",fontsize=10,color="white",style="solid",shape="box"];18 -> 1114[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1114 -> 20[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 19[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) (Pos vz3000) (dsEm numericEnumFrom (psMyInt (Pos vz3000) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos vz3000) (fromEnumChar vz31)) GT)))",fontsize=16,color="burlywood",shape="box"];1115[label="vz3000/Succ vz30000",fontsize=10,color="white",style="solid",shape="box"];19 -> 1115[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1115 -> 21[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1116[label="vz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];19 -> 1116[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1116 -> 22[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 20[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) (Neg vz3000) (dsEm numericEnumFrom (psMyInt (Neg vz3000) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg vz3000) (fromEnumChar vz31)) GT)))",fontsize=16,color="burlywood",shape="box"];1117[label="vz3000/Succ vz30000",fontsize=10,color="white",style="solid",shape="box"];20 -> 1117[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1117 -> 23[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1118[label="vz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];20 -> 1118[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1118 -> 24[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 21[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (Succ vz30000)) (fromEnumChar vz31)) GT)))",fontsize=16,color="black",shape="box"];21 -> 25[label="",style="solid", color="black", weight=3]; 33.88/18.43 22[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumChar vz31)) GT)))",fontsize=16,color="black",shape="box"];22 -> 26[label="",style="solid", color="black", weight=3]; 33.88/18.43 23[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg (Succ vz30000)) (fromEnumChar vz31)) GT)))",fontsize=16,color="black",shape="box"];23 -> 27[label="",style="solid", color="black", weight=3]; 33.88/18.43 24[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (fromEnumChar vz31)) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumChar vz31)) GT)))",fontsize=16,color="black",shape="box"];24 -> 28[label="",style="solid", color="black", weight=3]; 33.88/18.43 25[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (primCharToInt vz31)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (Succ vz30000)) (primCharToInt vz31)) GT)))",fontsize=16,color="burlywood",shape="box"];1119[label="vz31/Char vz310",fontsize=10,color="white",style="solid",shape="box"];25 -> 1119[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1119 -> 29[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 26[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (primCharToInt vz31)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos Zero) (primCharToInt vz31)) GT)))",fontsize=16,color="burlywood",shape="box"];1120[label="vz31/Char vz310",fontsize=10,color="white",style="solid",shape="box"];26 -> 1120[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1120 -> 30[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 27[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (primCharToInt vz31)) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg (Succ vz30000)) (primCharToInt vz31)) GT)))",fontsize=16,color="burlywood",shape="box"];1121[label="vz31/Char vz310",fontsize=10,color="white",style="solid",shape="box"];27 -> 1121[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1121 -> 31[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 28[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (primCharToInt vz31)) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg Zero) (primCharToInt vz31)) GT)))",fontsize=16,color="burlywood",shape="box"];1122[label="vz31/Char vz310",fontsize=10,color="white",style="solid",shape="box"];28 -> 1122[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1122 -> 32[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 29[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (primCharToInt (Char vz310))) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (Succ vz30000)) (primCharToInt (Char vz310))) GT)))",fontsize=16,color="black",shape="box"];29 -> 33[label="",style="solid", color="black", weight=3]; 33.88/18.43 30[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (primCharToInt (Char vz310))) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos Zero) (primCharToInt (Char vz310))) GT)))",fontsize=16,color="black",shape="box"];30 -> 34[label="",style="solid", color="black", weight=3]; 33.88/18.43 31[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (primCharToInt (Char vz310))) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg (Succ vz30000)) (primCharToInt (Char vz310))) GT)))",fontsize=16,color="black",shape="box"];31 -> 35[label="",style="solid", color="black", weight=3]; 33.88/18.43 32[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (primCharToInt (Char vz310))) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg Zero) (primCharToInt (Char vz310))) GT)))",fontsize=16,color="black",shape="box"];32 -> 36[label="",style="solid", color="black", weight=3]; 33.88/18.43 33[label="map toEnumChar (takeWhile1 (flip ltEsMyInt vz310) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (Succ vz30000)) vz310) GT)))",fontsize=16,color="burlywood",shape="triangle"];1123[label="vz310/Pos vz3100",fontsize=10,color="white",style="solid",shape="box"];33 -> 1123[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1123 -> 37[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1124[label="vz310/Neg vz3100",fontsize=10,color="white",style="solid",shape="box"];33 -> 1124[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1124 -> 38[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 34[label="map toEnumChar (takeWhile1 (flip ltEsMyInt vz310) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos Zero) vz310) GT)))",fontsize=16,color="burlywood",shape="triangle"];1125[label="vz310/Pos vz3100",fontsize=10,color="white",style="solid",shape="box"];34 -> 1125[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1125 -> 39[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1126[label="vz310/Neg vz3100",fontsize=10,color="white",style="solid",shape="box"];34 -> 1126[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1126 -> 40[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 35[label="map toEnumChar (takeWhile1 (flip ltEsMyInt vz310) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg (Succ vz30000)) vz310) GT)))",fontsize=16,color="burlywood",shape="triangle"];1127[label="vz310/Pos vz3100",fontsize=10,color="white",style="solid",shape="box"];35 -> 1127[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1127 -> 41[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1128[label="vz310/Neg vz3100",fontsize=10,color="white",style="solid",shape="box"];35 -> 1128[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1128 -> 42[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 36[label="map toEnumChar (takeWhile1 (flip ltEsMyInt vz310) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg Zero) vz310) GT)))",fontsize=16,color="burlywood",shape="box"];1129[label="vz310/Pos vz3100",fontsize=10,color="white",style="solid",shape="box"];36 -> 1129[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1129 -> 43[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1130[label="vz310/Neg vz3100",fontsize=10,color="white",style="solid",shape="box"];36 -> 1130[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1130 -> 44[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 37[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (Succ vz30000)) (Pos vz3100)) GT)))",fontsize=16,color="black",shape="box"];37 -> 45[label="",style="solid", color="black", weight=3]; 33.88/18.43 38[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg vz3100)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (Succ vz30000)) (Neg vz3100)) GT)))",fontsize=16,color="black",shape="box"];38 -> 46[label="",style="solid", color="black", weight=3]; 33.88/18.43 39[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos vz3100)) GT)))",fontsize=16,color="burlywood",shape="box"];1131[label="vz3100/Succ vz31000",fontsize=10,color="white",style="solid",shape="box"];39 -> 1131[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1131 -> 47[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1132[label="vz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];39 -> 1132[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1132 -> 48[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 40[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg vz3100)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg vz3100)) GT)))",fontsize=16,color="burlywood",shape="box"];1133[label="vz3100/Succ vz31000",fontsize=10,color="white",style="solid",shape="box"];40 -> 1133[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1133 -> 49[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1134[label="vz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];40 -> 1134[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1134 -> 50[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 41[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg (Succ vz30000)) (Pos vz3100)) GT)))",fontsize=16,color="black",shape="box"];41 -> 51[label="",style="solid", color="black", weight=3]; 33.88/18.43 42[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg vz3100)) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg (Succ vz30000)) (Neg vz3100)) GT)))",fontsize=16,color="black",shape="box"];42 -> 52[label="",style="solid", color="black", weight=3]; 33.88/18.43 43[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos vz3100)) GT)))",fontsize=16,color="burlywood",shape="box"];1135[label="vz3100/Succ vz31000",fontsize=10,color="white",style="solid",shape="box"];43 -> 1135[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1135 -> 53[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1136[label="vz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];43 -> 1136[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1136 -> 54[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 44[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg vz3100)) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg vz3100)) GT)))",fontsize=16,color="burlywood",shape="box"];1137[label="vz3100/Succ vz31000",fontsize=10,color="white",style="solid",shape="box"];44 -> 1137[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1137 -> 55[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1138[label="vz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];44 -> 1138[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1138 -> 56[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 45[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat (Succ vz30000) vz3100) GT)))",fontsize=16,color="burlywood",shape="box"];1139[label="vz3100/Succ vz31000",fontsize=10,color="white",style="solid",shape="box"];45 -> 1139[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1139 -> 57[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1140[label="vz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];45 -> 1140[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1140 -> 58[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 46[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg vz3100)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering GT GT)))",fontsize=16,color="black",shape="box"];46 -> 59[label="",style="solid", color="black", weight=3]; 33.88/18.43 47[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];47 -> 60[label="",style="solid", color="black", weight=3]; 33.88/18.43 48[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) GT)))",fontsize=16,color="black",shape="box"];48 -> 61[label="",style="solid", color="black", weight=3]; 33.88/18.43 49[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz31000))) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];49 -> 62[label="",style="solid", color="black", weight=3]; 33.88/18.43 50[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];50 -> 63[label="",style="solid", color="black", weight=3]; 33.88/18.43 51[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering LT GT)))",fontsize=16,color="black",shape="box"];51 -> 64[label="",style="solid", color="black", weight=3]; 33.88/18.43 52[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg vz3100)) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat vz3100 (Succ vz30000)) GT)))",fontsize=16,color="burlywood",shape="box"];1141[label="vz3100/Succ vz31000",fontsize=10,color="white",style="solid",shape="box"];52 -> 1141[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1141 -> 65[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1142[label="vz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];52 -> 1142[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1142 -> 66[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 53[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];53 -> 67[label="",style="solid", color="black", weight=3]; 33.88/18.43 54[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) GT)))",fontsize=16,color="black",shape="box"];54 -> 68[label="",style="solid", color="black", weight=3]; 33.88/18.43 55[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz31000))) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];55 -> 69[label="",style="solid", color="black", weight=3]; 33.88/18.43 56[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];56 -> 70[label="",style="solid", color="black", weight=3]; 33.88/18.43 57[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat (Succ vz30000) (Succ vz31000)) GT)))",fontsize=16,color="black",shape="box"];57 -> 71[label="",style="solid", color="black", weight=3]; 33.88/18.43 58[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat (Succ vz30000) Zero) GT)))",fontsize=16,color="black",shape="box"];58 -> 72[label="",style="solid", color="black", weight=3]; 33.88/18.43 59[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg vz3100)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not MyTrue))",fontsize=16,color="black",shape="box"];59 -> 73[label="",style="solid", color="black", weight=3]; 33.88/18.43 60[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat Zero (Succ vz31000)) GT)))",fontsize=16,color="black",shape="box"];60 -> 74[label="",style="solid", color="black", weight=3]; 33.88/18.43 61[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering EQ GT)))",fontsize=16,color="black",shape="box"];61 -> 75[label="",style="solid", color="black", weight=3]; 33.88/18.43 62[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz31000))) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering GT GT)))",fontsize=16,color="black",shape="box"];62 -> 76[label="",style="solid", color="black", weight=3]; 33.88/18.43 63[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering EQ GT)))",fontsize=16,color="black",shape="box"];63 -> 77[label="",style="solid", color="black", weight=3]; 33.88/18.43 64[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not MyFalse))",fontsize=16,color="black",shape="box"];64 -> 78[label="",style="solid", color="black", weight=3]; 33.88/18.43 65[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz31000))) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat (Succ vz31000) (Succ vz30000)) GT)))",fontsize=16,color="black",shape="box"];65 -> 79[label="",style="solid", color="black", weight=3]; 33.88/18.43 66[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat Zero (Succ vz30000)) GT)))",fontsize=16,color="black",shape="box"];66 -> 80[label="",style="solid", color="black", weight=3]; 33.88/18.43 67[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering LT GT)))",fontsize=16,color="black",shape="box"];67 -> 81[label="",style="solid", color="black", weight=3]; 33.88/18.43 68[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering EQ GT)))",fontsize=16,color="black",shape="box"];68 -> 82[label="",style="solid", color="black", weight=3]; 33.88/18.43 69[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz31000))) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat (Succ vz31000) Zero) GT)))",fontsize=16,color="black",shape="box"];69 -> 83[label="",style="solid", color="black", weight=3]; 33.88/18.43 70[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering EQ GT)))",fontsize=16,color="black",shape="box"];70 -> 84[label="",style="solid", color="black", weight=3]; 33.88/18.43 71 -> 936[label="",style="dashed", color="red", weight=0]; 33.88/18.43 71[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat vz30000 vz31000) GT)))",fontsize=16,color="magenta"];71 -> 937[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 71 -> 938[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 71 -> 939[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 71 -> 940[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 72[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering GT GT)))",fontsize=16,color="black",shape="box"];72 -> 87[label="",style="solid", color="black", weight=3]; 33.88/18.43 73[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg vz3100)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) MyFalse)",fontsize=16,color="black",shape="box"];73 -> 88[label="",style="solid", color="black", weight=3]; 33.88/18.43 74[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering LT GT)))",fontsize=16,color="black",shape="box"];74 -> 89[label="",style="solid", color="black", weight=3]; 33.88/18.43 75[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not MyFalse))",fontsize=16,color="black",shape="box"];75 -> 90[label="",style="solid", color="black", weight=3]; 33.88/18.43 76[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz31000))) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not MyTrue))",fontsize=16,color="black",shape="box"];76 -> 91[label="",style="solid", color="black", weight=3]; 33.88/18.43 77[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not MyFalse))",fontsize=16,color="black",shape="box"];77 -> 92[label="",style="solid", color="black", weight=3]; 33.88/18.43 78[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];78 -> 93[label="",style="solid", color="black", weight=3]; 33.88/18.43 79 -> 979[label="",style="dashed", color="red", weight=0]; 33.88/18.43 79[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz31000))) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat vz31000 vz30000) GT)))",fontsize=16,color="magenta"];79 -> 980[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 79 -> 981[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 79 -> 982[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 79 -> 983[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 80[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering LT GT)))",fontsize=16,color="black",shape="box"];80 -> 96[label="",style="solid", color="black", weight=3]; 33.88/18.43 81[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not MyFalse))",fontsize=16,color="black",shape="box"];81 -> 97[label="",style="solid", color="black", weight=3]; 33.88/18.43 82[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not MyFalse))",fontsize=16,color="black",shape="box"];82 -> 98[label="",style="solid", color="black", weight=3]; 33.88/18.43 83[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz31000))) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering GT GT)))",fontsize=16,color="black",shape="box"];83 -> 99[label="",style="solid", color="black", weight=3]; 33.88/18.43 84[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not MyFalse))",fontsize=16,color="black",shape="box"];84 -> 100[label="",style="solid", color="black", weight=3]; 33.88/18.43 937[label="vz30000",fontsize=16,color="green",shape="box"];938[label="vz30000",fontsize=16,color="green",shape="box"];939[label="vz31000",fontsize=16,color="green",shape="box"];940[label="vz31000",fontsize=16,color="green",shape="box"];936[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat vz35 vz36) GT)))",fontsize=16,color="burlywood",shape="triangle"];1143[label="vz35/Succ vz350",fontsize=10,color="white",style="solid",shape="box"];936 -> 1143[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1143 -> 977[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1144[label="vz35/Zero",fontsize=10,color="white",style="solid",shape="box"];936 -> 1144[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1144 -> 978[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 87[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not MyTrue))",fontsize=16,color="black",shape="box"];87 -> 105[label="",style="solid", color="black", weight=3]; 33.88/18.43 88[label="map toEnumChar (takeWhile0 (flip ltEsMyInt (Neg vz3100)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) otherwise)",fontsize=16,color="black",shape="box"];88 -> 106[label="",style="solid", color="black", weight=3]; 33.88/18.43 89[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not MyFalse))",fontsize=16,color="black",shape="box"];89 -> 107[label="",style="solid", color="black", weight=3]; 33.88/18.43 90[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];90 -> 108[label="",style="solid", color="black", weight=3]; 33.88/18.43 91[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz31000))) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) MyFalse)",fontsize=16,color="black",shape="box"];91 -> 109[label="",style="solid", color="black", weight=3]; 33.88/18.43 92[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];92 -> 110[label="",style="solid", color="black", weight=3]; 33.88/18.43 93[label="map toEnumChar (Cons (Neg (Succ vz30000)) (takeWhile (flip ltEsMyInt (Pos vz3100)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];93 -> 111[label="",style="solid", color="black", weight=3]; 33.88/18.43 980[label="vz30000",fontsize=16,color="green",shape="box"];981[label="vz30000",fontsize=16,color="green",shape="box"];982[label="vz31000",fontsize=16,color="green",shape="box"];983[label="vz31000",fontsize=16,color="green",shape="box"];979[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat vz40 vz41) GT)))",fontsize=16,color="burlywood",shape="triangle"];1145[label="vz40/Succ vz400",fontsize=10,color="white",style="solid",shape="box"];979 -> 1145[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1145 -> 1020[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1146[label="vz40/Zero",fontsize=10,color="white",style="solid",shape="box"];979 -> 1146[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1146 -> 1021[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 96[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not MyFalse))",fontsize=16,color="black",shape="box"];96 -> 116[label="",style="solid", color="black", weight=3]; 33.88/18.43 97[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];97 -> 117[label="",style="solid", color="black", weight=3]; 33.88/18.43 98[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];98 -> 118[label="",style="solid", color="black", weight=3]; 33.88/18.43 99[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz31000))) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (not MyTrue))",fontsize=16,color="black",shape="box"];99 -> 119[label="",style="solid", color="black", weight=3]; 33.88/18.43 100[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];100 -> 120[label="",style="solid", color="black", weight=3]; 33.88/18.43 977[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat (Succ vz350) vz36) GT)))",fontsize=16,color="burlywood",shape="box"];1147[label="vz36/Succ vz360",fontsize=10,color="white",style="solid",shape="box"];977 -> 1147[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1147 -> 1022[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1148[label="vz36/Zero",fontsize=10,color="white",style="solid",shape="box"];977 -> 1148[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1148 -> 1023[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 978[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat Zero vz36) GT)))",fontsize=16,color="burlywood",shape="box"];1149[label="vz36/Succ vz360",fontsize=10,color="white",style="solid",shape="box"];978 -> 1149[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1149 -> 1024[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1150[label="vz36/Zero",fontsize=10,color="white",style="solid",shape="box"];978 -> 1150[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1150 -> 1025[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 105[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) MyFalse)",fontsize=16,color="black",shape="box"];105 -> 125[label="",style="solid", color="black", weight=3]; 33.88/18.43 106[label="map toEnumChar (takeWhile0 (flip ltEsMyInt (Neg vz3100)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];106 -> 126[label="",style="solid", color="black", weight=3]; 33.88/18.43 107[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];107 -> 127[label="",style="solid", color="black", weight=3]; 33.88/18.43 108[label="map toEnumChar (Cons (Pos Zero) (takeWhile (flip ltEsMyInt (Pos Zero)) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];108 -> 128[label="",style="solid", color="black", weight=3]; 33.88/18.43 109[label="map toEnumChar (takeWhile0 (flip ltEsMyInt (Neg (Succ vz31000))) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) otherwise)",fontsize=16,color="black",shape="box"];109 -> 129[label="",style="solid", color="black", weight=3]; 33.88/18.43 110[label="map toEnumChar (Cons (Pos Zero) (takeWhile (flip ltEsMyInt (Neg Zero)) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];110 -> 130[label="",style="solid", color="black", weight=3]; 33.88/18.43 111[label="Cons (toEnumChar (Neg (Succ vz30000))) (map toEnumChar (takeWhile (flip ltEsMyInt (Pos vz3100)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="green",shape="box"];111 -> 131[label="",style="dashed", color="green", weight=3]; 33.88/18.43 111 -> 132[label="",style="dashed", color="green", weight=3]; 33.88/18.43 1020[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat (Succ vz400) vz41) GT)))",fontsize=16,color="burlywood",shape="box"];1151[label="vz41/Succ vz410",fontsize=10,color="white",style="solid",shape="box"];1020 -> 1151[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1151 -> 1026[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1152[label="vz41/Zero",fontsize=10,color="white",style="solid",shape="box"];1020 -> 1152[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1152 -> 1027[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1021[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat Zero vz41) GT)))",fontsize=16,color="burlywood",shape="box"];1153[label="vz41/Succ vz410",fontsize=10,color="white",style="solid",shape="box"];1021 -> 1153[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1153 -> 1028[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1154[label="vz41/Zero",fontsize=10,color="white",style="solid",shape="box"];1021 -> 1154[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1154 -> 1029[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 116[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Neg (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];116 -> 137[label="",style="solid", color="black", weight=3]; 33.88/18.43 117[label="map toEnumChar (Cons (Neg Zero) (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];117 -> 138[label="",style="solid", color="black", weight=3]; 33.88/18.43 118[label="map toEnumChar (Cons (Neg Zero) (takeWhile (flip ltEsMyInt (Pos Zero)) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];118 -> 139[label="",style="solid", color="black", weight=3]; 33.88/18.43 119[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz31000))) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) MyFalse)",fontsize=16,color="black",shape="box"];119 -> 140[label="",style="solid", color="black", weight=3]; 33.88/18.43 120[label="map toEnumChar (Cons (Neg Zero) (takeWhile (flip ltEsMyInt (Neg Zero)) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];120 -> 141[label="",style="solid", color="black", weight=3]; 33.88/18.43 1022[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat (Succ vz350) (Succ vz360)) GT)))",fontsize=16,color="black",shape="box"];1022 -> 1030[label="",style="solid", color="black", weight=3]; 33.88/18.43 1023[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat (Succ vz350) Zero) GT)))",fontsize=16,color="black",shape="box"];1023 -> 1031[label="",style="solid", color="black", weight=3]; 33.88/18.43 1024[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat Zero (Succ vz360)) GT)))",fontsize=16,color="black",shape="box"];1024 -> 1032[label="",style="solid", color="black", weight=3]; 33.88/18.43 1025[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat Zero Zero) GT)))",fontsize=16,color="black",shape="box"];1025 -> 1033[label="",style="solid", color="black", weight=3]; 33.88/18.43 125[label="map toEnumChar (takeWhile0 (flip ltEsMyInt (Pos Zero)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) otherwise)",fontsize=16,color="black",shape="box"];125 -> 147[label="",style="solid", color="black", weight=3]; 33.88/18.43 126[label="map toEnumChar Nil",fontsize=16,color="black",shape="triangle"];126 -> 148[label="",style="solid", color="black", weight=3]; 33.88/18.43 127[label="map toEnumChar (Cons (Pos Zero) (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];127 -> 149[label="",style="solid", color="black", weight=3]; 33.88/18.43 128[label="Cons (toEnumChar (Pos Zero)) (map toEnumChar (takeWhile (flip ltEsMyInt (Pos Zero)) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="green",shape="box"];128 -> 150[label="",style="dashed", color="green", weight=3]; 33.88/18.43 128 -> 151[label="",style="dashed", color="green", weight=3]; 33.88/18.43 129[label="map toEnumChar (takeWhile0 (flip ltEsMyInt (Neg (Succ vz31000))) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];129 -> 152[label="",style="solid", color="black", weight=3]; 33.88/18.43 130[label="Cons (toEnumChar (Pos Zero)) (map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="green",shape="box"];130 -> 153[label="",style="dashed", color="green", weight=3]; 33.88/18.43 130 -> 154[label="",style="dashed", color="green", weight=3]; 33.88/18.43 131[label="toEnumChar (Neg (Succ vz30000))",fontsize=16,color="black",shape="triangle"];131 -> 155[label="",style="solid", color="black", weight=3]; 33.88/18.43 132[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos vz3100)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];132 -> 156[label="",style="solid", color="black", weight=3]; 33.88/18.43 1026[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat (Succ vz400) (Succ vz410)) GT)))",fontsize=16,color="black",shape="box"];1026 -> 1034[label="",style="solid", color="black", weight=3]; 33.88/18.43 1027[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat (Succ vz400) Zero) GT)))",fontsize=16,color="black",shape="box"];1027 -> 1035[label="",style="solid", color="black", weight=3]; 33.88/18.43 1028[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat Zero (Succ vz410)) GT)))",fontsize=16,color="black",shape="box"];1028 -> 1036[label="",style="solid", color="black", weight=3]; 33.88/18.43 1029[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat Zero Zero) GT)))",fontsize=16,color="black",shape="box"];1029 -> 1037[label="",style="solid", color="black", weight=3]; 33.88/18.43 137[label="map toEnumChar (Cons (Neg (Succ vz30000)) (takeWhile (flip ltEsMyInt (Neg Zero)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];137 -> 162[label="",style="solid", color="black", weight=3]; 33.88/18.43 138[label="Cons (toEnumChar (Neg Zero)) (map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="green",shape="box"];138 -> 163[label="",style="dashed", color="green", weight=3]; 33.88/18.43 138 -> 164[label="",style="dashed", color="green", weight=3]; 33.88/18.43 139[label="Cons (toEnumChar (Neg Zero)) (map toEnumChar (takeWhile (flip ltEsMyInt (Pos Zero)) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="green",shape="box"];139 -> 165[label="",style="dashed", color="green", weight=3]; 33.88/18.43 139 -> 166[label="",style="dashed", color="green", weight=3]; 33.88/18.43 140[label="map toEnumChar (takeWhile0 (flip ltEsMyInt (Neg (Succ vz31000))) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) otherwise)",fontsize=16,color="black",shape="box"];140 -> 167[label="",style="solid", color="black", weight=3]; 33.88/18.43 141[label="Cons (toEnumChar (Neg Zero)) (map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="green",shape="box"];141 -> 168[label="",style="dashed", color="green", weight=3]; 33.88/18.43 141 -> 169[label="",style="dashed", color="green", weight=3]; 33.88/18.43 1030 -> 936[label="",style="dashed", color="red", weight=0]; 33.88/18.43 1030[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat vz350 vz360) GT)))",fontsize=16,color="magenta"];1030 -> 1038[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 1030 -> 1039[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 1031[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering GT GT)))",fontsize=16,color="black",shape="box"];1031 -> 1040[label="",style="solid", color="black", weight=3]; 33.88/18.43 1032[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering LT GT)))",fontsize=16,color="black",shape="box"];1032 -> 1041[label="",style="solid", color="black", weight=3]; 33.88/18.43 1033[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering EQ GT)))",fontsize=16,color="black",shape="box"];1033 -> 1042[label="",style="solid", color="black", weight=3]; 33.88/18.43 147[label="map toEnumChar (takeWhile0 (flip ltEsMyInt (Pos Zero)) (Pos (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];147 -> 177[label="",style="solid", color="black", weight=3]; 33.88/18.43 148[label="Nil",fontsize=16,color="green",shape="box"];149[label="Cons (toEnumChar (Pos Zero)) (map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="green",shape="box"];149 -> 178[label="",style="dashed", color="green", weight=3]; 33.88/18.43 149 -> 179[label="",style="dashed", color="green", weight=3]; 33.88/18.43 150[label="toEnumChar (Pos Zero)",fontsize=16,color="black",shape="triangle"];150 -> 180[label="",style="solid", color="black", weight=3]; 33.88/18.43 151[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos Zero)) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];151 -> 181[label="",style="solid", color="black", weight=3]; 33.88/18.43 152 -> 126[label="",style="dashed", color="red", weight=0]; 33.88/18.43 152[label="map toEnumChar Nil",fontsize=16,color="magenta"];153 -> 150[label="",style="dashed", color="red", weight=0]; 33.88/18.43 153[label="toEnumChar (Pos Zero)",fontsize=16,color="magenta"];154[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];154 -> 182[label="",style="solid", color="black", weight=3]; 33.88/18.43 155[label="primIntToChar (Neg (Succ vz30000))",fontsize=16,color="black",shape="box"];155 -> 183[label="",style="solid", color="black", weight=3]; 33.88/18.43 156[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos vz3100)) (seq (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];156 -> 184[label="",style="solid", color="black", weight=3]; 33.88/18.43 1034 -> 979[label="",style="dashed", color="red", weight=0]; 33.88/18.43 1034[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpNat vz400 vz410) GT)))",fontsize=16,color="magenta"];1034 -> 1043[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 1034 -> 1044[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 1035[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering GT GT)))",fontsize=16,color="black",shape="box"];1035 -> 1045[label="",style="solid", color="black", weight=3]; 33.88/18.43 1036[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering LT GT)))",fontsize=16,color="black",shape="box"];1036 -> 1046[label="",style="solid", color="black", weight=3]; 33.88/18.43 1037[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering EQ GT)))",fontsize=16,color="black",shape="box"];1037 -> 1047[label="",style="solid", color="black", weight=3]; 33.88/18.43 162[label="Cons (toEnumChar (Neg (Succ vz30000))) (map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="green",shape="box"];162 -> 192[label="",style="dashed", color="green", weight=3]; 33.88/18.43 162 -> 193[label="",style="dashed", color="green", weight=3]; 33.88/18.43 163[label="toEnumChar (Neg Zero)",fontsize=16,color="black",shape="triangle"];163 -> 194[label="",style="solid", color="black", weight=3]; 33.88/18.43 164[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];164 -> 195[label="",style="solid", color="black", weight=3]; 33.88/18.43 165 -> 163[label="",style="dashed", color="red", weight=0]; 33.88/18.43 165[label="toEnumChar (Neg Zero)",fontsize=16,color="magenta"];166[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos Zero)) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];166 -> 196[label="",style="solid", color="black", weight=3]; 33.88/18.43 167[label="map toEnumChar (takeWhile0 (flip ltEsMyInt (Neg (Succ vz31000))) (Neg Zero) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];167 -> 197[label="",style="solid", color="black", weight=3]; 33.88/18.43 168 -> 163[label="",style="dashed", color="red", weight=0]; 33.88/18.43 168[label="toEnumChar (Neg Zero)",fontsize=16,color="magenta"];169[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (dsEm numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];169 -> 198[label="",style="solid", color="black", weight=3]; 33.88/18.43 1038[label="vz350",fontsize=16,color="green",shape="box"];1039[label="vz360",fontsize=16,color="green",shape="box"];1040[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not MyTrue))",fontsize=16,color="black",shape="box"];1040 -> 1048[label="",style="solid", color="black", weight=3]; 33.88/18.43 1041[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not MyFalse))",fontsize=16,color="black",shape="triangle"];1041 -> 1049[label="",style="solid", color="black", weight=3]; 33.88/18.43 1042 -> 1041[label="",style="dashed", color="red", weight=0]; 33.88/18.43 1042[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (not MyFalse))",fontsize=16,color="magenta"];177 -> 126[label="",style="dashed", color="red", weight=0]; 33.88/18.43 177[label="map toEnumChar Nil",fontsize=16,color="magenta"];178 -> 150[label="",style="dashed", color="red", weight=0]; 33.88/18.43 178[label="toEnumChar (Pos Zero)",fontsize=16,color="magenta"];179[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];179 -> 206[label="",style="solid", color="black", weight=3]; 33.88/18.43 180[label="primIntToChar (Pos Zero)",fontsize=16,color="black",shape="box"];180 -> 207[label="",style="solid", color="black", weight=3]; 33.88/18.43 181[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos Zero)) (seq (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];181 -> 208[label="",style="solid", color="black", weight=3]; 33.88/18.43 182[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (seq (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];182 -> 209[label="",style="solid", color="black", weight=3]; 33.88/18.43 183[label="Char (Neg (Succ vz30000))",fontsize=16,color="green",shape="box"];184[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos vz3100)) (enforceWHNF (WHNF (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];184 -> 210[label="",style="solid", color="black", weight=3]; 33.88/18.43 1043[label="vz410",fontsize=16,color="green",shape="box"];1044[label="vz400",fontsize=16,color="green",shape="box"];1045[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not MyTrue))",fontsize=16,color="black",shape="box"];1045 -> 1050[label="",style="solid", color="black", weight=3]; 33.88/18.43 1046[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not MyFalse))",fontsize=16,color="black",shape="triangle"];1046 -> 1051[label="",style="solid", color="black", weight=3]; 33.88/18.43 1047 -> 1046[label="",style="dashed", color="red", weight=0]; 33.88/18.43 1047[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not MyFalse))",fontsize=16,color="magenta"];192 -> 131[label="",style="dashed", color="red", weight=0]; 33.88/18.43 192[label="toEnumChar (Neg (Succ vz30000))",fontsize=16,color="magenta"];193[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];193 -> 218[label="",style="solid", color="black", weight=3]; 33.88/18.43 194[label="primIntToChar (Neg Zero)",fontsize=16,color="black",shape="box"];194 -> 219[label="",style="solid", color="black", weight=3]; 33.88/18.43 195[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (seq (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];195 -> 220[label="",style="solid", color="black", weight=3]; 33.88/18.43 196[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos Zero)) (seq (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];196 -> 221[label="",style="solid", color="black", weight=3]; 33.88/18.43 197 -> 126[label="",style="dashed", color="red", weight=0]; 33.88/18.43 197[label="map toEnumChar Nil",fontsize=16,color="magenta"];198[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (seq (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];198 -> 222[label="",style="solid", color="black", weight=3]; 33.88/18.43 1048[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) MyFalse)",fontsize=16,color="black",shape="box"];1048 -> 1052[label="",style="solid", color="black", weight=3]; 33.88/18.43 1049[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];1049 -> 1053[label="",style="solid", color="black", weight=3]; 33.88/18.43 206[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (seq (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];206 -> 231[label="",style="solid", color="black", weight=3]; 33.88/18.43 207[label="Char (Pos Zero)",fontsize=16,color="green",shape="box"];208[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos Zero)) (enforceWHNF (WHNF (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];208 -> 232[label="",style="solid", color="black", weight=3]; 33.88/18.43 209[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (enforceWHNF (WHNF (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];209 -> 233[label="",style="solid", color="black", weight=3]; 33.88/18.43 210[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos vz3100)) (numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];210 -> 234[label="",style="solid", color="black", weight=3]; 33.88/18.43 1050[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) MyFalse)",fontsize=16,color="black",shape="box"];1050 -> 1054[label="",style="solid", color="black", weight=3]; 33.88/18.43 1051[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];1051 -> 1055[label="",style="solid", color="black", weight=3]; 33.88/18.43 218[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (seq (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];218 -> 243[label="",style="solid", color="black", weight=3]; 33.88/18.43 219[label="Char (Neg Zero)",fontsize=16,color="green",shape="box"];220[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (enforceWHNF (WHNF (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];220 -> 244[label="",style="solid", color="black", weight=3]; 33.88/18.43 221[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos Zero)) (enforceWHNF (WHNF (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];221 -> 245[label="",style="solid", color="black", weight=3]; 33.88/18.43 222[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (enforceWHNF (WHNF (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))) (numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];222 -> 246[label="",style="solid", color="black", weight=3]; 33.88/18.43 1052[label="map toEnumChar (takeWhile0 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) otherwise)",fontsize=16,color="black",shape="box"];1052 -> 1056[label="",style="solid", color="black", weight=3]; 33.88/18.43 1053[label="map toEnumChar (Cons (Pos (Succ vz34)) (takeWhile (flip ltEsMyInt (Pos (Succ vz33))) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];1053 -> 1057[label="",style="solid", color="black", weight=3]; 33.88/18.43 231[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (enforceWHNF (WHNF (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];231 -> 259[label="",style="solid", color="black", weight=3]; 33.88/18.43 232[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos Zero)) (numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];232 -> 260[label="",style="solid", color="black", weight=3]; 33.88/18.43 233[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];233 -> 261[label="",style="solid", color="black", weight=3]; 33.88/18.43 234[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos vz3100)) (Cons (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];234 -> 262[label="",style="solid", color="black", weight=3]; 33.88/18.43 1054[label="map toEnumChar (takeWhile0 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) otherwise)",fontsize=16,color="black",shape="box"];1054 -> 1058[label="",style="solid", color="black", weight=3]; 33.88/18.43 1055[label="map toEnumChar (Cons (Neg (Succ vz39)) (takeWhile (flip ltEsMyInt (Neg (Succ vz38))) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];1055 -> 1059[label="",style="solid", color="black", weight=3]; 33.88/18.43 243[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (enforceWHNF (WHNF (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];243 -> 275[label="",style="solid", color="black", weight=3]; 33.88/18.43 244[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];244 -> 276[label="",style="solid", color="black", weight=3]; 33.88/18.43 245[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos Zero)) (numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];245 -> 277[label="",style="solid", color="black", weight=3]; 33.88/18.43 246[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (numericEnumFrom (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];246 -> 278[label="",style="solid", color="black", weight=3]; 33.88/18.43 1056[label="map toEnumChar (takeWhile0 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ vz34)) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];1056 -> 1060[label="",style="solid", color="black", weight=3]; 33.88/18.43 1057[label="Cons (toEnumChar (Pos (Succ vz34))) (map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz33))) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="green",shape="box"];1057 -> 1061[label="",style="dashed", color="green", weight=3]; 33.88/18.43 1057 -> 1062[label="",style="dashed", color="green", weight=3]; 33.88/18.43 259[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];259 -> 289[label="",style="solid", color="black", weight=3]; 33.88/18.43 260[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos Zero)) (Cons (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];260 -> 290[label="",style="solid", color="black", weight=3]; 33.88/18.43 261[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (Cons (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];261 -> 291[label="",style="solid", color="black", weight=3]; 33.88/18.43 262[label="map toEnumChar (takeWhile2 (flip ltEsMyInt (Pos vz3100)) (Cons (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];262 -> 292[label="",style="solid", color="black", weight=3]; 33.88/18.43 1058[label="map toEnumChar (takeWhile0 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz39)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) MyTrue)",fontsize=16,color="black",shape="box"];1058 -> 1063[label="",style="solid", color="black", weight=3]; 33.88/18.43 1059[label="Cons (toEnumChar (Neg (Succ vz39))) (map toEnumChar (takeWhile (flip ltEsMyInt (Neg (Succ vz38))) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="green",shape="box"];1059 -> 1064[label="",style="dashed", color="green", weight=3]; 33.88/18.43 1059 -> 1065[label="",style="dashed", color="green", weight=3]; 33.88/18.43 275[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (numericEnumFrom (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];275 -> 304[label="",style="solid", color="black", weight=3]; 33.88/18.43 276[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (Cons (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];276 -> 305[label="",style="solid", color="black", weight=3]; 33.88/18.43 277[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos Zero)) (Cons (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];277 -> 306[label="",style="solid", color="black", weight=3]; 33.88/18.43 278[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (Cons (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];278 -> 307[label="",style="solid", color="black", weight=3]; 33.88/18.43 1060 -> 126[label="",style="dashed", color="red", weight=0]; 33.88/18.43 1060[label="map toEnumChar Nil",fontsize=16,color="magenta"];1061[label="toEnumChar (Pos (Succ vz34))",fontsize=16,color="black",shape="box"];1061 -> 1066[label="",style="solid", color="black", weight=3]; 33.88/18.43 1062[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz33))) (dsEm numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];1062 -> 1067[label="",style="solid", color="black", weight=3]; 33.88/18.43 289[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz31000))) (Cons (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];289 -> 319[label="",style="solid", color="black", weight=3]; 33.88/18.43 290[label="map toEnumChar (takeWhile2 (flip ltEsMyInt (Pos Zero)) (Cons (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];290 -> 320[label="",style="solid", color="black", weight=3]; 33.88/18.43 291[label="map toEnumChar (takeWhile2 (flip ltEsMyInt (Neg Zero)) (Cons (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];291 -> 321[label="",style="solid", color="black", weight=3]; 33.88/18.43 292[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (flip ltEsMyInt (Pos vz3100) (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];292 -> 322[label="",style="solid", color="black", weight=3]; 33.88/18.43 1063 -> 126[label="",style="dashed", color="red", weight=0]; 33.88/18.43 1063[label="map toEnumChar Nil",fontsize=16,color="magenta"];1064 -> 131[label="",style="dashed", color="red", weight=0]; 33.88/18.43 1064[label="toEnumChar (Neg (Succ vz39))",fontsize=16,color="magenta"];1064 -> 1068[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 1065[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg (Succ vz38))) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];1065 -> 1069[label="",style="solid", color="black", weight=3]; 33.88/18.43 304[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg Zero)) (Cons (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];304 -> 333[label="",style="solid", color="black", weight=3]; 33.88/18.43 305[label="map toEnumChar (takeWhile2 (flip ltEsMyInt (Pos (Succ vz31000))) (Cons (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];305 -> 334[label="",style="solid", color="black", weight=3]; 33.88/18.43 306[label="map toEnumChar (takeWhile2 (flip ltEsMyInt (Pos Zero)) (Cons (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];306 -> 335[label="",style="solid", color="black", weight=3]; 33.88/18.43 307[label="map toEnumChar (takeWhile2 (flip ltEsMyInt (Neg Zero)) (Cons (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];307 -> 336[label="",style="solid", color="black", weight=3]; 33.88/18.43 1066[label="primIntToChar (Pos (Succ vz34))",fontsize=16,color="black",shape="box"];1066 -> 1070[label="",style="solid", color="black", weight=3]; 33.88/18.43 1067[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz33))) (seq (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];1067 -> 1071[label="",style="solid", color="black", weight=3]; 33.88/18.43 319[label="map toEnumChar (takeWhile2 (flip ltEsMyInt (Pos (Succ vz31000))) (Cons (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];319 -> 353[label="",style="solid", color="black", weight=3]; 33.88/18.43 320[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (flip ltEsMyInt (Pos Zero) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];320 -> 354[label="",style="solid", color="black", weight=3]; 33.88/18.43 321[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (flip ltEsMyInt (Neg Zero) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];321 -> 355[label="",style="solid", color="black", weight=3]; 33.88/18.43 322[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (ltEsMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (Pos vz3100)))",fontsize=16,color="black",shape="box"];322 -> 356[label="",style="solid", color="black", weight=3]; 33.88/18.43 1068[label="vz39",fontsize=16,color="green",shape="box"];1069[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg (Succ vz38))) (seq (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];1069 -> 1072[label="",style="solid", color="black", weight=3]; 33.88/18.43 333[label="map toEnumChar (takeWhile2 (flip ltEsMyInt (Neg Zero)) (Cons (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];333 -> 371[label="",style="solid", color="black", weight=3]; 33.88/18.43 334[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (flip ltEsMyInt (Pos (Succ vz31000)) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];334 -> 372[label="",style="solid", color="black", weight=3]; 33.88/18.43 335[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (flip ltEsMyInt (Pos Zero) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];335 -> 373[label="",style="solid", color="black", weight=3]; 33.88/18.43 336[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (flip ltEsMyInt (Neg Zero) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];336 -> 374[label="",style="solid", color="black", weight=3]; 33.88/18.43 1070[label="Char (Pos (Succ vz34))",fontsize=16,color="green",shape="box"];1071[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz33))) (enforceWHNF (WHNF (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))) (numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];1071 -> 1073[label="",style="solid", color="black", weight=3]; 33.88/18.43 353[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (flip ltEsMyInt (Pos (Succ vz31000)) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];353 -> 388[label="",style="solid", color="black", weight=3]; 33.88/18.43 354[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (ltEsMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos Zero)))",fontsize=16,color="black",shape="box"];354 -> 389[label="",style="solid", color="black", weight=3]; 33.88/18.43 355[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (ltEsMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)))",fontsize=16,color="black",shape="box"];355 -> 390[label="",style="solid", color="black", weight=3]; 33.88/18.43 356[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (fsEsOrdering (compareMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (Pos vz3100)) GT))",fontsize=16,color="black",shape="box"];356 -> 391[label="",style="solid", color="black", weight=3]; 33.88/18.43 1072[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg (Succ vz38))) (enforceWHNF (WHNF (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];1072 -> 1074[label="",style="solid", color="black", weight=3]; 33.88/18.43 371[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (flip ltEsMyInt (Neg Zero) (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];371 -> 405[label="",style="solid", color="black", weight=3]; 33.88/18.43 372[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (ltEsMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz31000))))",fontsize=16,color="black",shape="box"];372 -> 406[label="",style="solid", color="black", weight=3]; 33.88/18.43 373[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (ltEsMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos Zero)))",fontsize=16,color="black",shape="box"];373 -> 407[label="",style="solid", color="black", weight=3]; 33.88/18.43 374[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (ltEsMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)))",fontsize=16,color="black",shape="box"];374 -> 408[label="",style="solid", color="black", weight=3]; 33.88/18.43 1073[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz33))) (numericEnumFrom (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];1073 -> 1075[label="",style="solid", color="black", weight=3]; 33.88/18.43 388[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (ltEsMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz31000))))",fontsize=16,color="black",shape="box"];388 -> 423[label="",style="solid", color="black", weight=3]; 33.88/18.43 389[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (fsEsOrdering (compareMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos Zero)) GT))",fontsize=16,color="black",shape="box"];389 -> 424[label="",style="solid", color="black", weight=3]; 33.88/18.43 390[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (fsEsOrdering (compareMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)) GT))",fontsize=16,color="black",shape="box"];390 -> 425[label="",style="solid", color="black", weight=3]; 33.88/18.43 391[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (compareMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (Pos vz3100)) GT)))",fontsize=16,color="black",shape="box"];391 -> 426[label="",style="solid", color="black", weight=3]; 33.88/18.43 1074[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg (Succ vz38))) (numericEnumFrom (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];1074 -> 1076[label="",style="solid", color="black", weight=3]; 33.88/18.43 405[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (ltEsMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)))",fontsize=16,color="black",shape="box"];405 -> 439[label="",style="solid", color="black", weight=3]; 33.88/18.43 406[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (fsEsOrdering (compareMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz31000))) GT))",fontsize=16,color="black",shape="box"];406 -> 440[label="",style="solid", color="black", weight=3]; 33.88/18.43 407[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (fsEsOrdering (compareMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos Zero)) GT))",fontsize=16,color="black",shape="box"];407 -> 441[label="",style="solid", color="black", weight=3]; 33.88/18.43 408[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (fsEsOrdering (compareMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)) GT))",fontsize=16,color="black",shape="box"];408 -> 442[label="",style="solid", color="black", weight=3]; 33.88/18.43 1075[label="map toEnumChar (takeWhile (flip ltEsMyInt (Pos (Succ vz33))) (Cons (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];1075 -> 1077[label="",style="solid", color="black", weight=3]; 33.88/18.43 423[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (fsEsOrdering (compareMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz31000))) GT))",fontsize=16,color="black",shape="box"];423 -> 460[label="",style="solid", color="black", weight=3]; 33.88/18.43 424[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (compareMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos Zero)) GT)))",fontsize=16,color="black",shape="box"];424 -> 461[label="",style="solid", color="black", weight=3]; 33.88/18.43 425[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (compareMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];425 -> 462[label="",style="solid", color="black", weight=3]; 33.88/18.43 426[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (Pos vz3100)) GT)))",fontsize=16,color="black",shape="box"];426 -> 463[label="",style="solid", color="black", weight=3]; 33.88/18.43 1076[label="map toEnumChar (takeWhile (flip ltEsMyInt (Neg (Succ vz38))) (Cons (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];1076 -> 1078[label="",style="solid", color="black", weight=3]; 33.88/18.43 439[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (fsEsOrdering (compareMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)) GT))",fontsize=16,color="black",shape="box"];439 -> 480[label="",style="solid", color="black", weight=3]; 33.88/18.43 440[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (compareMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];440 -> 481[label="",style="solid", color="black", weight=3]; 33.88/18.43 441[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (compareMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos Zero)) GT)))",fontsize=16,color="black",shape="box"];441 -> 482[label="",style="solid", color="black", weight=3]; 33.88/18.43 442[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (compareMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];442 -> 483[label="",style="solid", color="black", weight=3]; 33.88/18.43 1077[label="map toEnumChar (takeWhile2 (flip ltEsMyInt (Pos (Succ vz33))) (Cons (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];1077 -> 1079[label="",style="solid", color="black", weight=3]; 33.88/18.43 460[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (compareMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];460 -> 499[label="",style="solid", color="black", weight=3]; 33.88/18.43 461[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos Zero)) GT)))",fontsize=16,color="black",shape="box"];461 -> 500[label="",style="solid", color="black", weight=3]; 33.88/18.43 462[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];462 -> 501[label="",style="solid", color="black", weight=3]; 33.88/18.43 463[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (primPlusInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (Pos vz3100)) GT)))",fontsize=16,color="black",shape="box"];463 -> 502[label="",style="solid", color="black", weight=3]; 33.88/18.43 1078[label="map toEnumChar (takeWhile2 (flip ltEsMyInt (Neg (Succ vz38))) (Cons (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero)))))))",fontsize=16,color="black",shape="box"];1078 -> 1080[label="",style="solid", color="black", weight=3]; 33.88/18.43 480[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (compareMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];480 -> 518[label="",style="solid", color="black", weight=3]; 33.88/18.43 481[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];481 -> 519[label="",style="solid", color="black", weight=3]; 33.88/18.43 482[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos Zero)) GT)))",fontsize=16,color="black",shape="box"];482 -> 520[label="",style="solid", color="black", weight=3]; 33.88/18.43 483[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (psMyInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];483 -> 521[label="",style="solid", color="black", weight=3]; 33.88/18.43 1079[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (flip ltEsMyInt (Pos (Succ vz33)) (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];1079 -> 1081[label="",style="solid", color="black", weight=3]; 33.88/18.43 499[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];499 -> 536[label="",style="solid", color="black", weight=3]; 33.88/18.43 500[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (primPlusInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos Zero)) GT)))",fontsize=16,color="black",shape="box"];500 -> 537[label="",style="solid", color="black", weight=3]; 33.88/18.43 501[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (primPlusInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];501 -> 538[label="",style="solid", color="black", weight=3]; 33.88/18.43 502[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (primPlusInt (Neg (Succ vz30000)) (Pos (Succ Zero))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Neg (Succ vz30000)) (Pos (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Neg (Succ vz30000)) (Pos (Succ Zero))) (Pos vz3100)) GT)))",fontsize=16,color="black",shape="box"];502 -> 539[label="",style="solid", color="black", weight=3]; 33.88/18.43 1080[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (flip ltEsMyInt (Neg (Succ vz38)) (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))))",fontsize=16,color="black",shape="box"];1080 -> 1082[label="",style="solid", color="black", weight=3]; 33.88/18.43 518[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (psMyInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];518 -> 554[label="",style="solid", color="black", weight=3]; 33.88/18.43 519[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (primPlusInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];519 -> 555[label="",style="solid", color="black", weight=3]; 33.88/18.43 520[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (primPlusInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos Zero)) GT)))",fontsize=16,color="black",shape="box"];520 -> 556[label="",style="solid", color="black", weight=3]; 33.88/18.43 521[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (primPlusInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Neg Zero) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];521 -> 557[label="",style="solid", color="black", weight=3]; 33.88/18.43 1081[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (ltEsMyInt (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz33))))",fontsize=16,color="black",shape="box"];1081 -> 1083[label="",style="solid", color="black", weight=3]; 33.88/18.43 536[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (primPlusInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];536 -> 578[label="",style="solid", color="black", weight=3]; 33.88/18.43 537[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (primPlusInt (Pos Zero) (Pos (Succ Zero))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Pos Zero) (Pos (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Pos Zero) (Pos (Succ Zero))) (Pos Zero)) GT)))",fontsize=16,color="black",shape="box"];537 -> 579[label="",style="solid", color="black", weight=3]; 33.88/18.43 538[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (primPlusInt (Pos Zero) (Pos (Succ Zero))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Pos Zero) (Pos (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Pos Zero) (Pos (Succ Zero))) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];538 -> 580[label="",style="solid", color="black", weight=3]; 33.88/18.43 539[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (primMinusNat (Succ Zero) (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (primMinusNat (Succ Zero) (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat (Succ Zero) (Succ vz30000)) (Pos vz3100)) GT)))",fontsize=16,color="black",shape="box"];539 -> 581[label="",style="solid", color="black", weight=3]; 33.88/18.43 1082[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (ltEsMyInt (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (Neg (Succ vz38))))",fontsize=16,color="black",shape="box"];1082 -> 1084[label="",style="solid", color="black", weight=3]; 33.88/18.43 554[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (primPlusInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Neg (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero)))) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];554 -> 600[label="",style="solid", color="black", weight=3]; 33.88/18.43 555[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (primPlusInt (Neg Zero) (Pos (Succ Zero))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Neg Zero) (Pos (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Neg Zero) (Pos (Succ Zero))) (Pos (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];555 -> 601[label="",style="solid", color="black", weight=3]; 33.88/18.43 556[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (primPlusInt (Neg Zero) (Pos (Succ Zero))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Neg Zero) (Pos (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Neg Zero) (Pos (Succ Zero))) (Pos Zero)) GT)))",fontsize=16,color="black",shape="box"];556 -> 602[label="",style="solid", color="black", weight=3]; 33.88/18.43 557[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (primPlusInt (Neg Zero) (Pos (Succ Zero))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Neg Zero) (Pos (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Neg Zero) (Pos (Succ Zero))) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];557 -> 603[label="",style="solid", color="black", weight=3]; 33.88/18.43 1083[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (fsEsOrdering (compareMyInt (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz33))) GT))",fontsize=16,color="black",shape="box"];1083 -> 1085[label="",style="solid", color="black", weight=3]; 33.88/18.43 578[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (primPlusInt (Pos Zero) (Pos (Succ Zero))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Pos Zero) (Pos (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Pos Zero) (Pos (Succ Zero))) (Pos (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];578 -> 620[label="",style="solid", color="black", weight=3]; 33.88/18.43 579[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Pos (primPlusNat Zero (Succ Zero))) (dsEm numericEnumFrom (psMyInt (Pos (primPlusNat Zero (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (primPlusNat Zero (Succ Zero))) (Pos Zero)) GT)))",fontsize=16,color="black",shape="box"];579 -> 621[label="",style="solid", color="black", weight=3]; 33.88/18.43 580[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Pos (primPlusNat Zero (Succ Zero))) (dsEm numericEnumFrom (psMyInt (Pos (primPlusNat Zero (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (primPlusNat Zero (Succ Zero))) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];580 -> 622[label="",style="solid", color="black", weight=3]; 33.88/18.43 581[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (primMinusNat Zero vz30000) (dsEm numericEnumFrom (psMyInt (primMinusNat Zero vz30000) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat Zero vz30000) (Pos vz3100)) GT)))",fontsize=16,color="burlywood",shape="box"];1155[label="vz30000/Succ vz300000",fontsize=10,color="white",style="solid",shape="box"];581 -> 1155[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1155 -> 623[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1156[label="vz30000/Zero",fontsize=10,color="white",style="solid",shape="box"];581 -> 1156[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1156 -> 624[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1084[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (fsEsOrdering (compareMyInt (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (Neg (Succ vz38))) GT))",fontsize=16,color="black",shape="box"];1084 -> 1086[label="",style="solid", color="black", weight=3]; 33.88/18.43 600[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (primPlusInt (Neg (Succ vz30000)) (Pos (Succ Zero))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Neg (Succ vz30000)) (Pos (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Neg (Succ vz30000)) (Pos (Succ Zero))) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];600 -> 642[label="",style="solid", color="black", weight=3]; 33.88/18.43 601[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (primMinusNat (Succ Zero) Zero) (dsEm numericEnumFrom (psMyInt (primMinusNat (Succ Zero) Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat (Succ Zero) Zero) (Pos (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];601 -> 643[label="",style="solid", color="black", weight=3]; 33.88/18.43 602[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (primMinusNat (Succ Zero) Zero) (dsEm numericEnumFrom (psMyInt (primMinusNat (Succ Zero) Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat (Succ Zero) Zero) (Pos Zero)) GT)))",fontsize=16,color="black",shape="box"];602 -> 644[label="",style="solid", color="black", weight=3]; 33.88/18.43 603[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (primMinusNat (Succ Zero) Zero) (dsEm numericEnumFrom (psMyInt (primMinusNat (Succ Zero) Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat (Succ Zero) Zero) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];603 -> 645[label="",style="solid", color="black", weight=3]; 33.88/18.43 1085[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (compareMyInt (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz33))) GT)))",fontsize=16,color="black",shape="box"];1085 -> 1087[label="",style="solid", color="black", weight=3]; 33.88/18.43 620[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Pos (primPlusNat Zero (Succ Zero))) (dsEm numericEnumFrom (psMyInt (Pos (primPlusNat Zero (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (primPlusNat Zero (Succ Zero))) (Pos (Succ vz31000))) GT)))",fontsize=16,color="black",shape="box"];620 -> 661[label="",style="solid", color="black", weight=3]; 33.88/18.43 621 -> 33[label="",style="dashed", color="red", weight=0]; 33.88/18.43 621[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Pos (Succ Zero)) (dsEm numericEnumFrom (psMyInt (Pos (Succ Zero)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (Succ Zero)) (Pos Zero)) GT)))",fontsize=16,color="magenta"];621 -> 662[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 621 -> 663[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 622 -> 33[label="",style="dashed", color="red", weight=0]; 33.88/18.43 622[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Pos (Succ Zero)) (dsEm numericEnumFrom (psMyInt (Pos (Succ Zero)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (Succ Zero)) (Neg Zero)) GT)))",fontsize=16,color="magenta"];622 -> 664[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 622 -> 665[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 623[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (primMinusNat Zero (Succ vz300000)) (dsEm numericEnumFrom (psMyInt (primMinusNat Zero (Succ vz300000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat Zero (Succ vz300000)) (Pos vz3100)) GT)))",fontsize=16,color="black",shape="box"];623 -> 666[label="",style="solid", color="black", weight=3]; 33.88/18.43 624[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (primMinusNat Zero Zero) (dsEm numericEnumFrom (psMyInt (primMinusNat Zero Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat Zero Zero) (Pos vz3100)) GT)))",fontsize=16,color="black",shape="box"];624 -> 667[label="",style="solid", color="black", weight=3]; 33.88/18.43 1086[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (compareMyInt (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (Neg (Succ vz38))) GT)))",fontsize=16,color="black",shape="box"];1086 -> 1088[label="",style="solid", color="black", weight=3]; 33.88/18.43 642[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (primMinusNat (Succ Zero) (Succ vz30000)) (dsEm numericEnumFrom (psMyInt (primMinusNat (Succ Zero) (Succ vz30000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat (Succ Zero) (Succ vz30000)) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];642 -> 684[label="",style="solid", color="black", weight=3]; 33.88/18.43 643 -> 33[label="",style="dashed", color="red", weight=0]; 33.88/18.43 643[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Pos (Succ Zero)) (dsEm numericEnumFrom (psMyInt (Pos (Succ Zero)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (Succ Zero)) (Pos (Succ vz31000))) GT)))",fontsize=16,color="magenta"];643 -> 685[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 643 -> 686[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 644 -> 33[label="",style="dashed", color="red", weight=0]; 33.88/18.43 644[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos Zero)) (Pos (Succ Zero)) (dsEm numericEnumFrom (psMyInt (Pos (Succ Zero)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (Succ Zero)) (Pos Zero)) GT)))",fontsize=16,color="magenta"];644 -> 687[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 644 -> 688[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 645 -> 33[label="",style="dashed", color="red", weight=0]; 33.88/18.43 645[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Pos (Succ Zero)) (dsEm numericEnumFrom (psMyInt (Pos (Succ Zero)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (Succ Zero)) (Neg Zero)) GT)))",fontsize=16,color="magenta"];645 -> 689[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 645 -> 690[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 1087[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (psMyInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz33))) GT)))",fontsize=16,color="black",shape="box"];1087 -> 1089[label="",style="solid", color="black", weight=3]; 33.88/18.43 661 -> 33[label="",style="dashed", color="red", weight=0]; 33.88/18.43 661[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz31000))) (Pos (Succ Zero)) (dsEm numericEnumFrom (psMyInt (Pos (Succ Zero)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (Succ Zero)) (Pos (Succ vz31000))) GT)))",fontsize=16,color="magenta"];661 -> 710[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 661 -> 711[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 662[label="Pos Zero",fontsize=16,color="green",shape="box"];663[label="Zero",fontsize=16,color="green",shape="box"];664[label="Neg Zero",fontsize=16,color="green",shape="box"];665[label="Zero",fontsize=16,color="green",shape="box"];666 -> 35[label="",style="dashed", color="red", weight=0]; 33.88/18.43 666[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (Neg (Succ vz300000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz300000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg (Succ vz300000)) (Pos vz3100)) GT)))",fontsize=16,color="magenta"];666 -> 712[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 666 -> 713[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 667 -> 34[label="",style="dashed", color="red", weight=0]; 33.88/18.43 667[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos vz3100)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos vz3100)) GT)))",fontsize=16,color="magenta"];667 -> 714[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 1088[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (psMyInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (Neg (Succ vz38))) GT)))",fontsize=16,color="black",shape="box"];1088 -> 1090[label="",style="solid", color="black", weight=3]; 33.88/18.43 684[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (primMinusNat Zero vz30000) (dsEm numericEnumFrom (psMyInt (primMinusNat Zero vz30000) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat Zero vz30000) (Neg Zero)) GT)))",fontsize=16,color="burlywood",shape="box"];1157[label="vz30000/Succ vz300000",fontsize=10,color="white",style="solid",shape="box"];684 -> 1157[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1157 -> 735[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1158[label="vz30000/Zero",fontsize=10,color="white",style="solid",shape="box"];684 -> 1158[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1158 -> 736[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 685[label="Pos (Succ vz31000)",fontsize=16,color="green",shape="box"];686[label="Zero",fontsize=16,color="green",shape="box"];687[label="Pos Zero",fontsize=16,color="green",shape="box"];688[label="Zero",fontsize=16,color="green",shape="box"];689[label="Neg Zero",fontsize=16,color="green",shape="box"];690[label="Zero",fontsize=16,color="green",shape="box"];1089[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (primPlusInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Pos (Succ vz34)) (fromIntMyInt (Pos (Succ Zero)))) (Pos (Succ vz33))) GT)))",fontsize=16,color="black",shape="box"];1089 -> 1091[label="",style="solid", color="black", weight=3]; 33.88/18.43 710[label="Pos (Succ vz31000)",fontsize=16,color="green",shape="box"];711[label="Zero",fontsize=16,color="green",shape="box"];712[label="vz300000",fontsize=16,color="green",shape="box"];713[label="Pos vz3100",fontsize=16,color="green",shape="box"];714[label="Pos vz3100",fontsize=16,color="green",shape="box"];1090[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (primPlusInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Neg (Succ vz39)) (fromIntMyInt (Pos (Succ Zero)))) (Neg (Succ vz38))) GT)))",fontsize=16,color="black",shape="box"];1090 -> 1092[label="",style="solid", color="black", weight=3]; 33.88/18.43 735[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (primMinusNat Zero (Succ vz300000)) (dsEm numericEnumFrom (psMyInt (primMinusNat Zero (Succ vz300000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat Zero (Succ vz300000)) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];735 -> 774[label="",style="solid", color="black", weight=3]; 33.88/18.43 736[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (primMinusNat Zero Zero) (dsEm numericEnumFrom (psMyInt (primMinusNat Zero Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat Zero Zero) (Neg Zero)) GT)))",fontsize=16,color="black",shape="box"];736 -> 775[label="",style="solid", color="black", weight=3]; 33.88/18.43 1091[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (primPlusInt (Pos (Succ vz34)) (Pos (Succ Zero))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Pos (Succ vz34)) (Pos (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Pos (Succ vz34)) (Pos (Succ Zero))) (Pos (Succ vz33))) GT)))",fontsize=16,color="black",shape="box"];1091 -> 1093[label="",style="solid", color="black", weight=3]; 33.88/18.43 1092[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (primPlusInt (Neg (Succ vz39)) (Pos (Succ Zero))) (dsEm numericEnumFrom (psMyInt (primPlusInt (Neg (Succ vz39)) (Pos (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primPlusInt (Neg (Succ vz39)) (Pos (Succ Zero))) (Neg (Succ vz38))) GT)))",fontsize=16,color="black",shape="box"];1092 -> 1094[label="",style="solid", color="black", weight=3]; 33.88/18.43 774 -> 35[label="",style="dashed", color="red", weight=0]; 33.88/18.43 774[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Neg (Succ vz300000)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz300000)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg (Succ vz300000)) (Neg Zero)) GT)))",fontsize=16,color="magenta"];774 -> 810[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 774 -> 811[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 775 -> 34[label="",style="dashed", color="red", weight=0]; 33.88/18.43 775[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg Zero)) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) GT)))",fontsize=16,color="magenta"];775 -> 812[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 1093[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (primPlusNat (Succ vz34) (Succ Zero))) (dsEm numericEnumFrom (psMyInt (Pos (primPlusNat (Succ vz34) (Succ Zero))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (primPlusNat (Succ vz34) (Succ Zero))) (Pos (Succ vz33))) GT)))",fontsize=16,color="black",shape="box"];1093 -> 1095[label="",style="solid", color="black", weight=3]; 33.88/18.43 1094[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (primMinusNat (Succ Zero) (Succ vz39)) (dsEm numericEnumFrom (psMyInt (primMinusNat (Succ Zero) (Succ vz39)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat (Succ Zero) (Succ vz39)) (Neg (Succ vz38))) GT)))",fontsize=16,color="black",shape="box"];1094 -> 1096[label="",style="solid", color="black", weight=3]; 33.88/18.43 810[label="vz300000",fontsize=16,color="green",shape="box"];811[label="Neg Zero",fontsize=16,color="green",shape="box"];812[label="Neg Zero",fontsize=16,color="green",shape="box"];1095 -> 33[label="",style="dashed", color="red", weight=0]; 33.88/18.43 1095[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Pos (Succ vz33))) (Pos (Succ (Succ (primPlusNat vz34 Zero)))) (dsEm numericEnumFrom (psMyInt (Pos (Succ (Succ (primPlusNat vz34 Zero)))) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos (Succ (Succ (primPlusNat vz34 Zero)))) (Pos (Succ vz33))) GT)))",fontsize=16,color="magenta"];1095 -> 1097[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 1095 -> 1098[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 1096[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (primMinusNat Zero vz39) (dsEm numericEnumFrom (psMyInt (primMinusNat Zero vz39) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat Zero vz39) (Neg (Succ vz38))) GT)))",fontsize=16,color="burlywood",shape="box"];1159[label="vz39/Succ vz390",fontsize=10,color="white",style="solid",shape="box"];1096 -> 1159[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1159 -> 1099[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1160[label="vz39/Zero",fontsize=10,color="white",style="solid",shape="box"];1096 -> 1160[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1160 -> 1100[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1097[label="Pos (Succ vz33)",fontsize=16,color="green",shape="box"];1098[label="Succ (primPlusNat vz34 Zero)",fontsize=16,color="green",shape="box"];1098 -> 1101[label="",style="dashed", color="green", weight=3]; 33.88/18.43 1099[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (primMinusNat Zero (Succ vz390)) (dsEm numericEnumFrom (psMyInt (primMinusNat Zero (Succ vz390)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat Zero (Succ vz390)) (Neg (Succ vz38))) GT)))",fontsize=16,color="black",shape="box"];1099 -> 1102[label="",style="solid", color="black", weight=3]; 33.88/18.43 1100[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (primMinusNat Zero Zero) (dsEm numericEnumFrom (psMyInt (primMinusNat Zero Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (primMinusNat Zero Zero) (Neg (Succ vz38))) GT)))",fontsize=16,color="black",shape="box"];1100 -> 1103[label="",style="solid", color="black", weight=3]; 33.88/18.43 1101[label="primPlusNat vz34 Zero",fontsize=16,color="burlywood",shape="box"];1161[label="vz34/Succ vz340",fontsize=10,color="white",style="solid",shape="box"];1101 -> 1161[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1161 -> 1104[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1162[label="vz34/Zero",fontsize=10,color="white",style="solid",shape="box"];1101 -> 1162[label="",style="solid", color="burlywood", weight=9]; 33.88/18.43 1162 -> 1105[label="",style="solid", color="burlywood", weight=3]; 33.88/18.43 1102 -> 35[label="",style="dashed", color="red", weight=0]; 33.88/18.43 1102[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Neg (Succ vz390)) (dsEm numericEnumFrom (psMyInt (Neg (Succ vz390)) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Neg (Succ vz390)) (Neg (Succ vz38))) GT)))",fontsize=16,color="magenta"];1102 -> 1106[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 1102 -> 1107[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 1103 -> 34[label="",style="dashed", color="red", weight=0]; 33.88/18.43 1103[label="map toEnumChar (takeWhile1 (flip ltEsMyInt (Neg (Succ vz38))) (Pos Zero) (dsEm numericEnumFrom (psMyInt (Pos Zero) (fromIntMyInt (Pos (Succ Zero))))) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ vz38))) GT)))",fontsize=16,color="magenta"];1103 -> 1108[label="",style="dashed", color="magenta", weight=3]; 33.88/18.43 1104[label="primPlusNat (Succ vz340) Zero",fontsize=16,color="black",shape="box"];1104 -> 1109[label="",style="solid", color="black", weight=3]; 33.88/18.43 1105[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];1105 -> 1110[label="",style="solid", color="black", weight=3]; 33.88/18.43 1106[label="vz390",fontsize=16,color="green",shape="box"];1107[label="Neg (Succ vz38)",fontsize=16,color="green",shape="box"];1108[label="Neg (Succ vz38)",fontsize=16,color="green",shape="box"];1109[label="Succ vz340",fontsize=16,color="green",shape="box"];1110[label="Zero",fontsize=16,color="green",shape="box"];} 33.88/18.43 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (6) 33.88/18.43 Complex Obligation (AND) 33.88/18.43 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (7) 33.88/18.43 Obligation: 33.88/18.43 Q DP problem: 33.88/18.43 The TRS P consists of the following rules: 33.88/18.43 33.88/18.43 new_map1(vz33, vz34) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.43 new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> new_map(vz31000, vz30000, vz30000, vz31000) 33.88/18.43 new_map(vz33, vz34, Main.Succ(vz350), Main.Succ(vz360)) -> new_map(vz33, vz34, vz350, vz360) 33.88/18.43 new_map(vz33, vz34, Main.Zero, Main.Zero) -> new_map1(vz33, vz34) 33.88/18.43 new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.43 33.88/18.43 The TRS R consists of the following rules: 33.88/18.43 33.88/18.43 new_primPlusNat(Main.Zero) -> Main.Zero 33.88/18.43 new_primPlusNat(Main.Succ(vz340)) -> Main.Succ(vz340) 33.88/18.43 33.88/18.43 The set Q consists of the following terms: 33.88/18.43 33.88/18.43 new_primPlusNat(Main.Succ(x0)) 33.88/18.43 new_primPlusNat(Main.Zero) 33.88/18.43 33.88/18.43 We have to consider all minimal (P,Q,R)-chains. 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (8) QDPPairToRuleProof (EQUIVALENT) 33.88/18.43 The dependency pair new_map(vz33, vz34, Main.Succ(vz350), Main.Succ(vz360)) -> new_map(vz33, vz34, vz350, vz360) was transformed to the following new rules: 33.88/18.43 anew_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.43 new_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.43 new_new_map(Main.Zero, Main.Zero) -> cons_new_map(Main.Zero, Main.Zero) 33.88/18.43 new_new_map(Main.Zero, Main.Succ(vz360)) -> cons_new_map(Main.Zero, Main.Succ(vz360)) 33.88/18.43 33.88/18.43 the following new pairs maintain the fan-in: 33.88/18.43 new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> H(vz31000, vz30000, anew_new_map(vz30000, vz31000)) 33.88/18.43 33.88/18.43 the following new pairs maintain the fan-out: 33.88/18.43 H(vz33, vz34, cons_new_map(Main.Zero, Main.Zero)) -> new_map(vz33, vz34, Main.Zero, Main.Zero) 33.88/18.43 H(vz33, vz34, cons_new_map(Main.Zero, Main.Succ(vz360))) -> new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) 33.88/18.43 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (9) 33.88/18.43 Complex Obligation (AND) 33.88/18.43 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (10) 33.88/18.43 Obligation: 33.88/18.43 Q DP problem: 33.88/18.43 The TRS P consists of the following rules: 33.88/18.43 33.88/18.43 new_map1(vz33, vz34) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.43 new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> new_map(vz31000, vz30000, vz30000, vz31000) 33.88/18.43 new_map(vz33, vz34, Main.Zero, Main.Zero) -> new_map1(vz33, vz34) 33.88/18.43 new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.43 new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> H(vz31000, vz30000, anew_new_map(vz30000, vz31000)) 33.88/18.43 H(vz33, vz34, cons_new_map(Main.Zero, Main.Zero)) -> new_map(vz33, vz34, Main.Zero, Main.Zero) 33.88/18.43 H(vz33, vz34, cons_new_map(Main.Zero, Main.Succ(vz360))) -> new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) 33.88/18.43 33.88/18.43 The TRS R consists of the following rules: 33.88/18.43 33.88/18.43 new_primPlusNat(Main.Zero) -> Main.Zero 33.88/18.43 new_primPlusNat(Main.Succ(vz340)) -> Main.Succ(vz340) 33.88/18.43 anew_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.43 new_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.43 new_new_map(Main.Zero, Main.Zero) -> cons_new_map(Main.Zero, Main.Zero) 33.88/18.43 new_new_map(Main.Zero, Main.Succ(vz360)) -> cons_new_map(Main.Zero, Main.Succ(vz360)) 33.88/18.43 33.88/18.43 The set Q consists of the following terms: 33.88/18.43 33.88/18.43 new_primPlusNat(Main.Succ(x0)) 33.88/18.43 new_primPlusNat(Main.Zero) 33.88/18.43 new_new_map(Main.Succ(x0), Main.Succ(x1)) 33.88/18.43 anew_new_map(Main.Succ(x0), Main.Succ(x1)) 33.88/18.43 new_new_map(Main.Zero, Main.Zero) 33.88/18.43 new_new_map(Main.Zero, Main.Succ(x0)) 33.88/18.43 33.88/18.43 We have to consider all minimal (P,Q,R)-chains. 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (11) TransformationProof (EQUIVALENT) 33.88/18.43 By instantiating [LPAR04] the rule new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> new_map(vz31000, vz30000, vz30000, vz31000) we obtained the following new rules [LPAR04]: 33.88/18.43 33.88/18.43 (new_map0(Main.Pos(Main.Succ(z0)), Main.Succ(y_0)) -> new_map(z0, Main.Succ(y_0), Main.Succ(y_0), z0),new_map0(Main.Pos(Main.Succ(z0)), Main.Succ(y_0)) -> new_map(z0, Main.Succ(y_0), Main.Succ(y_0), z0)) 33.88/18.43 33.88/18.43 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (12) 33.88/18.43 Obligation: 33.88/18.43 Q DP problem: 33.88/18.43 The TRS P consists of the following rules: 33.88/18.43 33.88/18.43 new_map1(vz33, vz34) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.43 new_map(vz33, vz34, Main.Zero, Main.Zero) -> new_map1(vz33, vz34) 33.88/18.43 new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.43 new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> H(vz31000, vz30000, anew_new_map(vz30000, vz31000)) 33.88/18.43 H(vz33, vz34, cons_new_map(Main.Zero, Main.Zero)) -> new_map(vz33, vz34, Main.Zero, Main.Zero) 33.88/18.43 H(vz33, vz34, cons_new_map(Main.Zero, Main.Succ(vz360))) -> new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) 33.88/18.43 new_map0(Main.Pos(Main.Succ(z0)), Main.Succ(y_0)) -> new_map(z0, Main.Succ(y_0), Main.Succ(y_0), z0) 33.88/18.43 33.88/18.43 The TRS R consists of the following rules: 33.88/18.43 33.88/18.43 new_primPlusNat(Main.Zero) -> Main.Zero 33.88/18.43 new_primPlusNat(Main.Succ(vz340)) -> Main.Succ(vz340) 33.88/18.43 anew_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.43 new_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.43 new_new_map(Main.Zero, Main.Zero) -> cons_new_map(Main.Zero, Main.Zero) 33.88/18.43 new_new_map(Main.Zero, Main.Succ(vz360)) -> cons_new_map(Main.Zero, Main.Succ(vz360)) 33.88/18.43 33.88/18.43 The set Q consists of the following terms: 33.88/18.43 33.88/18.43 new_primPlusNat(Main.Succ(x0)) 33.88/18.43 new_primPlusNat(Main.Zero) 33.88/18.43 new_new_map(Main.Succ(x0), Main.Succ(x1)) 33.88/18.43 anew_new_map(Main.Succ(x0), Main.Succ(x1)) 33.88/18.43 new_new_map(Main.Zero, Main.Zero) 33.88/18.43 new_new_map(Main.Zero, Main.Succ(x0)) 33.88/18.43 33.88/18.43 We have to consider all minimal (P,Q,R)-chains. 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (13) DependencyGraphProof (EQUIVALENT) 33.88/18.43 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (14) 33.88/18.43 Obligation: 33.88/18.43 Q DP problem: 33.88/18.43 The TRS P consists of the following rules: 33.88/18.43 33.88/18.43 new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> H(vz31000, vz30000, anew_new_map(vz30000, vz31000)) 33.88/18.43 H(vz33, vz34, cons_new_map(Main.Zero, Main.Zero)) -> new_map(vz33, vz34, Main.Zero, Main.Zero) 33.88/18.43 new_map(vz33, vz34, Main.Zero, Main.Zero) -> new_map1(vz33, vz34) 33.88/18.43 new_map1(vz33, vz34) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.43 H(vz33, vz34, cons_new_map(Main.Zero, Main.Succ(vz360))) -> new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) 33.88/18.43 new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.43 33.88/18.43 The TRS R consists of the following rules: 33.88/18.43 33.88/18.43 new_primPlusNat(Main.Zero) -> Main.Zero 33.88/18.43 new_primPlusNat(Main.Succ(vz340)) -> Main.Succ(vz340) 33.88/18.43 anew_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.43 new_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.43 new_new_map(Main.Zero, Main.Zero) -> cons_new_map(Main.Zero, Main.Zero) 33.88/18.43 new_new_map(Main.Zero, Main.Succ(vz360)) -> cons_new_map(Main.Zero, Main.Succ(vz360)) 33.88/18.43 33.88/18.43 The set Q consists of the following terms: 33.88/18.43 33.88/18.43 new_primPlusNat(Main.Succ(x0)) 33.88/18.43 new_primPlusNat(Main.Zero) 33.88/18.43 new_new_map(Main.Succ(x0), Main.Succ(x1)) 33.88/18.43 anew_new_map(Main.Succ(x0), Main.Succ(x1)) 33.88/18.43 new_new_map(Main.Zero, Main.Zero) 33.88/18.43 new_new_map(Main.Zero, Main.Succ(x0)) 33.88/18.43 33.88/18.43 We have to consider all minimal (P,Q,R)-chains. 33.88/18.43 ---------------------------------------- 33.88/18.43 33.88/18.43 (15) InductionCalculusProof (EQUIVALENT) 33.88/18.43 Note that final constraints are written in bold face. 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 For Pair new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> H(vz31000, vz30000, anew_new_map(vz30000, vz31000)) the following chains were created: 33.88/18.43 *We consider the chain new_map0(Main.Pos(Main.Succ(x2)), x3) -> H(x2, x3, anew_new_map(x3, x2)), H(x4, x5, cons_new_map(Main.Zero, Main.Zero)) -> new_map(x4, x5, Main.Zero, Main.Zero) which results in the following constraint: 33.88/18.43 33.88/18.43 (1) (H(x2, x3, anew_new_map(x3, x2))=H(x4, x5, cons_new_map(Main.Zero, Main.Zero)) ==> new_map0(Main.Pos(Main.Succ(x2)), x3)_>=_H(x2, x3, anew_new_map(x3, x2))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.43 33.88/18.43 (2) (anew_new_map(x3, x2)=cons_new_map(Main.Zero, Main.Zero) ==> new_map0(Main.Pos(Main.Succ(x2)), x3)_>=_H(x2, x3, anew_new_map(x3, x2))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on anew_new_map(x3, x2)=cons_new_map(Main.Zero, Main.Zero) which results in the following new constraint: 33.88/18.43 33.88/18.43 (3) (new_new_map(x101, x100)=cons_new_map(Main.Zero, Main.Zero) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(x100))), Main.Succ(x101))_>=_H(Main.Succ(x100), Main.Succ(x101), anew_new_map(Main.Succ(x101), Main.Succ(x100)))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_new_map(x101, x100)=cons_new_map(Main.Zero, Main.Zero) which results in the following new constraints: 33.88/18.43 33.88/18.43 (4) (new_new_map(x103, x102)=cons_new_map(Main.Zero, Main.Zero) & (new_new_map(x103, x102)=cons_new_map(Main.Zero, Main.Zero) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(x102))), Main.Succ(x103))_>=_H(Main.Succ(x102), Main.Succ(x103), anew_new_map(Main.Succ(x103), Main.Succ(x102)))) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x102)))), Main.Succ(Main.Succ(x103)))_>=_H(Main.Succ(Main.Succ(x102)), Main.Succ(Main.Succ(x103)), anew_new_map(Main.Succ(Main.Succ(x103)), Main.Succ(Main.Succ(x102))))) 33.88/18.43 33.88/18.43 (5) (cons_new_map(Main.Zero, Main.Zero)=cons_new_map(Main.Zero, Main.Zero) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Zero), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 33.88/18.43 33.88/18.43 (6) (cons_new_map(Main.Zero, Main.Succ(x104))=cons_new_map(Main.Zero, Main.Zero) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x104)))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x104))))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (new_new_map(x103, x102)=cons_new_map(Main.Zero, Main.Zero) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(x102))), Main.Succ(x103))_>=_H(Main.Succ(x102), Main.Succ(x103), anew_new_map(Main.Succ(x103), Main.Succ(x102)))) with sigma = [ ] which results in the following new constraint: 33.88/18.43 33.88/18.43 (7) (new_map0(Main.Pos(Main.Succ(Main.Succ(x102))), Main.Succ(x103))_>=_H(Main.Succ(x102), Main.Succ(x103), anew_new_map(Main.Succ(x103), Main.Succ(x102))) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x102)))), Main.Succ(Main.Succ(x103)))_>=_H(Main.Succ(Main.Succ(x102)), Main.Succ(Main.Succ(x103)), anew_new_map(Main.Succ(Main.Succ(x103)), Main.Succ(Main.Succ(x102))))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (5) using rules (I), (II) which results in the following new constraint: 33.88/18.43 33.88/18.43 (8) (new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Zero), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We solved constraint (6) using rules (I), (II). 33.88/18.43 *We consider the chain new_map0(Main.Pos(Main.Succ(x10)), x11) -> H(x10, x11, anew_new_map(x11, x10)), H(x12, x13, cons_new_map(Main.Zero, Main.Succ(x14))) -> new_map(x12, x13, Main.Zero, Main.Succ(x14)) which results in the following constraint: 33.88/18.43 33.88/18.43 (1) (H(x10, x11, anew_new_map(x11, x10))=H(x12, x13, cons_new_map(Main.Zero, Main.Succ(x14))) ==> new_map0(Main.Pos(Main.Succ(x10)), x11)_>=_H(x10, x11, anew_new_map(x11, x10))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.43 33.88/18.43 (2) (anew_new_map(x11, x10)=cons_new_map(Main.Zero, Main.Succ(x14)) ==> new_map0(Main.Pos(Main.Succ(x10)), x11)_>=_H(x10, x11, anew_new_map(x11, x10))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on anew_new_map(x11, x10)=cons_new_map(Main.Zero, Main.Succ(x14)) which results in the following new constraint: 33.88/18.43 33.88/18.43 (3) (new_new_map(x106, x105)=cons_new_map(Main.Zero, Main.Succ(x14)) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Succ(x106))_>=_H(Main.Succ(x105), Main.Succ(x106), anew_new_map(Main.Succ(x106), Main.Succ(x105)))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_new_map(x106, x105)=cons_new_map(Main.Zero, Main.Succ(x14)) which results in the following new constraints: 33.88/18.43 33.88/18.43 (4) (new_new_map(x108, x107)=cons_new_map(Main.Zero, Main.Succ(x14)) & (\/x109:new_new_map(x108, x107)=cons_new_map(Main.Zero, Main.Succ(x109)) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(x107))), Main.Succ(x108))_>=_H(Main.Succ(x107), Main.Succ(x108), anew_new_map(Main.Succ(x108), Main.Succ(x107)))) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x107)))), Main.Succ(Main.Succ(x108)))_>=_H(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x108)), anew_new_map(Main.Succ(Main.Succ(x108)), Main.Succ(Main.Succ(x107))))) 33.88/18.43 33.88/18.43 (5) (cons_new_map(Main.Zero, Main.Zero)=cons_new_map(Main.Zero, Main.Succ(x14)) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Zero), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 33.88/18.43 33.88/18.43 (6) (cons_new_map(Main.Zero, Main.Succ(x110))=cons_new_map(Main.Zero, Main.Succ(x14)) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x110)))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Succ(x110)), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x110))))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (\/x109:new_new_map(x108, x107)=cons_new_map(Main.Zero, Main.Succ(x109)) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(x107))), Main.Succ(x108))_>=_H(Main.Succ(x107), Main.Succ(x108), anew_new_map(Main.Succ(x108), Main.Succ(x107)))) with sigma = [x109 / x14] which results in the following new constraint: 33.88/18.43 33.88/18.43 (7) (new_map0(Main.Pos(Main.Succ(Main.Succ(x107))), Main.Succ(x108))_>=_H(Main.Succ(x107), Main.Succ(x108), anew_new_map(Main.Succ(x108), Main.Succ(x107))) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x107)))), Main.Succ(Main.Succ(x108)))_>=_H(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x108)), anew_new_map(Main.Succ(Main.Succ(x108)), Main.Succ(Main.Succ(x107))))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.43 33.88/18.43 (8) (new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x110)))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Succ(x110)), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x110))))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 For Pair H(vz33, vz34, cons_new_map(Main.Zero, Main.Zero)) -> new_map(vz33, vz34, Main.Zero, Main.Zero) the following chains were created: 33.88/18.43 *We consider the chain H(x21, x22, cons_new_map(Main.Zero, Main.Zero)) -> new_map(x21, x22, Main.Zero, Main.Zero), new_map(x23, x24, Main.Zero, Main.Zero) -> new_map1(x23, x24) which results in the following constraint: 33.88/18.43 33.88/18.43 (1) (new_map(x21, x22, Main.Zero, Main.Zero)=new_map(x23, x24, Main.Zero, Main.Zero) ==> H(x21, x22, cons_new_map(Main.Zero, Main.Zero))_>=_new_map(x21, x22, Main.Zero, Main.Zero)) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.43 33.88/18.43 (2) (H(x21, x22, cons_new_map(Main.Zero, Main.Zero))_>=_new_map(x21, x22, Main.Zero, Main.Zero)) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 For Pair new_map(vz33, vz34, Main.Zero, Main.Zero) -> new_map1(vz33, vz34) the following chains were created: 33.88/18.43 *We consider the chain new_map(x37, x38, Main.Zero, Main.Zero) -> new_map1(x37, x38), new_map1(x39, x40) -> new_map0(Main.Pos(Main.Succ(x39)), Main.Succ(new_primPlusNat(x40))) which results in the following constraint: 33.88/18.43 33.88/18.43 (1) (new_map1(x37, x38)=new_map1(x39, x40) ==> new_map(x37, x38, Main.Zero, Main.Zero)_>=_new_map1(x37, x38)) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.43 33.88/18.43 (2) (new_map(x37, x38, Main.Zero, Main.Zero)_>=_new_map1(x37, x38)) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 For Pair new_map1(vz33, vz34) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) the following chains were created: 33.88/18.43 *We consider the chain new_map1(x45, x46) -> new_map0(Main.Pos(Main.Succ(x45)), Main.Succ(new_primPlusNat(x46))), new_map0(Main.Pos(Main.Succ(x47)), x48) -> H(x47, x48, anew_new_map(x48, x47)) which results in the following constraint: 33.88/18.43 33.88/18.43 (1) (new_map0(Main.Pos(Main.Succ(x45)), Main.Succ(new_primPlusNat(x46)))=new_map0(Main.Pos(Main.Succ(x47)), x48) ==> new_map1(x45, x46)_>=_new_map0(Main.Pos(Main.Succ(x45)), Main.Succ(new_primPlusNat(x46)))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.43 33.88/18.43 (2) (new_map1(x45, x46)_>=_new_map0(Main.Pos(Main.Succ(x45)), Main.Succ(new_primPlusNat(x46)))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 For Pair H(vz33, vz34, cons_new_map(Main.Zero, Main.Succ(vz360))) -> new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) the following chains were created: 33.88/18.43 *We consider the chain H(x74, x75, cons_new_map(Main.Zero, Main.Succ(x76))) -> new_map(x74, x75, Main.Zero, Main.Succ(x76)), new_map(x77, x78, Main.Zero, Main.Succ(x79)) -> new_map0(Main.Pos(Main.Succ(x77)), Main.Succ(new_primPlusNat(x78))) which results in the following constraint: 33.88/18.43 33.88/18.43 (1) (new_map(x74, x75, Main.Zero, Main.Succ(x76))=new_map(x77, x78, Main.Zero, Main.Succ(x79)) ==> H(x74, x75, cons_new_map(Main.Zero, Main.Succ(x76)))_>=_new_map(x74, x75, Main.Zero, Main.Succ(x76))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.43 33.88/18.43 (2) (H(x74, x75, cons_new_map(Main.Zero, Main.Succ(x76)))_>=_new_map(x74, x75, Main.Zero, Main.Succ(x76))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 For Pair new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) the following chains were created: 33.88/18.43 *We consider the chain new_map(x80, x81, Main.Zero, Main.Succ(x82)) -> new_map0(Main.Pos(Main.Succ(x80)), Main.Succ(new_primPlusNat(x81))), new_map0(Main.Pos(Main.Succ(x83)), x84) -> H(x83, x84, anew_new_map(x84, x83)) which results in the following constraint: 33.88/18.43 33.88/18.43 (1) (new_map0(Main.Pos(Main.Succ(x80)), Main.Succ(new_primPlusNat(x81)))=new_map0(Main.Pos(Main.Succ(x83)), x84) ==> new_map(x80, x81, Main.Zero, Main.Succ(x82))_>=_new_map0(Main.Pos(Main.Succ(x80)), Main.Succ(new_primPlusNat(x81)))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.43 33.88/18.43 (2) (new_map(x80, x81, Main.Zero, Main.Succ(x82))_>=_new_map0(Main.Pos(Main.Succ(x80)), Main.Succ(new_primPlusNat(x81)))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 To summarize, we get the following constraints P__>=_ for the following pairs. 33.88/18.43 33.88/18.43 *new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> H(vz31000, vz30000, anew_new_map(vz30000, vz31000)) 33.88/18.43 33.88/18.43 *(new_map0(Main.Pos(Main.Succ(Main.Succ(x102))), Main.Succ(x103))_>=_H(Main.Succ(x102), Main.Succ(x103), anew_new_map(Main.Succ(x103), Main.Succ(x102))) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x102)))), Main.Succ(Main.Succ(x103)))_>=_H(Main.Succ(Main.Succ(x102)), Main.Succ(Main.Succ(x103)), anew_new_map(Main.Succ(Main.Succ(x103)), Main.Succ(Main.Succ(x102))))) 33.88/18.43 33.88/18.43 33.88/18.43 *(new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Zero), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 33.88/18.43 33.88/18.43 33.88/18.43 *(new_map0(Main.Pos(Main.Succ(Main.Succ(x107))), Main.Succ(x108))_>=_H(Main.Succ(x107), Main.Succ(x108), anew_new_map(Main.Succ(x108), Main.Succ(x107))) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x107)))), Main.Succ(Main.Succ(x108)))_>=_H(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x108)), anew_new_map(Main.Succ(Main.Succ(x108)), Main.Succ(Main.Succ(x107))))) 33.88/18.43 33.88/18.43 33.88/18.43 *(new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x110)))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Succ(x110)), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x110))))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 *H(vz33, vz34, cons_new_map(Main.Zero, Main.Zero)) -> new_map(vz33, vz34, Main.Zero, Main.Zero) 33.88/18.43 33.88/18.43 *(H(x21, x22, cons_new_map(Main.Zero, Main.Zero))_>=_new_map(x21, x22, Main.Zero, Main.Zero)) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 *new_map(vz33, vz34, Main.Zero, Main.Zero) -> new_map1(vz33, vz34) 33.88/18.43 33.88/18.43 *(new_map(x37, x38, Main.Zero, Main.Zero)_>=_new_map1(x37, x38)) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 *new_map1(vz33, vz34) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.43 33.88/18.43 *(new_map1(x45, x46)_>=_new_map0(Main.Pos(Main.Succ(x45)), Main.Succ(new_primPlusNat(x46)))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 *H(vz33, vz34, cons_new_map(Main.Zero, Main.Succ(vz360))) -> new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) 33.88/18.43 33.88/18.43 *(H(x74, x75, cons_new_map(Main.Zero, Main.Succ(x76)))_>=_new_map(x74, x75, Main.Zero, Main.Succ(x76))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 *new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.43 33.88/18.43 *(new_map(x80, x81, Main.Zero, Main.Succ(x82))_>=_new_map0(Main.Pos(Main.Succ(x80)), Main.Succ(new_primPlusNat(x81)))) 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 33.88/18.43 The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (16) 33.88/18.44 Obligation: 33.88/18.44 Q DP problem: 33.88/18.44 The TRS P consists of the following rules: 33.88/18.44 33.88/18.44 new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> H(vz31000, vz30000, anew_new_map(vz30000, vz31000)) 33.88/18.44 H(vz33, vz34, cons_new_map(Main.Zero, Main.Zero)) -> new_map(vz33, vz34, Main.Zero, Main.Zero) 33.88/18.44 new_map(vz33, vz34, Main.Zero, Main.Zero) -> new_map1(vz33, vz34) 33.88/18.44 new_map1(vz33, vz34) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.44 H(vz33, vz34, cons_new_map(Main.Zero, Main.Succ(vz360))) -> new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) 33.88/18.44 new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.44 33.88/18.44 The TRS R consists of the following rules: 33.88/18.44 33.88/18.44 new_primPlusNat(Main.Zero) -> Main.Zero 33.88/18.44 new_primPlusNat(Main.Succ(vz340)) -> Main.Succ(vz340) 33.88/18.44 anew_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.44 new_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.44 new_new_map(Main.Zero, Main.Zero) -> cons_new_map(Main.Zero, Main.Zero) 33.88/18.44 new_new_map(Main.Zero, Main.Succ(vz360)) -> cons_new_map(Main.Zero, Main.Succ(vz360)) 33.88/18.44 33.88/18.44 The set Q consists of the following terms: 33.88/18.44 33.88/18.44 new_primPlusNat(Main.Succ(x0)) 33.88/18.44 new_primPlusNat(Main.Zero) 33.88/18.44 new_new_map(Main.Succ(x0), Main.Succ(x1)) 33.88/18.44 anew_new_map(Main.Succ(x0), Main.Succ(x1)) 33.88/18.44 new_new_map(Main.Zero, Main.Zero) 33.88/18.44 new_new_map(Main.Zero, Main.Succ(x0)) 33.88/18.44 33.88/18.44 We have to consider all minimal (P,Q,R)-chains. 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (17) NonInfProof (EQUIVALENT) 33.88/18.44 The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps: 33.88/18.44 33.88/18.44 Note that final constraints are written in bold face. 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 For Pair new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> H(vz31000, vz30000, anew_new_map(vz30000, vz31000)) the following chains were created: 33.88/18.44 *We consider the chain new_map0(Main.Pos(Main.Succ(x2)), x3) -> H(x2, x3, anew_new_map(x3, x2)), H(x4, x5, cons_new_map(Main.Zero, Main.Zero)) -> new_map(x4, x5, Main.Zero, Main.Zero) which results in the following constraint: 33.88/18.44 33.88/18.44 (1) (H(x2, x3, anew_new_map(x3, x2))=H(x4, x5, cons_new_map(Main.Zero, Main.Zero)) ==> new_map0(Main.Pos(Main.Succ(x2)), x3)_>=_H(x2, x3, anew_new_map(x3, x2))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.44 33.88/18.44 (2) (anew_new_map(x3, x2)=cons_new_map(Main.Zero, Main.Zero) ==> new_map0(Main.Pos(Main.Succ(x2)), x3)_>=_H(x2, x3, anew_new_map(x3, x2))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on anew_new_map(x3, x2)=cons_new_map(Main.Zero, Main.Zero) which results in the following new constraint: 33.88/18.44 33.88/18.44 (3) (new_new_map(x101, x100)=cons_new_map(Main.Zero, Main.Zero) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(x100))), Main.Succ(x101))_>=_H(Main.Succ(x100), Main.Succ(x101), anew_new_map(Main.Succ(x101), Main.Succ(x100)))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_new_map(x101, x100)=cons_new_map(Main.Zero, Main.Zero) which results in the following new constraints: 33.88/18.44 33.88/18.44 (4) (new_new_map(x103, x102)=cons_new_map(Main.Zero, Main.Zero) & (new_new_map(x103, x102)=cons_new_map(Main.Zero, Main.Zero) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(x102))), Main.Succ(x103))_>=_H(Main.Succ(x102), Main.Succ(x103), anew_new_map(Main.Succ(x103), Main.Succ(x102)))) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x102)))), Main.Succ(Main.Succ(x103)))_>=_H(Main.Succ(Main.Succ(x102)), Main.Succ(Main.Succ(x103)), anew_new_map(Main.Succ(Main.Succ(x103)), Main.Succ(Main.Succ(x102))))) 33.88/18.44 33.88/18.44 (5) (cons_new_map(Main.Zero, Main.Zero)=cons_new_map(Main.Zero, Main.Zero) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Zero), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 33.88/18.44 33.88/18.44 (6) (cons_new_map(Main.Zero, Main.Succ(x104))=cons_new_map(Main.Zero, Main.Zero) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x104)))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x104))))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (new_new_map(x103, x102)=cons_new_map(Main.Zero, Main.Zero) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(x102))), Main.Succ(x103))_>=_H(Main.Succ(x102), Main.Succ(x103), anew_new_map(Main.Succ(x103), Main.Succ(x102)))) with sigma = [ ] which results in the following new constraint: 33.88/18.44 33.88/18.44 (7) (new_map0(Main.Pos(Main.Succ(Main.Succ(x102))), Main.Succ(x103))_>=_H(Main.Succ(x102), Main.Succ(x103), anew_new_map(Main.Succ(x103), Main.Succ(x102))) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x102)))), Main.Succ(Main.Succ(x103)))_>=_H(Main.Succ(Main.Succ(x102)), Main.Succ(Main.Succ(x103)), anew_new_map(Main.Succ(Main.Succ(x103)), Main.Succ(Main.Succ(x102))))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (5) using rules (I), (II) which results in the following new constraint: 33.88/18.44 33.88/18.44 (8) (new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Zero), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We solved constraint (6) using rules (I), (II). 33.88/18.44 *We consider the chain new_map0(Main.Pos(Main.Succ(x10)), x11) -> H(x10, x11, anew_new_map(x11, x10)), H(x12, x13, cons_new_map(Main.Zero, Main.Succ(x14))) -> new_map(x12, x13, Main.Zero, Main.Succ(x14)) which results in the following constraint: 33.88/18.44 33.88/18.44 (1) (H(x10, x11, anew_new_map(x11, x10))=H(x12, x13, cons_new_map(Main.Zero, Main.Succ(x14))) ==> new_map0(Main.Pos(Main.Succ(x10)), x11)_>=_H(x10, x11, anew_new_map(x11, x10))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.44 33.88/18.44 (2) (anew_new_map(x11, x10)=cons_new_map(Main.Zero, Main.Succ(x14)) ==> new_map0(Main.Pos(Main.Succ(x10)), x11)_>=_H(x10, x11, anew_new_map(x11, x10))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on anew_new_map(x11, x10)=cons_new_map(Main.Zero, Main.Succ(x14)) which results in the following new constraint: 33.88/18.44 33.88/18.44 (3) (new_new_map(x106, x105)=cons_new_map(Main.Zero, Main.Succ(x14)) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Succ(x106))_>=_H(Main.Succ(x105), Main.Succ(x106), anew_new_map(Main.Succ(x106), Main.Succ(x105)))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_new_map(x106, x105)=cons_new_map(Main.Zero, Main.Succ(x14)) which results in the following new constraints: 33.88/18.44 33.88/18.44 (4) (new_new_map(x108, x107)=cons_new_map(Main.Zero, Main.Succ(x14)) & (\/x109:new_new_map(x108, x107)=cons_new_map(Main.Zero, Main.Succ(x109)) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(x107))), Main.Succ(x108))_>=_H(Main.Succ(x107), Main.Succ(x108), anew_new_map(Main.Succ(x108), Main.Succ(x107)))) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x107)))), Main.Succ(Main.Succ(x108)))_>=_H(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x108)), anew_new_map(Main.Succ(Main.Succ(x108)), Main.Succ(Main.Succ(x107))))) 33.88/18.44 33.88/18.44 (5) (cons_new_map(Main.Zero, Main.Zero)=cons_new_map(Main.Zero, Main.Succ(x14)) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Zero), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 33.88/18.44 33.88/18.44 (6) (cons_new_map(Main.Zero, Main.Succ(x110))=cons_new_map(Main.Zero, Main.Succ(x14)) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x110)))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Succ(x110)), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x110))))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (\/x109:new_new_map(x108, x107)=cons_new_map(Main.Zero, Main.Succ(x109)) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(x107))), Main.Succ(x108))_>=_H(Main.Succ(x107), Main.Succ(x108), anew_new_map(Main.Succ(x108), Main.Succ(x107)))) with sigma = [x109 / x14] which results in the following new constraint: 33.88/18.44 33.88/18.44 (7) (new_map0(Main.Pos(Main.Succ(Main.Succ(x107))), Main.Succ(x108))_>=_H(Main.Succ(x107), Main.Succ(x108), anew_new_map(Main.Succ(x108), Main.Succ(x107))) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x107)))), Main.Succ(Main.Succ(x108)))_>=_H(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x108)), anew_new_map(Main.Succ(Main.Succ(x108)), Main.Succ(Main.Succ(x107))))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.44 33.88/18.44 (8) (new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x110)))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Succ(x110)), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x110))))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 For Pair H(vz33, vz34, cons_new_map(Main.Zero, Main.Zero)) -> new_map(vz33, vz34, Main.Zero, Main.Zero) the following chains were created: 33.88/18.44 *We consider the chain H(x21, x22, cons_new_map(Main.Zero, Main.Zero)) -> new_map(x21, x22, Main.Zero, Main.Zero), new_map(x23, x24, Main.Zero, Main.Zero) -> new_map1(x23, x24) which results in the following constraint: 33.88/18.44 33.88/18.44 (1) (new_map(x21, x22, Main.Zero, Main.Zero)=new_map(x23, x24, Main.Zero, Main.Zero) ==> H(x21, x22, cons_new_map(Main.Zero, Main.Zero))_>=_new_map(x21, x22, Main.Zero, Main.Zero)) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.44 33.88/18.44 (2) (H(x21, x22, cons_new_map(Main.Zero, Main.Zero))_>=_new_map(x21, x22, Main.Zero, Main.Zero)) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 For Pair new_map(vz33, vz34, Main.Zero, Main.Zero) -> new_map1(vz33, vz34) the following chains were created: 33.88/18.44 *We consider the chain new_map(x37, x38, Main.Zero, Main.Zero) -> new_map1(x37, x38), new_map1(x39, x40) -> new_map0(Main.Pos(Main.Succ(x39)), Main.Succ(new_primPlusNat(x40))) which results in the following constraint: 33.88/18.44 33.88/18.44 (1) (new_map1(x37, x38)=new_map1(x39, x40) ==> new_map(x37, x38, Main.Zero, Main.Zero)_>=_new_map1(x37, x38)) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.44 33.88/18.44 (2) (new_map(x37, x38, Main.Zero, Main.Zero)_>=_new_map1(x37, x38)) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 For Pair new_map1(vz33, vz34) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) the following chains were created: 33.88/18.44 *We consider the chain new_map1(x45, x46) -> new_map0(Main.Pos(Main.Succ(x45)), Main.Succ(new_primPlusNat(x46))), new_map0(Main.Pos(Main.Succ(x47)), x48) -> H(x47, x48, anew_new_map(x48, x47)) which results in the following constraint: 33.88/18.44 33.88/18.44 (1) (new_map0(Main.Pos(Main.Succ(x45)), Main.Succ(new_primPlusNat(x46)))=new_map0(Main.Pos(Main.Succ(x47)), x48) ==> new_map1(x45, x46)_>=_new_map0(Main.Pos(Main.Succ(x45)), Main.Succ(new_primPlusNat(x46)))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.44 33.88/18.44 (2) (new_map1(x45, x46)_>=_new_map0(Main.Pos(Main.Succ(x45)), Main.Succ(new_primPlusNat(x46)))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 For Pair H(vz33, vz34, cons_new_map(Main.Zero, Main.Succ(vz360))) -> new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) the following chains were created: 33.88/18.44 *We consider the chain H(x74, x75, cons_new_map(Main.Zero, Main.Succ(x76))) -> new_map(x74, x75, Main.Zero, Main.Succ(x76)), new_map(x77, x78, Main.Zero, Main.Succ(x79)) -> new_map0(Main.Pos(Main.Succ(x77)), Main.Succ(new_primPlusNat(x78))) which results in the following constraint: 33.88/18.44 33.88/18.44 (1) (new_map(x74, x75, Main.Zero, Main.Succ(x76))=new_map(x77, x78, Main.Zero, Main.Succ(x79)) ==> H(x74, x75, cons_new_map(Main.Zero, Main.Succ(x76)))_>=_new_map(x74, x75, Main.Zero, Main.Succ(x76))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.44 33.88/18.44 (2) (H(x74, x75, cons_new_map(Main.Zero, Main.Succ(x76)))_>=_new_map(x74, x75, Main.Zero, Main.Succ(x76))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 For Pair new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) the following chains were created: 33.88/18.44 *We consider the chain new_map(x80, x81, Main.Zero, Main.Succ(x82)) -> new_map0(Main.Pos(Main.Succ(x80)), Main.Succ(new_primPlusNat(x81))), new_map0(Main.Pos(Main.Succ(x83)), x84) -> H(x83, x84, anew_new_map(x84, x83)) which results in the following constraint: 33.88/18.44 33.88/18.44 (1) (new_map0(Main.Pos(Main.Succ(x80)), Main.Succ(new_primPlusNat(x81)))=new_map0(Main.Pos(Main.Succ(x83)), x84) ==> new_map(x80, x81, Main.Zero, Main.Succ(x82))_>=_new_map0(Main.Pos(Main.Succ(x80)), Main.Succ(new_primPlusNat(x81)))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: 33.88/18.44 33.88/18.44 (2) (new_map(x80, x81, Main.Zero, Main.Succ(x82))_>=_new_map0(Main.Pos(Main.Succ(x80)), Main.Succ(new_primPlusNat(x81)))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 To summarize, we get the following constraints P__>=_ for the following pairs. 33.88/18.44 33.88/18.44 *new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> H(vz31000, vz30000, anew_new_map(vz30000, vz31000)) 33.88/18.44 33.88/18.44 *(new_map0(Main.Pos(Main.Succ(Main.Succ(x102))), Main.Succ(x103))_>=_H(Main.Succ(x102), Main.Succ(x103), anew_new_map(Main.Succ(x103), Main.Succ(x102))) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x102)))), Main.Succ(Main.Succ(x103)))_>=_H(Main.Succ(Main.Succ(x102)), Main.Succ(Main.Succ(x103)), anew_new_map(Main.Succ(Main.Succ(x103)), Main.Succ(Main.Succ(x102))))) 33.88/18.44 33.88/18.44 33.88/18.44 *(new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Zero), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) 33.88/18.44 33.88/18.44 33.88/18.44 *(new_map0(Main.Pos(Main.Succ(Main.Succ(x107))), Main.Succ(x108))_>=_H(Main.Succ(x107), Main.Succ(x108), anew_new_map(Main.Succ(x108), Main.Succ(x107))) ==> new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x107)))), Main.Succ(Main.Succ(x108)))_>=_H(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x108)), anew_new_map(Main.Succ(Main.Succ(x108)), Main.Succ(Main.Succ(x107))))) 33.88/18.44 33.88/18.44 33.88/18.44 *(new_map0(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x110)))), Main.Succ(Main.Zero))_>=_H(Main.Succ(Main.Succ(x110)), Main.Succ(Main.Zero), anew_new_map(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x110))))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 *H(vz33, vz34, cons_new_map(Main.Zero, Main.Zero)) -> new_map(vz33, vz34, Main.Zero, Main.Zero) 33.88/18.44 33.88/18.44 *(H(x21, x22, cons_new_map(Main.Zero, Main.Zero))_>=_new_map(x21, x22, Main.Zero, Main.Zero)) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 *new_map(vz33, vz34, Main.Zero, Main.Zero) -> new_map1(vz33, vz34) 33.88/18.44 33.88/18.44 *(new_map(x37, x38, Main.Zero, Main.Zero)_>=_new_map1(x37, x38)) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 *new_map1(vz33, vz34) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.44 33.88/18.44 *(new_map1(x45, x46)_>=_new_map0(Main.Pos(Main.Succ(x45)), Main.Succ(new_primPlusNat(x46)))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 *H(vz33, vz34, cons_new_map(Main.Zero, Main.Succ(vz360))) -> new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) 33.88/18.44 33.88/18.44 *(H(x74, x75, cons_new_map(Main.Zero, Main.Succ(x76)))_>=_new_map(x74, x75, Main.Zero, Main.Succ(x76))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 *new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.44 33.88/18.44 *(new_map(x80, x81, Main.Zero, Main.Succ(x82))_>=_new_map0(Main.Pos(Main.Succ(x80)), Main.Succ(new_primPlusNat(x81)))) 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 33.88/18.44 The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. 33.88/18.44 33.88/18.44 Using the following integer polynomial ordering the resulting constraints can be solved 33.88/18.44 33.88/18.44 Polynomial interpretation [NONINF]: 33.88/18.44 33.88/18.44 POL(H(x_1, x_2, x_3)) = x_1 - x_2 - x_3 33.88/18.44 POL(Main.Pos(x_1)) = x_1 33.88/18.44 POL(Main.Succ(x_1)) = 1 + x_1 33.88/18.44 POL(Main.Zero) = 0 33.88/18.44 POL(anew_new_map(x_1, x_2)) = 0 33.88/18.44 POL(c) = -1 33.88/18.44 POL(cons_new_map(x_1, x_2)) = 0 33.88/18.44 POL(new_map(x_1, x_2, x_3, x_4)) = -1 + x_1 - x_2 + x_3 33.88/18.44 POL(new_map0(x_1, x_2)) = -1 + x_1 - x_2 33.88/18.44 POL(new_map1(x_1, x_2)) = -1 + x_1 - x_2 33.88/18.44 POL(new_new_map(x_1, x_2)) = 0 33.88/18.44 POL(new_primPlusNat(x_1)) = x_1 33.88/18.44 33.88/18.44 33.88/18.44 The following pairs are in P_>: 33.88/18.44 H(vz33, vz34, cons_new_map(Main.Zero, Main.Zero)) -> new_map(vz33, vz34, Main.Zero, Main.Zero) 33.88/18.44 H(vz33, vz34, cons_new_map(Main.Zero, Main.Succ(vz360))) -> new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) 33.88/18.44 The following pairs are in P_bound: 33.88/18.44 new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> H(vz31000, vz30000, anew_new_map(vz30000, vz31000)) 33.88/18.44 The following rules are usable: 33.88/18.44 new_new_map(vz350, vz360) -> anew_new_map(Main.Succ(vz350), Main.Succ(vz360)) 33.88/18.44 Main.Zero -> new_primPlusNat(Main.Zero) 33.88/18.44 Main.Succ(vz340) -> new_primPlusNat(Main.Succ(vz340)) 33.88/18.44 new_new_map(vz350, vz360) -> new_new_map(Main.Succ(vz350), Main.Succ(vz360)) 33.88/18.44 cons_new_map(Main.Zero, Main.Zero) -> new_new_map(Main.Zero, Main.Zero) 33.88/18.44 cons_new_map(Main.Zero, Main.Succ(vz360)) -> new_new_map(Main.Zero, Main.Succ(vz360)) 33.88/18.44 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (18) 33.88/18.44 Complex Obligation (AND) 33.88/18.44 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (19) 33.88/18.44 Obligation: 33.88/18.44 Q DP problem: 33.88/18.44 The TRS P consists of the following rules: 33.88/18.44 33.88/18.44 new_map0(Main.Pos(Main.Succ(vz31000)), vz30000) -> H(vz31000, vz30000, anew_new_map(vz30000, vz31000)) 33.88/18.44 new_map(vz33, vz34, Main.Zero, Main.Zero) -> new_map1(vz33, vz34) 33.88/18.44 new_map1(vz33, vz34) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.44 new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.44 33.88/18.44 The TRS R consists of the following rules: 33.88/18.44 33.88/18.44 new_primPlusNat(Main.Zero) -> Main.Zero 33.88/18.44 new_primPlusNat(Main.Succ(vz340)) -> Main.Succ(vz340) 33.88/18.44 anew_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.44 new_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.44 new_new_map(Main.Zero, Main.Zero) -> cons_new_map(Main.Zero, Main.Zero) 33.88/18.44 new_new_map(Main.Zero, Main.Succ(vz360)) -> cons_new_map(Main.Zero, Main.Succ(vz360)) 33.88/18.44 33.88/18.44 The set Q consists of the following terms: 33.88/18.44 33.88/18.44 new_primPlusNat(Main.Succ(x0)) 33.88/18.44 new_primPlusNat(Main.Zero) 33.88/18.44 new_new_map(Main.Succ(x0), Main.Succ(x1)) 33.88/18.44 anew_new_map(Main.Succ(x0), Main.Succ(x1)) 33.88/18.44 new_new_map(Main.Zero, Main.Zero) 33.88/18.44 new_new_map(Main.Zero, Main.Succ(x0)) 33.88/18.44 33.88/18.44 We have to consider all minimal (P,Q,R)-chains. 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (20) DependencyGraphProof (EQUIVALENT) 33.88/18.44 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 4 less nodes. 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (21) 33.88/18.44 TRUE 33.88/18.44 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (22) 33.88/18.44 Obligation: 33.88/18.44 Q DP problem: 33.88/18.44 The TRS P consists of the following rules: 33.88/18.44 33.88/18.44 H(vz33, vz34, cons_new_map(Main.Zero, Main.Zero)) -> new_map(vz33, vz34, Main.Zero, Main.Zero) 33.88/18.44 new_map(vz33, vz34, Main.Zero, Main.Zero) -> new_map1(vz33, vz34) 33.88/18.44 new_map1(vz33, vz34) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.44 H(vz33, vz34, cons_new_map(Main.Zero, Main.Succ(vz360))) -> new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) 33.88/18.44 new_map(vz33, vz34, Main.Zero, Main.Succ(vz360)) -> new_map0(Main.Pos(Main.Succ(vz33)), Main.Succ(new_primPlusNat(vz34))) 33.88/18.44 33.88/18.44 The TRS R consists of the following rules: 33.88/18.44 33.88/18.44 new_primPlusNat(Main.Zero) -> Main.Zero 33.88/18.44 new_primPlusNat(Main.Succ(vz340)) -> Main.Succ(vz340) 33.88/18.44 anew_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.44 new_new_map(Main.Succ(vz350), Main.Succ(vz360)) -> new_new_map(vz350, vz360) 33.88/18.44 new_new_map(Main.Zero, Main.Zero) -> cons_new_map(Main.Zero, Main.Zero) 33.88/18.44 new_new_map(Main.Zero, Main.Succ(vz360)) -> cons_new_map(Main.Zero, Main.Succ(vz360)) 33.88/18.44 33.88/18.44 The set Q consists of the following terms: 33.88/18.44 33.88/18.44 new_primPlusNat(Main.Succ(x0)) 33.88/18.44 new_primPlusNat(Main.Zero) 33.88/18.44 new_new_map(Main.Succ(x0), Main.Succ(x1)) 33.88/18.44 anew_new_map(Main.Succ(x0), Main.Succ(x1)) 33.88/18.44 new_new_map(Main.Zero, Main.Zero) 33.88/18.44 new_new_map(Main.Zero, Main.Succ(x0)) 33.88/18.44 33.88/18.44 We have to consider all minimal (P,Q,R)-chains. 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (23) DependencyGraphProof (EQUIVALENT) 33.88/18.44 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 5 less nodes. 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (24) 33.88/18.44 TRUE 33.88/18.44 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (25) 33.88/18.44 Obligation: 33.88/18.44 Q DP problem: 33.88/18.44 The TRS P consists of the following rules: 33.88/18.44 33.88/18.44 new_map(vz33, vz34, Main.Succ(vz350), Main.Succ(vz360)) -> new_map(vz33, vz34, vz350, vz360) 33.88/18.44 33.88/18.44 R is empty. 33.88/18.44 Q is empty. 33.88/18.44 We have to consider all minimal (P,Q,R)-chains. 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (26) QDPSizeChangeProof (EQUIVALENT) 33.88/18.44 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. 33.88/18.44 33.88/18.44 From the DPs we obtained the following set of size-change graphs: 33.88/18.44 *new_map(vz33, vz34, Main.Succ(vz350), Main.Succ(vz360)) -> new_map(vz33, vz34, vz350, vz360) 33.88/18.44 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 33.88/18.44 33.88/18.44 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (27) 33.88/18.44 YES 33.88/18.44 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (28) 33.88/18.44 Obligation: 33.88/18.44 Q DP problem: 33.88/18.44 The TRS P consists of the following rules: 33.88/18.44 33.88/18.44 new_map3(vz38, vz39, Main.Zero, Main.Zero) -> new_map4(vz38, vz39) 33.88/18.44 new_map2(Main.Neg(Main.Succ(vz31000)), vz30000) -> new_map3(vz31000, vz30000, vz31000, vz30000) 33.88/18.44 new_map4(vz38, Main.Succ(vz390)) -> new_map2(Main.Neg(Main.Succ(vz38)), vz390) 33.88/18.44 new_map3(vz38, vz39, Main.Succ(vz400), Main.Succ(vz410)) -> new_map3(vz38, vz39, vz400, vz410) 33.88/18.44 new_map2(Main.Pos(vz3100), Main.Succ(vz300000)) -> new_map2(Main.Pos(vz3100), vz300000) 33.88/18.44 new_map2(Main.Neg(Main.Zero), Main.Succ(vz300000)) -> new_map2(Main.Neg(Main.Zero), vz300000) 33.88/18.44 new_map3(vz38, Main.Succ(vz390), Main.Zero, Main.Succ(vz410)) -> new_map2(Main.Neg(Main.Succ(vz38)), vz390) 33.88/18.44 33.88/18.44 R is empty. 33.88/18.44 Q is empty. 33.88/18.44 We have to consider all minimal (P,Q,R)-chains. 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (29) DependencyGraphProof (EQUIVALENT) 33.88/18.44 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs. 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (30) 33.88/18.44 Complex Obligation (AND) 33.88/18.44 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (31) 33.88/18.44 Obligation: 33.88/18.44 Q DP problem: 33.88/18.44 The TRS P consists of the following rules: 33.88/18.44 33.88/18.44 new_map2(Main.Neg(Main.Zero), Main.Succ(vz300000)) -> new_map2(Main.Neg(Main.Zero), vz300000) 33.88/18.44 33.88/18.44 R is empty. 33.88/18.44 Q is empty. 33.88/18.44 We have to consider all minimal (P,Q,R)-chains. 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (32) QDPSizeChangeProof (EQUIVALENT) 33.88/18.44 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. 33.88/18.44 33.88/18.44 From the DPs we obtained the following set of size-change graphs: 33.88/18.44 *new_map2(Main.Neg(Main.Zero), Main.Succ(vz300000)) -> new_map2(Main.Neg(Main.Zero), vz300000) 33.88/18.44 The graph contains the following edges 1 >= 1, 2 > 2 33.88/18.44 33.88/18.44 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (33) 33.88/18.44 YES 33.88/18.44 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (34) 33.88/18.44 Obligation: 33.88/18.44 Q DP problem: 33.88/18.44 The TRS P consists of the following rules: 33.88/18.44 33.88/18.44 new_map2(Main.Pos(vz3100), Main.Succ(vz300000)) -> new_map2(Main.Pos(vz3100), vz300000) 33.88/18.44 33.88/18.44 R is empty. 33.88/18.44 Q is empty. 33.88/18.44 We have to consider all minimal (P,Q,R)-chains. 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (35) QDPSizeChangeProof (EQUIVALENT) 33.88/18.44 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. 33.88/18.44 33.88/18.44 From the DPs we obtained the following set of size-change graphs: 33.88/18.44 *new_map2(Main.Pos(vz3100), Main.Succ(vz300000)) -> new_map2(Main.Pos(vz3100), vz300000) 33.88/18.44 The graph contains the following edges 1 >= 1, 2 > 2 33.88/18.44 33.88/18.44 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (36) 33.88/18.44 YES 33.88/18.44 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (37) 33.88/18.44 Obligation: 33.88/18.44 Q DP problem: 33.88/18.44 The TRS P consists of the following rules: 33.88/18.44 33.88/18.44 new_map4(vz38, Main.Succ(vz390)) -> new_map2(Main.Neg(Main.Succ(vz38)), vz390) 33.88/18.44 new_map2(Main.Neg(Main.Succ(vz31000)), vz30000) -> new_map3(vz31000, vz30000, vz31000, vz30000) 33.88/18.44 new_map3(vz38, vz39, Main.Zero, Main.Zero) -> new_map4(vz38, vz39) 33.88/18.44 new_map3(vz38, vz39, Main.Succ(vz400), Main.Succ(vz410)) -> new_map3(vz38, vz39, vz400, vz410) 33.88/18.44 new_map3(vz38, Main.Succ(vz390), Main.Zero, Main.Succ(vz410)) -> new_map2(Main.Neg(Main.Succ(vz38)), vz390) 33.88/18.44 33.88/18.44 R is empty. 33.88/18.44 Q is empty. 33.88/18.44 We have to consider all minimal (P,Q,R)-chains. 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (38) QDPSizeChangeProof (EQUIVALENT) 33.88/18.44 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. 33.88/18.44 33.88/18.44 From the DPs we obtained the following set of size-change graphs: 33.88/18.44 *new_map2(Main.Neg(Main.Succ(vz31000)), vz30000) -> new_map3(vz31000, vz30000, vz31000, vz30000) 33.88/18.44 The graph contains the following edges 1 > 1, 2 >= 2, 1 > 3, 2 >= 4 33.88/18.44 33.88/18.44 33.88/18.44 *new_map3(vz38, vz39, Main.Zero, Main.Zero) -> new_map4(vz38, vz39) 33.88/18.44 The graph contains the following edges 1 >= 1, 2 >= 2 33.88/18.44 33.88/18.44 33.88/18.44 *new_map3(vz38, Main.Succ(vz390), Main.Zero, Main.Succ(vz410)) -> new_map2(Main.Neg(Main.Succ(vz38)), vz390) 33.88/18.44 The graph contains the following edges 2 > 2 33.88/18.44 33.88/18.44 33.88/18.44 *new_map3(vz38, vz39, Main.Succ(vz400), Main.Succ(vz410)) -> new_map3(vz38, vz39, vz400, vz410) 33.88/18.44 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 33.88/18.44 33.88/18.44 33.88/18.44 *new_map4(vz38, Main.Succ(vz390)) -> new_map2(Main.Neg(Main.Succ(vz38)), vz390) 33.88/18.44 The graph contains the following edges 2 > 2 33.88/18.44 33.88/18.44 33.88/18.44 ---------------------------------------- 33.88/18.44 33.88/18.44 (39) 33.88/18.44 YES 34.16/18.55 EOF