Nuprl Definition : find_rational

find_rational(a;b;d) ==
  if then b
  if 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 in
           ratreduce(rat-nat-div(ratadd(int-rat-mul(k;a);int-rat-mul(n k;b));n))
           inr(y) =>
           eval 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 then else fi  isl: isl(x) pi1: fst(t) apply: a fix: fix(F) lambda: λx.A[x] spread: spread def decide: case of inl(x) => s[x] inr(y) => t[y] inr: inr  inl: inl x subtract: m natural_number: $n axiom: Ax
Definitions occuring in definition :  ifthenelse: if then else 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: a inl: inl x pi1: fst(t) inr: inr  axiom: Ax natural_number: $n decide: case 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: 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