aboutsummaryrefslogtreecommitdiffstats
path: root/src/hls/HashTree.v
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2022-10-06 20:10:44 +0100
committerYann Herklotz <git@yannherklotz.com>2022-10-06 20:10:44 +0100
commit48a1381cd8466888c3034e7359b6775fafe5ed15 (patch)
treee2950f9ff6a617c054e422b261ff5ebc954b50b6 /src/hls/HashTree.v
parenta1657466c7d8af0ed405723bf3aa83bafedf9816 (diff)
downloadvericert-48a1381cd8466888c3034e7359b6775fafe5ed15.tar.gz
vericert-48a1381cd8466888c3034e7359b6775fafe5ed15.zip
[sched] Remove some unprovable lemmas
Diffstat (limited to 'src/hls/HashTree.v')
-rw-r--r--src/hls/HashTree.v20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/hls/HashTree.v b/src/hls/HashTree.v
index 80a7825..86bc598 100644
--- a/src/hls/HashTree.v
+++ b/src/hls/HashTree.v
@@ -459,3 +459,23 @@ Module HashTree(H: Hashable).
Module HashMonad := Statemonad(HashState).
End HashTree.
+
+Definition gt_1 {A} h :=
+ forall x (y: A), h ! x = Some y -> 1 < x.
+
+Module HashTreeProperties (Import H: Hashable).
+
+ Module Import HT := HashTree(H).
+
+ Lemma hash_value_gt :
+ forall max v h,
+ gt_1 h ->
+ gt_1 (snd (hash_value max v h)).
+ Proof.
+ unfold gt_1, hash_value; intros.
+ destruct_match; eauto.
+ destruct (peq (Pos.max max (max_key h) + 1) x); [subst;lia|].
+ cbn [snd] in *. rewrite PTree.gso in H0; eauto.
+ Qed.
+
+End HashTreeProperties.