{ 
[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)) a b);L2))))} }
{ Proof }
Definitions occuring in Statement : 
eq_id: a = b, 
IdLnk: IdLnk, 
Id: Id, 
map: map(f;as), 
length: ||as||, 
uimplies: b supposing a, 
uall:
[x:A]. B[x], 
guard: {T}, 
so_apply: x[s], 
pi1: fst(t), 
pi2: snd(t), 
not:
A, 
apply: f a, 
lambda:
x.A[x], 
function: x:A 
 B[x], 
pair: <a, b>, 
product: x:A 
 B[x], 
list: type List, 
natural_number: $n, 
int:
, 
universe: Type, 
equal: s = t, 
filter: filter(P;l), 
l_member: (x 
 l), 
concat: concat(ll)
Definitions : 
uall:
[x:A]. B[x], 
so_apply: x[s], 
guard: {T}, 
uimplies: b supposing a, 
member: t 
 T, 
top: Top, 
all:
x:A. B[x], 
subtype: S 
 T, 
suptype: suptype(S; T), 
prop:
, 
so_lambda: 
x.t[x], 
implies: P 
 Q, 
iff: P 

 Q, 
and: P 
 Q
Lemmas : 
map-concat-filter-lemma1, 
top_wf, 
not_wf, 
l_member_wf, 
Id_wf, 
map_wf, 
pi1_wf_top, 
IdLnk_wf, 
pi2_wf, 
concat_wf, 
length_wf1, 
filter_wf, 
eq_id_wf, 
iff_weakening_uiff, 
uiff_inversion, 
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:
2011_08_10-AM-07_50_59
Last ObjectModification:
2011_06_18-AM-08_13_49
Home
Index