Section VAL_INJ_OPS.
Variable f: meminj.
Remark add_inject:
forall v1 v1' v2 v2',
inject f v1 v1' ->
inject f v2 v2' ->
inject f (Val.add v1 v2) (Val.add v1' v2').
Remark sub_inject:
forall v1 v1' v2 v2',
inject f v1 v1' ->
inject f v2 v2' ->
inject f (Val.sub v1 v2) (Val.sub v1' v2').
Remark addl_inject:
forall v1 v1' v2 v2',
inject f v1 v1' ->
inject f v2 v2' ->
inject f (Val.addl v1 v2) (Val.addl v1' v2').
Remark subl_inject:
forall v1 v1' v2 v2',
inject f v1 v1' ->
inject f v2 v2' ->
inject f (Val.subl v1 v2) (Val.subl v1' v2').

Lemma cmp_bool_inject:
forall c v1 v2 v1' v2' b,
inject f v1 v1' ->
inject f v2 v2' ->
Val.cmp_bool c v1 v2 = Some b ->
Val.cmp_bool c v1' v2' = Some b.