Step
*
of Lemma
strong-message-constraint-implies-message-constraint
∀[f:Name ─→ Type]. ∀[es:EO+(Message(f))]. ∀[X:EClass(Id × Message(f))]. ∀[hdrs:Name List].
(strong-message-constraint{i:l}(es;X;hdrs;f)
⇒ message-constraint{i:l}(es;X;hdrs;f))
BY
{ (Auto
THEN UnfoldTopAb 0
THEN UnfoldTopAb (-1)
THEN ParallelLast
THEN Auto
THEN ExRepD
THEN (Assert ⌈<loc(e), info(e)> ↓∈ class-output(X;es;bg)⌉⋅
THENM (BagMemberD (-1)
THEN SquashExRepD
THEN BagMemberD (-1)
THEN RepeatFor 3 (ParallelLast)
THEN Assert ⌈(e1 < e)⌉⋅
THEN Auto)
)) }
1
.....assertion.....
1. f : Name ─→ Type
2. es : EO+(Message(f))
3. X : EClass(Id × Message(f))
4. hdrs : Name List
5. ∀e:E
(↓∃bg:bag(E)
((∀e':E. (e' ↓∈ bg
⇒ (e' < e)))
∧ sub-bag(Id × Message(f);delivered-with-headers(hdrs;es;e);class-output(X;es;bg))))@i'
6. e : E@i'
7. bg : bag(E)
8. ∀e':E. (e' ↓∈ bg
⇒ (e' < e))
9. sub-bag(Id × Message(f);delivered-with-headers(hdrs;es;e);class-output(X;es;bg))
10. (header(e) ∈ hdrs)@i
⊢ <loc(e), info(e)> ↓∈ class-output(X;es;bg)
Latex:
Latex:
\mforall{}[f:Name {}\mrightarrow{} Type]. \mforall{}[es:EO+(Message(f))]. \mforall{}[X:EClass(Id \mtimes{} Message(f))]. \mforall{}[hdrs:Name List].
(strong-message-constraint\{i:l\}(es;X;hdrs;f) {}\mRightarrow{} message-constraint\{i:l\}(es;X;hdrs;f))
By
Latex:
(Auto
THEN UnfoldTopAb 0
THEN UnfoldTopAb (-1)
THEN ParallelLast
THEN Auto
THEN ExRepD
THEN (Assert \mkleeneopen{}<loc(e), info(e)> \mdownarrow{}\mmember{} class-output(X;es;bg)\mkleeneclose{}\mcdot{}
THENM (BagMemberD (-1)
THEN SquashExRepD
THEN BagMemberD (-1)
THEN RepeatFor 3 (ParallelLast)
THEN Assert \mkleeneopen{}(e1 < e)\mkleeneclose{}\mcdot{}
THEN Auto)
))
Home
Index