diff options
author | Yann Herklotz <git@yannherklotz.com> | 2020-05-21 23:10:45 +0100 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2020-05-21 23:10:45 +0100 |
commit | 39a4348657c2f3efb3feafe9cf65b0f2a1a263c2 (patch) | |
tree | 8e6b081bf3394a7a96b7bde0ef2b1eccbb754991 /src/verilog | |
parent | 60ab47c6ff0db1b690afe6fd2c2b63cf5843ced1 (diff) | |
download | vericert-39a4348657c2f3efb3feafe9cf65b0f2a1a263c2.tar.gz vericert-39a4348657c2f3efb3feafe9cf65b0f2a1a263c2.zip |
Finish the proof with most assumptions
Diffstat (limited to 'src/verilog')
-rw-r--r-- | src/verilog/AssocMap.v | 17 |
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, |