11.55/4.57 YES 14.04/5.18 proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs 14.04/5.18 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 14.04/5.18 14.04/5.18 14.04/5.18 H-Termination with start terms of the given HASKELL could be proven: 14.04/5.18 14.04/5.18 (0) HASKELL 14.04/5.18 (1) BR [EQUIVALENT, 0 ms] 14.04/5.18 (2) HASKELL 14.04/5.18 (3) COR [EQUIVALENT, 0 ms] 14.04/5.18 (4) HASKELL 14.04/5.18 (5) Narrow [SOUND, 0 ms] 14.04/5.18 (6) AND 14.04/5.18 (7) QDP 14.04/5.18 (8) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.04/5.18 (9) YES 14.04/5.18 (10) QDP 14.04/5.18 (11) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.04/5.18 (12) YES 14.04/5.18 (13) QDP 14.04/5.18 (14) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.04/5.18 (15) YES 14.04/5.18 (16) QDP 14.04/5.18 (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.04/5.18 (18) YES 14.04/5.18 (19) QDP 14.04/5.18 (20) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.04/5.18 (21) YES 14.04/5.18 (22) QDP 14.04/5.18 (23) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.04/5.18 (24) YES 14.04/5.18 (25) QDP 14.04/5.18 (26) DependencyGraphProof [EQUIVALENT, 0 ms] 14.04/5.18 (27) AND 14.04/5.18 (28) QDP 14.04/5.18 (29) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.04/5.18 (30) YES 14.04/5.18 (31) QDP 14.04/5.18 (32) QDPOrderProof [EQUIVALENT, 42 ms] 14.04/5.18 (33) QDP 14.04/5.18 (34) DependencyGraphProof [EQUIVALENT, 0 ms] 14.04/5.18 (35) QDP 14.04/5.18 (36) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.04/5.18 (37) YES 14.04/5.18 14.04/5.18 14.04/5.18 ---------------------------------------- 14.04/5.18 14.04/5.18 (0) 14.04/5.18 Obligation: 14.04/5.18 mainModule Main 14.04/5.18 module Main where { 14.04/5.18 import qualified Prelude; 14.04/5.18 data Float = Float MyInt MyInt ; 14.04/5.18 14.04/5.18 data MyBool = MyTrue | MyFalse ; 14.04/5.18 14.04/5.18 data MyInt = Pos Main.Nat | Neg Main.Nat ; 14.04/5.18 14.04/5.18 data Main.Nat = Succ Main.Nat | Zero ; 14.04/5.18 14.04/5.18 data Tup2 a b = Tup2 a b ; 14.04/5.18 14.04/5.18 error :: a; 14.04/5.18 error = stop MyTrue; 14.04/5.18 14.04/5.18 floatProperFractionFloat (Float wy wz) = Tup2 (fromIntMyInt (quotMyInt wy wz)) (msFloat (Float wy wz) (fromIntFloat (quotMyInt wy wz))); 14.04/5.18 14.04/5.18 fromEnumFloat :: Float -> MyInt; 14.04/5.18 fromEnumFloat = truncateFloat; 14.04/5.18 14.04/5.18 fromIntFloat :: MyInt -> Float; 14.04/5.18 fromIntFloat = primIntToFloat; 14.04/5.18 14.04/5.18 fromIntMyInt :: MyInt -> MyInt; 14.04/5.18 fromIntMyInt x = x; 14.04/5.18 14.04/5.18 msFloat :: Float -> Float -> Float; 14.04/5.18 msFloat = primMinusFloat; 14.04/5.18 14.04/5.18 msMyInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 msMyInt = primMinusInt; 14.04/5.18 14.04/5.18 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 14.04/5.18 primDivNatS Main.Zero Main.Zero = Main.error; 14.04/5.18 primDivNatS (Main.Succ x) Main.Zero = Main.error; 14.04/5.18 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 14.04/5.18 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 14.04/5.18 14.04/5.18 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 14.04/5.18 primDivNatS0 x y MyFalse = Main.Zero; 14.04/5.18 14.04/5.18 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 14.04/5.18 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 14.04/5.18 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 14.04/5.18 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 14.04/5.18 primGEqNatS Main.Zero Main.Zero = MyTrue; 14.04/5.18 14.04/5.18 primIntToFloat :: MyInt -> Float; 14.04/5.18 primIntToFloat x = Float x (Main.Pos (Main.Succ Main.Zero)); 14.04/5.18 14.04/5.18 primMinusFloat :: Float -> Float -> Float; 14.04/5.18 primMinusFloat (Float x1 x2) (Float y1 y2) = Float (msMyInt x1 y1) (srMyInt x2 y2); 14.04/5.18 14.04/5.18 primMinusInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 primMinusInt (Main.Pos x) (Main.Neg y) = Main.Pos (primPlusNat x y); 14.04/5.18 primMinusInt (Main.Neg x) (Main.Pos y) = Main.Neg (primPlusNat x y); 14.04/5.18 primMinusInt (Main.Neg x) (Main.Neg y) = primMinusNat y x; 14.04/5.18 primMinusInt (Main.Pos x) (Main.Pos y) = primMinusNat x y; 14.04/5.18 14.04/5.18 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 14.04/5.18 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 14.04/5.18 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 14.04/5.18 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 14.04/5.18 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 14.04/5.18 14.04/5.18 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 14.04/5.18 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 14.04/5.18 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 14.04/5.18 primMinusNatS x Main.Zero = x; 14.04/5.18 14.04/5.18 primMulInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 primMulInt (Main.Pos x) (Main.Pos y) = Main.Pos (primMulNat x y); 14.04/5.18 primMulInt (Main.Pos x) (Main.Neg y) = Main.Neg (primMulNat x y); 14.04/5.18 primMulInt (Main.Neg x) (Main.Pos y) = Main.Neg (primMulNat x y); 14.04/5.18 primMulInt (Main.Neg x) (Main.Neg y) = Main.Pos (primMulNat x y); 14.04/5.18 14.04/5.18 primMulNat :: Main.Nat -> Main.Nat -> Main.Nat; 14.04/5.18 primMulNat Main.Zero Main.Zero = Main.Zero; 14.04/5.18 primMulNat Main.Zero (Main.Succ y) = Main.Zero; 14.04/5.18 primMulNat (Main.Succ x) Main.Zero = Main.Zero; 14.04/5.18 primMulNat (Main.Succ x) (Main.Succ y) = primPlusNat (primMulNat x (Main.Succ y)) (Main.Succ y); 14.04/5.18 14.04/5.18 primPlusInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; 14.04/5.18 primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; 14.04/5.18 primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); 14.04/5.18 primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); 14.04/5.18 14.04/5.18 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 14.04/5.18 primPlusNat Main.Zero Main.Zero = Main.Zero; 14.04/5.18 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 14.04/5.18 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 14.04/5.18 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 14.04/5.18 14.04/5.18 primQuotInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 14.04/5.18 primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 14.04/5.18 primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 14.04/5.18 primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 14.04/5.18 primQuotInt ww wx = Main.error; 14.04/5.18 14.04/5.18 properFractionFloat :: Float -> Tup2 MyInt Float; 14.04/5.18 properFractionFloat = floatProperFractionFloat; 14.04/5.18 14.04/5.18 psMyInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 psMyInt = primPlusInt; 14.04/5.18 14.04/5.18 pt :: (b -> a) -> (c -> b) -> c -> a; 14.04/5.18 pt f g x = f (g x); 14.04/5.18 14.04/5.18 quotMyInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 quotMyInt = primQuotInt; 14.04/5.18 14.04/5.18 srMyInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 srMyInt = primMulInt; 14.04/5.18 14.04/5.18 stop :: MyBool -> a; 14.04/5.18 stop MyFalse = stop MyFalse; 14.04/5.18 14.04/5.18 succFloat :: Float -> Float; 14.04/5.18 succFloat = pt toEnumFloat (pt (psMyInt (Main.Pos (Main.Succ Main.Zero))) fromEnumFloat); 14.04/5.18 14.04/5.18 toEnumFloat :: MyInt -> Float; 14.04/5.18 toEnumFloat = primIntToFloat; 14.04/5.18 14.04/5.18 truncateFloat :: Float -> MyInt; 14.04/5.18 truncateFloat x = truncateM x; 14.04/5.18 14.04/5.18 truncateM xu = truncateM0 xu (truncateVu6 xu); 14.04/5.18 14.04/5.18 truncateM0 xu (Tup2 m vv) = m; 14.04/5.18 14.04/5.18 truncateVu6 xu = properFractionFloat xu; 14.04/5.18 14.04/5.18 } 14.04/5.18 14.04/5.18 ---------------------------------------- 14.04/5.18 14.04/5.18 (1) BR (EQUIVALENT) 14.04/5.18 Replaced joker patterns by fresh variables and removed binding patterns. 14.04/5.18 ---------------------------------------- 14.04/5.18 14.04/5.18 (2) 14.04/5.18 Obligation: 14.04/5.18 mainModule Main 14.04/5.18 module Main where { 14.04/5.18 import qualified Prelude; 14.04/5.18 data Float = Float MyInt MyInt ; 14.04/5.18 14.04/5.18 data MyBool = MyTrue | MyFalse ; 14.04/5.18 14.04/5.18 data MyInt = Pos Main.Nat | Neg Main.Nat ; 14.04/5.18 14.04/5.18 data Main.Nat = Succ Main.Nat | Zero ; 14.04/5.18 14.04/5.18 data Tup2 b a = Tup2 b a ; 14.04/5.18 14.04/5.18 error :: a; 14.04/5.18 error = stop MyTrue; 14.04/5.18 14.04/5.18 floatProperFractionFloat (Float wy wz) = Tup2 (fromIntMyInt (quotMyInt wy wz)) (msFloat (Float wy wz) (fromIntFloat (quotMyInt wy wz))); 14.04/5.18 14.04/5.18 fromEnumFloat :: Float -> MyInt; 14.04/5.18 fromEnumFloat = truncateFloat; 14.04/5.18 14.04/5.18 fromIntFloat :: MyInt -> Float; 14.04/5.18 fromIntFloat = primIntToFloat; 14.04/5.18 14.04/5.18 fromIntMyInt :: MyInt -> MyInt; 14.04/5.18 fromIntMyInt x = x; 14.04/5.18 14.04/5.18 msFloat :: Float -> Float -> Float; 14.04/5.18 msFloat = primMinusFloat; 14.04/5.18 14.04/5.18 msMyInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 msMyInt = primMinusInt; 14.04/5.18 14.04/5.18 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 14.04/5.18 primDivNatS Main.Zero Main.Zero = Main.error; 14.04/5.18 primDivNatS (Main.Succ x) Main.Zero = Main.error; 14.04/5.18 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 14.04/5.18 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 14.04/5.18 14.04/5.18 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 14.04/5.18 primDivNatS0 x y MyFalse = Main.Zero; 14.04/5.18 14.04/5.18 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 14.04/5.18 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 14.04/5.18 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 14.04/5.18 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 14.04/5.18 primGEqNatS Main.Zero Main.Zero = MyTrue; 14.04/5.18 14.04/5.18 primIntToFloat :: MyInt -> Float; 14.04/5.18 primIntToFloat x = Float x (Main.Pos (Main.Succ Main.Zero)); 14.04/5.18 14.04/5.18 primMinusFloat :: Float -> Float -> Float; 14.04/5.18 primMinusFloat (Float x1 x2) (Float y1 y2) = Float (msMyInt x1 y1) (srMyInt x2 y2); 14.04/5.18 14.04/5.18 primMinusInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 primMinusInt (Main.Pos x) (Main.Neg y) = Main.Pos (primPlusNat x y); 14.04/5.18 primMinusInt (Main.Neg x) (Main.Pos y) = Main.Neg (primPlusNat x y); 14.04/5.18 primMinusInt (Main.Neg x) (Main.Neg y) = primMinusNat y x; 14.04/5.18 primMinusInt (Main.Pos x) (Main.Pos y) = primMinusNat x y; 14.04/5.18 14.04/5.18 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 14.04/5.18 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 14.04/5.18 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 14.04/5.18 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 14.04/5.18 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 14.04/5.18 14.04/5.18 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 14.04/5.18 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 14.04/5.18 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 14.04/5.18 primMinusNatS x Main.Zero = x; 14.04/5.18 14.04/5.18 primMulInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 primMulInt (Main.Pos x) (Main.Pos y) = Main.Pos (primMulNat x y); 14.04/5.18 primMulInt (Main.Pos x) (Main.Neg y) = Main.Neg (primMulNat x y); 14.04/5.18 primMulInt (Main.Neg x) (Main.Pos y) = Main.Neg (primMulNat x y); 14.04/5.18 primMulInt (Main.Neg x) (Main.Neg y) = Main.Pos (primMulNat x y); 14.04/5.18 14.04/5.18 primMulNat :: Main.Nat -> Main.Nat -> Main.Nat; 14.04/5.18 primMulNat Main.Zero Main.Zero = Main.Zero; 14.04/5.18 primMulNat Main.Zero (Main.Succ y) = Main.Zero; 14.04/5.18 primMulNat (Main.Succ x) Main.Zero = Main.Zero; 14.04/5.18 primMulNat (Main.Succ x) (Main.Succ y) = primPlusNat (primMulNat x (Main.Succ y)) (Main.Succ y); 14.04/5.18 14.04/5.18 primPlusInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; 14.04/5.18 primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; 14.04/5.18 primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); 14.04/5.18 primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); 14.04/5.18 14.04/5.18 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 14.04/5.18 primPlusNat Main.Zero Main.Zero = Main.Zero; 14.04/5.18 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 14.04/5.18 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 14.04/5.18 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 14.04/5.18 14.04/5.18 primQuotInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 14.04/5.18 primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 14.04/5.18 primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 14.04/5.18 primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 14.04/5.18 primQuotInt ww wx = Main.error; 14.04/5.18 14.04/5.18 properFractionFloat :: Float -> Tup2 MyInt Float; 14.04/5.18 properFractionFloat = floatProperFractionFloat; 14.04/5.18 14.04/5.18 psMyInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 psMyInt = primPlusInt; 14.04/5.18 14.04/5.18 pt :: (a -> c) -> (b -> a) -> b -> c; 14.04/5.18 pt f g x = f (g x); 14.04/5.18 14.04/5.18 quotMyInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 quotMyInt = primQuotInt; 14.04/5.18 14.04/5.18 srMyInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 srMyInt = primMulInt; 14.04/5.18 14.04/5.18 stop :: MyBool -> a; 14.04/5.18 stop MyFalse = stop MyFalse; 14.04/5.18 14.04/5.18 succFloat :: Float -> Float; 14.04/5.18 succFloat = pt toEnumFloat (pt (psMyInt (Main.Pos (Main.Succ Main.Zero))) fromEnumFloat); 14.04/5.18 14.04/5.18 toEnumFloat :: MyInt -> Float; 14.04/5.18 toEnumFloat = primIntToFloat; 14.04/5.18 14.04/5.18 truncateFloat :: Float -> MyInt; 14.04/5.18 truncateFloat x = truncateM x; 14.04/5.18 14.04/5.18 truncateM xu = truncateM0 xu (truncateVu6 xu); 14.04/5.18 14.04/5.18 truncateM0 xu (Tup2 m vv) = m; 14.04/5.18 14.04/5.18 truncateVu6 xu = properFractionFloat xu; 14.04/5.18 14.04/5.18 } 14.04/5.18 14.04/5.18 ---------------------------------------- 14.04/5.18 14.04/5.18 (3) COR (EQUIVALENT) 14.04/5.18 Cond Reductions: 14.04/5.18 The following Function with conditions 14.04/5.18 "undefined |Falseundefined; 14.04/5.18 " 14.04/5.18 is transformed to 14.04/5.18 "undefined = undefined1; 14.04/5.18 " 14.04/5.18 "undefined0 True = undefined; 14.04/5.18 " 14.04/5.18 "undefined1 = undefined0 False; 14.04/5.18 " 14.04/5.18 14.04/5.18 ---------------------------------------- 14.04/5.18 14.04/5.18 (4) 14.04/5.18 Obligation: 14.04/5.18 mainModule Main 14.04/5.18 module Main where { 14.04/5.18 import qualified Prelude; 14.04/5.18 data Float = Float MyInt MyInt ; 14.04/5.18 14.04/5.18 data MyBool = MyTrue | MyFalse ; 14.04/5.18 14.04/5.18 data MyInt = Pos Main.Nat | Neg Main.Nat ; 14.04/5.18 14.04/5.18 data Main.Nat = Succ Main.Nat | Zero ; 14.04/5.18 14.04/5.18 data Tup2 a b = Tup2 a b ; 14.04/5.18 14.04/5.18 error :: a; 14.04/5.18 error = stop MyTrue; 14.04/5.18 14.04/5.18 floatProperFractionFloat (Float wy wz) = Tup2 (fromIntMyInt (quotMyInt wy wz)) (msFloat (Float wy wz) (fromIntFloat (quotMyInt wy wz))); 14.04/5.18 14.04/5.18 fromEnumFloat :: Float -> MyInt; 14.04/5.18 fromEnumFloat = truncateFloat; 14.04/5.18 14.04/5.18 fromIntFloat :: MyInt -> Float; 14.04/5.18 fromIntFloat = primIntToFloat; 14.04/5.18 14.04/5.18 fromIntMyInt :: MyInt -> MyInt; 14.04/5.18 fromIntMyInt x = x; 14.04/5.18 14.04/5.18 msFloat :: Float -> Float -> Float; 14.04/5.18 msFloat = primMinusFloat; 14.04/5.18 14.04/5.18 msMyInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 msMyInt = primMinusInt; 14.04/5.18 14.04/5.18 primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; 14.04/5.18 primDivNatS Main.Zero Main.Zero = Main.error; 14.04/5.18 primDivNatS (Main.Succ x) Main.Zero = Main.error; 14.04/5.18 primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); 14.04/5.18 primDivNatS Main.Zero (Main.Succ x) = Main.Zero; 14.04/5.18 14.04/5.18 primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); 14.04/5.18 primDivNatS0 x y MyFalse = Main.Zero; 14.04/5.18 14.04/5.18 primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; 14.04/5.18 primGEqNatS (Main.Succ x) Main.Zero = MyTrue; 14.04/5.18 primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; 14.04/5.18 primGEqNatS Main.Zero (Main.Succ x) = MyFalse; 14.04/5.18 primGEqNatS Main.Zero Main.Zero = MyTrue; 14.04/5.18 14.04/5.18 primIntToFloat :: MyInt -> Float; 14.04/5.18 primIntToFloat x = Float x (Main.Pos (Main.Succ Main.Zero)); 14.04/5.18 14.04/5.18 primMinusFloat :: Float -> Float -> Float; 14.04/5.18 primMinusFloat (Float x1 x2) (Float y1 y2) = Float (msMyInt x1 y1) (srMyInt x2 y2); 14.04/5.18 14.04/5.18 primMinusInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 primMinusInt (Main.Pos x) (Main.Neg y) = Main.Pos (primPlusNat x y); 14.04/5.18 primMinusInt (Main.Neg x) (Main.Pos y) = Main.Neg (primPlusNat x y); 14.04/5.18 primMinusInt (Main.Neg x) (Main.Neg y) = primMinusNat y x; 14.04/5.18 primMinusInt (Main.Pos x) (Main.Pos y) = primMinusNat x y; 14.04/5.18 14.04/5.18 primMinusNat :: Main.Nat -> Main.Nat -> MyInt; 14.04/5.18 primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; 14.04/5.18 primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); 14.04/5.18 primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); 14.04/5.18 primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; 14.04/5.18 14.04/5.18 primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; 14.04/5.18 primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; 14.04/5.18 primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; 14.04/5.18 primMinusNatS x Main.Zero = x; 14.04/5.18 14.04/5.18 primMulInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 primMulInt (Main.Pos x) (Main.Pos y) = Main.Pos (primMulNat x y); 14.04/5.18 primMulInt (Main.Pos x) (Main.Neg y) = Main.Neg (primMulNat x y); 14.04/5.18 primMulInt (Main.Neg x) (Main.Pos y) = Main.Neg (primMulNat x y); 14.04/5.18 primMulInt (Main.Neg x) (Main.Neg y) = Main.Pos (primMulNat x y); 14.04/5.18 14.04/5.18 primMulNat :: Main.Nat -> Main.Nat -> Main.Nat; 14.04/5.18 primMulNat Main.Zero Main.Zero = Main.Zero; 14.04/5.18 primMulNat Main.Zero (Main.Succ y) = Main.Zero; 14.04/5.18 primMulNat (Main.Succ x) Main.Zero = Main.Zero; 14.04/5.18 primMulNat (Main.Succ x) (Main.Succ y) = primPlusNat (primMulNat x (Main.Succ y)) (Main.Succ y); 14.04/5.18 14.04/5.18 primPlusInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; 14.04/5.18 primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; 14.04/5.18 primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); 14.04/5.18 primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); 14.04/5.18 14.04/5.18 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 14.04/5.18 primPlusNat Main.Zero Main.Zero = Main.Zero; 14.04/5.18 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 14.04/5.18 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 14.04/5.18 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 14.04/5.18 14.04/5.18 primQuotInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 14.04/5.18 primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 14.04/5.18 primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); 14.04/5.18 primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); 14.04/5.18 primQuotInt ww wx = Main.error; 14.04/5.18 14.04/5.18 properFractionFloat :: Float -> Tup2 MyInt Float; 14.04/5.18 properFractionFloat = floatProperFractionFloat; 14.04/5.18 14.04/5.18 psMyInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 psMyInt = primPlusInt; 14.04/5.18 14.04/5.18 pt :: (b -> c) -> (a -> b) -> a -> c; 14.04/5.18 pt f g x = f (g x); 14.04/5.18 14.04/5.18 quotMyInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 quotMyInt = primQuotInt; 14.04/5.18 14.04/5.18 srMyInt :: MyInt -> MyInt -> MyInt; 14.04/5.18 srMyInt = primMulInt; 14.04/5.18 14.04/5.18 stop :: MyBool -> a; 14.04/5.18 stop MyFalse = stop MyFalse; 14.04/5.18 14.04/5.18 succFloat :: Float -> Float; 14.04/5.18 succFloat = pt toEnumFloat (pt (psMyInt (Main.Pos (Main.Succ Main.Zero))) fromEnumFloat); 14.04/5.18 14.04/5.18 toEnumFloat :: MyInt -> Float; 14.04/5.18 toEnumFloat = primIntToFloat; 14.04/5.18 14.04/5.18 truncateFloat :: Float -> MyInt; 14.04/5.18 truncateFloat x = truncateM x; 14.04/5.18 14.04/5.18 truncateM xu = truncateM0 xu (truncateVu6 xu); 14.04/5.18 14.04/5.18 truncateM0 xu (Tup2 m vv) = m; 14.04/5.18 14.04/5.18 truncateVu6 xu = properFractionFloat xu; 14.04/5.18 14.04/5.18 } 14.04/5.18 14.04/5.18 ---------------------------------------- 14.04/5.18 14.04/5.18 (5) Narrow (SOUND) 14.04/5.18 Haskell To QDPs 14.04/5.18 14.04/5.18 digraph dp_graph { 14.04/5.18 node [outthreshold=100, inthreshold=100];1[label="succFloat",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 14.04/5.18 3[label="succFloat vy3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 14.04/5.18 4[label="pt toEnumFloat (pt (psMyInt (Pos (Succ Zero))) fromEnumFloat) vy3",fontsize=16,color="black",shape="box"];4 -> 5[label="",style="solid", color="black", weight=3]; 14.04/5.18 5[label="toEnumFloat (pt (psMyInt (Pos (Succ Zero))) fromEnumFloat vy3)",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 14.04/5.18 6[label="primIntToFloat (pt (psMyInt (Pos (Succ Zero))) fromEnumFloat vy3)",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 14.04/5.18 7[label="Float (pt (psMyInt (Pos (Succ Zero))) fromEnumFloat vy3) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];7 -> 8[label="",style="dashed", color="green", weight=3]; 14.04/5.18 8[label="pt (psMyInt (Pos (Succ Zero))) fromEnumFloat vy3",fontsize=16,color="black",shape="box"];8 -> 9[label="",style="solid", color="black", weight=3]; 14.04/5.18 9[label="psMyInt (Pos (Succ Zero)) (fromEnumFloat vy3)",fontsize=16,color="black",shape="box"];9 -> 10[label="",style="solid", color="black", weight=3]; 14.04/5.18 10[label="primPlusInt (Pos (Succ Zero)) (fromEnumFloat vy3)",fontsize=16,color="black",shape="box"];10 -> 11[label="",style="solid", color="black", weight=3]; 14.04/5.18 11[label="primPlusInt (Pos (Succ Zero)) (truncateFloat vy3)",fontsize=16,color="black",shape="box"];11 -> 12[label="",style="solid", color="black", weight=3]; 14.04/5.18 12[label="primPlusInt (Pos (Succ Zero)) (truncateM vy3)",fontsize=16,color="black",shape="box"];12 -> 13[label="",style="solid", color="black", weight=3]; 14.04/5.18 13[label="primPlusInt (Pos (Succ Zero)) (truncateM0 vy3 (truncateVu6 vy3))",fontsize=16,color="black",shape="box"];13 -> 14[label="",style="solid", color="black", weight=3]; 14.04/5.18 14[label="primPlusInt (Pos (Succ Zero)) (truncateM0 vy3 (properFractionFloat vy3))",fontsize=16,color="black",shape="box"];14 -> 15[label="",style="solid", color="black", weight=3]; 14.04/5.18 15[label="primPlusInt (Pos (Succ Zero)) (truncateM0 vy3 (floatProperFractionFloat vy3))",fontsize=16,color="burlywood",shape="box"];2382[label="vy3/Float vy30 vy31",fontsize=10,color="white",style="solid",shape="box"];15 -> 2382[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2382 -> 16[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 16[label="primPlusInt (Pos (Succ Zero)) (truncateM0 (Float vy30 vy31) (floatProperFractionFloat (Float vy30 vy31)))",fontsize=16,color="black",shape="box"];16 -> 17[label="",style="solid", color="black", weight=3]; 14.04/5.18 17[label="primPlusInt (Pos (Succ Zero)) (truncateM0 (Float vy30 vy31) (Tup2 (fromIntMyInt (quotMyInt vy30 vy31)) (msFloat (Float vy30 vy31) (fromIntFloat (quotMyInt vy30 vy31)))))",fontsize=16,color="black",shape="box"];17 -> 18[label="",style="solid", color="black", weight=3]; 14.04/5.18 18[label="primPlusInt (Pos (Succ Zero)) (fromIntMyInt (quotMyInt vy30 vy31))",fontsize=16,color="black",shape="box"];18 -> 19[label="",style="solid", color="black", weight=3]; 14.04/5.18 19[label="primPlusInt (Pos (Succ Zero)) (quotMyInt vy30 vy31)",fontsize=16,color="black",shape="box"];19 -> 20[label="",style="solid", color="black", weight=3]; 14.04/5.18 20[label="primPlusInt (Pos (Succ Zero)) (primQuotInt vy30 vy31)",fontsize=16,color="burlywood",shape="box"];2383[label="vy30/Pos vy300",fontsize=10,color="white",style="solid",shape="box"];20 -> 2383[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2383 -> 21[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2384[label="vy30/Neg vy300",fontsize=10,color="white",style="solid",shape="box"];20 -> 2384[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2384 -> 22[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 21[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Pos vy300) vy31)",fontsize=16,color="burlywood",shape="box"];2385[label="vy31/Pos vy310",fontsize=10,color="white",style="solid",shape="box"];21 -> 2385[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2385 -> 23[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2386[label="vy31/Neg vy310",fontsize=10,color="white",style="solid",shape="box"];21 -> 2386[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2386 -> 24[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 22[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Neg vy300) vy31)",fontsize=16,color="burlywood",shape="box"];2387[label="vy31/Pos vy310",fontsize=10,color="white",style="solid",shape="box"];22 -> 2387[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2387 -> 25[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2388[label="vy31/Neg vy310",fontsize=10,color="white",style="solid",shape="box"];22 -> 2388[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2388 -> 26[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 23[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Pos vy300) (Pos vy310))",fontsize=16,color="burlywood",shape="box"];2389[label="vy310/Succ vy3100",fontsize=10,color="white",style="solid",shape="box"];23 -> 2389[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2389 -> 27[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2390[label="vy310/Zero",fontsize=10,color="white",style="solid",shape="box"];23 -> 2390[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2390 -> 28[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 24[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Pos vy300) (Neg vy310))",fontsize=16,color="burlywood",shape="box"];2391[label="vy310/Succ vy3100",fontsize=10,color="white",style="solid",shape="box"];24 -> 2391[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2391 -> 29[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2392[label="vy310/Zero",fontsize=10,color="white",style="solid",shape="box"];24 -> 2392[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2392 -> 30[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 25[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Neg vy300) (Pos vy310))",fontsize=16,color="burlywood",shape="box"];2393[label="vy310/Succ vy3100",fontsize=10,color="white",style="solid",shape="box"];25 -> 2393[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2393 -> 31[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2394[label="vy310/Zero",fontsize=10,color="white",style="solid",shape="box"];25 -> 2394[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2394 -> 32[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 26[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Neg vy300) (Neg vy310))",fontsize=16,color="burlywood",shape="box"];2395[label="vy310/Succ vy3100",fontsize=10,color="white",style="solid",shape="box"];26 -> 2395[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2395 -> 33[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2396[label="vy310/Zero",fontsize=10,color="white",style="solid",shape="box"];26 -> 2396[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2396 -> 34[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 27[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Pos vy300) (Pos (Succ vy3100)))",fontsize=16,color="black",shape="box"];27 -> 35[label="",style="solid", color="black", weight=3]; 14.04/5.18 28[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Pos vy300) (Pos Zero))",fontsize=16,color="black",shape="box"];28 -> 36[label="",style="solid", color="black", weight=3]; 14.04/5.18 29[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Pos vy300) (Neg (Succ vy3100)))",fontsize=16,color="black",shape="box"];29 -> 37[label="",style="solid", color="black", weight=3]; 14.04/5.18 30[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Pos vy300) (Neg Zero))",fontsize=16,color="black",shape="box"];30 -> 38[label="",style="solid", color="black", weight=3]; 14.04/5.18 31[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Neg vy300) (Pos (Succ vy3100)))",fontsize=16,color="black",shape="box"];31 -> 39[label="",style="solid", color="black", weight=3]; 14.04/5.18 32[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Neg vy300) (Pos Zero))",fontsize=16,color="black",shape="box"];32 -> 40[label="",style="solid", color="black", weight=3]; 14.04/5.18 33[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Neg vy300) (Neg (Succ vy3100)))",fontsize=16,color="black",shape="box"];33 -> 41[label="",style="solid", color="black", weight=3]; 14.04/5.18 34[label="primPlusInt (Pos (Succ Zero)) (primQuotInt (Neg vy300) (Neg Zero))",fontsize=16,color="black",shape="box"];34 -> 42[label="",style="solid", color="black", weight=3]; 14.04/5.18 35[label="primPlusInt (Pos (Succ Zero)) (Pos (primDivNatS vy300 (Succ vy3100)))",fontsize=16,color="black",shape="triangle"];35 -> 43[label="",style="solid", color="black", weight=3]; 14.04/5.18 36[label="primPlusInt (Pos (Succ Zero)) error",fontsize=16,color="black",shape="triangle"];36 -> 44[label="",style="solid", color="black", weight=3]; 14.04/5.18 37[label="primPlusInt (Pos (Succ Zero)) (Neg (primDivNatS vy300 (Succ vy3100)))",fontsize=16,color="black",shape="triangle"];37 -> 45[label="",style="solid", color="black", weight=3]; 14.04/5.18 38 -> 36[label="",style="dashed", color="red", weight=0]; 14.04/5.18 38[label="primPlusInt (Pos (Succ Zero)) error",fontsize=16,color="magenta"];39 -> 37[label="",style="dashed", color="red", weight=0]; 14.04/5.18 39[label="primPlusInt (Pos (Succ Zero)) (Neg (primDivNatS vy300 (Succ vy3100)))",fontsize=16,color="magenta"];39 -> 46[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 39 -> 47[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 40 -> 36[label="",style="dashed", color="red", weight=0]; 14.04/5.18 40[label="primPlusInt (Pos (Succ Zero)) error",fontsize=16,color="magenta"];41 -> 35[label="",style="dashed", color="red", weight=0]; 14.04/5.18 41[label="primPlusInt (Pos (Succ Zero)) (Pos (primDivNatS vy300 (Succ vy3100)))",fontsize=16,color="magenta"];41 -> 48[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 41 -> 49[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 42 -> 36[label="",style="dashed", color="red", weight=0]; 14.04/5.18 42[label="primPlusInt (Pos (Succ Zero)) error",fontsize=16,color="magenta"];43[label="Pos (primPlusNat (Succ Zero) (primDivNatS vy300 (Succ vy3100)))",fontsize=16,color="green",shape="box"];43 -> 50[label="",style="dashed", color="green", weight=3]; 14.04/5.18 44[label="primPlusInt (Pos (Succ Zero)) (stop MyTrue)",fontsize=16,color="black",shape="box"];44 -> 51[label="",style="solid", color="black", weight=3]; 14.04/5.18 45[label="primMinusNat (Succ Zero) (primDivNatS vy300 (Succ vy3100))",fontsize=16,color="burlywood",shape="box"];2397[label="vy300/Succ vy3000",fontsize=10,color="white",style="solid",shape="box"];45 -> 2397[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2397 -> 52[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2398[label="vy300/Zero",fontsize=10,color="white",style="solid",shape="box"];45 -> 2398[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2398 -> 53[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 46[label="vy300",fontsize=16,color="green",shape="box"];47[label="vy3100",fontsize=16,color="green",shape="box"];48[label="vy300",fontsize=16,color="green",shape="box"];49[label="vy3100",fontsize=16,color="green",shape="box"];50[label="primPlusNat (Succ Zero) (primDivNatS vy300 (Succ vy3100))",fontsize=16,color="burlywood",shape="box"];2399[label="vy300/Succ vy3000",fontsize=10,color="white",style="solid",shape="box"];50 -> 2399[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2399 -> 54[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2400[label="vy300/Zero",fontsize=10,color="white",style="solid",shape="box"];50 -> 2400[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2400 -> 55[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 51[label="error []",fontsize=16,color="red",shape="box"];52[label="primMinusNat (Succ Zero) (primDivNatS (Succ vy3000) (Succ vy3100))",fontsize=16,color="black",shape="box"];52 -> 56[label="",style="solid", color="black", weight=3]; 14.04/5.18 53[label="primMinusNat (Succ Zero) (primDivNatS Zero (Succ vy3100))",fontsize=16,color="black",shape="box"];53 -> 57[label="",style="solid", color="black", weight=3]; 14.04/5.18 54[label="primPlusNat (Succ Zero) (primDivNatS (Succ vy3000) (Succ vy3100))",fontsize=16,color="black",shape="box"];54 -> 58[label="",style="solid", color="black", weight=3]; 14.04/5.18 55[label="primPlusNat (Succ Zero) (primDivNatS Zero (Succ vy3100))",fontsize=16,color="black",shape="box"];55 -> 59[label="",style="solid", color="black", weight=3]; 14.04/5.18 56[label="primMinusNat (Succ Zero) (primDivNatS0 vy3000 vy3100 (primGEqNatS vy3000 vy3100))",fontsize=16,color="burlywood",shape="box"];2401[label="vy3000/Succ vy30000",fontsize=10,color="white",style="solid",shape="box"];56 -> 2401[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2401 -> 60[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2402[label="vy3000/Zero",fontsize=10,color="white",style="solid",shape="box"];56 -> 2402[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2402 -> 61[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 57[label="primMinusNat (Succ Zero) Zero",fontsize=16,color="black",shape="triangle"];57 -> 62[label="",style="solid", color="black", weight=3]; 14.04/5.18 58[label="primPlusNat (Succ Zero) (primDivNatS0 vy3000 vy3100 (primGEqNatS vy3000 vy3100))",fontsize=16,color="burlywood",shape="box"];2403[label="vy3000/Succ vy30000",fontsize=10,color="white",style="solid",shape="box"];58 -> 2403[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2403 -> 63[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2404[label="vy3000/Zero",fontsize=10,color="white",style="solid",shape="box"];58 -> 2404[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2404 -> 64[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 59[label="primPlusNat (Succ Zero) Zero",fontsize=16,color="black",shape="triangle"];59 -> 65[label="",style="solid", color="black", weight=3]; 14.04/5.18 60[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy30000) vy3100 (primGEqNatS (Succ vy30000) vy3100))",fontsize=16,color="burlywood",shape="box"];2405[label="vy3100/Succ vy31000",fontsize=10,color="white",style="solid",shape="box"];60 -> 2405[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2405 -> 66[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2406[label="vy3100/Zero",fontsize=10,color="white",style="solid",shape="box"];60 -> 2406[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2406 -> 67[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 61[label="primMinusNat (Succ Zero) (primDivNatS0 Zero vy3100 (primGEqNatS Zero vy3100))",fontsize=16,color="burlywood",shape="box"];2407[label="vy3100/Succ vy31000",fontsize=10,color="white",style="solid",shape="box"];61 -> 2407[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2407 -> 68[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2408[label="vy3100/Zero",fontsize=10,color="white",style="solid",shape="box"];61 -> 2408[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2408 -> 69[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 62[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];63[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy30000) vy3100 (primGEqNatS (Succ vy30000) vy3100))",fontsize=16,color="burlywood",shape="box"];2409[label="vy3100/Succ vy31000",fontsize=10,color="white",style="solid",shape="box"];63 -> 2409[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2409 -> 70[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2410[label="vy3100/Zero",fontsize=10,color="white",style="solid",shape="box"];63 -> 2410[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2410 -> 71[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 64[label="primPlusNat (Succ Zero) (primDivNatS0 Zero vy3100 (primGEqNatS Zero vy3100))",fontsize=16,color="burlywood",shape="box"];2411[label="vy3100/Succ vy31000",fontsize=10,color="white",style="solid",shape="box"];64 -> 2411[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2411 -> 72[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2412[label="vy3100/Zero",fontsize=10,color="white",style="solid",shape="box"];64 -> 2412[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2412 -> 73[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 65[label="Succ Zero",fontsize=16,color="green",shape="box"];66[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy30000) (Succ vy31000) (primGEqNatS (Succ vy30000) (Succ vy31000)))",fontsize=16,color="black",shape="box"];66 -> 74[label="",style="solid", color="black", weight=3]; 14.04/5.18 67[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy30000) Zero (primGEqNatS (Succ vy30000) Zero))",fontsize=16,color="black",shape="box"];67 -> 75[label="",style="solid", color="black", weight=3]; 14.04/5.18 68[label="primMinusNat (Succ Zero) (primDivNatS0 Zero (Succ vy31000) (primGEqNatS Zero (Succ vy31000)))",fontsize=16,color="black",shape="box"];68 -> 76[label="",style="solid", color="black", weight=3]; 14.04/5.18 69[label="primMinusNat (Succ Zero) (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))",fontsize=16,color="black",shape="box"];69 -> 77[label="",style="solid", color="black", weight=3]; 14.04/5.18 70[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy30000) (Succ vy31000) (primGEqNatS (Succ vy30000) (Succ vy31000)))",fontsize=16,color="black",shape="box"];70 -> 78[label="",style="solid", color="black", weight=3]; 14.04/5.18 71[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy30000) Zero (primGEqNatS (Succ vy30000) Zero))",fontsize=16,color="black",shape="box"];71 -> 79[label="",style="solid", color="black", weight=3]; 14.04/5.18 72[label="primPlusNat (Succ Zero) (primDivNatS0 Zero (Succ vy31000) (primGEqNatS Zero (Succ vy31000)))",fontsize=16,color="black",shape="box"];72 -> 80[label="",style="solid", color="black", weight=3]; 14.04/5.18 73[label="primPlusNat (Succ Zero) (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))",fontsize=16,color="black",shape="box"];73 -> 81[label="",style="solid", color="black", weight=3]; 14.04/5.18 74 -> 685[label="",style="dashed", color="red", weight=0]; 14.04/5.18 74[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy30000) (Succ vy31000) (primGEqNatS vy30000 vy31000))",fontsize=16,color="magenta"];74 -> 686[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 74 -> 687[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 74 -> 688[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 74 -> 689[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 75[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy30000) Zero MyTrue)",fontsize=16,color="black",shape="box"];75 -> 84[label="",style="solid", color="black", weight=3]; 14.04/5.18 76[label="primMinusNat (Succ Zero) (primDivNatS0 Zero (Succ vy31000) MyFalse)",fontsize=16,color="black",shape="box"];76 -> 85[label="",style="solid", color="black", weight=3]; 14.04/5.18 77[label="primMinusNat (Succ Zero) (primDivNatS0 Zero Zero MyTrue)",fontsize=16,color="black",shape="box"];77 -> 86[label="",style="solid", color="black", weight=3]; 14.04/5.18 78 -> 728[label="",style="dashed", color="red", weight=0]; 14.04/5.18 78[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy30000) (Succ vy31000) (primGEqNatS vy30000 vy31000))",fontsize=16,color="magenta"];78 -> 729[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 78 -> 730[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 78 -> 731[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 78 -> 732[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 79[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy30000) Zero MyTrue)",fontsize=16,color="black",shape="box"];79 -> 89[label="",style="solid", color="black", weight=3]; 14.04/5.18 80[label="primPlusNat (Succ Zero) (primDivNatS0 Zero (Succ vy31000) MyFalse)",fontsize=16,color="black",shape="box"];80 -> 90[label="",style="solid", color="black", weight=3]; 14.04/5.18 81[label="primPlusNat (Succ Zero) (primDivNatS0 Zero Zero MyTrue)",fontsize=16,color="black",shape="box"];81 -> 91[label="",style="solid", color="black", weight=3]; 14.04/5.18 686[label="vy30000",fontsize=16,color="green",shape="box"];687[label="vy30000",fontsize=16,color="green",shape="box"];688[label="vy31000",fontsize=16,color="green",shape="box"];689[label="vy31000",fontsize=16,color="green",shape="box"];685[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy45) (Succ vy46) (primGEqNatS vy47 vy48))",fontsize=16,color="burlywood",shape="triangle"];2413[label="vy47/Succ vy470",fontsize=10,color="white",style="solid",shape="box"];685 -> 2413[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2413 -> 726[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2414[label="vy47/Zero",fontsize=10,color="white",style="solid",shape="box"];685 -> 2414[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2414 -> 727[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 84[label="primMinusNat (Succ Zero) (Succ (primDivNatS (primMinusNatS (Succ vy30000) Zero) (Succ Zero)))",fontsize=16,color="black",shape="box"];84 -> 96[label="",style="solid", color="black", weight=3]; 14.04/5.18 85 -> 57[label="",style="dashed", color="red", weight=0]; 14.04/5.18 85[label="primMinusNat (Succ Zero) Zero",fontsize=16,color="magenta"];86[label="primMinusNat (Succ Zero) (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))",fontsize=16,color="black",shape="box"];86 -> 97[label="",style="solid", color="black", weight=3]; 14.04/5.18 729[label="vy31000",fontsize=16,color="green",shape="box"];730[label="vy30000",fontsize=16,color="green",shape="box"];731[label="vy30000",fontsize=16,color="green",shape="box"];732[label="vy31000",fontsize=16,color="green",shape="box"];728[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy50) (Succ vy51) (primGEqNatS vy52 vy53))",fontsize=16,color="burlywood",shape="triangle"];2415[label="vy52/Succ vy520",fontsize=10,color="white",style="solid",shape="box"];728 -> 2415[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2415 -> 769[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2416[label="vy52/Zero",fontsize=10,color="white",style="solid",shape="box"];728 -> 2416[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2416 -> 770[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 89[label="primPlusNat (Succ Zero) (Succ (primDivNatS (primMinusNatS (Succ vy30000) Zero) (Succ Zero)))",fontsize=16,color="black",shape="box"];89 -> 102[label="",style="solid", color="black", weight=3]; 14.04/5.18 90 -> 59[label="",style="dashed", color="red", weight=0]; 14.04/5.18 90[label="primPlusNat (Succ Zero) Zero",fontsize=16,color="magenta"];91[label="primPlusNat (Succ Zero) (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))",fontsize=16,color="black",shape="box"];91 -> 103[label="",style="solid", color="black", weight=3]; 14.04/5.18 726[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy45) (Succ vy46) (primGEqNatS (Succ vy470) vy48))",fontsize=16,color="burlywood",shape="box"];2417[label="vy48/Succ vy480",fontsize=10,color="white",style="solid",shape="box"];726 -> 2417[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2417 -> 771[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2418[label="vy48/Zero",fontsize=10,color="white",style="solid",shape="box"];726 -> 2418[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2418 -> 772[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 727[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy45) (Succ vy46) (primGEqNatS Zero vy48))",fontsize=16,color="burlywood",shape="box"];2419[label="vy48/Succ vy480",fontsize=10,color="white",style="solid",shape="box"];727 -> 2419[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2419 -> 773[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2420[label="vy48/Zero",fontsize=10,color="white",style="solid",shape="box"];727 -> 2420[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2420 -> 774[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 96 -> 1188[label="",style="dashed", color="red", weight=0]; 14.04/5.18 96[label="primMinusNat Zero (primDivNatS (primMinusNatS (Succ vy30000) Zero) (Succ Zero))",fontsize=16,color="magenta"];96 -> 1189[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 96 -> 1190[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 96 -> 1191[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 97 -> 1188[label="",style="dashed", color="red", weight=0]; 14.04/5.18 97[label="primMinusNat Zero (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="magenta"];97 -> 1192[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 97 -> 1193[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 97 -> 1194[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 769[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy50) (Succ vy51) (primGEqNatS (Succ vy520) vy53))",fontsize=16,color="burlywood",shape="box"];2421[label="vy53/Succ vy530",fontsize=10,color="white",style="solid",shape="box"];769 -> 2421[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2421 -> 775[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2422[label="vy53/Zero",fontsize=10,color="white",style="solid",shape="box"];769 -> 2422[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2422 -> 776[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 770[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy50) (Succ vy51) (primGEqNatS Zero vy53))",fontsize=16,color="burlywood",shape="box"];2423[label="vy53/Succ vy530",fontsize=10,color="white",style="solid",shape="box"];770 -> 2423[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2423 -> 777[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2424[label="vy53/Zero",fontsize=10,color="white",style="solid",shape="box"];770 -> 2424[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2424 -> 778[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 102[label="Succ (Succ (primPlusNat Zero (primDivNatS (primMinusNatS (Succ vy30000) Zero) (Succ Zero))))",fontsize=16,color="green",shape="box"];102 -> 114[label="",style="dashed", color="green", weight=3]; 14.04/5.18 103[label="Succ (Succ (primPlusNat Zero (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))))",fontsize=16,color="green",shape="box"];103 -> 115[label="",style="dashed", color="green", weight=3]; 14.04/5.18 771[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy45) (Succ vy46) (primGEqNatS (Succ vy470) (Succ vy480)))",fontsize=16,color="black",shape="box"];771 -> 779[label="",style="solid", color="black", weight=3]; 14.04/5.18 772[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy45) (Succ vy46) (primGEqNatS (Succ vy470) Zero))",fontsize=16,color="black",shape="box"];772 -> 780[label="",style="solid", color="black", weight=3]; 14.04/5.18 773[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy45) (Succ vy46) (primGEqNatS Zero (Succ vy480)))",fontsize=16,color="black",shape="box"];773 -> 781[label="",style="solid", color="black", weight=3]; 14.04/5.18 774[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy45) (Succ vy46) (primGEqNatS Zero Zero))",fontsize=16,color="black",shape="box"];774 -> 782[label="",style="solid", color="black", weight=3]; 14.04/5.18 1189[label="Zero",fontsize=16,color="green",shape="box"];1190[label="Succ vy30000",fontsize=16,color="green",shape="box"];1191[label="Zero",fontsize=16,color="green",shape="box"];1188[label="primMinusNat Zero (primDivNatS (primMinusNatS vy57 vy58) (Succ vy59))",fontsize=16,color="burlywood",shape="triangle"];2425[label="vy57/Succ vy570",fontsize=10,color="white",style="solid",shape="box"];1188 -> 2425[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2425 -> 1222[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2426[label="vy57/Zero",fontsize=10,color="white",style="solid",shape="box"];1188 -> 2426[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2426 -> 1223[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 1192[label="Zero",fontsize=16,color="green",shape="box"];1193[label="Zero",fontsize=16,color="green",shape="box"];1194[label="Zero",fontsize=16,color="green",shape="box"];775[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy50) (Succ vy51) (primGEqNatS (Succ vy520) (Succ vy530)))",fontsize=16,color="black",shape="box"];775 -> 783[label="",style="solid", color="black", weight=3]; 14.04/5.18 776[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy50) (Succ vy51) (primGEqNatS (Succ vy520) Zero))",fontsize=16,color="black",shape="box"];776 -> 784[label="",style="solid", color="black", weight=3]; 14.04/5.18 777[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy50) (Succ vy51) (primGEqNatS Zero (Succ vy530)))",fontsize=16,color="black",shape="box"];777 -> 785[label="",style="solid", color="black", weight=3]; 14.04/5.18 778[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy50) (Succ vy51) (primGEqNatS Zero Zero))",fontsize=16,color="black",shape="box"];778 -> 786[label="",style="solid", color="black", weight=3]; 14.04/5.18 114 -> 1243[label="",style="dashed", color="red", weight=0]; 14.04/5.18 114[label="primPlusNat Zero (primDivNatS (primMinusNatS (Succ vy30000) Zero) (Succ Zero))",fontsize=16,color="magenta"];114 -> 1244[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 114 -> 1245[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 114 -> 1246[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 115 -> 1243[label="",style="dashed", color="red", weight=0]; 14.04/5.18 115[label="primPlusNat Zero (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="magenta"];115 -> 1247[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 115 -> 1248[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 115 -> 1249[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 779 -> 685[label="",style="dashed", color="red", weight=0]; 14.04/5.18 779[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy45) (Succ vy46) (primGEqNatS vy470 vy480))",fontsize=16,color="magenta"];779 -> 787[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 779 -> 788[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 780[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy45) (Succ vy46) MyTrue)",fontsize=16,color="black",shape="triangle"];780 -> 789[label="",style="solid", color="black", weight=3]; 14.04/5.18 781[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy45) (Succ vy46) MyFalse)",fontsize=16,color="black",shape="box"];781 -> 790[label="",style="solid", color="black", weight=3]; 14.04/5.18 782 -> 780[label="",style="dashed", color="red", weight=0]; 14.04/5.18 782[label="primMinusNat (Succ Zero) (primDivNatS0 (Succ vy45) (Succ vy46) MyTrue)",fontsize=16,color="magenta"];1222[label="primMinusNat Zero (primDivNatS (primMinusNatS (Succ vy570) vy58) (Succ vy59))",fontsize=16,color="burlywood",shape="box"];2427[label="vy58/Succ vy580",fontsize=10,color="white",style="solid",shape="box"];1222 -> 2427[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2427 -> 1239[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2428[label="vy58/Zero",fontsize=10,color="white",style="solid",shape="box"];1222 -> 2428[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2428 -> 1240[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 1223[label="primMinusNat Zero (primDivNatS (primMinusNatS Zero vy58) (Succ vy59))",fontsize=16,color="burlywood",shape="box"];2429[label="vy58/Succ vy580",fontsize=10,color="white",style="solid",shape="box"];1223 -> 2429[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2429 -> 1241[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2430[label="vy58/Zero",fontsize=10,color="white",style="solid",shape="box"];1223 -> 2430[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2430 -> 1242[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 783 -> 728[label="",style="dashed", color="red", weight=0]; 14.04/5.18 783[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy50) (Succ vy51) (primGEqNatS vy520 vy530))",fontsize=16,color="magenta"];783 -> 791[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 783 -> 792[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 784[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy50) (Succ vy51) MyTrue)",fontsize=16,color="black",shape="triangle"];784 -> 793[label="",style="solid", color="black", weight=3]; 14.04/5.18 785[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy50) (Succ vy51) MyFalse)",fontsize=16,color="black",shape="box"];785 -> 794[label="",style="solid", color="black", weight=3]; 14.04/5.18 786 -> 784[label="",style="dashed", color="red", weight=0]; 14.04/5.18 786[label="primPlusNat (Succ Zero) (primDivNatS0 (Succ vy50) (Succ vy51) MyTrue)",fontsize=16,color="magenta"];1244[label="Zero",fontsize=16,color="green",shape="box"];1245[label="Succ vy30000",fontsize=16,color="green",shape="box"];1246[label="Zero",fontsize=16,color="green",shape="box"];1243[label="primPlusNat Zero (primDivNatS (primMinusNatS vy61 vy62) (Succ vy63))",fontsize=16,color="burlywood",shape="triangle"];2431[label="vy61/Succ vy610",fontsize=10,color="white",style="solid",shape="box"];1243 -> 2431[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2431 -> 1277[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2432[label="vy61/Zero",fontsize=10,color="white",style="solid",shape="box"];1243 -> 2432[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2432 -> 1278[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 1247[label="Zero",fontsize=16,color="green",shape="box"];1248[label="Zero",fontsize=16,color="green",shape="box"];1249[label="Zero",fontsize=16,color="green",shape="box"];787[label="vy470",fontsize=16,color="green",shape="box"];788[label="vy480",fontsize=16,color="green",shape="box"];789[label="primMinusNat (Succ Zero) (Succ (primDivNatS (primMinusNatS (Succ vy45) (Succ vy46)) (Succ (Succ vy46))))",fontsize=16,color="black",shape="box"];789 -> 795[label="",style="solid", color="black", weight=3]; 14.04/5.18 790 -> 57[label="",style="dashed", color="red", weight=0]; 14.04/5.18 790[label="primMinusNat (Succ Zero) Zero",fontsize=16,color="magenta"];1239[label="primMinusNat Zero (primDivNatS (primMinusNatS (Succ vy570) (Succ vy580)) (Succ vy59))",fontsize=16,color="black",shape="box"];1239 -> 1279[label="",style="solid", color="black", weight=3]; 14.04/5.18 1240[label="primMinusNat Zero (primDivNatS (primMinusNatS (Succ vy570) Zero) (Succ vy59))",fontsize=16,color="black",shape="box"];1240 -> 1280[label="",style="solid", color="black", weight=3]; 14.04/5.18 1241[label="primMinusNat Zero (primDivNatS (primMinusNatS Zero (Succ vy580)) (Succ vy59))",fontsize=16,color="black",shape="box"];1241 -> 1281[label="",style="solid", color="black", weight=3]; 14.04/5.18 1242[label="primMinusNat Zero (primDivNatS (primMinusNatS Zero Zero) (Succ vy59))",fontsize=16,color="black",shape="box"];1242 -> 1282[label="",style="solid", color="black", weight=3]; 14.04/5.18 791[label="vy530",fontsize=16,color="green",shape="box"];792[label="vy520",fontsize=16,color="green",shape="box"];793[label="primPlusNat (Succ Zero) (Succ (primDivNatS (primMinusNatS (Succ vy50) (Succ vy51)) (Succ (Succ vy51))))",fontsize=16,color="black",shape="box"];793 -> 796[label="",style="solid", color="black", weight=3]; 14.04/5.18 794 -> 59[label="",style="dashed", color="red", weight=0]; 14.04/5.18 794[label="primPlusNat (Succ Zero) Zero",fontsize=16,color="magenta"];1277[label="primPlusNat Zero (primDivNatS (primMinusNatS (Succ vy610) vy62) (Succ vy63))",fontsize=16,color="burlywood",shape="box"];2433[label="vy62/Succ vy620",fontsize=10,color="white",style="solid",shape="box"];1277 -> 2433[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2433 -> 1283[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2434[label="vy62/Zero",fontsize=10,color="white",style="solid",shape="box"];1277 -> 2434[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2434 -> 1284[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 1278[label="primPlusNat Zero (primDivNatS (primMinusNatS Zero vy62) (Succ vy63))",fontsize=16,color="burlywood",shape="box"];2435[label="vy62/Succ vy620",fontsize=10,color="white",style="solid",shape="box"];1278 -> 2435[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2435 -> 1285[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 2436[label="vy62/Zero",fontsize=10,color="white",style="solid",shape="box"];1278 -> 2436[label="",style="solid", color="burlywood", weight=9]; 14.04/5.18 2436 -> 1286[label="",style="solid", color="burlywood", weight=3]; 14.04/5.18 795 -> 1188[label="",style="dashed", color="red", weight=0]; 14.04/5.18 795[label="primMinusNat Zero (primDivNatS (primMinusNatS (Succ vy45) (Succ vy46)) (Succ (Succ vy46)))",fontsize=16,color="magenta"];795 -> 1195[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 795 -> 1196[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 795 -> 1197[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 1279 -> 1188[label="",style="dashed", color="red", weight=0]; 14.04/5.18 1279[label="primMinusNat Zero (primDivNatS (primMinusNatS vy570 vy580) (Succ vy59))",fontsize=16,color="magenta"];1279 -> 1287[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 1279 -> 1288[label="",style="dashed", color="magenta", weight=3]; 14.04/5.18 1280[label="primMinusNat Zero (primDivNatS (Succ vy570) (Succ vy59))",fontsize=16,color="black",shape="box"];1280 -> 1289[label="",style="solid", color="black", weight=3]; 14.04/5.18 1281[label="primMinusNat Zero (primDivNatS Zero (Succ vy59))",fontsize=16,color="black",shape="triangle"];1281 -> 1290[label="",style="solid", color="black", weight=3]; 14.04/5.18 1282 -> 1281[label="",style="dashed", color="red", weight=0]; 14.04/5.18 1282[label="primMinusNat Zero (primDivNatS Zero (Succ vy59))",fontsize=16,color="magenta"];796[label="Succ (Succ (primPlusNat Zero (primDivNatS (primMinusNatS (Succ vy50) (Succ vy51)) (Succ (Succ vy51)))))",fontsize=16,color="green",shape="box"];796 -> 798[label="",style="dashed", color="green", weight=3]; 14.04/5.18 1283[label="primPlusNat Zero (primDivNatS (primMinusNatS (Succ vy610) (Succ vy620)) (Succ vy63))",fontsize=16,color="black",shape="box"];1283 -> 1291[label="",style="solid", color="black", weight=3]; 14.04/5.18 1284[label="primPlusNat Zero (primDivNatS (primMinusNatS (Succ vy610) Zero) (Succ vy63))",fontsize=16,color="black",shape="box"];1284 -> 1292[label="",style="solid", color="black", weight=3]; 14.04/5.18 1285[label="primPlusNat Zero (primDivNatS (primMinusNatS Zero (Succ vy620)) (Succ vy63))",fontsize=16,color="black",shape="box"];1285 -> 1293[label="",style="solid", color="black", weight=3]; 14.04/5.18 1286[label="primPlusNat Zero (primDivNatS (primMinusNatS Zero Zero) (Succ vy63))",fontsize=16,color="black",shape="box"];1286 -> 1294[label="",style="solid", color="black", weight=3]; 14.04/5.19 1195[label="Succ vy46",fontsize=16,color="green",shape="box"];1196[label="Succ vy45",fontsize=16,color="green",shape="box"];1197[label="Succ vy46",fontsize=16,color="green",shape="box"];1287[label="vy580",fontsize=16,color="green",shape="box"];1288[label="vy570",fontsize=16,color="green",shape="box"];1289[label="primMinusNat Zero (primDivNatS0 vy570 vy59 (primGEqNatS vy570 vy59))",fontsize=16,color="burlywood",shape="box"];2437[label="vy570/Succ vy5700",fontsize=10,color="white",style="solid",shape="box"];1289 -> 2437[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2437 -> 1295[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2438[label="vy570/Zero",fontsize=10,color="white",style="solid",shape="box"];1289 -> 2438[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2438 -> 1296[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 1290[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="triangle"];1290 -> 1297[label="",style="solid", color="black", weight=3]; 14.04/5.19 798 -> 1243[label="",style="dashed", color="red", weight=0]; 14.04/5.19 798[label="primPlusNat Zero (primDivNatS (primMinusNatS (Succ vy50) (Succ vy51)) (Succ (Succ vy51)))",fontsize=16,color="magenta"];798 -> 1250[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 798 -> 1251[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 798 -> 1252[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1291 -> 1243[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1291[label="primPlusNat Zero (primDivNatS (primMinusNatS vy610 vy620) (Succ vy63))",fontsize=16,color="magenta"];1291 -> 1298[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1291 -> 1299[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1292[label="primPlusNat Zero (primDivNatS (Succ vy610) (Succ vy63))",fontsize=16,color="black",shape="box"];1292 -> 1300[label="",style="solid", color="black", weight=3]; 14.04/5.19 1293[label="primPlusNat Zero (primDivNatS Zero (Succ vy63))",fontsize=16,color="black",shape="triangle"];1293 -> 1301[label="",style="solid", color="black", weight=3]; 14.04/5.19 1294 -> 1293[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1294[label="primPlusNat Zero (primDivNatS Zero (Succ vy63))",fontsize=16,color="magenta"];1295[label="primMinusNat Zero (primDivNatS0 (Succ vy5700) vy59 (primGEqNatS (Succ vy5700) vy59))",fontsize=16,color="burlywood",shape="box"];2439[label="vy59/Succ vy590",fontsize=10,color="white",style="solid",shape="box"];1295 -> 2439[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2439 -> 1302[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2440[label="vy59/Zero",fontsize=10,color="white",style="solid",shape="box"];1295 -> 2440[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2440 -> 1303[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 1296[label="primMinusNat Zero (primDivNatS0 Zero vy59 (primGEqNatS Zero vy59))",fontsize=16,color="burlywood",shape="box"];2441[label="vy59/Succ vy590",fontsize=10,color="white",style="solid",shape="box"];1296 -> 2441[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2441 -> 1304[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2442[label="vy59/Zero",fontsize=10,color="white",style="solid",shape="box"];1296 -> 2442[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2442 -> 1305[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 1297[label="Pos Zero",fontsize=16,color="green",shape="box"];1250[label="Succ vy51",fontsize=16,color="green",shape="box"];1251[label="Succ vy50",fontsize=16,color="green",shape="box"];1252[label="Succ vy51",fontsize=16,color="green",shape="box"];1298[label="vy610",fontsize=16,color="green",shape="box"];1299[label="vy620",fontsize=16,color="green",shape="box"];1300[label="primPlusNat Zero (primDivNatS0 vy610 vy63 (primGEqNatS vy610 vy63))",fontsize=16,color="burlywood",shape="box"];2443[label="vy610/Succ vy6100",fontsize=10,color="white",style="solid",shape="box"];1300 -> 2443[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2443 -> 1306[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2444[label="vy610/Zero",fontsize=10,color="white",style="solid",shape="box"];1300 -> 2444[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2444 -> 1307[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 1301[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="triangle"];1301 -> 1308[label="",style="solid", color="black", weight=3]; 14.04/5.19 1302[label="primMinusNat Zero (primDivNatS0 (Succ vy5700) (Succ vy590) (primGEqNatS (Succ vy5700) (Succ vy590)))",fontsize=16,color="black",shape="box"];1302 -> 1309[label="",style="solid", color="black", weight=3]; 14.04/5.19 1303[label="primMinusNat Zero (primDivNatS0 (Succ vy5700) Zero (primGEqNatS (Succ vy5700) Zero))",fontsize=16,color="black",shape="box"];1303 -> 1310[label="",style="solid", color="black", weight=3]; 14.04/5.19 1304[label="primMinusNat Zero (primDivNatS0 Zero (Succ vy590) (primGEqNatS Zero (Succ vy590)))",fontsize=16,color="black",shape="box"];1304 -> 1311[label="",style="solid", color="black", weight=3]; 14.04/5.19 1305[label="primMinusNat Zero (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))",fontsize=16,color="black",shape="box"];1305 -> 1312[label="",style="solid", color="black", weight=3]; 14.04/5.19 1306[label="primPlusNat Zero (primDivNatS0 (Succ vy6100) vy63 (primGEqNatS (Succ vy6100) vy63))",fontsize=16,color="burlywood",shape="box"];2445[label="vy63/Succ vy630",fontsize=10,color="white",style="solid",shape="box"];1306 -> 2445[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2445 -> 1313[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2446[label="vy63/Zero",fontsize=10,color="white",style="solid",shape="box"];1306 -> 2446[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2446 -> 1314[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 1307[label="primPlusNat Zero (primDivNatS0 Zero vy63 (primGEqNatS Zero vy63))",fontsize=16,color="burlywood",shape="box"];2447[label="vy63/Succ vy630",fontsize=10,color="white",style="solid",shape="box"];1307 -> 2447[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2447 -> 1315[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2448[label="vy63/Zero",fontsize=10,color="white",style="solid",shape="box"];1307 -> 2448[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2448 -> 1316[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 1308[label="Zero",fontsize=16,color="green",shape="box"];1309 -> 1872[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1309[label="primMinusNat Zero (primDivNatS0 (Succ vy5700) (Succ vy590) (primGEqNatS vy5700 vy590))",fontsize=16,color="magenta"];1309 -> 1873[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1309 -> 1874[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1309 -> 1875[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1309 -> 1876[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1310[label="primMinusNat Zero (primDivNatS0 (Succ vy5700) Zero MyTrue)",fontsize=16,color="black",shape="box"];1310 -> 1319[label="",style="solid", color="black", weight=3]; 14.04/5.19 1311[label="primMinusNat Zero (primDivNatS0 Zero (Succ vy590) MyFalse)",fontsize=16,color="black",shape="box"];1311 -> 1320[label="",style="solid", color="black", weight=3]; 14.04/5.19 1312[label="primMinusNat Zero (primDivNatS0 Zero Zero MyTrue)",fontsize=16,color="black",shape="box"];1312 -> 1321[label="",style="solid", color="black", weight=3]; 14.04/5.19 1313[label="primPlusNat Zero (primDivNatS0 (Succ vy6100) (Succ vy630) (primGEqNatS (Succ vy6100) (Succ vy630)))",fontsize=16,color="black",shape="box"];1313 -> 1322[label="",style="solid", color="black", weight=3]; 14.04/5.19 1314[label="primPlusNat Zero (primDivNatS0 (Succ vy6100) Zero (primGEqNatS (Succ vy6100) Zero))",fontsize=16,color="black",shape="box"];1314 -> 1323[label="",style="solid", color="black", weight=3]; 14.04/5.19 1315[label="primPlusNat Zero (primDivNatS0 Zero (Succ vy630) (primGEqNatS Zero (Succ vy630)))",fontsize=16,color="black",shape="box"];1315 -> 1324[label="",style="solid", color="black", weight=3]; 14.04/5.19 1316[label="primPlusNat Zero (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))",fontsize=16,color="black",shape="box"];1316 -> 1325[label="",style="solid", color="black", weight=3]; 14.04/5.19 1873[label="vy5700",fontsize=16,color="green",shape="box"];1874[label="vy590",fontsize=16,color="green",shape="box"];1875[label="vy590",fontsize=16,color="green",shape="box"];1876[label="vy5700",fontsize=16,color="green",shape="box"];1872[label="primMinusNat Zero (primDivNatS0 (Succ vy94) (Succ vy95) (primGEqNatS vy96 vy97))",fontsize=16,color="burlywood",shape="triangle"];2449[label="vy96/Succ vy960",fontsize=10,color="white",style="solid",shape="box"];1872 -> 2449[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2449 -> 1913[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2450[label="vy96/Zero",fontsize=10,color="white",style="solid",shape="box"];1872 -> 2450[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2450 -> 1914[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 1319 -> 1678[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1319[label="primMinusNat Zero (Succ (primDivNatS (primMinusNatS (Succ vy5700) Zero) (Succ Zero)))",fontsize=16,color="magenta"];1319 -> 1679[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1320 -> 1290[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1320[label="primMinusNat Zero Zero",fontsize=16,color="magenta"];1321 -> 1678[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1321[label="primMinusNat Zero (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))",fontsize=16,color="magenta"];1321 -> 1680[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1322 -> 1977[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1322[label="primPlusNat Zero (primDivNatS0 (Succ vy6100) (Succ vy630) (primGEqNatS vy6100 vy630))",fontsize=16,color="magenta"];1322 -> 1978[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1322 -> 1979[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1322 -> 1980[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1322 -> 1981[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1323[label="primPlusNat Zero (primDivNatS0 (Succ vy6100) Zero MyTrue)",fontsize=16,color="black",shape="box"];1323 -> 1334[label="",style="solid", color="black", weight=3]; 14.04/5.19 1324[label="primPlusNat Zero (primDivNatS0 Zero (Succ vy630) MyFalse)",fontsize=16,color="black",shape="box"];1324 -> 1335[label="",style="solid", color="black", weight=3]; 14.04/5.19 1325[label="primPlusNat Zero (primDivNatS0 Zero Zero MyTrue)",fontsize=16,color="black",shape="box"];1325 -> 1336[label="",style="solid", color="black", weight=3]; 14.04/5.19 1913[label="primMinusNat Zero (primDivNatS0 (Succ vy94) (Succ vy95) (primGEqNatS (Succ vy960) vy97))",fontsize=16,color="burlywood",shape="box"];2451[label="vy97/Succ vy970",fontsize=10,color="white",style="solid",shape="box"];1913 -> 2451[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2451 -> 1927[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2452[label="vy97/Zero",fontsize=10,color="white",style="solid",shape="box"];1913 -> 2452[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2452 -> 1928[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 1914[label="primMinusNat Zero (primDivNatS0 (Succ vy94) (Succ vy95) (primGEqNatS Zero vy97))",fontsize=16,color="burlywood",shape="box"];2453[label="vy97/Succ vy970",fontsize=10,color="white",style="solid",shape="box"];1914 -> 2453[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2453 -> 1929[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2454[label="vy97/Zero",fontsize=10,color="white",style="solid",shape="box"];1914 -> 2454[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2454 -> 1930[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 1679 -> 2097[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1679[label="primDivNatS (primMinusNatS (Succ vy5700) Zero) (Succ Zero)",fontsize=16,color="magenta"];1679 -> 2098[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1679 -> 2099[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1679 -> 2100[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1678[label="primMinusNat Zero (Succ vy79)",fontsize=16,color="black",shape="triangle"];1678 -> 1694[label="",style="solid", color="black", weight=3]; 14.04/5.19 1680 -> 2097[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1680[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];1680 -> 2101[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1680 -> 2102[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1680 -> 2103[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1978[label="vy6100",fontsize=16,color="green",shape="box"];1979[label="vy630",fontsize=16,color="green",shape="box"];1980[label="vy6100",fontsize=16,color="green",shape="box"];1981[label="vy630",fontsize=16,color="green",shape="box"];1977[label="primPlusNat Zero (primDivNatS0 (Succ vy107) (Succ vy108) (primGEqNatS vy109 vy110))",fontsize=16,color="burlywood",shape="triangle"];2455[label="vy109/Succ vy1090",fontsize=10,color="white",style="solid",shape="box"];1977 -> 2455[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2455 -> 2018[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2456[label="vy109/Zero",fontsize=10,color="white",style="solid",shape="box"];1977 -> 2456[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2456 -> 2019[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 1334 -> 1742[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1334[label="primPlusNat Zero (Succ (primDivNatS (primMinusNatS (Succ vy6100) Zero) (Succ Zero)))",fontsize=16,color="magenta"];1334 -> 1743[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1335 -> 1301[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1335[label="primPlusNat Zero Zero",fontsize=16,color="magenta"];1336 -> 1742[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1336[label="primPlusNat Zero (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))",fontsize=16,color="magenta"];1336 -> 1744[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1927[label="primMinusNat Zero (primDivNatS0 (Succ vy94) (Succ vy95) (primGEqNatS (Succ vy960) (Succ vy970)))",fontsize=16,color="black",shape="box"];1927 -> 1944[label="",style="solid", color="black", weight=3]; 14.04/5.19 1928[label="primMinusNat Zero (primDivNatS0 (Succ vy94) (Succ vy95) (primGEqNatS (Succ vy960) Zero))",fontsize=16,color="black",shape="box"];1928 -> 1945[label="",style="solid", color="black", weight=3]; 14.04/5.19 1929[label="primMinusNat Zero (primDivNatS0 (Succ vy94) (Succ vy95) (primGEqNatS Zero (Succ vy970)))",fontsize=16,color="black",shape="box"];1929 -> 1946[label="",style="solid", color="black", weight=3]; 14.04/5.19 1930[label="primMinusNat Zero (primDivNatS0 (Succ vy94) (Succ vy95) (primGEqNatS Zero Zero))",fontsize=16,color="black",shape="box"];1930 -> 1947[label="",style="solid", color="black", weight=3]; 14.04/5.19 2098[label="Zero",fontsize=16,color="green",shape="box"];2099[label="Zero",fontsize=16,color="green",shape="box"];2100[label="Succ vy5700",fontsize=16,color="green",shape="box"];2097[label="primDivNatS (primMinusNatS vy115 vy116) (Succ vy117)",fontsize=16,color="burlywood",shape="triangle"];2457[label="vy115/Succ vy1150",fontsize=10,color="white",style="solid",shape="box"];2097 -> 2457[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2457 -> 2149[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2458[label="vy115/Zero",fontsize=10,color="white",style="solid",shape="box"];2097 -> 2458[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2458 -> 2150[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 1694[label="Neg (Succ vy79)",fontsize=16,color="green",shape="box"];2101[label="Zero",fontsize=16,color="green",shape="box"];2102[label="Zero",fontsize=16,color="green",shape="box"];2103[label="Zero",fontsize=16,color="green",shape="box"];2018[label="primPlusNat Zero (primDivNatS0 (Succ vy107) (Succ vy108) (primGEqNatS (Succ vy1090) vy110))",fontsize=16,color="burlywood",shape="box"];2459[label="vy110/Succ vy1100",fontsize=10,color="white",style="solid",shape="box"];2018 -> 2459[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2459 -> 2034[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2460[label="vy110/Zero",fontsize=10,color="white",style="solid",shape="box"];2018 -> 2460[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2460 -> 2035[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2019[label="primPlusNat Zero (primDivNatS0 (Succ vy107) (Succ vy108) (primGEqNatS Zero vy110))",fontsize=16,color="burlywood",shape="box"];2461[label="vy110/Succ vy1100",fontsize=10,color="white",style="solid",shape="box"];2019 -> 2461[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2461 -> 2036[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2462[label="vy110/Zero",fontsize=10,color="white",style="solid",shape="box"];2019 -> 2462[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2462 -> 2037[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 1743 -> 2097[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1743[label="primDivNatS (primMinusNatS (Succ vy6100) Zero) (Succ Zero)",fontsize=16,color="magenta"];1743 -> 2110[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1743 -> 2111[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1743 -> 2112[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1742[label="primPlusNat Zero (Succ vy82)",fontsize=16,color="black",shape="triangle"];1742 -> 1758[label="",style="solid", color="black", weight=3]; 14.04/5.19 1744 -> 2097[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1744[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];1744 -> 2113[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1744 -> 2114[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1744 -> 2115[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1944 -> 1872[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1944[label="primMinusNat Zero (primDivNatS0 (Succ vy94) (Succ vy95) (primGEqNatS vy960 vy970))",fontsize=16,color="magenta"];1944 -> 1962[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1944 -> 1963[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1945[label="primMinusNat Zero (primDivNatS0 (Succ vy94) (Succ vy95) MyTrue)",fontsize=16,color="black",shape="triangle"];1945 -> 1964[label="",style="solid", color="black", weight=3]; 14.04/5.19 1946[label="primMinusNat Zero (primDivNatS0 (Succ vy94) (Succ vy95) MyFalse)",fontsize=16,color="black",shape="box"];1946 -> 1965[label="",style="solid", color="black", weight=3]; 14.04/5.19 1947 -> 1945[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1947[label="primMinusNat Zero (primDivNatS0 (Succ vy94) (Succ vy95) MyTrue)",fontsize=16,color="magenta"];2149[label="primDivNatS (primMinusNatS (Succ vy1150) vy116) (Succ vy117)",fontsize=16,color="burlywood",shape="box"];2463[label="vy116/Succ vy1160",fontsize=10,color="white",style="solid",shape="box"];2149 -> 2463[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2463 -> 2151[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2464[label="vy116/Zero",fontsize=10,color="white",style="solid",shape="box"];2149 -> 2464[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2464 -> 2152[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2150[label="primDivNatS (primMinusNatS Zero vy116) (Succ vy117)",fontsize=16,color="burlywood",shape="box"];2465[label="vy116/Succ vy1160",fontsize=10,color="white",style="solid",shape="box"];2150 -> 2465[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2465 -> 2153[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2466[label="vy116/Zero",fontsize=10,color="white",style="solid",shape="box"];2150 -> 2466[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2466 -> 2154[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2034[label="primPlusNat Zero (primDivNatS0 (Succ vy107) (Succ vy108) (primGEqNatS (Succ vy1090) (Succ vy1100)))",fontsize=16,color="black",shape="box"];2034 -> 2047[label="",style="solid", color="black", weight=3]; 14.04/5.19 2035[label="primPlusNat Zero (primDivNatS0 (Succ vy107) (Succ vy108) (primGEqNatS (Succ vy1090) Zero))",fontsize=16,color="black",shape="box"];2035 -> 2048[label="",style="solid", color="black", weight=3]; 14.04/5.19 2036[label="primPlusNat Zero (primDivNatS0 (Succ vy107) (Succ vy108) (primGEqNatS Zero (Succ vy1100)))",fontsize=16,color="black",shape="box"];2036 -> 2049[label="",style="solid", color="black", weight=3]; 14.04/5.19 2037[label="primPlusNat Zero (primDivNatS0 (Succ vy107) (Succ vy108) (primGEqNatS Zero Zero))",fontsize=16,color="black",shape="box"];2037 -> 2050[label="",style="solid", color="black", weight=3]; 14.04/5.19 2110[label="Zero",fontsize=16,color="green",shape="box"];2111[label="Zero",fontsize=16,color="green",shape="box"];2112[label="Succ vy6100",fontsize=16,color="green",shape="box"];1758[label="Succ vy82",fontsize=16,color="green",shape="box"];2113[label="Zero",fontsize=16,color="green",shape="box"];2114[label="Zero",fontsize=16,color="green",shape="box"];2115[label="Zero",fontsize=16,color="green",shape="box"];1962[label="vy960",fontsize=16,color="green",shape="box"];1963[label="vy970",fontsize=16,color="green",shape="box"];1964 -> 1678[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1964[label="primMinusNat Zero (Succ (primDivNatS (primMinusNatS (Succ vy94) (Succ vy95)) (Succ (Succ vy95))))",fontsize=16,color="magenta"];1964 -> 2020[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 1965 -> 1290[label="",style="dashed", color="red", weight=0]; 14.04/5.19 1965[label="primMinusNat Zero Zero",fontsize=16,color="magenta"];2151[label="primDivNatS (primMinusNatS (Succ vy1150) (Succ vy1160)) (Succ vy117)",fontsize=16,color="black",shape="box"];2151 -> 2155[label="",style="solid", color="black", weight=3]; 14.04/5.19 2152[label="primDivNatS (primMinusNatS (Succ vy1150) Zero) (Succ vy117)",fontsize=16,color="black",shape="box"];2152 -> 2156[label="",style="solid", color="black", weight=3]; 14.04/5.19 2153[label="primDivNatS (primMinusNatS Zero (Succ vy1160)) (Succ vy117)",fontsize=16,color="black",shape="box"];2153 -> 2157[label="",style="solid", color="black", weight=3]; 14.04/5.19 2154[label="primDivNatS (primMinusNatS Zero Zero) (Succ vy117)",fontsize=16,color="black",shape="box"];2154 -> 2158[label="",style="solid", color="black", weight=3]; 14.04/5.19 2047 -> 1977[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2047[label="primPlusNat Zero (primDivNatS0 (Succ vy107) (Succ vy108) (primGEqNatS vy1090 vy1100))",fontsize=16,color="magenta"];2047 -> 2057[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2047 -> 2058[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2048[label="primPlusNat Zero (primDivNatS0 (Succ vy107) (Succ vy108) MyTrue)",fontsize=16,color="black",shape="triangle"];2048 -> 2059[label="",style="solid", color="black", weight=3]; 14.04/5.19 2049[label="primPlusNat Zero (primDivNatS0 (Succ vy107) (Succ vy108) MyFalse)",fontsize=16,color="black",shape="box"];2049 -> 2060[label="",style="solid", color="black", weight=3]; 14.04/5.19 2050 -> 2048[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2050[label="primPlusNat Zero (primDivNatS0 (Succ vy107) (Succ vy108) MyTrue)",fontsize=16,color="magenta"];2020 -> 2097[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2020[label="primDivNatS (primMinusNatS (Succ vy94) (Succ vy95)) (Succ (Succ vy95))",fontsize=16,color="magenta"];2020 -> 2119[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2020 -> 2120[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2020 -> 2121[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2155 -> 2097[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2155[label="primDivNatS (primMinusNatS vy1150 vy1160) (Succ vy117)",fontsize=16,color="magenta"];2155 -> 2159[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2155 -> 2160[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2156[label="primDivNatS (Succ vy1150) (Succ vy117)",fontsize=16,color="black",shape="box"];2156 -> 2161[label="",style="solid", color="black", weight=3]; 14.04/5.19 2157[label="primDivNatS Zero (Succ vy117)",fontsize=16,color="black",shape="triangle"];2157 -> 2162[label="",style="solid", color="black", weight=3]; 14.04/5.19 2158 -> 2157[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2158[label="primDivNatS Zero (Succ vy117)",fontsize=16,color="magenta"];2057[label="vy1090",fontsize=16,color="green",shape="box"];2058[label="vy1100",fontsize=16,color="green",shape="box"];2059 -> 1742[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2059[label="primPlusNat Zero (Succ (primDivNatS (primMinusNatS (Succ vy107) (Succ vy108)) (Succ (Succ vy108))))",fontsize=16,color="magenta"];2059 -> 2071[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2060 -> 1301[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2060[label="primPlusNat Zero Zero",fontsize=16,color="magenta"];2119[label="Succ vy95",fontsize=16,color="green",shape="box"];2120[label="Succ vy95",fontsize=16,color="green",shape="box"];2121[label="Succ vy94",fontsize=16,color="green",shape="box"];2159[label="vy1160",fontsize=16,color="green",shape="box"];2160[label="vy1150",fontsize=16,color="green",shape="box"];2161[label="primDivNatS0 vy1150 vy117 (primGEqNatS vy1150 vy117)",fontsize=16,color="burlywood",shape="box"];2467[label="vy1150/Succ vy11500",fontsize=10,color="white",style="solid",shape="box"];2161 -> 2467[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2467 -> 2163[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2468[label="vy1150/Zero",fontsize=10,color="white",style="solid",shape="box"];2161 -> 2468[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2468 -> 2164[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2162[label="Zero",fontsize=16,color="green",shape="box"];2071 -> 2097[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2071[label="primDivNatS (primMinusNatS (Succ vy107) (Succ vy108)) (Succ (Succ vy108))",fontsize=16,color="magenta"];2071 -> 2122[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2071 -> 2123[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2071 -> 2124[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2163[label="primDivNatS0 (Succ vy11500) vy117 (primGEqNatS (Succ vy11500) vy117)",fontsize=16,color="burlywood",shape="box"];2469[label="vy117/Succ vy1170",fontsize=10,color="white",style="solid",shape="box"];2163 -> 2469[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2469 -> 2165[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2470[label="vy117/Zero",fontsize=10,color="white",style="solid",shape="box"];2163 -> 2470[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2470 -> 2166[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2164[label="primDivNatS0 Zero vy117 (primGEqNatS Zero vy117)",fontsize=16,color="burlywood",shape="box"];2471[label="vy117/Succ vy1170",fontsize=10,color="white",style="solid",shape="box"];2164 -> 2471[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2471 -> 2167[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2472[label="vy117/Zero",fontsize=10,color="white",style="solid",shape="box"];2164 -> 2472[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2472 -> 2168[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2122[label="Succ vy108",fontsize=16,color="green",shape="box"];2123[label="Succ vy108",fontsize=16,color="green",shape="box"];2124[label="Succ vy107",fontsize=16,color="green",shape="box"];2165[label="primDivNatS0 (Succ vy11500) (Succ vy1170) (primGEqNatS (Succ vy11500) (Succ vy1170))",fontsize=16,color="black",shape="box"];2165 -> 2169[label="",style="solid", color="black", weight=3]; 14.04/5.19 2166[label="primDivNatS0 (Succ vy11500) Zero (primGEqNatS (Succ vy11500) Zero)",fontsize=16,color="black",shape="box"];2166 -> 2170[label="",style="solid", color="black", weight=3]; 14.04/5.19 2167[label="primDivNatS0 Zero (Succ vy1170) (primGEqNatS Zero (Succ vy1170))",fontsize=16,color="black",shape="box"];2167 -> 2171[label="",style="solid", color="black", weight=3]; 14.04/5.19 2168[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];2168 -> 2172[label="",style="solid", color="black", weight=3]; 14.04/5.19 2169 -> 2331[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2169[label="primDivNatS0 (Succ vy11500) (Succ vy1170) (primGEqNatS vy11500 vy1170)",fontsize=16,color="magenta"];2169 -> 2332[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2169 -> 2333[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2169 -> 2334[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2169 -> 2335[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2170[label="primDivNatS0 (Succ vy11500) Zero MyTrue",fontsize=16,color="black",shape="box"];2170 -> 2175[label="",style="solid", color="black", weight=3]; 14.04/5.19 2171[label="primDivNatS0 Zero (Succ vy1170) MyFalse",fontsize=16,color="black",shape="box"];2171 -> 2176[label="",style="solid", color="black", weight=3]; 14.04/5.19 2172[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];2172 -> 2177[label="",style="solid", color="black", weight=3]; 14.04/5.19 2332[label="vy1170",fontsize=16,color="green",shape="box"];2333[label="vy11500",fontsize=16,color="green",shape="box"];2334[label="vy1170",fontsize=16,color="green",shape="box"];2335[label="vy11500",fontsize=16,color="green",shape="box"];2331[label="primDivNatS0 (Succ vy134) (Succ vy135) (primGEqNatS vy136 vy137)",fontsize=16,color="burlywood",shape="triangle"];2473[label="vy136/Succ vy1360",fontsize=10,color="white",style="solid",shape="box"];2331 -> 2473[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2473 -> 2364[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2474[label="vy136/Zero",fontsize=10,color="white",style="solid",shape="box"];2331 -> 2474[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2474 -> 2365[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2175[label="Succ (primDivNatS (primMinusNatS (Succ vy11500) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];2175 -> 2182[label="",style="dashed", color="green", weight=3]; 14.04/5.19 2176[label="Zero",fontsize=16,color="green",shape="box"];2177[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];2177 -> 2183[label="",style="dashed", color="green", weight=3]; 14.04/5.19 2364[label="primDivNatS0 (Succ vy134) (Succ vy135) (primGEqNatS (Succ vy1360) vy137)",fontsize=16,color="burlywood",shape="box"];2475[label="vy137/Succ vy1370",fontsize=10,color="white",style="solid",shape="box"];2364 -> 2475[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2475 -> 2366[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2476[label="vy137/Zero",fontsize=10,color="white",style="solid",shape="box"];2364 -> 2476[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2476 -> 2367[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2365[label="primDivNatS0 (Succ vy134) (Succ vy135) (primGEqNatS Zero vy137)",fontsize=16,color="burlywood",shape="box"];2477[label="vy137/Succ vy1370",fontsize=10,color="white",style="solid",shape="box"];2365 -> 2477[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2477 -> 2368[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2478[label="vy137/Zero",fontsize=10,color="white",style="solid",shape="box"];2365 -> 2478[label="",style="solid", color="burlywood", weight=9]; 14.04/5.19 2478 -> 2369[label="",style="solid", color="burlywood", weight=3]; 14.04/5.19 2182 -> 2097[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2182[label="primDivNatS (primMinusNatS (Succ vy11500) Zero) (Succ Zero)",fontsize=16,color="magenta"];2182 -> 2188[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2182 -> 2189[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2182 -> 2190[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2183 -> 2097[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2183[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];2183 -> 2191[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2183 -> 2192[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2183 -> 2193[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2366[label="primDivNatS0 (Succ vy134) (Succ vy135) (primGEqNatS (Succ vy1360) (Succ vy1370))",fontsize=16,color="black",shape="box"];2366 -> 2370[label="",style="solid", color="black", weight=3]; 14.04/5.19 2367[label="primDivNatS0 (Succ vy134) (Succ vy135) (primGEqNatS (Succ vy1360) Zero)",fontsize=16,color="black",shape="box"];2367 -> 2371[label="",style="solid", color="black", weight=3]; 14.04/5.19 2368[label="primDivNatS0 (Succ vy134) (Succ vy135) (primGEqNatS Zero (Succ vy1370))",fontsize=16,color="black",shape="box"];2368 -> 2372[label="",style="solid", color="black", weight=3]; 14.04/5.19 2369[label="primDivNatS0 (Succ vy134) (Succ vy135) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];2369 -> 2373[label="",style="solid", color="black", weight=3]; 14.04/5.19 2188[label="Zero",fontsize=16,color="green",shape="box"];2189[label="Zero",fontsize=16,color="green",shape="box"];2190[label="Succ vy11500",fontsize=16,color="green",shape="box"];2191[label="Zero",fontsize=16,color="green",shape="box"];2192[label="Zero",fontsize=16,color="green",shape="box"];2193[label="Zero",fontsize=16,color="green",shape="box"];2370 -> 2331[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2370[label="primDivNatS0 (Succ vy134) (Succ vy135) (primGEqNatS vy1360 vy1370)",fontsize=16,color="magenta"];2370 -> 2374[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2370 -> 2375[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2371[label="primDivNatS0 (Succ vy134) (Succ vy135) MyTrue",fontsize=16,color="black",shape="triangle"];2371 -> 2376[label="",style="solid", color="black", weight=3]; 14.04/5.19 2372[label="primDivNatS0 (Succ vy134) (Succ vy135) MyFalse",fontsize=16,color="black",shape="box"];2372 -> 2377[label="",style="solid", color="black", weight=3]; 14.04/5.19 2373 -> 2371[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2373[label="primDivNatS0 (Succ vy134) (Succ vy135) MyTrue",fontsize=16,color="magenta"];2374[label="vy1370",fontsize=16,color="green",shape="box"];2375[label="vy1360",fontsize=16,color="green",shape="box"];2376[label="Succ (primDivNatS (primMinusNatS (Succ vy134) (Succ vy135)) (Succ (Succ vy135)))",fontsize=16,color="green",shape="box"];2376 -> 2378[label="",style="dashed", color="green", weight=3]; 14.04/5.19 2377[label="Zero",fontsize=16,color="green",shape="box"];2378 -> 2097[label="",style="dashed", color="red", weight=0]; 14.04/5.19 2378[label="primDivNatS (primMinusNatS (Succ vy134) (Succ vy135)) (Succ (Succ vy135))",fontsize=16,color="magenta"];2378 -> 2379[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2378 -> 2380[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2378 -> 2381[label="",style="dashed", color="magenta", weight=3]; 14.04/5.19 2379[label="Succ vy135",fontsize=16,color="green",shape="box"];2380[label="Succ vy135",fontsize=16,color="green",shape="box"];2381[label="Succ vy134",fontsize=16,color="green",shape="box"];} 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (6) 14.04/5.19 Complex Obligation (AND) 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (7) 14.04/5.19 Obligation: 14.04/5.19 Q DP problem: 14.04/5.19 The TRS P consists of the following rules: 14.04/5.19 14.04/5.19 new_primPlusNat(vy107, vy108, Main.Succ(vy1090), Main.Succ(vy1100)) -> new_primPlusNat(vy107, vy108, vy1090, vy1100) 14.04/5.19 14.04/5.19 R is empty. 14.04/5.19 Q is empty. 14.04/5.19 We have to consider all minimal (P,Q,R)-chains. 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (8) QDPSizeChangeProof (EQUIVALENT) 14.04/5.19 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. 14.04/5.19 14.04/5.19 From the DPs we obtained the following set of size-change graphs: 14.04/5.19 *new_primPlusNat(vy107, vy108, Main.Succ(vy1090), Main.Succ(vy1100)) -> new_primPlusNat(vy107, vy108, vy1090, vy1100) 14.04/5.19 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 14.04/5.19 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (9) 14.04/5.19 YES 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (10) 14.04/5.19 Obligation: 14.04/5.19 Q DP problem: 14.04/5.19 The TRS P consists of the following rules: 14.04/5.19 14.04/5.19 new_primMinusNat1(vy45, vy46, Main.Succ(vy470), Main.Succ(vy480)) -> new_primMinusNat1(vy45, vy46, vy470, vy480) 14.04/5.19 14.04/5.19 R is empty. 14.04/5.19 Q is empty. 14.04/5.19 We have to consider all minimal (P,Q,R)-chains. 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (11) QDPSizeChangeProof (EQUIVALENT) 14.04/5.19 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. 14.04/5.19 14.04/5.19 From the DPs we obtained the following set of size-change graphs: 14.04/5.19 *new_primMinusNat1(vy45, vy46, Main.Succ(vy470), Main.Succ(vy480)) -> new_primMinusNat1(vy45, vy46, vy470, vy480) 14.04/5.19 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 14.04/5.19 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (12) 14.04/5.19 YES 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (13) 14.04/5.19 Obligation: 14.04/5.19 Q DP problem: 14.04/5.19 The TRS P consists of the following rules: 14.04/5.19 14.04/5.19 new_primPlusNat1(vy50, vy51, Main.Succ(vy520), Main.Succ(vy530)) -> new_primPlusNat1(vy50, vy51, vy520, vy530) 14.04/5.19 14.04/5.19 R is empty. 14.04/5.19 Q is empty. 14.04/5.19 We have to consider all minimal (P,Q,R)-chains. 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (14) QDPSizeChangeProof (EQUIVALENT) 14.04/5.19 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. 14.04/5.19 14.04/5.19 From the DPs we obtained the following set of size-change graphs: 14.04/5.19 *new_primPlusNat1(vy50, vy51, Main.Succ(vy520), Main.Succ(vy530)) -> new_primPlusNat1(vy50, vy51, vy520, vy530) 14.04/5.19 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 14.04/5.19 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (15) 14.04/5.19 YES 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (16) 14.04/5.19 Obligation: 14.04/5.19 Q DP problem: 14.04/5.19 The TRS P consists of the following rules: 14.04/5.19 14.04/5.19 new_primMinusNat(vy94, vy95, Main.Succ(vy960), Main.Succ(vy970)) -> new_primMinusNat(vy94, vy95, vy960, vy970) 14.04/5.19 14.04/5.19 R is empty. 14.04/5.19 Q is empty. 14.04/5.19 We have to consider all minimal (P,Q,R)-chains. 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (17) QDPSizeChangeProof (EQUIVALENT) 14.04/5.19 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. 14.04/5.19 14.04/5.19 From the DPs we obtained the following set of size-change graphs: 14.04/5.19 *new_primMinusNat(vy94, vy95, Main.Succ(vy960), Main.Succ(vy970)) -> new_primMinusNat(vy94, vy95, vy960, vy970) 14.04/5.19 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 14.04/5.19 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (18) 14.04/5.19 YES 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (19) 14.04/5.19 Obligation: 14.04/5.19 Q DP problem: 14.04/5.19 The TRS P consists of the following rules: 14.04/5.19 14.04/5.19 new_primMinusNat0(Main.Succ(vy570), Main.Succ(vy580), vy59) -> new_primMinusNat0(vy570, vy580, vy59) 14.04/5.19 14.04/5.19 R is empty. 14.04/5.19 Q is empty. 14.04/5.19 We have to consider all minimal (P,Q,R)-chains. 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (20) QDPSizeChangeProof (EQUIVALENT) 14.04/5.19 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. 14.04/5.19 14.04/5.19 From the DPs we obtained the following set of size-change graphs: 14.04/5.19 *new_primMinusNat0(Main.Succ(vy570), Main.Succ(vy580), vy59) -> new_primMinusNat0(vy570, vy580, vy59) 14.04/5.19 The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 14.04/5.19 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (21) 14.04/5.19 YES 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (22) 14.04/5.19 Obligation: 14.04/5.19 Q DP problem: 14.04/5.19 The TRS P consists of the following rules: 14.04/5.19 14.04/5.19 new_primPlusNat0(Main.Succ(vy610), Main.Succ(vy620), vy63) -> new_primPlusNat0(vy610, vy620, vy63) 14.04/5.19 14.04/5.19 R is empty. 14.04/5.19 Q is empty. 14.04/5.19 We have to consider all minimal (P,Q,R)-chains. 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (23) QDPSizeChangeProof (EQUIVALENT) 14.04/5.19 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. 14.04/5.19 14.04/5.19 From the DPs we obtained the following set of size-change graphs: 14.04/5.19 *new_primPlusNat0(Main.Succ(vy610), Main.Succ(vy620), vy63) -> new_primPlusNat0(vy610, vy620, vy63) 14.04/5.19 The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 14.04/5.19 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (24) 14.04/5.19 YES 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (25) 14.04/5.19 Obligation: 14.04/5.19 Q DP problem: 14.04/5.19 The TRS P consists of the following rules: 14.04/5.19 14.04/5.19 new_primDivNatS(Main.Succ(vy1150), Main.Succ(vy1160), vy117) -> new_primDivNatS(vy1150, vy1160, vy117) 14.04/5.19 new_primDivNatS0(vy134, vy135, Main.Succ(vy1360), Main.Succ(vy1370)) -> new_primDivNatS0(vy134, vy135, vy1360, vy1370) 14.04/5.19 new_primDivNatS00(vy134, vy135) -> new_primDivNatS(Main.Succ(vy134), Main.Succ(vy135), Main.Succ(vy135)) 14.04/5.19 new_primDivNatS(Main.Succ(Main.Succ(vy11500)), Main.Zero, Main.Zero) -> new_primDivNatS(Main.Succ(vy11500), Main.Zero, Main.Zero) 14.04/5.19 new_primDivNatS(Main.Succ(Main.Zero), Main.Zero, Main.Zero) -> new_primDivNatS(Main.Zero, Main.Zero, Main.Zero) 14.04/5.19 new_primDivNatS(Main.Succ(Main.Succ(vy11500)), Main.Zero, Main.Succ(vy1170)) -> new_primDivNatS0(vy11500, vy1170, vy11500, vy1170) 14.04/5.19 new_primDivNatS0(vy134, vy135, Main.Succ(vy1360), Main.Zero) -> new_primDivNatS(Main.Succ(vy134), Main.Succ(vy135), Main.Succ(vy135)) 14.04/5.19 new_primDivNatS0(vy134, vy135, Main.Zero, Main.Zero) -> new_primDivNatS00(vy134, vy135) 14.04/5.19 14.04/5.19 R is empty. 14.04/5.19 Q is empty. 14.04/5.19 We have to consider all minimal (P,Q,R)-chains. 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (26) DependencyGraphProof (EQUIVALENT) 14.04/5.19 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (27) 14.04/5.19 Complex Obligation (AND) 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (28) 14.04/5.19 Obligation: 14.04/5.19 Q DP problem: 14.04/5.19 The TRS P consists of the following rules: 14.04/5.19 14.04/5.19 new_primDivNatS(Main.Succ(Main.Succ(vy11500)), Main.Zero, Main.Zero) -> new_primDivNatS(Main.Succ(vy11500), Main.Zero, Main.Zero) 14.04/5.19 14.04/5.19 R is empty. 14.04/5.19 Q is empty. 14.04/5.19 We have to consider all minimal (P,Q,R)-chains. 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (29) QDPSizeChangeProof (EQUIVALENT) 14.04/5.19 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. 14.04/5.19 14.04/5.19 From the DPs we obtained the following set of size-change graphs: 14.04/5.19 *new_primDivNatS(Main.Succ(Main.Succ(vy11500)), Main.Zero, Main.Zero) -> new_primDivNatS(Main.Succ(vy11500), Main.Zero, Main.Zero) 14.04/5.19 The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 2, 2 >= 3, 3 >= 3 14.04/5.19 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (30) 14.04/5.19 YES 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (31) 14.04/5.19 Obligation: 14.04/5.19 Q DP problem: 14.04/5.19 The TRS P consists of the following rules: 14.04/5.19 14.04/5.19 new_primDivNatS(Main.Succ(Main.Succ(vy11500)), Main.Zero, Main.Succ(vy1170)) -> new_primDivNatS0(vy11500, vy1170, vy11500, vy1170) 14.04/5.19 new_primDivNatS0(vy134, vy135, Main.Succ(vy1360), Main.Succ(vy1370)) -> new_primDivNatS0(vy134, vy135, vy1360, vy1370) 14.04/5.19 new_primDivNatS0(vy134, vy135, Main.Succ(vy1360), Main.Zero) -> new_primDivNatS(Main.Succ(vy134), Main.Succ(vy135), Main.Succ(vy135)) 14.04/5.19 new_primDivNatS(Main.Succ(vy1150), Main.Succ(vy1160), vy117) -> new_primDivNatS(vy1150, vy1160, vy117) 14.04/5.19 new_primDivNatS0(vy134, vy135, Main.Zero, Main.Zero) -> new_primDivNatS00(vy134, vy135) 14.04/5.19 new_primDivNatS00(vy134, vy135) -> new_primDivNatS(Main.Succ(vy134), Main.Succ(vy135), Main.Succ(vy135)) 14.04/5.19 14.04/5.19 R is empty. 14.04/5.19 Q is empty. 14.04/5.19 We have to consider all minimal (P,Q,R)-chains. 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (32) QDPOrderProof (EQUIVALENT) 14.04/5.19 We use the reduction pair processor [LPAR04,JAR06]. 14.04/5.19 14.04/5.19 14.04/5.19 The following pairs can be oriented strictly and are deleted. 14.04/5.19 14.04/5.19 new_primDivNatS(Main.Succ(Main.Succ(vy11500)), Main.Zero, Main.Succ(vy1170)) -> new_primDivNatS0(vy11500, vy1170, vy11500, vy1170) 14.04/5.19 new_primDivNatS(Main.Succ(vy1150), Main.Succ(vy1160), vy117) -> new_primDivNatS(vy1150, vy1160, vy117) 14.04/5.19 The remaining pairs can at least be oriented weakly. 14.04/5.19 Used ordering: Polynomial interpretation [POLO]: 14.04/5.19 14.04/5.19 POL(Main.Succ(x_1)) = 1 + x_1 14.04/5.19 POL(Main.Zero) = 1 14.04/5.19 POL(new_primDivNatS(x_1, x_2, x_3)) = x_1 14.04/5.19 POL(new_primDivNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 14.04/5.19 POL(new_primDivNatS00(x_1, x_2)) = 1 + x_1 14.04/5.19 14.04/5.19 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 14.04/5.19 none 14.04/5.19 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (33) 14.04/5.19 Obligation: 14.04/5.19 Q DP problem: 14.04/5.19 The TRS P consists of the following rules: 14.04/5.19 14.04/5.19 new_primDivNatS0(vy134, vy135, Main.Succ(vy1360), Main.Succ(vy1370)) -> new_primDivNatS0(vy134, vy135, vy1360, vy1370) 14.04/5.19 new_primDivNatS0(vy134, vy135, Main.Succ(vy1360), Main.Zero) -> new_primDivNatS(Main.Succ(vy134), Main.Succ(vy135), Main.Succ(vy135)) 14.04/5.19 new_primDivNatS0(vy134, vy135, Main.Zero, Main.Zero) -> new_primDivNatS00(vy134, vy135) 14.04/5.19 new_primDivNatS00(vy134, vy135) -> new_primDivNatS(Main.Succ(vy134), Main.Succ(vy135), Main.Succ(vy135)) 14.04/5.19 14.04/5.19 R is empty. 14.04/5.19 Q is empty. 14.04/5.19 We have to consider all minimal (P,Q,R)-chains. 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (34) DependencyGraphProof (EQUIVALENT) 14.04/5.19 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (35) 14.04/5.19 Obligation: 14.04/5.19 Q DP problem: 14.04/5.19 The TRS P consists of the following rules: 14.04/5.19 14.04/5.19 new_primDivNatS0(vy134, vy135, Main.Succ(vy1360), Main.Succ(vy1370)) -> new_primDivNatS0(vy134, vy135, vy1360, vy1370) 14.04/5.19 14.04/5.19 R is empty. 14.04/5.19 Q is empty. 14.04/5.19 We have to consider all minimal (P,Q,R)-chains. 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (36) QDPSizeChangeProof (EQUIVALENT) 14.04/5.19 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. 14.04/5.19 14.04/5.19 From the DPs we obtained the following set of size-change graphs: 14.04/5.19 *new_primDivNatS0(vy134, vy135, Main.Succ(vy1360), Main.Succ(vy1370)) -> new_primDivNatS0(vy134, vy135, vy1360, vy1370) 14.04/5.19 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 14.04/5.19 14.04/5.19 14.04/5.19 ---------------------------------------- 14.04/5.19 14.04/5.19 (37) 14.04/5.19 YES 14.09/8.40 EOF