30.92/16.14 MAYBE 33.10/16.80 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 33.10/16.80 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 33.10/16.80 33.10/16.80 33.10/16.80 H-Termination with start terms of the given HASKELL could not be shown: 33.10/16.80 33.10/16.80 (0) HASKELL 33.10/16.80 (1) BR [EQUIVALENT, 0 ms] 33.10/16.80 (2) HASKELL 33.10/16.80 (3) COR [EQUIVALENT, 0 ms] 33.10/16.80 (4) HASKELL 33.10/16.80 (5) Narrow [SOUND, 0 ms] 33.10/16.80 (6) AND 33.10/16.80 (7) QDP 33.10/16.80 (8) DependencyGraphProof [EQUIVALENT, 0 ms] 33.10/16.80 (9) QDP 33.10/16.80 (10) TransformationProof [EQUIVALENT, 0 ms] 33.10/16.80 (11) QDP 33.10/16.80 (12) UsableRulesProof [EQUIVALENT, 0 ms] 33.10/16.80 (13) QDP 33.10/16.80 (14) QReductionProof [EQUIVALENT, 0 ms] 33.10/16.80 (15) QDP 33.10/16.80 (16) MNOCProof [EQUIVALENT, 0 ms] 33.10/16.80 (17) QDP 33.10/16.80 (18) InductionCalculusProof [EQUIVALENT, 0 ms] 33.10/16.80 (19) QDP 33.10/16.80 (20) TransformationProof [EQUIVALENT, 0 ms] 33.10/16.80 (21) QDP 33.10/16.80 (22) DependencyGraphProof [EQUIVALENT, 0 ms] 33.10/16.80 (23) QDP 33.10/16.80 (24) TransformationProof [EQUIVALENT, 0 ms] 33.10/16.80 (25) QDP 33.10/16.80 (26) DependencyGraphProof [EQUIVALENT, 0 ms] 33.40/16.81 (27) QDP 33.40/16.81 (28) TransformationProof [EQUIVALENT, 0 ms] 33.40/16.81 (29) QDP 33.40/16.81 (30) DependencyGraphProof [EQUIVALENT, 0 ms] 33.40/16.81 (31) QDP 33.40/16.81 (32) TransformationProof [EQUIVALENT, 0 ms] 33.40/16.81 (33) QDP 33.40/16.81 (34) DependencyGraphProof [EQUIVALENT, 0 ms] 33.40/16.81 (35) QDP 33.40/16.81 (36) MNOCProof [EQUIVALENT, 0 ms] 33.40/16.81 (37) QDP 33.40/16.81 (38) InductionCalculusProof [EQUIVALENT, 0 ms] 33.40/16.81 (39) QDP 33.40/16.81 (40) QDP 33.40/16.81 (41) QDPOrderProof [EQUIVALENT, 8 ms] 33.40/16.81 (42) QDP 33.40/16.81 (43) DependencyGraphProof [EQUIVALENT, 0 ms] 33.40/16.81 (44) QDP 33.40/16.81 (45) QDPSizeChangeProof [EQUIVALENT, 0 ms] 33.40/16.81 (46) YES 33.40/16.81 (47) QDP 33.40/16.81 (48) DependencyGraphProof [EQUIVALENT, 0 ms] 33.40/16.81 (49) QDP 33.40/16.81 (50) QDPOrderProof [EQUIVALENT, 0 ms] 33.40/16.81 (51) QDP 33.40/16.81 (52) DependencyGraphProof [EQUIVALENT, 0 ms] 33.40/16.81 (53) QDP 33.40/16.81 (54) QDPSizeChangeProof [EQUIVALENT, 0 ms] 33.40/16.81 (55) YES 33.40/16.81 (56) QDP 33.40/16.81 (57) QDPSizeChangeProof [EQUIVALENT, 0 ms] 33.40/16.81 (58) YES 33.40/16.81 (59) Narrow [COMPLETE, 0 ms] 33.40/16.81 (60) TRUE 33.40/16.81 33.40/16.81 33.40/16.81 ---------------------------------------- 33.40/16.81 33.40/16.81 (0) 33.40/16.81 Obligation: 33.40/16.81 mainModule Main 33.40/16.81 module Main where { 33.40/16.81 import qualified Prelude; 33.40/16.81 data Main.Char = Char MyInt ; 33.40/16.81 33.40/16.81 data List a = Cons a (List a) | Nil ; 33.40/16.81 33.40/16.81 data MyBool = MyTrue | MyFalse ; 33.40/16.81 33.40/16.81 data MyInt = Pos Main.Nat | Neg Main.Nat ; 33.40/16.81 33.40/16.81 data Main.Nat = Succ Main.Nat | Zero ; 33.40/16.81 33.40/16.81 data Ordering = LT | EQ | GT ; 33.40/16.81 33.40/16.81 data Ratio a = CnPc a a ; 33.40/16.81 33.40/16.81 compareMyInt :: MyInt -> MyInt -> Ordering; 33.40/16.81 compareMyInt = primCmpInt; 33.40/16.81 33.40/16.81 divMyInt :: MyInt -> MyInt -> MyInt; 33.40/16.81 divMyInt = primDivInt; 33.40/16.81 33.40/16.81 error :: a; 33.40/16.81 error = stop MyTrue; 33.40/16.81 33.40/16.81 esEsOrdering :: Ordering -> Ordering -> MyBool; 33.40/16.81 esEsOrdering LT LT = MyTrue; 33.40/16.81 esEsOrdering LT EQ = MyFalse; 33.40/16.81 esEsOrdering LT GT = MyFalse; 33.40/16.81 esEsOrdering EQ LT = MyFalse; 33.40/16.81 esEsOrdering EQ EQ = MyTrue; 33.40/16.81 esEsOrdering EQ GT = MyFalse; 33.40/16.81 esEsOrdering GT LT = MyFalse; 33.40/16.81 esEsOrdering GT EQ = MyFalse; 33.40/16.81 esEsOrdering GT GT = MyTrue; 33.40/16.81 33.40/16.81 gtMyInt :: MyInt -> MyInt -> MyBool; 33.40/16.81 gtMyInt x y = esEsOrdering (compareMyInt x y) GT; 33.40/16.81 33.40/16.81 modMyInt :: MyInt -> MyInt -> MyInt; 33.40/16.81 modMyInt = primModInt; 33.40/16.81 33.40/16.81 primCmpInt :: MyInt -> MyInt -> Ordering; 33.40/16.81 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 33.40/16.81 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 33.40/16.81 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 33.40/16.81 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 33.40/16.81 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 33.40/16.81 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 33.40/16.81 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 33.40/16.81 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 33.40/16.81 33.40/16.81 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 33.40/16.81 primCmpNat Main.Zero Main.Zero = EQ; 33.40/16.81 primCmpNat Main.Zero (Main.Succ y) = LT; 33.40/16.81 primCmpNat (Main.Succ x) Main.Zero = GT; 33.40/16.81 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 33.40/16.81 33.40/16.81 primDivInt :: MyInt -> MyInt -> MyInt; 33.40/16.81 primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 33.40/16.81 primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 33.40/16.81 primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 33.40/16.81 primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 33.40/16.81 primDivInt vy vz = Main.error; 33.40/16.81 33.40/16.81 primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primDivNatP Main.Zero Main.Zero = Main.error; 33.40/16.81 primDivNatP (Main.Succ x) Main.Zero = Main.error; 33.40/16.81 primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); 33.40/16.81 primDivNatP Main.Zero (Main.Succ x) = Main.Zero; 33.40/16.81 33.40/16.81 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primDivNatS Main.Zero Main.Zero = Main.error; 33.40/16.81 primDivNatS (Main.Succ x) Main.Zero = Main.error; 33.40/16.81 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 33.40/16.81 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 33.40/16.81 33.40/16.81 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 33.40/16.81 primDivNatS0 x y MyFalse = Main.Zero; 33.40/16.81 33.40/16.81 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 33.40/16.81 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 33.40/16.81 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 33.40/16.81 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 33.40/16.81 primGEqNatS Main.Zero Main.Zero = MyTrue; 33.40/16.81 33.40/16.81 primIntToChar :: MyInt -> Main.Char; 33.40/16.81 primIntToChar x = Main.Char x; 33.40/16.81 33.40/16.81 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 33.40/16.81 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 33.40/16.81 primMinusNatS x Main.Zero = x; 33.40/16.81 33.40/16.81 primModInt :: MyInt -> MyInt -> MyInt; 33.40/16.81 primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 33.40/16.81 primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); 33.40/16.81 primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); 33.40/16.81 primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 33.40/16.81 primModInt vw vx = Main.error; 33.40/16.81 33.40/16.81 primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primModNatP Main.Zero Main.Zero = Main.error; 33.40/16.81 primModNatP Main.Zero (Main.Succ x) = Main.Zero; 33.40/16.81 primModNatP (Main.Succ x) Main.Zero = Main.error; 33.40/16.81 primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 33.40/16.81 primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); 33.40/16.81 33.40/16.81 primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 33.40/16.81 primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; 33.40/16.81 33.40/16.81 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primModNatS Main.Zero Main.Zero = Main.error; 33.40/16.81 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 33.40/16.81 primModNatS (Main.Succ x) Main.Zero = Main.error; 33.40/16.81 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 33.40/16.81 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 33.40/16.81 33.40/16.81 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 33.40/16.81 primModNatS0 x y MyFalse = Main.Succ x; 33.40/16.81 33.40/16.81 primShowInt :: MyInt -> List Main.Char; 33.40/16.81 primShowInt (Main.Pos 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.Zero)))))))))))))))))))))))))))))))))))))))))))))))))) Nil; 33.40/16.81 primShowInt (Main.Pos (Main.Succ x)) = psPs (primShowInt (divMyInt (Main.Pos (Main.Succ x)) (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))) (Cons (toEnumChar (modMyInt (Main.Pos (Main.Succ x)) (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))) Nil); 33.40/16.81 primShowInt (Main.Neg x) = 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.Zero))))))))))))))))))))))))))))))))))))))))))))))) (primShowInt (Main.Pos x)); 33.40/16.81 33.40/16.81 psPs :: List a -> List a -> List a; 33.40/16.81 psPs Nil ys = ys; 33.40/16.81 psPs (Cons x xs) ys = Cons x (psPs xs ys); 33.40/16.81 33.40/16.81 pt :: (a -> c) -> (b -> a) -> b -> c; 33.40/16.81 pt f g x = f (g x); 33.40/16.81 33.40/16.81 showChar :: Main.Char -> List Main.Char -> List Main.Char; 33.40/16.81 showChar = Cons; 33.40/16.81 33.40/16.81 showMyInt :: MyInt -> List Main.Char; 33.40/16.81 showMyInt = primShowInt; 33.40/16.81 33.40/16.81 showParen :: MyBool -> (List Main.Char -> List Main.Char) -> List Main.Char -> List Main.Char; 33.40/16.81 showParen b p = showParen0 p b; 33.40/16.81 33.40/16.81 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))))))))))))))))))))))))))))))))))))))))))))); 33.40/16.81 showParen0 p MyFalse = p; 33.40/16.81 33.40/16.81 showString :: List Main.Char -> List Main.Char -> List Main.Char; 33.40/16.81 showString = psPs; 33.40/16.81 33.40/16.81 showsMyInt :: MyInt -> List Main.Char -> List Main.Char; 33.40/16.81 showsMyInt = showsPrecMyInt (Main.Pos Main.Zero); 33.40/16.81 33.40/16.81 showsPrecMyInt :: MyInt -> MyInt -> List Main.Char -> List Main.Char; 33.40/16.81 showsPrecMyInt vv x s = psPs (showMyInt x) s; 33.40/16.81 33.40/16.81 showsPrecRatio :: MyInt -> Ratio MyInt -> List Main.Char -> List Main.Char; 33.40/16.81 showsPrecRatio p (CnPc x y) = showParen (gtMyInt p (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))) (pt (showsMyInt x) (pt (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.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.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)))) (showsMyInt y))); 33.40/16.81 33.40/16.81 stop :: MyBool -> a; 33.40/16.81 stop MyFalse = stop MyFalse; 33.40/16.81 33.40/16.81 toEnumChar :: MyInt -> Main.Char; 33.40/16.81 toEnumChar = primIntToChar; 33.40/16.81 33.40/16.81 } 33.40/16.81 33.40/16.81 ---------------------------------------- 33.40/16.81 33.40/16.81 (1) BR (EQUIVALENT) 33.40/16.81 Replaced joker patterns by fresh variables and removed binding patterns. 33.40/16.81 ---------------------------------------- 33.40/16.81 33.40/16.81 (2) 33.40/16.81 Obligation: 33.40/16.81 mainModule Main 33.40/16.81 module Main where { 33.40/16.81 import qualified Prelude; 33.40/16.81 data Main.Char = Char MyInt ; 33.40/16.81 33.40/16.81 data List a = Cons a (List a) | Nil ; 33.40/16.81 33.40/16.81 data MyBool = MyTrue | MyFalse ; 33.40/16.81 33.40/16.81 data MyInt = Pos Main.Nat | Neg Main.Nat ; 33.40/16.81 33.40/16.81 data Main.Nat = Succ Main.Nat | Zero ; 33.40/16.81 33.40/16.81 data Ordering = LT | EQ | GT ; 33.40/16.81 33.40/16.81 data Ratio a = CnPc a a ; 33.40/16.81 33.40/16.81 compareMyInt :: MyInt -> MyInt -> Ordering; 33.40/16.81 compareMyInt = primCmpInt; 33.40/16.81 33.40/16.81 divMyInt :: MyInt -> MyInt -> MyInt; 33.40/16.81 divMyInt = primDivInt; 33.40/16.81 33.40/16.81 error :: a; 33.40/16.81 error = stop MyTrue; 33.40/16.81 33.40/16.81 esEsOrdering :: Ordering -> Ordering -> MyBool; 33.40/16.81 esEsOrdering LT LT = MyTrue; 33.40/16.81 esEsOrdering LT EQ = MyFalse; 33.40/16.81 esEsOrdering LT GT = MyFalse; 33.40/16.81 esEsOrdering EQ LT = MyFalse; 33.40/16.81 esEsOrdering EQ EQ = MyTrue; 33.40/16.81 esEsOrdering EQ GT = MyFalse; 33.40/16.81 esEsOrdering GT LT = MyFalse; 33.40/16.81 esEsOrdering GT EQ = MyFalse; 33.40/16.81 esEsOrdering GT GT = MyTrue; 33.40/16.81 33.40/16.81 gtMyInt :: MyInt -> MyInt -> MyBool; 33.40/16.81 gtMyInt x y = esEsOrdering (compareMyInt x y) GT; 33.40/16.81 33.40/16.81 modMyInt :: MyInt -> MyInt -> MyInt; 33.40/16.81 modMyInt = primModInt; 33.40/16.81 33.40/16.81 primCmpInt :: MyInt -> MyInt -> Ordering; 33.40/16.81 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 33.40/16.81 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 33.40/16.81 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 33.40/16.81 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 33.40/16.81 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 33.40/16.81 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 33.40/16.81 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 33.40/16.81 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 33.40/16.81 33.40/16.81 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 33.40/16.81 primCmpNat Main.Zero Main.Zero = EQ; 33.40/16.81 primCmpNat Main.Zero (Main.Succ y) = LT; 33.40/16.81 primCmpNat (Main.Succ x) Main.Zero = GT; 33.40/16.81 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 33.40/16.81 33.40/16.81 primDivInt :: MyInt -> MyInt -> MyInt; 33.40/16.81 primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 33.40/16.81 primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 33.40/16.81 primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 33.40/16.81 primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 33.40/16.81 primDivInt vy vz = Main.error; 33.40/16.81 33.40/16.81 primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primDivNatP Main.Zero Main.Zero = Main.error; 33.40/16.81 primDivNatP (Main.Succ x) Main.Zero = Main.error; 33.40/16.81 primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); 33.40/16.81 primDivNatP Main.Zero (Main.Succ x) = Main.Zero; 33.40/16.81 33.40/16.81 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primDivNatS Main.Zero Main.Zero = Main.error; 33.40/16.81 primDivNatS (Main.Succ x) Main.Zero = Main.error; 33.40/16.81 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 33.40/16.81 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 33.40/16.81 33.40/16.81 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 33.40/16.81 primDivNatS0 x y MyFalse = Main.Zero; 33.40/16.81 33.40/16.81 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 33.40/16.81 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 33.40/16.81 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 33.40/16.81 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 33.40/16.81 primGEqNatS Main.Zero Main.Zero = MyTrue; 33.40/16.81 33.40/16.81 primIntToChar :: MyInt -> Main.Char; 33.40/16.81 primIntToChar x = Main.Char x; 33.40/16.81 33.40/16.81 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 33.40/16.81 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 33.40/16.81 primMinusNatS x Main.Zero = x; 33.40/16.81 33.40/16.81 primModInt :: MyInt -> MyInt -> MyInt; 33.40/16.81 primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 33.40/16.81 primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); 33.40/16.81 primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); 33.40/16.81 primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 33.40/16.81 primModInt vw vx = Main.error; 33.40/16.81 33.40/16.81 primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primModNatP Main.Zero Main.Zero = Main.error; 33.40/16.81 primModNatP Main.Zero (Main.Succ x) = Main.Zero; 33.40/16.81 primModNatP (Main.Succ x) Main.Zero = Main.error; 33.40/16.81 primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 33.40/16.81 primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); 33.40/16.81 33.40/16.81 primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 33.40/16.81 primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; 33.40/16.81 33.40/16.81 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primModNatS Main.Zero Main.Zero = Main.error; 33.40/16.81 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 33.40/16.81 primModNatS (Main.Succ x) Main.Zero = Main.error; 33.40/16.81 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 33.40/16.81 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 33.40/16.81 33.40/16.81 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 33.40/16.81 primModNatS0 x y MyFalse = Main.Succ x; 33.40/16.81 33.40/16.81 primShowInt :: MyInt -> List Main.Char; 33.40/16.81 primShowInt (Main.Pos 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.Zero)))))))))))))))))))))))))))))))))))))))))))))))))) Nil; 33.40/16.81 primShowInt (Main.Pos (Main.Succ x)) = psPs (primShowInt (divMyInt (Main.Pos (Main.Succ x)) (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))) (Cons (toEnumChar (modMyInt (Main.Pos (Main.Succ x)) (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))) Nil); 33.40/16.81 primShowInt (Main.Neg x) = 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.Zero))))))))))))))))))))))))))))))))))))))))))))))) (primShowInt (Main.Pos x)); 33.40/16.81 33.40/16.81 psPs :: List a -> List a -> List a; 33.40/16.81 psPs Nil ys = ys; 33.40/16.81 psPs (Cons x xs) ys = Cons x (psPs xs ys); 33.40/16.81 33.40/16.81 pt :: (c -> a) -> (b -> c) -> b -> a; 33.40/16.81 pt f g x = f (g x); 33.40/16.81 33.40/16.81 showChar :: Main.Char -> List Main.Char -> List Main.Char; 33.40/16.81 showChar = Cons; 33.40/16.81 33.40/16.81 showMyInt :: MyInt -> List Main.Char; 33.40/16.81 showMyInt = primShowInt; 33.40/16.81 33.40/16.81 showParen :: MyBool -> (List Main.Char -> List Main.Char) -> List Main.Char -> List Main.Char; 33.40/16.81 showParen b p = showParen0 p b; 33.40/16.81 33.40/16.81 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))))))))))))))))))))))))))))))))))))))))))))); 33.40/16.81 showParen0 p MyFalse = p; 33.40/16.81 33.40/16.81 showString :: List Main.Char -> List Main.Char -> List Main.Char; 33.40/16.81 showString = psPs; 33.40/16.81 33.40/16.81 showsMyInt :: MyInt -> List Main.Char -> List Main.Char; 33.40/16.81 showsMyInt = showsPrecMyInt (Main.Pos Main.Zero); 33.40/16.81 33.40/16.81 showsPrecMyInt :: MyInt -> MyInt -> List Main.Char -> List Main.Char; 33.40/16.81 showsPrecMyInt vv x s = psPs (showMyInt x) s; 33.40/16.81 33.40/16.81 showsPrecRatio :: MyInt -> Ratio MyInt -> List Main.Char -> List Main.Char; 33.40/16.81 showsPrecRatio p (CnPc x y) = showParen (gtMyInt p (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))) (pt (showsMyInt x) (pt (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.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.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)))) (showsMyInt y))); 33.40/16.81 33.40/16.81 stop :: MyBool -> a; 33.40/16.81 stop MyFalse = stop MyFalse; 33.40/16.81 33.40/16.81 toEnumChar :: MyInt -> Main.Char; 33.40/16.81 toEnumChar = primIntToChar; 33.40/16.81 33.40/16.81 } 33.40/16.81 33.40/16.81 ---------------------------------------- 33.40/16.81 33.40/16.81 (3) COR (EQUIVALENT) 33.40/16.81 Cond Reductions: 33.40/16.81 The following Function with conditions 33.40/16.81 "undefined |Falseundefined; 33.40/16.81 " 33.40/16.81 is transformed to 33.40/16.81 "undefined = undefined1; 33.40/16.81 " 33.40/16.81 "undefined0 True = undefined; 33.40/16.81 " 33.40/16.81 "undefined1 = undefined0 False; 33.40/16.81 " 33.40/16.81 33.40/16.81 ---------------------------------------- 33.40/16.81 33.40/16.81 (4) 33.40/16.81 Obligation: 33.40/16.81 mainModule Main 33.40/16.81 module Main where { 33.40/16.81 import qualified Prelude; 33.40/16.81 data Main.Char = Char MyInt ; 33.40/16.81 33.40/16.81 data List a = Cons a (List a) | Nil ; 33.40/16.81 33.40/16.81 data MyBool = MyTrue | MyFalse ; 33.40/16.81 33.40/16.81 data MyInt = Pos Main.Nat | Neg Main.Nat ; 33.40/16.81 33.40/16.81 data Main.Nat = Succ Main.Nat | Zero ; 33.40/16.81 33.40/16.81 data Ordering = LT | EQ | GT ; 33.40/16.81 33.40/16.81 data Ratio a = CnPc a a ; 33.40/16.81 33.40/16.81 compareMyInt :: MyInt -> MyInt -> Ordering; 33.40/16.81 compareMyInt = primCmpInt; 33.40/16.81 33.40/16.81 divMyInt :: MyInt -> MyInt -> MyInt; 33.40/16.81 divMyInt = primDivInt; 33.40/16.81 33.40/16.81 error :: a; 33.40/16.81 error = stop MyTrue; 33.40/16.81 33.40/16.81 esEsOrdering :: Ordering -> Ordering -> MyBool; 33.40/16.81 esEsOrdering LT LT = MyTrue; 33.40/16.81 esEsOrdering LT EQ = MyFalse; 33.40/16.81 esEsOrdering LT GT = MyFalse; 33.40/16.81 esEsOrdering EQ LT = MyFalse; 33.40/16.81 esEsOrdering EQ EQ = MyTrue; 33.40/16.81 esEsOrdering EQ GT = MyFalse; 33.40/16.81 esEsOrdering GT LT = MyFalse; 33.40/16.81 esEsOrdering GT EQ = MyFalse; 33.40/16.81 esEsOrdering GT GT = MyTrue; 33.40/16.81 33.40/16.81 gtMyInt :: MyInt -> MyInt -> MyBool; 33.40/16.81 gtMyInt x y = esEsOrdering (compareMyInt x y) GT; 33.40/16.81 33.40/16.81 modMyInt :: MyInt -> MyInt -> MyInt; 33.40/16.81 modMyInt = primModInt; 33.40/16.81 33.40/16.81 primCmpInt :: MyInt -> MyInt -> Ordering; 33.40/16.81 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 33.40/16.81 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 33.40/16.81 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 33.40/16.81 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 33.40/16.81 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 33.40/16.81 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 33.40/16.81 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 33.40/16.81 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 33.40/16.81 33.40/16.81 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 33.40/16.81 primCmpNat Main.Zero Main.Zero = EQ; 33.40/16.81 primCmpNat Main.Zero (Main.Succ y) = LT; 33.40/16.81 primCmpNat (Main.Succ x) Main.Zero = GT; 33.40/16.81 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 33.40/16.81 33.40/16.81 primDivInt :: MyInt -> MyInt -> MyInt; 33.40/16.81 primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 33.40/16.81 primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 33.40/16.81 primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 33.40/16.81 primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 33.40/16.81 primDivInt vy vz = Main.error; 33.40/16.81 33.40/16.81 primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primDivNatP Main.Zero Main.Zero = Main.error; 33.40/16.81 primDivNatP (Main.Succ x) Main.Zero = Main.error; 33.40/16.81 primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); 33.40/16.81 primDivNatP Main.Zero (Main.Succ x) = Main.Zero; 33.40/16.81 33.40/16.81 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primDivNatS Main.Zero Main.Zero = Main.error; 33.40/16.81 primDivNatS (Main.Succ x) Main.Zero = Main.error; 33.40/16.81 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 33.40/16.81 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 33.40/16.81 33.40/16.81 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 33.40/16.81 primDivNatS0 x y MyFalse = Main.Zero; 33.40/16.81 33.40/16.81 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 33.40/16.81 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 33.40/16.81 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 33.40/16.81 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 33.40/16.81 primGEqNatS Main.Zero Main.Zero = MyTrue; 33.40/16.81 33.40/16.81 primIntToChar :: MyInt -> Main.Char; 33.40/16.81 primIntToChar x = Main.Char x; 33.40/16.81 33.40/16.81 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 33.40/16.81 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 33.40/16.81 primMinusNatS x Main.Zero = x; 33.40/16.81 33.40/16.81 primModInt :: MyInt -> MyInt -> MyInt; 33.40/16.81 primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 33.40/16.81 primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); 33.40/16.81 primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); 33.40/16.81 primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 33.40/16.81 primModInt vw vx = Main.error; 33.40/16.81 33.40/16.81 primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primModNatP Main.Zero Main.Zero = Main.error; 33.40/16.81 primModNatP Main.Zero (Main.Succ x) = Main.Zero; 33.40/16.81 primModNatP (Main.Succ x) Main.Zero = Main.error; 33.40/16.81 primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 33.40/16.81 primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); 33.40/16.81 33.40/16.81 primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 33.40/16.81 primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; 33.40/16.81 33.40/16.81 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.40/16.81 primModNatS Main.Zero Main.Zero = Main.error; 33.40/16.81 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 33.40/16.81 primModNatS (Main.Succ x) Main.Zero = Main.error; 33.40/16.81 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 33.40/16.81 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 33.40/16.81 33.40/16.81 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 33.40/16.81 primModNatS0 x y MyFalse = Main.Succ x; 33.40/16.81 33.40/16.81 primShowInt :: MyInt -> List Main.Char; 33.40/16.81 primShowInt (Main.Pos 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.Zero)))))))))))))))))))))))))))))))))))))))))))))))))) Nil; 33.40/16.81 primShowInt (Main.Pos (Main.Succ x)) = psPs (primShowInt (divMyInt (Main.Pos (Main.Succ x)) (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))) (Cons (toEnumChar (modMyInt (Main.Pos (Main.Succ x)) (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))) Nil); 33.40/16.81 primShowInt (Main.Neg x) = 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.Zero))))))))))))))))))))))))))))))))))))))))))))))) (primShowInt (Main.Pos x)); 33.40/16.81 33.40/16.81 psPs :: List a -> List a -> List a; 33.40/16.81 psPs Nil ys = ys; 33.40/16.81 psPs (Cons x xs) ys = Cons x (psPs xs ys); 33.40/16.81 33.40/16.81 pt :: (a -> b) -> (c -> a) -> c -> b; 33.40/16.81 pt f g x = f (g x); 33.40/16.81 33.40/16.81 showChar :: Main.Char -> List Main.Char -> List Main.Char; 33.40/16.81 showChar = Cons; 33.40/16.81 33.40/16.81 showMyInt :: MyInt -> List Main.Char; 33.40/16.81 showMyInt = primShowInt; 33.40/16.81 33.40/16.81 showParen :: MyBool -> (List Main.Char -> List Main.Char) -> List Main.Char -> List Main.Char; 33.40/16.81 showParen b p = showParen0 p b; 33.40/16.81 33.40/16.81 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))))))))))))))))))))))))))))))))))))))))))))); 33.40/16.81 showParen0 p MyFalse = p; 33.40/16.81 33.40/16.81 showString :: List Main.Char -> List Main.Char -> List Main.Char; 33.40/16.81 showString = psPs; 33.40/16.81 33.40/16.81 showsMyInt :: MyInt -> List Main.Char -> List Main.Char; 33.40/16.81 showsMyInt = showsPrecMyInt (Main.Pos Main.Zero); 33.40/16.81 33.40/16.81 showsPrecMyInt :: MyInt -> MyInt -> List Main.Char -> List Main.Char; 33.40/16.81 showsPrecMyInt vv x s = psPs (showMyInt x) s; 33.40/16.81 33.40/16.81 showsPrecRatio :: MyInt -> Ratio MyInt -> List Main.Char -> List Main.Char; 33.40/16.81 showsPrecRatio p (CnPc x y) = showParen (gtMyInt p (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))) (pt (showsMyInt x) (pt (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.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.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)))) (showsMyInt y))); 33.40/16.81 33.40/16.81 stop :: MyBool -> a; 33.40/16.81 stop MyFalse = stop MyFalse; 33.40/16.81 33.40/16.81 toEnumChar :: MyInt -> Main.Char; 33.40/16.81 toEnumChar = primIntToChar; 33.40/16.81 33.40/16.81 } 33.40/16.81 33.40/16.81 ---------------------------------------- 33.40/16.81 33.40/16.81 (5) Narrow (SOUND) 33.40/16.81 Haskell To QDPs 33.40/16.81 33.40/16.81 digraph dp_graph { 33.40/16.81 node [outthreshold=100, inthreshold=100];1[label="showsPrecRatio",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 33.40/16.81 3[label="showsPrecRatio ww3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 33.40/16.81 4[label="showsPrecRatio ww3 ww4",fontsize=16,color="grey",shape="box"];4 -> 5[label="",style="dashed", color="grey", weight=3]; 33.40/16.81 5[label="showsPrecRatio ww3 ww4 ww5",fontsize=16,color="burlywood",shape="triangle"];1389[label="ww4/CnPc ww40 ww41",fontsize=10,color="white",style="solid",shape="box"];5 -> 1389[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1389 -> 6[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 6[label="showsPrecRatio ww3 (CnPc ww40 ww41) ww5",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 33.40/16.81 7 -> 27[label="",style="dashed", color="red", weight=0]; 33.40/16.81 7[label="showParen (gtMyInt ww3 (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) (pt (showsMyInt ww40) (pt (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 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 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)))) (showsMyInt ww41))) ww5",fontsize=16,color="magenta"];7 -> 28[label="",style="dashed", color="magenta", weight=3]; 33.40/16.81 7 -> 29[label="",style="dashed", color="magenta", weight=3]; 33.40/16.81 7 -> 30[label="",style="dashed", color="magenta", weight=3]; 33.40/16.81 7 -> 31[label="",style="dashed", color="magenta", weight=3]; 33.40/16.81 7 -> 32[label="",style="dashed", color="magenta", weight=3]; 33.40/16.81 7 -> 33[label="",style="dashed", color="magenta", weight=3]; 33.40/16.81 7 -> 34[label="",style="dashed", color="magenta", weight=3]; 33.40/16.81 28[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"];29[label="ww40",fontsize=16,color="green",shape="box"];30[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 Zero)))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];31[label="ww5",fontsize=16,color="green",shape="box"];32[label="ww41",fontsize=16,color="green",shape="box"];33[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"];34[label="ww3",fontsize=16,color="green",shape="box"];27[label="showParen (gtMyInt ww20 (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) ww26",fontsize=16,color="black",shape="triangle"];27 -> 42[label="",style="solid", color="black", weight=3]; 33.40/16.81 42[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (gtMyInt ww20 (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) ww26",fontsize=16,color="black",shape="box"];42 -> 43[label="",style="solid", color="black", weight=3]; 33.40/16.81 43[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (compareMyInt ww20 (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="black",shape="box"];43 -> 44[label="",style="solid", color="black", weight=3]; 33.40/16.81 44[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt ww20 (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1390[label="ww20/Pos ww200",fontsize=10,color="white",style="solid",shape="box"];44 -> 1390[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1390 -> 45[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 1391[label="ww20/Neg ww200",fontsize=10,color="white",style="solid",shape="box"];44 -> 1391[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1391 -> 46[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 45[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt (Pos ww200) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1392[label="ww200/Succ ww2000",fontsize=10,color="white",style="solid",shape="box"];45 -> 1392[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1392 -> 47[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 1393[label="ww200/Zero",fontsize=10,color="white",style="solid",shape="box"];45 -> 1393[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1393 -> 48[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 46[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt (Neg ww200) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1394[label="ww200/Succ ww2000",fontsize=10,color="white",style="solid",shape="box"];46 -> 1394[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1394 -> 49[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 1395[label="ww200/Zero",fontsize=10,color="white",style="solid",shape="box"];46 -> 1395[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1395 -> 50[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 47[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt (Pos (Succ ww2000)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="black",shape="box"];47 -> 51[label="",style="solid", color="black", weight=3]; 33.40/16.81 48[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="black",shape="box"];48 -> 52[label="",style="solid", color="black", weight=3]; 33.40/16.81 49[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt (Neg (Succ ww2000)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="black",shape="box"];49 -> 53[label="",style="solid", color="black", weight=3]; 33.40/16.81 50[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="black",shape="box"];50 -> 54[label="",style="solid", color="black", weight=3]; 33.40/16.81 51[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww2000) (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) GT) ww26",fontsize=16,color="black",shape="box"];51 -> 55[label="",style="solid", color="black", weight=3]; 33.40/16.81 52[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) GT) ww26",fontsize=16,color="black",shape="box"];52 -> 56[label="",style="solid", color="black", weight=3]; 33.40/16.81 53[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="black",shape="triangle"];53 -> 57[label="",style="solid", color="black", weight=3]; 33.40/16.81 54 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.81 54[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];55[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww2000 (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1396[label="ww2000/Succ ww20000",fontsize=10,color="white",style="solid",shape="box"];55 -> 1396[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1396 -> 58[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 1397[label="ww2000/Zero",fontsize=10,color="white",style="solid",shape="box"];55 -> 1397[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1397 -> 59[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 56 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.81 56[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];57[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) MyFalse ww26",fontsize=16,color="black",shape="triangle"];57 -> 60[label="",style="solid", color="black", weight=3]; 33.40/16.81 58[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww20000) (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) GT) ww26",fontsize=16,color="black",shape="box"];58 -> 61[label="",style="solid", color="black", weight=3]; 33.40/16.81 59[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) GT) ww26",fontsize=16,color="black",shape="box"];59 -> 62[label="",style="solid", color="black", weight=3]; 33.40/16.81 60[label="pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25)) ww26",fontsize=16,color="black",shape="triangle"];60 -> 63[label="",style="solid", color="black", weight=3]; 33.40/16.81 61[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww20000 (Succ (Succ (Succ (Succ (Succ Zero)))))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1398[label="ww20000/Succ ww200000",fontsize=10,color="white",style="solid",shape="box"];61 -> 1398[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1398 -> 64[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 1399[label="ww20000/Zero",fontsize=10,color="white",style="solid",shape="box"];61 -> 1399[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1399 -> 65[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 62 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.81 62[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];63[label="showsMyInt ww21 (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25) ww26)",fontsize=16,color="black",shape="box"];63 -> 66[label="",style="solid", color="black", weight=3]; 33.40/16.81 64[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww200000) (Succ (Succ (Succ (Succ (Succ Zero)))))) GT) ww26",fontsize=16,color="black",shape="box"];64 -> 67[label="",style="solid", color="black", weight=3]; 33.40/16.81 65[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ (Succ (Succ (Succ (Succ Zero)))))) GT) ww26",fontsize=16,color="black",shape="box"];65 -> 68[label="",style="solid", color="black", weight=3]; 33.40/16.81 66[label="showsPrecMyInt (Pos Zero) ww21 (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25) ww26)",fontsize=16,color="black",shape="box"];66 -> 69[label="",style="solid", color="black", weight=3]; 33.40/16.81 67[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww200000 (Succ (Succ (Succ (Succ Zero))))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1400[label="ww200000/Succ ww2000000",fontsize=10,color="white",style="solid",shape="box"];67 -> 1400[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1400 -> 70[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 1401[label="ww200000/Zero",fontsize=10,color="white",style="solid",shape="box"];67 -> 1401[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1401 -> 71[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 68 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.81 68[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];69 -> 400[label="",style="dashed", color="red", weight=0]; 33.40/16.81 69[label="psPs (showMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25) ww26)",fontsize=16,color="magenta"];69 -> 401[label="",style="dashed", color="magenta", weight=3]; 33.40/16.81 69 -> 402[label="",style="dashed", color="magenta", weight=3]; 33.40/16.81 70[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww2000000) (Succ (Succ (Succ (Succ Zero))))) GT) ww26",fontsize=16,color="black",shape="box"];70 -> 73[label="",style="solid", color="black", weight=3]; 33.40/16.81 71[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ (Succ (Succ (Succ Zero))))) GT) ww26",fontsize=16,color="black",shape="box"];71 -> 74[label="",style="solid", color="black", weight=3]; 33.40/16.81 401[label="pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25) ww26",fontsize=16,color="black",shape="box"];401 -> 552[label="",style="solid", color="black", weight=3]; 33.40/16.81 402[label="showMyInt ww21",fontsize=16,color="black",shape="triangle"];402 -> 553[label="",style="solid", color="black", weight=3]; 33.40/16.81 400[label="psPs ww141 ww59",fontsize=16,color="burlywood",shape="triangle"];1402[label="ww141/Cons ww1410 ww1411",fontsize=10,color="white",style="solid",shape="box"];400 -> 1402[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1402 -> 554[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 1403[label="ww141/Nil",fontsize=10,color="white",style="solid",shape="box"];400 -> 1403[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1403 -> 555[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 73[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww2000000 (Succ (Succ (Succ Zero)))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1404[label="ww2000000/Succ ww20000000",fontsize=10,color="white",style="solid",shape="box"];73 -> 1404[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1404 -> 77[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 1405[label="ww2000000/Zero",fontsize=10,color="white",style="solid",shape="box"];73 -> 1405[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1405 -> 78[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 74 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.81 74[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];552[label="showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil))) (showsMyInt ww25 ww26)",fontsize=16,color="black",shape="box"];552 -> 556[label="",style="solid", color="black", weight=3]; 33.40/16.81 553[label="primShowInt ww21",fontsize=16,color="burlywood",shape="triangle"];1406[label="ww21/Pos ww210",fontsize=10,color="white",style="solid",shape="box"];553 -> 1406[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1406 -> 557[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 1407[label="ww21/Neg ww210",fontsize=10,color="white",style="solid",shape="box"];553 -> 1407[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1407 -> 558[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 554[label="psPs (Cons ww1410 ww1411) ww59",fontsize=16,color="black",shape="box"];554 -> 559[label="",style="solid", color="black", weight=3]; 33.40/16.81 555[label="psPs Nil ww59",fontsize=16,color="black",shape="box"];555 -> 560[label="",style="solid", color="black", weight=3]; 33.40/16.81 77[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww20000000) (Succ (Succ (Succ Zero)))) GT) ww26",fontsize=16,color="black",shape="box"];77 -> 82[label="",style="solid", color="black", weight=3]; 33.40/16.81 78[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ (Succ (Succ Zero)))) GT) ww26",fontsize=16,color="black",shape="box"];78 -> 83[label="",style="solid", color="black", weight=3]; 33.40/16.81 556 -> 400[label="",style="dashed", color="red", weight=0]; 33.40/16.81 556[label="psPs (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil))) (showsMyInt ww25 ww26)",fontsize=16,color="magenta"];556 -> 561[label="",style="dashed", color="magenta", weight=3]; 33.40/16.81 556 -> 562[label="",style="dashed", color="magenta", weight=3]; 33.40/16.81 557[label="primShowInt (Pos ww210)",fontsize=16,color="burlywood",shape="box"];1408[label="ww210/Succ ww2100",fontsize=10,color="white",style="solid",shape="box"];557 -> 1408[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1408 -> 563[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 1409[label="ww210/Zero",fontsize=10,color="white",style="solid",shape="box"];557 -> 1409[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1409 -> 564[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 558[label="primShowInt (Neg ww210)",fontsize=16,color="black",shape="box"];558 -> 565[label="",style="solid", color="black", weight=3]; 33.40/16.81 559[label="Cons ww1410 (psPs ww1411 ww59)",fontsize=16,color="green",shape="box"];559 -> 566[label="",style="dashed", color="green", weight=3]; 33.40/16.81 560[label="ww59",fontsize=16,color="green",shape="box"];82[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww20000000 (Succ (Succ Zero))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1410[label="ww20000000/Succ ww200000000",fontsize=10,color="white",style="solid",shape="box"];82 -> 1410[label="",style="solid", color="burlywood", weight=9]; 33.40/16.81 1410 -> 94[label="",style="solid", color="burlywood", weight=3]; 33.40/16.81 1411[label="ww20000000/Zero",fontsize=10,color="white",style="solid",shape="box"];82 -> 1411[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1411 -> 95[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 83 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.82 83[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];561[label="showsMyInt ww25 ww26",fontsize=16,color="black",shape="box"];561 -> 567[label="",style="solid", color="black", weight=3]; 33.40/16.82 562[label="Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil))",fontsize=16,color="green",shape="box"];563[label="primShowInt (Pos (Succ ww2100))",fontsize=16,color="black",shape="box"];563 -> 568[label="",style="solid", color="black", weight=3]; 33.40/16.82 564[label="primShowInt (Pos Zero)",fontsize=16,color="black",shape="box"];564 -> 569[label="",style="solid", color="black", weight=3]; 33.40/16.82 565[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 Zero))))))))))))))))))))))))))))))))))))))))))))))) (primShowInt (Pos ww210))",fontsize=16,color="green",shape="box"];565 -> 570[label="",style="dashed", color="green", weight=3]; 33.40/16.82 566 -> 400[label="",style="dashed", color="red", weight=0]; 33.40/16.82 566[label="psPs ww1411 ww59",fontsize=16,color="magenta"];566 -> 571[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 94[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww200000000) (Succ (Succ Zero))) GT) ww26",fontsize=16,color="black",shape="box"];94 -> 112[label="",style="solid", color="black", weight=3]; 33.40/16.82 95[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ (Succ Zero))) GT) ww26",fontsize=16,color="black",shape="box"];95 -> 113[label="",style="solid", color="black", weight=3]; 33.40/16.82 567[label="showsPrecMyInt (Pos Zero) ww25 ww26",fontsize=16,color="black",shape="box"];567 -> 572[label="",style="solid", color="black", weight=3]; 33.40/16.82 568 -> 400[label="",style="dashed", color="red", weight=0]; 33.40/16.82 568[label="psPs (primShowInt (divMyInt (Pos (Succ ww2100)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (Cons (toEnumChar (modMyInt (Pos (Succ ww2100)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil)",fontsize=16,color="magenta"];568 -> 573[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 568 -> 574[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 569[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 Zero)))))))))))))))))))))))))))))))))))))))))))))))))) Nil",fontsize=16,color="green",shape="box"];570 -> 553[label="",style="dashed", color="red", weight=0]; 33.40/16.82 570[label="primShowInt (Pos ww210)",fontsize=16,color="magenta"];570 -> 575[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 571[label="ww1411",fontsize=16,color="green",shape="box"];112[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww200000000 (Succ Zero)) GT) ww26",fontsize=16,color="burlywood",shape="box"];1412[label="ww200000000/Succ ww2000000000",fontsize=10,color="white",style="solid",shape="box"];112 -> 1412[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1412 -> 134[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1413[label="ww200000000/Zero",fontsize=10,color="white",style="solid",shape="box"];112 -> 1413[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1413 -> 135[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 113 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.82 113[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];572 -> 400[label="",style="dashed", color="red", weight=0]; 33.40/16.82 572[label="psPs (showMyInt ww25) ww26",fontsize=16,color="magenta"];572 -> 576[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 572 -> 577[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 573[label="Cons (toEnumChar (modMyInt (Pos (Succ ww2100)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil",fontsize=16,color="green",shape="box"];573 -> 578[label="",style="dashed", color="green", weight=3]; 33.40/16.82 574 -> 553[label="",style="dashed", color="red", weight=0]; 33.40/16.82 574[label="primShowInt (divMyInt (Pos (Succ ww2100)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];574 -> 579[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 575[label="Pos ww210",fontsize=16,color="green",shape="box"];134[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww2000000000) (Succ Zero)) GT) ww26",fontsize=16,color="black",shape="box"];134 -> 144[label="",style="solid", color="black", weight=3]; 33.40/16.82 135[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ Zero)) GT) ww26",fontsize=16,color="black",shape="box"];135 -> 145[label="",style="solid", color="black", weight=3]; 33.40/16.82 576[label="ww26",fontsize=16,color="green",shape="box"];577 -> 402[label="",style="dashed", color="red", weight=0]; 33.40/16.82 577[label="showMyInt ww25",fontsize=16,color="magenta"];577 -> 580[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 578 -> 581[label="",style="dashed", color="red", weight=0]; 33.40/16.82 578[label="toEnumChar (modMyInt (Pos (Succ ww2100)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];578 -> 582[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 578 -> 583[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 579 -> 584[label="",style="dashed", color="red", weight=0]; 33.40/16.82 579[label="divMyInt (Pos (Succ ww2100)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))",fontsize=16,color="magenta"];579 -> 585[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 579 -> 586[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 144[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww2000000000 Zero) GT) ww26",fontsize=16,color="burlywood",shape="box"];1414[label="ww2000000000/Succ ww20000000000",fontsize=10,color="white",style="solid",shape="box"];144 -> 1414[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1414 -> 148[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1415[label="ww2000000000/Zero",fontsize=10,color="white",style="solid",shape="box"];144 -> 1415[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1415 -> 149[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 145 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.82 145[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];580[label="ww25",fontsize=16,color="green",shape="box"];582[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];583[label="ww2100",fontsize=16,color="green",shape="box"];581[label="toEnumChar (modMyInt (Pos (Succ ww143)) (Pos (Succ ww144)))",fontsize=16,color="black",shape="triangle"];581 -> 587[label="",style="solid", color="black", weight=3]; 33.40/16.82 585[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];586[label="ww2100",fontsize=16,color="green",shape="box"];584[label="divMyInt (Pos (Succ ww146)) (Pos (Succ ww147))",fontsize=16,color="black",shape="triangle"];584 -> 588[label="",style="solid", color="black", weight=3]; 33.40/16.82 148[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww20000000000) Zero) GT) ww26",fontsize=16,color="black",shape="box"];148 -> 153[label="",style="solid", color="black", weight=3]; 33.40/16.82 149[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero Zero) GT) ww26",fontsize=16,color="black",shape="box"];149 -> 154[label="",style="solid", color="black", weight=3]; 33.40/16.82 587[label="primIntToChar (modMyInt (Pos (Succ ww143)) (Pos (Succ ww144)))",fontsize=16,color="black",shape="box"];587 -> 589[label="",style="solid", color="black", weight=3]; 33.40/16.82 588[label="primDivInt (Pos (Succ ww146)) (Pos (Succ ww147))",fontsize=16,color="black",shape="box"];588 -> 590[label="",style="solid", color="black", weight=3]; 33.40/16.82 153[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering GT GT) ww26",fontsize=16,color="black",shape="box"];153 -> 160[label="",style="solid", color="black", weight=3]; 33.40/16.82 154[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering EQ GT) ww26",fontsize=16,color="black",shape="box"];154 -> 161[label="",style="solid", color="black", weight=3]; 33.40/16.82 589[label="Char (modMyInt (Pos (Succ ww143)) (Pos (Succ ww144)))",fontsize=16,color="green",shape="box"];589 -> 591[label="",style="dashed", color="green", weight=3]; 33.40/16.82 590[label="Pos (primDivNatS (Succ ww146) (Succ ww147))",fontsize=16,color="green",shape="box"];590 -> 592[label="",style="dashed", color="green", weight=3]; 33.40/16.82 160[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) MyTrue ww26",fontsize=16,color="black",shape="box"];160 -> 167[label="",style="solid", color="black", weight=3]; 33.40/16.82 161 -> 57[label="",style="dashed", color="red", weight=0]; 33.40/16.82 161[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) MyFalse ww26",fontsize=16,color="magenta"];591[label="modMyInt (Pos (Succ ww143)) (Pos (Succ ww144))",fontsize=16,color="black",shape="box"];591 -> 593[label="",style="solid", color="black", weight=3]; 33.40/16.82 592[label="primDivNatS (Succ ww146) (Succ ww147)",fontsize=16,color="black",shape="triangle"];592 -> 594[label="",style="solid", color="black", weight=3]; 33.40/16.82 167 -> 211[label="",style="dashed", color="red", weight=0]; 33.40/16.82 167[label="pt (showChar (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 Zero))))))))))))))))))))))))))))))))))))))))))) (pt (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (showChar (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 Zero))))))))))))))))))))))))))))))))))))))))))))) ww26",fontsize=16,color="magenta"];167 -> 212[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 213[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 214[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 215[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 216[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 217[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 218[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 219[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 593[label="primModInt (Pos (Succ ww143)) (Pos (Succ ww144))",fontsize=16,color="black",shape="box"];593 -> 595[label="",style="solid", color="black", weight=3]; 33.40/16.82 594[label="primDivNatS0 ww146 ww147 (primGEqNatS ww146 ww147)",fontsize=16,color="burlywood",shape="box"];1416[label="ww146/Succ ww1460",fontsize=10,color="white",style="solid",shape="box"];594 -> 1416[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1416 -> 596[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1417[label="ww146/Zero",fontsize=10,color="white",style="solid",shape="box"];594 -> 1417[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1417 -> 597[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 212[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 Zero)))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];213[label="ww21",fontsize=16,color="green",shape="box"];214[label="ww22",fontsize=16,color="green",shape="box"];215[label="ww25",fontsize=16,color="green",shape="box"];216[label="ww23",fontsize=16,color="green",shape="box"];217[label="ww26",fontsize=16,color="green",shape="box"];218[label="ww24",fontsize=16,color="green",shape="box"];219[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 Zero))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];211[label="pt (showChar (Char (Pos (Succ ww72)))) (pt (pt (showsMyInt ww73) (pt (showString (Cons (Char (Pos (Succ ww74))) (Cons (Char (Pos (Succ ww75))) (Cons (Char (Pos (Succ ww76))) Nil)))) (showsMyInt ww77))) (showChar (Char (Pos (Succ ww78))))) ww79",fontsize=16,color="black",shape="triangle"];211 -> 228[label="",style="solid", color="black", weight=3]; 33.40/16.82 595[label="Pos (primModNatS (Succ ww143) (Succ ww144))",fontsize=16,color="green",shape="box"];595 -> 598[label="",style="dashed", color="green", weight=3]; 33.40/16.82 596[label="primDivNatS0 (Succ ww1460) ww147 (primGEqNatS (Succ ww1460) ww147)",fontsize=16,color="burlywood",shape="box"];1418[label="ww147/Succ ww1470",fontsize=10,color="white",style="solid",shape="box"];596 -> 1418[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1418 -> 599[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1419[label="ww147/Zero",fontsize=10,color="white",style="solid",shape="box"];596 -> 1419[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1419 -> 600[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 597[label="primDivNatS0 Zero ww147 (primGEqNatS Zero ww147)",fontsize=16,color="burlywood",shape="box"];1420[label="ww147/Succ ww1470",fontsize=10,color="white",style="solid",shape="box"];597 -> 1420[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1420 -> 601[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1421[label="ww147/Zero",fontsize=10,color="white",style="solid",shape="box"];597 -> 1421[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1421 -> 602[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 228[label="showChar (Char (Pos (Succ ww72))) (pt (pt (showsMyInt ww73) (pt (showString (Cons (Char (Pos (Succ ww74))) (Cons (Char (Pos (Succ ww75))) (Cons (Char (Pos (Succ ww76))) Nil)))) (showsMyInt ww77))) (showChar (Char (Pos (Succ ww78)))) ww79)",fontsize=16,color="black",shape="box"];228 -> 237[label="",style="solid", color="black", weight=3]; 33.40/16.82 598[label="primModNatS (Succ ww143) (Succ ww144)",fontsize=16,color="burlywood",shape="triangle"];1422[label="ww144/Succ ww1440",fontsize=10,color="white",style="solid",shape="box"];598 -> 1422[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1422 -> 603[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1423[label="ww144/Zero",fontsize=10,color="white",style="solid",shape="box"];598 -> 1423[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1423 -> 604[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 599[label="primDivNatS0 (Succ ww1460) (Succ ww1470) (primGEqNatS (Succ ww1460) (Succ ww1470))",fontsize=16,color="black",shape="box"];599 -> 605[label="",style="solid", color="black", weight=3]; 33.40/16.82 600[label="primDivNatS0 (Succ ww1460) Zero (primGEqNatS (Succ ww1460) Zero)",fontsize=16,color="black",shape="box"];600 -> 606[label="",style="solid", color="black", weight=3]; 33.40/16.82 601[label="primDivNatS0 Zero (Succ ww1470) (primGEqNatS Zero (Succ ww1470))",fontsize=16,color="black",shape="box"];601 -> 607[label="",style="solid", color="black", weight=3]; 33.40/16.82 602[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];602 -> 608[label="",style="solid", color="black", weight=3]; 33.40/16.82 237[label="Cons (Char (Pos (Succ ww72))) (pt (pt (showsMyInt ww73) (pt (showString (Cons (Char (Pos (Succ ww74))) (Cons (Char (Pos (Succ ww75))) (Cons (Char (Pos (Succ ww76))) Nil)))) (showsMyInt ww77))) (showChar (Char (Pos (Succ ww78)))) ww79)",fontsize=16,color="green",shape="box"];237 -> 256[label="",style="dashed", color="green", weight=3]; 33.40/16.82 603[label="primModNatS (Succ ww143) (Succ (Succ ww1440))",fontsize=16,color="black",shape="box"];603 -> 609[label="",style="solid", color="black", weight=3]; 33.40/16.82 604[label="primModNatS (Succ ww143) (Succ Zero)",fontsize=16,color="black",shape="box"];604 -> 610[label="",style="solid", color="black", weight=3]; 33.40/16.82 605 -> 1055[label="",style="dashed", color="red", weight=0]; 33.40/16.82 605[label="primDivNatS0 (Succ ww1460) (Succ ww1470) (primGEqNatS ww1460 ww1470)",fontsize=16,color="magenta"];605 -> 1056[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 605 -> 1057[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 605 -> 1058[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 605 -> 1059[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 606[label="primDivNatS0 (Succ ww1460) Zero MyTrue",fontsize=16,color="black",shape="box"];606 -> 613[label="",style="solid", color="black", weight=3]; 33.40/16.82 607[label="primDivNatS0 Zero (Succ ww1470) MyFalse",fontsize=16,color="black",shape="box"];607 -> 614[label="",style="solid", color="black", weight=3]; 33.40/16.82 608[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];608 -> 615[label="",style="solid", color="black", weight=3]; 33.40/16.82 256[label="pt (pt (showsMyInt ww73) (pt (showString (Cons (Char (Pos (Succ ww74))) (Cons (Char (Pos (Succ ww75))) (Cons (Char (Pos (Succ ww76))) Nil)))) (showsMyInt ww77))) (showChar (Char (Pos (Succ ww78)))) ww79",fontsize=16,color="black",shape="box"];256 -> 286[label="",style="solid", color="black", weight=3]; 33.40/16.82 609[label="primModNatS0 ww143 ww1440 (primGEqNatS ww143 (Succ ww1440))",fontsize=16,color="burlywood",shape="box"];1424[label="ww143/Succ ww1430",fontsize=10,color="white",style="solid",shape="box"];609 -> 1424[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1424 -> 616[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1425[label="ww143/Zero",fontsize=10,color="white",style="solid",shape="box"];609 -> 1425[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1425 -> 617[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 610[label="Zero",fontsize=16,color="green",shape="box"];1056[label="ww1470",fontsize=16,color="green",shape="box"];1057[label="ww1470",fontsize=16,color="green",shape="box"];1058[label="ww1460",fontsize=16,color="green",shape="box"];1059[label="ww1460",fontsize=16,color="green",shape="box"];1055[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS ww190 ww191)",fontsize=16,color="burlywood",shape="triangle"];1426[label="ww190/Succ ww1900",fontsize=10,color="white",style="solid",shape="box"];1055 -> 1426[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1426 -> 1096[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1427[label="ww190/Zero",fontsize=10,color="white",style="solid",shape="box"];1055 -> 1427[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1427 -> 1097[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 613[label="Succ (primDivNatS (primMinusNatS (Succ ww1460) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];613 -> 622[label="",style="dashed", color="green", weight=3]; 33.40/16.82 614[label="Zero",fontsize=16,color="green",shape="box"];615[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];615 -> 623[label="",style="dashed", color="green", weight=3]; 33.40/16.82 286 -> 60[label="",style="dashed", color="red", weight=0]; 33.40/16.82 286[label="pt (showsMyInt ww73) (pt (showString (Cons (Char (Pos (Succ ww74))) (Cons (Char (Pos (Succ ww75))) (Cons (Char (Pos (Succ ww76))) Nil)))) (showsMyInt ww77)) (showChar (Char (Pos (Succ ww78))) ww79)",fontsize=16,color="magenta"];286 -> 298[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 286 -> 299[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 286 -> 300[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 286 -> 301[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 286 -> 302[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 286 -> 303[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 616[label="primModNatS0 (Succ ww1430) ww1440 (primGEqNatS (Succ ww1430) (Succ ww1440))",fontsize=16,color="black",shape="box"];616 -> 624[label="",style="solid", color="black", weight=3]; 33.40/16.82 617[label="primModNatS0 Zero ww1440 (primGEqNatS Zero (Succ ww1440))",fontsize=16,color="black",shape="box"];617 -> 625[label="",style="solid", color="black", weight=3]; 33.40/16.82 1096[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS (Succ ww1900) ww191)",fontsize=16,color="burlywood",shape="box"];1428[label="ww191/Succ ww1910",fontsize=10,color="white",style="solid",shape="box"];1096 -> 1428[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1428 -> 1103[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1429[label="ww191/Zero",fontsize=10,color="white",style="solid",shape="box"];1096 -> 1429[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1429 -> 1104[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1097[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS Zero ww191)",fontsize=16,color="burlywood",shape="box"];1430[label="ww191/Succ ww1910",fontsize=10,color="white",style="solid",shape="box"];1097 -> 1430[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1430 -> 1105[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1431[label="ww191/Zero",fontsize=10,color="white",style="solid",shape="box"];1097 -> 1431[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1431 -> 1106[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 622 -> 1289[label="",style="dashed", color="red", weight=0]; 33.40/16.82 622[label="primDivNatS (primMinusNatS (Succ ww1460) Zero) (Succ Zero)",fontsize=16,color="magenta"];622 -> 1290[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 622 -> 1291[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 622 -> 1292[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 623 -> 1289[label="",style="dashed", color="red", weight=0]; 33.40/16.82 623[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];623 -> 1293[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 623 -> 1294[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 623 -> 1295[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 298[label="ww74",fontsize=16,color="green",shape="box"];299[label="ww73",fontsize=16,color="green",shape="box"];300[label="ww75",fontsize=16,color="green",shape="box"];301[label="showChar (Char (Pos (Succ ww78))) ww79",fontsize=16,color="black",shape="box"];301 -> 325[label="",style="solid", color="black", weight=3]; 33.40/16.82 302[label="ww77",fontsize=16,color="green",shape="box"];303[label="ww76",fontsize=16,color="green",shape="box"];624[label="primModNatS0 (Succ ww1430) ww1440 (primGEqNatS ww1430 ww1440)",fontsize=16,color="burlywood",shape="box"];1432[label="ww1430/Succ ww14300",fontsize=10,color="white",style="solid",shape="box"];624 -> 1432[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1432 -> 632[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1433[label="ww1430/Zero",fontsize=10,color="white",style="solid",shape="box"];624 -> 1433[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1433 -> 633[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 625[label="primModNatS0 Zero ww1440 MyFalse",fontsize=16,color="black",shape="box"];625 -> 634[label="",style="solid", color="black", weight=3]; 33.40/16.82 1103[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS (Succ ww1900) (Succ ww1910))",fontsize=16,color="black",shape="box"];1103 -> 1113[label="",style="solid", color="black", weight=3]; 33.40/16.82 1104[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS (Succ ww1900) Zero)",fontsize=16,color="black",shape="box"];1104 -> 1114[label="",style="solid", color="black", weight=3]; 33.40/16.82 1105[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS Zero (Succ ww1910))",fontsize=16,color="black",shape="box"];1105 -> 1115[label="",style="solid", color="black", weight=3]; 33.40/16.82 1106[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1106 -> 1116[label="",style="solid", color="black", weight=3]; 33.40/16.82 1290[label="Zero",fontsize=16,color="green",shape="box"];1291[label="Succ ww1460",fontsize=16,color="green",shape="box"];1292[label="Zero",fontsize=16,color="green",shape="box"];1289[label="primDivNatS (primMinusNatS ww198 ww199) (Succ ww200)",fontsize=16,color="burlywood",shape="triangle"];1434[label="ww198/Succ ww1980",fontsize=10,color="white",style="solid",shape="box"];1289 -> 1434[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1434 -> 1314[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1435[label="ww198/Zero",fontsize=10,color="white",style="solid",shape="box"];1289 -> 1435[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1435 -> 1315[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1293[label="Zero",fontsize=16,color="green",shape="box"];1294[label="Zero",fontsize=16,color="green",shape="box"];1295[label="Zero",fontsize=16,color="green",shape="box"];325[label="Cons (Char (Pos (Succ ww78))) ww79",fontsize=16,color="green",shape="box"];632[label="primModNatS0 (Succ (Succ ww14300)) ww1440 (primGEqNatS (Succ ww14300) ww1440)",fontsize=16,color="burlywood",shape="box"];1436[label="ww1440/Succ ww14400",fontsize=10,color="white",style="solid",shape="box"];632 -> 1436[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1436 -> 643[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1437[label="ww1440/Zero",fontsize=10,color="white",style="solid",shape="box"];632 -> 1437[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1437 -> 644[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 633[label="primModNatS0 (Succ Zero) ww1440 (primGEqNatS Zero ww1440)",fontsize=16,color="burlywood",shape="box"];1438[label="ww1440/Succ ww14400",fontsize=10,color="white",style="solid",shape="box"];633 -> 1438[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1438 -> 645[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1439[label="ww1440/Zero",fontsize=10,color="white",style="solid",shape="box"];633 -> 1439[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1439 -> 646[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 634[label="Succ Zero",fontsize=16,color="green",shape="box"];1113 -> 1055[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1113[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS ww1900 ww1910)",fontsize=16,color="magenta"];1113 -> 1127[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1113 -> 1128[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1114[label="primDivNatS0 (Succ ww188) (Succ ww189) MyTrue",fontsize=16,color="black",shape="triangle"];1114 -> 1129[label="",style="solid", color="black", weight=3]; 33.40/16.82 1115[label="primDivNatS0 (Succ ww188) (Succ ww189) MyFalse",fontsize=16,color="black",shape="box"];1115 -> 1130[label="",style="solid", color="black", weight=3]; 33.40/16.82 1116 -> 1114[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1116[label="primDivNatS0 (Succ ww188) (Succ ww189) MyTrue",fontsize=16,color="magenta"];1314[label="primDivNatS (primMinusNatS (Succ ww1980) ww199) (Succ ww200)",fontsize=16,color="burlywood",shape="box"];1440[label="ww199/Succ ww1990",fontsize=10,color="white",style="solid",shape="box"];1314 -> 1440[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1440 -> 1322[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1441[label="ww199/Zero",fontsize=10,color="white",style="solid",shape="box"];1314 -> 1441[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1441 -> 1323[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1315[label="primDivNatS (primMinusNatS Zero ww199) (Succ ww200)",fontsize=16,color="burlywood",shape="box"];1442[label="ww199/Succ ww1990",fontsize=10,color="white",style="solid",shape="box"];1315 -> 1442[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1442 -> 1324[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1443[label="ww199/Zero",fontsize=10,color="white",style="solid",shape="box"];1315 -> 1443[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1443 -> 1325[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 643[label="primModNatS0 (Succ (Succ ww14300)) (Succ ww14400) (primGEqNatS (Succ ww14300) (Succ ww14400))",fontsize=16,color="black",shape="box"];643 -> 653[label="",style="solid", color="black", weight=3]; 33.40/16.82 644[label="primModNatS0 (Succ (Succ ww14300)) Zero (primGEqNatS (Succ ww14300) Zero)",fontsize=16,color="black",shape="box"];644 -> 654[label="",style="solid", color="black", weight=3]; 33.40/16.82 645[label="primModNatS0 (Succ Zero) (Succ ww14400) (primGEqNatS Zero (Succ ww14400))",fontsize=16,color="black",shape="box"];645 -> 655[label="",style="solid", color="black", weight=3]; 33.40/16.82 646[label="primModNatS0 (Succ Zero) Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];646 -> 656[label="",style="solid", color="black", weight=3]; 33.40/16.82 1127[label="ww1910",fontsize=16,color="green",shape="box"];1128[label="ww1900",fontsize=16,color="green",shape="box"];1129[label="Succ (primDivNatS (primMinusNatS (Succ ww188) (Succ ww189)) (Succ (Succ ww189)))",fontsize=16,color="green",shape="box"];1129 -> 1138[label="",style="dashed", color="green", weight=3]; 33.40/16.82 1130[label="Zero",fontsize=16,color="green",shape="box"];1322[label="primDivNatS (primMinusNatS (Succ ww1980) (Succ ww1990)) (Succ ww200)",fontsize=16,color="black",shape="box"];1322 -> 1330[label="",style="solid", color="black", weight=3]; 33.40/16.82 1323[label="primDivNatS (primMinusNatS (Succ ww1980) Zero) (Succ ww200)",fontsize=16,color="black",shape="box"];1323 -> 1331[label="",style="solid", color="black", weight=3]; 33.40/16.82 1324[label="primDivNatS (primMinusNatS Zero (Succ ww1990)) (Succ ww200)",fontsize=16,color="black",shape="box"];1324 -> 1332[label="",style="solid", color="black", weight=3]; 33.40/16.82 1325[label="primDivNatS (primMinusNatS Zero Zero) (Succ ww200)",fontsize=16,color="black",shape="box"];1325 -> 1333[label="",style="solid", color="black", weight=3]; 33.40/16.82 653 -> 1152[label="",style="dashed", color="red", weight=0]; 33.40/16.82 653[label="primModNatS0 (Succ (Succ ww14300)) (Succ ww14400) (primGEqNatS ww14300 ww14400)",fontsize=16,color="magenta"];653 -> 1153[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 653 -> 1154[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 653 -> 1155[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 653 -> 1156[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 654[label="primModNatS0 (Succ (Succ ww14300)) Zero MyTrue",fontsize=16,color="black",shape="box"];654 -> 665[label="",style="solid", color="black", weight=3]; 33.40/16.82 655[label="primModNatS0 (Succ Zero) (Succ ww14400) MyFalse",fontsize=16,color="black",shape="box"];655 -> 666[label="",style="solid", color="black", weight=3]; 33.40/16.82 656[label="primModNatS0 (Succ Zero) Zero MyTrue",fontsize=16,color="black",shape="box"];656 -> 667[label="",style="solid", color="black", weight=3]; 33.40/16.82 1138 -> 1289[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1138[label="primDivNatS (primMinusNatS (Succ ww188) (Succ ww189)) (Succ (Succ ww189))",fontsize=16,color="magenta"];1138 -> 1296[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1138 -> 1297[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1138 -> 1298[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1330 -> 1289[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1330[label="primDivNatS (primMinusNatS ww1980 ww1990) (Succ ww200)",fontsize=16,color="magenta"];1330 -> 1338[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1330 -> 1339[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1331 -> 592[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1331[label="primDivNatS (Succ ww1980) (Succ ww200)",fontsize=16,color="magenta"];1331 -> 1340[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1331 -> 1341[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1332[label="primDivNatS Zero (Succ ww200)",fontsize=16,color="black",shape="triangle"];1332 -> 1342[label="",style="solid", color="black", weight=3]; 33.40/16.82 1333 -> 1332[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1333[label="primDivNatS Zero (Succ ww200)",fontsize=16,color="magenta"];1153[label="ww14400",fontsize=16,color="green",shape="box"];1154[label="ww14400",fontsize=16,color="green",shape="box"];1155[label="ww14300",fontsize=16,color="green",shape="box"];1156[label="Succ ww14300",fontsize=16,color="green",shape="box"];1152[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS ww195 ww196)",fontsize=16,color="burlywood",shape="triangle"];1444[label="ww195/Succ ww1950",fontsize=10,color="white",style="solid",shape="box"];1152 -> 1444[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1444 -> 1193[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1445[label="ww195/Zero",fontsize=10,color="white",style="solid",shape="box"];1152 -> 1445[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1445 -> 1194[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 665 -> 1343[label="",style="dashed", color="red", weight=0]; 33.40/16.82 665[label="primModNatS (primMinusNatS (Succ (Succ ww14300)) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];665 -> 1344[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 665 -> 1345[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 665 -> 1346[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 666[label="Succ (Succ Zero)",fontsize=16,color="green",shape="box"];667 -> 1343[label="",style="dashed", color="red", weight=0]; 33.40/16.82 667[label="primModNatS (primMinusNatS (Succ Zero) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];667 -> 1347[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 667 -> 1348[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 667 -> 1349[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1296[label="Succ ww189",fontsize=16,color="green",shape="box"];1297[label="Succ ww188",fontsize=16,color="green",shape="box"];1298[label="Succ ww189",fontsize=16,color="green",shape="box"];1338[label="ww1990",fontsize=16,color="green",shape="box"];1339[label="ww1980",fontsize=16,color="green",shape="box"];1340[label="ww200",fontsize=16,color="green",shape="box"];1341[label="ww1980",fontsize=16,color="green",shape="box"];1342[label="Zero",fontsize=16,color="green",shape="box"];1193[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS (Succ ww1950) ww196)",fontsize=16,color="burlywood",shape="box"];1446[label="ww196/Succ ww1960",fontsize=10,color="white",style="solid",shape="box"];1193 -> 1446[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1446 -> 1197[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1447[label="ww196/Zero",fontsize=10,color="white",style="solid",shape="box"];1193 -> 1447[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1447 -> 1198[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1194[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS Zero ww196)",fontsize=16,color="burlywood",shape="box"];1448[label="ww196/Succ ww1960",fontsize=10,color="white",style="solid",shape="box"];1194 -> 1448[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1448 -> 1199[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1449[label="ww196/Zero",fontsize=10,color="white",style="solid",shape="box"];1194 -> 1449[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1449 -> 1200[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1344[label="Succ (Succ ww14300)",fontsize=16,color="green",shape="box"];1345[label="Succ Zero",fontsize=16,color="green",shape="box"];1346[label="Succ Zero",fontsize=16,color="green",shape="box"];1343[label="primModNatS (primMinusNatS ww202 ww203) (Succ ww204)",fontsize=16,color="burlywood",shape="triangle"];1450[label="ww202/Succ ww2020",fontsize=10,color="white",style="solid",shape="box"];1343 -> 1450[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1450 -> 1374[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1451[label="ww202/Zero",fontsize=10,color="white",style="solid",shape="box"];1343 -> 1451[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1451 -> 1375[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1347[label="Succ Zero",fontsize=16,color="green",shape="box"];1348[label="Succ Zero",fontsize=16,color="green",shape="box"];1349[label="Succ Zero",fontsize=16,color="green",shape="box"];1197[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS (Succ ww1950) (Succ ww1960))",fontsize=16,color="black",shape="box"];1197 -> 1205[label="",style="solid", color="black", weight=3]; 33.40/16.82 1198[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS (Succ ww1950) Zero)",fontsize=16,color="black",shape="box"];1198 -> 1206[label="",style="solid", color="black", weight=3]; 33.40/16.82 1199[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS Zero (Succ ww1960))",fontsize=16,color="black",shape="box"];1199 -> 1207[label="",style="solid", color="black", weight=3]; 33.40/16.82 1200[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1200 -> 1208[label="",style="solid", color="black", weight=3]; 33.40/16.82 1374[label="primModNatS (primMinusNatS (Succ ww2020) ww203) (Succ ww204)",fontsize=16,color="burlywood",shape="box"];1452[label="ww203/Succ ww2030",fontsize=10,color="white",style="solid",shape="box"];1374 -> 1452[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1452 -> 1376[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1453[label="ww203/Zero",fontsize=10,color="white",style="solid",shape="box"];1374 -> 1453[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1453 -> 1377[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1375[label="primModNatS (primMinusNatS Zero ww203) (Succ ww204)",fontsize=16,color="burlywood",shape="box"];1454[label="ww203/Succ ww2030",fontsize=10,color="white",style="solid",shape="box"];1375 -> 1454[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1454 -> 1378[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1455[label="ww203/Zero",fontsize=10,color="white",style="solid",shape="box"];1375 -> 1455[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1455 -> 1379[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1205 -> 1152[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1205[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS ww1950 ww1960)",fontsize=16,color="magenta"];1205 -> 1213[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1205 -> 1214[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1206[label="primModNatS0 (Succ ww193) (Succ ww194) MyTrue",fontsize=16,color="black",shape="triangle"];1206 -> 1215[label="",style="solid", color="black", weight=3]; 33.40/16.82 1207[label="primModNatS0 (Succ ww193) (Succ ww194) MyFalse",fontsize=16,color="black",shape="box"];1207 -> 1216[label="",style="solid", color="black", weight=3]; 33.40/16.82 1208 -> 1206[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1208[label="primModNatS0 (Succ ww193) (Succ ww194) MyTrue",fontsize=16,color="magenta"];1376[label="primModNatS (primMinusNatS (Succ ww2020) (Succ ww2030)) (Succ ww204)",fontsize=16,color="black",shape="box"];1376 -> 1380[label="",style="solid", color="black", weight=3]; 33.40/16.82 1377[label="primModNatS (primMinusNatS (Succ ww2020) Zero) (Succ ww204)",fontsize=16,color="black",shape="box"];1377 -> 1381[label="",style="solid", color="black", weight=3]; 33.40/16.82 1378[label="primModNatS (primMinusNatS Zero (Succ ww2030)) (Succ ww204)",fontsize=16,color="black",shape="box"];1378 -> 1382[label="",style="solid", color="black", weight=3]; 33.40/16.82 1379[label="primModNatS (primMinusNatS Zero Zero) (Succ ww204)",fontsize=16,color="black",shape="box"];1379 -> 1383[label="",style="solid", color="black", weight=3]; 33.40/16.82 1213[label="ww1960",fontsize=16,color="green",shape="box"];1214[label="ww1950",fontsize=16,color="green",shape="box"];1215 -> 1343[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1215[label="primModNatS (primMinusNatS (Succ ww193) (Succ (Succ ww194))) (Succ (Succ (Succ ww194)))",fontsize=16,color="magenta"];1215 -> 1356[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1215 -> 1357[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1215 -> 1358[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1216[label="Succ (Succ ww193)",fontsize=16,color="green",shape="box"];1380 -> 1343[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1380[label="primModNatS (primMinusNatS ww2020 ww2030) (Succ ww204)",fontsize=16,color="magenta"];1380 -> 1384[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1380 -> 1385[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1381 -> 598[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1381[label="primModNatS (Succ ww2020) (Succ ww204)",fontsize=16,color="magenta"];1381 -> 1386[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1381 -> 1387[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1382[label="primModNatS Zero (Succ ww204)",fontsize=16,color="black",shape="triangle"];1382 -> 1388[label="",style="solid", color="black", weight=3]; 33.40/16.82 1383 -> 1382[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1383[label="primModNatS Zero (Succ ww204)",fontsize=16,color="magenta"];1356[label="Succ ww193",fontsize=16,color="green",shape="box"];1357[label="Succ (Succ ww194)",fontsize=16,color="green",shape="box"];1358[label="Succ (Succ ww194)",fontsize=16,color="green",shape="box"];1384[label="ww2020",fontsize=16,color="green",shape="box"];1385[label="ww2030",fontsize=16,color="green",shape="box"];1386[label="ww204",fontsize=16,color="green",shape="box"];1387[label="ww2020",fontsize=16,color="green",shape="box"];1388[label="Zero",fontsize=16,color="green",shape="box"];} 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (6) 33.40/16.82 Complex Obligation (AND) 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (7) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Neg(ww210)) -> new_primShowInt(Main.Pos(ww210)) 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(ww2100))) -> new_primShowInt(new_divMyInt(ww2100, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_divMyInt(ww146, ww147) -> Main.Pos(new_primDivNatS2(ww146, ww147)) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_divMyInt(x0, x1) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (8) DependencyGraphProof (EQUIVALENT) 33.40/16.82 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (9) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(ww2100))) -> new_primShowInt(new_divMyInt(ww2100, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_divMyInt(ww146, ww147) -> Main.Pos(new_primDivNatS2(ww146, ww147)) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_divMyInt(x0, x1) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (10) TransformationProof (EQUIVALENT) 33.40/16.82 By rewriting [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(ww2100))) -> new_primShowInt(new_divMyInt(ww2100, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) at position [0] we obtained the following new rules [LPAR04]: 33.40/16.82 33.40/16.82 (new_primShowInt(Main.Pos(Main.Succ(ww2100))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww2100, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))),new_primShowInt(Main.Pos(Main.Succ(ww2100))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww2100, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (11) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(ww2100))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww2100, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_divMyInt(ww146, ww147) -> Main.Pos(new_primDivNatS2(ww146, ww147)) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_divMyInt(x0, x1) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (12) UsableRulesProof (EQUIVALENT) 33.40/16.82 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (13) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(ww2100))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww2100, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_divMyInt(x0, x1) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (14) QReductionProof (EQUIVALENT) 33.40/16.82 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 33.40/16.82 33.40/16.82 new_divMyInt(x0, x1) 33.40/16.82 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (15) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(ww2100))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww2100, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (16) MNOCProof (EQUIVALENT) 33.40/16.82 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (17) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(ww2100))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww2100, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 Q is empty. 33.40/16.82 We have to consider all (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (18) InductionCalculusProof (EQUIVALENT) 33.40/16.82 Note that final constraints are written in bold face. 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 For Pair new_primShowInt(Main.Pos(Main.Succ(ww2100))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww2100, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) the following chains were created: 33.40/16.82 *We consider the chain new_primShowInt(Main.Pos(Main.Succ(x0))) -> new_primShowInt(Main.Pos(new_primDivNatS2(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))), new_primShowInt(Main.Pos(Main.Succ(x1))) -> new_primShowInt(Main.Pos(new_primDivNatS2(x1, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) which results in the following constraint: 33.40/16.82 33.40/16.82 (1) (new_primShowInt(Main.Pos(new_primDivNatS2(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))=new_primShowInt(Main.Pos(Main.Succ(x1))) ==> new_primShowInt(Main.Pos(Main.Succ(x0)))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: 33.40/16.82 33.40/16.82 (2) (Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))=x2 & new_primDivNatS2(x0, x2)=Main.Succ(x1) ==> new_primShowInt(Main.Pos(Main.Succ(x0)))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS2(x0, x2)=Main.Succ(x1) which results in the following new constraints: 33.40/16.82 33.40/16.82 (3) (new_primDivNatS01(x4, x3, x4, x3)=Main.Succ(x1) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))=Main.Succ(x3) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x4))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x4), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.40/16.82 33.40/16.82 (4) (Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero))=Main.Succ(x1) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Zero)))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Zero, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.40/16.82 33.40/16.82 (5) (Main.Succ(new_primDivNatS3(Main.Succ(x6), Main.Zero, Main.Zero))=Main.Succ(x1) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x6))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x6), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: 33.40/16.82 33.40/16.82 (6) (x4=x7 & x3=x8 & new_primDivNatS01(x4, x3, x7, x8)=Main.Succ(x1) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x3 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x4))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x4), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 We solved constraint (4) using rules (I), (II).We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS01(x4, x3, x7, x8)=Main.Succ(x1) which results in the following new constraints: 33.40/16.82 33.40/16.82 (7) (new_primDivNatS01(x12, x11, x10, x9)=Main.Succ(x1) & x12=Main.Succ(x10) & x11=Main.Succ(x9) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x11 & (\/x13:new_primDivNatS01(x12, x11, x10, x9)=Main.Succ(x13) & x12=x10 & x11=x9 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x11 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x12))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x12), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x12))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x12), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.40/16.82 33.40/16.82 (8) (new_primDivNatS02(x15, x14)=Main.Succ(x1) & x15=Main.Zero & x14=Main.Zero & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x14 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x15))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x15), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.40/16.82 33.40/16.82 (9) (new_primDivNatS02(x21, x20)=Main.Succ(x1) & x21=Main.Succ(x19) & x20=Main.Zero & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x20 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x21))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x21), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: 33.40/16.82 33.40/16.82 (10) (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x10)))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(Main.Succ(x10)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 We solved constraint (8) using rules (I), (II), (III).We solved constraint (9) using rules (I), (II), (III). 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 To summarize, we get the following constraints P__>=_ for the following pairs. 33.40/16.82 33.40/16.82 *new_primShowInt(Main.Pos(Main.Succ(ww2100))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww2100, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 33.40/16.82 33.40/16.82 *(new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x10)))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(Main.Succ(x10)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 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.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (19) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(ww2100))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww2100, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (20) TransformationProof (EQUIVALENT) 33.40/16.82 By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(ww2100))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww2100, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) at position [0,0] we obtained the following new rules [LPAR04]: 33.40/16.82 33.40/16.82 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS01(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))),new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS01(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 33.40/16.82 (new_primShowInt(Main.Pos(Main.Succ(Main.Zero))) -> new_primShowInt(Main.Pos(Main.Zero)),new_primShowInt(Main.Pos(Main.Succ(Main.Zero))) -> new_primShowInt(Main.Pos(Main.Zero))) 33.40/16.82 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (21) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS01(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Zero))) -> new_primShowInt(Main.Pos(Main.Zero)) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (22) DependencyGraphProof (EQUIVALENT) 33.40/16.82 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (23) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS01(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (24) TransformationProof (EQUIVALENT) 33.40/16.82 By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS01(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) at position [0,0] we obtained the following new rules [LPAR04]: 33.40/16.82 33.40/16.82 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(x2), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))),new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(x2), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 33.40/16.82 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_primShowInt(Main.Pos(Main.Zero)),new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_primShowInt(Main.Pos(Main.Zero))) 33.40/16.82 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (25) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(x2), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))) 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_primShowInt(Main.Pos(Main.Zero)) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (26) DependencyGraphProof (EQUIVALENT) 33.40/16.82 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (27) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(x2), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (28) TransformationProof (EQUIVALENT) 33.40/16.82 By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(x2), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))) at position [0,0] we obtained the following new rules [LPAR04]: 33.40/16.82 33.40/16.82 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(x2)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))),new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(x2)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))) 33.40/16.82 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_primShowInt(Main.Pos(Main.Zero)),new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_primShowInt(Main.Pos(Main.Zero))) 33.40/16.82 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (29) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(x2)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_primShowInt(Main.Pos(Main.Zero)) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (30) DependencyGraphProof (EQUIVALENT) 33.40/16.82 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (31) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(x2)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (32) TransformationProof (EQUIVALENT) 33.40/16.82 By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(x2)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) at position [0,0] we obtained the following new rules [LPAR04]: 33.40/16.82 33.40/16.82 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))),new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) -> new_primShowInt(Main.Pos(Main.Zero)),new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) -> new_primShowInt(Main.Pos(Main.Zero))) 33.40/16.82 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (33) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) -> new_primShowInt(Main.Pos(Main.Zero)) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (34) DependencyGraphProof (EQUIVALENT) 33.40/16.82 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (35) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (36) MNOCProof (EQUIVALENT) 33.40/16.82 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (37) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 Q is empty. 33.40/16.82 We have to consider all (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (38) InductionCalculusProof (EQUIVALENT) 33.40/16.82 Note that final constraints are written in bold face. 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 For Pair new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) the following chains were created: 33.40/16.82 *We consider the chain new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x1, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) which results in the following constraint: 33.40/16.82 33.40/16.82 (1) (new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))))) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: 33.40/16.82 33.40/16.82 (2) (Main.Succ(Main.Succ(Main.Succ(x0)))=x2 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x3 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))=x4 & new_primDivNatS01(x2, x3, x0, x4)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS01(x2, x3, x0, x4)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) which results in the following new constraints: 33.40/16.82 33.40/16.82 (3) (new_primDivNatS01(x8, x7, x6, x5)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6))))=x8 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x7 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))=Main.Succ(x5) & (\/x9:new_primDivNatS01(x8, x7, x6, x5)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x9))))) & Main.Succ(Main.Succ(Main.Succ(x6)))=x8 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x7 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))=x5 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6)))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x6))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x6, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6)))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(x6), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 33.40/16.82 (4) (new_primDivNatS02(x11, x10)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Zero)))=x11 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x10 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Zero, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 33.40/16.82 (5) (new_primDivNatS02(x17, x16)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(x15))))=x17 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x16 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x15))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x15)))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(x15), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: 33.40/16.82 33.40/16.82 (6) (new_primDivNatS01(x8, x7, x6, x5)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6))))=x8 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x7 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))=x5 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6)))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(x6), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 We solved constraint (4) using rules (I), (II).We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS01(x8, x7, x6, x5)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) which results in the following new constraints: 33.40/16.82 33.40/16.82 (7) (new_primDivNatS01(x21, x20, x19, x18)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19)))))=x21 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x20 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))=Main.Succ(x18) & (\/x22:new_primDivNatS01(x21, x20, x19, x18)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x22))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19))))=x21 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x20 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))=x18 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19)))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(x19), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19)))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19))))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(Main.Succ(x19)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 33.40/16.82 (8) (new_primDivNatS02(x24, x23)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))=x24 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x23 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(Main.Zero), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 33.40/16.82 (9) (new_primDivNatS02(x30, x29)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x28)))))=x30 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x29 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x28)))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x28))))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(Main.Succ(x28)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 We simplified constraint (7) using rules (I), (II), (III), (IV) which results in the following new constraint: 33.40/16.82 33.40/16.82 (10) (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19)))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19))))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(Main.Succ(x19)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 We solved constraint (8) using rules (I), (II).We solved constraint (9) using rules (I), (II). 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 To summarize, we get the following constraints P__>=_ for the following pairs. 33.40/16.82 33.40/16.82 *new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) 33.40/16.82 33.40/16.82 *(new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19)))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19))))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(Main.Succ(x19)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 33.40/16.82 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.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (39) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) 33.40/16.82 33.40/16.82 The TRS R consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS01(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(ww1470)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS01(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Zero, Main.Succ(ww1910)) -> Main.Zero 33.40/16.82 new_primDivNatS01(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS02(ww188, ww189) 33.40/16.82 new_primDivNatS02(ww188, ww189) -> Main.Succ(new_primDivNatS3(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189))) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS3(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS3(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS2(ww1980, ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(ww1990), ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, ww200) -> new_primDivNatS4(ww200) 33.40/16.82 new_primDivNatS4(ww200) -> Main.Zero 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) 33.40/16.82 new_primDivNatS2(Main.Succ(ww1460), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(ww1460), Main.Zero, Main.Zero)) 33.40/16.82 33.40/16.82 The set Q consists of the following terms: 33.40/16.82 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Zero, x0) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 33.40/16.82 new_primDivNatS2(Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) 33.40/16.82 new_primDivNatS2(Main.Succ(x0), Main.Zero) 33.40/16.82 new_primDivNatS4(x0) 33.40/16.82 new_primDivNatS02(x0, x1) 33.40/16.82 new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) 33.40/16.82 new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) 33.40/16.82 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 33.40/16.82 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (40) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primModNatS0(ww193, ww194, Main.Zero, Main.Zero) -> new_primModNatS00(ww193, ww194) 33.40/16.82 new_primModNatS1(Main.Succ(Main.Succ(ww14300)), Main.Succ(Main.Succ(ww14400))) -> new_primModNatS0(Main.Succ(ww14300), ww14400, ww14300, ww14400) 33.40/16.82 new_primModNatS1(Main.Succ(Main.Zero), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Zero), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 33.40/16.82 new_primModNatS0(ww193, ww194, Main.Succ(ww1950), Main.Succ(ww1960)) -> new_primModNatS0(ww193, ww194, ww1950, ww1960) 33.40/16.82 new_primModNatS(Main.Succ(ww2020), Main.Succ(ww2030), ww204) -> new_primModNatS(ww2020, ww2030, ww204) 33.40/16.82 new_primModNatS(Main.Succ(ww2020), Main.Zero, ww204) -> new_primModNatS1(ww2020, ww204) 33.40/16.82 new_primModNatS0(ww193, ww194, Main.Succ(ww1950), Main.Zero) -> new_primModNatS(Main.Succ(ww193), Main.Succ(Main.Succ(ww194)), Main.Succ(Main.Succ(ww194))) 33.40/16.82 new_primModNatS1(Main.Succ(Main.Succ(ww14300)), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Succ(ww14300)), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 33.40/16.82 new_primModNatS00(ww193, ww194) -> new_primModNatS(Main.Succ(ww193), Main.Succ(Main.Succ(ww194)), Main.Succ(Main.Succ(ww194))) 33.40/16.82 33.40/16.82 R is empty. 33.40/16.82 Q is empty. 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (41) QDPOrderProof (EQUIVALENT) 33.40/16.82 We use the reduction pair processor [LPAR04,JAR06]. 33.40/16.82 33.40/16.82 33.40/16.82 The following pairs can be oriented strictly and are deleted. 33.40/16.82 33.40/16.82 new_primModNatS(Main.Succ(ww2020), Main.Succ(ww2030), ww204) -> new_primModNatS(ww2020, ww2030, ww204) 33.40/16.82 new_primModNatS(Main.Succ(ww2020), Main.Zero, ww204) -> new_primModNatS1(ww2020, ww204) 33.40/16.82 The remaining pairs can at least be oriented weakly. 33.40/16.82 Used ordering: Polynomial interpretation [POLO]: 33.40/16.82 33.40/16.82 POL(Main.Succ(x_1)) = 1 + x_1 33.40/16.82 POL(Main.Zero) = 0 33.40/16.82 POL(new_primModNatS(x_1, x_2, x_3)) = x_1 33.40/16.82 POL(new_primModNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 33.40/16.82 POL(new_primModNatS00(x_1, x_2)) = 1 + x_1 33.40/16.82 POL(new_primModNatS1(x_1, x_2)) = x_1 33.40/16.82 33.40/16.82 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 33.40/16.82 none 33.40/16.82 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (42) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primModNatS0(ww193, ww194, Main.Zero, Main.Zero) -> new_primModNatS00(ww193, ww194) 33.40/16.82 new_primModNatS1(Main.Succ(Main.Succ(ww14300)), Main.Succ(Main.Succ(ww14400))) -> new_primModNatS0(Main.Succ(ww14300), ww14400, ww14300, ww14400) 33.40/16.82 new_primModNatS1(Main.Succ(Main.Zero), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Zero), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 33.40/16.82 new_primModNatS0(ww193, ww194, Main.Succ(ww1950), Main.Succ(ww1960)) -> new_primModNatS0(ww193, ww194, ww1950, ww1960) 33.40/16.82 new_primModNatS0(ww193, ww194, Main.Succ(ww1950), Main.Zero) -> new_primModNatS(Main.Succ(ww193), Main.Succ(Main.Succ(ww194)), Main.Succ(Main.Succ(ww194))) 33.40/16.82 new_primModNatS1(Main.Succ(Main.Succ(ww14300)), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Succ(ww14300)), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 33.40/16.82 new_primModNatS00(ww193, ww194) -> new_primModNatS(Main.Succ(ww193), Main.Succ(Main.Succ(ww194)), Main.Succ(Main.Succ(ww194))) 33.40/16.82 33.40/16.82 R is empty. 33.40/16.82 Q is empty. 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (43) DependencyGraphProof (EQUIVALENT) 33.40/16.82 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 6 less nodes. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (44) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primModNatS0(ww193, ww194, Main.Succ(ww1950), Main.Succ(ww1960)) -> new_primModNatS0(ww193, ww194, ww1950, ww1960) 33.40/16.82 33.40/16.82 R is empty. 33.40/16.82 Q is empty. 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (45) QDPSizeChangeProof (EQUIVALENT) 33.40/16.82 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.40/16.82 33.40/16.82 From the DPs we obtained the following set of size-change graphs: 33.40/16.82 *new_primModNatS0(ww193, ww194, Main.Succ(ww1950), Main.Succ(ww1960)) -> new_primModNatS0(ww193, ww194, ww1950, ww1960) 33.40/16.82 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 33.40/16.82 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (46) 33.40/16.82 YES 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (47) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS1(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS0(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS0(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS0(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS1(Main.Zero, Main.Zero) -> new_primDivNatS(Main.Zero, Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS00(ww188, ww189) -> new_primDivNatS(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189)) 33.40/16.82 new_primDivNatS(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS1(ww1980, ww200) 33.40/16.82 new_primDivNatS1(Main.Succ(ww1460), Main.Zero) -> new_primDivNatS(Main.Succ(ww1460), Main.Zero, Main.Zero) 33.40/16.82 new_primDivNatS0(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189)) 33.40/16.82 new_primDivNatS0(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS00(ww188, ww189) 33.40/16.82 33.40/16.82 R is empty. 33.40/16.82 Q is empty. 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (48) DependencyGraphProof (EQUIVALENT) 33.40/16.82 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (49) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS1(ww1980, ww200) 33.40/16.82 new_primDivNatS1(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS0(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS0(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS0(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS0(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189)) 33.40/16.82 new_primDivNatS(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS(ww1980, ww1990, ww200) 33.40/16.82 new_primDivNatS0(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS00(ww188, ww189) 33.40/16.82 new_primDivNatS00(ww188, ww189) -> new_primDivNatS(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189)) 33.40/16.82 new_primDivNatS1(Main.Succ(ww1460), Main.Zero) -> new_primDivNatS(Main.Succ(ww1460), Main.Zero, Main.Zero) 33.40/16.82 33.40/16.82 R is empty. 33.40/16.82 Q is empty. 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (50) QDPOrderProof (EQUIVALENT) 33.40/16.82 We use the reduction pair processor [LPAR04,JAR06]. 33.40/16.82 33.40/16.82 33.40/16.82 The following pairs can be oriented strictly and are deleted. 33.40/16.82 33.40/16.82 new_primDivNatS(Main.Succ(ww1980), Main.Zero, ww200) -> new_primDivNatS1(ww1980, ww200) 33.40/16.82 new_primDivNatS(Main.Succ(ww1980), Main.Succ(ww1990), ww200) -> new_primDivNatS(ww1980, ww1990, ww200) 33.40/16.82 The remaining pairs can at least be oriented weakly. 33.40/16.82 Used ordering: Polynomial interpretation [POLO]: 33.40/16.82 33.40/16.82 POL(Main.Succ(x_1)) = 1 + x_1 33.40/16.82 POL(Main.Zero) = 0 33.40/16.82 POL(new_primDivNatS(x_1, x_2, x_3)) = x_1 33.40/16.82 POL(new_primDivNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 33.40/16.82 POL(new_primDivNatS00(x_1, x_2)) = 1 + x_1 33.40/16.82 POL(new_primDivNatS1(x_1, x_2)) = x_1 33.40/16.82 33.40/16.82 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 33.40/16.82 none 33.40/16.82 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (51) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS1(Main.Succ(ww1460), Main.Succ(ww1470)) -> new_primDivNatS0(ww1460, ww1470, ww1460, ww1470) 33.40/16.82 new_primDivNatS0(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS0(ww188, ww189, ww1900, ww1910) 33.40/16.82 new_primDivNatS0(ww188, ww189, Main.Succ(ww1900), Main.Zero) -> new_primDivNatS(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189)) 33.40/16.82 new_primDivNatS0(ww188, ww189, Main.Zero, Main.Zero) -> new_primDivNatS00(ww188, ww189) 33.40/16.82 new_primDivNatS00(ww188, ww189) -> new_primDivNatS(Main.Succ(ww188), Main.Succ(ww189), Main.Succ(ww189)) 33.40/16.82 new_primDivNatS1(Main.Succ(ww1460), Main.Zero) -> new_primDivNatS(Main.Succ(ww1460), Main.Zero, Main.Zero) 33.40/16.82 33.40/16.82 R is empty. 33.40/16.82 Q is empty. 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (52) DependencyGraphProof (EQUIVALENT) 33.40/16.82 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 5 less nodes. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (53) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_primDivNatS0(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS0(ww188, ww189, ww1900, ww1910) 33.40/16.82 33.40/16.82 R is empty. 33.40/16.82 Q is empty. 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (54) QDPSizeChangeProof (EQUIVALENT) 33.40/16.82 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.40/16.82 33.40/16.82 From the DPs we obtained the following set of size-change graphs: 33.40/16.82 *new_primDivNatS0(ww188, ww189, Main.Succ(ww1900), Main.Succ(ww1910)) -> new_primDivNatS0(ww188, ww189, ww1900, ww1910) 33.40/16.82 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 33.40/16.82 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (55) 33.40/16.82 YES 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (56) 33.40/16.82 Obligation: 33.40/16.82 Q DP problem: 33.40/16.82 The TRS P consists of the following rules: 33.40/16.82 33.40/16.82 new_psPs(Cons(ww1410, ww1411), ww59) -> new_psPs(ww1411, ww59) 33.40/16.82 33.40/16.82 R is empty. 33.40/16.82 Q is empty. 33.40/16.82 We have to consider all minimal (P,Q,R)-chains. 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (57) QDPSizeChangeProof (EQUIVALENT) 33.40/16.82 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.40/16.82 33.40/16.82 From the DPs we obtained the following set of size-change graphs: 33.40/16.82 *new_psPs(Cons(ww1410, ww1411), ww59) -> new_psPs(ww1411, ww59) 33.40/16.82 The graph contains the following edges 1 > 1, 2 >= 2 33.40/16.82 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (58) 33.40/16.82 YES 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (59) Narrow (COMPLETE) 33.40/16.82 Haskell To QDPs 33.40/16.82 33.40/16.82 digraph dp_graph { 33.40/16.82 node [outthreshold=100, inthreshold=100];1[label="showsPrecRatio",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 33.40/16.82 3[label="showsPrecRatio ww3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 33.40/16.82 4[label="showsPrecRatio ww3 ww4",fontsize=16,color="grey",shape="box"];4 -> 5[label="",style="dashed", color="grey", weight=3]; 33.40/16.82 5[label="showsPrecRatio ww3 ww4 ww5",fontsize=16,color="burlywood",shape="triangle"];1389[label="ww4/CnPc ww40 ww41",fontsize=10,color="white",style="solid",shape="box"];5 -> 1389[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1389 -> 6[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 6[label="showsPrecRatio ww3 (CnPc ww40 ww41) ww5",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 33.40/16.82 7 -> 27[label="",style="dashed", color="red", weight=0]; 33.40/16.82 7[label="showParen (gtMyInt ww3 (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) (pt (showsMyInt ww40) (pt (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 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 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)))) (showsMyInt ww41))) ww5",fontsize=16,color="magenta"];7 -> 28[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 7 -> 29[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 7 -> 30[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 7 -> 31[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 7 -> 32[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 7 -> 33[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 7 -> 34[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 28[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"];29[label="ww40",fontsize=16,color="green",shape="box"];30[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 Zero)))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];31[label="ww5",fontsize=16,color="green",shape="box"];32[label="ww41",fontsize=16,color="green",shape="box"];33[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"];34[label="ww3",fontsize=16,color="green",shape="box"];27[label="showParen (gtMyInt ww20 (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) ww26",fontsize=16,color="black",shape="triangle"];27 -> 42[label="",style="solid", color="black", weight=3]; 33.40/16.82 42[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (gtMyInt ww20 (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) ww26",fontsize=16,color="black",shape="box"];42 -> 43[label="",style="solid", color="black", weight=3]; 33.40/16.82 43[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (compareMyInt ww20 (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="black",shape="box"];43 -> 44[label="",style="solid", color="black", weight=3]; 33.40/16.82 44[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt ww20 (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1390[label="ww20/Pos ww200",fontsize=10,color="white",style="solid",shape="box"];44 -> 1390[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1390 -> 45[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1391[label="ww20/Neg ww200",fontsize=10,color="white",style="solid",shape="box"];44 -> 1391[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1391 -> 46[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 45[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt (Pos ww200) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1392[label="ww200/Succ ww2000",fontsize=10,color="white",style="solid",shape="box"];45 -> 1392[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1392 -> 47[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1393[label="ww200/Zero",fontsize=10,color="white",style="solid",shape="box"];45 -> 1393[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1393 -> 48[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 46[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt (Neg ww200) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1394[label="ww200/Succ ww2000",fontsize=10,color="white",style="solid",shape="box"];46 -> 1394[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1394 -> 49[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1395[label="ww200/Zero",fontsize=10,color="white",style="solid",shape="box"];46 -> 1395[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1395 -> 50[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 47[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt (Pos (Succ ww2000)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="black",shape="box"];47 -> 51[label="",style="solid", color="black", weight=3]; 33.40/16.82 48[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="black",shape="box"];48 -> 52[label="",style="solid", color="black", weight=3]; 33.40/16.82 49[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt (Neg (Succ ww2000)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="black",shape="box"];49 -> 53[label="",style="solid", color="black", weight=3]; 33.40/16.82 50[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww26",fontsize=16,color="black",shape="box"];50 -> 54[label="",style="solid", color="black", weight=3]; 33.40/16.82 51[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww2000) (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) GT) ww26",fontsize=16,color="black",shape="box"];51 -> 55[label="",style="solid", color="black", weight=3]; 33.40/16.82 52[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) GT) ww26",fontsize=16,color="black",shape="box"];52 -> 56[label="",style="solid", color="black", weight=3]; 33.40/16.82 53[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="black",shape="triangle"];53 -> 57[label="",style="solid", color="black", weight=3]; 33.40/16.82 54 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.82 54[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];55[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww2000 (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1396[label="ww2000/Succ ww20000",fontsize=10,color="white",style="solid",shape="box"];55 -> 1396[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1396 -> 58[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1397[label="ww2000/Zero",fontsize=10,color="white",style="solid",shape="box"];55 -> 1397[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1397 -> 59[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 56 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.82 56[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];57[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) MyFalse ww26",fontsize=16,color="black",shape="triangle"];57 -> 60[label="",style="solid", color="black", weight=3]; 33.40/16.82 58[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww20000) (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) GT) ww26",fontsize=16,color="black",shape="box"];58 -> 61[label="",style="solid", color="black", weight=3]; 33.40/16.82 59[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) GT) ww26",fontsize=16,color="black",shape="box"];59 -> 62[label="",style="solid", color="black", weight=3]; 33.40/16.82 60[label="pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25)) ww26",fontsize=16,color="black",shape="triangle"];60 -> 63[label="",style="solid", color="black", weight=3]; 33.40/16.82 61[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww20000 (Succ (Succ (Succ (Succ (Succ Zero)))))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1398[label="ww20000/Succ ww200000",fontsize=10,color="white",style="solid",shape="box"];61 -> 1398[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1398 -> 64[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1399[label="ww20000/Zero",fontsize=10,color="white",style="solid",shape="box"];61 -> 1399[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1399 -> 65[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 62 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.82 62[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];63[label="showsMyInt ww21 (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25) ww26)",fontsize=16,color="black",shape="box"];63 -> 66[label="",style="solid", color="black", weight=3]; 33.40/16.82 64[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww200000) (Succ (Succ (Succ (Succ (Succ Zero)))))) GT) ww26",fontsize=16,color="black",shape="box"];64 -> 67[label="",style="solid", color="black", weight=3]; 33.40/16.82 65[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ (Succ (Succ (Succ (Succ Zero)))))) GT) ww26",fontsize=16,color="black",shape="box"];65 -> 68[label="",style="solid", color="black", weight=3]; 33.40/16.82 66[label="showsPrecMyInt (Pos Zero) ww21 (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25) ww26)",fontsize=16,color="black",shape="box"];66 -> 69[label="",style="solid", color="black", weight=3]; 33.40/16.82 67[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww200000 (Succ (Succ (Succ (Succ Zero))))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1400[label="ww200000/Succ ww2000000",fontsize=10,color="white",style="solid",shape="box"];67 -> 1400[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1400 -> 70[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1401[label="ww200000/Zero",fontsize=10,color="white",style="solid",shape="box"];67 -> 1401[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1401 -> 71[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 68 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.82 68[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];69 -> 400[label="",style="dashed", color="red", weight=0]; 33.40/16.82 69[label="psPs (showMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25) ww26)",fontsize=16,color="magenta"];69 -> 401[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 69 -> 402[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 70[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww2000000) (Succ (Succ (Succ (Succ Zero))))) GT) ww26",fontsize=16,color="black",shape="box"];70 -> 73[label="",style="solid", color="black", weight=3]; 33.40/16.82 71[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ (Succ (Succ (Succ Zero))))) GT) ww26",fontsize=16,color="black",shape="box"];71 -> 74[label="",style="solid", color="black", weight=3]; 33.40/16.82 401[label="pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25) ww26",fontsize=16,color="black",shape="box"];401 -> 552[label="",style="solid", color="black", weight=3]; 33.40/16.82 402[label="showMyInt ww21",fontsize=16,color="black",shape="triangle"];402 -> 553[label="",style="solid", color="black", weight=3]; 33.40/16.82 400[label="psPs ww141 ww59",fontsize=16,color="burlywood",shape="triangle"];1402[label="ww141/Cons ww1410 ww1411",fontsize=10,color="white",style="solid",shape="box"];400 -> 1402[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1402 -> 554[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1403[label="ww141/Nil",fontsize=10,color="white",style="solid",shape="box"];400 -> 1403[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1403 -> 555[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 73[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww2000000 (Succ (Succ (Succ Zero)))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1404[label="ww2000000/Succ ww20000000",fontsize=10,color="white",style="solid",shape="box"];73 -> 1404[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1404 -> 77[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1405[label="ww2000000/Zero",fontsize=10,color="white",style="solid",shape="box"];73 -> 1405[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1405 -> 78[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 74 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.82 74[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];552[label="showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil))) (showsMyInt ww25 ww26)",fontsize=16,color="black",shape="box"];552 -> 556[label="",style="solid", color="black", weight=3]; 33.40/16.82 553[label="primShowInt ww21",fontsize=16,color="burlywood",shape="triangle"];1406[label="ww21/Pos ww210",fontsize=10,color="white",style="solid",shape="box"];553 -> 1406[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1406 -> 557[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1407[label="ww21/Neg ww210",fontsize=10,color="white",style="solid",shape="box"];553 -> 1407[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1407 -> 558[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 554[label="psPs (Cons ww1410 ww1411) ww59",fontsize=16,color="black",shape="box"];554 -> 559[label="",style="solid", color="black", weight=3]; 33.40/16.82 555[label="psPs Nil ww59",fontsize=16,color="black",shape="box"];555 -> 560[label="",style="solid", color="black", weight=3]; 33.40/16.82 77[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww20000000) (Succ (Succ (Succ Zero)))) GT) ww26",fontsize=16,color="black",shape="box"];77 -> 82[label="",style="solid", color="black", weight=3]; 33.40/16.82 78[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ (Succ (Succ Zero)))) GT) ww26",fontsize=16,color="black",shape="box"];78 -> 83[label="",style="solid", color="black", weight=3]; 33.40/16.82 556 -> 400[label="",style="dashed", color="red", weight=0]; 33.40/16.82 556[label="psPs (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil))) (showsMyInt ww25 ww26)",fontsize=16,color="magenta"];556 -> 561[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 556 -> 562[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 557[label="primShowInt (Pos ww210)",fontsize=16,color="burlywood",shape="box"];1408[label="ww210/Succ ww2100",fontsize=10,color="white",style="solid",shape="box"];557 -> 1408[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1408 -> 563[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1409[label="ww210/Zero",fontsize=10,color="white",style="solid",shape="box"];557 -> 1409[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1409 -> 564[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 558[label="primShowInt (Neg ww210)",fontsize=16,color="black",shape="box"];558 -> 565[label="",style="solid", color="black", weight=3]; 33.40/16.82 559[label="Cons ww1410 (psPs ww1411 ww59)",fontsize=16,color="green",shape="box"];559 -> 566[label="",style="dashed", color="green", weight=3]; 33.40/16.82 560[label="ww59",fontsize=16,color="green",shape="box"];82[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww20000000 (Succ (Succ Zero))) GT) ww26",fontsize=16,color="burlywood",shape="box"];1410[label="ww20000000/Succ ww200000000",fontsize=10,color="white",style="solid",shape="box"];82 -> 1410[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1410 -> 94[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1411[label="ww20000000/Zero",fontsize=10,color="white",style="solid",shape="box"];82 -> 1411[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1411 -> 95[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 83 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.82 83[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];561[label="showsMyInt ww25 ww26",fontsize=16,color="black",shape="box"];561 -> 567[label="",style="solid", color="black", weight=3]; 33.40/16.82 562[label="Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil))",fontsize=16,color="green",shape="box"];563[label="primShowInt (Pos (Succ ww2100))",fontsize=16,color="black",shape="box"];563 -> 568[label="",style="solid", color="black", weight=3]; 33.40/16.82 564[label="primShowInt (Pos Zero)",fontsize=16,color="black",shape="box"];564 -> 569[label="",style="solid", color="black", weight=3]; 33.40/16.82 565[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 Zero))))))))))))))))))))))))))))))))))))))))))))))) (primShowInt (Pos ww210))",fontsize=16,color="green",shape="box"];565 -> 570[label="",style="dashed", color="green", weight=3]; 33.40/16.82 566 -> 400[label="",style="dashed", color="red", weight=0]; 33.40/16.82 566[label="psPs ww1411 ww59",fontsize=16,color="magenta"];566 -> 571[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 94[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww200000000) (Succ (Succ Zero))) GT) ww26",fontsize=16,color="black",shape="box"];94 -> 112[label="",style="solid", color="black", weight=3]; 33.40/16.82 95[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ (Succ Zero))) GT) ww26",fontsize=16,color="black",shape="box"];95 -> 113[label="",style="solid", color="black", weight=3]; 33.40/16.82 567[label="showsPrecMyInt (Pos Zero) ww25 ww26",fontsize=16,color="black",shape="box"];567 -> 572[label="",style="solid", color="black", weight=3]; 33.40/16.82 568 -> 400[label="",style="dashed", color="red", weight=0]; 33.40/16.82 568[label="psPs (primShowInt (divMyInt (Pos (Succ ww2100)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (Cons (toEnumChar (modMyInt (Pos (Succ ww2100)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil)",fontsize=16,color="magenta"];568 -> 573[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 568 -> 574[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 569[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 Zero)))))))))))))))))))))))))))))))))))))))))))))))))) Nil",fontsize=16,color="green",shape="box"];570 -> 553[label="",style="dashed", color="red", weight=0]; 33.40/16.82 570[label="primShowInt (Pos ww210)",fontsize=16,color="magenta"];570 -> 575[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 571[label="ww1411",fontsize=16,color="green",shape="box"];112[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww200000000 (Succ Zero)) GT) ww26",fontsize=16,color="burlywood",shape="box"];1412[label="ww200000000/Succ ww2000000000",fontsize=10,color="white",style="solid",shape="box"];112 -> 1412[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1412 -> 134[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1413[label="ww200000000/Zero",fontsize=10,color="white",style="solid",shape="box"];112 -> 1413[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1413 -> 135[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 113 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.82 113[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];572 -> 400[label="",style="dashed", color="red", weight=0]; 33.40/16.82 572[label="psPs (showMyInt ww25) ww26",fontsize=16,color="magenta"];572 -> 576[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 572 -> 577[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 573[label="Cons (toEnumChar (modMyInt (Pos (Succ ww2100)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil",fontsize=16,color="green",shape="box"];573 -> 578[label="",style="dashed", color="green", weight=3]; 33.40/16.82 574 -> 553[label="",style="dashed", color="red", weight=0]; 33.40/16.82 574[label="primShowInt (divMyInt (Pos (Succ ww2100)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];574 -> 579[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 575[label="Pos ww210",fontsize=16,color="green",shape="box"];134[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww2000000000) (Succ Zero)) GT) ww26",fontsize=16,color="black",shape="box"];134 -> 144[label="",style="solid", color="black", weight=3]; 33.40/16.82 135[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero (Succ Zero)) GT) ww26",fontsize=16,color="black",shape="box"];135 -> 145[label="",style="solid", color="black", weight=3]; 33.40/16.82 576[label="ww26",fontsize=16,color="green",shape="box"];577 -> 402[label="",style="dashed", color="red", weight=0]; 33.40/16.82 577[label="showMyInt ww25",fontsize=16,color="magenta"];577 -> 580[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 578 -> 581[label="",style="dashed", color="red", weight=0]; 33.40/16.82 578[label="toEnumChar (modMyInt (Pos (Succ ww2100)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];578 -> 582[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 578 -> 583[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 579 -> 584[label="",style="dashed", color="red", weight=0]; 33.40/16.82 579[label="divMyInt (Pos (Succ ww2100)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))",fontsize=16,color="magenta"];579 -> 585[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 579 -> 586[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 144[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat ww2000000000 Zero) GT) ww26",fontsize=16,color="burlywood",shape="box"];1414[label="ww2000000000/Succ ww20000000000",fontsize=10,color="white",style="solid",shape="box"];144 -> 1414[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1414 -> 148[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1415[label="ww2000000000/Zero",fontsize=10,color="white",style="solid",shape="box"];144 -> 1415[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1415 -> 149[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 145 -> 53[label="",style="dashed", color="red", weight=0]; 33.40/16.82 145[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering LT GT) ww26",fontsize=16,color="magenta"];580[label="ww25",fontsize=16,color="green",shape="box"];582[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];583[label="ww2100",fontsize=16,color="green",shape="box"];581[label="toEnumChar (modMyInt (Pos (Succ ww143)) (Pos (Succ ww144)))",fontsize=16,color="black",shape="triangle"];581 -> 587[label="",style="solid", color="black", weight=3]; 33.40/16.82 585[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];586[label="ww2100",fontsize=16,color="green",shape="box"];584[label="divMyInt (Pos (Succ ww146)) (Pos (Succ ww147))",fontsize=16,color="black",shape="triangle"];584 -> 588[label="",style="solid", color="black", weight=3]; 33.40/16.82 148[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat (Succ ww20000000000) Zero) GT) ww26",fontsize=16,color="black",shape="box"];148 -> 153[label="",style="solid", color="black", weight=3]; 33.40/16.82 149[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering (primCmpNat Zero Zero) GT) ww26",fontsize=16,color="black",shape="box"];149 -> 154[label="",style="solid", color="black", weight=3]; 33.40/16.82 587[label="primIntToChar (modMyInt (Pos (Succ ww143)) (Pos (Succ ww144)))",fontsize=16,color="black",shape="box"];587 -> 589[label="",style="solid", color="black", weight=3]; 33.40/16.82 588[label="primDivInt (Pos (Succ ww146)) (Pos (Succ ww147))",fontsize=16,color="black",shape="box"];588 -> 590[label="",style="solid", color="black", weight=3]; 33.40/16.82 153[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering GT GT) ww26",fontsize=16,color="black",shape="box"];153 -> 160[label="",style="solid", color="black", weight=3]; 33.40/16.82 154[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (esEsOrdering EQ GT) ww26",fontsize=16,color="black",shape="box"];154 -> 161[label="",style="solid", color="black", weight=3]; 33.40/16.82 589[label="Char (modMyInt (Pos (Succ ww143)) (Pos (Succ ww144)))",fontsize=16,color="green",shape="box"];589 -> 591[label="",style="dashed", color="green", weight=3]; 33.40/16.82 590[label="Pos (primDivNatS (Succ ww146) (Succ ww147))",fontsize=16,color="green",shape="box"];590 -> 592[label="",style="dashed", color="green", weight=3]; 33.40/16.82 160[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) MyTrue ww26",fontsize=16,color="black",shape="box"];160 -> 167[label="",style="solid", color="black", weight=3]; 33.40/16.82 161 -> 57[label="",style="dashed", color="red", weight=0]; 33.40/16.82 161[label="showParen0 (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) MyFalse ww26",fontsize=16,color="magenta"];591[label="modMyInt (Pos (Succ ww143)) (Pos (Succ ww144))",fontsize=16,color="black",shape="box"];591 -> 593[label="",style="solid", color="black", weight=3]; 33.40/16.82 592[label="primDivNatS (Succ ww146) (Succ ww147)",fontsize=16,color="black",shape="triangle"];592 -> 594[label="",style="solid", color="black", weight=3]; 33.40/16.82 167 -> 211[label="",style="dashed", color="red", weight=0]; 33.40/16.82 167[label="pt (showChar (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 Zero))))))))))))))))))))))))))))))))))))))))))) (pt (pt (showsMyInt ww21) (pt (showString (Cons (Char (Pos (Succ ww22))) (Cons (Char (Pos (Succ ww23))) (Cons (Char (Pos (Succ ww24))) Nil)))) (showsMyInt ww25))) (showChar (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 Zero))))))))))))))))))))))))))))))))))))))))))))) ww26",fontsize=16,color="magenta"];167 -> 212[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 213[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 214[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 215[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 216[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 217[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 218[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 167 -> 219[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 593[label="primModInt (Pos (Succ ww143)) (Pos (Succ ww144))",fontsize=16,color="black",shape="box"];593 -> 595[label="",style="solid", color="black", weight=3]; 33.40/16.82 594[label="primDivNatS0 ww146 ww147 (primGEqNatS ww146 ww147)",fontsize=16,color="burlywood",shape="box"];1416[label="ww146/Succ ww1460",fontsize=10,color="white",style="solid",shape="box"];594 -> 1416[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1416 -> 596[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1417[label="ww146/Zero",fontsize=10,color="white",style="solid",shape="box"];594 -> 1417[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1417 -> 597[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 212[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 Zero)))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];213[label="ww21",fontsize=16,color="green",shape="box"];214[label="ww22",fontsize=16,color="green",shape="box"];215[label="ww25",fontsize=16,color="green",shape="box"];216[label="ww23",fontsize=16,color="green",shape="box"];217[label="ww26",fontsize=16,color="green",shape="box"];218[label="ww24",fontsize=16,color="green",shape="box"];219[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 Zero))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];211[label="pt (showChar (Char (Pos (Succ ww72)))) (pt (pt (showsMyInt ww73) (pt (showString (Cons (Char (Pos (Succ ww74))) (Cons (Char (Pos (Succ ww75))) (Cons (Char (Pos (Succ ww76))) Nil)))) (showsMyInt ww77))) (showChar (Char (Pos (Succ ww78))))) ww79",fontsize=16,color="black",shape="triangle"];211 -> 228[label="",style="solid", color="black", weight=3]; 33.40/16.82 595[label="Pos (primModNatS (Succ ww143) (Succ ww144))",fontsize=16,color="green",shape="box"];595 -> 598[label="",style="dashed", color="green", weight=3]; 33.40/16.82 596[label="primDivNatS0 (Succ ww1460) ww147 (primGEqNatS (Succ ww1460) ww147)",fontsize=16,color="burlywood",shape="box"];1418[label="ww147/Succ ww1470",fontsize=10,color="white",style="solid",shape="box"];596 -> 1418[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1418 -> 599[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1419[label="ww147/Zero",fontsize=10,color="white",style="solid",shape="box"];596 -> 1419[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1419 -> 600[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 597[label="primDivNatS0 Zero ww147 (primGEqNatS Zero ww147)",fontsize=16,color="burlywood",shape="box"];1420[label="ww147/Succ ww1470",fontsize=10,color="white",style="solid",shape="box"];597 -> 1420[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1420 -> 601[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1421[label="ww147/Zero",fontsize=10,color="white",style="solid",shape="box"];597 -> 1421[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1421 -> 602[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 228[label="showChar (Char (Pos (Succ ww72))) (pt (pt (showsMyInt ww73) (pt (showString (Cons (Char (Pos (Succ ww74))) (Cons (Char (Pos (Succ ww75))) (Cons (Char (Pos (Succ ww76))) Nil)))) (showsMyInt ww77))) (showChar (Char (Pos (Succ ww78)))) ww79)",fontsize=16,color="black",shape="box"];228 -> 237[label="",style="solid", color="black", weight=3]; 33.40/16.82 598[label="primModNatS (Succ ww143) (Succ ww144)",fontsize=16,color="burlywood",shape="triangle"];1422[label="ww144/Succ ww1440",fontsize=10,color="white",style="solid",shape="box"];598 -> 1422[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1422 -> 603[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1423[label="ww144/Zero",fontsize=10,color="white",style="solid",shape="box"];598 -> 1423[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1423 -> 604[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 599[label="primDivNatS0 (Succ ww1460) (Succ ww1470) (primGEqNatS (Succ ww1460) (Succ ww1470))",fontsize=16,color="black",shape="box"];599 -> 605[label="",style="solid", color="black", weight=3]; 33.40/16.82 600[label="primDivNatS0 (Succ ww1460) Zero (primGEqNatS (Succ ww1460) Zero)",fontsize=16,color="black",shape="box"];600 -> 606[label="",style="solid", color="black", weight=3]; 33.40/16.82 601[label="primDivNatS0 Zero (Succ ww1470) (primGEqNatS Zero (Succ ww1470))",fontsize=16,color="black",shape="box"];601 -> 607[label="",style="solid", color="black", weight=3]; 33.40/16.82 602[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];602 -> 608[label="",style="solid", color="black", weight=3]; 33.40/16.82 237[label="Cons (Char (Pos (Succ ww72))) (pt (pt (showsMyInt ww73) (pt (showString (Cons (Char (Pos (Succ ww74))) (Cons (Char (Pos (Succ ww75))) (Cons (Char (Pos (Succ ww76))) Nil)))) (showsMyInt ww77))) (showChar (Char (Pos (Succ ww78)))) ww79)",fontsize=16,color="green",shape="box"];237 -> 256[label="",style="dashed", color="green", weight=3]; 33.40/16.82 603[label="primModNatS (Succ ww143) (Succ (Succ ww1440))",fontsize=16,color="black",shape="box"];603 -> 609[label="",style="solid", color="black", weight=3]; 33.40/16.82 604[label="primModNatS (Succ ww143) (Succ Zero)",fontsize=16,color="black",shape="box"];604 -> 610[label="",style="solid", color="black", weight=3]; 33.40/16.82 605 -> 1055[label="",style="dashed", color="red", weight=0]; 33.40/16.82 605[label="primDivNatS0 (Succ ww1460) (Succ ww1470) (primGEqNatS ww1460 ww1470)",fontsize=16,color="magenta"];605 -> 1056[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 605 -> 1057[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 605 -> 1058[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 605 -> 1059[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 606[label="primDivNatS0 (Succ ww1460) Zero MyTrue",fontsize=16,color="black",shape="box"];606 -> 613[label="",style="solid", color="black", weight=3]; 33.40/16.82 607[label="primDivNatS0 Zero (Succ ww1470) MyFalse",fontsize=16,color="black",shape="box"];607 -> 614[label="",style="solid", color="black", weight=3]; 33.40/16.82 608[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];608 -> 615[label="",style="solid", color="black", weight=3]; 33.40/16.82 256[label="pt (pt (showsMyInt ww73) (pt (showString (Cons (Char (Pos (Succ ww74))) (Cons (Char (Pos (Succ ww75))) (Cons (Char (Pos (Succ ww76))) Nil)))) (showsMyInt ww77))) (showChar (Char (Pos (Succ ww78)))) ww79",fontsize=16,color="black",shape="box"];256 -> 286[label="",style="solid", color="black", weight=3]; 33.40/16.82 609[label="primModNatS0 ww143 ww1440 (primGEqNatS ww143 (Succ ww1440))",fontsize=16,color="burlywood",shape="box"];1424[label="ww143/Succ ww1430",fontsize=10,color="white",style="solid",shape="box"];609 -> 1424[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1424 -> 616[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1425[label="ww143/Zero",fontsize=10,color="white",style="solid",shape="box"];609 -> 1425[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1425 -> 617[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 610[label="Zero",fontsize=16,color="green",shape="box"];1056[label="ww1470",fontsize=16,color="green",shape="box"];1057[label="ww1470",fontsize=16,color="green",shape="box"];1058[label="ww1460",fontsize=16,color="green",shape="box"];1059[label="ww1460",fontsize=16,color="green",shape="box"];1055[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS ww190 ww191)",fontsize=16,color="burlywood",shape="triangle"];1426[label="ww190/Succ ww1900",fontsize=10,color="white",style="solid",shape="box"];1055 -> 1426[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1426 -> 1096[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1427[label="ww190/Zero",fontsize=10,color="white",style="solid",shape="box"];1055 -> 1427[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1427 -> 1097[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 613[label="Succ (primDivNatS (primMinusNatS (Succ ww1460) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];613 -> 622[label="",style="dashed", color="green", weight=3]; 33.40/16.82 614[label="Zero",fontsize=16,color="green",shape="box"];615[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];615 -> 623[label="",style="dashed", color="green", weight=3]; 33.40/16.82 286 -> 60[label="",style="dashed", color="red", weight=0]; 33.40/16.82 286[label="pt (showsMyInt ww73) (pt (showString (Cons (Char (Pos (Succ ww74))) (Cons (Char (Pos (Succ ww75))) (Cons (Char (Pos (Succ ww76))) Nil)))) (showsMyInt ww77)) (showChar (Char (Pos (Succ ww78))) ww79)",fontsize=16,color="magenta"];286 -> 298[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 286 -> 299[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 286 -> 300[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 286 -> 301[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 286 -> 302[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 286 -> 303[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 616[label="primModNatS0 (Succ ww1430) ww1440 (primGEqNatS (Succ ww1430) (Succ ww1440))",fontsize=16,color="black",shape="box"];616 -> 624[label="",style="solid", color="black", weight=3]; 33.40/16.82 617[label="primModNatS0 Zero ww1440 (primGEqNatS Zero (Succ ww1440))",fontsize=16,color="black",shape="box"];617 -> 625[label="",style="solid", color="black", weight=3]; 33.40/16.82 1096[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS (Succ ww1900) ww191)",fontsize=16,color="burlywood",shape="box"];1428[label="ww191/Succ ww1910",fontsize=10,color="white",style="solid",shape="box"];1096 -> 1428[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1428 -> 1103[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1429[label="ww191/Zero",fontsize=10,color="white",style="solid",shape="box"];1096 -> 1429[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1429 -> 1104[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1097[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS Zero ww191)",fontsize=16,color="burlywood",shape="box"];1430[label="ww191/Succ ww1910",fontsize=10,color="white",style="solid",shape="box"];1097 -> 1430[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1430 -> 1105[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1431[label="ww191/Zero",fontsize=10,color="white",style="solid",shape="box"];1097 -> 1431[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1431 -> 1106[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 622 -> 1289[label="",style="dashed", color="red", weight=0]; 33.40/16.82 622[label="primDivNatS (primMinusNatS (Succ ww1460) Zero) (Succ Zero)",fontsize=16,color="magenta"];622 -> 1290[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 622 -> 1291[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 622 -> 1292[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 623 -> 1289[label="",style="dashed", color="red", weight=0]; 33.40/16.82 623[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];623 -> 1293[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 623 -> 1294[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 623 -> 1295[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 298[label="ww74",fontsize=16,color="green",shape="box"];299[label="ww73",fontsize=16,color="green",shape="box"];300[label="ww75",fontsize=16,color="green",shape="box"];301[label="showChar (Char (Pos (Succ ww78))) ww79",fontsize=16,color="black",shape="box"];301 -> 325[label="",style="solid", color="black", weight=3]; 33.40/16.82 302[label="ww77",fontsize=16,color="green",shape="box"];303[label="ww76",fontsize=16,color="green",shape="box"];624[label="primModNatS0 (Succ ww1430) ww1440 (primGEqNatS ww1430 ww1440)",fontsize=16,color="burlywood",shape="box"];1432[label="ww1430/Succ ww14300",fontsize=10,color="white",style="solid",shape="box"];624 -> 1432[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1432 -> 632[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1433[label="ww1430/Zero",fontsize=10,color="white",style="solid",shape="box"];624 -> 1433[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1433 -> 633[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 625[label="primModNatS0 Zero ww1440 MyFalse",fontsize=16,color="black",shape="box"];625 -> 634[label="",style="solid", color="black", weight=3]; 33.40/16.82 1103[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS (Succ ww1900) (Succ ww1910))",fontsize=16,color="black",shape="box"];1103 -> 1113[label="",style="solid", color="black", weight=3]; 33.40/16.82 1104[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS (Succ ww1900) Zero)",fontsize=16,color="black",shape="box"];1104 -> 1114[label="",style="solid", color="black", weight=3]; 33.40/16.82 1105[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS Zero (Succ ww1910))",fontsize=16,color="black",shape="box"];1105 -> 1115[label="",style="solid", color="black", weight=3]; 33.40/16.82 1106[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1106 -> 1116[label="",style="solid", color="black", weight=3]; 33.40/16.82 1290[label="Zero",fontsize=16,color="green",shape="box"];1291[label="Succ ww1460",fontsize=16,color="green",shape="box"];1292[label="Zero",fontsize=16,color="green",shape="box"];1289[label="primDivNatS (primMinusNatS ww198 ww199) (Succ ww200)",fontsize=16,color="burlywood",shape="triangle"];1434[label="ww198/Succ ww1980",fontsize=10,color="white",style="solid",shape="box"];1289 -> 1434[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1434 -> 1314[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1435[label="ww198/Zero",fontsize=10,color="white",style="solid",shape="box"];1289 -> 1435[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1435 -> 1315[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1293[label="Zero",fontsize=16,color="green",shape="box"];1294[label="Zero",fontsize=16,color="green",shape="box"];1295[label="Zero",fontsize=16,color="green",shape="box"];325[label="Cons (Char (Pos (Succ ww78))) ww79",fontsize=16,color="green",shape="box"];632[label="primModNatS0 (Succ (Succ ww14300)) ww1440 (primGEqNatS (Succ ww14300) ww1440)",fontsize=16,color="burlywood",shape="box"];1436[label="ww1440/Succ ww14400",fontsize=10,color="white",style="solid",shape="box"];632 -> 1436[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1436 -> 643[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1437[label="ww1440/Zero",fontsize=10,color="white",style="solid",shape="box"];632 -> 1437[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1437 -> 644[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 633[label="primModNatS0 (Succ Zero) ww1440 (primGEqNatS Zero ww1440)",fontsize=16,color="burlywood",shape="box"];1438[label="ww1440/Succ ww14400",fontsize=10,color="white",style="solid",shape="box"];633 -> 1438[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1438 -> 645[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1439[label="ww1440/Zero",fontsize=10,color="white",style="solid",shape="box"];633 -> 1439[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1439 -> 646[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 634[label="Succ Zero",fontsize=16,color="green",shape="box"];1113 -> 1055[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1113[label="primDivNatS0 (Succ ww188) (Succ ww189) (primGEqNatS ww1900 ww1910)",fontsize=16,color="magenta"];1113 -> 1127[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1113 -> 1128[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1114[label="primDivNatS0 (Succ ww188) (Succ ww189) MyTrue",fontsize=16,color="black",shape="triangle"];1114 -> 1129[label="",style="solid", color="black", weight=3]; 33.40/16.82 1115[label="primDivNatS0 (Succ ww188) (Succ ww189) MyFalse",fontsize=16,color="black",shape="box"];1115 -> 1130[label="",style="solid", color="black", weight=3]; 33.40/16.82 1116 -> 1114[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1116[label="primDivNatS0 (Succ ww188) (Succ ww189) MyTrue",fontsize=16,color="magenta"];1314[label="primDivNatS (primMinusNatS (Succ ww1980) ww199) (Succ ww200)",fontsize=16,color="burlywood",shape="box"];1440[label="ww199/Succ ww1990",fontsize=10,color="white",style="solid",shape="box"];1314 -> 1440[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1440 -> 1322[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1441[label="ww199/Zero",fontsize=10,color="white",style="solid",shape="box"];1314 -> 1441[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1441 -> 1323[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1315[label="primDivNatS (primMinusNatS Zero ww199) (Succ ww200)",fontsize=16,color="burlywood",shape="box"];1442[label="ww199/Succ ww1990",fontsize=10,color="white",style="solid",shape="box"];1315 -> 1442[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1442 -> 1324[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1443[label="ww199/Zero",fontsize=10,color="white",style="solid",shape="box"];1315 -> 1443[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1443 -> 1325[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 643[label="primModNatS0 (Succ (Succ ww14300)) (Succ ww14400) (primGEqNatS (Succ ww14300) (Succ ww14400))",fontsize=16,color="black",shape="box"];643 -> 653[label="",style="solid", color="black", weight=3]; 33.40/16.82 644[label="primModNatS0 (Succ (Succ ww14300)) Zero (primGEqNatS (Succ ww14300) Zero)",fontsize=16,color="black",shape="box"];644 -> 654[label="",style="solid", color="black", weight=3]; 33.40/16.82 645[label="primModNatS0 (Succ Zero) (Succ ww14400) (primGEqNatS Zero (Succ ww14400))",fontsize=16,color="black",shape="box"];645 -> 655[label="",style="solid", color="black", weight=3]; 33.40/16.82 646[label="primModNatS0 (Succ Zero) Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];646 -> 656[label="",style="solid", color="black", weight=3]; 33.40/16.82 1127[label="ww1910",fontsize=16,color="green",shape="box"];1128[label="ww1900",fontsize=16,color="green",shape="box"];1129[label="Succ (primDivNatS (primMinusNatS (Succ ww188) (Succ ww189)) (Succ (Succ ww189)))",fontsize=16,color="green",shape="box"];1129 -> 1138[label="",style="dashed", color="green", weight=3]; 33.40/16.82 1130[label="Zero",fontsize=16,color="green",shape="box"];1322[label="primDivNatS (primMinusNatS (Succ ww1980) (Succ ww1990)) (Succ ww200)",fontsize=16,color="black",shape="box"];1322 -> 1330[label="",style="solid", color="black", weight=3]; 33.40/16.82 1323[label="primDivNatS (primMinusNatS (Succ ww1980) Zero) (Succ ww200)",fontsize=16,color="black",shape="box"];1323 -> 1331[label="",style="solid", color="black", weight=3]; 33.40/16.82 1324[label="primDivNatS (primMinusNatS Zero (Succ ww1990)) (Succ ww200)",fontsize=16,color="black",shape="box"];1324 -> 1332[label="",style="solid", color="black", weight=3]; 33.40/16.82 1325[label="primDivNatS (primMinusNatS Zero Zero) (Succ ww200)",fontsize=16,color="black",shape="box"];1325 -> 1333[label="",style="solid", color="black", weight=3]; 33.40/16.82 653 -> 1152[label="",style="dashed", color="red", weight=0]; 33.40/16.82 653[label="primModNatS0 (Succ (Succ ww14300)) (Succ ww14400) (primGEqNatS ww14300 ww14400)",fontsize=16,color="magenta"];653 -> 1153[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 653 -> 1154[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 653 -> 1155[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 653 -> 1156[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 654[label="primModNatS0 (Succ (Succ ww14300)) Zero MyTrue",fontsize=16,color="black",shape="box"];654 -> 665[label="",style="solid", color="black", weight=3]; 33.40/16.82 655[label="primModNatS0 (Succ Zero) (Succ ww14400) MyFalse",fontsize=16,color="black",shape="box"];655 -> 666[label="",style="solid", color="black", weight=3]; 33.40/16.82 656[label="primModNatS0 (Succ Zero) Zero MyTrue",fontsize=16,color="black",shape="box"];656 -> 667[label="",style="solid", color="black", weight=3]; 33.40/16.82 1138 -> 1289[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1138[label="primDivNatS (primMinusNatS (Succ ww188) (Succ ww189)) (Succ (Succ ww189))",fontsize=16,color="magenta"];1138 -> 1296[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1138 -> 1297[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1138 -> 1298[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1330 -> 1289[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1330[label="primDivNatS (primMinusNatS ww1980 ww1990) (Succ ww200)",fontsize=16,color="magenta"];1330 -> 1338[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1330 -> 1339[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1331 -> 592[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1331[label="primDivNatS (Succ ww1980) (Succ ww200)",fontsize=16,color="magenta"];1331 -> 1340[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1331 -> 1341[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1332[label="primDivNatS Zero (Succ ww200)",fontsize=16,color="black",shape="triangle"];1332 -> 1342[label="",style="solid", color="black", weight=3]; 33.40/16.82 1333 -> 1332[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1333[label="primDivNatS Zero (Succ ww200)",fontsize=16,color="magenta"];1153[label="ww14400",fontsize=16,color="green",shape="box"];1154[label="ww14400",fontsize=16,color="green",shape="box"];1155[label="ww14300",fontsize=16,color="green",shape="box"];1156[label="Succ ww14300",fontsize=16,color="green",shape="box"];1152[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS ww195 ww196)",fontsize=16,color="burlywood",shape="triangle"];1444[label="ww195/Succ ww1950",fontsize=10,color="white",style="solid",shape="box"];1152 -> 1444[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1444 -> 1193[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1445[label="ww195/Zero",fontsize=10,color="white",style="solid",shape="box"];1152 -> 1445[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1445 -> 1194[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 665 -> 1343[label="",style="dashed", color="red", weight=0]; 33.40/16.82 665[label="primModNatS (primMinusNatS (Succ (Succ ww14300)) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];665 -> 1344[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 665 -> 1345[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 665 -> 1346[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 666[label="Succ (Succ Zero)",fontsize=16,color="green",shape="box"];667 -> 1343[label="",style="dashed", color="red", weight=0]; 33.40/16.82 667[label="primModNatS (primMinusNatS (Succ Zero) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];667 -> 1347[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 667 -> 1348[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 667 -> 1349[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1296[label="Succ ww189",fontsize=16,color="green",shape="box"];1297[label="Succ ww188",fontsize=16,color="green",shape="box"];1298[label="Succ ww189",fontsize=16,color="green",shape="box"];1338[label="ww1990",fontsize=16,color="green",shape="box"];1339[label="ww1980",fontsize=16,color="green",shape="box"];1340[label="ww200",fontsize=16,color="green",shape="box"];1341[label="ww1980",fontsize=16,color="green",shape="box"];1342[label="Zero",fontsize=16,color="green",shape="box"];1193[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS (Succ ww1950) ww196)",fontsize=16,color="burlywood",shape="box"];1446[label="ww196/Succ ww1960",fontsize=10,color="white",style="solid",shape="box"];1193 -> 1446[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1446 -> 1197[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1447[label="ww196/Zero",fontsize=10,color="white",style="solid",shape="box"];1193 -> 1447[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1447 -> 1198[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1194[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS Zero ww196)",fontsize=16,color="burlywood",shape="box"];1448[label="ww196/Succ ww1960",fontsize=10,color="white",style="solid",shape="box"];1194 -> 1448[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1448 -> 1199[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1449[label="ww196/Zero",fontsize=10,color="white",style="solid",shape="box"];1194 -> 1449[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1449 -> 1200[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1344[label="Succ (Succ ww14300)",fontsize=16,color="green",shape="box"];1345[label="Succ Zero",fontsize=16,color="green",shape="box"];1346[label="Succ Zero",fontsize=16,color="green",shape="box"];1343[label="primModNatS (primMinusNatS ww202 ww203) (Succ ww204)",fontsize=16,color="burlywood",shape="triangle"];1450[label="ww202/Succ ww2020",fontsize=10,color="white",style="solid",shape="box"];1343 -> 1450[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1450 -> 1374[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1451[label="ww202/Zero",fontsize=10,color="white",style="solid",shape="box"];1343 -> 1451[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1451 -> 1375[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1347[label="Succ Zero",fontsize=16,color="green",shape="box"];1348[label="Succ Zero",fontsize=16,color="green",shape="box"];1349[label="Succ Zero",fontsize=16,color="green",shape="box"];1197[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS (Succ ww1950) (Succ ww1960))",fontsize=16,color="black",shape="box"];1197 -> 1205[label="",style="solid", color="black", weight=3]; 33.40/16.82 1198[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS (Succ ww1950) Zero)",fontsize=16,color="black",shape="box"];1198 -> 1206[label="",style="solid", color="black", weight=3]; 33.40/16.82 1199[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS Zero (Succ ww1960))",fontsize=16,color="black",shape="box"];1199 -> 1207[label="",style="solid", color="black", weight=3]; 33.40/16.82 1200[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1200 -> 1208[label="",style="solid", color="black", weight=3]; 33.40/16.82 1374[label="primModNatS (primMinusNatS (Succ ww2020) ww203) (Succ ww204)",fontsize=16,color="burlywood",shape="box"];1452[label="ww203/Succ ww2030",fontsize=10,color="white",style="solid",shape="box"];1374 -> 1452[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1452 -> 1376[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1453[label="ww203/Zero",fontsize=10,color="white",style="solid",shape="box"];1374 -> 1453[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1453 -> 1377[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1375[label="primModNatS (primMinusNatS Zero ww203) (Succ ww204)",fontsize=16,color="burlywood",shape="box"];1454[label="ww203/Succ ww2030",fontsize=10,color="white",style="solid",shape="box"];1375 -> 1454[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1454 -> 1378[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1455[label="ww203/Zero",fontsize=10,color="white",style="solid",shape="box"];1375 -> 1455[label="",style="solid", color="burlywood", weight=9]; 33.40/16.82 1455 -> 1379[label="",style="solid", color="burlywood", weight=3]; 33.40/16.82 1205 -> 1152[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1205[label="primModNatS0 (Succ ww193) (Succ ww194) (primGEqNatS ww1950 ww1960)",fontsize=16,color="magenta"];1205 -> 1213[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1205 -> 1214[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1206[label="primModNatS0 (Succ ww193) (Succ ww194) MyTrue",fontsize=16,color="black",shape="triangle"];1206 -> 1215[label="",style="solid", color="black", weight=3]; 33.40/16.82 1207[label="primModNatS0 (Succ ww193) (Succ ww194) MyFalse",fontsize=16,color="black",shape="box"];1207 -> 1216[label="",style="solid", color="black", weight=3]; 33.40/16.82 1208 -> 1206[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1208[label="primModNatS0 (Succ ww193) (Succ ww194) MyTrue",fontsize=16,color="magenta"];1376[label="primModNatS (primMinusNatS (Succ ww2020) (Succ ww2030)) (Succ ww204)",fontsize=16,color="black",shape="box"];1376 -> 1380[label="",style="solid", color="black", weight=3]; 33.40/16.82 1377[label="primModNatS (primMinusNatS (Succ ww2020) Zero) (Succ ww204)",fontsize=16,color="black",shape="box"];1377 -> 1381[label="",style="solid", color="black", weight=3]; 33.40/16.82 1378[label="primModNatS (primMinusNatS Zero (Succ ww2030)) (Succ ww204)",fontsize=16,color="black",shape="box"];1378 -> 1382[label="",style="solid", color="black", weight=3]; 33.40/16.82 1379[label="primModNatS (primMinusNatS Zero Zero) (Succ ww204)",fontsize=16,color="black",shape="box"];1379 -> 1383[label="",style="solid", color="black", weight=3]; 33.40/16.82 1213[label="ww1960",fontsize=16,color="green",shape="box"];1214[label="ww1950",fontsize=16,color="green",shape="box"];1215 -> 1343[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1215[label="primModNatS (primMinusNatS (Succ ww193) (Succ (Succ ww194))) (Succ (Succ (Succ ww194)))",fontsize=16,color="magenta"];1215 -> 1356[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1215 -> 1357[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1215 -> 1358[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1216[label="Succ (Succ ww193)",fontsize=16,color="green",shape="box"];1380 -> 1343[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1380[label="primModNatS (primMinusNatS ww2020 ww2030) (Succ ww204)",fontsize=16,color="magenta"];1380 -> 1384[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1380 -> 1385[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1381 -> 598[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1381[label="primModNatS (Succ ww2020) (Succ ww204)",fontsize=16,color="magenta"];1381 -> 1386[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1381 -> 1387[label="",style="dashed", color="magenta", weight=3]; 33.40/16.82 1382[label="primModNatS Zero (Succ ww204)",fontsize=16,color="black",shape="triangle"];1382 -> 1388[label="",style="solid", color="black", weight=3]; 33.40/16.82 1383 -> 1382[label="",style="dashed", color="red", weight=0]; 33.40/16.82 1383[label="primModNatS Zero (Succ ww204)",fontsize=16,color="magenta"];1356[label="Succ ww193",fontsize=16,color="green",shape="box"];1357[label="Succ (Succ ww194)",fontsize=16,color="green",shape="box"];1358[label="Succ (Succ ww194)",fontsize=16,color="green",shape="box"];1384[label="ww2020",fontsize=16,color="green",shape="box"];1385[label="ww2030",fontsize=16,color="green",shape="box"];1386[label="ww204",fontsize=16,color="green",shape="box"];1387[label="ww2020",fontsize=16,color="green",shape="box"];1388[label="Zero",fontsize=16,color="green",shape="box"];} 33.40/16.82 33.40/16.82 ---------------------------------------- 33.40/16.82 33.40/16.82 (60) 33.40/16.82 TRUE 33.40/16.87 EOF