Unexport `PRational` constructor...
And add supplementary functions
And add supplementary functions
module Plutarch.Rational (
PRational (..),
PRational,
preduce,
pnumerator,
pdenominator,
pfromInteger,
pround,
ptruncate,
pproperFraction,
pratLazy,
prationalLazy,
prational,
punrational,
) where
import Data.Ratio (denominator, numerator)
deriving stock (GHC.Generic)
deriving anyclass (Generic, PEq)
{- | NOTE: This instance may delegate the nonzero invariant check during construction.
As such, the constructor is not exported and users are expected to use 'prational', 'prationalLazy', and
'punrational' instead.
-}
instance PlutusType PRational where
type PInner PRational b = (PInteger :--> PNonZero :--> b) :--> b
pcon' (PRational x y') = plet y' $ \y -> plam $ \f -> f # x # y
pcon' (PRational x y) = plam $ \f -> f # x # y
pmatch' ratF f = ratF #$ plam $ \a b -> f $ PRational a b
{- | Builds a rational with lazy non-zero denominator verification.
i.e, if the denominator was zero, it'll error only after 'pmatch'ing on the resulting rational.
-}
pratLazy :: Term s PInteger -> Term s PNonZero -> Term s PRational
pratLazy numr denm = punsafeDowncast $ plam $ \f -> f # numr # denm
prationalLazy :: Term s PInteger -> Term s PNonZero -> Term s PRational
prationalLazy numr denm = pcon $ PRational numr denm
-- | Build a rational, without delegating the denominator invariant.
prational :: Term s (PInteger :--> PNonZero :--> PRational)
prational = phoistAcyclic $ plam $ \numr denm -> pcon $ PRational numr denm
-- | 'pmatch' specialized for 'PRational'.
punrational :: Term s PRational -> ((Term s PInteger, Term s PNonZero) -> Term s b) -> Term s b
punrational r f = pmatch r $ \(PRational x y) -> f (x, y)
instance PShow PRational where
pshow' _ x =
instance PIsData PRational where
pfromDataImpl x' = phoistAcyclic (plam $ \x -> plistToRat #$ pasList # pforgetData x) # x'
where
plistToRat = plam $ \x -> pratLazy (pasInt #$ phead # x) $ punsafeDowncast $ pasInt #$ phead #$ ptail # x
plistToRat = plam $ \x -> prationalLazy (pasInt #$ phead # x) $ punsafeDowncast $ pasInt #$ phead #$ ptail # x
pdataImpl x' =
phoistAcyclic
( plam $ \x -> unTermCont $ do
yd <- tcont $ plet yd'
pure $
preduce
#$ pratLazy (xn * pto yd + yn * pto xd)
#$ prationalLazy (xn * pto yd + yn * pto xd)
$ punsafeDowncast $ pto xd * pto yd
)
# x'
yd <- tcont $ plet yd'
pure $
preduce
#$ pratLazy (xn * pto yd - yn * pto xd)
#$ prationalLazy (xn * pto yd - yn * pto xd)
$ punsafeDowncast $ pto xd * pto yd
)
# x'
PRational yn yd <- tcont $ pmatch y
pure $
preduce
#$ pratLazy (xn * yn)
#$ prationalLazy (xn * yn)
$ punsafeDowncast $ pto xd * pto yd
)
# x'
phoistAcyclic
( plam $ \x ->
pmatch x $ \(PRational xn xd) ->
pratLazy (negate xn) xd
prationalLazy (negate xn) xd
)
# x'
abs x' =
phoistAcyclic
( plam $ \x ->
pmatch x $ \(PRational xn xd) ->
pratLazy (abs xn) $ punsafeDowncast $ abs $ pto xd
prationalLazy (abs xn) $ punsafeDowncast $ abs $ pto xd
)
# x'
)
# x'
fromInteger n = pratLazy (pconstant n) $ punsafeDowncast 1
fromInteger n = prationalLazy (pconstant n) $ punsafeDowncast 1
instance Fractional (Term s PRational) where
recip x' =
phoistAcyclic
( plam $ \x ->
pmatch x $ \(PRational xn xd) ->
pcon . PRational (pto xd) $ ptryNonZero # xn
pmatch x $ \(PRational xn xd) -> plet (ptryNonZero # xn) $ \denm ->
prationalLazy (pto xd) denm
)
# x'
( plam $ \x y -> unTermCont $ do
PRational xn xd <- tcont $ pmatch x
PRational yn yd <- tcont $ pmatch y
pure $ preduce #$ pcon . PRational (xn * pto yd) $ ptryNonZero #$ pto xd * yn
denm <- tcont . plet $ ptryNonZero #$ pto xd * yn
pure $ preduce #$ prationalLazy (xn * pto yd) denm
)
# x'
# y'
fromRational r =
pratLazy (pconstant $ numerator r) $ punsafeDowncast $ pconstant $ denominator r
prationalLazy (pconstant $ numerator r) $ punsafeDowncast $ pconstant $ denominator r
preduce :: Term s (PRational :--> PRational)
preduce = phoistAcyclic $
xd <- tcont . plet $ pto xd'
r <- tcont . plet $ pgcd # xn # xd
s <- tcont . plet . signum $ xd
pure . pratLazy (s * pdiv # xn # r) $ punsafeDowncast $ s * pdiv # xd # r
pure . prationalLazy (s * pdiv # xn # r) $ punsafeDowncast $ s * pdiv # xd # r
pgcd :: Term s (PInteger :--> PInteger :--> PInteger)
pgcd = phoistAcyclic $
pdenominator = phoistAcyclic $ plam $ \x -> pmatch x $ \(PRational _ d) -> d
pfromInteger :: Term s (PInteger :--> PRational)
pfromInteger = phoistAcyclic $ plam $ \n -> pratLazy n $ punsafeDowncast 1
pfromInteger = phoistAcyclic $ plam $ \n -> prationalLazy n $ punsafeDowncast 1
pround :: Term s (PRational :--> PInteger)
pround = phoistAcyclic $
literal (program 1.0.0 (\i0 -> i1 1 2))
ops.+ (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (addInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (i1 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (i1 (\i0 -> i1 1 1) (\i0 -> i1 2 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
ops.- (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (i1 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (i1 (\i0 -> i1 1 1) (\i0 -> i1 3 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
ops.* (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i9 (\i0 -> i1 (multiplyInteger i5 i3) (multiplyInteger i4 i2))))) (i1 (\i0 -> i1 1 1) (i2 (\i0 -> i1 3 1) (\i0 -> i1 2 1))) (i1 (\i0 -> i1 2 1) (i2 (\i0 -> i1 5 1) (\i0 -> i1 2 1)))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2)))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
ops.harmonic-sum (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (i1 (i1 (i2 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (i2 (\i0 -> i1 1 1) (\i0 -> i1 3 1))) (i2 (\i0 -> i1 1 1) (\i0 -> i1 4 1))) (i2 (\i0 -> i1 1 1) (\i0 -> i1 5 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (addInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2)))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
ops.multi-product (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (i1 (i2 (i1 (i2 (i1 (i2 (i1 (i2 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (\i0 -> i1 2 1)) (\i0 -> i1 3 1)) (\i0 -> i1 3 1)) (\i0 -> i1 4 1)) (\i0 -> i1 4 1)) (\i0 -> i1 5 1)) (\i0 -> i1 5 1)) (\i0 -> i1 6 1)) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (multiplyInteger i5 i3) (multiplyInteger i4 i2)))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
compare (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> lessThanInteger (multiplyInteger i1 i4) (multiplyInteger i2 i3)))) (i1 (\i0 -> i1 2 1) (\i0 -> i1 9 1)) (i1 (\i0 -> i1 3 1) (\i0 -> i1 10 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
round.5/3 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 5 1) (\i0 -> i1 3 1))) (force ifThenElse)))
round.4/3 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 4 1) (\i0 -> i1 3 1))) (force ifThenElse)))
round.-5/2 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2)) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 5 1) (\i0 -> i1 2 1)))) (force ifThenElse)))
round.-1/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2)) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 1 1) (\i0 -> i1 4 1)))) (force ifThenElse)))
truncate.5/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 5 1) (\i0 -> i1 4 1))) (force ifThenElse)))
truncate.7/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 7 1) (\i0 -> i1 4 1))) (force ifThenElse)))
truncate.1/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 1 1) (\i0 -> i1 4 1))) (force ifThenElse)))
truncate.-7/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2)) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 7 1) (\i0 -> i1 4 1)))) (force ifThenElse)))
properFraction.-1/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i2 ((\i0 -> i4 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i13 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 i3 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i16 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i16 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i3 (i4 (\i0 -> i1 1 1) (\i0 -> i1 2 1))) (\i0 -> \i0 -> force (i3 (equalsInteger i2 0) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i8 (equalsInteger i4 i2) (delay (equalsInteger i3 i1)))))) (i5 (i6 (\i0 -> i1 1 1) (\i0 -> i1 2 1)))))))) (\i0 -> \i0 -> i13 i2 i1 i3)) (delay False)) (\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
properFraction.-3/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i2 ((\i0 -> i4 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i13 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 i3 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i16 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i16 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i3 (i4 (\i0 -> i1 3 1) (\i0 -> i1 2 1))) (\i0 -> \i0 -> force (i3 (equalsInteger i2 (subtractInteger 0 1)) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i8 (equalsInteger i4 i2) (delay (equalsInteger i3 i1)))))) (i5 (i6 (\i0 -> i1 1 1) (\i0 -> i1 2 1)))))))) (\i0 -> \i0 -> i13 i2 i1 i3)) (delay False)) (\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
properFraction.-4/3 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i2 ((\i0 -> i4 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i13 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 i3 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i16 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i16 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i3 (i4 (\i0 -> i1 4 1) (\i0 -> i1 3 1))) (\i0 -> \i0 -> force (i3 (equalsInteger i2 (subtractInteger 0 1)) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i8 (equalsInteger i4 i2) (delay (equalsInteger i3 i1)))))) (i5 (i6 (\i0 -> i1 1 1) (\i0 -> i1 3 1)))))))) (\i0 -> \i0 -> i13 i2 i1 i3)) (delay False)) (\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
ops.+ (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (addInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (i1 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (i1 (\i0 -> i1 1 1) (\i0 -> i1 2 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
ops.- (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (i1 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (i1 (\i0 -> i1 1 1) (\i0 -> i1 3 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
ops.* (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i9 (\i0 -> i1 (multiplyInteger i5 i3) (multiplyInteger i4 i2))))) (i1 (\i0 -> i1 1 1) (i2 (\i0 -> i1 3 1) (\i0 -> i1 2 1))) (i1 (\i0 -> i1 2 1) (i2 (\i0 -> i1 5 1) (\i0 -> i1 2 1)))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2)))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
ops.harmonic-sum (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (i1 (i1 (i2 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (i2 (\i0 -> i1 1 1) (\i0 -> i1 3 1))) (i2 (\i0 -> i1 1 1) (\i0 -> i1 4 1))) (i2 (\i0 -> i1 1 1) (\i0 -> i1 5 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (addInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2)))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
ops.multi-product (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (i1 (i2 (i1 (i2 (i1 (i2 (i1 (i2 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (\i0 -> i1 2 1)) (\i0 -> i1 3 1)) (\i0 -> i1 3 1)) (\i0 -> i1 4 1)) (\i0 -> i1 4 1)) (\i0 -> i1 5 1)) (\i0 -> i1 5 1)) (\i0 -> i1 6 1)) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (multiplyInteger i5 i3) (multiplyInteger i4 i2)))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
compare (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> lessThanInteger (multiplyInteger i1 i4) (multiplyInteger i2 i3)))) (i1 (\i0 -> i1 2 1) (\i0 -> i1 9 1)) (i1 (\i0 -> i1 3 1) (\i0 -> i1 10 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
round.5/3 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 5 1) (\i0 -> i1 3 1))) (force ifThenElse)))
round.4/3 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 4 1) (\i0 -> i1 3 1))) (force ifThenElse)))
round.-5/2 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2)) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 5 1) (\i0 -> i1 2 1)))) (force ifThenElse)))
round.-1/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2)) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 1 1) (\i0 -> i1 4 1)))) (force ifThenElse)))
truncate.5/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 5 1) (\i0 -> i1 4 1))) (force ifThenElse)))
truncate.7/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 7 1) (\i0 -> i1 4 1))) (force ifThenElse)))
truncate.1/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 1 1) (\i0 -> i1 4 1))) (force ifThenElse)))
truncate.-7/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2)) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 7 1) (\i0 -> i1 4 1)))) (force ifThenElse)))
properFraction.-1/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i2 ((\i0 -> i4 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i13 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 i3 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i16 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i16 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i3 (i4 (\i0 -> i1 1 1) (\i0 -> i1 2 1))) (\i0 -> \i0 -> force (i3 (equalsInteger i2 0) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i8 (equalsInteger i4 i2) (delay (equalsInteger i3 i1)))))) (i5 (i6 (\i0 -> i1 1 1) (\i0 -> i1 2 1)))))))) (\i0 -> \i0 -> i13 i2 i1 i3)) (delay False)) (\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
properFraction.-3/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i2 ((\i0 -> i4 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i13 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 i3 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i16 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i16 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i3 (i4 (\i0 -> i1 3 1) (\i0 -> i1 2 1))) (\i0 -> \i0 -> force (i3 (equalsInteger i2 (subtractInteger 0 1)) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i8 (equalsInteger i4 i2) (delay (equalsInteger i3 i1)))))) (i5 (i6 (\i0 -> i1 1 1) (\i0 -> i1 2 1)))))))) (\i0 -> \i0 -> i13 i2 i1 i3)) (delay False)) (\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
properFraction.-4/3 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i2 ((\i0 -> i4 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i13 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 i3 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i16 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i16 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i3 (i4 (\i0 -> i1 4 1) (\i0 -> i1 3 1))) (\i0 -> \i0 -> force (i3 (equalsInteger i2 (subtractInteger 0 1)) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i8 (equalsInteger i4 i2) (delay (equalsInteger i3 i1)))))) (i5 (i6 (\i0 -> i1 1 1) (\i0 -> i1 3 1)))))))) (\i0 -> \i0 -> i13 i2 i1 i3)) (delay False)) (\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay error) (delay i1)))) (force ifThenElse)))
data.id.0.5 (program 1.0.0 (\i0 -> i1 1 2))
data.id.2 (program 1.0.0 (\i0 -> i1 2 1))
data.id.11/3 (program 1.0.0 ((\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 11 1) (\i0 -> i1 3 1)) (force ifThenElse)))
div by 0.1/0 (program 1.0.0 ((\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 1 1) (\i0 -> i1 0 1)) (force ifThenElse)))
data.id.11/3 (program 1.0.0 ((\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 11 1) (\i0 -> i1 3 1)) (force ifThenElse)))
div by 0.1/0 (program 1.0.0 ((\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 1 1) (\i0 -> i1 0 1)) (force ifThenElse)))
div by 0.recip 0 (program 1.0.0 ((\i0 -> i1 (\i0 -> \i0 -> (\i0 -> \i0 -> i1 i3 i2) (force (force ifThenElse (equalsInteger i2 0) (delay error) (delay i2))))) (\i0 -> i1 0 1)))
div by 0.1/(1-1) (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i14 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 1 1) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 1 1) (\i0 -> i1 1 1))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i10 (equalsInteger i2 0) (delay 0) (delay (force (i10 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i7 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i7 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i3 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force ifThenElse)))
\ No newline at end of file
div by 0.1/(1-1) (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i14 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 1 1) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 1 1) (\i0 -> i1 1 1))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i10 (equalsInteger i2 0) (delay 0) (delay (force (i10 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i7 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i7 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i3 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force ifThenElse)))
\ No newline at end of file
literal (program 1.0.0 (\i0 -> i1 1 2))
ops.+ (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (addInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (i1 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (i1 (\i0 -> i1 1 1) (\i0 -> i1 2 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
ops.- (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (i1 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (i1 (\i0 -> i1 1 1) (\i0 -> i1 3 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
ops.* (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i9 (\i0 -> i1 (multiplyInteger i5 i3) (multiplyInteger i4 i2))))) (i1 (\i0 -> i1 1 1) (i2 (\i0 -> i1 3 1) (\i0 -> i1 2 1))) (i1 (\i0 -> i1 2 1) (i2 (\i0 -> i1 5 1) (\i0 -> i1 2 1)))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2)))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
ops.harmonic-sum (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (i1 (i1 (i2 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (i2 (\i0 -> i1 1 1) (\i0 -> i1 3 1))) (i2 (\i0 -> i1 1 1) (\i0 -> i1 4 1))) (i2 (\i0 -> i1 1 1) (\i0 -> i1 5 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (addInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2)))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
ops.multi-product (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (i1 (i2 (i1 (i2 (i1 (i2 (i1 (i2 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (\i0 -> i1 2 1)) (\i0 -> i1 3 1)) (\i0 -> i1 3 1)) (\i0 -> i1 4 1)) (\i0 -> i1 4 1)) (\i0 -> i1 5 1)) (\i0 -> i1 5 1)) (\i0 -> i1 6 1)) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (multiplyInteger i5 i3) (multiplyInteger i4 i2)))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
compare (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> lessThanInteger (multiplyInteger i1 i4) (multiplyInteger i2 i3)))) (i1 (\i0 -> i1 2 1) (\i0 -> i1 9 1)) (i1 (\i0 -> i1 3 1) (\i0 -> i1 10 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
round.5/3 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 5 1) (\i0 -> i1 3 1))) (force ifThenElse)))
round.4/3 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 4 1) (\i0 -> i1 3 1))) (force ifThenElse)))
round.-5/2 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2)) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 5 1) (\i0 -> i1 2 1)))) (force ifThenElse)))
round.-1/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2)) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 1 1) (\i0 -> i1 4 1)))) (force ifThenElse)))
truncate.5/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 5 1) (\i0 -> i1 4 1))) (force ifThenElse)))
truncate.7/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 7 1) (\i0 -> i1 4 1))) (force ifThenElse)))
truncate.1/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 1 1) (\i0 -> i1 4 1))) (force ifThenElse)))
truncate.-7/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2)) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 7 1) (\i0 -> i1 4 1)))) (force ifThenElse)))
properFraction.-1/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i2 ((\i0 -> i4 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i13 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 i3 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i16 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i16 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i3 (i4 (\i0 -> i1 1 1) (\i0 -> i1 2 1))) (\i0 -> \i0 -> force (i3 (equalsInteger i2 0) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i8 (equalsInteger i4 i2) (delay (equalsInteger i3 i1)))))) (i5 (i6 (\i0 -> i1 1 1) (\i0 -> i1 2 1)))))))) (\i0 -> \i0 -> i13 i2 i1 i3)) (delay False)) (\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
properFraction.-3/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i2 ((\i0 -> i4 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i13 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 i3 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i16 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i16 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i3 (i4 (\i0 -> i1 3 1) (\i0 -> i1 2 1))) (\i0 -> \i0 -> force (i3 (equalsInteger i2 (subtractInteger 0 1)) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i8 (equalsInteger i4 i2) (delay (equalsInteger i3 i1)))))) (i5 (i6 (\i0 -> i1 1 1) (\i0 -> i1 2 1)))))))) (\i0 -> \i0 -> i13 i2 i1 i3)) (delay False)) (\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
properFraction.-4/3 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i2 ((\i0 -> i4 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i13 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 i3 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i16 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i16 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i3 (i4 (\i0 -> i1 4 1) (\i0 -> i1 3 1))) (\i0 -> \i0 -> force (i3 (equalsInteger i2 (subtractInteger 0 1)) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i8 (equalsInteger i4 i2) (delay (equalsInteger i3 i1)))))) (i5 (i6 (\i0 -> i1 1 1) (\i0 -> i1 3 1)))))))) (\i0 -> \i0 -> i13 i2 i1 i3)) (delay False)) (\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) (i13 (multiplyInteger i3 i2))))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
ops.+ (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (addInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (i1 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (i1 (\i0 -> i1 1 1) (\i0 -> i1 2 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
ops.- (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (i1 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (i1 (\i0 -> i1 1 1) (\i0 -> i1 3 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
ops.* (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i9 (\i0 -> i1 (multiplyInteger i5 i3) (multiplyInteger i4 i2))))) (i1 (\i0 -> i1 1 1) (i2 (\i0 -> i1 3 1) (\i0 -> i1 2 1))) (i1 (\i0 -> i1 2 1) (i2 (\i0 -> i1 5 1) (\i0 -> i1 2 1)))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2)))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
ops.harmonic-sum (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (i1 (i1 (i2 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (i2 (\i0 -> i1 1 1) (\i0 -> i1 3 1))) (i2 (\i0 -> i1 1 1) (\i0 -> i1 4 1))) (i2 (\i0 -> i1 1 1) (\i0 -> i1 5 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (addInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2)))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
ops.multi-product (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (i1 (i2 (i1 (i2 (i1 (i2 (i1 (i2 (\i0 -> i1 1 1) (\i0 -> i1 2 1)) (\i0 -> i1 2 1)) (\i0 -> i1 3 1)) (\i0 -> i1 3 1)) (\i0 -> i1 4 1)) (\i0 -> i1 4 1)) (\i0 -> i1 5 1)) (\i0 -> i1 5 1)) (\i0 -> i1 6 1)) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i8 (\i0 -> i1 (multiplyInteger i5 i3) (multiplyInteger i4 i2)))))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
compare (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> lessThanInteger (multiplyInteger i1 i4) (multiplyInteger i2 i3)))) (i1 (\i0 -> i1 2 1) (\i0 -> i1 9 1)) (i1 (\i0 -> i1 3 1) (\i0 -> i1 10 1))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
round.5/3 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 5 1) (\i0 -> i1 3 1))) (force ifThenElse)))
round.4/3 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 4 1) (\i0 -> i1 3 1))) (force ifThenElse)))
round.-5/2 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2)) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 5 1) (\i0 -> i1 2 1)))) (force ifThenElse)))
round.-1/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> addInteger i2 (force (i6 (equalsInteger (modInteger i3 2) 1) (delay (force (i6 (lessThanInteger (divideInteger i3 2) i1) (delay 1) (delay 0)))) (delay (force (i6 (equalsInteger (divideInteger i3 2) i1) (delay (modInteger i2 2)) (delay (force (i6 (lessThanInteger i1 (divideInteger i3 2)) (delay 0) (delay 1)))))))))) (modInteger i3 i2)) (divideInteger i2 i1))) ((\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2)) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 1 1) (\i0 -> i1 4 1)))) (force ifThenElse)))
truncate.5/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 5 1) (\i0 -> i1 4 1))) (force ifThenElse)))
truncate.7/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 7 1) (\i0 -> i1 4 1))) (force ifThenElse)))
truncate.1/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 1 1) (\i0 -> i1 4 1))) (force ifThenElse)))
truncate.-7/4 (program 1.0.0 ((\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> force (i5 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i5 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1))) ((\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2)) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 7 1) (\i0 -> i1 4 1)))) (force ifThenElse)))
properFraction.-1/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i2 ((\i0 -> i4 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i13 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 i3 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i16 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i16 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i3 (i4 (\i0 -> i1 1 1) (\i0 -> i1 2 1))) (\i0 -> \i0 -> force (i3 (equalsInteger i2 0) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i8 (equalsInteger i4 i2) (delay (equalsInteger i3 i1)))))) (i5 (i6 (\i0 -> i1 1 1) (\i0 -> i1 2 1)))))))) (\i0 -> \i0 -> i13 i2 i1 i3)) (delay False)) (\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
properFraction.-3/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i2 ((\i0 -> i4 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i13 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 i3 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i16 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i16 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i3 (i4 (\i0 -> i1 3 1) (\i0 -> i1 2 1))) (\i0 -> \i0 -> force (i3 (equalsInteger i2 (subtractInteger 0 1)) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i8 (equalsInteger i4 i2) (delay (equalsInteger i3 i1)))))) (i5 (i6 (\i0 -> i1 1 1) (\i0 -> i1 2 1)))))))) (\i0 -> \i0 -> i13 i2 i1 i3)) (delay False)) (\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
properFraction.-4/3 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i1 i2 ((\i0 -> i4 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i13 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 i3 1))) (i1 (\i0 -> \i0 -> (\i0 -> force (i16 (lessThanEqualsInteger 0 i3) (delay i1) (delay (addInteger i1 (force (i16 (equalsInteger (modInteger i3 i2) 0) (delay 0) (delay 1))))))) (divideInteger i2 i1)))) (i3 (i4 (\i0 -> i1 4 1) (\i0 -> i1 3 1))) (\i0 -> \i0 -> force (i3 (equalsInteger i2 (subtractInteger 0 1)) (delay ((\i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> force (i8 (equalsInteger i4 i2) (delay (equalsInteger i3 i1)))))) (i5 (i6 (\i0 -> i1 1 1) (\i0 -> i1 3 1)))))))) (\i0 -> \i0 -> i13 i2 i1 i3)) (delay False)) (\i0 -> i1 (\i0 -> \i0 -> \i0 -> i1 (subtractInteger 0 i3) i2))) (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) (i13 (multiplyInteger i3 i2)))))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i9 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i8 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i5 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (\i0 -> force (i2 (equalsInteger i1 0) (delay (force (i3 i4 (delay error)))) (delay i1)))) (force ifThenElse)) (force trace)) "pnonZero: building with 0"))
data.id.0.5 (program 1.0.0 (\i0 -> i1 1 2))
data.id.2 (program 1.0.0 (\i0 -> i1 2 1))
data.id.11/3 (program 1.0.0 ((\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 11 1) (\i0 -> i1 3 1)) (force ifThenElse)))
div by 0.1/0 (program 1.0.0 ((\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i11 (equalsInteger i2 0) (delay 0) (delay (force (i11 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i15 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i12 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i10 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 1 1) (\i0 -> i1 0 1)) (force ifThenElse)))
data.id.11/3 (program 1.0.0 ((\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 11 1) (\i0 -> i1 3 1)) (force ifThenElse)))
div by 0.1/0 (program 1.0.0 ((\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i12 (equalsInteger i2 0) (delay 0) (delay (force (i12 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1))) (\i0 -> \i0 -> \i0 -> force (i16 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i13 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i12 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i11 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i8 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 1 1) (\i0 -> i1 0 1)) (force ifThenElse)))
div by 0.recip 0 (program 1.0.0 ((\i0 -> i1 (\i0 -> \i0 -> (\i0 -> \i0 -> i1 i3 i2) (force (force ifThenElse (equalsInteger i2 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i2))))) (\i0 -> i1 0 1)))
div by 0.1/(1-1) (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i14 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 1 1) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 1 1) (\i0 -> i1 1 1))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i10 (equalsInteger i2 0) (delay 0) (delay (force (i10 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i7 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i7 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i3 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force ifThenElse)))
\ No newline at end of file
div by 0.1/(1-1) (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i8 (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i14 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 1 1) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> i7 (\i0 -> i1 (subtractInteger (multiplyInteger i5 i2) (multiplyInteger i3 i4)) (multiplyInteger i4 i2))))) (\i0 -> i1 1 1) (\i0 -> i1 1 1))) (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i10 (equalsInteger i2 0) (delay 0) (delay (force (i10 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) (i4 i2 i1)))) (\i0 -> \i0 -> (\i0 -> (\i0 -> i5 (i7 i2 i1) (i8 i2 i1)) (force (i8 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i7 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))))) (i1 (\i0 -> \i0 -> \i0 -> force (i7 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))))) (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (\i0 -> \i0 -> force (i4 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2)))) (\i0 -> \i0 -> force (i3 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force ifThenElse)))
\ No newline at end of file
rational.1/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> appendString (i4 i2) (appendString "/" (i4 i1)))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i26 (equalsInteger i2 0) (delay 0) (delay (force (i26 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> i26 (\i0 -> \i0 -> \i0 -> force (i30 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i27 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i27 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i26 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i25 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i23 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 1 1) (\i0 -> i1 2 1))) (i14 (\i0 -> \i0 -> appendString (force (i17 (lessThanInteger i1 0) (delay i3) (delay i4))) ((\i0 -> (\i0 -> force (i19 (equalsInteger i2 0) (delay (i7 i1)) (delay ((\i0 -> appendString i1 (i8 i2)) (i4 i2))))) (remainderInteger (force (i18 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))) 10)) (quotientInteger (force (i17 (lessThanEqualsInteger i1 (subtractInteger 0 1)) (delay (subtractInteger 0 i1)) (delay i1))) 10))))) "-") "") (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force ifThenElse)))
\ No newline at end of file
rational.1/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> appendString (i4 i2) (appendString "/" (i4 i1)))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i27 (equalsInteger i2 0) (delay 0) (delay (force (i27 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> i27 (\i0 -> \i0 -> \i0 -> force (i31 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i28 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i28 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i27 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i26 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i23 (equalsInteger i1 0) (delay error) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 1 1) (\i0 -> i1 2 1))) (i14 (\i0 -> \i0 -> appendString (force (i17 (lessThanInteger i1 0) (delay i3) (delay i4))) ((\i0 -> (\i0 -> force (i19 (equalsInteger i2 0) (delay (i7 i1)) (delay ((\i0 -> appendString i1 (i8 i2)) (i4 i2))))) (remainderInteger (force (i18 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))) 10)) (quotientInteger (force (i17 (lessThanEqualsInteger i1 (subtractInteger 0 1)) (delay (subtractInteger 0 i1)) (delay i1))) 10))))) "-") "") (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force ifThenElse)))
\ No newline at end of file
rational.1/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> appendString (i4 i2) (appendString "/" (i4 i1)))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i26 (equalsInteger i2 0) (delay 0) (delay (force (i26 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> i26 (\i0 -> \i0 -> \i0 -> force (i30 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i27 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i27 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i26 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i25 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) ((\i0 -> \i0 -> i1 (multiplyInteger i6 i3) i2) ((\i0 -> force (i23 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2)))))) (\i0 -> i1 1 1) (\i0 -> i1 2 1))) (i14 (\i0 -> \i0 -> appendString (force (i17 (lessThanInteger i1 0) (delay i3) (delay i4))) ((\i0 -> (\i0 -> force (i19 (equalsInteger i2 0) (delay (i7 i1)) (delay ((\i0 -> appendString i1 (i8 i2)) (i4 i2))))) (remainderInteger (force (i18 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))) 10)) (quotientInteger (force (i17 (lessThanEqualsInteger i1 (subtractInteger 0 1)) (delay (subtractInteger 0 i1)) (delay i1))) 10))))) "-") "") (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force ifThenElse)))
\ No newline at end of file
rational.1/2 (program 1.0.0 ((\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> appendString (i4 i2) (appendString "/" (i4 i1)))) ((\i0 -> \i0 -> i2 (\i0 -> \i0 -> i3 (\i0 -> \i0 -> (\i0 -> (\i0 -> i1 (\i0 -> \i0 -> (\i0 -> (\i0 -> \i0 -> i1 (multiplyInteger i2 (divideInteger i5 i3)) (multiplyInteger i2 (divideInteger i4 i3))) (force (i27 (equalsInteger i2 0) (delay 0) (delay (force (i27 (lessThanEqualsInteger i2 0) (delay (subtractInteger 0 1)) (delay 1))))))) ((\i0 -> (\i0 -> i27 (\i0 -> \i0 -> \i0 -> force (i31 (equalsInteger i1 0) (delay i2) (delay (i3 i1 (modInteger i2 i1))))) (force (i28 (lessThanEqualsInteger i2 i1) (delay i1) (delay i2))) (force (i28 (lessThanEqualsInteger i2 i1) (delay i2) (delay i1)))) (force (i27 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))) (force (i26 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2)))))) (\i0 -> i1 (multiplyInteger i6 i3) i2)) ((\i0 -> force (i23 (equalsInteger i1 0) (delay (force (force trace "pnonZero: building with 0" (delay error)))) (delay i1))) (multiplyInteger i3 i2))))) (\i0 -> i1 1 1) (\i0 -> i1 2 1))) (i14 (\i0 -> \i0 -> appendString (force (i17 (lessThanInteger i1 0) (delay i3) (delay i4))) ((\i0 -> (\i0 -> force (i19 (equalsInteger i2 0) (delay (i7 i1)) (delay ((\i0 -> appendString i1 (i8 i2)) (i4 i2))))) (remainderInteger (force (i18 (lessThanEqualsInteger i2 (subtractInteger 0 1)) (delay (subtractInteger 0 i2)) (delay i2))) 10)) (quotientInteger (force (i17 (lessThanEqualsInteger i1 (subtractInteger 0 1)) (delay (subtractInteger 0 i1)) (delay i1))) 10))))) "-") "") (\i0 -> force (i13 (equalsInteger i1 0) (delay i2) (delay (force (i13 (equalsInteger i1 1) (delay i3) (delay (force (i13 (equalsInteger i1 2) (delay i4) (delay (force (i13 (equalsInteger i1 3) (delay i5) (delay (force (i13 (equalsInteger i1 4) (delay i6) (delay (force (i13 (equalsInteger i1 5) (delay i7) (delay (force (i13 (equalsInteger i1 6) (delay i8) (delay (force (i13 (equalsInteger i1 7) (delay i9) (delay (force (i13 (equalsInteger i1 8) (delay i10) (delay (force (i13 (equalsInteger i1 9) (delay i11) (delay error))))))))))))))))))))))))))))))) "0") "1") "2") "3") "4") "5") "6") "7") "8") "9") (\i0 -> (\i0 -> i2 (\i0 -> i2 i2 i1)) (\i0 -> i2 (\i0 -> i2 i2 i1)))) (force ifThenElse)))
\ No newline at end of file
Docs for running SMASH against docker.
Fixup prose in configuration docs.
Co-authored-by: Ubuntu <[email protected]>
Adding Coin
XFAIL on node issue #3859