我有定义my_def1
:
Require Import compcert.common.Memory.
Require Import compcert.common.Values.
Require Import compcert.lib.Integers.
Definition my_def1 (vl: list memval) : val :=
match proj_bytes vl with
| Some bl => Vint(Int.sign_ext 16 (Int.repr (decode_int bl)))
| None => Vundef
end.
我想写另一个my_def2
类似于下面的定义并添加一个总是返回my_def1
的公理,所以:proj_bytes vl
Some bl
Definition my_def2 (vl: list memval) : val :=
Vint(Int.sign_ext 16 (Int.repr (decode_int ((*?*)) )))
end.
我的问题是我怎样才能完成my_def2
和写相axiom
关的proj_bytes vl
?
或者问题是如何从类型list memval
转换为 list byte
[decode_int
接受list byte
]?
这是 的定义memval
:
Inductive memval : Type :=
Undef : memval
| Byte : byte -> memval
| Fragment : val -> quantity -> nat -> memval