10.79/4.47 YES 12.94/5.08 proof of /export/starexec/sandbox/benchmark/theBenchmark.hs 12.94/5.08 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 12.94/5.08 12.94/5.08 12.94/5.08 H-Termination with start terms of the given HASKELL could be proven: 12.94/5.08 12.94/5.08 (0) HASKELL 12.94/5.08 (1) LR [EQUIVALENT, 0 ms] 12.94/5.08 (2) HASKELL 12.94/5.08 (3) BR [EQUIVALENT, 0 ms] 12.94/5.08 (4) HASKELL 12.94/5.08 (5) COR [EQUIVALENT, 0 ms] 12.94/5.08 (6) HASKELL 12.94/5.08 (7) LetRed [EQUIVALENT, 0 ms] 12.94/5.08 (8) HASKELL 12.94/5.08 (9) NumRed [SOUND, 0 ms] 12.94/5.08 (10) HASKELL 12.94/5.08 (11) Narrow [SOUND, 0 ms] 12.94/5.08 (12) AND 12.94/5.08 (13) QDP 12.94/5.08 (14) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.94/5.08 (15) YES 12.94/5.08 (16) QDP 12.94/5.08 (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.94/5.08 (18) YES 12.94/5.08 (19) QDP 12.94/5.08 (20) DependencyGraphProof [EQUIVALENT, 0 ms] 12.94/5.08 (21) QDP 12.94/5.08 (22) TransformationProof [EQUIVALENT, 0 ms] 12.94/5.08 (23) QDP 12.94/5.08 (24) UsableRulesProof [EQUIVALENT, 0 ms] 12.94/5.08 (25) QDP 12.94/5.08 (26) QReductionProof [EQUIVALENT, 0 ms] 12.94/5.08 (27) QDP 12.94/5.08 (28) TransformationProof [EQUIVALENT, 0 ms] 12.94/5.08 (29) QDP 12.94/5.08 (30) QDPPairToRuleProof [EQUIVALENT, 0 ms] 12.94/5.08 (31) AND 12.94/5.08 (32) QDP 12.94/5.08 (33) DependencyGraphProof [EQUIVALENT, 0 ms] 12.94/5.08 (34) QDP 12.94/5.08 (35) TransformationProof [EQUIVALENT, 0 ms] 12.94/5.08 (36) QDP 12.94/5.08 (37) TransformationProof [EQUIVALENT, 0 ms] 12.94/5.08 (38) QDP 12.94/5.08 (39) DependencyGraphProof [EQUIVALENT, 0 ms] 12.94/5.08 (40) QDP 12.94/5.08 (41) UsableRulesProof [EQUIVALENT, 0 ms] 12.94/5.08 (42) QDP 12.94/5.08 (43) QReductionProof [EQUIVALENT, 0 ms] 12.94/5.08 (44) QDP 12.94/5.08 (45) TransformationProof [EQUIVALENT, 0 ms] 12.94/5.08 (46) QDP 12.94/5.08 (47) UsableRulesProof [EQUIVALENT, 0 ms] 12.94/5.08 (48) QDP 12.94/5.08 (49) QReductionProof [EQUIVALENT, 0 ms] 12.94/5.08 (50) QDP 12.94/5.08 (51) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.94/5.08 (52) YES 12.94/5.08 (53) QDP 12.94/5.08 (54) QDPSizeChangeProof [EQUIVALENT, 0 ms] 12.94/5.08 (55) YES 12.94/5.08 12.94/5.08 12.94/5.08 ---------------------------------------- 12.94/5.08 12.94/5.08 (0) 12.94/5.08 Obligation: 12.94/5.08 mainModule Main 12.94/5.08 module Main where { 12.94/5.08 import qualified Prelude; 12.94/5.08 } 12.94/5.08 12.94/5.08 ---------------------------------------- 12.94/5.08 12.94/5.08 (1) LR (EQUIVALENT) 12.94/5.08 Lambda Reductions: 12.94/5.08 The following Lambda expression 12.94/5.08 "\(m,_)->m" 12.94/5.08 is transformed to 12.94/5.08 "m0 (m,_) = m; 12.94/5.08 " 12.94/5.08 The following Lambda expression 12.94/5.08 "\(_,n)->n" 12.94/5.08 is transformed to 12.94/5.08 "n0 (_,n) = n; 12.94/5.08 " 12.94/5.08 12.94/5.08 ---------------------------------------- 12.94/5.08 12.94/5.08 (2) 12.94/5.08 Obligation: 12.94/5.08 mainModule Main 12.94/5.08 module Main where { 12.94/5.08 import qualified Prelude; 12.94/5.08 } 12.94/5.08 12.94/5.08 ---------------------------------------- 12.94/5.08 12.94/5.08 (3) BR (EQUIVALENT) 12.94/5.08 Replaced joker patterns by fresh variables and removed binding patterns. 12.94/5.08 ---------------------------------------- 12.94/5.08 12.94/5.08 (4) 12.94/5.08 Obligation: 12.94/5.08 mainModule Main 12.94/5.08 module Main where { 12.94/5.08 import qualified Prelude; 12.94/5.08 } 12.94/5.08 12.94/5.08 ---------------------------------------- 12.94/5.08 12.94/5.08 (5) COR (EQUIVALENT) 12.94/5.08 Cond Reductions: 12.94/5.08 The following Function with conditions 12.94/5.08 "undefined |Falseundefined; 12.94/5.08 " 12.94/5.08 is transformed to 12.94/5.08 "undefined = undefined1; 12.94/5.08 " 12.94/5.08 "undefined0 True = undefined; 12.94/5.08 " 12.94/5.08 "undefined1 = undefined0 False; 12.94/5.08 " 12.94/5.08 The following Function with conditions 12.94/5.08 "power wv 0 = 1.0; 12.94/5.08 power x ww@(y+1) = fromInt x * power x y; 12.94/5.08 power x y = 1.0 / power x (`negate` y); 12.94/5.08 " 12.94/5.08 is transformed to 12.94/5.08 "power wv xw = power4 wv xw; 12.94/5.08 power x ww = power2 x ww; 12.94/5.08 power x y = power0 x y; 12.94/5.08 " 12.94/5.08 "power0 x y = 1.0 / power x (`negate` y); 12.94/5.08 " 12.94/5.08 "power1 True x ww = fromInt x * power x (ww - 1); 12.94/5.08 power1 wx wy wz = power0 wy wz; 12.94/5.08 " 12.94/5.08 "power2 x ww = power1 (ww >= 1) x ww; 12.94/5.08 power2 xu xv = power0 xu xv; 12.94/5.08 " 12.94/5.08 "power3 True wv xw = 1.0; 12.94/5.08 power3 xx xy xz = power2 xy xz; 12.94/5.08 " 12.94/5.08 "power4 wv xw = power3 (xw == 0) wv xw; 12.94/5.08 power4 yu yv = power2 yu yv; 12.94/5.08 " 12.94/5.08 12.94/5.08 ---------------------------------------- 12.94/5.08 12.94/5.08 (6) 12.94/5.08 Obligation: 12.94/5.08 mainModule Main 12.94/5.08 module Main where { 12.94/5.08 import qualified Prelude; 12.94/5.08 } 12.94/5.08 12.94/5.08 ---------------------------------------- 12.94/5.08 12.94/5.08 (7) LetRed (EQUIVALENT) 12.94/5.08 Let/Where Reductions: 12.94/5.08 The bindings of the following Let/Where expression 12.94/5.08 "encodeFloat m (n + k) where { 12.94/5.08 m = m0 vu12; 12.94/5.08 ; 12.94/5.08 m0 (m,vw) = m; 12.94/5.08 ; 12.94/5.08 n = n0 vu12; 12.94/5.08 ; 12.94/5.08 n0 (vv,n) = n; 12.94/5.08 ; 12.94/5.08 vu12 = decodeFloat x; 12.94/5.08 } 12.94/5.08 " 12.94/5.08 are unpacked to the following functions on top level 12.94/5.08 "scaleFloatM yw = scaleFloatM0 yw (scaleFloatVu12 yw); 12.94/5.08 " 12.94/5.08 "scaleFloatVu12 yw = decodeFloat yw; 12.94/5.09 " 12.94/5.09 "scaleFloatN0 yw (vv,n) = n; 12.94/5.09 " 12.94/5.09 "scaleFloatM0 yw (m,vw) = m; 12.94/5.09 " 12.94/5.09 "scaleFloatN yw = scaleFloatN0 yw (scaleFloatVu12 yw); 12.94/5.09 " 12.94/5.09 The bindings of the following Let/Where expression 12.94/5.09 "fromInteger x * power 2 y where { 12.94/5.09 power wv xw = power4 wv xw; 12.94/5.09 power x ww = power2 x ww; 12.94/5.09 power x y = power0 x y; 12.94/5.09 ; 12.94/5.09 power0 x y = 1.0 / power x (`negate` y); 12.94/5.09 ; 12.94/5.09 power1 True x ww = fromInt x * power x (ww - 1); 12.94/5.09 power1 wx wy wz = power0 wy wz; 12.94/5.09 ; 12.94/5.09 power2 x ww = power1 (ww >= 1) x ww; 12.94/5.09 power2 xu xv = power0 xu xv; 12.94/5.09 ; 12.94/5.09 power3 True wv xw = 1.0; 12.94/5.09 power3 xx xy xz = power2 xy xz; 12.94/5.09 ; 12.94/5.09 power4 wv xw = power3 (xw == 0) wv xw; 12.94/5.09 power4 yu yv = power2 yu yv; 12.94/5.09 } 12.94/5.09 " 12.94/5.09 are unpacked to the following functions on top level 12.94/5.09 "primFloatEncodePower4 wv xw = primFloatEncodePower3 (xw == 0) wv xw; 12.94/5.09 primFloatEncodePower4 yu yv = primFloatEncodePower2 yu yv; 12.94/5.09 " 12.94/5.09 "primFloatEncodePower0 x y = 1.0 / primFloatEncodePower x (`negate` y); 12.94/5.09 " 12.94/5.09 "primFloatEncodePower wv xw = primFloatEncodePower4 wv xw; 12.94/5.09 primFloatEncodePower x ww = primFloatEncodePower2 x ww; 12.94/5.09 primFloatEncodePower x y = primFloatEncodePower0 x y; 12.94/5.09 " 12.94/5.09 "primFloatEncodePower1 True x ww = fromInt x * primFloatEncodePower x (ww - 1); 12.94/5.09 primFloatEncodePower1 wx wy wz = primFloatEncodePower0 wy wz; 12.94/5.09 " 12.94/5.09 "primFloatEncodePower3 True wv xw = 1.0; 12.94/5.09 primFloatEncodePower3 xx xy xz = primFloatEncodePower2 xy xz; 12.94/5.09 " 12.94/5.09 "primFloatEncodePower2 x ww = primFloatEncodePower1 (ww >= 1) x ww; 12.94/5.09 primFloatEncodePower2 xu xv = primFloatEncodePower0 xu xv; 12.94/5.09 " 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (8) 12.94/5.09 Obligation: 12.94/5.09 mainModule Main 12.94/5.09 module Main where { 12.94/5.09 import qualified Prelude; 12.94/5.09 } 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (9) NumRed (SOUND) 12.94/5.09 Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (10) 12.94/5.09 Obligation: 12.94/5.09 mainModule Main 12.94/5.09 module Main where { 12.94/5.09 import qualified Prelude; 12.94/5.09 } 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (11) Narrow (SOUND) 12.94/5.09 Haskell To QDPs 12.94/5.09 12.94/5.09 digraph dp_graph { 12.94/5.09 node [outthreshold=100, inthreshold=100];1[label="scaleFloat",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 12.94/5.09 3[label="scaleFloat yx3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 12.94/5.09 4[label="scaleFloat yx3 yx4",fontsize=16,color="black",shape="triangle"];4 -> 5[label="",style="solid", color="black", weight=3]; 12.94/5.09 5[label="encodeFloat (scaleFloatM yx4) (scaleFloatN yx4 + yx3)",fontsize=16,color="black",shape="box"];5 -> 6[label="",style="solid", color="black", weight=3]; 12.94/5.09 6[label="primFloatEncode (scaleFloatM yx4) (scaleFloatN yx4 + yx3)",fontsize=16,color="black",shape="box"];6 -> 7[label="",style="solid", color="black", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 10 -> 15[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 16[label="scaleFloatVu12 yx4",fontsize=16,color="black",shape="triangle"];16 -> 21[label="",style="solid", color="black", weight=3]; 12.94/5.09 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]; 12.94/5.09 505 -> 22[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 21[label="decodeFloat yx4",fontsize=16,color="black",shape="box"];21 -> 24[label="",style="solid", color="black", weight=3]; 12.94/5.09 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]; 12.94/5.09 24[label="primFloatDecode yx4",fontsize=16,color="black",shape="box"];24 -> 26[label="",style="solid", color="black", weight=3]; 12.94/5.09 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]; 12.94/5.09 506 -> 27[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 26[label="terminator yx4",fontsize=16,color="black",shape="box"];26 -> 28[label="",style="solid", color="black", weight=3]; 12.94/5.09 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]; 12.94/5.09 28[label="ter1m yx4",fontsize=16,color="green",shape="box"];28 -> 30[label="",style="dashed", color="green", weight=3]; 12.94/5.09 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]; 12.94/5.09 30[label="yx4",fontsize=16,color="green",shape="box"];31 -> 200[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 507 -> 295[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 297[label="Float (yx500 * yx100) (Pos (Succ Zero) * yx101)",fontsize=16,color="green",shape="box"];297 -> 299[label="",style="dashed", color="green", weight=3]; 12.94/5.09 297 -> 300[label="",style="dashed", color="green", weight=3]; 12.94/5.09 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]; 12.94/5.09 299[label="yx500 * yx100",fontsize=16,color="black",shape="triangle"];299 -> 302[label="",style="solid", color="black", weight=3]; 12.94/5.09 300 -> 299[label="",style="dashed", color="red", weight=0]; 12.94/5.09 300[label="Pos (Succ Zero) * yx101",fontsize=16,color="magenta"];300 -> 303[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 300 -> 304[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 508 -> 306[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 509[label="yx500/Neg yx5000",fontsize=10,color="white",style="solid",shape="box"];302 -> 509[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 509 -> 307[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 305 -> 310[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 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]; 12.94/5.09 510 -> 311[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 511[label="yx100/Neg yx1000",fontsize=10,color="white",style="solid",shape="box"];306 -> 511[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 511 -> 312[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 512 -> 313[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 513[label="yx100/Neg yx1000",fontsize=10,color="white",style="solid",shape="box"];307 -> 513[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 513 -> 314[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 309 -> 16[label="",style="dashed", color="red", weight=0]; 12.94/5.09 309[label="scaleFloatVu12 yx4",fontsize=16,color="magenta"];310 -> 16[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 514 -> 315[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 311[label="primMulInt (Pos yx5000) (Pos yx1000)",fontsize=16,color="black",shape="box"];311 -> 316[label="",style="solid", color="black", weight=3]; 12.94/5.09 312[label="primMulInt (Pos yx5000) (Neg yx1000)",fontsize=16,color="black",shape="box"];312 -> 317[label="",style="solid", color="black", weight=3]; 12.94/5.09 313[label="primMulInt (Neg yx5000) (Pos yx1000)",fontsize=16,color="black",shape="box"];313 -> 318[label="",style="solid", color="black", weight=3]; 12.94/5.09 314[label="primMulInt (Neg yx5000) (Neg yx1000)",fontsize=16,color="black",shape="box"];314 -> 319[label="",style="solid", color="black", weight=3]; 12.94/5.09 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]; 12.94/5.09 316[label="Pos (primMulNat yx5000 yx1000)",fontsize=16,color="green",shape="box"];316 -> 321[label="",style="dashed", color="green", weight=3]; 12.94/5.09 317[label="Neg (primMulNat yx5000 yx1000)",fontsize=16,color="green",shape="box"];317 -> 322[label="",style="dashed", color="green", weight=3]; 12.94/5.09 318[label="Neg (primMulNat yx5000 yx1000)",fontsize=16,color="green",shape="box"];318 -> 323[label="",style="dashed", color="green", weight=3]; 12.94/5.09 319[label="Pos (primMulNat yx5000 yx1000)",fontsize=16,color="green",shape="box"];319 -> 324[label="",style="dashed", color="green", weight=3]; 12.94/5.09 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]; 12.94/5.09 515 -> 325[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 516[label="yx121/Neg yx1210",fontsize=10,color="white",style="solid",shape="box"];320 -> 516[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 516 -> 326[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 517 -> 327[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 518[label="yx5000/Zero",fontsize=10,color="white",style="solid",shape="box"];321 -> 518[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 518 -> 328[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 322 -> 321[label="",style="dashed", color="red", weight=0]; 12.94/5.09 322[label="primMulNat yx5000 yx1000",fontsize=16,color="magenta"];322 -> 329[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 323 -> 321[label="",style="dashed", color="red", weight=0]; 12.94/5.09 323[label="primMulNat yx5000 yx1000",fontsize=16,color="magenta"];323 -> 330[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 324 -> 321[label="",style="dashed", color="red", weight=0]; 12.94/5.09 324[label="primMulNat yx5000 yx1000",fontsize=16,color="magenta"];324 -> 331[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 324 -> 332[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 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]; 12.94/5.09 519 -> 333[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 520[label="yx3/Neg yx30",fontsize=10,color="white",style="solid",shape="box"];325 -> 520[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 520 -> 334[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 521 -> 335[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 522[label="yx3/Neg yx30",fontsize=10,color="white",style="solid",shape="box"];326 -> 522[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 522 -> 336[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 523 -> 337[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 524[label="yx1000/Zero",fontsize=10,color="white",style="solid",shape="box"];327 -> 524[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 524 -> 338[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 525 -> 339[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 526[label="yx1000/Zero",fontsize=10,color="white",style="solid",shape="box"];328 -> 526[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 526 -> 340[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 337[label="primMulNat (Succ yx50000) (Succ yx10000)",fontsize=16,color="black",shape="box"];337 -> 345[label="",style="solid", color="black", weight=3]; 12.94/5.09 338[label="primMulNat (Succ yx50000) Zero",fontsize=16,color="black",shape="box"];338 -> 346[label="",style="solid", color="black", weight=3]; 12.94/5.09 339[label="primMulNat Zero (Succ yx10000)",fontsize=16,color="black",shape="box"];339 -> 347[label="",style="solid", color="black", weight=3]; 12.94/5.09 340[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];340 -> 348[label="",style="solid", color="black", weight=3]; 12.94/5.09 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]; 12.94/5.09 527 -> 349[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 528[label="yx1210/Zero",fontsize=10,color="white",style="solid",shape="box"];341 -> 528[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 528 -> 350[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 529 -> 351[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 530[label="yx1210/Zero",fontsize=10,color="white",style="solid",shape="box"];342 -> 530[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 530 -> 352[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 343 -> 342[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 343 -> 354[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 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]; 12.94/5.09 531 -> 355[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 532[label="yx1210/Zero",fontsize=10,color="white",style="solid",shape="box"];344 -> 532[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 532 -> 356[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 345 -> 357[label="",style="dashed", color="red", weight=0]; 12.94/5.09 345[label="primPlusNat (primMulNat yx50000 (Succ yx10000)) (Succ yx10000)",fontsize=16,color="magenta"];345 -> 358[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 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]; 12.94/5.09 533 -> 359[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 534[label="yx30/Zero",fontsize=10,color="white",style="solid",shape="box"];349 -> 534[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 534 -> 360[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 535 -> 361[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 536[label="yx30/Zero",fontsize=10,color="white",style="solid",shape="box"];350 -> 536[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 536 -> 362[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 537 -> 363[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 538[label="yx30/Zero",fontsize=10,color="white",style="solid",shape="box"];351 -> 538[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 538 -> 364[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 539 -> 365[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 540[label="yx30/Zero",fontsize=10,color="white",style="solid",shape="box"];352 -> 540[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 540 -> 366[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 541 -> 367[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 542[label="yx30/Zero",fontsize=10,color="white",style="solid",shape="box"];355 -> 542[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 542 -> 368[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 543 -> 369[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 544[label="yx30/Zero",fontsize=10,color="white",style="solid",shape="box"];356 -> 544[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 544 -> 370[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 358 -> 321[label="",style="dashed", color="red", weight=0]; 12.94/5.09 358[label="primMulNat yx50000 (Succ yx10000)",fontsize=16,color="magenta"];358 -> 371[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 358 -> 372[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 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]; 12.94/5.09 545 -> 373[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 546[label="yx13/Zero",fontsize=10,color="white",style="solid",shape="box"];357 -> 546[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 546 -> 374[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 374[label="primPlusNat Zero (Succ yx10000)",fontsize=16,color="black",shape="box"];374 -> 388[label="",style="solid", color="black", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 377 -> 376[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 379 -> 342[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 379 -> 394[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 380 -> 376[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 382 -> 378[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 384 -> 381[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 385 -> 381[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 387[label="Succ (Succ (primPlusNat yx130 yx10000))",fontsize=16,color="green",shape="box"];387 -> 399[label="",style="dashed", color="green", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 396[label="Succ (primPlusNat yx12100 yx300)",fontsize=16,color="green",shape="box"];396 -> 404[label="",style="dashed", color="green", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 547 -> 406[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 548[label="yx130/Zero",fontsize=10,color="white",style="solid",shape="box"];399 -> 548[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 548 -> 407[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 400 -> 408[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 404 -> 399[label="",style="dashed", color="red", weight=0]; 12.94/5.09 404[label="primPlusNat yx12100 yx300",fontsize=16,color="magenta"];404 -> 413[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 404 -> 414[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 405 -> 402[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 549 -> 415[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 550[label="yx10000/Zero",fontsize=10,color="white",style="solid",shape="box"];406 -> 550[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 550 -> 416[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 551 -> 417[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 552[label="yx10000/Zero",fontsize=10,color="white",style="solid",shape="box"];407 -> 552[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 552 -> 418[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 409 -> 399[label="",style="dashed", color="red", weight=0]; 12.94/5.09 409[label="primPlusNat yx12100 yx300",fontsize=16,color="magenta"];409 -> 419[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 409 -> 420[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 408 -> 401[label="",style="dashed", color="red", weight=0]; 12.94/5.09 408[label="primFloatEncodePower2 (Pos (Succ (Succ Zero))) (Pos (Succ (Succ yx14)))",fontsize=16,color="magenta"];408 -> 421[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 416[label="primPlusNat (Succ yx1300) Zero",fontsize=16,color="black",shape="box"];416 -> 426[label="",style="solid", color="black", weight=3]; 12.94/5.09 417[label="primPlusNat Zero (Succ yx100000)",fontsize=16,color="black",shape="box"];417 -> 427[label="",style="solid", color="black", weight=3]; 12.94/5.09 418[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];418 -> 428[label="",style="solid", color="black", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 425[label="Succ (Succ (primPlusNat yx1300 yx100000))",fontsize=16,color="green",shape="box"];425 -> 431[label="",style="dashed", color="green", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 431 -> 399[label="",style="dashed", color="red", weight=0]; 12.94/5.09 431[label="primPlusNat yx1300 yx100000",fontsize=16,color="magenta"];431 -> 434[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 431 -> 435[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 553 -> 440[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 554[label="yx12100/Zero",fontsize=10,color="white",style="solid",shape="box"];438 -> 554[label="",style="solid", color="burlywood", weight=9]; 12.94/5.09 554 -> 441[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 448 -> 451[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 452 -> 402[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 555 -> 458[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 461 -> 478[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 462 -> 200[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 462 -> 466[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 463 -> 200[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 463 -> 468[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 556 -> 485[label="",style="solid", color="burlywood", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 485[label="primDivFloat (Float yx150 yx151) (Float yx160 yx161)",fontsize=16,color="black",shape="box"];485 -> 489[label="",style="solid", color="black", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 489[label="Float (yx150 * yx161) (yx151 * yx160)",fontsize=16,color="green",shape="box"];489 -> 493[label="",style="dashed", color="green", weight=3]; 12.94/5.09 489 -> 494[label="",style="dashed", color="green", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 493 -> 299[label="",style="dashed", color="red", weight=0]; 12.94/5.09 493[label="yx150 * yx161",fontsize=16,color="magenta"];493 -> 500[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 493 -> 501[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 494 -> 299[label="",style="dashed", color="red", weight=0]; 12.94/5.09 494[label="yx151 * yx160",fontsize=16,color="magenta"];494 -> 502[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 494 -> 503[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 499 -> 376[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 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]; 12.94/5.09 504[label="yx300",fontsize=16,color="green",shape="box"];490 -> 342[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 490 -> 496[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 491 -> 342[label="",style="dashed", color="red", weight=0]; 12.94/5.09 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]; 12.94/5.09 491 -> 498[label="",style="dashed", color="magenta", weight=3]; 12.94/5.09 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.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (12) 12.94/5.09 Complex Obligation (AND) 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (13) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primMulNat(Succ(yx50000), Succ(yx10000)) -> new_primMulNat(yx50000, Succ(yx10000)) 12.94/5.09 12.94/5.09 R is empty. 12.94/5.09 Q is empty. 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (14) QDPSizeChangeProof (EQUIVALENT) 12.94/5.09 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. 12.94/5.09 12.94/5.09 From the DPs we obtained the following set of size-change graphs: 12.94/5.09 *new_primMulNat(Succ(yx50000), Succ(yx10000)) -> new_primMulNat(yx50000, Succ(yx10000)) 12.94/5.09 The graph contains the following edges 1 > 1, 2 >= 2 12.94/5.09 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (15) 12.94/5.09 YES 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (16) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primPlusNat(Succ(yx1300), Succ(yx100000)) -> new_primPlusNat(yx1300, yx100000) 12.94/5.09 12.94/5.09 R is empty. 12.94/5.09 Q is empty. 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (17) QDPSizeChangeProof (EQUIVALENT) 12.94/5.09 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. 12.94/5.09 12.94/5.09 From the DPs we obtained the following set of size-change graphs: 12.94/5.09 *new_primPlusNat(Succ(yx1300), Succ(yx100000)) -> new_primPlusNat(yx1300, yx100000) 12.94/5.09 The graph contains the following edges 1 > 1, 2 > 2 12.94/5.09 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (18) 12.94/5.09 YES 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (19) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 new_primFloatEncodePower31(yx300) -> new_fs(new_fromDouble, yx300) 12.94/5.09 new_primFloatEncodePower2(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) 12.94/5.09 new_fs(Float(yx150, yx151), yx300) -> new_primFloatEncodePower30(yx300) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_primFloatEncodePower2(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) 12.94/5.09 new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) 12.94/5.09 new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(new_fromDouble, yx300) 12.94/5.09 12.94/5.09 The TRS R consists of the following rules: 12.94/5.09 12.94/5.09 new_fromDouble -> Float(Pos(Succ(Zero)), Pos(Succ(Zero))) 12.94/5.09 12.94/5.09 The set Q consists of the following terms: 12.94/5.09 12.94/5.09 new_fromDouble 12.94/5.09 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (20) DependencyGraphProof (EQUIVALENT) 12.94/5.09 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (21) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) 12.94/5.09 new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(new_fromDouble, yx300) 12.94/5.09 new_fs(Float(yx150, yx151), yx300) -> new_primFloatEncodePower30(yx300) 12.94/5.09 12.94/5.09 The TRS R consists of the following rules: 12.94/5.09 12.94/5.09 new_fromDouble -> Float(Pos(Succ(Zero)), Pos(Succ(Zero))) 12.94/5.09 12.94/5.09 The set Q consists of the following terms: 12.94/5.09 12.94/5.09 new_fromDouble 12.94/5.09 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (22) TransformationProof (EQUIVALENT) 12.94/5.09 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]: 12.94/5.09 12.94/5.09 (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)) 12.94/5.09 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (23) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) 12.94/5.09 new_fs(Float(yx150, yx151), yx300) -> new_primFloatEncodePower30(yx300) 12.94/5.09 new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) 12.94/5.09 12.94/5.09 The TRS R consists of the following rules: 12.94/5.09 12.94/5.09 new_fromDouble -> Float(Pos(Succ(Zero)), Pos(Succ(Zero))) 12.94/5.09 12.94/5.09 The set Q consists of the following terms: 12.94/5.09 12.94/5.09 new_fromDouble 12.94/5.09 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (24) UsableRulesProof (EQUIVALENT) 12.94/5.09 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. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (25) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) 12.94/5.09 new_fs(Float(yx150, yx151), yx300) -> new_primFloatEncodePower30(yx300) 12.94/5.09 new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) 12.94/5.09 12.94/5.09 R is empty. 12.94/5.09 The set Q consists of the following terms: 12.94/5.09 12.94/5.09 new_fromDouble 12.94/5.09 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (26) QReductionProof (EQUIVALENT) 12.94/5.09 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 12.94/5.09 12.94/5.09 new_fromDouble 12.94/5.09 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (27) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) 12.94/5.09 new_fs(Float(yx150, yx151), yx300) -> new_primFloatEncodePower30(yx300) 12.94/5.09 new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) 12.94/5.09 12.94/5.09 R is empty. 12.94/5.09 Q is empty. 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (28) TransformationProof (EQUIVALENT) 12.94/5.09 By instantiating [LPAR04] the rule new_fs(Float(yx150, yx151), yx300) -> new_primFloatEncodePower30(yx300) we obtained the following new rules [LPAR04]: 12.94/5.09 12.94/5.09 (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)) 12.94/5.09 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (29) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) 12.94/5.09 new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) 12.94/5.09 new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), z0) -> new_primFloatEncodePower30(z0) 12.94/5.09 12.94/5.09 R is empty. 12.94/5.09 Q is empty. 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (30) QDPPairToRuleProof (EQUIVALENT) 12.94/5.09 The dependency pair new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) was transformed to the following new rules: 12.94/5.09 anew_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(yx300)) -> cons_new_primFloatEncodePower3(Zero, Succ(yx300)) 12.94/5.09 12.94/5.09 the following new pairs maintain the fan-in: 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> H(anew_new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero))) 12.94/5.09 new_primFloatEncodePower30(Zero) -> H(anew_new_primFloatEncodePower3(Succ(Zero), Succ(Zero))) 12.94/5.09 12.94/5.09 the following new pairs maintain the fan-out: 12.94/5.09 H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 H(cons_new_primFloatEncodePower3(Zero, Succ(yx300))) -> new_primFloatEncodePower3(Zero, Succ(yx300)) 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (31) 12.94/5.09 Complex Obligation (AND) 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (32) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero)) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 new_primFloatEncodePower30(Zero) -> new_primFloatEncodePower3(Succ(Zero), Succ(Zero)) 12.94/5.09 new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) 12.94/5.09 new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), z0) -> new_primFloatEncodePower30(z0) 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> H(anew_new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero))) 12.94/5.09 new_primFloatEncodePower30(Zero) -> H(anew_new_primFloatEncodePower3(Succ(Zero), Succ(Zero))) 12.94/5.09 H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 H(cons_new_primFloatEncodePower3(Zero, Succ(yx300))) -> new_primFloatEncodePower3(Zero, Succ(yx300)) 12.94/5.09 12.94/5.09 The TRS R consists of the following rules: 12.94/5.09 12.94/5.09 anew_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(yx300)) -> cons_new_primFloatEncodePower3(Zero, Succ(yx300)) 12.94/5.09 12.94/5.09 The set Q consists of the following terms: 12.94/5.09 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(x0)) 12.94/5.09 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (33) DependencyGraphProof (EQUIVALENT) 12.94/5.09 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (34) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> H(anew_new_primFloatEncodePower3(Succ(Succ(yx121000)), Succ(Zero))) 12.94/5.09 H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 new_primFloatEncodePower30(Zero) -> H(anew_new_primFloatEncodePower3(Succ(Zero), Succ(Zero))) 12.94/5.09 H(cons_new_primFloatEncodePower3(Zero, Succ(yx300))) -> new_primFloatEncodePower3(Zero, Succ(yx300)) 12.94/5.09 new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) 12.94/5.09 new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), z0) -> new_primFloatEncodePower30(z0) 12.94/5.09 12.94/5.09 The TRS R consists of the following rules: 12.94/5.09 12.94/5.09 anew_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(yx300)) -> cons_new_primFloatEncodePower3(Zero, Succ(yx300)) 12.94/5.09 12.94/5.09 The set Q consists of the following terms: 12.94/5.09 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(x0)) 12.94/5.09 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (35) TransformationProof (EQUIVALENT) 12.94/5.09 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]: 12.94/5.09 12.94/5.09 (new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero)),new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero))) 12.94/5.09 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (36) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 new_primFloatEncodePower30(Zero) -> H(anew_new_primFloatEncodePower3(Succ(Zero), Succ(Zero))) 12.94/5.09 H(cons_new_primFloatEncodePower3(Zero, Succ(yx300))) -> new_primFloatEncodePower3(Zero, Succ(yx300)) 12.94/5.09 new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) 12.94/5.09 new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), z0) -> new_primFloatEncodePower30(z0) 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero)) 12.94/5.09 12.94/5.09 The TRS R consists of the following rules: 12.94/5.09 12.94/5.09 anew_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(yx300)) -> cons_new_primFloatEncodePower3(Zero, Succ(yx300)) 12.94/5.09 12.94/5.09 The set Q consists of the following terms: 12.94/5.09 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(x0)) 12.94/5.09 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (37) TransformationProof (EQUIVALENT) 12.94/5.09 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]: 12.94/5.09 12.94/5.09 (new_primFloatEncodePower30(Zero) -> H(new_new_primFloatEncodePower3(Zero, Zero)),new_primFloatEncodePower30(Zero) -> H(new_new_primFloatEncodePower3(Zero, Zero))) 12.94/5.09 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (38) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 H(cons_new_primFloatEncodePower3(Zero, Succ(yx300))) -> new_primFloatEncodePower3(Zero, Succ(yx300)) 12.94/5.09 new_primFloatEncodePower3(Zero, Succ(yx300)) -> new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), yx300) 12.94/5.09 new_fs(Float(Pos(Succ(Zero)), Pos(Succ(Zero))), z0) -> new_primFloatEncodePower30(z0) 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero)) 12.94/5.09 new_primFloatEncodePower30(Zero) -> H(new_new_primFloatEncodePower3(Zero, Zero)) 12.94/5.09 12.94/5.09 The TRS R consists of the following rules: 12.94/5.09 12.94/5.09 anew_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(yx300)) -> cons_new_primFloatEncodePower3(Zero, Succ(yx300)) 12.94/5.09 12.94/5.09 The set Q consists of the following terms: 12.94/5.09 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(x0)) 12.94/5.09 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (39) DependencyGraphProof (EQUIVALENT) 12.94/5.09 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (40) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero)) 12.94/5.09 H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 12.94/5.09 The TRS R consists of the following rules: 12.94/5.09 12.94/5.09 anew_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(yx300)) -> cons_new_primFloatEncodePower3(Zero, Succ(yx300)) 12.94/5.09 12.94/5.09 The set Q consists of the following terms: 12.94/5.09 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(x0)) 12.94/5.09 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (41) UsableRulesProof (EQUIVALENT) 12.94/5.09 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. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (42) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero)) 12.94/5.09 H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 12.94/5.09 The TRS R consists of the following rules: 12.94/5.09 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 12.94/5.09 The set Q consists of the following terms: 12.94/5.09 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(x0)) 12.94/5.09 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (43) QReductionProof (EQUIVALENT) 12.94/5.09 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 12.94/5.09 12.94/5.09 anew_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (44) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> H(new_new_primFloatEncodePower3(Succ(yx121000), Zero)) 12.94/5.09 H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 12.94/5.09 The TRS R consists of the following rules: 12.94/5.09 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 12.94/5.09 The set Q consists of the following terms: 12.94/5.09 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(x0)) 12.94/5.09 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (45) TransformationProof (EQUIVALENT) 12.94/5.09 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]: 12.94/5.09 12.94/5.09 (new_primFloatEncodePower30(Succ(yx121000)) -> H(cons_new_primFloatEncodePower3(Succ(yx121000), Zero)),new_primFloatEncodePower30(Succ(yx121000)) -> H(cons_new_primFloatEncodePower3(Succ(yx121000), Zero))) 12.94/5.09 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (46) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> H(cons_new_primFloatEncodePower3(Succ(yx121000), Zero)) 12.94/5.09 12.94/5.09 The TRS R consists of the following rules: 12.94/5.09 12.94/5.09 new_new_primFloatEncodePower3(Succ(yx12100), Zero) -> cons_new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 12.94/5.09 The set Q consists of the following terms: 12.94/5.09 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(x0)) 12.94/5.09 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (47) UsableRulesProof (EQUIVALENT) 12.94/5.09 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. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (48) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> H(cons_new_primFloatEncodePower3(Succ(yx121000), Zero)) 12.94/5.09 12.94/5.09 R is empty. 12.94/5.09 The set Q consists of the following terms: 12.94/5.09 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(x0)) 12.94/5.09 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (49) QReductionProof (EQUIVALENT) 12.94/5.09 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 12.94/5.09 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Succ(x1)) 12.94/5.09 new_new_primFloatEncodePower3(Succ(x0), Zero) 12.94/5.09 new_new_primFloatEncodePower3(Zero, Succ(x0)) 12.94/5.09 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (50) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) 12.94/5.09 H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) 12.94/5.09 new_primFloatEncodePower30(Succ(yx121000)) -> H(cons_new_primFloatEncodePower3(Succ(yx121000), Zero)) 12.94/5.09 12.94/5.09 R is empty. 12.94/5.09 Q is empty. 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (51) QDPSizeChangeProof (EQUIVALENT) 12.94/5.09 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. 12.94/5.09 12.94/5.09 Order:EMB rules! 12.94/5.09 12.94/5.09 AFS: 12.94/5.09 Zero = Zero 12.94/5.09 12.94/5.09 Succ(x1) = Succ(x1) 12.94/5.09 12.94/5.09 cons_new_primFloatEncodePower3(x1, x2) = x1 12.94/5.09 12.94/5.09 12.94/5.09 12.94/5.09 12.94/5.09 12.94/5.09 From the DPs we obtained the following set of size-change graphs: 12.94/5.09 *new_primFloatEncodePower30(Succ(yx121000)) -> H(cons_new_primFloatEncodePower3(Succ(yx121000), Zero)) (allowed arguments on rhs = {1}) 12.94/5.09 The graph contains the following edges 1 >= 1 12.94/5.09 12.94/5.09 12.94/5.09 *H(cons_new_primFloatEncodePower3(Succ(yx12100), Zero)) -> new_primFloatEncodePower3(Succ(yx12100), Zero) (allowed arguments on rhs = {1, 2}) 12.94/5.09 The graph contains the following edges 1 >= 1 12.94/5.09 12.94/5.09 12.94/5.09 *new_primFloatEncodePower3(Succ(yx12100), Zero) -> new_primFloatEncodePower30(yx12100) (allowed arguments on rhs = {1}) 12.94/5.09 The graph contains the following edges 1 > 1 12.94/5.09 12.94/5.09 12.94/5.09 12.94/5.09 We oriented the following set of usable rules [AAECC05,FROCOS05]. 12.94/5.09 none 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (52) 12.94/5.09 YES 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (53) 12.94/5.09 Obligation: 12.94/5.09 Q DP problem: 12.94/5.09 The TRS P consists of the following rules: 12.94/5.09 12.94/5.09 new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 12.94/5.09 R is empty. 12.94/5.09 Q is empty. 12.94/5.09 We have to consider all minimal (P,Q,R)-chains. 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (54) QDPSizeChangeProof (EQUIVALENT) 12.94/5.09 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. 12.94/5.09 12.94/5.09 From the DPs we obtained the following set of size-change graphs: 12.94/5.09 *new_primFloatEncodePower3(Succ(yx12100), Succ(yx300)) -> new_primFloatEncodePower3(yx12100, yx300) 12.94/5.09 The graph contains the following edges 1 > 1, 2 > 2 12.94/5.09 12.94/5.09 12.94/5.09 ---------------------------------------- 12.94/5.09 12.94/5.09 (55) 12.94/5.09 YES 12.94/5.12 EOF