Step
*
1
of Lemma
fpf-join-assoc
.....subterm..... T:t
1:n
1. A : Type
2. B : A ─→ Type
3. eq : EqDecider(A)
4. d : A List
5. f1 : a:{a:A| (a ∈ d)}  ─→ B[a]
6. d1 : A List
7. g1 : a:{a:A| (a ∈ d1)}  ─→ B[a]
8. d2 : A List
9. h1 : a:{a:A| (a ∈ d2)}  ─→ B[a]
⊢ (d @ filter(λa.(¬ba ∈b d));d1 @ filter(λa.(¬ba ∈b d1));d2)))
= ((d @ filter(λa.(¬ba ∈b d));d1)) @ filter(λa.(¬ba ∈b d @ filter(λa.(¬ba ∈b d));d1)));d2))
∈ (A List)
BY
{ ((((((RWO "append_assoc" 0 THENA Auto) THEN EqCD THEN Auto THEN RWO "filter_append" 0) THENA Auto)
     THEN EqCD
     THEN Auto
     THEN RWO "filter_filter" 0)
    THENA Auto
    )
   THEN Reduce 0
   THEN EqCD
   THEN Auto) }
1
.....subterm..... T:t
1:n
1. A : Type
2. B : A ─→ Type
3. eq : EqDecider(A)
4. d : A List
5. f1 : a:{a:A| (a ∈ d)}  ─→ B[a]
6. d1 : A List
7. g1 : a:{a:A| (a ∈ d1)}  ─→ B[a]
8. d2 : A List
9. h1 : a:{a:A| (a ∈ d2)}  ─→ B[a]
⊢ (λt.((¬bt ∈b d)) ∧b (¬bt ∈b d1)))) = (λa.(¬ba ∈b d @ filter(λa.(¬ba ∈b d));d1)))) ∈ ({x:A| (x ∈ d2)}  ─→ 𝔹)
Latex:
.....subterm.....  T:t
1: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{}  (d  @  filter(\mlambda{}a.(\mneg{}\msubb{}a  \mmember{}\msubb{}  d));d1  @  filter(\mlambda{}a.(\mneg{}\msubb{}a  \mmember{}\msubb{}  d1));d2)))
=  ((d  @  filter(\mlambda{}a.(\mneg{}\msubb{}a  \mmember{}\msubb{}  d));d1))  @  filter(\mlambda{}a.(\mneg{}\msubb{}a  \mmember{}\msubb{}  d  @  filter(\mlambda{}a.(\mneg{}\msubb{}a  \mmember{}\msubb{}  d));d1)));d2))
By
((((((RWO  "append\_assoc"  0  THENA  Auto)  THEN  EqCD  THEN  Auto  THEN  RWO  "filter\_append"  0)  THENA  Auto)
      THEN  EqCD
      THEN  Auto
      THEN  RWO  "filter\_filter"  0)
    THENA  Auto
    )
  THEN  Reduce  0
  THEN  EqCD
  THEN  Auto)
Home
Index