/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.hs /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty H-Termination with start terms of the given HASKELL could not be shown: (0) HASKELL (1) BR [EQUIVALENT, 0 ms] (2) HASKELL (3) COR [EQUIVALENT, 0 ms] (4) HASKELL (5) Narrow [SOUND, 0 ms] (6) AND (7) QDP (8) QDPSizeChangeProof [EQUIVALENT, 0 ms] (9) YES (10) QDP (11) QDPOrderProof [EQUIVALENT, 47 ms] (12) QDP (13) DependencyGraphProof [EQUIVALENT, 0 ms] (14) QDP (15) QDPSizeChangeProof [EQUIVALENT, 0 ms] (16) YES (17) QDP (18) DependencyGraphProof [EQUIVALENT, 0 ms] (19) QDP (20) QDPOrderProof [EQUIVALENT, 9 ms] (21) QDP (22) DependencyGraphProof [EQUIVALENT, 0 ms] (23) QDP (24) QDPSizeChangeProof [EQUIVALENT, 0 ms] (25) YES (26) QDP (27) DependencyGraphProof [EQUIVALENT, 0 ms] (28) QDP (29) TransformationProof [EQUIVALENT, 0 ms] (30) QDP (31) UsableRulesProof [EQUIVALENT, 0 ms] (32) QDP (33) QReductionProof [EQUIVALENT, 0 ms] (34) QDP (35) MNOCProof [EQUIVALENT, 0 ms] (36) QDP (37) InductionCalculusProof [EQUIVALENT, 0 ms] (38) QDP (39) TransformationProof [EQUIVALENT, 0 ms] (40) QDP (41) DependencyGraphProof [EQUIVALENT, 0 ms] (42) QDP (43) TransformationProof [EQUIVALENT, 0 ms] (44) QDP (45) DependencyGraphProof [EQUIVALENT, 0 ms] (46) QDP (47) TransformationProof [EQUIVALENT, 0 ms] (48) QDP (49) DependencyGraphProof [EQUIVALENT, 0 ms] (50) QDP (51) TransformationProof [EQUIVALENT, 0 ms] (52) QDP (53) DependencyGraphProof [EQUIVALENT, 0 ms] (54) QDP (55) MNOCProof [EQUIVALENT, 1 ms] (56) QDP (57) InductionCalculusProof [EQUIVALENT, 0 ms] (58) QDP (59) Narrow [COMPLETE, 0 ms] (60) QDP (61) DependencyGraphProof [EQUIVALENT, 0 ms] (62) TRUE ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; data Main.Char = Char MyInt ; data List a = Cons a (List a) | Nil ; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; divMyInt :: MyInt -> MyInt -> MyInt; divMyInt = primDivInt; error :: a; error = stop MyTrue; modMyInt :: MyInt -> MyInt -> MyInt; modMyInt = primModInt; primDivInt :: MyInt -> MyInt -> MyInt; primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primDivInt vv vw = Main.error; primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; primDivNatP Main.Zero Main.Zero = Main.error; primDivNatP (Main.Succ x) Main.Zero = Main.error; primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); primDivNatP Main.Zero (Main.Succ x) = Main.Zero; primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; primDivNatS Main.Zero Main.Zero = Main.error; primDivNatS (Main.Succ x) Main.Zero = Main.error; primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); primDivNatS Main.Zero (Main.Succ x) = Main.Zero; primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); primDivNatS0 x y MyFalse = Main.Zero; primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; primGEqNatS (Main.Succ x) Main.Zero = MyTrue; primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; primGEqNatS Main.Zero (Main.Succ x) = MyFalse; primGEqNatS Main.Zero Main.Zero = MyTrue; primIntToChar :: MyInt -> Main.Char; primIntToChar x = Main.Char x; primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; primMinusNatS x Main.Zero = x; primModInt :: MyInt -> MyInt -> MyInt; primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primModInt vx vy = Main.error; primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; primModNatP Main.Zero Main.Zero = Main.error; primModNatP Main.Zero (Main.Succ x) = Main.Zero; primModNatP (Main.Succ x) Main.Zero = Main.error; primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; primModNatS Main.Zero Main.Zero = Main.error; primModNatS Main.Zero (Main.Succ x) = Main.Zero; primModNatS (Main.Succ x) Main.Zero = Main.error; primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); primModNatS0 x y MyFalse = Main.Succ x; primShowInt :: MyInt -> List Main.Char; 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; 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); 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)); psPs :: List a -> List a -> List a; psPs Nil ys = ys; psPs (Cons x xs) ys = Cons x (psPs xs ys); showMyInt :: MyInt -> List Main.Char; showMyInt = primShowInt; stop :: MyBool -> a; stop MyFalse = stop MyFalse; toEnumChar :: MyInt -> Main.Char; toEnumChar = primIntToChar; } ---------------------------------------- (1) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; data Main.Char = Char MyInt ; data List a = Cons a (List a) | Nil ; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; divMyInt :: MyInt -> MyInt -> MyInt; divMyInt = primDivInt; error :: a; error = stop MyTrue; modMyInt :: MyInt -> MyInt -> MyInt; modMyInt = primModInt; primDivInt :: MyInt -> MyInt -> MyInt; primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primDivInt vv vw = Main.error; primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; primDivNatP Main.Zero Main.Zero = Main.error; primDivNatP (Main.Succ x) Main.Zero = Main.error; primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); primDivNatP Main.Zero (Main.Succ x) = Main.Zero; primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; primDivNatS Main.Zero Main.Zero = Main.error; primDivNatS (Main.Succ x) Main.Zero = Main.error; primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); primDivNatS Main.Zero (Main.Succ x) = Main.Zero; primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); primDivNatS0 x y MyFalse = Main.Zero; primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; primGEqNatS (Main.Succ x) Main.Zero = MyTrue; primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; primGEqNatS Main.Zero (Main.Succ x) = MyFalse; primGEqNatS Main.Zero Main.Zero = MyTrue; primIntToChar :: MyInt -> Main.Char; primIntToChar x = Main.Char x; primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; primMinusNatS x Main.Zero = x; primModInt :: MyInt -> MyInt -> MyInt; primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primModInt vx vy = Main.error; primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; primModNatP Main.Zero Main.Zero = Main.error; primModNatP Main.Zero (Main.Succ x) = Main.Zero; primModNatP (Main.Succ x) Main.Zero = Main.error; primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; primModNatS Main.Zero Main.Zero = Main.error; primModNatS Main.Zero (Main.Succ x) = Main.Zero; primModNatS (Main.Succ x) Main.Zero = Main.error; primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); primModNatS0 x y MyFalse = Main.Succ x; primShowInt :: MyInt -> List Main.Char; 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; 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); 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)); psPs :: List a -> List a -> List a; psPs Nil ys = ys; psPs (Cons x xs) ys = Cons x (psPs xs ys); showMyInt :: MyInt -> List Main.Char; showMyInt = primShowInt; stop :: MyBool -> a; stop MyFalse = stop MyFalse; toEnumChar :: MyInt -> Main.Char; toEnumChar = primIntToChar; } ---------------------------------------- (3) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; data Main.Char = Char MyInt ; data List a = Cons a (List a) | Nil ; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; divMyInt :: MyInt -> MyInt -> MyInt; divMyInt = primDivInt; error :: a; error = stop MyTrue; modMyInt :: MyInt -> MyInt -> MyInt; modMyInt = primModInt; primDivInt :: MyInt -> MyInt -> MyInt; primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primDivInt vv vw = Main.error; primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; primDivNatP Main.Zero Main.Zero = Main.error; primDivNatP (Main.Succ x) Main.Zero = Main.error; primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); primDivNatP Main.Zero (Main.Succ x) = Main.Zero; primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; primDivNatS Main.Zero Main.Zero = Main.error; primDivNatS (Main.Succ x) Main.Zero = Main.error; primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); primDivNatS Main.Zero (Main.Succ x) = Main.Zero; primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); primDivNatS0 x y MyFalse = Main.Zero; primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; primGEqNatS (Main.Succ x) Main.Zero = MyTrue; primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; primGEqNatS Main.Zero (Main.Succ x) = MyFalse; primGEqNatS Main.Zero Main.Zero = MyTrue; primIntToChar :: MyInt -> Main.Char; primIntToChar x = Main.Char x; primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; primMinusNatS x Main.Zero = x; primModInt :: MyInt -> MyInt -> MyInt; primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primModInt vx vy = Main.error; primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; primModNatP Main.Zero Main.Zero = Main.error; primModNatP Main.Zero (Main.Succ x) = Main.Zero; primModNatP (Main.Succ x) Main.Zero = Main.error; primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; primModNatS Main.Zero Main.Zero = Main.error; primModNatS Main.Zero (Main.Succ x) = Main.Zero; primModNatS (Main.Succ x) Main.Zero = Main.error; primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); primModNatS0 x y MyFalse = Main.Succ x; primShowInt :: MyInt -> List Main.Char; 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; 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); 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)); psPs :: List a -> List a -> List a; psPs Nil ys = ys; psPs (Cons x xs) ys = Cons x (psPs xs ys); showMyInt :: MyInt -> List Main.Char; showMyInt = primShowInt; stop :: MyBool -> a; stop MyFalse = stop MyFalse; toEnumChar :: MyInt -> Main.Char; toEnumChar = primIntToChar; } ---------------------------------------- (5) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="showMyInt",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="showMyInt wv3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 4[label="primShowInt wv3",fontsize=16,color="burlywood",shape="triangle"];721[label="wv3/Pos wv30",fontsize=10,color="white",style="solid",shape="box"];4 -> 721[label="",style="solid", color="burlywood", weight=9]; 721 -> 5[label="",style="solid", color="burlywood", weight=3]; 722[label="wv3/Neg wv30",fontsize=10,color="white",style="solid",shape="box"];4 -> 722[label="",style="solid", color="burlywood", weight=9]; 722 -> 6[label="",style="solid", color="burlywood", weight=3]; 5[label="primShowInt (Pos wv30)",fontsize=16,color="burlywood",shape="box"];723[label="wv30/Succ wv300",fontsize=10,color="white",style="solid",shape="box"];5 -> 723[label="",style="solid", color="burlywood", weight=9]; 723 -> 7[label="",style="solid", color="burlywood", weight=3]; 724[label="wv30/Zero",fontsize=10,color="white",style="solid",shape="box"];5 -> 724[label="",style="solid", color="burlywood", weight=9]; 724 -> 8[label="",style="solid", color="burlywood", weight=3]; 6[label="primShowInt (Neg wv30)",fontsize=16,color="black",shape="box"];6 -> 9[label="",style="solid", color="black", weight=3]; 7[label="primShowInt (Pos (Succ wv300))",fontsize=16,color="black",shape="box"];7 -> 10[label="",style="solid", color="black", weight=3]; 8[label="primShowInt (Pos Zero)",fontsize=16,color="black",shape="box"];8 -> 11[label="",style="solid", color="black", weight=3]; 9[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 wv30))",fontsize=16,color="green",shape="box"];9 -> 12[label="",style="dashed", color="green", weight=3]; 10 -> 24[label="",style="dashed", color="red", weight=0]; 10[label="psPs (primShowInt (divMyInt (Pos (Succ wv300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (Cons (toEnumChar (modMyInt (Pos (Succ wv300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil)",fontsize=16,color="magenta"];10 -> 25[label="",style="dashed", color="magenta", weight=3]; 10 -> 26[label="",style="dashed", color="magenta", weight=3]; 10 -> 27[label="",style="dashed", color="magenta", weight=3]; 11[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"];12 -> 4[label="",style="dashed", color="red", weight=0]; 12[label="primShowInt (Pos wv30)",fontsize=16,color="magenta"];12 -> 16[label="",style="dashed", color="magenta", weight=3]; 25[label="wv300",fontsize=16,color="green",shape="box"];26 -> 4[label="",style="dashed", color="red", weight=0]; 26[label="primShowInt (divMyInt (Pos (Succ wv300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];26 -> 29[label="",style="dashed", color="magenta", weight=3]; 27[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];24[label="psPs wv11 (Cons (toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))) Nil)",fontsize=16,color="burlywood",shape="triangle"];725[label="wv11/Cons wv110 wv111",fontsize=10,color="white",style="solid",shape="box"];24 -> 725[label="",style="solid", color="burlywood", weight=9]; 725 -> 30[label="",style="solid", color="burlywood", weight=3]; 726[label="wv11/Nil",fontsize=10,color="white",style="solid",shape="box"];24 -> 726[label="",style="solid", color="burlywood", weight=9]; 726 -> 31[label="",style="solid", color="burlywood", weight=3]; 16[label="Pos wv30",fontsize=16,color="green",shape="box"];29 -> 32[label="",style="dashed", color="red", weight=0]; 29[label="divMyInt (Pos (Succ wv300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))",fontsize=16,color="magenta"];29 -> 33[label="",style="dashed", color="magenta", weight=3]; 29 -> 34[label="",style="dashed", color="magenta", weight=3]; 30[label="psPs (Cons wv110 wv111) (Cons (toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))) Nil)",fontsize=16,color="black",shape="box"];30 -> 35[label="",style="solid", color="black", weight=3]; 31[label="psPs Nil (Cons (toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))) Nil)",fontsize=16,color="black",shape="box"];31 -> 36[label="",style="solid", color="black", weight=3]; 33[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];34[label="wv300",fontsize=16,color="green",shape="box"];32[label="divMyInt (Pos (Succ wv13)) (Pos (Succ wv14))",fontsize=16,color="black",shape="triangle"];32 -> 37[label="",style="solid", color="black", weight=3]; 35[label="Cons wv110 (psPs wv111 (Cons (toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))) Nil))",fontsize=16,color="green",shape="box"];35 -> 38[label="",style="dashed", color="green", weight=3]; 36[label="Cons (toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))) Nil",fontsize=16,color="green",shape="box"];36 -> 39[label="",style="dashed", color="green", weight=3]; 37[label="primDivInt (Pos (Succ wv13)) (Pos (Succ wv14))",fontsize=16,color="black",shape="box"];37 -> 40[label="",style="solid", color="black", weight=3]; 38 -> 24[label="",style="dashed", color="red", weight=0]; 38[label="psPs wv111 (Cons (toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))) Nil)",fontsize=16,color="magenta"];38 -> 41[label="",style="dashed", color="magenta", weight=3]; 39[label="toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))",fontsize=16,color="black",shape="box"];39 -> 42[label="",style="solid", color="black", weight=3]; 40[label="Pos (primDivNatS (Succ wv13) (Succ wv14))",fontsize=16,color="green",shape="box"];40 -> 43[label="",style="dashed", color="green", weight=3]; 41[label="wv111",fontsize=16,color="green",shape="box"];42[label="primIntToChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))",fontsize=16,color="black",shape="box"];42 -> 44[label="",style="solid", color="black", weight=3]; 43[label="primDivNatS (Succ wv13) (Succ wv14)",fontsize=16,color="black",shape="triangle"];43 -> 45[label="",style="solid", color="black", weight=3]; 44[label="Char (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))",fontsize=16,color="green",shape="box"];44 -> 46[label="",style="dashed", color="green", weight=3]; 45[label="primDivNatS0 wv13 wv14 (primGEqNatS wv13 wv14)",fontsize=16,color="burlywood",shape="box"];727[label="wv13/Succ wv130",fontsize=10,color="white",style="solid",shape="box"];45 -> 727[label="",style="solid", color="burlywood", weight=9]; 727 -> 47[label="",style="solid", color="burlywood", weight=3]; 728[label="wv13/Zero",fontsize=10,color="white",style="solid",shape="box"];45 -> 728[label="",style="solid", color="burlywood", weight=9]; 728 -> 48[label="",style="solid", color="burlywood", weight=3]; 46[label="modMyInt (Pos (Succ wv8)) (Pos (Succ wv10))",fontsize=16,color="black",shape="box"];46 -> 49[label="",style="solid", color="black", weight=3]; 47[label="primDivNatS0 (Succ wv130) wv14 (primGEqNatS (Succ wv130) wv14)",fontsize=16,color="burlywood",shape="box"];729[label="wv14/Succ wv140",fontsize=10,color="white",style="solid",shape="box"];47 -> 729[label="",style="solid", color="burlywood", weight=9]; 729 -> 50[label="",style="solid", color="burlywood", weight=3]; 730[label="wv14/Zero",fontsize=10,color="white",style="solid",shape="box"];47 -> 730[label="",style="solid", color="burlywood", weight=9]; 730 -> 51[label="",style="solid", color="burlywood", weight=3]; 48[label="primDivNatS0 Zero wv14 (primGEqNatS Zero wv14)",fontsize=16,color="burlywood",shape="box"];731[label="wv14/Succ wv140",fontsize=10,color="white",style="solid",shape="box"];48 -> 731[label="",style="solid", color="burlywood", weight=9]; 731 -> 52[label="",style="solid", color="burlywood", weight=3]; 732[label="wv14/Zero",fontsize=10,color="white",style="solid",shape="box"];48 -> 732[label="",style="solid", color="burlywood", weight=9]; 732 -> 53[label="",style="solid", color="burlywood", weight=3]; 49[label="primModInt (Pos (Succ wv8)) (Pos (Succ wv10))",fontsize=16,color="black",shape="box"];49 -> 54[label="",style="solid", color="black", weight=3]; 50[label="primDivNatS0 (Succ wv130) (Succ wv140) (primGEqNatS (Succ wv130) (Succ wv140))",fontsize=16,color="black",shape="box"];50 -> 55[label="",style="solid", color="black", weight=3]; 51[label="primDivNatS0 (Succ wv130) Zero (primGEqNatS (Succ wv130) Zero)",fontsize=16,color="black",shape="box"];51 -> 56[label="",style="solid", color="black", weight=3]; 52[label="primDivNatS0 Zero (Succ wv140) (primGEqNatS Zero (Succ wv140))",fontsize=16,color="black",shape="box"];52 -> 57[label="",style="solid", color="black", weight=3]; 53[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];53 -> 58[label="",style="solid", color="black", weight=3]; 54[label="Pos (primModNatS (Succ wv8) (Succ wv10))",fontsize=16,color="green",shape="box"];54 -> 59[label="",style="dashed", color="green", weight=3]; 55 -> 324[label="",style="dashed", color="red", weight=0]; 55[label="primDivNatS0 (Succ wv130) (Succ wv140) (primGEqNatS wv130 wv140)",fontsize=16,color="magenta"];55 -> 325[label="",style="dashed", color="magenta", weight=3]; 55 -> 326[label="",style="dashed", color="magenta", weight=3]; 55 -> 327[label="",style="dashed", color="magenta", weight=3]; 55 -> 328[label="",style="dashed", color="magenta", weight=3]; 56[label="primDivNatS0 (Succ wv130) Zero MyTrue",fontsize=16,color="black",shape="box"];56 -> 62[label="",style="solid", color="black", weight=3]; 57[label="primDivNatS0 Zero (Succ wv140) MyFalse",fontsize=16,color="black",shape="box"];57 -> 63[label="",style="solid", color="black", weight=3]; 58[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];58 -> 64[label="",style="solid", color="black", weight=3]; 59[label="primModNatS (Succ wv8) (Succ wv10)",fontsize=16,color="burlywood",shape="triangle"];733[label="wv10/Succ wv100",fontsize=10,color="white",style="solid",shape="box"];59 -> 733[label="",style="solid", color="burlywood", weight=9]; 733 -> 65[label="",style="solid", color="burlywood", weight=3]; 734[label="wv10/Zero",fontsize=10,color="white",style="solid",shape="box"];59 -> 734[label="",style="solid", color="burlywood", weight=9]; 734 -> 66[label="",style="solid", color="burlywood", weight=3]; 325[label="wv130",fontsize=16,color="green",shape="box"];326[label="wv130",fontsize=16,color="green",shape="box"];327[label="wv140",fontsize=16,color="green",shape="box"];328[label="wv140",fontsize=16,color="green",shape="box"];324[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS wv33 wv34)",fontsize=16,color="burlywood",shape="triangle"];735[label="wv33/Succ wv330",fontsize=10,color="white",style="solid",shape="box"];324 -> 735[label="",style="solid", color="burlywood", weight=9]; 735 -> 357[label="",style="solid", color="burlywood", weight=3]; 736[label="wv33/Zero",fontsize=10,color="white",style="solid",shape="box"];324 -> 736[label="",style="solid", color="burlywood", weight=9]; 736 -> 358[label="",style="solid", color="burlywood", weight=3]; 62[label="Succ (primDivNatS (primMinusNatS (Succ wv130) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];62 -> 71[label="",style="dashed", color="green", weight=3]; 63[label="Zero",fontsize=16,color="green",shape="box"];64[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];64 -> 72[label="",style="dashed", color="green", weight=3]; 65[label="primModNatS (Succ wv8) (Succ (Succ wv100))",fontsize=16,color="black",shape="box"];65 -> 73[label="",style="solid", color="black", weight=3]; 66[label="primModNatS (Succ wv8) (Succ Zero)",fontsize=16,color="black",shape="box"];66 -> 74[label="",style="solid", color="black", weight=3]; 357[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS (Succ wv330) wv34)",fontsize=16,color="burlywood",shape="box"];737[label="wv34/Succ wv340",fontsize=10,color="white",style="solid",shape="box"];357 -> 737[label="",style="solid", color="burlywood", weight=9]; 737 -> 364[label="",style="solid", color="burlywood", weight=3]; 738[label="wv34/Zero",fontsize=10,color="white",style="solid",shape="box"];357 -> 738[label="",style="solid", color="burlywood", weight=9]; 738 -> 365[label="",style="solid", color="burlywood", weight=3]; 358[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS Zero wv34)",fontsize=16,color="burlywood",shape="box"];739[label="wv34/Succ wv340",fontsize=10,color="white",style="solid",shape="box"];358 -> 739[label="",style="solid", color="burlywood", weight=9]; 739 -> 366[label="",style="solid", color="burlywood", weight=3]; 740[label="wv34/Zero",fontsize=10,color="white",style="solid",shape="box"];358 -> 740[label="",style="solid", color="burlywood", weight=9]; 740 -> 367[label="",style="solid", color="burlywood", weight=3]; 71 -> 591[label="",style="dashed", color="red", weight=0]; 71[label="primDivNatS (primMinusNatS (Succ wv130) Zero) (Succ Zero)",fontsize=16,color="magenta"];71 -> 592[label="",style="dashed", color="magenta", weight=3]; 71 -> 593[label="",style="dashed", color="magenta", weight=3]; 71 -> 594[label="",style="dashed", color="magenta", weight=3]; 72 -> 591[label="",style="dashed", color="red", weight=0]; 72[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];72 -> 595[label="",style="dashed", color="magenta", weight=3]; 72 -> 596[label="",style="dashed", color="magenta", weight=3]; 72 -> 597[label="",style="dashed", color="magenta", weight=3]; 73[label="primModNatS0 wv8 wv100 (primGEqNatS wv8 (Succ wv100))",fontsize=16,color="burlywood",shape="box"];741[label="wv8/Succ wv80",fontsize=10,color="white",style="solid",shape="box"];73 -> 741[label="",style="solid", color="burlywood", weight=9]; 741 -> 81[label="",style="solid", color="burlywood", weight=3]; 742[label="wv8/Zero",fontsize=10,color="white",style="solid",shape="box"];73 -> 742[label="",style="solid", color="burlywood", weight=9]; 742 -> 82[label="",style="solid", color="burlywood", weight=3]; 74[label="Zero",fontsize=16,color="green",shape="box"];364[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS (Succ wv330) (Succ wv340))",fontsize=16,color="black",shape="box"];364 -> 376[label="",style="solid", color="black", weight=3]; 365[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS (Succ wv330) Zero)",fontsize=16,color="black",shape="box"];365 -> 377[label="",style="solid", color="black", weight=3]; 366[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS Zero (Succ wv340))",fontsize=16,color="black",shape="box"];366 -> 378[label="",style="solid", color="black", weight=3]; 367[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];367 -> 379[label="",style="solid", color="black", weight=3]; 592[label="Succ wv130",fontsize=16,color="green",shape="box"];593[label="Zero",fontsize=16,color="green",shape="box"];594[label="Zero",fontsize=16,color="green",shape="box"];591[label="primDivNatS (primMinusNatS wv65 wv66) (Succ wv67)",fontsize=16,color="burlywood",shape="triangle"];743[label="wv65/Succ wv650",fontsize=10,color="white",style="solid",shape="box"];591 -> 743[label="",style="solid", color="burlywood", weight=9]; 743 -> 616[label="",style="solid", color="burlywood", weight=3]; 744[label="wv65/Zero",fontsize=10,color="white",style="solid",shape="box"];591 -> 744[label="",style="solid", color="burlywood", weight=9]; 744 -> 617[label="",style="solid", color="burlywood", weight=3]; 595[label="Zero",fontsize=16,color="green",shape="box"];596[label="Zero",fontsize=16,color="green",shape="box"];597[label="Zero",fontsize=16,color="green",shape="box"];81[label="primModNatS0 (Succ wv80) wv100 (primGEqNatS (Succ wv80) (Succ wv100))",fontsize=16,color="black",shape="box"];81 -> 91[label="",style="solid", color="black", weight=3]; 82[label="primModNatS0 Zero wv100 (primGEqNatS Zero (Succ wv100))",fontsize=16,color="black",shape="box"];82 -> 92[label="",style="solid", color="black", weight=3]; 376 -> 324[label="",style="dashed", color="red", weight=0]; 376[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS wv330 wv340)",fontsize=16,color="magenta"];376 -> 389[label="",style="dashed", color="magenta", weight=3]; 376 -> 390[label="",style="dashed", color="magenta", weight=3]; 377[label="primDivNatS0 (Succ wv31) (Succ wv32) MyTrue",fontsize=16,color="black",shape="triangle"];377 -> 391[label="",style="solid", color="black", weight=3]; 378[label="primDivNatS0 (Succ wv31) (Succ wv32) MyFalse",fontsize=16,color="black",shape="box"];378 -> 392[label="",style="solid", color="black", weight=3]; 379 -> 377[label="",style="dashed", color="red", weight=0]; 379[label="primDivNatS0 (Succ wv31) (Succ wv32) MyTrue",fontsize=16,color="magenta"];616[label="primDivNatS (primMinusNatS (Succ wv650) wv66) (Succ wv67)",fontsize=16,color="burlywood",shape="box"];745[label="wv66/Succ wv660",fontsize=10,color="white",style="solid",shape="box"];616 -> 745[label="",style="solid", color="burlywood", weight=9]; 745 -> 619[label="",style="solid", color="burlywood", weight=3]; 746[label="wv66/Zero",fontsize=10,color="white",style="solid",shape="box"];616 -> 746[label="",style="solid", color="burlywood", weight=9]; 746 -> 620[label="",style="solid", color="burlywood", weight=3]; 617[label="primDivNatS (primMinusNatS Zero wv66) (Succ wv67)",fontsize=16,color="burlywood",shape="box"];747[label="wv66/Succ wv660",fontsize=10,color="white",style="solid",shape="box"];617 -> 747[label="",style="solid", color="burlywood", weight=9]; 747 -> 621[label="",style="solid", color="burlywood", weight=3]; 748[label="wv66/Zero",fontsize=10,color="white",style="solid",shape="box"];617 -> 748[label="",style="solid", color="burlywood", weight=9]; 748 -> 622[label="",style="solid", color="burlywood", weight=3]; 91[label="primModNatS0 (Succ wv80) wv100 (primGEqNatS wv80 wv100)",fontsize=16,color="burlywood",shape="box"];749[label="wv80/Succ wv800",fontsize=10,color="white",style="solid",shape="box"];91 -> 749[label="",style="solid", color="burlywood", weight=9]; 749 -> 99[label="",style="solid", color="burlywood", weight=3]; 750[label="wv80/Zero",fontsize=10,color="white",style="solid",shape="box"];91 -> 750[label="",style="solid", color="burlywood", weight=9]; 750 -> 100[label="",style="solid", color="burlywood", weight=3]; 92[label="primModNatS0 Zero wv100 MyFalse",fontsize=16,color="black",shape="box"];92 -> 101[label="",style="solid", color="black", weight=3]; 389[label="wv330",fontsize=16,color="green",shape="box"];390[label="wv340",fontsize=16,color="green",shape="box"];391[label="Succ (primDivNatS (primMinusNatS (Succ wv31) (Succ wv32)) (Succ (Succ wv32)))",fontsize=16,color="green",shape="box"];391 -> 400[label="",style="dashed", color="green", weight=3]; 392[label="Zero",fontsize=16,color="green",shape="box"];619[label="primDivNatS (primMinusNatS (Succ wv650) (Succ wv660)) (Succ wv67)",fontsize=16,color="black",shape="box"];619 -> 625[label="",style="solid", color="black", weight=3]; 620[label="primDivNatS (primMinusNatS (Succ wv650) Zero) (Succ wv67)",fontsize=16,color="black",shape="box"];620 -> 626[label="",style="solid", color="black", weight=3]; 621[label="primDivNatS (primMinusNatS Zero (Succ wv660)) (Succ wv67)",fontsize=16,color="black",shape="box"];621 -> 627[label="",style="solid", color="black", weight=3]; 622[label="primDivNatS (primMinusNatS Zero Zero) (Succ wv67)",fontsize=16,color="black",shape="box"];622 -> 628[label="",style="solid", color="black", weight=3]; 99[label="primModNatS0 (Succ (Succ wv800)) wv100 (primGEqNatS (Succ wv800) wv100)",fontsize=16,color="burlywood",shape="box"];751[label="wv100/Succ wv1000",fontsize=10,color="white",style="solid",shape="box"];99 -> 751[label="",style="solid", color="burlywood", weight=9]; 751 -> 108[label="",style="solid", color="burlywood", weight=3]; 752[label="wv100/Zero",fontsize=10,color="white",style="solid",shape="box"];99 -> 752[label="",style="solid", color="burlywood", weight=9]; 752 -> 109[label="",style="solid", color="burlywood", weight=3]; 100[label="primModNatS0 (Succ Zero) wv100 (primGEqNatS Zero wv100)",fontsize=16,color="burlywood",shape="box"];753[label="wv100/Succ wv1000",fontsize=10,color="white",style="solid",shape="box"];100 -> 753[label="",style="solid", color="burlywood", weight=9]; 753 -> 110[label="",style="solid", color="burlywood", weight=3]; 754[label="wv100/Zero",fontsize=10,color="white",style="solid",shape="box"];100 -> 754[label="",style="solid", color="burlywood", weight=9]; 754 -> 111[label="",style="solid", color="burlywood", weight=3]; 101[label="Succ Zero",fontsize=16,color="green",shape="box"];400 -> 591[label="",style="dashed", color="red", weight=0]; 400[label="primDivNatS (primMinusNatS (Succ wv31) (Succ wv32)) (Succ (Succ wv32))",fontsize=16,color="magenta"];400 -> 598[label="",style="dashed", color="magenta", weight=3]; 400 -> 599[label="",style="dashed", color="magenta", weight=3]; 400 -> 600[label="",style="dashed", color="magenta", weight=3]; 625 -> 591[label="",style="dashed", color="red", weight=0]; 625[label="primDivNatS (primMinusNatS wv650 wv660) (Succ wv67)",fontsize=16,color="magenta"];625 -> 631[label="",style="dashed", color="magenta", weight=3]; 625 -> 632[label="",style="dashed", color="magenta", weight=3]; 626 -> 43[label="",style="dashed", color="red", weight=0]; 626[label="primDivNatS (Succ wv650) (Succ wv67)",fontsize=16,color="magenta"];626 -> 633[label="",style="dashed", color="magenta", weight=3]; 626 -> 634[label="",style="dashed", color="magenta", weight=3]; 627[label="primDivNatS Zero (Succ wv67)",fontsize=16,color="black",shape="triangle"];627 -> 635[label="",style="solid", color="black", weight=3]; 628 -> 627[label="",style="dashed", color="red", weight=0]; 628[label="primDivNatS Zero (Succ wv67)",fontsize=16,color="magenta"];108[label="primModNatS0 (Succ (Succ wv800)) (Succ wv1000) (primGEqNatS (Succ wv800) (Succ wv1000))",fontsize=16,color="black",shape="box"];108 -> 119[label="",style="solid", color="black", weight=3]; 109[label="primModNatS0 (Succ (Succ wv800)) Zero (primGEqNatS (Succ wv800) Zero)",fontsize=16,color="black",shape="box"];109 -> 120[label="",style="solid", color="black", weight=3]; 110[label="primModNatS0 (Succ Zero) (Succ wv1000) (primGEqNatS Zero (Succ wv1000))",fontsize=16,color="black",shape="box"];110 -> 121[label="",style="solid", color="black", weight=3]; 111[label="primModNatS0 (Succ Zero) Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];111 -> 122[label="",style="solid", color="black", weight=3]; 598[label="Succ wv31",fontsize=16,color="green",shape="box"];599[label="Succ wv32",fontsize=16,color="green",shape="box"];600[label="Succ wv32",fontsize=16,color="green",shape="box"];631[label="wv650",fontsize=16,color="green",shape="box"];632[label="wv660",fontsize=16,color="green",shape="box"];633[label="wv67",fontsize=16,color="green",shape="box"];634[label="wv650",fontsize=16,color="green",shape="box"];635[label="Zero",fontsize=16,color="green",shape="box"];119 -> 526[label="",style="dashed", color="red", weight=0]; 119[label="primModNatS0 (Succ (Succ wv800)) (Succ wv1000) (primGEqNatS wv800 wv1000)",fontsize=16,color="magenta"];119 -> 527[label="",style="dashed", color="magenta", weight=3]; 119 -> 528[label="",style="dashed", color="magenta", weight=3]; 119 -> 529[label="",style="dashed", color="magenta", weight=3]; 119 -> 530[label="",style="dashed", color="magenta", weight=3]; 120[label="primModNatS0 (Succ (Succ wv800)) Zero MyTrue",fontsize=16,color="black",shape="box"];120 -> 134[label="",style="solid", color="black", weight=3]; 121[label="primModNatS0 (Succ Zero) (Succ wv1000) MyFalse",fontsize=16,color="black",shape="box"];121 -> 135[label="",style="solid", color="black", weight=3]; 122[label="primModNatS0 (Succ Zero) Zero MyTrue",fontsize=16,color="black",shape="box"];122 -> 136[label="",style="solid", color="black", weight=3]; 527[label="Succ wv800",fontsize=16,color="green",shape="box"];528[label="wv1000",fontsize=16,color="green",shape="box"];529[label="wv800",fontsize=16,color="green",shape="box"];530[label="wv1000",fontsize=16,color="green",shape="box"];526[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS wv62 wv63)",fontsize=16,color="burlywood",shape="triangle"];755[label="wv62/Succ wv620",fontsize=10,color="white",style="solid",shape="box"];526 -> 755[label="",style="solid", color="burlywood", weight=9]; 755 -> 563[label="",style="solid", color="burlywood", weight=3]; 756[label="wv62/Zero",fontsize=10,color="white",style="solid",shape="box"];526 -> 756[label="",style="solid", color="burlywood", weight=9]; 756 -> 564[label="",style="solid", color="burlywood", weight=3]; 134 -> 675[label="",style="dashed", color="red", weight=0]; 134[label="primModNatS (primMinusNatS (Succ (Succ wv800)) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];134 -> 676[label="",style="dashed", color="magenta", weight=3]; 134 -> 677[label="",style="dashed", color="magenta", weight=3]; 134 -> 678[label="",style="dashed", color="magenta", weight=3]; 135[label="Succ (Succ Zero)",fontsize=16,color="green",shape="box"];136 -> 675[label="",style="dashed", color="red", weight=0]; 136[label="primModNatS (primMinusNatS (Succ Zero) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];136 -> 679[label="",style="dashed", color="magenta", weight=3]; 136 -> 680[label="",style="dashed", color="magenta", weight=3]; 136 -> 681[label="",style="dashed", color="magenta", weight=3]; 563[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS (Succ wv620) wv63)",fontsize=16,color="burlywood",shape="box"];757[label="wv63/Succ wv630",fontsize=10,color="white",style="solid",shape="box"];563 -> 757[label="",style="solid", color="burlywood", weight=9]; 757 -> 571[label="",style="solid", color="burlywood", weight=3]; 758[label="wv63/Zero",fontsize=10,color="white",style="solid",shape="box"];563 -> 758[label="",style="solid", color="burlywood", weight=9]; 758 -> 572[label="",style="solid", color="burlywood", weight=3]; 564[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS Zero wv63)",fontsize=16,color="burlywood",shape="box"];759[label="wv63/Succ wv630",fontsize=10,color="white",style="solid",shape="box"];564 -> 759[label="",style="solid", color="burlywood", weight=9]; 759 -> 573[label="",style="solid", color="burlywood", weight=3]; 760[label="wv63/Zero",fontsize=10,color="white",style="solid",shape="box"];564 -> 760[label="",style="solid", color="burlywood", weight=9]; 760 -> 574[label="",style="solid", color="burlywood", weight=3]; 676[label="Succ Zero",fontsize=16,color="green",shape="box"];677[label="Succ Zero",fontsize=16,color="green",shape="box"];678[label="Succ (Succ wv800)",fontsize=16,color="green",shape="box"];675[label="primModNatS (primMinusNatS wv69 wv70) (Succ wv71)",fontsize=16,color="burlywood",shape="triangle"];761[label="wv69/Succ wv690",fontsize=10,color="white",style="solid",shape="box"];675 -> 761[label="",style="solid", color="burlywood", weight=9]; 761 -> 706[label="",style="solid", color="burlywood", weight=3]; 762[label="wv69/Zero",fontsize=10,color="white",style="solid",shape="box"];675 -> 762[label="",style="solid", color="burlywood", weight=9]; 762 -> 707[label="",style="solid", color="burlywood", weight=3]; 679[label="Succ Zero",fontsize=16,color="green",shape="box"];680[label="Succ Zero",fontsize=16,color="green",shape="box"];681[label="Succ Zero",fontsize=16,color="green",shape="box"];571[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS (Succ wv620) (Succ wv630))",fontsize=16,color="black",shape="box"];571 -> 579[label="",style="solid", color="black", weight=3]; 572[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS (Succ wv620) Zero)",fontsize=16,color="black",shape="box"];572 -> 580[label="",style="solid", color="black", weight=3]; 573[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS Zero (Succ wv630))",fontsize=16,color="black",shape="box"];573 -> 581[label="",style="solid", color="black", weight=3]; 574[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];574 -> 582[label="",style="solid", color="black", weight=3]; 706[label="primModNatS (primMinusNatS (Succ wv690) wv70) (Succ wv71)",fontsize=16,color="burlywood",shape="box"];763[label="wv70/Succ wv700",fontsize=10,color="white",style="solid",shape="box"];706 -> 763[label="",style="solid", color="burlywood", weight=9]; 763 -> 708[label="",style="solid", color="burlywood", weight=3]; 764[label="wv70/Zero",fontsize=10,color="white",style="solid",shape="box"];706 -> 764[label="",style="solid", color="burlywood", weight=9]; 764 -> 709[label="",style="solid", color="burlywood", weight=3]; 707[label="primModNatS (primMinusNatS Zero wv70) (Succ wv71)",fontsize=16,color="burlywood",shape="box"];765[label="wv70/Succ wv700",fontsize=10,color="white",style="solid",shape="box"];707 -> 765[label="",style="solid", color="burlywood", weight=9]; 765 -> 710[label="",style="solid", color="burlywood", weight=3]; 766[label="wv70/Zero",fontsize=10,color="white",style="solid",shape="box"];707 -> 766[label="",style="solid", color="burlywood", weight=9]; 766 -> 711[label="",style="solid", color="burlywood", weight=3]; 579 -> 526[label="",style="dashed", color="red", weight=0]; 579[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS wv620 wv630)",fontsize=16,color="magenta"];579 -> 587[label="",style="dashed", color="magenta", weight=3]; 579 -> 588[label="",style="dashed", color="magenta", weight=3]; 580[label="primModNatS0 (Succ wv60) (Succ wv61) MyTrue",fontsize=16,color="black",shape="triangle"];580 -> 589[label="",style="solid", color="black", weight=3]; 581[label="primModNatS0 (Succ wv60) (Succ wv61) MyFalse",fontsize=16,color="black",shape="box"];581 -> 590[label="",style="solid", color="black", weight=3]; 582 -> 580[label="",style="dashed", color="red", weight=0]; 582[label="primModNatS0 (Succ wv60) (Succ wv61) MyTrue",fontsize=16,color="magenta"];708[label="primModNatS (primMinusNatS (Succ wv690) (Succ wv700)) (Succ wv71)",fontsize=16,color="black",shape="box"];708 -> 712[label="",style="solid", color="black", weight=3]; 709[label="primModNatS (primMinusNatS (Succ wv690) Zero) (Succ wv71)",fontsize=16,color="black",shape="box"];709 -> 713[label="",style="solid", color="black", weight=3]; 710[label="primModNatS (primMinusNatS Zero (Succ wv700)) (Succ wv71)",fontsize=16,color="black",shape="box"];710 -> 714[label="",style="solid", color="black", weight=3]; 711[label="primModNatS (primMinusNatS Zero Zero) (Succ wv71)",fontsize=16,color="black",shape="box"];711 -> 715[label="",style="solid", color="black", weight=3]; 587[label="wv630",fontsize=16,color="green",shape="box"];588[label="wv620",fontsize=16,color="green",shape="box"];589 -> 675[label="",style="dashed", color="red", weight=0]; 589[label="primModNatS (primMinusNatS (Succ wv60) (Succ (Succ wv61))) (Succ (Succ (Succ wv61)))",fontsize=16,color="magenta"];589 -> 688[label="",style="dashed", color="magenta", weight=3]; 589 -> 689[label="",style="dashed", color="magenta", weight=3]; 589 -> 690[label="",style="dashed", color="magenta", weight=3]; 590[label="Succ (Succ wv60)",fontsize=16,color="green",shape="box"];712 -> 675[label="",style="dashed", color="red", weight=0]; 712[label="primModNatS (primMinusNatS wv690 wv700) (Succ wv71)",fontsize=16,color="magenta"];712 -> 716[label="",style="dashed", color="magenta", weight=3]; 712 -> 717[label="",style="dashed", color="magenta", weight=3]; 713 -> 59[label="",style="dashed", color="red", weight=0]; 713[label="primModNatS (Succ wv690) (Succ wv71)",fontsize=16,color="magenta"];713 -> 718[label="",style="dashed", color="magenta", weight=3]; 713 -> 719[label="",style="dashed", color="magenta", weight=3]; 714[label="primModNatS Zero (Succ wv71)",fontsize=16,color="black",shape="triangle"];714 -> 720[label="",style="solid", color="black", weight=3]; 715 -> 714[label="",style="dashed", color="red", weight=0]; 715[label="primModNatS Zero (Succ wv71)",fontsize=16,color="magenta"];688[label="Succ (Succ wv61)",fontsize=16,color="green",shape="box"];689[label="Succ (Succ wv61)",fontsize=16,color="green",shape="box"];690[label="Succ wv60",fontsize=16,color="green",shape="box"];716[label="wv700",fontsize=16,color="green",shape="box"];717[label="wv690",fontsize=16,color="green",shape="box"];718[label="wv690",fontsize=16,color="green",shape="box"];719[label="wv71",fontsize=16,color="green",shape="box"];720[label="Zero",fontsize=16,color="green",shape="box"];} ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: new_psPs(Cons(wv110, wv111), wv8, wv10) -> new_psPs(wv111, wv8, wv10) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_psPs(Cons(wv110, wv111), wv8, wv10) -> new_psPs(wv111, wv8, wv10) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 ---------------------------------------- (9) YES ---------------------------------------- (10) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(wv60, wv61, Main.Zero, Main.Zero) -> new_primModNatS00(wv60, wv61) new_primModNatS1(Main.Succ(Main.Succ(wv800)), Main.Succ(Main.Succ(wv1000))) -> new_primModNatS0(Main.Succ(wv800), wv1000, wv800, wv1000) new_primModNatS1(Main.Succ(Main.Zero), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Zero), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) new_primModNatS0(wv60, wv61, Main.Succ(wv620), Main.Succ(wv630)) -> new_primModNatS0(wv60, wv61, wv620, wv630) new_primModNatS(Main.Succ(wv690), Main.Succ(wv700), wv71) -> new_primModNatS(wv690, wv700, wv71) new_primModNatS(Main.Succ(wv690), Main.Zero, wv71) -> new_primModNatS1(wv690, wv71) new_primModNatS0(wv60, wv61, Main.Succ(wv620), Main.Zero) -> new_primModNatS(Main.Succ(wv60), Main.Succ(Main.Succ(wv61)), Main.Succ(Main.Succ(wv61))) new_primModNatS1(Main.Succ(Main.Succ(wv800)), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Succ(wv800)), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) new_primModNatS00(wv60, wv61) -> new_primModNatS(Main.Succ(wv60), Main.Succ(Main.Succ(wv61)), Main.Succ(Main.Succ(wv61))) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (11) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_primModNatS(Main.Succ(wv690), Main.Succ(wv700), wv71) -> new_primModNatS(wv690, wv700, wv71) new_primModNatS(Main.Succ(wv690), Main.Zero, wv71) -> new_primModNatS1(wv690, wv71) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Main.Succ(x_1)) = 1 + x_1 POL(Main.Zero) = 0 POL(new_primModNatS(x_1, x_2, x_3)) = x_1 POL(new_primModNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 POL(new_primModNatS00(x_1, x_2)) = 1 + x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(wv60, wv61, Main.Zero, Main.Zero) -> new_primModNatS00(wv60, wv61) new_primModNatS1(Main.Succ(Main.Succ(wv800)), Main.Succ(Main.Succ(wv1000))) -> new_primModNatS0(Main.Succ(wv800), wv1000, wv800, wv1000) new_primModNatS1(Main.Succ(Main.Zero), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Zero), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) new_primModNatS0(wv60, wv61, Main.Succ(wv620), Main.Succ(wv630)) -> new_primModNatS0(wv60, wv61, wv620, wv630) new_primModNatS0(wv60, wv61, Main.Succ(wv620), Main.Zero) -> new_primModNatS(Main.Succ(wv60), Main.Succ(Main.Succ(wv61)), Main.Succ(Main.Succ(wv61))) new_primModNatS1(Main.Succ(Main.Succ(wv800)), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Succ(wv800)), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) new_primModNatS00(wv60, wv61) -> new_primModNatS(Main.Succ(wv60), Main.Succ(Main.Succ(wv61)), Main.Succ(Main.Succ(wv61))) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 6 less nodes. ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(wv60, wv61, Main.Succ(wv620), Main.Succ(wv630)) -> new_primModNatS0(wv60, wv61, wv620, wv630) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primModNatS0(wv60, wv61, Main.Succ(wv620), Main.Succ(wv630)) -> new_primModNatS0(wv60, wv61, wv620, wv630) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (16) YES ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS(wv650, wv660, wv67) new_primDivNatS1(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS0(wv130, wv140, wv130, wv140) new_primDivNatS0(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS0(wv31, wv32, wv330, wv340) new_primDivNatS1(Main.Zero, Main.Zero) -> new_primDivNatS(Main.Zero, Main.Zero, Main.Zero) new_primDivNatS00(wv31, wv32) -> new_primDivNatS(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32)) new_primDivNatS(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS1(wv650, wv67) new_primDivNatS1(Main.Succ(wv130), Main.Zero) -> new_primDivNatS(Main.Succ(wv130), Main.Zero, Main.Zero) new_primDivNatS0(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32)) new_primDivNatS0(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS00(wv31, wv32) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS1(wv650, wv67) new_primDivNatS1(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS0(wv130, wv140, wv130, wv140) new_primDivNatS0(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS0(wv31, wv32, wv330, wv340) new_primDivNatS0(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32)) new_primDivNatS(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS(wv650, wv660, wv67) new_primDivNatS0(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS00(wv31, wv32) new_primDivNatS00(wv31, wv32) -> new_primDivNatS(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32)) new_primDivNatS1(Main.Succ(wv130), Main.Zero) -> new_primDivNatS(Main.Succ(wv130), Main.Zero, Main.Zero) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_primDivNatS(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS1(wv650, wv67) new_primDivNatS(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS(wv650, wv660, wv67) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Main.Succ(x_1)) = 1 + x_1 POL(Main.Zero) = 0 POL(new_primDivNatS(x_1, x_2, x_3)) = x_1 POL(new_primDivNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 POL(new_primDivNatS00(x_1, x_2)) = 1 + x_1 POL(new_primDivNatS1(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS1(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS0(wv130, wv140, wv130, wv140) new_primDivNatS0(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS0(wv31, wv32, wv330, wv340) new_primDivNatS0(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32)) new_primDivNatS0(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS00(wv31, wv32) new_primDivNatS00(wv31, wv32) -> new_primDivNatS(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32)) new_primDivNatS1(Main.Succ(wv130), Main.Zero) -> new_primDivNatS(Main.Succ(wv130), Main.Zero, Main.Zero) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (22) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 5 less nodes. ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS0(wv31, wv32, wv330, wv340) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (24) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primDivNatS0(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS0(wv31, wv32, wv330, wv340) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (25) YES ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: new_primShowInt(Main.Neg(wv30)) -> new_primShowInt(Main.Pos(wv30)) new_primShowInt(Main.Pos(Main.Succ(wv300))) -> new_primShowInt(new_divMyInt(wv300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) The TRS R consists of the following rules: new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_divMyInt(wv13, wv14) -> Main.Pos(new_primDivNatS2(wv13, wv14)) new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_divMyInt(x0, x1) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: new_primShowInt(Main.Pos(Main.Succ(wv300))) -> new_primShowInt(new_divMyInt(wv300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) The TRS R consists of the following rules: new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_divMyInt(wv13, wv14) -> Main.Pos(new_primDivNatS2(wv13, wv14)) new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_divMyInt(x0, x1) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(wv300))) -> new_primShowInt(new_divMyInt(wv300, 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]: (new_primShowInt(Main.Pos(Main.Succ(wv300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(wv300, 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(wv300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(wv300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: new_primShowInt(Main.Pos(Main.Succ(wv300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(wv300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) The TRS R consists of the following rules: new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_divMyInt(wv13, wv14) -> Main.Pos(new_primDivNatS2(wv13, wv14)) new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_divMyInt(x0, x1) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) UsableRulesProof (EQUIVALENT) 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. ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: new_primShowInt(Main.Pos(Main.Succ(wv300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(wv300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) The TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_divMyInt(x0, x1) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_divMyInt(x0, x1) ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: new_primShowInt(Main.Pos(Main.Succ(wv300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(wv300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) The TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (36) Obligation: Q DP problem: The TRS P consists of the following rules: new_primShowInt(Main.Pos(Main.Succ(wv300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(wv300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) The TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (37) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_primShowInt(Main.Pos(Main.Succ(wv300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(wv300, 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: *We consider the chain new_primShowInt(Main.Pos(Main.Succ(x0))) -> new_primShowInt(Main.Pos(new_primDivNatS2(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))), new_primShowInt(Main.Pos(Main.Succ(x1))) -> new_primShowInt(Main.Pos(new_primDivNatS2(x1, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) which results in the following constraint: (1) (new_primShowInt(Main.Pos(new_primDivNatS2(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))=new_primShowInt(Main.Pos(Main.Succ(x1))) ==> new_primShowInt(Main.Pos(Main.Succ(x0)))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))=x2 & new_primDivNatS2(x0, x2)=Main.Succ(x1) ==> new_primShowInt(Main.Pos(Main.Succ(x0)))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS2(x0, x2)=Main.Succ(x1) which results in the following new constraints: (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_primDivNatS2(Main.Succ(x4), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) (4) (Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero))=Main.Succ(x1) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Zero)))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Zero, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) (5) (Main.Succ(new_primDivNatS3(Main.Succ(x6), Main.Zero, Main.Zero))=Main.Succ(x1) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x6))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x6), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (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_primDivNatS2(Main.Succ(x4), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 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: (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_primDivNatS2(Main.Succ(x12), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x12))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x12), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) (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_primDivNatS2(Main.Succ(x15), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) (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_primDivNatS2(Main.Succ(x18), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x10)))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(Main.Succ(x10)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) We solved constraint (8) using rules (I), (II), (III).We solved constraint (9) using rules (I), (II), (III). To summarize, we get the following constraints P__>=_ for the following pairs. *new_primShowInt(Main.Pos(Main.Succ(wv300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(wv300, 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(Main.Succ(x10)))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(Main.Succ(x10)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 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. ---------------------------------------- (38) Obligation: Q DP problem: The TRS P consists of the following rules: new_primShowInt(Main.Pos(Main.Succ(wv300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(wv300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) The TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (39) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(wv300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(wv300, 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]: (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)))))))))))) (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))) ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: 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.Zero))) -> new_primShowInt(Main.Pos(Main.Zero)) The TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (41) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: 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))))))))))) The TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (43) TransformationProof (EQUIVALENT) 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]: (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))))))))))) (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))) ---------------------------------------- (44) Obligation: Q DP problem: The TRS P consists of the following rules: 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.Zero)))) -> new_primShowInt(Main.Pos(Main.Zero)) The TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (45) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: 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)))))))))) The TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (47) TransformationProof (EQUIVALENT) 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]: (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)))))))))) (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))) ---------------------------------------- (48) Obligation: Q DP problem: The TRS P consists of the following rules: 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.Zero))))) -> new_primShowInt(Main.Pos(Main.Zero)) The TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (49) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: 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))))))))) The TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (51) TransformationProof (EQUIVALENT) 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]: (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))))))))) (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))) ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: 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.Zero)))))) -> new_primShowInt(Main.Pos(Main.Zero)) The TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (53) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (54) Obligation: Q DP problem: The TRS P consists of the following rules: 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 TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (55) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: 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 TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (57) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. 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: *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: (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))))))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (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))))))))) 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: (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))))))))) (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))))))))) (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))))))))) We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: (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))))))))) 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: (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))))))))) (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))))))))) (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))))))))) We simplified constraint (7) using rules (I), (II), (III), (IV) which results in the following new constraint: (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))))))))) We solved constraint (8) using rules (I), (II).We solved constraint (9) using rules (I), (II). To summarize, we get the following constraints P__>=_ for the following pairs. *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(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))))))))) 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. ---------------------------------------- (58) Obligation: Q DP problem: The TRS P consists of the following rules: 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 TRS R consists of the following rules: new_primDivNatS2(Main.Succ(wv130), Main.Succ(wv140)) -> new_primDivNatS02(wv130, wv140, wv130, wv140) new_primDivNatS2(Main.Zero, Main.Succ(wv140)) -> Main.Zero new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Succ(wv340)) -> new_primDivNatS02(wv31, wv32, wv330, wv340) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Succ(wv330), Main.Zero) -> new_primDivNatS01(wv31, wv32) new_primDivNatS02(wv31, wv32, Main.Zero, Main.Succ(wv340)) -> Main.Zero new_primDivNatS01(wv31, wv32) -> Main.Succ(new_primDivNatS3(Main.Succ(wv31), Main.Succ(wv32), Main.Succ(wv32))) new_primDivNatS3(Main.Succ(wv650), Main.Succ(wv660), wv67) -> new_primDivNatS3(wv650, wv660, wv67) new_primDivNatS3(Main.Succ(wv650), Main.Zero, wv67) -> new_primDivNatS2(wv650, wv67) new_primDivNatS3(Main.Zero, Main.Succ(wv660), wv67) -> new_primDivNatS4(wv67) new_primDivNatS3(Main.Zero, Main.Zero, wv67) -> new_primDivNatS4(wv67) new_primDivNatS4(wv67) -> Main.Zero new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Zero, Main.Zero, Main.Zero)) new_primDivNatS2(Main.Succ(wv130), Main.Zero) -> Main.Succ(new_primDivNatS3(Main.Succ(wv130), Main.Zero, Main.Zero)) The set Q consists of the following terms: new_primDivNatS4(x0) new_primDivNatS01(x0, x1) new_primDivNatS3(Main.Zero, Main.Succ(x0), x1) new_primDivNatS02(x0, x1, Main.Zero, Main.Succ(x2)) new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) new_primDivNatS2(Main.Zero, Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Zero, x1) new_primDivNatS2(Main.Succ(x0), Main.Zero) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Zero) new_primDivNatS3(Main.Succ(x0), Main.Succ(x1), x2) new_primDivNatS02(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_primDivNatS3(Main.Zero, Main.Zero, x0) new_primDivNatS2(Main.Zero, Main.Succ(x0)) new_primDivNatS02(x0, x1, Main.Zero, Main.Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (59) Narrow (COMPLETE) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="showMyInt",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="showMyInt wv3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 4[label="primShowInt wv3",fontsize=16,color="burlywood",shape="triangle"];721[label="wv3/Pos wv30",fontsize=10,color="white",style="solid",shape="box"];4 -> 721[label="",style="solid", color="burlywood", weight=9]; 721 -> 5[label="",style="solid", color="burlywood", weight=3]; 722[label="wv3/Neg wv30",fontsize=10,color="white",style="solid",shape="box"];4 -> 722[label="",style="solid", color="burlywood", weight=9]; 722 -> 6[label="",style="solid", color="burlywood", weight=3]; 5[label="primShowInt (Pos wv30)",fontsize=16,color="burlywood",shape="box"];723[label="wv30/Succ wv300",fontsize=10,color="white",style="solid",shape="box"];5 -> 723[label="",style="solid", color="burlywood", weight=9]; 723 -> 7[label="",style="solid", color="burlywood", weight=3]; 724[label="wv30/Zero",fontsize=10,color="white",style="solid",shape="box"];5 -> 724[label="",style="solid", color="burlywood", weight=9]; 724 -> 8[label="",style="solid", color="burlywood", weight=3]; 6[label="primShowInt (Neg wv30)",fontsize=16,color="black",shape="box"];6 -> 9[label="",style="solid", color="black", weight=3]; 7[label="primShowInt (Pos (Succ wv300))",fontsize=16,color="black",shape="box"];7 -> 10[label="",style="solid", color="black", weight=3]; 8[label="primShowInt (Pos Zero)",fontsize=16,color="black",shape="box"];8 -> 11[label="",style="solid", color="black", weight=3]; 9[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 wv30))",fontsize=16,color="green",shape="box"];9 -> 12[label="",style="dashed", color="green", weight=3]; 10 -> 24[label="",style="dashed", color="red", weight=0]; 10[label="psPs (primShowInt (divMyInt (Pos (Succ wv300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (Cons (toEnumChar (modMyInt (Pos (Succ wv300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil)",fontsize=16,color="magenta"];10 -> 25[label="",style="dashed", color="magenta", weight=3]; 10 -> 26[label="",style="dashed", color="magenta", weight=3]; 10 -> 27[label="",style="dashed", color="magenta", weight=3]; 11[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"];12 -> 4[label="",style="dashed", color="red", weight=0]; 12[label="primShowInt (Pos wv30)",fontsize=16,color="magenta"];12 -> 16[label="",style="dashed", color="magenta", weight=3]; 25[label="wv300",fontsize=16,color="green",shape="box"];26 -> 4[label="",style="dashed", color="red", weight=0]; 26[label="primShowInt (divMyInt (Pos (Succ wv300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];26 -> 29[label="",style="dashed", color="magenta", weight=3]; 27[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];24[label="psPs wv11 (Cons (toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))) Nil)",fontsize=16,color="burlywood",shape="triangle"];725[label="wv11/Cons wv110 wv111",fontsize=10,color="white",style="solid",shape="box"];24 -> 725[label="",style="solid", color="burlywood", weight=9]; 725 -> 30[label="",style="solid", color="burlywood", weight=3]; 726[label="wv11/Nil",fontsize=10,color="white",style="solid",shape="box"];24 -> 726[label="",style="solid", color="burlywood", weight=9]; 726 -> 31[label="",style="solid", color="burlywood", weight=3]; 16[label="Pos wv30",fontsize=16,color="green",shape="box"];29 -> 32[label="",style="dashed", color="red", weight=0]; 29[label="divMyInt (Pos (Succ wv300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))",fontsize=16,color="magenta"];29 -> 33[label="",style="dashed", color="magenta", weight=3]; 29 -> 34[label="",style="dashed", color="magenta", weight=3]; 30[label="psPs (Cons wv110 wv111) (Cons (toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))) Nil)",fontsize=16,color="black",shape="box"];30 -> 35[label="",style="solid", color="black", weight=3]; 31[label="psPs Nil (Cons (toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))) Nil)",fontsize=16,color="black",shape="box"];31 -> 36[label="",style="solid", color="black", weight=3]; 33[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];34[label="wv300",fontsize=16,color="green",shape="box"];32[label="divMyInt (Pos (Succ wv13)) (Pos (Succ wv14))",fontsize=16,color="black",shape="triangle"];32 -> 37[label="",style="solid", color="black", weight=3]; 35[label="Cons wv110 (psPs wv111 (Cons (toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))) Nil))",fontsize=16,color="green",shape="box"];35 -> 38[label="",style="dashed", color="green", weight=3]; 36[label="Cons (toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))) Nil",fontsize=16,color="green",shape="box"];36 -> 39[label="",style="dashed", color="green", weight=3]; 37[label="primDivInt (Pos (Succ wv13)) (Pos (Succ wv14))",fontsize=16,color="black",shape="box"];37 -> 40[label="",style="solid", color="black", weight=3]; 38 -> 24[label="",style="dashed", color="red", weight=0]; 38[label="psPs wv111 (Cons (toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))) Nil)",fontsize=16,color="magenta"];38 -> 41[label="",style="dashed", color="magenta", weight=3]; 39[label="toEnumChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))",fontsize=16,color="black",shape="box"];39 -> 42[label="",style="solid", color="black", weight=3]; 40[label="Pos (primDivNatS (Succ wv13) (Succ wv14))",fontsize=16,color="green",shape="box"];40 -> 43[label="",style="dashed", color="green", weight=3]; 41[label="wv111",fontsize=16,color="green",shape="box"];42[label="primIntToChar (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))",fontsize=16,color="black",shape="box"];42 -> 44[label="",style="solid", color="black", weight=3]; 43[label="primDivNatS (Succ wv13) (Succ wv14)",fontsize=16,color="black",shape="triangle"];43 -> 45[label="",style="solid", color="black", weight=3]; 44[label="Char (modMyInt (Pos (Succ wv8)) (Pos (Succ wv10)))",fontsize=16,color="green",shape="box"];44 -> 46[label="",style="dashed", color="green", weight=3]; 45[label="primDivNatS0 wv13 wv14 (primGEqNatS wv13 wv14)",fontsize=16,color="burlywood",shape="box"];727[label="wv13/Succ wv130",fontsize=10,color="white",style="solid",shape="box"];45 -> 727[label="",style="solid", color="burlywood", weight=9]; 727 -> 47[label="",style="solid", color="burlywood", weight=3]; 728[label="wv13/Zero",fontsize=10,color="white",style="solid",shape="box"];45 -> 728[label="",style="solid", color="burlywood", weight=9]; 728 -> 48[label="",style="solid", color="burlywood", weight=3]; 46[label="modMyInt (Pos (Succ wv8)) (Pos (Succ wv10))",fontsize=16,color="black",shape="box"];46 -> 49[label="",style="solid", color="black", weight=3]; 47[label="primDivNatS0 (Succ wv130) wv14 (primGEqNatS (Succ wv130) wv14)",fontsize=16,color="burlywood",shape="box"];729[label="wv14/Succ wv140",fontsize=10,color="white",style="solid",shape="box"];47 -> 729[label="",style="solid", color="burlywood", weight=9]; 729 -> 50[label="",style="solid", color="burlywood", weight=3]; 730[label="wv14/Zero",fontsize=10,color="white",style="solid",shape="box"];47 -> 730[label="",style="solid", color="burlywood", weight=9]; 730 -> 51[label="",style="solid", color="burlywood", weight=3]; 48[label="primDivNatS0 Zero wv14 (primGEqNatS Zero wv14)",fontsize=16,color="burlywood",shape="box"];731[label="wv14/Succ wv140",fontsize=10,color="white",style="solid",shape="box"];48 -> 731[label="",style="solid", color="burlywood", weight=9]; 731 -> 52[label="",style="solid", color="burlywood", weight=3]; 732[label="wv14/Zero",fontsize=10,color="white",style="solid",shape="box"];48 -> 732[label="",style="solid", color="burlywood", weight=9]; 732 -> 53[label="",style="solid", color="burlywood", weight=3]; 49[label="primModInt (Pos (Succ wv8)) (Pos (Succ wv10))",fontsize=16,color="black",shape="box"];49 -> 54[label="",style="solid", color="black", weight=3]; 50[label="primDivNatS0 (Succ wv130) (Succ wv140) (primGEqNatS (Succ wv130) (Succ wv140))",fontsize=16,color="black",shape="box"];50 -> 55[label="",style="solid", color="black", weight=3]; 51[label="primDivNatS0 (Succ wv130) Zero (primGEqNatS (Succ wv130) Zero)",fontsize=16,color="black",shape="box"];51 -> 56[label="",style="solid", color="black", weight=3]; 52[label="primDivNatS0 Zero (Succ wv140) (primGEqNatS Zero (Succ wv140))",fontsize=16,color="black",shape="box"];52 -> 57[label="",style="solid", color="black", weight=3]; 53[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];53 -> 58[label="",style="solid", color="black", weight=3]; 54[label="Pos (primModNatS (Succ wv8) (Succ wv10))",fontsize=16,color="green",shape="box"];54 -> 59[label="",style="dashed", color="green", weight=3]; 55 -> 324[label="",style="dashed", color="red", weight=0]; 55[label="primDivNatS0 (Succ wv130) (Succ wv140) (primGEqNatS wv130 wv140)",fontsize=16,color="magenta"];55 -> 325[label="",style="dashed", color="magenta", weight=3]; 55 -> 326[label="",style="dashed", color="magenta", weight=3]; 55 -> 327[label="",style="dashed", color="magenta", weight=3]; 55 -> 328[label="",style="dashed", color="magenta", weight=3]; 56[label="primDivNatS0 (Succ wv130) Zero MyTrue",fontsize=16,color="black",shape="box"];56 -> 62[label="",style="solid", color="black", weight=3]; 57[label="primDivNatS0 Zero (Succ wv140) MyFalse",fontsize=16,color="black",shape="box"];57 -> 63[label="",style="solid", color="black", weight=3]; 58[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];58 -> 64[label="",style="solid", color="black", weight=3]; 59[label="primModNatS (Succ wv8) (Succ wv10)",fontsize=16,color="burlywood",shape="triangle"];733[label="wv10/Succ wv100",fontsize=10,color="white",style="solid",shape="box"];59 -> 733[label="",style="solid", color="burlywood", weight=9]; 733 -> 65[label="",style="solid", color="burlywood", weight=3]; 734[label="wv10/Zero",fontsize=10,color="white",style="solid",shape="box"];59 -> 734[label="",style="solid", color="burlywood", weight=9]; 734 -> 66[label="",style="solid", color="burlywood", weight=3]; 325[label="wv130",fontsize=16,color="green",shape="box"];326[label="wv130",fontsize=16,color="green",shape="box"];327[label="wv140",fontsize=16,color="green",shape="box"];328[label="wv140",fontsize=16,color="green",shape="box"];324[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS wv33 wv34)",fontsize=16,color="burlywood",shape="triangle"];735[label="wv33/Succ wv330",fontsize=10,color="white",style="solid",shape="box"];324 -> 735[label="",style="solid", color="burlywood", weight=9]; 735 -> 357[label="",style="solid", color="burlywood", weight=3]; 736[label="wv33/Zero",fontsize=10,color="white",style="solid",shape="box"];324 -> 736[label="",style="solid", color="burlywood", weight=9]; 736 -> 358[label="",style="solid", color="burlywood", weight=3]; 62[label="Succ (primDivNatS (primMinusNatS (Succ wv130) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];62 -> 71[label="",style="dashed", color="green", weight=3]; 63[label="Zero",fontsize=16,color="green",shape="box"];64[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];64 -> 72[label="",style="dashed", color="green", weight=3]; 65[label="primModNatS (Succ wv8) (Succ (Succ wv100))",fontsize=16,color="black",shape="box"];65 -> 73[label="",style="solid", color="black", weight=3]; 66[label="primModNatS (Succ wv8) (Succ Zero)",fontsize=16,color="black",shape="box"];66 -> 74[label="",style="solid", color="black", weight=3]; 357[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS (Succ wv330) wv34)",fontsize=16,color="burlywood",shape="box"];737[label="wv34/Succ wv340",fontsize=10,color="white",style="solid",shape="box"];357 -> 737[label="",style="solid", color="burlywood", weight=9]; 737 -> 364[label="",style="solid", color="burlywood", weight=3]; 738[label="wv34/Zero",fontsize=10,color="white",style="solid",shape="box"];357 -> 738[label="",style="solid", color="burlywood", weight=9]; 738 -> 365[label="",style="solid", color="burlywood", weight=3]; 358[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS Zero wv34)",fontsize=16,color="burlywood",shape="box"];739[label="wv34/Succ wv340",fontsize=10,color="white",style="solid",shape="box"];358 -> 739[label="",style="solid", color="burlywood", weight=9]; 739 -> 366[label="",style="solid", color="burlywood", weight=3]; 740[label="wv34/Zero",fontsize=10,color="white",style="solid",shape="box"];358 -> 740[label="",style="solid", color="burlywood", weight=9]; 740 -> 367[label="",style="solid", color="burlywood", weight=3]; 71 -> 591[label="",style="dashed", color="red", weight=0]; 71[label="primDivNatS (primMinusNatS (Succ wv130) Zero) (Succ Zero)",fontsize=16,color="magenta"];71 -> 592[label="",style="dashed", color="magenta", weight=3]; 71 -> 593[label="",style="dashed", color="magenta", weight=3]; 71 -> 594[label="",style="dashed", color="magenta", weight=3]; 72 -> 591[label="",style="dashed", color="red", weight=0]; 72[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];72 -> 595[label="",style="dashed", color="magenta", weight=3]; 72 -> 596[label="",style="dashed", color="magenta", weight=3]; 72 -> 597[label="",style="dashed", color="magenta", weight=3]; 73[label="primModNatS0 wv8 wv100 (primGEqNatS wv8 (Succ wv100))",fontsize=16,color="burlywood",shape="box"];741[label="wv8/Succ wv80",fontsize=10,color="white",style="solid",shape="box"];73 -> 741[label="",style="solid", color="burlywood", weight=9]; 741 -> 81[label="",style="solid", color="burlywood", weight=3]; 742[label="wv8/Zero",fontsize=10,color="white",style="solid",shape="box"];73 -> 742[label="",style="solid", color="burlywood", weight=9]; 742 -> 82[label="",style="solid", color="burlywood", weight=3]; 74[label="Zero",fontsize=16,color="green",shape="box"];364[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS (Succ wv330) (Succ wv340))",fontsize=16,color="black",shape="box"];364 -> 376[label="",style="solid", color="black", weight=3]; 365[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS (Succ wv330) Zero)",fontsize=16,color="black",shape="box"];365 -> 377[label="",style="solid", color="black", weight=3]; 366[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS Zero (Succ wv340))",fontsize=16,color="black",shape="box"];366 -> 378[label="",style="solid", color="black", weight=3]; 367[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];367 -> 379[label="",style="solid", color="black", weight=3]; 592[label="Succ wv130",fontsize=16,color="green",shape="box"];593[label="Zero",fontsize=16,color="green",shape="box"];594[label="Zero",fontsize=16,color="green",shape="box"];591[label="primDivNatS (primMinusNatS wv65 wv66) (Succ wv67)",fontsize=16,color="burlywood",shape="triangle"];743[label="wv65/Succ wv650",fontsize=10,color="white",style="solid",shape="box"];591 -> 743[label="",style="solid", color="burlywood", weight=9]; 743 -> 616[label="",style="solid", color="burlywood", weight=3]; 744[label="wv65/Zero",fontsize=10,color="white",style="solid",shape="box"];591 -> 744[label="",style="solid", color="burlywood", weight=9]; 744 -> 617[label="",style="solid", color="burlywood", weight=3]; 595[label="Zero",fontsize=16,color="green",shape="box"];596[label="Zero",fontsize=16,color="green",shape="box"];597[label="Zero",fontsize=16,color="green",shape="box"];81[label="primModNatS0 (Succ wv80) wv100 (primGEqNatS (Succ wv80) (Succ wv100))",fontsize=16,color="black",shape="box"];81 -> 91[label="",style="solid", color="black", weight=3]; 82[label="primModNatS0 Zero wv100 (primGEqNatS Zero (Succ wv100))",fontsize=16,color="black",shape="box"];82 -> 92[label="",style="solid", color="black", weight=3]; 376 -> 324[label="",style="dashed", color="red", weight=0]; 376[label="primDivNatS0 (Succ wv31) (Succ wv32) (primGEqNatS wv330 wv340)",fontsize=16,color="magenta"];376 -> 389[label="",style="dashed", color="magenta", weight=3]; 376 -> 390[label="",style="dashed", color="magenta", weight=3]; 377[label="primDivNatS0 (Succ wv31) (Succ wv32) MyTrue",fontsize=16,color="black",shape="triangle"];377 -> 391[label="",style="solid", color="black", weight=3]; 378[label="primDivNatS0 (Succ wv31) (Succ wv32) MyFalse",fontsize=16,color="black",shape="box"];378 -> 392[label="",style="solid", color="black", weight=3]; 379 -> 377[label="",style="dashed", color="red", weight=0]; 379[label="primDivNatS0 (Succ wv31) (Succ wv32) MyTrue",fontsize=16,color="magenta"];616[label="primDivNatS (primMinusNatS (Succ wv650) wv66) (Succ wv67)",fontsize=16,color="burlywood",shape="box"];745[label="wv66/Succ wv660",fontsize=10,color="white",style="solid",shape="box"];616 -> 745[label="",style="solid", color="burlywood", weight=9]; 745 -> 619[label="",style="solid", color="burlywood", weight=3]; 746[label="wv66/Zero",fontsize=10,color="white",style="solid",shape="box"];616 -> 746[label="",style="solid", color="burlywood", weight=9]; 746 -> 620[label="",style="solid", color="burlywood", weight=3]; 617[label="primDivNatS (primMinusNatS Zero wv66) (Succ wv67)",fontsize=16,color="burlywood",shape="box"];747[label="wv66/Succ wv660",fontsize=10,color="white",style="solid",shape="box"];617 -> 747[label="",style="solid", color="burlywood", weight=9]; 747 -> 621[label="",style="solid", color="burlywood", weight=3]; 748[label="wv66/Zero",fontsize=10,color="white",style="solid",shape="box"];617 -> 748[label="",style="solid", color="burlywood", weight=9]; 748 -> 622[label="",style="solid", color="burlywood", weight=3]; 91[label="primModNatS0 (Succ wv80) wv100 (primGEqNatS wv80 wv100)",fontsize=16,color="burlywood",shape="box"];749[label="wv80/Succ wv800",fontsize=10,color="white",style="solid",shape="box"];91 -> 749[label="",style="solid", color="burlywood", weight=9]; 749 -> 99[label="",style="solid", color="burlywood", weight=3]; 750[label="wv80/Zero",fontsize=10,color="white",style="solid",shape="box"];91 -> 750[label="",style="solid", color="burlywood", weight=9]; 750 -> 100[label="",style="solid", color="burlywood", weight=3]; 92[label="primModNatS0 Zero wv100 MyFalse",fontsize=16,color="black",shape="box"];92 -> 101[label="",style="solid", color="black", weight=3]; 389[label="wv330",fontsize=16,color="green",shape="box"];390[label="wv340",fontsize=16,color="green",shape="box"];391[label="Succ (primDivNatS (primMinusNatS (Succ wv31) (Succ wv32)) (Succ (Succ wv32)))",fontsize=16,color="green",shape="box"];391 -> 400[label="",style="dashed", color="green", weight=3]; 392[label="Zero",fontsize=16,color="green",shape="box"];619[label="primDivNatS (primMinusNatS (Succ wv650) (Succ wv660)) (Succ wv67)",fontsize=16,color="black",shape="box"];619 -> 625[label="",style="solid", color="black", weight=3]; 620[label="primDivNatS (primMinusNatS (Succ wv650) Zero) (Succ wv67)",fontsize=16,color="black",shape="box"];620 -> 626[label="",style="solid", color="black", weight=3]; 621[label="primDivNatS (primMinusNatS Zero (Succ wv660)) (Succ wv67)",fontsize=16,color="black",shape="box"];621 -> 627[label="",style="solid", color="black", weight=3]; 622[label="primDivNatS (primMinusNatS Zero Zero) (Succ wv67)",fontsize=16,color="black",shape="box"];622 -> 628[label="",style="solid", color="black", weight=3]; 99[label="primModNatS0 (Succ (Succ wv800)) wv100 (primGEqNatS (Succ wv800) wv100)",fontsize=16,color="burlywood",shape="box"];751[label="wv100/Succ wv1000",fontsize=10,color="white",style="solid",shape="box"];99 -> 751[label="",style="solid", color="burlywood", weight=9]; 751 -> 108[label="",style="solid", color="burlywood", weight=3]; 752[label="wv100/Zero",fontsize=10,color="white",style="solid",shape="box"];99 -> 752[label="",style="solid", color="burlywood", weight=9]; 752 -> 109[label="",style="solid", color="burlywood", weight=3]; 100[label="primModNatS0 (Succ Zero) wv100 (primGEqNatS Zero wv100)",fontsize=16,color="burlywood",shape="box"];753[label="wv100/Succ wv1000",fontsize=10,color="white",style="solid",shape="box"];100 -> 753[label="",style="solid", color="burlywood", weight=9]; 753 -> 110[label="",style="solid", color="burlywood", weight=3]; 754[label="wv100/Zero",fontsize=10,color="white",style="solid",shape="box"];100 -> 754[label="",style="solid", color="burlywood", weight=9]; 754 -> 111[label="",style="solid", color="burlywood", weight=3]; 101[label="Succ Zero",fontsize=16,color="green",shape="box"];400 -> 591[label="",style="dashed", color="red", weight=0]; 400[label="primDivNatS (primMinusNatS (Succ wv31) (Succ wv32)) (Succ (Succ wv32))",fontsize=16,color="magenta"];400 -> 598[label="",style="dashed", color="magenta", weight=3]; 400 -> 599[label="",style="dashed", color="magenta", weight=3]; 400 -> 600[label="",style="dashed", color="magenta", weight=3]; 625 -> 591[label="",style="dashed", color="red", weight=0]; 625[label="primDivNatS (primMinusNatS wv650 wv660) (Succ wv67)",fontsize=16,color="magenta"];625 -> 631[label="",style="dashed", color="magenta", weight=3]; 625 -> 632[label="",style="dashed", color="magenta", weight=3]; 626 -> 43[label="",style="dashed", color="red", weight=0]; 626[label="primDivNatS (Succ wv650) (Succ wv67)",fontsize=16,color="magenta"];626 -> 633[label="",style="dashed", color="magenta", weight=3]; 626 -> 634[label="",style="dashed", color="magenta", weight=3]; 627[label="primDivNatS Zero (Succ wv67)",fontsize=16,color="black",shape="triangle"];627 -> 635[label="",style="solid", color="black", weight=3]; 628 -> 627[label="",style="dashed", color="red", weight=0]; 628[label="primDivNatS Zero (Succ wv67)",fontsize=16,color="magenta"];108[label="primModNatS0 (Succ (Succ wv800)) (Succ wv1000) (primGEqNatS (Succ wv800) (Succ wv1000))",fontsize=16,color="black",shape="box"];108 -> 119[label="",style="solid", color="black", weight=3]; 109[label="primModNatS0 (Succ (Succ wv800)) Zero (primGEqNatS (Succ wv800) Zero)",fontsize=16,color="black",shape="box"];109 -> 120[label="",style="solid", color="black", weight=3]; 110[label="primModNatS0 (Succ Zero) (Succ wv1000) (primGEqNatS Zero (Succ wv1000))",fontsize=16,color="black",shape="box"];110 -> 121[label="",style="solid", color="black", weight=3]; 111[label="primModNatS0 (Succ Zero) Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];111 -> 122[label="",style="solid", color="black", weight=3]; 598[label="Succ wv31",fontsize=16,color="green",shape="box"];599[label="Succ wv32",fontsize=16,color="green",shape="box"];600[label="Succ wv32",fontsize=16,color="green",shape="box"];631[label="wv650",fontsize=16,color="green",shape="box"];632[label="wv660",fontsize=16,color="green",shape="box"];633[label="wv67",fontsize=16,color="green",shape="box"];634[label="wv650",fontsize=16,color="green",shape="box"];635[label="Zero",fontsize=16,color="green",shape="box"];119 -> 526[label="",style="dashed", color="red", weight=0]; 119[label="primModNatS0 (Succ (Succ wv800)) (Succ wv1000) (primGEqNatS wv800 wv1000)",fontsize=16,color="magenta"];119 -> 527[label="",style="dashed", color="magenta", weight=3]; 119 -> 528[label="",style="dashed", color="magenta", weight=3]; 119 -> 529[label="",style="dashed", color="magenta", weight=3]; 119 -> 530[label="",style="dashed", color="magenta", weight=3]; 120[label="primModNatS0 (Succ (Succ wv800)) Zero MyTrue",fontsize=16,color="black",shape="box"];120 -> 134[label="",style="solid", color="black", weight=3]; 121[label="primModNatS0 (Succ Zero) (Succ wv1000) MyFalse",fontsize=16,color="black",shape="box"];121 -> 135[label="",style="solid", color="black", weight=3]; 122[label="primModNatS0 (Succ Zero) Zero MyTrue",fontsize=16,color="black",shape="box"];122 -> 136[label="",style="solid", color="black", weight=3]; 527[label="Succ wv800",fontsize=16,color="green",shape="box"];528[label="wv1000",fontsize=16,color="green",shape="box"];529[label="wv800",fontsize=16,color="green",shape="box"];530[label="wv1000",fontsize=16,color="green",shape="box"];526[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS wv62 wv63)",fontsize=16,color="burlywood",shape="triangle"];755[label="wv62/Succ wv620",fontsize=10,color="white",style="solid",shape="box"];526 -> 755[label="",style="solid", color="burlywood", weight=9]; 755 -> 563[label="",style="solid", color="burlywood", weight=3]; 756[label="wv62/Zero",fontsize=10,color="white",style="solid",shape="box"];526 -> 756[label="",style="solid", color="burlywood", weight=9]; 756 -> 564[label="",style="solid", color="burlywood", weight=3]; 134 -> 675[label="",style="dashed", color="red", weight=0]; 134[label="primModNatS (primMinusNatS (Succ (Succ wv800)) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];134 -> 676[label="",style="dashed", color="magenta", weight=3]; 134 -> 677[label="",style="dashed", color="magenta", weight=3]; 134 -> 678[label="",style="dashed", color="magenta", weight=3]; 135[label="Succ (Succ Zero)",fontsize=16,color="green",shape="box"];136 -> 675[label="",style="dashed", color="red", weight=0]; 136[label="primModNatS (primMinusNatS (Succ Zero) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];136 -> 679[label="",style="dashed", color="magenta", weight=3]; 136 -> 680[label="",style="dashed", color="magenta", weight=3]; 136 -> 681[label="",style="dashed", color="magenta", weight=3]; 563[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS (Succ wv620) wv63)",fontsize=16,color="burlywood",shape="box"];757[label="wv63/Succ wv630",fontsize=10,color="white",style="solid",shape="box"];563 -> 757[label="",style="solid", color="burlywood", weight=9]; 757 -> 571[label="",style="solid", color="burlywood", weight=3]; 758[label="wv63/Zero",fontsize=10,color="white",style="solid",shape="box"];563 -> 758[label="",style="solid", color="burlywood", weight=9]; 758 -> 572[label="",style="solid", color="burlywood", weight=3]; 564[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS Zero wv63)",fontsize=16,color="burlywood",shape="box"];759[label="wv63/Succ wv630",fontsize=10,color="white",style="solid",shape="box"];564 -> 759[label="",style="solid", color="burlywood", weight=9]; 759 -> 573[label="",style="solid", color="burlywood", weight=3]; 760[label="wv63/Zero",fontsize=10,color="white",style="solid",shape="box"];564 -> 760[label="",style="solid", color="burlywood", weight=9]; 760 -> 574[label="",style="solid", color="burlywood", weight=3]; 676[label="Succ Zero",fontsize=16,color="green",shape="box"];677[label="Succ Zero",fontsize=16,color="green",shape="box"];678[label="Succ (Succ wv800)",fontsize=16,color="green",shape="box"];675[label="primModNatS (primMinusNatS wv69 wv70) (Succ wv71)",fontsize=16,color="burlywood",shape="triangle"];761[label="wv69/Succ wv690",fontsize=10,color="white",style="solid",shape="box"];675 -> 761[label="",style="solid", color="burlywood", weight=9]; 761 -> 706[label="",style="solid", color="burlywood", weight=3]; 762[label="wv69/Zero",fontsize=10,color="white",style="solid",shape="box"];675 -> 762[label="",style="solid", color="burlywood", weight=9]; 762 -> 707[label="",style="solid", color="burlywood", weight=3]; 679[label="Succ Zero",fontsize=16,color="green",shape="box"];680[label="Succ Zero",fontsize=16,color="green",shape="box"];681[label="Succ Zero",fontsize=16,color="green",shape="box"];571[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS (Succ wv620) (Succ wv630))",fontsize=16,color="black",shape="box"];571 -> 579[label="",style="solid", color="black", weight=3]; 572[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS (Succ wv620) Zero)",fontsize=16,color="black",shape="box"];572 -> 580[label="",style="solid", color="black", weight=3]; 573[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS Zero (Succ wv630))",fontsize=16,color="black",shape="box"];573 -> 581[label="",style="solid", color="black", weight=3]; 574[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];574 -> 582[label="",style="solid", color="black", weight=3]; 706[label="primModNatS (primMinusNatS (Succ wv690) wv70) (Succ wv71)",fontsize=16,color="burlywood",shape="box"];763[label="wv70/Succ wv700",fontsize=10,color="white",style="solid",shape="box"];706 -> 763[label="",style="solid", color="burlywood", weight=9]; 763 -> 708[label="",style="solid", color="burlywood", weight=3]; 764[label="wv70/Zero",fontsize=10,color="white",style="solid",shape="box"];706 -> 764[label="",style="solid", color="burlywood", weight=9]; 764 -> 709[label="",style="solid", color="burlywood", weight=3]; 707[label="primModNatS (primMinusNatS Zero wv70) (Succ wv71)",fontsize=16,color="burlywood",shape="box"];765[label="wv70/Succ wv700",fontsize=10,color="white",style="solid",shape="box"];707 -> 765[label="",style="solid", color="burlywood", weight=9]; 765 -> 710[label="",style="solid", color="burlywood", weight=3]; 766[label="wv70/Zero",fontsize=10,color="white",style="solid",shape="box"];707 -> 766[label="",style="solid", color="burlywood", weight=9]; 766 -> 711[label="",style="solid", color="burlywood", weight=3]; 579 -> 526[label="",style="dashed", color="red", weight=0]; 579[label="primModNatS0 (Succ wv60) (Succ wv61) (primGEqNatS wv620 wv630)",fontsize=16,color="magenta"];579 -> 587[label="",style="dashed", color="magenta", weight=3]; 579 -> 588[label="",style="dashed", color="magenta", weight=3]; 580[label="primModNatS0 (Succ wv60) (Succ wv61) MyTrue",fontsize=16,color="black",shape="triangle"];580 -> 589[label="",style="solid", color="black", weight=3]; 581[label="primModNatS0 (Succ wv60) (Succ wv61) MyFalse",fontsize=16,color="black",shape="box"];581 -> 590[label="",style="solid", color="black", weight=3]; 582 -> 580[label="",style="dashed", color="red", weight=0]; 582[label="primModNatS0 (Succ wv60) (Succ wv61) MyTrue",fontsize=16,color="magenta"];708[label="primModNatS (primMinusNatS (Succ wv690) (Succ wv700)) (Succ wv71)",fontsize=16,color="black",shape="box"];708 -> 712[label="",style="solid", color="black", weight=3]; 709[label="primModNatS (primMinusNatS (Succ wv690) Zero) (Succ wv71)",fontsize=16,color="black",shape="box"];709 -> 713[label="",style="solid", color="black", weight=3]; 710[label="primModNatS (primMinusNatS Zero (Succ wv700)) (Succ wv71)",fontsize=16,color="black",shape="box"];710 -> 714[label="",style="solid", color="black", weight=3]; 711[label="primModNatS (primMinusNatS Zero Zero) (Succ wv71)",fontsize=16,color="black",shape="box"];711 -> 715[label="",style="solid", color="black", weight=3]; 587[label="wv630",fontsize=16,color="green",shape="box"];588[label="wv620",fontsize=16,color="green",shape="box"];589 -> 675[label="",style="dashed", color="red", weight=0]; 589[label="primModNatS (primMinusNatS (Succ wv60) (Succ (Succ wv61))) (Succ (Succ (Succ wv61)))",fontsize=16,color="magenta"];589 -> 688[label="",style="dashed", color="magenta", weight=3]; 589 -> 689[label="",style="dashed", color="magenta", weight=3]; 589 -> 690[label="",style="dashed", color="magenta", weight=3]; 590[label="Succ (Succ wv60)",fontsize=16,color="green",shape="box"];712 -> 675[label="",style="dashed", color="red", weight=0]; 712[label="primModNatS (primMinusNatS wv690 wv700) (Succ wv71)",fontsize=16,color="magenta"];712 -> 716[label="",style="dashed", color="magenta", weight=3]; 712 -> 717[label="",style="dashed", color="magenta", weight=3]; 713 -> 59[label="",style="dashed", color="red", weight=0]; 713[label="primModNatS (Succ wv690) (Succ wv71)",fontsize=16,color="magenta"];713 -> 718[label="",style="dashed", color="magenta", weight=3]; 713 -> 719[label="",style="dashed", color="magenta", weight=3]; 714[label="primModNatS Zero (Succ wv71)",fontsize=16,color="black",shape="triangle"];714 -> 720[label="",style="solid", color="black", weight=3]; 715 -> 714[label="",style="dashed", color="red", weight=0]; 715[label="primModNatS Zero (Succ wv71)",fontsize=16,color="magenta"];688[label="Succ (Succ wv61)",fontsize=16,color="green",shape="box"];689[label="Succ (Succ wv61)",fontsize=16,color="green",shape="box"];690[label="Succ wv60",fontsize=16,color="green",shape="box"];716[label="wv700",fontsize=16,color="green",shape="box"];717[label="wv690",fontsize=16,color="green",shape="box"];718[label="wv690",fontsize=16,color="green",shape="box"];719[label="wv71",fontsize=16,color="green",shape="box"];720[label="Zero",fontsize=16,color="green",shape="box"];} ---------------------------------------- (60) Obligation: Q DP problem: The TRS P consists of the following rules: new_primShowInt(Main.Neg(wv30), []) -> new_primShowInt(Main.Pos(wv30), []) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (61) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node. ---------------------------------------- (62) TRUE