esharp-comb(env;
F;ra) ==
  case apply-alist(AtomDeq;env;F)
  of inl(found) =>
   case found
   of inl(bd) =>
    []
    | inr(z) =>
    case z
    of inl(combdef) =>
     let n,m,rec,wf,T,f = combdef in 
     let ts = map(dv.hd(cdv-types(dv));ra) in
      let T' = T ts in
      let argtype = k:||ts||  bag(ts[k]) in
      let arg = pack-cdv-args(n;m;ra) in
      ...
     | inr(dv) =>
     []
   | inr(z) =>
   []



Definitions occuring in Statement :  pack-cdv-args: pack-cdv-args(n;m;L),  cdv-types: cdv-types(dv),  cdvreccomb: cdvreccomb(typ;argtype;arg;fun),  cdvcomb: cdvcomb(typ;argtype;arg;fun),  select: l[i],  hd: hd(l),  map: map(f;as),  length: ||as||,  ifthenelse: if b then t else f fi ,  int_seg: {i..j},  let: let,  spreadn: spread6,  apply: f a,  lambda: x.A[x],  function: x:A  B[x],  decide: case b of inl(x) => s[x] | inr(y) => t[y],  nil: [],  natural_number: $n,  apply-alist: apply-alist(eq;L;x),  atom-deq: AtomDeq,  bag: bag(T)
Definitions :  apply-alist: apply-alist(eq;L;x),  atom-deq: AtomDeq,  decide: case b of inl(x) => s[x] | inr(y) => t[y],  spreadn: spread6,  map: map(f;as),  lambda: x.A[x],  hd: hd(l),  cdv-types: cdv-types(dv),  apply: f a,  function: x:A  B[x],  int_seg: {i..j},  natural_number: $n,  length: ||as||,  bag: bag(T),  select: l[i],  let: let,  pack-cdv-args: pack-cdv-args(n;m;L),  ifthenelse: if b then t else f fi ,  cdvreccomb: cdvreccomb(typ;argtype;arg;fun),  cdvcomb: cdvcomb(typ;argtype;arg;fun),  nil: []
FDL editor aliases :  esharp-comb

esharp-comb(env;
F;ra)  ==
    case  apply-alist(AtomDeq;env;F)
    of  inl(found)  =>
      case  found
      of  inl(bd)  =>
        []
        |  inr(z)  =>
        case  z
        of  inl(combdef)  =>
          let  n,m,rec,wf,T,f  =  combdef  in 
          let  ts  =  map(\mlambda{}dv.hd(cdv-types(dv));ra)  in
            let  T'  =  T  ts  in
            let  argtype  =  k:\mBbbN{}||ts||  {}\mrightarrow{}  bag(ts[k])  in
            let  arg  =  pack-cdv-args(n;m;ra)  in
            if  rec  then  cdvreccomb(T';argtype;arg;f)  else  cdvcomb(T';argtype;arg;f)  fi 
          |  inr(dv)  =>
          []
      |  inr(z)  =>
      []


Date html generated: 2011_08_17-PM-04_32_46
Last ObjectModification: 2011_01_19-PM-09_14_09

Home Index