Nuprl Lemma : hdf-sqequal3
∀[F,G,H,K,L,s:Top].
(fix((λmk-hdf,s0. let X,bs = s0
in case X
of inl(y) =>
inl (λa.let X',fs = y a
in let bs' ⟵ G[fs;bs]
in <mk-hdf <X', K[bs;bs']>, L[bs;bs']>)
| inr(z) =>
H[z]))
<fix((λmk-hdf.(inl (λa.<mk-hdf, F[a]>)))), s> ~ fix((λmk-hdf,s0. (inl (λa.let bs' ⟵ G[F[a];s0]
in <mk-hdf K[s0;bs'], L[s0;bs']>))))
s)
Proof
Definitions occuring in Statement :
callbyvalueall: callbyvalueall,
uall: ∀[x:A]. B[x]
,
top: Top
,
so_apply: x[s1;s2]
,
so_apply: x[s]
,
apply: f a
,
fix: fix(F)
,
lambda: λx.A[x]
,
spread: spread def,
pair: <a, b>
,
decide: case b of inl(x) => s[x] | inr(y) => t[y]
,
inl: inl x
,
sqequal: s ~ t
Definitions unfolded in proof :
uall: ∀[x:A]. B[x]
,
member: t ∈ T
,
nat: ℕ
,
implies: P
⇒ Q
,
false: False
,
ge: i ≥ j
,
uimplies: b supposing a
,
satisfiable_int_formula: satisfiable_int_formula(fmla)
,
exists: ∃x:A. B[x]
,
not: ¬A
,
all: ∀x:A. B[x]
,
top: Top
,
and: P ∧ Q
,
prop: ℙ
,
decidable: Dec(P)
,
or: P ∨ Q
,
nat_plus: ℕ+
,
so_lambda: λ2x.t[x]
,
so_apply: x[s]
,
so_lambda: λ2x y.t[x; y]
,
so_apply: x[s1;s2]
Latex:
\mforall{}[F,G,H,K,L,s:Top].
(fix((\mlambda{}mk-hdf,s0. let X,bs = s0
in case X
of inl(y) =>
inl (\mlambda{}a.let X',fs = y a
in let bs' \mleftarrow{}{} G[fs;bs]
in <mk-hdf <X', K[bs;bs']>, L[bs;bs']>)
| inr(z) =>
H[z]))
<fix((\mlambda{}mk-hdf.(inl (\mlambda{}a.<mk-hdf, F[a]>)))), s> \msim{} fix((\mlambda{}mk-hdf,s0. (inl (\mlambda{}a.let bs' \mleftarrow{}{} G[F[a];s0]
in <mk-hdf K[s0;bs']
, L[s0;bs']
>))))
s)
Date html generated:
2016_05_16-AM-10_50_51
Last ObjectModification:
2016_01_17-AM-11_08_02
Theory : halting!dataflow
Home
Index