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