Nuprl Lemma : hdf-state-base3-3
∀[F1,F2,F3,f1,f2,f3,s:Top]. ∀[hdr1,hdr2,hdr3:Name].
(hdf-state((λx,s. f1[x;s]) o hdf-base(a.if name_eq(fst(a);hdr1) then [F1[a]] else [] fi )
|| (λx,s. f2[x;s]) o hdf-base(a.if name_eq(fst(a);hdr2) then [F2[a]] else [] fi ) || (λx,s. f3[x;s])
o hdf-base(a.if name_eq(fst(a);hdr3) then [F3[a]] else [] fi );[s])
~ fix((λmk-hdf,s. (inl (λa.cbva_seq(λn.if name_eq(fst(a);hdr1) then f1[F1[a];s]
if name_eq(fst(a);hdr2) then f2[F2[a];s]
if name_eq(fst(a);hdr3) then f3[F3[a];s]
else s
fi ; λg.<mk-hdf (g (λx.x)), g (λx.[x])>; 1)))))
s) supposing
((¬(hdr1 = hdr2 ∈ Name)) and
(¬(hdr1 = hdr3 ∈ Name)) and
(¬(hdr2 = hdr3 ∈ Name)))
Proof
Definitions occuring in Statement :
hdf-parallel: X || Y
,
hdf-state: hdf-state(X;bs)
,
hdf-compose1: f o X
,
hdf-base: hdf-base(m.F[m])
,
name_eq: name_eq(x;y)
,
name: Name
,
cons: [a / b]
,
nil: []
,
ifthenelse: if b then t else f fi
,
uimplies: b supposing a
,
uall: ∀[x:A]. B[x]
,
top: Top
,
so_apply: x[s1;s2]
,
so_apply: x[s]
,
pi1: fst(t)
,
not: ¬A
,
apply: f a
,
fix: fix(F)
,
lambda: λx.A[x]
,
pair: <a, b>
,
inl: inl x
,
natural_number: $n
,
sqequal: s ~ t
,
equal: s = t ∈ T
,
cbva_seq: cbva_seq(L; F; m)
Lemmas :
hdf-base-transformation1,
false_wf,
le_wf,
hdf-parallel-transformation2-1,
hdf-state-transformation2,
primrec1_lemma,
primrec0_lemma,
map-ifthenelse,
map_cons_lemma,
map_nil_lemma,
nat_properties,
less_than_transitivity1,
less_than_irreflexivity,
ge_wf,
less_than_wf,
base_wf,
fun_exp0_lemma,
strictness-apply,
bottom-sqle,
decidable__le,
subtract_wf,
not-ge-2,
less-iff-le,
condition-implies-le,
minus-one-mul,
zero-add,
minus-add,
minus-minus,
add-associates,
add-swap,
add-commutes,
add_functionality_wrt_le,
add-zero,
le-add-cancel,
fun_exp_unroll_1,
callbyvalueall-ifthenelse,
ifthenelse_sqle,
name_eq-is-inl,
callbyvalueall-single,
not-name_eq-implies-sq-bfalse,
equal_wf,
name_wf,
list_ind_cons_lemma,
list_ind_nil_lemma,
bag-combine-unit-left-top,
cbv_sqle,
int_subtype_base,
list_subtype_base,
atom_subtype_base,
evalall-sqequal,
null_cons_lemma,
has-valueall_wf_base,
exists_wf,
sqequal-wf-base,
not_wf,
top_wf,
hdf-compose1-transformation2,
primrec-unroll
\mforall{}[F1,F2,F3,f1,f2,f3,s:Top]. \mforall{}[hdr1,hdr2,hdr3:Name].
(hdf-state((\mlambda{}x,s. f1[x;s]) o hdf-base(a.if name\_eq(fst(a);hdr1) then [F1[a]] else [] fi )
|| (\mlambda{}x,s. f2[x;s]) o hdf-base(a.if name\_eq(fst(a);hdr2) then [F2[a]] else [] fi )
|| (\mlambda{}x,s. f3[x;s]) o hdf-base(a.if name\_eq(fst(a);hdr3) then [F3[a]] else [] fi );[s\000C])
\msim{} fix((\mlambda{}mk-hdf,s. (inl (\mlambda{}a.cbva\_seq(\mlambda{}n.if name\_eq(fst(a);hdr1) then f1[F1[a];s]
if name\_eq(fst(a);hdr2) then f2[F2[a];s]
if name\_eq(fst(a);hdr3) then f3[F3[a];s]
else s
fi ; \mlambda{}g.<mk-hdf (g (\mlambda{}x.x)), g (\mlambda{}x.[x])> 1)))))
s) supposing
((\mneg{}(hdr1 = hdr2)) and
(\mneg{}(hdr1 = hdr3)) and
(\mneg{}(hdr2 = hdr3)))
Date html generated:
2015_07_17-AM-08_15_55
Last ObjectModification:
2015_04_17-AM-03_02_16
Home
Index