{ 
[A:Type]. 
[dfp:DataflowProgram(A)]. 
[s:df-program-statetype(dfp)]. 
[m:A].
    (df-program-meaning(df-program-in-state(dfp;s))(m) 
    ~ let s',x = df-program-in-state-ap(dfp;s;m) 
      in <case s'
          of inl(s2) =>
           df-program-meaning(df-program-in-state(dfp;s2))
           | inr(z) =>
           df-program-halt-meaning(dfp)
         , x
         >) }
{ Proof }
Definitions occuring in Statement : 
df-program-in-state-ap: df-program-in-state-ap(dfp;s;m), 
df-program-in-state: df-program-in-state(dfp;s), 
df-program-halt-meaning: df-program-halt-meaning(dfp), 
df-program-meaning: df-program-meaning(dfp), 
df-program-statetype: df-program-statetype(dfp), 
dataflow-program: DataflowProgram(A), 
dataflow-ap: df(a), 
uall:
[x:A]. B[x], 
spread: spread def, 
pair: <a, b>, 
decide: case b of inl(x) => s[x] | inr(y) => t[y], 
universe: Type, 
sqequal: s ~ t
Definitions : 
implies: P 
 Q, 
unit: Unit, 
union: left + right, 
apply: f a, 
df-program-halt-meaning: df-program-halt-meaning(dfp), 
rec_dataflow_ap: rec_dataflow_ap_compseq_tag_def, 
pi2: snd(t), 
df-program-in-state-ap: df-program-in-state-ap(dfp;s;m), 
set: {x:A| B[x]} , 
equal: s = t, 
spread: spread def, 
pi1: fst(t), 
strong-subtype: strong-subtype(A;B), 
le: A 
 B, 
ge: i 
 j , 
not:
A, 
less_than: a < b, 
and: P 
 Q, 
uiff: uiff(P;Q), 
quotient: x,y:A//B[x; y], 
exists:
x:A. B[x], 
nat:
, 
top: Top, 
lambda:
x.A[x], 
primrec: primrec(n;b;c), 
corec: corec(T.F[T]), 
so_lambda: 
x.t[x], 
sq_type: SQType(T), 
uimplies: b supposing a, 
dataflow: dataflow(A;B), 
product: x:A 
 B[x], 
df-program-type: df-program-type(dfp), 
bag: bag(T), 
df-program-in-state: df-program-in-state(dfp;s), 
df-program-meaning: df-program-meaning(dfp), 
dataflow-ap: df(a), 
subtype_rel: A 
r B, 
function: x:A 
 B[x], 
all:
x:A. B[x], 
universe: Type, 
dataflow-program: DataflowProgram(A), 
sqequal: s ~ t, 
df-program-statetype: df-program-statetype(dfp), 
uall:
[x:A]. B[x], 
isect:
x:A. B[x], 
member: t 
 T, 
int:
Lemmas : 
df-program-meaning_wf, 
dataflow-ap_wf, 
subtype_base_sq, 
product_subtype_base, 
dataflow_wf, 
df-program-in-state_wf, 
df-program-type_wf, 
top_wf, 
primrec_wf, 
nat_wf, 
isect_subtype_base, 
df-program-statetype_wf, 
dataflow-program_wf, 
unit_wf, 
bag_wf
\mforall{}[A:Type].  \mforall{}[dfp:DataflowProgram(A)].  \mforall{}[s:df-program-statetype(dfp)].  \mforall{}[m:A].
    (df-program-meaning(df-program-in-state(dfp;s))(m)  \msim{}  let  s',x  =  df-program-in-state-ap(dfp;s;m) 
                                                                                                              in  <case  s'
                                                                                                                      of  inl(s2)  =>
                                                                                                                        df-program-meaning(
                                                                                                                        df-program-in-state(dfp;s2))
                                                                                                                        |  inr(z)  =>
                                                                                                                        df-program-halt-meaning(dfp)
                                                                                                                    ,  x
                                                                                                                    >)
Date html generated:
2011_08_16-AM-09_36_06
Last ObjectModification:
2011_06_02-PM-03_29_40
Home
Index