Step
*
1
1
of Lemma
lookup_merge
1. a : LOSet
2. b : AbDMon
3. k : |a|
⊢ ∀ps,qs:|oal(a;b)|.
    ((∀us,vs:|oal(a;b)|.  (||us|| + ||vs|| < ||ps|| + ||qs|| 
⇒ (((us ++ vs)[k]) = ((us[k]) * (vs[k])) ∈ |b|)))
    
⇒ (((ps ++ qs)[k]) = ((ps[k]) * (qs[k])) ∈ |b|))
BY
{ % a little fiddly here, getting case splits right % 
((RWAddr [2] GuardC 0 
THEN BLemma `oalist_cases` THENML [Id;UnivCD] 
THENM BLemma `oalist_cases` THENM RepD) THENA Auto)  
 }
1
1. a : LOSet
2. b : AbDMon
3. k : |a|
4. ∀us,vs:|oal(a;b)|.  (||us|| + ||vs|| < ||[]|| + ||[]|| 
⇒ (((us ++ vs)[k]) = ((us[k]) * (vs[k])) ∈ |b|))
⊢ (([] ++ [])[k]) = (([][k]) * ([][k])) ∈ |b|
2
1. a : LOSet
2. b : AbDMon
3. k : |a|
4. qs : |oal(a;b)|
5. x : |a|
6. y : |b|
7. ↑before(x;map(λx.(fst(x));qs))
8. ¬(y = e ∈ |b|)
9. ∀us,vs:|oal(a;b)|.  (||us|| + ||vs|| < ||[]|| + ||[<x, y> / qs]|| 
⇒ (((us ++ vs)[k]) = ((us[k]) * (vs[k])) ∈ |b|))
⊢ (([] ++ [<x, y> / qs])[k]) = (([][k]) * ([<x, y> / qs][k])) ∈ |b|
3
1. a : LOSet
2. b : AbDMon
3. k : |a|
4. ps : |oal(a;b)|
5. x : |a|
6. y : |b|
7. ↑before(x;map(λx.(fst(x));ps))
8. ¬(y = e ∈ |b|)
9. ∀us,vs:|oal(a;b)|.  (||us|| + ||vs|| < ||[<x, y> / ps]|| + ||[]|| 
⇒ (((us ++ vs)[k]) = ((us[k]) * (vs[k])) ∈ |b|))
⊢ (([<x, y> / ps] ++ [])[k]) = (([<x, y> / ps][k]) * ([][k])) ∈ |b|
4
1. a : LOSet
2. b : AbDMon
3. k : |a|
4. ps : |oal(a;b)|
5. x : |a|
6. y : |b|
7. ↑before(x;map(λx.(fst(x));ps))
8. ¬(y = e ∈ |b|)
9. qs : |oal(a;b)|
10. x1 : |a|
11. y1 : |b|
12. ↑before(x1;map(λx.(fst(x));qs))
13. ¬(y1 = e ∈ |b|)
14. ∀us,vs:|oal(a;b)|.
      (||us|| + ||vs|| < ||[<x, y> / ps]|| + ||[<x1, y1> / qs]|| 
⇒ (((us ++ vs)[k]) = ((us[k]) * (vs[k])) ∈ |b|))
⊢ (([<x, y> / ps] ++ [<x1, y1> / qs])[k]) = (([<x, y> / ps][k]) * ([<x1, y1> / qs][k])) ∈ |b|
Latex:
Latex:
1.  a  :  LOSet
2.  b  :  AbDMon
3.  k  :  |a|
\mvdash{}  \mforall{}ps,qs:|oal(a;b)|.
        ((\mforall{}us,vs:|oal(a;b)|.
                (||us||  +  ||vs||  <  ||ps||  +  ||qs||  {}\mRightarrow{}  (((us  ++  vs)[k])  =  ((us[k])  *  (vs[k])))))
        {}\mRightarrow{}  (((ps  ++  qs)[k])  =  ((ps[k])  *  (qs[k]))))
By
Latex:
\%  a  little  fiddly  here,  getting  case  splits  right  \% 
((RWAddr  [2]  GuardC  0 
THEN  BLemma  `oalist\_cases`  THENML  [Id;UnivCD] 
THENM  BLemma  `oalist\_cases`  THENM  RepD)  THENA  Auto)   
Home
Index