Nuprl Lemma : map-concat-filter-lemma2

[C:Id ─→ Type]. ∀[A,B:Type]. ∀[L2:(tg:Id × (A ─→ B ─→ (C[tg] List))) List]. ∀[L:(l:IdLnk × t:Id × C[t]) List].
[tg:Id]. ∀[a:A]. ∀[b:B].
  {(||filter(λms.fst(snd(ms)) tg;L)|| 0 ∈ ℤsupposing 
      ((¬(tg ∈ map(λp.(fst(p));L2))) and 
      (map(λx.(snd(x));L) concat(map(λtgf.map(λx.<fst(tgf), x>;(snd(tgf)) b);L2)) ∈ ((tg:Id × C[tg]) List)))}


Proof




Definitions occuring in Statement :  IdLnk: IdLnk eq_id: b Id: Id l_member: (x ∈ l) concat: concat(ll) filter: filter(P;l) map: map(f;as) length: ||as|| list: List uimplies: supposing a uall: [x:A]. B[x] guard: {T} so_apply: x[s] pi1: fst(t) pi2: snd(t) not: ¬A apply: a lambda: λx.A[x] function: x:A ─→ B[x] pair: <a, b> product: x:A × B[x] natural_number: $n int: universe: Type equal: t ∈ T
Lemmas :  map-concat-filter-lemma1 subtype_rel_list list_wf top_wf subtype_rel_product subtype_rel_dep_function subtype_top not_wf l_member_wf Id_wf map_wf equal_wf IdLnk_wf concat_wf length_zero
\mforall{}[C:Id  {}\mrightarrow{}  Type].  \mforall{}[A,B:Type].  \mforall{}[L2:(tg:Id  \mtimes{}  (A  {}\mrightarrow{}  B  {}\mrightarrow{}  (C[tg]  List)))  List].  \mforall{}[L:(l:IdLnk
                                                                                                                                                                  \mtimes{}  t:Id
                                                                                                                                                                  \mtimes{}  C[t])  List].
\mforall{}[tg:Id].  \mforall{}[a:A].  \mforall{}[b:B].
    \{(||filter(\mlambda{}ms.fst(snd(ms))  =  tg;L)||  =  0)  supposing 
            ((\mneg{}(tg  \mmember{}  map(\mlambda{}p.(fst(p));L2)))  and 
            (map(\mlambda{}x.(snd(x));L)  =  concat(map(\mlambda{}tgf.map(\mlambda{}x.<fst(tgf),  x>(snd(tgf))  a  b);L2))))\}



Date html generated: 2015_07_17-AM-09_13_47
Last ObjectModification: 2015_01_28-AM-07_56_12

Home Index