/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 List a = Cons a (List a) | Nil ; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; data Ordering = LT | EQ | GT ; 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; foldl :: (b -> a -> b) -> b -> List a -> b; foldl f z Nil = z; foldl f z (Cons x xs) = foldl f (f z x) xs; foldl1 :: (a -> a -> a) -> List a -> a; foldl1 f (Cons x xs) = foldl f x xs; fsEsOrdering :: Ordering -> Ordering -> MyBool; fsEsOrdering x y = not (esEsOrdering x y); ltEsMyInt :: MyInt -> MyInt -> MyBool; ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; min0 x y MyTrue = y; min1 x y MyTrue = x; min1 x y MyFalse = min0 x y otherwise; min2 x y = min1 x y (ltEsMyInt x y); minMyInt :: MyInt -> MyInt -> MyInt; minMyInt x y = min2 x y; minimumMyInt :: List MyInt -> MyInt; minimumMyInt = foldl1 minMyInt; not :: MyBool -> MyBool; not MyTrue = MyFalse; not MyFalse = MyTrue; otherwise :: MyBool; otherwise = MyTrue; 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; } ---------------------------------------- (1) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; data List a = Cons a (List a) | Nil ; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; data Ordering = LT | EQ | GT ; 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; foldl :: (b -> a -> b) -> b -> List a -> b; foldl f z Nil = z; foldl f z (Cons x xs) = foldl f (f z x) xs; foldl1 :: (a -> a -> a) -> List a -> a; foldl1 f (Cons x xs) = foldl f x xs; fsEsOrdering :: Ordering -> Ordering -> MyBool; fsEsOrdering x y = not (esEsOrdering x y); ltEsMyInt :: MyInt -> MyInt -> MyBool; ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; min0 x y MyTrue = y; min1 x y MyTrue = x; min1 x y MyFalse = min0 x y otherwise; min2 x y = min1 x y (ltEsMyInt x y); minMyInt :: MyInt -> MyInt -> MyInt; minMyInt x y = min2 x y; minimumMyInt :: List MyInt -> MyInt; minimumMyInt = foldl1 minMyInt; not :: MyBool -> MyBool; not MyTrue = MyFalse; not MyFalse = MyTrue; otherwise :: MyBool; otherwise = MyTrue; 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; } ---------------------------------------- (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 List a = Cons a (List a) | Nil ; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; data Ordering = LT | EQ | GT ; 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; foldl :: (a -> b -> a) -> a -> List b -> a; foldl f z Nil = z; foldl f z (Cons x xs) = foldl f (f z x) xs; foldl1 :: (a -> a -> a) -> List a -> a; foldl1 f (Cons x xs) = foldl f x xs; fsEsOrdering :: Ordering -> Ordering -> MyBool; fsEsOrdering x y = not (esEsOrdering x y); ltEsMyInt :: MyInt -> MyInt -> MyBool; ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; min0 x y MyTrue = y; min1 x y MyTrue = x; min1 x y MyFalse = min0 x y otherwise; min2 x y = min1 x y (ltEsMyInt x y); minMyInt :: MyInt -> MyInt -> MyInt; minMyInt x y = min2 x y; minimumMyInt :: List MyInt -> MyInt; minimumMyInt = foldl1 minMyInt; not :: MyBool -> MyBool; not MyTrue = MyFalse; not MyFalse = MyTrue; otherwise :: MyBool; otherwise = MyTrue; 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; } ---------------------------------------- (5) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="minimumMyInt",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="minimumMyInt vx3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 4[label="foldl1 minMyInt vx3",fontsize=16,color="burlywood",shape="box"];601[label="vx3/Cons vx30 vx31",fontsize=10,color="white",style="solid",shape="box"];4 -> 601[label="",style="solid", color="burlywood", weight=9]; 601 -> 5[label="",style="solid", color="burlywood", weight=3]; 602[label="vx3/Nil",fontsize=10,color="white",style="solid",shape="box"];4 -> 602[label="",style="solid", color="burlywood", weight=9]; 602 -> 6[label="",style="solid", color="burlywood", weight=3]; 5[label="foldl1 minMyInt (Cons vx30 vx31)",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 6[label="foldl1 minMyInt Nil",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 7[label="foldl minMyInt vx30 vx31",fontsize=16,color="burlywood",shape="triangle"];603[label="vx31/Cons vx310 vx311",fontsize=10,color="white",style="solid",shape="box"];7 -> 603[label="",style="solid", color="burlywood", weight=9]; 603 -> 9[label="",style="solid", color="burlywood", weight=3]; 604[label="vx31/Nil",fontsize=10,color="white",style="solid",shape="box"];7 -> 604[label="",style="solid", color="burlywood", weight=9]; 604 -> 10[label="",style="solid", color="burlywood", weight=3]; 8[label="error []",fontsize=16,color="red",shape="box"];9[label="foldl minMyInt vx30 (Cons vx310 vx311)",fontsize=16,color="black",shape="box"];9 -> 11[label="",style="solid", color="black", weight=3]; 10[label="foldl minMyInt vx30 Nil",fontsize=16,color="black",shape="box"];10 -> 12[label="",style="solid", color="black", weight=3]; 11 -> 7[label="",style="dashed", color="red", weight=0]; 11[label="foldl minMyInt (minMyInt vx30 vx310) vx311",fontsize=16,color="magenta"];11 -> 13[label="",style="dashed", color="magenta", weight=3]; 11 -> 14[label="",style="dashed", color="magenta", weight=3]; 12[label="vx30",fontsize=16,color="green",shape="box"];13[label="vx311",fontsize=16,color="green",shape="box"];14[label="minMyInt vx30 vx310",fontsize=16,color="black",shape="box"];14 -> 15[label="",style="solid", color="black", weight=3]; 15[label="min2 vx30 vx310",fontsize=16,color="black",shape="box"];15 -> 16[label="",style="solid", color="black", weight=3]; 16[label="min1 vx30 vx310 (ltEsMyInt vx30 vx310)",fontsize=16,color="black",shape="box"];16 -> 17[label="",style="solid", color="black", weight=3]; 17[label="min1 vx30 vx310 (fsEsOrdering (compareMyInt vx30 vx310) GT)",fontsize=16,color="black",shape="box"];17 -> 18[label="",style="solid", color="black", weight=3]; 18[label="min1 vx30 vx310 (not (esEsOrdering (compareMyInt vx30 vx310) GT))",fontsize=16,color="black",shape="box"];18 -> 19[label="",style="solid", color="black", weight=3]; 19[label="min1 vx30 vx310 (not (esEsOrdering (primCmpInt vx30 vx310) GT))",fontsize=16,color="burlywood",shape="box"];605[label="vx30/Pos vx300",fontsize=10,color="white",style="solid",shape="box"];19 -> 605[label="",style="solid", color="burlywood", weight=9]; 605 -> 20[label="",style="solid", color="burlywood", weight=3]; 606[label="vx30/Neg vx300",fontsize=10,color="white",style="solid",shape="box"];19 -> 606[label="",style="solid", color="burlywood", weight=9]; 606 -> 21[label="",style="solid", color="burlywood", weight=3]; 20[label="min1 (Pos vx300) vx310 (not (esEsOrdering (primCmpInt (Pos vx300) vx310) GT))",fontsize=16,color="burlywood",shape="box"];607[label="vx300/Succ vx3000",fontsize=10,color="white",style="solid",shape="box"];20 -> 607[label="",style="solid", color="burlywood", weight=9]; 607 -> 22[label="",style="solid", color="burlywood", weight=3]; 608[label="vx300/Zero",fontsize=10,color="white",style="solid",shape="box"];20 -> 608[label="",style="solid", color="burlywood", weight=9]; 608 -> 23[label="",style="solid", color="burlywood", weight=3]; 21[label="min1 (Neg vx300) vx310 (not (esEsOrdering (primCmpInt (Neg vx300) vx310) GT))",fontsize=16,color="burlywood",shape="box"];609[label="vx300/Succ vx3000",fontsize=10,color="white",style="solid",shape="box"];21 -> 609[label="",style="solid", color="burlywood", weight=9]; 609 -> 24[label="",style="solid", color="burlywood", weight=3]; 610[label="vx300/Zero",fontsize=10,color="white",style="solid",shape="box"];21 -> 610[label="",style="solid", color="burlywood", weight=9]; 610 -> 25[label="",style="solid", color="burlywood", weight=3]; 22[label="min1 (Pos (Succ vx3000)) vx310 (not (esEsOrdering (primCmpInt (Pos (Succ vx3000)) vx310) GT))",fontsize=16,color="burlywood",shape="box"];611[label="vx310/Pos vx3100",fontsize=10,color="white",style="solid",shape="box"];22 -> 611[label="",style="solid", color="burlywood", weight=9]; 611 -> 26[label="",style="solid", color="burlywood", weight=3]; 612[label="vx310/Neg vx3100",fontsize=10,color="white",style="solid",shape="box"];22 -> 612[label="",style="solid", color="burlywood", weight=9]; 612 -> 27[label="",style="solid", color="burlywood", weight=3]; 23[label="min1 (Pos Zero) vx310 (not (esEsOrdering (primCmpInt (Pos Zero) vx310) GT))",fontsize=16,color="burlywood",shape="box"];613[label="vx310/Pos vx3100",fontsize=10,color="white",style="solid",shape="box"];23 -> 613[label="",style="solid", color="burlywood", weight=9]; 613 -> 28[label="",style="solid", color="burlywood", weight=3]; 614[label="vx310/Neg vx3100",fontsize=10,color="white",style="solid",shape="box"];23 -> 614[label="",style="solid", color="burlywood", weight=9]; 614 -> 29[label="",style="solid", color="burlywood", weight=3]; 24[label="min1 (Neg (Succ vx3000)) vx310 (not (esEsOrdering (primCmpInt (Neg (Succ vx3000)) vx310) GT))",fontsize=16,color="burlywood",shape="box"];615[label="vx310/Pos vx3100",fontsize=10,color="white",style="solid",shape="box"];24 -> 615[label="",style="solid", color="burlywood", weight=9]; 615 -> 30[label="",style="solid", color="burlywood", weight=3]; 616[label="vx310/Neg vx3100",fontsize=10,color="white",style="solid",shape="box"];24 -> 616[label="",style="solid", color="burlywood", weight=9]; 616 -> 31[label="",style="solid", color="burlywood", weight=3]; 25[label="min1 (Neg Zero) vx310 (not (esEsOrdering (primCmpInt (Neg Zero) vx310) GT))",fontsize=16,color="burlywood",shape="box"];617[label="vx310/Pos vx3100",fontsize=10,color="white",style="solid",shape="box"];25 -> 617[label="",style="solid", color="burlywood", weight=9]; 617 -> 32[label="",style="solid", color="burlywood", weight=3]; 618[label="vx310/Neg vx3100",fontsize=10,color="white",style="solid",shape="box"];25 -> 618[label="",style="solid", color="burlywood", weight=9]; 618 -> 33[label="",style="solid", color="burlywood", weight=3]; 26[label="min1 (Pos (Succ vx3000)) (Pos vx3100) (not (esEsOrdering (primCmpInt (Pos (Succ vx3000)) (Pos vx3100)) GT))",fontsize=16,color="black",shape="box"];26 -> 34[label="",style="solid", color="black", weight=3]; 27[label="min1 (Pos (Succ vx3000)) (Neg vx3100) (not (esEsOrdering (primCmpInt (Pos (Succ vx3000)) (Neg vx3100)) GT))",fontsize=16,color="black",shape="box"];27 -> 35[label="",style="solid", color="black", weight=3]; 28[label="min1 (Pos Zero) (Pos vx3100) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos vx3100)) GT))",fontsize=16,color="burlywood",shape="box"];619[label="vx3100/Succ vx31000",fontsize=10,color="white",style="solid",shape="box"];28 -> 619[label="",style="solid", color="burlywood", weight=9]; 619 -> 36[label="",style="solid", color="burlywood", weight=3]; 620[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];28 -> 620[label="",style="solid", color="burlywood", weight=9]; 620 -> 37[label="",style="solid", color="burlywood", weight=3]; 29[label="min1 (Pos Zero) (Neg vx3100) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg vx3100)) GT))",fontsize=16,color="burlywood",shape="box"];621[label="vx3100/Succ vx31000",fontsize=10,color="white",style="solid",shape="box"];29 -> 621[label="",style="solid", color="burlywood", weight=9]; 621 -> 38[label="",style="solid", color="burlywood", weight=3]; 622[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];29 -> 622[label="",style="solid", color="burlywood", weight=9]; 622 -> 39[label="",style="solid", color="burlywood", weight=3]; 30[label="min1 (Neg (Succ vx3000)) (Pos vx3100) (not (esEsOrdering (primCmpInt (Neg (Succ vx3000)) (Pos vx3100)) GT))",fontsize=16,color="black",shape="box"];30 -> 40[label="",style="solid", color="black", weight=3]; 31[label="min1 (Neg (Succ vx3000)) (Neg vx3100) (not (esEsOrdering (primCmpInt (Neg (Succ vx3000)) (Neg vx3100)) GT))",fontsize=16,color="black",shape="box"];31 -> 41[label="",style="solid", color="black", weight=3]; 32[label="min1 (Neg Zero) (Pos vx3100) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos vx3100)) GT))",fontsize=16,color="burlywood",shape="box"];623[label="vx3100/Succ vx31000",fontsize=10,color="white",style="solid",shape="box"];32 -> 623[label="",style="solid", color="burlywood", weight=9]; 623 -> 42[label="",style="solid", color="burlywood", weight=3]; 624[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];32 -> 624[label="",style="solid", color="burlywood", weight=9]; 624 -> 43[label="",style="solid", color="burlywood", weight=3]; 33[label="min1 (Neg Zero) (Neg vx3100) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg vx3100)) GT))",fontsize=16,color="burlywood",shape="box"];625[label="vx3100/Succ vx31000",fontsize=10,color="white",style="solid",shape="box"];33 -> 625[label="",style="solid", color="burlywood", weight=9]; 625 -> 44[label="",style="solid", color="burlywood", weight=3]; 626[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];33 -> 626[label="",style="solid", color="burlywood", weight=9]; 626 -> 45[label="",style="solid", color="burlywood", weight=3]; 34[label="min1 (Pos (Succ vx3000)) (Pos vx3100) (not (esEsOrdering (primCmpNat (Succ vx3000) vx3100) GT))",fontsize=16,color="burlywood",shape="box"];627[label="vx3100/Succ vx31000",fontsize=10,color="white",style="solid",shape="box"];34 -> 627[label="",style="solid", color="burlywood", weight=9]; 627 -> 46[label="",style="solid", color="burlywood", weight=3]; 628[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];34 -> 628[label="",style="solid", color="burlywood", weight=9]; 628 -> 47[label="",style="solid", color="burlywood", weight=3]; 35[label="min1 (Pos (Succ vx3000)) (Neg vx3100) (not (esEsOrdering GT GT))",fontsize=16,color="black",shape="box"];35 -> 48[label="",style="solid", color="black", weight=3]; 36[label="min1 (Pos Zero) (Pos (Succ vx31000)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ vx31000))) GT))",fontsize=16,color="black",shape="box"];36 -> 49[label="",style="solid", color="black", weight=3]; 37[label="min1 (Pos Zero) (Pos Zero) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) GT))",fontsize=16,color="black",shape="box"];37 -> 50[label="",style="solid", color="black", weight=3]; 38[label="min1 (Pos Zero) (Neg (Succ vx31000)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ vx31000))) GT))",fontsize=16,color="black",shape="box"];38 -> 51[label="",style="solid", color="black", weight=3]; 39[label="min1 (Pos Zero) (Neg Zero) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) GT))",fontsize=16,color="black",shape="box"];39 -> 52[label="",style="solid", color="black", weight=3]; 40[label="min1 (Neg (Succ vx3000)) (Pos vx3100) (not (esEsOrdering LT GT))",fontsize=16,color="black",shape="box"];40 -> 53[label="",style="solid", color="black", weight=3]; 41[label="min1 (Neg (Succ vx3000)) (Neg vx3100) (not (esEsOrdering (primCmpNat vx3100 (Succ vx3000)) GT))",fontsize=16,color="burlywood",shape="box"];629[label="vx3100/Succ vx31000",fontsize=10,color="white",style="solid",shape="box"];41 -> 629[label="",style="solid", color="burlywood", weight=9]; 629 -> 54[label="",style="solid", color="burlywood", weight=3]; 630[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];41 -> 630[label="",style="solid", color="burlywood", weight=9]; 630 -> 55[label="",style="solid", color="burlywood", weight=3]; 42[label="min1 (Neg Zero) (Pos (Succ vx31000)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ vx31000))) GT))",fontsize=16,color="black",shape="box"];42 -> 56[label="",style="solid", color="black", weight=3]; 43[label="min1 (Neg Zero) (Pos Zero) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) GT))",fontsize=16,color="black",shape="box"];43 -> 57[label="",style="solid", color="black", weight=3]; 44[label="min1 (Neg Zero) (Neg (Succ vx31000)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ vx31000))) GT))",fontsize=16,color="black",shape="box"];44 -> 58[label="",style="solid", color="black", weight=3]; 45[label="min1 (Neg Zero) (Neg Zero) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) GT))",fontsize=16,color="black",shape="box"];45 -> 59[label="",style="solid", color="black", weight=3]; 46[label="min1 (Pos (Succ vx3000)) (Pos (Succ vx31000)) (not (esEsOrdering (primCmpNat (Succ vx3000) (Succ vx31000)) GT))",fontsize=16,color="black",shape="box"];46 -> 60[label="",style="solid", color="black", weight=3]; 47[label="min1 (Pos (Succ vx3000)) (Pos Zero) (not (esEsOrdering (primCmpNat (Succ vx3000) Zero) GT))",fontsize=16,color="black",shape="box"];47 -> 61[label="",style="solid", color="black", weight=3]; 48[label="min1 (Pos (Succ vx3000)) (Neg vx3100) (not MyTrue)",fontsize=16,color="black",shape="box"];48 -> 62[label="",style="solid", color="black", weight=3]; 49[label="min1 (Pos Zero) (Pos (Succ vx31000)) (not (esEsOrdering (primCmpNat Zero (Succ vx31000)) GT))",fontsize=16,color="black",shape="box"];49 -> 63[label="",style="solid", color="black", weight=3]; 50[label="min1 (Pos Zero) (Pos Zero) (not (esEsOrdering EQ GT))",fontsize=16,color="black",shape="box"];50 -> 64[label="",style="solid", color="black", weight=3]; 51[label="min1 (Pos Zero) (Neg (Succ vx31000)) (not (esEsOrdering GT GT))",fontsize=16,color="black",shape="box"];51 -> 65[label="",style="solid", color="black", weight=3]; 52[label="min1 (Pos Zero) (Neg Zero) (not (esEsOrdering EQ GT))",fontsize=16,color="black",shape="box"];52 -> 66[label="",style="solid", color="black", weight=3]; 53[label="min1 (Neg (Succ vx3000)) (Pos vx3100) (not MyFalse)",fontsize=16,color="black",shape="box"];53 -> 67[label="",style="solid", color="black", weight=3]; 54[label="min1 (Neg (Succ vx3000)) (Neg (Succ vx31000)) (not (esEsOrdering (primCmpNat (Succ vx31000) (Succ vx3000)) GT))",fontsize=16,color="black",shape="box"];54 -> 68[label="",style="solid", color="black", weight=3]; 55[label="min1 (Neg (Succ vx3000)) (Neg Zero) (not (esEsOrdering (primCmpNat Zero (Succ vx3000)) GT))",fontsize=16,color="black",shape="box"];55 -> 69[label="",style="solid", color="black", weight=3]; 56[label="min1 (Neg Zero) (Pos (Succ vx31000)) (not (esEsOrdering LT GT))",fontsize=16,color="black",shape="box"];56 -> 70[label="",style="solid", color="black", weight=3]; 57[label="min1 (Neg Zero) (Pos Zero) (not (esEsOrdering EQ GT))",fontsize=16,color="black",shape="box"];57 -> 71[label="",style="solid", color="black", weight=3]; 58[label="min1 (Neg Zero) (Neg (Succ vx31000)) (not (esEsOrdering (primCmpNat (Succ vx31000) Zero) GT))",fontsize=16,color="black",shape="box"];58 -> 72[label="",style="solid", color="black", weight=3]; 59[label="min1 (Neg Zero) (Neg Zero) (not (esEsOrdering EQ GT))",fontsize=16,color="black",shape="box"];59 -> 73[label="",style="solid", color="black", weight=3]; 60 -> 463[label="",style="dashed", color="red", weight=0]; 60[label="min1 (Pos (Succ vx3000)) (Pos (Succ vx31000)) (not (esEsOrdering (primCmpNat vx3000 vx31000) GT))",fontsize=16,color="magenta"];60 -> 464[label="",style="dashed", color="magenta", weight=3]; 60 -> 465[label="",style="dashed", color="magenta", weight=3]; 60 -> 466[label="",style="dashed", color="magenta", weight=3]; 60 -> 467[label="",style="dashed", color="magenta", weight=3]; 61[label="min1 (Pos (Succ vx3000)) (Pos Zero) (not (esEsOrdering GT GT))",fontsize=16,color="black",shape="box"];61 -> 76[label="",style="solid", color="black", weight=3]; 62[label="min1 (Pos (Succ vx3000)) (Neg vx3100) MyFalse",fontsize=16,color="black",shape="box"];62 -> 77[label="",style="solid", color="black", weight=3]; 63[label="min1 (Pos Zero) (Pos (Succ vx31000)) (not (esEsOrdering LT GT))",fontsize=16,color="black",shape="box"];63 -> 78[label="",style="solid", color="black", weight=3]; 64[label="min1 (Pos Zero) (Pos Zero) (not MyFalse)",fontsize=16,color="black",shape="box"];64 -> 79[label="",style="solid", color="black", weight=3]; 65[label="min1 (Pos Zero) (Neg (Succ vx31000)) (not MyTrue)",fontsize=16,color="black",shape="box"];65 -> 80[label="",style="solid", color="black", weight=3]; 66[label="min1 (Pos Zero) (Neg Zero) (not MyFalse)",fontsize=16,color="black",shape="box"];66 -> 81[label="",style="solid", color="black", weight=3]; 67[label="min1 (Neg (Succ vx3000)) (Pos vx3100) MyTrue",fontsize=16,color="black",shape="box"];67 -> 82[label="",style="solid", color="black", weight=3]; 68 -> 533[label="",style="dashed", color="red", weight=0]; 68[label="min1 (Neg (Succ vx3000)) (Neg (Succ vx31000)) (not (esEsOrdering (primCmpNat vx31000 vx3000) GT))",fontsize=16,color="magenta"];68 -> 534[label="",style="dashed", color="magenta", weight=3]; 68 -> 535[label="",style="dashed", color="magenta", weight=3]; 68 -> 536[label="",style="dashed", color="magenta", weight=3]; 68 -> 537[label="",style="dashed", color="magenta", weight=3]; 69[label="min1 (Neg (Succ vx3000)) (Neg Zero) (not (esEsOrdering LT GT))",fontsize=16,color="black",shape="box"];69 -> 85[label="",style="solid", color="black", weight=3]; 70[label="min1 (Neg Zero) (Pos (Succ vx31000)) (not MyFalse)",fontsize=16,color="black",shape="box"];70 -> 86[label="",style="solid", color="black", weight=3]; 71[label="min1 (Neg Zero) (Pos Zero) (not MyFalse)",fontsize=16,color="black",shape="box"];71 -> 87[label="",style="solid", color="black", weight=3]; 72[label="min1 (Neg Zero) (Neg (Succ vx31000)) (not (esEsOrdering GT GT))",fontsize=16,color="black",shape="box"];72 -> 88[label="",style="solid", color="black", weight=3]; 73[label="min1 (Neg Zero) (Neg Zero) (not MyFalse)",fontsize=16,color="black",shape="box"];73 -> 89[label="",style="solid", color="black", weight=3]; 464[label="vx3000",fontsize=16,color="green",shape="box"];465[label="vx31000",fontsize=16,color="green",shape="box"];466[label="vx31000",fontsize=16,color="green",shape="box"];467[label="vx3000",fontsize=16,color="green",shape="box"];463[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not (esEsOrdering (primCmpNat vx42 vx43) GT))",fontsize=16,color="burlywood",shape="triangle"];631[label="vx42/Succ vx420",fontsize=10,color="white",style="solid",shape="box"];463 -> 631[label="",style="solid", color="burlywood", weight=9]; 631 -> 500[label="",style="solid", color="burlywood", weight=3]; 632[label="vx42/Zero",fontsize=10,color="white",style="solid",shape="box"];463 -> 632[label="",style="solid", color="burlywood", weight=9]; 632 -> 501[label="",style="solid", color="burlywood", weight=3]; 76[label="min1 (Pos (Succ vx3000)) (Pos Zero) (not MyTrue)",fontsize=16,color="black",shape="box"];76 -> 94[label="",style="solid", color="black", weight=3]; 77[label="min0 (Pos (Succ vx3000)) (Neg vx3100) otherwise",fontsize=16,color="black",shape="box"];77 -> 95[label="",style="solid", color="black", weight=3]; 78[label="min1 (Pos Zero) (Pos (Succ vx31000)) (not MyFalse)",fontsize=16,color="black",shape="box"];78 -> 96[label="",style="solid", color="black", weight=3]; 79[label="min1 (Pos Zero) (Pos Zero) MyTrue",fontsize=16,color="black",shape="box"];79 -> 97[label="",style="solid", color="black", weight=3]; 80[label="min1 (Pos Zero) (Neg (Succ vx31000)) MyFalse",fontsize=16,color="black",shape="box"];80 -> 98[label="",style="solid", color="black", weight=3]; 81[label="min1 (Pos Zero) (Neg Zero) MyTrue",fontsize=16,color="black",shape="box"];81 -> 99[label="",style="solid", color="black", weight=3]; 82[label="Neg (Succ vx3000)",fontsize=16,color="green",shape="box"];534[label="vx31000",fontsize=16,color="green",shape="box"];535[label="vx3000",fontsize=16,color="green",shape="box"];536[label="vx31000",fontsize=16,color="green",shape="box"];537[label="vx3000",fontsize=16,color="green",shape="box"];533[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not (esEsOrdering (primCmpNat vx51 vx52) GT))",fontsize=16,color="burlywood",shape="triangle"];633[label="vx51/Succ vx510",fontsize=10,color="white",style="solid",shape="box"];533 -> 633[label="",style="solid", color="burlywood", weight=9]; 633 -> 574[label="",style="solid", color="burlywood", weight=3]; 634[label="vx51/Zero",fontsize=10,color="white",style="solid",shape="box"];533 -> 634[label="",style="solid", color="burlywood", weight=9]; 634 -> 575[label="",style="solid", color="burlywood", weight=3]; 85[label="min1 (Neg (Succ vx3000)) (Neg Zero) (not MyFalse)",fontsize=16,color="black",shape="box"];85 -> 104[label="",style="solid", color="black", weight=3]; 86[label="min1 (Neg Zero) (Pos (Succ vx31000)) MyTrue",fontsize=16,color="black",shape="box"];86 -> 105[label="",style="solid", color="black", weight=3]; 87[label="min1 (Neg Zero) (Pos Zero) MyTrue",fontsize=16,color="black",shape="box"];87 -> 106[label="",style="solid", color="black", weight=3]; 88[label="min1 (Neg Zero) (Neg (Succ vx31000)) (not MyTrue)",fontsize=16,color="black",shape="box"];88 -> 107[label="",style="solid", color="black", weight=3]; 89[label="min1 (Neg Zero) (Neg Zero) MyTrue",fontsize=16,color="black",shape="box"];89 -> 108[label="",style="solid", color="black", weight=3]; 500[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not (esEsOrdering (primCmpNat (Succ vx420) vx43) GT))",fontsize=16,color="burlywood",shape="box"];635[label="vx43/Succ vx430",fontsize=10,color="white",style="solid",shape="box"];500 -> 635[label="",style="solid", color="burlywood", weight=9]; 635 -> 506[label="",style="solid", color="burlywood", weight=3]; 636[label="vx43/Zero",fontsize=10,color="white",style="solid",shape="box"];500 -> 636[label="",style="solid", color="burlywood", weight=9]; 636 -> 507[label="",style="solid", color="burlywood", weight=3]; 501[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not (esEsOrdering (primCmpNat Zero vx43) GT))",fontsize=16,color="burlywood",shape="box"];637[label="vx43/Succ vx430",fontsize=10,color="white",style="solid",shape="box"];501 -> 637[label="",style="solid", color="burlywood", weight=9]; 637 -> 508[label="",style="solid", color="burlywood", weight=3]; 638[label="vx43/Zero",fontsize=10,color="white",style="solid",shape="box"];501 -> 638[label="",style="solid", color="burlywood", weight=9]; 638 -> 509[label="",style="solid", color="burlywood", weight=3]; 94[label="min1 (Pos (Succ vx3000)) (Pos Zero) MyFalse",fontsize=16,color="black",shape="box"];94 -> 113[label="",style="solid", color="black", weight=3]; 95[label="min0 (Pos (Succ vx3000)) (Neg vx3100) MyTrue",fontsize=16,color="black",shape="box"];95 -> 114[label="",style="solid", color="black", weight=3]; 96[label="min1 (Pos Zero) (Pos (Succ vx31000)) MyTrue",fontsize=16,color="black",shape="box"];96 -> 115[label="",style="solid", color="black", weight=3]; 97[label="Pos Zero",fontsize=16,color="green",shape="box"];98[label="min0 (Pos Zero) (Neg (Succ vx31000)) otherwise",fontsize=16,color="black",shape="box"];98 -> 116[label="",style="solid", color="black", weight=3]; 99[label="Pos Zero",fontsize=16,color="green",shape="box"];574[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not (esEsOrdering (primCmpNat (Succ vx510) vx52) GT))",fontsize=16,color="burlywood",shape="box"];639[label="vx52/Succ vx520",fontsize=10,color="white",style="solid",shape="box"];574 -> 639[label="",style="solid", color="burlywood", weight=9]; 639 -> 578[label="",style="solid", color="burlywood", weight=3]; 640[label="vx52/Zero",fontsize=10,color="white",style="solid",shape="box"];574 -> 640[label="",style="solid", color="burlywood", weight=9]; 640 -> 579[label="",style="solid", color="burlywood", weight=3]; 575[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not (esEsOrdering (primCmpNat Zero vx52) GT))",fontsize=16,color="burlywood",shape="box"];641[label="vx52/Succ vx520",fontsize=10,color="white",style="solid",shape="box"];575 -> 641[label="",style="solid", color="burlywood", weight=9]; 641 -> 580[label="",style="solid", color="burlywood", weight=3]; 642[label="vx52/Zero",fontsize=10,color="white",style="solid",shape="box"];575 -> 642[label="",style="solid", color="burlywood", weight=9]; 642 -> 581[label="",style="solid", color="burlywood", weight=3]; 104[label="min1 (Neg (Succ vx3000)) (Neg Zero) MyTrue",fontsize=16,color="black",shape="box"];104 -> 121[label="",style="solid", color="black", weight=3]; 105[label="Neg Zero",fontsize=16,color="green",shape="box"];106[label="Neg Zero",fontsize=16,color="green",shape="box"];107[label="min1 (Neg Zero) (Neg (Succ vx31000)) MyFalse",fontsize=16,color="black",shape="box"];107 -> 122[label="",style="solid", color="black", weight=3]; 108[label="Neg Zero",fontsize=16,color="green",shape="box"];506[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not (esEsOrdering (primCmpNat (Succ vx420) (Succ vx430)) GT))",fontsize=16,color="black",shape="box"];506 -> 514[label="",style="solid", color="black", weight=3]; 507[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not (esEsOrdering (primCmpNat (Succ vx420) Zero) GT))",fontsize=16,color="black",shape="box"];507 -> 515[label="",style="solid", color="black", weight=3]; 508[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not (esEsOrdering (primCmpNat Zero (Succ vx430)) GT))",fontsize=16,color="black",shape="box"];508 -> 516[label="",style="solid", color="black", weight=3]; 509[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not (esEsOrdering (primCmpNat Zero Zero) GT))",fontsize=16,color="black",shape="box"];509 -> 517[label="",style="solid", color="black", weight=3]; 113[label="min0 (Pos (Succ vx3000)) (Pos Zero) otherwise",fontsize=16,color="black",shape="box"];113 -> 128[label="",style="solid", color="black", weight=3]; 114[label="Neg vx3100",fontsize=16,color="green",shape="box"];115[label="Pos Zero",fontsize=16,color="green",shape="box"];116[label="min0 (Pos Zero) (Neg (Succ vx31000)) MyTrue",fontsize=16,color="black",shape="box"];116 -> 129[label="",style="solid", color="black", weight=3]; 578[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not (esEsOrdering (primCmpNat (Succ vx510) (Succ vx520)) GT))",fontsize=16,color="black",shape="box"];578 -> 584[label="",style="solid", color="black", weight=3]; 579[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not (esEsOrdering (primCmpNat (Succ vx510) Zero) GT))",fontsize=16,color="black",shape="box"];579 -> 585[label="",style="solid", color="black", weight=3]; 580[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not (esEsOrdering (primCmpNat Zero (Succ vx520)) GT))",fontsize=16,color="black",shape="box"];580 -> 586[label="",style="solid", color="black", weight=3]; 581[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not (esEsOrdering (primCmpNat Zero Zero) GT))",fontsize=16,color="black",shape="box"];581 -> 587[label="",style="solid", color="black", weight=3]; 121[label="Neg (Succ vx3000)",fontsize=16,color="green",shape="box"];122[label="min0 (Neg Zero) (Neg (Succ vx31000)) otherwise",fontsize=16,color="black",shape="box"];122 -> 135[label="",style="solid", color="black", weight=3]; 514 -> 463[label="",style="dashed", color="red", weight=0]; 514[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not (esEsOrdering (primCmpNat vx420 vx430) GT))",fontsize=16,color="magenta"];514 -> 522[label="",style="dashed", color="magenta", weight=3]; 514 -> 523[label="",style="dashed", color="magenta", weight=3]; 515[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not (esEsOrdering GT GT))",fontsize=16,color="black",shape="box"];515 -> 524[label="",style="solid", color="black", weight=3]; 516[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not (esEsOrdering LT GT))",fontsize=16,color="black",shape="box"];516 -> 525[label="",style="solid", color="black", weight=3]; 517[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not (esEsOrdering EQ GT))",fontsize=16,color="black",shape="box"];517 -> 526[label="",style="solid", color="black", weight=3]; 128[label="min0 (Pos (Succ vx3000)) (Pos Zero) MyTrue",fontsize=16,color="black",shape="box"];128 -> 143[label="",style="solid", color="black", weight=3]; 129[label="Neg (Succ vx31000)",fontsize=16,color="green",shape="box"];584 -> 533[label="",style="dashed", color="red", weight=0]; 584[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not (esEsOrdering (primCmpNat vx510 vx520) GT))",fontsize=16,color="magenta"];584 -> 589[label="",style="dashed", color="magenta", weight=3]; 584 -> 590[label="",style="dashed", color="magenta", weight=3]; 585[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not (esEsOrdering GT GT))",fontsize=16,color="black",shape="box"];585 -> 591[label="",style="solid", color="black", weight=3]; 586[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not (esEsOrdering LT GT))",fontsize=16,color="black",shape="box"];586 -> 592[label="",style="solid", color="black", weight=3]; 587[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not (esEsOrdering EQ GT))",fontsize=16,color="black",shape="box"];587 -> 593[label="",style="solid", color="black", weight=3]; 135[label="min0 (Neg Zero) (Neg (Succ vx31000)) MyTrue",fontsize=16,color="black",shape="box"];135 -> 151[label="",style="solid", color="black", weight=3]; 522[label="vx420",fontsize=16,color="green",shape="box"];523[label="vx430",fontsize=16,color="green",shape="box"];524[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not MyTrue)",fontsize=16,color="black",shape="box"];524 -> 576[label="",style="solid", color="black", weight=3]; 525[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not MyFalse)",fontsize=16,color="black",shape="triangle"];525 -> 577[label="",style="solid", color="black", weight=3]; 526 -> 525[label="",style="dashed", color="red", weight=0]; 526[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not MyFalse)",fontsize=16,color="magenta"];143[label="Pos Zero",fontsize=16,color="green",shape="box"];589[label="vx510",fontsize=16,color="green",shape="box"];590[label="vx520",fontsize=16,color="green",shape="box"];591[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not MyTrue)",fontsize=16,color="black",shape="box"];591 -> 595[label="",style="solid", color="black", weight=3]; 592[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not MyFalse)",fontsize=16,color="black",shape="triangle"];592 -> 596[label="",style="solid", color="black", weight=3]; 593 -> 592[label="",style="dashed", color="red", weight=0]; 593[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not MyFalse)",fontsize=16,color="magenta"];151[label="Neg (Succ vx31000)",fontsize=16,color="green",shape="box"];576[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) MyFalse",fontsize=16,color="black",shape="box"];576 -> 582[label="",style="solid", color="black", weight=3]; 577[label="min1 (Pos (Succ vx40)) (Pos (Succ vx41)) MyTrue",fontsize=16,color="black",shape="box"];577 -> 583[label="",style="solid", color="black", weight=3]; 595[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) MyFalse",fontsize=16,color="black",shape="box"];595 -> 597[label="",style="solid", color="black", weight=3]; 596[label="min1 (Neg (Succ vx49)) (Neg (Succ vx50)) MyTrue",fontsize=16,color="black",shape="box"];596 -> 598[label="",style="solid", color="black", weight=3]; 582[label="min0 (Pos (Succ vx40)) (Pos (Succ vx41)) otherwise",fontsize=16,color="black",shape="box"];582 -> 588[label="",style="solid", color="black", weight=3]; 583[label="Pos (Succ vx40)",fontsize=16,color="green",shape="box"];597[label="min0 (Neg (Succ vx49)) (Neg (Succ vx50)) otherwise",fontsize=16,color="black",shape="box"];597 -> 599[label="",style="solid", color="black", weight=3]; 598[label="Neg (Succ vx49)",fontsize=16,color="green",shape="box"];588[label="min0 (Pos (Succ vx40)) (Pos (Succ vx41)) MyTrue",fontsize=16,color="black",shape="box"];588 -> 594[label="",style="solid", color="black", weight=3]; 599[label="min0 (Neg (Succ vx49)) (Neg (Succ vx50)) MyTrue",fontsize=16,color="black",shape="box"];599 -> 600[label="",style="solid", color="black", weight=3]; 594[label="Pos (Succ vx41)",fontsize=16,color="green",shape="box"];600[label="Neg (Succ vx50)",fontsize=16,color="green",shape="box"];} ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: new_min1(vx49, vx50, Main.Succ(vx510), Main.Succ(vx520)) -> new_min1(vx49, vx50, vx510, vx520) 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_min1(vx49, vx50, Main.Succ(vx510), Main.Succ(vx520)) -> new_min1(vx49, vx50, vx510, vx520) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (9) YES ---------------------------------------- (10) Obligation: Q DP problem: The TRS P consists of the following rules: new_min10(vx40, vx41, Main.Succ(vx420), Main.Succ(vx430)) -> new_min10(vx40, vx41, vx420, vx430) 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_min10(vx40, vx41, Main.Succ(vx420), Main.Succ(vx430)) -> new_min10(vx40, vx41, vx420, vx430) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (12) YES ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: new_foldl(vx30, Cons(vx310, vx311)) -> new_foldl(new_min11(vx30, vx310), vx311) The TRS R consists of the following rules: new_min11(Main.Neg(Main.Succ(vx3000)), Main.Neg(Main.Zero)) -> Main.Neg(Main.Succ(vx3000)) new_min11(Main.Neg(Main.Zero), Main.Neg(Main.Succ(vx31000))) -> Main.Neg(Main.Succ(vx31000)) new_min11(Main.Pos(Main.Zero), Main.Neg(Main.Succ(vx31000))) -> Main.Neg(Main.Succ(vx31000)) new_min11(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> Main.Pos(Main.Zero) new_min15(vx40, vx41, Main.Zero, Main.Zero) -> new_min12(vx40, vx41) new_min11(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> Main.Pos(Main.Zero) new_min11(Main.Neg(Main.Succ(vx3000)), Main.Neg(Main.Succ(vx31000))) -> new_min14(vx3000, vx31000, vx31000, vx3000) new_min13(vx49, vx50) -> Main.Neg(Main.Succ(vx49)) new_min11(Main.Pos(Main.Succ(vx3000)), Main.Pos(Main.Succ(vx31000))) -> new_min15(vx3000, vx31000, vx3000, vx31000) new_min11(Main.Neg(Main.Zero), Main.Pos(Main.Succ(vx31000))) -> Main.Neg(Main.Zero) new_min11(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> Main.Neg(Main.Zero) new_min15(vx40, vx41, Main.Zero, Main.Succ(vx430)) -> new_min12(vx40, vx41) new_min11(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> Main.Neg(Main.Zero) new_min15(vx40, vx41, Main.Succ(vx420), Main.Zero) -> Main.Pos(Main.Succ(vx41)) new_min15(vx40, vx41, Main.Succ(vx420), Main.Succ(vx430)) -> new_min15(vx40, vx41, vx420, vx430) new_min11(Main.Pos(Main.Succ(vx3000)), Main.Neg(vx3100)) -> Main.Neg(vx3100) new_min14(vx49, vx50, Main.Succ(vx510), Main.Zero) -> Main.Neg(Main.Succ(vx50)) new_min12(vx40, vx41) -> Main.Pos(Main.Succ(vx40)) new_min14(vx49, vx50, Main.Zero, Main.Zero) -> new_min13(vx49, vx50) new_min11(Main.Neg(Main.Succ(vx3000)), Main.Pos(vx3100)) -> Main.Neg(Main.Succ(vx3000)) new_min14(vx49, vx50, Main.Succ(vx510), Main.Succ(vx520)) -> new_min14(vx49, vx50, vx510, vx520) new_min14(vx49, vx50, Main.Zero, Main.Succ(vx520)) -> new_min13(vx49, vx50) new_min11(Main.Pos(Main.Succ(vx3000)), Main.Pos(Main.Zero)) -> Main.Pos(Main.Zero) new_min11(Main.Pos(Main.Zero), Main.Pos(Main.Succ(vx31000))) -> Main.Pos(Main.Zero) The set Q consists of the following terms: new_min11(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_min11(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0))) new_min11(Main.Neg(Main.Succ(x0)), Main.Pos(x1)) new_min11(Main.Pos(Main.Succ(x0)), Main.Neg(x1)) new_min14(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_min14(x0, x1, Main.Zero, Main.Succ(x2)) new_min11(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_min11(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_min14(x0, x1, Main.Zero, Main.Zero) new_min15(x0, x1, Main.Succ(x2), Main.Zero) new_min14(x0, x1, Main.Succ(x2), Main.Zero) new_min15(x0, x1, Main.Zero, Main.Zero) new_min13(x0, x1) new_min11(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_min11(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_min12(x0, x1) new_min11(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1))) new_min11(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0))) new_min11(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_min15(x0, x1, Main.Succ(x2), Main.Succ(x3)) new_min15(x0, x1, Main.Zero, Main.Succ(x2)) new_min11(Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0))) new_min11(Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0))) new_min11(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x1))) 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_foldl(vx30, Cons(vx310, vx311)) -> new_foldl(new_min11(vx30, vx310), vx311) The graph contains the following edges 2 > 2 ---------------------------------------- (15) YES