我怎么能证明这两个语句是相等的:解决平等/不平等的目标,COQ代码
Val.shru(Val.and一(Vint的B))(Vint的C)= Vint的? 3434/\?3434 <> d
Val.shru(Val.and一个(Vint的b))的(Vint的c)中<> d
的概念是相当简单的,但停留在寻找正确的战术来解决它。这实际上是引理我要证明:
Require Import compcert.common.Values.
Require Import compcert.lib.Coqlib.
Require Import compcert.lib.Integers.
Lemma val_remains_int:
forall (a : val) (b c d: int),
(Val.shru (Val.and a (Vint b)) (Vint c)) <> (Vint d) ->
(exists (e : int), (Val.shru (Val.and a (Vint b)) (Vint c)) = (Vint e) /\ e <> d).
Proof.
intros.
eexists.
...
Admitted.
感谢,
你有一个引理指出形状的任何条款'Val.shru foo'可以改写成一个'Vint酒吧'?这里的主要问题是,你需要展示'e'来证明你的目标的左手边。 – Vinz