Step
*
1
1
1
1
1
of Lemma
local-class-only-headers
1. f : Name ⟶ Type
2. hdrs : Name List
3. X : EClass(Interface)
4. ∀es:EO+(Message(f)). ∀e:E. ∀mi:Interface.  (mi ↓∈ X(e) 
⇒ (msg-header(mi.msg) ∈ hdrs))@i'
5. P : LocalClass(X)@i'
6. a : Id@i
7. L : Message(f) List@i
8. x : Message(f) ⟶ (hdataflow(Message(f);Interface) × bag(Interface))@i
9. P a*(L) = hdf-run(x) ∈ hdataflow(Message(f);Interface)@i
10. m : Message(f)@i
11. v1 : hdataflow(Message(f);Interface)@i
12. v2 : bag(Interface)@i
13. hdf-run(x)(m) = <v1, v2> ∈ (hdataflow(Message(f);Interface) × bag(Interface))@i
14. X(||L||) = (snd(P a*(map(λx.info(x);before(||L||)))(info(||L||)))) ∈ bag(Interface)
⊢ v2 = (snd(P loc(||L||)*(map(λx.info(x);before(||L||)))(info(||L||)))) ∈ bag(Interface)
BY
{ ((Assert ||L|| ∈ E BY
          (BLemma `list-eo-E` THEN Auto))
   THEN (RWO "list-eo-info-before" 0 THENA Auto)
   THEN (RWO "list-eo-loc list-eo-info" 0 THENA Auto)
   THEN (RWO "length-append" 0⋅ THENA Auto)
   THEN Reduce 0
   THEN (Subst' ||L|| <z ||L|| + 1 ~ tt 0 THENA Auto)
   THEN Reduce 0) }
1
1. f : Name ⟶ Type
2. hdrs : Name List
3. X : EClass(Interface)
4. ∀es:EO+(Message(f)). ∀e:E. ∀mi:Interface.  (mi ↓∈ X(e) 
⇒ (msg-header(mi.msg) ∈ hdrs))@i'
5. P : LocalClass(X)@i'
6. a : Id@i
7. L : Message(f) List@i
8. x : Message(f) ⟶ (hdataflow(Message(f);Interface) × bag(Interface))@i
9. P a*(L) = hdf-run(x) ∈ hdataflow(Message(f);Interface)@i
10. m : Message(f)@i
11. v1 : hdataflow(Message(f);Interface)@i
12. v2 : bag(Interface)@i
13. hdf-run(x)(m) = <v1, v2> ∈ (hdataflow(Message(f);Interface) × bag(Interface))@i
14. X(||L||) = (snd(P a*(map(λx.info(x);before(||L||)))(info(||L||)))) ∈ bag(Interface)
15. ||L|| ∈ E
⊢ v2 = (snd(P a*(firstn(||L||;L @ [m]))(L @ [m][||L||]))) ∈ bag(Interface)
Latex:
Latex:
1.  f  :  Name  {}\mrightarrow{}  Type
2.  hdrs  :  Name  List
3.  X  :  EClass(Interface)
4.  \mforall{}es:EO+(Message(f)).  \mforall{}e:E.  \mforall{}mi:Interface.    (mi  \mdownarrow{}\mmember{}  X(e)  {}\mRightarrow{}  (msg-header(mi.msg)  \mmember{}  hdrs))@i'
5.  P  :  LocalClass(X)@i'
6.  a  :  Id@i
7.  L  :  Message(f)  List@i
8.  x  :  Message(f)  {}\mrightarrow{}  (hdataflow(Message(f);Interface)  \mtimes{}  bag(Interface))@i
9.  P  a*(L)  =  hdf-run(x)@i
10.  m  :  Message(f)@i
11.  v1  :  hdataflow(Message(f);Interface)@i
12.  v2  :  bag(Interface)@i
13.  hdf-run(x)(m)  =  <v1,  v2>@i
14.  X(||L||)  =  (snd(P  a*(map(\mlambda{}x.info(x);before(||L||)))(info(||L||))))
\mvdash{}  v2  =  (snd(P  loc(||L||)*(map(\mlambda{}x.info(x);before(||L||)))(info(||L||))))
By
Latex:
((Assert  ||L||  \mmember{}  E  BY
                (BLemma  `list-eo-E`  THEN  Auto))
  THEN  (RWO  "list-eo-info-before"  0  THENA  Auto)
  THEN  (RWO  "list-eo-loc  list-eo-info"  0  THENA  Auto)
  THEN  (RWO  "length-append"  0\mcdot{}  THENA  Auto)
  THEN  Reduce  0
  THEN  (Subst'  ||L||  <z  ||L||  +  1  \msim{}  tt  0  THENA  Auto)
  THEN  Reduce  0)
Home
Index