Step
*
of Lemma
hdf-ap-only-headers2
∀[f:Name ─→ Type]
  ∀hdrs:Name List. ∀X:{X:msg-interface-hdf(f)| hdf-only-headers(f;hdrs;X)} . ∀m:Message(f). ∀mi:Interface.
    (mi ↓∈ snd(X(m)) 
⇒ (msg-header(mi.msg) ∈ hdrs))
BY
{ (Unfold `msg-interface-hdf` 0
   THEN Unfold `hdf-only-headers` 0
   THEN Intros
   THEN InstLemma `hdf-ap-invariant2` [⌈Message(f)⌉;⌈ℤ × Id × Message(f)⌉;⌈λ2b.∀mi:Interface
                                                                                 (mi ↓∈ b
                                                                                 
⇒ (msg-header(mi.msg) ∈ hdrs))⌉]⋅
   THEN Auto
   THEN Try (BagMemberD (-1))) }
Latex:
Latex:
\mforall{}[f:Name  {}\mrightarrow{}  Type]
    \mforall{}hdrs:Name  List.  \mforall{}X:\{X:msg-interface-hdf(f)|  hdf-only-headers(f;hdrs;X)\}  .  \mforall{}m:Message(f).
    \mforall{}mi:Interface.
        (mi  \mdownarrow{}\mmember{}  snd(X(m))  {}\mRightarrow{}  (msg-header(mi.msg)  \mmember{}  hdrs))
By
Latex:
(Unfold  `msg-interface-hdf`  0
  THEN  Unfold  `hdf-only-headers`  0
  THEN  Intros
  THEN  InstLemma  `hdf-ap-invariant2`  [\mkleeneopen{}Message(f)\mkleeneclose{};\mkleeneopen{}\mBbbZ{}  \mtimes{}  Id  \mtimes{}  Message(f)\mkleeneclose{};
  \mkleeneopen{}\mlambda{}\msubtwo{}b.\mforall{}mi:Interface.  (mi  \mdownarrow{}\mmember{}  b  {}\mRightarrow{}  (msg-header(mi.msg)  \mmember{}  hdrs))\mkleeneclose{}]\mcdot{}
  THEN  Auto
  THEN  Try  (BagMemberD  (-1)))
Home
Index