Как я могу доказать, что эти два утверждения равны:
Вал.шру (Вал.а (Винт б)) (Винт в) = Винт ?3434/\?3434 ‹>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 bar
? Основная проблема здесь в том, что вам нужно показатьe
с равенством, чтобы доказать левую часть вашей цели. - person Vinz   schedule 14.09.2016