8.18/3.67 YES 10.15/4.22 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 10.15/4.22 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 10.15/4.22 10.15/4.22 10.15/4.22 H-Termination with start terms of the given HASKELL could be proven: 10.15/4.22 10.15/4.22 (0) HASKELL 10.15/4.22 (1) BR [EQUIVALENT, 0 ms] 10.15/4.22 (2) HASKELL 10.15/4.22 (3) COR [EQUIVALENT, 0 ms] 10.15/4.22 (4) HASKELL 10.15/4.22 (5) Narrow [SOUND, 0 ms] 10.15/4.22 (6) AND 10.15/4.22 (7) QDP 10.15/4.22 (8) QDPSizeChangeProof [EQUIVALENT, 0 ms] 10.15/4.22 (9) YES 10.15/4.22 (10) QDP 10.15/4.22 (11) QDPSizeChangeProof [EQUIVALENT, 0 ms] 10.15/4.22 (12) YES 10.15/4.22 (13) QDP 10.15/4.22 (14) QDPSizeChangeProof [EQUIVALENT, 0 ms] 10.15/4.22 (15) YES 10.15/4.22 10.15/4.22 10.15/4.22 ---------------------------------------- 10.15/4.22 10.15/4.22 (0) 10.15/4.22 Obligation: 10.15/4.22 mainModule Main 10.15/4.22 module Main where { 10.15/4.22 import qualified Prelude; 10.15/4.22 data Float = Float MyInt MyInt ; 10.15/4.22 10.15/4.22 data MyInt = Pos Main.Nat | Neg Main.Nat ; 10.15/4.22 10.15/4.22 data Main.Nat = Succ Main.Nat | Zero ; 10.15/4.22 10.15/4.22 data Ordering = LT | EQ | GT ; 10.15/4.22 10.15/4.22 compareFloat :: Float -> Float -> Ordering; 10.15/4.22 compareFloat = primCmpFloat; 10.15/4.22 10.15/4.22 compareMyInt :: MyInt -> MyInt -> Ordering; 10.15/4.22 compareMyInt = primCmpInt; 10.15/4.22 10.15/4.22 primCmpFloat :: Float -> Float -> Ordering; 10.15/4.22 primCmpFloat (Float x1 x2) (Float y1 y2) = compareMyInt (srMyInt x1 y1) (srMyInt x2 y2); 10.15/4.22 10.15/4.22 primCmpInt :: MyInt -> MyInt -> Ordering; 10.15/4.22 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 10.15/4.22 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 10.15/4.22 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 10.15/4.22 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 10.15/4.22 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 10.15/4.22 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 10.15/4.22 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 10.15/4.22 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 10.15/4.22 10.15/4.22 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 10.15/4.22 primCmpNat Main.Zero Main.Zero = EQ; 10.15/4.22 primCmpNat Main.Zero (Main.Succ y) = LT; 10.15/4.22 primCmpNat (Main.Succ x) Main.Zero = GT; 10.15/4.22 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 10.15/4.22 10.15/4.22 primMulInt :: MyInt -> MyInt -> MyInt; 10.15/4.22 primMulInt (Main.Pos x) (Main.Pos y) = Main.Pos (primMulNat x y); 10.15/4.22 primMulInt (Main.Pos x) (Main.Neg y) = Main.Neg (primMulNat x y); 10.15/4.22 primMulInt (Main.Neg x) (Main.Pos y) = Main.Neg (primMulNat x y); 10.15/4.22 primMulInt (Main.Neg x) (Main.Neg y) = Main.Pos (primMulNat x y); 10.15/4.22 10.15/4.22 primMulNat :: Main.Nat -> Main.Nat -> Main.Nat; 10.15/4.22 primMulNat Main.Zero Main.Zero = Main.Zero; 10.15/4.22 primMulNat Main.Zero (Main.Succ y) = Main.Zero; 10.15/4.22 primMulNat (Main.Succ x) Main.Zero = Main.Zero; 10.15/4.22 primMulNat (Main.Succ x) (Main.Succ y) = primPlusNat (primMulNat x (Main.Succ y)) (Main.Succ y); 10.15/4.22 10.15/4.22 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 10.15/4.22 primPlusNat Main.Zero Main.Zero = Main.Zero; 10.15/4.22 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 10.15/4.22 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 10.15/4.22 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 10.15/4.22 10.15/4.22 srMyInt :: MyInt -> MyInt -> MyInt; 10.15/4.22 srMyInt = primMulInt; 10.15/4.22 10.15/4.22 } 10.15/4.22 10.15/4.22 ---------------------------------------- 10.15/4.22 10.15/4.22 (1) BR (EQUIVALENT) 10.15/4.22 Replaced joker patterns by fresh variables and removed binding patterns. 10.15/4.22 ---------------------------------------- 10.15/4.22 10.15/4.22 (2) 10.15/4.22 Obligation: 10.15/4.22 mainModule Main 10.15/4.22 module Main where { 10.15/4.22 import qualified Prelude; 10.15/4.22 data Float = Float MyInt MyInt ; 10.15/4.22 10.15/4.22 data MyInt = Pos Main.Nat | Neg Main.Nat ; 10.15/4.22 10.15/4.22 data Main.Nat = Succ Main.Nat | Zero ; 10.15/4.22 10.15/4.22 data Ordering = LT | EQ | GT ; 10.15/4.22 10.15/4.22 compareFloat :: Float -> Float -> Ordering; 10.15/4.22 compareFloat = primCmpFloat; 10.15/4.22 10.15/4.22 compareMyInt :: MyInt -> MyInt -> Ordering; 10.15/4.22 compareMyInt = primCmpInt; 10.15/4.22 10.15/4.22 primCmpFloat :: Float -> Float -> Ordering; 10.15/4.22 primCmpFloat (Float x1 x2) (Float y1 y2) = compareMyInt (srMyInt x1 y1) (srMyInt x2 y2); 10.15/4.22 10.15/4.22 primCmpInt :: MyInt -> MyInt -> Ordering; 10.15/4.22 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 10.15/4.22 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 10.15/4.22 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 10.15/4.22 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 10.15/4.22 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 10.15/4.22 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 10.15/4.22 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 10.15/4.22 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 10.15/4.22 10.15/4.22 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 10.15/4.22 primCmpNat Main.Zero Main.Zero = EQ; 10.15/4.22 primCmpNat Main.Zero (Main.Succ y) = LT; 10.15/4.22 primCmpNat (Main.Succ x) Main.Zero = GT; 10.15/4.22 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 10.15/4.22 10.15/4.22 primMulInt :: MyInt -> MyInt -> MyInt; 10.15/4.22 primMulInt (Main.Pos x) (Main.Pos y) = Main.Pos (primMulNat x y); 10.15/4.22 primMulInt (Main.Pos x) (Main.Neg y) = Main.Neg (primMulNat x y); 10.15/4.22 primMulInt (Main.Neg x) (Main.Pos y) = Main.Neg (primMulNat x y); 10.15/4.22 primMulInt (Main.Neg x) (Main.Neg y) = Main.Pos (primMulNat x y); 10.15/4.22 10.15/4.22 primMulNat :: Main.Nat -> Main.Nat -> Main.Nat; 10.15/4.22 primMulNat Main.Zero Main.Zero = Main.Zero; 10.15/4.22 primMulNat Main.Zero (Main.Succ y) = Main.Zero; 10.15/4.22 primMulNat (Main.Succ x) Main.Zero = Main.Zero; 10.15/4.22 primMulNat (Main.Succ x) (Main.Succ y) = primPlusNat (primMulNat x (Main.Succ y)) (Main.Succ y); 10.15/4.22 10.15/4.22 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 10.15/4.22 primPlusNat Main.Zero Main.Zero = Main.Zero; 10.15/4.22 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 10.15/4.22 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 10.15/4.22 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 10.15/4.22 10.15/4.22 srMyInt :: MyInt -> MyInt -> MyInt; 10.15/4.22 srMyInt = primMulInt; 10.15/4.22 10.15/4.22 } 10.15/4.22 10.15/4.22 ---------------------------------------- 10.15/4.22 10.15/4.22 (3) COR (EQUIVALENT) 10.15/4.22 Cond Reductions: 10.15/4.22 The following Function with conditions 10.15/4.22 "undefined |Falseundefined; 10.15/4.22 " 10.15/4.22 is transformed to 10.15/4.22 "undefined = undefined1; 10.15/4.22 " 10.15/4.22 "undefined0 True = undefined; 10.15/4.22 " 10.15/4.22 "undefined1 = undefined0 False; 10.15/4.22 " 10.15/4.22 10.15/4.22 ---------------------------------------- 10.15/4.22 10.15/4.22 (4) 10.15/4.22 Obligation: 10.15/4.22 mainModule Main 10.15/4.22 module Main where { 10.15/4.22 import qualified Prelude; 10.15/4.22 data Float = Float MyInt MyInt ; 10.15/4.22 10.15/4.22 data MyInt = Pos Main.Nat | Neg Main.Nat ; 10.15/4.22 10.15/4.22 data Main.Nat = Succ Main.Nat | Zero ; 10.15/4.22 10.15/4.22 data Ordering = LT | EQ | GT ; 10.15/4.22 10.15/4.22 compareFloat :: Float -> Float -> Ordering; 10.15/4.22 compareFloat = primCmpFloat; 10.15/4.22 10.15/4.22 compareMyInt :: MyInt -> MyInt -> Ordering; 10.15/4.22 compareMyInt = primCmpInt; 10.15/4.22 10.15/4.22 primCmpFloat :: Float -> Float -> Ordering; 10.15/4.22 primCmpFloat (Float x1 x2) (Float y1 y2) = compareMyInt (srMyInt x1 y1) (srMyInt x2 y2); 10.15/4.22 10.15/4.22 primCmpInt :: MyInt -> MyInt -> Ordering; 10.15/4.22 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 10.15/4.22 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 10.15/4.22 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 10.15/4.22 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 10.15/4.22 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 10.15/4.22 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 10.15/4.22 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 10.15/4.22 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 10.15/4.22 10.15/4.22 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 10.15/4.22 primCmpNat Main.Zero Main.Zero = EQ; 10.15/4.22 primCmpNat Main.Zero (Main.Succ y) = LT; 10.15/4.22 primCmpNat (Main.Succ x) Main.Zero = GT; 10.15/4.22 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 10.15/4.22 10.15/4.22 primMulInt :: MyInt -> MyInt -> MyInt; 10.15/4.22 primMulInt (Main.Pos x) (Main.Pos y) = Main.Pos (primMulNat x y); 10.15/4.22 primMulInt (Main.Pos x) (Main.Neg y) = Main.Neg (primMulNat x y); 10.15/4.22 primMulInt (Main.Neg x) (Main.Pos y) = Main.Neg (primMulNat x y); 10.15/4.22 primMulInt (Main.Neg x) (Main.Neg y) = Main.Pos (primMulNat x y); 10.15/4.22 10.15/4.22 primMulNat :: Main.Nat -> Main.Nat -> Main.Nat; 10.15/4.22 primMulNat Main.Zero Main.Zero = Main.Zero; 10.15/4.22 primMulNat Main.Zero (Main.Succ y) = Main.Zero; 10.15/4.22 primMulNat (Main.Succ x) Main.Zero = Main.Zero; 10.15/4.22 primMulNat (Main.Succ x) (Main.Succ y) = primPlusNat (primMulNat x (Main.Succ y)) (Main.Succ y); 10.15/4.22 10.15/4.22 primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; 10.15/4.22 primPlusNat Main.Zero Main.Zero = Main.Zero; 10.15/4.22 primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; 10.15/4.22 primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; 10.15/4.22 primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); 10.15/4.22 10.15/4.22 srMyInt :: MyInt -> MyInt -> MyInt; 10.15/4.22 srMyInt = primMulInt; 10.15/4.22 10.15/4.22 } 10.15/4.22 10.15/4.22 ---------------------------------------- 10.15/4.22 10.15/4.22 (5) Narrow (SOUND) 10.15/4.22 Haskell To QDPs 10.15/4.22 10.15/4.22 digraph dp_graph { 10.15/4.22 node [outthreshold=100, inthreshold=100];1[label="compareFloat",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 10.15/4.22 3[label="compareFloat vx3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 10.15/4.22 4[label="compareFloat vx3 vx4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 10.15/4.22 5[label="primCmpFloat vx3 vx4",fontsize=16,color="burlywood",shape="box"];505[label="vx3/Float vx30 vx31",fontsize=10,color="white",style="solid",shape="box"];5 -> 505[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 505 -> 6[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 6[label="primCmpFloat (Float vx30 vx31) vx4",fontsize=16,color="burlywood",shape="box"];506[label="vx4/Float vx40 vx41",fontsize=10,color="white",style="solid",shape="box"];6 -> 506[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 506 -> 7[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 7[label="primCmpFloat (Float vx30 vx31) (Float vx40 vx41)",fontsize=16,color="black",shape="box"];7 -> 8[label="",style="solid", color="black", weight=3]; 10.15/4.22 8[label="compareMyInt (srMyInt vx30 vx40) (srMyInt vx31 vx41)",fontsize=16,color="black",shape="box"];8 -> 9[label="",style="solid", color="black", weight=3]; 10.15/4.22 9[label="primCmpInt (srMyInt vx30 vx40) (srMyInt vx31 vx41)",fontsize=16,color="black",shape="box"];9 -> 10[label="",style="solid", color="black", weight=3]; 10.15/4.22 10[label="primCmpInt (primMulInt vx30 vx40) (srMyInt vx31 vx41)",fontsize=16,color="burlywood",shape="box"];507[label="vx30/Pos vx300",fontsize=10,color="white",style="solid",shape="box"];10 -> 507[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 507 -> 11[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 508[label="vx30/Neg vx300",fontsize=10,color="white",style="solid",shape="box"];10 -> 508[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 508 -> 12[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 11[label="primCmpInt (primMulInt (Pos vx300) vx40) (srMyInt vx31 vx41)",fontsize=16,color="burlywood",shape="box"];509[label="vx40/Pos vx400",fontsize=10,color="white",style="solid",shape="box"];11 -> 509[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 509 -> 13[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 510[label="vx40/Neg vx400",fontsize=10,color="white",style="solid",shape="box"];11 -> 510[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 510 -> 14[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 12[label="primCmpInt (primMulInt (Neg vx300) vx40) (srMyInt vx31 vx41)",fontsize=16,color="burlywood",shape="box"];511[label="vx40/Pos vx400",fontsize=10,color="white",style="solid",shape="box"];12 -> 511[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 511 -> 15[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 512[label="vx40/Neg vx400",fontsize=10,color="white",style="solid",shape="box"];12 -> 512[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 512 -> 16[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 13[label="primCmpInt (primMulInt (Pos vx300) (Pos vx400)) (srMyInt vx31 vx41)",fontsize=16,color="black",shape="box"];13 -> 17[label="",style="solid", color="black", weight=3]; 10.15/4.22 14[label="primCmpInt (primMulInt (Pos vx300) (Neg vx400)) (srMyInt vx31 vx41)",fontsize=16,color="black",shape="box"];14 -> 18[label="",style="solid", color="black", weight=3]; 10.15/4.22 15[label="primCmpInt (primMulInt (Neg vx300) (Pos vx400)) (srMyInt vx31 vx41)",fontsize=16,color="black",shape="box"];15 -> 19[label="",style="solid", color="black", weight=3]; 10.15/4.22 16[label="primCmpInt (primMulInt (Neg vx300) (Neg vx400)) (srMyInt vx31 vx41)",fontsize=16,color="black",shape="box"];16 -> 20[label="",style="solid", color="black", weight=3]; 10.15/4.22 17 -> 264[label="",style="dashed", color="red", weight=0]; 10.15/4.22 17[label="primCmpInt (Pos (primMulNat vx300 vx400)) (srMyInt vx31 vx41)",fontsize=16,color="magenta"];17 -> 265[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 18 -> 340[label="",style="dashed", color="red", weight=0]; 10.15/4.22 18[label="primCmpInt (Neg (primMulNat vx300 vx400)) (srMyInt vx31 vx41)",fontsize=16,color="magenta"];18 -> 341[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 19 -> 340[label="",style="dashed", color="red", weight=0]; 10.15/4.22 19[label="primCmpInt (Neg (primMulNat vx300 vx400)) (srMyInt vx31 vx41)",fontsize=16,color="magenta"];19 -> 342[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 20 -> 264[label="",style="dashed", color="red", weight=0]; 10.15/4.22 20[label="primCmpInt (Pos (primMulNat vx300 vx400)) (srMyInt vx31 vx41)",fontsize=16,color="magenta"];20 -> 266[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 265[label="primMulNat vx300 vx400",fontsize=16,color="burlywood",shape="triangle"];513[label="vx300/Succ vx3000",fontsize=10,color="white",style="solid",shape="box"];265 -> 513[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 513 -> 277[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 514[label="vx300/Zero",fontsize=10,color="white",style="solid",shape="box"];265 -> 514[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 514 -> 278[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 264[label="primCmpInt (Pos vx10) (srMyInt vx31 vx41)",fontsize=16,color="burlywood",shape="triangle"];515[label="vx10/Succ vx100",fontsize=10,color="white",style="solid",shape="box"];264 -> 515[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 515 -> 279[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 516[label="vx10/Zero",fontsize=10,color="white",style="solid",shape="box"];264 -> 516[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 516 -> 280[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 341 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.22 341[label="primMulNat vx300 vx400",fontsize=16,color="magenta"];341 -> 353[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 340[label="primCmpInt (Neg vx15) (srMyInt vx31 vx41)",fontsize=16,color="burlywood",shape="triangle"];517[label="vx15/Succ vx150",fontsize=10,color="white",style="solid",shape="box"];340 -> 517[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 517 -> 354[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 518[label="vx15/Zero",fontsize=10,color="white",style="solid",shape="box"];340 -> 518[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 518 -> 355[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 342 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.22 342[label="primMulNat vx300 vx400",fontsize=16,color="magenta"];342 -> 356[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 266 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.22 266[label="primMulNat vx300 vx400",fontsize=16,color="magenta"];266 -> 281[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 266 -> 282[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 277[label="primMulNat (Succ vx3000) vx400",fontsize=16,color="burlywood",shape="box"];519[label="vx400/Succ vx4000",fontsize=10,color="white",style="solid",shape="box"];277 -> 519[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 519 -> 297[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 520[label="vx400/Zero",fontsize=10,color="white",style="solid",shape="box"];277 -> 520[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 520 -> 298[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 278[label="primMulNat Zero vx400",fontsize=16,color="burlywood",shape="box"];521[label="vx400/Succ vx4000",fontsize=10,color="white",style="solid",shape="box"];278 -> 521[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 521 -> 299[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 522[label="vx400/Zero",fontsize=10,color="white",style="solid",shape="box"];278 -> 522[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 522 -> 300[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 279[label="primCmpInt (Pos (Succ vx100)) (srMyInt vx31 vx41)",fontsize=16,color="black",shape="box"];279 -> 301[label="",style="solid", color="black", weight=3]; 10.15/4.22 280[label="primCmpInt (Pos Zero) (srMyInt vx31 vx41)",fontsize=16,color="black",shape="box"];280 -> 302[label="",style="solid", color="black", weight=3]; 10.15/4.22 353[label="vx400",fontsize=16,color="green",shape="box"];354[label="primCmpInt (Neg (Succ vx150)) (srMyInt vx31 vx41)",fontsize=16,color="black",shape="box"];354 -> 367[label="",style="solid", color="black", weight=3]; 10.15/4.22 355[label="primCmpInt (Neg Zero) (srMyInt vx31 vx41)",fontsize=16,color="black",shape="box"];355 -> 368[label="",style="solid", color="black", weight=3]; 10.15/4.22 356[label="vx300",fontsize=16,color="green",shape="box"];281[label="vx400",fontsize=16,color="green",shape="box"];282[label="vx300",fontsize=16,color="green",shape="box"];297[label="primMulNat (Succ vx3000) (Succ vx4000)",fontsize=16,color="black",shape="box"];297 -> 313[label="",style="solid", color="black", weight=3]; 10.15/4.22 298[label="primMulNat (Succ vx3000) Zero",fontsize=16,color="black",shape="box"];298 -> 314[label="",style="solid", color="black", weight=3]; 10.15/4.22 299[label="primMulNat Zero (Succ vx4000)",fontsize=16,color="black",shape="box"];299 -> 315[label="",style="solid", color="black", weight=3]; 10.15/4.22 300[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];300 -> 316[label="",style="solid", color="black", weight=3]; 10.15/4.22 301[label="primCmpInt (Pos (Succ vx100)) (primMulInt vx31 vx41)",fontsize=16,color="burlywood",shape="box"];523[label="vx31/Pos vx310",fontsize=10,color="white",style="solid",shape="box"];301 -> 523[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 523 -> 317[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 524[label="vx31/Neg vx310",fontsize=10,color="white",style="solid",shape="box"];301 -> 524[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 524 -> 318[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 302[label="primCmpInt (Pos Zero) (primMulInt vx31 vx41)",fontsize=16,color="burlywood",shape="box"];525[label="vx31/Pos vx310",fontsize=10,color="white",style="solid",shape="box"];302 -> 525[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 525 -> 319[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 526[label="vx31/Neg vx310",fontsize=10,color="white",style="solid",shape="box"];302 -> 526[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 526 -> 320[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 367[label="primCmpInt (Neg (Succ vx150)) (primMulInt vx31 vx41)",fontsize=16,color="burlywood",shape="box"];527[label="vx31/Pos vx310",fontsize=10,color="white",style="solid",shape="box"];367 -> 527[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 527 -> 372[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 528[label="vx31/Neg vx310",fontsize=10,color="white",style="solid",shape="box"];367 -> 528[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 528 -> 373[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 368[label="primCmpInt (Neg Zero) (primMulInt vx31 vx41)",fontsize=16,color="burlywood",shape="box"];529[label="vx31/Pos vx310",fontsize=10,color="white",style="solid",shape="box"];368 -> 529[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 529 -> 374[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 530[label="vx31/Neg vx310",fontsize=10,color="white",style="solid",shape="box"];368 -> 530[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 530 -> 375[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 313 -> 326[label="",style="dashed", color="red", weight=0]; 10.15/4.22 313[label="primPlusNat (primMulNat vx3000 (Succ vx4000)) (Succ vx4000)",fontsize=16,color="magenta"];313 -> 327[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 314[label="Zero",fontsize=16,color="green",shape="box"];315[label="Zero",fontsize=16,color="green",shape="box"];316[label="Zero",fontsize=16,color="green",shape="box"];317[label="primCmpInt (Pos (Succ vx100)) (primMulInt (Pos vx310) vx41)",fontsize=16,color="burlywood",shape="box"];531[label="vx41/Pos vx410",fontsize=10,color="white",style="solid",shape="box"];317 -> 531[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 531 -> 328[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 532[label="vx41/Neg vx410",fontsize=10,color="white",style="solid",shape="box"];317 -> 532[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 532 -> 329[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 318[label="primCmpInt (Pos (Succ vx100)) (primMulInt (Neg vx310) vx41)",fontsize=16,color="burlywood",shape="box"];533[label="vx41/Pos vx410",fontsize=10,color="white",style="solid",shape="box"];318 -> 533[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 533 -> 330[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 534[label="vx41/Neg vx410",fontsize=10,color="white",style="solid",shape="box"];318 -> 534[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 534 -> 331[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 319[label="primCmpInt (Pos Zero) (primMulInt (Pos vx310) vx41)",fontsize=16,color="burlywood",shape="box"];535[label="vx41/Pos vx410",fontsize=10,color="white",style="solid",shape="box"];319 -> 535[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 535 -> 332[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 536[label="vx41/Neg vx410",fontsize=10,color="white",style="solid",shape="box"];319 -> 536[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 536 -> 333[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 320[label="primCmpInt (Pos Zero) (primMulInt (Neg vx310) vx41)",fontsize=16,color="burlywood",shape="box"];537[label="vx41/Pos vx410",fontsize=10,color="white",style="solid",shape="box"];320 -> 537[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 537 -> 334[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 538[label="vx41/Neg vx410",fontsize=10,color="white",style="solid",shape="box"];320 -> 538[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 538 -> 335[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 372[label="primCmpInt (Neg (Succ vx150)) (primMulInt (Pos vx310) vx41)",fontsize=16,color="burlywood",shape="box"];539[label="vx41/Pos vx410",fontsize=10,color="white",style="solid",shape="box"];372 -> 539[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 539 -> 379[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 540[label="vx41/Neg vx410",fontsize=10,color="white",style="solid",shape="box"];372 -> 540[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 540 -> 380[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 373[label="primCmpInt (Neg (Succ vx150)) (primMulInt (Neg vx310) vx41)",fontsize=16,color="burlywood",shape="box"];541[label="vx41/Pos vx410",fontsize=10,color="white",style="solid",shape="box"];373 -> 541[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 541 -> 381[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 542[label="vx41/Neg vx410",fontsize=10,color="white",style="solid",shape="box"];373 -> 542[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 542 -> 382[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 374[label="primCmpInt (Neg Zero) (primMulInt (Pos vx310) vx41)",fontsize=16,color="burlywood",shape="box"];543[label="vx41/Pos vx410",fontsize=10,color="white",style="solid",shape="box"];374 -> 543[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 543 -> 383[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 544[label="vx41/Neg vx410",fontsize=10,color="white",style="solid",shape="box"];374 -> 544[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 544 -> 384[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 375[label="primCmpInt (Neg Zero) (primMulInt (Neg vx310) vx41)",fontsize=16,color="burlywood",shape="box"];545[label="vx41/Pos vx410",fontsize=10,color="white",style="solid",shape="box"];375 -> 545[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 545 -> 385[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 546[label="vx41/Neg vx410",fontsize=10,color="white",style="solid",shape="box"];375 -> 546[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 546 -> 386[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 327 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.22 327[label="primMulNat vx3000 (Succ vx4000)",fontsize=16,color="magenta"];327 -> 336[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 327 -> 337[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 326[label="primPlusNat vx14 (Succ vx4000)",fontsize=16,color="burlywood",shape="triangle"];547[label="vx14/Succ vx140",fontsize=10,color="white",style="solid",shape="box"];326 -> 547[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 547 -> 338[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 548[label="vx14/Zero",fontsize=10,color="white",style="solid",shape="box"];326 -> 548[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 548 -> 339[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 328[label="primCmpInt (Pos (Succ vx100)) (primMulInt (Pos vx310) (Pos vx410))",fontsize=16,color="black",shape="box"];328 -> 357[label="",style="solid", color="black", weight=3]; 10.15/4.22 329[label="primCmpInt (Pos (Succ vx100)) (primMulInt (Pos vx310) (Neg vx410))",fontsize=16,color="black",shape="box"];329 -> 358[label="",style="solid", color="black", weight=3]; 10.15/4.22 330[label="primCmpInt (Pos (Succ vx100)) (primMulInt (Neg vx310) (Pos vx410))",fontsize=16,color="black",shape="box"];330 -> 359[label="",style="solid", color="black", weight=3]; 10.15/4.22 331[label="primCmpInt (Pos (Succ vx100)) (primMulInt (Neg vx310) (Neg vx410))",fontsize=16,color="black",shape="box"];331 -> 360[label="",style="solid", color="black", weight=3]; 10.15/4.22 332[label="primCmpInt (Pos Zero) (primMulInt (Pos vx310) (Pos vx410))",fontsize=16,color="black",shape="box"];332 -> 361[label="",style="solid", color="black", weight=3]; 10.15/4.22 333[label="primCmpInt (Pos Zero) (primMulInt (Pos vx310) (Neg vx410))",fontsize=16,color="black",shape="box"];333 -> 362[label="",style="solid", color="black", weight=3]; 10.15/4.22 334[label="primCmpInt (Pos Zero) (primMulInt (Neg vx310) (Pos vx410))",fontsize=16,color="black",shape="box"];334 -> 363[label="",style="solid", color="black", weight=3]; 10.15/4.22 335[label="primCmpInt (Pos Zero) (primMulInt (Neg vx310) (Neg vx410))",fontsize=16,color="black",shape="box"];335 -> 364[label="",style="solid", color="black", weight=3]; 10.15/4.22 379[label="primCmpInt (Neg (Succ vx150)) (primMulInt (Pos vx310) (Pos vx410))",fontsize=16,color="black",shape="box"];379 -> 390[label="",style="solid", color="black", weight=3]; 10.15/4.22 380[label="primCmpInt (Neg (Succ vx150)) (primMulInt (Pos vx310) (Neg vx410))",fontsize=16,color="black",shape="box"];380 -> 391[label="",style="solid", color="black", weight=3]; 10.15/4.22 381[label="primCmpInt (Neg (Succ vx150)) (primMulInt (Neg vx310) (Pos vx410))",fontsize=16,color="black",shape="box"];381 -> 392[label="",style="solid", color="black", weight=3]; 10.15/4.22 382[label="primCmpInt (Neg (Succ vx150)) (primMulInt (Neg vx310) (Neg vx410))",fontsize=16,color="black",shape="box"];382 -> 393[label="",style="solid", color="black", weight=3]; 10.15/4.22 383[label="primCmpInt (Neg Zero) (primMulInt (Pos vx310) (Pos vx410))",fontsize=16,color="black",shape="box"];383 -> 394[label="",style="solid", color="black", weight=3]; 10.15/4.22 384[label="primCmpInt (Neg Zero) (primMulInt (Pos vx310) (Neg vx410))",fontsize=16,color="black",shape="box"];384 -> 395[label="",style="solid", color="black", weight=3]; 10.15/4.22 385[label="primCmpInt (Neg Zero) (primMulInt (Neg vx310) (Pos vx410))",fontsize=16,color="black",shape="box"];385 -> 396[label="",style="solid", color="black", weight=3]; 10.15/4.22 386[label="primCmpInt (Neg Zero) (primMulInt (Neg vx310) (Neg vx410))",fontsize=16,color="black",shape="box"];386 -> 397[label="",style="solid", color="black", weight=3]; 10.15/4.22 336[label="Succ vx4000",fontsize=16,color="green",shape="box"];337[label="vx3000",fontsize=16,color="green",shape="box"];338[label="primPlusNat (Succ vx140) (Succ vx4000)",fontsize=16,color="black",shape="box"];338 -> 365[label="",style="solid", color="black", weight=3]; 10.15/4.22 339[label="primPlusNat Zero (Succ vx4000)",fontsize=16,color="black",shape="box"];339 -> 366[label="",style="solid", color="black", weight=3]; 10.15/4.22 357 -> 369[label="",style="dashed", color="red", weight=0]; 10.15/4.22 357[label="primCmpInt (Pos (Succ vx100)) (Pos (primMulNat vx310 vx410))",fontsize=16,color="magenta"];357 -> 370[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 358 -> 376[label="",style="dashed", color="red", weight=0]; 10.15/4.22 358[label="primCmpInt (Pos (Succ vx100)) (Neg (primMulNat vx310 vx410))",fontsize=16,color="magenta"];358 -> 377[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 359 -> 376[label="",style="dashed", color="red", weight=0]; 10.15/4.22 359[label="primCmpInt (Pos (Succ vx100)) (Neg (primMulNat vx310 vx410))",fontsize=16,color="magenta"];359 -> 378[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 360 -> 369[label="",style="dashed", color="red", weight=0]; 10.15/4.22 360[label="primCmpInt (Pos (Succ vx100)) (Pos (primMulNat vx310 vx410))",fontsize=16,color="magenta"];360 -> 371[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 361 -> 387[label="",style="dashed", color="red", weight=0]; 10.15/4.22 361[label="primCmpInt (Pos Zero) (Pos (primMulNat vx310 vx410))",fontsize=16,color="magenta"];361 -> 388[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 362 -> 398[label="",style="dashed", color="red", weight=0]; 10.15/4.22 362[label="primCmpInt (Pos Zero) (Neg (primMulNat vx310 vx410))",fontsize=16,color="magenta"];362 -> 399[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 363 -> 398[label="",style="dashed", color="red", weight=0]; 10.15/4.22 363[label="primCmpInt (Pos Zero) (Neg (primMulNat vx310 vx410))",fontsize=16,color="magenta"];363 -> 400[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 364 -> 387[label="",style="dashed", color="red", weight=0]; 10.15/4.22 364[label="primCmpInt (Pos Zero) (Pos (primMulNat vx310 vx410))",fontsize=16,color="magenta"];364 -> 389[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 390 -> 401[label="",style="dashed", color="red", weight=0]; 10.15/4.22 390[label="primCmpInt (Neg (Succ vx150)) (Pos (primMulNat vx310 vx410))",fontsize=16,color="magenta"];390 -> 402[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 391 -> 404[label="",style="dashed", color="red", weight=0]; 10.15/4.22 391[label="primCmpInt (Neg (Succ vx150)) (Neg (primMulNat vx310 vx410))",fontsize=16,color="magenta"];391 -> 405[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 392 -> 404[label="",style="dashed", color="red", weight=0]; 10.15/4.22 392[label="primCmpInt (Neg (Succ vx150)) (Neg (primMulNat vx310 vx410))",fontsize=16,color="magenta"];392 -> 406[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 393 -> 401[label="",style="dashed", color="red", weight=0]; 10.15/4.22 393[label="primCmpInt (Neg (Succ vx150)) (Pos (primMulNat vx310 vx410))",fontsize=16,color="magenta"];393 -> 403[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 394 -> 407[label="",style="dashed", color="red", weight=0]; 10.15/4.22 394[label="primCmpInt (Neg Zero) (Pos (primMulNat vx310 vx410))",fontsize=16,color="magenta"];394 -> 408[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 395 -> 410[label="",style="dashed", color="red", weight=0]; 10.15/4.22 395[label="primCmpInt (Neg Zero) (Neg (primMulNat vx310 vx410))",fontsize=16,color="magenta"];395 -> 411[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 396 -> 410[label="",style="dashed", color="red", weight=0]; 10.15/4.22 396[label="primCmpInt (Neg Zero) (Neg (primMulNat vx310 vx410))",fontsize=16,color="magenta"];396 -> 412[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 397 -> 407[label="",style="dashed", color="red", weight=0]; 10.15/4.22 397[label="primCmpInt (Neg Zero) (Pos (primMulNat vx310 vx410))",fontsize=16,color="magenta"];397 -> 409[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 365[label="Succ (Succ (primPlusNat vx140 vx4000))",fontsize=16,color="green",shape="box"];365 -> 413[label="",style="dashed", color="green", weight=3]; 10.15/4.22 366[label="Succ vx4000",fontsize=16,color="green",shape="box"];370 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.22 370[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];370 -> 414[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 370 -> 415[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 369[label="primCmpInt (Pos (Succ vx100)) (Pos vx16)",fontsize=16,color="black",shape="triangle"];369 -> 416[label="",style="solid", color="black", weight=3]; 10.15/4.22 377 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.22 377[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];377 -> 417[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 377 -> 418[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 376[label="primCmpInt (Pos (Succ vx100)) (Neg vx17)",fontsize=16,color="black",shape="triangle"];376 -> 419[label="",style="solid", color="black", weight=3]; 10.15/4.22 378 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.22 378[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];378 -> 420[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 378 -> 421[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 371 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.22 371[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];371 -> 422[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 371 -> 423[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 388 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.22 388[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];388 -> 424[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 388 -> 425[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 387[label="primCmpInt (Pos Zero) (Pos vx18)",fontsize=16,color="burlywood",shape="triangle"];549[label="vx18/Succ vx180",fontsize=10,color="white",style="solid",shape="box"];387 -> 549[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 549 -> 426[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 550[label="vx18/Zero",fontsize=10,color="white",style="solid",shape="box"];387 -> 550[label="",style="solid", color="burlywood", weight=9]; 10.15/4.22 550 -> 427[label="",style="solid", color="burlywood", weight=3]; 10.15/4.22 399 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.22 399[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];399 -> 428[label="",style="dashed", color="magenta", weight=3]; 10.15/4.22 399 -> 429[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 398[label="primCmpInt (Pos Zero) (Neg vx19)",fontsize=16,color="burlywood",shape="triangle"];551[label="vx19/Succ vx190",fontsize=10,color="white",style="solid",shape="box"];398 -> 551[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 551 -> 430[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 552[label="vx19/Zero",fontsize=10,color="white",style="solid",shape="box"];398 -> 552[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 552 -> 431[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 400 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.23 400[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];400 -> 432[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 400 -> 433[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 389 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.23 389[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];389 -> 434[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 389 -> 435[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 402 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.23 402[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];402 -> 436[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 402 -> 437[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 401[label="primCmpInt (Neg (Succ vx150)) (Pos vx20)",fontsize=16,color="black",shape="triangle"];401 -> 438[label="",style="solid", color="black", weight=3]; 10.15/4.23 405 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.23 405[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];405 -> 439[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 405 -> 440[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 404[label="primCmpInt (Neg (Succ vx150)) (Neg vx21)",fontsize=16,color="black",shape="triangle"];404 -> 441[label="",style="solid", color="black", weight=3]; 10.15/4.23 406 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.23 406[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];406 -> 442[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 406 -> 443[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 403 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.23 403[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];403 -> 444[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 403 -> 445[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 408 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.23 408[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];408 -> 446[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 408 -> 447[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 407[label="primCmpInt (Neg Zero) (Pos vx22)",fontsize=16,color="burlywood",shape="triangle"];553[label="vx22/Succ vx220",fontsize=10,color="white",style="solid",shape="box"];407 -> 553[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 553 -> 448[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 554[label="vx22/Zero",fontsize=10,color="white",style="solid",shape="box"];407 -> 554[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 554 -> 449[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 411 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.23 411[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];411 -> 450[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 411 -> 451[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 410[label="primCmpInt (Neg Zero) (Neg vx23)",fontsize=16,color="burlywood",shape="triangle"];555[label="vx23/Succ vx230",fontsize=10,color="white",style="solid",shape="box"];410 -> 555[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 555 -> 452[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 556[label="vx23/Zero",fontsize=10,color="white",style="solid",shape="box"];410 -> 556[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 556 -> 453[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 412 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.23 412[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];412 -> 454[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 412 -> 455[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 409 -> 265[label="",style="dashed", color="red", weight=0]; 10.15/4.23 409[label="primMulNat vx310 vx410",fontsize=16,color="magenta"];409 -> 456[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 409 -> 457[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 413[label="primPlusNat vx140 vx4000",fontsize=16,color="burlywood",shape="triangle"];557[label="vx140/Succ vx1400",fontsize=10,color="white",style="solid",shape="box"];413 -> 557[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 557 -> 458[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 558[label="vx140/Zero",fontsize=10,color="white",style="solid",shape="box"];413 -> 558[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 558 -> 459[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 414[label="vx410",fontsize=16,color="green",shape="box"];415[label="vx310",fontsize=16,color="green",shape="box"];416[label="primCmpNat (Succ vx100) vx16",fontsize=16,color="burlywood",shape="triangle"];559[label="vx16/Succ vx160",fontsize=10,color="white",style="solid",shape="box"];416 -> 559[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 559 -> 460[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 560[label="vx16/Zero",fontsize=10,color="white",style="solid",shape="box"];416 -> 560[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 560 -> 461[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 417[label="vx410",fontsize=16,color="green",shape="box"];418[label="vx310",fontsize=16,color="green",shape="box"];419[label="GT",fontsize=16,color="green",shape="box"];420[label="vx410",fontsize=16,color="green",shape="box"];421[label="vx310",fontsize=16,color="green",shape="box"];422[label="vx410",fontsize=16,color="green",shape="box"];423[label="vx310",fontsize=16,color="green",shape="box"];424[label="vx410",fontsize=16,color="green",shape="box"];425[label="vx310",fontsize=16,color="green",shape="box"];426[label="primCmpInt (Pos Zero) (Pos (Succ vx180))",fontsize=16,color="black",shape="box"];426 -> 462[label="",style="solid", color="black", weight=3]; 10.15/4.23 427[label="primCmpInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];427 -> 463[label="",style="solid", color="black", weight=3]; 10.15/4.23 428[label="vx410",fontsize=16,color="green",shape="box"];429[label="vx310",fontsize=16,color="green",shape="box"];430[label="primCmpInt (Pos Zero) (Neg (Succ vx190))",fontsize=16,color="black",shape="box"];430 -> 464[label="",style="solid", color="black", weight=3]; 10.15/4.23 431[label="primCmpInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];431 -> 465[label="",style="solid", color="black", weight=3]; 10.15/4.23 432[label="vx410",fontsize=16,color="green",shape="box"];433[label="vx310",fontsize=16,color="green",shape="box"];434[label="vx410",fontsize=16,color="green",shape="box"];435[label="vx310",fontsize=16,color="green",shape="box"];436[label="vx410",fontsize=16,color="green",shape="box"];437[label="vx310",fontsize=16,color="green",shape="box"];438[label="LT",fontsize=16,color="green",shape="box"];439[label="vx410",fontsize=16,color="green",shape="box"];440[label="vx310",fontsize=16,color="green",shape="box"];441[label="primCmpNat vx21 (Succ vx150)",fontsize=16,color="burlywood",shape="triangle"];561[label="vx21/Succ vx210",fontsize=10,color="white",style="solid",shape="box"];441 -> 561[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 561 -> 466[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 562[label="vx21/Zero",fontsize=10,color="white",style="solid",shape="box"];441 -> 562[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 562 -> 467[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 442[label="vx410",fontsize=16,color="green",shape="box"];443[label="vx310",fontsize=16,color="green",shape="box"];444[label="vx410",fontsize=16,color="green",shape="box"];445[label="vx310",fontsize=16,color="green",shape="box"];446[label="vx410",fontsize=16,color="green",shape="box"];447[label="vx310",fontsize=16,color="green",shape="box"];448[label="primCmpInt (Neg Zero) (Pos (Succ vx220))",fontsize=16,color="black",shape="box"];448 -> 468[label="",style="solid", color="black", weight=3]; 10.15/4.23 449[label="primCmpInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];449 -> 469[label="",style="solid", color="black", weight=3]; 10.15/4.23 450[label="vx410",fontsize=16,color="green",shape="box"];451[label="vx310",fontsize=16,color="green",shape="box"];452[label="primCmpInt (Neg Zero) (Neg (Succ vx230))",fontsize=16,color="black",shape="box"];452 -> 470[label="",style="solid", color="black", weight=3]; 10.15/4.23 453[label="primCmpInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];453 -> 471[label="",style="solid", color="black", weight=3]; 10.15/4.23 454[label="vx410",fontsize=16,color="green",shape="box"];455[label="vx310",fontsize=16,color="green",shape="box"];456[label="vx410",fontsize=16,color="green",shape="box"];457[label="vx310",fontsize=16,color="green",shape="box"];458[label="primPlusNat (Succ vx1400) vx4000",fontsize=16,color="burlywood",shape="box"];563[label="vx4000/Succ vx40000",fontsize=10,color="white",style="solid",shape="box"];458 -> 563[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 563 -> 472[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 564[label="vx4000/Zero",fontsize=10,color="white",style="solid",shape="box"];458 -> 564[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 564 -> 473[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 459[label="primPlusNat Zero vx4000",fontsize=16,color="burlywood",shape="box"];565[label="vx4000/Succ vx40000",fontsize=10,color="white",style="solid",shape="box"];459 -> 565[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 565 -> 474[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 566[label="vx4000/Zero",fontsize=10,color="white",style="solid",shape="box"];459 -> 566[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 566 -> 475[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 460[label="primCmpNat (Succ vx100) (Succ vx160)",fontsize=16,color="black",shape="box"];460 -> 476[label="",style="solid", color="black", weight=3]; 10.15/4.23 461[label="primCmpNat (Succ vx100) Zero",fontsize=16,color="black",shape="box"];461 -> 477[label="",style="solid", color="black", weight=3]; 10.15/4.23 462 -> 441[label="",style="dashed", color="red", weight=0]; 10.15/4.23 462[label="primCmpNat Zero (Succ vx180)",fontsize=16,color="magenta"];462 -> 478[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 462 -> 479[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 463[label="EQ",fontsize=16,color="green",shape="box"];464[label="GT",fontsize=16,color="green",shape="box"];465[label="EQ",fontsize=16,color="green",shape="box"];466[label="primCmpNat (Succ vx210) (Succ vx150)",fontsize=16,color="black",shape="box"];466 -> 480[label="",style="solid", color="black", weight=3]; 10.15/4.23 467[label="primCmpNat Zero (Succ vx150)",fontsize=16,color="black",shape="box"];467 -> 481[label="",style="solid", color="black", weight=3]; 10.15/4.23 468[label="LT",fontsize=16,color="green",shape="box"];469[label="EQ",fontsize=16,color="green",shape="box"];470 -> 416[label="",style="dashed", color="red", weight=0]; 10.15/4.23 470[label="primCmpNat (Succ vx230) Zero",fontsize=16,color="magenta"];470 -> 482[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 470 -> 483[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 471[label="EQ",fontsize=16,color="green",shape="box"];472[label="primPlusNat (Succ vx1400) (Succ vx40000)",fontsize=16,color="black",shape="box"];472 -> 484[label="",style="solid", color="black", weight=3]; 10.15/4.23 473[label="primPlusNat (Succ vx1400) Zero",fontsize=16,color="black",shape="box"];473 -> 485[label="",style="solid", color="black", weight=3]; 10.15/4.23 474[label="primPlusNat Zero (Succ vx40000)",fontsize=16,color="black",shape="box"];474 -> 486[label="",style="solid", color="black", weight=3]; 10.15/4.23 475[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];475 -> 487[label="",style="solid", color="black", weight=3]; 10.15/4.23 476[label="primCmpNat vx100 vx160",fontsize=16,color="burlywood",shape="triangle"];567[label="vx100/Succ vx1000",fontsize=10,color="white",style="solid",shape="box"];476 -> 567[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 567 -> 488[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 568[label="vx100/Zero",fontsize=10,color="white",style="solid",shape="box"];476 -> 568[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 568 -> 489[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 477[label="GT",fontsize=16,color="green",shape="box"];478[label="Zero",fontsize=16,color="green",shape="box"];479[label="vx180",fontsize=16,color="green",shape="box"];480 -> 476[label="",style="dashed", color="red", weight=0]; 10.15/4.23 480[label="primCmpNat vx210 vx150",fontsize=16,color="magenta"];480 -> 490[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 480 -> 491[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 481[label="LT",fontsize=16,color="green",shape="box"];482[label="vx230",fontsize=16,color="green",shape="box"];483[label="Zero",fontsize=16,color="green",shape="box"];484[label="Succ (Succ (primPlusNat vx1400 vx40000))",fontsize=16,color="green",shape="box"];484 -> 492[label="",style="dashed", color="green", weight=3]; 10.15/4.23 485[label="Succ vx1400",fontsize=16,color="green",shape="box"];486[label="Succ vx40000",fontsize=16,color="green",shape="box"];487[label="Zero",fontsize=16,color="green",shape="box"];488[label="primCmpNat (Succ vx1000) vx160",fontsize=16,color="burlywood",shape="box"];569[label="vx160/Succ vx1600",fontsize=10,color="white",style="solid",shape="box"];488 -> 569[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 569 -> 493[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 570[label="vx160/Zero",fontsize=10,color="white",style="solid",shape="box"];488 -> 570[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 570 -> 494[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 489[label="primCmpNat Zero vx160",fontsize=16,color="burlywood",shape="box"];571[label="vx160/Succ vx1600",fontsize=10,color="white",style="solid",shape="box"];489 -> 571[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 571 -> 495[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 572[label="vx160/Zero",fontsize=10,color="white",style="solid",shape="box"];489 -> 572[label="",style="solid", color="burlywood", weight=9]; 10.15/4.23 572 -> 496[label="",style="solid", color="burlywood", weight=3]; 10.15/4.23 490[label="vx150",fontsize=16,color="green",shape="box"];491[label="vx210",fontsize=16,color="green",shape="box"];492 -> 413[label="",style="dashed", color="red", weight=0]; 10.15/4.23 492[label="primPlusNat vx1400 vx40000",fontsize=16,color="magenta"];492 -> 497[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 492 -> 498[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 493[label="primCmpNat (Succ vx1000) (Succ vx1600)",fontsize=16,color="black",shape="box"];493 -> 499[label="",style="solid", color="black", weight=3]; 10.15/4.23 494[label="primCmpNat (Succ vx1000) Zero",fontsize=16,color="black",shape="box"];494 -> 500[label="",style="solid", color="black", weight=3]; 10.15/4.23 495[label="primCmpNat Zero (Succ vx1600)",fontsize=16,color="black",shape="box"];495 -> 501[label="",style="solid", color="black", weight=3]; 10.15/4.23 496[label="primCmpNat Zero Zero",fontsize=16,color="black",shape="box"];496 -> 502[label="",style="solid", color="black", weight=3]; 10.15/4.23 497[label="vx40000",fontsize=16,color="green",shape="box"];498[label="vx1400",fontsize=16,color="green",shape="box"];499 -> 476[label="",style="dashed", color="red", weight=0]; 10.15/4.23 499[label="primCmpNat vx1000 vx1600",fontsize=16,color="magenta"];499 -> 503[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 499 -> 504[label="",style="dashed", color="magenta", weight=3]; 10.15/4.23 500[label="GT",fontsize=16,color="green",shape="box"];501[label="LT",fontsize=16,color="green",shape="box"];502[label="EQ",fontsize=16,color="green",shape="box"];503[label="vx1600",fontsize=16,color="green",shape="box"];504[label="vx1000",fontsize=16,color="green",shape="box"];} 10.15/4.23 10.15/4.23 ---------------------------------------- 10.15/4.23 10.15/4.23 (6) 10.15/4.23 Complex Obligation (AND) 10.15/4.23 10.15/4.23 ---------------------------------------- 10.15/4.23 10.15/4.23 (7) 10.15/4.23 Obligation: 10.15/4.23 Q DP problem: 10.15/4.23 The TRS P consists of the following rules: 10.15/4.23 10.15/4.23 new_primCmpNat(Main.Succ(vx1000), Main.Succ(vx1600)) -> new_primCmpNat(vx1000, vx1600) 10.15/4.23 10.15/4.23 R is empty. 10.15/4.23 Q is empty. 10.15/4.23 We have to consider all minimal (P,Q,R)-chains. 10.15/4.23 ---------------------------------------- 10.15/4.23 10.15/4.23 (8) QDPSizeChangeProof (EQUIVALENT) 10.15/4.23 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. 10.15/4.23 10.15/4.23 From the DPs we obtained the following set of size-change graphs: 10.15/4.23 *new_primCmpNat(Main.Succ(vx1000), Main.Succ(vx1600)) -> new_primCmpNat(vx1000, vx1600) 10.15/4.23 The graph contains the following edges 1 > 1, 2 > 2 10.15/4.23 10.15/4.23 10.15/4.23 ---------------------------------------- 10.15/4.23 10.15/4.23 (9) 10.15/4.23 YES 10.15/4.23 10.15/4.23 ---------------------------------------- 10.15/4.23 10.15/4.23 (10) 10.15/4.23 Obligation: 10.15/4.23 Q DP problem: 10.15/4.23 The TRS P consists of the following rules: 10.15/4.23 10.15/4.23 new_primMulNat(Main.Succ(vx3000), Main.Succ(vx4000)) -> new_primMulNat(vx3000, Main.Succ(vx4000)) 10.15/4.23 10.15/4.23 R is empty. 10.15/4.23 Q is empty. 10.15/4.23 We have to consider all minimal (P,Q,R)-chains. 10.15/4.23 ---------------------------------------- 10.15/4.23 10.15/4.23 (11) QDPSizeChangeProof (EQUIVALENT) 10.15/4.23 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. 10.15/4.23 10.15/4.23 From the DPs we obtained the following set of size-change graphs: 10.15/4.23 *new_primMulNat(Main.Succ(vx3000), Main.Succ(vx4000)) -> new_primMulNat(vx3000, Main.Succ(vx4000)) 10.15/4.23 The graph contains the following edges 1 > 1, 2 >= 2 10.15/4.23 10.15/4.23 10.15/4.23 ---------------------------------------- 10.15/4.23 10.15/4.23 (12) 10.15/4.23 YES 10.15/4.23 10.15/4.23 ---------------------------------------- 10.15/4.23 10.15/4.23 (13) 10.15/4.23 Obligation: 10.15/4.23 Q DP problem: 10.15/4.23 The TRS P consists of the following rules: 10.15/4.23 10.15/4.23 new_primPlusNat(Main.Succ(vx1400), Main.Succ(vx40000)) -> new_primPlusNat(vx1400, vx40000) 10.15/4.23 10.15/4.23 R is empty. 10.15/4.23 Q is empty. 10.15/4.23 We have to consider all minimal (P,Q,R)-chains. 10.15/4.23 ---------------------------------------- 10.15/4.23 10.15/4.23 (14) QDPSizeChangeProof (EQUIVALENT) 10.15/4.23 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. 10.15/4.23 10.15/4.23 From the DPs we obtained the following set of size-change graphs: 10.15/4.23 *new_primPlusNat(Main.Succ(vx1400), Main.Succ(vx40000)) -> new_primPlusNat(vx1400, vx40000) 10.15/4.23 The graph contains the following edges 1 > 1, 2 > 2 10.15/4.23 10.15/4.23 10.15/4.23 ---------------------------------------- 10.15/4.23 10.15/4.23 (15) 10.15/4.23 YES 10.15/4.27 EOF