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