Nuprl Definition : find_rational
find_rational(a;b;d) ==
  if d b then b
  if d a then a
  else let x,n =
        find-ge-val(λx.isl(x);λn.case int_seg_decide(λk.(d 
                                                         ratreduce(rat-nat-div(ratadd(int-rat-mul(k;a);int-rat-mul(n 
                                                         - k;b));n)));1;n)
                                  of inl(p) =>
                                  inl (fst(p))
                                  | inr(_) =>
                                  inr Ax 2) 
       in case x
           of inl(y) =>
           eval k = y in
           ratreduce(rat-nat-div(ratadd(int-rat-mul(k;a);int-rat-mul(n - k;b));n))
           | inr(y) =>
           eval k = fix((λx.x)) in
           ratreduce(rat-nat-div(ratadd(int-rat-mul(k;a);int-rat-mul(n - k;b));n))
  fi 
Definitions occuring in Statement : 
rat-nat-div: rat-nat-div(x;n)
, 
int-rat-mul: int-rat-mul(n;x)
, 
ratreduce: ratreduce(x)
, 
ratadd: ratadd(x;y)
, 
find-ge-val: find-ge-val(test;f;n)
, 
int_seg_decide: int_seg_decide(d;i;j)
, 
callbyvalue: callbyvalue, 
ifthenelse: if b then t else f fi 
, 
isl: isl(x)
, 
pi1: fst(t)
, 
apply: f a
, 
fix: fix(F)
, 
lambda: λx.A[x]
, 
spread: spread def, 
decide: case b of inl(x) => s[x] | inr(y) => t[y]
, 
inr: inr x 
, 
inl: inl x
, 
subtract: n - m
, 
natural_number: $n
, 
axiom: Ax
Definitions occuring in definition : 
ifthenelse: if b then t else f fi 
, 
spread: spread def, 
find-ge-val: find-ge-val(test;f;n)
, 
isl: isl(x)
, 
int_seg_decide: int_seg_decide(d;i;j)
, 
apply: f a
, 
inl: inl x
, 
pi1: fst(t)
, 
inr: inr x 
, 
axiom: Ax
, 
natural_number: $n
, 
decide: case b of inl(x) => s[x] | inr(y) => t[y]
, 
callbyvalue: callbyvalue, 
fix: fix(F)
, 
lambda: λx.A[x]
, 
ratreduce: ratreduce(x)
, 
rat-nat-div: rat-nat-div(x;n)
, 
ratadd: ratadd(x;y)
, 
int-rat-mul: int-rat-mul(n;x)
, 
subtract: n - m
FDL editor aliases : 
find_rational
Latex:
find\_rational(a;b;d)  ==
    if  d  b
        then  b
    if  d  a
        then  a
    else  let  x,n  =
                find-ge-val(\mlambda{}x.isl(x);\mlambda{}n.case  int\_seg\_decide(...;1;n)
                                                                    of  inl(p)  =>
                                                                    inl  (fst(p))
                                                                    |  inr($_{}$)  =>
                                                                    inr  Ax  ;2) 
              in  case  x
                      of  inl(y)  =>
                      eval  k  =  y  in
                      ratreduce(rat-nat-div(ratadd(int-rat-mul(k;a);int-rat-mul(n  -  k;b));n))
                      |  inr(y)  =>
                      eval  k  =  fix((\mlambda{}x.x))  in
                      ratreduce(rat-nat-div(ratadd(int-rat-mul(k;a);int-rat-mul(n  -  k;b));n))
    fi 
Date html generated:
2019_10_30-AM-10_08_03
Last ObjectModification:
2019_01_20-PM-00_43_00
Theory : reals
Home
Index