aboutsummaryrefslogtreecommitdiffstats
path: root/backend/SetsFacts.v
diff options
context:
space:
mode:
Diffstat (limited to 'backend/SetsFacts.v')
-rwxr-xr-xbackend/SetsFacts.v105
1 files changed, 0 insertions, 105 deletions
diff --git a/backend/SetsFacts.v b/backend/SetsFacts.v
deleted file mode 100755
index 60145cf0..00000000
--- a/backend/SetsFacts.v
+++ /dev/null
@@ -1,105 +0,0 @@
-Require Import FSets.
-Set Implicit Arguments.
-
-(* Useful properties over finite sets and ordered types *)
-
-Module MyOTFacts (M : OrderedType).
-
-Section compat.
-
-Lemma compat_not_compat : forall f : M.t -> bool,
-compat_bool M.eq f ->
-compat_bool M.eq (fun x => negb (f x)).
-
-Proof.
-unfold compat_bool;intros f H.
-intros; unfold negb.
-rewrite (H x y H0);reflexivity.
-Qed.
-
-End compat.
-
-End MyOTFacts.
-
-Module MyFacts (M : S).
-
-Import M.
-Module Import Props := Properties M.
-Module Import Facts := OrderedTypeFacts E.
-Module Import OTFacts := MyOTFacts E.
-
-Lemma set_induction2 : forall s,
-Empty s \/ exists x, exists s', Add x s' s.
-
-Proof.
-intros. case_eq (choose s);intros.
-right. exists e. exists (remove e s).
-constructor;intro H0.
-destruct (eq_dec e y).
-left;assumption.
-right;apply (remove_2 n H0).
-destruct H0.
-rewrite <-H0;apply (choose_1 H).
-eapply remove_3;eassumption.
-left;apply (choose_2 H).
-Qed.
-
-Lemma equal_equivlist : forall s s',
-Equal s s' -> equivlistA E.eq (elements s) (elements s').
-
-Proof.
-unfold equivlistA.
-generalize elements_1;generalize elements_2;intros H0 H1 s s' H x.
-split;intro H2.
-apply H1;rewrite <-H;apply H0;assumption.
-apply H1;rewrite H;apply H0;assumption.
-Qed.
-
-Section Fold_Facts.
-
-Variable A : Type.
-
-Lemma fold_left_compat_set : forall (f : t -> A -> t) l e e',
-Equal e e' ->
-(forall e1 e2 a, Equal e1 e2 -> Equal (f e1 a) (f e2 a)) ->
-Equal (fold_left f l e) (fold_left f l e').
-
-Proof.
-intros f l.
-induction l;simpl.
-auto.
-intros e e' H H0 H1.
-apply (IHl (f e a) (f e' a)).
-apply H0;assumption.
-assumption.
-Qed.
-
-Lemma fold_left_assoc : forall l f x h,
-(forall (y z : A) s, Equal (f (f s y) z) (f (f s z) y)) ->
-(forall e1 e2 a, Equal e1 e2 -> Equal (f e1 a) (f e2 a)) ->
-Equal (fold_left f (h :: l) x) (f (fold_left f l x) h).
-
-Proof.
-induction l;simpl;intros f x h H H0.
-intuition.
-rewrite <-IHl;simpl;try assumption.
-apply fold_left_compat_set;[apply H|];auto.
-Qed.
-
-Lemma NoDupA_elements : forall s,
-NoDupA E.eq (elements s).
-
-Proof.
-intro s.
-apply SortA_NoDupA with (ltA := E.lt).
-apply E.eq_refl.
-apply E.eq_sym.
-apply E.lt_trans.
-apply E.lt_not_eq.
-apply Facts.lt_eq.
-apply Facts.eq_lt.
-apply elements_3.
-Qed.
-
-End Fold_Facts.
-End MyFacts. \ No newline at end of file