Nuprl Definition : pos-Legendre-changes
pos-Legendre-changes(n) ==
  primrec(n;Ax;λn,x. if n + 1=1
                     then []
                     else eval L = x in
                          eval m = n ÷ 2 in
                          eval r = n rem 2 in
                            if r=1
                            then let d = λi,r. if ratsign(ratLegendre(n + 1;r))=(-1)^(n - i)
                                               then inl Ax
                                               else (inr (λx.Ax) ) in
                                     eval-mklist(m;λi.eval a = L[i] in
                                                      if i=m - 1
                                                      then find_rational(a;<1, 1>d i)
                                                      else eval b = L[i + 1] in
                                                           find_rational(a;b;d i);0)
                            else let d = λi,r. if ratsign(ratLegendre(n + 1;r))=(-1)^(n - 1 - i)
                                               then inl Ax
                                               else (inr (λx.Ax) ) in
                                     eval-mklist(m;λi.if i=0
                                                      then if i=m - 1
                                                           then find_rational(<0, 1><1, 1>d i)
                                                           else eval b = L[i] in
                                                                find_rational(<0, 1>b;d i)
                                                      else eval a = L[i - 1] in
                                                           if i=m - 1
                                                           then find_rational(a;<1, 1>d i)
                                                           else eval b = L[i] in
                                                                find_rational(a;b;d i);0))
Definitions occuring in Statement : 
ratLegendre: ratLegendre(n;x), 
find_rational: find_rational(a;b;d), 
ratsign: ratsign(x), 
eval-mklist: eval-mklist(n;f;offset), 
exp: i^n, 
select: L[n], 
nil: [], 
primrec: primrec(n;b;c), 
callbyvalue: callbyvalue, 
let: let, 
int_eq: if a=b then c else d, 
apply: f a, 
lambda: λx.A[x], 
pair: <a, b>, 
inr: inr x , 
inl: inl x, 
remainder: n rem m, 
divide: n ÷ m, 
subtract: n - m, 
add: n + m, 
minus: -n, 
natural_number: $n, 
axiom: Ax
Definitions occuring in definition : 
subtract: n - m, 
int_eq: if a=b then c else d, 
natural_number: $n, 
select: L[n], 
callbyvalue: callbyvalue, 
apply: f a, 
pair: <a, b>, 
find_rational: find_rational(a;b;d), 
lambda: λx.A[x], 
eval-mklist: eval-mklist(n;f;offset), 
axiom: Ax, 
inr: inr x , 
inl: inl x, 
minus: -n, 
exp: i^n, 
add: n + m, 
ratLegendre: ratLegendre(n;x), 
ratsign: ratsign(x), 
let: let, 
remainder: n rem m, 
divide: n ÷ m, 
nil: [], 
primrec: primrec(n;b;c)
FDL editor aliases : 
pos-Legendre-changes
Latex:
pos-Legendre-changes(n)  ==
    primrec(n;Ax;\mlambda{}n,x.  if  n  +  1=1
                                          then  []
                                          else  eval  L  =  x  in
                                                    eval  m  =  n  \mdiv{}  2  in
                                                    eval  r  =  n  rem  2  in
                                                        if  r=1
                                                        then  let  d  =  \mlambda{}i,r.  if  ratsign(ratLegendre(n  +  1;r))=(-1)\^{}(n  -  i)
                                                                                              then  inl  Ax
                                                                                              else  (inr  (\mlambda{}x.Ax)  )  in
                                                                          eval-mklist(m;\mlambda{}i.eval  a  =  L[i]  in
                                                                                                            if  i=m  -  1
                                                                                                            then  find\_rational(a;ə,  1>d  i)
                                                                                                            else  eval  b  =  L[i  +  1]  in
                                                                                                                      find\_rational(a;b;d  i);0)
                                                        else  let  d  =  \mlambda{}i,r.  if  ratsign(ratLegendre(n  +  1;r))=(-1)\^{}(n  -  1  -  i)
                                                                                              then  inl  Ax
                                                                                              else  (inr  (\mlambda{}x.Ax)  )  in
                                                                          eval-mklist(m;\mlambda{}i.if  i=0
                                                                                                            then  if  i=m  -  1
                                                                                                                      then  find\_rational(ɘ,  1>ə,  1>d  i)
                                                                                                                      else  eval  b  =  L[i]  in
                                                                                                                                find\_rational(ɘ,  1>b;d  i)
                                                                                                            else  eval  a  =  L[i  -  1]  in
                                                                                                                      if  i=m  -  1
                                                                                                                      then  find\_rational(a;ə,  1>d  i)
                                                                                                                      else  eval  b  =  L[i]  in
                                                                                                                                find\_rational(a;b;d  i);0))
Date html generated:
2019_10_31-AM-06_22_51
Last ObjectModification:
2019_01_21-PM-04_52_14
Theory : reals_2
Home
Index