10.31/4.38 YES 12.33/4.99 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 12.33/4.99 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 12.33/4.99 12.33/4.99 12.33/4.99 H-Termination with start terms of the given HASKELL could be proven: 12.33/4.99 12.33/4.99 (0) HASKELL 12.33/4.99 (1) BR [EQUIVALENT, 0 ms] 12.33/4.99 (2) HASKELL 12.33/4.99 (3) COR [EQUIVALENT, 0 ms] 12.33/4.99 (4) HASKELL 12.33/4.99 (5) Narrow [SOUND, 0 ms] 12.33/4.99 (6) AND 12.33/4.99 (7) QDP 12.33/4.99 (8) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.33/4.99 (9) YES 12.33/4.99 (10) QDP 12.33/4.99 (11) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.33/4.99 (12) YES 12.33/4.99 (13) QDP 12.33/4.99 (14) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.33/4.99 (15) YES 12.33/4.99 (16) QDP 12.33/4.99 (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.33/4.99 (18) YES 12.33/4.99 (19) QDP 12.33/4.99 (20) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.33/4.99 (21) YES 12.33/4.99 (22) QDP 12.33/4.99 (23) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.33/4.99 (24) YES 12.33/4.99 (25) QDP 12.33/4.99 (26) DependencyGraphProof [EQUIVALENT, 0 ms] 12.33/4.99 (27) AND 12.33/4.99 (28) QDP 12.33/4.99 (29) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.33/4.99 (30) YES 12.33/4.99 (31) QDP 12.33/4.99 (32) QDPOrderProof [EQUIVALENT, 27 ms] 12.33/4.99 (33) QDP 12.33/4.99 (34) DependencyGraphProof [EQUIVALENT, 0 ms] 12.33/4.99 (35) QDP 12.33/4.99 (36) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.33/4.99 (37) YES 12.33/4.99 12.33/4.99 12.33/4.99 ---------------------------------------- 12.33/4.99 12.33/4.99 (0) 12.33/4.99 Obligation: 12.33/4.99 mainModule Main 12.33/4.99 module Main where { 12.33/4.99 import qualified Prelude; 12.33/4.99 data Float = Float MyInt MyInt ; 12.33/4.99 12.33/4.99 data MyBool = MyTrue | MyFalse ; 12.33/4.99 12.33/4.99 data MyInt = Pos Main.Nat | Neg Main.Nat ; 12.33/4.99 12.33/4.99 data Main.Nat = Succ Main.Nat | Zero ; 12.33/4.99 12.33/4.99 data Tup2 a b = Tup2 a b ; 12.33/4.99 12.33/4.99 error :: a; 12.33/4.99 error = stop MyTrue; 12.33/4.99 12.33/4.99 flip :: (c -> a -> b) -> a -> c -> b; 12.33/4.99 flip f x y = f y x; 12.33/4.99 12.33/4.99 floatProperFractionFloat (Float wy wz) = Tup2 (fromIntMyInt (quotMyInt wy wz)) (msFloat (Float wy wz) (fromIntFloat (quotMyInt wy wz))); 12.33/4.99 12.33/4.99 fromEnumFloat :: Float -> MyInt; 12.33/4.99 fromEnumFloat = truncateFloat; 12.33/4.99 12.33/4.99 fromIntFloat :: MyInt -> Float; 12.33/4.99 fromIntFloat = primIntToFloat; 12.33/4.99 12.33/4.99 fromIntMyInt :: MyInt -> MyInt; 12.33/4.99 fromIntMyInt x = x; 12.33/4.99 12.33/4.99 msFloat :: Float -> Float -> Float; 12.33/4.99 msFloat = primMinusFloat; 12.33/4.99 12.33/4.99 msMyInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 msMyInt = primMinusInt; 12.33/4.99 12.33/4.99 predFloat :: Float -> Float; 12.33/4.99 predFloat = pt toEnumFloat (pt (subtractMyInt (Main.Pos (Main.Succ Main.Zero))) fromEnumFloat); 12.33/4.99 12.33/4.99 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 12.33/4.99 primDivNatS Main.Zero Main.Zero = Main.error; 12.33/4.99 primDivNatS (Main.Succ x) Main.Zero = Main.error; 12.33/4.99 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 12.33/4.99 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 12.33/4.99 12.33/4.99 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 12.33/4.99 primDivNatS0 x y MyFalse = Main.Zero; 12.33/4.99 12.33/4.99 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 12.33/4.99 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 12.33/4.99 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 12.33/4.99 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 12.33/4.99 primGEqNatS Main.Zero Main.Zero = MyTrue; 12.33/4.99 12.33/4.99 primIntToFloat :: MyInt -> Float; 12.33/4.99 primIntToFloat x = Float x (Main.Pos (Main.Succ Main.Zero)); 12.33/4.99 12.33/4.99 primMinusFloat :: Float -> Float -> Float; 12.33/4.99 primMinusFloat (Float x1 x2) (Float y1 y2) = Float (msMyInt x1 y1) (srMyInt x2 y2); 12.33/4.99 12.33/4.99 primMinusInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 primMinusInt (Main.Pos x) (Main.Neg y) = Main.Pos (primPlusNat x y); 12.33/4.99 primMinusInt (Main.Neg x) (Main.Pos y) = Main.Neg (primPlusNat x y); 12.33/4.99 primMinusInt (Main.Neg x) (Main.Neg y) = primMinusNat y x; 12.33/4.99 primMinusInt (Main.Pos x) (Main.Pos y) = primMinusNat x y; 12.33/4.99 12.33/4.99 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 12.33/4.99 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 12.33/4.99 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 12.33/4.99 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 12.33/4.99 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 12.33/4.99 12.33/4.99 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 12.33/4.99 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 12.33/4.99 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 12.33/4.99 primMinusNatS x Main.Zero = x; 12.33/4.99 12.33/4.99 primMulInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 primMulInt (Main.Pos x) (Main.Pos y) = Main.Pos (primMulNat x y); 12.33/4.99 primMulInt (Main.Pos x) (Main.Neg y) = Main.Neg (primMulNat x y); 12.33/4.99 primMulInt (Main.Neg x) (Main.Pos y) = Main.Neg (primMulNat x y); 12.33/4.99 primMulInt (Main.Neg x) (Main.Neg y) = Main.Pos (primMulNat x y); 12.33/4.99 12.33/4.99 primMulNat :: Main.Nat -> Main.Nat -> Main.Nat; 12.33/4.99 primMulNat Main.Zero Main.Zero = Main.Zero; 12.33/4.99 primMulNat Main.Zero (Main.Succ y) = Main.Zero; 12.33/4.99 primMulNat (Main.Succ x) Main.Zero = Main.Zero; 12.33/4.99 primMulNat (Main.Succ x) (Main.Succ y) = primPlusNat (primMulNat x (Main.Succ y)) (Main.Succ y); 12.33/4.99 12.33/4.99 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 12.33/4.99 primPlusNat Main.Zero Main.Zero = Main.Zero; 12.33/4.99 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 12.33/4.99 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 12.33/4.99 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 12.33/4.99 12.33/4.99 primQuotInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 12.33/4.99 primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 12.33/4.99 primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 12.33/4.99 primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 12.33/4.99 primQuotInt ww wx = Main.error; 12.33/4.99 12.33/4.99 properFractionFloat :: Float -> Tup2 MyInt Float; 12.33/4.99 properFractionFloat = floatProperFractionFloat; 12.33/4.99 12.33/4.99 pt :: (b -> a) -> (c -> b) -> c -> a; 12.33/4.99 pt f g x = f (g x); 12.33/4.99 12.33/4.99 quotMyInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 quotMyInt = primQuotInt; 12.33/4.99 12.33/4.99 srMyInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 srMyInt = primMulInt; 12.33/4.99 12.33/4.99 stop :: MyBool -> a; 12.33/4.99 stop MyFalse = stop MyFalse; 12.33/4.99 12.33/4.99 subtractMyInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 subtractMyInt = flip msMyInt; 12.33/4.99 12.33/4.99 toEnumFloat :: MyInt -> Float; 12.33/4.99 toEnumFloat = primIntToFloat; 12.33/4.99 12.33/4.99 truncateFloat :: Float -> MyInt; 12.33/4.99 truncateFloat x = truncateM x; 12.33/4.99 12.33/4.99 truncateM xu = truncateM0 xu (truncateVu6 xu); 12.33/4.99 12.33/4.99 truncateM0 xu (Tup2 m vv) = m; 12.33/4.99 12.33/4.99 truncateVu6 xu = properFractionFloat xu; 12.33/4.99 12.33/4.99 } 12.33/4.99 12.33/4.99 ---------------------------------------- 12.33/4.99 12.33/4.99 (1) BR (EQUIVALENT) 12.33/4.99 Replaced joker patterns by fresh variables and removed binding patterns. 12.33/4.99 ---------------------------------------- 12.33/4.99 12.33/4.99 (2) 12.33/4.99 Obligation: 12.33/4.99 mainModule Main 12.33/4.99 module Main where { 12.33/4.99 import qualified Prelude; 12.33/4.99 data Float = Float MyInt MyInt ; 12.33/4.99 12.33/4.99 data MyBool = MyTrue | MyFalse ; 12.33/4.99 12.33/4.99 data MyInt = Pos Main.Nat | Neg Main.Nat ; 12.33/4.99 12.33/4.99 data Main.Nat = Succ Main.Nat | Zero ; 12.33/4.99 12.33/4.99 data Tup2 b a = Tup2 b a ; 12.33/4.99 12.33/4.99 error :: a; 12.33/4.99 error = stop MyTrue; 12.33/4.99 12.33/4.99 flip :: (c -> a -> b) -> a -> c -> b; 12.33/4.99 flip f x y = f y x; 12.33/4.99 12.33/4.99 floatProperFractionFloat (Float wy wz) = Tup2 (fromIntMyInt (quotMyInt wy wz)) (msFloat (Float wy wz) (fromIntFloat (quotMyInt wy wz))); 12.33/4.99 12.33/4.99 fromEnumFloat :: Float -> MyInt; 12.33/4.99 fromEnumFloat = truncateFloat; 12.33/4.99 12.33/4.99 fromIntFloat :: MyInt -> Float; 12.33/4.99 fromIntFloat = primIntToFloat; 12.33/4.99 12.33/4.99 fromIntMyInt :: MyInt -> MyInt; 12.33/4.99 fromIntMyInt x = x; 12.33/4.99 12.33/4.99 msFloat :: Float -> Float -> Float; 12.33/4.99 msFloat = primMinusFloat; 12.33/4.99 12.33/4.99 msMyInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 msMyInt = primMinusInt; 12.33/4.99 12.33/4.99 predFloat :: Float -> Float; 12.33/4.99 predFloat = pt toEnumFloat (pt (subtractMyInt (Main.Pos (Main.Succ Main.Zero))) fromEnumFloat); 12.33/4.99 12.33/4.99 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 12.33/4.99 primDivNatS Main.Zero Main.Zero = Main.error; 12.33/4.99 primDivNatS (Main.Succ x) Main.Zero = Main.error; 12.33/4.99 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 12.33/4.99 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 12.33/4.99 12.33/4.99 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 12.33/4.99 primDivNatS0 x y MyFalse = Main.Zero; 12.33/4.99 12.33/4.99 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 12.33/4.99 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 12.33/4.99 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 12.33/4.99 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 12.33/4.99 primGEqNatS Main.Zero Main.Zero = MyTrue; 12.33/4.99 12.33/4.99 primIntToFloat :: MyInt -> Float; 12.33/4.99 primIntToFloat x = Float x (Main.Pos (Main.Succ Main.Zero)); 12.33/4.99 12.33/4.99 primMinusFloat :: Float -> Float -> Float; 12.33/4.99 primMinusFloat (Float x1 x2) (Float y1 y2) = Float (msMyInt x1 y1) (srMyInt x2 y2); 12.33/4.99 12.33/4.99 primMinusInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 primMinusInt (Main.Pos x) (Main.Neg y) = Main.Pos (primPlusNat x y); 12.33/4.99 primMinusInt (Main.Neg x) (Main.Pos y) = Main.Neg (primPlusNat x y); 12.33/4.99 primMinusInt (Main.Neg x) (Main.Neg y) = primMinusNat y x; 12.33/4.99 primMinusInt (Main.Pos x) (Main.Pos y) = primMinusNat x y; 12.33/4.99 12.33/4.99 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 12.33/4.99 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 12.33/4.99 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 12.33/4.99 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 12.33/4.99 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 12.33/4.99 12.33/4.99 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 12.33/4.99 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 12.33/4.99 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 12.33/4.99 primMinusNatS x Main.Zero = x; 12.33/4.99 12.33/4.99 primMulInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 primMulInt (Main.Pos x) (Main.Pos y) = Main.Pos (primMulNat x y); 12.33/4.99 primMulInt (Main.Pos x) (Main.Neg y) = Main.Neg (primMulNat x y); 12.33/4.99 primMulInt (Main.Neg x) (Main.Pos y) = Main.Neg (primMulNat x y); 12.33/4.99 primMulInt (Main.Neg x) (Main.Neg y) = Main.Pos (primMulNat x y); 12.33/4.99 12.33/4.99 primMulNat :: Main.Nat -> Main.Nat -> Main.Nat; 12.33/4.99 primMulNat Main.Zero Main.Zero = Main.Zero; 12.33/4.99 primMulNat Main.Zero (Main.Succ y) = Main.Zero; 12.33/4.99 primMulNat (Main.Succ x) Main.Zero = Main.Zero; 12.33/4.99 primMulNat (Main.Succ x) (Main.Succ y) = primPlusNat (primMulNat x (Main.Succ y)) (Main.Succ y); 12.33/4.99 12.33/4.99 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 12.33/4.99 primPlusNat Main.Zero Main.Zero = Main.Zero; 12.33/4.99 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 12.33/4.99 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 12.33/4.99 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 12.33/4.99 12.33/4.99 primQuotInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 12.33/4.99 primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 12.33/4.99 primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 12.33/4.99 primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 12.33/4.99 primQuotInt ww wx = Main.error; 12.33/4.99 12.33/4.99 properFractionFloat :: Float -> Tup2 MyInt Float; 12.33/4.99 properFractionFloat = floatProperFractionFloat; 12.33/4.99 12.33/4.99 pt :: (c -> b) -> (a -> c) -> a -> b; 12.33/4.99 pt f g x = f (g x); 12.33/4.99 12.33/4.99 quotMyInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 quotMyInt = primQuotInt; 12.33/4.99 12.33/4.99 srMyInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 srMyInt = primMulInt; 12.33/4.99 12.33/4.99 stop :: MyBool -> a; 12.33/4.99 stop MyFalse = stop MyFalse; 12.33/4.99 12.33/4.99 subtractMyInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 subtractMyInt = flip msMyInt; 12.33/4.99 12.33/4.99 toEnumFloat :: MyInt -> Float; 12.33/4.99 toEnumFloat = primIntToFloat; 12.33/4.99 12.33/4.99 truncateFloat :: Float -> MyInt; 12.33/4.99 truncateFloat x = truncateM x; 12.33/4.99 12.33/4.99 truncateM xu = truncateM0 xu (truncateVu6 xu); 12.33/4.99 12.33/4.99 truncateM0 xu (Tup2 m vv) = m; 12.33/4.99 12.33/4.99 truncateVu6 xu = properFractionFloat xu; 12.33/4.99 12.33/4.99 } 12.33/4.99 12.33/4.99 ---------------------------------------- 12.33/4.99 12.33/4.99 (3) COR (EQUIVALENT) 12.33/4.99 Cond Reductions: 12.33/4.99 The following Function with conditions 12.33/4.99 "undefined |Falseundefined; 12.33/4.99 " 12.33/4.99 is transformed to 12.33/4.99 "undefined = undefined1; 12.33/4.99 " 12.33/4.99 "undefined0 True = undefined; 12.33/4.99 " 12.33/4.99 "undefined1 = undefined0 False; 12.33/4.99 " 12.33/4.99 12.33/4.99 ---------------------------------------- 12.33/4.99 12.33/4.99 (4) 12.33/4.99 Obligation: 12.33/4.99 mainModule Main 12.33/4.99 module Main where { 12.33/4.99 import qualified Prelude; 12.33/4.99 data Float = Float MyInt MyInt ; 12.33/4.99 12.33/4.99 data MyBool = MyTrue | MyFalse ; 12.33/4.99 12.33/4.99 data MyInt = Pos Main.Nat | Neg Main.Nat ; 12.33/4.99 12.33/4.99 data Main.Nat = Succ Main.Nat | Zero ; 12.33/4.99 12.33/4.99 data Tup2 b a = Tup2 b a ; 12.33/4.99 12.33/4.99 error :: a; 12.33/4.99 error = stop MyTrue; 12.33/4.99 12.33/4.99 flip :: (c -> a -> b) -> a -> c -> b; 12.33/4.99 flip f x y = f y x; 12.33/4.99 12.33/4.99 floatProperFractionFloat (Float wy wz) = Tup2 (fromIntMyInt (quotMyInt wy wz)) (msFloat (Float wy wz) (fromIntFloat (quotMyInt wy wz))); 12.33/4.99 12.33/4.99 fromEnumFloat :: Float -> MyInt; 12.33/4.99 fromEnumFloat = truncateFloat; 12.33/4.99 12.33/4.99 fromIntFloat :: MyInt -> Float; 12.33/4.99 fromIntFloat = primIntToFloat; 12.33/4.99 12.33/4.99 fromIntMyInt :: MyInt -> MyInt; 12.33/4.99 fromIntMyInt x = x; 12.33/4.99 12.33/4.99 msFloat :: Float -> Float -> Float; 12.33/4.99 msFloat = primMinusFloat; 12.33/4.99 12.33/4.99 msMyInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 msMyInt = primMinusInt; 12.33/4.99 12.33/4.99 predFloat :: Float -> Float; 12.33/4.99 predFloat = pt toEnumFloat (pt (subtractMyInt (Main.Pos (Main.Succ Main.Zero))) fromEnumFloat); 12.33/4.99 12.33/4.99 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 12.33/4.99 primDivNatS Main.Zero Main.Zero = Main.error; 12.33/4.99 primDivNatS (Main.Succ x) Main.Zero = Main.error; 12.33/4.99 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 12.33/4.99 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 12.33/4.99 12.33/4.99 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 12.33/4.99 primDivNatS0 x y MyFalse = Main.Zero; 12.33/4.99 12.33/4.99 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 12.33/4.99 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 12.33/4.99 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 12.33/4.99 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 12.33/4.99 primGEqNatS Main.Zero Main.Zero = MyTrue; 12.33/4.99 12.33/4.99 primIntToFloat :: MyInt -> Float; 12.33/4.99 primIntToFloat x = Float x (Main.Pos (Main.Succ Main.Zero)); 12.33/4.99 12.33/4.99 primMinusFloat :: Float -> Float -> Float; 12.33/4.99 primMinusFloat (Float x1 x2) (Float y1 y2) = Float (msMyInt x1 y1) (srMyInt x2 y2); 12.33/4.99 12.33/4.99 primMinusInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 primMinusInt (Main.Pos x) (Main.Neg y) = Main.Pos (primPlusNat x y); 12.33/4.99 primMinusInt (Main.Neg x) (Main.Pos y) = Main.Neg (primPlusNat x y); 12.33/4.99 primMinusInt (Main.Neg x) (Main.Neg y) = primMinusNat y x; 12.33/4.99 primMinusInt (Main.Pos x) (Main.Pos y) = primMinusNat x y; 12.33/4.99 12.33/4.99 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 12.33/4.99 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 12.33/4.99 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 12.33/4.99 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 12.33/4.99 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 12.33/4.99 12.33/4.99 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 12.33/4.99 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 12.33/4.99 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 12.33/4.99 primMinusNatS x Main.Zero = x; 12.33/4.99 12.33/4.99 primMulInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 primMulInt (Main.Pos x) (Main.Pos y) = Main.Pos (primMulNat x y); 12.33/4.99 primMulInt (Main.Pos x) (Main.Neg y) = Main.Neg (primMulNat x y); 12.33/4.99 primMulInt (Main.Neg x) (Main.Pos y) = Main.Neg (primMulNat x y); 12.33/4.99 primMulInt (Main.Neg x) (Main.Neg y) = Main.Pos (primMulNat x y); 12.33/4.99 12.33/4.99 primMulNat :: Main.Nat -> Main.Nat -> Main.Nat; 12.33/4.99 primMulNat Main.Zero Main.Zero = Main.Zero; 12.33/4.99 primMulNat Main.Zero (Main.Succ y) = Main.Zero; 12.33/4.99 primMulNat (Main.Succ x) Main.Zero = Main.Zero; 12.33/4.99 primMulNat (Main.Succ x) (Main.Succ y) = primPlusNat (primMulNat x (Main.Succ y)) (Main.Succ y); 12.33/4.99 12.33/4.99 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 12.33/4.99 primPlusNat Main.Zero Main.Zero = Main.Zero; 12.33/4.99 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 12.33/4.99 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 12.33/4.99 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 12.33/4.99 12.33/4.99 primQuotInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 12.33/4.99 primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 12.33/4.99 primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 12.33/4.99 primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 12.33/4.99 primQuotInt ww wx = Main.error; 12.33/4.99 12.33/4.99 properFractionFloat :: Float -> Tup2 MyInt Float; 12.33/4.99 properFractionFloat = floatProperFractionFloat; 12.33/4.99 12.33/4.99 pt :: (b -> a) -> (c -> b) -> c -> a; 12.33/4.99 pt f g x = f (g x); 12.33/4.99 12.33/4.99 quotMyInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 quotMyInt = primQuotInt; 12.33/4.99 12.33/4.99 srMyInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 srMyInt = primMulInt; 12.33/4.99 12.33/4.99 stop :: MyBool -> a; 12.33/4.99 stop MyFalse = stop MyFalse; 12.33/4.99 12.33/4.99 subtractMyInt :: MyInt -> MyInt -> MyInt; 12.33/4.99 subtractMyInt = flip msMyInt; 12.33/4.99 12.33/4.99 toEnumFloat :: MyInt -> Float; 12.33/4.99 toEnumFloat = primIntToFloat; 12.33/4.99 12.33/4.99 truncateFloat :: Float -> MyInt; 12.33/4.99 truncateFloat x = truncateM x; 12.33/4.99 12.33/4.99 truncateM xu = truncateM0 xu (truncateVu6 xu); 12.33/4.99 12.33/4.99 truncateM0 xu (Tup2 m vv) = m; 12.33/4.99 12.33/4.99 truncateVu6 xu = properFractionFloat xu; 12.33/4.99 12.33/4.99 } 12.33/4.99 12.33/4.99 ---------------------------------------- 12.33/4.99 12.33/4.99 (5) Narrow (SOUND) 12.33/4.99 Haskell To QDPs 12.33/4.99 12.33/4.99 digraph dp_graph { 12.33/4.99 node [outthreshold=100, inthreshold=100];1[label="predFloat",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 12.33/4.99 3[label="predFloat vy3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 12.33/4.99 4[label="pt toEnumFloat (pt (subtractMyInt (Pos (Succ Zero))) fromEnumFloat) vy3",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 12.33/4.99 5[label="toEnumFloat (pt (subtractMyInt (Pos (Succ Zero))) fromEnumFloat vy3)",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 12.33/4.99 6[label="primIntToFloat (pt (subtractMyInt (Pos (Succ Zero))) fromEnumFloat vy3)",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 12.33/4.99 7[label="Float (pt (subtractMyInt (Pos (Succ Zero))) fromEnumFloat vy3) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];7 -> 8[label="",style="dashed", color="green", weight=3]; 12.33/4.99 8[label="pt (subtractMyInt (Pos (Succ Zero))) fromEnumFloat vy3",fontsize=16,color="black",shape="box"];8 -> 9[label="",style="solid", color="black", weight=3]; 12.33/4.99 9[label="subtractMyInt (Pos (Succ Zero)) (fromEnumFloat vy3)",fontsize=16,color="black",shape="box"];9 -> 10[label="",style="solid", color="black", weight=3]; 12.33/4.99 10[label="flip msMyInt (Pos (Succ Zero)) (fromEnumFloat vy3)",fontsize=16,color="black",shape="box"];10 -> 11[label="",style="solid", color="black", weight=3]; 12.33/4.99 11[label="msMyInt (fromEnumFloat vy3) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];11 -> 12[label="",style="solid", color="black", weight=3]; 12.33/4.99 12[label="primMinusInt (fromEnumFloat vy3) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];12 -> 13[label="",style="solid", color="black", weight=3]; 12.33/4.99 13[label="primMinusInt (truncateFloat vy3) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];13 -> 14[label="",style="solid", color="black", weight=3]; 12.33/4.99 14[label="primMinusInt (truncateM vy3) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];14 -> 15[label="",style="solid", color="black", weight=3]; 12.33/4.99 15[label="primMinusInt (truncateM0 vy3 (truncateVu6 vy3)) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];15 -> 16[label="",style="solid", color="black", weight=3]; 12.33/4.99 16[label="primMinusInt (truncateM0 vy3 (properFractionFloat vy3)) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];16 -> 17[label="",style="solid", color="black", weight=3]; 12.33/4.99 17[label="primMinusInt (truncateM0 vy3 (floatProperFractionFloat vy3)) (Pos (Succ Zero))",fontsize=16,color="burlywood",shape="box"];2334[label="vy3/Float vy30 vy31",fontsize=10,color="white",style="solid",shape="box"];17 -> 2334[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2334 -> 18[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 18[label="primMinusInt (truncateM0 (Float vy30 vy31) (floatProperFractionFloat (Float vy30 vy31))) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];18 -> 19[label="",style="solid", color="black", weight=3]; 12.33/4.99 19[label="primMinusInt (truncateM0 (Float vy30 vy31) (Tup2 (fromIntMyInt (quotMyInt vy30 vy31)) (msFloat (Float vy30 vy31) (fromIntFloat (quotMyInt vy30 vy31))))) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];19 -> 20[label="",style="solid", color="black", weight=3]; 12.33/4.99 20[label="primMinusInt (fromIntMyInt (quotMyInt vy30 vy31)) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];20 -> 21[label="",style="solid", color="black", weight=3]; 12.33/4.99 21[label="primMinusInt (quotMyInt vy30 vy31) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];21 -> 22[label="",style="solid", color="black", weight=3]; 12.33/4.99 22[label="primMinusInt (primQuotInt vy30 vy31) (Pos (Succ Zero))",fontsize=16,color="burlywood",shape="box"];2335[label="vy30/Pos vy300",fontsize=10,color="white",style="solid",shape="box"];22 -> 2335[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2335 -> 23[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 2336[label="vy30/Neg vy300",fontsize=10,color="white",style="solid",shape="box"];22 -> 2336[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2336 -> 24[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 23[label="primMinusInt (primQuotInt (Pos vy300) vy31) (Pos (Succ Zero))",fontsize=16,color="burlywood",shape="box"];2337[label="vy31/Pos vy310",fontsize=10,color="white",style="solid",shape="box"];23 -> 2337[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2337 -> 25[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 2338[label="vy31/Neg vy310",fontsize=10,color="white",style="solid",shape="box"];23 -> 2338[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2338 -> 26[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 24[label="primMinusInt (primQuotInt (Neg vy300) vy31) (Pos (Succ Zero))",fontsize=16,color="burlywood",shape="box"];2339[label="vy31/Pos vy310",fontsize=10,color="white",style="solid",shape="box"];24 -> 2339[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2339 -> 27[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 2340[label="vy31/Neg vy310",fontsize=10,color="white",style="solid",shape="box"];24 -> 2340[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2340 -> 28[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 25[label="primMinusInt (primQuotInt (Pos vy300) (Pos vy310)) (Pos (Succ Zero))",fontsize=16,color="burlywood",shape="box"];2341[label="vy310/Succ vy3100",fontsize=10,color="white",style="solid",shape="box"];25 -> 2341[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2341 -> 29[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 2342[label="vy310/Zero",fontsize=10,color="white",style="solid",shape="box"];25 -> 2342[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2342 -> 30[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 26[label="primMinusInt (primQuotInt (Pos vy300) (Neg vy310)) (Pos (Succ Zero))",fontsize=16,color="burlywood",shape="box"];2343[label="vy310/Succ vy3100",fontsize=10,color="white",style="solid",shape="box"];26 -> 2343[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2343 -> 31[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 2344[label="vy310/Zero",fontsize=10,color="white",style="solid",shape="box"];26 -> 2344[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2344 -> 32[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 27[label="primMinusInt (primQuotInt (Neg vy300) (Pos vy310)) (Pos (Succ Zero))",fontsize=16,color="burlywood",shape="box"];2345[label="vy310/Succ vy3100",fontsize=10,color="white",style="solid",shape="box"];27 -> 2345[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2345 -> 33[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 2346[label="vy310/Zero",fontsize=10,color="white",style="solid",shape="box"];27 -> 2346[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2346 -> 34[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 28[label="primMinusInt (primQuotInt (Neg vy300) (Neg vy310)) (Pos (Succ Zero))",fontsize=16,color="burlywood",shape="box"];2347[label="vy310/Succ vy3100",fontsize=10,color="white",style="solid",shape="box"];28 -> 2347[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2347 -> 35[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 2348[label="vy310/Zero",fontsize=10,color="white",style="solid",shape="box"];28 -> 2348[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2348 -> 36[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 29[label="primMinusInt (primQuotInt (Pos vy300) (Pos (Succ vy3100))) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];29 -> 37[label="",style="solid", color="black", weight=3]; 12.33/4.99 30[label="primMinusInt (primQuotInt (Pos vy300) (Pos Zero)) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];30 -> 38[label="",style="solid", color="black", weight=3]; 12.33/4.99 31[label="primMinusInt (primQuotInt (Pos vy300) (Neg (Succ vy3100))) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];31 -> 39[label="",style="solid", color="black", weight=3]; 12.33/4.99 32[label="primMinusInt (primQuotInt (Pos vy300) (Neg Zero)) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];32 -> 40[label="",style="solid", color="black", weight=3]; 12.33/4.99 33[label="primMinusInt (primQuotInt (Neg vy300) (Pos (Succ vy3100))) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];33 -> 41[label="",style="solid", color="black", weight=3]; 12.33/4.99 34[label="primMinusInt (primQuotInt (Neg vy300) (Pos Zero)) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];34 -> 42[label="",style="solid", color="black", weight=3]; 12.33/4.99 35[label="primMinusInt (primQuotInt (Neg vy300) (Neg (Succ vy3100))) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];35 -> 43[label="",style="solid", color="black", weight=3]; 12.33/4.99 36[label="primMinusInt (primQuotInt (Neg vy300) (Neg Zero)) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];36 -> 44[label="",style="solid", color="black", weight=3]; 12.33/4.99 37[label="primMinusInt (Pos (primDivNatS vy300 (Succ vy3100))) (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];37 -> 45[label="",style="solid", color="black", weight=3]; 12.33/4.99 38[label="primMinusInt error (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];38 -> 46[label="",style="solid", color="black", weight=3]; 12.33/4.99 39[label="primMinusInt (Neg (primDivNatS vy300 (Succ vy3100))) (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];39 -> 47[label="",style="solid", color="black", weight=3]; 12.33/4.99 40 -> 38[label="",style="dashed", color="red", weight=0]; 12.33/4.99 40[label="primMinusInt error (Pos (Succ Zero))",fontsize=16,color="magenta"];41 -> 39[label="",style="dashed", color="red", weight=0]; 12.33/4.99 41[label="primMinusInt (Neg (primDivNatS vy300 (Succ vy3100))) (Pos (Succ Zero))",fontsize=16,color="magenta"];41 -> 48[label="",style="dashed", color="magenta", weight=3]; 12.33/4.99 41 -> 49[label="",style="dashed", color="magenta", weight=3]; 12.33/4.99 42 -> 38[label="",style="dashed", color="red", weight=0]; 12.33/4.99 42[label="primMinusInt error (Pos (Succ Zero))",fontsize=16,color="magenta"];43 -> 37[label="",style="dashed", color="red", weight=0]; 12.33/4.99 43[label="primMinusInt (Pos (primDivNatS vy300 (Succ vy3100))) (Pos (Succ Zero))",fontsize=16,color="magenta"];43 -> 50[label="",style="dashed", color="magenta", weight=3]; 12.33/4.99 43 -> 51[label="",style="dashed", color="magenta", weight=3]; 12.33/4.99 44 -> 38[label="",style="dashed", color="red", weight=0]; 12.33/4.99 44[label="primMinusInt error (Pos (Succ Zero))",fontsize=16,color="magenta"];45[label="primMinusNat (primDivNatS vy300 (Succ vy3100)) (Succ Zero)",fontsize=16,color="burlywood",shape="box"];2349[label="vy300/Succ vy3000",fontsize=10,color="white",style="solid",shape="box"];45 -> 2349[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2349 -> 52[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 2350[label="vy300/Zero",fontsize=10,color="white",style="solid",shape="box"];45 -> 2350[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2350 -> 53[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 46[label="primMinusInt (stop MyTrue) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];46 -> 54[label="",style="solid", color="black", weight=3]; 12.33/4.99 47[label="Neg (primPlusNat (primDivNatS vy300 (Succ vy3100)) (Succ Zero))",fontsize=16,color="green",shape="box"];47 -> 55[label="",style="dashed", color="green", weight=3]; 12.33/4.99 48[label="vy300",fontsize=16,color="green",shape="box"];49[label="vy3100",fontsize=16,color="green",shape="box"];50[label="vy300",fontsize=16,color="green",shape="box"];51[label="vy3100",fontsize=16,color="green",shape="box"];52[label="primMinusNat (primDivNatS (Succ vy3000) (Succ vy3100)) (Succ Zero)",fontsize=16,color="black",shape="box"];52 -> 56[label="",style="solid", color="black", weight=3]; 12.33/4.99 53[label="primMinusNat (primDivNatS Zero (Succ vy3100)) (Succ Zero)",fontsize=16,color="black",shape="box"];53 -> 57[label="",style="solid", color="black", weight=3]; 12.33/4.99 54[label="error []",fontsize=16,color="red",shape="box"];55[label="primPlusNat (primDivNatS vy300 (Succ vy3100)) (Succ Zero)",fontsize=16,color="burlywood",shape="box"];2351[label="vy300/Succ vy3000",fontsize=10,color="white",style="solid",shape="box"];55 -> 2351[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2351 -> 58[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 2352[label="vy300/Zero",fontsize=10,color="white",style="solid",shape="box"];55 -> 2352[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2352 -> 59[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 56[label="primMinusNat (primDivNatS0 vy3000 vy3100 (primGEqNatS vy3000 vy3100)) (Succ Zero)",fontsize=16,color="burlywood",shape="box"];2353[label="vy3000/Succ vy30000",fontsize=10,color="white",style="solid",shape="box"];56 -> 2353[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2353 -> 60[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 2354[label="vy3000/Zero",fontsize=10,color="white",style="solid",shape="box"];56 -> 2354[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2354 -> 61[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 57[label="primMinusNat Zero (Succ Zero)",fontsize=16,color="black",shape="triangle"];57 -> 62[label="",style="solid", color="black", weight=3]; 12.33/4.99 58[label="primPlusNat (primDivNatS (Succ vy3000) (Succ vy3100)) (Succ Zero)",fontsize=16,color="black",shape="box"];58 -> 63[label="",style="solid", color="black", weight=3]; 12.33/4.99 59[label="primPlusNat (primDivNatS Zero (Succ vy3100)) (Succ Zero)",fontsize=16,color="black",shape="box"];59 -> 64[label="",style="solid", color="black", weight=3]; 12.33/4.99 60[label="primMinusNat (primDivNatS0 (Succ vy30000) vy3100 (primGEqNatS (Succ vy30000) vy3100)) (Succ Zero)",fontsize=16,color="burlywood",shape="box"];2355[label="vy3100/Succ vy31000",fontsize=10,color="white",style="solid",shape="box"];60 -> 2355[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2355 -> 65[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 2356[label="vy3100/Zero",fontsize=10,color="white",style="solid",shape="box"];60 -> 2356[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2356 -> 66[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 61[label="primMinusNat (primDivNatS0 Zero vy3100 (primGEqNatS Zero vy3100)) (Succ Zero)",fontsize=16,color="burlywood",shape="box"];2357[label="vy3100/Succ vy31000",fontsize=10,color="white",style="solid",shape="box"];61 -> 2357[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2357 -> 67[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 2358[label="vy3100/Zero",fontsize=10,color="white",style="solid",shape="box"];61 -> 2358[label="",style="solid", color="burlywood", weight=9]; 12.33/4.99 2358 -> 68[label="",style="solid", color="burlywood", weight=3]; 12.33/4.99 62[label="Neg (Succ Zero)",fontsize=16,color="green",shape="box"];63[label="primPlusNat (primDivNatS0 vy3000 vy3100 (primGEqNatS vy3000 vy3100)) (Succ Zero)",fontsize=16,color="burlywood",shape="box"];2359[label="vy3000/Succ vy30000",fontsize=10,color="white",style="solid",shape="box"];63 -> 2359[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2359 -> 69[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2360[label="vy3000/Zero",fontsize=10,color="white",style="solid",shape="box"];63 -> 2360[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2360 -> 70[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 64[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="black",shape="triangle"];64 -> 71[label="",style="solid", color="black", weight=3]; 12.72/4.99 65[label="primMinusNat (primDivNatS0 (Succ vy30000) (Succ vy31000) (primGEqNatS (Succ vy30000) (Succ vy31000))) (Succ Zero)",fontsize=16,color="black",shape="box"];65 -> 72[label="",style="solid", color="black", weight=3]; 12.72/4.99 66[label="primMinusNat (primDivNatS0 (Succ vy30000) Zero (primGEqNatS (Succ vy30000) Zero)) (Succ Zero)",fontsize=16,color="black",shape="box"];66 -> 73[label="",style="solid", color="black", weight=3]; 12.72/4.99 67[label="primMinusNat (primDivNatS0 Zero (Succ vy31000) (primGEqNatS Zero (Succ vy31000))) (Succ Zero)",fontsize=16,color="black",shape="box"];67 -> 74[label="",style="solid", color="black", weight=3]; 12.72/4.99 68[label="primMinusNat (primDivNatS0 Zero Zero (primGEqNatS Zero Zero)) (Succ Zero)",fontsize=16,color="black",shape="box"];68 -> 75[label="",style="solid", color="black", weight=3]; 12.72/4.99 69[label="primPlusNat (primDivNatS0 (Succ vy30000) vy3100 (primGEqNatS (Succ vy30000) vy3100)) (Succ Zero)",fontsize=16,color="burlywood",shape="box"];2361[label="vy3100/Succ vy31000",fontsize=10,color="white",style="solid",shape="box"];69 -> 2361[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2361 -> 76[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2362[label="vy3100/Zero",fontsize=10,color="white",style="solid",shape="box"];69 -> 2362[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2362 -> 77[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 70[label="primPlusNat (primDivNatS0 Zero vy3100 (primGEqNatS Zero vy3100)) (Succ Zero)",fontsize=16,color="burlywood",shape="box"];2363[label="vy3100/Succ vy31000",fontsize=10,color="white",style="solid",shape="box"];70 -> 2363[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2363 -> 78[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2364[label="vy3100/Zero",fontsize=10,color="white",style="solid",shape="box"];70 -> 2364[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2364 -> 79[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 71[label="Succ Zero",fontsize=16,color="green",shape="box"];72 -> 665[label="",style="dashed", color="red", weight=0]; 12.72/4.99 72[label="primMinusNat (primDivNatS0 (Succ vy30000) (Succ vy31000) (primGEqNatS vy30000 vy31000)) (Succ Zero)",fontsize=16,color="magenta"];72 -> 666[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 72 -> 667[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 72 -> 668[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 72 -> 669[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 73[label="primMinusNat (primDivNatS0 (Succ vy30000) Zero MyTrue) (Succ Zero)",fontsize=16,color="black",shape="box"];73 -> 82[label="",style="solid", color="black", weight=3]; 12.72/4.99 74[label="primMinusNat (primDivNatS0 Zero (Succ vy31000) MyFalse) (Succ Zero)",fontsize=16,color="black",shape="box"];74 -> 83[label="",style="solid", color="black", weight=3]; 12.72/4.99 75[label="primMinusNat (primDivNatS0 Zero Zero MyTrue) (Succ Zero)",fontsize=16,color="black",shape="box"];75 -> 84[label="",style="solid", color="black", weight=3]; 12.72/4.99 76[label="primPlusNat (primDivNatS0 (Succ vy30000) (Succ vy31000) (primGEqNatS (Succ vy30000) (Succ vy31000))) (Succ Zero)",fontsize=16,color="black",shape="box"];76 -> 85[label="",style="solid", color="black", weight=3]; 12.72/4.99 77[label="primPlusNat (primDivNatS0 (Succ vy30000) Zero (primGEqNatS (Succ vy30000) Zero)) (Succ Zero)",fontsize=16,color="black",shape="box"];77 -> 86[label="",style="solid", color="black", weight=3]; 12.72/4.99 78[label="primPlusNat (primDivNatS0 Zero (Succ vy31000) (primGEqNatS Zero (Succ vy31000))) (Succ Zero)",fontsize=16,color="black",shape="box"];78 -> 87[label="",style="solid", color="black", weight=3]; 12.72/4.99 79[label="primPlusNat (primDivNatS0 Zero Zero (primGEqNatS Zero Zero)) (Succ Zero)",fontsize=16,color="black",shape="box"];79 -> 88[label="",style="solid", color="black", weight=3]; 12.72/4.99 666[label="vy30000",fontsize=16,color="green",shape="box"];667[label="vy31000",fontsize=16,color="green",shape="box"];668[label="vy30000",fontsize=16,color="green",shape="box"];669[label="vy31000",fontsize=16,color="green",shape="box"];665[label="primMinusNat (primDivNatS0 (Succ vy38) (Succ vy39) (primGEqNatS vy40 vy41)) (Succ Zero)",fontsize=16,color="burlywood",shape="triangle"];2365[label="vy40/Succ vy400",fontsize=10,color="white",style="solid",shape="box"];665 -> 2365[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2365 -> 706[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2366[label="vy40/Zero",fontsize=10,color="white",style="solid",shape="box"];665 -> 2366[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2366 -> 707[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 82[label="primMinusNat (Succ (primDivNatS (primMinusNatS (Succ vy30000) Zero) (Succ Zero))) (Succ Zero)",fontsize=16,color="black",shape="box"];82 -> 93[label="",style="solid", color="black", weight=3]; 12.72/4.99 83 -> 57[label="",style="dashed", color="red", weight=0]; 12.72/4.99 83[label="primMinusNat Zero (Succ Zero)",fontsize=16,color="magenta"];84[label="primMinusNat (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))) (Succ Zero)",fontsize=16,color="black",shape="box"];84 -> 94[label="",style="solid", color="black", weight=3]; 12.72/4.99 85 -> 738[label="",style="dashed", color="red", weight=0]; 12.72/4.99 85[label="primPlusNat (primDivNatS0 (Succ vy30000) (Succ vy31000) (primGEqNatS vy30000 vy31000)) (Succ Zero)",fontsize=16,color="magenta"];85 -> 739[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 85 -> 740[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 85 -> 741[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 85 -> 742[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 86[label="primPlusNat (primDivNatS0 (Succ vy30000) Zero MyTrue) (Succ Zero)",fontsize=16,color="black",shape="box"];86 -> 97[label="",style="solid", color="black", weight=3]; 12.72/4.99 87[label="primPlusNat (primDivNatS0 Zero (Succ vy31000) MyFalse) (Succ Zero)",fontsize=16,color="black",shape="box"];87 -> 98[label="",style="solid", color="black", weight=3]; 12.72/4.99 88[label="primPlusNat (primDivNatS0 Zero Zero MyTrue) (Succ Zero)",fontsize=16,color="black",shape="box"];88 -> 99[label="",style="solid", color="black", weight=3]; 12.72/4.99 706[label="primMinusNat (primDivNatS0 (Succ vy38) (Succ vy39) (primGEqNatS (Succ vy400) vy41)) (Succ Zero)",fontsize=16,color="burlywood",shape="box"];2367[label="vy41/Succ vy410",fontsize=10,color="white",style="solid",shape="box"];706 -> 2367[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2367 -> 712[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2368[label="vy41/Zero",fontsize=10,color="white",style="solid",shape="box"];706 -> 2368[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2368 -> 713[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 707[label="primMinusNat (primDivNatS0 (Succ vy38) (Succ vy39) (primGEqNatS Zero vy41)) (Succ Zero)",fontsize=16,color="burlywood",shape="box"];2369[label="vy41/Succ vy410",fontsize=10,color="white",style="solid",shape="box"];707 -> 2369[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2369 -> 714[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2370[label="vy41/Zero",fontsize=10,color="white",style="solid",shape="box"];707 -> 2370[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2370 -> 715[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 93 -> 1146[label="",style="dashed", color="red", weight=0]; 12.72/4.99 93[label="primMinusNat (primDivNatS (primMinusNatS (Succ vy30000) Zero) (Succ Zero)) Zero",fontsize=16,color="magenta"];93 -> 1147[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 93 -> 1148[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 93 -> 1149[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 94 -> 1146[label="",style="dashed", color="red", weight=0]; 12.72/4.99 94[label="primMinusNat (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)) Zero",fontsize=16,color="magenta"];94 -> 1150[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 94 -> 1151[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 94 -> 1152[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 739[label="vy30000",fontsize=16,color="green",shape="box"];740[label="vy31000",fontsize=16,color="green",shape="box"];741[label="vy30000",fontsize=16,color="green",shape="box"];742[label="vy31000",fontsize=16,color="green",shape="box"];738[label="primPlusNat (primDivNatS0 (Succ vy51) (Succ vy52) (primGEqNatS vy53 vy54)) (Succ Zero)",fontsize=16,color="burlywood",shape="triangle"];2371[label="vy53/Succ vy530",fontsize=10,color="white",style="solid",shape="box"];738 -> 2371[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2371 -> 779[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2372[label="vy53/Zero",fontsize=10,color="white",style="solid",shape="box"];738 -> 2372[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2372 -> 780[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 97[label="primPlusNat (Succ (primDivNatS (primMinusNatS (Succ vy30000) Zero) (Succ Zero))) (Succ Zero)",fontsize=16,color="black",shape="box"];97 -> 110[label="",style="solid", color="black", weight=3]; 12.72/4.99 98 -> 64[label="",style="dashed", color="red", weight=0]; 12.72/4.99 98[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="magenta"];99[label="primPlusNat (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))) (Succ Zero)",fontsize=16,color="black",shape="box"];99 -> 111[label="",style="solid", color="black", weight=3]; 12.72/4.99 712[label="primMinusNat (primDivNatS0 (Succ vy38) (Succ vy39) (primGEqNatS (Succ vy400) (Succ vy410))) (Succ Zero)",fontsize=16,color="black",shape="box"];712 -> 719[label="",style="solid", color="black", weight=3]; 12.72/4.99 713[label="primMinusNat (primDivNatS0 (Succ vy38) (Succ vy39) (primGEqNatS (Succ vy400) Zero)) (Succ Zero)",fontsize=16,color="black",shape="box"];713 -> 720[label="",style="solid", color="black", weight=3]; 12.72/4.99 714[label="primMinusNat (primDivNatS0 (Succ vy38) (Succ vy39) (primGEqNatS Zero (Succ vy410))) (Succ Zero)",fontsize=16,color="black",shape="box"];714 -> 721[label="",style="solid", color="black", weight=3]; 12.72/4.99 715[label="primMinusNat (primDivNatS0 (Succ vy38) (Succ vy39) (primGEqNatS Zero Zero)) (Succ Zero)",fontsize=16,color="black",shape="box"];715 -> 722[label="",style="solid", color="black", weight=3]; 12.72/4.99 1147[label="Zero",fontsize=16,color="green",shape="box"];1148[label="Succ vy30000",fontsize=16,color="green",shape="box"];1149[label="Zero",fontsize=16,color="green",shape="box"];1146[label="primMinusNat (primDivNatS (primMinusNatS vy58 vy59) (Succ vy60)) Zero",fontsize=16,color="burlywood",shape="triangle"];2373[label="vy58/Succ vy580",fontsize=10,color="white",style="solid",shape="box"];1146 -> 2373[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2373 -> 1180[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2374[label="vy58/Zero",fontsize=10,color="white",style="solid",shape="box"];1146 -> 2374[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2374 -> 1181[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1150[label="Zero",fontsize=16,color="green",shape="box"];1151[label="Zero",fontsize=16,color="green",shape="box"];1152[label="Zero",fontsize=16,color="green",shape="box"];779[label="primPlusNat (primDivNatS0 (Succ vy51) (Succ vy52) (primGEqNatS (Succ vy530) vy54)) (Succ Zero)",fontsize=16,color="burlywood",shape="box"];2375[label="vy54/Succ vy540",fontsize=10,color="white",style="solid",shape="box"];779 -> 2375[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2375 -> 782[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2376[label="vy54/Zero",fontsize=10,color="white",style="solid",shape="box"];779 -> 2376[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2376 -> 783[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 780[label="primPlusNat (primDivNatS0 (Succ vy51) (Succ vy52) (primGEqNatS Zero vy54)) (Succ Zero)",fontsize=16,color="burlywood",shape="box"];2377[label="vy54/Succ vy540",fontsize=10,color="white",style="solid",shape="box"];780 -> 2377[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2377 -> 784[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2378[label="vy54/Zero",fontsize=10,color="white",style="solid",shape="box"];780 -> 2378[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2378 -> 785[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 110[label="Succ (Succ (primPlusNat (primDivNatS (primMinusNatS (Succ vy30000) Zero) (Succ Zero)) Zero))",fontsize=16,color="green",shape="box"];110 -> 123[label="",style="dashed", color="green", weight=3]; 12.72/4.99 111[label="Succ (Succ (primPlusNat (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)) Zero))",fontsize=16,color="green",shape="box"];111 -> 124[label="",style="dashed", color="green", weight=3]; 12.72/4.99 719 -> 665[label="",style="dashed", color="red", weight=0]; 12.72/4.99 719[label="primMinusNat (primDivNatS0 (Succ vy38) (Succ vy39) (primGEqNatS vy400 vy410)) (Succ Zero)",fontsize=16,color="magenta"];719 -> 725[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 719 -> 726[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 720[label="primMinusNat (primDivNatS0 (Succ vy38) (Succ vy39) MyTrue) (Succ Zero)",fontsize=16,color="black",shape="triangle"];720 -> 727[label="",style="solid", color="black", weight=3]; 12.72/4.99 721[label="primMinusNat (primDivNatS0 (Succ vy38) (Succ vy39) MyFalse) (Succ Zero)",fontsize=16,color="black",shape="box"];721 -> 728[label="",style="solid", color="black", weight=3]; 12.72/4.99 722 -> 720[label="",style="dashed", color="red", weight=0]; 12.72/4.99 722[label="primMinusNat (primDivNatS0 (Succ vy38) (Succ vy39) MyTrue) (Succ Zero)",fontsize=16,color="magenta"];1180[label="primMinusNat (primDivNatS (primMinusNatS (Succ vy580) vy59) (Succ vy60)) Zero",fontsize=16,color="burlywood",shape="box"];2379[label="vy59/Succ vy590",fontsize=10,color="white",style="solid",shape="box"];1180 -> 2379[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2379 -> 1195[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2380[label="vy59/Zero",fontsize=10,color="white",style="solid",shape="box"];1180 -> 2380[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2380 -> 1196[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1181[label="primMinusNat (primDivNatS (primMinusNatS Zero vy59) (Succ vy60)) Zero",fontsize=16,color="burlywood",shape="box"];2381[label="vy59/Succ vy590",fontsize=10,color="white",style="solid",shape="box"];1181 -> 2381[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2381 -> 1197[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2382[label="vy59/Zero",fontsize=10,color="white",style="solid",shape="box"];1181 -> 2382[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2382 -> 1198[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 782[label="primPlusNat (primDivNatS0 (Succ vy51) (Succ vy52) (primGEqNatS (Succ vy530) (Succ vy540))) (Succ Zero)",fontsize=16,color="black",shape="box"];782 -> 787[label="",style="solid", color="black", weight=3]; 12.72/4.99 783[label="primPlusNat (primDivNatS0 (Succ vy51) (Succ vy52) (primGEqNatS (Succ vy530) Zero)) (Succ Zero)",fontsize=16,color="black",shape="box"];783 -> 788[label="",style="solid", color="black", weight=3]; 12.72/4.99 784[label="primPlusNat (primDivNatS0 (Succ vy51) (Succ vy52) (primGEqNatS Zero (Succ vy540))) (Succ Zero)",fontsize=16,color="black",shape="box"];784 -> 789[label="",style="solid", color="black", weight=3]; 12.72/4.99 785[label="primPlusNat (primDivNatS0 (Succ vy51) (Succ vy52) (primGEqNatS Zero Zero)) (Succ Zero)",fontsize=16,color="black",shape="box"];785 -> 790[label="",style="solid", color="black", weight=3]; 12.72/4.99 123 -> 1258[label="",style="dashed", color="red", weight=0]; 12.72/4.99 123[label="primPlusNat (primDivNatS (primMinusNatS (Succ vy30000) Zero) (Succ Zero)) Zero",fontsize=16,color="magenta"];123 -> 1259[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 123 -> 1260[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 123 -> 1261[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 124 -> 1258[label="",style="dashed", color="red", weight=0]; 12.72/4.99 124[label="primPlusNat (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)) Zero",fontsize=16,color="magenta"];124 -> 1262[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 124 -> 1263[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 124 -> 1264[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 725[label="vy400",fontsize=16,color="green",shape="box"];726[label="vy410",fontsize=16,color="green",shape="box"];727[label="primMinusNat (Succ (primDivNatS (primMinusNatS (Succ vy38) (Succ vy39)) (Succ (Succ vy39)))) (Succ Zero)",fontsize=16,color="black",shape="box"];727 -> 781[label="",style="solid", color="black", weight=3]; 12.72/4.99 728 -> 57[label="",style="dashed", color="red", weight=0]; 12.72/4.99 728[label="primMinusNat Zero (Succ Zero)",fontsize=16,color="magenta"];1195[label="primMinusNat (primDivNatS (primMinusNatS (Succ vy580) (Succ vy590)) (Succ vy60)) Zero",fontsize=16,color="black",shape="box"];1195 -> 1214[label="",style="solid", color="black", weight=3]; 12.72/4.99 1196[label="primMinusNat (primDivNatS (primMinusNatS (Succ vy580) Zero) (Succ vy60)) Zero",fontsize=16,color="black",shape="box"];1196 -> 1215[label="",style="solid", color="black", weight=3]; 12.72/4.99 1197[label="primMinusNat (primDivNatS (primMinusNatS Zero (Succ vy590)) (Succ vy60)) Zero",fontsize=16,color="black",shape="box"];1197 -> 1216[label="",style="solid", color="black", weight=3]; 12.72/4.99 1198[label="primMinusNat (primDivNatS (primMinusNatS Zero Zero) (Succ vy60)) Zero",fontsize=16,color="black",shape="box"];1198 -> 1217[label="",style="solid", color="black", weight=3]; 12.72/4.99 787 -> 738[label="",style="dashed", color="red", weight=0]; 12.72/4.99 787[label="primPlusNat (primDivNatS0 (Succ vy51) (Succ vy52) (primGEqNatS vy530 vy540)) (Succ Zero)",fontsize=16,color="magenta"];787 -> 793[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 787 -> 794[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 788[label="primPlusNat (primDivNatS0 (Succ vy51) (Succ vy52) MyTrue) (Succ Zero)",fontsize=16,color="black",shape="triangle"];788 -> 795[label="",style="solid", color="black", weight=3]; 12.72/4.99 789[label="primPlusNat (primDivNatS0 (Succ vy51) (Succ vy52) MyFalse) (Succ Zero)",fontsize=16,color="black",shape="box"];789 -> 796[label="",style="solid", color="black", weight=3]; 12.72/4.99 790 -> 788[label="",style="dashed", color="red", weight=0]; 12.72/4.99 790[label="primPlusNat (primDivNatS0 (Succ vy51) (Succ vy52) MyTrue) (Succ Zero)",fontsize=16,color="magenta"];1259[label="Succ vy30000",fontsize=16,color="green",shape="box"];1260[label="Zero",fontsize=16,color="green",shape="box"];1261[label="Zero",fontsize=16,color="green",shape="box"];1258[label="primPlusNat (primDivNatS (primMinusNatS vy64 vy65) (Succ vy66)) Zero",fontsize=16,color="burlywood",shape="triangle"];2383[label="vy64/Succ vy640",fontsize=10,color="white",style="solid",shape="box"];1258 -> 2383[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2383 -> 1292[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2384[label="vy64/Zero",fontsize=10,color="white",style="solid",shape="box"];1258 -> 2384[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2384 -> 1293[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1262[label="Zero",fontsize=16,color="green",shape="box"];1263[label="Zero",fontsize=16,color="green",shape="box"];1264[label="Zero",fontsize=16,color="green",shape="box"];781 -> 1146[label="",style="dashed", color="red", weight=0]; 12.72/4.99 781[label="primMinusNat (primDivNatS (primMinusNatS (Succ vy38) (Succ vy39)) (Succ (Succ vy39))) Zero",fontsize=16,color="magenta"];781 -> 1153[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 781 -> 1154[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 781 -> 1155[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1214 -> 1146[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1214[label="primMinusNat (primDivNatS (primMinusNatS vy580 vy590) (Succ vy60)) Zero",fontsize=16,color="magenta"];1214 -> 1233[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1214 -> 1234[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1215[label="primMinusNat (primDivNatS (Succ vy580) (Succ vy60)) Zero",fontsize=16,color="black",shape="box"];1215 -> 1235[label="",style="solid", color="black", weight=3]; 12.72/4.99 1216[label="primMinusNat (primDivNatS Zero (Succ vy60)) Zero",fontsize=16,color="black",shape="triangle"];1216 -> 1236[label="",style="solid", color="black", weight=3]; 12.72/4.99 1217 -> 1216[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1217[label="primMinusNat (primDivNatS Zero (Succ vy60)) Zero",fontsize=16,color="magenta"];793[label="vy530",fontsize=16,color="green",shape="box"];794[label="vy540",fontsize=16,color="green",shape="box"];795[label="primPlusNat (Succ (primDivNatS (primMinusNatS (Succ vy51) (Succ vy52)) (Succ (Succ vy52)))) (Succ Zero)",fontsize=16,color="black",shape="box"];795 -> 801[label="",style="solid", color="black", weight=3]; 12.72/4.99 796 -> 64[label="",style="dashed", color="red", weight=0]; 12.72/4.99 796[label="primPlusNat Zero (Succ Zero)",fontsize=16,color="magenta"];1292[label="primPlusNat (primDivNatS (primMinusNatS (Succ vy640) vy65) (Succ vy66)) Zero",fontsize=16,color="burlywood",shape="box"];2385[label="vy65/Succ vy650",fontsize=10,color="white",style="solid",shape="box"];1292 -> 2385[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2385 -> 1298[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2386[label="vy65/Zero",fontsize=10,color="white",style="solid",shape="box"];1292 -> 2386[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2386 -> 1299[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1293[label="primPlusNat (primDivNatS (primMinusNatS Zero vy65) (Succ vy66)) Zero",fontsize=16,color="burlywood",shape="box"];2387[label="vy65/Succ vy650",fontsize=10,color="white",style="solid",shape="box"];1293 -> 2387[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2387 -> 1300[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2388[label="vy65/Zero",fontsize=10,color="white",style="solid",shape="box"];1293 -> 2388[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2388 -> 1301[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1153[label="Succ vy39",fontsize=16,color="green",shape="box"];1154[label="Succ vy38",fontsize=16,color="green",shape="box"];1155[label="Succ vy39",fontsize=16,color="green",shape="box"];1233[label="vy590",fontsize=16,color="green",shape="box"];1234[label="vy580",fontsize=16,color="green",shape="box"];1235[label="primMinusNat (primDivNatS0 vy580 vy60 (primGEqNatS vy580 vy60)) Zero",fontsize=16,color="burlywood",shape="box"];2389[label="vy580/Succ vy5800",fontsize=10,color="white",style="solid",shape="box"];1235 -> 2389[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2389 -> 1250[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2390[label="vy580/Zero",fontsize=10,color="white",style="solid",shape="box"];1235 -> 2390[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2390 -> 1251[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1236[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="triangle"];1236 -> 1252[label="",style="solid", color="black", weight=3]; 12.72/4.99 801[label="Succ (Succ (primPlusNat (primDivNatS (primMinusNatS (Succ vy51) (Succ vy52)) (Succ (Succ vy52))) Zero))",fontsize=16,color="green",shape="box"];801 -> 806[label="",style="dashed", color="green", weight=3]; 12.72/4.99 1298[label="primPlusNat (primDivNatS (primMinusNatS (Succ vy640) (Succ vy650)) (Succ vy66)) Zero",fontsize=16,color="black",shape="box"];1298 -> 1306[label="",style="solid", color="black", weight=3]; 12.72/4.99 1299[label="primPlusNat (primDivNatS (primMinusNatS (Succ vy640) Zero) (Succ vy66)) Zero",fontsize=16,color="black",shape="box"];1299 -> 1307[label="",style="solid", color="black", weight=3]; 12.72/4.99 1300[label="primPlusNat (primDivNatS (primMinusNatS Zero (Succ vy650)) (Succ vy66)) Zero",fontsize=16,color="black",shape="box"];1300 -> 1308[label="",style="solid", color="black", weight=3]; 12.72/4.99 1301[label="primPlusNat (primDivNatS (primMinusNatS Zero Zero) (Succ vy66)) Zero",fontsize=16,color="black",shape="box"];1301 -> 1309[label="",style="solid", color="black", weight=3]; 12.72/4.99 1250[label="primMinusNat (primDivNatS0 (Succ vy5800) vy60 (primGEqNatS (Succ vy5800) vy60)) Zero",fontsize=16,color="burlywood",shape="box"];2391[label="vy60/Succ vy600",fontsize=10,color="white",style="solid",shape="box"];1250 -> 2391[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2391 -> 1294[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2392[label="vy60/Zero",fontsize=10,color="white",style="solid",shape="box"];1250 -> 2392[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2392 -> 1295[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1251[label="primMinusNat (primDivNatS0 Zero vy60 (primGEqNatS Zero vy60)) Zero",fontsize=16,color="burlywood",shape="box"];2393[label="vy60/Succ vy600",fontsize=10,color="white",style="solid",shape="box"];1251 -> 2393[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2393 -> 1296[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2394[label="vy60/Zero",fontsize=10,color="white",style="solid",shape="box"];1251 -> 2394[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2394 -> 1297[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1252[label="Pos Zero",fontsize=16,color="green",shape="box"];806 -> 1258[label="",style="dashed", color="red", weight=0]; 12.72/4.99 806[label="primPlusNat (primDivNatS (primMinusNatS (Succ vy51) (Succ vy52)) (Succ (Succ vy52))) Zero",fontsize=16,color="magenta"];806 -> 1265[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 806 -> 1266[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 806 -> 1267[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1306 -> 1258[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1306[label="primPlusNat (primDivNatS (primMinusNatS vy640 vy650) (Succ vy66)) Zero",fontsize=16,color="magenta"];1306 -> 1315[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1306 -> 1316[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1307[label="primPlusNat (primDivNatS (Succ vy640) (Succ vy66)) Zero",fontsize=16,color="black",shape="box"];1307 -> 1317[label="",style="solid", color="black", weight=3]; 12.72/4.99 1308[label="primPlusNat (primDivNatS Zero (Succ vy66)) Zero",fontsize=16,color="black",shape="triangle"];1308 -> 1318[label="",style="solid", color="black", weight=3]; 12.72/4.99 1309 -> 1308[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1309[label="primPlusNat (primDivNatS Zero (Succ vy66)) Zero",fontsize=16,color="magenta"];1294[label="primMinusNat (primDivNatS0 (Succ vy5800) (Succ vy600) (primGEqNatS (Succ vy5800) (Succ vy600))) Zero",fontsize=16,color="black",shape="box"];1294 -> 1302[label="",style="solid", color="black", weight=3]; 12.72/4.99 1295[label="primMinusNat (primDivNatS0 (Succ vy5800) Zero (primGEqNatS (Succ vy5800) Zero)) Zero",fontsize=16,color="black",shape="box"];1295 -> 1303[label="",style="solid", color="black", weight=3]; 12.72/4.99 1296[label="primMinusNat (primDivNatS0 Zero (Succ vy600) (primGEqNatS Zero (Succ vy600))) Zero",fontsize=16,color="black",shape="box"];1296 -> 1304[label="",style="solid", color="black", weight=3]; 12.72/4.99 1297[label="primMinusNat (primDivNatS0 Zero Zero (primGEqNatS Zero Zero)) Zero",fontsize=16,color="black",shape="box"];1297 -> 1305[label="",style="solid", color="black", weight=3]; 12.72/4.99 1265[label="Succ vy51",fontsize=16,color="green",shape="box"];1266[label="Succ vy52",fontsize=16,color="green",shape="box"];1267[label="Succ vy52",fontsize=16,color="green",shape="box"];1315[label="vy640",fontsize=16,color="green",shape="box"];1316[label="vy650",fontsize=16,color="green",shape="box"];1317[label="primPlusNat (primDivNatS0 vy640 vy66 (primGEqNatS vy640 vy66)) Zero",fontsize=16,color="burlywood",shape="box"];2395[label="vy640/Succ vy6400",fontsize=10,color="white",style="solid",shape="box"];1317 -> 2395[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2395 -> 1325[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2396[label="vy640/Zero",fontsize=10,color="white",style="solid",shape="box"];1317 -> 2396[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2396 -> 1326[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1318[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="triangle"];1318 -> 1327[label="",style="solid", color="black", weight=3]; 12.72/4.99 1302 -> 1821[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1302[label="primMinusNat (primDivNatS0 (Succ vy5800) (Succ vy600) (primGEqNatS vy5800 vy600)) Zero",fontsize=16,color="magenta"];1302 -> 1822[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1302 -> 1823[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1302 -> 1824[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1302 -> 1825[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1303[label="primMinusNat (primDivNatS0 (Succ vy5800) Zero MyTrue) Zero",fontsize=16,color="black",shape="box"];1303 -> 1312[label="",style="solid", color="black", weight=3]; 12.72/4.99 1304[label="primMinusNat (primDivNatS0 Zero (Succ vy600) MyFalse) Zero",fontsize=16,color="black",shape="box"];1304 -> 1313[label="",style="solid", color="black", weight=3]; 12.72/4.99 1305[label="primMinusNat (primDivNatS0 Zero Zero MyTrue) Zero",fontsize=16,color="black",shape="box"];1305 -> 1314[label="",style="solid", color="black", weight=3]; 12.72/4.99 1325[label="primPlusNat (primDivNatS0 (Succ vy6400) vy66 (primGEqNatS (Succ vy6400) vy66)) Zero",fontsize=16,color="burlywood",shape="box"];2397[label="vy66/Succ vy660",fontsize=10,color="white",style="solid",shape="box"];1325 -> 2397[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2397 -> 1334[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2398[label="vy66/Zero",fontsize=10,color="white",style="solid",shape="box"];1325 -> 2398[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2398 -> 1335[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1326[label="primPlusNat (primDivNatS0 Zero vy66 (primGEqNatS Zero vy66)) Zero",fontsize=16,color="burlywood",shape="box"];2399[label="vy66/Succ vy660",fontsize=10,color="white",style="solid",shape="box"];1326 -> 2399[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2399 -> 1336[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2400[label="vy66/Zero",fontsize=10,color="white",style="solid",shape="box"];1326 -> 2400[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2400 -> 1337[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1327[label="Zero",fontsize=16,color="green",shape="box"];1822[label="vy600",fontsize=16,color="green",shape="box"];1823[label="vy5800",fontsize=16,color="green",shape="box"];1824[label="vy5800",fontsize=16,color="green",shape="box"];1825[label="vy600",fontsize=16,color="green",shape="box"];1821[label="primMinusNat (primDivNatS0 (Succ vy95) (Succ vy96) (primGEqNatS vy97 vy98)) Zero",fontsize=16,color="burlywood",shape="triangle"];2401[label="vy97/Succ vy970",fontsize=10,color="white",style="solid",shape="box"];1821 -> 2401[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2401 -> 1862[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2402[label="vy97/Zero",fontsize=10,color="white",style="solid",shape="box"];1821 -> 2402[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2402 -> 1863[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1312 -> 1667[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1312[label="primMinusNat (Succ (primDivNatS (primMinusNatS (Succ vy5800) Zero) (Succ Zero))) Zero",fontsize=16,color="magenta"];1312 -> 1668[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1313 -> 1236[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1313[label="primMinusNat Zero Zero",fontsize=16,color="magenta"];1314 -> 1667[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1314[label="primMinusNat (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))) Zero",fontsize=16,color="magenta"];1314 -> 1669[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1334[label="primPlusNat (primDivNatS0 (Succ vy6400) (Succ vy660) (primGEqNatS (Succ vy6400) (Succ vy660))) Zero",fontsize=16,color="black",shape="box"];1334 -> 1345[label="",style="solid", color="black", weight=3]; 12.72/4.99 1335[label="primPlusNat (primDivNatS0 (Succ vy6400) Zero (primGEqNatS (Succ vy6400) Zero)) Zero",fontsize=16,color="black",shape="box"];1335 -> 1346[label="",style="solid", color="black", weight=3]; 12.72/4.99 1336[label="primPlusNat (primDivNatS0 Zero (Succ vy660) (primGEqNatS Zero (Succ vy660))) Zero",fontsize=16,color="black",shape="box"];1336 -> 1347[label="",style="solid", color="black", weight=3]; 12.72/4.99 1337[label="primPlusNat (primDivNatS0 Zero Zero (primGEqNatS Zero Zero)) Zero",fontsize=16,color="black",shape="box"];1337 -> 1348[label="",style="solid", color="black", weight=3]; 12.72/4.99 1862[label="primMinusNat (primDivNatS0 (Succ vy95) (Succ vy96) (primGEqNatS (Succ vy970) vy98)) Zero",fontsize=16,color="burlywood",shape="box"];2403[label="vy98/Succ vy980",fontsize=10,color="white",style="solid",shape="box"];1862 -> 2403[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2403 -> 1877[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2404[label="vy98/Zero",fontsize=10,color="white",style="solid",shape="box"];1862 -> 2404[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2404 -> 1878[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1863[label="primMinusNat (primDivNatS0 (Succ vy95) (Succ vy96) (primGEqNatS Zero vy98)) Zero",fontsize=16,color="burlywood",shape="box"];2405[label="vy98/Succ vy980",fontsize=10,color="white",style="solid",shape="box"];1863 -> 2405[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2405 -> 1879[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2406[label="vy98/Zero",fontsize=10,color="white",style="solid",shape="box"];1863 -> 2406[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2406 -> 1880[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1668 -> 2049[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1668[label="primDivNatS (primMinusNatS (Succ vy5800) Zero) (Succ Zero)",fontsize=16,color="magenta"];1668 -> 2050[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1668 -> 2051[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1668 -> 2052[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1667[label="primMinusNat (Succ vy79) Zero",fontsize=16,color="black",shape="triangle"];1667 -> 1683[label="",style="solid", color="black", weight=3]; 12.72/4.99 1669 -> 2049[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1669[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];1669 -> 2053[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1669 -> 2054[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1669 -> 2055[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1345 -> 1954[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1345[label="primPlusNat (primDivNatS0 (Succ vy6400) (Succ vy660) (primGEqNatS vy6400 vy660)) Zero",fontsize=16,color="magenta"];1345 -> 1955[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1345 -> 1956[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1345 -> 1957[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1345 -> 1958[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1346[label="primPlusNat (primDivNatS0 (Succ vy6400) Zero MyTrue) Zero",fontsize=16,color="black",shape="box"];1346 -> 1359[label="",style="solid", color="black", weight=3]; 12.72/4.99 1347[label="primPlusNat (primDivNatS0 Zero (Succ vy660) MyFalse) Zero",fontsize=16,color="black",shape="box"];1347 -> 1360[label="",style="solid", color="black", weight=3]; 12.72/4.99 1348[label="primPlusNat (primDivNatS0 Zero Zero MyTrue) Zero",fontsize=16,color="black",shape="box"];1348 -> 1361[label="",style="solid", color="black", weight=3]; 12.72/4.99 1877[label="primMinusNat (primDivNatS0 (Succ vy95) (Succ vy96) (primGEqNatS (Succ vy970) (Succ vy980))) Zero",fontsize=16,color="black",shape="box"];1877 -> 1895[label="",style="solid", color="black", weight=3]; 12.72/4.99 1878[label="primMinusNat (primDivNatS0 (Succ vy95) (Succ vy96) (primGEqNatS (Succ vy970) Zero)) Zero",fontsize=16,color="black",shape="box"];1878 -> 1896[label="",style="solid", color="black", weight=3]; 12.72/4.99 1879[label="primMinusNat (primDivNatS0 (Succ vy95) (Succ vy96) (primGEqNatS Zero (Succ vy980))) Zero",fontsize=16,color="black",shape="box"];1879 -> 1897[label="",style="solid", color="black", weight=3]; 12.72/4.99 1880[label="primMinusNat (primDivNatS0 (Succ vy95) (Succ vy96) (primGEqNatS Zero Zero)) Zero",fontsize=16,color="black",shape="box"];1880 -> 1898[label="",style="solid", color="black", weight=3]; 12.72/4.99 2050[label="Succ vy5800",fontsize=16,color="green",shape="box"];2051[label="Zero",fontsize=16,color="green",shape="box"];2052[label="Zero",fontsize=16,color="green",shape="box"];2049[label="primDivNatS (primMinusNatS vy116 vy117) (Succ vy118)",fontsize=16,color="burlywood",shape="triangle"];2407[label="vy116/Succ vy1160",fontsize=10,color="white",style="solid",shape="box"];2049 -> 2407[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2407 -> 2101[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2408[label="vy116/Zero",fontsize=10,color="white",style="solid",shape="box"];2049 -> 2408[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2408 -> 2102[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1683[label="Pos (Succ vy79)",fontsize=16,color="green",shape="box"];2053[label="Zero",fontsize=16,color="green",shape="box"];2054[label="Zero",fontsize=16,color="green",shape="box"];2055[label="Zero",fontsize=16,color="green",shape="box"];1955[label="vy6400",fontsize=16,color="green",shape="box"];1956[label="vy660",fontsize=16,color="green",shape="box"];1957[label="vy660",fontsize=16,color="green",shape="box"];1958[label="vy6400",fontsize=16,color="green",shape="box"];1954[label="primPlusNat (primDivNatS0 (Succ vy111) (Succ vy112) (primGEqNatS vy113 vy114)) Zero",fontsize=16,color="burlywood",shape="triangle"];2409[label="vy113/Succ vy1130",fontsize=10,color="white",style="solid",shape="box"];1954 -> 2409[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2409 -> 1995[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2410[label="vy113/Zero",fontsize=10,color="white",style="solid",shape="box"];1954 -> 2410[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2410 -> 1996[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1359 -> 1374[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1359[label="primPlusNat (Succ (primDivNatS (primMinusNatS (Succ vy6400) Zero) (Succ Zero))) Zero",fontsize=16,color="magenta"];1359 -> 1375[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1360 -> 1318[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1360[label="primPlusNat Zero Zero",fontsize=16,color="magenta"];1361 -> 1374[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1361[label="primPlusNat (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))) Zero",fontsize=16,color="magenta"];1361 -> 1376[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1895 -> 1821[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1895[label="primMinusNat (primDivNatS0 (Succ vy95) (Succ vy96) (primGEqNatS vy970 vy980)) Zero",fontsize=16,color="magenta"];1895 -> 1914[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1895 -> 1915[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1896[label="primMinusNat (primDivNatS0 (Succ vy95) (Succ vy96) MyTrue) Zero",fontsize=16,color="black",shape="triangle"];1896 -> 1916[label="",style="solid", color="black", weight=3]; 12.72/4.99 1897[label="primMinusNat (primDivNatS0 (Succ vy95) (Succ vy96) MyFalse) Zero",fontsize=16,color="black",shape="box"];1897 -> 1917[label="",style="solid", color="black", weight=3]; 12.72/4.99 1898 -> 1896[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1898[label="primMinusNat (primDivNatS0 (Succ vy95) (Succ vy96) MyTrue) Zero",fontsize=16,color="magenta"];2101[label="primDivNatS (primMinusNatS (Succ vy1160) vy117) (Succ vy118)",fontsize=16,color="burlywood",shape="box"];2411[label="vy117/Succ vy1170",fontsize=10,color="white",style="solid",shape="box"];2101 -> 2411[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2411 -> 2103[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2412[label="vy117/Zero",fontsize=10,color="white",style="solid",shape="box"];2101 -> 2412[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2412 -> 2104[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2102[label="primDivNatS (primMinusNatS Zero vy117) (Succ vy118)",fontsize=16,color="burlywood",shape="box"];2413[label="vy117/Succ vy1170",fontsize=10,color="white",style="solid",shape="box"];2102 -> 2413[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2413 -> 2105[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2414[label="vy117/Zero",fontsize=10,color="white",style="solid",shape="box"];2102 -> 2414[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2414 -> 2106[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1995[label="primPlusNat (primDivNatS0 (Succ vy111) (Succ vy112) (primGEqNatS (Succ vy1130) vy114)) Zero",fontsize=16,color="burlywood",shape="box"];2415[label="vy114/Succ vy1140",fontsize=10,color="white",style="solid",shape="box"];1995 -> 2415[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2415 -> 2003[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2416[label="vy114/Zero",fontsize=10,color="white",style="solid",shape="box"];1995 -> 2416[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2416 -> 2004[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1996[label="primPlusNat (primDivNatS0 (Succ vy111) (Succ vy112) (primGEqNatS Zero vy114)) Zero",fontsize=16,color="burlywood",shape="box"];2417[label="vy114/Succ vy1140",fontsize=10,color="white",style="solid",shape="box"];1996 -> 2417[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2417 -> 2005[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2418[label="vy114/Zero",fontsize=10,color="white",style="solid",shape="box"];1996 -> 2418[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2418 -> 2006[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 1375 -> 2049[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1375[label="primDivNatS (primMinusNatS (Succ vy6400) Zero) (Succ Zero)",fontsize=16,color="magenta"];1375 -> 2062[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1375 -> 2063[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1375 -> 2064[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1374[label="primPlusNat (Succ vy67) Zero",fontsize=16,color="black",shape="triangle"];1374 -> 1382[label="",style="solid", color="black", weight=3]; 12.72/4.99 1376 -> 2049[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1376[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];1376 -> 2065[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1376 -> 2066[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1376 -> 2067[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1914[label="vy970",fontsize=16,color="green",shape="box"];1915[label="vy980",fontsize=16,color="green",shape="box"];1916 -> 1667[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1916[label="primMinusNat (Succ (primDivNatS (primMinusNatS (Succ vy95) (Succ vy96)) (Succ (Succ vy96)))) Zero",fontsize=16,color="magenta"];1916 -> 1929[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1917 -> 1236[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1917[label="primMinusNat Zero Zero",fontsize=16,color="magenta"];2103[label="primDivNatS (primMinusNatS (Succ vy1160) (Succ vy1170)) (Succ vy118)",fontsize=16,color="black",shape="box"];2103 -> 2107[label="",style="solid", color="black", weight=3]; 12.72/4.99 2104[label="primDivNatS (primMinusNatS (Succ vy1160) Zero) (Succ vy118)",fontsize=16,color="black",shape="box"];2104 -> 2108[label="",style="solid", color="black", weight=3]; 12.72/4.99 2105[label="primDivNatS (primMinusNatS Zero (Succ vy1170)) (Succ vy118)",fontsize=16,color="black",shape="box"];2105 -> 2109[label="",style="solid", color="black", weight=3]; 12.72/4.99 2106[label="primDivNatS (primMinusNatS Zero Zero) (Succ vy118)",fontsize=16,color="black",shape="box"];2106 -> 2110[label="",style="solid", color="black", weight=3]; 12.72/4.99 2003[label="primPlusNat (primDivNatS0 (Succ vy111) (Succ vy112) (primGEqNatS (Succ vy1130) (Succ vy1140))) Zero",fontsize=16,color="black",shape="box"];2003 -> 2017[label="",style="solid", color="black", weight=3]; 12.72/4.99 2004[label="primPlusNat (primDivNatS0 (Succ vy111) (Succ vy112) (primGEqNatS (Succ vy1130) Zero)) Zero",fontsize=16,color="black",shape="box"];2004 -> 2018[label="",style="solid", color="black", weight=3]; 12.72/4.99 2005[label="primPlusNat (primDivNatS0 (Succ vy111) (Succ vy112) (primGEqNatS Zero (Succ vy1140))) Zero",fontsize=16,color="black",shape="box"];2005 -> 2019[label="",style="solid", color="black", weight=3]; 12.72/4.99 2006[label="primPlusNat (primDivNatS0 (Succ vy111) (Succ vy112) (primGEqNatS Zero Zero)) Zero",fontsize=16,color="black",shape="box"];2006 -> 2020[label="",style="solid", color="black", weight=3]; 12.72/4.99 2062[label="Succ vy6400",fontsize=16,color="green",shape="box"];2063[label="Zero",fontsize=16,color="green",shape="box"];2064[label="Zero",fontsize=16,color="green",shape="box"];1382[label="Succ vy67",fontsize=16,color="green",shape="box"];2065[label="Zero",fontsize=16,color="green",shape="box"];2066[label="Zero",fontsize=16,color="green",shape="box"];2067[label="Zero",fontsize=16,color="green",shape="box"];1929 -> 2049[label="",style="dashed", color="red", weight=0]; 12.72/4.99 1929[label="primDivNatS (primMinusNatS (Succ vy95) (Succ vy96)) (Succ (Succ vy96))",fontsize=16,color="magenta"];1929 -> 2071[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1929 -> 2072[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 1929 -> 2073[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2107 -> 2049[label="",style="dashed", color="red", weight=0]; 12.72/4.99 2107[label="primDivNatS (primMinusNatS vy1160 vy1170) (Succ vy118)",fontsize=16,color="magenta"];2107 -> 2111[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2107 -> 2112[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2108[label="primDivNatS (Succ vy1160) (Succ vy118)",fontsize=16,color="black",shape="box"];2108 -> 2113[label="",style="solid", color="black", weight=3]; 12.72/4.99 2109[label="primDivNatS Zero (Succ vy118)",fontsize=16,color="black",shape="triangle"];2109 -> 2114[label="",style="solid", color="black", weight=3]; 12.72/4.99 2110 -> 2109[label="",style="dashed", color="red", weight=0]; 12.72/4.99 2110[label="primDivNatS Zero (Succ vy118)",fontsize=16,color="magenta"];2017 -> 1954[label="",style="dashed", color="red", weight=0]; 12.72/4.99 2017[label="primPlusNat (primDivNatS0 (Succ vy111) (Succ vy112) (primGEqNatS vy1130 vy1140)) Zero",fontsize=16,color="magenta"];2017 -> 2029[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2017 -> 2030[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2018[label="primPlusNat (primDivNatS0 (Succ vy111) (Succ vy112) MyTrue) Zero",fontsize=16,color="black",shape="triangle"];2018 -> 2031[label="",style="solid", color="black", weight=3]; 12.72/4.99 2019[label="primPlusNat (primDivNatS0 (Succ vy111) (Succ vy112) MyFalse) Zero",fontsize=16,color="black",shape="box"];2019 -> 2032[label="",style="solid", color="black", weight=3]; 12.72/4.99 2020 -> 2018[label="",style="dashed", color="red", weight=0]; 12.72/4.99 2020[label="primPlusNat (primDivNatS0 (Succ vy111) (Succ vy112) MyTrue) Zero",fontsize=16,color="magenta"];2071[label="Succ vy95",fontsize=16,color="green",shape="box"];2072[label="Succ vy96",fontsize=16,color="green",shape="box"];2073[label="Succ vy96",fontsize=16,color="green",shape="box"];2111[label="vy1160",fontsize=16,color="green",shape="box"];2112[label="vy1170",fontsize=16,color="green",shape="box"];2113[label="primDivNatS0 vy1160 vy118 (primGEqNatS vy1160 vy118)",fontsize=16,color="burlywood",shape="box"];2419[label="vy1160/Succ vy11600",fontsize=10,color="white",style="solid",shape="box"];2113 -> 2419[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2419 -> 2115[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2420[label="vy1160/Zero",fontsize=10,color="white",style="solid",shape="box"];2113 -> 2420[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2420 -> 2116[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2114[label="Zero",fontsize=16,color="green",shape="box"];2029[label="vy1140",fontsize=16,color="green",shape="box"];2030[label="vy1130",fontsize=16,color="green",shape="box"];2031 -> 1374[label="",style="dashed", color="red", weight=0]; 12.72/4.99 2031[label="primPlusNat (Succ (primDivNatS (primMinusNatS (Succ vy111) (Succ vy112)) (Succ (Succ vy112)))) Zero",fontsize=16,color="magenta"];2031 -> 2042[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2032 -> 1318[label="",style="dashed", color="red", weight=0]; 12.72/4.99 2032[label="primPlusNat Zero Zero",fontsize=16,color="magenta"];2115[label="primDivNatS0 (Succ vy11600) vy118 (primGEqNatS (Succ vy11600) vy118)",fontsize=16,color="burlywood",shape="box"];2421[label="vy118/Succ vy1180",fontsize=10,color="white",style="solid",shape="box"];2115 -> 2421[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2421 -> 2117[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2422[label="vy118/Zero",fontsize=10,color="white",style="solid",shape="box"];2115 -> 2422[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2422 -> 2118[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2116[label="primDivNatS0 Zero vy118 (primGEqNatS Zero vy118)",fontsize=16,color="burlywood",shape="box"];2423[label="vy118/Succ vy1180",fontsize=10,color="white",style="solid",shape="box"];2116 -> 2423[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2423 -> 2119[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2424[label="vy118/Zero",fontsize=10,color="white",style="solid",shape="box"];2116 -> 2424[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2424 -> 2120[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2042 -> 2049[label="",style="dashed", color="red", weight=0]; 12.72/4.99 2042[label="primDivNatS (primMinusNatS (Succ vy111) (Succ vy112)) (Succ (Succ vy112))",fontsize=16,color="magenta"];2042 -> 2077[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2042 -> 2078[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2042 -> 2079[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2117[label="primDivNatS0 (Succ vy11600) (Succ vy1180) (primGEqNatS (Succ vy11600) (Succ vy1180))",fontsize=16,color="black",shape="box"];2117 -> 2121[label="",style="solid", color="black", weight=3]; 12.72/4.99 2118[label="primDivNatS0 (Succ vy11600) Zero (primGEqNatS (Succ vy11600) Zero)",fontsize=16,color="black",shape="box"];2118 -> 2122[label="",style="solid", color="black", weight=3]; 12.72/4.99 2119[label="primDivNatS0 Zero (Succ vy1180) (primGEqNatS Zero (Succ vy1180))",fontsize=16,color="black",shape="box"];2119 -> 2123[label="",style="solid", color="black", weight=3]; 12.72/4.99 2120[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];2120 -> 2124[label="",style="solid", color="black", weight=3]; 12.72/4.99 2077[label="Succ vy111",fontsize=16,color="green",shape="box"];2078[label="Succ vy112",fontsize=16,color="green",shape="box"];2079[label="Succ vy112",fontsize=16,color="green",shape="box"];2121 -> 2283[label="",style="dashed", color="red", weight=0]; 12.72/4.99 2121[label="primDivNatS0 (Succ vy11600) (Succ vy1180) (primGEqNatS vy11600 vy1180)",fontsize=16,color="magenta"];2121 -> 2284[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2121 -> 2285[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2121 -> 2286[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2121 -> 2287[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2122[label="primDivNatS0 (Succ vy11600) Zero MyTrue",fontsize=16,color="black",shape="box"];2122 -> 2127[label="",style="solid", color="black", weight=3]; 12.72/4.99 2123[label="primDivNatS0 Zero (Succ vy1180) MyFalse",fontsize=16,color="black",shape="box"];2123 -> 2128[label="",style="solid", color="black", weight=3]; 12.72/4.99 2124[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];2124 -> 2129[label="",style="solid", color="black", weight=3]; 12.72/4.99 2284[label="vy11600",fontsize=16,color="green",shape="box"];2285[label="vy11600",fontsize=16,color="green",shape="box"];2286[label="vy1180",fontsize=16,color="green",shape="box"];2287[label="vy1180",fontsize=16,color="green",shape="box"];2283[label="primDivNatS0 (Succ vy135) (Succ vy136) (primGEqNatS vy137 vy138)",fontsize=16,color="burlywood",shape="triangle"];2425[label="vy137/Succ vy1370",fontsize=10,color="white",style="solid",shape="box"];2283 -> 2425[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2425 -> 2316[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2426[label="vy137/Zero",fontsize=10,color="white",style="solid",shape="box"];2283 -> 2426[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2426 -> 2317[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2127[label="Succ (primDivNatS (primMinusNatS (Succ vy11600) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];2127 -> 2134[label="",style="dashed", color="green", weight=3]; 12.72/4.99 2128[label="Zero",fontsize=16,color="green",shape="box"];2129[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];2129 -> 2135[label="",style="dashed", color="green", weight=3]; 12.72/4.99 2316[label="primDivNatS0 (Succ vy135) (Succ vy136) (primGEqNatS (Succ vy1370) vy138)",fontsize=16,color="burlywood",shape="box"];2427[label="vy138/Succ vy1380",fontsize=10,color="white",style="solid",shape="box"];2316 -> 2427[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2427 -> 2318[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2428[label="vy138/Zero",fontsize=10,color="white",style="solid",shape="box"];2316 -> 2428[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2428 -> 2319[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2317[label="primDivNatS0 (Succ vy135) (Succ vy136) (primGEqNatS Zero vy138)",fontsize=16,color="burlywood",shape="box"];2429[label="vy138/Succ vy1380",fontsize=10,color="white",style="solid",shape="box"];2317 -> 2429[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2429 -> 2320[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2430[label="vy138/Zero",fontsize=10,color="white",style="solid",shape="box"];2317 -> 2430[label="",style="solid", color="burlywood", weight=9]; 12.72/4.99 2430 -> 2321[label="",style="solid", color="burlywood", weight=3]; 12.72/4.99 2134 -> 2049[label="",style="dashed", color="red", weight=0]; 12.72/4.99 2134[label="primDivNatS (primMinusNatS (Succ vy11600) Zero) (Succ Zero)",fontsize=16,color="magenta"];2134 -> 2140[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2134 -> 2141[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2134 -> 2142[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2135 -> 2049[label="",style="dashed", color="red", weight=0]; 12.72/4.99 2135[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];2135 -> 2143[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2135 -> 2144[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2135 -> 2145[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2318[label="primDivNatS0 (Succ vy135) (Succ vy136) (primGEqNatS (Succ vy1370) (Succ vy1380))",fontsize=16,color="black",shape="box"];2318 -> 2322[label="",style="solid", color="black", weight=3]; 12.72/4.99 2319[label="primDivNatS0 (Succ vy135) (Succ vy136) (primGEqNatS (Succ vy1370) Zero)",fontsize=16,color="black",shape="box"];2319 -> 2323[label="",style="solid", color="black", weight=3]; 12.72/4.99 2320[label="primDivNatS0 (Succ vy135) (Succ vy136) (primGEqNatS Zero (Succ vy1380))",fontsize=16,color="black",shape="box"];2320 -> 2324[label="",style="solid", color="black", weight=3]; 12.72/4.99 2321[label="primDivNatS0 (Succ vy135) (Succ vy136) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];2321 -> 2325[label="",style="solid", color="black", weight=3]; 12.72/4.99 2140[label="Succ vy11600",fontsize=16,color="green",shape="box"];2141[label="Zero",fontsize=16,color="green",shape="box"];2142[label="Zero",fontsize=16,color="green",shape="box"];2143[label="Zero",fontsize=16,color="green",shape="box"];2144[label="Zero",fontsize=16,color="green",shape="box"];2145[label="Zero",fontsize=16,color="green",shape="box"];2322 -> 2283[label="",style="dashed", color="red", weight=0]; 12.72/4.99 2322[label="primDivNatS0 (Succ vy135) (Succ vy136) (primGEqNatS vy1370 vy1380)",fontsize=16,color="magenta"];2322 -> 2326[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2322 -> 2327[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2323[label="primDivNatS0 (Succ vy135) (Succ vy136) MyTrue",fontsize=16,color="black",shape="triangle"];2323 -> 2328[label="",style="solid", color="black", weight=3]; 12.72/4.99 2324[label="primDivNatS0 (Succ vy135) (Succ vy136) MyFalse",fontsize=16,color="black",shape="box"];2324 -> 2329[label="",style="solid", color="black", weight=3]; 12.72/4.99 2325 -> 2323[label="",style="dashed", color="red", weight=0]; 12.72/4.99 2325[label="primDivNatS0 (Succ vy135) (Succ vy136) MyTrue",fontsize=16,color="magenta"];2326[label="vy1370",fontsize=16,color="green",shape="box"];2327[label="vy1380",fontsize=16,color="green",shape="box"];2328[label="Succ (primDivNatS (primMinusNatS (Succ vy135) (Succ vy136)) (Succ (Succ vy136)))",fontsize=16,color="green",shape="box"];2328 -> 2330[label="",style="dashed", color="green", weight=3]; 12.72/4.99 2329[label="Zero",fontsize=16,color="green",shape="box"];2330 -> 2049[label="",style="dashed", color="red", weight=0]; 12.72/4.99 2330[label="primDivNatS (primMinusNatS (Succ vy135) (Succ vy136)) (Succ (Succ vy136))",fontsize=16,color="magenta"];2330 -> 2331[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2330 -> 2332[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2330 -> 2333[label="",style="dashed", color="magenta", weight=3]; 12.72/4.99 2331[label="Succ vy135",fontsize=16,color="green",shape="box"];2332[label="Succ vy136",fontsize=16,color="green",shape="box"];2333[label="Succ vy136",fontsize=16,color="green",shape="box"];} 12.72/4.99 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (6) 12.72/4.99 Complex Obligation (AND) 12.72/4.99 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (7) 12.72/4.99 Obligation: 12.72/4.99 Q DP problem: 12.72/4.99 The TRS P consists of the following rules: 12.72/4.99 12.72/4.99 new_primPlusNat(vy111, vy112, Main.Succ(vy1130), Main.Succ(vy1140)) -> new_primPlusNat(vy111, vy112, vy1130, vy1140) 12.72/4.99 12.72/4.99 R is empty. 12.72/4.99 Q is empty. 12.72/4.99 We have to consider all minimal (P,Q,R)-chains. 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (8) QDPSizeChangeProof (EQUIVALENT) 12.72/4.99 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. 12.72/4.99 12.72/4.99 From the DPs we obtained the following set of size-change graphs: 12.72/4.99 *new_primPlusNat(vy111, vy112, Main.Succ(vy1130), Main.Succ(vy1140)) -> new_primPlusNat(vy111, vy112, vy1130, vy1140) 12.72/4.99 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 12.72/4.99 12.72/4.99 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (9) 12.72/4.99 YES 12.72/4.99 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (10) 12.72/4.99 Obligation: 12.72/4.99 Q DP problem: 12.72/4.99 The TRS P consists of the following rules: 12.72/4.99 12.72/4.99 new_primMinusNat1(vy38, vy39, Main.Succ(vy400), Main.Succ(vy410)) -> new_primMinusNat1(vy38, vy39, vy400, vy410) 12.72/4.99 12.72/4.99 R is empty. 12.72/4.99 Q is empty. 12.72/4.99 We have to consider all minimal (P,Q,R)-chains. 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (11) QDPSizeChangeProof (EQUIVALENT) 12.72/4.99 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. 12.72/4.99 12.72/4.99 From the DPs we obtained the following set of size-change graphs: 12.72/4.99 *new_primMinusNat1(vy38, vy39, Main.Succ(vy400), Main.Succ(vy410)) -> new_primMinusNat1(vy38, vy39, vy400, vy410) 12.72/4.99 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 12.72/4.99 12.72/4.99 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (12) 12.72/4.99 YES 12.72/4.99 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (13) 12.72/4.99 Obligation: 12.72/4.99 Q DP problem: 12.72/4.99 The TRS P consists of the following rules: 12.72/4.99 12.72/4.99 new_primPlusNat1(vy51, vy52, Main.Succ(vy530), Main.Succ(vy540)) -> new_primPlusNat1(vy51, vy52, vy530, vy540) 12.72/4.99 12.72/4.99 R is empty. 12.72/4.99 Q is empty. 12.72/4.99 We have to consider all minimal (P,Q,R)-chains. 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (14) QDPSizeChangeProof (EQUIVALENT) 12.72/4.99 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. 12.72/4.99 12.72/4.99 From the DPs we obtained the following set of size-change graphs: 12.72/4.99 *new_primPlusNat1(vy51, vy52, Main.Succ(vy530), Main.Succ(vy540)) -> new_primPlusNat1(vy51, vy52, vy530, vy540) 12.72/4.99 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 12.72/4.99 12.72/4.99 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (15) 12.72/4.99 YES 12.72/4.99 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (16) 12.72/4.99 Obligation: 12.72/4.99 Q DP problem: 12.72/4.99 The TRS P consists of the following rules: 12.72/4.99 12.72/4.99 new_primMinusNat(vy95, vy96, Main.Succ(vy970), Main.Succ(vy980)) -> new_primMinusNat(vy95, vy96, vy970, vy980) 12.72/4.99 12.72/4.99 R is empty. 12.72/4.99 Q is empty. 12.72/4.99 We have to consider all minimal (P,Q,R)-chains. 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (17) QDPSizeChangeProof (EQUIVALENT) 12.72/4.99 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. 12.72/4.99 12.72/4.99 From the DPs we obtained the following set of size-change graphs: 12.72/4.99 *new_primMinusNat(vy95, vy96, Main.Succ(vy970), Main.Succ(vy980)) -> new_primMinusNat(vy95, vy96, vy970, vy980) 12.72/4.99 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 12.72/4.99 12.72/4.99 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (18) 12.72/4.99 YES 12.72/4.99 12.72/4.99 ---------------------------------------- 12.72/4.99 12.72/4.99 (19) 12.72/4.99 Obligation: 12.72/5.00 Q DP problem: 12.72/5.00 The TRS P consists of the following rules: 12.72/5.00 12.72/5.00 new_primMinusNat0(Main.Succ(vy580), Main.Succ(vy590), vy60) -> new_primMinusNat0(vy580, vy590, vy60) 12.72/5.00 12.72/5.00 R is empty. 12.72/5.00 Q is empty. 12.72/5.00 We have to consider all minimal (P,Q,R)-chains. 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (20) QDPSizeChangeProof (EQUIVALENT) 12.72/5.00 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. 12.72/5.00 12.72/5.00 From the DPs we obtained the following set of size-change graphs: 12.72/5.00 *new_primMinusNat0(Main.Succ(vy580), Main.Succ(vy590), vy60) -> new_primMinusNat0(vy580, vy590, vy60) 12.72/5.00 The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 12.72/5.00 12.72/5.00 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (21) 12.72/5.00 YES 12.72/5.00 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (22) 12.72/5.00 Obligation: 12.72/5.00 Q DP problem: 12.72/5.00 The TRS P consists of the following rules: 12.72/5.00 12.72/5.00 new_primPlusNat0(Main.Succ(vy640), Main.Succ(vy650), vy66) -> new_primPlusNat0(vy640, vy650, vy66) 12.72/5.00 12.72/5.00 R is empty. 12.72/5.00 Q is empty. 12.72/5.00 We have to consider all minimal (P,Q,R)-chains. 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (23) QDPSizeChangeProof (EQUIVALENT) 12.72/5.00 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. 12.72/5.00 12.72/5.00 From the DPs we obtained the following set of size-change graphs: 12.72/5.00 *new_primPlusNat0(Main.Succ(vy640), Main.Succ(vy650), vy66) -> new_primPlusNat0(vy640, vy650, vy66) 12.72/5.00 The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 12.72/5.00 12.72/5.00 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (24) 12.72/5.00 YES 12.72/5.00 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (25) 12.72/5.00 Obligation: 12.72/5.00 Q DP problem: 12.72/5.00 The TRS P consists of the following rules: 12.72/5.00 12.72/5.00 new_primDivNatS(Main.Succ(vy1160), Main.Succ(vy1170), vy118) -> new_primDivNatS(vy1160, vy1170, vy118) 12.72/5.00 new_primDivNatS0(vy135, vy136, Main.Succ(vy1370), Main.Succ(vy1380)) -> new_primDivNatS0(vy135, vy136, vy1370, vy1380) 12.72/5.00 new_primDivNatS00(vy135, vy136) -> new_primDivNatS(Main.Succ(vy135), Main.Succ(vy136), Main.Succ(vy136)) 12.72/5.00 new_primDivNatS(Main.Succ(Main.Succ(vy11600)), Main.Zero, Main.Zero) -> new_primDivNatS(Main.Succ(vy11600), Main.Zero, Main.Zero) 12.72/5.00 new_primDivNatS(Main.Succ(Main.Zero), Main.Zero, Main.Zero) -> new_primDivNatS(Main.Zero, Main.Zero, Main.Zero) 12.72/5.00 new_primDivNatS(Main.Succ(Main.Succ(vy11600)), Main.Zero, Main.Succ(vy1180)) -> new_primDivNatS0(vy11600, vy1180, vy11600, vy1180) 12.72/5.00 new_primDivNatS0(vy135, vy136, Main.Succ(vy1370), Main.Zero) -> new_primDivNatS(Main.Succ(vy135), Main.Succ(vy136), Main.Succ(vy136)) 12.72/5.00 new_primDivNatS0(vy135, vy136, Main.Zero, Main.Zero) -> new_primDivNatS00(vy135, vy136) 12.72/5.00 12.72/5.00 R is empty. 12.72/5.00 Q is empty. 12.72/5.00 We have to consider all minimal (P,Q,R)-chains. 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (26) DependencyGraphProof (EQUIVALENT) 12.72/5.00 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (27) 12.72/5.00 Complex Obligation (AND) 12.72/5.00 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (28) 12.72/5.00 Obligation: 12.72/5.00 Q DP problem: 12.72/5.00 The TRS P consists of the following rules: 12.72/5.00 12.72/5.00 new_primDivNatS(Main.Succ(Main.Succ(vy11600)), Main.Zero, Main.Zero) -> new_primDivNatS(Main.Succ(vy11600), Main.Zero, Main.Zero) 12.72/5.00 12.72/5.00 R is empty. 12.72/5.00 Q is empty. 12.72/5.00 We have to consider all minimal (P,Q,R)-chains. 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (29) QDPSizeChangeProof (EQUIVALENT) 12.72/5.00 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. 12.72/5.00 12.72/5.00 From the DPs we obtained the following set of size-change graphs: 12.72/5.00 *new_primDivNatS(Main.Succ(Main.Succ(vy11600)), Main.Zero, Main.Zero) -> new_primDivNatS(Main.Succ(vy11600), Main.Zero, Main.Zero) 12.72/5.00 The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 2, 2 >= 3, 3 >= 3 12.72/5.00 12.72/5.00 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (30) 12.72/5.00 YES 12.72/5.00 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (31) 12.72/5.00 Obligation: 12.72/5.00 Q DP problem: 12.72/5.00 The TRS P consists of the following rules: 12.72/5.00 12.72/5.00 new_primDivNatS(Main.Succ(Main.Succ(vy11600)), Main.Zero, Main.Succ(vy1180)) -> new_primDivNatS0(vy11600, vy1180, vy11600, vy1180) 12.72/5.00 new_primDivNatS0(vy135, vy136, Main.Succ(vy1370), Main.Succ(vy1380)) -> new_primDivNatS0(vy135, vy136, vy1370, vy1380) 12.72/5.00 new_primDivNatS0(vy135, vy136, Main.Succ(vy1370), Main.Zero) -> new_primDivNatS(Main.Succ(vy135), Main.Succ(vy136), Main.Succ(vy136)) 12.72/5.00 new_primDivNatS(Main.Succ(vy1160), Main.Succ(vy1170), vy118) -> new_primDivNatS(vy1160, vy1170, vy118) 12.72/5.00 new_primDivNatS0(vy135, vy136, Main.Zero, Main.Zero) -> new_primDivNatS00(vy135, vy136) 12.72/5.00 new_primDivNatS00(vy135, vy136) -> new_primDivNatS(Main.Succ(vy135), Main.Succ(vy136), Main.Succ(vy136)) 12.72/5.00 12.72/5.00 R is empty. 12.72/5.00 Q is empty. 12.72/5.00 We have to consider all minimal (P,Q,R)-chains. 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (32) QDPOrderProof (EQUIVALENT) 12.72/5.00 We use the reduction pair processor [LPAR04,JAR06]. 12.72/5.00 12.72/5.00 12.72/5.00 The following pairs can be oriented strictly and are deleted. 12.72/5.00 12.72/5.00 new_primDivNatS(Main.Succ(Main.Succ(vy11600)), Main.Zero, Main.Succ(vy1180)) -> new_primDivNatS0(vy11600, vy1180, vy11600, vy1180) 12.72/5.00 new_primDivNatS(Main.Succ(vy1160), Main.Succ(vy1170), vy118) -> new_primDivNatS(vy1160, vy1170, vy118) 12.72/5.00 The remaining pairs can at least be oriented weakly. 12.72/5.00 Used ordering: Polynomial interpretation [POLO]: 12.72/5.00 12.72/5.00 POL(Main.Succ(x_1)) = 1 + x_1 12.72/5.00 POL(Main.Zero) = 1 12.72/5.00 POL(new_primDivNatS(x_1, x_2, x_3)) = x_1 12.72/5.00 POL(new_primDivNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 12.72/5.00 POL(new_primDivNatS00(x_1, x_2)) = 1 + x_1 12.72/5.00 12.72/5.00 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 12.72/5.00 none 12.72/5.00 12.72/5.00 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (33) 12.72/5.00 Obligation: 12.72/5.00 Q DP problem: 12.72/5.00 The TRS P consists of the following rules: 12.72/5.00 12.72/5.00 new_primDivNatS0(vy135, vy136, Main.Succ(vy1370), Main.Succ(vy1380)) -> new_primDivNatS0(vy135, vy136, vy1370, vy1380) 12.72/5.00 new_primDivNatS0(vy135, vy136, Main.Succ(vy1370), Main.Zero) -> new_primDivNatS(Main.Succ(vy135), Main.Succ(vy136), Main.Succ(vy136)) 12.72/5.00 new_primDivNatS0(vy135, vy136, Main.Zero, Main.Zero) -> new_primDivNatS00(vy135, vy136) 12.72/5.00 new_primDivNatS00(vy135, vy136) -> new_primDivNatS(Main.Succ(vy135), Main.Succ(vy136), Main.Succ(vy136)) 12.72/5.00 12.72/5.00 R is empty. 12.72/5.00 Q is empty. 12.72/5.00 We have to consider all minimal (P,Q,R)-chains. 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (34) DependencyGraphProof (EQUIVALENT) 12.72/5.00 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (35) 12.72/5.00 Obligation: 12.72/5.00 Q DP problem: 12.72/5.00 The TRS P consists of the following rules: 12.72/5.00 12.72/5.00 new_primDivNatS0(vy135, vy136, Main.Succ(vy1370), Main.Succ(vy1380)) -> new_primDivNatS0(vy135, vy136, vy1370, vy1380) 12.72/5.00 12.72/5.00 R is empty. 12.72/5.00 Q is empty. 12.72/5.00 We have to consider all minimal (P,Q,R)-chains. 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (36) QDPSizeChangeProof (EQUIVALENT) 12.72/5.00 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. 12.72/5.00 12.72/5.00 From the DPs we obtained the following set of size-change graphs: 12.72/5.00 *new_primDivNatS0(vy135, vy136, Main.Succ(vy1370), Main.Succ(vy1380)) -> new_primDivNatS0(vy135, vy136, vy1370, vy1380) 12.72/5.00 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 12.72/5.00 12.72/5.00 12.72/5.00 ---------------------------------------- 12.72/5.00 12.72/5.00 (37) 12.72/5.00 YES 12.75/5.03 EOF