Step * of Lemma interface-cmp_wf

[f:Name ⟶ Type]. ∀[locs:Id List]. ∀[hdrs:Name List]. ∀[mcmp:hdr:Name ⟶ comparison(f hdr)].
  (interface-cmp(mcmp;locs;hdrs) ∈ comparison(Interface(to locs, with hdrs)))
BY
(Auto
   THEN (Assert list-index-cmp(IdDeq;locs;λmi.mi.dst) ∈ comparison(Interface(to locs, with hdrs)) BY
               ((InstLemma `list-index-cmp_wf` [⌜Id⌝;⌜IdDeq⌝;⌜locs⌝;⌜Interface(to locs, with hdrs)⌝;⌜λmi.mi.dst⌝]⋅
                 THENA Auto
                 )
                THEN DoSubsume
                THEN Try (Trivial)
                THEN (BLemma `subtype_rel_comparison` THENA Auto)
                THEN Reduce 0
                THEN (D THENA Auto)
                THEN -1
                THEN MemTypeCD
                THEN Auto))
   THEN (Assert list-index-cmp(NameDeq;hdrs;λmi.msg-header(mi.msg)) ∈ comparison(Interface(to locs, with hdrs)) BY
               ((InstLemma `list-index-cmp_wf` [⌜Name⌝;⌜NameDeq⌝;⌜hdrs⌝;⌜Interface(to locs, with hdrs)⌝;
                 ⌜λmi.msg-header(mi.msg)⌝]⋅
                 THENA Auto
                 )
                THEN DoSubsume
                THEN Try (Trivial)
                THEN (BLemma `subtype_rel_comparison` THENA Auto)
                THEN Reduce 0
                THEN (D THENA Auto)
                THEN -1
                THEN MemTypeCD
                THEN Auto))
   THEN Unfold `interface-cmp` 0
   THEN BLemma `comparison-seq-simple-wf`
   THEN Try (BLemma `comparison-seq-simple-wf`)
   THEN Try (QuickAuto)) }

1
.....wf..... 
1. Name ⟶ Type
2. locs Id List
3. hdrs Name List
4. mcmp hdr:Name ⟶ comparison(f hdr)
5. list-index-cmp(IdDeq;locs;λmi.mi.dst) ∈ comparison(Interface(to locs, with hdrs))
6. list-index-cmp(NameDeq;hdrs;λmi.msg-header(mi.msg)) ∈ comparison(Interface(to locs, with hdrs))
⊢ compare-fun(message-cmp(hdrs;mcmp);λmi.mi.msg) ∈ comparison(Interface(to locs, with hdrs))


Latex:


Latex:
\mforall{}[f:Name  {}\mrightarrow{}  Type].  \mforall{}[locs:Id  List].  \mforall{}[hdrs:Name  List].  \mforall{}[mcmp:hdr:Name  {}\mrightarrow{}  comparison(f  hdr)].
    (interface-cmp(mcmp;locs;hdrs)  \mmember{}  comparison(Interface(to  locs,  with  hdrs)))


By


Latex:
(Auto
  THEN  (Assert  list-index-cmp(IdDeq;locs;\mlambda{}mi.mi.dst)  \mmember{}  comparison(Interface(to  locs,  with  hdrs))  BY
                          ((InstLemma  `list-index-cmp\_wf`  [\mkleeneopen{}Id\mkleeneclose{};\mkleeneopen{}IdDeq\mkleeneclose{};\mkleeneopen{}locs\mkleeneclose{};\mkleeneopen{}Interface(to  locs,  with  hdrs)\mkleeneclose{};
                              \mkleeneopen{}\mlambda{}mi.mi.dst\mkleeneclose{}]\mcdot{}
                              THENA  Auto
                              )
                            THEN  DoSubsume
                            THEN  Try  (Trivial)
                            THEN  (BLemma  `subtype\_rel\_comparison`  THENA  Auto)
                            THEN  Reduce  0
                            THEN  (D  0  THENA  Auto)
                            THEN  D  -1
                            THEN  MemTypeCD
                            THEN  Auto))
  THEN  (Assert  list-index-cmp(NameDeq;hdrs;\mlambda{}mi.msg-header(mi.msg))
                            \mmember{}  comparison(Interface(to  locs,  with  hdrs))  BY
                          ((InstLemma  `list-index-cmp\_wf`  [\mkleeneopen{}Name\mkleeneclose{};\mkleeneopen{}NameDeq\mkleeneclose{};\mkleeneopen{}hdrs\mkleeneclose{};
                              \mkleeneopen{}Interface(to  locs,  with  hdrs)\mkleeneclose{};\mkleeneopen{}\mlambda{}mi.msg-header(mi.msg)\mkleeneclose{}]\mcdot{}
                              THENA  Auto
                              )
                            THEN  DoSubsume
                            THEN  Try  (Trivial)
                            THEN  (BLemma  `subtype\_rel\_comparison`  THENA  Auto)
                            THEN  Reduce  0
                            THEN  (D  0  THENA  Auto)
                            THEN  D  -1
                            THEN  MemTypeCD
                            THEN  Auto))
  THEN  Unfold  `interface-cmp`  0
  THEN  BLemma  `comparison-seq-simple-wf`
  THEN  Try  (BLemma  `comparison-seq-simple-wf`)
  THEN  Try  (QuickAuto))




Home Index