Nuprl Lemma : iterated-classrel-invariant2
∀[Info,A,S:Type]. ∀[init:Id ─→ bag(S)]. ∀[f:A ─→ S ─→ S].
∀X:EClass(A). ∀es:EO+(Info).
∀[P:E ─→ S ─→ ℙ]
∀e:E. ∀v:S.
((∀s:S. ∀e':E.
(e' ≤loc e
⇒ if first(e')
then s ↓∈ init loc(e')
else iterated-classrel(es;S;A;f;init;X;pred(e');s) ∧ P[pred(e');s]
fi
⇒ if e' ∈b X then ∀a:A. (a ∈ X(e')
⇒ P[e';f a s]) else P[e';s] fi ))
⇒ iterated-classrel(es;S;A;f;init;X;e;v)
⇒ P[e;v])
Proof
Definitions occuring in Statement :
iterated-classrel: iterated-classrel(es;S;A;f;init;X;e;v)
,
classrel: v ∈ X(e)
,
member-eclass: e ∈b X
,
eclass: EClass(A[eo; e])
,
event-ordering+: EO+(Info)
,
es-le: e ≤loc e'
,
es-first: first(e)
,
es-pred: pred(e)
,
es-loc: loc(e)
,
es-E: E
,
Id: Id
,
ifthenelse: if b then t else f fi
,
uall: ∀[x:A]. B[x]
,
prop: ℙ
,
so_apply: x[s1;s2]
,
all: ∀x:A. B[x]
,
implies: P
⇒ Q
,
and: P ∧ Q
,
apply: f a
,
function: x:A ─→ B[x]
,
universe: Type
,
bag-member: x ↓∈ bs
,
bag: bag(T)
Lemmas :
es-causl-swellfnd,
less_than_transitivity1,
less_than_irreflexivity,
int_seg_wf,
decidable__equal_int,
subtype_rel-int_seg,
false_wf,
le_weakening,
subtract_wf,
int_seg_properties,
le_wf,
nat_wf,
zero-le-nat,
lelt_wf,
es-causl_wf,
es-first_wf2,
bool_cases,
subtype_base_sq,
bool_wf,
bool_subtype_base,
eqtt_to_assert,
eqff_to_assert,
assert_of_bnot,
iterated-classrel_wf,
all_wf,
es-le_wf,
bag-member_wf,
es-loc_wf,
equal_wf,
bool_cases_sqequal,
assert-bnot,
es-pred_wf,
member-eclass_wf,
classrel_wf,
int_seg_subtype-nat,
decidable__lt,
not-equal-2,
condition-implies-le,
minus-add,
minus-minus,
minus-one-mul,
add-swap,
add-commutes,
add-associates,
add_functionality_wrt_le,
zero-add,
le-add-cancel-alt,
less-iff-le,
le-add-cancel,
set_wf,
less_than_wf,
primrec-wf2,
decidable__le,
not-le-2,
sq_stable__le,
add-zero,
add-mul-special,
zero-mul,
es-E_wf,
event-ordering+_subtype,
event-ordering+_wf,
eclass_wf,
Id_wf,
bag_wf,
es-le-self,
classrel-implies-member,
sq_stable__bag-member,
and_wf,
member_wf,
member-implies-classrel,
es-pred-locl,
es-causl_weakening,
es-locl_transitivity1,
es-le_weakening
\mforall{}[Info,A,S:Type]. \mforall{}[init:Id {}\mrightarrow{} bag(S)]. \mforall{}[f:A {}\mrightarrow{} S {}\mrightarrow{} S].
\mforall{}X:EClass(A). \mforall{}es:EO+(Info).
\mforall{}[P:E {}\mrightarrow{} S {}\mrightarrow{} \mBbbP{}]
\mforall{}e:E. \mforall{}v:S.
((\mforall{}s:S. \mforall{}e':E.
(e' \mleq{}loc e
{}\mRightarrow{} if first(e')
then s \mdownarrow{}\mmember{} init loc(e')
else iterated-classrel(es;S;A;f;init;X;pred(e');s) \mwedge{} P[pred(e');s]
fi
{}\mRightarrow{} if e' \mmember{}\msubb{} X then \mforall{}a:A. (a \mmember{} X(e') {}\mRightarrow{} P[e';f a s]) else P[e';s] fi ))
{}\mRightarrow{} iterated-classrel(es;S;A;f;init;X;e;v)
{}\mRightarrow{} P[e;v])
Date html generated:
2015_07_17-PM-00_28_02
Last ObjectModification:
2015_01_27-PM-11_36_52
Home
Index