Step * 2 of Lemma lookup-list-map-inDom-prop


1. Key Type
2. Value Type
3. deqKey EqDecider(Key)
4. key Key
5. Key × Value@i
6. (Key × Value) List@i
7. ↑lookup-list-map-inDom(deqKey;key;v) ⇐⇒ ↑isl(lookup-list-map-find(deqKey;key;v))@i
⊢ ↑lookup-list-map-inDom(deqKey;key;[u v]) ⇐⇒ ↑isl(lookup-list-map-find(deqKey;key;[u v]))
BY
(DProds
   THEN RepUR ``lookup-list-map-inDom lookup-list-map-find eqof`` 0
   THEN (BoolCase ⌜deqKey key u1⌝⋅ THEN Try (CpltAuto))
   THEN BoolCase ⌜deqKey u1 key⌝⋅
   THEN Try (CpltAuto)) }

1
1. Key Type
2. Value Type
3. deqKey EqDecider(Key)
4. key Key
5. u1 Key@i
6. ¬(u1 key ∈ Key)
7. ¬(key u1 ∈ Key)
8. u2 Value@i
9. (Key × Value) List@i
10. ↑lookup-list-map-inDom(deqKey;key;v) ⇐⇒ ↑isl(lookup-list-map-find(deqKey;key;v))@i
⊢ ↑rec-case(v) of [] => ff h::t => r.let k,v in (deqKey key k) ∨b⇐⇒ ↑isl(apply-alist(deqKey;v;key))


Latex:


Latex:

1.  Key  :  Type
2.  Value  :  Type
3.  deqKey  :  EqDecider(Key)
4.  key  :  Key
5.  u  :  Key  \mtimes{}  Value@i
6.  v  :  (Key  \mtimes{}  Value)  List@i
7.  \muparrow{}lookup-list-map-inDom(deqKey;key;v)  \mLeftarrow{}{}\mRightarrow{}  \muparrow{}isl(lookup-list-map-find(deqKey;key;v))@i
\mvdash{}  \muparrow{}lookup-list-map-inDom(deqKey;key;[u  /  v])  \mLeftarrow{}{}\mRightarrow{}  \muparrow{}isl(lookup-list-map-find(deqKey;key;[u  /  v]))


By


Latex:
(DProds
  THEN  RepUR  ``lookup-list-map-inDom  lookup-list-map-find  eqof``  0
  THEN  (BoolCase  \mkleeneopen{}deqKey  key  u1\mkleeneclose{}\mcdot{}  THEN  Try  (CpltAuto))
  THEN  BoolCase  \mkleeneopen{}deqKey  u1  key\mkleeneclose{}\mcdot{}
  THEN  Try  (CpltAuto))




Home Index