Step * 2 of Lemma fpf-join-assoc

.....subterm..... T:t
2:n
1. Type
2. A ─→ Type
3. eq EqDecider(A)
4. List
5. f1 a:{a:A| (a ∈ d)}  ─→ B[a]
6. d1 List
7. g1 a:{a:A| (a ∈ d1)}  ─→ B[a]
8. d2 List
9. h1 a:{a:A| (a ∈ d2)}  ─→ B[a]
⊢ a.if a ∈b d) then f1 a
      if a ∈b d1) then g1 a
      else h1 a
      fi )
a.if a ∈b filter(λa.(¬ba ∈b d));d1)) then if a ∈b d) then f1 else g1 fi  else h1 fi )
∈ (a:{a:A| (a ∈ filter(λa.(¬ba ∈b d));d1 filter(λa.(¬ba ∈b d1));d2)))}  ─→ B[a])
BY
(Ext THEN Reduce 0) }

1
1. Type
2. A ─→ Type
3. eq EqDecider(A)
4. List
5. f1 a:{a:A| (a ∈ d)}  ─→ B[a]
6. d1 List
7. g1 a:{a:A| (a ∈ d1)}  ─→ B[a]
8. d2 List
9. h1 a:{a:A| (a ∈ d2)}  ─→ B[a]
10. {a:A| (a ∈ filter(λa.(¬ba ∈b d));d1 filter(λa.(¬ba ∈b d1));d2)))} 
⊢ if x ∈b d) then f1 x
if x ∈b d1) then g1 x
else h1 x
fi 
if x ∈b filter(λa.(¬ba ∈b d));d1)) then if x ∈b d) then f1 else g1 fi  else h1 fi 
∈ B[x]

2
.....wf..... 
1. Type
2. A ─→ Type
3. eq EqDecider(A)
4. List
5. f1 a:{a:A| (a ∈ d)}  ─→ B[a]
6. d1 List
7. g1 a:{a:A| (a ∈ d1)}  ─→ B[a]
8. d2 List
9. h1 a:{a:A| (a ∈ d2)}  ─→ B[a]
⊢ {a:A| (a ∈ filter(λa.(¬ba ∈b d));d1 filter(λa.(¬ba ∈b d1));d2)))} 
{a:A| (a ∈ filter(λa.(¬ba ∈b d));d1 filter(λa.(¬ba ∈b d1));d2)))} 
∈ Type


Latex:


.....subterm.....  T:t
2:n
1.  A  :  Type
2.  B  :  A  {}\mrightarrow{}  Type
3.  eq  :  EqDecider(A)
4.  d  :  A  List
5.  f1  :  a:\{a:A|  (a  \mmember{}  d)\}    {}\mrightarrow{}  B[a]
6.  d1  :  A  List
7.  g1  :  a:\{a:A|  (a  \mmember{}  d1)\}    {}\mrightarrow{}  B[a]
8.  d2  :  A  List
9.  h1  :  a:\{a:A|  (a  \mmember{}  d2)\}    {}\mrightarrow{}  B[a]
\mvdash{}  (\mlambda{}a.if  a  \mmember{}\msubb{}  d)  then  f1  a
            if  a  \mmember{}\msubb{}  d1)  then  g1  a
            else  h1  a
            fi  )
=  (\mlambda{}a.if  a  \mmember{}\msubb{}  d  @  filter(\mlambda{}a.(\mneg{}\msubb{}a  \mmember{}\msubb{}  d));d1))  then  if  a  \mmember{}\msubb{}  d)  then  f1  a  else  g1  a  fi    else  h1  a  fi  )


By

(Ext  THEN  Reduce  0)




Home Index