Nuprl Definition : bag-parts

bag-parts(eq;bs) ==
  fix((λbag-parts,bs. let splits ⟵ bag-partitions(eq;bs)
                      in ⋃p∈splits.if bag-null(fst(p)) then {}
                         if bag-null(snd(p)) then {[fst(p)]}
                         else let parts ⟵ bag-parts (snd(p))
                              in bag-map(λL.[fst(p) L];parts)
                         fi )) 
  bs



Definitions occuring in Statement :  bag-partitions: bag-partitions(eq;bs) bag-combine: x∈bs.f[x] bag-null: bag-null(bs) bag-map: bag-map(f;bs) single-bag: {x} empty-bag: {} cons: [a b] nil: [] callbyvalueall: callbyvalueall ifthenelse: if then else fi  pi1: fst(t) pi2: snd(t) apply: a fix: fix(F) lambda: λx.A[x]
Definitions occuring in definition :  fix: fix(F) bag-partitions: bag-partitions(eq;bs) bag-combine: x∈bs.f[x] empty-bag: {} ifthenelse: if then else fi  bag-null: bag-null(bs) single-bag: {x} nil: [] callbyvalueall: callbyvalueall apply: a pi2: snd(t) bag-map: bag-map(f;bs) lambda: λx.A[x] cons: [a b] pi1: fst(t)
FDL editor aliases :  bag-parts

Latex:
bag-parts(eq;bs)  ==
    fix((\mlambda{}bag-parts,bs.  let  splits  \mleftarrow{}{}  bag-partitions(eq;bs)
                                            in  \mcup{}p\mmember{}splits.if  bag-null(fst(p))  then  \{\}
                                                  if  bag-null(snd(p))  then  \{[fst(p)]\}
                                                  else  let  parts  \mleftarrow{}{}  bag-parts  (snd(p))
                                                            in  bag-map(\mlambda{}L.[fst(p)  /  L];parts)
                                                  fi  )) 
    bs



Date html generated: 2016_05_15-PM-08_06_43
Last ObjectModification: 2015_09_23-AM-08_20_54

Theory : bags_2


Home Index