{ [T:Type]. [P:i:Id  k:{k:Knd| hasloc(k;i)}   T]. [ik:LocKnd].
    (let i,k:LocKnd = ik in P[i;k]  T) }

{ Proof }



Definitions occuring in Statement :  locknd-spread: let i,k:LocKnd = ik in P[i; k] LocKnd: LocKnd hasloc: hasloc(k;i) Knd: Knd Id: Id assert: b uall: [x:A]. B[x] so_apply: x[s1;s2] member: t  T set: {x:A| B[x]}  function: x:A  B[x] universe: Type
Definitions :  uall: [x:A]. B[x] LocKnd: LocKnd member: t  T locknd-spread: let i,k:LocKnd = ik in P[i; k] so_apply: x[s1;s2] implies: P  Q iff: P  Q prop: and: P  Q rev_implies: P  Q
Lemmas :  assert_wf hasloc_wf Id_wf Knd_wf

\mforall{}[T:Type].  \mforall{}[P:i:Id  {}\mrightarrow{}  k:\{k:Knd|  \muparrow{}hasloc(k;i)\}    {}\mrightarrow{}  T].  \mforall{}[ik:LocKnd].
    (let  i,k:LocKnd  =  ik  in  P[i;k]  \mmember{}  T)


Date html generated: 2011_08_10-AM-07_51_55
Last ObjectModification: 2011_06_18-AM-08_14_17

Home Index