/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.hs /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 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) NumRed [SOUND, 0 ms] (6) HASKELL (7) Narrow [SOUND, 0 ms] (8) AND (9) QDP (10) TransformationProof [EQUIVALENT, 0 ms] (11) QDP (12) TransformationProof [EQUIVALENT, 0 ms] (13) QDP (14) UsableRulesProof [EQUIVALENT, 0 ms] (15) QDP (16) QReductionProof [EQUIVALENT, 0 ms] (17) QDP (18) QDPSizeChangeProof [EQUIVALENT, 0 ms] (19) YES (20) QDP (21) QDPSizeChangeProof [EQUIVALENT, 0 ms] (22) YES (23) QDP (24) QDPSizeChangeProof [EQUIVALENT, 0 ms] (25) YES (26) QDP (27) QDPSizeChangeProof [EQUIVALENT, 0 ms] (28) YES ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (1) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (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; } ---------------------------------------- (5) NumRed (SOUND) Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. ---------------------------------------- (6) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (7) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="sum",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="sum vx3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 4[label="foldl' (+) (fromInt (Pos Zero)) vx3",fontsize=16,color="burlywood",shape="box"];118[label="vx3/vx30 : vx31",fontsize=10,color="white",style="solid",shape="box"];4 -> 118[label="",style="solid", color="burlywood", weight=9]; 118 -> 5[label="",style="solid", color="burlywood", weight=3]; 119[label="vx3/[]",fontsize=10,color="white",style="solid",shape="box"];4 -> 119[label="",style="solid", color="burlywood", weight=9]; 119 -> 6[label="",style="solid", color="burlywood", weight=3]; 5[label="foldl' (+) (fromInt (Pos Zero)) (vx30 : vx31)",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 6[label="foldl' (+) (fromInt (Pos Zero)) []",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 7[label="(foldl' (+) $! (+) fromInt (Pos Zero) vx30)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];8 -> 10[label="",style="solid", color="black", weight=3]; 9 -> 11[label="",style="dashed", color="red", weight=0]; 9[label="((+) fromInt (Pos Zero) vx30 `seq` foldl' (+) ((+) fromInt (Pos Zero) vx30))",fontsize=16,color="magenta"];9 -> 12[label="",style="dashed", color="magenta", weight=3]; 9 -> 13[label="",style="dashed", color="magenta", weight=3]; 10[label="primIntToFloat (Pos Zero)",fontsize=16,color="black",shape="box"];10 -> 14[label="",style="solid", color="black", weight=3]; 12 -> 8[label="",style="dashed", color="red", weight=0]; 12[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];13 -> 8[label="",style="dashed", color="red", weight=0]; 13[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];11[label="((+) vx4 vx30 `seq` foldl' (+) ((+) vx5 vx30))",fontsize=16,color="black",shape="triangle"];11 -> 15[label="",style="solid", color="black", weight=3]; 14[label="Float (Pos Zero) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];15[label="enforceWHNF (WHNF ((+) vx4 vx30)) (foldl' (+) ((+) vx5 vx30)) vx31",fontsize=16,color="black",shape="box"];15 -> 16[label="",style="solid", color="black", weight=3]; 16[label="enforceWHNF (WHNF (primPlusFloat vx4 vx30)) (foldl' primPlusFloat (primPlusFloat vx5 vx30)) vx31",fontsize=16,color="burlywood",shape="triangle"];120[label="vx4/Float vx40 vx41",fontsize=10,color="white",style="solid",shape="box"];16 -> 120[label="",style="solid", color="burlywood", weight=9]; 120 -> 17[label="",style="solid", color="burlywood", weight=3]; 17[label="enforceWHNF (WHNF (primPlusFloat (Float vx40 vx41) vx30)) (foldl' primPlusFloat (primPlusFloat vx5 vx30)) vx31",fontsize=16,color="burlywood",shape="box"];121[label="vx30/Float vx300 vx301",fontsize=10,color="white",style="solid",shape="box"];17 -> 121[label="",style="solid", color="burlywood", weight=9]; 121 -> 18[label="",style="solid", color="burlywood", weight=3]; 18[label="enforceWHNF (WHNF (primPlusFloat (Float vx40 vx41) (Float vx300 vx301))) (foldl' primPlusFloat (primPlusFloat vx5 (Float vx300 vx301))) vx31",fontsize=16,color="black",shape="box"];18 -> 19[label="",style="solid", color="black", weight=3]; 19[label="enforceWHNF (WHNF (Float (vx40 * vx301 + vx300 * vx41) (vx41 * vx301))) (foldl' primPlusFloat (Float (vx40 * vx301 + vx300 * vx41) (vx41 * vx301))) vx31",fontsize=16,color="black",shape="box"];19 -> 20[label="",style="solid", color="black", weight=3]; 20[label="foldl' primPlusFloat (Float (vx40 * vx301 + vx300 * vx41) (vx41 * vx301)) vx31",fontsize=16,color="burlywood",shape="box"];122[label="vx31/vx310 : vx311",fontsize=10,color="white",style="solid",shape="box"];20 -> 122[label="",style="solid", color="burlywood", weight=9]; 122 -> 21[label="",style="solid", color="burlywood", weight=3]; 123[label="vx31/[]",fontsize=10,color="white",style="solid",shape="box"];20 -> 123[label="",style="solid", color="burlywood", weight=9]; 123 -> 22[label="",style="solid", color="burlywood", weight=3]; 21[label="foldl' primPlusFloat (Float (vx40 * vx301 + vx300 * vx41) (vx41 * vx301)) (vx310 : vx311)",fontsize=16,color="black",shape="box"];21 -> 23[label="",style="solid", color="black", weight=3]; 22[label="foldl' primPlusFloat (Float (vx40 * vx301 + vx300 * vx41) (vx41 * vx301)) []",fontsize=16,color="black",shape="box"];22 -> 24[label="",style="solid", color="black", weight=3]; 23[label="(foldl' primPlusFloat $! primPlusFloat (Float (vx40 * vx301 + vx300 * vx41) (vx41 * vx301)) vx310)",fontsize=16,color="black",shape="box"];23 -> 25[label="",style="solid", color="black", weight=3]; 24[label="Float (vx40 * vx301 + vx300 * vx41) (vx41 * vx301)",fontsize=16,color="green",shape="box"];24 -> 26[label="",style="dashed", color="green", weight=3]; 24 -> 27[label="",style="dashed", color="green", weight=3]; 25[label="(primPlusFloat (Float (vx40 * vx301 + vx300 * vx41) (vx41 * vx301)) vx310 `seq` foldl' primPlusFloat (primPlusFloat (Float (vx40 * vx301 + vx300 * vx41) (vx41 * vx301)) vx310))",fontsize=16,color="black",shape="box"];25 -> 28[label="",style="solid", color="black", weight=3]; 26[label="vx40 * vx301 + vx300 * vx41",fontsize=16,color="black",shape="triangle"];26 -> 29[label="",style="solid", color="black", weight=3]; 27[label="vx41 * vx301",fontsize=16,color="black",shape="triangle"];27 -> 30[label="",style="solid", color="black", weight=3]; 28 -> 16[label="",style="dashed", color="red", weight=0]; 28[label="enforceWHNF (WHNF (primPlusFloat (Float (vx40 * vx301 + vx300 * vx41) (vx41 * vx301)) vx310)) (foldl' primPlusFloat (primPlusFloat (Float (vx40 * vx301 + vx300 * vx41) (vx41 * vx301)) vx310)) vx311",fontsize=16,color="magenta"];28 -> 31[label="",style="dashed", color="magenta", weight=3]; 28 -> 32[label="",style="dashed", color="magenta", weight=3]; 28 -> 33[label="",style="dashed", color="magenta", weight=3]; 28 -> 34[label="",style="dashed", color="magenta", weight=3]; 29 -> 35[label="",style="dashed", color="red", weight=0]; 29[label="primPlusInt (vx40 * vx301) (vx300 * vx41)",fontsize=16,color="magenta"];29 -> 36[label="",style="dashed", color="magenta", weight=3]; 29 -> 37[label="",style="dashed", color="magenta", weight=3]; 30[label="primMulInt vx41 vx301",fontsize=16,color="burlywood",shape="box"];124[label="vx41/Pos vx410",fontsize=10,color="white",style="solid",shape="box"];30 -> 124[label="",style="solid", color="burlywood", weight=9]; 124 -> 38[label="",style="solid", color="burlywood", weight=3]; 125[label="vx41/Neg vx410",fontsize=10,color="white",style="solid",shape="box"];30 -> 125[label="",style="solid", color="burlywood", weight=9]; 125 -> 39[label="",style="solid", color="burlywood", weight=3]; 31[label="vx311",fontsize=16,color="green",shape="box"];32[label="Float (vx40 * vx301 + vx300 * vx41) (vx41 * vx301)",fontsize=16,color="green",shape="box"];32 -> 40[label="",style="dashed", color="green", weight=3]; 32 -> 41[label="",style="dashed", color="green", weight=3]; 33[label="Float (vx40 * vx301 + vx300 * vx41) (vx41 * vx301)",fontsize=16,color="green",shape="box"];33 -> 42[label="",style="dashed", color="green", weight=3]; 33 -> 43[label="",style="dashed", color="green", weight=3]; 34[label="vx310",fontsize=16,color="green",shape="box"];36 -> 27[label="",style="dashed", color="red", weight=0]; 36[label="vx40 * vx301",fontsize=16,color="magenta"];36 -> 44[label="",style="dashed", color="magenta", weight=3]; 37 -> 27[label="",style="dashed", color="red", weight=0]; 37[label="vx300 * vx41",fontsize=16,color="magenta"];37 -> 45[label="",style="dashed", color="magenta", weight=3]; 37 -> 46[label="",style="dashed", color="magenta", weight=3]; 35[label="primPlusInt vx7 vx6",fontsize=16,color="burlywood",shape="triangle"];126[label="vx7/Pos vx70",fontsize=10,color="white",style="solid",shape="box"];35 -> 126[label="",style="solid", color="burlywood", weight=9]; 126 -> 47[label="",style="solid", color="burlywood", weight=3]; 127[label="vx7/Neg vx70",fontsize=10,color="white",style="solid",shape="box"];35 -> 127[label="",style="solid", color="burlywood", weight=9]; 127 -> 48[label="",style="solid", color="burlywood", weight=3]; 38[label="primMulInt (Pos vx410) vx301",fontsize=16,color="burlywood",shape="box"];128[label="vx301/Pos vx3010",fontsize=10,color="white",style="solid",shape="box"];38 -> 128[label="",style="solid", color="burlywood", weight=9]; 128 -> 49[label="",style="solid", color="burlywood", weight=3]; 129[label="vx301/Neg vx3010",fontsize=10,color="white",style="solid",shape="box"];38 -> 129[label="",style="solid", color="burlywood", weight=9]; 129 -> 50[label="",style="solid", color="burlywood", weight=3]; 39[label="primMulInt (Neg vx410) vx301",fontsize=16,color="burlywood",shape="box"];130[label="vx301/Pos vx3010",fontsize=10,color="white",style="solid",shape="box"];39 -> 130[label="",style="solid", color="burlywood", weight=9]; 130 -> 51[label="",style="solid", color="burlywood", weight=3]; 131[label="vx301/Neg vx3010",fontsize=10,color="white",style="solid",shape="box"];39 -> 131[label="",style="solid", color="burlywood", weight=9]; 131 -> 52[label="",style="solid", color="burlywood", weight=3]; 40 -> 26[label="",style="dashed", color="red", weight=0]; 40[label="vx40 * vx301 + vx300 * vx41",fontsize=16,color="magenta"];41 -> 27[label="",style="dashed", color="red", weight=0]; 41[label="vx41 * vx301",fontsize=16,color="magenta"];42 -> 26[label="",style="dashed", color="red", weight=0]; 42[label="vx40 * vx301 + vx300 * vx41",fontsize=16,color="magenta"];43 -> 27[label="",style="dashed", color="red", weight=0]; 43[label="vx41 * vx301",fontsize=16,color="magenta"];44[label="vx40",fontsize=16,color="green",shape="box"];45[label="vx300",fontsize=16,color="green",shape="box"];46[label="vx41",fontsize=16,color="green",shape="box"];47[label="primPlusInt (Pos vx70) vx6",fontsize=16,color="burlywood",shape="box"];132[label="vx6/Pos vx60",fontsize=10,color="white",style="solid",shape="box"];47 -> 132[label="",style="solid", color="burlywood", weight=9]; 132 -> 53[label="",style="solid", color="burlywood", weight=3]; 133[label="vx6/Neg vx60",fontsize=10,color="white",style="solid",shape="box"];47 -> 133[label="",style="solid", color="burlywood", weight=9]; 133 -> 54[label="",style="solid", color="burlywood", weight=3]; 48[label="primPlusInt (Neg vx70) vx6",fontsize=16,color="burlywood",shape="box"];134[label="vx6/Pos vx60",fontsize=10,color="white",style="solid",shape="box"];48 -> 134[label="",style="solid", color="burlywood", weight=9]; 134 -> 55[label="",style="solid", color="burlywood", weight=3]; 135[label="vx6/Neg vx60",fontsize=10,color="white",style="solid",shape="box"];48 -> 135[label="",style="solid", color="burlywood", weight=9]; 135 -> 56[label="",style="solid", color="burlywood", weight=3]; 49[label="primMulInt (Pos vx410) (Pos vx3010)",fontsize=16,color="black",shape="box"];49 -> 57[label="",style="solid", color="black", weight=3]; 50[label="primMulInt (Pos vx410) (Neg vx3010)",fontsize=16,color="black",shape="box"];50 -> 58[label="",style="solid", color="black", weight=3]; 51[label="primMulInt (Neg vx410) (Pos vx3010)",fontsize=16,color="black",shape="box"];51 -> 59[label="",style="solid", color="black", weight=3]; 52[label="primMulInt (Neg vx410) (Neg vx3010)",fontsize=16,color="black",shape="box"];52 -> 60[label="",style="solid", color="black", weight=3]; 53[label="primPlusInt (Pos vx70) (Pos vx60)",fontsize=16,color="black",shape="box"];53 -> 61[label="",style="solid", color="black", weight=3]; 54[label="primPlusInt (Pos vx70) (Neg vx60)",fontsize=16,color="black",shape="box"];54 -> 62[label="",style="solid", color="black", weight=3]; 55[label="primPlusInt (Neg vx70) (Pos vx60)",fontsize=16,color="black",shape="box"];55 -> 63[label="",style="solid", color="black", weight=3]; 56[label="primPlusInt (Neg vx70) (Neg vx60)",fontsize=16,color="black",shape="box"];56 -> 64[label="",style="solid", color="black", weight=3]; 57[label="Pos (primMulNat vx410 vx3010)",fontsize=16,color="green",shape="box"];57 -> 65[label="",style="dashed", color="green", weight=3]; 58[label="Neg (primMulNat vx410 vx3010)",fontsize=16,color="green",shape="box"];58 -> 66[label="",style="dashed", color="green", weight=3]; 59[label="Neg (primMulNat vx410 vx3010)",fontsize=16,color="green",shape="box"];59 -> 67[label="",style="dashed", color="green", weight=3]; 60[label="Pos (primMulNat vx410 vx3010)",fontsize=16,color="green",shape="box"];60 -> 68[label="",style="dashed", color="green", weight=3]; 61[label="Pos (primPlusNat vx70 vx60)",fontsize=16,color="green",shape="box"];61 -> 69[label="",style="dashed", color="green", weight=3]; 62[label="primMinusNat vx70 vx60",fontsize=16,color="burlywood",shape="triangle"];136[label="vx70/Succ vx700",fontsize=10,color="white",style="solid",shape="box"];62 -> 136[label="",style="solid", color="burlywood", weight=9]; 136 -> 70[label="",style="solid", color="burlywood", weight=3]; 137[label="vx70/Zero",fontsize=10,color="white",style="solid",shape="box"];62 -> 137[label="",style="solid", color="burlywood", weight=9]; 137 -> 71[label="",style="solid", color="burlywood", weight=3]; 63 -> 62[label="",style="dashed", color="red", weight=0]; 63[label="primMinusNat vx60 vx70",fontsize=16,color="magenta"];63 -> 72[label="",style="dashed", color="magenta", weight=3]; 63 -> 73[label="",style="dashed", color="magenta", weight=3]; 64[label="Neg (primPlusNat vx70 vx60)",fontsize=16,color="green",shape="box"];64 -> 74[label="",style="dashed", color="green", weight=3]; 65[label="primMulNat vx410 vx3010",fontsize=16,color="burlywood",shape="triangle"];138[label="vx410/Succ vx4100",fontsize=10,color="white",style="solid",shape="box"];65 -> 138[label="",style="solid", color="burlywood", weight=9]; 138 -> 75[label="",style="solid", color="burlywood", weight=3]; 139[label="vx410/Zero",fontsize=10,color="white",style="solid",shape="box"];65 -> 139[label="",style="solid", color="burlywood", weight=9]; 139 -> 76[label="",style="solid", color="burlywood", weight=3]; 66 -> 65[label="",style="dashed", color="red", weight=0]; 66[label="primMulNat vx410 vx3010",fontsize=16,color="magenta"];66 -> 77[label="",style="dashed", color="magenta", weight=3]; 67 -> 65[label="",style="dashed", color="red", weight=0]; 67[label="primMulNat vx410 vx3010",fontsize=16,color="magenta"];67 -> 78[label="",style="dashed", color="magenta", weight=3]; 68 -> 65[label="",style="dashed", color="red", weight=0]; 68[label="primMulNat vx410 vx3010",fontsize=16,color="magenta"];68 -> 79[label="",style="dashed", color="magenta", weight=3]; 68 -> 80[label="",style="dashed", color="magenta", weight=3]; 69[label="primPlusNat vx70 vx60",fontsize=16,color="burlywood",shape="triangle"];140[label="vx70/Succ vx700",fontsize=10,color="white",style="solid",shape="box"];69 -> 140[label="",style="solid", color="burlywood", weight=9]; 140 -> 81[label="",style="solid", color="burlywood", weight=3]; 141[label="vx70/Zero",fontsize=10,color="white",style="solid",shape="box"];69 -> 141[label="",style="solid", color="burlywood", weight=9]; 141 -> 82[label="",style="solid", color="burlywood", weight=3]; 70[label="primMinusNat (Succ vx700) vx60",fontsize=16,color="burlywood",shape="box"];142[label="vx60/Succ vx600",fontsize=10,color="white",style="solid",shape="box"];70 -> 142[label="",style="solid", color="burlywood", weight=9]; 142 -> 83[label="",style="solid", color="burlywood", weight=3]; 143[label="vx60/Zero",fontsize=10,color="white",style="solid",shape="box"];70 -> 143[label="",style="solid", color="burlywood", weight=9]; 143 -> 84[label="",style="solid", color="burlywood", weight=3]; 71[label="primMinusNat Zero vx60",fontsize=16,color="burlywood",shape="box"];144[label="vx60/Succ vx600",fontsize=10,color="white",style="solid",shape="box"];71 -> 144[label="",style="solid", color="burlywood", weight=9]; 144 -> 85[label="",style="solid", color="burlywood", weight=3]; 145[label="vx60/Zero",fontsize=10,color="white",style="solid",shape="box"];71 -> 145[label="",style="solid", color="burlywood", weight=9]; 145 -> 86[label="",style="solid", color="burlywood", weight=3]; 72[label="vx60",fontsize=16,color="green",shape="box"];73[label="vx70",fontsize=16,color="green",shape="box"];74 -> 69[label="",style="dashed", color="red", weight=0]; 74[label="primPlusNat vx70 vx60",fontsize=16,color="magenta"];74 -> 87[label="",style="dashed", color="magenta", weight=3]; 74 -> 88[label="",style="dashed", color="magenta", weight=3]; 75[label="primMulNat (Succ vx4100) vx3010",fontsize=16,color="burlywood",shape="box"];146[label="vx3010/Succ vx30100",fontsize=10,color="white",style="solid",shape="box"];75 -> 146[label="",style="solid", color="burlywood", weight=9]; 146 -> 89[label="",style="solid", color="burlywood", weight=3]; 147[label="vx3010/Zero",fontsize=10,color="white",style="solid",shape="box"];75 -> 147[label="",style="solid", color="burlywood", weight=9]; 147 -> 90[label="",style="solid", color="burlywood", weight=3]; 76[label="primMulNat Zero vx3010",fontsize=16,color="burlywood",shape="box"];148[label="vx3010/Succ vx30100",fontsize=10,color="white",style="solid",shape="box"];76 -> 148[label="",style="solid", color="burlywood", weight=9]; 148 -> 91[label="",style="solid", color="burlywood", weight=3]; 149[label="vx3010/Zero",fontsize=10,color="white",style="solid",shape="box"];76 -> 149[label="",style="solid", color="burlywood", weight=9]; 149 -> 92[label="",style="solid", color="burlywood", weight=3]; 77[label="vx3010",fontsize=16,color="green",shape="box"];78[label="vx410",fontsize=16,color="green",shape="box"];79[label="vx3010",fontsize=16,color="green",shape="box"];80[label="vx410",fontsize=16,color="green",shape="box"];81[label="primPlusNat (Succ vx700) vx60",fontsize=16,color="burlywood",shape="box"];150[label="vx60/Succ vx600",fontsize=10,color="white",style="solid",shape="box"];81 -> 150[label="",style="solid", color="burlywood", weight=9]; 150 -> 93[label="",style="solid", color="burlywood", weight=3]; 151[label="vx60/Zero",fontsize=10,color="white",style="solid",shape="box"];81 -> 151[label="",style="solid", color="burlywood", weight=9]; 151 -> 94[label="",style="solid", color="burlywood", weight=3]; 82[label="primPlusNat Zero vx60",fontsize=16,color="burlywood",shape="box"];152[label="vx60/Succ vx600",fontsize=10,color="white",style="solid",shape="box"];82 -> 152[label="",style="solid", color="burlywood", weight=9]; 152 -> 95[label="",style="solid", color="burlywood", weight=3]; 153[label="vx60/Zero",fontsize=10,color="white",style="solid",shape="box"];82 -> 153[label="",style="solid", color="burlywood", weight=9]; 153 -> 96[label="",style="solid", color="burlywood", weight=3]; 83[label="primMinusNat (Succ vx700) (Succ vx600)",fontsize=16,color="black",shape="box"];83 -> 97[label="",style="solid", color="black", weight=3]; 84[label="primMinusNat (Succ vx700) Zero",fontsize=16,color="black",shape="box"];84 -> 98[label="",style="solid", color="black", weight=3]; 85[label="primMinusNat Zero (Succ vx600)",fontsize=16,color="black",shape="box"];85 -> 99[label="",style="solid", color="black", weight=3]; 86[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];86 -> 100[label="",style="solid", color="black", weight=3]; 87[label="vx60",fontsize=16,color="green",shape="box"];88[label="vx70",fontsize=16,color="green",shape="box"];89[label="primMulNat (Succ vx4100) (Succ vx30100)",fontsize=16,color="black",shape="box"];89 -> 101[label="",style="solid", color="black", weight=3]; 90[label="primMulNat (Succ vx4100) Zero",fontsize=16,color="black",shape="box"];90 -> 102[label="",style="solid", color="black", weight=3]; 91[label="primMulNat Zero (Succ vx30100)",fontsize=16,color="black",shape="box"];91 -> 103[label="",style="solid", color="black", weight=3]; 92[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];92 -> 104[label="",style="solid", color="black", weight=3]; 93[label="primPlusNat (Succ vx700) (Succ vx600)",fontsize=16,color="black",shape="box"];93 -> 105[label="",style="solid", color="black", weight=3]; 94[label="primPlusNat (Succ vx700) Zero",fontsize=16,color="black",shape="box"];94 -> 106[label="",style="solid", color="black", weight=3]; 95[label="primPlusNat Zero (Succ vx600)",fontsize=16,color="black",shape="box"];95 -> 107[label="",style="solid", color="black", weight=3]; 96[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];96 -> 108[label="",style="solid", color="black", weight=3]; 97 -> 62[label="",style="dashed", color="red", weight=0]; 97[label="primMinusNat vx700 vx600",fontsize=16,color="magenta"];97 -> 109[label="",style="dashed", color="magenta", weight=3]; 97 -> 110[label="",style="dashed", color="magenta", weight=3]; 98[label="Pos (Succ vx700)",fontsize=16,color="green",shape="box"];99[label="Neg (Succ vx600)",fontsize=16,color="green",shape="box"];100[label="Pos Zero",fontsize=16,color="green",shape="box"];101 -> 69[label="",style="dashed", color="red", weight=0]; 101[label="primPlusNat (primMulNat vx4100 (Succ vx30100)) (Succ vx30100)",fontsize=16,color="magenta"];101 -> 111[label="",style="dashed", color="magenta", weight=3]; 101 -> 112[label="",style="dashed", color="magenta", weight=3]; 102[label="Zero",fontsize=16,color="green",shape="box"];103[label="Zero",fontsize=16,color="green",shape="box"];104[label="Zero",fontsize=16,color="green",shape="box"];105[label="Succ (Succ (primPlusNat vx700 vx600))",fontsize=16,color="green",shape="box"];105 -> 113[label="",style="dashed", color="green", weight=3]; 106[label="Succ vx700",fontsize=16,color="green",shape="box"];107[label="Succ vx600",fontsize=16,color="green",shape="box"];108[label="Zero",fontsize=16,color="green",shape="box"];109[label="vx700",fontsize=16,color="green",shape="box"];110[label="vx600",fontsize=16,color="green",shape="box"];111[label="Succ vx30100",fontsize=16,color="green",shape="box"];112 -> 65[label="",style="dashed", color="red", weight=0]; 112[label="primMulNat vx4100 (Succ vx30100)",fontsize=16,color="magenta"];112 -> 114[label="",style="dashed", color="magenta", weight=3]; 112 -> 115[label="",style="dashed", color="magenta", weight=3]; 113 -> 69[label="",style="dashed", color="red", weight=0]; 113[label="primPlusNat vx700 vx600",fontsize=16,color="magenta"];113 -> 116[label="",style="dashed", color="magenta", weight=3]; 113 -> 117[label="",style="dashed", color="magenta", weight=3]; 114[label="Succ vx30100",fontsize=16,color="green",shape="box"];115[label="vx4100",fontsize=16,color="green",shape="box"];116[label="vx600",fontsize=16,color="green",shape="box"];117[label="vx700",fontsize=16,color="green",shape="box"];} ---------------------------------------- (8) Complex Obligation (AND) ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: new_enforceWHNF(Float(vx40, vx41), Float(vx300, vx301), vx5, :(vx310, vx311)) -> new_enforceWHNF(Float(new_ps(vx40, vx301, vx300, vx41), new_sr(vx41, vx301)), vx310, Float(new_ps(vx40, vx301, vx300, vx41), new_sr(vx41, vx301)), vx311) The TRS R consists of the following rules: new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primPlusNat0(Succ(vx700), Zero) -> Succ(vx700) new_primPlusNat0(Zero, Succ(vx600)) -> Succ(vx600) new_sr(Pos(vx410), Neg(vx3010)) -> Neg(new_primMulNat0(vx410, vx3010)) new_sr(Neg(vx410), Pos(vx3010)) -> Neg(new_primMulNat0(vx410, vx3010)) new_primMulNat0(Zero, Zero) -> Zero new_ps(vx40, vx301, vx300, vx41) -> new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusInt(Neg(vx70), Neg(vx60)) -> Neg(new_primPlusNat0(vx70, vx60)) new_primPlusInt(Pos(vx70), Pos(vx60)) -> Pos(new_primPlusNat0(vx70, vx60)) new_primMinusNat0(Zero, Succ(vx600)) -> Neg(Succ(vx600)) new_primPlusInt(Pos(vx70), Neg(vx60)) -> new_primMinusNat0(vx70, vx60) new_primPlusInt(Neg(vx70), Pos(vx60)) -> new_primMinusNat0(vx60, vx70) new_primMulNat0(Succ(vx4100), Zero) -> Zero new_primMulNat0(Zero, Succ(vx30100)) -> Zero new_sr(Pos(vx410), Pos(vx3010)) -> Pos(new_primMulNat0(vx410, vx3010)) new_primMulNat0(Succ(vx4100), Succ(vx30100)) -> new_primPlusNat0(new_primMulNat0(vx4100, Succ(vx30100)), Succ(vx30100)) new_primPlusNat0(Succ(vx700), Succ(vx600)) -> Succ(Succ(new_primPlusNat0(vx700, vx600))) new_sr(Neg(vx410), Neg(vx3010)) -> Pos(new_primMulNat0(vx410, vx3010)) new_primMinusNat0(Succ(vx700), Succ(vx600)) -> new_primMinusNat0(vx700, vx600) new_primMinusNat0(Succ(vx700), Zero) -> Pos(Succ(vx700)) The set Q consists of the following terms: new_primMulNat0(Succ(x0), Zero) new_primMinusNat0(Zero, Succ(x0)) new_primPlusInt(Neg(x0), Neg(x1)) new_sr(Neg(x0), Neg(x1)) new_primMulNat0(Zero, Zero) new_primMinusNat0(Zero, Zero) new_primPlusNat0(Succ(x0), Zero) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Zero, Succ(x0)) new_primMinusNat0(Succ(x0), Zero) new_sr(Pos(x0), Neg(x1)) new_sr(Neg(x0), Pos(x1)) new_primPlusInt(Pos(x0), Neg(x1)) new_primPlusInt(Neg(x0), Pos(x1)) new_ps(x0, x1, x2, x3) new_primMinusNat0(Succ(x0), Succ(x1)) new_primPlusNat0(Zero, Zero) new_primPlusInt(Pos(x0), Pos(x1)) new_sr(Pos(x0), Pos(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primPlusNat0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_enforceWHNF(Float(vx40, vx41), Float(vx300, vx301), vx5, :(vx310, vx311)) -> new_enforceWHNF(Float(new_ps(vx40, vx301, vx300, vx41), new_sr(vx41, vx301)), vx310, Float(new_ps(vx40, vx301, vx300, vx41), new_sr(vx41, vx301)), vx311) at position [0,0] we obtained the following new rules [LPAR04]: (new_enforceWHNF(Float(vx40, vx41), Float(vx300, vx301), vx5, :(vx310, vx311)) -> new_enforceWHNF(Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx310, Float(new_ps(vx40, vx301, vx300, vx41), new_sr(vx41, vx301)), vx311),new_enforceWHNF(Float(vx40, vx41), Float(vx300, vx301), vx5, :(vx310, vx311)) -> new_enforceWHNF(Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx310, Float(new_ps(vx40, vx301, vx300, vx41), new_sr(vx41, vx301)), vx311)) ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: new_enforceWHNF(Float(vx40, vx41), Float(vx300, vx301), vx5, :(vx310, vx311)) -> new_enforceWHNF(Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx310, Float(new_ps(vx40, vx301, vx300, vx41), new_sr(vx41, vx301)), vx311) The TRS R consists of the following rules: new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primPlusNat0(Succ(vx700), Zero) -> Succ(vx700) new_primPlusNat0(Zero, Succ(vx600)) -> Succ(vx600) new_sr(Pos(vx410), Neg(vx3010)) -> Neg(new_primMulNat0(vx410, vx3010)) new_sr(Neg(vx410), Pos(vx3010)) -> Neg(new_primMulNat0(vx410, vx3010)) new_primMulNat0(Zero, Zero) -> Zero new_ps(vx40, vx301, vx300, vx41) -> new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusInt(Neg(vx70), Neg(vx60)) -> Neg(new_primPlusNat0(vx70, vx60)) new_primPlusInt(Pos(vx70), Pos(vx60)) -> Pos(new_primPlusNat0(vx70, vx60)) new_primMinusNat0(Zero, Succ(vx600)) -> Neg(Succ(vx600)) new_primPlusInt(Pos(vx70), Neg(vx60)) -> new_primMinusNat0(vx70, vx60) new_primPlusInt(Neg(vx70), Pos(vx60)) -> new_primMinusNat0(vx60, vx70) new_primMulNat0(Succ(vx4100), Zero) -> Zero new_primMulNat0(Zero, Succ(vx30100)) -> Zero new_sr(Pos(vx410), Pos(vx3010)) -> Pos(new_primMulNat0(vx410, vx3010)) new_primMulNat0(Succ(vx4100), Succ(vx30100)) -> new_primPlusNat0(new_primMulNat0(vx4100, Succ(vx30100)), Succ(vx30100)) new_primPlusNat0(Succ(vx700), Succ(vx600)) -> Succ(Succ(new_primPlusNat0(vx700, vx600))) new_sr(Neg(vx410), Neg(vx3010)) -> Pos(new_primMulNat0(vx410, vx3010)) new_primMinusNat0(Succ(vx700), Succ(vx600)) -> new_primMinusNat0(vx700, vx600) new_primMinusNat0(Succ(vx700), Zero) -> Pos(Succ(vx700)) The set Q consists of the following terms: new_primMulNat0(Succ(x0), Zero) new_primMinusNat0(Zero, Succ(x0)) new_primPlusInt(Neg(x0), Neg(x1)) new_sr(Neg(x0), Neg(x1)) new_primMulNat0(Zero, Zero) new_primMinusNat0(Zero, Zero) new_primPlusNat0(Succ(x0), Zero) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Zero, Succ(x0)) new_primMinusNat0(Succ(x0), Zero) new_sr(Pos(x0), Neg(x1)) new_sr(Neg(x0), Pos(x1)) new_primPlusInt(Pos(x0), Neg(x1)) new_primPlusInt(Neg(x0), Pos(x1)) new_ps(x0, x1, x2, x3) new_primMinusNat0(Succ(x0), Succ(x1)) new_primPlusNat0(Zero, Zero) new_primPlusInt(Pos(x0), Pos(x1)) new_sr(Pos(x0), Pos(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primPlusNat0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_enforceWHNF(Float(vx40, vx41), Float(vx300, vx301), vx5, :(vx310, vx311)) -> new_enforceWHNF(Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx310, Float(new_ps(vx40, vx301, vx300, vx41), new_sr(vx41, vx301)), vx311) at position [2,0] we obtained the following new rules [LPAR04]: (new_enforceWHNF(Float(vx40, vx41), Float(vx300, vx301), vx5, :(vx310, vx311)) -> new_enforceWHNF(Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx310, Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx311),new_enforceWHNF(Float(vx40, vx41), Float(vx300, vx301), vx5, :(vx310, vx311)) -> new_enforceWHNF(Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx310, Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx311)) ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: new_enforceWHNF(Float(vx40, vx41), Float(vx300, vx301), vx5, :(vx310, vx311)) -> new_enforceWHNF(Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx310, Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx311) The TRS R consists of the following rules: new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primPlusNat0(Succ(vx700), Zero) -> Succ(vx700) new_primPlusNat0(Zero, Succ(vx600)) -> Succ(vx600) new_sr(Pos(vx410), Neg(vx3010)) -> Neg(new_primMulNat0(vx410, vx3010)) new_sr(Neg(vx410), Pos(vx3010)) -> Neg(new_primMulNat0(vx410, vx3010)) new_primMulNat0(Zero, Zero) -> Zero new_ps(vx40, vx301, vx300, vx41) -> new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusInt(Neg(vx70), Neg(vx60)) -> Neg(new_primPlusNat0(vx70, vx60)) new_primPlusInt(Pos(vx70), Pos(vx60)) -> Pos(new_primPlusNat0(vx70, vx60)) new_primMinusNat0(Zero, Succ(vx600)) -> Neg(Succ(vx600)) new_primPlusInt(Pos(vx70), Neg(vx60)) -> new_primMinusNat0(vx70, vx60) new_primPlusInt(Neg(vx70), Pos(vx60)) -> new_primMinusNat0(vx60, vx70) new_primMulNat0(Succ(vx4100), Zero) -> Zero new_primMulNat0(Zero, Succ(vx30100)) -> Zero new_sr(Pos(vx410), Pos(vx3010)) -> Pos(new_primMulNat0(vx410, vx3010)) new_primMulNat0(Succ(vx4100), Succ(vx30100)) -> new_primPlusNat0(new_primMulNat0(vx4100, Succ(vx30100)), Succ(vx30100)) new_primPlusNat0(Succ(vx700), Succ(vx600)) -> Succ(Succ(new_primPlusNat0(vx700, vx600))) new_sr(Neg(vx410), Neg(vx3010)) -> Pos(new_primMulNat0(vx410, vx3010)) new_primMinusNat0(Succ(vx700), Succ(vx600)) -> new_primMinusNat0(vx700, vx600) new_primMinusNat0(Succ(vx700), Zero) -> Pos(Succ(vx700)) The set Q consists of the following terms: new_primMulNat0(Succ(x0), Zero) new_primMinusNat0(Zero, Succ(x0)) new_primPlusInt(Neg(x0), Neg(x1)) new_sr(Neg(x0), Neg(x1)) new_primMulNat0(Zero, Zero) new_primMinusNat0(Zero, Zero) new_primPlusNat0(Succ(x0), Zero) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Zero, Succ(x0)) new_primMinusNat0(Succ(x0), Zero) new_sr(Pos(x0), Neg(x1)) new_sr(Neg(x0), Pos(x1)) new_primPlusInt(Pos(x0), Neg(x1)) new_primPlusInt(Neg(x0), Pos(x1)) new_ps(x0, x1, x2, x3) new_primMinusNat0(Succ(x0), Succ(x1)) new_primPlusNat0(Zero, Zero) new_primPlusInt(Pos(x0), Pos(x1)) new_sr(Pos(x0), Pos(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primPlusNat0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) 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. ---------------------------------------- (15) Obligation: Q DP problem: The TRS P consists of the following rules: new_enforceWHNF(Float(vx40, vx41), Float(vx300, vx301), vx5, :(vx310, vx311)) -> new_enforceWHNF(Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx310, Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx311) The TRS R consists of the following rules: new_sr(Pos(vx410), Neg(vx3010)) -> Neg(new_primMulNat0(vx410, vx3010)) new_sr(Neg(vx410), Pos(vx3010)) -> Neg(new_primMulNat0(vx410, vx3010)) new_sr(Pos(vx410), Pos(vx3010)) -> Pos(new_primMulNat0(vx410, vx3010)) new_sr(Neg(vx410), Neg(vx3010)) -> Pos(new_primMulNat0(vx410, vx3010)) new_primPlusInt(Neg(vx70), Neg(vx60)) -> Neg(new_primPlusNat0(vx70, vx60)) new_primPlusInt(Pos(vx70), Pos(vx60)) -> Pos(new_primPlusNat0(vx70, vx60)) new_primPlusInt(Pos(vx70), Neg(vx60)) -> new_primMinusNat0(vx70, vx60) new_primPlusInt(Neg(vx70), Pos(vx60)) -> new_primMinusNat0(vx60, vx70) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vx600)) -> Neg(Succ(vx600)) new_primMinusNat0(Succ(vx700), Succ(vx600)) -> new_primMinusNat0(vx700, vx600) new_primMinusNat0(Succ(vx700), Zero) -> Pos(Succ(vx700)) new_primPlusNat0(Succ(vx700), Zero) -> Succ(vx700) new_primPlusNat0(Zero, Succ(vx600)) -> Succ(vx600) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vx700), Succ(vx600)) -> Succ(Succ(new_primPlusNat0(vx700, vx600))) new_primMulNat0(Zero, Zero) -> Zero new_primMulNat0(Succ(vx4100), Zero) -> Zero new_primMulNat0(Zero, Succ(vx30100)) -> Zero new_primMulNat0(Succ(vx4100), Succ(vx30100)) -> new_primPlusNat0(new_primMulNat0(vx4100, Succ(vx30100)), Succ(vx30100)) The set Q consists of the following terms: new_primMulNat0(Succ(x0), Zero) new_primMinusNat0(Zero, Succ(x0)) new_primPlusInt(Neg(x0), Neg(x1)) new_sr(Neg(x0), Neg(x1)) new_primMulNat0(Zero, Zero) new_primMinusNat0(Zero, Zero) new_primPlusNat0(Succ(x0), Zero) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Zero, Succ(x0)) new_primMinusNat0(Succ(x0), Zero) new_sr(Pos(x0), Neg(x1)) new_sr(Neg(x0), Pos(x1)) new_primPlusInt(Pos(x0), Neg(x1)) new_primPlusInt(Neg(x0), Pos(x1)) new_ps(x0, x1, x2, x3) new_primMinusNat0(Succ(x0), Succ(x1)) new_primPlusNat0(Zero, Zero) new_primPlusInt(Pos(x0), Pos(x1)) new_sr(Pos(x0), Pos(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primPlusNat0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (16) 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_ps(x0, x1, x2, x3) ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: new_enforceWHNF(Float(vx40, vx41), Float(vx300, vx301), vx5, :(vx310, vx311)) -> new_enforceWHNF(Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx310, Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx311) The TRS R consists of the following rules: new_sr(Pos(vx410), Neg(vx3010)) -> Neg(new_primMulNat0(vx410, vx3010)) new_sr(Neg(vx410), Pos(vx3010)) -> Neg(new_primMulNat0(vx410, vx3010)) new_sr(Pos(vx410), Pos(vx3010)) -> Pos(new_primMulNat0(vx410, vx3010)) new_sr(Neg(vx410), Neg(vx3010)) -> Pos(new_primMulNat0(vx410, vx3010)) new_primPlusInt(Neg(vx70), Neg(vx60)) -> Neg(new_primPlusNat0(vx70, vx60)) new_primPlusInt(Pos(vx70), Pos(vx60)) -> Pos(new_primPlusNat0(vx70, vx60)) new_primPlusInt(Pos(vx70), Neg(vx60)) -> new_primMinusNat0(vx70, vx60) new_primPlusInt(Neg(vx70), Pos(vx60)) -> new_primMinusNat0(vx60, vx70) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primMinusNat0(Zero, Succ(vx600)) -> Neg(Succ(vx600)) new_primMinusNat0(Succ(vx700), Succ(vx600)) -> new_primMinusNat0(vx700, vx600) new_primMinusNat0(Succ(vx700), Zero) -> Pos(Succ(vx700)) new_primPlusNat0(Succ(vx700), Zero) -> Succ(vx700) new_primPlusNat0(Zero, Succ(vx600)) -> Succ(vx600) new_primPlusNat0(Zero, Zero) -> Zero new_primPlusNat0(Succ(vx700), Succ(vx600)) -> Succ(Succ(new_primPlusNat0(vx700, vx600))) new_primMulNat0(Zero, Zero) -> Zero new_primMulNat0(Succ(vx4100), Zero) -> Zero new_primMulNat0(Zero, Succ(vx30100)) -> Zero new_primMulNat0(Succ(vx4100), Succ(vx30100)) -> new_primPlusNat0(new_primMulNat0(vx4100, Succ(vx30100)), Succ(vx30100)) The set Q consists of the following terms: new_primMulNat0(Succ(x0), Zero) new_primMinusNat0(Zero, Succ(x0)) new_primPlusInt(Neg(x0), Neg(x1)) new_sr(Neg(x0), Neg(x1)) new_primMulNat0(Zero, Zero) new_primMinusNat0(Zero, Zero) new_primPlusNat0(Succ(x0), Zero) new_primPlusNat0(Succ(x0), Succ(x1)) new_primMulNat0(Zero, Succ(x0)) new_primMinusNat0(Succ(x0), Zero) new_sr(Pos(x0), Neg(x1)) new_sr(Neg(x0), Pos(x1)) new_primPlusInt(Pos(x0), Neg(x1)) new_primPlusInt(Neg(x0), Pos(x1)) new_primMinusNat0(Succ(x0), Succ(x1)) new_primPlusNat0(Zero, Zero) new_primPlusInt(Pos(x0), Pos(x1)) new_sr(Pos(x0), Pos(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_primPlusNat0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) 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_enforceWHNF(Float(vx40, vx41), Float(vx300, vx301), vx5, :(vx310, vx311)) -> new_enforceWHNF(Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx310, Float(new_primPlusInt(new_sr(vx40, vx301), new_sr(vx300, vx41)), new_sr(vx41, vx301)), vx311) The graph contains the following edges 4 > 2, 4 > 4 ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMulNat(Succ(vx4100), Succ(vx30100)) -> new_primMulNat(vx4100, Succ(vx30100)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primMulNat(Succ(vx4100), Succ(vx30100)) -> new_primMulNat(vx4100, Succ(vx30100)) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (22) YES ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNat(Succ(vx700), Succ(vx600)) -> new_primMinusNat(vx700, vx600) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (24) 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_primMinusNat(Succ(vx700), Succ(vx600)) -> new_primMinusNat(vx700, vx600) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (25) YES ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: new_primPlusNat(Succ(vx700), Succ(vx600)) -> new_primPlusNat(vx700, vx600) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primPlusNat(Succ(vx700), Succ(vx600)) -> new_primPlusNat(vx700, vx600) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (28) YES