aboutsummaryrefslogtreecommitdiffstats
path: root/src/hls/AssocMap.v
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2021-03-12 18:08:07 +0000
committerYann Herklotz <git@yannherklotz.com>2021-03-12 18:08:07 +0000
commita037beca47152901155bf5c10f05dab22f856125 (patch)
tree81f00a95729bf644709dab8a82f4222dd4ad1ab5 /src/hls/AssocMap.v
parent1df82be06ecda0e75b48159f525020dd08e7b00b (diff)
downloadvericert-a037beca47152901155bf5c10f05dab22f856125.tar.gz
vericert-a037beca47152901155bf5c10f05dab22f856125.zip
Prove top-level theorem with admitted theorems
Diffstat (limited to 'src/hls/AssocMap.v')
-rw-r--r--src/hls/AssocMap.v11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/hls/AssocMap.v b/src/hls/AssocMap.v
index 1d1b77f..98eda9c 100644
--- a/src/hls/AssocMap.v
+++ b/src/hls/AssocMap.v
@@ -97,6 +97,17 @@ Module AssocMapExt.
Qed.
Hint Resolve merge_correct_2 : assocmap.
+ Lemma merge_correct_3 :
+ forall am bm k,
+ get k am = None ->
+ get k bm = None ->
+ get k (merge am bm) = None.
+ Proof.
+ induction am; intros; destruct k; destruct bm; try (destruct o); simpl;
+ try rewrite gempty in H; try discriminate; try assumption; auto.
+ Qed.
+ Hint Resolve merge_correct_3 : assocmap.
+
Definition merge_fold (am bm : t A) : t A :=
fold_right (fun p a => set (fst p) (snd p) a) bm (elements am).