Step
*
of Lemma
fpf-join-assoc
No Annotations
∀[A:Type]. ∀[B:A ⟶ Type]. ∀[eq:EqDecider(A)]. ∀[f,g,h:a:A fp-> B[a]].  (f ⊕ g ⊕ h = f ⊕ g ⊕ h ∈ a:A fp-> B[a])
BY
{ (Repeat (Unfolds ``fpf fpf-join fpf-cap fpf-ap fpf-dom`` 0)
   THEN Intros
   THEN DVar `f'
   THEN DVar `g'
   THEN DVar `h'
   THEN All Reduce
   THEN (EqCD THENA 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]
⊢ (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)
2
.....subterm..... T:t
2: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]
⊢ (λa.if a ∈b d then f1 a
      if a ∈b d1 then g1 a
      else h1 a
      fi )
= (λa.if a ∈b d @ filter(λa.(¬ba ∈b d);d1) then if a ∈b d then f1 a else g1 a fi  else h1 a fi )
∈ (a:{a:A| (a ∈ d @ filter(λa.(¬ba ∈b d);d1 @ filter(λa.(¬ba ∈b d1);d2)))}  ⟶ B[a])
Latex:
Latex:
No  Annotations
\mforall{}[A:Type].  \mforall{}[B:A  {}\mrightarrow{}  Type].  \mforall{}[eq:EqDecider(A)].  \mforall{}[f,g,h:a:A  fp->  B[a]].    (f  \moplus{}  g  \moplus{}  h  =  f  \moplus{}  g  \moplus{}  h)
By
Latex:
(Repeat  (Unfolds  ``fpf  fpf-join  fpf-cap  fpf-ap  fpf-dom``  0)
  THEN  Intros
  THEN  DVar  `f'
  THEN  DVar  `g'
  THEN  DVar  `h'
  THEN  All  Reduce
  THEN  (EqCD  THENA  Auto))
Home
Index