Step * 1 of Lemma fpf-join-wf


1. Type
2. A ⟶ Type
3. A ⟶ Type
4. A ⟶ Type
5. List
6. f1 a:{a:A| (a ∈ d)}  ⟶ B[a]
7. d1 List
8. g1 a:{a:A| (a ∈ d1)}  ⟶ C[a]
9. eq EqDecider(A)
10. ∀a:A. ((↑a ∈b d)  (B[a] ⊆D[a]))
11. ∀a:A. ((↑a ∈b d1)  (C[a] ⊆D[a]))
⊢ <filter(λa.(¬ba ∈b d);d1), λa.if a ∈b then f1 else g1 fi > ∈ d:A List × (a:{a:A| (a ∈ d)}  ⟶ D[a])
BY
(RepeatFor ((MemCD THENA Auto))
   THEN Try ((D -1 THEN ((RWW "member_append member_filter" (-1) THENM Reduce (-1)) THENA Auto) THEN -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