/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.hs /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.hs # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty H-Termination with start terms of the given HASKELL could be proven: (0) HASKELL (1) BR [EQUIVALENT, 0 ms] (2) HASKELL (3) COR [EQUIVALENT, 0 ms] (4) HASKELL (5) Narrow [SOUND, 0 ms] (6) QDP (7) QDPSizeChangeProof [EQUIVALENT, 0 ms] (8) YES ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; data Main.Char = Char MyInt ; data List a = Cons a (List a) | Nil ; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; data Ordering = LT | EQ | GT ; compareMyInt :: MyInt -> MyInt -> Ordering; compareMyInt = primCmpInt; esEsOrdering :: Ordering -> Ordering -> MyBool; esEsOrdering LT LT = MyTrue; esEsOrdering LT EQ = MyFalse; esEsOrdering LT GT = MyFalse; esEsOrdering EQ LT = MyFalse; esEsOrdering EQ EQ = MyTrue; esEsOrdering EQ GT = MyFalse; esEsOrdering GT LT = MyFalse; esEsOrdering GT EQ = MyFalse; esEsOrdering GT GT = MyTrue; gtMyInt :: MyInt -> MyInt -> MyBool; gtMyInt x y = esEsOrdering (compareMyInt x y) GT; primCmpInt :: MyInt -> MyInt -> Ordering; primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; primCmpInt (Main.Pos x) (Main.Neg y) = GT; primCmpInt (Main.Neg x) (Main.Pos y) = LT; primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; primCmpNat :: Main.Nat -> Main.Nat -> Ordering; primCmpNat Main.Zero Main.Zero = EQ; primCmpNat Main.Zero (Main.Succ y) = LT; primCmpNat (Main.Succ x) Main.Zero = GT; primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; psPs :: List a -> List a -> List a; psPs Nil ys = ys; psPs (Cons x xs) ys = Cons x (psPs xs ys); pt :: (a -> c) -> (b -> a) -> b -> c; pt f g x = f (g x); showChar :: Main.Char -> List Main.Char -> List Main.Char; showChar = Cons; showParen :: MyBool -> (List Main.Char -> List Main.Char) -> List Main.Char -> List Main.Char; showParen b p = showParen0 p b; showParen0 p MyTrue = pt (showChar (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))) (pt p (showChar (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))); showParen0 p MyFalse = p; showString :: List Main.Char -> List Main.Char -> List Main.Char; showString = psPs; showsMyBool :: MyBool -> List Main.Char -> List Main.Char; showsMyBool = showsPrecMyBool (Main.Pos Main.Zero); showsPrecMyBool :: MyInt -> MyBool -> List Main.Char -> List Main.Char; showsPrecMyBool d MyFalse = showParen (gtMyInt d (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))) (showString (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))) Nil))))))); showsPrecMyBool d MyTrue = showParen (gtMyInt d (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))) (showString (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))) Nil)))))); } ---------------------------------------- (1) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; data Main.Char = Char MyInt ; data List a = Cons a (List a) | Nil ; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; data Ordering = LT | EQ | GT ; compareMyInt :: MyInt -> MyInt -> Ordering; compareMyInt = primCmpInt; esEsOrdering :: Ordering -> Ordering -> MyBool; esEsOrdering LT LT = MyTrue; esEsOrdering LT EQ = MyFalse; esEsOrdering LT GT = MyFalse; esEsOrdering EQ LT = MyFalse; esEsOrdering EQ EQ = MyTrue; esEsOrdering EQ GT = MyFalse; esEsOrdering GT LT = MyFalse; esEsOrdering GT EQ = MyFalse; esEsOrdering GT GT = MyTrue; gtMyInt :: MyInt -> MyInt -> MyBool; gtMyInt x y = esEsOrdering (compareMyInt x y) GT; primCmpInt :: MyInt -> MyInt -> Ordering; primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; primCmpInt (Main.Pos x) (Main.Neg y) = GT; primCmpInt (Main.Neg x) (Main.Pos y) = LT; primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; primCmpNat :: Main.Nat -> Main.Nat -> Ordering; primCmpNat Main.Zero Main.Zero = EQ; primCmpNat Main.Zero (Main.Succ y) = LT; primCmpNat (Main.Succ x) Main.Zero = GT; primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; psPs :: List a -> List a -> List a; psPs Nil ys = ys; psPs (Cons x xs) ys = Cons x (psPs xs ys); pt :: (b -> c) -> (a -> b) -> a -> c; pt f g x = f (g x); showChar :: Main.Char -> List Main.Char -> List Main.Char; showChar = Cons; showParen :: MyBool -> (List Main.Char -> List Main.Char) -> List Main.Char -> List Main.Char; showParen b p = showParen0 p b; showParen0 p MyTrue = pt (showChar (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))) (pt p (showChar (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))); showParen0 p MyFalse = p; showString :: List Main.Char -> List Main.Char -> List Main.Char; showString = psPs; showsMyBool :: MyBool -> List Main.Char -> List Main.Char; showsMyBool = showsPrecMyBool (Main.Pos Main.Zero); showsPrecMyBool :: MyInt -> MyBool -> List Main.Char -> List Main.Char; showsPrecMyBool d MyFalse = showParen (gtMyInt d (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))) (showString (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))) Nil))))))); showsPrecMyBool d MyTrue = showParen (gtMyInt d (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))) (showString (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))) Nil)))))); } ---------------------------------------- (3) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; data Main.Char = Char MyInt ; data List a = Cons a (List a) | Nil ; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; data Ordering = LT | EQ | GT ; compareMyInt :: MyInt -> MyInt -> Ordering; compareMyInt = primCmpInt; esEsOrdering :: Ordering -> Ordering -> MyBool; esEsOrdering LT LT = MyTrue; esEsOrdering LT EQ = MyFalse; esEsOrdering LT GT = MyFalse; esEsOrdering EQ LT = MyFalse; esEsOrdering EQ EQ = MyTrue; esEsOrdering EQ GT = MyFalse; esEsOrdering GT LT = MyFalse; esEsOrdering GT EQ = MyFalse; esEsOrdering GT GT = MyTrue; gtMyInt :: MyInt -> MyInt -> MyBool; gtMyInt x y = esEsOrdering (compareMyInt x y) GT; primCmpInt :: MyInt -> MyInt -> Ordering; primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; primCmpInt (Main.Pos x) (Main.Neg y) = GT; primCmpInt (Main.Neg x) (Main.Pos y) = LT; primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; primCmpNat :: Main.Nat -> Main.Nat -> Ordering; primCmpNat Main.Zero Main.Zero = EQ; primCmpNat Main.Zero (Main.Succ y) = LT; primCmpNat (Main.Succ x) Main.Zero = GT; primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; psPs :: List a -> List a -> List a; psPs Nil ys = ys; psPs (Cons x xs) ys = Cons x (psPs xs ys); pt :: (b -> c) -> (a -> b) -> a -> c; pt f g x = f (g x); showChar :: Main.Char -> List Main.Char -> List Main.Char; showChar = Cons; showParen :: MyBool -> (List Main.Char -> List Main.Char) -> List Main.Char -> List Main.Char; showParen b p = showParen0 p b; showParen0 p MyTrue = pt (showChar (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))) (pt p (showChar (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))); showParen0 p MyFalse = p; showString :: List Main.Char -> List Main.Char -> List Main.Char; showString = psPs; showsMyBool :: MyBool -> List Main.Char -> List Main.Char; showsMyBool = showsPrecMyBool (Main.Pos Main.Zero); showsPrecMyBool :: MyInt -> MyBool -> List Main.Char -> List Main.Char; showsPrecMyBool d MyFalse = showParen (gtMyInt d (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))) (showString (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))) Nil))))))); showsPrecMyBool d MyTrue = showParen (gtMyInt d (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))) (showString (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))))))))))))))))))))))))) Nil)))))); } ---------------------------------------- (5) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="showsMyBool",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="showsMyBool vx3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="showsMyBool vx3 vx4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="showsPrecMyBool (Pos Zero) vx3 vx4",fontsize=16,color="burlywood",shape="box"];105[label="vx3/MyTrue",fontsize=10,color="white",style="solid",shape="box"];5 -> 105[label="",style="solid", color="burlywood", weight=9]; 105 -> 6[label="",style="solid", color="burlywood", weight=3]; 106[label="vx3/MyFalse",fontsize=10,color="white",style="solid",shape="box"];5 -> 106[label="",style="solid", color="burlywood", weight=9]; 106 -> 7[label="",style="solid", color="burlywood", weight=3]; 6[label="showsPrecMyBool (Pos Zero) MyTrue vx4",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 7[label="showsPrecMyBool (Pos Zero) MyFalse vx4",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8 -> 56[label="",style="dashed", color="red", weight=0]; 8[label="showParen (gtMyInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) (showString (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))) Nil)))))) vx4",fontsize=16,color="magenta"];8 -> 57[label="",style="dashed", color="magenta", weight=3]; 8 -> 58[label="",style="dashed", color="magenta", weight=3]; 8 -> 59[label="",style="dashed", color="magenta", weight=3]; 8 -> 60[label="",style="dashed", color="magenta", weight=3]; 8 -> 61[label="",style="dashed", color="magenta", weight=3]; 8 -> 62[label="",style="dashed", color="magenta", weight=3]; 8 -> 63[label="",style="dashed", color="magenta", weight=3]; 9 -> 72[label="",style="dashed", color="red", weight=0]; 9[label="showParen (gtMyInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) (showString (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))) Nil))))))) vx4",fontsize=16,color="magenta"];9 -> 73[label="",style="dashed", color="magenta", weight=3]; 9 -> 74[label="",style="dashed", color="magenta", weight=3]; 9 -> 75[label="",style="dashed", color="magenta", weight=3]; 57[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];58[label="vx4",fontsize=16,color="green",shape="box"];59[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];60[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];61[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];62[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];63[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];56[label="showParen (gtMyInt (Pos Zero) (Pos (Succ vx34))) (showString (Cons (Char (Pos (Succ vx35))) (Cons (Char (Pos (Succ vx36))) (Cons (Char (Pos (Succ vx37))) (Cons (Char (Pos (Succ vx38))) (Cons (Char (Pos (Succ vx39))) Nil)))))) vx40",fontsize=16,color="black",shape="triangle"];56 -> 71[label="",style="solid", color="black", weight=3]; 73[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];74[label="vx4",fontsize=16,color="green",shape="box"];75[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];72[label="showParen (gtMyInt (Pos Zero) (Pos (Succ vx42))) (showString (Cons (Char (Pos (Succ vx43))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))) Nil))))))) vx44",fontsize=16,color="black",shape="triangle"];72 -> 79[label="",style="solid", color="black", weight=3]; 71[label="showParen0 (showString (Cons (Char (Pos (Succ vx35))) (Cons (Char (Pos (Succ vx36))) (Cons (Char (Pos (Succ vx37))) (Cons (Char (Pos (Succ vx38))) (Cons (Char (Pos (Succ vx39))) Nil)))))) (gtMyInt (Pos Zero) (Pos (Succ vx34))) vx40",fontsize=16,color="black",shape="box"];71 -> 80[label="",style="solid", color="black", weight=3]; 79[label="showParen0 (showString (Cons (Char (Pos (Succ vx43))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))) Nil))))))) (gtMyInt (Pos Zero) (Pos (Succ vx42))) vx44",fontsize=16,color="black",shape="box"];79 -> 81[label="",style="solid", color="black", weight=3]; 80 -> 82[label="",style="dashed", color="red", weight=0]; 80[label="showParen0 (showString (Cons (Char (Pos (Succ vx35))) (Cons (Char (Pos (Succ vx36))) (Cons (Char (Pos (Succ vx37))) (Cons (Char (Pos (Succ vx38))) (Cons (Char (Pos (Succ vx39))) Nil)))))) (esEsOrdering (compareMyInt (Pos Zero) (Pos (Succ vx34))) GT) vx40",fontsize=16,color="magenta"];80 -> 83[label="",style="dashed", color="magenta", weight=3]; 80 -> 84[label="",style="dashed", color="magenta", weight=3]; 80 -> 85[label="",style="dashed", color="magenta", weight=3]; 80 -> 86[label="",style="dashed", color="magenta", weight=3]; 81 -> 82[label="",style="dashed", color="red", weight=0]; 81[label="showParen0 (showString (Cons (Char (Pos (Succ vx43))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))) Nil))))))) (esEsOrdering (compareMyInt (Pos Zero) (Pos (Succ vx42))) GT) vx44",fontsize=16,color="magenta"];81 -> 87[label="",style="dashed", color="magenta", weight=3]; 81 -> 88[label="",style="dashed", color="magenta", weight=3]; 81 -> 89[label="",style="dashed", color="magenta", weight=3]; 81 -> 90[label="",style="dashed", color="magenta", weight=3]; 83[label="vx34",fontsize=16,color="green",shape="box"];84[label="vx40",fontsize=16,color="green",shape="box"];85[label="Cons (Char (Pos (Succ vx36))) (Cons (Char (Pos (Succ vx37))) (Cons (Char (Pos (Succ vx38))) (Cons (Char (Pos (Succ vx39))) Nil)))",fontsize=16,color="green",shape="box"];86[label="vx35",fontsize=16,color="green",shape="box"];82[label="showParen0 (showString (Cons (Char (Pos (Succ vx46))) vx47)) (esEsOrdering (compareMyInt (Pos Zero) (Pos (Succ vx48))) GT) vx49",fontsize=16,color="black",shape="triangle"];82 -> 91[label="",style="solid", color="black", weight=3]; 87[label="vx42",fontsize=16,color="green",shape="box"];88[label="vx44",fontsize=16,color="green",shape="box"];89[label="Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (Cons (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))) Nil))))",fontsize=16,color="green",shape="box"];90[label="vx43",fontsize=16,color="green",shape="box"];91[label="showParen0 (showString (Cons (Char (Pos (Succ vx46))) vx47)) (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ vx48))) GT) vx49",fontsize=16,color="black",shape="box"];91 -> 92[label="",style="solid", color="black", weight=3]; 92[label="showParen0 (showString (Cons (Char (Pos (Succ vx46))) vx47)) (esEsOrdering (primCmpNat Zero (Succ vx48)) GT) vx49",fontsize=16,color="black",shape="box"];92 -> 93[label="",style="solid", color="black", weight=3]; 93[label="showParen0 (showString (Cons (Char (Pos (Succ vx46))) vx47)) (esEsOrdering LT GT) vx49",fontsize=16,color="black",shape="box"];93 -> 94[label="",style="solid", color="black", weight=3]; 94[label="showParen0 (showString (Cons (Char (Pos (Succ vx46))) vx47)) MyFalse vx49",fontsize=16,color="black",shape="box"];94 -> 95[label="",style="solid", color="black", weight=3]; 95[label="showString (Cons (Char (Pos (Succ vx46))) vx47) vx49",fontsize=16,color="black",shape="box"];95 -> 96[label="",style="solid", color="black", weight=3]; 96[label="psPs (Cons (Char (Pos (Succ vx46))) vx47) vx49",fontsize=16,color="black",shape="box"];96 -> 97[label="",style="solid", color="black", weight=3]; 97[label="Cons (Char (Pos (Succ vx46))) (psPs vx47 vx49)",fontsize=16,color="green",shape="box"];97 -> 98[label="",style="dashed", color="green", weight=3]; 98[label="psPs vx47 vx49",fontsize=16,color="burlywood",shape="triangle"];107[label="vx47/Cons vx470 vx471",fontsize=10,color="white",style="solid",shape="box"];98 -> 107[label="",style="solid", color="burlywood", weight=9]; 107 -> 99[label="",style="solid", color="burlywood", weight=3]; 108[label="vx47/Nil",fontsize=10,color="white",style="solid",shape="box"];98 -> 108[label="",style="solid", color="burlywood", weight=9]; 108 -> 100[label="",style="solid", color="burlywood", weight=3]; 99[label="psPs (Cons vx470 vx471) vx49",fontsize=16,color="black",shape="box"];99 -> 101[label="",style="solid", color="black", weight=3]; 100[label="psPs Nil vx49",fontsize=16,color="black",shape="box"];100 -> 102[label="",style="solid", color="black", weight=3]; 101[label="Cons vx470 (psPs vx471 vx49)",fontsize=16,color="green",shape="box"];101 -> 103[label="",style="dashed", color="green", weight=3]; 102[label="vx49",fontsize=16,color="green",shape="box"];103 -> 98[label="",style="dashed", color="red", weight=0]; 103[label="psPs vx471 vx49",fontsize=16,color="magenta"];103 -> 104[label="",style="dashed", color="magenta", weight=3]; 104[label="vx471",fontsize=16,color="green",shape="box"];} ---------------------------------------- (6) Obligation: Q DP problem: The TRS P consists of the following rules: new_psPs(Cons(vx470, vx471), vx49) -> new_psPs(vx471, vx49) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (7) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *new_psPs(Cons(vx470, vx471), vx49) -> new_psPs(vx471, vx49) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (8) YES