28.63/15.46 MAYBE 30.98/16.07 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 30.98/16.07 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 30.98/16.07 30.98/16.07 30.98/16.07 H-Termination with start terms of the given HASKELL could not be shown: 30.98/16.07 30.98/16.07 (0) HASKELL 30.98/16.07 (1) BR [EQUIVALENT, 0 ms] 30.98/16.07 (2) HASKELL 30.98/16.07 (3) COR [EQUIVALENT, 0 ms] 30.98/16.07 (4) HASKELL 30.98/16.07 (5) Narrow [SOUND, 0 ms] 30.98/16.07 (6) AND 30.98/16.07 (7) QDP 30.98/16.07 (8) DependencyGraphProof [EQUIVALENT, 0 ms] 30.98/16.07 (9) QDP 30.98/16.07 (10) TransformationProof [EQUIVALENT, 0 ms] 30.98/16.07 (11) QDP 30.98/16.07 (12) UsableRulesProof [EQUIVALENT, 0 ms] 30.98/16.07 (13) QDP 30.98/16.07 (14) QReductionProof [EQUIVALENT, 0 ms] 30.98/16.07 (15) QDP 30.98/16.07 (16) MNOCProof [EQUIVALENT, 0 ms] 30.98/16.07 (17) QDP 30.98/16.07 (18) InductionCalculusProof [EQUIVALENT, 0 ms] 30.98/16.07 (19) QDP 30.98/16.07 (20) TransformationProof [EQUIVALENT, 0 ms] 30.98/16.07 (21) QDP 30.98/16.07 (22) DependencyGraphProof [EQUIVALENT, 0 ms] 30.98/16.07 (23) QDP 30.98/16.07 (24) TransformationProof [EQUIVALENT, 0 ms] 30.98/16.07 (25) QDP 30.98/16.07 (26) DependencyGraphProof [EQUIVALENT, 0 ms] 30.98/16.07 (27) QDP 30.98/16.07 (28) TransformationProof [EQUIVALENT, 0 ms] 30.98/16.07 (29) QDP 30.98/16.07 (30) DependencyGraphProof [EQUIVALENT, 0 ms] 30.98/16.07 (31) QDP 30.98/16.07 (32) TransformationProof [EQUIVALENT, 0 ms] 30.98/16.07 (33) QDP 30.98/16.07 (34) DependencyGraphProof [EQUIVALENT, 0 ms] 30.98/16.07 (35) QDP 30.98/16.07 (36) MNOCProof [EQUIVALENT, 0 ms] 30.98/16.07 (37) QDP 30.98/16.07 (38) InductionCalculusProof [EQUIVALENT, 0 ms] 30.98/16.07 (39) QDP 30.98/16.07 (40) QDP 30.98/16.07 (41) QDPOrderProof [EQUIVALENT, 6 ms] 30.98/16.07 (42) QDP 30.98/16.07 (43) DependencyGraphProof [EQUIVALENT, 0 ms] 30.98/16.07 (44) QDP 30.98/16.07 (45) QDPSizeChangeProof [EQUIVALENT, 0 ms] 30.98/16.07 (46) YES 30.98/16.07 (47) QDP 30.98/16.07 (48) DependencyGraphProof [EQUIVALENT, 0 ms] 30.98/16.07 (49) QDP 30.98/16.07 (50) QDPOrderProof [EQUIVALENT, 0 ms] 30.98/16.07 (51) QDP 30.98/16.07 (52) DependencyGraphProof [EQUIVALENT, 0 ms] 30.98/16.07 (53) QDP 30.98/16.07 (54) QDPSizeChangeProof [EQUIVALENT, 0 ms] 30.98/16.07 (55) YES 30.98/16.07 (56) QDP 30.98/16.07 (57) QDPSizeChangeProof [EQUIVALENT, 0 ms] 30.98/16.07 (58) YES 30.98/16.07 (59) Narrow [COMPLETE, 0 ms] 30.98/16.07 (60) TRUE 30.98/16.07 30.98/16.07 30.98/16.07 ---------------------------------------- 30.98/16.07 30.98/16.07 (0) 30.98/16.07 Obligation: 30.98/16.07 mainModule Main 30.98/16.07 module Main where { 30.98/16.07 import qualified Prelude; 30.98/16.07 data Main.Char = Char MyInt ; 30.98/16.07 30.98/16.07 data List a = Cons a (List a) | Nil ; 30.98/16.07 30.98/16.07 data MyBool = MyTrue | MyFalse ; 30.98/16.07 30.98/16.07 data MyInt = Pos Main.Nat | Neg Main.Nat ; 30.98/16.07 30.98/16.07 data Main.Nat = Succ Main.Nat | Zero ; 30.98/16.07 30.98/16.07 divMyInt :: MyInt -> MyInt -> MyInt; 30.98/16.07 divMyInt = primDivInt; 30.98/16.07 30.98/16.07 error :: a; 30.98/16.07 error = stop MyTrue; 30.98/16.07 30.98/16.07 modMyInt :: MyInt -> MyInt -> MyInt; 30.98/16.07 modMyInt = primModInt; 30.98/16.07 30.98/16.07 primDivInt :: MyInt -> MyInt -> MyInt; 30.98/16.07 primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 30.98/16.07 primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 30.98/16.07 primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 30.98/16.07 primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 30.98/16.07 primDivInt vw vx = Main.error; 30.98/16.07 30.98/16.07 primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primDivNatP Main.Zero Main.Zero = Main.error; 30.98/16.07 primDivNatP (Main.Succ x) Main.Zero = Main.error; 30.98/16.07 primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); 30.98/16.07 primDivNatP Main.Zero (Main.Succ x) = Main.Zero; 30.98/16.07 30.98/16.07 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primDivNatS Main.Zero Main.Zero = Main.error; 30.98/16.07 primDivNatS (Main.Succ x) Main.Zero = Main.error; 30.98/16.07 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 30.98/16.07 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 30.98/16.07 30.98/16.07 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 30.98/16.07 primDivNatS0 x y MyFalse = Main.Zero; 30.98/16.07 30.98/16.07 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 30.98/16.07 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 30.98/16.07 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 30.98/16.07 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 30.98/16.07 primGEqNatS Main.Zero Main.Zero = MyTrue; 30.98/16.07 30.98/16.07 primIntToChar :: MyInt -> Main.Char; 30.98/16.07 primIntToChar x = Main.Char x; 30.98/16.07 30.98/16.07 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 30.98/16.07 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 30.98/16.07 primMinusNatS x Main.Zero = x; 30.98/16.07 30.98/16.07 primModInt :: MyInt -> MyInt -> MyInt; 30.98/16.07 primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 30.98/16.07 primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); 30.98/16.07 primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); 30.98/16.07 primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 30.98/16.07 primModInt vy vz = Main.error; 30.98/16.07 30.98/16.07 primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primModNatP Main.Zero Main.Zero = Main.error; 30.98/16.07 primModNatP Main.Zero (Main.Succ x) = Main.Zero; 30.98/16.07 primModNatP (Main.Succ x) Main.Zero = Main.error; 30.98/16.07 primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 30.98/16.07 primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); 30.98/16.07 30.98/16.07 primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 30.98/16.07 primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; 30.98/16.07 30.98/16.07 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primModNatS Main.Zero Main.Zero = Main.error; 30.98/16.07 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 30.98/16.07 primModNatS (Main.Succ x) Main.Zero = Main.error; 30.98/16.07 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 30.98/16.07 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 30.98/16.07 30.98/16.07 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 30.98/16.07 primModNatS0 x y MyFalse = Main.Succ x; 30.98/16.07 30.98/16.07 primShowInt :: MyInt -> List Main.Char; 30.98/16.07 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; 30.98/16.07 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); 30.98/16.07 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)); 30.98/16.07 30.98/16.07 psPs :: List a -> List a -> List a; 30.98/16.07 psPs Nil ys = ys; 30.98/16.07 psPs (Cons x xs) ys = Cons x (psPs xs ys); 30.98/16.07 30.98/16.07 showMyInt :: MyInt -> List Main.Char; 30.98/16.07 showMyInt = primShowInt; 30.98/16.07 30.98/16.07 showsPrecMyInt :: MyInt -> MyInt -> List Main.Char -> List Main.Char; 30.98/16.07 showsPrecMyInt vv x s = psPs (showMyInt x) s; 30.98/16.07 30.98/16.07 stop :: MyBool -> a; 30.98/16.07 stop MyFalse = stop MyFalse; 30.98/16.07 30.98/16.07 toEnumChar :: MyInt -> Main.Char; 30.98/16.07 toEnumChar = primIntToChar; 30.98/16.07 30.98/16.07 } 30.98/16.07 30.98/16.07 ---------------------------------------- 30.98/16.07 30.98/16.07 (1) BR (EQUIVALENT) 30.98/16.07 Replaced joker patterns by fresh variables and removed binding patterns. 30.98/16.07 ---------------------------------------- 30.98/16.07 30.98/16.07 (2) 30.98/16.07 Obligation: 30.98/16.07 mainModule Main 30.98/16.07 module Main where { 30.98/16.07 import qualified Prelude; 30.98/16.07 data Main.Char = Char MyInt ; 30.98/16.07 30.98/16.07 data List a = Cons a (List a) | Nil ; 30.98/16.07 30.98/16.07 data MyBool = MyTrue | MyFalse ; 30.98/16.07 30.98/16.07 data MyInt = Pos Main.Nat | Neg Main.Nat ; 30.98/16.07 30.98/16.07 data Main.Nat = Succ Main.Nat | Zero ; 30.98/16.07 30.98/16.07 divMyInt :: MyInt -> MyInt -> MyInt; 30.98/16.07 divMyInt = primDivInt; 30.98/16.07 30.98/16.07 error :: a; 30.98/16.07 error = stop MyTrue; 30.98/16.07 30.98/16.07 modMyInt :: MyInt -> MyInt -> MyInt; 30.98/16.07 modMyInt = primModInt; 30.98/16.07 30.98/16.07 primDivInt :: MyInt -> MyInt -> MyInt; 30.98/16.07 primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 30.98/16.07 primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 30.98/16.07 primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 30.98/16.07 primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 30.98/16.07 primDivInt vw vx = Main.error; 30.98/16.07 30.98/16.07 primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primDivNatP Main.Zero Main.Zero = Main.error; 30.98/16.07 primDivNatP (Main.Succ x) Main.Zero = Main.error; 30.98/16.07 primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); 30.98/16.07 primDivNatP Main.Zero (Main.Succ x) = Main.Zero; 30.98/16.07 30.98/16.07 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primDivNatS Main.Zero Main.Zero = Main.error; 30.98/16.07 primDivNatS (Main.Succ x) Main.Zero = Main.error; 30.98/16.07 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 30.98/16.07 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 30.98/16.07 30.98/16.07 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 30.98/16.07 primDivNatS0 x y MyFalse = Main.Zero; 30.98/16.07 30.98/16.07 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 30.98/16.07 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 30.98/16.07 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 30.98/16.07 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 30.98/16.07 primGEqNatS Main.Zero Main.Zero = MyTrue; 30.98/16.07 30.98/16.07 primIntToChar :: MyInt -> Main.Char; 30.98/16.07 primIntToChar x = Main.Char x; 30.98/16.07 30.98/16.07 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 30.98/16.07 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 30.98/16.07 primMinusNatS x Main.Zero = x; 30.98/16.07 30.98/16.07 primModInt :: MyInt -> MyInt -> MyInt; 30.98/16.07 primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 30.98/16.07 primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); 30.98/16.07 primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); 30.98/16.07 primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 30.98/16.07 primModInt vy vz = Main.error; 30.98/16.07 30.98/16.07 primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primModNatP Main.Zero Main.Zero = Main.error; 30.98/16.07 primModNatP Main.Zero (Main.Succ x) = Main.Zero; 30.98/16.07 primModNatP (Main.Succ x) Main.Zero = Main.error; 30.98/16.07 primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 30.98/16.07 primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); 30.98/16.07 30.98/16.07 primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 30.98/16.07 primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; 30.98/16.07 30.98/16.07 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primModNatS Main.Zero Main.Zero = Main.error; 30.98/16.07 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 30.98/16.07 primModNatS (Main.Succ x) Main.Zero = Main.error; 30.98/16.07 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 30.98/16.07 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 30.98/16.07 30.98/16.07 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 30.98/16.07 primModNatS0 x y MyFalse = Main.Succ x; 30.98/16.07 30.98/16.07 primShowInt :: MyInt -> List Main.Char; 30.98/16.07 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; 30.98/16.07 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); 30.98/16.07 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)); 30.98/16.07 30.98/16.07 psPs :: List a -> List a -> List a; 30.98/16.07 psPs Nil ys = ys; 30.98/16.07 psPs (Cons x xs) ys = Cons x (psPs xs ys); 30.98/16.07 30.98/16.07 showMyInt :: MyInt -> List Main.Char; 30.98/16.07 showMyInt = primShowInt; 30.98/16.07 30.98/16.07 showsPrecMyInt :: MyInt -> MyInt -> List Main.Char -> List Main.Char; 30.98/16.07 showsPrecMyInt vv x s = psPs (showMyInt x) s; 30.98/16.07 30.98/16.07 stop :: MyBool -> a; 30.98/16.07 stop MyFalse = stop MyFalse; 30.98/16.07 30.98/16.07 toEnumChar :: MyInt -> Main.Char; 30.98/16.07 toEnumChar = primIntToChar; 30.98/16.07 30.98/16.07 } 30.98/16.07 30.98/16.07 ---------------------------------------- 30.98/16.07 30.98/16.07 (3) COR (EQUIVALENT) 30.98/16.07 Cond Reductions: 30.98/16.07 The following Function with conditions 30.98/16.07 "undefined |Falseundefined; 30.98/16.07 " 30.98/16.07 is transformed to 30.98/16.07 "undefined = undefined1; 30.98/16.07 " 30.98/16.07 "undefined0 True = undefined; 30.98/16.07 " 30.98/16.07 "undefined1 = undefined0 False; 30.98/16.07 " 30.98/16.07 30.98/16.07 ---------------------------------------- 30.98/16.07 30.98/16.07 (4) 30.98/16.07 Obligation: 30.98/16.07 mainModule Main 30.98/16.07 module Main where { 30.98/16.07 import qualified Prelude; 30.98/16.07 data Main.Char = Char MyInt ; 30.98/16.07 30.98/16.07 data List a = Cons a (List a) | Nil ; 30.98/16.07 30.98/16.07 data MyBool = MyTrue | MyFalse ; 30.98/16.07 30.98/16.07 data MyInt = Pos Main.Nat | Neg Main.Nat ; 30.98/16.07 30.98/16.07 data Main.Nat = Succ Main.Nat | Zero ; 30.98/16.07 30.98/16.07 divMyInt :: MyInt -> MyInt -> MyInt; 30.98/16.07 divMyInt = primDivInt; 30.98/16.07 30.98/16.07 error :: a; 30.98/16.07 error = stop MyTrue; 30.98/16.07 30.98/16.07 modMyInt :: MyInt -> MyInt -> MyInt; 30.98/16.07 modMyInt = primModInt; 30.98/16.07 30.98/16.07 primDivInt :: MyInt -> MyInt -> MyInt; 30.98/16.07 primDivInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 30.98/16.07 primDivInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 30.98/16.07 primDivInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatP x (Main.Succ y)); 30.98/16.07 primDivInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 30.98/16.07 primDivInt vw vx = Main.error; 30.98/16.07 30.98/16.07 primDivNatP :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primDivNatP Main.Zero Main.Zero = Main.error; 30.98/16.07 primDivNatP (Main.Succ x) Main.Zero = Main.error; 30.98/16.07 primDivNatP (Main.Succ x) (Main.Succ y) = Main.Succ (primDivNatP (primMinusNatS x y) (Main.Succ y)); 30.98/16.07 primDivNatP Main.Zero (Main.Succ x) = Main.Zero; 30.98/16.07 30.98/16.07 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primDivNatS Main.Zero Main.Zero = Main.error; 30.98/16.07 primDivNatS (Main.Succ x) Main.Zero = Main.error; 30.98/16.07 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 30.98/16.07 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 30.98/16.07 30.98/16.07 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 30.98/16.07 primDivNatS0 x y MyFalse = Main.Zero; 30.98/16.07 30.98/16.07 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 30.98/16.07 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 30.98/16.07 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 30.98/16.07 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 30.98/16.07 primGEqNatS Main.Zero Main.Zero = MyTrue; 30.98/16.07 30.98/16.07 primIntToChar :: MyInt -> Main.Char; 30.98/16.07 primIntToChar x = Main.Char x; 30.98/16.07 30.98/16.07 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 30.98/16.07 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 30.98/16.07 primMinusNatS x Main.Zero = x; 30.98/16.07 30.98/16.07 primModInt :: MyInt -> MyInt -> MyInt; 30.98/16.07 primModInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); 30.98/16.07 primModInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatP x (Main.Succ y)); 30.98/16.07 primModInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatP x (Main.Succ y)); 30.98/16.07 primModInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); 30.98/16.07 primModInt vy vz = Main.error; 30.98/16.07 30.98/16.07 primModNatP :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primModNatP Main.Zero Main.Zero = Main.error; 30.98/16.07 primModNatP Main.Zero (Main.Succ x) = Main.Zero; 30.98/16.07 primModNatP (Main.Succ x) Main.Zero = Main.error; 30.98/16.07 primModNatP (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 30.98/16.07 primModNatP (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatP0 x y (primGEqNatS x y); 30.98/16.07 30.98/16.07 primModNatP0 x y MyTrue = primModNatP (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 30.98/16.07 primModNatP0 x y MyFalse = primMinusNatS (Main.Succ y) x; 30.98/16.07 30.98/16.07 primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; 30.98/16.07 primModNatS Main.Zero Main.Zero = Main.error; 30.98/16.07 primModNatS Main.Zero (Main.Succ x) = Main.Zero; 30.98/16.07 primModNatS (Main.Succ x) Main.Zero = Main.error; 30.98/16.07 primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; 30.98/16.07 primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); 30.98/16.08 30.98/16.08 primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); 30.98/16.08 primModNatS0 x y MyFalse = Main.Succ x; 30.98/16.08 30.98/16.08 primShowInt :: MyInt -> List Main.Char; 30.98/16.08 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; 30.98/16.08 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); 30.98/16.08 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)); 30.98/16.08 30.98/16.08 psPs :: List a -> List a -> List a; 30.98/16.08 psPs Nil ys = ys; 30.98/16.08 psPs (Cons x xs) ys = Cons x (psPs xs ys); 30.98/16.08 30.98/16.08 showMyInt :: MyInt -> List Main.Char; 30.98/16.08 showMyInt = primShowInt; 30.98/16.08 30.98/16.08 showsPrecMyInt :: MyInt -> MyInt -> List Main.Char -> List Main.Char; 30.98/16.08 showsPrecMyInt vv x s = psPs (showMyInt x) s; 30.98/16.08 30.98/16.08 stop :: MyBool -> a; 30.98/16.08 stop MyFalse = stop MyFalse; 30.98/16.08 30.98/16.08 toEnumChar :: MyInt -> Main.Char; 30.98/16.08 toEnumChar = primIntToChar; 30.98/16.08 30.98/16.08 } 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (5) Narrow (SOUND) 30.98/16.08 Haskell To QDPs 30.98/16.08 30.98/16.08 digraph dp_graph { 30.98/16.08 node [outthreshold=100, inthreshold=100];1[label="showsPrecMyInt",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 30.98/16.08 3[label="showsPrecMyInt ww3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 30.98/16.08 4[label="showsPrecMyInt ww3 ww4",fontsize=16,color="grey",shape="box"];4 -> 5[label="",style="dashed", color="grey", weight=3]; 30.98/16.08 5[label="showsPrecMyInt ww3 ww4 ww5",fontsize=16,color="black",shape="triangle"];5 -> 6[label="",style="solid", color="black", weight=3]; 30.98/16.08 6 -> 36[label="",style="dashed", color="red", weight=0]; 30.98/16.08 6[label="psPs (showMyInt ww4) ww5",fontsize=16,color="magenta"];6 -> 37[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 6 -> 38[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 37[label="showMyInt ww4",fontsize=16,color="black",shape="box"];37 -> 52[label="",style="solid", color="black", weight=3]; 30.98/16.08 38[label="ww5",fontsize=16,color="green",shape="box"];36[label="psPs ww22 ww21",fontsize=16,color="burlywood",shape="triangle"];904[label="ww22/Cons ww220 ww221",fontsize=10,color="white",style="solid",shape="box"];36 -> 904[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 904 -> 53[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 905[label="ww22/Nil",fontsize=10,color="white",style="solid",shape="box"];36 -> 905[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 905 -> 54[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 52[label="primShowInt ww4",fontsize=16,color="burlywood",shape="triangle"];906[label="ww4/Pos ww40",fontsize=10,color="white",style="solid",shape="box"];52 -> 906[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 906 -> 55[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 907[label="ww4/Neg ww40",fontsize=10,color="white",style="solid",shape="box"];52 -> 907[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 907 -> 56[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 53[label="psPs (Cons ww220 ww221) ww21",fontsize=16,color="black",shape="box"];53 -> 57[label="",style="solid", color="black", weight=3]; 30.98/16.08 54[label="psPs Nil ww21",fontsize=16,color="black",shape="box"];54 -> 58[label="",style="solid", color="black", weight=3]; 30.98/16.08 55[label="primShowInt (Pos ww40)",fontsize=16,color="burlywood",shape="box"];908[label="ww40/Succ ww400",fontsize=10,color="white",style="solid",shape="box"];55 -> 908[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 908 -> 59[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 909[label="ww40/Zero",fontsize=10,color="white",style="solid",shape="box"];55 -> 909[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 909 -> 60[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 56[label="primShowInt (Neg ww40)",fontsize=16,color="black",shape="box"];56 -> 61[label="",style="solid", color="black", weight=3]; 30.98/16.08 57[label="Cons ww220 (psPs ww221 ww21)",fontsize=16,color="green",shape="box"];57 -> 62[label="",style="dashed", color="green", weight=3]; 30.98/16.08 58[label="ww21",fontsize=16,color="green",shape="box"];59[label="primShowInt (Pos (Succ ww400))",fontsize=16,color="black",shape="box"];59 -> 63[label="",style="solid", color="black", weight=3]; 30.98/16.08 60[label="primShowInt (Pos Zero)",fontsize=16,color="black",shape="box"];60 -> 64[label="",style="solid", color="black", weight=3]; 30.98/16.08 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 ww40))",fontsize=16,color="green",shape="box"];61 -> 65[label="",style="dashed", color="green", weight=3]; 30.98/16.08 62 -> 36[label="",style="dashed", color="red", weight=0]; 30.98/16.08 62[label="psPs ww221 ww21",fontsize=16,color="magenta"];62 -> 66[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 63 -> 36[label="",style="dashed", color="red", weight=0]; 30.98/16.08 63[label="psPs (primShowInt (divMyInt (Pos (Succ ww400)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (Cons (toEnumChar (modMyInt (Pos (Succ ww400)) (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]; 30.98/16.08 63 -> 68[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 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]; 30.98/16.08 65[label="primShowInt (Pos ww40)",fontsize=16,color="magenta"];65 -> 69[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 66[label="ww221",fontsize=16,color="green",shape="box"];67 -> 52[label="",style="dashed", color="red", weight=0]; 30.98/16.08 67[label="primShowInt (divMyInt (Pos (Succ ww400)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];67 -> 70[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 68[label="Cons (toEnumChar (modMyInt (Pos (Succ ww400)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil",fontsize=16,color="green",shape="box"];68 -> 71[label="",style="dashed", color="green", weight=3]; 30.98/16.08 69[label="Pos ww40",fontsize=16,color="green",shape="box"];70 -> 72[label="",style="dashed", color="red", weight=0]; 30.98/16.08 70[label="divMyInt (Pos (Succ ww400)) (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]; 30.98/16.08 70 -> 74[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 71 -> 75[label="",style="dashed", color="red", weight=0]; 30.98/16.08 71[label="toEnumChar (modMyInt (Pos (Succ ww400)) (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]; 30.98/16.08 71 -> 77[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 73[label="ww400",fontsize=16,color="green",shape="box"];74[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];72[label="divMyInt (Pos (Succ ww24)) (Pos (Succ ww25))",fontsize=16,color="black",shape="triangle"];72 -> 78[label="",style="solid", color="black", weight=3]; 30.98/16.08 76[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];77[label="ww400",fontsize=16,color="green",shape="box"];75[label="toEnumChar (modMyInt (Pos (Succ ww27)) (Pos (Succ ww28)))",fontsize=16,color="black",shape="triangle"];75 -> 79[label="",style="solid", color="black", weight=3]; 30.98/16.08 78[label="primDivInt (Pos (Succ ww24)) (Pos (Succ ww25))",fontsize=16,color="black",shape="box"];78 -> 80[label="",style="solid", color="black", weight=3]; 30.98/16.08 79[label="primIntToChar (modMyInt (Pos (Succ ww27)) (Pos (Succ ww28)))",fontsize=16,color="black",shape="box"];79 -> 81[label="",style="solid", color="black", weight=3]; 30.98/16.08 80[label="Pos (primDivNatS (Succ ww24) (Succ ww25))",fontsize=16,color="green",shape="box"];80 -> 82[label="",style="dashed", color="green", weight=3]; 30.98/16.08 81[label="Char (modMyInt (Pos (Succ ww27)) (Pos (Succ ww28)))",fontsize=16,color="green",shape="box"];81 -> 83[label="",style="dashed", color="green", weight=3]; 30.98/16.08 82[label="primDivNatS (Succ ww24) (Succ ww25)",fontsize=16,color="black",shape="triangle"];82 -> 84[label="",style="solid", color="black", weight=3]; 30.98/16.08 83[label="modMyInt (Pos (Succ ww27)) (Pos (Succ ww28))",fontsize=16,color="black",shape="box"];83 -> 85[label="",style="solid", color="black", weight=3]; 30.98/16.08 84[label="primDivNatS0 ww24 ww25 (primGEqNatS ww24 ww25)",fontsize=16,color="burlywood",shape="box"];910[label="ww24/Succ ww240",fontsize=10,color="white",style="solid",shape="box"];84 -> 910[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 910 -> 86[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 911[label="ww24/Zero",fontsize=10,color="white",style="solid",shape="box"];84 -> 911[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 911 -> 87[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 85[label="primModInt (Pos (Succ ww27)) (Pos (Succ ww28))",fontsize=16,color="black",shape="box"];85 -> 88[label="",style="solid", color="black", weight=3]; 30.98/16.08 86[label="primDivNatS0 (Succ ww240) ww25 (primGEqNatS (Succ ww240) ww25)",fontsize=16,color="burlywood",shape="box"];912[label="ww25/Succ ww250",fontsize=10,color="white",style="solid",shape="box"];86 -> 912[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 912 -> 89[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 913[label="ww25/Zero",fontsize=10,color="white",style="solid",shape="box"];86 -> 913[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 913 -> 90[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 87[label="primDivNatS0 Zero ww25 (primGEqNatS Zero ww25)",fontsize=16,color="burlywood",shape="box"];914[label="ww25/Succ ww250",fontsize=10,color="white",style="solid",shape="box"];87 -> 914[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 914 -> 91[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 915[label="ww25/Zero",fontsize=10,color="white",style="solid",shape="box"];87 -> 915[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 915 -> 92[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 88[label="Pos (primModNatS (Succ ww27) (Succ ww28))",fontsize=16,color="green",shape="box"];88 -> 93[label="",style="dashed", color="green", weight=3]; 30.98/16.08 89[label="primDivNatS0 (Succ ww240) (Succ ww250) (primGEqNatS (Succ ww240) (Succ ww250))",fontsize=16,color="black",shape="box"];89 -> 94[label="",style="solid", color="black", weight=3]; 30.98/16.08 90[label="primDivNatS0 (Succ ww240) Zero (primGEqNatS (Succ ww240) Zero)",fontsize=16,color="black",shape="box"];90 -> 95[label="",style="solid", color="black", weight=3]; 30.98/16.08 91[label="primDivNatS0 Zero (Succ ww250) (primGEqNatS Zero (Succ ww250))",fontsize=16,color="black",shape="box"];91 -> 96[label="",style="solid", color="black", weight=3]; 30.98/16.08 92[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];92 -> 97[label="",style="solid", color="black", weight=3]; 30.98/16.08 93[label="primModNatS (Succ ww27) (Succ ww28)",fontsize=16,color="burlywood",shape="triangle"];916[label="ww28/Succ ww280",fontsize=10,color="white",style="solid",shape="box"];93 -> 916[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 916 -> 98[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 917[label="ww28/Zero",fontsize=10,color="white",style="solid",shape="box"];93 -> 917[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 917 -> 99[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 94 -> 509[label="",style="dashed", color="red", weight=0]; 30.98/16.08 94[label="primDivNatS0 (Succ ww240) (Succ ww250) (primGEqNatS ww240 ww250)",fontsize=16,color="magenta"];94 -> 510[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 94 -> 511[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 94 -> 512[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 94 -> 513[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 95[label="primDivNatS0 (Succ ww240) Zero MyTrue",fontsize=16,color="black",shape="box"];95 -> 102[label="",style="solid", color="black", weight=3]; 30.98/16.08 96[label="primDivNatS0 Zero (Succ ww250) MyFalse",fontsize=16,color="black",shape="box"];96 -> 103[label="",style="solid", color="black", weight=3]; 30.98/16.08 97[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];97 -> 104[label="",style="solid", color="black", weight=3]; 30.98/16.08 98[label="primModNatS (Succ ww27) (Succ (Succ ww280))",fontsize=16,color="black",shape="box"];98 -> 105[label="",style="solid", color="black", weight=3]; 30.98/16.08 99[label="primModNatS (Succ ww27) (Succ Zero)",fontsize=16,color="black",shape="box"];99 -> 106[label="",style="solid", color="black", weight=3]; 30.98/16.08 510[label="ww250",fontsize=16,color="green",shape="box"];511[label="ww240",fontsize=16,color="green",shape="box"];512[label="ww240",fontsize=16,color="green",shape="box"];513[label="ww250",fontsize=16,color="green",shape="box"];509[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS ww68 ww69)",fontsize=16,color="burlywood",shape="triangle"];918[label="ww68/Succ ww680",fontsize=10,color="white",style="solid",shape="box"];509 -> 918[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 918 -> 550[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 919[label="ww68/Zero",fontsize=10,color="white",style="solid",shape="box"];509 -> 919[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 919 -> 551[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 102[label="Succ (primDivNatS (primMinusNatS (Succ ww240) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];102 -> 111[label="",style="dashed", color="green", weight=3]; 30.98/16.08 103[label="Zero",fontsize=16,color="green",shape="box"];104[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];104 -> 112[label="",style="dashed", color="green", weight=3]; 30.98/16.08 105[label="primModNatS0 ww27 ww280 (primGEqNatS ww27 (Succ ww280))",fontsize=16,color="burlywood",shape="box"];920[label="ww27/Succ ww270",fontsize=10,color="white",style="solid",shape="box"];105 -> 920[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 920 -> 113[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 921[label="ww27/Zero",fontsize=10,color="white",style="solid",shape="box"];105 -> 921[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 921 -> 114[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 106[label="Zero",fontsize=16,color="green",shape="box"];550[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS (Succ ww680) ww69)",fontsize=16,color="burlywood",shape="box"];922[label="ww69/Succ ww690",fontsize=10,color="white",style="solid",shape="box"];550 -> 922[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 922 -> 574[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 923[label="ww69/Zero",fontsize=10,color="white",style="solid",shape="box"];550 -> 923[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 923 -> 575[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 551[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS Zero ww69)",fontsize=16,color="burlywood",shape="box"];924[label="ww69/Succ ww690",fontsize=10,color="white",style="solid",shape="box"];551 -> 924[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 924 -> 576[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 925[label="ww69/Zero",fontsize=10,color="white",style="solid",shape="box"];551 -> 925[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 925 -> 577[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 111 -> 800[label="",style="dashed", color="red", weight=0]; 30.98/16.08 111[label="primDivNatS (primMinusNatS (Succ ww240) Zero) (Succ Zero)",fontsize=16,color="magenta"];111 -> 801[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 111 -> 802[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 111 -> 803[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 112 -> 800[label="",style="dashed", color="red", weight=0]; 30.98/16.08 112[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];112 -> 804[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 112 -> 805[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 112 -> 806[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 113[label="primModNatS0 (Succ ww270) ww280 (primGEqNatS (Succ ww270) (Succ ww280))",fontsize=16,color="black",shape="box"];113 -> 121[label="",style="solid", color="black", weight=3]; 30.98/16.08 114[label="primModNatS0 Zero ww280 (primGEqNatS Zero (Succ ww280))",fontsize=16,color="black",shape="box"];114 -> 122[label="",style="solid", color="black", weight=3]; 30.98/16.08 574[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS (Succ ww680) (Succ ww690))",fontsize=16,color="black",shape="box"];574 -> 589[label="",style="solid", color="black", weight=3]; 30.98/16.08 575[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS (Succ ww680) Zero)",fontsize=16,color="black",shape="box"];575 -> 590[label="",style="solid", color="black", weight=3]; 30.98/16.08 576[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS Zero (Succ ww690))",fontsize=16,color="black",shape="box"];576 -> 591[label="",style="solid", color="black", weight=3]; 30.98/16.08 577[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];577 -> 592[label="",style="solid", color="black", weight=3]; 30.98/16.08 801[label="Zero",fontsize=16,color="green",shape="box"];802[label="Succ ww240",fontsize=16,color="green",shape="box"];803[label="Zero",fontsize=16,color="green",shape="box"];800[label="primDivNatS (primMinusNatS ww82 ww83) (Succ ww84)",fontsize=16,color="burlywood",shape="triangle"];926[label="ww82/Succ ww820",fontsize=10,color="white",style="solid",shape="box"];800 -> 926[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 926 -> 825[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 927[label="ww82/Zero",fontsize=10,color="white",style="solid",shape="box"];800 -> 927[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 927 -> 826[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 804[label="Zero",fontsize=16,color="green",shape="box"];805[label="Zero",fontsize=16,color="green",shape="box"];806[label="Zero",fontsize=16,color="green",shape="box"];121[label="primModNatS0 (Succ ww270) ww280 (primGEqNatS ww270 ww280)",fontsize=16,color="burlywood",shape="box"];928[label="ww270/Succ ww2700",fontsize=10,color="white",style="solid",shape="box"];121 -> 928[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 928 -> 131[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 929[label="ww270/Zero",fontsize=10,color="white",style="solid",shape="box"];121 -> 929[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 929 -> 132[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 122[label="primModNatS0 Zero ww280 MyFalse",fontsize=16,color="black",shape="box"];122 -> 133[label="",style="solid", color="black", weight=3]; 30.98/16.08 589 -> 509[label="",style="dashed", color="red", weight=0]; 30.98/16.08 589[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS ww680 ww690)",fontsize=16,color="magenta"];589 -> 604[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 589 -> 605[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 590[label="primDivNatS0 (Succ ww66) (Succ ww67) MyTrue",fontsize=16,color="black",shape="triangle"];590 -> 606[label="",style="solid", color="black", weight=3]; 30.98/16.08 591[label="primDivNatS0 (Succ ww66) (Succ ww67) MyFalse",fontsize=16,color="black",shape="box"];591 -> 607[label="",style="solid", color="black", weight=3]; 30.98/16.08 592 -> 590[label="",style="dashed", color="red", weight=0]; 30.98/16.08 592[label="primDivNatS0 (Succ ww66) (Succ ww67) MyTrue",fontsize=16,color="magenta"];825[label="primDivNatS (primMinusNatS (Succ ww820) ww83) (Succ ww84)",fontsize=16,color="burlywood",shape="box"];930[label="ww83/Succ ww830",fontsize=10,color="white",style="solid",shape="box"];825 -> 930[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 930 -> 831[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 931[label="ww83/Zero",fontsize=10,color="white",style="solid",shape="box"];825 -> 931[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 931 -> 832[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 826[label="primDivNatS (primMinusNatS Zero ww83) (Succ ww84)",fontsize=16,color="burlywood",shape="box"];932[label="ww83/Succ ww830",fontsize=10,color="white",style="solid",shape="box"];826 -> 932[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 932 -> 833[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 933[label="ww83/Zero",fontsize=10,color="white",style="solid",shape="box"];826 -> 933[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 933 -> 834[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 131[label="primModNatS0 (Succ (Succ ww2700)) ww280 (primGEqNatS (Succ ww2700) ww280)",fontsize=16,color="burlywood",shape="box"];934[label="ww280/Succ ww2800",fontsize=10,color="white",style="solid",shape="box"];131 -> 934[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 934 -> 140[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 935[label="ww280/Zero",fontsize=10,color="white",style="solid",shape="box"];131 -> 935[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 935 -> 141[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 132[label="primModNatS0 (Succ Zero) ww280 (primGEqNatS Zero ww280)",fontsize=16,color="burlywood",shape="box"];936[label="ww280/Succ ww2800",fontsize=10,color="white",style="solid",shape="box"];132 -> 936[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 936 -> 142[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 937[label="ww280/Zero",fontsize=10,color="white",style="solid",shape="box"];132 -> 937[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 937 -> 143[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 133[label="Succ Zero",fontsize=16,color="green",shape="box"];604[label="ww680",fontsize=16,color="green",shape="box"];605[label="ww690",fontsize=16,color="green",shape="box"];606[label="Succ (primDivNatS (primMinusNatS (Succ ww66) (Succ ww67)) (Succ (Succ ww67)))",fontsize=16,color="green",shape="box"];606 -> 650[label="",style="dashed", color="green", weight=3]; 30.98/16.08 607[label="Zero",fontsize=16,color="green",shape="box"];831[label="primDivNatS (primMinusNatS (Succ ww820) (Succ ww830)) (Succ ww84)",fontsize=16,color="black",shape="box"];831 -> 841[label="",style="solid", color="black", weight=3]; 30.98/16.08 832[label="primDivNatS (primMinusNatS (Succ ww820) Zero) (Succ ww84)",fontsize=16,color="black",shape="box"];832 -> 842[label="",style="solid", color="black", weight=3]; 30.98/16.08 833[label="primDivNatS (primMinusNatS Zero (Succ ww830)) (Succ ww84)",fontsize=16,color="black",shape="box"];833 -> 843[label="",style="solid", color="black", weight=3]; 30.98/16.08 834[label="primDivNatS (primMinusNatS Zero Zero) (Succ ww84)",fontsize=16,color="black",shape="box"];834 -> 844[label="",style="solid", color="black", weight=3]; 30.98/16.08 140[label="primModNatS0 (Succ (Succ ww2700)) (Succ ww2800) (primGEqNatS (Succ ww2700) (Succ ww2800))",fontsize=16,color="black",shape="box"];140 -> 150[label="",style="solid", color="black", weight=3]; 30.98/16.08 141[label="primModNatS0 (Succ (Succ ww2700)) Zero (primGEqNatS (Succ ww2700) Zero)",fontsize=16,color="black",shape="box"];141 -> 151[label="",style="solid", color="black", weight=3]; 30.98/16.08 142[label="primModNatS0 (Succ Zero) (Succ ww2800) (primGEqNatS Zero (Succ ww2800))",fontsize=16,color="black",shape="box"];142 -> 152[label="",style="solid", color="black", weight=3]; 30.98/16.08 143[label="primModNatS0 (Succ Zero) Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];143 -> 153[label="",style="solid", color="black", weight=3]; 30.98/16.08 650 -> 800[label="",style="dashed", color="red", weight=0]; 30.98/16.08 650[label="primDivNatS (primMinusNatS (Succ ww66) (Succ ww67)) (Succ (Succ ww67))",fontsize=16,color="magenta"];650 -> 807[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 650 -> 808[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 650 -> 809[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 841 -> 800[label="",style="dashed", color="red", weight=0]; 30.98/16.08 841[label="primDivNatS (primMinusNatS ww820 ww830) (Succ ww84)",fontsize=16,color="magenta"];841 -> 849[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 841 -> 850[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 842 -> 82[label="",style="dashed", color="red", weight=0]; 30.98/16.08 842[label="primDivNatS (Succ ww820) (Succ ww84)",fontsize=16,color="magenta"];842 -> 851[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 842 -> 852[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 843[label="primDivNatS Zero (Succ ww84)",fontsize=16,color="black",shape="triangle"];843 -> 853[label="",style="solid", color="black", weight=3]; 30.98/16.08 844 -> 843[label="",style="dashed", color="red", weight=0]; 30.98/16.08 844[label="primDivNatS Zero (Succ ww84)",fontsize=16,color="magenta"];150 -> 668[label="",style="dashed", color="red", weight=0]; 30.98/16.08 150[label="primModNatS0 (Succ (Succ ww2700)) (Succ ww2800) (primGEqNatS ww2700 ww2800)",fontsize=16,color="magenta"];150 -> 669[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 150 -> 670[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 150 -> 671[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 150 -> 672[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 151[label="primModNatS0 (Succ (Succ ww2700)) Zero MyTrue",fontsize=16,color="black",shape="box"];151 -> 163[label="",style="solid", color="black", weight=3]; 30.98/16.08 152 -> 555[label="",style="dashed", color="red", weight=0]; 30.98/16.08 152[label="primModNatS0 (Succ Zero) (Succ ww2800) MyFalse",fontsize=16,color="magenta"];152 -> 556[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 152 -> 557[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 153[label="primModNatS0 (Succ Zero) Zero MyTrue",fontsize=16,color="black",shape="box"];153 -> 165[label="",style="solid", color="black", weight=3]; 30.98/16.08 807[label="Succ ww67",fontsize=16,color="green",shape="box"];808[label="Succ ww66",fontsize=16,color="green",shape="box"];809[label="Succ ww67",fontsize=16,color="green",shape="box"];849[label="ww830",fontsize=16,color="green",shape="box"];850[label="ww820",fontsize=16,color="green",shape="box"];851[label="ww820",fontsize=16,color="green",shape="box"];852[label="ww84",fontsize=16,color="green",shape="box"];853[label="Zero",fontsize=16,color="green",shape="box"];669[label="ww2800",fontsize=16,color="green",shape="box"];670[label="ww2700",fontsize=16,color="green",shape="box"];671[label="Succ ww2700",fontsize=16,color="green",shape="box"];672[label="ww2800",fontsize=16,color="green",shape="box"];668[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS ww79 ww80)",fontsize=16,color="burlywood",shape="triangle"];938[label="ww79/Succ ww790",fontsize=10,color="white",style="solid",shape="box"];668 -> 938[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 938 -> 709[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 939[label="ww79/Zero",fontsize=10,color="white",style="solid",shape="box"];668 -> 939[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 939 -> 710[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 163 -> 858[label="",style="dashed", color="red", weight=0]; 30.98/16.08 163[label="primModNatS (primMinusNatS (Succ (Succ ww2700)) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];163 -> 859[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 163 -> 860[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 163 -> 861[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 556[label="Zero",fontsize=16,color="green",shape="box"];557[label="ww2800",fontsize=16,color="green",shape="box"];555[label="primModNatS0 (Succ ww71) (Succ ww72) MyFalse",fontsize=16,color="black",shape="triangle"];555 -> 578[label="",style="solid", color="black", weight=3]; 30.98/16.08 165 -> 858[label="",style="dashed", color="red", weight=0]; 30.98/16.08 165[label="primModNatS (primMinusNatS (Succ Zero) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];165 -> 862[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 165 -> 863[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 165 -> 864[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 709[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS (Succ ww790) ww80)",fontsize=16,color="burlywood",shape="box"];940[label="ww80/Succ ww800",fontsize=10,color="white",style="solid",shape="box"];709 -> 940[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 940 -> 715[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 941[label="ww80/Zero",fontsize=10,color="white",style="solid",shape="box"];709 -> 941[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 941 -> 716[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 710[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS Zero ww80)",fontsize=16,color="burlywood",shape="box"];942[label="ww80/Succ ww800",fontsize=10,color="white",style="solid",shape="box"];710 -> 942[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 942 -> 717[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 943[label="ww80/Zero",fontsize=10,color="white",style="solid",shape="box"];710 -> 943[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 943 -> 718[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 859[label="Succ Zero",fontsize=16,color="green",shape="box"];860[label="Succ Zero",fontsize=16,color="green",shape="box"];861[label="Succ (Succ ww2700)",fontsize=16,color="green",shape="box"];858[label="primModNatS (primMinusNatS ww86 ww87) (Succ ww88)",fontsize=16,color="burlywood",shape="triangle"];944[label="ww86/Succ ww860",fontsize=10,color="white",style="solid",shape="box"];858 -> 944[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 944 -> 889[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 945[label="ww86/Zero",fontsize=10,color="white",style="solid",shape="box"];858 -> 945[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 945 -> 890[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 578[label="Succ (Succ ww71)",fontsize=16,color="green",shape="box"];862[label="Succ Zero",fontsize=16,color="green",shape="box"];863[label="Succ Zero",fontsize=16,color="green",shape="box"];864[label="Succ Zero",fontsize=16,color="green",shape="box"];715[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS (Succ ww790) (Succ ww800))",fontsize=16,color="black",shape="box"];715 -> 723[label="",style="solid", color="black", weight=3]; 30.98/16.08 716[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS (Succ ww790) Zero)",fontsize=16,color="black",shape="box"];716 -> 724[label="",style="solid", color="black", weight=3]; 30.98/16.08 717[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS Zero (Succ ww800))",fontsize=16,color="black",shape="box"];717 -> 725[label="",style="solid", color="black", weight=3]; 30.98/16.08 718[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];718 -> 726[label="",style="solid", color="black", weight=3]; 30.98/16.08 889[label="primModNatS (primMinusNatS (Succ ww860) ww87) (Succ ww88)",fontsize=16,color="burlywood",shape="box"];946[label="ww87/Succ ww870",fontsize=10,color="white",style="solid",shape="box"];889 -> 946[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 946 -> 891[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 947[label="ww87/Zero",fontsize=10,color="white",style="solid",shape="box"];889 -> 947[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 947 -> 892[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 890[label="primModNatS (primMinusNatS Zero ww87) (Succ ww88)",fontsize=16,color="burlywood",shape="box"];948[label="ww87/Succ ww870",fontsize=10,color="white",style="solid",shape="box"];890 -> 948[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 948 -> 893[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 949[label="ww87/Zero",fontsize=10,color="white",style="solid",shape="box"];890 -> 949[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 949 -> 894[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 723 -> 668[label="",style="dashed", color="red", weight=0]; 30.98/16.08 723[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS ww790 ww800)",fontsize=16,color="magenta"];723 -> 733[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 723 -> 734[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 724[label="primModNatS0 (Succ ww77) (Succ ww78) MyTrue",fontsize=16,color="black",shape="triangle"];724 -> 735[label="",style="solid", color="black", weight=3]; 30.98/16.08 725 -> 555[label="",style="dashed", color="red", weight=0]; 30.98/16.08 725[label="primModNatS0 (Succ ww77) (Succ ww78) MyFalse",fontsize=16,color="magenta"];725 -> 736[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 725 -> 737[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 726 -> 724[label="",style="dashed", color="red", weight=0]; 30.98/16.08 726[label="primModNatS0 (Succ ww77) (Succ ww78) MyTrue",fontsize=16,color="magenta"];891[label="primModNatS (primMinusNatS (Succ ww860) (Succ ww870)) (Succ ww88)",fontsize=16,color="black",shape="box"];891 -> 895[label="",style="solid", color="black", weight=3]; 30.98/16.08 892[label="primModNatS (primMinusNatS (Succ ww860) Zero) (Succ ww88)",fontsize=16,color="black",shape="box"];892 -> 896[label="",style="solid", color="black", weight=3]; 30.98/16.08 893[label="primModNatS (primMinusNatS Zero (Succ ww870)) (Succ ww88)",fontsize=16,color="black",shape="box"];893 -> 897[label="",style="solid", color="black", weight=3]; 30.98/16.08 894[label="primModNatS (primMinusNatS Zero Zero) (Succ ww88)",fontsize=16,color="black",shape="box"];894 -> 898[label="",style="solid", color="black", weight=3]; 30.98/16.08 733[label="ww790",fontsize=16,color="green",shape="box"];734[label="ww800",fontsize=16,color="green",shape="box"];735 -> 858[label="",style="dashed", color="red", weight=0]; 30.98/16.08 735[label="primModNatS (primMinusNatS (Succ ww77) (Succ (Succ ww78))) (Succ (Succ (Succ ww78)))",fontsize=16,color="magenta"];735 -> 871[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 735 -> 872[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 735 -> 873[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 736[label="ww77",fontsize=16,color="green",shape="box"];737[label="ww78",fontsize=16,color="green",shape="box"];895 -> 858[label="",style="dashed", color="red", weight=0]; 30.98/16.08 895[label="primModNatS (primMinusNatS ww860 ww870) (Succ ww88)",fontsize=16,color="magenta"];895 -> 899[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 895 -> 900[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 896 -> 93[label="",style="dashed", color="red", weight=0]; 30.98/16.08 896[label="primModNatS (Succ ww860) (Succ ww88)",fontsize=16,color="magenta"];896 -> 901[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 896 -> 902[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 897[label="primModNatS Zero (Succ ww88)",fontsize=16,color="black",shape="triangle"];897 -> 903[label="",style="solid", color="black", weight=3]; 30.98/16.08 898 -> 897[label="",style="dashed", color="red", weight=0]; 30.98/16.08 898[label="primModNatS Zero (Succ ww88)",fontsize=16,color="magenta"];871[label="Succ (Succ ww78)",fontsize=16,color="green",shape="box"];872[label="Succ (Succ ww78)",fontsize=16,color="green",shape="box"];873[label="Succ ww77",fontsize=16,color="green",shape="box"];899[label="ww870",fontsize=16,color="green",shape="box"];900[label="ww860",fontsize=16,color="green",shape="box"];901[label="ww88",fontsize=16,color="green",shape="box"];902[label="ww860",fontsize=16,color="green",shape="box"];903[label="Zero",fontsize=16,color="green",shape="box"];} 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (6) 30.98/16.08 Complex Obligation (AND) 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (7) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primShowInt(Main.Neg(ww40)) -> new_primShowInt(Main.Pos(ww40)) 30.98/16.08 new_primShowInt(Main.Pos(Main.Succ(ww400))) -> new_primShowInt(new_divMyInt(ww400, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_divMyInt(ww24, ww25) -> Main.Pos(new_primDivNatS3(ww24, ww25)) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_divMyInt(x0, x1) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (8) DependencyGraphProof (EQUIVALENT) 30.98/16.08 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (9) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primShowInt(Main.Pos(Main.Succ(ww400))) -> new_primShowInt(new_divMyInt(ww400, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_divMyInt(ww24, ww25) -> Main.Pos(new_primDivNatS3(ww24, ww25)) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_divMyInt(x0, x1) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (10) TransformationProof (EQUIVALENT) 30.98/16.08 By rewriting [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(ww400))) -> new_primShowInt(new_divMyInt(ww400, 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]: 30.98/16.08 30.98/16.08 (new_primShowInt(Main.Pos(Main.Succ(ww400))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww400, 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(ww400))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww400, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (11) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primShowInt(Main.Pos(Main.Succ(ww400))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww400, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_divMyInt(ww24, ww25) -> Main.Pos(new_primDivNatS3(ww24, ww25)) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_divMyInt(x0, x1) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (12) UsableRulesProof (EQUIVALENT) 30.98/16.08 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. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (13) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primShowInt(Main.Pos(Main.Succ(ww400))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww400, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_divMyInt(x0, x1) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (14) QReductionProof (EQUIVALENT) 30.98/16.08 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 30.98/16.08 30.98/16.08 new_divMyInt(x0, x1) 30.98/16.08 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (15) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primShowInt(Main.Pos(Main.Succ(ww400))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww400, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (16) MNOCProof (EQUIVALENT) 30.98/16.08 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (17) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primShowInt(Main.Pos(Main.Succ(ww400))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww400, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 Q is empty. 30.98/16.08 We have to consider all (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (18) InductionCalculusProof (EQUIVALENT) 30.98/16.08 Note that final constraints are written in bold face. 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 For Pair new_primShowInt(Main.Pos(Main.Succ(ww400))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww400, 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: 30.98/16.08 *We consider the chain new_primShowInt(Main.Pos(Main.Succ(x0))) -> new_primShowInt(Main.Pos(new_primDivNatS3(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))), new_primShowInt(Main.Pos(Main.Succ(x1))) -> new_primShowInt(Main.Pos(new_primDivNatS3(x1, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) which results in the following constraint: 30.98/16.08 30.98/16.08 (1) (new_primShowInt(Main.Pos(new_primDivNatS3(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))=new_primShowInt(Main.Pos(Main.Succ(x1))) ==> new_primShowInt(Main.Pos(Main.Succ(x0)))_>=_new_primShowInt(Main.Pos(new_primDivNatS3(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: 30.98/16.08 30.98/16.08 (2) (Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))=x2 & new_primDivNatS3(x0, x2)=Main.Succ(x1) ==> new_primShowInt(Main.Pos(Main.Succ(x0)))_>=_new_primShowInt(Main.Pos(new_primDivNatS3(x0, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primDivNatS3(x0, x2)=Main.Succ(x1) which results in the following new constraints: 30.98/16.08 30.98/16.08 (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_primDivNatS3(Main.Succ(x4), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 30.98/16.08 30.98/16.08 (4) (Main.Succ(new_primDivNatS2(Main.Succ(x6), Main.Zero, Main.Zero))=Main.Succ(x1) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x6))))_>=_new_primShowInt(Main.Pos(new_primDivNatS3(Main.Succ(x6), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 30.98/16.08 30.98/16.08 (5) (Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero))=Main.Succ(x1) & Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))=Main.Zero ==> new_primShowInt(Main.Pos(Main.Succ(Main.Zero)))_>=_new_primShowInt(Main.Pos(new_primDivNatS3(Main.Zero, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: 30.98/16.08 30.98/16.08 (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_primDivNatS3(Main.Succ(x4), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 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: 30.98/16.08 30.98/16.08 (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_primDivNatS3(Main.Succ(x12), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) ==> new_primShowInt(Main.Pos(Main.Succ(Main.Succ(x12))))_>=_new_primShowInt(Main.Pos(new_primDivNatS3(Main.Succ(x12), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 30.98/16.08 30.98/16.08 (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_primDivNatS3(Main.Succ(x15), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 30.98/16.08 30.98/16.08 (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_primDivNatS3(Main.Succ(x21), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: 30.98/16.08 30.98/16.08 (10) (new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x10)))))_>=_new_primShowInt(Main.Pos(new_primDivNatS3(Main.Succ(Main.Succ(x10)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 We solved constraint (8) using rules (I), (II), (III).We solved constraint (9) using rules (I), (II), (III). 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 To summarize, we get the following constraints P__>=_ for the following pairs. 30.98/16.08 30.98/16.08 *new_primShowInt(Main.Pos(Main.Succ(ww400))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww400, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 30.98/16.08 30.98/16.08 *(new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x10)))))_>=_new_primShowInt(Main.Pos(new_primDivNatS3(Main.Succ(Main.Succ(x10)), Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 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. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (19) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primShowInt(Main.Pos(Main.Succ(ww400))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww400, Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))))))))) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (20) TransformationProof (EQUIVALENT) 30.98/16.08 By narrowing [LPAR04] the rule new_primShowInt(Main.Pos(Main.Succ(ww400))) -> new_primShowInt(Main.Pos(new_primDivNatS3(ww400, 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]: 30.98/16.08 30.98/16.08 (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)))))))))))) 30.98/16.08 (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))) 30.98/16.08 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (21) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 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))))))))))) 30.98/16.08 new_primShowInt(Main.Pos(Main.Succ(Main.Zero))) -> new_primShowInt(Main.Pos(Main.Zero)) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (22) DependencyGraphProof (EQUIVALENT) 30.98/16.08 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (23) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 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))))))))))) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (24) TransformationProof (EQUIVALENT) 30.98/16.08 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]: 30.98/16.08 30.98/16.08 (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))))))))))) 30.98/16.08 (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))) 30.98/16.08 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (25) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 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)))))))))) 30.98/16.08 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_primShowInt(Main.Pos(Main.Zero)) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (26) DependencyGraphProof (EQUIVALENT) 30.98/16.08 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (27) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 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)))))))))) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (28) TransformationProof (EQUIVALENT) 30.98/16.08 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]: 30.98/16.08 30.98/16.08 (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)))))))))) 30.98/16.08 (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))) 30.98/16.08 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (29) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 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))))))))) 30.98/16.08 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_primShowInt(Main.Pos(Main.Zero)) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (30) DependencyGraphProof (EQUIVALENT) 30.98/16.08 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (31) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 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))))))))) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (32) TransformationProof (EQUIVALENT) 30.98/16.08 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]: 30.98/16.08 30.98/16.08 (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))))))))) 30.98/16.08 (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))) 30.98/16.08 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (33) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 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)))))))) 30.98/16.08 new_primShowInt(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) -> new_primShowInt(Main.Pos(Main.Zero)) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (34) DependencyGraphProof (EQUIVALENT) 30.98/16.08 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (35) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 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)))))))) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (36) MNOCProof (EQUIVALENT) 30.98/16.08 We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (37) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 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)))))))) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 Q is empty. 30.98/16.08 We have to consider all (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (38) InductionCalculusProof (EQUIVALENT) 30.98/16.08 Note that final constraints are written in bold face. 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 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: 30.98/16.08 *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: 30.98/16.08 30.98/16.08 (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))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: 30.98/16.08 30.98/16.08 (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))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 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: 30.98/16.08 30.98/16.08 (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))))))))) 30.98/16.08 30.98/16.08 (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))))))))) 30.98/16.08 30.98/16.08 (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))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: 30.98/16.08 30.98/16.08 (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))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 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: 30.98/16.08 30.98/16.08 (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))))))))) 30.98/16.08 30.98/16.08 (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))))))))) 30.98/16.08 30.98/16.08 (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))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 We simplified constraint (7) using rules (I), (II), (III), (IV) which results in the following new constraint: 30.98/16.08 30.98/16.08 (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))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 We solved constraint (8) using rules (I), (II).We solved constraint (9) using rules (I), (II). 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 To summarize, we get the following constraints P__>=_ for the following pairs. 30.98/16.08 30.98/16.08 *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)))))))) 30.98/16.08 30.98/16.08 *(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))))))))) 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 30.98/16.08 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. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (39) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 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)))))))) 30.98/16.08 30.98/16.08 The TRS R consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS01(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(ww250)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS01(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Zero, Main.Succ(ww690)) -> Main.Zero 30.98/16.08 new_primDivNatS01(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS02(ww66, ww67) 30.98/16.08 new_primDivNatS02(ww66, ww67) -> Main.Succ(new_primDivNatS2(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67))) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS2(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(ww830), ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, ww84) -> new_primDivNatS4(ww84) 30.98/16.08 new_primDivNatS2(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS3(ww820, ww84) 30.98/16.08 new_primDivNatS3(Main.Succ(ww240), Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Succ(ww240), Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) -> Main.Succ(new_primDivNatS2(Main.Zero, Main.Zero, Main.Zero)) 30.98/16.08 new_primDivNatS4(ww84) -> Main.Zero 30.98/16.08 30.98/16.08 The set Q consists of the following terms: 30.98/16.08 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Succ(x2)) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Succ(x1), x2) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Succ(x0), x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Succ(x0)) 30.98/16.08 new_primDivNatS2(Main.Zero, Main.Zero, x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Zero) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Succ(x3)) 30.98/16.08 new_primDivNatS02(x0, x1) 30.98/16.08 new_primDivNatS3(Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS2(Main.Succ(x0), Main.Zero, x1) 30.98/16.08 new_primDivNatS01(x0, x1, Main.Succ(x2), Main.Zero) 30.98/16.08 new_primDivNatS4(x0) 30.98/16.08 new_primDivNatS3(Main.Succ(x0), Main.Succ(x1)) 30.98/16.08 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (40) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primModNatS0(ww77, ww78, Main.Zero, Main.Zero) -> new_primModNatS00(ww77, ww78) 30.98/16.08 new_primModNatS1(Main.Succ(Main.Succ(ww2700)), Main.Succ(Main.Succ(ww2800))) -> new_primModNatS0(Main.Succ(ww2700), ww2800, ww2700, ww2800) 30.98/16.08 new_primModNatS1(Main.Succ(Main.Zero), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Zero), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 30.98/16.08 new_primModNatS0(ww77, ww78, Main.Succ(ww790), Main.Succ(ww800)) -> new_primModNatS0(ww77, ww78, ww790, ww800) 30.98/16.08 new_primModNatS(Main.Succ(ww860), Main.Succ(ww870), ww88) -> new_primModNatS(ww860, ww870, ww88) 30.98/16.08 new_primModNatS(Main.Succ(ww860), Main.Zero, ww88) -> new_primModNatS1(ww860, ww88) 30.98/16.08 new_primModNatS0(ww77, ww78, Main.Succ(ww790), Main.Zero) -> new_primModNatS(Main.Succ(ww77), Main.Succ(Main.Succ(ww78)), Main.Succ(Main.Succ(ww78))) 30.98/16.08 new_primModNatS1(Main.Succ(Main.Succ(ww2700)), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Succ(ww2700)), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 30.98/16.08 new_primModNatS00(ww77, ww78) -> new_primModNatS(Main.Succ(ww77), Main.Succ(Main.Succ(ww78)), Main.Succ(Main.Succ(ww78))) 30.98/16.08 30.98/16.08 R is empty. 30.98/16.08 Q is empty. 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (41) QDPOrderProof (EQUIVALENT) 30.98/16.08 We use the reduction pair processor [LPAR04,JAR06]. 30.98/16.08 30.98/16.08 30.98/16.08 The following pairs can be oriented strictly and are deleted. 30.98/16.08 30.98/16.08 new_primModNatS(Main.Succ(ww860), Main.Succ(ww870), ww88) -> new_primModNatS(ww860, ww870, ww88) 30.98/16.08 new_primModNatS(Main.Succ(ww860), Main.Zero, ww88) -> new_primModNatS1(ww860, ww88) 30.98/16.08 The remaining pairs can at least be oriented weakly. 30.98/16.08 Used ordering: Polynomial interpretation [POLO]: 30.98/16.08 30.98/16.08 POL(Main.Succ(x_1)) = 1 + x_1 30.98/16.08 POL(Main.Zero) = 0 30.98/16.08 POL(new_primModNatS(x_1, x_2, x_3)) = x_1 30.98/16.08 POL(new_primModNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 30.98/16.08 POL(new_primModNatS00(x_1, x_2)) = 1 + x_1 30.98/16.08 POL(new_primModNatS1(x_1, x_2)) = x_1 30.98/16.08 30.98/16.08 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 30.98/16.08 none 30.98/16.08 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (42) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primModNatS0(ww77, ww78, Main.Zero, Main.Zero) -> new_primModNatS00(ww77, ww78) 30.98/16.08 new_primModNatS1(Main.Succ(Main.Succ(ww2700)), Main.Succ(Main.Succ(ww2800))) -> new_primModNatS0(Main.Succ(ww2700), ww2800, ww2700, ww2800) 30.98/16.08 new_primModNatS1(Main.Succ(Main.Zero), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Zero), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 30.98/16.08 new_primModNatS0(ww77, ww78, Main.Succ(ww790), Main.Succ(ww800)) -> new_primModNatS0(ww77, ww78, ww790, ww800) 30.98/16.08 new_primModNatS0(ww77, ww78, Main.Succ(ww790), Main.Zero) -> new_primModNatS(Main.Succ(ww77), Main.Succ(Main.Succ(ww78)), Main.Succ(Main.Succ(ww78))) 30.98/16.08 new_primModNatS1(Main.Succ(Main.Succ(ww2700)), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(Main.Succ(ww2700)), Main.Succ(Main.Zero), Main.Succ(Main.Zero)) 30.98/16.08 new_primModNatS00(ww77, ww78) -> new_primModNatS(Main.Succ(ww77), Main.Succ(Main.Succ(ww78)), Main.Succ(Main.Succ(ww78))) 30.98/16.08 30.98/16.08 R is empty. 30.98/16.08 Q is empty. 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (43) DependencyGraphProof (EQUIVALENT) 30.98/16.08 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 6 less nodes. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (44) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primModNatS0(ww77, ww78, Main.Succ(ww790), Main.Succ(ww800)) -> new_primModNatS0(ww77, ww78, ww790, ww800) 30.98/16.08 30.98/16.08 R is empty. 30.98/16.08 Q is empty. 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (45) QDPSizeChangeProof (EQUIVALENT) 30.98/16.08 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. 30.98/16.08 30.98/16.08 From the DPs we obtained the following set of size-change graphs: 30.98/16.08 *new_primModNatS0(ww77, ww78, Main.Succ(ww790), Main.Succ(ww800)) -> new_primModNatS0(ww77, ww78, ww790, ww800) 30.98/16.08 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 30.98/16.08 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (46) 30.98/16.08 YES 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (47) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS1(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS0(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS0(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS0(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS1(Main.Zero, Main.Zero) -> new_primDivNatS(Main.Zero, Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS00(ww66, ww67) -> new_primDivNatS(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67)) 30.98/16.08 new_primDivNatS(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS1(ww820, ww84) 30.98/16.08 new_primDivNatS1(Main.Succ(ww240), Main.Zero) -> new_primDivNatS(Main.Succ(ww240), Main.Zero, Main.Zero) 30.98/16.08 new_primDivNatS0(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67)) 30.98/16.08 new_primDivNatS0(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS00(ww66, ww67) 30.98/16.08 30.98/16.08 R is empty. 30.98/16.08 Q is empty. 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (48) DependencyGraphProof (EQUIVALENT) 30.98/16.08 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (49) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS1(ww820, ww84) 30.98/16.08 new_primDivNatS1(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS0(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS0(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS0(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS0(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67)) 30.98/16.08 new_primDivNatS(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS(ww820, ww830, ww84) 30.98/16.08 new_primDivNatS0(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS00(ww66, ww67) 30.98/16.08 new_primDivNatS00(ww66, ww67) -> new_primDivNatS(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67)) 30.98/16.08 new_primDivNatS1(Main.Succ(ww240), Main.Zero) -> new_primDivNatS(Main.Succ(ww240), Main.Zero, Main.Zero) 30.98/16.08 30.98/16.08 R is empty. 30.98/16.08 Q is empty. 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (50) QDPOrderProof (EQUIVALENT) 30.98/16.08 We use the reduction pair processor [LPAR04,JAR06]. 30.98/16.08 30.98/16.08 30.98/16.08 The following pairs can be oriented strictly and are deleted. 30.98/16.08 30.98/16.08 new_primDivNatS(Main.Succ(ww820), Main.Zero, ww84) -> new_primDivNatS1(ww820, ww84) 30.98/16.08 new_primDivNatS(Main.Succ(ww820), Main.Succ(ww830), ww84) -> new_primDivNatS(ww820, ww830, ww84) 30.98/16.08 The remaining pairs can at least be oriented weakly. 30.98/16.08 Used ordering: Polynomial interpretation [POLO]: 30.98/16.08 30.98/16.08 POL(Main.Succ(x_1)) = 1 + x_1 30.98/16.08 POL(Main.Zero) = 0 30.98/16.08 POL(new_primDivNatS(x_1, x_2, x_3)) = x_1 30.98/16.08 POL(new_primDivNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 30.98/16.08 POL(new_primDivNatS00(x_1, x_2)) = 1 + x_1 30.98/16.08 POL(new_primDivNatS1(x_1, x_2)) = x_1 30.98/16.08 30.98/16.08 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 30.98/16.08 none 30.98/16.08 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (51) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS1(Main.Succ(ww240), Main.Succ(ww250)) -> new_primDivNatS0(ww240, ww250, ww240, ww250) 30.98/16.08 new_primDivNatS0(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS0(ww66, ww67, ww680, ww690) 30.98/16.08 new_primDivNatS0(ww66, ww67, Main.Succ(ww680), Main.Zero) -> new_primDivNatS(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67)) 30.98/16.08 new_primDivNatS0(ww66, ww67, Main.Zero, Main.Zero) -> new_primDivNatS00(ww66, ww67) 30.98/16.08 new_primDivNatS00(ww66, ww67) -> new_primDivNatS(Main.Succ(ww66), Main.Succ(ww67), Main.Succ(ww67)) 30.98/16.08 new_primDivNatS1(Main.Succ(ww240), Main.Zero) -> new_primDivNatS(Main.Succ(ww240), Main.Zero, Main.Zero) 30.98/16.08 30.98/16.08 R is empty. 30.98/16.08 Q is empty. 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (52) DependencyGraphProof (EQUIVALENT) 30.98/16.08 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 5 less nodes. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (53) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_primDivNatS0(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS0(ww66, ww67, ww680, ww690) 30.98/16.08 30.98/16.08 R is empty. 30.98/16.08 Q is empty. 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (54) QDPSizeChangeProof (EQUIVALENT) 30.98/16.08 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. 30.98/16.08 30.98/16.08 From the DPs we obtained the following set of size-change graphs: 30.98/16.08 *new_primDivNatS0(ww66, ww67, Main.Succ(ww680), Main.Succ(ww690)) -> new_primDivNatS0(ww66, ww67, ww680, ww690) 30.98/16.08 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 30.98/16.08 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (55) 30.98/16.08 YES 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (56) 30.98/16.08 Obligation: 30.98/16.08 Q DP problem: 30.98/16.08 The TRS P consists of the following rules: 30.98/16.08 30.98/16.08 new_psPs(Cons(ww220, ww221), ww21) -> new_psPs(ww221, ww21) 30.98/16.08 30.98/16.08 R is empty. 30.98/16.08 Q is empty. 30.98/16.08 We have to consider all minimal (P,Q,R)-chains. 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (57) QDPSizeChangeProof (EQUIVALENT) 30.98/16.08 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. 30.98/16.08 30.98/16.08 From the DPs we obtained the following set of size-change graphs: 30.98/16.08 *new_psPs(Cons(ww220, ww221), ww21) -> new_psPs(ww221, ww21) 30.98/16.08 The graph contains the following edges 1 > 1, 2 >= 2 30.98/16.08 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (58) 30.98/16.08 YES 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (59) Narrow (COMPLETE) 30.98/16.08 Haskell To QDPs 30.98/16.08 30.98/16.08 digraph dp_graph { 30.98/16.08 node [outthreshold=100, inthreshold=100];1[label="showsPrecMyInt",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 30.98/16.08 3[label="showsPrecMyInt ww3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 30.98/16.08 4[label="showsPrecMyInt ww3 ww4",fontsize=16,color="grey",shape="box"];4 -> 5[label="",style="dashed", color="grey", weight=3]; 30.98/16.08 5[label="showsPrecMyInt ww3 ww4 ww5",fontsize=16,color="black",shape="triangle"];5 -> 6[label="",style="solid", color="black", weight=3]; 30.98/16.08 6 -> 36[label="",style="dashed", color="red", weight=0]; 30.98/16.08 6[label="psPs (showMyInt ww4) ww5",fontsize=16,color="magenta"];6 -> 37[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 6 -> 38[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 37[label="showMyInt ww4",fontsize=16,color="black",shape="box"];37 -> 52[label="",style="solid", color="black", weight=3]; 30.98/16.08 38[label="ww5",fontsize=16,color="green",shape="box"];36[label="psPs ww22 ww21",fontsize=16,color="burlywood",shape="triangle"];904[label="ww22/Cons ww220 ww221",fontsize=10,color="white",style="solid",shape="box"];36 -> 904[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 904 -> 53[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 905[label="ww22/Nil",fontsize=10,color="white",style="solid",shape="box"];36 -> 905[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 905 -> 54[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 52[label="primShowInt ww4",fontsize=16,color="burlywood",shape="triangle"];906[label="ww4/Pos ww40",fontsize=10,color="white",style="solid",shape="box"];52 -> 906[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 906 -> 55[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 907[label="ww4/Neg ww40",fontsize=10,color="white",style="solid",shape="box"];52 -> 907[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 907 -> 56[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 53[label="psPs (Cons ww220 ww221) ww21",fontsize=16,color="black",shape="box"];53 -> 57[label="",style="solid", color="black", weight=3]; 30.98/16.08 54[label="psPs Nil ww21",fontsize=16,color="black",shape="box"];54 -> 58[label="",style="solid", color="black", weight=3]; 30.98/16.08 55[label="primShowInt (Pos ww40)",fontsize=16,color="burlywood",shape="box"];908[label="ww40/Succ ww400",fontsize=10,color="white",style="solid",shape="box"];55 -> 908[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 908 -> 59[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 909[label="ww40/Zero",fontsize=10,color="white",style="solid",shape="box"];55 -> 909[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 909 -> 60[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 56[label="primShowInt (Neg ww40)",fontsize=16,color="black",shape="box"];56 -> 61[label="",style="solid", color="black", weight=3]; 30.98/16.08 57[label="Cons ww220 (psPs ww221 ww21)",fontsize=16,color="green",shape="box"];57 -> 62[label="",style="dashed", color="green", weight=3]; 30.98/16.08 58[label="ww21",fontsize=16,color="green",shape="box"];59[label="primShowInt (Pos (Succ ww400))",fontsize=16,color="black",shape="box"];59 -> 63[label="",style="solid", color="black", weight=3]; 30.98/16.08 60[label="primShowInt (Pos Zero)",fontsize=16,color="black",shape="box"];60 -> 64[label="",style="solid", color="black", weight=3]; 30.98/16.08 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 ww40))",fontsize=16,color="green",shape="box"];61 -> 65[label="",style="dashed", color="green", weight=3]; 30.98/16.08 62 -> 36[label="",style="dashed", color="red", weight=0]; 30.98/16.08 62[label="psPs ww221 ww21",fontsize=16,color="magenta"];62 -> 66[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 63 -> 36[label="",style="dashed", color="red", weight=0]; 30.98/16.08 63[label="psPs (primShowInt (divMyInt (Pos (Succ ww400)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (Cons (toEnumChar (modMyInt (Pos (Succ ww400)) (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]; 30.98/16.08 63 -> 68[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 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]; 30.98/16.08 65[label="primShowInt (Pos ww40)",fontsize=16,color="magenta"];65 -> 69[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 66[label="ww221",fontsize=16,color="green",shape="box"];67 -> 52[label="",style="dashed", color="red", weight=0]; 30.98/16.08 67[label="primShowInt (divMyInt (Pos (Succ ww400)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))",fontsize=16,color="magenta"];67 -> 70[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 68[label="Cons (toEnumChar (modMyInt (Pos (Succ ww400)) (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) Nil",fontsize=16,color="green",shape="box"];68 -> 71[label="",style="dashed", color="green", weight=3]; 30.98/16.08 69[label="Pos ww40",fontsize=16,color="green",shape="box"];70 -> 72[label="",style="dashed", color="red", weight=0]; 30.98/16.08 70[label="divMyInt (Pos (Succ ww400)) (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]; 30.98/16.08 70 -> 74[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 71 -> 75[label="",style="dashed", color="red", weight=0]; 30.98/16.08 71[label="toEnumChar (modMyInt (Pos (Succ ww400)) (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]; 30.98/16.08 71 -> 77[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 73[label="ww400",fontsize=16,color="green",shape="box"];74[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];72[label="divMyInt (Pos (Succ ww24)) (Pos (Succ ww25))",fontsize=16,color="black",shape="triangle"];72 -> 78[label="",style="solid", color="black", weight=3]; 30.98/16.08 76[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];77[label="ww400",fontsize=16,color="green",shape="box"];75[label="toEnumChar (modMyInt (Pos (Succ ww27)) (Pos (Succ ww28)))",fontsize=16,color="black",shape="triangle"];75 -> 79[label="",style="solid", color="black", weight=3]; 30.98/16.08 78[label="primDivInt (Pos (Succ ww24)) (Pos (Succ ww25))",fontsize=16,color="black",shape="box"];78 -> 80[label="",style="solid", color="black", weight=3]; 30.98/16.08 79[label="primIntToChar (modMyInt (Pos (Succ ww27)) (Pos (Succ ww28)))",fontsize=16,color="black",shape="box"];79 -> 81[label="",style="solid", color="black", weight=3]; 30.98/16.08 80[label="Pos (primDivNatS (Succ ww24) (Succ ww25))",fontsize=16,color="green",shape="box"];80 -> 82[label="",style="dashed", color="green", weight=3]; 30.98/16.08 81[label="Char (modMyInt (Pos (Succ ww27)) (Pos (Succ ww28)))",fontsize=16,color="green",shape="box"];81 -> 83[label="",style="dashed", color="green", weight=3]; 30.98/16.08 82[label="primDivNatS (Succ ww24) (Succ ww25)",fontsize=16,color="black",shape="triangle"];82 -> 84[label="",style="solid", color="black", weight=3]; 30.98/16.08 83[label="modMyInt (Pos (Succ ww27)) (Pos (Succ ww28))",fontsize=16,color="black",shape="box"];83 -> 85[label="",style="solid", color="black", weight=3]; 30.98/16.08 84[label="primDivNatS0 ww24 ww25 (primGEqNatS ww24 ww25)",fontsize=16,color="burlywood",shape="box"];910[label="ww24/Succ ww240",fontsize=10,color="white",style="solid",shape="box"];84 -> 910[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 910 -> 86[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 911[label="ww24/Zero",fontsize=10,color="white",style="solid",shape="box"];84 -> 911[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 911 -> 87[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 85[label="primModInt (Pos (Succ ww27)) (Pos (Succ ww28))",fontsize=16,color="black",shape="box"];85 -> 88[label="",style="solid", color="black", weight=3]; 30.98/16.08 86[label="primDivNatS0 (Succ ww240) ww25 (primGEqNatS (Succ ww240) ww25)",fontsize=16,color="burlywood",shape="box"];912[label="ww25/Succ ww250",fontsize=10,color="white",style="solid",shape="box"];86 -> 912[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 912 -> 89[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 913[label="ww25/Zero",fontsize=10,color="white",style="solid",shape="box"];86 -> 913[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 913 -> 90[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 87[label="primDivNatS0 Zero ww25 (primGEqNatS Zero ww25)",fontsize=16,color="burlywood",shape="box"];914[label="ww25/Succ ww250",fontsize=10,color="white",style="solid",shape="box"];87 -> 914[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 914 -> 91[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 915[label="ww25/Zero",fontsize=10,color="white",style="solid",shape="box"];87 -> 915[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 915 -> 92[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 88[label="Pos (primModNatS (Succ ww27) (Succ ww28))",fontsize=16,color="green",shape="box"];88 -> 93[label="",style="dashed", color="green", weight=3]; 30.98/16.08 89[label="primDivNatS0 (Succ ww240) (Succ ww250) (primGEqNatS (Succ ww240) (Succ ww250))",fontsize=16,color="black",shape="box"];89 -> 94[label="",style="solid", color="black", weight=3]; 30.98/16.08 90[label="primDivNatS0 (Succ ww240) Zero (primGEqNatS (Succ ww240) Zero)",fontsize=16,color="black",shape="box"];90 -> 95[label="",style="solid", color="black", weight=3]; 30.98/16.08 91[label="primDivNatS0 Zero (Succ ww250) (primGEqNatS Zero (Succ ww250))",fontsize=16,color="black",shape="box"];91 -> 96[label="",style="solid", color="black", weight=3]; 30.98/16.08 92[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];92 -> 97[label="",style="solid", color="black", weight=3]; 30.98/16.08 93[label="primModNatS (Succ ww27) (Succ ww28)",fontsize=16,color="burlywood",shape="triangle"];916[label="ww28/Succ ww280",fontsize=10,color="white",style="solid",shape="box"];93 -> 916[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 916 -> 98[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 917[label="ww28/Zero",fontsize=10,color="white",style="solid",shape="box"];93 -> 917[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 917 -> 99[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 94 -> 509[label="",style="dashed", color="red", weight=0]; 30.98/16.08 94[label="primDivNatS0 (Succ ww240) (Succ ww250) (primGEqNatS ww240 ww250)",fontsize=16,color="magenta"];94 -> 510[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 94 -> 511[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 94 -> 512[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 94 -> 513[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 95[label="primDivNatS0 (Succ ww240) Zero MyTrue",fontsize=16,color="black",shape="box"];95 -> 102[label="",style="solid", color="black", weight=3]; 30.98/16.08 96[label="primDivNatS0 Zero (Succ ww250) MyFalse",fontsize=16,color="black",shape="box"];96 -> 103[label="",style="solid", color="black", weight=3]; 30.98/16.08 97[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];97 -> 104[label="",style="solid", color="black", weight=3]; 30.98/16.08 98[label="primModNatS (Succ ww27) (Succ (Succ ww280))",fontsize=16,color="black",shape="box"];98 -> 105[label="",style="solid", color="black", weight=3]; 30.98/16.08 99[label="primModNatS (Succ ww27) (Succ Zero)",fontsize=16,color="black",shape="box"];99 -> 106[label="",style="solid", color="black", weight=3]; 30.98/16.08 510[label="ww250",fontsize=16,color="green",shape="box"];511[label="ww240",fontsize=16,color="green",shape="box"];512[label="ww240",fontsize=16,color="green",shape="box"];513[label="ww250",fontsize=16,color="green",shape="box"];509[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS ww68 ww69)",fontsize=16,color="burlywood",shape="triangle"];918[label="ww68/Succ ww680",fontsize=10,color="white",style="solid",shape="box"];509 -> 918[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 918 -> 550[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 919[label="ww68/Zero",fontsize=10,color="white",style="solid",shape="box"];509 -> 919[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 919 -> 551[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 102[label="Succ (primDivNatS (primMinusNatS (Succ ww240) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];102 -> 111[label="",style="dashed", color="green", weight=3]; 30.98/16.08 103[label="Zero",fontsize=16,color="green",shape="box"];104[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];104 -> 112[label="",style="dashed", color="green", weight=3]; 30.98/16.08 105[label="primModNatS0 ww27 ww280 (primGEqNatS ww27 (Succ ww280))",fontsize=16,color="burlywood",shape="box"];920[label="ww27/Succ ww270",fontsize=10,color="white",style="solid",shape="box"];105 -> 920[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 920 -> 113[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 921[label="ww27/Zero",fontsize=10,color="white",style="solid",shape="box"];105 -> 921[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 921 -> 114[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 106[label="Zero",fontsize=16,color="green",shape="box"];550[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS (Succ ww680) ww69)",fontsize=16,color="burlywood",shape="box"];922[label="ww69/Succ ww690",fontsize=10,color="white",style="solid",shape="box"];550 -> 922[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 922 -> 574[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 923[label="ww69/Zero",fontsize=10,color="white",style="solid",shape="box"];550 -> 923[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 923 -> 575[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 551[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS Zero ww69)",fontsize=16,color="burlywood",shape="box"];924[label="ww69/Succ ww690",fontsize=10,color="white",style="solid",shape="box"];551 -> 924[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 924 -> 576[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 925[label="ww69/Zero",fontsize=10,color="white",style="solid",shape="box"];551 -> 925[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 925 -> 577[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 111 -> 800[label="",style="dashed", color="red", weight=0]; 30.98/16.08 111[label="primDivNatS (primMinusNatS (Succ ww240) Zero) (Succ Zero)",fontsize=16,color="magenta"];111 -> 801[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 111 -> 802[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 111 -> 803[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 112 -> 800[label="",style="dashed", color="red", weight=0]; 30.98/16.08 112[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];112 -> 804[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 112 -> 805[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 112 -> 806[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 113[label="primModNatS0 (Succ ww270) ww280 (primGEqNatS (Succ ww270) (Succ ww280))",fontsize=16,color="black",shape="box"];113 -> 121[label="",style="solid", color="black", weight=3]; 30.98/16.08 114[label="primModNatS0 Zero ww280 (primGEqNatS Zero (Succ ww280))",fontsize=16,color="black",shape="box"];114 -> 122[label="",style="solid", color="black", weight=3]; 30.98/16.08 574[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS (Succ ww680) (Succ ww690))",fontsize=16,color="black",shape="box"];574 -> 589[label="",style="solid", color="black", weight=3]; 30.98/16.08 575[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS (Succ ww680) Zero)",fontsize=16,color="black",shape="box"];575 -> 590[label="",style="solid", color="black", weight=3]; 30.98/16.08 576[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS Zero (Succ ww690))",fontsize=16,color="black",shape="box"];576 -> 591[label="",style="solid", color="black", weight=3]; 30.98/16.08 577[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];577 -> 592[label="",style="solid", color="black", weight=3]; 30.98/16.08 801[label="Zero",fontsize=16,color="green",shape="box"];802[label="Succ ww240",fontsize=16,color="green",shape="box"];803[label="Zero",fontsize=16,color="green",shape="box"];800[label="primDivNatS (primMinusNatS ww82 ww83) (Succ ww84)",fontsize=16,color="burlywood",shape="triangle"];926[label="ww82/Succ ww820",fontsize=10,color="white",style="solid",shape="box"];800 -> 926[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 926 -> 825[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 927[label="ww82/Zero",fontsize=10,color="white",style="solid",shape="box"];800 -> 927[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 927 -> 826[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 804[label="Zero",fontsize=16,color="green",shape="box"];805[label="Zero",fontsize=16,color="green",shape="box"];806[label="Zero",fontsize=16,color="green",shape="box"];121[label="primModNatS0 (Succ ww270) ww280 (primGEqNatS ww270 ww280)",fontsize=16,color="burlywood",shape="box"];928[label="ww270/Succ ww2700",fontsize=10,color="white",style="solid",shape="box"];121 -> 928[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 928 -> 131[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 929[label="ww270/Zero",fontsize=10,color="white",style="solid",shape="box"];121 -> 929[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 929 -> 132[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 122[label="primModNatS0 Zero ww280 MyFalse",fontsize=16,color="black",shape="box"];122 -> 133[label="",style="solid", color="black", weight=3]; 30.98/16.08 589 -> 509[label="",style="dashed", color="red", weight=0]; 30.98/16.08 589[label="primDivNatS0 (Succ ww66) (Succ ww67) (primGEqNatS ww680 ww690)",fontsize=16,color="magenta"];589 -> 604[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 589 -> 605[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 590[label="primDivNatS0 (Succ ww66) (Succ ww67) MyTrue",fontsize=16,color="black",shape="triangle"];590 -> 606[label="",style="solid", color="black", weight=3]; 30.98/16.08 591[label="primDivNatS0 (Succ ww66) (Succ ww67) MyFalse",fontsize=16,color="black",shape="box"];591 -> 607[label="",style="solid", color="black", weight=3]; 30.98/16.08 592 -> 590[label="",style="dashed", color="red", weight=0]; 30.98/16.08 592[label="primDivNatS0 (Succ ww66) (Succ ww67) MyTrue",fontsize=16,color="magenta"];825[label="primDivNatS (primMinusNatS (Succ ww820) ww83) (Succ ww84)",fontsize=16,color="burlywood",shape="box"];930[label="ww83/Succ ww830",fontsize=10,color="white",style="solid",shape="box"];825 -> 930[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 930 -> 831[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 931[label="ww83/Zero",fontsize=10,color="white",style="solid",shape="box"];825 -> 931[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 931 -> 832[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 826[label="primDivNatS (primMinusNatS Zero ww83) (Succ ww84)",fontsize=16,color="burlywood",shape="box"];932[label="ww83/Succ ww830",fontsize=10,color="white",style="solid",shape="box"];826 -> 932[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 932 -> 833[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 933[label="ww83/Zero",fontsize=10,color="white",style="solid",shape="box"];826 -> 933[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 933 -> 834[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 131[label="primModNatS0 (Succ (Succ ww2700)) ww280 (primGEqNatS (Succ ww2700) ww280)",fontsize=16,color="burlywood",shape="box"];934[label="ww280/Succ ww2800",fontsize=10,color="white",style="solid",shape="box"];131 -> 934[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 934 -> 140[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 935[label="ww280/Zero",fontsize=10,color="white",style="solid",shape="box"];131 -> 935[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 935 -> 141[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 132[label="primModNatS0 (Succ Zero) ww280 (primGEqNatS Zero ww280)",fontsize=16,color="burlywood",shape="box"];936[label="ww280/Succ ww2800",fontsize=10,color="white",style="solid",shape="box"];132 -> 936[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 936 -> 142[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 937[label="ww280/Zero",fontsize=10,color="white",style="solid",shape="box"];132 -> 937[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 937 -> 143[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 133[label="Succ Zero",fontsize=16,color="green",shape="box"];604[label="ww680",fontsize=16,color="green",shape="box"];605[label="ww690",fontsize=16,color="green",shape="box"];606[label="Succ (primDivNatS (primMinusNatS (Succ ww66) (Succ ww67)) (Succ (Succ ww67)))",fontsize=16,color="green",shape="box"];606 -> 650[label="",style="dashed", color="green", weight=3]; 30.98/16.08 607[label="Zero",fontsize=16,color="green",shape="box"];831[label="primDivNatS (primMinusNatS (Succ ww820) (Succ ww830)) (Succ ww84)",fontsize=16,color="black",shape="box"];831 -> 841[label="",style="solid", color="black", weight=3]; 30.98/16.08 832[label="primDivNatS (primMinusNatS (Succ ww820) Zero) (Succ ww84)",fontsize=16,color="black",shape="box"];832 -> 842[label="",style="solid", color="black", weight=3]; 30.98/16.08 833[label="primDivNatS (primMinusNatS Zero (Succ ww830)) (Succ ww84)",fontsize=16,color="black",shape="box"];833 -> 843[label="",style="solid", color="black", weight=3]; 30.98/16.08 834[label="primDivNatS (primMinusNatS Zero Zero) (Succ ww84)",fontsize=16,color="black",shape="box"];834 -> 844[label="",style="solid", color="black", weight=3]; 30.98/16.08 140[label="primModNatS0 (Succ (Succ ww2700)) (Succ ww2800) (primGEqNatS (Succ ww2700) (Succ ww2800))",fontsize=16,color="black",shape="box"];140 -> 150[label="",style="solid", color="black", weight=3]; 30.98/16.08 141[label="primModNatS0 (Succ (Succ ww2700)) Zero (primGEqNatS (Succ ww2700) Zero)",fontsize=16,color="black",shape="box"];141 -> 151[label="",style="solid", color="black", weight=3]; 30.98/16.08 142[label="primModNatS0 (Succ Zero) (Succ ww2800) (primGEqNatS Zero (Succ ww2800))",fontsize=16,color="black",shape="box"];142 -> 152[label="",style="solid", color="black", weight=3]; 30.98/16.08 143[label="primModNatS0 (Succ Zero) Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];143 -> 153[label="",style="solid", color="black", weight=3]; 30.98/16.08 650 -> 800[label="",style="dashed", color="red", weight=0]; 30.98/16.08 650[label="primDivNatS (primMinusNatS (Succ ww66) (Succ ww67)) (Succ (Succ ww67))",fontsize=16,color="magenta"];650 -> 807[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 650 -> 808[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 650 -> 809[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 841 -> 800[label="",style="dashed", color="red", weight=0]; 30.98/16.08 841[label="primDivNatS (primMinusNatS ww820 ww830) (Succ ww84)",fontsize=16,color="magenta"];841 -> 849[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 841 -> 850[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 842 -> 82[label="",style="dashed", color="red", weight=0]; 30.98/16.08 842[label="primDivNatS (Succ ww820) (Succ ww84)",fontsize=16,color="magenta"];842 -> 851[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 842 -> 852[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 843[label="primDivNatS Zero (Succ ww84)",fontsize=16,color="black",shape="triangle"];843 -> 853[label="",style="solid", color="black", weight=3]; 30.98/16.08 844 -> 843[label="",style="dashed", color="red", weight=0]; 30.98/16.08 844[label="primDivNatS Zero (Succ ww84)",fontsize=16,color="magenta"];150 -> 668[label="",style="dashed", color="red", weight=0]; 30.98/16.08 150[label="primModNatS0 (Succ (Succ ww2700)) (Succ ww2800) (primGEqNatS ww2700 ww2800)",fontsize=16,color="magenta"];150 -> 669[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 150 -> 670[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 150 -> 671[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 150 -> 672[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 151[label="primModNatS0 (Succ (Succ ww2700)) Zero MyTrue",fontsize=16,color="black",shape="box"];151 -> 163[label="",style="solid", color="black", weight=3]; 30.98/16.08 152 -> 555[label="",style="dashed", color="red", weight=0]; 30.98/16.08 152[label="primModNatS0 (Succ Zero) (Succ ww2800) MyFalse",fontsize=16,color="magenta"];152 -> 556[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 152 -> 557[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 153[label="primModNatS0 (Succ Zero) Zero MyTrue",fontsize=16,color="black",shape="box"];153 -> 165[label="",style="solid", color="black", weight=3]; 30.98/16.08 807[label="Succ ww67",fontsize=16,color="green",shape="box"];808[label="Succ ww66",fontsize=16,color="green",shape="box"];809[label="Succ ww67",fontsize=16,color="green",shape="box"];849[label="ww830",fontsize=16,color="green",shape="box"];850[label="ww820",fontsize=16,color="green",shape="box"];851[label="ww820",fontsize=16,color="green",shape="box"];852[label="ww84",fontsize=16,color="green",shape="box"];853[label="Zero",fontsize=16,color="green",shape="box"];669[label="ww2800",fontsize=16,color="green",shape="box"];670[label="ww2700",fontsize=16,color="green",shape="box"];671[label="Succ ww2700",fontsize=16,color="green",shape="box"];672[label="ww2800",fontsize=16,color="green",shape="box"];668[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS ww79 ww80)",fontsize=16,color="burlywood",shape="triangle"];938[label="ww79/Succ ww790",fontsize=10,color="white",style="solid",shape="box"];668 -> 938[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 938 -> 709[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 939[label="ww79/Zero",fontsize=10,color="white",style="solid",shape="box"];668 -> 939[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 939 -> 710[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 163 -> 858[label="",style="dashed", color="red", weight=0]; 30.98/16.08 163[label="primModNatS (primMinusNatS (Succ (Succ ww2700)) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];163 -> 859[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 163 -> 860[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 163 -> 861[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 556[label="Zero",fontsize=16,color="green",shape="box"];557[label="ww2800",fontsize=16,color="green",shape="box"];555[label="primModNatS0 (Succ ww71) (Succ ww72) MyFalse",fontsize=16,color="black",shape="triangle"];555 -> 578[label="",style="solid", color="black", weight=3]; 30.98/16.08 165 -> 858[label="",style="dashed", color="red", weight=0]; 30.98/16.08 165[label="primModNatS (primMinusNatS (Succ Zero) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];165 -> 862[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 165 -> 863[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 165 -> 864[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 709[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS (Succ ww790) ww80)",fontsize=16,color="burlywood",shape="box"];940[label="ww80/Succ ww800",fontsize=10,color="white",style="solid",shape="box"];709 -> 940[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 940 -> 715[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 941[label="ww80/Zero",fontsize=10,color="white",style="solid",shape="box"];709 -> 941[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 941 -> 716[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 710[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS Zero ww80)",fontsize=16,color="burlywood",shape="box"];942[label="ww80/Succ ww800",fontsize=10,color="white",style="solid",shape="box"];710 -> 942[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 942 -> 717[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 943[label="ww80/Zero",fontsize=10,color="white",style="solid",shape="box"];710 -> 943[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 943 -> 718[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 859[label="Succ Zero",fontsize=16,color="green",shape="box"];860[label="Succ Zero",fontsize=16,color="green",shape="box"];861[label="Succ (Succ ww2700)",fontsize=16,color="green",shape="box"];858[label="primModNatS (primMinusNatS ww86 ww87) (Succ ww88)",fontsize=16,color="burlywood",shape="triangle"];944[label="ww86/Succ ww860",fontsize=10,color="white",style="solid",shape="box"];858 -> 944[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 944 -> 889[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 945[label="ww86/Zero",fontsize=10,color="white",style="solid",shape="box"];858 -> 945[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 945 -> 890[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 578[label="Succ (Succ ww71)",fontsize=16,color="green",shape="box"];862[label="Succ Zero",fontsize=16,color="green",shape="box"];863[label="Succ Zero",fontsize=16,color="green",shape="box"];864[label="Succ Zero",fontsize=16,color="green",shape="box"];715[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS (Succ ww790) (Succ ww800))",fontsize=16,color="black",shape="box"];715 -> 723[label="",style="solid", color="black", weight=3]; 30.98/16.08 716[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS (Succ ww790) Zero)",fontsize=16,color="black",shape="box"];716 -> 724[label="",style="solid", color="black", weight=3]; 30.98/16.08 717[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS Zero (Succ ww800))",fontsize=16,color="black",shape="box"];717 -> 725[label="",style="solid", color="black", weight=3]; 30.98/16.08 718[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];718 -> 726[label="",style="solid", color="black", weight=3]; 30.98/16.08 889[label="primModNatS (primMinusNatS (Succ ww860) ww87) (Succ ww88)",fontsize=16,color="burlywood",shape="box"];946[label="ww87/Succ ww870",fontsize=10,color="white",style="solid",shape="box"];889 -> 946[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 946 -> 891[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 947[label="ww87/Zero",fontsize=10,color="white",style="solid",shape="box"];889 -> 947[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 947 -> 892[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 890[label="primModNatS (primMinusNatS Zero ww87) (Succ ww88)",fontsize=16,color="burlywood",shape="box"];948[label="ww87/Succ ww870",fontsize=10,color="white",style="solid",shape="box"];890 -> 948[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 948 -> 893[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 949[label="ww87/Zero",fontsize=10,color="white",style="solid",shape="box"];890 -> 949[label="",style="solid", color="burlywood", weight=9]; 30.98/16.08 949 -> 894[label="",style="solid", color="burlywood", weight=3]; 30.98/16.08 723 -> 668[label="",style="dashed", color="red", weight=0]; 30.98/16.08 723[label="primModNatS0 (Succ ww77) (Succ ww78) (primGEqNatS ww790 ww800)",fontsize=16,color="magenta"];723 -> 733[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 723 -> 734[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 724[label="primModNatS0 (Succ ww77) (Succ ww78) MyTrue",fontsize=16,color="black",shape="triangle"];724 -> 735[label="",style="solid", color="black", weight=3]; 30.98/16.08 725 -> 555[label="",style="dashed", color="red", weight=0]; 30.98/16.08 725[label="primModNatS0 (Succ ww77) (Succ ww78) MyFalse",fontsize=16,color="magenta"];725 -> 736[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 725 -> 737[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 726 -> 724[label="",style="dashed", color="red", weight=0]; 30.98/16.08 726[label="primModNatS0 (Succ ww77) (Succ ww78) MyTrue",fontsize=16,color="magenta"];891[label="primModNatS (primMinusNatS (Succ ww860) (Succ ww870)) (Succ ww88)",fontsize=16,color="black",shape="box"];891 -> 895[label="",style="solid", color="black", weight=3]; 30.98/16.08 892[label="primModNatS (primMinusNatS (Succ ww860) Zero) (Succ ww88)",fontsize=16,color="black",shape="box"];892 -> 896[label="",style="solid", color="black", weight=3]; 30.98/16.08 893[label="primModNatS (primMinusNatS Zero (Succ ww870)) (Succ ww88)",fontsize=16,color="black",shape="box"];893 -> 897[label="",style="solid", color="black", weight=3]; 30.98/16.08 894[label="primModNatS (primMinusNatS Zero Zero) (Succ ww88)",fontsize=16,color="black",shape="box"];894 -> 898[label="",style="solid", color="black", weight=3]; 30.98/16.08 733[label="ww790",fontsize=16,color="green",shape="box"];734[label="ww800",fontsize=16,color="green",shape="box"];735 -> 858[label="",style="dashed", color="red", weight=0]; 30.98/16.08 735[label="primModNatS (primMinusNatS (Succ ww77) (Succ (Succ ww78))) (Succ (Succ (Succ ww78)))",fontsize=16,color="magenta"];735 -> 871[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 735 -> 872[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 735 -> 873[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 736[label="ww77",fontsize=16,color="green",shape="box"];737[label="ww78",fontsize=16,color="green",shape="box"];895 -> 858[label="",style="dashed", color="red", weight=0]; 30.98/16.08 895[label="primModNatS (primMinusNatS ww860 ww870) (Succ ww88)",fontsize=16,color="magenta"];895 -> 899[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 895 -> 900[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 896 -> 93[label="",style="dashed", color="red", weight=0]; 30.98/16.08 896[label="primModNatS (Succ ww860) (Succ ww88)",fontsize=16,color="magenta"];896 -> 901[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 896 -> 902[label="",style="dashed", color="magenta", weight=3]; 30.98/16.08 897[label="primModNatS Zero (Succ ww88)",fontsize=16,color="black",shape="triangle"];897 -> 903[label="",style="solid", color="black", weight=3]; 30.98/16.08 898 -> 897[label="",style="dashed", color="red", weight=0]; 30.98/16.08 898[label="primModNatS Zero (Succ ww88)",fontsize=16,color="magenta"];871[label="Succ (Succ ww78)",fontsize=16,color="green",shape="box"];872[label="Succ (Succ ww78)",fontsize=16,color="green",shape="box"];873[label="Succ ww77",fontsize=16,color="green",shape="box"];899[label="ww870",fontsize=16,color="green",shape="box"];900[label="ww860",fontsize=16,color="green",shape="box"];901[label="ww88",fontsize=16,color="green",shape="box"];902[label="ww860",fontsize=16,color="green",shape="box"];903[label="Zero",fontsize=16,color="green",shape="box"];} 30.98/16.08 30.98/16.08 ---------------------------------------- 30.98/16.08 30.98/16.08 (60) 30.98/16.08 TRUE 31.17/16.14 EOF