Step * of Lemma bind-return-left

[Info,T,S:Type]. ∀[x:T].  ∀f:T ⟶ EClass(S). (return-class(x) >z> f[z] f[x] ∈ EClass(S))
BY
((Auto THEN (InstLemma `bind-class_wf` [⌜Info⌝;⌜T⌝;⌜S⌝]⋅ THENA Auto))
   THEN RepUR ``eclass`` 0⋅
   THEN Symmetry
   THEN Ext
   THEN Auto
   THEN Try (((Fold `eclass` 0 ⋅ THEN Auto) THEN BackThruSomeHyp THEN Auto))
   THEN RenameVar `es' (-1)⋅
   THEN Ext
   THEN Auto
   THEN Try (((Fold `eclass` THEN Auto) ORELSE (GenConclAtAddrType ⌜EClass(S)⌝ [2;1]⋅ THEN Auto THEN BackThruSomeHyp))
             ⋅)
   THEN RenameVar `e' (-1)
   THEN RepUR ``bind-class`` 0) }

1
1. Info Type
2. Type
3. Type
4. T
5. T ⟶ EClass(S)@i'
6. ∀[X:EClass(T)]. ∀[Y:T ⟶ EClass(S)].  (X >x> Y[x] ∈ EClass(S))
7. es EO+(Info)
8. E
⊢ (f[x] es e) = ⋃e'∈≤loc(e).⋃z∈return-class(x) es e'.f[z] es.e' e ∈ bag(S)


Latex:


Latex:
\mforall{}[Info,T,S:Type].  \mforall{}[x:T].    \mforall{}f:T  {}\mrightarrow{}  EClass(S).  (return-class(x)  >z>  f[z]  =  f[x])


By


Latex:
((Auto  THEN  (InstLemma  `bind-class\_wf`  [\mkleeneopen{}Info\mkleeneclose{};\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}S\mkleeneclose{}]\mcdot{}  THENA  Auto))
  THEN  RepUR  ``eclass``  0\mcdot{}
  THEN  Symmetry
  THEN  Ext
  THEN  Auto
  THEN  Try  (((Fold  `eclass`  0  \mcdot{}  THEN  Auto)  THEN  BackThruSomeHyp  THEN  Auto))
  THEN  RenameVar  `es'  (-1)\mcdot{}
  THEN  Ext
  THEN  Auto
  THEN  Try  (((Fold  `eclass`  0  THEN  Auto)
                      ORELSE  (GenConclAtAddrType  \mkleeneopen{}EClass(S)\mkleeneclose{}  [2;1]\mcdot{}  THEN  Auto  THEN  BackThruSomeHyp)
                      )\mcdot{})
  THEN  RenameVar  `e'  (-1)
  THEN  RepUR  ``bind-class``  0)




Home Index