Nuprl Definition : fun-do-Intro

fun-do-Intro(exname;H;G;numhyps;val;fullevd) ==
  let F,M fullevd 
  in mFOL_ind(G;
              mFOatomic(P,vars) "should not happen??";
              mFOconnect(knd,A,B) _,__.if knd =a "imp"
                                           then let M' ⟵ update-fun(M;A;numhyps)
                                                in <impI, [<λM.(F (M numhyps)), M'>]>
              if knd =a "and" then <andI, [<λM.(fst((F M))), M>; <λM.(snd((F M))), M>]>
              if knd =a "or"
                then case val of inl(_) => <orI left, [<λM.outl(F M), M>]> inr(_) => <orI right, [<λM.outr(F M), M>]>
              else "funny connective??"
              fi ;
              mFOquant(isall,v,body) _.if isall
              then eval new-mFO-var(H) in
                   <allI with m, [<λM.(F m), M>]>
              else eval fst(val) in
                   <existsI with j, [<λM.(snd((F M))), M>]>
              fi 



Definitions occuring in Statement :  update-fun: update-fun(M;A;hnum) new-mFO-var: new-mFO-var(H) fRuleorI: fRuleorI(left) fRuleexistsI: existsI with var fRuleallI: allI with var fRuleimpI: impI fRuleandI: andI mFOL_ind: mFOL_ind cons: [a b] nil: [] callbyvalueall: callbyvalueall callbyvalue: callbyvalue outr: outr(x) outl: outl(x) ifthenelse: if then else fi  eq_atom: =a y bfalse: ff btrue: tt pi1: fst(t) pi2: snd(t) apply: a lambda: λx.A[x] spread: spread def pair: <a, b> decide: case of inl(x) => s[x] inr(y) => t[y] token: "$token"
Definitions occuring in definition :  nil: [] apply: a pi2: snd(t) lambda: λx.A[x] pair: <a, b> cons: [a b] fRuleexistsI: existsI with var pi1: fst(t) callbyvalue: callbyvalue fRuleallI: allI with var new-mFO-var: new-mFO-var(H) ifthenelse: if then else fi  token: "$token" outr: outr(x) bfalse: ff fRuleorI: fRuleorI(left) outl: outl(x) btrue: tt decide: case of inl(x) => s[x] inr(y) => t[y] eq_atom: =a y fRuleandI: andI fRuleimpI: impI update-fun: update-fun(M;A;hnum) callbyvalueall: callbyvalueall mFOL_ind: mFOL_ind spread: spread def
FDL editor aliases :  fun-do-Intro

Latex:
fun-do-Intro(exname;H;G;numhyps;val;fullevd)  ==
    let  F,M  =  fullevd 
    in  mFOL\_ind(G;
                            mFOatomic(P,vars){}\mRightarrow{}  "should  not  happen??";
                            mFOconnect(knd,A,B){}\mRightarrow{}  $_{}$,\_$_{}$.if  knd  =a  "\000Cimp"
                                                                                  then  let  M'  \mleftarrow{}{}  update-fun(M;A;numhyps)
                                                                                            in  <impI,  [<\mlambda{}M.(F  M  (M  numhyps)),  M'>]>
                            if  knd  =a  "and"  then  <andI,  [<\mlambda{}M.(fst((F  M))),  M>  <\mlambda{}M.(snd((F  M))),  M>]>
                            if  knd  =a  "or"
                                then  case  val
                                            of  inl($_{}$)  =>
                                            <orI  left,  [<\mlambda{}M.outl(F  M),  M>]>
                                            |  inr($_{}$)  =>
                                            <orI  right,  [<\mlambda{}M.outr(F  M),  M>]>
                            else  "funny  connective??"
                            fi  ;
                            mFOquant(isall,v,body){}\mRightarrow{}  $_{}$.if  isall
                            then  eval  m  =  new-mFO-var(H)  in
                                      <allI  with  m,  [<\mlambda{}M.(F  M  m),  M>]>
                            else  eval  j  =  fst(val)  in
                                      <existsI  with  j,  [<\mlambda{}M.(snd((F  M))),  M>]>
                            fi  ) 



Date html generated: 2017_01_19-PM-02_32_11
Last ObjectModification: 2017_01_18-PM-06_23_29

Theory : minimal-first-order-logic


Home Index