29.71/16.78 MAYBE 31.54/17.35 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 31.54/17.35 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 31.54/17.35 31.54/17.35 31.54/17.35 H-Termination with start terms of the given HASKELL could not be shown: 31.54/17.35 31.54/17.35 (0) HASKELL 31.54/17.35 (1) BR [EQUIVALENT, 0 ms] 31.54/17.35 (2) HASKELL 31.54/17.35 (3) COR [EQUIVALENT, 0 ms] 31.54/17.35 (4) HASKELL 31.54/17.35 (5) Narrow [SOUND, 0 ms] 31.54/17.35 (6) AND 31.54/17.35 (7) QDP 31.54/17.35 (8) QDPOrderProof [EQUIVALENT, 20 ms] 31.54/17.35 (9) QDP 31.54/17.35 (10) DependencyGraphProof [EQUIVALENT, 0 ms] 31.54/17.35 (11) QDP 31.54/17.35 (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] 31.54/17.35 (13) YES 31.54/17.35 (14) QDP 31.54/17.35 (15) DependencyGraphProof [EQUIVALENT, 0 ms] 31.54/17.35 (16) QDP 31.54/17.35 (17) QDPOrderProof [EQUIVALENT, 0 ms] 31.54/17.35 (18) QDP 31.54/17.35 (19) DependencyGraphProof [EQUIVALENT, 0 ms] 31.54/17.35 (20) QDP 31.54/17.35 (21) QDPSizeChangeProof [EQUIVALENT, 0 ms] 31.54/17.35 (22) YES 31.54/17.35 (23) QDP 31.54/17.35 (24) QDPSizeChangeProof [EQUIVALENT, 0 ms] 31.54/17.35 (25) YES 31.54/17.35 (26) QDP 31.54/17.35 (27) DependencyGraphProof [EQUIVALENT, 0 ms] 31.54/17.35 (28) QDP 31.54/17.35 (29) TransformationProof [EQUIVALENT, 0 ms] 31.54/17.36 (30) QDP 31.54/17.36 (31) UsableRulesProof [EQUIVALENT, 0 ms] 31.54/17.36 (32) QDP 31.54/17.36 (33) QReductionProof [EQUIVALENT, 0 ms] 31.54/17.36 (34) QDP 31.54/17.36 (35) MNOCProof [EQUIVALENT, 0 ms] 31.54/17.36 (36) QDP 31.54/17.36 (37) InductionCalculusProof [EQUIVALENT, 0 ms] 31.54/17.36 (38) QDP 31.54/17.36 (39) TransformationProof [EQUIVALENT, 0 ms] 31.54/17.36 (40) QDP 31.54/17.36 (41) DependencyGraphProof [EQUIVALENT, 0 ms] 31.54/17.36 (42) QDP 31.54/17.36 (43) TransformationProof [EQUIVALENT, 0 ms] 31.54/17.36 (44) QDP 31.54/17.36 (45) DependencyGraphProof [EQUIVALENT, 0 ms] 31.54/17.36 (46) QDP 31.54/17.36 (47) TransformationProof [EQUIVALENT, 0 ms] 31.54/17.36 (48) QDP 31.54/17.36 (49) DependencyGraphProof [EQUIVALENT, 0 ms] 31.54/17.36 (50) QDP 31.54/17.36 (51) TransformationProof [EQUIVALENT, 0 ms] 31.54/17.36 (52) QDP 31.54/17.36 (53) DependencyGraphProof [EQUIVALENT, 0 ms] 31.54/17.36 (54) QDP 31.54/17.36 (55) MNOCProof [EQUIVALENT, 0 ms] 31.54/17.36 (56) QDP 31.54/17.36 (57) InductionCalculusProof [EQUIVALENT, 0 ms] 31.54/17.36 (58) QDP 31.54/17.36 (59) Narrow [COMPLETE, 0 ms] 31.54/17.36 (60) TRUE 31.54/17.36 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (0) 31.54/17.36 Obligation: 31.54/17.36 mainModule Main 31.54/17.36 module Main where { 31.54/17.36 import qualified Prelude; 31.54/17.36 data Main.Char = Char MyInt ; 31.54/17.36 31.54/17.36 data List a = Cons a (List a) | Nil ; 31.54/17.36 31.54/17.36 data MyBool = MyTrue | MyFalse ; 31.54/17.36 31.54/17.36 data MyInt = Pos Main.Nat | Neg Main.Nat ; 31.54/17.36 31.54/17.36 data Main.Nat = Succ Main.Nat | Zero ; 31.54/17.36 31.54/17.36 divMyInt :: MyInt -> MyInt -> MyInt; 31.54/17.36 divMyInt = primDivInt; 31.54/17.36 31.54/17.36 error :: a; 31.54/17.36 error = stop MyTrue; 31.54/17.36 31.54/17.36 modMyInt :: MyInt -> MyInt -> MyInt; 31.54/17.36 modMyInt = primModInt; 31.54/17.36 31.54/17.36 primDivInt :: MyInt -> MyInt -> MyInt; 31.54/17.36 primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 31.54/17.36 primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 31.54/17.36 primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 31.54/17.36 primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 31.54/17.36 primDivInt vw vx = Main.error; 31.54/17.36 31.54/17.36 primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primDivNatP Main.Zero Main.Zero = Main.error; 31.54/17.36 primDivNatP (Main.Succ x) Main.Zero = Main.error; 31.54/17.36 primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); 31.54/17.36 primDivNatP Main.Zero (Main.Succ x) = Main.Zero; 31.54/17.36 31.54/17.36 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primDivNatS Main.Zero Main.Zero = Main.error; 31.54/17.36 primDivNatS (Main.Succ x) Main.Zero = Main.error; 31.54/17.36 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 31.54/17.36 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 31.54/17.36 31.54/17.36 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 31.54/17.36 primDivNatS0 x y MyFalse = Main.Zero; 31.54/17.36 31.54/17.36 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 31.54/17.36 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 31.54/17.36 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 31.54/17.36 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 31.54/17.36 primGEqNatS Main.Zero Main.Zero = MyTrue; 31.54/17.36 31.54/17.36 primIntToChar :: MyInt -> Main.Char; 31.54/17.36 primIntToChar x = Main.Char x; 31.54/17.36 31.54/17.36 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 31.54/17.36 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 31.54/17.36 primMinusNatS x Main.Zero = x; 31.54/17.36 31.54/17.36 primModInt :: MyInt -> MyInt -> MyInt; 31.54/17.36 primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 31.54/17.36 primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); 31.54/17.36 primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); 31.54/17.36 primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 31.54/17.36 primModInt vy vz = Main.error; 31.54/17.36 31.54/17.36 primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primModNatP Main.Zero Main.Zero = Main.error; 31.54/17.36 primModNatP Main.Zero (Main.Succ x) = Main.Zero; 31.54/17.36 primModNatP (Main.Succ x) Main.Zero = Main.error; 31.54/17.36 primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 31.54/17.36 primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); 31.54/17.36 31.54/17.36 primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 31.54/17.36 primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; 31.54/17.36 31.54/17.36 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primModNatS Main.Zero Main.Zero = Main.error; 31.54/17.36 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 31.54/17.36 primModNatS (Main.Succ x) Main.Zero = Main.error; 31.54/17.36 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 31.54/17.36 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 31.54/17.36 31.54/17.36 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 31.54/17.36 primModNatS0 x y MyFalse = Main.Succ x; 31.54/17.36 31.54/17.36 primShowInt :: MyInt -> List Main.Char; 31.54/17.36 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; 31.54/17.36 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); 31.54/17.36 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)); 31.54/17.36 31.54/17.36 psPs :: List a -> List a -> List a; 31.54/17.36 psPs Nil ys = ys; 31.54/17.36 psPs (Cons x xs) ys = Cons x (psPs xs ys); 31.54/17.36 31.54/17.36 showMyInt :: MyInt -> List Main.Char; 31.54/17.36 showMyInt = primShowInt; 31.54/17.36 31.54/17.36 showsMyInt :: MyInt -> List Main.Char -> List Main.Char; 31.54/17.36 showsMyInt = showsPrecMyInt (Main.Pos Main.Zero); 31.54/17.36 31.54/17.36 showsPrecMyInt :: MyInt -> MyInt -> List Main.Char -> List Main.Char; 31.54/17.36 showsPrecMyInt vv x s = psPs (showMyInt x) s; 31.54/17.36 31.54/17.36 stop :: MyBool -> a; 31.54/17.36 stop MyFalse = stop MyFalse; 31.54/17.36 31.54/17.36 toEnumChar :: MyInt -> Main.Char; 31.54/17.36 toEnumChar = primIntToChar; 31.54/17.36 31.54/17.36 } 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (1) BR (EQUIVALENT) 31.54/17.36 Replaced joker patterns by fresh variables and removed binding patterns. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (2) 31.54/17.36 Obligation: 31.54/17.36 mainModule Main 31.54/17.36 module Main where { 31.54/17.36 import qualified Prelude; 31.54/17.36 data Main.Char = Char MyInt ; 31.54/17.36 31.54/17.36 data List a = Cons a (List a) | Nil ; 31.54/17.36 31.54/17.36 data MyBool = MyTrue | MyFalse ; 31.54/17.36 31.54/17.36 data MyInt = Pos Main.Nat | Neg Main.Nat ; 31.54/17.36 31.54/17.36 data Main.Nat = Succ Main.Nat | Zero ; 31.54/17.36 31.54/17.36 divMyInt :: MyInt -> MyInt -> MyInt; 31.54/17.36 divMyInt = primDivInt; 31.54/17.36 31.54/17.36 error :: a; 31.54/17.36 error = stop MyTrue; 31.54/17.36 31.54/17.36 modMyInt :: MyInt -> MyInt -> MyInt; 31.54/17.36 modMyInt = primModInt; 31.54/17.36 31.54/17.36 primDivInt :: MyInt -> MyInt -> MyInt; 31.54/17.36 primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 31.54/17.36 primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 31.54/17.36 primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 31.54/17.36 primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 31.54/17.36 primDivInt vw vx = Main.error; 31.54/17.36 31.54/17.36 primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primDivNatP Main.Zero Main.Zero = Main.error; 31.54/17.36 primDivNatP (Main.Succ x) Main.Zero = Main.error; 31.54/17.36 primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); 31.54/17.36 primDivNatP Main.Zero (Main.Succ x) = Main.Zero; 31.54/17.36 31.54/17.36 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primDivNatS Main.Zero Main.Zero = Main.error; 31.54/17.36 primDivNatS (Main.Succ x) Main.Zero = Main.error; 31.54/17.36 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 31.54/17.36 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 31.54/17.36 31.54/17.36 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 31.54/17.36 primDivNatS0 x y MyFalse = Main.Zero; 31.54/17.36 31.54/17.36 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 31.54/17.36 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 31.54/17.36 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 31.54/17.36 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 31.54/17.36 primGEqNatS Main.Zero Main.Zero = MyTrue; 31.54/17.36 31.54/17.36 primIntToChar :: MyInt -> Main.Char; 31.54/17.36 primIntToChar x = Main.Char x; 31.54/17.36 31.54/17.36 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 31.54/17.36 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 31.54/17.36 primMinusNatS x Main.Zero = x; 31.54/17.36 31.54/17.36 primModInt :: MyInt -> MyInt -> MyInt; 31.54/17.36 primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 31.54/17.36 primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); 31.54/17.36 primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); 31.54/17.36 primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 31.54/17.36 primModInt vy vz = Main.error; 31.54/17.36 31.54/17.36 primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primModNatP Main.Zero Main.Zero = Main.error; 31.54/17.36 primModNatP Main.Zero (Main.Succ x) = Main.Zero; 31.54/17.36 primModNatP (Main.Succ x) Main.Zero = Main.error; 31.54/17.36 primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 31.54/17.36 primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); 31.54/17.36 31.54/17.36 primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 31.54/17.36 primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; 31.54/17.36 31.54/17.36 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primModNatS Main.Zero Main.Zero = Main.error; 31.54/17.36 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 31.54/17.36 primModNatS (Main.Succ x) Main.Zero = Main.error; 31.54/17.36 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 31.54/17.36 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 31.54/17.36 31.54/17.36 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 31.54/17.36 primModNatS0 x y MyFalse = Main.Succ x; 31.54/17.36 31.54/17.36 primShowInt :: MyInt -> List Main.Char; 31.54/17.36 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; 31.54/17.36 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); 31.54/17.36 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)); 31.54/17.36 31.54/17.36 psPs :: List a -> List a -> List a; 31.54/17.36 psPs Nil ys = ys; 31.54/17.36 psPs (Cons x xs) ys = Cons x (psPs xs ys); 31.54/17.36 31.54/17.36 showMyInt :: MyInt -> List Main.Char; 31.54/17.36 showMyInt = primShowInt; 31.54/17.36 31.54/17.36 showsMyInt :: MyInt -> List Main.Char -> List Main.Char; 31.54/17.36 showsMyInt = showsPrecMyInt (Main.Pos Main.Zero); 31.54/17.36 31.54/17.36 showsPrecMyInt :: MyInt -> MyInt -> List Main.Char -> List Main.Char; 31.54/17.36 showsPrecMyInt vv x s = psPs (showMyInt x) s; 31.54/17.36 31.54/17.36 stop :: MyBool -> a; 31.54/17.36 stop MyFalse = stop MyFalse; 31.54/17.36 31.54/17.36 toEnumChar :: MyInt -> Main.Char; 31.54/17.36 toEnumChar = primIntToChar; 31.54/17.36 31.54/17.36 } 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (3) COR (EQUIVALENT) 31.54/17.36 Cond Reductions: 31.54/17.36 The following Function with conditions 31.54/17.36 "undefined |Falseundefined; 31.54/17.36 " 31.54/17.36 is transformed to 31.54/17.36 "undefined = undefined1; 31.54/17.36 " 31.54/17.36 "undefined0 True = undefined; 31.54/17.36 " 31.54/17.36 "undefined1 = undefined0 False; 31.54/17.36 " 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (4) 31.54/17.36 Obligation: 31.54/17.36 mainModule Main 31.54/17.36 module Main where { 31.54/17.36 import qualified Prelude; 31.54/17.36 data Main.Char = Char MyInt ; 31.54/17.36 31.54/17.36 data List a = Cons a (List a) | Nil ; 31.54/17.36 31.54/17.36 data MyBool = MyTrue | MyFalse ; 31.54/17.36 31.54/17.36 data MyInt = Pos Main.Nat | Neg Main.Nat ; 31.54/17.36 31.54/17.36 data Main.Nat = Succ Main.Nat | Zero ; 31.54/17.36 31.54/17.36 divMyInt :: MyInt -> MyInt -> MyInt; 31.54/17.36 divMyInt = primDivInt; 31.54/17.36 31.54/17.36 error :: a; 31.54/17.36 error = stop MyTrue; 31.54/17.36 31.54/17.36 modMyInt :: MyInt -> MyInt -> MyInt; 31.54/17.36 modMyInt = primModInt; 31.54/17.36 31.54/17.36 primDivInt :: MyInt -> MyInt -> MyInt; 31.54/17.36 primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 31.54/17.36 primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 31.54/17.36 primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 31.54/17.36 primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 31.54/17.36 primDivInt vw vx = Main.error; 31.54/17.36 31.54/17.36 primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primDivNatP Main.Zero Main.Zero = Main.error; 31.54/17.36 primDivNatP (Main.Succ x) Main.Zero = Main.error; 31.54/17.36 primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); 31.54/17.36 primDivNatP Main.Zero (Main.Succ x) = Main.Zero; 31.54/17.36 31.54/17.36 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primDivNatS Main.Zero Main.Zero = Main.error; 31.54/17.36 primDivNatS (Main.Succ x) Main.Zero = Main.error; 31.54/17.36 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 31.54/17.36 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 31.54/17.36 31.54/17.36 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 31.54/17.36 primDivNatS0 x y MyFalse = Main.Zero; 31.54/17.36 31.54/17.36 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 31.54/17.36 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 31.54/17.36 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 31.54/17.36 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 31.54/17.36 primGEqNatS Main.Zero Main.Zero = MyTrue; 31.54/17.36 31.54/17.36 primIntToChar :: MyInt -> Main.Char; 31.54/17.36 primIntToChar x = Main.Char x; 31.54/17.36 31.54/17.36 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 31.54/17.36 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 31.54/17.36 primMinusNatS x Main.Zero = x; 31.54/17.36 31.54/17.36 primModInt :: MyInt -> MyInt -> MyInt; 31.54/17.36 primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 31.54/17.36 primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); 31.54/17.36 primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); 31.54/17.36 primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 31.54/17.36 primModInt vy vz = Main.error; 31.54/17.36 31.54/17.36 primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primModNatP Main.Zero Main.Zero = Main.error; 31.54/17.36 primModNatP Main.Zero (Main.Succ x) = Main.Zero; 31.54/17.36 primModNatP (Main.Succ x) Main.Zero = Main.error; 31.54/17.36 primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 31.54/17.36 primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); 31.54/17.36 31.54/17.36 primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 31.54/17.36 primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; 31.54/17.36 31.54/17.36 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 31.54/17.36 primModNatS Main.Zero Main.Zero = Main.error; 31.54/17.36 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 31.54/17.36 primModNatS (Main.Succ x) Main.Zero = Main.error; 31.54/17.36 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 31.54/17.36 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 31.54/17.36 31.54/17.36 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 31.54/17.36 primModNatS0 x y MyFalse = Main.Succ x; 31.54/17.36 31.54/17.36 primShowInt :: MyInt -> List Main.Char; 31.54/17.36 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; 31.54/17.36 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); 31.54/17.36 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)); 31.54/17.36 31.54/17.36 psPs :: List a -> List a -> List a; 31.54/17.36 psPs Nil ys = ys; 31.54/17.36 psPs (Cons x xs) ys = Cons x (psPs xs ys); 31.54/17.36 31.54/17.36 showMyInt :: MyInt -> List Main.Char; 31.54/17.36 showMyInt = primShowInt; 31.54/17.36 31.54/17.36 showsMyInt :: MyInt -> List Main.Char -> List Main.Char; 31.54/17.36 showsMyInt = showsPrecMyInt (Main.Pos Main.Zero); 31.54/17.36 31.54/17.36 showsPrecMyInt :: MyInt -> MyInt -> List Main.Char -> List Main.Char; 31.54/17.36 showsPrecMyInt vv x s = psPs (showMyInt x) s; 31.54/17.36 31.54/17.36 stop :: MyBool -> a; 31.54/17.36 stop MyFalse = stop MyFalse; 31.54/17.36 31.54/17.36 toEnumChar :: MyInt -> Main.Char; 31.54/17.36 toEnumChar = primIntToChar; 31.54/17.36 31.54/17.36 } 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (5) Narrow (SOUND) 31.54/17.36 Haskell To QDPs 31.54/17.36 31.54/17.36 digraph dp_graph { 31.54/17.36 node [outthreshold=100, inthreshold=100];1[label="showsMyInt",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 31.54/17.36 3[label="showsMyInt ww3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 31.54/17.36 4[label="showsMyInt ww3 ww4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 31.54/17.36 5[label="showsPrecMyInt (Pos Zero) ww3 ww4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 31.54/17.36 6 -> 36[label="",style="dashed", color="red", weight=0]; 31.54/17.36 6[label="psPs (showMyInt ww3) ww4",fontsize=16,color="magenta"];6 -> 37[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 6 -> 38[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 37[label="ww4",fontsize=16,color="green",shape="box"];38[label="showMyInt ww3",fontsize=16,color="black",shape="box"];38 -> 52[label="",style="solid", color="black", weight=3]; 31.54/17.36 36[label="psPs ww21 ww20",fontsize=16,color="burlywood",shape="triangle"];880[label="ww21/Cons ww210 ww211",fontsize=10,color="white",style="solid",shape="box"];36 -> 880[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 880 -> 53[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 881[label="ww21/Nil",fontsize=10,color="white",style="solid",shape="box"];36 -> 881[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 881 -> 54[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 52[label="primShowInt ww3",fontsize=16,color="burlywood",shape="triangle"];882[label="ww3/Pos ww30",fontsize=10,color="white",style="solid",shape="box"];52 -> 882[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 882 -> 55[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 883[label="ww3/Neg ww30",fontsize=10,color="white",style="solid",shape="box"];52 -> 883[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 883 -> 56[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 53[label="psPs (Cons ww210 ww211) ww20",fontsize=16,color="black",shape="box"];53 -> 57[label="",style="solid", color="black", weight=3]; 31.54/17.36 54[label="psPs Nil ww20",fontsize=16,color="black",shape="box"];54 -> 58[label="",style="solid", color="black", weight=3]; 31.54/17.36 55[label="primShowInt (Pos ww30)",fontsize=16,color="burlywood",shape="box"];884[label="ww30/Succ ww300",fontsize=10,color="white",style="solid",shape="box"];55 -> 884[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 884 -> 59[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 885[label="ww30/Zero",fontsize=10,color="white",style="solid",shape="box"];55 -> 885[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 885 -> 60[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 56[label="primShowInt (Neg ww30)",fontsize=16,color="black",shape="box"];56 -> 61[label="",style="solid", color="black", weight=3]; 31.54/17.36 57[label="Cons ww210 (psPs ww211 ww20)",fontsize=16,color="green",shape="box"];57 -> 62[label="",style="dashed", color="green", weight=3]; 31.54/17.36 58[label="ww20",fontsize=16,color="green",shape="box"];59[label="primShowInt (Pos (Succ ww300))",fontsize=16,color="black",shape="box"];59 -> 63[label="",style="solid", color="black", weight=3]; 31.54/17.36 60[label="primShowInt (Pos Zero)",fontsize=16,color="black",shape="box"];60 -> 64[label="",style="solid", color="black", weight=3]; 31.54/17.36 61[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 ww30))",fontsize=16,color="green",shape="box"];61 -> 65[label="",style="dashed", color="green", weight=3]; 31.54/17.36 62 -> 36[label="",style="dashed", color="red", weight=0]; 31.54/17.36 62[label="psPs ww211 ww20",fontsize=16,color="magenta"];62 -> 66[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 63 -> 36[label="",style="dashed", color="red", weight=0]; 31.54/17.36 63[label="psPs (primShowInt (divMyInt (Pos (Succ ww300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (Cons (toEnumChar (modMyInt (Pos (Succ ww300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil)",fontsize=16,color="magenta"];63 -> 67[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 63 -> 68[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 64[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"];65 -> 52[label="",style="dashed", color="red", weight=0]; 31.54/17.36 65[label="primShowInt (Pos ww30)",fontsize=16,color="magenta"];65 -> 69[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 66[label="ww211",fontsize=16,color="green",shape="box"];67[label="Cons (toEnumChar (modMyInt (Pos (Succ ww300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil",fontsize=16,color="green",shape="box"];67 -> 70[label="",style="dashed", color="green", weight=3]; 31.54/17.36 68 -> 52[label="",style="dashed", color="red", weight=0]; 31.54/17.36 68[label="primShowInt (divMyInt (Pos (Succ ww300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];68 -> 71[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 69[label="Pos ww30",fontsize=16,color="green",shape="box"];70 -> 72[label="",style="dashed", color="red", weight=0]; 31.54/17.36 70[label="toEnumChar (modMyInt (Pos (Succ ww300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];70 -> 73[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 70 -> 74[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 71 -> 75[label="",style="dashed", color="red", weight=0]; 31.54/17.36 71[label="divMyInt (Pos (Succ ww300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))",fontsize=16,color="magenta"];71 -> 76[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 71 -> 77[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 73[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];74[label="ww300",fontsize=16,color="green",shape="box"];72[label="toEnumChar (modMyInt (Pos (Succ ww23)) (Pos (Succ ww24)))",fontsize=16,color="black",shape="triangle"];72 -> 78[label="",style="solid", color="black", weight=3]; 31.54/17.36 76[label="ww300",fontsize=16,color="green",shape="box"];77[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];75[label="divMyInt (Pos (Succ ww26)) (Pos (Succ ww27))",fontsize=16,color="black",shape="triangle"];75 -> 79[label="",style="solid", color="black", weight=3]; 31.54/17.36 78[label="primIntToChar (modMyInt (Pos (Succ ww23)) (Pos (Succ ww24)))",fontsize=16,color="black",shape="box"];78 -> 80[label="",style="solid", color="black", weight=3]; 31.54/17.36 79[label="primDivInt (Pos (Succ ww26)) (Pos (Succ ww27))",fontsize=16,color="black",shape="box"];79 -> 81[label="",style="solid", color="black", weight=3]; 31.54/17.36 80[label="Char (modMyInt (Pos (Succ ww23)) (Pos (Succ ww24)))",fontsize=16,color="green",shape="box"];80 -> 82[label="",style="dashed", color="green", weight=3]; 31.54/17.36 81[label="Pos (primDivNatS (Succ ww26) (Succ ww27))",fontsize=16,color="green",shape="box"];81 -> 83[label="",style="dashed", color="green", weight=3]; 31.54/17.36 82[label="modMyInt (Pos (Succ ww23)) (Pos (Succ ww24))",fontsize=16,color="black",shape="box"];82 -> 84[label="",style="solid", color="black", weight=3]; 31.54/17.36 83[label="primDivNatS (Succ ww26) (Succ ww27)",fontsize=16,color="black",shape="triangle"];83 -> 85[label="",style="solid", color="black", weight=3]; 31.54/17.36 84[label="primModInt (Pos (Succ ww23)) (Pos (Succ ww24))",fontsize=16,color="black",shape="box"];84 -> 86[label="",style="solid", color="black", weight=3]; 31.54/17.36 85[label="primDivNatS0 ww26 ww27 (primGEqNatS ww26 ww27)",fontsize=16,color="burlywood",shape="box"];886[label="ww26/Succ ww260",fontsize=10,color="white",style="solid",shape="box"];85 -> 886[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 886 -> 87[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 887[label="ww26/Zero",fontsize=10,color="white",style="solid",shape="box"];85 -> 887[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 887 -> 88[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 86[label="Pos (primModNatS (Succ ww23) (Succ ww24))",fontsize=16,color="green",shape="box"];86 -> 89[label="",style="dashed", color="green", weight=3]; 31.54/17.36 87[label="primDivNatS0 (Succ ww260) ww27 (primGEqNatS (Succ ww260) ww27)",fontsize=16,color="burlywood",shape="box"];888[label="ww27/Succ ww270",fontsize=10,color="white",style="solid",shape="box"];87 -> 888[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 888 -> 90[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 889[label="ww27/Zero",fontsize=10,color="white",style="solid",shape="box"];87 -> 889[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 889 -> 91[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 88[label="primDivNatS0 Zero ww27 (primGEqNatS Zero ww27)",fontsize=16,color="burlywood",shape="box"];890[label="ww27/Succ ww270",fontsize=10,color="white",style="solid",shape="box"];88 -> 890[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 890 -> 92[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 891[label="ww27/Zero",fontsize=10,color="white",style="solid",shape="box"];88 -> 891[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 891 -> 93[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 89[label="primModNatS (Succ ww23) (Succ ww24)",fontsize=16,color="burlywood",shape="triangle"];892[label="ww24/Succ ww240",fontsize=10,color="white",style="solid",shape="box"];89 -> 892[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 892 -> 94[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 893[label="ww24/Zero",fontsize=10,color="white",style="solid",shape="box"];89 -> 893[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 893 -> 95[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 90[label="primDivNatS0 (Succ ww260) (Succ ww270) (primGEqNatS (Succ ww260) (Succ ww270))",fontsize=16,color="black",shape="box"];90 -> 96[label="",style="solid", color="black", weight=3]; 31.54/17.36 91[label="primDivNatS0 (Succ ww260) Zero (primGEqNatS (Succ ww260) Zero)",fontsize=16,color="black",shape="box"];91 -> 97[label="",style="solid", color="black", weight=3]; 31.54/17.36 92[label="primDivNatS0 Zero (Succ ww270) (primGEqNatS Zero (Succ ww270))",fontsize=16,color="black",shape="box"];92 -> 98[label="",style="solid", color="black", weight=3]; 31.54/17.36 93[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];93 -> 99[label="",style="solid", color="black", weight=3]; 31.54/17.36 94[label="primModNatS (Succ ww23) (Succ (Succ ww240))",fontsize=16,color="black",shape="box"];94 -> 100[label="",style="solid", color="black", weight=3]; 31.54/17.36 95[label="primModNatS (Succ ww23) (Succ Zero)",fontsize=16,color="black",shape="box"];95 -> 101[label="",style="solid", color="black", weight=3]; 31.54/17.36 96 -> 546[label="",style="dashed", color="red", weight=0]; 31.54/17.36 96[label="primDivNatS0 (Succ ww260) (Succ ww270) (primGEqNatS ww260 ww270)",fontsize=16,color="magenta"];96 -> 547[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 96 -> 548[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 96 -> 549[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 96 -> 550[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 97[label="primDivNatS0 (Succ ww260) Zero MyTrue",fontsize=16,color="black",shape="box"];97 -> 104[label="",style="solid", color="black", weight=3]; 31.54/17.36 98[label="primDivNatS0 Zero (Succ ww270) MyFalse",fontsize=16,color="black",shape="box"];98 -> 105[label="",style="solid", color="black", weight=3]; 31.54/17.36 99[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];99 -> 106[label="",style="solid", color="black", weight=3]; 31.54/17.36 100[label="primModNatS0 ww23 ww240 (primGEqNatS ww23 (Succ ww240))",fontsize=16,color="burlywood",shape="box"];894[label="ww23/Succ ww230",fontsize=10,color="white",style="solid",shape="box"];100 -> 894[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 894 -> 107[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 895[label="ww23/Zero",fontsize=10,color="white",style="solid",shape="box"];100 -> 895[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 895 -> 108[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 101[label="Zero",fontsize=16,color="green",shape="box"];547[label="ww270",fontsize=16,color="green",shape="box"];548[label="ww260",fontsize=16,color="green",shape="box"];549[label="ww260",fontsize=16,color="green",shape="box"];550[label="ww270",fontsize=16,color="green",shape="box"];546[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS ww70 ww71)",fontsize=16,color="burlywood",shape="triangle"];896[label="ww70/Succ ww700",fontsize=10,color="white",style="solid",shape="box"];546 -> 896[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 896 -> 587[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 897[label="ww70/Zero",fontsize=10,color="white",style="solid",shape="box"];546 -> 897[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 897 -> 588[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 104[label="Succ (primDivNatS (primMinusNatS (Succ ww260) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];104 -> 113[label="",style="dashed", color="green", weight=3]; 31.54/17.36 105[label="Zero",fontsize=16,color="green",shape="box"];106[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];106 -> 114[label="",style="dashed", color="green", weight=3]; 31.54/17.36 107[label="primModNatS0 (Succ ww230) ww240 (primGEqNatS (Succ ww230) (Succ ww240))",fontsize=16,color="black",shape="box"];107 -> 115[label="",style="solid", color="black", weight=3]; 31.54/17.36 108[label="primModNatS0 Zero ww240 (primGEqNatS Zero (Succ ww240))",fontsize=16,color="black",shape="box"];108 -> 116[label="",style="solid", color="black", weight=3]; 31.54/17.36 587[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS (Succ ww700) ww71)",fontsize=16,color="burlywood",shape="box"];898[label="ww71/Succ ww710",fontsize=10,color="white",style="solid",shape="box"];587 -> 898[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 898 -> 594[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 899[label="ww71/Zero",fontsize=10,color="white",style="solid",shape="box"];587 -> 899[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 899 -> 595[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 588[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS Zero ww71)",fontsize=16,color="burlywood",shape="box"];900[label="ww71/Succ ww710",fontsize=10,color="white",style="solid",shape="box"];588 -> 900[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 900 -> 596[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 901[label="ww71/Zero",fontsize=10,color="white",style="solid",shape="box"];588 -> 901[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 901 -> 597[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 113 -> 780[label="",style="dashed", color="red", weight=0]; 31.54/17.36 113[label="primDivNatS (primMinusNatS (Succ ww260) Zero) (Succ Zero)",fontsize=16,color="magenta"];113 -> 781[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 113 -> 782[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 113 -> 783[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 114 -> 780[label="",style="dashed", color="red", weight=0]; 31.54/17.36 114[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];114 -> 784[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 114 -> 785[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 114 -> 786[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 115[label="primModNatS0 (Succ ww230) ww240 (primGEqNatS ww230 ww240)",fontsize=16,color="burlywood",shape="box"];902[label="ww230/Succ ww2300",fontsize=10,color="white",style="solid",shape="box"];115 -> 902[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 902 -> 123[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 903[label="ww230/Zero",fontsize=10,color="white",style="solid",shape="box"];115 -> 903[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 903 -> 124[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 116[label="primModNatS0 Zero ww240 MyFalse",fontsize=16,color="black",shape="box"];116 -> 125[label="",style="solid", color="black", weight=3]; 31.54/17.36 594[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS (Succ ww700) (Succ ww710))",fontsize=16,color="black",shape="box"];594 -> 604[label="",style="solid", color="black", weight=3]; 31.54/17.36 595[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS (Succ ww700) Zero)",fontsize=16,color="black",shape="box"];595 -> 605[label="",style="solid", color="black", weight=3]; 31.54/17.36 596[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS Zero (Succ ww710))",fontsize=16,color="black",shape="box"];596 -> 606[label="",style="solid", color="black", weight=3]; 31.54/17.36 597[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];597 -> 607[label="",style="solid", color="black", weight=3]; 31.54/17.36 781[label="Succ ww260",fontsize=16,color="green",shape="box"];782[label="Zero",fontsize=16,color="green",shape="box"];783[label="Zero",fontsize=16,color="green",shape="box"];780[label="primDivNatS (primMinusNatS ww78 ww79) (Succ ww80)",fontsize=16,color="burlywood",shape="triangle"];904[label="ww78/Succ ww780",fontsize=10,color="white",style="solid",shape="box"];780 -> 904[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 904 -> 805[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 905[label="ww78/Zero",fontsize=10,color="white",style="solid",shape="box"];780 -> 905[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 905 -> 806[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 784[label="Zero",fontsize=16,color="green",shape="box"];785[label="Zero",fontsize=16,color="green",shape="box"];786[label="Zero",fontsize=16,color="green",shape="box"];123[label="primModNatS0 (Succ (Succ ww2300)) ww240 (primGEqNatS (Succ ww2300) ww240)",fontsize=16,color="burlywood",shape="box"];906[label="ww240/Succ ww2400",fontsize=10,color="white",style="solid",shape="box"];123 -> 906[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 906 -> 134[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 907[label="ww240/Zero",fontsize=10,color="white",style="solid",shape="box"];123 -> 907[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 907 -> 135[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 124[label="primModNatS0 (Succ Zero) ww240 (primGEqNatS Zero ww240)",fontsize=16,color="burlywood",shape="box"];908[label="ww240/Succ ww2400",fontsize=10,color="white",style="solid",shape="box"];124 -> 908[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 908 -> 136[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 909[label="ww240/Zero",fontsize=10,color="white",style="solid",shape="box"];124 -> 909[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 909 -> 137[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 125[label="Succ Zero",fontsize=16,color="green",shape="box"];604 -> 546[label="",style="dashed", color="red", weight=0]; 31.54/17.36 604[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS ww700 ww710)",fontsize=16,color="magenta"];604 -> 618[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 604 -> 619[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 605[label="primDivNatS0 (Succ ww68) (Succ ww69) MyTrue",fontsize=16,color="black",shape="triangle"];605 -> 620[label="",style="solid", color="black", weight=3]; 31.54/17.36 606[label="primDivNatS0 (Succ ww68) (Succ ww69) MyFalse",fontsize=16,color="black",shape="box"];606 -> 621[label="",style="solid", color="black", weight=3]; 31.54/17.36 607 -> 605[label="",style="dashed", color="red", weight=0]; 31.54/17.36 607[label="primDivNatS0 (Succ ww68) (Succ ww69) MyTrue",fontsize=16,color="magenta"];805[label="primDivNatS (primMinusNatS (Succ ww780) ww79) (Succ ww80)",fontsize=16,color="burlywood",shape="box"];910[label="ww79/Succ ww790",fontsize=10,color="white",style="solid",shape="box"];805 -> 910[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 910 -> 813[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 911[label="ww79/Zero",fontsize=10,color="white",style="solid",shape="box"];805 -> 911[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 911 -> 814[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 806[label="primDivNatS (primMinusNatS Zero ww79) (Succ ww80)",fontsize=16,color="burlywood",shape="box"];912[label="ww79/Succ ww790",fontsize=10,color="white",style="solid",shape="box"];806 -> 912[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 912 -> 815[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 913[label="ww79/Zero",fontsize=10,color="white",style="solid",shape="box"];806 -> 913[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 913 -> 816[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 134[label="primModNatS0 (Succ (Succ ww2300)) (Succ ww2400) (primGEqNatS (Succ ww2300) (Succ ww2400))",fontsize=16,color="black",shape="box"];134 -> 144[label="",style="solid", color="black", weight=3]; 31.54/17.36 135[label="primModNatS0 (Succ (Succ ww2300)) Zero (primGEqNatS (Succ ww2300) Zero)",fontsize=16,color="black",shape="box"];135 -> 145[label="",style="solid", color="black", weight=3]; 31.54/17.36 136[label="primModNatS0 (Succ Zero) (Succ ww2400) (primGEqNatS Zero (Succ ww2400))",fontsize=16,color="black",shape="box"];136 -> 146[label="",style="solid", color="black", weight=3]; 31.54/17.36 137[label="primModNatS0 (Succ Zero) Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];137 -> 147[label="",style="solid", color="black", weight=3]; 31.54/17.36 618[label="ww710",fontsize=16,color="green",shape="box"];619[label="ww700",fontsize=16,color="green",shape="box"];620[label="Succ (primDivNatS (primMinusNatS (Succ ww68) (Succ ww69)) (Succ (Succ ww69)))",fontsize=16,color="green",shape="box"];620 -> 629[label="",style="dashed", color="green", weight=3]; 31.54/17.36 621[label="Zero",fontsize=16,color="green",shape="box"];813[label="primDivNatS (primMinusNatS (Succ ww780) (Succ ww790)) (Succ ww80)",fontsize=16,color="black",shape="box"];813 -> 821[label="",style="solid", color="black", weight=3]; 31.54/17.36 814[label="primDivNatS (primMinusNatS (Succ ww780) Zero) (Succ ww80)",fontsize=16,color="black",shape="box"];814 -> 822[label="",style="solid", color="black", weight=3]; 31.54/17.36 815[label="primDivNatS (primMinusNatS Zero (Succ ww790)) (Succ ww80)",fontsize=16,color="black",shape="box"];815 -> 823[label="",style="solid", color="black", weight=3]; 31.54/17.36 816[label="primDivNatS (primMinusNatS Zero Zero) (Succ ww80)",fontsize=16,color="black",shape="box"];816 -> 824[label="",style="solid", color="black", weight=3]; 31.54/17.36 144 -> 643[label="",style="dashed", color="red", weight=0]; 31.54/17.36 144[label="primModNatS0 (Succ (Succ ww2300)) (Succ ww2400) (primGEqNatS ww2300 ww2400)",fontsize=16,color="magenta"];144 -> 644[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 144 -> 645[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 144 -> 646[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 144 -> 647[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 145[label="primModNatS0 (Succ (Succ ww2300)) Zero MyTrue",fontsize=16,color="black",shape="box"];145 -> 156[label="",style="solid", color="black", weight=3]; 31.54/17.36 146[label="primModNatS0 (Succ Zero) (Succ ww2400) MyFalse",fontsize=16,color="black",shape="box"];146 -> 157[label="",style="solid", color="black", weight=3]; 31.54/17.36 147[label="primModNatS0 (Succ Zero) Zero MyTrue",fontsize=16,color="black",shape="box"];147 -> 158[label="",style="solid", color="black", weight=3]; 31.54/17.36 629 -> 780[label="",style="dashed", color="red", weight=0]; 31.54/17.36 629[label="primDivNatS (primMinusNatS (Succ ww68) (Succ ww69)) (Succ (Succ ww69))",fontsize=16,color="magenta"];629 -> 787[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 629 -> 788[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 629 -> 789[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 821 -> 780[label="",style="dashed", color="red", weight=0]; 31.54/17.36 821[label="primDivNatS (primMinusNatS ww780 ww790) (Succ ww80)",fontsize=16,color="magenta"];821 -> 829[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 821 -> 830[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 822 -> 83[label="",style="dashed", color="red", weight=0]; 31.54/17.36 822[label="primDivNatS (Succ ww780) (Succ ww80)",fontsize=16,color="magenta"];822 -> 831[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 822 -> 832[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 823[label="primDivNatS Zero (Succ ww80)",fontsize=16,color="black",shape="triangle"];823 -> 833[label="",style="solid", color="black", weight=3]; 31.54/17.36 824 -> 823[label="",style="dashed", color="red", weight=0]; 31.54/17.36 824[label="primDivNatS Zero (Succ ww80)",fontsize=16,color="magenta"];644[label="ww2400",fontsize=16,color="green",shape="box"];645[label="ww2300",fontsize=16,color="green",shape="box"];646[label="ww2400",fontsize=16,color="green",shape="box"];647[label="Succ ww2300",fontsize=16,color="green",shape="box"];643[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS ww75 ww76)",fontsize=16,color="burlywood",shape="triangle"];914[label="ww75/Succ ww750",fontsize=10,color="white",style="solid",shape="box"];643 -> 914[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 914 -> 684[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 915[label="ww75/Zero",fontsize=10,color="white",style="solid",shape="box"];643 -> 915[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 915 -> 685[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 156 -> 834[label="",style="dashed", color="red", weight=0]; 31.54/17.36 156[label="primModNatS (primMinusNatS (Succ (Succ ww2300)) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];156 -> 835[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 156 -> 836[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 156 -> 837[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 157[label="Succ (Succ Zero)",fontsize=16,color="green",shape="box"];158 -> 834[label="",style="dashed", color="red", weight=0]; 31.54/17.36 158[label="primModNatS (primMinusNatS (Succ Zero) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];158 -> 838[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 158 -> 839[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 158 -> 840[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 787[label="Succ ww68",fontsize=16,color="green",shape="box"];788[label="Succ ww69",fontsize=16,color="green",shape="box"];789[label="Succ ww69",fontsize=16,color="green",shape="box"];829[label="ww780",fontsize=16,color="green",shape="box"];830[label="ww790",fontsize=16,color="green",shape="box"];831[label="ww780",fontsize=16,color="green",shape="box"];832[label="ww80",fontsize=16,color="green",shape="box"];833[label="Zero",fontsize=16,color="green",shape="box"];684[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS (Succ ww750) ww76)",fontsize=16,color="burlywood",shape="box"];916[label="ww76/Succ ww760",fontsize=10,color="white",style="solid",shape="box"];684 -> 916[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 916 -> 688[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 917[label="ww76/Zero",fontsize=10,color="white",style="solid",shape="box"];684 -> 917[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 917 -> 689[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 685[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS Zero ww76)",fontsize=16,color="burlywood",shape="box"];918[label="ww76/Succ ww760",fontsize=10,color="white",style="solid",shape="box"];685 -> 918[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 918 -> 690[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 919[label="ww76/Zero",fontsize=10,color="white",style="solid",shape="box"];685 -> 919[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 919 -> 691[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 835[label="Succ Zero",fontsize=16,color="green",shape="box"];836[label="Succ Zero",fontsize=16,color="green",shape="box"];837[label="Succ (Succ ww2300)",fontsize=16,color="green",shape="box"];834[label="primModNatS (primMinusNatS ww82 ww83) (Succ ww84)",fontsize=16,color="burlywood",shape="triangle"];920[label="ww82/Succ ww820",fontsize=10,color="white",style="solid",shape="box"];834 -> 920[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 920 -> 865[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 921[label="ww82/Zero",fontsize=10,color="white",style="solid",shape="box"];834 -> 921[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 921 -> 866[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 838[label="Succ Zero",fontsize=16,color="green",shape="box"];839[label="Succ Zero",fontsize=16,color="green",shape="box"];840[label="Succ Zero",fontsize=16,color="green",shape="box"];688[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS (Succ ww750) (Succ ww760))",fontsize=16,color="black",shape="box"];688 -> 696[label="",style="solid", color="black", weight=3]; 31.54/17.36 689[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS (Succ ww750) Zero)",fontsize=16,color="black",shape="box"];689 -> 697[label="",style="solid", color="black", weight=3]; 31.54/17.36 690[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS Zero (Succ ww760))",fontsize=16,color="black",shape="box"];690 -> 698[label="",style="solid", color="black", weight=3]; 31.54/17.36 691[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];691 -> 699[label="",style="solid", color="black", weight=3]; 31.54/17.36 865[label="primModNatS (primMinusNatS (Succ ww820) ww83) (Succ ww84)",fontsize=16,color="burlywood",shape="box"];922[label="ww83/Succ ww830",fontsize=10,color="white",style="solid",shape="box"];865 -> 922[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 922 -> 867[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 923[label="ww83/Zero",fontsize=10,color="white",style="solid",shape="box"];865 -> 923[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 923 -> 868[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 866[label="primModNatS (primMinusNatS Zero ww83) (Succ ww84)",fontsize=16,color="burlywood",shape="box"];924[label="ww83/Succ ww830",fontsize=10,color="white",style="solid",shape="box"];866 -> 924[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 924 -> 869[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 925[label="ww83/Zero",fontsize=10,color="white",style="solid",shape="box"];866 -> 925[label="",style="solid", color="burlywood", weight=9]; 31.54/17.36 925 -> 870[label="",style="solid", color="burlywood", weight=3]; 31.54/17.36 696 -> 643[label="",style="dashed", color="red", weight=0]; 31.54/17.36 696[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS ww750 ww760)",fontsize=16,color="magenta"];696 -> 704[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 696 -> 705[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 697[label="primModNatS0 (Succ ww73) (Succ ww74) MyTrue",fontsize=16,color="black",shape="triangle"];697 -> 706[label="",style="solid", color="black", weight=3]; 31.54/17.36 698[label="primModNatS0 (Succ ww73) (Succ ww74) MyFalse",fontsize=16,color="black",shape="box"];698 -> 707[label="",style="solid", color="black", weight=3]; 31.54/17.36 699 -> 697[label="",style="dashed", color="red", weight=0]; 31.54/17.36 699[label="primModNatS0 (Succ ww73) (Succ ww74) MyTrue",fontsize=16,color="magenta"];867[label="primModNatS (primMinusNatS (Succ ww820) (Succ ww830)) (Succ ww84)",fontsize=16,color="black",shape="box"];867 -> 871[label="",style="solid", color="black", weight=3]; 31.54/17.36 868[label="primModNatS (primMinusNatS (Succ ww820) Zero) (Succ ww84)",fontsize=16,color="black",shape="box"];868 -> 872[label="",style="solid", color="black", weight=3]; 31.54/17.36 869[label="primModNatS (primMinusNatS Zero (Succ ww830)) (Succ ww84)",fontsize=16,color="black",shape="box"];869 -> 873[label="",style="solid", color="black", weight=3]; 31.54/17.36 870[label="primModNatS (primMinusNatS Zero Zero) (Succ ww84)",fontsize=16,color="black",shape="box"];870 -> 874[label="",style="solid", color="black", weight=3]; 31.54/17.36 704[label="ww750",fontsize=16,color="green",shape="box"];705[label="ww760",fontsize=16,color="green",shape="box"];706 -> 834[label="",style="dashed", color="red", weight=0]; 31.54/17.36 706[label="primModNatS (primMinusNatS (Succ ww73) (Succ (Succ ww74))) (Succ (Succ (Succ ww74)))",fontsize=16,color="magenta"];706 -> 847[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 706 -> 848[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 706 -> 849[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 707[label="Succ (Succ ww73)",fontsize=16,color="green",shape="box"];871 -> 834[label="",style="dashed", color="red", weight=0]; 31.54/17.36 871[label="primModNatS (primMinusNatS ww820 ww830) (Succ ww84)",fontsize=16,color="magenta"];871 -> 875[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 871 -> 876[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 872 -> 89[label="",style="dashed", color="red", weight=0]; 31.54/17.36 872[label="primModNatS (Succ ww820) (Succ ww84)",fontsize=16,color="magenta"];872 -> 877[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 872 -> 878[label="",style="dashed", color="magenta", weight=3]; 31.54/17.36 873[label="primModNatS Zero (Succ ww84)",fontsize=16,color="black",shape="triangle"];873 -> 879[label="",style="solid", color="black", weight=3]; 31.54/17.36 874 -> 873[label="",style="dashed", color="red", weight=0]; 31.54/17.36 874[label="primModNatS Zero (Succ ww84)",fontsize=16,color="magenta"];847[label="Succ (Succ ww74)",fontsize=16,color="green",shape="box"];848[label="Succ (Succ ww74)",fontsize=16,color="green",shape="box"];849[label="Succ ww73",fontsize=16,color="green",shape="box"];875[label="ww830",fontsize=16,color="green",shape="box"];876[label="ww820",fontsize=16,color="green",shape="box"];877[label="ww84",fontsize=16,color="green",shape="box"];878[label="ww820",fontsize=16,color="green",shape="box"];879[label="Zero",fontsize=16,color="green",shape="box"];} 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (6) 31.54/17.36 Complex Obligation (AND) 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (7) 31.54/17.36 Obligation: 31.54/17.36 Q DP problem: 31.54/17.36 The TRS P consists of the following rules: 31.54/17.36 31.54/17.36 new_primModNatS0(ww73, ww74, Main.Zero, Main.Zero) -> new_primModNatS00(ww73, ww74) 31.54/17.36 new_primModNatS1(Main.Succ(Main.Succ(ww2300)), Main.Succ(Main.Succ(ww2400))) -> new_primModNatS0(Main.Succ(ww2300), ww2400, ww2300, ww2400) 31.54/17.36 new_primModNatS1(Main.Succ(Main.Zero), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Zero), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 31.54/17.36 new_primModNatS0(ww73, ww74, Main.Succ(ww750), Main.Succ(ww760)) -> new_primModNatS0(ww73, ww74, ww750, ww760) 31.54/17.36 new_primModNatS(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primModNatS(ww820, ww830, ww84) 31.54/17.36 new_primModNatS(Main.Succ(ww820), Main.Zero, ww84) -> new_primModNatS1(ww820, ww84) 31.54/17.36 new_primModNatS0(ww73, ww74, Main.Succ(ww750), Main.Zero) -> new_primModNatS(Main.Succ(ww73), Main.Succ(Main.Succ(ww74)), Main.Succ(Main.Succ(ww74))) 31.54/17.36 new_primModNatS1(Main.Succ(Main.Succ(ww2300)), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Succ(ww2300)), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 31.54/17.36 new_primModNatS00(ww73, ww74) -> new_primModNatS(Main.Succ(ww73), Main.Succ(Main.Succ(ww74)), Main.Succ(Main.Succ(ww74))) 31.54/17.36 31.54/17.36 R is empty. 31.54/17.36 Q is empty. 31.54/17.36 We have to consider all minimal (P,Q,R)-chains. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (8) QDPOrderProof (EQUIVALENT) 31.54/17.36 We use the reduction pair processor [LPAR04,JAR06]. 31.54/17.36 31.54/17.36 31.54/17.36 The following pairs can be oriented strictly and are deleted. 31.54/17.36 31.54/17.36 new_primModNatS(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primModNatS(ww820, ww830, ww84) 31.54/17.36 new_primModNatS(Main.Succ(ww820), Main.Zero, ww84) -> new_primModNatS1(ww820, ww84) 31.54/17.36 The remaining pairs can at least be oriented weakly. 31.54/17.36 Used ordering: Polynomial interpretation [POLO]: 31.54/17.36 31.54/17.36 POL(Main.Succ(x_1)) = 1 + x_1 31.54/17.36 POL(Main.Zero) = 0 31.54/17.36 POL(new_primModNatS(x_1, x_2, x_3)) = x_1 31.54/17.36 POL(new_primModNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 31.54/17.36 POL(new_primModNatS00(x_1, x_2)) = 1 + x_1 31.54/17.36 POL(new_primModNatS1(x_1, x_2)) = x_1 31.54/17.36 31.54/17.36 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 31.54/17.36 none 31.54/17.36 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (9) 31.54/17.36 Obligation: 31.54/17.36 Q DP problem: 31.54/17.36 The TRS P consists of the following rules: 31.54/17.36 31.54/17.36 new_primModNatS0(ww73, ww74, Main.Zero, Main.Zero) -> new_primModNatS00(ww73, ww74) 31.54/17.36 new_primModNatS1(Main.Succ(Main.Succ(ww2300)), Main.Succ(Main.Succ(ww2400))) -> new_primModNatS0(Main.Succ(ww2300), ww2400, ww2300, ww2400) 31.54/17.36 new_primModNatS1(Main.Succ(Main.Zero), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Zero), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 31.54/17.36 new_primModNatS0(ww73, ww74, Main.Succ(ww750), Main.Succ(ww760)) -> new_primModNatS0(ww73, ww74, ww750, ww760) 31.54/17.36 new_primModNatS0(ww73, ww74, Main.Succ(ww750), Main.Zero) -> new_primModNatS(Main.Succ(ww73), Main.Succ(Main.Succ(ww74)), Main.Succ(Main.Succ(ww74))) 31.54/17.36 new_primModNatS1(Main.Succ(Main.Succ(ww2300)), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Succ(ww2300)), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 31.54/17.36 new_primModNatS00(ww73, ww74) -> new_primModNatS(Main.Succ(ww73), Main.Succ(Main.Succ(ww74)), Main.Succ(Main.Succ(ww74))) 31.54/17.36 31.54/17.36 R is empty. 31.54/17.36 Q is empty. 31.54/17.36 We have to consider all minimal (P,Q,R)-chains. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (10) DependencyGraphProof (EQUIVALENT) 31.54/17.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 6 less nodes. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (11) 31.54/17.36 Obligation: 31.54/17.36 Q DP problem: 31.54/17.36 The TRS P consists of the following rules: 31.54/17.36 31.54/17.36 new_primModNatS0(ww73, ww74, Main.Succ(ww750), Main.Succ(ww760)) -> new_primModNatS0(ww73, ww74, ww750, ww760) 31.54/17.36 31.54/17.36 R is empty. 31.54/17.36 Q is empty. 31.54/17.36 We have to consider all minimal (P,Q,R)-chains. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (12) QDPSizeChangeProof (EQUIVALENT) 31.54/17.36 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. 31.54/17.36 31.54/17.36 From the DPs we obtained the following set of size-change graphs: 31.54/17.36 *new_primModNatS0(ww73, ww74, Main.Succ(ww750), Main.Succ(ww760)) -> new_primModNatS0(ww73, ww74, ww750, ww760) 31.54/17.36 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 31.54/17.36 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (13) 31.54/17.36 YES 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (14) 31.54/17.36 Obligation: 31.54/17.36 Q DP problem: 31.54/17.36 The TRS P consists of the following rules: 31.54/17.36 31.54/17.36 new_primDivNatS(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS(ww780, ww790, ww80) 31.54/17.36 new_primDivNatS1(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS0(ww260, ww270, ww260, ww270) 31.54/17.36 new_primDivNatS0(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS0(ww68, ww69, ww700, ww710) 31.54/17.36 new_primDivNatS1(Main.Zero, Main.Zero) -> new_primDivNatS(Main.Zero, Main.Zero, Main.Zero) 31.54/17.36 new_primDivNatS00(ww68, ww69) -> new_primDivNatS(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69)) 31.54/17.36 new_primDivNatS(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS1(ww780, ww80) 31.54/17.36 new_primDivNatS1(Main.Succ(ww260), Main.Zero) -> new_primDivNatS(Main.Succ(ww260), Main.Zero, Main.Zero) 31.54/17.36 new_primDivNatS0(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69)) 31.54/17.36 new_primDivNatS0(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS00(ww68, ww69) 31.54/17.36 31.54/17.36 R is empty. 31.54/17.36 Q is empty. 31.54/17.36 We have to consider all minimal (P,Q,R)-chains. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (15) DependencyGraphProof (EQUIVALENT) 31.54/17.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (16) 31.54/17.36 Obligation: 31.54/17.36 Q DP problem: 31.54/17.36 The TRS P consists of the following rules: 31.54/17.36 31.54/17.36 new_primDivNatS(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS1(ww780, ww80) 31.54/17.36 new_primDivNatS1(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS0(ww260, ww270, ww260, ww270) 31.54/17.36 new_primDivNatS0(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS0(ww68, ww69, ww700, ww710) 31.54/17.36 new_primDivNatS0(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69)) 31.54/17.36 new_primDivNatS(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS(ww780, ww790, ww80) 31.54/17.36 new_primDivNatS0(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS00(ww68, ww69) 31.54/17.36 new_primDivNatS00(ww68, ww69) -> new_primDivNatS(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69)) 31.54/17.36 new_primDivNatS1(Main.Succ(ww260), Main.Zero) -> new_primDivNatS(Main.Succ(ww260), Main.Zero, Main.Zero) 31.54/17.36 31.54/17.36 R is empty. 31.54/17.36 Q is empty. 31.54/17.36 We have to consider all minimal (P,Q,R)-chains. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (17) QDPOrderProof (EQUIVALENT) 31.54/17.36 We use the reduction pair processor [LPAR04,JAR06]. 31.54/17.36 31.54/17.36 31.54/17.36 The following pairs can be oriented strictly and are deleted. 31.54/17.36 31.54/17.36 new_primDivNatS(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS1(ww780, ww80) 31.54/17.36 new_primDivNatS(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS(ww780, ww790, ww80) 31.54/17.36 The remaining pairs can at least be oriented weakly. 31.54/17.36 Used ordering: Polynomial interpretation [POLO]: 31.54/17.36 31.54/17.36 POL(Main.Succ(x_1)) = 1 + x_1 31.54/17.36 POL(Main.Zero) = 0 31.54/17.36 POL(new_primDivNatS(x_1, x_2, x_3)) = x_1 31.54/17.36 POL(new_primDivNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 31.54/17.36 POL(new_primDivNatS00(x_1, x_2)) = 1 + x_1 31.54/17.36 POL(new_primDivNatS1(x_1, x_2)) = x_1 31.54/17.36 31.54/17.36 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 31.54/17.36 none 31.54/17.36 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (18) 31.54/17.36 Obligation: 31.54/17.36 Q DP problem: 31.54/17.36 The TRS P consists of the following rules: 31.54/17.36 31.54/17.36 new_primDivNatS1(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS0(ww260, ww270, ww260, ww270) 31.54/17.36 new_primDivNatS0(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS0(ww68, ww69, ww700, ww710) 31.54/17.36 new_primDivNatS0(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69)) 31.54/17.36 new_primDivNatS0(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS00(ww68, ww69) 31.54/17.36 new_primDivNatS00(ww68, ww69) -> new_primDivNatS(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69)) 31.54/17.36 new_primDivNatS1(Main.Succ(ww260), Main.Zero) -> new_primDivNatS(Main.Succ(ww260), Main.Zero, Main.Zero) 31.54/17.36 31.54/17.36 R is empty. 31.54/17.36 Q is empty. 31.54/17.36 We have to consider all minimal (P,Q,R)-chains. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (19) DependencyGraphProof (EQUIVALENT) 31.54/17.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 5 less nodes. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (20) 31.54/17.36 Obligation: 31.54/17.36 Q DP problem: 31.54/17.36 The TRS P consists of the following rules: 31.54/17.36 31.54/17.36 new_primDivNatS0(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS0(ww68, ww69, ww700, ww710) 31.54/17.36 31.54/17.36 R is empty. 31.54/17.36 Q is empty. 31.54/17.36 We have to consider all minimal (P,Q,R)-chains. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (21) QDPSizeChangeProof (EQUIVALENT) 31.54/17.36 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. 31.54/17.36 31.54/17.36 From the DPs we obtained the following set of size-change graphs: 31.54/17.36 *new_primDivNatS0(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS0(ww68, ww69, ww700, ww710) 31.54/17.36 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 31.54/17.36 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (22) 31.54/17.36 YES 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (23) 31.54/17.36 Obligation: 31.54/17.36 Q DP problem: 31.54/17.36 The TRS P consists of the following rules: 31.54/17.36 31.54/17.36 new_psPs(Cons(ww210, ww211), ww20) -> new_psPs(ww211, ww20) 31.54/17.36 31.54/17.36 R is empty. 31.54/17.36 Q is empty. 31.54/17.36 We have to consider all minimal (P,Q,R)-chains. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (24) QDPSizeChangeProof (EQUIVALENT) 31.54/17.36 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. 31.54/17.36 31.54/17.36 From the DPs we obtained the following set of size-change graphs: 31.54/17.36 *new_psPs(Cons(ww210, ww211), ww20) -> new_psPs(ww211, ww20) 31.54/17.36 The graph contains the following edges 1 > 1, 2 >= 2 31.54/17.36 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (25) 31.54/17.36 YES 31.54/17.36 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (26) 31.54/17.36 Obligation: 31.54/17.36 Q DP problem: 31.54/17.36 The TRS P consists of the following rules: 31.54/17.36 31.54/17.36 new_primShowInt(Main.Neg(ww30)) -> new_primShowInt(Main.Pos(ww30)) 31.54/17.36 new_primShowInt(Main.Pos(Main.Succ(ww300))) -> new_primShowInt(new_divMyInt(ww300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 31.54/17.36 31.54/17.36 The TRS R consists of the following rules: 31.54/17.36 31.54/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.54/17.36 new_divMyInt(ww26, ww27) -> Main.Pos(new_primDivNatS2(ww26, ww27)) 31.54/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.54/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.54/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.54/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.54/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.54/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.54/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.54/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.54/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.54/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.54/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.54/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.54/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.54/17.36 31.54/17.36 The set Q consists of the following terms: 31.54/17.36 31.54/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.54/17.36 new_primDivNatS02(x0, x1) 31.54/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.54/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.54/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.54/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.54/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.54/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.54/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.54/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.54/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.54/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.54/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.54/17.36 new_primDivNatS3(x0) 31.54/17.36 new_divMyInt(x0, x1) 31.54/17.36 31.54/17.36 We have to consider all minimal (P,Q,R)-chains. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (27) DependencyGraphProof (EQUIVALENT) 31.54/17.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 31.54/17.36 ---------------------------------------- 31.54/17.36 31.54/17.36 (28) 31.54/17.36 Obligation: 31.54/17.36 Q DP problem: 31.54/17.36 The TRS P consists of the following rules: 31.54/17.36 31.54/17.36 new_primShowInt(Main.Pos(Main.Succ(ww300))) -> new_primShowInt(new_divMyInt(ww300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 31.54/17.36 31.54/17.36 The TRS R consists of the following rules: 31.54/17.36 31.54/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.54/17.36 new_divMyInt(ww26, ww27) -> Main.Pos(new_primDivNatS2(ww26, ww27)) 31.54/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.54/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.54/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.54/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.54/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.54/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.54/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.54/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.54/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 new_divMyInt(x0, x1) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (29) TransformationProof (EQUIVALENT) 31.87/17.36 By rewriting [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(ww300))) -> new_primShowInt(new_divMyInt(ww300, 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]: 31.87/17.36 31.87/17.36 (new_primShowInt(Main.Pos(Main.Succ(ww300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww300, 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(ww300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (30) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(ww300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_divMyInt(ww26, ww27) -> Main.Pos(new_primDivNatS2(ww26, ww27)) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 new_divMyInt(x0, x1) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (31) UsableRulesProof (EQUIVALENT) 31.87/17.36 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. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (32) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(ww300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 new_divMyInt(x0, x1) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (33) QReductionProof (EQUIVALENT) 31.87/17.36 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 31.87/17.36 31.87/17.36 new_divMyInt(x0, x1) 31.87/17.36 31.87/17.36 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (34) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(ww300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (35) MNOCProof (EQUIVALENT) 31.87/17.36 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (36) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(ww300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 Q is empty. 31.87/17.36 We have to consider all (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (37) InductionCalculusProof (EQUIVALENT) 31.87/17.36 Note that final constraints are written in bold face. 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 For Pair new_primShowInt(Main.Pos(Main.Succ(ww300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww300, 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: 31.87/17.36 *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: 31.87/17.36 31.87/17.36 (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))))))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: 31.87/17.36 31.87/17.36 (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))))))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 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: 31.87/17.36 31.87/17.36 (3) (new_primDivNatS01(x4, x3, x4, x3)=Main.Succ(x1) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))=Main.Succ(x3) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x4))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x4), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 31.87/17.36 31.87/17.36 (4) (Main.Succ(new_primDivNatS4(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))))))))))))) 31.87/17.36 31.87/17.36 (5) (Main.Succ(new_primDivNatS4(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))))))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: 31.87/17.36 31.87/17.36 (6) (x4=x7 & x3=x8 & new_primDivNatS01(x4, x3, x7, x8)=Main.Succ(x1) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x3 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x4))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x4), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 We solved constraint (4) using rules (I), (II).We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS01(x4, x3, x7, x8)=Main.Succ(x1) which results in the following new constraints: 31.87/17.36 31.87/17.36 (7) (new_primDivNatS01(x12, x11, x10, x9)=Main.Succ(x1) & x12=Main.Succ(x10) & x11=Main.Succ(x9) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x11 & (\/x13:new_primDivNatS01(x12, x11, x10, x9)=Main.Succ(x13) & x12=x10 & x11=x9 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x11 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x12))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x12), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x12))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x12), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 31.87/17.36 31.87/17.36 (8) (new_primDivNatS02(x15, x14)=Main.Succ(x1) & x15=Main.Zero & x14=Main.Zero & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x14 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x15))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x15), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 31.87/17.36 31.87/17.36 (9) (new_primDivNatS02(x21, x20)=Main.Succ(x1) & x21=Main.Succ(x19) & x20=Main.Zero & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x20 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x21))))_>=_new_primShowInt(Main.Pos(new_primDivNatS2(Main.Succ(x21), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: 31.87/17.36 31.87/17.36 (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))))))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 We solved constraint (8) using rules (I), (II), (III).We solved constraint (9) using rules (I), (II), (III). 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 To summarize, we get the following constraints P__>=_ for the following pairs. 31.87/17.36 31.87/17.36 *new_primShowInt(Main.Pos(Main.Succ(ww300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 31.87/17.36 31.87/17.36 *(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))))))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 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. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (38) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(ww300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww300, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (39) TransformationProof (EQUIVALENT) 31.87/17.36 By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(ww300))) -> new_primShowInt(Main.Pos(new_primDivNatS2(ww300, 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]: 31.87/17.36 31.87/17.36 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS01(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))),new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS01(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 31.87/17.36 (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))) 31.87/17.36 31.87/17.36 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (40) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS01(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Zero))) -> new_primShowInt(Main.Pos(Main.Zero)) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (41) DependencyGraphProof (EQUIVALENT) 31.87/17.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (42) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS01(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (43) TransformationProof (EQUIVALENT) 31.87/17.36 By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_primShowInt(Main.Pos(new_primDivNatS01(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) at position [0,0] we obtained the following new rules [LPAR04]: 31.87/17.36 31.87/17.36 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(x2), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))),new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(x2), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 31.87/17.36 (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))) 31.87/17.36 31.87/17.36 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (44) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(x2), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))) 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_primShowInt(Main.Pos(Main.Zero)) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (45) DependencyGraphProof (EQUIVALENT) 31.87/17.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (46) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(x2), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (47) TransformationProof (EQUIVALENT) 31.87/17.36 By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(x2), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))) at position [0,0] we obtained the following new rules [LPAR04]: 31.87/17.36 31.87/17.36 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(x2)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))),new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(x2)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))) 31.87/17.36 (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))) 31.87/17.36 31.87/17.36 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (48) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(x2)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_primShowInt(Main.Pos(Main.Zero)) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (49) DependencyGraphProof (EQUIVALENT) 31.87/17.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (50) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(x2)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (51) TransformationProof (EQUIVALENT) 31.87/17.36 By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(x2)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) at position [0,0] we obtained the following new rules [LPAR04]: 31.87/17.36 31.87/17.36 (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))),new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 (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))) 31.87/17.36 31.87/17.36 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (52) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) -> new_primShowInt(Main.Pos(Main.Zero)) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (53) DependencyGraphProof (EQUIVALENT) 31.87/17.36 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (54) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (55) MNOCProof (EQUIVALENT) 31.87/17.36 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (56) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 Q is empty. 31.87/17.36 We have to consider all (P,Q,R)-chains. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (57) InductionCalculusProof (EQUIVALENT) 31.87/17.36 Note that final constraints are written in bold face. 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 For Pair new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) the following chains were created: 31.87/17.36 *We consider the chain new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x1, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) which results in the following constraint: 31.87/17.36 31.87/17.36 (1) (new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))))) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: 31.87/17.36 31.87/17.36 (2) (Main.Succ(Main.Succ(Main.Succ(x0)))=x2 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x3 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))=x4 & new_primDivNatS01(x2, x3, x0, x4)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS01(x2, x3, x0, x4)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) which results in the following new constraints: 31.87/17.36 31.87/17.36 (3) (new_primDivNatS01(x8, x7, x6, x5)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6))))=x8 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x7 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))=Main.Succ(x5) & (\/x9:new_primDivNatS01(x8, x7, x6, x5)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x9))))) & Main.Succ(Main.Succ(Main.Succ(x6)))=x8 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x7 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))=x5 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6)))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x6))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x6, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6)))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(x6), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 31.87/17.36 (4) (new_primDivNatS02(x11, x10)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Zero)))=x11 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x10 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Zero, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 31.87/17.36 (5) (new_primDivNatS02(x17, x16)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(x15))))=x17 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x16 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x15))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x15)))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(x15), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: 31.87/17.36 31.87/17.36 (6) (new_primDivNatS01(x8, x7, x6, x5)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6))))=x8 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x7 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))=x5 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x6)))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(x6), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 We solved constraint (4) using rules (I), (II).We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS01(x8, x7, x6, x5)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) which results in the following new constraints: 31.87/17.36 31.87/17.36 (7) (new_primDivNatS01(x21, x20, x19, x18)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19)))))=x21 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x20 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))=Main.Succ(x18) & (\/x22:new_primDivNatS01(x21, x20, x19, x18)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x22))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19))))=x21 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x20 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))=x18 ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19)))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(x19), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19)))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19))))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(Main.Succ(x19)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 31.87/17.36 (8) (new_primDivNatS02(x24, x23)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))=x24 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x23 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(Main.Zero), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 31.87/17.36 (9) (new_primDivNatS02(x30, x29)=Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x28)))))=x30 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))=x29 & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x28)))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x28))))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(Main.Succ(x28)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 We simplified constraint (7) using rules (I), (II), (III), (IV) which results in the following new constraint: 31.87/17.36 31.87/17.36 (10) (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19)))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19))))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(Main.Succ(x19)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 We solved constraint (8) using rules (I), (II).We solved constraint (9) using rules (I), (II). 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 To summarize, we get the following constraints P__>=_ for the following pairs. 31.87/17.36 31.87/17.36 *new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) 31.87/17.36 31.87/17.36 *(new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19)))))))))_>=_new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x19))))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), Main.Succ(Main.Succ(x19)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))) 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 31.87/17.36 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. 31.87/17.36 ---------------------------------------- 31.87/17.36 31.87/17.36 (58) 31.87/17.36 Obligation: 31.87/17.36 Q DP problem: 31.87/17.36 The TRS P consists of the following rules: 31.87/17.36 31.87/17.36 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))))) -> new_primShowInt(Main.Pos(new_primDivNatS01(Main.Succ(Main.Succ(Main.Succ(x2))), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))), x2, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))) 31.87/17.36 31.87/17.36 The TRS R consists of the following rules: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Succ(ww270)) -> new_primDivNatS01(ww260, ww270, ww260, ww270) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(ww270)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Succ(ww710)) -> new_primDivNatS01(ww68, ww69, ww700, ww710) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Zero, Main.Succ(ww710)) -> Main.Zero 31.87/17.36 new_primDivNatS01(ww68, ww69, Main.Succ(ww700), Main.Zero) -> new_primDivNatS02(ww68, ww69) 31.87/17.36 new_primDivNatS02(ww68, ww69) -> Main.Succ(new_primDivNatS4(Main.Succ(ww68), Main.Succ(ww69), Main.Succ(ww69))) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Succ(ww790), ww80) -> new_primDivNatS4(ww780, ww790, ww80) 31.87/17.36 new_primDivNatS4(Main.Succ(ww780), Main.Zero, ww80) -> new_primDivNatS2(ww780, ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(ww790), ww80) -> new_primDivNatS3(ww80) 31.87/17.36 new_primDivNatS3(ww80) -> Main.Zero 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Zero, Main.Zero, Main.Zero)) 31.87/17.36 new_primDivNatS2(Main.Succ(ww260), Main.Zero) -> Main.Succ(new_primDivNatS4(Main.Succ(ww260), Main.Zero, Main.Zero)) 31.87/17.36 31.87/17.36 The set Q consists of the following terms: 31.87/17.36 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Succ(x0)) 31.87/17.36 new_primDivNatS02(x0, x1) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Zero, x1) 31.87/17.36 new_primDivNatS2(Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Zero) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Zero, x0) 31.87/17.36 new_primDivNatS4(Main.Succ(x0), Main.Succ(x1), x2) 31.87/17.36 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 31.87/17.36 new_primDivNatS4(Main.Zero, Main.Succ(x0), x1) 31.87/17.36 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1)) 31.87/17.36 new_primDivNatS3(x0) 31.87/17.36 31.87/17.36 We have to consider all minimal (P,Q,R)-chains. 31.87/17.37 ---------------------------------------- 31.87/17.37 31.87/17.37 (59) Narrow (COMPLETE) 31.87/17.37 Haskell To QDPs 31.87/17.37 31.87/17.37 digraph dp_graph { 31.87/17.37 node [outthreshold=100, inthreshold=100];1[label="showsMyInt",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 31.87/17.37 3[label="showsMyInt ww3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 31.87/17.37 4[label="showsMyInt ww3 ww4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 31.87/17.37 5[label="showsPrecMyInt (Pos Zero) ww3 ww4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 31.87/17.37 6 -> 36[label="",style="dashed", color="red", weight=0]; 31.87/17.37 6[label="psPs (showMyInt ww3) ww4",fontsize=16,color="magenta"];6 -> 37[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 6 -> 38[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 37[label="ww4",fontsize=16,color="green",shape="box"];38[label="showMyInt ww3",fontsize=16,color="black",shape="box"];38 -> 52[label="",style="solid", color="black", weight=3]; 31.87/17.37 36[label="psPs ww21 ww20",fontsize=16,color="burlywood",shape="triangle"];880[label="ww21/Cons ww210 ww211",fontsize=10,color="white",style="solid",shape="box"];36 -> 880[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 880 -> 53[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 881[label="ww21/Nil",fontsize=10,color="white",style="solid",shape="box"];36 -> 881[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 881 -> 54[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 52[label="primShowInt ww3",fontsize=16,color="burlywood",shape="triangle"];882[label="ww3/Pos ww30",fontsize=10,color="white",style="solid",shape="box"];52 -> 882[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 882 -> 55[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 883[label="ww3/Neg ww30",fontsize=10,color="white",style="solid",shape="box"];52 -> 883[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 883 -> 56[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 53[label="psPs (Cons ww210 ww211) ww20",fontsize=16,color="black",shape="box"];53 -> 57[label="",style="solid", color="black", weight=3]; 31.87/17.37 54[label="psPs Nil ww20",fontsize=16,color="black",shape="box"];54 -> 58[label="",style="solid", color="black", weight=3]; 31.87/17.37 55[label="primShowInt (Pos ww30)",fontsize=16,color="burlywood",shape="box"];884[label="ww30/Succ ww300",fontsize=10,color="white",style="solid",shape="box"];55 -> 884[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 884 -> 59[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 885[label="ww30/Zero",fontsize=10,color="white",style="solid",shape="box"];55 -> 885[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 885 -> 60[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 56[label="primShowInt (Neg ww30)",fontsize=16,color="black",shape="box"];56 -> 61[label="",style="solid", color="black", weight=3]; 31.87/17.37 57[label="Cons ww210 (psPs ww211 ww20)",fontsize=16,color="green",shape="box"];57 -> 62[label="",style="dashed", color="green", weight=3]; 31.87/17.37 58[label="ww20",fontsize=16,color="green",shape="box"];59[label="primShowInt (Pos (Succ ww300))",fontsize=16,color="black",shape="box"];59 -> 63[label="",style="solid", color="black", weight=3]; 31.87/17.37 60[label="primShowInt (Pos Zero)",fontsize=16,color="black",shape="box"];60 -> 64[label="",style="solid", color="black", weight=3]; 31.87/17.37 61[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 ww30))",fontsize=16,color="green",shape="box"];61 -> 65[label="",style="dashed", color="green", weight=3]; 31.87/17.37 62 -> 36[label="",style="dashed", color="red", weight=0]; 31.87/17.37 62[label="psPs ww211 ww20",fontsize=16,color="magenta"];62 -> 66[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 63 -> 36[label="",style="dashed", color="red", weight=0]; 31.87/17.37 63[label="psPs (primShowInt (divMyInt (Pos (Succ ww300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (Cons (toEnumChar (modMyInt (Pos (Succ ww300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil)",fontsize=16,color="magenta"];63 -> 67[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 63 -> 68[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 64[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"];65 -> 52[label="",style="dashed", color="red", weight=0]; 31.87/17.37 65[label="primShowInt (Pos ww30)",fontsize=16,color="magenta"];65 -> 69[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 66[label="ww211",fontsize=16,color="green",shape="box"];67[label="Cons (toEnumChar (modMyInt (Pos (Succ ww300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil",fontsize=16,color="green",shape="box"];67 -> 70[label="",style="dashed", color="green", weight=3]; 31.87/17.37 68 -> 52[label="",style="dashed", color="red", weight=0]; 31.87/17.37 68[label="primShowInt (divMyInt (Pos (Succ ww300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];68 -> 71[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 69[label="Pos ww30",fontsize=16,color="green",shape="box"];70 -> 72[label="",style="dashed", color="red", weight=0]; 31.87/17.37 70[label="toEnumChar (modMyInt (Pos (Succ ww300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];70 -> 73[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 70 -> 74[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 71 -> 75[label="",style="dashed", color="red", weight=0]; 31.87/17.37 71[label="divMyInt (Pos (Succ ww300)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))",fontsize=16,color="magenta"];71 -> 76[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 71 -> 77[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 73[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];74[label="ww300",fontsize=16,color="green",shape="box"];72[label="toEnumChar (modMyInt (Pos (Succ ww23)) (Pos (Succ ww24)))",fontsize=16,color="black",shape="triangle"];72 -> 78[label="",style="solid", color="black", weight=3]; 31.87/17.37 76[label="ww300",fontsize=16,color="green",shape="box"];77[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];75[label="divMyInt (Pos (Succ ww26)) (Pos (Succ ww27))",fontsize=16,color="black",shape="triangle"];75 -> 79[label="",style="solid", color="black", weight=3]; 31.87/17.37 78[label="primIntToChar (modMyInt (Pos (Succ ww23)) (Pos (Succ ww24)))",fontsize=16,color="black",shape="box"];78 -> 80[label="",style="solid", color="black", weight=3]; 31.87/17.37 79[label="primDivInt (Pos (Succ ww26)) (Pos (Succ ww27))",fontsize=16,color="black",shape="box"];79 -> 81[label="",style="solid", color="black", weight=3]; 31.87/17.37 80[label="Char (modMyInt (Pos (Succ ww23)) (Pos (Succ ww24)))",fontsize=16,color="green",shape="box"];80 -> 82[label="",style="dashed", color="green", weight=3]; 31.87/17.37 81[label="Pos (primDivNatS (Succ ww26) (Succ ww27))",fontsize=16,color="green",shape="box"];81 -> 83[label="",style="dashed", color="green", weight=3]; 31.87/17.37 82[label="modMyInt (Pos (Succ ww23)) (Pos (Succ ww24))",fontsize=16,color="black",shape="box"];82 -> 84[label="",style="solid", color="black", weight=3]; 31.87/17.37 83[label="primDivNatS (Succ ww26) (Succ ww27)",fontsize=16,color="black",shape="triangle"];83 -> 85[label="",style="solid", color="black", weight=3]; 31.87/17.37 84[label="primModInt (Pos (Succ ww23)) (Pos (Succ ww24))",fontsize=16,color="black",shape="box"];84 -> 86[label="",style="solid", color="black", weight=3]; 31.87/17.37 85[label="primDivNatS0 ww26 ww27 (primGEqNatS ww26 ww27)",fontsize=16,color="burlywood",shape="box"];886[label="ww26/Succ ww260",fontsize=10,color="white",style="solid",shape="box"];85 -> 886[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 886 -> 87[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 887[label="ww26/Zero",fontsize=10,color="white",style="solid",shape="box"];85 -> 887[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 887 -> 88[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 86[label="Pos (primModNatS (Succ ww23) (Succ ww24))",fontsize=16,color="green",shape="box"];86 -> 89[label="",style="dashed", color="green", weight=3]; 31.87/17.37 87[label="primDivNatS0 (Succ ww260) ww27 (primGEqNatS (Succ ww260) ww27)",fontsize=16,color="burlywood",shape="box"];888[label="ww27/Succ ww270",fontsize=10,color="white",style="solid",shape="box"];87 -> 888[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 888 -> 90[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 889[label="ww27/Zero",fontsize=10,color="white",style="solid",shape="box"];87 -> 889[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 889 -> 91[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 88[label="primDivNatS0 Zero ww27 (primGEqNatS Zero ww27)",fontsize=16,color="burlywood",shape="box"];890[label="ww27/Succ ww270",fontsize=10,color="white",style="solid",shape="box"];88 -> 890[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 890 -> 92[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 891[label="ww27/Zero",fontsize=10,color="white",style="solid",shape="box"];88 -> 891[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 891 -> 93[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 89[label="primModNatS (Succ ww23) (Succ ww24)",fontsize=16,color="burlywood",shape="triangle"];892[label="ww24/Succ ww240",fontsize=10,color="white",style="solid",shape="box"];89 -> 892[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 892 -> 94[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 893[label="ww24/Zero",fontsize=10,color="white",style="solid",shape="box"];89 -> 893[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 893 -> 95[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 90[label="primDivNatS0 (Succ ww260) (Succ ww270) (primGEqNatS (Succ ww260) (Succ ww270))",fontsize=16,color="black",shape="box"];90 -> 96[label="",style="solid", color="black", weight=3]; 31.87/17.37 91[label="primDivNatS0 (Succ ww260) Zero (primGEqNatS (Succ ww260) Zero)",fontsize=16,color="black",shape="box"];91 -> 97[label="",style="solid", color="black", weight=3]; 31.87/17.37 92[label="primDivNatS0 Zero (Succ ww270) (primGEqNatS Zero (Succ ww270))",fontsize=16,color="black",shape="box"];92 -> 98[label="",style="solid", color="black", weight=3]; 31.87/17.37 93[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];93 -> 99[label="",style="solid", color="black", weight=3]; 31.87/17.37 94[label="primModNatS (Succ ww23) (Succ (Succ ww240))",fontsize=16,color="black",shape="box"];94 -> 100[label="",style="solid", color="black", weight=3]; 31.87/17.37 95[label="primModNatS (Succ ww23) (Succ Zero)",fontsize=16,color="black",shape="box"];95 -> 101[label="",style="solid", color="black", weight=3]; 31.87/17.37 96 -> 546[label="",style="dashed", color="red", weight=0]; 31.87/17.37 96[label="primDivNatS0 (Succ ww260) (Succ ww270) (primGEqNatS ww260 ww270)",fontsize=16,color="magenta"];96 -> 547[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 96 -> 548[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 96 -> 549[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 96 -> 550[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 97[label="primDivNatS0 (Succ ww260) Zero MyTrue",fontsize=16,color="black",shape="box"];97 -> 104[label="",style="solid", color="black", weight=3]; 31.87/17.37 98[label="primDivNatS0 Zero (Succ ww270) MyFalse",fontsize=16,color="black",shape="box"];98 -> 105[label="",style="solid", color="black", weight=3]; 31.87/17.37 99[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];99 -> 106[label="",style="solid", color="black", weight=3]; 31.87/17.37 100[label="primModNatS0 ww23 ww240 (primGEqNatS ww23 (Succ ww240))",fontsize=16,color="burlywood",shape="box"];894[label="ww23/Succ ww230",fontsize=10,color="white",style="solid",shape="box"];100 -> 894[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 894 -> 107[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 895[label="ww23/Zero",fontsize=10,color="white",style="solid",shape="box"];100 -> 895[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 895 -> 108[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 101[label="Zero",fontsize=16,color="green",shape="box"];547[label="ww270",fontsize=16,color="green",shape="box"];548[label="ww260",fontsize=16,color="green",shape="box"];549[label="ww260",fontsize=16,color="green",shape="box"];550[label="ww270",fontsize=16,color="green",shape="box"];546[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS ww70 ww71)",fontsize=16,color="burlywood",shape="triangle"];896[label="ww70/Succ ww700",fontsize=10,color="white",style="solid",shape="box"];546 -> 896[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 896 -> 587[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 897[label="ww70/Zero",fontsize=10,color="white",style="solid",shape="box"];546 -> 897[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 897 -> 588[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 104[label="Succ (primDivNatS (primMinusNatS (Succ ww260) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];104 -> 113[label="",style="dashed", color="green", weight=3]; 31.87/17.37 105[label="Zero",fontsize=16,color="green",shape="box"];106[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];106 -> 114[label="",style="dashed", color="green", weight=3]; 31.87/17.37 107[label="primModNatS0 (Succ ww230) ww240 (primGEqNatS (Succ ww230) (Succ ww240))",fontsize=16,color="black",shape="box"];107 -> 115[label="",style="solid", color="black", weight=3]; 31.87/17.37 108[label="primModNatS0 Zero ww240 (primGEqNatS Zero (Succ ww240))",fontsize=16,color="black",shape="box"];108 -> 116[label="",style="solid", color="black", weight=3]; 31.87/17.37 587[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS (Succ ww700) ww71)",fontsize=16,color="burlywood",shape="box"];898[label="ww71/Succ ww710",fontsize=10,color="white",style="solid",shape="box"];587 -> 898[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 898 -> 594[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 899[label="ww71/Zero",fontsize=10,color="white",style="solid",shape="box"];587 -> 899[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 899 -> 595[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 588[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS Zero ww71)",fontsize=16,color="burlywood",shape="box"];900[label="ww71/Succ ww710",fontsize=10,color="white",style="solid",shape="box"];588 -> 900[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 900 -> 596[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 901[label="ww71/Zero",fontsize=10,color="white",style="solid",shape="box"];588 -> 901[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 901 -> 597[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 113 -> 780[label="",style="dashed", color="red", weight=0]; 31.87/17.37 113[label="primDivNatS (primMinusNatS (Succ ww260) Zero) (Succ Zero)",fontsize=16,color="magenta"];113 -> 781[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 113 -> 782[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 113 -> 783[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 114 -> 780[label="",style="dashed", color="red", weight=0]; 31.87/17.37 114[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];114 -> 784[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 114 -> 785[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 114 -> 786[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 115[label="primModNatS0 (Succ ww230) ww240 (primGEqNatS ww230 ww240)",fontsize=16,color="burlywood",shape="box"];902[label="ww230/Succ ww2300",fontsize=10,color="white",style="solid",shape="box"];115 -> 902[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 902 -> 123[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 903[label="ww230/Zero",fontsize=10,color="white",style="solid",shape="box"];115 -> 903[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 903 -> 124[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 116[label="primModNatS0 Zero ww240 MyFalse",fontsize=16,color="black",shape="box"];116 -> 125[label="",style="solid", color="black", weight=3]; 31.87/17.37 594[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS (Succ ww700) (Succ ww710))",fontsize=16,color="black",shape="box"];594 -> 604[label="",style="solid", color="black", weight=3]; 31.87/17.37 595[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS (Succ ww700) Zero)",fontsize=16,color="black",shape="box"];595 -> 605[label="",style="solid", color="black", weight=3]; 31.87/17.37 596[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS Zero (Succ ww710))",fontsize=16,color="black",shape="box"];596 -> 606[label="",style="solid", color="black", weight=3]; 31.87/17.37 597[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];597 -> 607[label="",style="solid", color="black", weight=3]; 31.87/17.37 781[label="Succ ww260",fontsize=16,color="green",shape="box"];782[label="Zero",fontsize=16,color="green",shape="box"];783[label="Zero",fontsize=16,color="green",shape="box"];780[label="primDivNatS (primMinusNatS ww78 ww79) (Succ ww80)",fontsize=16,color="burlywood",shape="triangle"];904[label="ww78/Succ ww780",fontsize=10,color="white",style="solid",shape="box"];780 -> 904[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 904 -> 805[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 905[label="ww78/Zero",fontsize=10,color="white",style="solid",shape="box"];780 -> 905[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 905 -> 806[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 784[label="Zero",fontsize=16,color="green",shape="box"];785[label="Zero",fontsize=16,color="green",shape="box"];786[label="Zero",fontsize=16,color="green",shape="box"];123[label="primModNatS0 (Succ (Succ ww2300)) ww240 (primGEqNatS (Succ ww2300) ww240)",fontsize=16,color="burlywood",shape="box"];906[label="ww240/Succ ww2400",fontsize=10,color="white",style="solid",shape="box"];123 -> 906[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 906 -> 134[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 907[label="ww240/Zero",fontsize=10,color="white",style="solid",shape="box"];123 -> 907[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 907 -> 135[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 124[label="primModNatS0 (Succ Zero) ww240 (primGEqNatS Zero ww240)",fontsize=16,color="burlywood",shape="box"];908[label="ww240/Succ ww2400",fontsize=10,color="white",style="solid",shape="box"];124 -> 908[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 908 -> 136[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 909[label="ww240/Zero",fontsize=10,color="white",style="solid",shape="box"];124 -> 909[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 909 -> 137[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 125[label="Succ Zero",fontsize=16,color="green",shape="box"];604 -> 546[label="",style="dashed", color="red", weight=0]; 31.87/17.37 604[label="primDivNatS0 (Succ ww68) (Succ ww69) (primGEqNatS ww700 ww710)",fontsize=16,color="magenta"];604 -> 618[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 604 -> 619[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 605[label="primDivNatS0 (Succ ww68) (Succ ww69) MyTrue",fontsize=16,color="black",shape="triangle"];605 -> 620[label="",style="solid", color="black", weight=3]; 31.87/17.37 606[label="primDivNatS0 (Succ ww68) (Succ ww69) MyFalse",fontsize=16,color="black",shape="box"];606 -> 621[label="",style="solid", color="black", weight=3]; 31.87/17.37 607 -> 605[label="",style="dashed", color="red", weight=0]; 31.87/17.37 607[label="primDivNatS0 (Succ ww68) (Succ ww69) MyTrue",fontsize=16,color="magenta"];805[label="primDivNatS (primMinusNatS (Succ ww780) ww79) (Succ ww80)",fontsize=16,color="burlywood",shape="box"];910[label="ww79/Succ ww790",fontsize=10,color="white",style="solid",shape="box"];805 -> 910[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 910 -> 813[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 911[label="ww79/Zero",fontsize=10,color="white",style="solid",shape="box"];805 -> 911[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 911 -> 814[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 806[label="primDivNatS (primMinusNatS Zero ww79) (Succ ww80)",fontsize=16,color="burlywood",shape="box"];912[label="ww79/Succ ww790",fontsize=10,color="white",style="solid",shape="box"];806 -> 912[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 912 -> 815[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 913[label="ww79/Zero",fontsize=10,color="white",style="solid",shape="box"];806 -> 913[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 913 -> 816[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 134[label="primModNatS0 (Succ (Succ ww2300)) (Succ ww2400) (primGEqNatS (Succ ww2300) (Succ ww2400))",fontsize=16,color="black",shape="box"];134 -> 144[label="",style="solid", color="black", weight=3]; 31.87/17.37 135[label="primModNatS0 (Succ (Succ ww2300)) Zero (primGEqNatS (Succ ww2300) Zero)",fontsize=16,color="black",shape="box"];135 -> 145[label="",style="solid", color="black", weight=3]; 31.87/17.37 136[label="primModNatS0 (Succ Zero) (Succ ww2400) (primGEqNatS Zero (Succ ww2400))",fontsize=16,color="black",shape="box"];136 -> 146[label="",style="solid", color="black", weight=3]; 31.87/17.37 137[label="primModNatS0 (Succ Zero) Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];137 -> 147[label="",style="solid", color="black", weight=3]; 31.87/17.37 618[label="ww710",fontsize=16,color="green",shape="box"];619[label="ww700",fontsize=16,color="green",shape="box"];620[label="Succ (primDivNatS (primMinusNatS (Succ ww68) (Succ ww69)) (Succ (Succ ww69)))",fontsize=16,color="green",shape="box"];620 -> 629[label="",style="dashed", color="green", weight=3]; 31.87/17.37 621[label="Zero",fontsize=16,color="green",shape="box"];813[label="primDivNatS (primMinusNatS (Succ ww780) (Succ ww790)) (Succ ww80)",fontsize=16,color="black",shape="box"];813 -> 821[label="",style="solid", color="black", weight=3]; 31.87/17.37 814[label="primDivNatS (primMinusNatS (Succ ww780) Zero) (Succ ww80)",fontsize=16,color="black",shape="box"];814 -> 822[label="",style="solid", color="black", weight=3]; 31.87/17.37 815[label="primDivNatS (primMinusNatS Zero (Succ ww790)) (Succ ww80)",fontsize=16,color="black",shape="box"];815 -> 823[label="",style="solid", color="black", weight=3]; 31.87/17.37 816[label="primDivNatS (primMinusNatS Zero Zero) (Succ ww80)",fontsize=16,color="black",shape="box"];816 -> 824[label="",style="solid", color="black", weight=3]; 31.87/17.37 144 -> 643[label="",style="dashed", color="red", weight=0]; 31.87/17.37 144[label="primModNatS0 (Succ (Succ ww2300)) (Succ ww2400) (primGEqNatS ww2300 ww2400)",fontsize=16,color="magenta"];144 -> 644[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 144 -> 645[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 144 -> 646[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 144 -> 647[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 145[label="primModNatS0 (Succ (Succ ww2300)) Zero MyTrue",fontsize=16,color="black",shape="box"];145 -> 156[label="",style="solid", color="black", weight=3]; 31.87/17.37 146[label="primModNatS0 (Succ Zero) (Succ ww2400) MyFalse",fontsize=16,color="black",shape="box"];146 -> 157[label="",style="solid", color="black", weight=3]; 31.87/17.37 147[label="primModNatS0 (Succ Zero) Zero MyTrue",fontsize=16,color="black",shape="box"];147 -> 158[label="",style="solid", color="black", weight=3]; 31.87/17.37 629 -> 780[label="",style="dashed", color="red", weight=0]; 31.87/17.37 629[label="primDivNatS (primMinusNatS (Succ ww68) (Succ ww69)) (Succ (Succ ww69))",fontsize=16,color="magenta"];629 -> 787[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 629 -> 788[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 629 -> 789[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 821 -> 780[label="",style="dashed", color="red", weight=0]; 31.87/17.37 821[label="primDivNatS (primMinusNatS ww780 ww790) (Succ ww80)",fontsize=16,color="magenta"];821 -> 829[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 821 -> 830[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 822 -> 83[label="",style="dashed", color="red", weight=0]; 31.87/17.37 822[label="primDivNatS (Succ ww780) (Succ ww80)",fontsize=16,color="magenta"];822 -> 831[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 822 -> 832[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 823[label="primDivNatS Zero (Succ ww80)",fontsize=16,color="black",shape="triangle"];823 -> 833[label="",style="solid", color="black", weight=3]; 31.87/17.37 824 -> 823[label="",style="dashed", color="red", weight=0]; 31.87/17.37 824[label="primDivNatS Zero (Succ ww80)",fontsize=16,color="magenta"];644[label="ww2400",fontsize=16,color="green",shape="box"];645[label="ww2300",fontsize=16,color="green",shape="box"];646[label="ww2400",fontsize=16,color="green",shape="box"];647[label="Succ ww2300",fontsize=16,color="green",shape="box"];643[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS ww75 ww76)",fontsize=16,color="burlywood",shape="triangle"];914[label="ww75/Succ ww750",fontsize=10,color="white",style="solid",shape="box"];643 -> 914[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 914 -> 684[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 915[label="ww75/Zero",fontsize=10,color="white",style="solid",shape="box"];643 -> 915[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 915 -> 685[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 156 -> 834[label="",style="dashed", color="red", weight=0]; 31.87/17.37 156[label="primModNatS (primMinusNatS (Succ (Succ ww2300)) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];156 -> 835[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 156 -> 836[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 156 -> 837[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 157[label="Succ (Succ Zero)",fontsize=16,color="green",shape="box"];158 -> 834[label="",style="dashed", color="red", weight=0]; 31.87/17.37 158[label="primModNatS (primMinusNatS (Succ Zero) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];158 -> 838[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 158 -> 839[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 158 -> 840[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 787[label="Succ ww68",fontsize=16,color="green",shape="box"];788[label="Succ ww69",fontsize=16,color="green",shape="box"];789[label="Succ ww69",fontsize=16,color="green",shape="box"];829[label="ww780",fontsize=16,color="green",shape="box"];830[label="ww790",fontsize=16,color="green",shape="box"];831[label="ww780",fontsize=16,color="green",shape="box"];832[label="ww80",fontsize=16,color="green",shape="box"];833[label="Zero",fontsize=16,color="green",shape="box"];684[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS (Succ ww750) ww76)",fontsize=16,color="burlywood",shape="box"];916[label="ww76/Succ ww760",fontsize=10,color="white",style="solid",shape="box"];684 -> 916[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 916 -> 688[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 917[label="ww76/Zero",fontsize=10,color="white",style="solid",shape="box"];684 -> 917[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 917 -> 689[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 685[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS Zero ww76)",fontsize=16,color="burlywood",shape="box"];918[label="ww76/Succ ww760",fontsize=10,color="white",style="solid",shape="box"];685 -> 918[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 918 -> 690[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 919[label="ww76/Zero",fontsize=10,color="white",style="solid",shape="box"];685 -> 919[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 919 -> 691[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 835[label="Succ Zero",fontsize=16,color="green",shape="box"];836[label="Succ Zero",fontsize=16,color="green",shape="box"];837[label="Succ (Succ ww2300)",fontsize=16,color="green",shape="box"];834[label="primModNatS (primMinusNatS ww82 ww83) (Succ ww84)",fontsize=16,color="burlywood",shape="triangle"];920[label="ww82/Succ ww820",fontsize=10,color="white",style="solid",shape="box"];834 -> 920[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 920 -> 865[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 921[label="ww82/Zero",fontsize=10,color="white",style="solid",shape="box"];834 -> 921[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 921 -> 866[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 838[label="Succ Zero",fontsize=16,color="green",shape="box"];839[label="Succ Zero",fontsize=16,color="green",shape="box"];840[label="Succ Zero",fontsize=16,color="green",shape="box"];688[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS (Succ ww750) (Succ ww760))",fontsize=16,color="black",shape="box"];688 -> 696[label="",style="solid", color="black", weight=3]; 31.87/17.37 689[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS (Succ ww750) Zero)",fontsize=16,color="black",shape="box"];689 -> 697[label="",style="solid", color="black", weight=3]; 31.87/17.37 690[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS Zero (Succ ww760))",fontsize=16,color="black",shape="box"];690 -> 698[label="",style="solid", color="black", weight=3]; 31.87/17.37 691[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];691 -> 699[label="",style="solid", color="black", weight=3]; 31.87/17.37 865[label="primModNatS (primMinusNatS (Succ ww820) ww83) (Succ ww84)",fontsize=16,color="burlywood",shape="box"];922[label="ww83/Succ ww830",fontsize=10,color="white",style="solid",shape="box"];865 -> 922[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 922 -> 867[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 923[label="ww83/Zero",fontsize=10,color="white",style="solid",shape="box"];865 -> 923[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 923 -> 868[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 866[label="primModNatS (primMinusNatS Zero ww83) (Succ ww84)",fontsize=16,color="burlywood",shape="box"];924[label="ww83/Succ ww830",fontsize=10,color="white",style="solid",shape="box"];866 -> 924[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 924 -> 869[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 925[label="ww83/Zero",fontsize=10,color="white",style="solid",shape="box"];866 -> 925[label="",style="solid", color="burlywood", weight=9]; 31.87/17.37 925 -> 870[label="",style="solid", color="burlywood", weight=3]; 31.87/17.37 696 -> 643[label="",style="dashed", color="red", weight=0]; 31.87/17.37 696[label="primModNatS0 (Succ ww73) (Succ ww74) (primGEqNatS ww750 ww760)",fontsize=16,color="magenta"];696 -> 704[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 696 -> 705[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 697[label="primModNatS0 (Succ ww73) (Succ ww74) MyTrue",fontsize=16,color="black",shape="triangle"];697 -> 706[label="",style="solid", color="black", weight=3]; 31.87/17.37 698[label="primModNatS0 (Succ ww73) (Succ ww74) MyFalse",fontsize=16,color="black",shape="box"];698 -> 707[label="",style="solid", color="black", weight=3]; 31.87/17.37 699 -> 697[label="",style="dashed", color="red", weight=0]; 31.87/17.37 699[label="primModNatS0 (Succ ww73) (Succ ww74) MyTrue",fontsize=16,color="magenta"];867[label="primModNatS (primMinusNatS (Succ ww820) (Succ ww830)) (Succ ww84)",fontsize=16,color="black",shape="box"];867 -> 871[label="",style="solid", color="black", weight=3]; 31.87/17.37 868[label="primModNatS (primMinusNatS (Succ ww820) Zero) (Succ ww84)",fontsize=16,color="black",shape="box"];868 -> 872[label="",style="solid", color="black", weight=3]; 31.87/17.37 869[label="primModNatS (primMinusNatS Zero (Succ ww830)) (Succ ww84)",fontsize=16,color="black",shape="box"];869 -> 873[label="",style="solid", color="black", weight=3]; 31.87/17.37 870[label="primModNatS (primMinusNatS Zero Zero) (Succ ww84)",fontsize=16,color="black",shape="box"];870 -> 874[label="",style="solid", color="black", weight=3]; 31.87/17.37 704[label="ww750",fontsize=16,color="green",shape="box"];705[label="ww760",fontsize=16,color="green",shape="box"];706 -> 834[label="",style="dashed", color="red", weight=0]; 31.87/17.37 706[label="primModNatS (primMinusNatS (Succ ww73) (Succ (Succ ww74))) (Succ (Succ (Succ ww74)))",fontsize=16,color="magenta"];706 -> 847[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 706 -> 848[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 706 -> 849[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 707[label="Succ (Succ ww73)",fontsize=16,color="green",shape="box"];871 -> 834[label="",style="dashed", color="red", weight=0]; 31.87/17.37 871[label="primModNatS (primMinusNatS ww820 ww830) (Succ ww84)",fontsize=16,color="magenta"];871 -> 875[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 871 -> 876[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 872 -> 89[label="",style="dashed", color="red", weight=0]; 31.87/17.37 872[label="primModNatS (Succ ww820) (Succ ww84)",fontsize=16,color="magenta"];872 -> 877[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 872 -> 878[label="",style="dashed", color="magenta", weight=3]; 31.87/17.37 873[label="primModNatS Zero (Succ ww84)",fontsize=16,color="black",shape="triangle"];873 -> 879[label="",style="solid", color="black", weight=3]; 31.87/17.37 874 -> 873[label="",style="dashed", color="red", weight=0]; 31.87/17.37 874[label="primModNatS Zero (Succ ww84)",fontsize=16,color="magenta"];847[label="Succ (Succ ww74)",fontsize=16,color="green",shape="box"];848[label="Succ (Succ ww74)",fontsize=16,color="green",shape="box"];849[label="Succ ww73",fontsize=16,color="green",shape="box"];875[label="ww830",fontsize=16,color="green",shape="box"];876[label="ww820",fontsize=16,color="green",shape="box"];877[label="ww84",fontsize=16,color="green",shape="box"];878[label="ww820",fontsize=16,color="green",shape="box"];879[label="Zero",fontsize=16,color="green",shape="box"];} 31.87/17.37 31.87/17.37 ---------------------------------------- 31.87/17.37 31.87/17.37 (60) 31.87/17.37 TRUE 31.90/17.40 EOF