Nuprl Definition : sbhomout

sbhomout(a;b;c;d;L)
==r if Ax then sbcode(a b;c d) otherwise let h,t 
                                                 in if mtge1(a;b;c;d)
                                                      then eval a' in
                                                           eval b' in
                                                             [1 sbhomout(a';b';c;d;L)]
                                                    if mtge1(c;d;a;b)
                                                      then eval c' in
                                                           eval d' in
                                                             [0 sbhomout(a;b;c';d';L)]
                                                    else let h,t 
                                                         in if h=0
                                                               then eval a' in
                                                                    eval c' in
                                                                      sbhomout(a';b;c';d;t)
                                                               else eval b' in
                                                                    eval d' in
                                                                      sbhomout(a;b';c;d';t)
                                                    fi 

sbhomout(a;b;c;d;L) ==
  fix((λsbhomout,a,b,c,d,L. if Ax then sbcode(a b;c d) otherwise let h,t 
                                                                         in if mtge1(a;b;c;d)
                                                                              then eval a' in
                                                                                   eval b' in
                                                                                     [1 (sbhomout a' b' L)]
                                                                            if mtge1(c;d;a;b)
                                                                              then eval c' in
                                                                                   eval d' in
                                                                                     [0 (sbhomout c' d' L)]
                                                                            else let h,t 
                                                                                 in if h=0
                                                                                       then eval a' in
                                                                                            eval c' in
                                                                                              sbhomout a' c' t
                                                                                       else eval b' in
                                                                                            eval d' in
                                                                                              sbhomout b' d' t
                                                                            fi )) 
  
  
  
  
  L



Definitions occuring in Statement :  mtge1: mtge1(a;b;c;d) sbcode: sbcode(m;n) cons: [a b] callbyvalue: callbyvalue ifthenelse: if then else fi  isaxiom: if Ax then otherwise b int_eq: if a=b  then c  else d apply: a fix: fix(F) lambda: λx.A[x] spread: spread def subtract: m add: m natural_number: $n
Definitions occuring in definition :  fix: fix(F) lambda: λx.A[x] isaxiom: if Ax then otherwise b sbcode: sbcode(m;n) ifthenelse: if then else fi  mtge1: mtge1(a;b;c;d) subtract: m cons: [a b] spread: spread def int_eq: if a=b  then c  else d natural_number: $n callbyvalue: callbyvalue add: m apply: a
FDL editor aliases :  sbhomout
Latex:
sbhomout(a;b;c;d;L)
==r  if  L  =  Ax  then  sbcode(a  +  b;c  +  d)  otherwise  let  h,t  =  L 
                                                                                                  in  if  mtge1(a;b;c;d)
                                                                                                            then  eval  a'  =  a  -  c  in
                                                                                                                      eval  b'  =  b  -  d  in
                                                                                                                          [1  /  sbhomout(a';b';c;d;L)]
                                                                                                        if  mtge1(c;d;a;b)
                                                                                                            then  eval  c'  =  c  -  a  in
                                                                                                                      eval  d'  =  d  -  b  in
                                                                                                                          [0  /  sbhomout(a;b;c';d';L)]
                                                                                                        else  let  h,t  =  L 
                                                                                                                  in  if  h=0
                                                                                                                              then  eval  a'  =  a  +  b  in
                                                                                                                                        eval  c'  =  c  +  d  in
                                                                                                                                            sbhomout(a';b;c';d;t)
                                                                                                                              else  eval  b'  =  a  +  b  in
                                                                                                                                        eval  d'  =  c  +  d  in
                                                                                                                                            sbhomout(a;b';c;d';t)
                                                                                                        fi 


Latex:
sbhomout(a;b;c;d;L)  ==
    fix((\mlambda{}sbhomout,a,b,c,d,L.  if  L  =  Ax  then  sbcode(a  +  b;c  +  d)
                                                        otherwise  let  h,t  =  L 
                                                                            in  if  mtge1(a;b;c;d)
                                                                                      then  eval  a'  =  a  -  c  in
                                                                                                eval  b'  =  b  -  d  in
                                                                                                    [1  /  (sbhomout  a'  b'  c  d  L)]
                                                                                  if  mtge1(c;d;a;b)
                                                                                      then  eval  c'  =  c  -  a  in
                                                                                                eval  d'  =  d  -  b  in
                                                                                                    [0  /  (sbhomout  a  b  c'  d'  L)]
                                                                                  else  let  h,t  =  L 
                                                                                            in  if  h=0
                                                                                                        then  eval  a'  =  a  +  b  in
                                                                                                                  eval  c'  =  c  +  d  in
                                                                                                                      sbhomout  a'  b  c'  d  t
                                                                                                        else  eval  b'  =  a  +  b  in
                                                                                                                  eval  d'  =  c  +  d  in
                                                                                                                      sbhomout  a  b'  c  d'  t
                                                                                  fi  )) 
    a 
    b 
    c 
    d 
    L



Date html generated: 2016_05_15-PM-10_34_34
Last ObjectModification: 2015_09_23-AM-08_26_49

Theory : rationals


Home Index