Nuprl Lemma : feedback-df-prog2-meaning
[A:
']. 
[dfp1,dfp2:DataflowProgram(A)]. 
[B:{B:Type| valueall-type(B)} ]. 
[G:bag(df-program-type(dfp1))
                                                                               
 bag(df-program-type(dfp2))
                                                                               
 bag(B)
                                                                               
 bag(B)]. 
[P:bag(B) 
 
].
[buf:bag(B)].
  better-feedback-dataflow(2;
k.[df-program-meaning(dfp1); df-program-meaning(dfp2)][k];
g,x.G[g 0;g 1;x];buf;s.P[s])
  = df-program-meaning(feedback-df-prog2(B;G;P;buf;dfp1;dfp2)) 
  supposing 
buf:bag(B). ((G {} {} buf) = {})
Proof not projected
Definitions occuring in Statement : 
feedback-df-prog2: feedback-df-prog2(B;G;P;buf;dfp1;dfp2), 
df-program-meaning: df-program-meaning(dfp), 
df-program-type: df-program-type(dfp), 
dataflow-program: DataflowProgram(A), 
better-feedback-dataflow: better-feedback-dataflow(n;ds;F;s;x.P[x]), 
dataflow: dataflow(A;B), 
select: l[i], 
bool:
, 
uimplies: b supposing a, 
uall:
[x:A]. B[x], 
so_apply: x[s1;s2;s3], 
so_apply: x[s], 
all:
x:A. B[x], 
set: {x:A| B[x]} , 
apply: f a, 
lambda:
x.A[x], 
function: x:A 
 B[x], 
cons: [car / cdr], 
nil: [], 
natural_number: $n, 
universe: Type, 
equal: s = t, 
empty-bag: {}, 
bag: bag(T), 
valueall-type: valueall-type(T)
Definitions : 
uall:
[x:A]. B[x], 
df-program-type: df-program-type(dfp), 
uimplies: b supposing a, 
df-program-meaning: df-program-meaning(dfp), 
so_apply: x[s1;s2;s3], 
so_apply: x[s], 
feedback-df-prog2: feedback-df-prog2(B;G;P;buf;dfp1;dfp2), 
member: t 
 T, 
pi1: fst(t), 
spreadn: spread4, 
squash:
T, 
true: True, 
so_lambda: 
x.t[x], 
unit: Unit, 
all:
x:A. B[x], 
spreadn: spread3, 
so_lambda: 
x y.t[x; y], 
prop:
, 
implies: P 
 Q, 
and: P 
 Q, 
top: Top, 
subtype: S 
 T, 
bag: bag(T), 
assert:
b, 
isl: isl(x), 
pi2: snd(t), 
let: let, 
ifthenelse: if b then t else f fi , 
band: p 
 q, 
bnot: 
b, 
outl: outl(x), 
btrue: tt, 
bfalse: ff, 
outr: outr(x), 
dataflow-program: DataflowProgram(A), 
so_apply: x[s1;s2], 
sq_stable: SqStable(P), 
not:
A, 
false: False, 
guard: {T}
Lemmas : 
feedback-2-equiv, 
bag_wf, 
unit_wf2, 
empty-bag_wf, 
equal_wf, 
squash_wf, 
true_wf, 
dataflow_wf, 
all_wf, 
bool_wf, 
valueall-type_wf, 
df-program-type_wf, 
dataflow-program_wf, 
rec-dataflow_wf, 
evalall-equal, 
let_wf, 
ifthenelse_wf, 
band_wf, 
bnot_wf, 
isl_wf, 
it_wf, 
product-valueall-type, 
union-valueall-type, 
sq_stable__valueall-type, 
equal-valueall-type, 
bag-valueall-type, 
rec-dataflow-equal, 
and_wf, 
not_wf, 
assert_wf, 
pi1_wf_top, 
pi2_wf, 
outl_wf, 
permutation_wf, 
bag_qinc, 
outr_wf, 
false_wf
\mforall{}[A:\mBbbU{}'].  \mforall{}[dfp1,dfp2:DataflowProgram(A)].  \mforall{}[B:\{B:Type|  valueall-type(B)\}  ].
\mforall{}[G:bag(df-program-type(dfp1))  {}\mrightarrow{}  bag(df-program-type(dfp2))  {}\mrightarrow{}  bag(B)  {}\mrightarrow{}  bag(B)].  \mforall{}[P:bag(B)  {}\mrightarrow{}  \mBbbB{}].
\mforall{}[buf:bag(B)].
    better-feedback-dataflow(2;\mlambda{}k.[df-program-meaning(dfp1);  df-program-meaning(dfp2)][k];
    \mlambda{}g,x.G[g  0;g  1;x];buf;s.P[s])
    =  df-program-meaning(feedback-df-prog2(B;G;P;buf;dfp1;dfp2)) 
    supposing  \mforall{}buf:bag(B).  ((G  \{\}  \{\}  buf)  =  \{\})
Date html generated:
2012_01_23-PM-12_00_22
Last ObjectModification:
2011_12_28-PM-02_48_16
Home
Index