Step
*
1
of Lemma
fpf-join-wf
1. A : Type
2. B : A ⟶ Type
3. C : A ⟶ Type
4. D : A ⟶ Type
5. d : A List
6. f1 : a:{a:A| (a ∈ d)}  ⟶ B[a]
7. d1 : A List
8. g1 : a:{a:A| (a ∈ d1)}  ⟶ C[a]
9. eq : EqDecider(A)
10. ∀a:A. ((↑a ∈b d) 
⇒ (B[a] ⊆r D[a]))
11. ∀a:A. ((↑a ∈b d1) 
⇒ (C[a] ⊆r D[a]))
⊢ <d @ filter(λa.(¬ba ∈b d);d1), λa.if a ∈b d then f1 a else g1 a fi > ∈ d:A List × (a:{a:A| (a ∈ d)}  ⟶ D[a])
BY
{ (RepeatFor 2 ((MemCD THENA Auto))
   THEN Try ((D -1 THEN ((RWW "member_append member_filter" (-1) THENM Reduce (-1)) THENA Auto) THEN D -1))
   THEN Auto) }
Latex:
Latex:
1.  A  :  Type
2.  B  :  A  {}\mrightarrow{}  Type
3.  C  :  A  {}\mrightarrow{}  Type
4.  D  :  A  {}\mrightarrow{}  Type
5.  d  :  A  List
6.  f1  :  a:\{a:A|  (a  \mmember{}  d)\}    {}\mrightarrow{}  B[a]
7.  d1  :  A  List
8.  g1  :  a:\{a:A|  (a  \mmember{}  d1)\}    {}\mrightarrow{}  C[a]
9.  eq  :  EqDecider(A)
10.  \mforall{}a:A.  ((\muparrow{}a  \mmember{}\msubb{}  d)  {}\mRightarrow{}  (B[a]  \msubseteq{}r  D[a]))
11.  \mforall{}a:A.  ((\muparrow{}a  \mmember{}\msubb{}  d1)  {}\mRightarrow{}  (C[a]  \msubseteq{}r  D[a]))
\mvdash{}  <d  @  filter(\mlambda{}a.(\mneg{}\msubb{}a  \mmember{}\msubb{}  d);d1),  \mlambda{}a.if  a  \mmember{}\msubb{}  d  then  f1  a  else  g1  a  fi  >  \mmember{}  d:A  List  \mtimes{}  (a:\{a:A| 
                                                                                                                                                                                (a  \mmember{}  d)\} 
                                                                                                                                                                        {}\mrightarrow{}  D[a])
By
Latex:
(RepeatFor  2  ((MemCD  THENA  Auto))
  THEN  Try  ((D  -1
                        THEN  ((RWW  "member\_append  member\_filter"  (-1)  THENM  Reduce  (-1))  THENA  Auto)
                        THEN  D  -1))
  THEN  Auto)
Home
Index