Nuprl Definition : wf-term
wf-term(arity;sort;t) ==
  case t
   of inl(v) =>
   tt
   | inr(p) =>
   let f,bts = p 
   in eval nms = arity f 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 b =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: f a
, 
spread: spread def, 
decide: case b of inl(x) => s[x] | inr(y) => t[y]
Definitions occuring in definition : 
decide: case b 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: f 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