10.96/4.67 YES 13.22/5.28 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 13.22/5.28 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 13.22/5.28 13.22/5.28 13.22/5.28 H-Termination with start terms of the given HASKELL could be proven: 13.22/5.28 13.22/5.28 (0) HASKELL 13.22/5.28 (1) BR [EQUIVALENT, 0 ms] 13.22/5.28 (2) HASKELL 13.22/5.28 (3) COR [EQUIVALENT, 0 ms] 13.22/5.28 (4) HASKELL 13.22/5.28 (5) Narrow [SOUND, 0 ms] 13.22/5.28 (6) AND 13.22/5.28 (7) QDP 13.22/5.28 (8) QDPSizeChangeProof [EQUIVALENT, 0 ms] 13.22/5.28 (9) YES 13.22/5.28 (10) QDP 13.22/5.28 (11) QDPSizeChangeProof [EQUIVALENT, 0 ms] 13.22/5.28 (12) YES 13.22/5.28 13.22/5.28 13.22/5.28 ---------------------------------------- 13.22/5.28 13.22/5.28 (0) 13.22/5.28 Obligation: 13.22/5.28 mainModule Main 13.22/5.28 module Main where { 13.22/5.28 import qualified Prelude; 13.22/5.28 data Main.Char = Char MyInt ; 13.22/5.28 13.22/5.28 data MyBool = MyTrue | MyFalse ; 13.22/5.28 13.22/5.28 data MyInt = Pos Main.Nat | Neg Main.Nat ; 13.22/5.28 13.22/5.28 data Main.Nat = Succ Main.Nat | Zero ; 13.22/5.28 13.22/5.28 esEsChar :: Main.Char -> Main.Char -> MyBool; 13.22/5.28 esEsChar = primEqChar; 13.22/5.28 13.22/5.28 isSpace :: Main.Char -> MyBool; 13.22/5.28 isSpace c = pePe (esEsChar c (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))) (pePe (esEsChar c (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))) (pePe (esEsChar c (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.Zero))))))))))))) (pePe (esEsChar c (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.Zero)))))))))))))))) (pePe (esEsChar c (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.Zero))))))))))))))) (pePe (esEsChar c (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.Zero)))))))))))))) (esEsChar c (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.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.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)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); 13.22/5.28 13.22/5.28 pePe :: MyBool -> MyBool -> MyBool; 13.22/5.28 pePe MyFalse x = x; 13.22/5.28 pePe MyTrue x = MyTrue; 13.22/5.28 13.22/5.28 primEqChar :: Main.Char -> Main.Char -> MyBool; 13.22/5.28 primEqChar (Main.Char x) (Main.Char y) = primEqInt x y; 13.22/5.28 13.22/5.28 primEqInt :: MyInt -> MyInt -> MyBool; 13.22/5.28 primEqInt (Main.Pos (Main.Succ x)) (Main.Pos (Main.Succ y)) = primEqNat x y; 13.22/5.28 primEqInt (Main.Neg (Main.Succ x)) (Main.Neg (Main.Succ y)) = primEqNat x y; 13.22/5.28 primEqInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = MyTrue; 13.22/5.28 primEqInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = MyTrue; 13.22/5.28 primEqInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = MyTrue; 13.22/5.28 primEqInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = MyTrue; 13.22/5.28 primEqInt vv vw = MyFalse; 13.22/5.28 13.22/5.28 primEqNat :: Main.Nat -> Main.Nat -> MyBool; 13.22/5.28 primEqNat Main.Zero Main.Zero = MyTrue; 13.22/5.28 primEqNat Main.Zero (Main.Succ y) = MyFalse; 13.22/5.28 primEqNat (Main.Succ x) Main.Zero = MyFalse; 13.22/5.28 primEqNat (Main.Succ x) (Main.Succ y) = primEqNat x y; 13.22/5.28 13.22/5.28 } 13.22/5.28 13.22/5.28 ---------------------------------------- 13.22/5.28 13.22/5.28 (1) BR (EQUIVALENT) 13.22/5.28 Replaced joker patterns by fresh variables and removed binding patterns. 13.22/5.28 ---------------------------------------- 13.22/5.28 13.22/5.28 (2) 13.22/5.28 Obligation: 13.22/5.28 mainModule Main 13.22/5.28 module Main where { 13.22/5.28 import qualified Prelude; 13.22/5.28 data Main.Char = Char MyInt ; 13.22/5.28 13.22/5.28 data MyBool = MyTrue | MyFalse ; 13.22/5.28 13.22/5.28 data MyInt = Pos Main.Nat | Neg Main.Nat ; 13.22/5.28 13.22/5.28 data Main.Nat = Succ Main.Nat | Zero ; 13.22/5.28 13.22/5.28 esEsChar :: Main.Char -> Main.Char -> MyBool; 13.22/5.28 esEsChar = primEqChar; 13.22/5.28 13.22/5.28 isSpace :: Main.Char -> MyBool; 13.22/5.28 isSpace c = pePe (esEsChar c (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))) (pePe (esEsChar c (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))) (pePe (esEsChar c (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.Zero))))))))))))) (pePe (esEsChar c (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.Zero)))))))))))))))) (pePe (esEsChar c (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.Zero))))))))))))))) (pePe (esEsChar c (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.Zero)))))))))))))) (esEsChar c (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.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.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)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); 13.22/5.28 13.22/5.28 pePe :: MyBool -> MyBool -> MyBool; 13.22/5.28 pePe MyFalse x = x; 13.22/5.28 pePe MyTrue x = MyTrue; 13.22/5.28 13.22/5.28 primEqChar :: Main.Char -> Main.Char -> MyBool; 13.22/5.28 primEqChar (Main.Char x) (Main.Char y) = primEqInt x y; 13.22/5.28 13.22/5.28 primEqInt :: MyInt -> MyInt -> MyBool; 13.22/5.28 primEqInt (Main.Pos (Main.Succ x)) (Main.Pos (Main.Succ y)) = primEqNat x y; 13.22/5.28 primEqInt (Main.Neg (Main.Succ x)) (Main.Neg (Main.Succ y)) = primEqNat x y; 13.22/5.28 primEqInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = MyTrue; 13.22/5.28 primEqInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = MyTrue; 13.22/5.28 primEqInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = MyTrue; 13.22/5.28 primEqInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = MyTrue; 13.22/5.28 primEqInt vv vw = MyFalse; 13.22/5.28 13.22/5.28 primEqNat :: Main.Nat -> Main.Nat -> MyBool; 13.22/5.28 primEqNat Main.Zero Main.Zero = MyTrue; 13.22/5.28 primEqNat Main.Zero (Main.Succ y) = MyFalse; 13.22/5.28 primEqNat (Main.Succ x) Main.Zero = MyFalse; 13.22/5.28 primEqNat (Main.Succ x) (Main.Succ y) = primEqNat x y; 13.22/5.28 13.22/5.28 } 13.22/5.28 13.22/5.28 ---------------------------------------- 13.22/5.28 13.22/5.28 (3) COR (EQUIVALENT) 13.22/5.28 Cond Reductions: 13.22/5.28 The following Function with conditions 13.22/5.28 "undefined |Falseundefined; 13.22/5.28 " 13.22/5.28 is transformed to 13.22/5.28 "undefined = undefined1; 13.22/5.28 " 13.22/5.28 "undefined0 True = undefined; 13.22/5.28 " 13.22/5.28 "undefined1 = undefined0 False; 13.22/5.28 " 13.22/5.28 13.22/5.28 ---------------------------------------- 13.22/5.28 13.22/5.28 (4) 13.22/5.28 Obligation: 13.22/5.28 mainModule Main 13.22/5.28 module Main where { 13.22/5.28 import qualified Prelude; 13.22/5.28 data Main.Char = Char MyInt ; 13.22/5.28 13.22/5.28 data MyBool = MyTrue | MyFalse ; 13.22/5.28 13.22/5.28 data MyInt = Pos Main.Nat | Neg Main.Nat ; 13.22/5.28 13.22/5.28 data Main.Nat = Succ Main.Nat | Zero ; 13.22/5.28 13.22/5.28 esEsChar :: Main.Char -> Main.Char -> MyBool; 13.22/5.28 esEsChar = primEqChar; 13.22/5.28 13.22/5.28 isSpace :: Main.Char -> MyBool; 13.22/5.28 isSpace c = pePe (esEsChar c (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero))))))))))))))))))))))))))))))))))) (pePe (esEsChar c (Main.Char (Main.Pos (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ Main.Zero)))))))))))) (pePe (esEsChar c (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.Zero))))))))))))) (pePe (esEsChar c (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.Zero)))))))))))))))) (pePe (esEsChar c (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.Zero))))))))))))))) (pePe (esEsChar c (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.Zero)))))))))))))) (esEsChar c (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.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.Succ (Main.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)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); 13.22/5.28 13.22/5.28 pePe :: MyBool -> MyBool -> MyBool; 13.22/5.28 pePe MyFalse x = x; 13.22/5.28 pePe MyTrue x = MyTrue; 13.22/5.28 13.22/5.28 primEqChar :: Main.Char -> Main.Char -> MyBool; 13.22/5.28 primEqChar (Main.Char x) (Main.Char y) = primEqInt x y; 13.22/5.28 13.22/5.28 primEqInt :: MyInt -> MyInt -> MyBool; 13.22/5.28 primEqInt (Main.Pos (Main.Succ x)) (Main.Pos (Main.Succ y)) = primEqNat x y; 13.22/5.28 primEqInt (Main.Neg (Main.Succ x)) (Main.Neg (Main.Succ y)) = primEqNat x y; 13.22/5.28 primEqInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = MyTrue; 13.22/5.28 primEqInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = MyTrue; 13.22/5.28 primEqInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = MyTrue; 13.22/5.28 primEqInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = MyTrue; 13.22/5.28 primEqInt vv vw = MyFalse; 13.22/5.28 13.22/5.28 primEqNat :: Main.Nat -> Main.Nat -> MyBool; 13.22/5.28 primEqNat Main.Zero Main.Zero = MyTrue; 13.22/5.28 primEqNat Main.Zero (Main.Succ y) = MyFalse; 13.22/5.28 primEqNat (Main.Succ x) Main.Zero = MyFalse; 13.22/5.28 primEqNat (Main.Succ x) (Main.Succ y) = primEqNat x y; 13.22/5.28 13.22/5.28 } 13.22/5.28 13.22/5.28 ---------------------------------------- 13.22/5.28 13.22/5.28 (5) Narrow (SOUND) 13.22/5.28 Haskell To QDPs 13.22/5.28 13.22/5.28 digraph dp_graph { 13.22/5.28 node [outthreshold=100, inthreshold=100];1[label="isSpace",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 13.22/5.28 3[label="isSpace vz3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 13.22/5.28 4 -> 5[label="",style="dashed", color="red", weight=0]; 13.22/5.28 4[label="pePe (esEsChar vz3 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))) (pePe (esEsChar vz3 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) (pePe (esEsChar vz3 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (pePe (esEsChar vz3 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))) (pePe (esEsChar vz3 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))) (pePe (esEsChar vz3 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))) (esEsChar vz3 (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 (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="magenta"];4 -> 6[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 4 -> 7[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 6[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];7[label="vz3",fontsize=16,color="green",shape="box"];5[label="pePe (esEsChar vz5 (Char (Pos (Succ vz6)))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))) (esEsChar vz5 (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 (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="black",shape="triangle"];5 -> 8[label="",style="solid", color="black", weight=3]; 13.22/5.28 8 -> 9[label="",style="dashed", color="red", weight=0]; 13.22/5.28 8[label="pePe (primEqChar vz5 (Char (Pos (Succ vz6)))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))) (esEsChar vz5 (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 (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="magenta"];8 -> 10[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 8 -> 11[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 8 -> 12[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 10[label="vz5",fontsize=16,color="green",shape="box"];11 -> 57[label="",style="dashed", color="red", weight=0]; 13.22/5.28 11[label="pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))) (pePe (esEsChar vz5 (Char (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))) (esEsChar vz5 (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 (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="magenta"];11 -> 58[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 11 -> 59[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 11 -> 60[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 11 -> 61[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 11 -> 62[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 11 -> 63[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 11 -> 64[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 12[label="vz6",fontsize=16,color="green",shape="box"];9[label="pePe (primEqChar vz8 (Char (Pos (Succ vz9)))) vz10",fontsize=16,color="burlywood",shape="triangle"];142[label="vz8/Char vz80",fontsize=10,color="white",style="solid",shape="box"];9 -> 142[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 142 -> 16[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 58[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))",fontsize=16,color="green",shape="box"];59[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))",fontsize=16,color="green",shape="box"];60[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))",fontsize=16,color="green",shape="box"];61[label="vz5",fontsize=16,color="green",shape="box"];62[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",fontsize=16,color="green",shape="box"];63[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))",fontsize=16,color="green",shape="box"];64[label="Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))",fontsize=16,color="green",shape="box"];57[label="pePe (esEsChar vz37 (Char (Pos (Succ vz38)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz39)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz40)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz41)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz42)))) (esEsChar vz37 (Char (Pos (Succ vz43))))))))",fontsize=16,color="black",shape="triangle"];57 -> 72[label="",style="solid", color="black", weight=3]; 13.22/5.28 16[label="pePe (primEqChar (Char vz80) (Char (Pos (Succ vz9)))) vz10",fontsize=16,color="black",shape="box"];16 -> 73[label="",style="solid", color="black", weight=3]; 13.22/5.28 72 -> 9[label="",style="dashed", color="red", weight=0]; 13.22/5.28 72[label="pePe (primEqChar vz37 (Char (Pos (Succ vz38)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz39)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz40)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz41)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz42)))) (esEsChar vz37 (Char (Pos (Succ vz43))))))))",fontsize=16,color="magenta"];72 -> 74[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 72 -> 75[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 72 -> 76[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 73[label="pePe (primEqInt vz80 (Pos (Succ vz9))) vz10",fontsize=16,color="burlywood",shape="box"];143[label="vz80/Pos vz800",fontsize=10,color="white",style="solid",shape="box"];73 -> 143[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 143 -> 77[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 144[label="vz80/Neg vz800",fontsize=10,color="white",style="solid",shape="box"];73 -> 144[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 144 -> 78[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 74[label="vz37",fontsize=16,color="green",shape="box"];75[label="pePe (esEsChar vz37 (Char (Pos (Succ vz39)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz40)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz41)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz42)))) (esEsChar vz37 (Char (Pos (Succ vz43)))))))",fontsize=16,color="black",shape="box"];75 -> 79[label="",style="solid", color="black", weight=3]; 13.22/5.28 76[label="vz38",fontsize=16,color="green",shape="box"];77[label="pePe (primEqInt (Pos vz800) (Pos (Succ vz9))) vz10",fontsize=16,color="burlywood",shape="box"];145[label="vz800/Succ vz8000",fontsize=10,color="white",style="solid",shape="box"];77 -> 145[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 145 -> 80[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 146[label="vz800/Zero",fontsize=10,color="white",style="solid",shape="box"];77 -> 146[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 146 -> 81[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 78[label="pePe (primEqInt (Neg vz800) (Pos (Succ vz9))) vz10",fontsize=16,color="burlywood",shape="box"];147[label="vz800/Succ vz8000",fontsize=10,color="white",style="solid",shape="box"];78 -> 147[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 147 -> 82[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 148[label="vz800/Zero",fontsize=10,color="white",style="solid",shape="box"];78 -> 148[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 148 -> 83[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 79 -> 9[label="",style="dashed", color="red", weight=0]; 13.22/5.28 79[label="pePe (primEqChar vz37 (Char (Pos (Succ vz39)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz40)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz41)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz42)))) (esEsChar vz37 (Char (Pos (Succ vz43)))))))",fontsize=16,color="magenta"];79 -> 84[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 79 -> 85[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 79 -> 86[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 80[label="pePe (primEqInt (Pos (Succ vz8000)) (Pos (Succ vz9))) vz10",fontsize=16,color="black",shape="box"];80 -> 87[label="",style="solid", color="black", weight=3]; 13.22/5.28 81[label="pePe (primEqInt (Pos Zero) (Pos (Succ vz9))) vz10",fontsize=16,color="black",shape="box"];81 -> 88[label="",style="solid", color="black", weight=3]; 13.22/5.28 82[label="pePe (primEqInt (Neg (Succ vz8000)) (Pos (Succ vz9))) vz10",fontsize=16,color="black",shape="box"];82 -> 89[label="",style="solid", color="black", weight=3]; 13.22/5.28 83[label="pePe (primEqInt (Neg Zero) (Pos (Succ vz9))) vz10",fontsize=16,color="black",shape="box"];83 -> 90[label="",style="solid", color="black", weight=3]; 13.22/5.28 84[label="vz37",fontsize=16,color="green",shape="box"];85[label="pePe (esEsChar vz37 (Char (Pos (Succ vz40)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz41)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz42)))) (esEsChar vz37 (Char (Pos (Succ vz43))))))",fontsize=16,color="black",shape="box"];85 -> 91[label="",style="solid", color="black", weight=3]; 13.22/5.28 86[label="vz39",fontsize=16,color="green",shape="box"];87[label="pePe (primEqNat vz8000 vz9) vz10",fontsize=16,color="burlywood",shape="triangle"];149[label="vz8000/Succ vz80000",fontsize=10,color="white",style="solid",shape="box"];87 -> 149[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 149 -> 92[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 150[label="vz8000/Zero",fontsize=10,color="white",style="solid",shape="box"];87 -> 150[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 150 -> 93[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 88[label="pePe MyFalse vz10",fontsize=16,color="black",shape="triangle"];88 -> 94[label="",style="solid", color="black", weight=3]; 13.22/5.28 89 -> 88[label="",style="dashed", color="red", weight=0]; 13.22/5.28 89[label="pePe MyFalse vz10",fontsize=16,color="magenta"];90 -> 88[label="",style="dashed", color="red", weight=0]; 13.22/5.28 90[label="pePe MyFalse vz10",fontsize=16,color="magenta"];91 -> 9[label="",style="dashed", color="red", weight=0]; 13.22/5.28 91[label="pePe (primEqChar vz37 (Char (Pos (Succ vz40)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz41)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz42)))) (esEsChar vz37 (Char (Pos (Succ vz43))))))",fontsize=16,color="magenta"];91 -> 95[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 91 -> 96[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 91 -> 97[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 92[label="pePe (primEqNat (Succ vz80000) vz9) vz10",fontsize=16,color="burlywood",shape="box"];151[label="vz9/Succ vz90",fontsize=10,color="white",style="solid",shape="box"];92 -> 151[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 151 -> 98[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 152[label="vz9/Zero",fontsize=10,color="white",style="solid",shape="box"];92 -> 152[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 152 -> 99[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 93[label="pePe (primEqNat Zero vz9) vz10",fontsize=16,color="burlywood",shape="box"];153[label="vz9/Succ vz90",fontsize=10,color="white",style="solid",shape="box"];93 -> 153[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 153 -> 100[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 154[label="vz9/Zero",fontsize=10,color="white",style="solid",shape="box"];93 -> 154[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 154 -> 101[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 94[label="vz10",fontsize=16,color="green",shape="box"];95[label="vz37",fontsize=16,color="green",shape="box"];96[label="pePe (esEsChar vz37 (Char (Pos (Succ vz41)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz42)))) (esEsChar vz37 (Char (Pos (Succ vz43)))))",fontsize=16,color="black",shape="box"];96 -> 102[label="",style="solid", color="black", weight=3]; 13.22/5.28 97[label="vz40",fontsize=16,color="green",shape="box"];98[label="pePe (primEqNat (Succ vz80000) (Succ vz90)) vz10",fontsize=16,color="black",shape="box"];98 -> 103[label="",style="solid", color="black", weight=3]; 13.22/5.28 99[label="pePe (primEqNat (Succ vz80000) Zero) vz10",fontsize=16,color="black",shape="box"];99 -> 104[label="",style="solid", color="black", weight=3]; 13.22/5.28 100[label="pePe (primEqNat Zero (Succ vz90)) vz10",fontsize=16,color="black",shape="box"];100 -> 105[label="",style="solid", color="black", weight=3]; 13.22/5.28 101[label="pePe (primEqNat Zero Zero) vz10",fontsize=16,color="black",shape="box"];101 -> 106[label="",style="solid", color="black", weight=3]; 13.22/5.28 102 -> 9[label="",style="dashed", color="red", weight=0]; 13.22/5.28 102[label="pePe (primEqChar vz37 (Char (Pos (Succ vz41)))) (pePe (esEsChar vz37 (Char (Pos (Succ vz42)))) (esEsChar vz37 (Char (Pos (Succ vz43)))))",fontsize=16,color="magenta"];102 -> 107[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 102 -> 108[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 102 -> 109[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 103 -> 87[label="",style="dashed", color="red", weight=0]; 13.22/5.28 103[label="pePe (primEqNat vz80000 vz90) vz10",fontsize=16,color="magenta"];103 -> 110[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 103 -> 111[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 104 -> 88[label="",style="dashed", color="red", weight=0]; 13.22/5.28 104[label="pePe MyFalse vz10",fontsize=16,color="magenta"];105 -> 88[label="",style="dashed", color="red", weight=0]; 13.22/5.28 105[label="pePe MyFalse vz10",fontsize=16,color="magenta"];106[label="pePe MyTrue vz10",fontsize=16,color="black",shape="box"];106 -> 112[label="",style="solid", color="black", weight=3]; 13.22/5.28 107[label="vz37",fontsize=16,color="green",shape="box"];108[label="pePe (esEsChar vz37 (Char (Pos (Succ vz42)))) (esEsChar vz37 (Char (Pos (Succ vz43))))",fontsize=16,color="black",shape="box"];108 -> 113[label="",style="solid", color="black", weight=3]; 13.22/5.28 109[label="vz41",fontsize=16,color="green",shape="box"];110[label="vz80000",fontsize=16,color="green",shape="box"];111[label="vz90",fontsize=16,color="green",shape="box"];112[label="MyTrue",fontsize=16,color="green",shape="box"];113 -> 9[label="",style="dashed", color="red", weight=0]; 13.22/5.28 113[label="pePe (primEqChar vz37 (Char (Pos (Succ vz42)))) (esEsChar vz37 (Char (Pos (Succ vz43))))",fontsize=16,color="magenta"];113 -> 114[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 113 -> 115[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 113 -> 116[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 114[label="vz37",fontsize=16,color="green",shape="box"];115[label="esEsChar vz37 (Char (Pos (Succ vz43)))",fontsize=16,color="black",shape="box"];115 -> 117[label="",style="solid", color="black", weight=3]; 13.22/5.28 116[label="vz42",fontsize=16,color="green",shape="box"];117[label="primEqChar vz37 (Char (Pos (Succ vz43)))",fontsize=16,color="burlywood",shape="box"];155[label="vz37/Char vz370",fontsize=10,color="white",style="solid",shape="box"];117 -> 155[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 155 -> 118[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 118[label="primEqChar (Char vz370) (Char (Pos (Succ vz43)))",fontsize=16,color="black",shape="box"];118 -> 119[label="",style="solid", color="black", weight=3]; 13.22/5.28 119[label="primEqInt vz370 (Pos (Succ vz43))",fontsize=16,color="burlywood",shape="box"];156[label="vz370/Pos vz3700",fontsize=10,color="white",style="solid",shape="box"];119 -> 156[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 156 -> 120[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 157[label="vz370/Neg vz3700",fontsize=10,color="white",style="solid",shape="box"];119 -> 157[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 157 -> 121[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 120[label="primEqInt (Pos vz3700) (Pos (Succ vz43))",fontsize=16,color="burlywood",shape="box"];158[label="vz3700/Succ vz37000",fontsize=10,color="white",style="solid",shape="box"];120 -> 158[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 158 -> 122[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 159[label="vz3700/Zero",fontsize=10,color="white",style="solid",shape="box"];120 -> 159[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 159 -> 123[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 121[label="primEqInt (Neg vz3700) (Pos (Succ vz43))",fontsize=16,color="burlywood",shape="box"];160[label="vz3700/Succ vz37000",fontsize=10,color="white",style="solid",shape="box"];121 -> 160[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 160 -> 124[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 161[label="vz3700/Zero",fontsize=10,color="white",style="solid",shape="box"];121 -> 161[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 161 -> 125[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 122[label="primEqInt (Pos (Succ vz37000)) (Pos (Succ vz43))",fontsize=16,color="black",shape="box"];122 -> 126[label="",style="solid", color="black", weight=3]; 13.22/5.28 123[label="primEqInt (Pos Zero) (Pos (Succ vz43))",fontsize=16,color="black",shape="box"];123 -> 127[label="",style="solid", color="black", weight=3]; 13.22/5.28 124[label="primEqInt (Neg (Succ vz37000)) (Pos (Succ vz43))",fontsize=16,color="black",shape="box"];124 -> 128[label="",style="solid", color="black", weight=3]; 13.22/5.28 125[label="primEqInt (Neg Zero) (Pos (Succ vz43))",fontsize=16,color="black",shape="box"];125 -> 129[label="",style="solid", color="black", weight=3]; 13.22/5.28 126[label="primEqNat vz37000 vz43",fontsize=16,color="burlywood",shape="triangle"];162[label="vz37000/Succ vz370000",fontsize=10,color="white",style="solid",shape="box"];126 -> 162[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 162 -> 130[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 163[label="vz37000/Zero",fontsize=10,color="white",style="solid",shape="box"];126 -> 163[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 163 -> 131[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 127[label="MyFalse",fontsize=16,color="green",shape="box"];128[label="MyFalse",fontsize=16,color="green",shape="box"];129[label="MyFalse",fontsize=16,color="green",shape="box"];130[label="primEqNat (Succ vz370000) vz43",fontsize=16,color="burlywood",shape="box"];164[label="vz43/Succ vz430",fontsize=10,color="white",style="solid",shape="box"];130 -> 164[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 164 -> 132[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 165[label="vz43/Zero",fontsize=10,color="white",style="solid",shape="box"];130 -> 165[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 165 -> 133[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 131[label="primEqNat Zero vz43",fontsize=16,color="burlywood",shape="box"];166[label="vz43/Succ vz430",fontsize=10,color="white",style="solid",shape="box"];131 -> 166[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 166 -> 134[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 167[label="vz43/Zero",fontsize=10,color="white",style="solid",shape="box"];131 -> 167[label="",style="solid", color="burlywood", weight=9]; 13.22/5.28 167 -> 135[label="",style="solid", color="burlywood", weight=3]; 13.22/5.28 132[label="primEqNat (Succ vz370000) (Succ vz430)",fontsize=16,color="black",shape="box"];132 -> 136[label="",style="solid", color="black", weight=3]; 13.22/5.28 133[label="primEqNat (Succ vz370000) Zero",fontsize=16,color="black",shape="box"];133 -> 137[label="",style="solid", color="black", weight=3]; 13.22/5.28 134[label="primEqNat Zero (Succ vz430)",fontsize=16,color="black",shape="box"];134 -> 138[label="",style="solid", color="black", weight=3]; 13.22/5.28 135[label="primEqNat Zero Zero",fontsize=16,color="black",shape="box"];135 -> 139[label="",style="solid", color="black", weight=3]; 13.22/5.28 136 -> 126[label="",style="dashed", color="red", weight=0]; 13.22/5.28 136[label="primEqNat vz370000 vz430",fontsize=16,color="magenta"];136 -> 140[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 136 -> 141[label="",style="dashed", color="magenta", weight=3]; 13.22/5.28 137[label="MyFalse",fontsize=16,color="green",shape="box"];138[label="MyFalse",fontsize=16,color="green",shape="box"];139[label="MyTrue",fontsize=16,color="green",shape="box"];140[label="vz430",fontsize=16,color="green",shape="box"];141[label="vz370000",fontsize=16,color="green",shape="box"];} 13.22/5.28 13.22/5.28 ---------------------------------------- 13.22/5.28 13.22/5.28 (6) 13.22/5.28 Complex Obligation (AND) 13.22/5.28 13.22/5.28 ---------------------------------------- 13.22/5.28 13.22/5.28 (7) 13.22/5.28 Obligation: 13.22/5.28 Q DP problem: 13.22/5.28 The TRS P consists of the following rules: 13.22/5.28 13.22/5.28 new_primEqNat(Main.Succ(vz370000), Main.Succ(vz430)) -> new_primEqNat(vz370000, vz430) 13.22/5.28 13.22/5.28 R is empty. 13.22/5.28 Q is empty. 13.22/5.28 We have to consider all minimal (P,Q,R)-chains. 13.22/5.28 ---------------------------------------- 13.22/5.28 13.22/5.28 (8) QDPSizeChangeProof (EQUIVALENT) 13.22/5.28 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. 13.22/5.28 13.22/5.28 From the DPs we obtained the following set of size-change graphs: 13.22/5.28 *new_primEqNat(Main.Succ(vz370000), Main.Succ(vz430)) -> new_primEqNat(vz370000, vz430) 13.22/5.28 The graph contains the following edges 1 > 1, 2 > 2 13.22/5.28 13.22/5.28 13.22/5.28 ---------------------------------------- 13.22/5.28 13.22/5.28 (9) 13.22/5.28 YES 13.22/5.28 13.22/5.28 ---------------------------------------- 13.22/5.28 13.22/5.28 (10) 13.22/5.28 Obligation: 13.22/5.28 Q DP problem: 13.22/5.28 The TRS P consists of the following rules: 13.22/5.28 13.22/5.28 new_pePe(Main.Succ(vz80000), Main.Succ(vz90), vz10) -> new_pePe(vz80000, vz90, vz10) 13.22/5.28 13.22/5.28 R is empty. 13.22/5.28 Q is empty. 13.22/5.28 We have to consider all minimal (P,Q,R)-chains. 13.22/5.28 ---------------------------------------- 13.22/5.28 13.22/5.28 (11) QDPSizeChangeProof (EQUIVALENT) 13.22/5.28 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. 13.22/5.28 13.22/5.28 From the DPs we obtained the following set of size-change graphs: 13.22/5.28 *new_pePe(Main.Succ(vz80000), Main.Succ(vz90), vz10) -> new_pePe(vz80000, vz90, vz10) 13.22/5.28 The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 13.22/5.28 13.22/5.28 13.22/5.28 ---------------------------------------- 13.22/5.28 13.22/5.28 (12) 13.22/5.28 YES 13.33/5.36 EOF