aboutsummaryrefslogtreecommitdiffstats
path: root/riscV/SelectOpproof.v
diff options
context:
space:
mode:
Diffstat (limited to 'riscV/SelectOpproof.v')
-rw-r--r--riscV/SelectOpproof.v12
1 files changed, 11 insertions, 1 deletions
diff --git a/riscV/SelectOpproof.v b/riscV/SelectOpproof.v
index 1d713010..9dfe9b6e 100644
--- a/riscV/SelectOpproof.v
+++ b/riscV/SelectOpproof.v
@@ -886,7 +886,17 @@ Theorem eval_select:
eval_expr ge sp e m le a v
/\ Val.lessdef (Val.select (Some b) v1 v2 ty) v.
Proof.
- unfold select; intros; discriminate.
+ unfold select; intros.
+ destruct ty; cbn in *; try discriminate.
+ inv H.
+ TrivialExists.
+ - cbn. constructor.
+ { econstructor. eassumption. cbn. rewrite H3. cbn. reflexivity. }
+ constructor. eassumption. constructor. eassumption. constructor.
+ - cbn. f_equal. rewrite ExtValues.normalize_select01.
+ destruct b.
+ + rewrite ExtValues.select01_long_true. reflexivity.
+ + rewrite ExtValues.select01_long_false. reflexivity.
Qed.
Theorem eval_addressing: