Nuprl Definition : p-inv

p-inv(p;a) ==
  λn.eval pn = p^n in
     eval an = a n in
       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 r = y in
                                          let g,t = rec r p 
                                          in let a,b,x1,y1,_,_,_@0 = t 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(|a n|) 
                 pn 
       in let x1,x2,x3,x4,x5,x5,y = y in 
           eval r = 1 * x3 rem pn in
           if (r) < (0)  then pn + r  else r



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

Latex:
p-inv(p;a)  ==
    \mlambda{}n.eval  pn  =  p\^{}n  in
          eval  an  =  a  n  in
              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,t  =  rec  r  p 
                                                                                    in  let  a,b,x1,y1,$_{}$,$_{\000C}$,$_{@0}$  =  t  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(|a  n|) 
                                  pn 
              in  let  x1,x2,x3,x4,x5,x5,y  =  y  in 
                      eval  r  =  1  *  x3  rem  pn  in
                      if  (r)  <  (0)    then  pn  +  r    else  r



Date html generated: 2019_10_15-AM-10_34_52
Last ObjectModification: 2019_06_24-PM-00_54_55

Theory : rings_1


Home Index