8.76/3.91 YES 10.73/4.48 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 10.73/4.48 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 10.73/4.48 10.73/4.48 10.73/4.48 H-Termination with start terms of the given HASKELL could be proven: 10.73/4.48 10.73/4.48 (0) HASKELL 10.73/4.48 (1) BR [EQUIVALENT, 0 ms] 10.73/4.48 (2) HASKELL 10.73/4.48 (3) COR [EQUIVALENT, 0 ms] 10.73/4.48 (4) HASKELL 10.73/4.48 (5) Narrow [SOUND, 0 ms] 10.73/4.48 (6) AND 10.73/4.48 (7) QDP 10.73/4.48 (8) QDPSizeChangeProof [EQUIVALENT, 0 ms] 10.73/4.48 (9) YES 10.73/4.48 (10) QDP 10.73/4.48 (11) QDPSizeChangeProof [EQUIVALENT, 0 ms] 10.73/4.48 (12) YES 10.73/4.48 (13) QDP 10.73/4.48 (14) QDPSizeChangeProof [EQUIVALENT, 0 ms] 10.73/4.48 (15) YES 10.73/4.48 10.73/4.48 10.73/4.48 ---------------------------------------- 10.73/4.48 10.73/4.48 (0) 10.73/4.48 Obligation: 10.73/4.48 mainModule Main 10.73/4.48 module Main where { 10.73/4.48 import qualified Prelude; 10.73/4.48 data List a = Cons a (List a) | Nil ; 10.73/4.48 10.73/4.48 data MyBool = MyTrue | MyFalse ; 10.73/4.48 10.73/4.48 data MyInt = Pos Main.Nat | Neg Main.Nat ; 10.73/4.48 10.73/4.48 data Main.Nat = Succ Main.Nat | Zero ; 10.73/4.48 10.73/4.48 data Ordering = LT | EQ | GT ; 10.73/4.48 10.73/4.48 compareMyInt :: MyInt -> MyInt -> Ordering; 10.73/4.48 compareMyInt = primCmpInt; 10.73/4.48 10.73/4.48 esEsOrdering :: Ordering -> Ordering -> MyBool; 10.73/4.48 esEsOrdering LT LT = MyTrue; 10.73/4.48 esEsOrdering LT EQ = MyFalse; 10.73/4.48 esEsOrdering LT GT = MyFalse; 10.73/4.48 esEsOrdering EQ LT = MyFalse; 10.73/4.48 esEsOrdering EQ EQ = MyTrue; 10.73/4.48 esEsOrdering EQ GT = MyFalse; 10.73/4.48 esEsOrdering GT LT = MyFalse; 10.73/4.48 esEsOrdering GT EQ = MyFalse; 10.73/4.48 esEsOrdering GT GT = MyTrue; 10.73/4.48 10.73/4.48 foldl :: (b -> a -> b) -> b -> List a -> b; 10.73/4.48 foldl f z Nil = z; 10.73/4.48 foldl f z (Cons x xs) = foldl f (f z x) xs; 10.73/4.48 10.73/4.48 foldl1 :: (a -> a -> a) -> List a -> a; 10.73/4.48 foldl1 f (Cons x xs) = foldl f x xs; 10.73/4.48 10.73/4.48 fsEsOrdering :: Ordering -> Ordering -> MyBool; 10.73/4.48 fsEsOrdering x y = not (esEsOrdering x y); 10.73/4.48 10.73/4.48 ltEsMyInt :: MyInt -> MyInt -> MyBool; 10.73/4.48 ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; 10.73/4.48 10.73/4.48 max0 x y MyTrue = x; 10.73/4.48 10.73/4.48 max1 x y MyTrue = y; 10.73/4.48 max1 x y MyFalse = max0 x y otherwise; 10.73/4.48 10.73/4.48 max2 x y = max1 x y (ltEsMyInt x y); 10.73/4.48 10.73/4.48 maxMyInt :: MyInt -> MyInt -> MyInt; 10.73/4.48 maxMyInt x y = max2 x y; 10.73/4.48 10.73/4.48 maximumMyInt :: List MyInt -> MyInt; 10.73/4.48 maximumMyInt = foldl1 maxMyInt; 10.73/4.48 10.73/4.48 not :: MyBool -> MyBool; 10.73/4.48 not MyTrue = MyFalse; 10.73/4.48 not MyFalse = MyTrue; 10.73/4.48 10.73/4.48 otherwise :: MyBool; 10.73/4.48 otherwise = MyTrue; 10.73/4.48 10.73/4.48 primCmpInt :: MyInt -> MyInt -> Ordering; 10.73/4.48 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 10.73/4.48 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 10.73/4.48 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 10.73/4.48 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 10.73/4.48 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 10.73/4.48 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 10.73/4.48 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 10.73/4.48 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 10.73/4.48 10.73/4.48 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 10.73/4.48 primCmpNat Main.Zero Main.Zero = EQ; 10.73/4.48 primCmpNat Main.Zero (Main.Succ y) = LT; 10.73/4.48 primCmpNat (Main.Succ x) Main.Zero = GT; 10.73/4.48 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 10.73/4.48 10.73/4.48 } 10.73/4.48 10.73/4.48 ---------------------------------------- 10.73/4.48 10.73/4.48 (1) BR (EQUIVALENT) 10.73/4.48 Replaced joker patterns by fresh variables and removed binding patterns. 10.73/4.48 ---------------------------------------- 10.73/4.48 10.73/4.48 (2) 10.73/4.48 Obligation: 10.73/4.48 mainModule Main 10.73/4.48 module Main where { 10.73/4.48 import qualified Prelude; 10.73/4.48 data List a = Cons a (List a) | Nil ; 10.73/4.48 10.73/4.48 data MyBool = MyTrue | MyFalse ; 10.73/4.48 10.73/4.48 data MyInt = Pos Main.Nat | Neg Main.Nat ; 10.73/4.48 10.73/4.48 data Main.Nat = Succ Main.Nat | Zero ; 10.73/4.48 10.73/4.48 data Ordering = LT | EQ | GT ; 10.73/4.48 10.73/4.48 compareMyInt :: MyInt -> MyInt -> Ordering; 10.73/4.48 compareMyInt = primCmpInt; 10.73/4.48 10.73/4.48 esEsOrdering :: Ordering -> Ordering -> MyBool; 10.73/4.48 esEsOrdering LT LT = MyTrue; 10.73/4.48 esEsOrdering LT EQ = MyFalse; 10.73/4.48 esEsOrdering LT GT = MyFalse; 10.73/4.48 esEsOrdering EQ LT = MyFalse; 10.73/4.48 esEsOrdering EQ EQ = MyTrue; 10.73/4.48 esEsOrdering EQ GT = MyFalse; 10.73/4.48 esEsOrdering GT LT = MyFalse; 10.73/4.48 esEsOrdering GT EQ = MyFalse; 10.73/4.48 esEsOrdering GT GT = MyTrue; 10.73/4.48 10.73/4.48 foldl :: (a -> b -> a) -> a -> List b -> a; 10.73/4.48 foldl f z Nil = z; 10.73/4.48 foldl f z (Cons x xs) = foldl f (f z x) xs; 10.73/4.48 10.73/4.48 foldl1 :: (a -> a -> a) -> List a -> a; 10.73/4.48 foldl1 f (Cons x xs) = foldl f x xs; 10.73/4.48 10.73/4.48 fsEsOrdering :: Ordering -> Ordering -> MyBool; 10.73/4.48 fsEsOrdering x y = not (esEsOrdering x y); 10.73/4.48 10.73/4.48 ltEsMyInt :: MyInt -> MyInt -> MyBool; 10.73/4.48 ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; 10.73/4.48 10.73/4.48 max0 x y MyTrue = x; 10.73/4.48 10.73/4.48 max1 x y MyTrue = y; 10.73/4.48 max1 x y MyFalse = max0 x y otherwise; 10.73/4.48 10.73/4.48 max2 x y = max1 x y (ltEsMyInt x y); 10.73/4.48 10.73/4.48 maxMyInt :: MyInt -> MyInt -> MyInt; 10.73/4.48 maxMyInt x y = max2 x y; 10.73/4.48 10.73/4.48 maximumMyInt :: List MyInt -> MyInt; 10.73/4.48 maximumMyInt = foldl1 maxMyInt; 10.73/4.48 10.73/4.48 not :: MyBool -> MyBool; 10.73/4.48 not MyTrue = MyFalse; 10.73/4.48 not MyFalse = MyTrue; 10.73/4.48 10.73/4.48 otherwise :: MyBool; 10.73/4.48 otherwise = MyTrue; 10.73/4.48 10.73/4.48 primCmpInt :: MyInt -> MyInt -> Ordering; 10.73/4.48 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 10.73/4.48 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 10.73/4.48 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 10.73/4.48 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 10.73/4.48 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 10.73/4.48 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 10.73/4.48 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 10.73/4.48 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 10.73/4.48 10.73/4.48 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 10.73/4.48 primCmpNat Main.Zero Main.Zero = EQ; 10.73/4.48 primCmpNat Main.Zero (Main.Succ y) = LT; 10.73/4.48 primCmpNat (Main.Succ x) Main.Zero = GT; 10.73/4.48 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 10.73/4.48 10.73/4.48 } 10.73/4.48 10.73/4.48 ---------------------------------------- 10.73/4.48 10.73/4.48 (3) COR (EQUIVALENT) 10.73/4.48 Cond Reductions: 10.73/4.48 The following Function with conditions 10.73/4.48 "undefined |Falseundefined; 10.73/4.48 " 10.73/4.48 is transformed to 10.73/4.48 "undefined = undefined1; 10.73/4.48 " 10.73/4.48 "undefined0 True = undefined; 10.73/4.48 " 10.73/4.48 "undefined1 = undefined0 False; 10.73/4.48 " 10.73/4.48 10.73/4.48 ---------------------------------------- 10.73/4.48 10.73/4.48 (4) 10.73/4.48 Obligation: 10.73/4.48 mainModule Main 10.73/4.48 module Main where { 10.73/4.48 import qualified Prelude; 10.73/4.48 data List a = Cons a (List a) | Nil ; 10.73/4.48 10.73/4.48 data MyBool = MyTrue | MyFalse ; 10.73/4.48 10.73/4.48 data MyInt = Pos Main.Nat | Neg Main.Nat ; 10.73/4.48 10.73/4.48 data Main.Nat = Succ Main.Nat | Zero ; 10.73/4.48 10.73/4.48 data Ordering = LT | EQ | GT ; 10.73/4.48 10.73/4.48 compareMyInt :: MyInt -> MyInt -> Ordering; 10.73/4.48 compareMyInt = primCmpInt; 10.73/4.48 10.73/4.48 esEsOrdering :: Ordering -> Ordering -> MyBool; 10.73/4.48 esEsOrdering LT LT = MyTrue; 10.73/4.48 esEsOrdering LT EQ = MyFalse; 10.73/4.48 esEsOrdering LT GT = MyFalse; 10.73/4.48 esEsOrdering EQ LT = MyFalse; 10.73/4.48 esEsOrdering EQ EQ = MyTrue; 10.73/4.48 esEsOrdering EQ GT = MyFalse; 10.73/4.48 esEsOrdering GT LT = MyFalse; 10.73/4.48 esEsOrdering GT EQ = MyFalse; 10.73/4.48 esEsOrdering GT GT = MyTrue; 10.73/4.48 10.73/4.48 foldl :: (a -> b -> a) -> a -> List b -> a; 10.73/4.48 foldl f z Nil = z; 10.73/4.48 foldl f z (Cons x xs) = foldl f (f z x) xs; 10.73/4.48 10.73/4.48 foldl1 :: (a -> a -> a) -> List a -> a; 10.73/4.48 foldl1 f (Cons x xs) = foldl f x xs; 10.73/4.48 10.73/4.48 fsEsOrdering :: Ordering -> Ordering -> MyBool; 10.73/4.48 fsEsOrdering x y = not (esEsOrdering x y); 10.73/4.48 10.73/4.48 ltEsMyInt :: MyInt -> MyInt -> MyBool; 10.73/4.48 ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; 10.73/4.48 10.73/4.48 max0 x y MyTrue = x; 10.73/4.48 10.73/4.48 max1 x y MyTrue = y; 10.73/4.48 max1 x y MyFalse = max0 x y otherwise; 10.73/4.48 10.73/4.48 max2 x y = max1 x y (ltEsMyInt x y); 10.73/4.48 10.73/4.48 maxMyInt :: MyInt -> MyInt -> MyInt; 10.73/4.48 maxMyInt x y = max2 x y; 10.73/4.48 10.73/4.48 maximumMyInt :: List MyInt -> MyInt; 10.73/4.48 maximumMyInt = foldl1 maxMyInt; 10.73/4.48 10.73/4.48 not :: MyBool -> MyBool; 10.73/4.48 not MyTrue = MyFalse; 10.73/4.48 not MyFalse = MyTrue; 10.73/4.48 10.73/4.48 otherwise :: MyBool; 10.73/4.48 otherwise = MyTrue; 10.73/4.48 10.73/4.48 primCmpInt :: MyInt -> MyInt -> Ordering; 10.73/4.48 primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; 10.73/4.48 primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; 10.73/4.48 primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; 10.73/4.48 primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; 10.73/4.48 primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; 10.73/4.49 primCmpInt (Main.Pos x) (Main.Neg y) = GT; 10.73/4.49 primCmpInt (Main.Neg x) (Main.Pos y) = LT; 10.73/4.49 primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; 10.73/4.49 10.73/4.49 primCmpNat :: Main.Nat -> Main.Nat -> Ordering; 10.73/4.49 primCmpNat Main.Zero Main.Zero = EQ; 10.73/4.49 primCmpNat Main.Zero (Main.Succ y) = LT; 10.73/4.49 primCmpNat (Main.Succ x) Main.Zero = GT; 10.73/4.49 primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; 10.73/4.49 10.73/4.49 } 10.73/4.49 10.73/4.49 ---------------------------------------- 10.73/4.49 10.73/4.49 (5) Narrow (SOUND) 10.73/4.49 Haskell To QDPs 10.73/4.49 10.73/4.49 digraph dp_graph { 10.73/4.49 node [outthreshold=100, inthreshold=100];1[label="maximumMyInt",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 10.73/4.49 3[label="maximumMyInt vx3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 10.73/4.49 4[label="foldl1 maxMyInt 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]; 10.73/4.49 601 -> 5[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 602[label="vx3/Nil",fontsize=10,color="white",style="solid",shape="box"];4 -> 602[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 602 -> 6[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 5[label="foldl1 maxMyInt (Cons vx30 vx31)",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 10.73/4.49 6[label="foldl1 maxMyInt Nil",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 10.73/4.49 7[label="foldl maxMyInt 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]; 10.73/4.49 603 -> 9[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 604[label="vx31/Nil",fontsize=10,color="white",style="solid",shape="box"];7 -> 604[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 604 -> 10[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 8[label="error []",fontsize=16,color="red",shape="box"];9[label="foldl maxMyInt vx30 (Cons vx310 vx311)",fontsize=16,color="black",shape="box"];9 -> 11[label="",style="solid", color="black", weight=3]; 10.73/4.49 10[label="foldl maxMyInt vx30 Nil",fontsize=16,color="black",shape="box"];10 -> 12[label="",style="solid", color="black", weight=3]; 10.73/4.49 11 -> 7[label="",style="dashed", color="red", weight=0]; 10.73/4.49 11[label="foldl maxMyInt (maxMyInt vx30 vx310) vx311",fontsize=16,color="magenta"];11 -> 13[label="",style="dashed", color="magenta", weight=3]; 10.73/4.49 11 -> 14[label="",style="dashed", color="magenta", weight=3]; 10.73/4.49 12[label="vx30",fontsize=16,color="green",shape="box"];13[label="vx311",fontsize=16,color="green",shape="box"];14[label="maxMyInt vx30 vx310",fontsize=16,color="black",shape="box"];14 -> 15[label="",style="solid", color="black", weight=3]; 10.73/4.49 15[label="max2 vx30 vx310",fontsize=16,color="black",shape="box"];15 -> 16[label="",style="solid", color="black", weight=3]; 10.73/4.49 16[label="max1 vx30 vx310 (ltEsMyInt vx30 vx310)",fontsize=16,color="black",shape="box"];16 -> 17[label="",style="solid", color="black", weight=3]; 10.73/4.49 17[label="max1 vx30 vx310 (fsEsOrdering (compareMyInt vx30 vx310) GT)",fontsize=16,color="black",shape="box"];17 -> 18[label="",style="solid", color="black", weight=3]; 10.73/4.49 18[label="max1 vx30 vx310 (not (esEsOrdering (compareMyInt vx30 vx310) GT))",fontsize=16,color="black",shape="box"];18 -> 19[label="",style="solid", color="black", weight=3]; 10.73/4.49 19[label="max1 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]; 10.73/4.49 605 -> 20[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 606[label="vx30/Neg vx300",fontsize=10,color="white",style="solid",shape="box"];19 -> 606[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 606 -> 21[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 20[label="max1 (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]; 10.73/4.49 607 -> 22[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 608[label="vx300/Zero",fontsize=10,color="white",style="solid",shape="box"];20 -> 608[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 608 -> 23[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 21[label="max1 (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]; 10.73/4.49 609 -> 24[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 610[label="vx300/Zero",fontsize=10,color="white",style="solid",shape="box"];21 -> 610[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 610 -> 25[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 22[label="max1 (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]; 10.73/4.49 611 -> 26[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 612[label="vx310/Neg vx3100",fontsize=10,color="white",style="solid",shape="box"];22 -> 612[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 612 -> 27[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 23[label="max1 (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]; 10.73/4.49 613 -> 28[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 614[label="vx310/Neg vx3100",fontsize=10,color="white",style="solid",shape="box"];23 -> 614[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 614 -> 29[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 24[label="max1 (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]; 10.73/4.49 615 -> 30[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 616[label="vx310/Neg vx3100",fontsize=10,color="white",style="solid",shape="box"];24 -> 616[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 616 -> 31[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 25[label="max1 (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]; 10.73/4.49 617 -> 32[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 618[label="vx310/Neg vx3100",fontsize=10,color="white",style="solid",shape="box"];25 -> 618[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 618 -> 33[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 26[label="max1 (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]; 10.73/4.49 27[label="max1 (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]; 10.73/4.49 28[label="max1 (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]; 10.73/4.49 619 -> 36[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 620[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];28 -> 620[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 620 -> 37[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 29[label="max1 (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]; 10.73/4.49 621 -> 38[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 622[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];29 -> 622[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 622 -> 39[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 30[label="max1 (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]; 10.73/4.49 31[label="max1 (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]; 10.73/4.49 32[label="max1 (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]; 10.73/4.49 623 -> 42[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 624[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];32 -> 624[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 624 -> 43[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 33[label="max1 (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]; 10.73/4.49 625 -> 44[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 626[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];33 -> 626[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 626 -> 45[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 34[label="max1 (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]; 10.73/4.49 627 -> 46[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 628[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];34 -> 628[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 628 -> 47[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 35[label="max1 (Pos (Succ vx3000)) (Neg vx3100) (not (esEsOrdering GT GT))",fontsize=16,color="black",shape="box"];35 -> 48[label="",style="solid", color="black", weight=3]; 10.73/4.49 36[label="max1 (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]; 10.73/4.49 37[label="max1 (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]; 10.73/4.49 38[label="max1 (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]; 10.73/4.49 39[label="max1 (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]; 10.73/4.49 40[label="max1 (Neg (Succ vx3000)) (Pos vx3100) (not (esEsOrdering LT GT))",fontsize=16,color="black",shape="box"];40 -> 53[label="",style="solid", color="black", weight=3]; 10.73/4.49 41[label="max1 (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]; 10.73/4.49 629 -> 54[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 630[label="vx3100/Zero",fontsize=10,color="white",style="solid",shape="box"];41 -> 630[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 630 -> 55[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 42[label="max1 (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]; 10.73/4.49 43[label="max1 (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]; 10.73/4.49 44[label="max1 (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]; 10.73/4.49 45[label="max1 (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]; 10.73/4.49 46[label="max1 (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]; 10.73/4.49 47[label="max1 (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]; 10.73/4.49 48[label="max1 (Pos (Succ vx3000)) (Neg vx3100) (not MyTrue)",fontsize=16,color="black",shape="box"];48 -> 62[label="",style="solid", color="black", weight=3]; 10.73/4.49 49[label="max1 (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]; 10.73/4.49 50[label="max1 (Pos Zero) (Pos Zero) (not (esEsOrdering EQ GT))",fontsize=16,color="black",shape="box"];50 -> 64[label="",style="solid", color="black", weight=3]; 10.73/4.49 51[label="max1 (Pos Zero) (Neg (Succ vx31000)) (not (esEsOrdering GT GT))",fontsize=16,color="black",shape="box"];51 -> 65[label="",style="solid", color="black", weight=3]; 10.73/4.49 52[label="max1 (Pos Zero) (Neg Zero) (not (esEsOrdering EQ GT))",fontsize=16,color="black",shape="box"];52 -> 66[label="",style="solid", color="black", weight=3]; 10.73/4.49 53[label="max1 (Neg (Succ vx3000)) (Pos vx3100) (not MyFalse)",fontsize=16,color="black",shape="box"];53 -> 67[label="",style="solid", color="black", weight=3]; 10.73/4.49 54[label="max1 (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]; 10.73/4.49 55[label="max1 (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]; 10.73/4.49 56[label="max1 (Neg Zero) (Pos (Succ vx31000)) (not (esEsOrdering LT GT))",fontsize=16,color="black",shape="box"];56 -> 70[label="",style="solid", color="black", weight=3]; 10.73/4.49 57[label="max1 (Neg Zero) (Pos Zero) (not (esEsOrdering EQ GT))",fontsize=16,color="black",shape="box"];57 -> 71[label="",style="solid", color="black", weight=3]; 10.73/4.49 58[label="max1 (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]; 10.73/4.49 59[label="max1 (Neg Zero) (Neg Zero) (not (esEsOrdering EQ GT))",fontsize=16,color="black",shape="box"];59 -> 73[label="",style="solid", color="black", weight=3]; 10.73/4.49 60 -> 463[label="",style="dashed", color="red", weight=0]; 10.73/4.49 60[label="max1 (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]; 10.73/4.49 60 -> 465[label="",style="dashed", color="magenta", weight=3]; 10.73/4.49 60 -> 466[label="",style="dashed", color="magenta", weight=3]; 10.73/4.49 60 -> 467[label="",style="dashed", color="magenta", weight=3]; 10.73/4.49 61[label="max1 (Pos (Succ vx3000)) (Pos Zero) (not (esEsOrdering GT GT))",fontsize=16,color="black",shape="box"];61 -> 76[label="",style="solid", color="black", weight=3]; 10.73/4.49 62[label="max1 (Pos (Succ vx3000)) (Neg vx3100) MyFalse",fontsize=16,color="black",shape="box"];62 -> 77[label="",style="solid", color="black", weight=3]; 10.73/4.49 63[label="max1 (Pos Zero) (Pos (Succ vx31000)) (not (esEsOrdering LT GT))",fontsize=16,color="black",shape="box"];63 -> 78[label="",style="solid", color="black", weight=3]; 10.73/4.49 64[label="max1 (Pos Zero) (Pos Zero) (not MyFalse)",fontsize=16,color="black",shape="box"];64 -> 79[label="",style="solid", color="black", weight=3]; 10.73/4.49 65[label="max1 (Pos Zero) (Neg (Succ vx31000)) (not MyTrue)",fontsize=16,color="black",shape="box"];65 -> 80[label="",style="solid", color="black", weight=3]; 10.73/4.49 66[label="max1 (Pos Zero) (Neg Zero) (not MyFalse)",fontsize=16,color="black",shape="box"];66 -> 81[label="",style="solid", color="black", weight=3]; 10.73/4.49 67[label="max1 (Neg (Succ vx3000)) (Pos vx3100) MyTrue",fontsize=16,color="black",shape="box"];67 -> 82[label="",style="solid", color="black", weight=3]; 10.73/4.49 68 -> 533[label="",style="dashed", color="red", weight=0]; 10.73/4.49 68[label="max1 (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]; 10.73/4.49 68 -> 535[label="",style="dashed", color="magenta", weight=3]; 10.73/4.49 68 -> 536[label="",style="dashed", color="magenta", weight=3]; 10.73/4.49 68 -> 537[label="",style="dashed", color="magenta", weight=3]; 10.73/4.49 69[label="max1 (Neg (Succ vx3000)) (Neg Zero) (not (esEsOrdering LT GT))",fontsize=16,color="black",shape="box"];69 -> 85[label="",style="solid", color="black", weight=3]; 10.73/4.49 70[label="max1 (Neg Zero) (Pos (Succ vx31000)) (not MyFalse)",fontsize=16,color="black",shape="box"];70 -> 86[label="",style="solid", color="black", weight=3]; 10.73/4.49 71[label="max1 (Neg Zero) (Pos Zero) (not MyFalse)",fontsize=16,color="black",shape="box"];71 -> 87[label="",style="solid", color="black", weight=3]; 10.73/4.49 72[label="max1 (Neg Zero) (Neg (Succ vx31000)) (not (esEsOrdering GT GT))",fontsize=16,color="black",shape="box"];72 -> 88[label="",style="solid", color="black", weight=3]; 10.73/4.49 73[label="max1 (Neg Zero) (Neg Zero) (not MyFalse)",fontsize=16,color="black",shape="box"];73 -> 89[label="",style="solid", color="black", weight=3]; 10.73/4.49 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="max1 (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]; 10.73/4.49 631 -> 500[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 632[label="vx42/Zero",fontsize=10,color="white",style="solid",shape="box"];463 -> 632[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 632 -> 501[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 76[label="max1 (Pos (Succ vx3000)) (Pos Zero) (not MyTrue)",fontsize=16,color="black",shape="box"];76 -> 94[label="",style="solid", color="black", weight=3]; 10.73/4.49 77[label="max0 (Pos (Succ vx3000)) (Neg vx3100) otherwise",fontsize=16,color="black",shape="box"];77 -> 95[label="",style="solid", color="black", weight=3]; 10.73/4.49 78[label="max1 (Pos Zero) (Pos (Succ vx31000)) (not MyFalse)",fontsize=16,color="black",shape="box"];78 -> 96[label="",style="solid", color="black", weight=3]; 10.73/4.49 79[label="max1 (Pos Zero) (Pos Zero) MyTrue",fontsize=16,color="black",shape="box"];79 -> 97[label="",style="solid", color="black", weight=3]; 10.73/4.49 80[label="max1 (Pos Zero) (Neg (Succ vx31000)) MyFalse",fontsize=16,color="black",shape="box"];80 -> 98[label="",style="solid", color="black", weight=3]; 10.73/4.49 81[label="max1 (Pos Zero) (Neg Zero) MyTrue",fontsize=16,color="black",shape="box"];81 -> 99[label="",style="solid", color="black", weight=3]; 10.73/4.49 82[label="Pos vx3100",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="max1 (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]; 10.73/4.49 633 -> 574[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 634[label="vx51/Zero",fontsize=10,color="white",style="solid",shape="box"];533 -> 634[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 634 -> 575[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 85[label="max1 (Neg (Succ vx3000)) (Neg Zero) (not MyFalse)",fontsize=16,color="black",shape="box"];85 -> 104[label="",style="solid", color="black", weight=3]; 10.73/4.49 86[label="max1 (Neg Zero) (Pos (Succ vx31000)) MyTrue",fontsize=16,color="black",shape="box"];86 -> 105[label="",style="solid", color="black", weight=3]; 10.73/4.49 87[label="max1 (Neg Zero) (Pos Zero) MyTrue",fontsize=16,color="black",shape="box"];87 -> 106[label="",style="solid", color="black", weight=3]; 10.73/4.49 88[label="max1 (Neg Zero) (Neg (Succ vx31000)) (not MyTrue)",fontsize=16,color="black",shape="box"];88 -> 107[label="",style="solid", color="black", weight=3]; 10.73/4.49 89[label="max1 (Neg Zero) (Neg Zero) MyTrue",fontsize=16,color="black",shape="box"];89 -> 108[label="",style="solid", color="black", weight=3]; 10.73/4.49 500[label="max1 (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]; 10.73/4.49 635 -> 506[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 636[label="vx43/Zero",fontsize=10,color="white",style="solid",shape="box"];500 -> 636[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 636 -> 507[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 501[label="max1 (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]; 10.73/4.49 637 -> 508[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 638[label="vx43/Zero",fontsize=10,color="white",style="solid",shape="box"];501 -> 638[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 638 -> 509[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 94[label="max1 (Pos (Succ vx3000)) (Pos Zero) MyFalse",fontsize=16,color="black",shape="box"];94 -> 113[label="",style="solid", color="black", weight=3]; 10.73/4.49 95[label="max0 (Pos (Succ vx3000)) (Neg vx3100) MyTrue",fontsize=16,color="black",shape="box"];95 -> 114[label="",style="solid", color="black", weight=3]; 10.73/4.49 96[label="max1 (Pos Zero) (Pos (Succ vx31000)) MyTrue",fontsize=16,color="black",shape="box"];96 -> 115[label="",style="solid", color="black", weight=3]; 10.73/4.49 97[label="Pos Zero",fontsize=16,color="green",shape="box"];98[label="max0 (Pos Zero) (Neg (Succ vx31000)) otherwise",fontsize=16,color="black",shape="box"];98 -> 116[label="",style="solid", color="black", weight=3]; 10.73/4.49 99[label="Neg Zero",fontsize=16,color="green",shape="box"];574[label="max1 (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]; 10.73/4.49 639 -> 578[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 640[label="vx52/Zero",fontsize=10,color="white",style="solid",shape="box"];574 -> 640[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 640 -> 579[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 575[label="max1 (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]; 10.73/4.49 641 -> 580[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 642[label="vx52/Zero",fontsize=10,color="white",style="solid",shape="box"];575 -> 642[label="",style="solid", color="burlywood", weight=9]; 10.73/4.49 642 -> 581[label="",style="solid", color="burlywood", weight=3]; 10.73/4.49 104[label="max1 (Neg (Succ vx3000)) (Neg Zero) MyTrue",fontsize=16,color="black",shape="box"];104 -> 121[label="",style="solid", color="black", weight=3]; 10.73/4.49 105[label="Pos (Succ vx31000)",fontsize=16,color="green",shape="box"];106[label="Pos Zero",fontsize=16,color="green",shape="box"];107[label="max1 (Neg Zero) (Neg (Succ vx31000)) MyFalse",fontsize=16,color="black",shape="box"];107 -> 122[label="",style="solid", color="black", weight=3]; 10.73/4.49 108[label="Neg Zero",fontsize=16,color="green",shape="box"];506[label="max1 (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]; 10.73/4.49 507[label="max1 (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]; 10.73/4.49 508[label="max1 (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]; 10.73/4.49 509[label="max1 (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]; 10.73/4.49 113[label="max0 (Pos (Succ vx3000)) (Pos Zero) otherwise",fontsize=16,color="black",shape="box"];113 -> 128[label="",style="solid", color="black", weight=3]; 10.73/4.49 114[label="Pos (Succ vx3000)",fontsize=16,color="green",shape="box"];115[label="Pos (Succ vx31000)",fontsize=16,color="green",shape="box"];116[label="max0 (Pos Zero) (Neg (Succ vx31000)) MyTrue",fontsize=16,color="black",shape="box"];116 -> 129[label="",style="solid", color="black", weight=3]; 10.73/4.49 578[label="max1 (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]; 10.73/4.49 579[label="max1 (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]; 10.73/4.49 580[label="max1 (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]; 10.73/4.49 581[label="max1 (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]; 10.73/4.49 121[label="Neg Zero",fontsize=16,color="green",shape="box"];122[label="max0 (Neg Zero) (Neg (Succ vx31000)) otherwise",fontsize=16,color="black",shape="box"];122 -> 135[label="",style="solid", color="black", weight=3]; 10.73/4.49 514 -> 463[label="",style="dashed", color="red", weight=0]; 10.73/4.49 514[label="max1 (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]; 10.73/4.49 514 -> 523[label="",style="dashed", color="magenta", weight=3]; 10.73/4.49 515[label="max1 (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]; 10.73/4.49 516[label="max1 (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]; 10.73/4.49 517[label="max1 (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]; 10.73/4.49 128[label="max0 (Pos (Succ vx3000)) (Pos Zero) MyTrue",fontsize=16,color="black",shape="box"];128 -> 143[label="",style="solid", color="black", weight=3]; 10.73/4.49 129[label="Pos Zero",fontsize=16,color="green",shape="box"];584 -> 533[label="",style="dashed", color="red", weight=0]; 10.73/4.49 584[label="max1 (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]; 10.73/4.49 584 -> 590[label="",style="dashed", color="magenta", weight=3]; 10.73/4.49 585[label="max1 (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]; 10.73/4.49 586[label="max1 (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]; 10.73/4.49 587[label="max1 (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]; 10.73/4.49 135[label="max0 (Neg Zero) (Neg (Succ vx31000)) MyTrue",fontsize=16,color="black",shape="box"];135 -> 151[label="",style="solid", color="black", weight=3]; 10.73/4.49 522[label="vx420",fontsize=16,color="green",shape="box"];523[label="vx430",fontsize=16,color="green",shape="box"];524[label="max1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not MyTrue)",fontsize=16,color="black",shape="box"];524 -> 576[label="",style="solid", color="black", weight=3]; 10.73/4.49 525[label="max1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not MyFalse)",fontsize=16,color="black",shape="triangle"];525 -> 577[label="",style="solid", color="black", weight=3]; 10.73/4.49 526 -> 525[label="",style="dashed", color="red", weight=0]; 10.73/4.49 526[label="max1 (Pos (Succ vx40)) (Pos (Succ vx41)) (not MyFalse)",fontsize=16,color="magenta"];143[label="Pos (Succ vx3000)",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="max1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not MyTrue)",fontsize=16,color="black",shape="box"];591 -> 595[label="",style="solid", color="black", weight=3]; 10.73/4.49 592[label="max1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not MyFalse)",fontsize=16,color="black",shape="triangle"];592 -> 596[label="",style="solid", color="black", weight=3]; 10.73/4.49 593 -> 592[label="",style="dashed", color="red", weight=0]; 10.73/4.49 593[label="max1 (Neg (Succ vx49)) (Neg (Succ vx50)) (not MyFalse)",fontsize=16,color="magenta"];151[label="Neg Zero",fontsize=16,color="green",shape="box"];576[label="max1 (Pos (Succ vx40)) (Pos (Succ vx41)) MyFalse",fontsize=16,color="black",shape="box"];576 -> 582[label="",style="solid", color="black", weight=3]; 10.73/4.49 577[label="max1 (Pos (Succ vx40)) (Pos (Succ vx41)) MyTrue",fontsize=16,color="black",shape="box"];577 -> 583[label="",style="solid", color="black", weight=3]; 10.73/4.49 595[label="max1 (Neg (Succ vx49)) (Neg (Succ vx50)) MyFalse",fontsize=16,color="black",shape="box"];595 -> 597[label="",style="solid", color="black", weight=3]; 10.73/4.49 596[label="max1 (Neg (Succ vx49)) (Neg (Succ vx50)) MyTrue",fontsize=16,color="black",shape="box"];596 -> 598[label="",style="solid", color="black", weight=3]; 10.73/4.49 582[label="max0 (Pos (Succ vx40)) (Pos (Succ vx41)) otherwise",fontsize=16,color="black",shape="box"];582 -> 588[label="",style="solid", color="black", weight=3]; 10.73/4.49 583[label="Pos (Succ vx41)",fontsize=16,color="green",shape="box"];597[label="max0 (Neg (Succ vx49)) (Neg (Succ vx50)) otherwise",fontsize=16,color="black",shape="box"];597 -> 599[label="",style="solid", color="black", weight=3]; 10.73/4.49 598[label="Neg (Succ vx50)",fontsize=16,color="green",shape="box"];588[label="max0 (Pos (Succ vx40)) (Pos (Succ vx41)) MyTrue",fontsize=16,color="black",shape="box"];588 -> 594[label="",style="solid", color="black", weight=3]; 10.73/4.49 599[label="max0 (Neg (Succ vx49)) (Neg (Succ vx50)) MyTrue",fontsize=16,color="black",shape="box"];599 -> 600[label="",style="solid", color="black", weight=3]; 10.73/4.49 594[label="Pos (Succ vx40)",fontsize=16,color="green",shape="box"];600[label="Neg (Succ vx49)",fontsize=16,color="green",shape="box"];} 10.73/4.49 10.73/4.49 ---------------------------------------- 10.73/4.49 10.73/4.49 (6) 10.73/4.49 Complex Obligation (AND) 10.73/4.49 10.73/4.49 ---------------------------------------- 10.73/4.49 10.73/4.49 (7) 10.73/4.49 Obligation: 10.73/4.49 Q DP problem: 10.73/4.49 The TRS P consists of the following rules: 10.73/4.49 10.73/4.49 new_max1(vx49, vx50, Main.Succ(vx510), Main.Succ(vx520)) -> new_max1(vx49, vx50, vx510, vx520) 10.73/4.49 10.73/4.49 R is empty. 10.73/4.49 Q is empty. 10.73/4.49 We have to consider all minimal (P,Q,R)-chains. 10.73/4.49 ---------------------------------------- 10.73/4.49 10.73/4.49 (8) QDPSizeChangeProof (EQUIVALENT) 10.73/4.49 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 10.73/4.49 10.73/4.49 From the DPs we obtained the following set of size-change graphs: 10.73/4.49 *new_max1(vx49, vx50, Main.Succ(vx510), Main.Succ(vx520)) -> new_max1(vx49, vx50, vx510, vx520) 10.73/4.49 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 10.73/4.49 10.73/4.49 10.73/4.49 ---------------------------------------- 10.73/4.49 10.73/4.49 (9) 10.73/4.49 YES 10.73/4.49 10.73/4.49 ---------------------------------------- 10.73/4.49 10.73/4.49 (10) 10.73/4.49 Obligation: 10.73/4.49 Q DP problem: 10.73/4.49 The TRS P consists of the following rules: 10.73/4.49 10.73/4.49 new_max10(vx40, vx41, Main.Succ(vx420), Main.Succ(vx430)) -> new_max10(vx40, vx41, vx420, vx430) 10.73/4.49 10.73/4.49 R is empty. 10.73/4.49 Q is empty. 10.73/4.49 We have to consider all minimal (P,Q,R)-chains. 10.73/4.49 ---------------------------------------- 10.73/4.49 10.73/4.49 (11) QDPSizeChangeProof (EQUIVALENT) 10.73/4.49 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 10.73/4.49 10.73/4.49 From the DPs we obtained the following set of size-change graphs: 10.73/4.49 *new_max10(vx40, vx41, Main.Succ(vx420), Main.Succ(vx430)) -> new_max10(vx40, vx41, vx420, vx430) 10.73/4.49 The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 10.73/4.49 10.73/4.49 10.73/4.49 ---------------------------------------- 10.73/4.49 10.73/4.49 (12) 10.73/4.49 YES 10.73/4.49 10.73/4.49 ---------------------------------------- 10.73/4.49 10.73/4.49 (13) 10.73/4.49 Obligation: 10.73/4.49 Q DP problem: 10.73/4.49 The TRS P consists of the following rules: 10.73/4.49 10.73/4.49 new_foldl(vx30, Cons(vx310, vx311)) -> new_foldl(new_max11(vx30, vx310), vx311) 10.73/4.49 10.73/4.49 The TRS R consists of the following rules: 10.73/4.49 10.73/4.49 new_max14(vx49, vx50, Main.Succ(vx510), Main.Succ(vx520)) -> new_max14(vx49, vx50, vx510, vx520) 10.73/4.49 new_max11(Main.Pos(Main.Zero), Main.Neg(Main.Succ(vx31000))) -> Main.Pos(Main.Zero) 10.73/4.49 new_max15(vx40, vx41, Main.Zero, Main.Zero) -> new_max12(vx40, vx41) 10.73/4.49 new_max11(Main.Neg(Main.Zero), Main.Pos(Main.Succ(vx31000))) -> Main.Pos(Main.Succ(vx31000)) 10.73/4.49 new_max11(Main.Pos(Main.Succ(vx3000)), Main.Pos(Main.Succ(vx31000))) -> new_max15(vx3000, vx31000, vx3000, vx31000) 10.73/4.49 new_max14(vx49, vx50, Main.Succ(vx510), Main.Zero) -> Main.Neg(Main.Succ(vx49)) 10.73/4.49 new_max11(Main.Neg(Main.Succ(vx3000)), Main.Neg(Main.Succ(vx31000))) -> new_max14(vx3000, vx31000, vx31000, vx3000) 10.73/4.49 new_max11(Main.Pos(Main.Succ(vx3000)), Main.Neg(vx3100)) -> Main.Pos(Main.Succ(vx3000)) 10.73/4.49 new_max11(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> Main.Pos(Main.Zero) 10.73/4.49 new_max11(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> Main.Neg(Main.Zero) 10.73/4.49 new_max14(vx49, vx50, Main.Zero, Main.Succ(vx520)) -> new_max13(vx49, vx50) 10.73/4.49 new_max11(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> Main.Neg(Main.Zero) 10.73/4.49 new_max15(vx40, vx41, Main.Succ(vx420), Main.Succ(vx430)) -> new_max15(vx40, vx41, vx420, vx430) 10.73/4.49 new_max12(vx40, vx41) -> Main.Pos(Main.Succ(vx41)) 10.73/4.49 new_max15(vx40, vx41, Main.Succ(vx420), Main.Zero) -> Main.Pos(Main.Succ(vx40)) 10.73/4.49 new_max11(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> Main.Pos(Main.Zero) 10.73/4.49 new_max11(Main.Pos(Main.Succ(vx3000)), Main.Pos(Main.Zero)) -> Main.Pos(Main.Succ(vx3000)) 10.73/4.49 new_max11(Main.Pos(Main.Zero), Main.Pos(Main.Succ(vx31000))) -> Main.Pos(Main.Succ(vx31000)) 10.73/4.49 new_max11(Main.Neg(Main.Succ(vx3000)), Main.Pos(vx3100)) -> Main.Pos(vx3100) 10.73/4.49 new_max14(vx49, vx50, Main.Zero, Main.Zero) -> new_max13(vx49, vx50) 10.73/4.49 new_max13(vx49, vx50) -> Main.Neg(Main.Succ(vx50)) 10.73/4.49 new_max11(Main.Neg(Main.Succ(vx3000)), Main.Neg(Main.Zero)) -> Main.Neg(Main.Zero) 10.73/4.49 new_max11(Main.Neg(Main.Zero), Main.Neg(Main.Succ(vx31000))) -> Main.Neg(Main.Zero) 10.73/4.49 new_max15(vx40, vx41, Main.Zero, Main.Succ(vx430)) -> new_max12(vx40, vx41) 10.73/4.49 10.73/4.49 The set Q consists of the following terms: 10.73/4.49 10.73/4.49 new_max11(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0))) 10.73/4.49 new_max11(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) 10.73/4.49 new_max14(x0, x1, Main.Zero, Main.Succ(x2)) 10.73/4.49 new_max14(x0, x1, Main.Succ(x2), Main.Succ(x3)) 10.73/4.49 new_max15(x0, x1, Main.Zero, Main.Zero) 10.73/4.49 new_max15(x0, x1, Main.Succ(x2), Main.Zero) 10.73/4.49 new_max14(x0, x1, Main.Zero, Main.Zero) 10.73/4.49 new_max11(Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0))) 10.73/4.49 new_max11(Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0))) 10.73/4.49 new_max12(x0, x1) 10.73/4.49 new_max11(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x1))) 10.73/4.49 new_max11(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) 10.73/4.49 new_max15(x0, x1, Main.Succ(x2), Main.Succ(x3)) 10.73/4.49 new_max13(x0, x1) 10.73/4.49 new_max15(x0, x1, Main.Zero, Main.Succ(x2)) 10.73/4.49 new_max11(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0))) 10.73/4.49 new_max11(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) 10.73/4.49 new_max14(x0, x1, Main.Succ(x2), Main.Zero) 10.73/4.49 new_max11(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1))) 10.73/4.49 new_max11(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) 10.73/4.49 new_max11(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) 10.73/4.49 new_max11(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) 10.73/4.49 new_max11(Main.Neg(Main.Succ(x0)), Main.Pos(x1)) 10.73/4.49 new_max11(Main.Pos(Main.Succ(x0)), Main.Neg(x1)) 10.73/4.49 10.73/4.49 We have to consider all minimal (P,Q,R)-chains. 10.73/4.49 ---------------------------------------- 10.73/4.49 10.73/4.49 (14) QDPSizeChangeProof (EQUIVALENT) 10.73/4.49 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 10.73/4.49 10.73/4.49 From the DPs we obtained the following set of size-change graphs: 10.73/4.49 *new_foldl(vx30, Cons(vx310, vx311)) -> new_foldl(new_max11(vx30, vx310), vx311) 10.73/4.49 The graph contains the following edges 2 > 2 10.73/4.49 10.73/4.49 10.73/4.49 ---------------------------------------- 10.73/4.49 10.73/4.49 (15) 10.73/4.49 YES 11.02/4.54 EOF