/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) DependencyGraphProof [EQUIVALENT, 0 ms] (9) AND (10) QDP (11) TransformationProof [EQUIVALENT, 0 ms] (12) QDP (13) UsableRulesProof [EQUIVALENT, 0 ms] (14) QDP (15) QReductionProof [EQUIVALENT, 0 ms] (16) QDP (17) TransformationProof [EQUIVALENT, 0 ms] (18) QDP (19) UsableRulesProof [EQUIVALENT, 0 ms] (20) QDP (21) QReductionProof [EQUIVALENT, 0 ms] (22) QDP (23) TransformationProof [EQUIVALENT, 0 ms] (24) QDP (25) TransformationProof [EQUIVALENT, 0 ms] (26) QDP (27) DependencyGraphProof [EQUIVALENT, 0 ms] (28) QDP (29) UsableRulesProof [EQUIVALENT, 0 ms] (30) QDP (31) QReductionProof [EQUIVALENT, 0 ms] (32) QDP (33) TransformationProof [EQUIVALENT, 0 ms] (34) QDP (35) UsableRulesProof [EQUIVALENT, 0 ms] (36) QDP (37) QReductionProof [EQUIVALENT, 0 ms] (38) QDP (39) QDPSizeChangeProof [EQUIVALENT, 0 ms] (40) YES (41) QDP (42) QDPOrderProof [EQUIVALENT, 46 ms] (43) QDP (44) DependencyGraphProof [EQUIVALENT, 0 ms] (45) QDP (46) QDPSizeChangeProof [EQUIVALENT, 0 ms] (47) YES (48) QDP (49) DependencyGraphProof [EQUIVALENT, 0 ms] (50) AND (51) QDP (52) MRRProof [EQUIVALENT, 0 ms] (53) QDP (54) PisEmptyProof [EQUIVALENT, 0 ms] (55) YES (56) QDP (57) QDPOrderProof [EQUIVALENT, 10 ms] (58) QDP (59) DependencyGraphProof [EQUIVALENT, 0 ms] (60) QDP (61) QDPSizeChangeProof [EQUIVALENT, 0 ms] (62) YES (63) QDP (64) QDPSizeChangeProof [EQUIVALENT, 0 ms] (65) YES ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; data Tup2 b a = Tup2 b a ; error :: a; error = stop MyTrue; primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; primDivNatS Main.Zero Main.Zero = Main.error; primDivNatS (Main.Succ x) Main.Zero = Main.error; primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); primDivNatS Main.Zero (Main.Succ x) = Main.Zero; primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); primDivNatS0 x y MyFalse = Main.Zero; primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; primGEqNatS (Main.Succ x) Main.Zero = MyTrue; primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; primGEqNatS Main.Zero (Main.Succ x) = MyFalse; primGEqNatS Main.Zero Main.Zero = MyTrue; primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; primMinusNatS x Main.Zero = x; primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; primModNatS Main.Zero Main.Zero = Main.error; primModNatS Main.Zero (Main.Succ x) = Main.Zero; primModNatS (Main.Succ x) Main.Zero = Main.error; primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); primModNatS0 x y MyFalse = Main.Succ x; primQrmInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; primQrmInt x y = Tup2 (primQuotInt x y) (primRemInt x y); primQuotInt :: MyInt -> MyInt -> MyInt; primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primQuotInt vx vy = Main.error; primRemInt :: MyInt -> MyInt -> MyInt; primRemInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primRemInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primRemInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primRemInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primRemInt vv vw = Main.error; quotRemMyInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; quotRemMyInt = primQrmInt; stop :: MyBool -> a; stop MyFalse = stop MyFalse; } ---------------------------------------- (1) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; data Tup2 a b = Tup2 a b ; error :: a; error = stop MyTrue; primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; primDivNatS Main.Zero Main.Zero = Main.error; primDivNatS (Main.Succ x) Main.Zero = Main.error; primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); primDivNatS Main.Zero (Main.Succ x) = Main.Zero; primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); primDivNatS0 x y MyFalse = Main.Zero; primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; primGEqNatS (Main.Succ x) Main.Zero = MyTrue; primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; primGEqNatS Main.Zero (Main.Succ x) = MyFalse; primGEqNatS Main.Zero Main.Zero = MyTrue; primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; primMinusNatS x Main.Zero = x; primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; primModNatS Main.Zero Main.Zero = Main.error; primModNatS Main.Zero (Main.Succ x) = Main.Zero; primModNatS (Main.Succ x) Main.Zero = Main.error; primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); primModNatS0 x y MyFalse = Main.Succ x; primQrmInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; primQrmInt x y = Tup2 (primQuotInt x y) (primRemInt x y); primQuotInt :: MyInt -> MyInt -> MyInt; primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primQuotInt vx vy = Main.error; primRemInt :: MyInt -> MyInt -> MyInt; primRemInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primRemInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primRemInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primRemInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primRemInt vv vw = Main.error; quotRemMyInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; quotRemMyInt = primQrmInt; stop :: MyBool -> a; stop MyFalse = stop MyFalse; } ---------------------------------------- (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 MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; data Tup2 a b = Tup2 a b ; error :: a; error = stop MyTrue; primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; primDivNatS Main.Zero Main.Zero = Main.error; primDivNatS (Main.Succ x) Main.Zero = Main.error; primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); primDivNatS Main.Zero (Main.Succ x) = Main.Zero; primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); primDivNatS0 x y MyFalse = Main.Zero; primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; primGEqNatS (Main.Succ x) Main.Zero = MyTrue; primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; primGEqNatS Main.Zero (Main.Succ x) = MyFalse; primGEqNatS Main.Zero Main.Zero = MyTrue; primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; primMinusNatS x Main.Zero = x; primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; primModNatS Main.Zero Main.Zero = Main.error; primModNatS Main.Zero (Main.Succ x) = Main.Zero; primModNatS (Main.Succ x) Main.Zero = Main.error; primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); primModNatS0 x y MyFalse = Main.Succ x; primQrmInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; primQrmInt x y = Tup2 (primQuotInt x y) (primRemInt x y); primQuotInt :: MyInt -> MyInt -> MyInt; primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primQuotInt vx vy = Main.error; primRemInt :: MyInt -> MyInt -> MyInt; primRemInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primRemInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primRemInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primRemInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primRemInt vv vw = Main.error; quotRemMyInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; quotRemMyInt = primQrmInt; stop :: MyBool -> a; stop MyFalse = stop MyFalse; } ---------------------------------------- (5) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="quotRemMyInt",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="quotRemMyInt wv3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="quotRemMyInt wv3 wv4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="primQrmInt wv3 wv4",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 6[label="Tup2 (primQuotInt wv3 wv4) (primRemInt wv3 wv4)",fontsize=16,color="green",shape="box"];6 -> 7[label="",style="dashed", color="green", weight=3]; 6 -> 8[label="",style="dashed", color="green", weight=3]; 7[label="primQuotInt wv3 wv4",fontsize=16,color="burlywood",shape="box"];659[label="wv3/Pos wv30",fontsize=10,color="white",style="solid",shape="box"];7 -> 659[label="",style="solid", color="burlywood", weight=9]; 659 -> 9[label="",style="solid", color="burlywood", weight=3]; 660[label="wv3/Neg wv30",fontsize=10,color="white",style="solid",shape="box"];7 -> 660[label="",style="solid", color="burlywood", weight=9]; 660 -> 10[label="",style="solid", color="burlywood", weight=3]; 8[label="primRemInt wv3 wv4",fontsize=16,color="burlywood",shape="box"];661[label="wv3/Pos wv30",fontsize=10,color="white",style="solid",shape="box"];8 -> 661[label="",style="solid", color="burlywood", weight=9]; 661 -> 11[label="",style="solid", color="burlywood", weight=3]; 662[label="wv3/Neg wv30",fontsize=10,color="white",style="solid",shape="box"];8 -> 662[label="",style="solid", color="burlywood", weight=9]; 662 -> 12[label="",style="solid", color="burlywood", weight=3]; 9[label="primQuotInt (Pos wv30) wv4",fontsize=16,color="burlywood",shape="box"];663[label="wv4/Pos wv40",fontsize=10,color="white",style="solid",shape="box"];9 -> 663[label="",style="solid", color="burlywood", weight=9]; 663 -> 13[label="",style="solid", color="burlywood", weight=3]; 664[label="wv4/Neg wv40",fontsize=10,color="white",style="solid",shape="box"];9 -> 664[label="",style="solid", color="burlywood", weight=9]; 664 -> 14[label="",style="solid", color="burlywood", weight=3]; 10[label="primQuotInt (Neg wv30) wv4",fontsize=16,color="burlywood",shape="box"];665[label="wv4/Pos wv40",fontsize=10,color="white",style="solid",shape="box"];10 -> 665[label="",style="solid", color="burlywood", weight=9]; 665 -> 15[label="",style="solid", color="burlywood", weight=3]; 666[label="wv4/Neg wv40",fontsize=10,color="white",style="solid",shape="box"];10 -> 666[label="",style="solid", color="burlywood", weight=9]; 666 -> 16[label="",style="solid", color="burlywood", weight=3]; 11[label="primRemInt (Pos wv30) wv4",fontsize=16,color="burlywood",shape="box"];667[label="wv4/Pos wv40",fontsize=10,color="white",style="solid",shape="box"];11 -> 667[label="",style="solid", color="burlywood", weight=9]; 667 -> 17[label="",style="solid", color="burlywood", weight=3]; 668[label="wv4/Neg wv40",fontsize=10,color="white",style="solid",shape="box"];11 -> 668[label="",style="solid", color="burlywood", weight=9]; 668 -> 18[label="",style="solid", color="burlywood", weight=3]; 12[label="primRemInt (Neg wv30) wv4",fontsize=16,color="burlywood",shape="box"];669[label="wv4/Pos wv40",fontsize=10,color="white",style="solid",shape="box"];12 -> 669[label="",style="solid", color="burlywood", weight=9]; 669 -> 19[label="",style="solid", color="burlywood", weight=3]; 670[label="wv4/Neg wv40",fontsize=10,color="white",style="solid",shape="box"];12 -> 670[label="",style="solid", color="burlywood", weight=9]; 670 -> 20[label="",style="solid", color="burlywood", weight=3]; 13[label="primQuotInt (Pos wv30) (Pos wv40)",fontsize=16,color="burlywood",shape="box"];671[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];13 -> 671[label="",style="solid", color="burlywood", weight=9]; 671 -> 21[label="",style="solid", color="burlywood", weight=3]; 672[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];13 -> 672[label="",style="solid", color="burlywood", weight=9]; 672 -> 22[label="",style="solid", color="burlywood", weight=3]; 14[label="primQuotInt (Pos wv30) (Neg wv40)",fontsize=16,color="burlywood",shape="box"];673[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];14 -> 673[label="",style="solid", color="burlywood", weight=9]; 673 -> 23[label="",style="solid", color="burlywood", weight=3]; 674[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];14 -> 674[label="",style="solid", color="burlywood", weight=9]; 674 -> 24[label="",style="solid", color="burlywood", weight=3]; 15[label="primQuotInt (Neg wv30) (Pos wv40)",fontsize=16,color="burlywood",shape="box"];675[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];15 -> 675[label="",style="solid", color="burlywood", weight=9]; 675 -> 25[label="",style="solid", color="burlywood", weight=3]; 676[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];15 -> 676[label="",style="solid", color="burlywood", weight=9]; 676 -> 26[label="",style="solid", color="burlywood", weight=3]; 16[label="primQuotInt (Neg wv30) (Neg wv40)",fontsize=16,color="burlywood",shape="box"];677[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];16 -> 677[label="",style="solid", color="burlywood", weight=9]; 677 -> 27[label="",style="solid", color="burlywood", weight=3]; 678[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];16 -> 678[label="",style="solid", color="burlywood", weight=9]; 678 -> 28[label="",style="solid", color="burlywood", weight=3]; 17[label="primRemInt (Pos wv30) (Pos wv40)",fontsize=16,color="burlywood",shape="box"];679[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];17 -> 679[label="",style="solid", color="burlywood", weight=9]; 679 -> 29[label="",style="solid", color="burlywood", weight=3]; 680[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];17 -> 680[label="",style="solid", color="burlywood", weight=9]; 680 -> 30[label="",style="solid", color="burlywood", weight=3]; 18[label="primRemInt (Pos wv30) (Neg wv40)",fontsize=16,color="burlywood",shape="box"];681[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];18 -> 681[label="",style="solid", color="burlywood", weight=9]; 681 -> 31[label="",style="solid", color="burlywood", weight=3]; 682[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];18 -> 682[label="",style="solid", color="burlywood", weight=9]; 682 -> 32[label="",style="solid", color="burlywood", weight=3]; 19[label="primRemInt (Neg wv30) (Pos wv40)",fontsize=16,color="burlywood",shape="box"];683[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];19 -> 683[label="",style="solid", color="burlywood", weight=9]; 683 -> 33[label="",style="solid", color="burlywood", weight=3]; 684[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];19 -> 684[label="",style="solid", color="burlywood", weight=9]; 684 -> 34[label="",style="solid", color="burlywood", weight=3]; 20[label="primRemInt (Neg wv30) (Neg wv40)",fontsize=16,color="burlywood",shape="box"];685[label="wv40/Succ wv400",fontsize=10,color="white",style="solid",shape="box"];20 -> 685[label="",style="solid", color="burlywood", weight=9]; 685 -> 35[label="",style="solid", color="burlywood", weight=3]; 686[label="wv40/Zero",fontsize=10,color="white",style="solid",shape="box"];20 -> 686[label="",style="solid", color="burlywood", weight=9]; 686 -> 36[label="",style="solid", color="burlywood", weight=3]; 21[label="primQuotInt (Pos wv30) (Pos (Succ wv400))",fontsize=16,color="black",shape="box"];21 -> 37[label="",style="solid", color="black", weight=3]; 22[label="primQuotInt (Pos wv30) (Pos Zero)",fontsize=16,color="black",shape="box"];22 -> 38[label="",style="solid", color="black", weight=3]; 23[label="primQuotInt (Pos wv30) (Neg (Succ wv400))",fontsize=16,color="black",shape="box"];23 -> 39[label="",style="solid", color="black", weight=3]; 24[label="primQuotInt (Pos wv30) (Neg Zero)",fontsize=16,color="black",shape="box"];24 -> 40[label="",style="solid", color="black", weight=3]; 25[label="primQuotInt (Neg wv30) (Pos (Succ wv400))",fontsize=16,color="black",shape="box"];25 -> 41[label="",style="solid", color="black", weight=3]; 26[label="primQuotInt (Neg wv30) (Pos Zero)",fontsize=16,color="black",shape="box"];26 -> 42[label="",style="solid", color="black", weight=3]; 27[label="primQuotInt (Neg wv30) (Neg (Succ wv400))",fontsize=16,color="black",shape="box"];27 -> 43[label="",style="solid", color="black", weight=3]; 28[label="primQuotInt (Neg wv30) (Neg Zero)",fontsize=16,color="black",shape="box"];28 -> 44[label="",style="solid", color="black", weight=3]; 29[label="primRemInt (Pos wv30) (Pos (Succ wv400))",fontsize=16,color="black",shape="box"];29 -> 45[label="",style="solid", color="black", weight=3]; 30[label="primRemInt (Pos wv30) (Pos Zero)",fontsize=16,color="black",shape="box"];30 -> 46[label="",style="solid", color="black", weight=3]; 31[label="primRemInt (Pos wv30) (Neg (Succ wv400))",fontsize=16,color="black",shape="box"];31 -> 47[label="",style="solid", color="black", weight=3]; 32[label="primRemInt (Pos wv30) (Neg Zero)",fontsize=16,color="black",shape="box"];32 -> 48[label="",style="solid", color="black", weight=3]; 33[label="primRemInt (Neg wv30) (Pos (Succ wv400))",fontsize=16,color="black",shape="box"];33 -> 49[label="",style="solid", color="black", weight=3]; 34[label="primRemInt (Neg wv30) (Pos Zero)",fontsize=16,color="black",shape="box"];34 -> 50[label="",style="solid", color="black", weight=3]; 35[label="primRemInt (Neg wv30) (Neg (Succ wv400))",fontsize=16,color="black",shape="box"];35 -> 51[label="",style="solid", color="black", weight=3]; 36[label="primRemInt (Neg wv30) (Neg Zero)",fontsize=16,color="black",shape="box"];36 -> 52[label="",style="solid", color="black", weight=3]; 37[label="Pos (primDivNatS wv30 (Succ wv400))",fontsize=16,color="green",shape="box"];37 -> 53[label="",style="dashed", color="green", weight=3]; 38[label="error",fontsize=16,color="black",shape="triangle"];38 -> 54[label="",style="solid", color="black", weight=3]; 39[label="Neg (primDivNatS wv30 (Succ wv400))",fontsize=16,color="green",shape="box"];39 -> 55[label="",style="dashed", color="green", weight=3]; 40 -> 38[label="",style="dashed", color="red", weight=0]; 40[label="error",fontsize=16,color="magenta"];41[label="Neg (primDivNatS wv30 (Succ wv400))",fontsize=16,color="green",shape="box"];41 -> 56[label="",style="dashed", color="green", weight=3]; 42 -> 38[label="",style="dashed", color="red", weight=0]; 42[label="error",fontsize=16,color="magenta"];43[label="Pos (primDivNatS wv30 (Succ wv400))",fontsize=16,color="green",shape="box"];43 -> 57[label="",style="dashed", color="green", weight=3]; 44 -> 38[label="",style="dashed", color="red", weight=0]; 44[label="error",fontsize=16,color="magenta"];45[label="Pos (primModNatS wv30 (Succ wv400))",fontsize=16,color="green",shape="box"];45 -> 58[label="",style="dashed", color="green", weight=3]; 46 -> 38[label="",style="dashed", color="red", weight=0]; 46[label="error",fontsize=16,color="magenta"];47[label="Pos (primModNatS wv30 (Succ wv400))",fontsize=16,color="green",shape="box"];47 -> 59[label="",style="dashed", color="green", weight=3]; 48 -> 38[label="",style="dashed", color="red", weight=0]; 48[label="error",fontsize=16,color="magenta"];49[label="Neg (primModNatS wv30 (Succ wv400))",fontsize=16,color="green",shape="box"];49 -> 60[label="",style="dashed", color="green", weight=3]; 50 -> 38[label="",style="dashed", color="red", weight=0]; 50[label="error",fontsize=16,color="magenta"];51[label="Neg (primModNatS wv30 (Succ wv400))",fontsize=16,color="green",shape="box"];51 -> 61[label="",style="dashed", color="green", weight=3]; 52 -> 38[label="",style="dashed", color="red", weight=0]; 52[label="error",fontsize=16,color="magenta"];53[label="primDivNatS wv30 (Succ wv400)",fontsize=16,color="burlywood",shape="triangle"];687[label="wv30/Succ wv300",fontsize=10,color="white",style="solid",shape="box"];53 -> 687[label="",style="solid", color="burlywood", weight=9]; 687 -> 62[label="",style="solid", color="burlywood", weight=3]; 688[label="wv30/Zero",fontsize=10,color="white",style="solid",shape="box"];53 -> 688[label="",style="solid", color="burlywood", weight=9]; 688 -> 63[label="",style="solid", color="burlywood", weight=3]; 54[label="stop MyTrue",fontsize=16,color="black",shape="box"];54 -> 64[label="",style="solid", color="black", weight=3]; 55 -> 53[label="",style="dashed", color="red", weight=0]; 55[label="primDivNatS wv30 (Succ wv400)",fontsize=16,color="magenta"];55 -> 65[label="",style="dashed", color="magenta", weight=3]; 56 -> 53[label="",style="dashed", color="red", weight=0]; 56[label="primDivNatS wv30 (Succ wv400)",fontsize=16,color="magenta"];56 -> 66[label="",style="dashed", color="magenta", weight=3]; 57 -> 53[label="",style="dashed", color="red", weight=0]; 57[label="primDivNatS wv30 (Succ wv400)",fontsize=16,color="magenta"];57 -> 67[label="",style="dashed", color="magenta", weight=3]; 57 -> 68[label="",style="dashed", color="magenta", weight=3]; 58[label="primModNatS wv30 (Succ wv400)",fontsize=16,color="burlywood",shape="triangle"];689[label="wv30/Succ wv300",fontsize=10,color="white",style="solid",shape="box"];58 -> 689[label="",style="solid", color="burlywood", weight=9]; 689 -> 69[label="",style="solid", color="burlywood", weight=3]; 690[label="wv30/Zero",fontsize=10,color="white",style="solid",shape="box"];58 -> 690[label="",style="solid", color="burlywood", weight=9]; 690 -> 70[label="",style="solid", color="burlywood", weight=3]; 59 -> 58[label="",style="dashed", color="red", weight=0]; 59[label="primModNatS wv30 (Succ wv400)",fontsize=16,color="magenta"];59 -> 71[label="",style="dashed", color="magenta", weight=3]; 60 -> 58[label="",style="dashed", color="red", weight=0]; 60[label="primModNatS wv30 (Succ wv400)",fontsize=16,color="magenta"];60 -> 72[label="",style="dashed", color="magenta", weight=3]; 61 -> 58[label="",style="dashed", color="red", weight=0]; 61[label="primModNatS wv30 (Succ wv400)",fontsize=16,color="magenta"];61 -> 73[label="",style="dashed", color="magenta", weight=3]; 61 -> 74[label="",style="dashed", color="magenta", weight=3]; 62[label="primDivNatS (Succ wv300) (Succ wv400)",fontsize=16,color="black",shape="box"];62 -> 75[label="",style="solid", color="black", weight=3]; 63[label="primDivNatS Zero (Succ wv400)",fontsize=16,color="black",shape="box"];63 -> 76[label="",style="solid", color="black", weight=3]; 64[label="error []",fontsize=16,color="red",shape="box"];65[label="wv400",fontsize=16,color="green",shape="box"];66[label="wv30",fontsize=16,color="green",shape="box"];67[label="wv30",fontsize=16,color="green",shape="box"];68[label="wv400",fontsize=16,color="green",shape="box"];69[label="primModNatS (Succ wv300) (Succ wv400)",fontsize=16,color="burlywood",shape="box"];691[label="wv400/Succ wv4000",fontsize=10,color="white",style="solid",shape="box"];69 -> 691[label="",style="solid", color="burlywood", weight=9]; 691 -> 77[label="",style="solid", color="burlywood", weight=3]; 692[label="wv400/Zero",fontsize=10,color="white",style="solid",shape="box"];69 -> 692[label="",style="solid", color="burlywood", weight=9]; 692 -> 78[label="",style="solid", color="burlywood", weight=3]; 70[label="primModNatS Zero (Succ wv400)",fontsize=16,color="black",shape="box"];70 -> 79[label="",style="solid", color="black", weight=3]; 71[label="wv400",fontsize=16,color="green",shape="box"];72[label="wv30",fontsize=16,color="green",shape="box"];73[label="wv30",fontsize=16,color="green",shape="box"];74[label="wv400",fontsize=16,color="green",shape="box"];75[label="primDivNatS0 wv300 wv400 (primGEqNatS wv300 wv400)",fontsize=16,color="burlywood",shape="box"];693[label="wv300/Succ wv3000",fontsize=10,color="white",style="solid",shape="box"];75 -> 693[label="",style="solid", color="burlywood", weight=9]; 693 -> 80[label="",style="solid", color="burlywood", weight=3]; 694[label="wv300/Zero",fontsize=10,color="white",style="solid",shape="box"];75 -> 694[label="",style="solid", color="burlywood", weight=9]; 694 -> 81[label="",style="solid", color="burlywood", weight=3]; 76[label="Zero",fontsize=16,color="green",shape="box"];77[label="primModNatS (Succ wv300) (Succ (Succ wv4000))",fontsize=16,color="black",shape="box"];77 -> 82[label="",style="solid", color="black", weight=3]; 78[label="primModNatS (Succ wv300) (Succ Zero)",fontsize=16,color="black",shape="box"];78 -> 83[label="",style="solid", color="black", weight=3]; 79[label="Zero",fontsize=16,color="green",shape="box"];80[label="primDivNatS0 (Succ wv3000) wv400 (primGEqNatS (Succ wv3000) wv400)",fontsize=16,color="burlywood",shape="box"];695[label="wv400/Succ wv4000",fontsize=10,color="white",style="solid",shape="box"];80 -> 695[label="",style="solid", color="burlywood", weight=9]; 695 -> 84[label="",style="solid", color="burlywood", weight=3]; 696[label="wv400/Zero",fontsize=10,color="white",style="solid",shape="box"];80 -> 696[label="",style="solid", color="burlywood", weight=9]; 696 -> 85[label="",style="solid", color="burlywood", weight=3]; 81[label="primDivNatS0 Zero wv400 (primGEqNatS Zero wv400)",fontsize=16,color="burlywood",shape="box"];697[label="wv400/Succ wv4000",fontsize=10,color="white",style="solid",shape="box"];81 -> 697[label="",style="solid", color="burlywood", weight=9]; 697 -> 86[label="",style="solid", color="burlywood", weight=3]; 698[label="wv400/Zero",fontsize=10,color="white",style="solid",shape="box"];81 -> 698[label="",style="solid", color="burlywood", weight=9]; 698 -> 87[label="",style="solid", color="burlywood", weight=3]; 82[label="primModNatS0 wv300 wv4000 (primGEqNatS wv300 (Succ wv4000))",fontsize=16,color="burlywood",shape="box"];699[label="wv300/Succ wv3000",fontsize=10,color="white",style="solid",shape="box"];82 -> 699[label="",style="solid", color="burlywood", weight=9]; 699 -> 88[label="",style="solid", color="burlywood", weight=3]; 700[label="wv300/Zero",fontsize=10,color="white",style="solid",shape="box"];82 -> 700[label="",style="solid", color="burlywood", weight=9]; 700 -> 89[label="",style="solid", color="burlywood", weight=3]; 83[label="Zero",fontsize=16,color="green",shape="box"];84[label="primDivNatS0 (Succ wv3000) (Succ wv4000) (primGEqNatS (Succ wv3000) (Succ wv4000))",fontsize=16,color="black",shape="box"];84 -> 90[label="",style="solid", color="black", weight=3]; 85[label="primDivNatS0 (Succ wv3000) Zero (primGEqNatS (Succ wv3000) Zero)",fontsize=16,color="black",shape="box"];85 -> 91[label="",style="solid", color="black", weight=3]; 86[label="primDivNatS0 Zero (Succ wv4000) (primGEqNatS Zero (Succ wv4000))",fontsize=16,color="black",shape="box"];86 -> 92[label="",style="solid", color="black", weight=3]; 87[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];87 -> 93[label="",style="solid", color="black", weight=3]; 88[label="primModNatS0 (Succ wv3000) wv4000 (primGEqNatS (Succ wv3000) (Succ wv4000))",fontsize=16,color="black",shape="box"];88 -> 94[label="",style="solid", color="black", weight=3]; 89[label="primModNatS0 Zero wv4000 (primGEqNatS Zero (Succ wv4000))",fontsize=16,color="black",shape="box"];89 -> 95[label="",style="solid", color="black", weight=3]; 90 -> 541[label="",style="dashed", color="red", weight=0]; 90[label="primDivNatS0 (Succ wv3000) (Succ wv4000) (primGEqNatS wv3000 wv4000)",fontsize=16,color="magenta"];90 -> 542[label="",style="dashed", color="magenta", weight=3]; 90 -> 543[label="",style="dashed", color="magenta", weight=3]; 90 -> 544[label="",style="dashed", color="magenta", weight=3]; 90 -> 545[label="",style="dashed", color="magenta", weight=3]; 91[label="primDivNatS0 (Succ wv3000) Zero MyTrue",fontsize=16,color="black",shape="box"];91 -> 98[label="",style="solid", color="black", weight=3]; 92[label="primDivNatS0 Zero (Succ wv4000) MyFalse",fontsize=16,color="black",shape="box"];92 -> 99[label="",style="solid", color="black", weight=3]; 93[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];93 -> 100[label="",style="solid", color="black", weight=3]; 94[label="primModNatS0 (Succ wv3000) wv4000 (primGEqNatS wv3000 wv4000)",fontsize=16,color="burlywood",shape="box"];701[label="wv3000/Succ wv30000",fontsize=10,color="white",style="solid",shape="box"];94 -> 701[label="",style="solid", color="burlywood", weight=9]; 701 -> 101[label="",style="solid", color="burlywood", weight=3]; 702[label="wv3000/Zero",fontsize=10,color="white",style="solid",shape="box"];94 -> 702[label="",style="solid", color="burlywood", weight=9]; 702 -> 102[label="",style="solid", color="burlywood", weight=3]; 95[label="primModNatS0 Zero wv4000 MyFalse",fontsize=16,color="black",shape="box"];95 -> 103[label="",style="solid", color="black", weight=3]; 542[label="wv4000",fontsize=16,color="green",shape="box"];543[label="wv3000",fontsize=16,color="green",shape="box"];544[label="wv3000",fontsize=16,color="green",shape="box"];545[label="wv4000",fontsize=16,color="green",shape="box"];541[label="primDivNatS0 (Succ wv43) (Succ wv44) (primGEqNatS wv45 wv46)",fontsize=16,color="burlywood",shape="triangle"];703[label="wv45/Succ wv450",fontsize=10,color="white",style="solid",shape="box"];541 -> 703[label="",style="solid", color="burlywood", weight=9]; 703 -> 582[label="",style="solid", color="burlywood", weight=3]; 704[label="wv45/Zero",fontsize=10,color="white",style="solid",shape="box"];541 -> 704[label="",style="solid", color="burlywood", weight=9]; 704 -> 583[label="",style="solid", color="burlywood", weight=3]; 98[label="Succ (primDivNatS (primMinusNatS (Succ wv3000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];98 -> 108[label="",style="dashed", color="green", weight=3]; 99[label="Zero",fontsize=16,color="green",shape="box"];100[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];100 -> 109[label="",style="dashed", color="green", weight=3]; 101[label="primModNatS0 (Succ (Succ wv30000)) wv4000 (primGEqNatS (Succ wv30000) wv4000)",fontsize=16,color="burlywood",shape="box"];705[label="wv4000/Succ wv40000",fontsize=10,color="white",style="solid",shape="box"];101 -> 705[label="",style="solid", color="burlywood", weight=9]; 705 -> 110[label="",style="solid", color="burlywood", weight=3]; 706[label="wv4000/Zero",fontsize=10,color="white",style="solid",shape="box"];101 -> 706[label="",style="solid", color="burlywood", weight=9]; 706 -> 111[label="",style="solid", color="burlywood", weight=3]; 102[label="primModNatS0 (Succ Zero) wv4000 (primGEqNatS Zero wv4000)",fontsize=16,color="burlywood",shape="box"];707[label="wv4000/Succ wv40000",fontsize=10,color="white",style="solid",shape="box"];102 -> 707[label="",style="solid", color="burlywood", weight=9]; 707 -> 112[label="",style="solid", color="burlywood", weight=3]; 708[label="wv4000/Zero",fontsize=10,color="white",style="solid",shape="box"];102 -> 708[label="",style="solid", color="burlywood", weight=9]; 708 -> 113[label="",style="solid", color="burlywood", weight=3]; 103[label="Succ Zero",fontsize=16,color="green",shape="box"];582[label="primDivNatS0 (Succ wv43) (Succ wv44) (primGEqNatS (Succ wv450) wv46)",fontsize=16,color="burlywood",shape="box"];709[label="wv46/Succ wv460",fontsize=10,color="white",style="solid",shape="box"];582 -> 709[label="",style="solid", color="burlywood", weight=9]; 709 -> 623[label="",style="solid", color="burlywood", weight=3]; 710[label="wv46/Zero",fontsize=10,color="white",style="solid",shape="box"];582 -> 710[label="",style="solid", color="burlywood", weight=9]; 710 -> 624[label="",style="solid", color="burlywood", weight=3]; 583[label="primDivNatS0 (Succ wv43) (Succ wv44) (primGEqNatS Zero wv46)",fontsize=16,color="burlywood",shape="box"];711[label="wv46/Succ wv460",fontsize=10,color="white",style="solid",shape="box"];583 -> 711[label="",style="solid", color="burlywood", weight=9]; 711 -> 625[label="",style="solid", color="burlywood", weight=3]; 712[label="wv46/Zero",fontsize=10,color="white",style="solid",shape="box"];583 -> 712[label="",style="solid", color="burlywood", weight=9]; 712 -> 626[label="",style="solid", color="burlywood", weight=3]; 108 -> 53[label="",style="dashed", color="red", weight=0]; 108[label="primDivNatS (primMinusNatS (Succ wv3000) Zero) (Succ Zero)",fontsize=16,color="magenta"];108 -> 118[label="",style="dashed", color="magenta", weight=3]; 108 -> 119[label="",style="dashed", color="magenta", weight=3]; 109 -> 53[label="",style="dashed", color="red", weight=0]; 109[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];109 -> 120[label="",style="dashed", color="magenta", weight=3]; 109 -> 121[label="",style="dashed", color="magenta", weight=3]; 110[label="primModNatS0 (Succ (Succ wv30000)) (Succ wv40000) (primGEqNatS (Succ wv30000) (Succ wv40000))",fontsize=16,color="black",shape="box"];110 -> 122[label="",style="solid", color="black", weight=3]; 111[label="primModNatS0 (Succ (Succ wv30000)) Zero (primGEqNatS (Succ wv30000) Zero)",fontsize=16,color="black",shape="box"];111 -> 123[label="",style="solid", color="black", weight=3]; 112[label="primModNatS0 (Succ Zero) (Succ wv40000) (primGEqNatS Zero (Succ wv40000))",fontsize=16,color="black",shape="box"];112 -> 124[label="",style="solid", color="black", weight=3]; 113[label="primModNatS0 (Succ Zero) Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];113 -> 125[label="",style="solid", color="black", weight=3]; 623[label="primDivNatS0 (Succ wv43) (Succ wv44) (primGEqNatS (Succ wv450) (Succ wv460))",fontsize=16,color="black",shape="box"];623 -> 629[label="",style="solid", color="black", weight=3]; 624[label="primDivNatS0 (Succ wv43) (Succ wv44) (primGEqNatS (Succ wv450) Zero)",fontsize=16,color="black",shape="box"];624 -> 630[label="",style="solid", color="black", weight=3]; 625[label="primDivNatS0 (Succ wv43) (Succ wv44) (primGEqNatS Zero (Succ wv460))",fontsize=16,color="black",shape="box"];625 -> 631[label="",style="solid", color="black", weight=3]; 626[label="primDivNatS0 (Succ wv43) (Succ wv44) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];626 -> 632[label="",style="solid", color="black", weight=3]; 118[label="primMinusNatS (Succ wv3000) Zero",fontsize=16,color="black",shape="triangle"];118 -> 131[label="",style="solid", color="black", weight=3]; 119[label="Zero",fontsize=16,color="green",shape="box"];120[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];120 -> 132[label="",style="solid", color="black", weight=3]; 121[label="Zero",fontsize=16,color="green",shape="box"];122 -> 586[label="",style="dashed", color="red", weight=0]; 122[label="primModNatS0 (Succ (Succ wv30000)) (Succ wv40000) (primGEqNatS wv30000 wv40000)",fontsize=16,color="magenta"];122 -> 587[label="",style="dashed", color="magenta", weight=3]; 122 -> 588[label="",style="dashed", color="magenta", weight=3]; 122 -> 589[label="",style="dashed", color="magenta", weight=3]; 122 -> 590[label="",style="dashed", color="magenta", weight=3]; 123[label="primModNatS0 (Succ (Succ wv30000)) Zero MyTrue",fontsize=16,color="black",shape="box"];123 -> 135[label="",style="solid", color="black", weight=3]; 124 -> 392[label="",style="dashed", color="red", weight=0]; 124[label="primModNatS0 (Succ Zero) (Succ wv40000) MyFalse",fontsize=16,color="magenta"];124 -> 393[label="",style="dashed", color="magenta", weight=3]; 124 -> 394[label="",style="dashed", color="magenta", weight=3]; 125[label="primModNatS0 (Succ Zero) Zero MyTrue",fontsize=16,color="black",shape="box"];125 -> 137[label="",style="solid", color="black", weight=3]; 629 -> 541[label="",style="dashed", color="red", weight=0]; 629[label="primDivNatS0 (Succ wv43) (Succ wv44) (primGEqNatS wv450 wv460)",fontsize=16,color="magenta"];629 -> 637[label="",style="dashed", color="magenta", weight=3]; 629 -> 638[label="",style="dashed", color="magenta", weight=3]; 630[label="primDivNatS0 (Succ wv43) (Succ wv44) MyTrue",fontsize=16,color="black",shape="triangle"];630 -> 639[label="",style="solid", color="black", weight=3]; 631[label="primDivNatS0 (Succ wv43) (Succ wv44) MyFalse",fontsize=16,color="black",shape="box"];631 -> 640[label="",style="solid", color="black", weight=3]; 632 -> 630[label="",style="dashed", color="red", weight=0]; 632[label="primDivNatS0 (Succ wv43) (Succ wv44) MyTrue",fontsize=16,color="magenta"];131[label="Succ wv3000",fontsize=16,color="green",shape="box"];132[label="Zero",fontsize=16,color="green",shape="box"];587[label="wv40000",fontsize=16,color="green",shape="box"];588[label="Succ wv30000",fontsize=16,color="green",shape="box"];589[label="wv40000",fontsize=16,color="green",shape="box"];590[label="wv30000",fontsize=16,color="green",shape="box"];586[label="primModNatS0 (Succ wv48) (Succ wv49) (primGEqNatS wv50 wv51)",fontsize=16,color="burlywood",shape="triangle"];713[label="wv50/Succ wv500",fontsize=10,color="white",style="solid",shape="box"];586 -> 713[label="",style="solid", color="burlywood", weight=9]; 713 -> 627[label="",style="solid", color="burlywood", weight=3]; 714[label="wv50/Zero",fontsize=10,color="white",style="solid",shape="box"];586 -> 714[label="",style="solid", color="burlywood", weight=9]; 714 -> 628[label="",style="solid", color="burlywood", weight=3]; 135 -> 58[label="",style="dashed", color="red", weight=0]; 135[label="primModNatS (primMinusNatS (Succ (Succ wv30000)) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];135 -> 148[label="",style="dashed", color="magenta", weight=3]; 135 -> 149[label="",style="dashed", color="magenta", weight=3]; 393[label="Zero",fontsize=16,color="green",shape="box"];394[label="wv40000",fontsize=16,color="green",shape="box"];392[label="primModNatS0 (Succ wv34) (Succ wv35) MyFalse",fontsize=16,color="black",shape="triangle"];392 -> 407[label="",style="solid", color="black", weight=3]; 137 -> 58[label="",style="dashed", color="red", weight=0]; 137[label="primModNatS (primMinusNatS (Succ Zero) (Succ Zero)) (Succ (Succ Zero))",fontsize=16,color="magenta"];137 -> 150[label="",style="dashed", color="magenta", weight=3]; 137 -> 151[label="",style="dashed", color="magenta", weight=3]; 637[label="wv460",fontsize=16,color="green",shape="box"];638[label="wv450",fontsize=16,color="green",shape="box"];639[label="Succ (primDivNatS (primMinusNatS (Succ wv43) (Succ wv44)) (Succ (Succ wv44)))",fontsize=16,color="green",shape="box"];639 -> 645[label="",style="dashed", color="green", weight=3]; 640[label="Zero",fontsize=16,color="green",shape="box"];627[label="primModNatS0 (Succ wv48) (Succ wv49) (primGEqNatS (Succ wv500) wv51)",fontsize=16,color="burlywood",shape="box"];715[label="wv51/Succ wv510",fontsize=10,color="white",style="solid",shape="box"];627 -> 715[label="",style="solid", color="burlywood", weight=9]; 715 -> 633[label="",style="solid", color="burlywood", weight=3]; 716[label="wv51/Zero",fontsize=10,color="white",style="solid",shape="box"];627 -> 716[label="",style="solid", color="burlywood", weight=9]; 716 -> 634[label="",style="solid", color="burlywood", weight=3]; 628[label="primModNatS0 (Succ wv48) (Succ wv49) (primGEqNatS Zero wv51)",fontsize=16,color="burlywood",shape="box"];717[label="wv51/Succ wv510",fontsize=10,color="white",style="solid",shape="box"];628 -> 717[label="",style="solid", color="burlywood", weight=9]; 717 -> 635[label="",style="solid", color="burlywood", weight=3]; 718[label="wv51/Zero",fontsize=10,color="white",style="solid",shape="box"];628 -> 718[label="",style="solid", color="burlywood", weight=9]; 718 -> 636[label="",style="solid", color="burlywood", weight=3]; 148 -> 433[label="",style="dashed", color="red", weight=0]; 148[label="primMinusNatS (Succ (Succ wv30000)) (Succ Zero)",fontsize=16,color="magenta"];148 -> 434[label="",style="dashed", color="magenta", weight=3]; 148 -> 435[label="",style="dashed", color="magenta", weight=3]; 149[label="Succ Zero",fontsize=16,color="green",shape="box"];407[label="Succ (Succ wv34)",fontsize=16,color="green",shape="box"];150 -> 433[label="",style="dashed", color="red", weight=0]; 150[label="primMinusNatS (Succ Zero) (Succ Zero)",fontsize=16,color="magenta"];150 -> 436[label="",style="dashed", color="magenta", weight=3]; 150 -> 437[label="",style="dashed", color="magenta", weight=3]; 151[label="Succ Zero",fontsize=16,color="green",shape="box"];645 -> 53[label="",style="dashed", color="red", weight=0]; 645[label="primDivNatS (primMinusNatS (Succ wv43) (Succ wv44)) (Succ (Succ wv44))",fontsize=16,color="magenta"];645 -> 651[label="",style="dashed", color="magenta", weight=3]; 645 -> 652[label="",style="dashed", color="magenta", weight=3]; 633[label="primModNatS0 (Succ wv48) (Succ wv49) (primGEqNatS (Succ wv500) (Succ wv510))",fontsize=16,color="black",shape="box"];633 -> 641[label="",style="solid", color="black", weight=3]; 634[label="primModNatS0 (Succ wv48) (Succ wv49) (primGEqNatS (Succ wv500) Zero)",fontsize=16,color="black",shape="box"];634 -> 642[label="",style="solid", color="black", weight=3]; 635[label="primModNatS0 (Succ wv48) (Succ wv49) (primGEqNatS Zero (Succ wv510))",fontsize=16,color="black",shape="box"];635 -> 643[label="",style="solid", color="black", weight=3]; 636[label="primModNatS0 (Succ wv48) (Succ wv49) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];636 -> 644[label="",style="solid", color="black", weight=3]; 434[label="Succ wv30000",fontsize=16,color="green",shape="box"];435[label="Zero",fontsize=16,color="green",shape="box"];433[label="primMinusNatS (Succ wv37) (Succ wv38)",fontsize=16,color="black",shape="triangle"];433 -> 468[label="",style="solid", color="black", weight=3]; 436[label="Zero",fontsize=16,color="green",shape="box"];437[label="Zero",fontsize=16,color="green",shape="box"];651 -> 468[label="",style="dashed", color="red", weight=0]; 651[label="primMinusNatS (Succ wv43) (Succ wv44)",fontsize=16,color="magenta"];651 -> 655[label="",style="dashed", color="magenta", weight=3]; 651 -> 656[label="",style="dashed", color="magenta", weight=3]; 652[label="Succ wv44",fontsize=16,color="green",shape="box"];641 -> 586[label="",style="dashed", color="red", weight=0]; 641[label="primModNatS0 (Succ wv48) (Succ wv49) (primGEqNatS wv500 wv510)",fontsize=16,color="magenta"];641 -> 646[label="",style="dashed", color="magenta", weight=3]; 641 -> 647[label="",style="dashed", color="magenta", weight=3]; 642[label="primModNatS0 (Succ wv48) (Succ wv49) MyTrue",fontsize=16,color="black",shape="triangle"];642 -> 648[label="",style="solid", color="black", weight=3]; 643 -> 392[label="",style="dashed", color="red", weight=0]; 643[label="primModNatS0 (Succ wv48) (Succ wv49) MyFalse",fontsize=16,color="magenta"];643 -> 649[label="",style="dashed", color="magenta", weight=3]; 643 -> 650[label="",style="dashed", color="magenta", weight=3]; 644 -> 642[label="",style="dashed", color="red", weight=0]; 644[label="primModNatS0 (Succ wv48) (Succ wv49) MyTrue",fontsize=16,color="magenta"];468[label="primMinusNatS wv37 wv38",fontsize=16,color="burlywood",shape="triangle"];719[label="wv37/Succ wv370",fontsize=10,color="white",style="solid",shape="box"];468 -> 719[label="",style="solid", color="burlywood", weight=9]; 719 -> 509[label="",style="solid", color="burlywood", weight=3]; 720[label="wv37/Zero",fontsize=10,color="white",style="solid",shape="box"];468 -> 720[label="",style="solid", color="burlywood", weight=9]; 720 -> 510[label="",style="solid", color="burlywood", weight=3]; 655[label="Succ wv43",fontsize=16,color="green",shape="box"];656[label="Succ wv44",fontsize=16,color="green",shape="box"];646[label="wv510",fontsize=16,color="green",shape="box"];647[label="wv500",fontsize=16,color="green",shape="box"];648 -> 58[label="",style="dashed", color="red", weight=0]; 648[label="primModNatS (primMinusNatS (Succ wv48) (Succ (Succ wv49))) (Succ (Succ (Succ wv49)))",fontsize=16,color="magenta"];648 -> 653[label="",style="dashed", color="magenta", weight=3]; 648 -> 654[label="",style="dashed", color="magenta", weight=3]; 649[label="wv48",fontsize=16,color="green",shape="box"];650[label="wv49",fontsize=16,color="green",shape="box"];509[label="primMinusNatS (Succ wv370) wv38",fontsize=16,color="burlywood",shape="box"];721[label="wv38/Succ wv380",fontsize=10,color="white",style="solid",shape="box"];509 -> 721[label="",style="solid", color="burlywood", weight=9]; 721 -> 523[label="",style="solid", color="burlywood", weight=3]; 722[label="wv38/Zero",fontsize=10,color="white",style="solid",shape="box"];509 -> 722[label="",style="solid", color="burlywood", weight=9]; 722 -> 524[label="",style="solid", color="burlywood", weight=3]; 510[label="primMinusNatS Zero wv38",fontsize=16,color="burlywood",shape="box"];723[label="wv38/Succ wv380",fontsize=10,color="white",style="solid",shape="box"];510 -> 723[label="",style="solid", color="burlywood", weight=9]; 723 -> 525[label="",style="solid", color="burlywood", weight=3]; 724[label="wv38/Zero",fontsize=10,color="white",style="solid",shape="box"];510 -> 724[label="",style="solid", color="burlywood", weight=9]; 724 -> 526[label="",style="solid", color="burlywood", weight=3]; 653 -> 468[label="",style="dashed", color="red", weight=0]; 653[label="primMinusNatS (Succ wv48) (Succ (Succ wv49))",fontsize=16,color="magenta"];653 -> 657[label="",style="dashed", color="magenta", weight=3]; 653 -> 658[label="",style="dashed", color="magenta", weight=3]; 654[label="Succ (Succ wv49)",fontsize=16,color="green",shape="box"];523[label="primMinusNatS (Succ wv370) (Succ wv380)",fontsize=16,color="black",shape="box"];523 -> 537[label="",style="solid", color="black", weight=3]; 524[label="primMinusNatS (Succ wv370) Zero",fontsize=16,color="black",shape="box"];524 -> 538[label="",style="solid", color="black", weight=3]; 525[label="primMinusNatS Zero (Succ wv380)",fontsize=16,color="black",shape="box"];525 -> 539[label="",style="solid", color="black", weight=3]; 526[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];526 -> 540[label="",style="solid", color="black", weight=3]; 657[label="Succ wv48",fontsize=16,color="green",shape="box"];658[label="Succ (Succ wv49)",fontsize=16,color="green",shape="box"];537 -> 468[label="",style="dashed", color="red", weight=0]; 537[label="primMinusNatS wv370 wv380",fontsize=16,color="magenta"];537 -> 584[label="",style="dashed", color="magenta", weight=3]; 537 -> 585[label="",style="dashed", color="magenta", weight=3]; 538[label="Succ wv370",fontsize=16,color="green",shape="box"];539[label="Zero",fontsize=16,color="green",shape="box"];540[label="Zero",fontsize=16,color="green",shape="box"];584[label="wv370",fontsize=16,color="green",shape="box"];585[label="wv380",fontsize=16,color="green",shape="box"];} ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(wv48, wv49, Main.Zero, Main.Zero) -> new_primModNatS00(wv48, wv49) new_primModNatS0(wv48, wv49, Main.Succ(wv500), Main.Zero) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv48), Main.Succ(Main.Succ(wv49))), Main.Succ(Main.Succ(wv49))) new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS1, Main.Succ(Main.Zero)) new_primModNatS0(wv48, wv49, Main.Succ(wv500), Main.Succ(wv510)) -> new_primModNatS0(wv48, wv49, wv500, wv510) new_primModNatS00(wv48, wv49) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv48), Main.Succ(Main.Succ(wv49))), Main.Succ(Main.Succ(wv49))) new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS0(wv30000), Main.Succ(Main.Zero)) new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Succ(wv40000))) -> new_primModNatS0(Main.Succ(wv30000), wv40000, wv30000, wv40000) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS1 -> new_primMinusNatS3(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS0(wv30000) -> new_primMinusNatS3(Main.Succ(wv30000), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS0(x0) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS1 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (9) Complex Obligation (AND) ---------------------------------------- (10) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS0(wv30000), Main.Succ(Main.Zero)) new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS1, Main.Succ(Main.Zero)) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS1 -> new_primMinusNatS3(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS0(wv30000) -> new_primMinusNatS3(Main.Succ(wv30000), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS0(x0) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS1 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (11) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS0(wv30000), Main.Succ(Main.Zero)) at position [0] we obtained the following new rules [LPAR04]: (new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)),new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero))) ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS1, Main.Succ(Main.Zero)) new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS1 -> new_primMinusNatS3(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS0(wv30000) -> new_primMinusNatS3(Main.Succ(wv30000), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS0(x0) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS1 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS1, Main.Succ(Main.Zero)) new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero new_primMinusNatS1 -> new_primMinusNatS3(Main.Zero, Main.Zero) The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS0(x0) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS1 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS0(x0) ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS1, Main.Succ(Main.Zero)) new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero new_primMinusNatS1 -> new_primMinusNatS3(Main.Zero, Main.Zero) The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS1 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS1, Main.Succ(Main.Zero)) at position [0] we obtained the following new rules [LPAR04]: (new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Zero, Main.Zero), Main.Succ(Main.Zero)),new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Zero, Main.Zero), Main.Succ(Main.Zero))) ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)) new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Zero, Main.Zero), Main.Succ(Main.Zero)) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero new_primMinusNatS1 -> new_primMinusNatS3(Main.Zero, Main.Zero) The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS1 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (19) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)) new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Zero, Main.Zero), Main.Succ(Main.Zero)) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS1 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS1 ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)) new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Zero, Main.Zero), Main.Succ(Main.Zero)) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)) at position [0] we obtained the following new rules [LPAR04]: (new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)),new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero))) ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Zero, Main.Zero), Main.Succ(Main.Zero)) new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS3(Main.Zero, Main.Zero), Main.Succ(Main.Zero)) at position [0] we obtained the following new rules [LPAR04]: (new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS2(Main.Zero, Main.Zero), Main.Succ(Main.Zero)),new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS2(Main.Zero, Main.Zero), Main.Succ(Main.Zero))) ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)) new_primModNatS(Main.Succ(Main.Succ(Main.Zero)), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS2(Main.Zero, Main.Zero), Main.Succ(Main.Zero)) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)) The TRS R consists of the following rules: new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS3(x0, x1) ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)) The TRS R consists of the following rules: new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) The set Q consists of the following terms: new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv30000), Main.Zero), Main.Succ(Main.Zero)) at position [0] we obtained the following new rules [LPAR04]: (new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(wv30000), Main.Succ(Main.Zero)),new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(wv30000), Main.Succ(Main.Zero))) ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(wv30000), Main.Succ(Main.Zero)) The TRS R consists of the following rules: new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) The set Q consists of the following terms: new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (36) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(wv30000), Main.Succ(Main.Zero)) R is empty. The set Q consists of the following terms: new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (37) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) ---------------------------------------- (38) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(wv30000), Main.Succ(Main.Zero)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (39) 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_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Zero)) -> new_primModNatS(Main.Succ(wv30000), Main.Succ(Main.Zero)) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (40) YES ---------------------------------------- (41) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS00(wv48, wv49) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv48), Main.Succ(Main.Succ(wv49))), Main.Succ(Main.Succ(wv49))) new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Succ(wv40000))) -> new_primModNatS0(Main.Succ(wv30000), wv40000, wv30000, wv40000) new_primModNatS0(wv48, wv49, Main.Zero, Main.Zero) -> new_primModNatS00(wv48, wv49) new_primModNatS0(wv48, wv49, Main.Succ(wv500), Main.Zero) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv48), Main.Succ(Main.Succ(wv49))), Main.Succ(Main.Succ(wv49))) new_primModNatS0(wv48, wv49, Main.Succ(wv500), Main.Succ(wv510)) -> new_primModNatS0(wv48, wv49, wv500, wv510) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS1 -> new_primMinusNatS3(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS0(wv30000) -> new_primMinusNatS3(Main.Succ(wv30000), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS0(x0) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS1 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (42) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_primModNatS(Main.Succ(Main.Succ(Main.Succ(wv30000))), Main.Succ(Main.Succ(wv40000))) -> new_primModNatS0(Main.Succ(wv30000), wv40000, wv30000, wv40000) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Main.Succ(x_1)) = 1 + x_1 POL(Main.Zero) = 0 POL(new_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primModNatS(x_1, x_2)) = x_1 POL(new_primModNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 POL(new_primModNatS00(x_1, x_2)) = 1 + x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero ---------------------------------------- (43) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS00(wv48, wv49) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv48), Main.Succ(Main.Succ(wv49))), Main.Succ(Main.Succ(wv49))) new_primModNatS0(wv48, wv49, Main.Zero, Main.Zero) -> new_primModNatS00(wv48, wv49) new_primModNatS0(wv48, wv49, Main.Succ(wv500), Main.Zero) -> new_primModNatS(new_primMinusNatS2(Main.Succ(wv48), Main.Succ(Main.Succ(wv49))), Main.Succ(Main.Succ(wv49))) new_primModNatS0(wv48, wv49, Main.Succ(wv500), Main.Succ(wv510)) -> new_primModNatS0(wv48, wv49, wv500, wv510) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS1 -> new_primMinusNatS3(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS0(wv30000) -> new_primMinusNatS3(Main.Succ(wv30000), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS0(x0) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS1 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (44) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (45) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(wv48, wv49, Main.Succ(wv500), Main.Succ(wv510)) -> new_primModNatS0(wv48, wv49, wv500, wv510) The TRS R consists of the following rules: new_primMinusNatS3(wv37, wv38) -> new_primMinusNatS2(wv37, wv38) new_primMinusNatS1 -> new_primMinusNatS3(Main.Zero, Main.Zero) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS0(wv30000) -> new_primMinusNatS3(Main.Succ(wv30000), Main.Zero) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS3(x0, x1) new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS0(x0) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS1 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (46) 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_primModNatS0(wv48, wv49, Main.Succ(wv500), Main.Succ(wv510)) -> new_primModNatS0(wv48, wv49, wv500, wv510) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (47) YES ---------------------------------------- (48) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(wv43, wv44, Main.Succ(wv450), Main.Succ(wv460)) -> new_primDivNatS0(wv43, wv44, wv450, wv460) new_primDivNatS00(wv43, wv44) -> new_primDivNatS(new_primMinusNatS2(Main.Succ(wv43), Main.Succ(wv44)), Main.Succ(wv44)) new_primDivNatS(Main.Succ(Main.Zero), Main.Zero) -> new_primDivNatS(new_primMinusNatS5, Main.Zero) new_primDivNatS(Main.Succ(Main.Succ(wv3000)), Main.Zero) -> new_primDivNatS(new_primMinusNatS4(wv3000), Main.Zero) new_primDivNatS0(wv43, wv44, Main.Zero, Main.Zero) -> new_primDivNatS00(wv43, wv44) new_primDivNatS(Main.Succ(Main.Succ(wv3000)), Main.Succ(wv4000)) -> new_primDivNatS0(wv3000, wv4000, wv3000, wv4000) new_primDivNatS0(wv43, wv44, Main.Succ(wv450), Main.Zero) -> new_primDivNatS(new_primMinusNatS2(Main.Succ(wv43), Main.Succ(wv44)), Main.Succ(wv44)) The TRS R consists of the following rules: new_primMinusNatS4(wv3000) -> Main.Succ(wv3000) new_primMinusNatS5 -> Main.Zero new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS4(x0) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS5 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (49) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (50) Complex Obligation (AND) ---------------------------------------- (51) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Main.Succ(Main.Succ(wv3000)), Main.Zero) -> new_primDivNatS(new_primMinusNatS4(wv3000), Main.Zero) The TRS R consists of the following rules: new_primMinusNatS4(wv3000) -> Main.Succ(wv3000) new_primMinusNatS5 -> Main.Zero new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS4(x0) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS5 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (52) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented dependency pairs: new_primDivNatS(Main.Succ(Main.Succ(wv3000)), Main.Zero) -> new_primDivNatS(new_primMinusNatS4(wv3000), Main.Zero) Strictly oriented rules of the TRS R: new_primMinusNatS4(wv3000) -> Main.Succ(wv3000) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero Used ordering: Polynomial interpretation [POLO]: POL(Main.Succ(x_1)) = 1 + 2*x_1 POL(Main.Zero) = 2 POL(new_primDivNatS(x_1, x_2)) = x_1 + x_2 POL(new_primMinusNatS2(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 POL(new_primMinusNatS4(x_1)) = 2 + 2*x_1 POL(new_primMinusNatS5) = 2 ---------------------------------------- (53) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS5 -> Main.Zero The set Q consists of the following terms: new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS4(x0) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS5 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (54) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (55) YES ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(wv43, wv44, Main.Zero, Main.Zero) -> new_primDivNatS00(wv43, wv44) new_primDivNatS00(wv43, wv44) -> new_primDivNatS(new_primMinusNatS2(Main.Succ(wv43), Main.Succ(wv44)), Main.Succ(wv44)) new_primDivNatS(Main.Succ(Main.Succ(wv3000)), Main.Succ(wv4000)) -> new_primDivNatS0(wv3000, wv4000, wv3000, wv4000) new_primDivNatS0(wv43, wv44, Main.Succ(wv450), Main.Succ(wv460)) -> new_primDivNatS0(wv43, wv44, wv450, wv460) new_primDivNatS0(wv43, wv44, Main.Succ(wv450), Main.Zero) -> new_primDivNatS(new_primMinusNatS2(Main.Succ(wv43), Main.Succ(wv44)), Main.Succ(wv44)) The TRS R consists of the following rules: new_primMinusNatS4(wv3000) -> Main.Succ(wv3000) new_primMinusNatS5 -> Main.Zero new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS4(x0) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS5 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (57) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_primDivNatS(Main.Succ(Main.Succ(wv3000)), Main.Succ(wv4000)) -> new_primDivNatS0(wv3000, wv4000, wv3000, wv4000) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Main.Succ(x_1)) = 1 + x_1 POL(Main.Zero) = 1 POL(new_primDivNatS(x_1, x_2)) = x_1 POL(new_primDivNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 POL(new_primDivNatS00(x_1, x_2)) = 1 + x_1 POL(new_primMinusNatS2(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero ---------------------------------------- (58) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(wv43, wv44, Main.Zero, Main.Zero) -> new_primDivNatS00(wv43, wv44) new_primDivNatS00(wv43, wv44) -> new_primDivNatS(new_primMinusNatS2(Main.Succ(wv43), Main.Succ(wv44)), Main.Succ(wv44)) new_primDivNatS0(wv43, wv44, Main.Succ(wv450), Main.Succ(wv460)) -> new_primDivNatS0(wv43, wv44, wv450, wv460) new_primDivNatS0(wv43, wv44, Main.Succ(wv450), Main.Zero) -> new_primDivNatS(new_primMinusNatS2(Main.Succ(wv43), Main.Succ(wv44)), Main.Succ(wv44)) The TRS R consists of the following rules: new_primMinusNatS4(wv3000) -> Main.Succ(wv3000) new_primMinusNatS5 -> Main.Zero new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS4(x0) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS5 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (59) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (60) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(wv43, wv44, Main.Succ(wv450), Main.Succ(wv460)) -> new_primDivNatS0(wv43, wv44, wv450, wv460) The TRS R consists of the following rules: new_primMinusNatS4(wv3000) -> Main.Succ(wv3000) new_primMinusNatS5 -> Main.Zero new_primMinusNatS2(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS2(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS2(wv370, wv380) new_primMinusNatS2(Main.Succ(wv370), Main.Zero) -> Main.Succ(wv370) new_primMinusNatS2(Main.Zero, Main.Succ(wv380)) -> Main.Zero The set Q consists of the following terms: new_primMinusNatS2(Main.Succ(x0), Main.Zero) new_primMinusNatS4(x0) new_primMinusNatS2(Main.Zero, Main.Succ(x0)) new_primMinusNatS2(Main.Zero, Main.Zero) new_primMinusNatS5 new_primMinusNatS2(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (61) 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_primDivNatS0(wv43, wv44, Main.Succ(wv450), Main.Succ(wv460)) -> new_primDivNatS0(wv43, wv44, wv450, wv460) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (62) YES ---------------------------------------- (63) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNatS(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS(wv370, wv380) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (64) 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_primMinusNatS(Main.Succ(wv370), Main.Succ(wv380)) -> new_primMinusNatS(wv370, wv380) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (65) YES