Step * 1 of Lemma CLK_ClockFun-eq


1. MsgType {T:Type| valueall-type(T)} 
2. CLK_headers_type{i:l}(MsgType)
3. (f ``CLK msg``) (MsgType × ℤ) ∈ Type
4. f ∈ Name ⟶ Type
5. es EO+(Message(f))
6. E
7. ∀e:E. (↑e ∈b CLK_msg'base(MsgType;f))
⊢ CLK_ClockVal(MsgType;f)@e
(imax(snd(CLK_msg'base(MsgType;f)@e);if first(e) then else CLK_ClockVal(MsgType;f)@pred(e) fi 1)
∈ ℤ
BY
(RepUR ``CLK_ClockFun CLK_Clock state-class1`` 0
   THEN RW (AddrC [2] (LemmaC `loop-class-state-fun-eq`)) 0
   THEN Reduce 0
   THEN Auto
   THEN (ProveFunctional THEN Auto)
   THEN Reduce 0
   THEN Repeat (AutoSplit)
   THEN Try ((RWO "classfun-res-eclass1" THENA Auto))
   THEN (ProveFunctional THEN Auto)
   THEN Try (Complete ((D (-3) THEN RWO "member-eclass-eclass1" THEN Auto)))
   THEN Try (Complete ((D (-2) THEN RWO "member-eclass-eclass1" THEN Auto)))
   THEN RepUR ``CLK_upd_clock`` 0
   THEN GenConclAtAddr [2;1]
   THEN Try (DProdsAndUnions)
   THEN AllReduce
   THEN Auto
   THEN ProveFunctional
   THEN Auto) }


Latex:


Latex:

1.  MsgType  :  \{T:Type|  valueall-type(T)\} 
2.  f  :  CLK\_headers\_type\{i:l\}(MsgType)
3.  (f  ``CLK  msg``)  =  (MsgType  \mtimes{}  \mBbbZ{})
4.  f  \mmember{}  Name  {}\mrightarrow{}  Type
5.  es  :  EO+(Message(f))
6.  e  :  E
7.  \mforall{}e:E.  (\muparrow{}e  \mmember{}\msubb{}  CLK\_msg'base(MsgType;f))
\mvdash{}  CLK\_ClockVal(MsgType;f)@e
=  (imax(snd(CLK\_msg'base(MsgType;f)@e);if  first(e)  then  0  else  CLK\_ClockVal(MsgType;f)@pred(e)  fi  )
    +  1)


By


Latex:
(RepUR  ``CLK\_ClockFun  CLK\_Clock  state-class1``  0
  THEN  RW  (AddrC  [2]  (LemmaC  `loop-class-state-fun-eq`))  0
  THEN  Reduce  0
  THEN  Auto
  THEN  (ProveFunctional  THEN  Auto)
  THEN  Reduce  0
  THEN  Repeat  (AutoSplit)
  THEN  Try  ((RWO  "classfun-res-eclass1"  0  THENA  Auto))
  THEN  (ProveFunctional  THEN  Auto)
  THEN  Try  (Complete  ((D  (-3)  THEN  RWO  "member-eclass-eclass1"  0  THEN  Auto)))
  THEN  Try  (Complete  ((D  (-2)  THEN  RWO  "member-eclass-eclass1"  0  THEN  Auto)))
  THEN  RepUR  ``CLK\_upd\_clock``  0
  THEN  GenConclAtAddr  [2;1]
  THEN  Try  (DProdsAndUnions)
  THEN  AllReduce
  THEN  Auto
  THEN  ProveFunctional
  THEN  Auto)




Home Index