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