Nuprl Lemma : Memory-loc-class-progress
∀[Info,B,A:Type].
∀R:B ─→ B ─→ ℙ. ∀P:A ─→ B ─→ ℙ. ∀f:Id ─→ A ─→ B ─→ B. ∀init:Id ─→ bag(B). ∀X:EClass(A). ∀es:EO+(Info). ∀e1,e2:E.
∀v1,v2:B.
((∀a:A. ∀s:B. Dec(P[a;s]))
⇒ Trans(B;x,y.R[x;y])
⇒ (∀s1,s2:B. SqStable(R[s1;s2]))
⇒ (∀a:A. ∀e:E. ∀s:B.
(e1 ≤loc e
⇒ (e <loc e2)
⇒ a ∈ X(e)
⇒ s ∈ Memory-loc-class(f;init;X)(e)
⇒ ((P[a;s]
⇒ R[s;f loc(e) a s]) ∧ ((¬P[a;s])
⇒ (s = (f loc(e) a s) ∈ B)))))
⇒ single-valued-classrel(es;X;A)
⇒ single-valued-bag(init loc(e1);B)
⇒ v1 ∈ Memory-loc-class(f;init;X)(e1)
⇒ v2 ∈ Memory-loc-class(f;init;X)(e2)
⇒ (e1 <loc e2)
⇒ (∃e:E. ∃a:A. ∃s:B. (e1 ≤loc e ∧ (e <loc e2) ∧ s ∈ Memory-loc-class(f;init;X)(e) ∧ a ∈ X(e) ∧ P[a;s]))
⇒ R[v1;v2])
Proof
Definitions occuring in Statement :
Memory-loc-class: Memory-loc-class(f;init;X)
,
single-valued-classrel: single-valued-classrel(es;X;T)
,
classrel: v ∈ X(e)
,
eclass: EClass(A[eo; e])
,
event-ordering+: EO+(Info)
,
es-le: e ≤loc e'
,
es-locl: (e <loc e')
,
es-loc: loc(e)
,
es-E: E
,
Id: Id
,
trans: Trans(T;x,y.E[x; y])
,
sq_stable: SqStable(P)
,
decidable: Dec(P)
,
uall: ∀[x:A]. B[x]
,
prop: ℙ
,
so_apply: x[s1;s2]
,
all: ∀x:A. B[x]
,
exists: ∃x:A. B[x]
,
not: ¬A
,
implies: P
⇒ Q
,
and: P ∧ Q
,
apply: f a
,
function: x:A ─→ B[x]
,
universe: Type
,
equal: s = t ∈ T
,
single-valued-bag: single-valued-bag(b;T)
,
bag: bag(T)
Lemmas :
Memory-classrel-loc,
classrel_wf,
Memory-class_wf,
es-loc_wf,
Memory-class-progress,
es-le-loc,
and_wf,
equal_wf,
Id_wf,
eclass_wf,
es-E_wf,
event-ordering+_subtype,
event-ordering+_wf,
not_wf,
es-locl_wf,
es-le_wf,
exists_wf,
Memory-loc-class_wf,
single-valued-bag_wf,
single-valued-classrel_wf,
all_wf,
sq_stable_wf,
trans_wf,
decidable_wf,
bag_wf
Latex:
\mforall{}[Info,B,A:Type].
\mforall{}R:B {}\mrightarrow{} B {}\mrightarrow{} \mBbbP{}. \mforall{}P:A {}\mrightarrow{} B {}\mrightarrow{} \mBbbP{}. \mforall{}f:Id {}\mrightarrow{} A {}\mrightarrow{} B {}\mrightarrow{} B. \mforall{}init:Id {}\mrightarrow{} bag(B). \mforall{}X:EClass(A).
\mforall{}es:EO+(Info). \mforall{}e1,e2:E. \mforall{}v1,v2:B.
((\mforall{}a:A. \mforall{}s:B. Dec(P[a;s]))
{}\mRightarrow{} Trans(B;x,y.R[x;y])
{}\mRightarrow{} (\mforall{}s1,s2:B. SqStable(R[s1;s2]))
{}\mRightarrow{} (\mforall{}a:A. \mforall{}e:E. \mforall{}s:B.
(e1 \mleq{}loc e
{}\mRightarrow{} (e <loc e2)
{}\mRightarrow{} a \mmember{} X(e)
{}\mRightarrow{} s \mmember{} Memory-loc-class(f;init;X)(e)
{}\mRightarrow{} ((P[a;s] {}\mRightarrow{} R[s;f loc(e) a s]) \mwedge{} ((\mneg{}P[a;s]) {}\mRightarrow{} (s = (f loc(e) a s))))))
{}\mRightarrow{} single-valued-classrel(es;X;A)
{}\mRightarrow{} single-valued-bag(init loc(e1);B)
{}\mRightarrow{} v1 \mmember{} Memory-loc-class(f;init;X)(e1)
{}\mRightarrow{} v2 \mmember{} Memory-loc-class(f;init;X)(e2)
{}\mRightarrow{} (e1 <loc e2)
{}\mRightarrow{} (\mexists{}e:E
\mexists{}a:A
\mexists{}s:B. (e1 \mleq{}loc e \mwedge{} (e <loc e2) \mwedge{} s \mmember{} Memory-loc-class(f;init;X)(e) \mwedge{} a \mmember{} X(e) \mwedge{} P[a;s]))
{}\mRightarrow{} R[v1;v2])
Date html generated:
2015_07_22-PM-00_14_11
Last ObjectModification:
2015_01_28-AM-10_47_19
Home
Index