Skip to content
Snippets Groups Projects
Commit bcaf2016 authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

Conversion from coPset to gset positive.

parent 4420aa4d
No related branches found
No related tags found
No related merge requests found
...@@ -315,9 +315,22 @@ Proof. ...@@ -315,9 +315,22 @@ Proof.
apply coPset_finite_spec; destruct X as [[t ?]]; apply of_Pset_raw_finite. apply coPset_finite_spec; destruct X as [[t ?]]; apply of_Pset_raw_finite.
Qed. Qed.
(** * Conversion from gsets of positives *) (** * Conversion to and from gsets of positives *)
Lemma to_gset_wf (m : Pmap ()) : gmap_wf (K:=positive) m.
Proof. done. Qed.
Definition to_gset (X : coPset) : gset positive :=
let 'Mapset m := to_Pset X in
Mapset (GMap m (bool_decide_pack _ (to_gset_wf m))).
Definition of_gset (X : gset positive) : coPset := Definition of_gset (X : gset positive) : coPset :=
let 'Mapset (GMap (PMap t Ht) _) := X in of_Pset_raw t of_Pset_wf _ Ht. let 'Mapset (GMap (PMap t Ht) _) := X in of_Pset_raw t of_Pset_wf _ Ht.
Lemma elem_of_to_gset X i : set_finite X i to_gset X i X.
Proof.
intros ?. rewrite <-elem_of_to_Pset by done.
unfold to_gset. by destruct (to_Pset X).
Qed.
Lemma elem_of_of_gset X i : i of_gset X i X. Lemma elem_of_of_gset X i : i of_gset X i X.
Proof. destruct X as [[[t ?]]]; apply elem_of_of_Pset_raw. Qed. Proof. destruct X as [[[t ?]]]; apply elem_of_of_Pset_raw. Qed.
Lemma of_gset_finite X : set_finite (of_gset X). Lemma of_gset_finite X : set_finite (of_gset X).
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment