File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -46,6 +46,36 @@ Section basic.
4646 unfold_s_eq as k_.
4747 repeat storage_key_case_analysis k_...
4848 Qed .
49+
50+ Lemma delete_idempotent k (s : T) :
51+ delete k (delete k s) =s= delete k s.
52+ Proof .
53+ constructor. intros a.
54+ destruct (@key_eq_dec _ _ T _ a k) as [Hak|Hak].
55+ - rewrite Hak.
56+ now repeat rewrite delete_keep.
57+ - now rewrite <-delete_distinct with (k2 := k) by assumption.
58+ Qed .
59+
60+ Lemma delete_commute a b (s : T) :
61+ delete b (delete a s) =s= delete a (delete b s).
62+ Proof .
63+ destruct (@key_eq_dec _ _ T _ a b) as [Hab|Hab].
64+ - rewrite Hab.
65+ now rewrite delete_idempotent.
66+ - constructor. intros k.
67+ destruct (@key_eq_dec _ _ T _ k b) as [Hbk|Hbk].
68+ + rewrite Hbk in *.
69+ rewrite <-delete_distinct with (k2 := a) by easy.
70+ now repeat rewrite delete_keep.
71+ + destruct (@key_eq_dec _ _ T _ k a) as [Hak|Hak].
72+ * rewrite Hak.
73+ rewrite <-delete_distinct with (k2 := b) by easy.
74+ now repeat rewrite delete_keep.
75+ * rewrite <-delete_distinct with (k2 := b) by easy.
76+ repeat rewrite <-delete_distinct with (k2 := a) by easy.
77+ now rewrite <-delete_distinct with (k2 := b) by easy.
78+ Qed .
4979End basic.
5080
5181Section s_eq.
You can’t perform that action at this time.
0 commit comments