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