Nuprl Lemma : hdf-parallel-transformation2-0
∀[L1,L2,G1,G2:Top]. ∀[m1,m2:ℕ].
(fix((λmk-hdf.(inl (λa.cbva_seq(L1[a]; λg.<mk-hdf, G1[a;g]>; m1)))))
|| fix((λmk-hdf.(inl (λa.cbva_seq(L2[a]; λg.<mk-hdf, G2[a;g]>; m2)))))
~ fix((λmk-hdf.(inl (λa.cbva_seq(λn.if n <z m1 then L1[a] n
if n <z m1 + m2 then mk_lambdas(L2[a] (n - m1);m1)
else mk_lambdas_fun(λg1.mk_lambdas_fun(λg2.(G1[a;g1] + G2[a;g2]);m2);m1)
fi ; λg.<mk-hdf, select_fun_last(g;m1 + m2)>; (m1 + m2) + 1))))))
Proof
Definitions occuring in Statement :
hdf-parallel: X || Y
,
nat: ℕ
,
ifthenelse: if b then t else f fi
,
lt_int: i <z j
,
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]
,
pair: <a, b>
,
inl: inl x
,
subtract: n - m
,
add: n + m
,
natural_number: $n
,
sqequal: s ~ t
,
bag-append: as + bs
,
select_fun_last: select_fun_last(g;m)
,
mk_lambdas: mk_lambdas(F;m)
,
mk_lambdas_fun: mk_lambdas_fun(F;m)
,
cbva_seq: cbva_seq(L; F; m)
Lemmas :
lifting-strict-spread,
has-value_wf_base,
base_wf,
is-exception_wf,
lifting-strict-less,
top_wf,
lifting-strict-decide,
list_ind_nil_lemma,
strict4-spread,
lifting-strict-callbyvalueall,
nat_properties,
less_than_transitivity1,
less_than_irreflexivity,
ge_wf,
less_than_wf,
nat_wf,
strictness-apply,
bottom-sqle,
decidable__le,
subtract_wf,
false_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,
le_weakening2,
le_wf,
eq_int_wf,
bool_wf,
eqtt_to_assert,
assert_of_eq_int,
le_weakening,
eqff_to_assert,
equal_wf,
bool_cases_sqequal,
subtype_base_sq,
bool_subtype_base,
assert-bnot,
neg_assert_of_eq_int,
cbva_seq-spread,
cbva_seq_extend,
cbva_seq-combine,
not-le-2,
not-equal-2,
sq_stable__le,
lifting-strict-int_eq,
general_add_assoc,
cbva_seq-list-case2,
select_fun_last_partial_ap_gen1,
set_subtype_base,
int_subtype_base
\mforall{}[L1,L2,G1,G2:Top]. \mforall{}[m1,m2:\mBbbN{}].
(fix((\mlambda{}mk-hdf.(inl (\mlambda{}a.cbva\_seq(L1[a]; \mlambda{}g.<mk-hdf, G1[a;g]> m1)))))
|| fix((\mlambda{}mk-hdf.(inl (\mlambda{}a.cbva\_seq(L2[a]; \mlambda{}g.<mk-hdf, G2[a;g]> m2)))))
\msim{} fix((\mlambda{}mk-hdf.(inl (\mlambda{}a.cbva\_seq(\mlambda{}n.if n <z m1 then L1[a] n
if n <z m1 + m2 then mk\_lambdas(L2[a] (n - m1);m1)
else mk\_lambdas\_fun(\mlambda{}g1.mk\_lambdas\_fun(\mlambda{}g2.(G1[a;g1]
+ G2[a;g2]);m2);m1)
fi ; \mlambda{}g.<mk-hdf, select\_fun\_last(g;m1 + m2)> (m1 + m2)
+ 1))))))
Date html generated:
2015_07_17-AM-08_09_24
Last ObjectModification:
2015_06_19-PM-01_21_14
Home
Index