aboutsummaryrefslogtreecommitdiffstats
path: root/src/verilog/AssocMap.v
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2020-05-21 23:10:45 +0100
committerYann Herklotz <git@yannherklotz.com>2020-05-21 23:10:45 +0100
commit39a4348657c2f3efb3feafe9cf65b0f2a1a263c2 (patch)
tree8e6b081bf3394a7a96b7bde0ef2b1eccbb754991 /src/verilog/AssocMap.v
parent60ab47c6ff0db1b690afe6fd2c2b63cf5843ced1 (diff)
downloadvericert-39a4348657c2f3efb3feafe9cf65b0f2a1a263c2.tar.gz
vericert-39a4348657c2f3efb3feafe9cf65b0f2a1a263c2.zip
Finish the proof with most assumptions
Diffstat (limited to 'src/verilog/AssocMap.v')
-rw-r--r--src/verilog/AssocMap.v17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/verilog/AssocMap.v b/src/verilog/AssocMap.v
index bd61c8e..9caa2d1 100644
--- a/src/verilog/AssocMap.v
+++ b/src/verilog/AssocMap.v
@@ -36,12 +36,17 @@ Module AssocMapExt.
| Some v => v
end.
- Definition merge : t elt -> t elt -> t elt := fold (@add elt).
-
- Lemma merge_add_assoc :
- forall am am' r v x,
- find x (merge (add r v am) am') = find x (add r v (merge am am')).
- Admitted.
+ Definition merge (m1 m2 : t elt) : t elt :=
+ fold_right (fun el m => match el with (k, v) => add k v m end) m2 (elements m1).
+
+ Lemma merge_add_assoc2 :
+ forall am am' r v,
+ merge (add r v am) am' = add r v (merge am am').
+ Proof.
+ intros.
+ unfold merge.
+ Search fold_right.
+ apply SetoidList.fold_right_add2.
Lemma merge_base :
forall am,