Nuprl Definition : factorit
factorit(x;b;tried;facs) ==
  fix((λfactorit,x,b,tried,facs. if x <z b * b then if x <z 2 then facs else [x / facs] fi 
                                if (∃p∈tried.(b rem p =z 0))_b then eval b' = b + 1 in factorit x b' tried facs
                                if (x rem b =z 0) then eval x' = x ÷ b in factorit x' b tried [b / facs]
                                else eval b' = b + 1 in
                                     factorit x b' [b / tried] facs
                                fi )) 
  x 
  b 
  tried 
  facs
Definitions occuring in Statement : 
bl-exists: (∃x∈L.P[x])_b
, 
cons: [a / b]
, 
callbyvalue: callbyvalue, 
ifthenelse: if b then t else f fi 
, 
lt_int: i <z j
, 
eq_int: (i =z j)
, 
apply: f a
, 
fix: fix(F)
, 
lambda: λx.A[x]
, 
remainder: n rem m
, 
divide: n ÷ m
, 
multiply: n * m
, 
add: n + m
, 
natural_number: $n
Definitions occuring in definition : 
fix: fix(F)
, 
lambda: λx.A[x]
, 
multiply: n * m
, 
lt_int: i <z j
, 
bl-exists: (∃x∈L.P[x])_b
, 
ifthenelse: if b then t else f fi 
, 
eq_int: (i =z j)
, 
remainder: n rem m
, 
divide: n ÷ m
, 
callbyvalue: callbyvalue, 
add: n + m
, 
natural_number: $n
, 
apply: f a
, 
cons: [a / b]
FDL editor aliases : 
factorit
Latex:
factorit(x;b;tried;facs)  ==
    fix((\mlambda{}factorit,x,b,tried,facs.  if  x  <z  b  *  b  then  if  x  <z  2  then  facs  else  [x  /  facs]  fi 
                                                                if  (\mexists{}p\mmember{}tried.(b  rem  p  =\msubz{}  0))\_b
                                                                    then  eval  b'  =  b  +  1  in
                                                                              factorit  x  b'  tried  facs
                                                                if  (x  rem  b  =\msubz{}  0)
                                                                    then  eval  x'  =  x  \mdiv{}  b  in
                                                                              factorit  x'  b  tried  [b  /  facs]
                                                                else  eval  b'  =  b  +  1  in
                                                                          factorit  x  b'  [b  /  tried]  facs
                                                                fi  )) 
    x 
    b 
    tried 
    facs
Date html generated:
2016_05_15-PM-04_00_34
Last ObjectModification:
2015_09_23-AM-07_45_56
Theory : general
Home
Index