Step * 1 of Lemma lnk-decl-dom-join


1. IdLnk
2. Knd
3. dt1 tg:Id fp-> Type
4. dt2 tg:Id fp-> Type
⊢ ↑k ∈b map(λtg.rcv(l,tg);fst(dt1 ⊕ dt2))) ⇐⇒ ↑(k ∈b map(λtg.rcv(l,tg);fst(dt1))) ∨bk ∈b map(λtg.rcv(l,tg);fst(dt2))))
BY
(D -2
   THEN -1
   THEN RepUR ``fpf-join fpf-dom`` 0
   THEN (RW assert_pushdownC THENA Auto)
   THEN (RWO "map_append_sq" THENA Auto)
   THEN (RWO "member_append" THENA Auto)
   THEN Fold `mapfilter` 0
   THEN (RWO "member_map_filter" THENA (Reduce THEN Auto THEN Reduce THEN Auto))
   THEN Reduce 0
   THEN (RW assert_pushdownC THENA Auto)
   THEN Auto
   THEN -1
   THEN Auto) }

1
1. IdLnk
2. Knd
3. Id List
4. d1 tg:{tg:Id| (tg ∈ d)}  ─→ Type
5. d2 Id List
6. d3 tg:{tg:Id| (tg ∈ d2)}  ─→ Type
7. (k ∈ map(λtg.rcv(l,tg);d2))@i
⊢ (k ∈ map(λtg.rcv(l,tg);d)) ∨ (∃y:Id. ((y ∈ d2) ∧ ((¬(y ∈ d)) c∧ (k rcv(l,y) ∈ Knd))))


Latex:



1.  l  :  IdLnk
2.  k  :  Knd
3.  dt1  :  tg:Id  fp->  Type
4.  dt2  :  tg:Id  fp->  Type
\mvdash{}  \muparrow{}k  \mmember{}\msubb{}  map(\mlambda{}tg.rcv(l,tg);fst(dt1  \moplus{}  dt2)))
\mLeftarrow{}{}\mRightarrow{}  \muparrow{}(k  \mmember{}\msubb{}  map(\mlambda{}tg.rcv(l,tg);fst(dt1)))  \mvee{}\msubb{}k  \mmember{}\msubb{}  map(\mlambda{}tg.rcv(l,tg);fst(dt2))))


By

(D  -2
  THEN  D  -1
  THEN  RepUR  ``fpf-join  fpf-dom``  0
  THEN  (RW  assert\_pushdownC  0  THENA  Auto)
  THEN  (RWO  "map\_append\_sq"  0  THENA  Auto)
  THEN  (RWO  "member\_append"  0  THENA  Auto)
  THEN  Fold  `mapfilter`  0
  THEN  (RWO  "member\_map\_filter"  0  THENA  (Reduce  0  THEN  Auto  THEN  Reduce  0  THEN  Auto))
  THEN  Reduce  0
  THEN  (RW  assert\_pushdownC  0  THENA  Auto)
  THEN  Auto
  THEN  D  -1
  THEN  Auto)




Home Index