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