/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: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty H-Termination with start terms of the given HASKELL could be proven: (0) HASKELL (1) LR [EQUIVALENT, 0 ms] (2) HASKELL (3) BR [EQUIVALENT, 0 ms] (4) HASKELL (5) COR [EQUIVALENT, 0 ms] (6) HASKELL (7) LetRed [EQUIVALENT, 0 ms] (8) HASKELL (9) NumRed [SOUND, 0 ms] (10) HASKELL (11) Narrow [SOUND, 0 ms] (12) AND (13) QDP (14) QDPSizeChangeProof [EQUIVALENT, 0 ms] (15) YES (16) QDP (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] (18) YES (19) QDP (20) DependencyGraphProof [EQUIVALENT, 0 ms] (21) QDP (22) TransformationProof [EQUIVALENT, 0 ms] (23) QDP (24) UsableRulesProof [EQUIVALENT, 0 ms] (25) QDP (26) QReductionProof [EQUIVALENT, 0 ms] (27) QDP (28) TransformationProof [EQUIVALENT, 0 ms] (29) QDP (30) QDPPairToRuleProof [EQUIVALENT, 0 ms] (31) AND (32) QDP (33) DependencyGraphProof [EQUIVALENT, 0 ms] (34) QDP (35) TransformationProof [EQUIVALENT, 0 ms] (36) QDP (37) TransformationProof [EQUIVALENT, 0 ms] (38) QDP (39) DependencyGraphProof [EQUIVALENT, 0 ms] (40) QDP (41) UsableRulesProof [EQUIVALENT, 0 ms] (42) QDP (43) QReductionProof [EQUIVALENT, 0 ms] (44) QDP (45) TransformationProof [EQUIVALENT, 0 ms] (46) QDP (47) UsableRulesProof [EQUIVALENT, 0 ms] (48) QDP (49) QReductionProof [EQUIVALENT, 0 ms] (50) QDP (51) QDPSizeChangeProof [EQUIVALENT, 0 ms] (52) YES (53) QDP (54) QDPSizeChangeProof [EQUIVALENT, 0 ms] (55) YES ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (1) LR (EQUIVALENT) Lambda Reductions: The following Lambda expression "\(m,_)->m" is transformed to "m0 (m,_) = m; " The following Lambda expression "\(_,n)->n" is transformed to "n0 (_,n) = n; " ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (3) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (5) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " The following Function with conditions "power vy 0 = 1.0; power x vz@(y+1) = fromInt x * power x y; power x y = 1.0 / power x (`negate` y); " is transformed to "power vy xw = power4 vy xw; power x vz = power2 x vz; power x y = power0 x y; " "power0 x y = 1.0 / power x (`negate` y); " "power1 True x vz = fromInt x * power x (vz - 1); power1 wx wy wz = power0 wy wz; " "power2 x vz = power1 (vz >= 1) x vz; power2 xu xv = power0 xu xv; " "power3 True vy xw = 1.0; power3 xx xy xz = power2 xy xz; " "power4 vy xw = power3 (xw == 0) vy xw; power4 yu yv = power2 yu yv; " ---------------------------------------- (6) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (7) LetRed (EQUIVALENT) Let/Where Reductions: The bindings of the following Let/Where expression "fromInteger x * power 2 y where { power vy xw = power4 vy xw; power x vz = power2 x vz; power x y = power0 x y; ; power0 x y = 1.0 / power x (`negate` y); ; power1 True x vz = fromInt x * power x (vz - 1); power1 wx wy wz = power0 wy wz; ; power2 x vz = power1 (vz >= 1) x vz; power2 xu xv = power0 xu xv; ; power3 True vy xw = 1.0; power3 xx xy xz = power2 xy xz; ; power4 vy xw = power3 (xw == 0) vy xw; power4 yu yv = power2 yu yv; } " are unpacked to the following functions on top level "primFloatEncodePower3 True vy xw = 1.0; primFloatEncodePower3 xx xy xz = primFloatEncodePower2 xy xz; " "primFloatEncodePower2 x vz = primFloatEncodePower1 (vz >= 1) x vz; primFloatEncodePower2 xu xv = primFloatEncodePower0 xu xv; " "primFloatEncodePower4 vy xw = primFloatEncodePower3 (xw == 0) vy xw; primFloatEncodePower4 yu yv = primFloatEncodePower2 yu yv; " "primFloatEncodePower1 True x vz = fromInt x * primFloatEncodePower x (vz - 1); primFloatEncodePower1 wx wy wz = primFloatEncodePower0 wy wz; " "primFloatEncodePower vy xw = primFloatEncodePower4 vy xw; primFloatEncodePower x vz = primFloatEncodePower2 x vz; primFloatEncodePower x y = primFloatEncodePower0 x y; " "primFloatEncodePower0 x y = 1.0 / primFloatEncodePower x (`negate` y); " The bindings of the following Let/Where expression "encodeFloat m (n + k) where { m = m0 vu12; ; m0 (m,ww) = m; ; n = n0 vu12; ; n0 (wv,n) = n; ; vu12 = decodeFloat x; } " are unpacked to the following functions on top level "scaleFloatN yw = scaleFloatN0 yw (scaleFloatVu12 yw); " "scaleFloatM0 yw (m,ww) = m; " "scaleFloatVu12 yw = decodeFloat yw; " "scaleFloatM yw = scaleFloatM0 yw (scaleFloatVu12 yw); " "scaleFloatN0 yw (wv,n) = n; " ---------------------------------------- (8) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (9) NumRed (SOUND) Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. ---------------------------------------- (10) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (11) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="scaleFloat",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="scaleFloat yx3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="scaleFloat yx3 yx4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 5[label="encodeFloat (scaleFloatM yx4) (scaleFloatN yx4 + yx3)",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 6[label="primFloatEncode (scaleFloatM yx4) (scaleFloatN yx4 + yx3)",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 7[label="fromInteger (scaleFloatM yx4) * primFloatEncodePower (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3)",fontsize=16,color="black",shape="box"];7 -> 8[label="",style="solid", color="black", weight=3]; 8[label="primMulFloat (fromInteger (scaleFloatM yx4)) (primFloatEncodePower (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3))",fontsize=16,color="black",shape="box"];8 -> 9[label="",style="solid", color="black", weight=3]; 9[label="primMulFloat (primIntegerToFloat (scaleFloatM yx4)) (primFloatEncodePower (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3))",fontsize=16,color="black",shape="box"];9 -> 10[label="",style="solid", color="black", weight=3]; 10 -> 15[label="",style="dashed", color="red", weight=0]; 10[label="primMulFloat (primIntegerToFloat (scaleFloatM0 yx4 (scaleFloatVu12 yx4))) (primFloatEncodePower (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3))",fontsize=16,color="magenta"];10 -> 16[label="",style="dashed", color="magenta", weight=3]; 16[label="scaleFloatVu12 yx4",fontsize=16,color="black",shape="triangle"];16 -> 21[label="",style="solid", color="black", weight=3]; 15[label="primMulFloat (primIntegerToFloat (scaleFloatM0 yx4 yx5)) (primFloatEncodePower (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3))",fontsize=16,color="burlywood",shape="triangle"];505[label="yx5/(yx50,yx51)",fontsize=10,color="white",style="solid",shape="box"];15 -> 505[label="",style="solid", color="burlywood", weight=9]; 505 -> 22[label="",style="solid", color="burlywood", weight=3]; 21[label="decodeFloat yx4",fontsize=16,color="black",shape="box"];21 -> 24[label="",style="solid", color="black", weight=3]; 22[label="primMulFloat (primIntegerToFloat (scaleFloatM0 yx4 (yx50,yx51))) (primFloatEncodePower (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3))",fontsize=16,color="black",shape="box"];22 -> 25[label="",style="solid", color="black", weight=3]; 24[label="primFloatDecode yx4",fontsize=16,color="black",shape="box"];24 -> 26[label="",style="solid", color="black", weight=3]; 25[label="primMulFloat (primIntegerToFloat yx50) (primFloatEncodePower (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3))",fontsize=16,color="burlywood",shape="box"];506[label="yx50/Integer yx500",fontsize=10,color="white",style="solid",shape="box"];25 -> 506[label="",style="solid", color="burlywood", weight=9]; 506 -> 27[label="",style="solid", color="burlywood", weight=3]; 26[label="terminator yx4",fontsize=16,color="black",shape="box"];26 -> 28[label="",style="solid", color="black", weight=3]; 27[label="primMulFloat (primIntegerToFloat (Integer yx500)) (primFloatEncodePower (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3))",fontsize=16,color="black",shape="box"];27 -> 29[label="",style="solid", color="black", weight=3]; 28[label="ter1m yx4",fontsize=16,color="green",shape="box"];28 -> 30[label="",style="dashed", color="green", weight=3]; 29[label="primMulFloat (primIntToFloat yx500) (primFloatEncodePower (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3))",fontsize=16,color="black",shape="box"];29 -> 31[label="",style="solid", color="black", weight=3]; 30[label="yx4",fontsize=16,color="green",shape="box"];31 -> 200[label="",style="dashed", color="red", weight=0]; 31[label="primMulFloat (Float yx500 (Pos (Succ Zero))) (primFloatEncodePower (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3))",fontsize=16,color="magenta"];31 -> 201[label="",style="dashed", color="magenta", weight=3]; 201[label="primFloatEncodePower (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3)",fontsize=16,color="black",shape="box"];201 -> 294[label="",style="solid", color="black", weight=3]; 200[label="primMulFloat (Float yx500 (Pos (Succ Zero))) yx10",fontsize=16,color="burlywood",shape="triangle"];507[label="yx10/Float yx100 yx101",fontsize=10,color="white",style="solid",shape="box"];200 -> 507[label="",style="solid", color="burlywood", weight=9]; 507 -> 295[label="",style="solid", color="burlywood", weight=3]; 294[label="primFloatEncodePower4 (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3)",fontsize=16,color="black",shape="box"];294 -> 296[label="",style="solid", color="black", weight=3]; 295[label="primMulFloat (Float yx500 (Pos (Succ Zero))) (Float yx100 yx101)",fontsize=16,color="black",shape="box"];295 -> 297[label="",style="solid", color="black", weight=3]; 296[label="primFloatEncodePower3 (scaleFloatN yx4 + yx3 == Pos Zero) (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3)",fontsize=16,color="black",shape="box"];296 -> 298[label="",style="solid", color="black", weight=3]; 297[label="Float (yx500 * yx100) (Pos (Succ Zero) * yx101)",fontsize=16,color="green",shape="box"];297 -> 299[label="",style="dashed", color="green", weight=3]; 297 -> 300[label="",style="dashed", color="green", weight=3]; 298[label="primFloatEncodePower3 (primEqInt (scaleFloatN yx4 + yx3) (Pos Zero)) (Pos (Succ (Succ Zero))) (scaleFloatN yx4 + yx3)",fontsize=16,color="black",shape="box"];298 -> 301[label="",style="solid", color="black", weight=3]; 299[label="yx500 * yx100",fontsize=16,color="black",shape="triangle"];299 -> 302[label="",style="solid", color="black", weight=3]; 300 -> 299[label="",style="dashed", color="red", weight=0]; 300[label="Pos (Succ Zero) * yx101",fontsize=16,color="magenta"];300 -> 303[label="",style="dashed", color="magenta", weight=3]; 300 -> 304[label="",style="dashed", color="magenta", weight=3]; 301[label="primFloatEncodePower3 (primEqInt (primPlusInt (scaleFloatN yx4) yx3) (Pos Zero)) (Pos (Succ (Succ Zero))) (primPlusInt (scaleFloatN yx4) yx3)",fontsize=16,color="black",shape="box"];301 -> 305[label="",style="solid", color="black", weight=3]; 302[label="primMulInt yx500 yx100",fontsize=16,color="burlywood",shape="box"];508[label="yx500/Pos yx5000",fontsize=10,color="white",style="solid",shape="box"];302 -> 508[label="",style="solid", color="burlywood", weight=9]; 508 -> 306[label="",style="solid", color="burlywood", weight=3]; 509[label="yx500/Neg yx5000",fontsize=10,color="white",style="solid",shape="box"];302 -> 509[label="",style="solid", color="burlywood", weight=9]; 509 -> 307[label="",style="solid", color="burlywood", weight=3]; 303[label="yx101",fontsize=16,color="green",shape="box"];304[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];305 -> 308[label="",style="dashed", color="red", weight=0]; 305[label="primFloatEncodePower3 (primEqInt (primPlusInt (scaleFloatN0 yx4 (scaleFloatVu12 yx4)) yx3) (Pos Zero)) (Pos (Succ (Succ Zero))) (primPlusInt (scaleFloatN0 yx4 (scaleFloatVu12 yx4)) yx3)",fontsize=16,color="magenta"];305 -> 309[label="",style="dashed", color="magenta", weight=3]; 305 -> 310[label="",style="dashed", color="magenta", weight=3]; 306[label="primMulInt (Pos yx5000) yx100",fontsize=16,color="burlywood",shape="box"];510[label="yx100/Pos yx1000",fontsize=10,color="white",style="solid",shape="box"];306 -> 510[label="",style="solid", color="burlywood", weight=9]; 510 -> 311[label="",style="solid", color="burlywood", weight=3]; 511[label="yx100/Neg yx1000",fontsize=10,color="white",style="solid",shape="box"];306 -> 511[label="",style="solid", color="burlywood", weight=9]; 511 -> 312[label="",style="solid", color="burlywood", weight=3]; 307[label="primMulInt (Neg yx5000) yx100",fontsize=16,color="burlywood",shape="box"];512[label="yx100/Pos yx1000",fontsize=10,color="white",style="solid",shape="box"];307 -> 512[label="",style="solid", color="burlywood", weight=9]; 512 -> 313[label="",style="solid", color="burlywood", weight=3]; 513[label="yx100/Neg yx1000",fontsize=10,color="white",style="solid",shape="box"];307 -> 513[label="",style="solid", color="burlywood", weight=9]; 513 -> 314[label="",style="solid", color="burlywood", weight=3]; 309 -> 16[label="",style="dashed", color="red", weight=0]; 309[label="scaleFloatVu12 yx4",fontsize=16,color="magenta"];310 -> 16[label="",style="dashed", color="red", weight=0]; 310[label="scaleFloatVu12 yx4",fontsize=16,color="magenta"];308[label="primFloatEncodePower3 (primEqInt (primPlusInt (scaleFloatN0 yx4 yx12) yx3) (Pos Zero)) (Pos (Succ (Succ Zero))) (primPlusInt (scaleFloatN0 yx4 yx11) yx3)",fontsize=16,color="burlywood",shape="triangle"];514[label="yx12/(yx120,yx121)",fontsize=10,color="white",style="solid",shape="box"];308 -> 514[label="",style="solid", color="burlywood", weight=9]; 514 -> 315[label="",style="solid", color="burlywood", weight=3]; 311[label="primMulInt (Pos yx5000) (Pos yx1000)",fontsize=16,color="black",shape="box"];311 -> 316[label="",style="solid", color="black", weight=3]; 312[label="primMulInt (Pos yx5000) (Neg yx1000)",fontsize=16,color="black",shape="box"];312 -> 317[label="",style="solid", color="black", weight=3]; 313[label="primMulInt (Neg yx5000) (Pos yx1000)",fontsize=16,color="black",shape="box"];313 -> 318[label="",style="solid", color="black", weight=3]; 314[label="primMulInt (Neg yx5000) (Neg yx1000)",fontsize=16,color="black",shape="box"];314 -> 319[label="",style="solid", color="black", weight=3]; 315[label="primFloatEncodePower3 (primEqInt (primPlusInt (scaleFloatN0 yx4 (yx120,yx121)) yx3) (Pos Zero)) (Pos (Succ (Succ Zero))) (primPlusInt (scaleFloatN0 yx4 yx11) yx3)",fontsize=16,color="black",shape="box"];315 -> 320[label="",style="solid", color="black", weight=3]; 316[label="Pos (primMulNat yx5000 yx1000)",fontsize=16,color="green",shape="box"];316 -> 321[label="",style="dashed", color="green", weight=3]; 317[label="Neg (primMulNat yx5000 yx1000)",fontsize=16,color="green",shape="box"];317 -> 322[label="",style="dashed", color="green", weight=3]; 318[label="Neg (primMulNat yx5000 yx1000)",fontsize=16,color="green",shape="box"];318 -> 323[label="",style="dashed", color="green", weight=3]; 319[label="Pos (primMulNat yx5000 yx1000)",fontsize=16,color="green",shape="box"];319 -> 324[label="",style="dashed", color="green", weight=3]; 320[label="primFloatEncodePower3 (primEqInt (primPlusInt yx121 yx3) (Pos Zero)) (Pos (Succ (Succ Zero))) (primPlusInt yx121 yx3)",fontsize=16,color="burlywood",shape="box"];515[label="yx121/Pos yx1210",fontsize=10,color="white",style="solid",shape="box"];320 -> 515[label="",style="solid", color="burlywood", weight=9]; 515 -> 325[label="",style="solid", color="burlywood", weight=3]; 516[label="yx121/Neg yx1210",fontsize=10,color="white",style="solid",shape="box"];320 -> 516[label="",style="solid", color="burlywood", weight=9]; 516 -> 326[label="",style="solid", color="burlywood", weight=3]; 321[label="primMulNat yx5000 yx1000",fontsize=16,color="burlywood",shape="triangle"];517[label="yx5000/Succ yx50000",fontsize=10,color="white",style="solid",shape="box"];321 -> 517[label="",style="solid", color="burlywood", weight=9]; 517 -> 327[label="",style="solid", color="burlywood", weight=3]; 518[label="yx5000/Zero",fontsize=10,color="white",style="solid",shape="box"];321 -> 518[label="",style="solid", color="burlywood", weight=9]; 518 -> 328[label="",style="solid", color="burlywood", weight=3]; 322 -> 321[label="",style="dashed", color="red", weight=0]; 322[label="primMulNat yx5000 yx1000",fontsize=16,color="magenta"];322 -> 329[label="",style="dashed", color="magenta", weight=3]; 323 -> 321[label="",style="dashed", color="red", weight=0]; 323[label="primMulNat yx5000 yx1000",fontsize=16,color="magenta"];323 -> 330[label="",style="dashed", color="magenta", weight=3]; 324 -> 321[label="",style="dashed", color="red", weight=0]; 324[label="primMulNat yx5000 yx1000",fontsize=16,color="magenta"];324 -> 331[label="",style="dashed", color="magenta", weight=3]; 324 -> 332[label="",style="dashed", color="magenta", weight=3]; 325[label="primFloatEncodePower3 (primEqInt (primPlusInt (Pos yx1210) yx3) (Pos Zero)) (Pos (Succ (Succ Zero))) (primPlusInt (Pos yx1210) yx3)",fontsize=16,color="burlywood",shape="box"];519[label="yx3/Pos yx30",fontsize=10,color="white",style="solid",shape="box"];325 -> 519[label="",style="solid", color="burlywood", weight=9]; 519 -> 333[label="",style="solid", color="burlywood", weight=3]; 520[label="yx3/Neg yx30",fontsize=10,color="white",style="solid",shape="box"];325 -> 520[label="",style="solid", color="burlywood", weight=9]; 520 -> 334[label="",style="solid", color="burlywood", weight=3]; 326[label="primFloatEncodePower3 (primEqInt (primPlusInt (Neg yx1210) yx3) (Pos Zero)) (Pos (Succ (Succ Zero))) (primPlusInt (Neg yx1210) yx3)",fontsize=16,color="burlywood",shape="box"];521[label="yx3/Pos yx30",fontsize=10,color="white",style="solid",shape="box"];326 -> 521[label="",style="solid", color="burlywood", weight=9]; 521 -> 335[label="",style="solid", color="burlywood", weight=3]; 522[label="yx3/Neg yx30",fontsize=10,color="white",style="solid",shape="box"];326 -> 522[label="",style="solid", color="burlywood", weight=9]; 522 -> 336[label="",style="solid", color="burlywood", weight=3]; 327[label="primMulNat (Succ yx50000) yx1000",fontsize=16,color="burlywood",shape="box"];523[label="yx1000/Succ yx10000",fontsize=10,color="white",style="solid",shape="box"];327 -> 523[label="",style="solid", color="burlywood", weight=9]; 523 -> 337[label="",style="solid", color="burlywood", weight=3]; 524[label="yx1000/Zero",fontsize=10,color="white",style="solid",shape="box"];327 -> 524[label="",style="solid", color="burlywood", weight=9]; 524 -> 338[label="",style="solid", color="burlywood", weight=3]; 328[label="primMulNat Zero yx1000",fontsize=16,color="burlywood",shape="box"];525[label="yx1000/Succ yx10000",fontsize=10,color="white",style="solid",shape="box"];328 -> 525[label="",style="solid", color="burlywood", weight=9]; 525 -> 339[label="",style="solid", color="burlywood", weight=3]; 526[label="yx1000/Zero",fontsize=10,color="white",style="solid",shape="box"];328 -> 526[label="",style="solid", color="burlywood", weight=9]; 526 -> 340[label="",style="solid", color="burlywood", weight=3]; 329[label="yx1000",fontsize=16,color="green",shape="box"];330[label="yx5000",fontsize=16,color="green",shape="box"];331[label="yx1000",fontsize=16,color="green",shape="box"];332[label="yx5000",fontsize=16,color="green",shape="box"];333[label="primFloatEncodePower3 (primEqInt (primPlusInt (Pos yx1210) (Pos yx30)) (Pos Zero)) (Pos (Succ (Succ Zero))) (primPlusInt (Pos yx1210) (Pos yx30))",fontsize=16,color="black",shape="box"];333 -> 341[label="",style="solid", color="black", weight=3]; 334[label="primFloatEncodePower3 (primEqInt (primPlusInt (Pos yx1210) (Neg yx30)) (Pos Zero)) (Pos (Succ (Succ Zero))) (primPlusInt (Pos yx1210) (Neg yx30))",fontsize=16,color="black",shape="box"];334 -> 342[label="",style="solid", color="black", weight=3]; 335[label="primFloatEncodePower3 (primEqInt (primPlusInt (Neg yx1210) (Pos yx30)) (Pos Zero)) (Pos (Succ (Succ Zero))) (primPlusInt (Neg yx1210) (Pos yx30))",fontsize=16,color="black",shape="box"];335 -> 343[label="",style="solid", color="black", weight=3]; 336[label="primFloatEncodePower3 (primEqInt (primPlusInt (Neg yx1210) (Neg yx30)) (Pos Zero)) (Pos (Succ (Succ Zero))) (primPlusInt (Neg yx1210) (Neg yx30))",fontsize=16,color="black",shape="box"];336 -> 344[label="",style="solid", color="black", weight=3]; 337[label="primMulNat (Succ yx50000) (Succ yx10000)",fontsize=16,color="black",shape="box"];337 -> 345[label="",style="solid", color="black", weight=3]; 338[label="primMulNat (Succ yx50000) Zero",fontsize=16,color="black",shape="box"];338 -> 346[label="",style="solid", color="black", weight=3]; 339[label="primMulNat Zero (Succ yx10000)",fontsize=16,color="black",shape="box"];339 -> 347[label="",style="solid", color="black", weight=3]; 340[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];340 -> 348[label="",style="solid", color="black", weight=3]; 341[label="primFloatEncodePower3 (primEqInt (Pos (primPlusNat yx1210 yx30)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (primPlusNat yx1210 yx30))",fontsize=16,color="burlywood",shape="box"];527[label="yx1210/Succ yx12100",fontsize=10,color="white",style="solid",shape="box"];341 -> 527[label="",style="solid", color="burlywood", weight=9]; 527 -> 349[label="",style="solid", color="burlywood", weight=3]; 528[label="yx1210/Zero",fontsize=10,color="white",style="solid",shape="box"];341 -> 528[label="",style="solid", color="burlywood", weight=9]; 528 -> 350[label="",style="solid", color="burlywood", weight=3]; 342[label="primFloatEncodePower3 (primEqInt (primMinusNat yx1210 yx30) (Pos Zero)) (Pos (Succ (Succ Zero))) (primMinusNat yx1210 yx30)",fontsize=16,color="burlywood",shape="triangle"];529[label="yx1210/Succ yx12100",fontsize=10,color="white",style="solid",shape="box"];342 -> 529[label="",style="solid", color="burlywood", weight=9]; 529 -> 351[label="",style="solid", color="burlywood", weight=3]; 530[label="yx1210/Zero",fontsize=10,color="white",style="solid",shape="box"];342 -> 530[label="",style="solid", color="burlywood", weight=9]; 530 -> 352[label="",style="solid", color="burlywood", weight=3]; 343 -> 342[label="",style="dashed", color="red", weight=0]; 343[label="primFloatEncodePower3 (primEqInt (primMinusNat yx30 yx1210) (Pos Zero)) (Pos (Succ (Succ Zero))) (primMinusNat yx30 yx1210)",fontsize=16,color="magenta"];343 -> 353[label="",style="dashed", color="magenta", weight=3]; 343 -> 354[label="",style="dashed", color="magenta", weight=3]; 344[label="primFloatEncodePower3 (primEqInt (Neg (primPlusNat yx1210 yx30)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Neg (primPlusNat yx1210 yx30))",fontsize=16,color="burlywood",shape="box"];531[label="yx1210/Succ yx12100",fontsize=10,color="white",style="solid",shape="box"];344 -> 531[label="",style="solid", color="burlywood", weight=9]; 531 -> 355[label="",style="solid", color="burlywood", weight=3]; 532[label="yx1210/Zero",fontsize=10,color="white",style="solid",shape="box"];344 -> 532[label="",style="solid", color="burlywood", weight=9]; 532 -> 356[label="",style="solid", color="burlywood", weight=3]; 345 -> 357[label="",style="dashed", color="red", weight=0]; 345[label="primPlusNat (primMulNat yx50000 (Succ yx10000)) (Succ yx10000)",fontsize=16,color="magenta"];345 -> 358[label="",style="dashed", color="magenta", weight=3]; 346[label="Zero",fontsize=16,color="green",shape="box"];347[label="Zero",fontsize=16,color="green",shape="box"];348[label="Zero",fontsize=16,color="green",shape="box"];349[label="primFloatEncodePower3 (primEqInt (Pos (primPlusNat (Succ yx12100) yx30)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (primPlusNat (Succ yx12100) yx30))",fontsize=16,color="burlywood",shape="box"];533[label="yx30/Succ yx300",fontsize=10,color="white",style="solid",shape="box"];349 -> 533[label="",style="solid", color="burlywood", weight=9]; 533 -> 359[label="",style="solid", color="burlywood", weight=3]; 534[label="yx30/Zero",fontsize=10,color="white",style="solid",shape="box"];349 -> 534[label="",style="solid", color="burlywood", weight=9]; 534 -> 360[label="",style="solid", color="burlywood", weight=3]; 350[label="primFloatEncodePower3 (primEqInt (Pos (primPlusNat Zero yx30)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (primPlusNat Zero yx30))",fontsize=16,color="burlywood",shape="box"];535[label="yx30/Succ yx300",fontsize=10,color="white",style="solid",shape="box"];350 -> 535[label="",style="solid", color="burlywood", weight=9]; 535 -> 361[label="",style="solid", color="burlywood", weight=3]; 536[label="yx30/Zero",fontsize=10,color="white",style="solid",shape="box"];350 -> 536[label="",style="solid", color="burlywood", weight=9]; 536 -> 362[label="",style="solid", color="burlywood", weight=3]; 351[label="primFloatEncodePower3 (primEqInt (primMinusNat (Succ yx12100) yx30) (Pos Zero)) (Pos (Succ (Succ Zero))) (primMinusNat (Succ yx12100) yx30)",fontsize=16,color="burlywood",shape="box"];537[label="yx30/Succ yx300",fontsize=10,color="white",style="solid",shape="box"];351 -> 537[label="",style="solid", color="burlywood", weight=9]; 537 -> 363[label="",style="solid", color="burlywood", weight=3]; 538[label="yx30/Zero",fontsize=10,color="white",style="solid",shape="box"];351 -> 538[label="",style="solid", color="burlywood", weight=9]; 538 -> 364[label="",style="solid", color="burlywood", weight=3]; 352[label="primFloatEncodePower3 (primEqInt (primMinusNat Zero yx30) (Pos Zero)) (Pos (Succ (Succ Zero))) (primMinusNat Zero yx30)",fontsize=16,color="burlywood",shape="box"];539[label="yx30/Succ yx300",fontsize=10,color="white",style="solid",shape="box"];352 -> 539[label="",style="solid", color="burlywood", weight=9]; 539 -> 365[label="",style="solid", color="burlywood", weight=3]; 540[label="yx30/Zero",fontsize=10,color="white",style="solid",shape="box"];352 -> 540[label="",style="solid", color="burlywood", weight=9]; 540 -> 366[label="",style="solid", color="burlywood", weight=3]; 353[label="yx30",fontsize=16,color="green",shape="box"];354[label="yx1210",fontsize=16,color="green",shape="box"];355[label="primFloatEncodePower3 (primEqInt (Neg (primPlusNat (Succ yx12100) yx30)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Neg (primPlusNat (Succ yx12100) yx30))",fontsize=16,color="burlywood",shape="box"];541[label="yx30/Succ yx300",fontsize=10,color="white",style="solid",shape="box"];355 -> 541[label="",style="solid", color="burlywood", weight=9]; 541 -> 367[label="",style="solid", color="burlywood", weight=3]; 542[label="yx30/Zero",fontsize=10,color="white",style="solid",shape="box"];355 -> 542[label="",style="solid", color="burlywood", weight=9]; 542 -> 368[label="",style="solid", color="burlywood", weight=3]; 356[label="primFloatEncodePower3 (primEqInt (Neg (primPlusNat Zero yx30)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Neg (primPlusNat Zero yx30))",fontsize=16,color="burlywood",shape="box"];543[label="yx30/Succ yx300",fontsize=10,color="white",style="solid",shape="box"];356 -> 543[label="",style="solid", color="burlywood", weight=9]; 543 -> 369[label="",style="solid", color="burlywood", weight=3]; 544[label="yx30/Zero",fontsize=10,color="white",style="solid",shape="box"];356 -> 544[label="",style="solid", color="burlywood", weight=9]; 544 -> 370[label="",style="solid", color="burlywood", weight=3]; 358 -> 321[label="",style="dashed", color="red", weight=0]; 358[label="primMulNat yx50000 (Succ yx10000)",fontsize=16,color="magenta"];358 -> 371[label="",style="dashed", color="magenta", weight=3]; 358 -> 372[label="",style="dashed", color="magenta", weight=3]; 357[label="primPlusNat yx13 (Succ yx10000)",fontsize=16,color="burlywood",shape="triangle"];545[label="yx13/Succ yx130",fontsize=10,color="white",style="solid",shape="box"];357 -> 545[label="",style="solid", color="burlywood", weight=9]; 545 -> 373[label="",style="solid", color="burlywood", weight=3]; 546[label="yx13/Zero",fontsize=10,color="white",style="solid",shape="box"];357 -> 546[label="",style="solid", color="burlywood", weight=9]; 546 -> 374[label="",style="solid", color="burlywood", weight=3]; 359[label="primFloatEncodePower3 (primEqInt (Pos (primPlusNat (Succ yx12100) (Succ yx300))) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (primPlusNat (Succ yx12100) (Succ yx300)))",fontsize=16,color="black",shape="box"];359 -> 375[label="",style="solid", color="black", weight=3]; 360[label="primFloatEncodePower3 (primEqInt (Pos (primPlusNat (Succ yx12100) Zero)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (primPlusNat (Succ yx12100) Zero))",fontsize=16,color="black",shape="box"];360 -> 376[label="",style="solid", color="black", weight=3]; 361[label="primFloatEncodePower3 (primEqInt (Pos (primPlusNat Zero (Succ yx300))) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (primPlusNat Zero (Succ yx300)))",fontsize=16,color="black",shape="box"];361 -> 377[label="",style="solid", color="black", weight=3]; 362[label="primFloatEncodePower3 (primEqInt (Pos (primPlusNat Zero Zero)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (primPlusNat Zero Zero))",fontsize=16,color="black",shape="box"];362 -> 378[label="",style="solid", color="black", weight=3]; 363[label="primFloatEncodePower3 (primEqInt (primMinusNat (Succ yx12100) (Succ yx300)) (Pos Zero)) (Pos (Succ (Succ Zero))) (primMinusNat (Succ yx12100) (Succ yx300))",fontsize=16,color="black",shape="box"];363 -> 379[label="",style="solid", color="black", weight=3]; 364[label="primFloatEncodePower3 (primEqInt (primMinusNat (Succ yx12100) Zero) (Pos Zero)) (Pos (Succ (Succ Zero))) (primMinusNat (Succ yx12100) Zero)",fontsize=16,color="black",shape="box"];364 -> 380[label="",style="solid", color="black", weight=3]; 365[label="primFloatEncodePower3 (primEqInt (primMinusNat Zero (Succ yx300)) (Pos Zero)) (Pos (Succ (Succ Zero))) (primMinusNat Zero (Succ yx300))",fontsize=16,color="black",shape="box"];365 -> 381[label="",style="solid", color="black", weight=3]; 366[label="primFloatEncodePower3 (primEqInt (primMinusNat Zero Zero) (Pos Zero)) (Pos (Succ (Succ Zero))) (primMinusNat Zero Zero)",fontsize=16,color="black",shape="box"];366 -> 382[label="",style="solid", color="black", weight=3]; 367[label="primFloatEncodePower3 (primEqInt (Neg (primPlusNat (Succ yx12100) (Succ yx300))) (Pos Zero)) (Pos (Succ (Succ Zero))) (Neg (primPlusNat (Succ yx12100) (Succ yx300)))",fontsize=16,color="black",shape="box"];367 -> 383[label="",style="solid", color="black", weight=3]; 368[label="primFloatEncodePower3 (primEqInt (Neg (primPlusNat (Succ yx12100) Zero)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Neg (primPlusNat (Succ yx12100) Zero))",fontsize=16,color="black",shape="box"];368 -> 384[label="",style="solid", color="black", weight=3]; 369[label="primFloatEncodePower3 (primEqInt (Neg (primPlusNat Zero (Succ yx300))) (Pos Zero)) (Pos (Succ (Succ Zero))) (Neg (primPlusNat Zero (Succ yx300)))",fontsize=16,color="black",shape="box"];369 -> 385[label="",style="solid", color="black", weight=3]; 370[label="primFloatEncodePower3 (primEqInt (Neg (primPlusNat Zero Zero)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Neg (primPlusNat Zero Zero))",fontsize=16,color="black",shape="box"];370 -> 386[label="",style="solid", color="black", weight=3]; 371[label="Succ yx10000",fontsize=16,color="green",shape="box"];372[label="yx50000",fontsize=16,color="green",shape="box"];373[label="primPlusNat (Succ yx130) (Succ yx10000)",fontsize=16,color="black",shape="box"];373 -> 387[label="",style="solid", color="black", weight=3]; 374[label="primPlusNat Zero (Succ yx10000)",fontsize=16,color="black",shape="box"];374 -> 388[label="",style="solid", color="black", weight=3]; 375[label="primFloatEncodePower3 (primEqInt (Pos (Succ (Succ (primPlusNat yx12100 yx300)))) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (Succ (Succ (primPlusNat yx12100 yx300))))",fontsize=16,color="black",shape="box"];375 -> 389[label="",style="solid", color="black", weight=3]; 376[label="primFloatEncodePower3 (primEqInt (Pos (Succ yx12100)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (Succ yx12100))",fontsize=16,color="black",shape="triangle"];376 -> 390[label="",style="solid", color="black", weight=3]; 377 -> 376[label="",style="dashed", color="red", weight=0]; 377[label="primFloatEncodePower3 (primEqInt (Pos (Succ yx300)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (Succ yx300))",fontsize=16,color="magenta"];377 -> 391[label="",style="dashed", color="magenta", weight=3]; 378[label="primFloatEncodePower3 (primEqInt (Pos Zero) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos Zero)",fontsize=16,color="black",shape="triangle"];378 -> 392[label="",style="solid", color="black", weight=3]; 379 -> 342[label="",style="dashed", color="red", weight=0]; 379[label="primFloatEncodePower3 (primEqInt (primMinusNat yx12100 yx300) (Pos Zero)) (Pos (Succ (Succ Zero))) (primMinusNat yx12100 yx300)",fontsize=16,color="magenta"];379 -> 393[label="",style="dashed", color="magenta", weight=3]; 379 -> 394[label="",style="dashed", color="magenta", weight=3]; 380 -> 376[label="",style="dashed", color="red", weight=0]; 380[label="primFloatEncodePower3 (primEqInt (Pos (Succ yx12100)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (Succ yx12100))",fontsize=16,color="magenta"];381[label="primFloatEncodePower3 (primEqInt (Neg (Succ yx300)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Neg (Succ yx300))",fontsize=16,color="black",shape="triangle"];381 -> 395[label="",style="solid", color="black", weight=3]; 382 -> 378[label="",style="dashed", color="red", weight=0]; 382[label="primFloatEncodePower3 (primEqInt (Pos Zero) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos Zero)",fontsize=16,color="magenta"];383 -> 381[label="",style="dashed", color="red", weight=0]; 383[label="primFloatEncodePower3 (primEqInt (Neg (Succ (Succ (primPlusNat yx12100 yx300)))) (Pos Zero)) (Pos (Succ (Succ Zero))) (Neg (Succ (Succ (primPlusNat yx12100 yx300))))",fontsize=16,color="magenta"];383 -> 396[label="",style="dashed", color="magenta", weight=3]; 384 -> 381[label="",style="dashed", color="red", weight=0]; 384[label="primFloatEncodePower3 (primEqInt (Neg (Succ yx12100)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Neg (Succ yx12100))",fontsize=16,color="magenta"];384 -> 397[label="",style="dashed", color="magenta", weight=3]; 385 -> 381[label="",style="dashed", color="red", weight=0]; 385[label="primFloatEncodePower3 (primEqInt (Neg (Succ yx300)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Neg (Succ yx300))",fontsize=16,color="magenta"];386[label="primFloatEncodePower3 (primEqInt (Neg Zero) (Pos Zero)) (Pos (Succ (Succ Zero))) (Neg Zero)",fontsize=16,color="black",shape="box"];386 -> 398[label="",style="solid", color="black", weight=3]; 387[label="Succ (Succ (primPlusNat yx130 yx10000))",fontsize=16,color="green",shape="box"];387 -> 399[label="",style="dashed", color="green", weight=3]; 388[label="Succ yx10000",fontsize=16,color="green",shape="box"];389[label="primFloatEncodePower3 False (Pos (Succ (Succ Zero))) (Pos (Succ (Succ (primPlusNat yx12100 yx300))))",fontsize=16,color="black",shape="box"];389 -> 400[label="",style="solid", color="black", weight=3]; 390[label="primFloatEncodePower3 False (Pos (Succ (Succ Zero))) (Pos (Succ yx12100))",fontsize=16,color="black",shape="box"];390 -> 401[label="",style="solid", color="black", weight=3]; 391[label="yx300",fontsize=16,color="green",shape="box"];392[label="primFloatEncodePower3 True (Pos (Succ (Succ Zero))) (Pos Zero)",fontsize=16,color="black",shape="box"];392 -> 402[label="",style="solid", color="black", weight=3]; 393[label="yx12100",fontsize=16,color="green",shape="box"];394[label="yx300",fontsize=16,color="green",shape="box"];395[label="primFloatEncodePower3 False (Pos (Succ (Succ Zero))) (Neg (Succ yx300))",fontsize=16,color="black",shape="box"];395 -> 403[label="",style="solid", color="black", weight=3]; 396[label="Succ (primPlusNat yx12100 yx300)",fontsize=16,color="green",shape="box"];396 -> 404[label="",style="dashed", color="green", weight=3]; 397[label="yx12100",fontsize=16,color="green",shape="box"];398[label="primFloatEncodePower3 True (Pos (Succ (Succ Zero))) (Neg Zero)",fontsize=16,color="black",shape="box"];398 -> 405[label="",style="solid", color="black", weight=3]; 399[label="primPlusNat yx130 yx10000",fontsize=16,color="burlywood",shape="triangle"];547[label="yx130/Succ yx1300",fontsize=10,color="white",style="solid",shape="box"];399 -> 547[label="",style="solid", color="burlywood", weight=9]; 547 -> 406[label="",style="solid", color="burlywood", weight=3]; 548[label="yx130/Zero",fontsize=10,color="white",style="solid",shape="box"];399 -> 548[label="",style="solid", color="burlywood", weight=9]; 548 -> 407[label="",style="solid", color="burlywood", weight=3]; 400 -> 408[label="",style="dashed", color="red", weight=0]; 400[label="primFloatEncodePower2 (Pos (Succ (Succ Zero))) (Pos (Succ (Succ (primPlusNat yx12100 yx300))))",fontsize=16,color="magenta"];400 -> 409[label="",style="dashed", color="magenta", weight=3]; 401[label="primFloatEncodePower2 (Pos (Succ (Succ Zero))) (Pos (Succ yx12100))",fontsize=16,color="black",shape="triangle"];401 -> 410[label="",style="solid", color="black", weight=3]; 402[label="fromDouble (Double (Pos (Succ Zero)) (Pos (Succ Zero)))",fontsize=16,color="black",shape="triangle"];402 -> 411[label="",style="solid", color="black", weight=3]; 403[label="primFloatEncodePower2 (Pos (Succ (Succ Zero))) (Neg (Succ yx300))",fontsize=16,color="black",shape="box"];403 -> 412[label="",style="solid", color="black", weight=3]; 404 -> 399[label="",style="dashed", color="red", weight=0]; 404[label="primPlusNat yx12100 yx300",fontsize=16,color="magenta"];404 -> 413[label="",style="dashed", color="magenta", weight=3]; 404 -> 414[label="",style="dashed", color="magenta", weight=3]; 405 -> 402[label="",style="dashed", color="red", weight=0]; 405[label="fromDouble (Double (Pos (Succ Zero)) (Pos (Succ Zero)))",fontsize=16,color="magenta"];406[label="primPlusNat (Succ yx1300) yx10000",fontsize=16,color="burlywood",shape="box"];549[label="yx10000/Succ yx100000",fontsize=10,color="white",style="solid",shape="box"];406 -> 549[label="",style="solid", color="burlywood", weight=9]; 549 -> 415[label="",style="solid", color="burlywood", weight=3]; 550[label="yx10000/Zero",fontsize=10,color="white",style="solid",shape="box"];406 -> 550[label="",style="solid", color="burlywood", weight=9]; 550 -> 416[label="",style="solid", color="burlywood", weight=3]; 407[label="primPlusNat Zero yx10000",fontsize=16,color="burlywood",shape="box"];551[label="yx10000/Succ yx100000",fontsize=10,color="white",style="solid",shape="box"];407 -> 551[label="",style="solid", color="burlywood", weight=9]; 551 -> 417[label="",style="solid", color="burlywood", weight=3]; 552[label="yx10000/Zero",fontsize=10,color="white",style="solid",shape="box"];407 -> 552[label="",style="solid", color="burlywood", weight=9]; 552 -> 418[label="",style="solid", color="burlywood", weight=3]; 409 -> 399[label="",style="dashed", color="red", weight=0]; 409[label="primPlusNat yx12100 yx300",fontsize=16,color="magenta"];409 -> 419[label="",style="dashed", color="magenta", weight=3]; 409 -> 420[label="",style="dashed", color="magenta", weight=3]; 408 -> 401[label="",style="dashed", color="red", weight=0]; 408[label="primFloatEncodePower2 (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx14)))",fontsize=16,color="magenta"];408 -> 421[label="",style="dashed", color="magenta", weight=3]; 410[label="primFloatEncodePower1 (Pos (Succ yx12100) >= Pos (Succ Zero)) (Pos (Succ (Succ Zero))) (Pos (Succ yx12100))",fontsize=16,color="black",shape="box"];410 -> 422[label="",style="solid", color="black", weight=3]; 411[label="doubleToFloat (Double (Pos (Succ Zero)) (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];411 -> 423[label="",style="solid", color="black", weight=3]; 412[label="primFloatEncodePower1 (Neg (Succ yx300) >= Pos (Succ Zero)) (Pos (Succ (Succ Zero))) (Neg (Succ yx300))",fontsize=16,color="black",shape="box"];412 -> 424[label="",style="solid", color="black", weight=3]; 413[label="yx12100",fontsize=16,color="green",shape="box"];414[label="yx300",fontsize=16,color="green",shape="box"];415[label="primPlusNat (Succ yx1300) (Succ yx100000)",fontsize=16,color="black",shape="box"];415 -> 425[label="",style="solid", color="black", weight=3]; 416[label="primPlusNat (Succ yx1300) Zero",fontsize=16,color="black",shape="box"];416 -> 426[label="",style="solid", color="black", weight=3]; 417[label="primPlusNat Zero (Succ yx100000)",fontsize=16,color="black",shape="box"];417 -> 427[label="",style="solid", color="black", weight=3]; 418[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];418 -> 428[label="",style="solid", color="black", weight=3]; 419[label="yx12100",fontsize=16,color="green",shape="box"];420[label="yx300",fontsize=16,color="green",shape="box"];421[label="Succ yx14",fontsize=16,color="green",shape="box"];422[label="primFloatEncodePower1 (compare (Pos (Succ yx12100)) (Pos (Succ Zero)) /= LT) (Pos (Succ (Succ Zero))) (Pos (Succ yx12100))",fontsize=16,color="black",shape="box"];422 -> 429[label="",style="solid", color="black", weight=3]; 423[label="Float (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];424[label="primFloatEncodePower1 (compare (Neg (Succ yx300)) (Pos (Succ Zero)) /= LT) (Pos (Succ (Succ Zero))) (Neg (Succ yx300))",fontsize=16,color="black",shape="box"];424 -> 430[label="",style="solid", color="black", weight=3]; 425[label="Succ (Succ (primPlusNat yx1300 yx100000))",fontsize=16,color="green",shape="box"];425 -> 431[label="",style="dashed", color="green", weight=3]; 426[label="Succ yx1300",fontsize=16,color="green",shape="box"];427[label="Succ yx100000",fontsize=16,color="green",shape="box"];428[label="Zero",fontsize=16,color="green",shape="box"];429[label="primFloatEncodePower1 (not (compare (Pos (Succ yx12100)) (Pos (Succ Zero)) == LT)) (Pos (Succ (Succ Zero))) (Pos (Succ yx12100))",fontsize=16,color="black",shape="box"];429 -> 432[label="",style="solid", color="black", weight=3]; 430[label="primFloatEncodePower1 (not (compare (Neg (Succ yx300)) (Pos (Succ Zero)) == LT)) (Pos (Succ (Succ Zero))) (Neg (Succ yx300))",fontsize=16,color="black",shape="box"];430 -> 433[label="",style="solid", color="black", weight=3]; 431 -> 399[label="",style="dashed", color="red", weight=0]; 431[label="primPlusNat yx1300 yx100000",fontsize=16,color="magenta"];431 -> 434[label="",style="dashed", color="magenta", weight=3]; 431 -> 435[label="",style="dashed", color="magenta", weight=3]; 432[label="primFloatEncodePower1 (not (primCmpInt (Pos (Succ yx12100)) (Pos (Succ Zero)) == LT)) (Pos (Succ (Succ Zero))) (Pos (Succ yx12100))",fontsize=16,color="black",shape="box"];432 -> 436[label="",style="solid", color="black", weight=3]; 433[label="primFloatEncodePower1 (not (primCmpInt (Neg (Succ yx300)) (Pos (Succ Zero)) == LT)) (Pos (Succ (Succ Zero))) (Neg (Succ yx300))",fontsize=16,color="black",shape="box"];433 -> 437[label="",style="solid", color="black", weight=3]; 434[label="yx1300",fontsize=16,color="green",shape="box"];435[label="yx100000",fontsize=16,color="green",shape="box"];436[label="primFloatEncodePower1 (not (primCmpNat (Succ yx12100) (Succ Zero) == LT)) (Pos (Succ (Succ Zero))) (Pos (Succ yx12100))",fontsize=16,color="black",shape="box"];436 -> 438[label="",style="solid", color="black", weight=3]; 437[label="primFloatEncodePower1 (not (LT == LT)) (Pos (Succ (Succ Zero))) (Neg (Succ yx300))",fontsize=16,color="black",shape="box"];437 -> 439[label="",style="solid", color="black", weight=3]; 438[label="primFloatEncodePower1 (not (primCmpNat yx12100 Zero == LT)) (Pos (Succ (Succ Zero))) (Pos (Succ yx12100))",fontsize=16,color="burlywood",shape="box"];553[label="yx12100/Succ yx121000",fontsize=10,color="white",style="solid",shape="box"];438 -> 553[label="",style="solid", color="burlywood", weight=9]; 553 -> 440[label="",style="solid", color="burlywood", weight=3]; 554[label="yx12100/Zero",fontsize=10,color="white",style="solid",shape="box"];438 -> 554[label="",style="solid", color="burlywood", weight=9]; 554 -> 441[label="",style="solid", color="burlywood", weight=3]; 439[label="primFloatEncodePower1 (not True) (Pos (Succ (Succ Zero))) (Neg (Succ yx300))",fontsize=16,color="black",shape="box"];439 -> 442[label="",style="solid", color="black", weight=3]; 440[label="primFloatEncodePower1 (not (primCmpNat (Succ yx121000) Zero == LT)) (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx121000)))",fontsize=16,color="black",shape="box"];440 -> 443[label="",style="solid", color="black", weight=3]; 441[label="primFloatEncodePower1 (not (primCmpNat Zero Zero == LT)) (Pos (Succ (Succ Zero))) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];441 -> 444[label="",style="solid", color="black", weight=3]; 442[label="primFloatEncodePower1 False (Pos (Succ (Succ Zero))) (Neg (Succ yx300))",fontsize=16,color="black",shape="box"];442 -> 445[label="",style="solid", color="black", weight=3]; 443[label="primFloatEncodePower1 (not (GT == LT)) (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx121000)))",fontsize=16,color="black",shape="box"];443 -> 446[label="",style="solid", color="black", weight=3]; 444[label="primFloatEncodePower1 (not (EQ == LT)) (Pos (Succ (Succ Zero))) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];444 -> 447[label="",style="solid", color="black", weight=3]; 445[label="primFloatEncodePower0 (Pos (Succ (Succ Zero))) (Neg (Succ yx300))",fontsize=16,color="black",shape="box"];445 -> 448[label="",style="solid", color="black", weight=3]; 446[label="primFloatEncodePower1 (not False) (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx121000)))",fontsize=16,color="black",shape="box"];446 -> 449[label="",style="solid", color="black", weight=3]; 447[label="primFloatEncodePower1 (not False) (Pos (Succ (Succ Zero))) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];447 -> 450[label="",style="solid", color="black", weight=3]; 448 -> 451[label="",style="dashed", color="red", weight=0]; 448[label="fromDouble (Double (Pos (Succ Zero)) (Pos (Succ Zero))) / primFloatEncodePower (Pos (Succ (Succ Zero))) (`negate` Neg (Succ yx300))",fontsize=16,color="magenta"];448 -> 452[label="",style="dashed", color="magenta", weight=3]; 449[label="primFloatEncodePower1 True (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx121000)))",fontsize=16,color="black",shape="box"];449 -> 453[label="",style="solid", color="black", weight=3]; 450[label="primFloatEncodePower1 True (Pos (Succ (Succ Zero))) (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];450 -> 454[label="",style="solid", color="black", weight=3]; 452 -> 402[label="",style="dashed", color="red", weight=0]; 452[label="fromDouble (Double (Pos (Succ Zero)) (Pos (Succ Zero)))",fontsize=16,color="magenta"];451[label="yx15 / primFloatEncodePower (Pos (Succ (Succ Zero))) (`negate` Neg (Succ yx300))",fontsize=16,color="black",shape="triangle"];451 -> 455[label="",style="solid", color="black", weight=3]; 453[label="fromInt (Pos (Succ (Succ Zero))) * primFloatEncodePower (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx121000)) - Pos (Succ Zero))",fontsize=16,color="black",shape="box"];453 -> 456[label="",style="solid", color="black", weight=3]; 454[label="fromInt (Pos (Succ (Succ Zero))) * primFloatEncodePower (Pos (Succ (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero))",fontsize=16,color="black",shape="box"];454 -> 457[label="",style="solid", color="black", weight=3]; 455[label="primDivFloat yx15 (primFloatEncodePower (Pos (Succ (Succ Zero))) (`negate` Neg (Succ yx300)))",fontsize=16,color="burlywood",shape="box"];555[label="yx15/Float yx150 yx151",fontsize=10,color="white",style="solid",shape="box"];455 -> 555[label="",style="solid", color="burlywood", weight=9]; 555 -> 458[label="",style="solid", color="burlywood", weight=3]; 456[label="primMulFloat (fromInt (Pos (Succ (Succ Zero)))) (primFloatEncodePower (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx121000)) - Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];456 -> 459[label="",style="solid", color="black", weight=3]; 457[label="primMulFloat (fromInt (Pos (Succ (Succ Zero)))) (primFloatEncodePower (Pos (Succ (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];457 -> 460[label="",style="solid", color="black", weight=3]; 458[label="primDivFloat (Float yx150 yx151) (primFloatEncodePower (Pos (Succ (Succ Zero))) (`negate` Neg (Succ yx300)))",fontsize=16,color="black",shape="box"];458 -> 461[label="",style="solid", color="black", weight=3]; 459[label="primMulFloat (primIntToFloat (Pos (Succ (Succ Zero)))) (primFloatEncodePower (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx121000)) - Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];459 -> 462[label="",style="solid", color="black", weight=3]; 460[label="primMulFloat (primIntToFloat (Pos (Succ (Succ Zero)))) (primFloatEncodePower (Pos (Succ (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];460 -> 463[label="",style="solid", color="black", weight=3]; 461 -> 478[label="",style="dashed", color="red", weight=0]; 461[label="primDivFloat (Float yx150 yx151) (primFloatEncodePower4 (Pos (Succ (Succ Zero))) (`negate` Neg (Succ yx300)))",fontsize=16,color="magenta"];461 -> 479[label="",style="dashed", color="magenta", weight=3]; 462 -> 200[label="",style="dashed", color="red", weight=0]; 462[label="primMulFloat (Float (Pos (Succ (Succ Zero))) (Pos (Succ Zero))) (primFloatEncodePower (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx121000)) - Pos (Succ Zero)))",fontsize=16,color="magenta"];462 -> 465[label="",style="dashed", color="magenta", weight=3]; 462 -> 466[label="",style="dashed", color="magenta", weight=3]; 463 -> 200[label="",style="dashed", color="red", weight=0]; 463[label="primMulFloat (Float (Pos (Succ (Succ Zero))) (Pos (Succ Zero))) (primFloatEncodePower (Pos (Succ (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero)))",fontsize=16,color="magenta"];463 -> 467[label="",style="dashed", color="magenta", weight=3]; 463 -> 468[label="",style="dashed", color="magenta", weight=3]; 479[label="primFloatEncodePower4 (Pos (Succ (Succ Zero))) (`negate` Neg (Succ yx300))",fontsize=16,color="black",shape="box"];479 -> 484[label="",style="solid", color="black", weight=3]; 478[label="primDivFloat (Float yx150 yx151) yx16",fontsize=16,color="burlywood",shape="triangle"];556[label="yx16/Float yx160 yx161",fontsize=10,color="white",style="solid",shape="box"];478 -> 556[label="",style="solid", color="burlywood", weight=9]; 556 -> 485[label="",style="solid", color="burlywood", weight=3]; 465[label="primFloatEncodePower (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx121000)) - Pos (Succ Zero))",fontsize=16,color="black",shape="box"];465 -> 470[label="",style="solid", color="black", weight=3]; 466[label="Pos (Succ (Succ Zero))",fontsize=16,color="green",shape="box"];467[label="primFloatEncodePower (Pos (Succ (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero))",fontsize=16,color="black",shape="box"];467 -> 471[label="",style="solid", color="black", weight=3]; 468[label="Pos (Succ (Succ Zero))",fontsize=16,color="green",shape="box"];484[label="primFloatEncodePower3 (`negate` Neg (Succ yx300) == Pos Zero) (Pos (Succ (Succ Zero))) (`negate` Neg (Succ yx300))",fontsize=16,color="black",shape="box"];484 -> 488[label="",style="solid", color="black", weight=3]; 485[label="primDivFloat (Float yx150 yx151) (Float yx160 yx161)",fontsize=16,color="black",shape="box"];485 -> 489[label="",style="solid", color="black", weight=3]; 470[label="primFloatEncodePower4 (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx121000)) - Pos (Succ Zero))",fontsize=16,color="black",shape="box"];470 -> 473[label="",style="solid", color="black", weight=3]; 471[label="primFloatEncodePower4 (Pos (Succ (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero))",fontsize=16,color="black",shape="box"];471 -> 474[label="",style="solid", color="black", weight=3]; 488[label="primFloatEncodePower3 (primEqInt (`negate` Neg (Succ yx300)) (Pos Zero)) (Pos (Succ (Succ Zero))) (`negate` Neg (Succ yx300))",fontsize=16,color="black",shape="box"];488 -> 492[label="",style="solid", color="black", weight=3]; 489[label="Float (yx150 * yx161) (yx151 * yx160)",fontsize=16,color="green",shape="box"];489 -> 493[label="",style="dashed", color="green", weight=3]; 489 -> 494[label="",style="dashed", color="green", weight=3]; 473[label="primFloatEncodePower3 (Pos (Succ (Succ yx121000)) - Pos (Succ Zero) == Pos Zero) (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx121000)) - Pos (Succ Zero))",fontsize=16,color="black",shape="box"];473 -> 476[label="",style="solid", color="black", weight=3]; 474[label="primFloatEncodePower3 (Pos (Succ Zero) - Pos (Succ Zero) == Pos Zero) (Pos (Succ (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero))",fontsize=16,color="black",shape="box"];474 -> 477[label="",style="solid", color="black", weight=3]; 492[label="primFloatEncodePower3 (primEqInt (primNegInt (Neg (Succ yx300))) (Pos Zero)) (Pos (Succ (Succ Zero))) (primNegInt (Neg (Succ yx300)))",fontsize=16,color="black",shape="box"];492 -> 499[label="",style="solid", color="black", weight=3]; 493 -> 299[label="",style="dashed", color="red", weight=0]; 493[label="yx150 * yx161",fontsize=16,color="magenta"];493 -> 500[label="",style="dashed", color="magenta", weight=3]; 493 -> 501[label="",style="dashed", color="magenta", weight=3]; 494 -> 299[label="",style="dashed", color="red", weight=0]; 494[label="yx151 * yx160",fontsize=16,color="magenta"];494 -> 502[label="",style="dashed", color="magenta", weight=3]; 494 -> 503[label="",style="dashed", color="magenta", weight=3]; 476[label="primFloatEncodePower3 (primEqInt (Pos (Succ (Succ yx121000)) - Pos (Succ Zero)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx121000)) - Pos (Succ Zero))",fontsize=16,color="black",shape="box"];476 -> 486[label="",style="solid", color="black", weight=3]; 477[label="primFloatEncodePower3 (primEqInt (Pos (Succ Zero) - Pos (Succ Zero)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (Succ Zero) - Pos (Succ Zero))",fontsize=16,color="black",shape="box"];477 -> 487[label="",style="solid", color="black", weight=3]; 499 -> 376[label="",style="dashed", color="red", weight=0]; 499[label="primFloatEncodePower3 (primEqInt (Pos (Succ yx300)) (Pos Zero)) (Pos (Succ (Succ Zero))) (Pos (Succ yx300))",fontsize=16,color="magenta"];499 -> 504[label="",style="dashed", color="magenta", weight=3]; 500[label="yx161",fontsize=16,color="green",shape="box"];501[label="yx150",fontsize=16,color="green",shape="box"];502[label="yx160",fontsize=16,color="green",shape="box"];503[label="yx151",fontsize=16,color="green",shape="box"];486[label="primFloatEncodePower3 (primEqInt (primMinusInt (Pos (Succ (Succ yx121000))) (Pos (Succ Zero))) (Pos Zero)) (Pos (Succ (Succ Zero))) (primMinusInt (Pos (Succ (Succ yx121000))) (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];486 -> 490[label="",style="solid", color="black", weight=3]; 487[label="primFloatEncodePower3 (primEqInt (primMinusInt (Pos (Succ Zero)) (Pos (Succ Zero))) (Pos Zero)) (Pos (Succ (Succ Zero))) (primMinusInt (Pos (Succ Zero)) (Pos (Succ Zero)))",fontsize=16,color="black",shape="box"];487 -> 491[label="",style="solid", color="black", weight=3]; 504[label="yx300",fontsize=16,color="green",shape="box"];490 -> 342[label="",style="dashed", color="red", weight=0]; 490[label="primFloatEncodePower3 (primEqInt (primMinusNat (Succ (Succ yx121000)) (Succ Zero)) (Pos Zero)) (Pos (Succ (Succ Zero))) (primMinusNat (Succ (Succ yx121000)) (Succ Zero))",fontsize=16,color="magenta"];490 -> 495[label="",style="dashed", color="magenta", weight=3]; 490 -> 496[label="",style="dashed", color="magenta", weight=3]; 491 -> 342[label="",style="dashed", color="red", weight=0]; 491[label="primFloatEncodePower3 (primEqInt (primMinusNat (Succ Zero) (Succ Zero)) (Pos Zero)) (Pos (Succ (Succ Zero))) (primMinusNat (Succ Zero) (Succ Zero))",fontsize=16,color="magenta"];491 -> 497[label="",style="dashed", color="magenta", weight=3]; 491 -> 498[label="",style="dashed", color="magenta", weight=3]; 495[label="Succ (Succ yx121000)",fontsize=16,color="green",shape="box"];496[label="Succ Zero",fontsize=16,color="green",shape="box"];497[label="Succ Zero",fontsize=16,color="green",shape="box"];498[label="Succ Zero",fontsize=16,color="green",shape="box"];} ---------------------------------------- (12) Complex Obligation (AND) ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMulNat(Succ(yx50000), Succ(yx10000)) -> new_primMulNat(yx50000, Succ(yx10000)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primMulNat(Succ(yx50000), Succ(yx10000)) -> new_primMulNat(yx50000, Succ(yx10000)) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (15) YES ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: new_primPlusNat(Succ(yx1300), Succ(yx100000)) -> new_primPlusNat(yx1300, yx100000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) 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(yx1300), Succ(yx100000)) -> new_primPlusNat(yx1300, yx100000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (18) YES ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) new_primFloatEncodePower31(yx300) -> new_fs(new_fromDouble, yx300) new_primFloatEncodePower2(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) new_fs(Float(yx150, yx151), yx300) -> new_primFloatEncodePower30(yx300) new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) new_primFloatEncodePower2(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(new_fromDouble, yx300) The TRS R consists of the following rules: new_fromDouble -> Float(Pos(Succ(Zero)), Pos(Succ(Zero))) The set Q consists of the following terms: new_fromDouble We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(new_fromDouble, yx300) new_fs(Float(yx150, yx151), yx300) -> new_primFloatEncodePower30(yx300) The TRS R consists of the following rules: new_fromDouble -> Float(Pos(Succ(Zero)), Pos(Succ(Zero))) The set Q consists of the following terms: new_fromDouble We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (22) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(new_fromDouble, yx300) at position [0] we obtained the following new rules [LPAR04]: (new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300),new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300)) ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) new_fs(Float(yx150, yx151), yx300) -> new_primFloatEncodePower30(yx300) new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) The TRS R consists of the following rules: new_fromDouble -> Float(Pos(Succ(Zero)), Pos(Succ(Zero))) The set Q consists of the following terms: new_fromDouble We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (24) 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. ---------------------------------------- (25) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) new_fs(Float(yx150, yx151), yx300) -> new_primFloatEncodePower30(yx300) new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) R is empty. The set Q consists of the following terms: new_fromDouble We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (26) 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_fromDouble ---------------------------------------- (27) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) new_fs(Float(yx150, yx151), yx300) -> new_primFloatEncodePower30(yx300) new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (28) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_fs(Float(yx150, yx151), yx300) -> new_primFloatEncodePower30(yx300) we obtained the following new rules [LPAR04]: (new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), z0) -> new_primFloatEncodePower30(z0),new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), z0) -> new_primFloatEncodePower30(z0)) ---------------------------------------- (29) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), z0) -> new_primFloatEncodePower30(z0) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (30) QDPPairToRuleProof (EQUIVALENT) The dependency pair new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) was transformed to the following new rules: anew_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) new_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) new_new_primFloatEncodePower3(Zero, Succ(yx300)) -> cons_new_primFloatEncodePower3(Zero, Succ(yx300)) the following new pairs maintain the fan-in: new_primFloatEncodePower30(Succ(yx121000)) -> H(anew_new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero))) new_primFloatEncodePower30(Zero) -> H(anew_new_primFloatEncodePower3(Succ(Zero), Succ(Zero))) the following new pairs maintain the fan-out: H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) H(cons_new_primFloatEncodePower3(Zero, Succ(yx300))) -> new_primFloatEncodePower3(Zero, Succ(yx300)) ---------------------------------------- (31) Complex Obligation (AND) ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), z0) -> new_primFloatEncodePower30(z0) new_primFloatEncodePower30(Succ(yx121000)) -> H(anew_new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero))) new_primFloatEncodePower30(Zero) -> H(anew_new_primFloatEncodePower3(Succ(Zero), Succ(Zero))) H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) H(cons_new_primFloatEncodePower3(Zero, Succ(yx300))) -> new_primFloatEncodePower3(Zero, Succ(yx300)) The TRS R consists of the following rules: anew_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) new_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) new_new_primFloatEncodePower3(Zero, Succ(yx300)) -> cons_new_primFloatEncodePower3(Zero, Succ(yx300)) The set Q consists of the following terms: new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) new_new_primFloatEncodePower3(Succ(x0), Zero) new_new_primFloatEncodePower3(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower30(Succ(yx121000)) -> H(anew_new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero))) H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) new_primFloatEncodePower30(Zero) -> H(anew_new_primFloatEncodePower3(Succ(Zero), Succ(Zero))) H(cons_new_primFloatEncodePower3(Zero, Succ(yx300))) -> new_primFloatEncodePower3(Zero, Succ(yx300)) new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), z0) -> new_primFloatEncodePower30(z0) The TRS R consists of the following rules: anew_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) new_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) new_new_primFloatEncodePower3(Zero, Succ(yx300)) -> cons_new_primFloatEncodePower3(Zero, Succ(yx300)) The set Q consists of the following terms: new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) new_new_primFloatEncodePower3(Succ(x0), Zero) new_new_primFloatEncodePower3(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primFloatEncodePower30(Succ(yx121000)) -> H(anew_new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: (new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero)),new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero))) ---------------------------------------- (36) Obligation: Q DP problem: The TRS P consists of the following rules: H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) new_primFloatEncodePower30(Zero) -> H(anew_new_primFloatEncodePower3(Succ(Zero), Succ(Zero))) H(cons_new_primFloatEncodePower3(Zero, Succ(yx300))) -> new_primFloatEncodePower3(Zero, Succ(yx300)) new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), z0) -> new_primFloatEncodePower30(z0) new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero)) The TRS R consists of the following rules: anew_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) new_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) new_new_primFloatEncodePower3(Zero, Succ(yx300)) -> cons_new_primFloatEncodePower3(Zero, Succ(yx300)) The set Q consists of the following terms: new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) new_new_primFloatEncodePower3(Succ(x0), Zero) new_new_primFloatEncodePower3(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (37) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primFloatEncodePower30(Zero) -> H(anew_new_primFloatEncodePower3(Succ(Zero), Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: (new_primFloatEncodePower30(Zero) -> H(new_new_primFloatEncodePower3(Zero, Zero)),new_primFloatEncodePower30(Zero) -> H(new_new_primFloatEncodePower3(Zero, Zero))) ---------------------------------------- (38) Obligation: Q DP problem: The TRS P consists of the following rules: H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) H(cons_new_primFloatEncodePower3(Zero, Succ(yx300))) -> new_primFloatEncodePower3(Zero, Succ(yx300)) new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), z0) -> new_primFloatEncodePower30(z0) new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero)) new_primFloatEncodePower30(Zero) -> H(new_new_primFloatEncodePower3(Zero, Zero)) The TRS R consists of the following rules: anew_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) new_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) new_new_primFloatEncodePower3(Zero, Succ(yx300)) -> cons_new_primFloatEncodePower3(Zero, Succ(yx300)) The set Q consists of the following terms: new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) new_new_primFloatEncodePower3(Succ(x0), Zero) new_new_primFloatEncodePower3(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (39) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero)) H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) The TRS R consists of the following rules: anew_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) new_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) new_new_primFloatEncodePower3(Zero, Succ(yx300)) -> cons_new_primFloatEncodePower3(Zero, Succ(yx300)) The set Q consists of the following terms: new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) new_new_primFloatEncodePower3(Succ(x0), Zero) new_new_primFloatEncodePower3(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (41) 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. ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero)) H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) The TRS R consists of the following rules: new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) The set Q consists of the following terms: new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) new_new_primFloatEncodePower3(Succ(x0), Zero) new_new_primFloatEncodePower3(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (43) 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]. anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) ---------------------------------------- (44) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero)) H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) The TRS R consists of the following rules: new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) The set Q consists of the following terms: new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) new_new_primFloatEncodePower3(Succ(x0), Zero) new_new_primFloatEncodePower3(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (45) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero)) at position [0] we obtained the following new rules [LPAR04]: (new_primFloatEncodePower30(Succ(yx121000)) -> H(cons_new_primFloatEncodePower3(Succ(yx121000), Zero)),new_primFloatEncodePower30(Succ(yx121000)) -> H(cons_new_primFloatEncodePower3(Succ(yx121000), Zero))) ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) new_primFloatEncodePower30(Succ(yx121000)) -> H(cons_new_primFloatEncodePower3(Succ(yx121000), Zero)) The TRS R consists of the following rules: new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) The set Q consists of the following terms: new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) new_new_primFloatEncodePower3(Succ(x0), Zero) new_new_primFloatEncodePower3(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (47) 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. ---------------------------------------- (48) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) new_primFloatEncodePower30(Succ(yx121000)) -> H(cons_new_primFloatEncodePower3(Succ(yx121000), Zero)) R is empty. The set Q consists of the following terms: new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) new_new_primFloatEncodePower3(Succ(x0), Zero) new_new_primFloatEncodePower3(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (49) 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_new_primFloatEncodePower3(Succ(x0), Succ(x1)) new_new_primFloatEncodePower3(Succ(x0), Zero) new_new_primFloatEncodePower3(Zero, Succ(x0)) ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) new_primFloatEncodePower30(Succ(yx121000)) -> H(cons_new_primFloatEncodePower3(Succ(yx121000), Zero)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (51) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Zero = Zero Succ(x1) = Succ(x1) cons_new_primFloatEncodePower3(x1, x2) = x1 From the DPs we obtained the following set of size-change graphs: *new_primFloatEncodePower30(Succ(yx121000)) -> H(cons_new_primFloatEncodePower3(Succ(yx121000), Zero)) (allowed arguments on rhs = {1}) The graph contains the following edges 1 >= 1 *H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) (allowed arguments on rhs = {1}) The graph contains the following edges 1 > 1 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (52) YES ---------------------------------------- (53) Obligation: Q DP problem: The TRS P consists of the following rules: new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (54) 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_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (55) YES