Nuprl Definition : wf-term

wf-term(arity;sort;t) ==
  case t
   of inl(v) =>
   tt
   inr(p) =>
   let f,bts 
   in eval nms arity in
      (||nms|| =z ||bts||)
      ∧b (∀nm_bt∈zip(nms;bts).let nm,bt nm_bt 
                              in let vs,b bt 
                                 in (fst(nm) =z ||vs||) ∧b (sort =z snd(nm)) ∧b wf-term(arity;sort;b))_b



Definitions occuring in Statement :  zip: zip(as;bs) bl-all: (∀x∈L.P[x])_b length: ||as|| band: p ∧b q callbyvalue: callbyvalue eq_int: (i =z j) btrue: tt pi1: fst(t) pi2: snd(t) apply: a spread: spread def decide: case of inl(x) => s[x] inr(y) => t[y]
Definitions occuring in definition :  decide: case of inl(x) => s[x] inr(y) => t[y] btrue: tt callbyvalue: callbyvalue bl-all: (∀x∈L.P[x])_b zip: zip(as;bs) spread: spread def pi1: fst(t) length: ||as|| band: p ∧b q eq_int: (i =z j) apply: a pi2: snd(t)
FDL editor aliases :  wf-term

Latex:
wf-term(arity;sort;t)  ==
    case  t
      of  inl(v)  =>
      tt
      |  inr(p)  =>
      let  f,bts  =  p 
      in  eval  nms  =  arity  f  in
            (||nms||  =\msubz{}  ||bts||)
            \mwedge{}\msubb{}  (\mforall{}nm$_{bt}$\mmember{}zip(nms;bts).let  nm,bt  =  nm$_{bt}$ 
                                                          in  let  vs,b  =  bt 
                                                                in  (fst(nm)  =\msubz{}  ||vs||)
                                                                      \mwedge{}\msubb{}  (sort  b  =\msubz{}  snd(nm))
                                                                      \mwedge{}\msubb{}  wf-term(arity;sort;b))\_b



Date html generated: 2020_05_19-PM-09_58_12
Last ObjectModification: 2020_03_09-PM-04_10_10

Theory : terms


Home Index