Step * 3 of Lemma CLK-prop2


1. MsgType {T:Type| valueall-type(T)} @i'
2. locs bag(Id)@i
3. reply Id ⟶ MsgType ⟶ (MsgType × Id)@i
4. CLK_headers_type{i:l}(MsgType)@i'
5. (f ``CLK msg``) (MsgType × ℤ) ∈ Type
6. f ∈ Name ⟶ Type
7. es EO+(Message(f))@i'
8. e1 E@i
9. ∀e:E. (↑e ∈b CLK_msg'base(MsgType;f))@i
10. e2 E@i
11. ∀e3:E
      ((e3 < e2)
       (∀clock1,clock2:ℤ.
            (e1 ⟶ e3  clock1 ∈ CLK_Clock(MsgType;f)(e1)  clock2 ∈ CLK_Clock(MsgType;f)(e3)  clock1 < clock2)))
12. clock1 : ℤ@i
13. clock2 : ℤ@i
14. E@i
15. (e < e2)@i
16. (loc(e) loc(e2) ∈ Id))
 (∃delay:ℤmake-msg-interface(delay;loc(e2);info(e2)) ∈ CLK_main(MsgType;locs;reply;f)(e))@i
17. e1 ⟶ e@i
18. clock1 ∈ CLK_Clock(MsgType;f)(e1)@i
19. clock2 ∈ CLK_Clock(MsgType;f)(e2)@i
20. loc(e) loc(e2) ∈ Id
⊢ clock1 < clock2
BY
((InstHyp [⌜e⌝;⌜clock1⌝;⌜CLK_ClockVal(MsgType;f)@e⌝(-10)⋅ THENA (Auto THEN RWO "CLK_Clock-classrel" THEN Auto))
   THEN Assert ⌜CLK_ClockVal(MsgType;f)@e < clock2⌝⋅
   THEN Auto
   THEN InstLemma `CLK_strict_inc2` [⌜MsgType⌝;⌜f⌝;⌜es⌝;⌜e⌝;⌜e2⌝;⌜CLK_ClockVal(MsgType;f)@e⌝;⌜clock2⌝]⋅
   THEN Auto
   THEN Try (Complete ((D THEN Auto)))
   THEN Try (Complete ((RWO "CLK_Clock-classrel" THEN Auto)))
   THEN InstConcl [⌜e2⌝]⋅
   THEN Auto
   THEN 0
   THEN Auto) }


Latex:


Latex:

1.  MsgType  :  \{T:Type|  valueall-type(T)\}  @i'
2.  locs  :  bag(Id)@i
3.  reply  :  Id  {}\mrightarrow{}  MsgType  {}\mrightarrow{}  (MsgType  \mtimes{}  Id)@i
4.  f  :  CLK\_headers\_type\{i:l\}(MsgType)@i'
5.  (f  ``CLK  msg``)  =  (MsgType  \mtimes{}  \mBbbZ{})
6.  f  \mmember{}  Name  {}\mrightarrow{}  Type
7.  es  :  EO+(Message(f))@i'
8.  e1  :  E@i
9.  \mforall{}e:E.  (\muparrow{}e  \mmember{}\msubb{}  CLK\_msg'base(MsgType;f))@i
10.  e2  :  E@i
11.  \mforall{}e3:E
            ((e3  <  e2)
            {}\mRightarrow{}  (\mforall{}clock1,clock2:\mBbbZ{}.
                        (e1  {}\mrightarrow{}  e3
                        {}\mRightarrow{}  clock1  \mmember{}  CLK\_Clock(MsgType;f)(e1)
                        {}\mRightarrow{}  clock2  \mmember{}  CLK\_Clock(MsgType;f)(e3)
                        {}\mRightarrow{}  clock1  <  clock2)))
12.  clock1  :  \mBbbZ{}@i
13.  clock2  :  \mBbbZ{}@i
14.  e  :  E@i
15.  (e  <  e2)@i
16.  (\mneg{}(loc(e)  =  loc(e2)))
{}\mRightarrow{}  (\mexists{}delay:\mBbbZ{}.  make-msg-interface(delay;loc(e2);info(e2))  \mmember{}  CLK\_main(MsgType;locs;reply;f)(e))@i
17.  e1  {}\mrightarrow{}  e@i
18.  clock1  \mmember{}  CLK\_Clock(MsgType;f)(e1)@i
19.  clock2  \mmember{}  CLK\_Clock(MsgType;f)(e2)@i
20.  loc(e)  =  loc(e2)
\mvdash{}  clock1  <  clock2


By


Latex:
((InstHyp  [\mkleeneopen{}e\mkleeneclose{};\mkleeneopen{}clock1\mkleeneclose{};\mkleeneopen{}CLK\_ClockVal(MsgType;f)@e\mkleeneclose{}]  (-10)\mcdot{}
    THENA  (Auto  THEN  RWO  "CLK\_Clock-classrel"  0  THEN  Auto)
    )
  THEN  Assert  \mkleeneopen{}CLK\_ClockVal(MsgType;f)@e  <  clock2\mkleeneclose{}\mcdot{}
  THEN  Auto
  THEN  InstLemma  `CLK\_strict\_inc2`  [\mkleeneopen{}MsgType\mkleeneclose{};\mkleeneopen{}f\mkleeneclose{};\mkleeneopen{}es\mkleeneclose{};\mkleeneopen{}e\mkleeneclose{};\mkleeneopen{}e2\mkleeneclose{};\mkleeneopen{}CLK\_ClockVal(MsgType;f)@e\mkleeneclose{};\mkleeneopen{}clock2\mkleeneclose{}]
  \mcdot{}
  THEN  Auto
  THEN  Try  (Complete  ((D  0  THEN  Auto)))
  THEN  Try  (Complete  ((RWO  "CLK\_Clock-classrel"  0  THEN  Auto)))
  THEN  InstConcl  [\mkleeneopen{}e2\mkleeneclose{}]\mcdot{}
  THEN  Auto
  THEN  D  0
  THEN  Auto)




Home Index