31.03/16.21 MAYBE 33.61/16.91 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 33.61/16.91 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 33.61/16.91 33.61/16.91 33.61/16.91 H-Termination with start terms of the given HASKELL could not be shown: 33.61/16.91 33.61/16.91 (0) HASKELL 33.61/16.91 (1) BR [EQUIVALENT, 0 ms] 33.61/16.91 (2) HASKELL 33.61/16.91 (3) COR [EQUIVALENT, 0 ms] 33.61/16.91 (4) HASKELL 33.61/16.91 (5) Narrow [SOUND, 0 ms] 33.61/16.91 (6) AND 33.61/16.91 (7) QDP 33.61/16.91 (8) QDPOrderProof [EQUIVALENT, 0 ms] 33.61/16.91 (9) QDP 33.61/16.91 (10) DependencyGraphProof [EQUIVALENT, 0 ms] 33.61/16.91 (11) QDP 33.61/16.91 (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] 33.61/16.91 (13) YES 33.61/16.91 (14) QDP 33.61/16.91 (15) DependencyGraphProof [EQUIVALENT, 0 ms] 33.61/16.91 (16) QDP 33.61/16.91 (17) QDPOrderProof [EQUIVALENT, 0 ms] 33.61/16.91 (18) QDP 33.61/16.91 (19) DependencyGraphProof [EQUIVALENT, 0 ms] 33.61/16.91 (20) QDP 33.61/16.91 (21) QDPSizeChangeProof [EQUIVALENT, 0 ms] 33.61/16.91 (22) YES 33.61/16.91 (23) QDP 33.61/16.91 (24) QDPSizeChangeProof [EQUIVALENT, 0 ms] 33.61/16.91 (25) YES 33.61/16.91 (26) QDP 33.61/16.91 (27) DependencyGraphProof [EQUIVALENT, 0 ms] 33.61/16.91 (28) QDP 33.61/16.91 (29) TransformationProof [EQUIVALENT, 0 ms] 33.61/16.91 (30) QDP 33.61/16.91 (31) UsableRulesProof [EQUIVALENT, 0 ms] 33.61/16.91 (32) QDP 33.61/16.91 (33) QReductionProof [EQUIVALENT, 0 ms] 33.61/16.91 (34) QDP 33.61/16.91 (35) MNOCProof [EQUIVALENT, 0 ms] 33.61/16.91 (36) QDP 33.61/16.91 (37) InductionCalculusProof [EQUIVALENT, 30 ms] 33.61/16.91 (38) QDP 33.61/16.91 (39) TransformationProof [EQUIVALENT, 0 ms] 33.61/16.91 (40) QDP 33.61/16.91 (41) DependencyGraphProof [EQUIVALENT, 0 ms] 33.61/16.91 (42) QDP 33.61/16.91 (43) TransformationProof [EQUIVALENT, 0 ms] 33.61/16.91 (44) QDP 33.61/16.91 (45) DependencyGraphProof [EQUIVALENT, 0 ms] 33.61/16.91 (46) QDP 33.61/16.91 (47) TransformationProof [EQUIVALENT, 0 ms] 33.61/16.91 (48) QDP 33.61/16.91 (49) DependencyGraphProof [EQUIVALENT, 0 ms] 33.61/16.91 (50) QDP 33.61/16.91 (51) TransformationProof [EQUIVALENT, 0 ms] 33.61/16.91 (52) QDP 33.61/16.91 (53) DependencyGraphProof [EQUIVALENT, 0 ms] 33.61/16.91 (54) QDP 33.61/16.91 (55) MNOCProof [EQUIVALENT, 0 ms] 33.61/16.91 (56) QDP 33.61/16.91 (57) InductionCalculusProof [EQUIVALENT, 0 ms] 33.61/16.91 (58) QDP 33.61/16.91 (59) Narrow [COMPLETE, 0 ms] 33.61/16.91 (60) TRUE 33.61/16.91 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (0) 33.61/16.91 Obligation: 33.61/16.91 mainModule Main 33.61/16.91 module Main where { 33.61/16.91 import qualified Prelude; 33.61/16.91 data Main.Char = Char MyInt ; 33.61/16.91 33.61/16.91 data List a = Cons a (List a) | Nil ; 33.61/16.91 33.61/16.91 data MyBool = MyTrue | MyFalse ; 33.61/16.91 33.61/16.91 data MyInt = Pos Main.Nat | Neg Main.Nat ; 33.61/16.91 33.61/16.91 data Main.Nat = Succ Main.Nat | Zero ; 33.61/16.91 33.61/16.91 data Ordering = LT | EQ | GT ; 33.61/16.91 33.61/16.91 data Ratio a = CnPc a a ; 33.61/16.91 33.61/16.91 compareMyInt :: MyInt -> MyInt -> Ordering; 33.61/16.91 compareMyInt = primCmpInt; 33.61/16.91 33.61/16.91 divMyInt :: MyInt -> MyInt -> MyInt; 33.61/16.91 divMyInt = primDivInt; 33.61/16.91 33.61/16.91 error :: a; 33.61/16.91 error = stop MyTrue; 33.61/16.91 33.61/16.91 esEsOrdering :: Ordering -> Ordering -> MyBool; 33.61/16.91 esEsOrdering LT LT = MyTrue; 33.61/16.91 esEsOrdering LT EQ = MyFalse; 33.61/16.91 esEsOrdering LT GT = MyFalse; 33.61/16.91 esEsOrdering EQ LT = MyFalse; 33.61/16.91 esEsOrdering EQ EQ = MyTrue; 33.61/16.91 esEsOrdering EQ GT = MyFalse; 33.61/16.91 esEsOrdering GT LT = MyFalse; 33.61/16.91 esEsOrdering GT EQ = MyFalse; 33.61/16.91 esEsOrdering GT GT = MyTrue; 33.61/16.91 33.61/16.91 gtMyInt :: MyInt -> MyInt -> MyBool; 33.61/16.91 gtMyInt x y = esEsOrdering (compareMyInt x y) GT; 33.61/16.91 33.61/16.91 modMyInt :: MyInt -> MyInt -> MyInt; 33.61/16.91 modMyInt = primModInt; 33.61/16.91 33.61/16.91 primCmpInt :: MyInt -> MyInt -> Ordering; 33.61/16.91 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 33.61/16.91 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 33.61/16.91 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 33.61/16.91 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 33.61/16.91 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 33.61/16.91 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 33.61/16.91 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 33.61/16.91 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 33.61/16.91 33.61/16.91 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 33.61/16.91 primCmpNat Main.Zero Main.Zero = EQ; 33.61/16.91 primCmpNat Main.Zero (Main.Succ y) = LT; 33.61/16.91 primCmpNat (Main.Succ x) Main.Zero = GT; 33.61/16.91 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 33.61/16.91 33.61/16.91 primDivInt :: MyInt -> MyInt -> MyInt; 33.61/16.91 primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 33.61/16.91 primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 33.61/16.91 primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 33.61/16.91 primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 33.61/16.91 primDivInt vy vz = Main.error; 33.61/16.91 33.61/16.91 primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primDivNatP Main.Zero Main.Zero = Main.error; 33.61/16.91 primDivNatP (Main.Succ x) Main.Zero = Main.error; 33.61/16.91 primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); 33.61/16.91 primDivNatP Main.Zero (Main.Succ x) = Main.Zero; 33.61/16.91 33.61/16.91 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primDivNatS Main.Zero Main.Zero = Main.error; 33.61/16.91 primDivNatS (Main.Succ x) Main.Zero = Main.error; 33.61/16.91 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 33.61/16.91 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 33.61/16.91 33.61/16.91 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 33.61/16.91 primDivNatS0 x y MyFalse = Main.Zero; 33.61/16.91 33.61/16.91 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 33.61/16.91 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 33.61/16.91 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 33.61/16.91 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 33.61/16.91 primGEqNatS Main.Zero Main.Zero = MyTrue; 33.61/16.91 33.61/16.91 primIntToChar :: MyInt -> Main.Char; 33.61/16.91 primIntToChar x = Main.Char x; 33.61/16.91 33.61/16.91 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 33.61/16.91 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 33.61/16.91 primMinusNatS x Main.Zero = x; 33.61/16.91 33.61/16.91 primModInt :: MyInt -> MyInt -> MyInt; 33.61/16.91 primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 33.61/16.91 primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); 33.61/16.91 primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); 33.61/16.91 primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 33.61/16.91 primModInt vw vx = Main.error; 33.61/16.91 33.61/16.91 primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primModNatP Main.Zero Main.Zero = Main.error; 33.61/16.91 primModNatP Main.Zero (Main.Succ x) = Main.Zero; 33.61/16.91 primModNatP (Main.Succ x) Main.Zero = Main.error; 33.61/16.91 primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 33.61/16.91 primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); 33.61/16.91 33.61/16.91 primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 33.61/16.91 primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; 33.61/16.91 33.61/16.91 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primModNatS Main.Zero Main.Zero = Main.error; 33.61/16.91 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 33.61/16.91 primModNatS (Main.Succ x) Main.Zero = Main.error; 33.61/16.91 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 33.61/16.91 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 33.61/16.91 33.61/16.91 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 33.61/16.91 primModNatS0 x y MyFalse = Main.Succ x; 33.61/16.91 33.61/16.91 primShowInt :: MyInt -> List Main.Char; 33.61/16.91 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.61/16.91 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.61/16.91 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.61/16.91 33.61/16.91 psPs :: List a -> List a -> List a; 33.61/16.91 psPs Nil ys = ys; 33.61/16.91 psPs (Cons x xs) ys = Cons x (psPs xs ys); 33.61/16.91 33.61/16.91 pt :: (a -> b) -> (c -> a) -> c -> b; 33.61/16.91 pt f g x = f (g x); 33.61/16.91 33.61/16.91 showChar :: Main.Char -> List Main.Char -> List Main.Char; 33.61/16.91 showChar = Cons; 33.61/16.91 33.61/16.91 showMyInt :: MyInt -> List Main.Char; 33.61/16.91 showMyInt = primShowInt; 33.61/16.91 33.61/16.91 showParen :: MyBool -> (List Main.Char -> List Main.Char) -> List Main.Char -> List Main.Char; 33.61/16.91 showParen b p = showParen0 p b; 33.61/16.91 33.61/16.91 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.61/16.91 showParen0 p MyFalse = p; 33.61/16.91 33.61/16.91 showString :: List Main.Char -> List Main.Char -> List Main.Char; 33.61/16.91 showString = psPs; 33.61/16.91 33.61/16.91 showsMyInt :: MyInt -> List Main.Char -> List Main.Char; 33.61/16.91 showsMyInt = showsPrecMyInt (Main.Pos Main.Zero); 33.61/16.91 33.61/16.91 showsPrecMyInt :: MyInt -> MyInt -> List Main.Char -> List Main.Char; 33.61/16.91 showsPrecMyInt vv x s = psPs (showMyInt x) s; 33.61/16.91 33.61/16.91 showsPrecRatio :: MyInt -> Ratio MyInt -> List Main.Char -> List Main.Char; 33.61/16.91 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.61/16.91 33.61/16.91 showsRatio :: Ratio MyInt -> List Main.Char -> List Main.Char; 33.61/16.91 showsRatio = showsPrecRatio (Main.Pos Main.Zero); 33.61/16.91 33.61/16.91 stop :: MyBool -> a; 33.61/16.91 stop MyFalse = stop MyFalse; 33.61/16.91 33.61/16.91 toEnumChar :: MyInt -> Main.Char; 33.61/16.91 toEnumChar = primIntToChar; 33.61/16.91 33.61/16.91 } 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (1) BR (EQUIVALENT) 33.61/16.91 Replaced joker patterns by fresh variables and removed binding patterns. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (2) 33.61/16.91 Obligation: 33.61/16.91 mainModule Main 33.61/16.91 module Main where { 33.61/16.91 import qualified Prelude; 33.61/16.91 data Main.Char = Char MyInt ; 33.61/16.91 33.61/16.91 data List a = Cons a (List a) | Nil ; 33.61/16.91 33.61/16.91 data MyBool = MyTrue | MyFalse ; 33.61/16.91 33.61/16.91 data MyInt = Pos Main.Nat | Neg Main.Nat ; 33.61/16.91 33.61/16.91 data Main.Nat = Succ Main.Nat | Zero ; 33.61/16.91 33.61/16.91 data Ordering = LT | EQ | GT ; 33.61/16.91 33.61/16.91 data Ratio a = CnPc a a ; 33.61/16.91 33.61/16.91 compareMyInt :: MyInt -> MyInt -> Ordering; 33.61/16.91 compareMyInt = primCmpInt; 33.61/16.91 33.61/16.91 divMyInt :: MyInt -> MyInt -> MyInt; 33.61/16.91 divMyInt = primDivInt; 33.61/16.91 33.61/16.91 error :: a; 33.61/16.91 error = stop MyTrue; 33.61/16.91 33.61/16.91 esEsOrdering :: Ordering -> Ordering -> MyBool; 33.61/16.91 esEsOrdering LT LT = MyTrue; 33.61/16.91 esEsOrdering LT EQ = MyFalse; 33.61/16.91 esEsOrdering LT GT = MyFalse; 33.61/16.91 esEsOrdering EQ LT = MyFalse; 33.61/16.91 esEsOrdering EQ EQ = MyTrue; 33.61/16.91 esEsOrdering EQ GT = MyFalse; 33.61/16.91 esEsOrdering GT LT = MyFalse; 33.61/16.91 esEsOrdering GT EQ = MyFalse; 33.61/16.91 esEsOrdering GT GT = MyTrue; 33.61/16.91 33.61/16.91 gtMyInt :: MyInt -> MyInt -> MyBool; 33.61/16.91 gtMyInt x y = esEsOrdering (compareMyInt x y) GT; 33.61/16.91 33.61/16.91 modMyInt :: MyInt -> MyInt -> MyInt; 33.61/16.91 modMyInt = primModInt; 33.61/16.91 33.61/16.91 primCmpInt :: MyInt -> MyInt -> Ordering; 33.61/16.91 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 33.61/16.91 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 33.61/16.91 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 33.61/16.91 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 33.61/16.91 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 33.61/16.91 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 33.61/16.91 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 33.61/16.91 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 33.61/16.91 33.61/16.91 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 33.61/16.91 primCmpNat Main.Zero Main.Zero = EQ; 33.61/16.91 primCmpNat Main.Zero (Main.Succ y) = LT; 33.61/16.91 primCmpNat (Main.Succ x) Main.Zero = GT; 33.61/16.91 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 33.61/16.91 33.61/16.91 primDivInt :: MyInt -> MyInt -> MyInt; 33.61/16.91 primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 33.61/16.91 primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 33.61/16.91 primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 33.61/16.91 primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 33.61/16.91 primDivInt vy vz = Main.error; 33.61/16.91 33.61/16.91 primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primDivNatP Main.Zero Main.Zero = Main.error; 33.61/16.91 primDivNatP (Main.Succ x) Main.Zero = Main.error; 33.61/16.91 primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); 33.61/16.91 primDivNatP Main.Zero (Main.Succ x) = Main.Zero; 33.61/16.91 33.61/16.91 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primDivNatS Main.Zero Main.Zero = Main.error; 33.61/16.91 primDivNatS (Main.Succ x) Main.Zero = Main.error; 33.61/16.91 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 33.61/16.91 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 33.61/16.91 33.61/16.91 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 33.61/16.91 primDivNatS0 x y MyFalse = Main.Zero; 33.61/16.91 33.61/16.91 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 33.61/16.91 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 33.61/16.91 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 33.61/16.91 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 33.61/16.91 primGEqNatS Main.Zero Main.Zero = MyTrue; 33.61/16.91 33.61/16.91 primIntToChar :: MyInt -> Main.Char; 33.61/16.91 primIntToChar x = Main.Char x; 33.61/16.91 33.61/16.91 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 33.61/16.91 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 33.61/16.91 primMinusNatS x Main.Zero = x; 33.61/16.91 33.61/16.91 primModInt :: MyInt -> MyInt -> MyInt; 33.61/16.91 primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 33.61/16.91 primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); 33.61/16.91 primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); 33.61/16.91 primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 33.61/16.91 primModInt vw vx = Main.error; 33.61/16.91 33.61/16.91 primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primModNatP Main.Zero Main.Zero = Main.error; 33.61/16.91 primModNatP Main.Zero (Main.Succ x) = Main.Zero; 33.61/16.91 primModNatP (Main.Succ x) Main.Zero = Main.error; 33.61/16.91 primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 33.61/16.91 primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); 33.61/16.91 33.61/16.91 primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 33.61/16.91 primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; 33.61/16.91 33.61/16.91 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primModNatS Main.Zero Main.Zero = Main.error; 33.61/16.91 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 33.61/16.91 primModNatS (Main.Succ x) Main.Zero = Main.error; 33.61/16.91 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 33.61/16.91 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 33.61/16.91 33.61/16.91 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 33.61/16.91 primModNatS0 x y MyFalse = Main.Succ x; 33.61/16.91 33.61/16.91 primShowInt :: MyInt -> List Main.Char; 33.61/16.91 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.61/16.91 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.61/16.91 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.61/16.91 33.61/16.91 psPs :: List a -> List a -> List a; 33.61/16.91 psPs Nil ys = ys; 33.61/16.91 psPs (Cons x xs) ys = Cons x (psPs xs ys); 33.61/16.91 33.61/16.91 pt :: (b -> a) -> (c -> b) -> c -> a; 33.61/16.91 pt f g x = f (g x); 33.61/16.91 33.61/16.91 showChar :: Main.Char -> List Main.Char -> List Main.Char; 33.61/16.91 showChar = Cons; 33.61/16.91 33.61/16.91 showMyInt :: MyInt -> List Main.Char; 33.61/16.91 showMyInt = primShowInt; 33.61/16.91 33.61/16.91 showParen :: MyBool -> (List Main.Char -> List Main.Char) -> List Main.Char -> List Main.Char; 33.61/16.91 showParen b p = showParen0 p b; 33.61/16.91 33.61/16.91 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.61/16.91 showParen0 p MyFalse = p; 33.61/16.91 33.61/16.91 showString :: List Main.Char -> List Main.Char -> List Main.Char; 33.61/16.91 showString = psPs; 33.61/16.91 33.61/16.91 showsMyInt :: MyInt -> List Main.Char -> List Main.Char; 33.61/16.91 showsMyInt = showsPrecMyInt (Main.Pos Main.Zero); 33.61/16.91 33.61/16.91 showsPrecMyInt :: MyInt -> MyInt -> List Main.Char -> List Main.Char; 33.61/16.91 showsPrecMyInt vv x s = psPs (showMyInt x) s; 33.61/16.91 33.61/16.91 showsPrecRatio :: MyInt -> Ratio MyInt -> List Main.Char -> List Main.Char; 33.61/16.91 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.61/16.91 33.61/16.91 showsRatio :: Ratio MyInt -> List Main.Char -> List Main.Char; 33.61/16.91 showsRatio = showsPrecRatio (Main.Pos Main.Zero); 33.61/16.91 33.61/16.91 stop :: MyBool -> a; 33.61/16.91 stop MyFalse = stop MyFalse; 33.61/16.91 33.61/16.91 toEnumChar :: MyInt -> Main.Char; 33.61/16.91 toEnumChar = primIntToChar; 33.61/16.91 33.61/16.91 } 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (3) COR (EQUIVALENT) 33.61/16.91 Cond Reductions: 33.61/16.91 The following Function with conditions 33.61/16.91 "undefined |Falseundefined; 33.61/16.91 " 33.61/16.91 is transformed to 33.61/16.91 "undefined = undefined1; 33.61/16.91 " 33.61/16.91 "undefined0 True = undefined; 33.61/16.91 " 33.61/16.91 "undefined1 = undefined0 False; 33.61/16.91 " 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (4) 33.61/16.91 Obligation: 33.61/16.91 mainModule Main 33.61/16.91 module Main where { 33.61/16.91 import qualified Prelude; 33.61/16.91 data Main.Char = Char MyInt ; 33.61/16.91 33.61/16.91 data List a = Cons a (List a) | Nil ; 33.61/16.91 33.61/16.91 data MyBool = MyTrue | MyFalse ; 33.61/16.91 33.61/16.91 data MyInt = Pos Main.Nat | Neg Main.Nat ; 33.61/16.91 33.61/16.91 data Main.Nat = Succ Main.Nat | Zero ; 33.61/16.91 33.61/16.91 data Ordering = LT | EQ | GT ; 33.61/16.91 33.61/16.91 data Ratio a = CnPc a a ; 33.61/16.91 33.61/16.91 compareMyInt :: MyInt -> MyInt -> Ordering; 33.61/16.91 compareMyInt = primCmpInt; 33.61/16.91 33.61/16.91 divMyInt :: MyInt -> MyInt -> MyInt; 33.61/16.91 divMyInt = primDivInt; 33.61/16.91 33.61/16.91 error :: a; 33.61/16.91 error = stop MyTrue; 33.61/16.91 33.61/16.91 esEsOrdering :: Ordering -> Ordering -> MyBool; 33.61/16.91 esEsOrdering LT LT = MyTrue; 33.61/16.91 esEsOrdering LT EQ = MyFalse; 33.61/16.91 esEsOrdering LT GT = MyFalse; 33.61/16.91 esEsOrdering EQ LT = MyFalse; 33.61/16.91 esEsOrdering EQ EQ = MyTrue; 33.61/16.91 esEsOrdering EQ GT = MyFalse; 33.61/16.91 esEsOrdering GT LT = MyFalse; 33.61/16.91 esEsOrdering GT EQ = MyFalse; 33.61/16.91 esEsOrdering GT GT = MyTrue; 33.61/16.91 33.61/16.91 gtMyInt :: MyInt -> MyInt -> MyBool; 33.61/16.91 gtMyInt x y = esEsOrdering (compareMyInt x y) GT; 33.61/16.91 33.61/16.91 modMyInt :: MyInt -> MyInt -> MyInt; 33.61/16.91 modMyInt = primModInt; 33.61/16.91 33.61/16.91 primCmpInt :: MyInt -> MyInt -> Ordering; 33.61/16.91 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 33.61/16.91 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 33.61/16.91 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 33.61/16.91 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 33.61/16.91 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 33.61/16.91 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 33.61/16.91 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 33.61/16.91 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 33.61/16.91 33.61/16.91 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 33.61/16.91 primCmpNat Main.Zero Main.Zero = EQ; 33.61/16.91 primCmpNat Main.Zero (Main.Succ y) = LT; 33.61/16.91 primCmpNat (Main.Succ x) Main.Zero = GT; 33.61/16.91 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 33.61/16.91 33.61/16.91 primDivInt :: MyInt -> MyInt -> MyInt; 33.61/16.91 primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 33.61/16.91 primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 33.61/16.91 primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 33.61/16.91 primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 33.61/16.91 primDivInt vy vz = Main.error; 33.61/16.91 33.61/16.91 primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primDivNatP Main.Zero Main.Zero = Main.error; 33.61/16.91 primDivNatP (Main.Succ x) Main.Zero = Main.error; 33.61/16.91 primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); 33.61/16.91 primDivNatP Main.Zero (Main.Succ x) = Main.Zero; 33.61/16.91 33.61/16.91 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primDivNatS Main.Zero Main.Zero = Main.error; 33.61/16.91 primDivNatS (Main.Succ x) Main.Zero = Main.error; 33.61/16.91 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 33.61/16.91 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 33.61/16.91 33.61/16.91 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 33.61/16.91 primDivNatS0 x y MyFalse = Main.Zero; 33.61/16.91 33.61/16.91 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 33.61/16.91 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 33.61/16.91 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 33.61/16.91 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 33.61/16.91 primGEqNatS Main.Zero Main.Zero = MyTrue; 33.61/16.91 33.61/16.91 primIntToChar :: MyInt -> Main.Char; 33.61/16.91 primIntToChar x = Main.Char x; 33.61/16.91 33.61/16.91 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 33.61/16.91 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 33.61/16.91 primMinusNatS x Main.Zero = x; 33.61/16.91 33.61/16.91 primModInt :: MyInt -> MyInt -> MyInt; 33.61/16.91 primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 33.61/16.91 primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); 33.61/16.91 primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); 33.61/16.91 primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 33.61/16.91 primModInt vw vx = Main.error; 33.61/16.91 33.61/16.91 primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primModNatP Main.Zero Main.Zero = Main.error; 33.61/16.91 primModNatP Main.Zero (Main.Succ x) = Main.Zero; 33.61/16.91 primModNatP (Main.Succ x) Main.Zero = Main.error; 33.61/16.91 primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 33.61/16.91 primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); 33.61/16.91 33.61/16.91 primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 33.61/16.91 primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; 33.61/16.91 33.61/16.91 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 33.61/16.91 primModNatS Main.Zero Main.Zero = Main.error; 33.61/16.91 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 33.61/16.91 primModNatS (Main.Succ x) Main.Zero = Main.error; 33.61/16.91 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 33.61/16.91 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 33.61/16.91 33.61/16.91 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 33.61/16.91 primModNatS0 x y MyFalse = Main.Succ x; 33.61/16.91 33.61/16.91 primShowInt :: MyInt -> List Main.Char; 33.61/16.91 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.61/16.91 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.61/16.91 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.61/16.91 33.61/16.91 psPs :: List a -> List a -> List a; 33.61/16.91 psPs Nil ys = ys; 33.61/16.91 psPs (Cons x xs) ys = Cons x (psPs xs ys); 33.61/16.91 33.61/16.91 pt :: (a -> c) -> (b -> a) -> b -> c; 33.61/16.91 pt f g x = f (g x); 33.61/16.91 33.61/16.91 showChar :: Main.Char -> List Main.Char -> List Main.Char; 33.61/16.91 showChar = Cons; 33.61/16.91 33.61/16.91 showMyInt :: MyInt -> List Main.Char; 33.61/16.91 showMyInt = primShowInt; 33.61/16.91 33.61/16.91 showParen :: MyBool -> (List Main.Char -> List Main.Char) -> List Main.Char -> List Main.Char; 33.61/16.91 showParen b p = showParen0 p b; 33.61/16.91 33.61/16.91 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.61/16.91 showParen0 p MyFalse = p; 33.61/16.91 33.61/16.91 showString :: List Main.Char -> List Main.Char -> List Main.Char; 33.61/16.91 showString = psPs; 33.61/16.91 33.61/16.91 showsMyInt :: MyInt -> List Main.Char -> List Main.Char; 33.61/16.91 showsMyInt = showsPrecMyInt (Main.Pos Main.Zero); 33.61/16.91 33.61/16.91 showsPrecMyInt :: MyInt -> MyInt -> List Main.Char -> List Main.Char; 33.61/16.91 showsPrecMyInt vv x s = psPs (showMyInt x) s; 33.61/16.91 33.61/16.91 showsPrecRatio :: MyInt -> Ratio MyInt -> List Main.Char -> List Main.Char; 33.61/16.91 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.61/16.91 33.61/16.91 showsRatio :: Ratio MyInt -> List Main.Char -> List Main.Char; 33.61/16.91 showsRatio = showsPrecRatio (Main.Pos Main.Zero); 33.61/16.91 33.61/16.91 stop :: MyBool -> a; 33.61/16.91 stop MyFalse = stop MyFalse; 33.61/16.91 33.61/16.91 toEnumChar :: MyInt -> Main.Char; 33.61/16.91 toEnumChar = primIntToChar; 33.61/16.91 33.61/16.91 } 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (5) Narrow (SOUND) 33.61/16.91 Haskell To QDPs 33.61/16.91 33.61/16.91 digraph dp_graph { 33.61/16.91 node [outthreshold=100, inthreshold=100];1[label="showsRatio",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 33.61/16.91 3[label="showsRatio ww3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 33.61/16.91 4[label="showsRatio ww3 ww4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 33.61/16.91 5[label="showsPrecRatio (Pos Zero) ww3 ww4",fontsize=16,color="burlywood",shape="box"];1331[label="ww3/CnPc ww30 ww31",fontsize=10,color="white",style="solid",shape="box"];5 -> 1331[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1331 -> 6[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 6[label="showsPrecRatio (Pos Zero) (CnPc ww30 ww31) ww4",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 33.61/16.91 7 -> 24[label="",style="dashed", color="red", weight=0]; 33.61/16.91 7[label="showParen (gtMyInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) (pt (showsMyInt ww30) (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 ww31))) ww4",fontsize=16,color="magenta"];7 -> 25[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 7 -> 26[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 7 -> 27[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 7 -> 28[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 7 -> 29[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 7 -> 30[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 25[label="ww4",fontsize=16,color="green",shape="box"];26[label="ww31",fontsize=16,color="green",shape="box"];27[label="ww30",fontsize=16,color="green",shape="box"];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="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (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"];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 Zero))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];24[label="showParen (gtMyInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) ww22",fontsize=16,color="black",shape="triangle"];24 -> 37[label="",style="solid", color="black", weight=3]; 33.61/16.91 37[label="showParen0 (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) (gtMyInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) ww22",fontsize=16,color="black",shape="box"];37 -> 38[label="",style="solid", color="black", weight=3]; 33.61/16.91 38[label="showParen0 (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) (esEsOrdering (compareMyInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww22",fontsize=16,color="black",shape="box"];38 -> 39[label="",style="solid", color="black", weight=3]; 33.61/16.91 39[label="showParen0 (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww22",fontsize=16,color="black",shape="box"];39 -> 40[label="",style="solid", color="black", weight=3]; 33.61/16.91 40[label="showParen0 (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) (esEsOrdering (primCmpNat Zero (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) GT) ww22",fontsize=16,color="black",shape="box"];40 -> 41[label="",style="solid", color="black", weight=3]; 33.61/16.91 41[label="showParen0 (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) (esEsOrdering LT GT) ww22",fontsize=16,color="black",shape="box"];41 -> 42[label="",style="solid", color="black", weight=3]; 33.61/16.91 42[label="showParen0 (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) MyFalse ww22",fontsize=16,color="black",shape="box"];42 -> 43[label="",style="solid", color="black", weight=3]; 33.61/16.91 43[label="pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21)) ww22",fontsize=16,color="black",shape="box"];43 -> 44[label="",style="solid", color="black", weight=3]; 33.61/16.91 44[label="showsMyInt ww17 (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21) ww22)",fontsize=16,color="black",shape="box"];44 -> 45[label="",style="solid", color="black", weight=3]; 33.61/16.91 45[label="showsPrecMyInt (Pos Zero) ww17 (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21) ww22)",fontsize=16,color="black",shape="box"];45 -> 46[label="",style="solid", color="black", weight=3]; 33.61/16.91 46 -> 318[label="",style="dashed", color="red", weight=0]; 33.61/16.91 46[label="psPs (showMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21) ww22)",fontsize=16,color="magenta"];46 -> 319[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 46 -> 320[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 319[label="showMyInt ww17",fontsize=16,color="black",shape="triangle"];319 -> 470[label="",style="solid", color="black", weight=3]; 33.61/16.91 320[label="pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21) ww22",fontsize=16,color="black",shape="box"];320 -> 471[label="",style="solid", color="black", weight=3]; 33.61/16.91 318[label="psPs ww120 ww55",fontsize=16,color="burlywood",shape="triangle"];1332[label="ww120/Cons ww1200 ww1201",fontsize=10,color="white",style="solid",shape="box"];318 -> 1332[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1332 -> 472[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1333[label="ww120/Nil",fontsize=10,color="white",style="solid",shape="box"];318 -> 1333[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1333 -> 473[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 470[label="primShowInt ww17",fontsize=16,color="burlywood",shape="triangle"];1334[label="ww17/Pos ww170",fontsize=10,color="white",style="solid",shape="box"];470 -> 1334[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1334 -> 474[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1335[label="ww17/Neg ww170",fontsize=10,color="white",style="solid",shape="box"];470 -> 1335[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1335 -> 475[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 471[label="showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil))) (showsMyInt ww21 ww22)",fontsize=16,color="black",shape="box"];471 -> 476[label="",style="solid", color="black", weight=3]; 33.61/16.91 472[label="psPs (Cons ww1200 ww1201) ww55",fontsize=16,color="black",shape="box"];472 -> 477[label="",style="solid", color="black", weight=3]; 33.61/16.91 473[label="psPs Nil ww55",fontsize=16,color="black",shape="box"];473 -> 478[label="",style="solid", color="black", weight=3]; 33.61/16.91 474[label="primShowInt (Pos ww170)",fontsize=16,color="burlywood",shape="box"];1336[label="ww170/Succ ww1700",fontsize=10,color="white",style="solid",shape="box"];474 -> 1336[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1336 -> 479[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1337[label="ww170/Zero",fontsize=10,color="white",style="solid",shape="box"];474 -> 1337[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1337 -> 480[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 475[label="primShowInt (Neg ww170)",fontsize=16,color="black",shape="box"];475 -> 481[label="",style="solid", color="black", weight=3]; 33.61/16.91 476 -> 318[label="",style="dashed", color="red", weight=0]; 33.61/16.91 476[label="psPs (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil))) (showsMyInt ww21 ww22)",fontsize=16,color="magenta"];476 -> 482[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 476 -> 483[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 477[label="Cons ww1200 (psPs ww1201 ww55)",fontsize=16,color="green",shape="box"];477 -> 484[label="",style="dashed", color="green", weight=3]; 33.61/16.91 478[label="ww55",fontsize=16,color="green",shape="box"];479[label="primShowInt (Pos (Succ ww1700))",fontsize=16,color="black",shape="box"];479 -> 485[label="",style="solid", color="black", weight=3]; 33.61/16.91 480[label="primShowInt (Pos Zero)",fontsize=16,color="black",shape="box"];480 -> 486[label="",style="solid", color="black", weight=3]; 33.61/16.91 481[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 ww170))",fontsize=16,color="green",shape="box"];481 -> 487[label="",style="dashed", color="green", weight=3]; 33.61/16.91 482[label="Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil))",fontsize=16,color="green",shape="box"];483[label="showsMyInt ww21 ww22",fontsize=16,color="black",shape="box"];483 -> 488[label="",style="solid", color="black", weight=3]; 33.61/16.91 484 -> 318[label="",style="dashed", color="red", weight=0]; 33.61/16.91 484[label="psPs ww1201 ww55",fontsize=16,color="magenta"];484 -> 489[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 485 -> 318[label="",style="dashed", color="red", weight=0]; 33.61/16.91 485[label="psPs (primShowInt (divMyInt (Pos (Succ ww1700)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (Cons (toEnumChar (modMyInt (Pos (Succ ww1700)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil)",fontsize=16,color="magenta"];485 -> 490[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 485 -> 491[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 486[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"];487 -> 470[label="",style="dashed", color="red", weight=0]; 33.61/16.91 487[label="primShowInt (Pos ww170)",fontsize=16,color="magenta"];487 -> 492[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 488[label="showsPrecMyInt (Pos Zero) ww21 ww22",fontsize=16,color="black",shape="box"];488 -> 493[label="",style="solid", color="black", weight=3]; 33.61/16.91 489[label="ww1201",fontsize=16,color="green",shape="box"];490 -> 470[label="",style="dashed", color="red", weight=0]; 33.61/16.91 490[label="primShowInt (divMyInt (Pos (Succ ww1700)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];490 -> 494[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 491[label="Cons (toEnumChar (modMyInt (Pos (Succ ww1700)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil",fontsize=16,color="green",shape="box"];491 -> 495[label="",style="dashed", color="green", weight=3]; 33.61/16.91 492[label="Pos ww170",fontsize=16,color="green",shape="box"];493 -> 318[label="",style="dashed", color="red", weight=0]; 33.61/16.91 493[label="psPs (showMyInt ww21) ww22",fontsize=16,color="magenta"];493 -> 496[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 493 -> 497[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 494 -> 498[label="",style="dashed", color="red", weight=0]; 33.61/16.91 494[label="divMyInt (Pos (Succ ww1700)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))",fontsize=16,color="magenta"];494 -> 499[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 494 -> 500[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 495 -> 501[label="",style="dashed", color="red", weight=0]; 33.61/16.91 495[label="toEnumChar (modMyInt (Pos (Succ ww1700)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];495 -> 502[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 495 -> 503[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 496 -> 319[label="",style="dashed", color="red", weight=0]; 33.61/16.91 496[label="showMyInt ww21",fontsize=16,color="magenta"];496 -> 504[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 497[label="ww22",fontsize=16,color="green",shape="box"];499[label="ww1700",fontsize=16,color="green",shape="box"];500[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];498[label="divMyInt (Pos (Succ ww122)) (Pos (Succ ww123))",fontsize=16,color="black",shape="triangle"];498 -> 505[label="",style="solid", color="black", weight=3]; 33.61/16.91 502[label="ww1700",fontsize=16,color="green",shape="box"];503[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];501[label="toEnumChar (modMyInt (Pos (Succ ww125)) (Pos (Succ ww126)))",fontsize=16,color="black",shape="triangle"];501 -> 506[label="",style="solid", color="black", weight=3]; 33.61/16.91 504[label="ww21",fontsize=16,color="green",shape="box"];505[label="primDivInt (Pos (Succ ww122)) (Pos (Succ ww123))",fontsize=16,color="black",shape="box"];505 -> 507[label="",style="solid", color="black", weight=3]; 33.61/16.91 506[label="primIntToChar (modMyInt (Pos (Succ ww125)) (Pos (Succ ww126)))",fontsize=16,color="black",shape="box"];506 -> 508[label="",style="solid", color="black", weight=3]; 33.61/16.91 507[label="Pos (primDivNatS (Succ ww122) (Succ ww123))",fontsize=16,color="green",shape="box"];507 -> 509[label="",style="dashed", color="green", weight=3]; 33.61/16.91 508[label="Char (modMyInt (Pos (Succ ww125)) (Pos (Succ ww126)))",fontsize=16,color="green",shape="box"];508 -> 510[label="",style="dashed", color="green", weight=3]; 33.61/16.91 509[label="primDivNatS (Succ ww122) (Succ ww123)",fontsize=16,color="black",shape="triangle"];509 -> 511[label="",style="solid", color="black", weight=3]; 33.61/16.91 510[label="modMyInt (Pos (Succ ww125)) (Pos (Succ ww126))",fontsize=16,color="black",shape="box"];510 -> 512[label="",style="solid", color="black", weight=3]; 33.61/16.91 511[label="primDivNatS0 ww122 ww123 (primGEqNatS ww122 ww123)",fontsize=16,color="burlywood",shape="box"];1338[label="ww122/Succ ww1220",fontsize=10,color="white",style="solid",shape="box"];511 -> 1338[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1338 -> 513[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1339[label="ww122/Zero",fontsize=10,color="white",style="solid",shape="box"];511 -> 1339[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1339 -> 514[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 512[label="primModInt (Pos (Succ ww125)) (Pos (Succ ww126))",fontsize=16,color="black",shape="box"];512 -> 515[label="",style="solid", color="black", weight=3]; 33.61/16.91 513[label="primDivNatS0 (Succ ww1220) ww123 (primGEqNatS (Succ ww1220) ww123)",fontsize=16,color="burlywood",shape="box"];1340[label="ww123/Succ ww1230",fontsize=10,color="white",style="solid",shape="box"];513 -> 1340[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1340 -> 516[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1341[label="ww123/Zero",fontsize=10,color="white",style="solid",shape="box"];513 -> 1341[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1341 -> 517[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 514[label="primDivNatS0 Zero ww123 (primGEqNatS Zero ww123)",fontsize=16,color="burlywood",shape="box"];1342[label="ww123/Succ ww1230",fontsize=10,color="white",style="solid",shape="box"];514 -> 1342[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1342 -> 518[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1343[label="ww123/Zero",fontsize=10,color="white",style="solid",shape="box"];514 -> 1343[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1343 -> 519[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 515[label="Pos (primModNatS (Succ ww125) (Succ ww126))",fontsize=16,color="green",shape="box"];515 -> 520[label="",style="dashed", color="green", weight=3]; 33.61/16.91 516[label="primDivNatS0 (Succ ww1220) (Succ ww1230) (primGEqNatS (Succ ww1220) (Succ ww1230))",fontsize=16,color="black",shape="box"];516 -> 521[label="",style="solid", color="black", weight=3]; 33.61/16.91 517[label="primDivNatS0 (Succ ww1220) Zero (primGEqNatS (Succ ww1220) Zero)",fontsize=16,color="black",shape="box"];517 -> 522[label="",style="solid", color="black", weight=3]; 33.61/16.91 518[label="primDivNatS0 Zero (Succ ww1230) (primGEqNatS Zero (Succ ww1230))",fontsize=16,color="black",shape="box"];518 -> 523[label="",style="solid", color="black", weight=3]; 33.61/16.91 519[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];519 -> 524[label="",style="solid", color="black", weight=3]; 33.61/16.91 520[label="primModNatS (Succ ww125) (Succ ww126)",fontsize=16,color="burlywood",shape="triangle"];1344[label="ww126/Succ ww1260",fontsize=10,color="white",style="solid",shape="box"];520 -> 1344[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1344 -> 525[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1345[label="ww126/Zero",fontsize=10,color="white",style="solid",shape="box"];520 -> 1345[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1345 -> 526[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 521 -> 936[label="",style="dashed", color="red", weight=0]; 33.61/16.91 521[label="primDivNatS0 (Succ ww1220) (Succ ww1230) (primGEqNatS ww1220 ww1230)",fontsize=16,color="magenta"];521 -> 937[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 521 -> 938[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 521 -> 939[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 521 -> 940[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 522[label="primDivNatS0 (Succ ww1220) Zero MyTrue",fontsize=16,color="black",shape="box"];522 -> 529[label="",style="solid", color="black", weight=3]; 33.61/16.91 523[label="primDivNatS0 Zero (Succ ww1230) MyFalse",fontsize=16,color="black",shape="box"];523 -> 530[label="",style="solid", color="black", weight=3]; 33.61/16.91 524[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];524 -> 531[label="",style="solid", color="black", weight=3]; 33.61/16.91 525[label="primModNatS (Succ ww125) (Succ (Succ ww1260))",fontsize=16,color="black",shape="box"];525 -> 532[label="",style="solid", color="black", weight=3]; 33.61/16.91 526[label="primModNatS (Succ ww125) (Succ Zero)",fontsize=16,color="black",shape="box"];526 -> 533[label="",style="solid", color="black", weight=3]; 33.61/16.91 937[label="ww1230",fontsize=16,color="green",shape="box"];938[label="ww1230",fontsize=16,color="green",shape="box"];939[label="ww1220",fontsize=16,color="green",shape="box"];940[label="ww1220",fontsize=16,color="green",shape="box"];936[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS ww166 ww167)",fontsize=16,color="burlywood",shape="triangle"];1346[label="ww166/Succ ww1660",fontsize=10,color="white",style="solid",shape="box"];936 -> 1346[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1346 -> 977[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1347[label="ww166/Zero",fontsize=10,color="white",style="solid",shape="box"];936 -> 1347[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1347 -> 978[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 529[label="Succ (primDivNatS (primMinusNatS (Succ ww1220) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];529 -> 538[label="",style="dashed", color="green", weight=3]; 33.61/16.91 530[label="Zero",fontsize=16,color="green",shape="box"];531[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];531 -> 539[label="",style="dashed", color="green", weight=3]; 33.61/16.91 532[label="primModNatS0 ww125 ww1260 (primGEqNatS ww125 (Succ ww1260))",fontsize=16,color="burlywood",shape="box"];1348[label="ww125/Succ ww1250",fontsize=10,color="white",style="solid",shape="box"];532 -> 1348[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1348 -> 540[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1349[label="ww125/Zero",fontsize=10,color="white",style="solid",shape="box"];532 -> 1349[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1349 -> 541[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 533[label="Zero",fontsize=16,color="green",shape="box"];977[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS (Succ ww1660) ww167)",fontsize=16,color="burlywood",shape="box"];1350[label="ww167/Succ ww1670",fontsize=10,color="white",style="solid",shape="box"];977 -> 1350[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1350 -> 1001[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1351[label="ww167/Zero",fontsize=10,color="white",style="solid",shape="box"];977 -> 1351[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1351 -> 1002[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 978[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS Zero ww167)",fontsize=16,color="burlywood",shape="box"];1352[label="ww167/Succ ww1670",fontsize=10,color="white",style="solid",shape="box"];978 -> 1352[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1352 -> 1003[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1353[label="ww167/Zero",fontsize=10,color="white",style="solid",shape="box"];978 -> 1353[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1353 -> 1004[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 538 -> 1227[label="",style="dashed", color="red", weight=0]; 33.61/16.91 538[label="primDivNatS (primMinusNatS (Succ ww1220) Zero) (Succ Zero)",fontsize=16,color="magenta"];538 -> 1228[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 538 -> 1229[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 538 -> 1230[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 539 -> 1227[label="",style="dashed", color="red", weight=0]; 33.61/16.91 539[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];539 -> 1231[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 539 -> 1232[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 539 -> 1233[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 540[label="primModNatS0 (Succ ww1250) ww1260 (primGEqNatS (Succ ww1250) (Succ ww1260))",fontsize=16,color="black",shape="box"];540 -> 548[label="",style="solid", color="black", weight=3]; 33.61/16.91 541[label="primModNatS0 Zero ww1260 (primGEqNatS Zero (Succ ww1260))",fontsize=16,color="black",shape="box"];541 -> 549[label="",style="solid", color="black", weight=3]; 33.61/16.91 1001[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS (Succ ww1660) (Succ ww1670))",fontsize=16,color="black",shape="box"];1001 -> 1016[label="",style="solid", color="black", weight=3]; 33.61/16.91 1002[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS (Succ ww1660) Zero)",fontsize=16,color="black",shape="box"];1002 -> 1017[label="",style="solid", color="black", weight=3]; 33.61/16.91 1003[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS Zero (Succ ww1670))",fontsize=16,color="black",shape="box"];1003 -> 1018[label="",style="solid", color="black", weight=3]; 33.61/16.91 1004[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1004 -> 1019[label="",style="solid", color="black", weight=3]; 33.61/16.91 1228[label="Succ ww1220",fontsize=16,color="green",shape="box"];1229[label="Zero",fontsize=16,color="green",shape="box"];1230[label="Zero",fontsize=16,color="green",shape="box"];1227[label="primDivNatS (primMinusNatS ww180 ww181) (Succ ww182)",fontsize=16,color="burlywood",shape="triangle"];1354[label="ww180/Succ ww1800",fontsize=10,color="white",style="solid",shape="box"];1227 -> 1354[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1354 -> 1252[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1355[label="ww180/Zero",fontsize=10,color="white",style="solid",shape="box"];1227 -> 1355[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1355 -> 1253[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1231[label="Zero",fontsize=16,color="green",shape="box"];1232[label="Zero",fontsize=16,color="green",shape="box"];1233[label="Zero",fontsize=16,color="green",shape="box"];548[label="primModNatS0 (Succ ww1250) ww1260 (primGEqNatS ww1250 ww1260)",fontsize=16,color="burlywood",shape="box"];1356[label="ww1250/Succ ww12500",fontsize=10,color="white",style="solid",shape="box"];548 -> 1356[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1356 -> 558[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1357[label="ww1250/Zero",fontsize=10,color="white",style="solid",shape="box"];548 -> 1357[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1357 -> 559[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 549[label="primModNatS0 Zero ww1260 MyFalse",fontsize=16,color="black",shape="box"];549 -> 560[label="",style="solid", color="black", weight=3]; 33.61/16.91 1016 -> 936[label="",style="dashed", color="red", weight=0]; 33.61/16.91 1016[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS ww1660 ww1670)",fontsize=16,color="magenta"];1016 -> 1031[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1016 -> 1032[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1017[label="primDivNatS0 (Succ ww164) (Succ ww165) MyTrue",fontsize=16,color="black",shape="triangle"];1017 -> 1033[label="",style="solid", color="black", weight=3]; 33.61/16.91 1018[label="primDivNatS0 (Succ ww164) (Succ ww165) MyFalse",fontsize=16,color="black",shape="box"];1018 -> 1034[label="",style="solid", color="black", weight=3]; 33.61/16.91 1019 -> 1017[label="",style="dashed", color="red", weight=0]; 33.61/16.91 1019[label="primDivNatS0 (Succ ww164) (Succ ww165) MyTrue",fontsize=16,color="magenta"];1252[label="primDivNatS (primMinusNatS (Succ ww1800) ww181) (Succ ww182)",fontsize=16,color="burlywood",shape="box"];1358[label="ww181/Succ ww1810",fontsize=10,color="white",style="solid",shape="box"];1252 -> 1358[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1358 -> 1258[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1359[label="ww181/Zero",fontsize=10,color="white",style="solid",shape="box"];1252 -> 1359[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1359 -> 1259[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1253[label="primDivNatS (primMinusNatS Zero ww181) (Succ ww182)",fontsize=16,color="burlywood",shape="box"];1360[label="ww181/Succ ww1810",fontsize=10,color="white",style="solid",shape="box"];1253 -> 1360[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1360 -> 1260[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1361[label="ww181/Zero",fontsize=10,color="white",style="solid",shape="box"];1253 -> 1361[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1361 -> 1261[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 558[label="primModNatS0 (Succ (Succ ww12500)) ww1260 (primGEqNatS (Succ ww12500) ww1260)",fontsize=16,color="burlywood",shape="box"];1362[label="ww1260/Succ ww12600",fontsize=10,color="white",style="solid",shape="box"];558 -> 1362[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1362 -> 567[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1363[label="ww1260/Zero",fontsize=10,color="white",style="solid",shape="box"];558 -> 1363[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1363 -> 568[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 559[label="primModNatS0 (Succ Zero) ww1260 (primGEqNatS Zero ww1260)",fontsize=16,color="burlywood",shape="box"];1364[label="ww1260/Succ ww12600",fontsize=10,color="white",style="solid",shape="box"];559 -> 1364[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1364 -> 569[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1365[label="ww1260/Zero",fontsize=10,color="white",style="solid",shape="box"];559 -> 1365[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1365 -> 570[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 560[label="Succ Zero",fontsize=16,color="green",shape="box"];1031[label="ww1670",fontsize=16,color="green",shape="box"];1032[label="ww1660",fontsize=16,color="green",shape="box"];1033[label="Succ (primDivNatS (primMinusNatS (Succ ww164) (Succ ww165)) (Succ (Succ ww165)))",fontsize=16,color="green",shape="box"];1033 -> 1077[label="",style="dashed", color="green", weight=3]; 33.61/16.91 1034[label="Zero",fontsize=16,color="green",shape="box"];1258[label="primDivNatS (primMinusNatS (Succ ww1800) (Succ ww1810)) (Succ ww182)",fontsize=16,color="black",shape="box"];1258 -> 1268[label="",style="solid", color="black", weight=3]; 33.61/16.91 1259[label="primDivNatS (primMinusNatS (Succ ww1800) Zero) (Succ ww182)",fontsize=16,color="black",shape="box"];1259 -> 1269[label="",style="solid", color="black", weight=3]; 33.61/16.91 1260[label="primDivNatS (primMinusNatS Zero (Succ ww1810)) (Succ ww182)",fontsize=16,color="black",shape="box"];1260 -> 1270[label="",style="solid", color="black", weight=3]; 33.61/16.91 1261[label="primDivNatS (primMinusNatS Zero Zero) (Succ ww182)",fontsize=16,color="black",shape="box"];1261 -> 1271[label="",style="solid", color="black", weight=3]; 33.61/16.91 567[label="primModNatS0 (Succ (Succ ww12500)) (Succ ww12600) (primGEqNatS (Succ ww12500) (Succ ww12600))",fontsize=16,color="black",shape="box"];567 -> 577[label="",style="solid", color="black", weight=3]; 33.61/16.91 568[label="primModNatS0 (Succ (Succ ww12500)) Zero (primGEqNatS (Succ ww12500) Zero)",fontsize=16,color="black",shape="box"];568 -> 578[label="",style="solid", color="black", weight=3]; 33.61/16.91 569[label="primModNatS0 (Succ Zero) (Succ ww12600) (primGEqNatS Zero (Succ ww12600))",fontsize=16,color="black",shape="box"];569 -> 579[label="",style="solid", color="black", weight=3]; 33.61/16.91 570[label="primModNatS0 (Succ Zero) Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];570 -> 580[label="",style="solid", color="black", weight=3]; 33.61/16.91 1077 -> 1227[label="",style="dashed", color="red", weight=0]; 33.61/16.91 1077[label="primDivNatS (primMinusNatS (Succ ww164) (Succ ww165)) (Succ (Succ ww165))",fontsize=16,color="magenta"];1077 -> 1234[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1077 -> 1235[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1077 -> 1236[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1268 -> 1227[label="",style="dashed", color="red", weight=0]; 33.61/16.91 1268[label="primDivNatS (primMinusNatS ww1800 ww1810) (Succ ww182)",fontsize=16,color="magenta"];1268 -> 1276[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1268 -> 1277[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1269 -> 509[label="",style="dashed", color="red", weight=0]; 33.61/16.91 1269[label="primDivNatS (Succ ww1800) (Succ ww182)",fontsize=16,color="magenta"];1269 -> 1278[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1269 -> 1279[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1270[label="primDivNatS Zero (Succ ww182)",fontsize=16,color="black",shape="triangle"];1270 -> 1280[label="",style="solid", color="black", weight=3]; 33.61/16.91 1271 -> 1270[label="",style="dashed", color="red", weight=0]; 33.61/16.91 1271[label="primDivNatS Zero (Succ ww182)",fontsize=16,color="magenta"];577 -> 1095[label="",style="dashed", color="red", weight=0]; 33.61/16.91 577[label="primModNatS0 (Succ (Succ ww12500)) (Succ ww12600) (primGEqNatS ww12500 ww12600)",fontsize=16,color="magenta"];577 -> 1096[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 577 -> 1097[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 577 -> 1098[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 577 -> 1099[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 578[label="primModNatS0 (Succ (Succ ww12500)) Zero MyTrue",fontsize=16,color="black",shape="box"];578 -> 590[label="",style="solid", color="black", weight=3]; 33.61/16.91 579 -> 982[label="",style="dashed", color="red", weight=0]; 33.61/16.91 579[label="primModNatS0 (Succ Zero) (Succ ww12600) MyFalse",fontsize=16,color="magenta"];579 -> 983[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 579 -> 984[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 580[label="primModNatS0 (Succ Zero) Zero MyTrue",fontsize=16,color="black",shape="box"];580 -> 592[label="",style="solid", color="black", weight=3]; 33.61/16.91 1234[label="Succ ww164",fontsize=16,color="green",shape="box"];1235[label="Succ ww165",fontsize=16,color="green",shape="box"];1236[label="Succ ww165",fontsize=16,color="green",shape="box"];1276[label="ww1800",fontsize=16,color="green",shape="box"];1277[label="ww1810",fontsize=16,color="green",shape="box"];1278[label="ww1800",fontsize=16,color="green",shape="box"];1279[label="ww182",fontsize=16,color="green",shape="box"];1280[label="Zero",fontsize=16,color="green",shape="box"];1096[label="ww12600",fontsize=16,color="green",shape="box"];1097[label="ww12500",fontsize=16,color="green",shape="box"];1098[label="ww12600",fontsize=16,color="green",shape="box"];1099[label="Succ ww12500",fontsize=16,color="green",shape="box"];1095[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS ww177 ww178)",fontsize=16,color="burlywood",shape="triangle"];1366[label="ww177/Succ ww1770",fontsize=10,color="white",style="solid",shape="box"];1095 -> 1366[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1366 -> 1136[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1367[label="ww177/Zero",fontsize=10,color="white",style="solid",shape="box"];1095 -> 1367[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1367 -> 1137[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 590 -> 1285[label="",style="dashed", color="red", weight=0]; 33.61/16.91 590[label="primModNatS (primMinusNatS (Succ (Succ ww12500)) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];590 -> 1286[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 590 -> 1287[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 590 -> 1288[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 983[label="Zero",fontsize=16,color="green",shape="box"];984[label="ww12600",fontsize=16,color="green",shape="box"];982[label="primModNatS0 (Succ ww169) (Succ ww170) MyFalse",fontsize=16,color="black",shape="triangle"];982 -> 1005[label="",style="solid", color="black", weight=3]; 33.61/16.91 592 -> 1285[label="",style="dashed", color="red", weight=0]; 33.61/16.91 592[label="primModNatS (primMinusNatS (Succ Zero) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];592 -> 1289[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 592 -> 1290[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 592 -> 1291[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1136[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS (Succ ww1770) ww178)",fontsize=16,color="burlywood",shape="box"];1368[label="ww178/Succ ww1780",fontsize=10,color="white",style="solid",shape="box"];1136 -> 1368[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1368 -> 1142[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1369[label="ww178/Zero",fontsize=10,color="white",style="solid",shape="box"];1136 -> 1369[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1369 -> 1143[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1137[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS Zero ww178)",fontsize=16,color="burlywood",shape="box"];1370[label="ww178/Succ ww1780",fontsize=10,color="white",style="solid",shape="box"];1137 -> 1370[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1370 -> 1144[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1371[label="ww178/Zero",fontsize=10,color="white",style="solid",shape="box"];1137 -> 1371[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1371 -> 1145[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1286[label="Succ Zero",fontsize=16,color="green",shape="box"];1287[label="Succ Zero",fontsize=16,color="green",shape="box"];1288[label="Succ (Succ ww12500)",fontsize=16,color="green",shape="box"];1285[label="primModNatS (primMinusNatS ww184 ww185) (Succ ww186)",fontsize=16,color="burlywood",shape="triangle"];1372[label="ww184/Succ ww1840",fontsize=10,color="white",style="solid",shape="box"];1285 -> 1372[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1372 -> 1316[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1373[label="ww184/Zero",fontsize=10,color="white",style="solid",shape="box"];1285 -> 1373[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1373 -> 1317[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1005[label="Succ (Succ ww169)",fontsize=16,color="green",shape="box"];1289[label="Succ Zero",fontsize=16,color="green",shape="box"];1290[label="Succ Zero",fontsize=16,color="green",shape="box"];1291[label="Succ Zero",fontsize=16,color="green",shape="box"];1142[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS (Succ ww1770) (Succ ww1780))",fontsize=16,color="black",shape="box"];1142 -> 1150[label="",style="solid", color="black", weight=3]; 33.61/16.91 1143[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS (Succ ww1770) Zero)",fontsize=16,color="black",shape="box"];1143 -> 1151[label="",style="solid", color="black", weight=3]; 33.61/16.91 1144[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS Zero (Succ ww1780))",fontsize=16,color="black",shape="box"];1144 -> 1152[label="",style="solid", color="black", weight=3]; 33.61/16.91 1145[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1145 -> 1153[label="",style="solid", color="black", weight=3]; 33.61/16.91 1316[label="primModNatS (primMinusNatS (Succ ww1840) ww185) (Succ ww186)",fontsize=16,color="burlywood",shape="box"];1374[label="ww185/Succ ww1850",fontsize=10,color="white",style="solid",shape="box"];1316 -> 1374[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1374 -> 1318[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1375[label="ww185/Zero",fontsize=10,color="white",style="solid",shape="box"];1316 -> 1375[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1375 -> 1319[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1317[label="primModNatS (primMinusNatS Zero ww185) (Succ ww186)",fontsize=16,color="burlywood",shape="box"];1376[label="ww185/Succ ww1850",fontsize=10,color="white",style="solid",shape="box"];1317 -> 1376[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1376 -> 1320[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1377[label="ww185/Zero",fontsize=10,color="white",style="solid",shape="box"];1317 -> 1377[label="",style="solid", color="burlywood", weight=9]; 33.61/16.91 1377 -> 1321[label="",style="solid", color="burlywood", weight=3]; 33.61/16.91 1150 -> 1095[label="",style="dashed", color="red", weight=0]; 33.61/16.91 1150[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS ww1770 ww1780)",fontsize=16,color="magenta"];1150 -> 1160[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1150 -> 1161[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1151[label="primModNatS0 (Succ ww175) (Succ ww176) MyTrue",fontsize=16,color="black",shape="triangle"];1151 -> 1162[label="",style="solid", color="black", weight=3]; 33.61/16.91 1152 -> 982[label="",style="dashed", color="red", weight=0]; 33.61/16.91 1152[label="primModNatS0 (Succ ww175) (Succ ww176) MyFalse",fontsize=16,color="magenta"];1152 -> 1163[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1152 -> 1164[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1153 -> 1151[label="",style="dashed", color="red", weight=0]; 33.61/16.91 1153[label="primModNatS0 (Succ ww175) (Succ ww176) MyTrue",fontsize=16,color="magenta"];1318[label="primModNatS (primMinusNatS (Succ ww1840) (Succ ww1850)) (Succ ww186)",fontsize=16,color="black",shape="box"];1318 -> 1322[label="",style="solid", color="black", weight=3]; 33.61/16.91 1319[label="primModNatS (primMinusNatS (Succ ww1840) Zero) (Succ ww186)",fontsize=16,color="black",shape="box"];1319 -> 1323[label="",style="solid", color="black", weight=3]; 33.61/16.91 1320[label="primModNatS (primMinusNatS Zero (Succ ww1850)) (Succ ww186)",fontsize=16,color="black",shape="box"];1320 -> 1324[label="",style="solid", color="black", weight=3]; 33.61/16.91 1321[label="primModNatS (primMinusNatS Zero Zero) (Succ ww186)",fontsize=16,color="black",shape="box"];1321 -> 1325[label="",style="solid", color="black", weight=3]; 33.61/16.91 1160[label="ww1770",fontsize=16,color="green",shape="box"];1161[label="ww1780",fontsize=16,color="green",shape="box"];1162 -> 1285[label="",style="dashed", color="red", weight=0]; 33.61/16.91 1162[label="primModNatS (primMinusNatS (Succ ww175) (Succ (Succ ww176))) (Succ (Succ (Succ ww176)))",fontsize=16,color="magenta"];1162 -> 1298[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1162 -> 1299[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1162 -> 1300[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1163[label="ww175",fontsize=16,color="green",shape="box"];1164[label="ww176",fontsize=16,color="green",shape="box"];1322 -> 1285[label="",style="dashed", color="red", weight=0]; 33.61/16.91 1322[label="primModNatS (primMinusNatS ww1840 ww1850) (Succ ww186)",fontsize=16,color="magenta"];1322 -> 1326[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1322 -> 1327[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1323 -> 520[label="",style="dashed", color="red", weight=0]; 33.61/16.91 1323[label="primModNatS (Succ ww1840) (Succ ww186)",fontsize=16,color="magenta"];1323 -> 1328[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1323 -> 1329[label="",style="dashed", color="magenta", weight=3]; 33.61/16.91 1324[label="primModNatS Zero (Succ ww186)",fontsize=16,color="black",shape="triangle"];1324 -> 1330[label="",style="solid", color="black", weight=3]; 33.61/16.91 1325 -> 1324[label="",style="dashed", color="red", weight=0]; 33.61/16.91 1325[label="primModNatS Zero (Succ ww186)",fontsize=16,color="magenta"];1298[label="Succ (Succ ww176)",fontsize=16,color="green",shape="box"];1299[label="Succ (Succ ww176)",fontsize=16,color="green",shape="box"];1300[label="Succ ww175",fontsize=16,color="green",shape="box"];1326[label="ww1850",fontsize=16,color="green",shape="box"];1327[label="ww1840",fontsize=16,color="green",shape="box"];1328[label="ww1840",fontsize=16,color="green",shape="box"];1329[label="ww186",fontsize=16,color="green",shape="box"];1330[label="Zero",fontsize=16,color="green",shape="box"];} 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (6) 33.61/16.91 Complex Obligation (AND) 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (7) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_primModNatS0(ww175, ww176, Main.Zero, Main.Zero) -> new_primModNatS00(ww175, ww176) 33.61/16.91 new_primModNatS1(Main.Succ(Main.Succ(ww12500)), Main.Succ(Main.Succ(ww12600))) -> new_primModNatS0(Main.Succ(ww12500), ww12600, ww12500, ww12600) 33.61/16.91 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.61/16.91 new_primModNatS0(ww175, ww176, Main.Succ(ww1770), Main.Succ(ww1780)) -> new_primModNatS0(ww175, ww176, ww1770, ww1780) 33.61/16.91 new_primModNatS(Main.Succ(ww1840), Main.Succ(ww1850), ww186) -> new_primModNatS(ww1840, ww1850, ww186) 33.61/16.91 new_primModNatS(Main.Succ(ww1840), Main.Zero, ww186) -> new_primModNatS1(ww1840, ww186) 33.61/16.91 new_primModNatS0(ww175, ww176, Main.Succ(ww1770), Main.Zero) -> new_primModNatS(Main.Succ(ww175), Main.Succ(Main.Succ(ww176)), Main.Succ(Main.Succ(ww176))) 33.61/16.91 new_primModNatS1(Main.Succ(Main.Succ(ww12500)), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Succ(ww12500)), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 33.61/16.91 new_primModNatS00(ww175, ww176) -> new_primModNatS(Main.Succ(ww175), Main.Succ(Main.Succ(ww176)), Main.Succ(Main.Succ(ww176))) 33.61/16.91 33.61/16.91 R is empty. 33.61/16.91 Q is empty. 33.61/16.91 We have to consider all minimal (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (8) QDPOrderProof (EQUIVALENT) 33.61/16.91 We use the reduction pair processor [LPAR04,JAR06]. 33.61/16.91 33.61/16.91 33.61/16.91 The following pairs can be oriented strictly and are deleted. 33.61/16.91 33.61/16.91 new_primModNatS(Main.Succ(ww1840), Main.Succ(ww1850), ww186) -> new_primModNatS(ww1840, ww1850, ww186) 33.61/16.91 new_primModNatS(Main.Succ(ww1840), Main.Zero, ww186) -> new_primModNatS1(ww1840, ww186) 33.61/16.91 The remaining pairs can at least be oriented weakly. 33.61/16.91 Used ordering: Polynomial interpretation [POLO]: 33.61/16.91 33.61/16.91 POL(Main.Succ(x_1)) = 1 + x_1 33.61/16.91 POL(Main.Zero) = 0 33.61/16.91 POL(new_primModNatS(x_1, x_2, x_3)) = x_1 33.61/16.91 POL(new_primModNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 33.61/16.91 POL(new_primModNatS00(x_1, x_2)) = 1 + x_1 33.61/16.91 POL(new_primModNatS1(x_1, x_2)) = x_1 33.61/16.91 33.61/16.91 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 33.61/16.91 none 33.61/16.91 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (9) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_primModNatS0(ww175, ww176, Main.Zero, Main.Zero) -> new_primModNatS00(ww175, ww176) 33.61/16.91 new_primModNatS1(Main.Succ(Main.Succ(ww12500)), Main.Succ(Main.Succ(ww12600))) -> new_primModNatS0(Main.Succ(ww12500), ww12600, ww12500, ww12600) 33.61/16.91 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.61/16.91 new_primModNatS0(ww175, ww176, Main.Succ(ww1770), Main.Succ(ww1780)) -> new_primModNatS0(ww175, ww176, ww1770, ww1780) 33.61/16.91 new_primModNatS0(ww175, ww176, Main.Succ(ww1770), Main.Zero) -> new_primModNatS(Main.Succ(ww175), Main.Succ(Main.Succ(ww176)), Main.Succ(Main.Succ(ww176))) 33.61/16.91 new_primModNatS1(Main.Succ(Main.Succ(ww12500)), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Succ(ww12500)), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 33.61/16.91 new_primModNatS00(ww175, ww176) -> new_primModNatS(Main.Succ(ww175), Main.Succ(Main.Succ(ww176)), Main.Succ(Main.Succ(ww176))) 33.61/16.91 33.61/16.91 R is empty. 33.61/16.91 Q is empty. 33.61/16.91 We have to consider all minimal (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (10) DependencyGraphProof (EQUIVALENT) 33.61/16.91 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 6 less nodes. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (11) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_primModNatS0(ww175, ww176, Main.Succ(ww1770), Main.Succ(ww1780)) -> new_primModNatS0(ww175, ww176, ww1770, ww1780) 33.61/16.91 33.61/16.91 R is empty. 33.61/16.91 Q is empty. 33.61/16.91 We have to consider all minimal (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (12) QDPSizeChangeProof (EQUIVALENT) 33.61/16.91 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.61/16.91 33.61/16.91 From the DPs we obtained the following set of size-change graphs: 33.61/16.91 *new_primModNatS0(ww175, ww176, Main.Succ(ww1770), Main.Succ(ww1780)) -> new_primModNatS0(ww175, ww176, ww1770, ww1780) 33.61/16.91 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 33.61/16.91 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (13) 33.61/16.91 YES 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (14) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_primDivNatS(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS(ww1800, ww1810, ww182) 33.61/16.91 new_primDivNatS1(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS0(ww1220, ww1230, ww1220, ww1230) 33.61/16.91 new_primDivNatS0(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS0(ww164, ww165, ww1660, ww1670) 33.61/16.91 new_primDivNatS1(Main.Zero, Main.Zero) -> new_primDivNatS(Main.Zero, Main.Zero, Main.Zero) 33.61/16.91 new_primDivNatS00(ww164, ww165) -> new_primDivNatS(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165)) 33.61/16.91 new_primDivNatS(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS1(ww1800, ww182) 33.61/16.91 new_primDivNatS1(Main.Succ(ww1220), Main.Zero) -> new_primDivNatS(Main.Succ(ww1220), Main.Zero, Main.Zero) 33.61/16.91 new_primDivNatS0(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165)) 33.61/16.91 new_primDivNatS0(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS00(ww164, ww165) 33.61/16.91 33.61/16.91 R is empty. 33.61/16.91 Q is empty. 33.61/16.91 We have to consider all minimal (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (15) DependencyGraphProof (EQUIVALENT) 33.61/16.91 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (16) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_primDivNatS(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS1(ww1800, ww182) 33.61/16.91 new_primDivNatS1(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS0(ww1220, ww1230, ww1220, ww1230) 33.61/16.91 new_primDivNatS0(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS0(ww164, ww165, ww1660, ww1670) 33.61/16.91 new_primDivNatS0(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165)) 33.61/16.91 new_primDivNatS(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS(ww1800, ww1810, ww182) 33.61/16.91 new_primDivNatS0(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS00(ww164, ww165) 33.61/16.91 new_primDivNatS00(ww164, ww165) -> new_primDivNatS(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165)) 33.61/16.91 new_primDivNatS1(Main.Succ(ww1220), Main.Zero) -> new_primDivNatS(Main.Succ(ww1220), Main.Zero, Main.Zero) 33.61/16.91 33.61/16.91 R is empty. 33.61/16.91 Q is empty. 33.61/16.91 We have to consider all minimal (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (17) QDPOrderProof (EQUIVALENT) 33.61/16.91 We use the reduction pair processor [LPAR04,JAR06]. 33.61/16.91 33.61/16.91 33.61/16.91 The following pairs can be oriented strictly and are deleted. 33.61/16.91 33.61/16.91 new_primDivNatS(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS1(ww1800, ww182) 33.61/16.91 new_primDivNatS(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS(ww1800, ww1810, ww182) 33.61/16.91 The remaining pairs can at least be oriented weakly. 33.61/16.91 Used ordering: Polynomial interpretation [POLO]: 33.61/16.91 33.61/16.91 POL(Main.Succ(x_1)) = 1 + x_1 33.61/16.91 POL(Main.Zero) = 0 33.61/16.91 POL(new_primDivNatS(x_1, x_2, x_3)) = x_1 33.61/16.91 POL(new_primDivNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 33.61/16.91 POL(new_primDivNatS00(x_1, x_2)) = 1 + x_1 33.61/16.91 POL(new_primDivNatS1(x_1, x_2)) = x_1 33.61/16.91 33.61/16.91 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 33.61/16.91 none 33.61/16.91 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (18) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_primDivNatS1(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS0(ww1220, ww1230, ww1220, ww1230) 33.61/16.91 new_primDivNatS0(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS0(ww164, ww165, ww1660, ww1670) 33.61/16.91 new_primDivNatS0(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165)) 33.61/16.91 new_primDivNatS0(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS00(ww164, ww165) 33.61/16.91 new_primDivNatS00(ww164, ww165) -> new_primDivNatS(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165)) 33.61/16.91 new_primDivNatS1(Main.Succ(ww1220), Main.Zero) -> new_primDivNatS(Main.Succ(ww1220), Main.Zero, Main.Zero) 33.61/16.91 33.61/16.91 R is empty. 33.61/16.91 Q is empty. 33.61/16.91 We have to consider all minimal (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (19) DependencyGraphProof (EQUIVALENT) 33.61/16.91 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 5 less nodes. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (20) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_primDivNatS0(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS0(ww164, ww165, ww1660, ww1670) 33.61/16.91 33.61/16.91 R is empty. 33.61/16.91 Q is empty. 33.61/16.91 We have to consider all minimal (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (21) QDPSizeChangeProof (EQUIVALENT) 33.61/16.91 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.61/16.91 33.61/16.91 From the DPs we obtained the following set of size-change graphs: 33.61/16.91 *new_primDivNatS0(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS0(ww164, ww165, ww1660, ww1670) 33.61/16.91 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 33.61/16.91 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (22) 33.61/16.91 YES 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (23) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_psPs(Cons(ww1200, ww1201), ww55) -> new_psPs(ww1201, ww55) 33.61/16.91 33.61/16.91 R is empty. 33.61/16.91 Q is empty. 33.61/16.91 We have to consider all minimal (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (24) QDPSizeChangeProof (EQUIVALENT) 33.61/16.91 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.61/16.91 33.61/16.91 From the DPs we obtained the following set of size-change graphs: 33.61/16.91 *new_psPs(Cons(ww1200, ww1201), ww55) -> new_psPs(ww1201, ww55) 33.61/16.91 The graph contains the following edges 1 > 1, 2 >= 2 33.61/16.91 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (25) 33.61/16.91 YES 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (26) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_primShowInt(Main.Neg(ww170)) -> new_primShowInt(Main.Pos(ww170)) 33.61/16.91 new_primShowInt(Main.Pos(Main.Succ(ww1700))) -> new_primShowInt(new_divMyInt(ww1700, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 33.61/16.91 33.61/16.91 The TRS R consists of the following rules: 33.61/16.91 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.91 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.91 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.91 new_divMyInt(ww122, ww123) -> Main.Pos(new_primDivNatS3(ww122, ww123)) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.91 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.91 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.91 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.91 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.91 33.61/16.91 The set Q consists of the following terms: 33.61/16.91 33.61/16.91 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.91 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.91 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.91 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.91 new_primDivNatS01(x0, x1) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.91 new_divMyInt(x0, x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.91 new_primDivNatS4(x0) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.91 33.61/16.91 We have to consider all minimal (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (27) DependencyGraphProof (EQUIVALENT) 33.61/16.91 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (28) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_primShowInt(Main.Pos(Main.Succ(ww1700))) -> new_primShowInt(new_divMyInt(ww1700, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 33.61/16.91 33.61/16.91 The TRS R consists of the following rules: 33.61/16.91 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.91 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.91 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.91 new_divMyInt(ww122, ww123) -> Main.Pos(new_primDivNatS3(ww122, ww123)) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.91 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.91 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.91 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.91 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.91 33.61/16.91 The set Q consists of the following terms: 33.61/16.91 33.61/16.91 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.91 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.91 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.91 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.91 new_primDivNatS01(x0, x1) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.91 new_divMyInt(x0, x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.91 new_primDivNatS4(x0) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.91 33.61/16.91 We have to consider all minimal (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (29) TransformationProof (EQUIVALENT) 33.61/16.91 By rewriting [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(ww1700))) -> new_primShowInt(new_divMyInt(ww1700, 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.61/16.91 33.61/16.91 (new_primShowInt(Main.Pos(Main.Succ(ww1700))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww1700, 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(ww1700))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww1700, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.61/16.91 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (30) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_primShowInt(Main.Pos(Main.Succ(ww1700))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww1700, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 33.61/16.91 33.61/16.91 The TRS R consists of the following rules: 33.61/16.91 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.91 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.91 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.91 new_divMyInt(ww122, ww123) -> Main.Pos(new_primDivNatS3(ww122, ww123)) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.91 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.91 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.91 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.91 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.91 33.61/16.91 The set Q consists of the following terms: 33.61/16.91 33.61/16.91 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.91 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.91 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.91 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.91 new_primDivNatS01(x0, x1) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.91 new_divMyInt(x0, x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.91 new_primDivNatS4(x0) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.91 33.61/16.91 We have to consider all minimal (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (31) UsableRulesProof (EQUIVALENT) 33.61/16.91 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.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (32) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_primShowInt(Main.Pos(Main.Succ(ww1700))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww1700, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 33.61/16.91 33.61/16.91 The TRS R consists of the following rules: 33.61/16.91 33.61/16.91 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.91 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.91 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.91 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.91 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.91 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.91 33.61/16.91 The set Q consists of the following terms: 33.61/16.91 33.61/16.91 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.91 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.91 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.91 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.91 new_primDivNatS01(x0, x1) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.91 new_divMyInt(x0, x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.91 new_primDivNatS4(x0) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.91 33.61/16.91 We have to consider all minimal (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (33) QReductionProof (EQUIVALENT) 33.61/16.91 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 33.61/16.91 33.61/16.91 new_divMyInt(x0, x1) 33.61/16.91 33.61/16.91 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (34) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_primShowInt(Main.Pos(Main.Succ(ww1700))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww1700, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 33.61/16.91 33.61/16.91 The TRS R consists of the following rules: 33.61/16.91 33.61/16.91 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.91 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.91 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.91 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.91 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.91 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.91 33.61/16.91 The set Q consists of the following terms: 33.61/16.91 33.61/16.91 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.91 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.91 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.91 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.91 new_primDivNatS01(x0, x1) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.91 new_primDivNatS4(x0) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.91 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.91 33.61/16.91 We have to consider all minimal (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (35) MNOCProof (EQUIVALENT) 33.61/16.91 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (36) 33.61/16.91 Obligation: 33.61/16.91 Q DP problem: 33.61/16.91 The TRS P consists of the following rules: 33.61/16.91 33.61/16.91 new_primShowInt(Main.Pos(Main.Succ(ww1700))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww1700, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 33.61/16.91 33.61/16.91 The TRS R consists of the following rules: 33.61/16.91 33.61/16.91 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.91 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.91 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.91 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.91 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.91 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.91 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.91 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.91 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.91 33.61/16.91 Q is empty. 33.61/16.91 We have to consider all (P,Q,R)-chains. 33.61/16.91 ---------------------------------------- 33.61/16.91 33.61/16.91 (37) InductionCalculusProof (EQUIVALENT) 33.61/16.91 Note that final constraints are written in bold face. 33.61/16.91 33.61/16.91 33.61/16.91 33.61/16.91 For Pair new_primShowInt(Main.Pos(Main.Succ(ww1700))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww1700, 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.61/16.91 *We consider the chain new_primShowInt(Main.Pos(Main.Succ(x0))) -> new_primShowInt(Main.Pos(new_primDivNatS3(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_primDivNatS3(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.61/16.91 33.61/16.91 (1) (new_primShowInt(Main.Pos(new_primDivNatS3(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_primDivNatS3(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.61/16.91 33.61/16.91 33.61/16.91 33.61/16.91 We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: 33.61/16.91 33.61/16.91 (2) (Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))=x2 & new_primDivNatS3(x0, x2)=Main.Succ(x1) ==> new_primShowInt(Main.Pos(Main.Succ(x0)))_>=_new_primShowInt(Main.Pos(new_primDivNatS3(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.61/16.91 33.61/16.91 33.61/16.91 33.61/16.91 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS3(x0, x2)=Main.Succ(x1) which results in the following new constraints: 33.61/16.92 33.61/16.92 (3) (new_primDivNatS02(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_primDivNatS3(Main.Succ(x4), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.61/16.92 33.61/16.92 (4) (Main.Succ(new_primDivNatS2(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_primDivNatS3(Main.Succ(x6), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.61/16.92 33.61/16.92 (5) (Main.Succ(new_primDivNatS2(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_primDivNatS3(Main.Zero, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: 33.61/16.92 33.61/16.92 (6) (x4=x7 & x3=x8 & new_primDivNatS02(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_primDivNatS3(Main.Succ(x4), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 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_primDivNatS02(x4, x3, x7, x8)=Main.Succ(x1) which results in the following new constraints: 33.61/16.92 33.61/16.92 (7) (new_primDivNatS02(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_primDivNatS02(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_primDivNatS3(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_primDivNatS3(Main.Succ(x12), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.61/16.92 33.61/16.92 (8) (new_primDivNatS01(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_primDivNatS3(Main.Succ(x15), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.61/16.92 33.61/16.92 (9) (new_primDivNatS01(x18, x17)=Main.Succ(x1) & x18=Main.Succ(x16) & x17=Main.Zero & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x17 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x18))))_>=_new_primShowInt(Main.Pos(new_primDivNatS3(Main.Succ(x18), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: 33.61/16.92 33.61/16.92 (10) (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x10)))))_>=_new_primShowInt(Main.Pos(new_primDivNatS3(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.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 We solved constraint (8) using rules (I), (II), (III).We solved constraint (9) using rules (I), (II), (III). 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 To summarize, we get the following constraints P__>=_ for the following pairs. 33.61/16.92 33.61/16.92 *new_primShowInt(Main.Pos(Main.Succ(ww1700))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww1700, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 33.61/16.92 33.61/16.92 *(new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x10)))))_>=_new_primShowInt(Main.Pos(new_primDivNatS3(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.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 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.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (38) 33.61/16.92 Obligation: 33.61/16.92 Q DP problem: 33.61/16.92 The TRS P consists of the following rules: 33.61/16.92 33.61/16.92 new_primShowInt(Main.Pos(Main.Succ(ww1700))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww1700, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 33.61/16.92 33.61/16.92 The TRS R consists of the following rules: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.92 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.92 33.61/16.92 The set Q consists of the following terms: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.92 new_primDivNatS01(x0, x1) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.92 new_primDivNatS4(x0) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.92 33.61/16.92 We have to consider all minimal (P,Q,R)-chains. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (39) TransformationProof (EQUIVALENT) 33.61/16.92 By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(ww1700))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww1700, 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.61/16.92 33.61/16.92 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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_primDivNatS02(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.61/16.92 (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.61/16.92 33.61/16.92 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (40) 33.61/16.92 Obligation: 33.61/16.92 Q DP problem: 33.61/16.92 The TRS P consists of the following rules: 33.61/16.92 33.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Zero))) -> new_primShowInt(Main.Pos(Main.Zero)) 33.61/16.92 33.61/16.92 The TRS R consists of the following rules: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.92 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.92 33.61/16.92 The set Q consists of the following terms: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.92 new_primDivNatS01(x0, x1) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.92 new_primDivNatS4(x0) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.92 33.61/16.92 We have to consider all minimal (P,Q,R)-chains. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (41) DependencyGraphProof (EQUIVALENT) 33.61/16.92 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (42) 33.61/16.92 Obligation: 33.61/16.92 Q DP problem: 33.61/16.92 The TRS P consists of the following rules: 33.61/16.92 33.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 33.61/16.92 The TRS R consists of the following rules: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.92 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.92 33.61/16.92 The set Q consists of the following terms: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.92 new_primDivNatS01(x0, x1) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.92 new_primDivNatS4(x0) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.92 33.61/16.92 We have to consider all minimal (P,Q,R)-chains. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (43) TransformationProof (EQUIVALENT) 33.61/16.92 By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 33.61/16.92 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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_primDivNatS02(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.61/16.92 (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.61/16.92 33.61/16.92 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (44) 33.61/16.92 Obligation: 33.61/16.92 Q DP problem: 33.61/16.92 The TRS P consists of the following rules: 33.61/16.92 33.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_primShowInt(Main.Pos(Main.Zero)) 33.61/16.92 33.61/16.92 The TRS R consists of the following rules: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.92 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.92 33.61/16.92 The set Q consists of the following terms: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.92 new_primDivNatS01(x0, x1) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.92 new_primDivNatS4(x0) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.92 33.61/16.92 We have to consider all minimal (P,Q,R)-chains. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (45) DependencyGraphProof (EQUIVALENT) 33.61/16.92 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (46) 33.61/16.92 Obligation: 33.61/16.92 Q DP problem: 33.61/16.92 The TRS P consists of the following rules: 33.61/16.92 33.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 33.61/16.92 The TRS R consists of the following rules: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.92 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.92 33.61/16.92 The set Q consists of the following terms: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.92 new_primDivNatS01(x0, x1) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.92 new_primDivNatS4(x0) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.92 33.61/16.92 We have to consider all minimal (P,Q,R)-chains. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (47) TransformationProof (EQUIVALENT) 33.61/16.92 By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 33.61/16.92 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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_primDivNatS02(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.61/16.92 (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.61/16.92 33.61/16.92 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (48) 33.61/16.92 Obligation: 33.61/16.92 Q DP problem: 33.61/16.92 The TRS P consists of the following rules: 33.61/16.92 33.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_primShowInt(Main.Pos(Main.Zero)) 33.61/16.92 33.61/16.92 The TRS R consists of the following rules: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.92 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.92 33.61/16.92 The set Q consists of the following terms: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.92 new_primDivNatS01(x0, x1) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.92 new_primDivNatS4(x0) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.92 33.61/16.92 We have to consider all minimal (P,Q,R)-chains. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (49) DependencyGraphProof (EQUIVALENT) 33.61/16.92 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (50) 33.61/16.92 Obligation: 33.61/16.92 Q DP problem: 33.61/16.92 The TRS P consists of the following rules: 33.61/16.92 33.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 33.61/16.92 The TRS R consists of the following rules: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.92 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.92 33.61/16.92 The set Q consists of the following terms: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.92 new_primDivNatS01(x0, x1) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.92 new_primDivNatS4(x0) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.92 33.61/16.92 We have to consider all minimal (P,Q,R)-chains. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (51) TransformationProof (EQUIVALENT) 33.61/16.92 By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 33.61/16.92 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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_primDivNatS02(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.61/16.92 (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.61/16.92 33.61/16.92 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (52) 33.61/16.92 Obligation: 33.61/16.92 Q DP problem: 33.61/16.92 The TRS P consists of the following rules: 33.61/16.92 33.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) -> new_primShowInt(Main.Pos(Main.Zero)) 33.61/16.92 33.61/16.92 The TRS R consists of the following rules: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.92 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.92 33.61/16.92 The set Q consists of the following terms: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.92 new_primDivNatS01(x0, x1) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.92 new_primDivNatS4(x0) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.92 33.61/16.92 We have to consider all minimal (P,Q,R)-chains. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (53) DependencyGraphProof (EQUIVALENT) 33.61/16.92 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (54) 33.61/16.92 Obligation: 33.61/16.92 Q DP problem: 33.61/16.92 The TRS P consists of the following rules: 33.61/16.92 33.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 33.61/16.92 The TRS R consists of the following rules: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.92 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.92 33.61/16.92 The set Q consists of the following terms: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.92 new_primDivNatS01(x0, x1) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.92 new_primDivNatS4(x0) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.92 33.61/16.92 We have to consider all minimal (P,Q,R)-chains. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (55) MNOCProof (EQUIVALENT) 33.61/16.92 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (56) 33.61/16.92 Obligation: 33.61/16.92 Q DP problem: 33.61/16.92 The TRS P consists of the following rules: 33.61/16.92 33.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 33.61/16.92 The TRS R consists of the following rules: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.92 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.92 33.61/16.92 Q is empty. 33.61/16.92 We have to consider all (P,Q,R)-chains. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (57) InductionCalculusProof (EQUIVALENT) 33.61/16.92 Note that final constraints are written in bold face. 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 For Pair new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 *We consider the chain new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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_primDivNatS02(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.61/16.92 33.61/16.92 (1) (new_primShowInt(Main.Pos(new_primDivNatS02(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_primDivNatS02(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.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: 33.61/16.92 33.61/16.92 (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_primDivNatS02(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_primDivNatS02(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.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS02(x2, x3, x0, x4)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) which results in the following new constraints: 33.61/16.92 33.61/16.92 (3) (new_primDivNatS02(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_primDivNatS02(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_primDivNatS02(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_primDivNatS02(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.61/16.92 33.61/16.92 (4) (new_primDivNatS01(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_primDivNatS02(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.61/16.92 33.61/16.92 (5) (new_primDivNatS01(x14, x13)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(x12))))=x14 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x13 & 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(x12))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS02(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x12)))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(x12), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: 33.61/16.92 33.61/16.92 (6) (new_primDivNatS02(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_primDivNatS02(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.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 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_primDivNatS02(x8, x7, x6, x5)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) which results in the following new constraints: 33.61/16.92 33.61/16.92 (7) (new_primDivNatS02(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_primDivNatS02(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_primDivNatS02(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_primDivNatS02(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.61/16.92 33.61/16.92 (8) (new_primDivNatS01(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_primDivNatS02(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.61/16.92 33.61/16.92 (9) (new_primDivNatS01(x27, x26)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x25)))))=x27 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x26 & 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(x25)))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS02(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x25))))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(Main.Succ(x25)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 We simplified constraint (7) using rules (I), (II), (III), (IV) which results in the following new constraint: 33.61/16.92 33.61/16.92 (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_primDivNatS02(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.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 We solved constraint (8) using rules (I), (II).We solved constraint (9) using rules (I), (II). 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 To summarize, we get the following constraints P__>=_ for the following pairs. 33.61/16.92 33.61/16.92 *new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 33.61/16.92 *(new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19)))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 33.61/16.92 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.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (58) 33.61/16.92 Obligation: 33.61/16.92 Q DP problem: 33.61/16.92 The TRS P consists of the following rules: 33.61/16.92 33.61/16.92 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS02(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.61/16.92 33.61/16.92 The TRS R consists of the following rules: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Succ(ww1230)) -> new_primDivNatS02(ww1220, ww1230, ww1220, ww1230) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(ww1230)) -> Main.Zero 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Succ(ww1670)) -> new_primDivNatS02(ww164, ww165, ww1660, ww1670) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Succ(ww1660), Main.Zero) -> new_primDivNatS01(ww164, ww165) 33.61/16.92 new_primDivNatS02(ww164, ww165, Main.Zero, Main.Succ(ww1670)) -> Main.Zero 33.61/16.92 new_primDivNatS01(ww164, ww165) -> Main.Succ(new_primDivNatS2(Main.Succ(ww164), Main.Succ(ww165), Main.Succ(ww165))) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Succ(ww1810), ww182) -> new_primDivNatS2(ww1800, ww1810, ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(ww1810), ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, ww182) -> new_primDivNatS4(ww182) 33.61/16.92 new_primDivNatS2(Main.Succ(ww1800), Main.Zero, ww182) -> new_primDivNatS3(ww1800, ww182) 33.61/16.92 new_primDivNatS3(Main.Succ(ww1220), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww1220), Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 33.61/16.92 new_primDivNatS4(ww182) -> Main.Zero 33.61/16.92 33.61/16.92 The set Q consists of the following terms: 33.61/16.92 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Zero, x0) 33.61/16.92 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 33.61/16.92 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) 33.61/16.92 new_primDivNatS01(x0, x1) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) 33.61/16.92 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) 33.61/16.92 new_primDivNatS4(x0) 33.61/16.92 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 33.61/16.92 new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) 33.61/16.92 33.61/16.92 We have to consider all minimal (P,Q,R)-chains. 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (59) Narrow (COMPLETE) 33.61/16.92 Haskell To QDPs 33.61/16.92 33.61/16.92 digraph dp_graph { 33.61/16.92 node [outthreshold=100, inthreshold=100];1[label="showsRatio",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 33.61/16.92 3[label="showsRatio ww3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 33.61/16.92 4[label="showsRatio ww3 ww4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 33.61/16.92 5[label="showsPrecRatio (Pos Zero) ww3 ww4",fontsize=16,color="burlywood",shape="box"];1331[label="ww3/CnPc ww30 ww31",fontsize=10,color="white",style="solid",shape="box"];5 -> 1331[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1331 -> 6[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 6[label="showsPrecRatio (Pos Zero) (CnPc ww30 ww31) ww4",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 33.61/16.92 7 -> 24[label="",style="dashed", color="red", weight=0]; 33.61/16.92 7[label="showParen (gtMyInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) (pt (showsMyInt ww30) (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 ww31))) ww4",fontsize=16,color="magenta"];7 -> 25[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 7 -> 26[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 7 -> 27[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 7 -> 28[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 7 -> 29[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 7 -> 30[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 25[label="ww4",fontsize=16,color="green",shape="box"];26[label="ww31",fontsize=16,color="green",shape="box"];27[label="ww30",fontsize=16,color="green",shape="box"];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="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (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"];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 Zero))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];24[label="showParen (gtMyInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) ww22",fontsize=16,color="black",shape="triangle"];24 -> 37[label="",style="solid", color="black", weight=3]; 33.61/16.92 37[label="showParen0 (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) (gtMyInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) ww22",fontsize=16,color="black",shape="box"];37 -> 38[label="",style="solid", color="black", weight=3]; 33.61/16.92 38[label="showParen0 (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) (esEsOrdering (compareMyInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww22",fontsize=16,color="black",shape="box"];38 -> 39[label="",style="solid", color="black", weight=3]; 33.61/16.92 39[label="showParen0 (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) GT) ww22",fontsize=16,color="black",shape="box"];39 -> 40[label="",style="solid", color="black", weight=3]; 33.61/16.92 40[label="showParen0 (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) (esEsOrdering (primCmpNat Zero (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) GT) ww22",fontsize=16,color="black",shape="box"];40 -> 41[label="",style="solid", color="black", weight=3]; 33.61/16.92 41[label="showParen0 (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) (esEsOrdering LT GT) ww22",fontsize=16,color="black",shape="box"];41 -> 42[label="",style="solid", color="black", weight=3]; 33.61/16.92 42[label="showParen0 (pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21))) MyFalse ww22",fontsize=16,color="black",shape="box"];42 -> 43[label="",style="solid", color="black", weight=3]; 33.61/16.92 43[label="pt (showsMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21)) ww22",fontsize=16,color="black",shape="box"];43 -> 44[label="",style="solid", color="black", weight=3]; 33.61/16.92 44[label="showsMyInt ww17 (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21) ww22)",fontsize=16,color="black",shape="box"];44 -> 45[label="",style="solid", color="black", weight=3]; 33.61/16.92 45[label="showsPrecMyInt (Pos Zero) ww17 (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21) ww22)",fontsize=16,color="black",shape="box"];45 -> 46[label="",style="solid", color="black", weight=3]; 33.61/16.92 46 -> 318[label="",style="dashed", color="red", weight=0]; 33.61/16.92 46[label="psPs (showMyInt ww17) (pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21) ww22)",fontsize=16,color="magenta"];46 -> 319[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 46 -> 320[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 319[label="showMyInt ww17",fontsize=16,color="black",shape="triangle"];319 -> 470[label="",style="solid", color="black", weight=3]; 33.61/16.92 320[label="pt (showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil)))) (showsMyInt ww21) ww22",fontsize=16,color="black",shape="box"];320 -> 471[label="",style="solid", color="black", weight=3]; 33.61/16.92 318[label="psPs ww120 ww55",fontsize=16,color="burlywood",shape="triangle"];1332[label="ww120/Cons ww1200 ww1201",fontsize=10,color="white",style="solid",shape="box"];318 -> 1332[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1332 -> 472[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1333[label="ww120/Nil",fontsize=10,color="white",style="solid",shape="box"];318 -> 1333[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1333 -> 473[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 470[label="primShowInt ww17",fontsize=16,color="burlywood",shape="triangle"];1334[label="ww17/Pos ww170",fontsize=10,color="white",style="solid",shape="box"];470 -> 1334[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1334 -> 474[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1335[label="ww17/Neg ww170",fontsize=10,color="white",style="solid",shape="box"];470 -> 1335[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1335 -> 475[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 471[label="showString (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil))) (showsMyInt ww21 ww22)",fontsize=16,color="black",shape="box"];471 -> 476[label="",style="solid", color="black", weight=3]; 33.61/16.92 472[label="psPs (Cons ww1200 ww1201) ww55",fontsize=16,color="black",shape="box"];472 -> 477[label="",style="solid", color="black", weight=3]; 33.61/16.92 473[label="psPs Nil ww55",fontsize=16,color="black",shape="box"];473 -> 478[label="",style="solid", color="black", weight=3]; 33.61/16.92 474[label="primShowInt (Pos ww170)",fontsize=16,color="burlywood",shape="box"];1336[label="ww170/Succ ww1700",fontsize=10,color="white",style="solid",shape="box"];474 -> 1336[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1336 -> 479[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1337[label="ww170/Zero",fontsize=10,color="white",style="solid",shape="box"];474 -> 1337[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1337 -> 480[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 475[label="primShowInt (Neg ww170)",fontsize=16,color="black",shape="box"];475 -> 481[label="",style="solid", color="black", weight=3]; 33.61/16.92 476 -> 318[label="",style="dashed", color="red", weight=0]; 33.61/16.92 476[label="psPs (Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil))) (showsMyInt ww21 ww22)",fontsize=16,color="magenta"];476 -> 482[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 476 -> 483[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 477[label="Cons ww1200 (psPs ww1201 ww55)",fontsize=16,color="green",shape="box"];477 -> 484[label="",style="dashed", color="green", weight=3]; 33.61/16.92 478[label="ww55",fontsize=16,color="green",shape="box"];479[label="primShowInt (Pos (Succ ww1700))",fontsize=16,color="black",shape="box"];479 -> 485[label="",style="solid", color="black", weight=3]; 33.61/16.92 480[label="primShowInt (Pos Zero)",fontsize=16,color="black",shape="box"];480 -> 486[label="",style="solid", color="black", weight=3]; 33.61/16.92 481[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 ww170))",fontsize=16,color="green",shape="box"];481 -> 487[label="",style="dashed", color="green", weight=3]; 33.61/16.92 482[label="Cons (Char (Pos (Succ ww18))) (Cons (Char (Pos (Succ ww19))) (Cons (Char (Pos (Succ ww20))) Nil))",fontsize=16,color="green",shape="box"];483[label="showsMyInt ww21 ww22",fontsize=16,color="black",shape="box"];483 -> 488[label="",style="solid", color="black", weight=3]; 33.61/16.92 484 -> 318[label="",style="dashed", color="red", weight=0]; 33.61/16.92 484[label="psPs ww1201 ww55",fontsize=16,color="magenta"];484 -> 489[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 485 -> 318[label="",style="dashed", color="red", weight=0]; 33.61/16.92 485[label="psPs (primShowInt (divMyInt (Pos (Succ ww1700)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (Cons (toEnumChar (modMyInt (Pos (Succ ww1700)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil)",fontsize=16,color="magenta"];485 -> 490[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 485 -> 491[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 486[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"];487 -> 470[label="",style="dashed", color="red", weight=0]; 33.61/16.92 487[label="primShowInt (Pos ww170)",fontsize=16,color="magenta"];487 -> 492[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 488[label="showsPrecMyInt (Pos Zero) ww21 ww22",fontsize=16,color="black",shape="box"];488 -> 493[label="",style="solid", color="black", weight=3]; 33.61/16.92 489[label="ww1201",fontsize=16,color="green",shape="box"];490 -> 470[label="",style="dashed", color="red", weight=0]; 33.61/16.92 490[label="primShowInt (divMyInt (Pos (Succ ww1700)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];490 -> 494[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 491[label="Cons (toEnumChar (modMyInt (Pos (Succ ww1700)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil",fontsize=16,color="green",shape="box"];491 -> 495[label="",style="dashed", color="green", weight=3]; 33.61/16.92 492[label="Pos ww170",fontsize=16,color="green",shape="box"];493 -> 318[label="",style="dashed", color="red", weight=0]; 33.61/16.92 493[label="psPs (showMyInt ww21) ww22",fontsize=16,color="magenta"];493 -> 496[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 493 -> 497[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 494 -> 498[label="",style="dashed", color="red", weight=0]; 33.61/16.92 494[label="divMyInt (Pos (Succ ww1700)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))",fontsize=16,color="magenta"];494 -> 499[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 494 -> 500[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 495 -> 501[label="",style="dashed", color="red", weight=0]; 33.61/16.92 495[label="toEnumChar (modMyInt (Pos (Succ ww1700)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];495 -> 502[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 495 -> 503[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 496 -> 319[label="",style="dashed", color="red", weight=0]; 33.61/16.92 496[label="showMyInt ww21",fontsize=16,color="magenta"];496 -> 504[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 497[label="ww22",fontsize=16,color="green",shape="box"];499[label="ww1700",fontsize=16,color="green",shape="box"];500[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];498[label="divMyInt (Pos (Succ ww122)) (Pos (Succ ww123))",fontsize=16,color="black",shape="triangle"];498 -> 505[label="",style="solid", color="black", weight=3]; 33.61/16.92 502[label="ww1700",fontsize=16,color="green",shape="box"];503[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];501[label="toEnumChar (modMyInt (Pos (Succ ww125)) (Pos (Succ ww126)))",fontsize=16,color="black",shape="triangle"];501 -> 506[label="",style="solid", color="black", weight=3]; 33.61/16.92 504[label="ww21",fontsize=16,color="green",shape="box"];505[label="primDivInt (Pos (Succ ww122)) (Pos (Succ ww123))",fontsize=16,color="black",shape="box"];505 -> 507[label="",style="solid", color="black", weight=3]; 33.61/16.92 506[label="primIntToChar (modMyInt (Pos (Succ ww125)) (Pos (Succ ww126)))",fontsize=16,color="black",shape="box"];506 -> 508[label="",style="solid", color="black", weight=3]; 33.61/16.92 507[label="Pos (primDivNatS (Succ ww122) (Succ ww123))",fontsize=16,color="green",shape="box"];507 -> 509[label="",style="dashed", color="green", weight=3]; 33.61/16.92 508[label="Char (modMyInt (Pos (Succ ww125)) (Pos (Succ ww126)))",fontsize=16,color="green",shape="box"];508 -> 510[label="",style="dashed", color="green", weight=3]; 33.61/16.92 509[label="primDivNatS (Succ ww122) (Succ ww123)",fontsize=16,color="black",shape="triangle"];509 -> 511[label="",style="solid", color="black", weight=3]; 33.61/16.92 510[label="modMyInt (Pos (Succ ww125)) (Pos (Succ ww126))",fontsize=16,color="black",shape="box"];510 -> 512[label="",style="solid", color="black", weight=3]; 33.61/16.92 511[label="primDivNatS0 ww122 ww123 (primGEqNatS ww122 ww123)",fontsize=16,color="burlywood",shape="box"];1338[label="ww122/Succ ww1220",fontsize=10,color="white",style="solid",shape="box"];511 -> 1338[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1338 -> 513[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1339[label="ww122/Zero",fontsize=10,color="white",style="solid",shape="box"];511 -> 1339[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1339 -> 514[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 512[label="primModInt (Pos (Succ ww125)) (Pos (Succ ww126))",fontsize=16,color="black",shape="box"];512 -> 515[label="",style="solid", color="black", weight=3]; 33.61/16.92 513[label="primDivNatS0 (Succ ww1220) ww123 (primGEqNatS (Succ ww1220) ww123)",fontsize=16,color="burlywood",shape="box"];1340[label="ww123/Succ ww1230",fontsize=10,color="white",style="solid",shape="box"];513 -> 1340[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1340 -> 516[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1341[label="ww123/Zero",fontsize=10,color="white",style="solid",shape="box"];513 -> 1341[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1341 -> 517[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 514[label="primDivNatS0 Zero ww123 (primGEqNatS Zero ww123)",fontsize=16,color="burlywood",shape="box"];1342[label="ww123/Succ ww1230",fontsize=10,color="white",style="solid",shape="box"];514 -> 1342[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1342 -> 518[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1343[label="ww123/Zero",fontsize=10,color="white",style="solid",shape="box"];514 -> 1343[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1343 -> 519[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 515[label="Pos (primModNatS (Succ ww125) (Succ ww126))",fontsize=16,color="green",shape="box"];515 -> 520[label="",style="dashed", color="green", weight=3]; 33.61/16.92 516[label="primDivNatS0 (Succ ww1220) (Succ ww1230) (primGEqNatS (Succ ww1220) (Succ ww1230))",fontsize=16,color="black",shape="box"];516 -> 521[label="",style="solid", color="black", weight=3]; 33.61/16.92 517[label="primDivNatS0 (Succ ww1220) Zero (primGEqNatS (Succ ww1220) Zero)",fontsize=16,color="black",shape="box"];517 -> 522[label="",style="solid", color="black", weight=3]; 33.61/16.92 518[label="primDivNatS0 Zero (Succ ww1230) (primGEqNatS Zero (Succ ww1230))",fontsize=16,color="black",shape="box"];518 -> 523[label="",style="solid", color="black", weight=3]; 33.61/16.92 519[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];519 -> 524[label="",style="solid", color="black", weight=3]; 33.61/16.92 520[label="primModNatS (Succ ww125) (Succ ww126)",fontsize=16,color="burlywood",shape="triangle"];1344[label="ww126/Succ ww1260",fontsize=10,color="white",style="solid",shape="box"];520 -> 1344[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1344 -> 525[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1345[label="ww126/Zero",fontsize=10,color="white",style="solid",shape="box"];520 -> 1345[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1345 -> 526[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 521 -> 936[label="",style="dashed", color="red", weight=0]; 33.61/16.92 521[label="primDivNatS0 (Succ ww1220) (Succ ww1230) (primGEqNatS ww1220 ww1230)",fontsize=16,color="magenta"];521 -> 937[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 521 -> 938[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 521 -> 939[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 521 -> 940[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 522[label="primDivNatS0 (Succ ww1220) Zero MyTrue",fontsize=16,color="black",shape="box"];522 -> 529[label="",style="solid", color="black", weight=3]; 33.61/16.92 523[label="primDivNatS0 Zero (Succ ww1230) MyFalse",fontsize=16,color="black",shape="box"];523 -> 530[label="",style="solid", color="black", weight=3]; 33.61/16.92 524[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];524 -> 531[label="",style="solid", color="black", weight=3]; 33.61/16.92 525[label="primModNatS (Succ ww125) (Succ (Succ ww1260))",fontsize=16,color="black",shape="box"];525 -> 532[label="",style="solid", color="black", weight=3]; 33.61/16.92 526[label="primModNatS (Succ ww125) (Succ Zero)",fontsize=16,color="black",shape="box"];526 -> 533[label="",style="solid", color="black", weight=3]; 33.61/16.92 937[label="ww1230",fontsize=16,color="green",shape="box"];938[label="ww1230",fontsize=16,color="green",shape="box"];939[label="ww1220",fontsize=16,color="green",shape="box"];940[label="ww1220",fontsize=16,color="green",shape="box"];936[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS ww166 ww167)",fontsize=16,color="burlywood",shape="triangle"];1346[label="ww166/Succ ww1660",fontsize=10,color="white",style="solid",shape="box"];936 -> 1346[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1346 -> 977[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1347[label="ww166/Zero",fontsize=10,color="white",style="solid",shape="box"];936 -> 1347[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1347 -> 978[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 529[label="Succ (primDivNatS (primMinusNatS (Succ ww1220) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];529 -> 538[label="",style="dashed", color="green", weight=3]; 33.61/16.92 530[label="Zero",fontsize=16,color="green",shape="box"];531[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];531 -> 539[label="",style="dashed", color="green", weight=3]; 33.61/16.92 532[label="primModNatS0 ww125 ww1260 (primGEqNatS ww125 (Succ ww1260))",fontsize=16,color="burlywood",shape="box"];1348[label="ww125/Succ ww1250",fontsize=10,color="white",style="solid",shape="box"];532 -> 1348[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1348 -> 540[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1349[label="ww125/Zero",fontsize=10,color="white",style="solid",shape="box"];532 -> 1349[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1349 -> 541[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 533[label="Zero",fontsize=16,color="green",shape="box"];977[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS (Succ ww1660) ww167)",fontsize=16,color="burlywood",shape="box"];1350[label="ww167/Succ ww1670",fontsize=10,color="white",style="solid",shape="box"];977 -> 1350[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1350 -> 1001[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1351[label="ww167/Zero",fontsize=10,color="white",style="solid",shape="box"];977 -> 1351[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1351 -> 1002[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 978[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS Zero ww167)",fontsize=16,color="burlywood",shape="box"];1352[label="ww167/Succ ww1670",fontsize=10,color="white",style="solid",shape="box"];978 -> 1352[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1352 -> 1003[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1353[label="ww167/Zero",fontsize=10,color="white",style="solid",shape="box"];978 -> 1353[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1353 -> 1004[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 538 -> 1227[label="",style="dashed", color="red", weight=0]; 33.61/16.92 538[label="primDivNatS (primMinusNatS (Succ ww1220) Zero) (Succ Zero)",fontsize=16,color="magenta"];538 -> 1228[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 538 -> 1229[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 538 -> 1230[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 539 -> 1227[label="",style="dashed", color="red", weight=0]; 33.61/16.92 539[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];539 -> 1231[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 539 -> 1232[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 539 -> 1233[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 540[label="primModNatS0 (Succ ww1250) ww1260 (primGEqNatS (Succ ww1250) (Succ ww1260))",fontsize=16,color="black",shape="box"];540 -> 548[label="",style="solid", color="black", weight=3]; 33.61/16.92 541[label="primModNatS0 Zero ww1260 (primGEqNatS Zero (Succ ww1260))",fontsize=16,color="black",shape="box"];541 -> 549[label="",style="solid", color="black", weight=3]; 33.61/16.92 1001[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS (Succ ww1660) (Succ ww1670))",fontsize=16,color="black",shape="box"];1001 -> 1016[label="",style="solid", color="black", weight=3]; 33.61/16.92 1002[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS (Succ ww1660) Zero)",fontsize=16,color="black",shape="box"];1002 -> 1017[label="",style="solid", color="black", weight=3]; 33.61/16.92 1003[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS Zero (Succ ww1670))",fontsize=16,color="black",shape="box"];1003 -> 1018[label="",style="solid", color="black", weight=3]; 33.61/16.92 1004[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1004 -> 1019[label="",style="solid", color="black", weight=3]; 33.61/16.92 1228[label="Succ ww1220",fontsize=16,color="green",shape="box"];1229[label="Zero",fontsize=16,color="green",shape="box"];1230[label="Zero",fontsize=16,color="green",shape="box"];1227[label="primDivNatS (primMinusNatS ww180 ww181) (Succ ww182)",fontsize=16,color="burlywood",shape="triangle"];1354[label="ww180/Succ ww1800",fontsize=10,color="white",style="solid",shape="box"];1227 -> 1354[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1354 -> 1252[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1355[label="ww180/Zero",fontsize=10,color="white",style="solid",shape="box"];1227 -> 1355[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1355 -> 1253[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1231[label="Zero",fontsize=16,color="green",shape="box"];1232[label="Zero",fontsize=16,color="green",shape="box"];1233[label="Zero",fontsize=16,color="green",shape="box"];548[label="primModNatS0 (Succ ww1250) ww1260 (primGEqNatS ww1250 ww1260)",fontsize=16,color="burlywood",shape="box"];1356[label="ww1250/Succ ww12500",fontsize=10,color="white",style="solid",shape="box"];548 -> 1356[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1356 -> 558[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1357[label="ww1250/Zero",fontsize=10,color="white",style="solid",shape="box"];548 -> 1357[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1357 -> 559[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 549[label="primModNatS0 Zero ww1260 MyFalse",fontsize=16,color="black",shape="box"];549 -> 560[label="",style="solid", color="black", weight=3]; 33.61/16.92 1016 -> 936[label="",style="dashed", color="red", weight=0]; 33.61/16.92 1016[label="primDivNatS0 (Succ ww164) (Succ ww165) (primGEqNatS ww1660 ww1670)",fontsize=16,color="magenta"];1016 -> 1031[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1016 -> 1032[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1017[label="primDivNatS0 (Succ ww164) (Succ ww165) MyTrue",fontsize=16,color="black",shape="triangle"];1017 -> 1033[label="",style="solid", color="black", weight=3]; 33.61/16.92 1018[label="primDivNatS0 (Succ ww164) (Succ ww165) MyFalse",fontsize=16,color="black",shape="box"];1018 -> 1034[label="",style="solid", color="black", weight=3]; 33.61/16.92 1019 -> 1017[label="",style="dashed", color="red", weight=0]; 33.61/16.92 1019[label="primDivNatS0 (Succ ww164) (Succ ww165) MyTrue",fontsize=16,color="magenta"];1252[label="primDivNatS (primMinusNatS (Succ ww1800) ww181) (Succ ww182)",fontsize=16,color="burlywood",shape="box"];1358[label="ww181/Succ ww1810",fontsize=10,color="white",style="solid",shape="box"];1252 -> 1358[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1358 -> 1258[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1359[label="ww181/Zero",fontsize=10,color="white",style="solid",shape="box"];1252 -> 1359[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1359 -> 1259[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1253[label="primDivNatS (primMinusNatS Zero ww181) (Succ ww182)",fontsize=16,color="burlywood",shape="box"];1360[label="ww181/Succ ww1810",fontsize=10,color="white",style="solid",shape="box"];1253 -> 1360[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1360 -> 1260[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1361[label="ww181/Zero",fontsize=10,color="white",style="solid",shape="box"];1253 -> 1361[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1361 -> 1261[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 558[label="primModNatS0 (Succ (Succ ww12500)) ww1260 (primGEqNatS (Succ ww12500) ww1260)",fontsize=16,color="burlywood",shape="box"];1362[label="ww1260/Succ ww12600",fontsize=10,color="white",style="solid",shape="box"];558 -> 1362[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1362 -> 567[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1363[label="ww1260/Zero",fontsize=10,color="white",style="solid",shape="box"];558 -> 1363[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1363 -> 568[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 559[label="primModNatS0 (Succ Zero) ww1260 (primGEqNatS Zero ww1260)",fontsize=16,color="burlywood",shape="box"];1364[label="ww1260/Succ ww12600",fontsize=10,color="white",style="solid",shape="box"];559 -> 1364[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1364 -> 569[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1365[label="ww1260/Zero",fontsize=10,color="white",style="solid",shape="box"];559 -> 1365[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1365 -> 570[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 560[label="Succ Zero",fontsize=16,color="green",shape="box"];1031[label="ww1670",fontsize=16,color="green",shape="box"];1032[label="ww1660",fontsize=16,color="green",shape="box"];1033[label="Succ (primDivNatS (primMinusNatS (Succ ww164) (Succ ww165)) (Succ (Succ ww165)))",fontsize=16,color="green",shape="box"];1033 -> 1077[label="",style="dashed", color="green", weight=3]; 33.61/16.92 1034[label="Zero",fontsize=16,color="green",shape="box"];1258[label="primDivNatS (primMinusNatS (Succ ww1800) (Succ ww1810)) (Succ ww182)",fontsize=16,color="black",shape="box"];1258 -> 1268[label="",style="solid", color="black", weight=3]; 33.61/16.92 1259[label="primDivNatS (primMinusNatS (Succ ww1800) Zero) (Succ ww182)",fontsize=16,color="black",shape="box"];1259 -> 1269[label="",style="solid", color="black", weight=3]; 33.61/16.92 1260[label="primDivNatS (primMinusNatS Zero (Succ ww1810)) (Succ ww182)",fontsize=16,color="black",shape="box"];1260 -> 1270[label="",style="solid", color="black", weight=3]; 33.61/16.92 1261[label="primDivNatS (primMinusNatS Zero Zero) (Succ ww182)",fontsize=16,color="black",shape="box"];1261 -> 1271[label="",style="solid", color="black", weight=3]; 33.61/16.92 567[label="primModNatS0 (Succ (Succ ww12500)) (Succ ww12600) (primGEqNatS (Succ ww12500) (Succ ww12600))",fontsize=16,color="black",shape="box"];567 -> 577[label="",style="solid", color="black", weight=3]; 33.61/16.92 568[label="primModNatS0 (Succ (Succ ww12500)) Zero (primGEqNatS (Succ ww12500) Zero)",fontsize=16,color="black",shape="box"];568 -> 578[label="",style="solid", color="black", weight=3]; 33.61/16.92 569[label="primModNatS0 (Succ Zero) (Succ ww12600) (primGEqNatS Zero (Succ ww12600))",fontsize=16,color="black",shape="box"];569 -> 579[label="",style="solid", color="black", weight=3]; 33.61/16.92 570[label="primModNatS0 (Succ Zero) Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];570 -> 580[label="",style="solid", color="black", weight=3]; 33.61/16.92 1077 -> 1227[label="",style="dashed", color="red", weight=0]; 33.61/16.92 1077[label="primDivNatS (primMinusNatS (Succ ww164) (Succ ww165)) (Succ (Succ ww165))",fontsize=16,color="magenta"];1077 -> 1234[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1077 -> 1235[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1077 -> 1236[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1268 -> 1227[label="",style="dashed", color="red", weight=0]; 33.61/16.92 1268[label="primDivNatS (primMinusNatS ww1800 ww1810) (Succ ww182)",fontsize=16,color="magenta"];1268 -> 1276[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1268 -> 1277[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1269 -> 509[label="",style="dashed", color="red", weight=0]; 33.61/16.92 1269[label="primDivNatS (Succ ww1800) (Succ ww182)",fontsize=16,color="magenta"];1269 -> 1278[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1269 -> 1279[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1270[label="primDivNatS Zero (Succ ww182)",fontsize=16,color="black",shape="triangle"];1270 -> 1280[label="",style="solid", color="black", weight=3]; 33.61/16.92 1271 -> 1270[label="",style="dashed", color="red", weight=0]; 33.61/16.92 1271[label="primDivNatS Zero (Succ ww182)",fontsize=16,color="magenta"];577 -> 1095[label="",style="dashed", color="red", weight=0]; 33.61/16.92 577[label="primModNatS0 (Succ (Succ ww12500)) (Succ ww12600) (primGEqNatS ww12500 ww12600)",fontsize=16,color="magenta"];577 -> 1096[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 577 -> 1097[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 577 -> 1098[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 577 -> 1099[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 578[label="primModNatS0 (Succ (Succ ww12500)) Zero MyTrue",fontsize=16,color="black",shape="box"];578 -> 590[label="",style="solid", color="black", weight=3]; 33.61/16.92 579 -> 982[label="",style="dashed", color="red", weight=0]; 33.61/16.92 579[label="primModNatS0 (Succ Zero) (Succ ww12600) MyFalse",fontsize=16,color="magenta"];579 -> 983[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 579 -> 984[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 580[label="primModNatS0 (Succ Zero) Zero MyTrue",fontsize=16,color="black",shape="box"];580 -> 592[label="",style="solid", color="black", weight=3]; 33.61/16.92 1234[label="Succ ww164",fontsize=16,color="green",shape="box"];1235[label="Succ ww165",fontsize=16,color="green",shape="box"];1236[label="Succ ww165",fontsize=16,color="green",shape="box"];1276[label="ww1800",fontsize=16,color="green",shape="box"];1277[label="ww1810",fontsize=16,color="green",shape="box"];1278[label="ww1800",fontsize=16,color="green",shape="box"];1279[label="ww182",fontsize=16,color="green",shape="box"];1280[label="Zero",fontsize=16,color="green",shape="box"];1096[label="ww12600",fontsize=16,color="green",shape="box"];1097[label="ww12500",fontsize=16,color="green",shape="box"];1098[label="ww12600",fontsize=16,color="green",shape="box"];1099[label="Succ ww12500",fontsize=16,color="green",shape="box"];1095[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS ww177 ww178)",fontsize=16,color="burlywood",shape="triangle"];1366[label="ww177/Succ ww1770",fontsize=10,color="white",style="solid",shape="box"];1095 -> 1366[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1366 -> 1136[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1367[label="ww177/Zero",fontsize=10,color="white",style="solid",shape="box"];1095 -> 1367[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1367 -> 1137[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 590 -> 1285[label="",style="dashed", color="red", weight=0]; 33.61/16.92 590[label="primModNatS (primMinusNatS (Succ (Succ ww12500)) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];590 -> 1286[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 590 -> 1287[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 590 -> 1288[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 983[label="Zero",fontsize=16,color="green",shape="box"];984[label="ww12600",fontsize=16,color="green",shape="box"];982[label="primModNatS0 (Succ ww169) (Succ ww170) MyFalse",fontsize=16,color="black",shape="triangle"];982 -> 1005[label="",style="solid", color="black", weight=3]; 33.61/16.92 592 -> 1285[label="",style="dashed", color="red", weight=0]; 33.61/16.92 592[label="primModNatS (primMinusNatS (Succ Zero) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];592 -> 1289[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 592 -> 1290[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 592 -> 1291[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1136[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS (Succ ww1770) ww178)",fontsize=16,color="burlywood",shape="box"];1368[label="ww178/Succ ww1780",fontsize=10,color="white",style="solid",shape="box"];1136 -> 1368[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1368 -> 1142[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1369[label="ww178/Zero",fontsize=10,color="white",style="solid",shape="box"];1136 -> 1369[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1369 -> 1143[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1137[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS Zero ww178)",fontsize=16,color="burlywood",shape="box"];1370[label="ww178/Succ ww1780",fontsize=10,color="white",style="solid",shape="box"];1137 -> 1370[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1370 -> 1144[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1371[label="ww178/Zero",fontsize=10,color="white",style="solid",shape="box"];1137 -> 1371[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1371 -> 1145[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1286[label="Succ Zero",fontsize=16,color="green",shape="box"];1287[label="Succ Zero",fontsize=16,color="green",shape="box"];1288[label="Succ (Succ ww12500)",fontsize=16,color="green",shape="box"];1285[label="primModNatS (primMinusNatS ww184 ww185) (Succ ww186)",fontsize=16,color="burlywood",shape="triangle"];1372[label="ww184/Succ ww1840",fontsize=10,color="white",style="solid",shape="box"];1285 -> 1372[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1372 -> 1316[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1373[label="ww184/Zero",fontsize=10,color="white",style="solid",shape="box"];1285 -> 1373[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1373 -> 1317[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1005[label="Succ (Succ ww169)",fontsize=16,color="green",shape="box"];1289[label="Succ Zero",fontsize=16,color="green",shape="box"];1290[label="Succ Zero",fontsize=16,color="green",shape="box"];1291[label="Succ Zero",fontsize=16,color="green",shape="box"];1142[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS (Succ ww1770) (Succ ww1780))",fontsize=16,color="black",shape="box"];1142 -> 1150[label="",style="solid", color="black", weight=3]; 33.61/16.92 1143[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS (Succ ww1770) Zero)",fontsize=16,color="black",shape="box"];1143 -> 1151[label="",style="solid", color="black", weight=3]; 33.61/16.92 1144[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS Zero (Succ ww1780))",fontsize=16,color="black",shape="box"];1144 -> 1152[label="",style="solid", color="black", weight=3]; 33.61/16.92 1145[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1145 -> 1153[label="",style="solid", color="black", weight=3]; 33.61/16.92 1316[label="primModNatS (primMinusNatS (Succ ww1840) ww185) (Succ ww186)",fontsize=16,color="burlywood",shape="box"];1374[label="ww185/Succ ww1850",fontsize=10,color="white",style="solid",shape="box"];1316 -> 1374[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1374 -> 1318[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1375[label="ww185/Zero",fontsize=10,color="white",style="solid",shape="box"];1316 -> 1375[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1375 -> 1319[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1317[label="primModNatS (primMinusNatS Zero ww185) (Succ ww186)",fontsize=16,color="burlywood",shape="box"];1376[label="ww185/Succ ww1850",fontsize=10,color="white",style="solid",shape="box"];1317 -> 1376[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1376 -> 1320[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1377[label="ww185/Zero",fontsize=10,color="white",style="solid",shape="box"];1317 -> 1377[label="",style="solid", color="burlywood", weight=9]; 33.61/16.92 1377 -> 1321[label="",style="solid", color="burlywood", weight=3]; 33.61/16.92 1150 -> 1095[label="",style="dashed", color="red", weight=0]; 33.61/16.92 1150[label="primModNatS0 (Succ ww175) (Succ ww176) (primGEqNatS ww1770 ww1780)",fontsize=16,color="magenta"];1150 -> 1160[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1150 -> 1161[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1151[label="primModNatS0 (Succ ww175) (Succ ww176) MyTrue",fontsize=16,color="black",shape="triangle"];1151 -> 1162[label="",style="solid", color="black", weight=3]; 33.61/16.92 1152 -> 982[label="",style="dashed", color="red", weight=0]; 33.61/16.92 1152[label="primModNatS0 (Succ ww175) (Succ ww176) MyFalse",fontsize=16,color="magenta"];1152 -> 1163[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1152 -> 1164[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1153 -> 1151[label="",style="dashed", color="red", weight=0]; 33.61/16.92 1153[label="primModNatS0 (Succ ww175) (Succ ww176) MyTrue",fontsize=16,color="magenta"];1318[label="primModNatS (primMinusNatS (Succ ww1840) (Succ ww1850)) (Succ ww186)",fontsize=16,color="black",shape="box"];1318 -> 1322[label="",style="solid", color="black", weight=3]; 33.61/16.92 1319[label="primModNatS (primMinusNatS (Succ ww1840) Zero) (Succ ww186)",fontsize=16,color="black",shape="box"];1319 -> 1323[label="",style="solid", color="black", weight=3]; 33.61/16.92 1320[label="primModNatS (primMinusNatS Zero (Succ ww1850)) (Succ ww186)",fontsize=16,color="black",shape="box"];1320 -> 1324[label="",style="solid", color="black", weight=3]; 33.61/16.92 1321[label="primModNatS (primMinusNatS Zero Zero) (Succ ww186)",fontsize=16,color="black",shape="box"];1321 -> 1325[label="",style="solid", color="black", weight=3]; 33.61/16.92 1160[label="ww1770",fontsize=16,color="green",shape="box"];1161[label="ww1780",fontsize=16,color="green",shape="box"];1162 -> 1285[label="",style="dashed", color="red", weight=0]; 33.61/16.92 1162[label="primModNatS (primMinusNatS (Succ ww175) (Succ (Succ ww176))) (Succ (Succ (Succ ww176)))",fontsize=16,color="magenta"];1162 -> 1298[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1162 -> 1299[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1162 -> 1300[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1163[label="ww175",fontsize=16,color="green",shape="box"];1164[label="ww176",fontsize=16,color="green",shape="box"];1322 -> 1285[label="",style="dashed", color="red", weight=0]; 33.61/16.92 1322[label="primModNatS (primMinusNatS ww1840 ww1850) (Succ ww186)",fontsize=16,color="magenta"];1322 -> 1326[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1322 -> 1327[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1323 -> 520[label="",style="dashed", color="red", weight=0]; 33.61/16.92 1323[label="primModNatS (Succ ww1840) (Succ ww186)",fontsize=16,color="magenta"];1323 -> 1328[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1323 -> 1329[label="",style="dashed", color="magenta", weight=3]; 33.61/16.92 1324[label="primModNatS Zero (Succ ww186)",fontsize=16,color="black",shape="triangle"];1324 -> 1330[label="",style="solid", color="black", weight=3]; 33.61/16.92 1325 -> 1324[label="",style="dashed", color="red", weight=0]; 33.61/16.92 1325[label="primModNatS Zero (Succ ww186)",fontsize=16,color="magenta"];1298[label="Succ (Succ ww176)",fontsize=16,color="green",shape="box"];1299[label="Succ (Succ ww176)",fontsize=16,color="green",shape="box"];1300[label="Succ ww175",fontsize=16,color="green",shape="box"];1326[label="ww1850",fontsize=16,color="green",shape="box"];1327[label="ww1840",fontsize=16,color="green",shape="box"];1328[label="ww1840",fontsize=16,color="green",shape="box"];1329[label="ww186",fontsize=16,color="green",shape="box"];1330[label="Zero",fontsize=16,color="green",shape="box"];} 33.61/16.92 33.61/16.92 ---------------------------------------- 33.61/16.92 33.61/16.92 (60) 33.61/16.92 TRUE 33.89/17.00 EOF