Nuprl Definition : divisor-test
divisor-test(n;i;j) ==
fix((λdivisor-test,i,j. eval p = iseg_product_rem(i;j;n) in
eval g = better-gcd(n;p) in
if 1 <z g
then if g <z n
then inl g
else eval k = i + ((j - i) ÷ 2) in
case divisor-test i k
of inl(x) =>
inl x
| inr(x) =>
eval k' = k + 1 in
divisor-test k' j
fi
else inr ⋅
fi ))
i
j
Definitions occuring in Statement :
iseg_product_rem: iseg_product_rem(i;j;k)
,
better-gcd: better-gcd(a;b)
,
callbyvalue: callbyvalue,
ifthenelse: if b then t else f fi
,
lt_int: i <z j
,
it: ⋅
,
apply: f a
,
fix: fix(F)
,
lambda: λx.A[x]
,
decide: case b of inl(x) => s[x] | inr(y) => t[y]
,
inr: inr x
,
inl: inl x
,
divide: n ÷ m
,
subtract: n - m
,
add: n + m
,
natural_number: $n
Definitions occuring in definition :
fix: fix(F)
,
lambda: λx.A[x]
,
iseg_product_rem: iseg_product_rem(i;j;k)
,
better-gcd: better-gcd(a;b)
,
ifthenelse: if b then t else f fi
,
lt_int: i <z j
,
divide: n ÷ m
,
subtract: n - m
,
decide: case b of inl(x) => s[x] | inr(y) => t[y]
,
inl: inl x
,
callbyvalue: callbyvalue,
add: n + m
,
natural_number: $n
,
apply: f a
,
inr: inr x
,
it: ⋅
FDL editor aliases :
divisor-test
Latex:
divisor-test(n;i;j) ==
fix((\mlambda{}divisor-test,i,j. eval p = iseg\_product\_rem(i;j;n) in
eval g = better-gcd(n;p) in
if 1 <z g
then if g <z n
then inl g
else eval k = i + ((j - i) \mdiv{} 2) in
case divisor-test i k
of inl(x) =>
inl x
| inr(x) =>
eval k' = k + 1 in
divisor-test k' j
fi
else inr \mcdot{}
fi ))
i
j
Date html generated:
2016_05_15-PM-06_08_27
Last ObjectModification:
2015_09_23-AM-08_01_23
Theory : general
Home
Index