Nuprl Definition : chrem

chrem(a;r;b;s) ==
  let x,y letrec rec(p)=λq.if p=0
                             then <q, 0, 1, 1, 1, Ax, Ax, Ax>
                             else let x,y divrem(q; p) 
                                  in eval in
                                     let g,%13 rec 
                                     in let a,b,x1,y1,%18,%20,%21 %13 in 
                                         eval q' in
                                         eval b' (b q') in
                                         eval x' y1 x1 q' in
                                           <g, b, b', x', x1, Ax, Ax, Ax> in
             rec(|r|) 
            |s| 
  in let x1,x2,x3,x4,x5,x5,y in 
      if x=0
      then if a=b then inl else (inr x.Ax) )
      else let x4,r1 divrem(b a; x) 
           in if r1=0
              then eval if (r) < (0)  then ((-1) x3) x4 r  else ((1 x3) x4 r) in
                   inl z
              else (inr x.Ax) )



Definitions occuring in Statement :  genrec-ap: genrec-ap absval: |i| callbyvalue: callbyvalue spreadn: spread7 less: if (a) < (b)  then c  else d int_eq: if a=b then else d apply: a lambda: λx.A[x] spread: spread def pair: <a, b> inr: inr  inl: inl x divrem: divrem(n; m) multiply: m subtract: m add: m minus: -n natural_number: $n axiom: Ax
Definitions occuring in definition :  genrec-ap: genrec-ap apply: a pair: <a, b> absval: |i| spreadn: spread7 spread: spread def divrem: divrem(n; m) subtract: m int_eq: if a=b then else d callbyvalue: callbyvalue add: m less: if (a) < (b)  then c  else d minus: -n natural_number: $n multiply: m inl: inl x inr: inr  lambda: λx.A[x] axiom: Ax
FDL editor aliases :  chrem

Latex:
chrem(a;r;b;s)  ==
    let  x,y  =  letrec  rec(p)=\mlambda{}q.if  p=0
                                                          then  <q,  0,  1,  1,  1,  Ax,  Ax,  Ax>
                                                          else  let  x,y  =  divrem(q;  p) 
                                                                    in  eval  r  =  y  in
                                                                          let  g,\%13  =  rec  r  p 
                                                                          in  let  a,b,x1,y1,\%18,\%20,\%21  =  \%13  in 
                                                                                  eval  q'  =  x  in
                                                                                  eval  b'  =  (b  *  q')  +  a  in
                                                                                  eval  x'  =  y1  -  x1  *  q'  in
                                                                                      <g,  b,  b',  x',  x1,  Ax,  Ax,  Ax>  in
                          rec(|r|) 
                        |s| 
    in  let  x1,x2,x3,x4,x5,x5,y  =  y  in 
            if  x=0
            then  if  a=b  then  inl  a  else  (inr  (\mlambda{}x.Ax)  )
            else  let  x4,r1  =  divrem(b  -  a;  x) 
                      in  if  r1=0
                            then  eval  z  =  a  +  if  (r)  <  (0)    then  ((-1)  *  x3)  *  x4  *  r    else  ((1  *  x3)  *  x4  *  r)  in
                                      inl  z
                            else  (inr  (\mlambda{}x.Ax)  )



Date html generated: 2020_05_20-AM-08_13_33
Last ObjectModification: 2019_11_27-PM-03_14_48

Theory : general


Home Index