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

{ 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],  pi1: fst(t),  pi2: snd(t),  member: t  T,  set: {x:A| B[x]} ,  function: x:A  B[x],  universe: Type
Definitions :  LocKnd: LocKnd,  locknd-spread: let i,k:LocKnd = ik in P[i; k],  uall: [x:A]. B[x],  so_apply: x[s1;s2],  member: t  T,  pi1: fst(t),  pi2: snd(t),  prop: ,  implies: P  Q,  iff: P  Q,  and: P  Q,  rev_implies: P  Q
Lemmas :  Id_wf,  Knd_wf,  assert_wf,  hasloc_wf

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


Date html generated: 2011_08_10-AM-07_51_52
Last ObjectModification: 2011_06_18-AM-08_14_15

Home Index