Skip to content

Commit

Permalink
Merge pull request #7 from anlun/opam
Browse files Browse the repository at this point in the history
OPAM support
  • Loading branch information
vafeiadis authored Sep 11, 2018
2 parents 0773f2a + e44b33d commit ce18685
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 6 deletions.
2 changes: 1 addition & 1 deletion HahnRewrite.v
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,7 @@ Tactic Notation "unfolder_prepare" "in" hyp(H) :=
repeat hahn_rewrite <- id_union in H.

Tactic Notation "unfolder" :=
unfolder_prepare; autounfold with unfolderDb.
unfolder_prepare; repeat autounfold with unfolderDb.

Tactic Notation "unfolder" "in" hyp(H) :=
unfolder_prepare in H; autounfold with unfolderDb in H.
Expand Down
9 changes: 5 additions & 4 deletions HahnSets.v
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ Hint Unfold set_collect set_bunion set_disjoint : unfolderDb.

Section SetProperties.
Local Ltac u :=
autounfold with unfolderDb in *; ins; try solve [tauto | firstorder | split; ins; tauto].
repeat autounfold with unfolderDb in *;
ins; try solve [tauto | firstorder | split; ins; tauto].

Variables A B C : Type.
Implicit Type a : A.
Expand Down Expand Up @@ -523,15 +524,15 @@ Lemma set_finite_coinfinite_nat (s: nat -> Prop) :
Proof.
assert (LT: forall l x, In x l -> x <= fold_right Init.Nat.add 0 l).
induction l; ins; desf; try apply IHl in H; omega.
autounfold with unfolderDb; red; ins; desf.
repeat autounfold with unfolderDb; red; ins; desf.
tertium_non_datur (s (S (fold_right plus 0 findom + fold_right plus 0 findom0))) as [X|X];
[apply H in X | apply H0 in X]; apply LT in X; omega.
Qed.

Lemma set_coinfinite_fresh (s: nat -> Prop) (COINF: set_coinfinite s) :
exists b, ~ s b /\ set_coinfinite (s ∪₁ eq b).
Proof.
autounfold with unfolderDb in *.
repeat autounfold with unfolderDb in *.
tertium_non_datur (forall b, s b).
by destruct COINF; exists nil; ins; desf.
exists n; splits; red; ins; desf.
Expand Down Expand Up @@ -587,7 +588,7 @@ Proof. autounfold with unfolderDb; ins; desf; eauto. Qed.

Add Parametric Morphism A B : (@set_collect A B) with signature
eq ==> set_equiv ==> set_equiv as set_collect_more.
Proof. autounfold with unfolderDb; splits; ins; desf; eauto. Qed.
Proof. repeat autounfold with unfolderDb; splits; ins; desf; eauto. Qed.

Add Parametric Morphism A : (@set_disjoint A) with signature
set_subset --> set_subset --> Basics.impl as set_disjoint_mori.
Expand Down
2 changes: 1 addition & 1 deletion _CoqProject
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
-R . Top
-R . hahn
Hahn.v
HahnBase.v HahnFun.v HahnSets.v HahnList.v
HahnRelationsBasic.v HahnEquational.v HahnRewrite.v
Expand Down
1 change: 1 addition & 0 deletions descr
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Hahn is a Coq library that contains a useful collection of lemmas and tactics about lists and binary relations.
15 changes: 15 additions & 0 deletions opam
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
opam-version: "1.2"
name: "coq-hahn"
version: "1.1"
maintainer: "Anton Podkopaev <[email protected]>"
authors: "Viktor Vafeiadis <[email protected]>"
homepage: "https://github.com/vafeiadis/hahn"
bug-reports: "https://github.com/vafeiadis/hahn/issues"
license: "MIT"
dev-repo: "https://github.com/vafeiadis/hahn.git"
build: [make "-j%{jobs}%"]
install: [make "-f" "Makefile.coq" "install"]
remove: ["rm" "-rf" "%{lib}%/coq/user-contrib/hahn"]
depends: [
"coq" { (>= "8.8.1" & < "8.9~") | (= "dev") }
]

0 comments on commit ce18685

Please sign in to comment.