~ubuntu-branches/ubuntu/wily/coq-doc/wily

« back to all changes in this revision

Viewing changes to contrib/dp/zenon.v

  • Committer: Bazaar Package Importer
  • Author(s): Stéphane Glondu, Stéphane Glondu, Samuel Mimram
  • Date: 2010-01-07 22:50:39 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20100107225039-n3cq82589u0qt0s2
Tags: 8.2pl1-1
[ Stéphane Glondu ]
* New upstream release (Closes: #563669)
  - remove patches
* Packaging overhaul:
  - use git, advertise it in Vcs-* fields of debian/control
  - use debhelper 7 and dh with override
  - use source format 3.0 (quilt)
* debian/control:
  - set Maintainer to d-o-m, set Uploaders to Sam and myself
  - add Homepage field
  - bump Standards-Version to 3.8.3
* Register PDF documentation into doc-base
* Add debian/watch
* Update debian/copyright

[ Samuel Mimram ]
* Change coq-doc's description to mention that it provides documentation in
  pdf format, not postscript, closes: #543545.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
(*  Copyright 2004 INRIA  *)
 
2
(*  $Id: zenon.v 10739 2008-04-01 14:45:20Z herbelin $  *)
 
3
 
 
4
Require Export Classical.
 
5
 
 
6
Lemma zenon_nottrue :
 
7
  (~True -> False).
 
8
Proof. tauto. Qed.
 
9
 
 
10
Lemma zenon_noteq : forall (T : Type) (t : T),
 
11
  ((t <> t) -> False).
 
12
Proof. tauto. Qed.
 
13
 
 
14
Lemma zenon_and : forall P Q : Prop,
 
15
  (P -> Q -> False) -> (P /\ Q -> False).
 
16
Proof. tauto. Qed.
 
17
 
 
18
Lemma zenon_or : forall P Q : Prop,
 
19
  (P -> False) -> (Q -> False) -> (P \/ Q -> False).
 
20
Proof. tauto. Qed.
 
21
 
 
22
Lemma zenon_imply : forall P Q : Prop,
 
23
  (~P -> False) -> (Q -> False) -> ((P -> Q) -> False).
 
24
Proof. tauto. Qed.
 
25
 
 
26
Lemma zenon_equiv : forall P Q : Prop,
 
27
  (~P -> ~Q -> False) -> (P -> Q -> False) -> ((P <-> Q) -> False).
 
28
Proof. tauto. Qed.
 
29
 
 
30
Lemma zenon_notand : forall P Q : Prop,
 
31
  (~P -> False) -> (~Q -> False) -> (~(P /\ Q) -> False).
 
32
Proof. tauto. Qed.
 
33
 
 
34
Lemma zenon_notor : forall P Q : Prop,
 
35
  (~P -> ~Q -> False) -> (~(P \/ Q) -> False).
 
36
Proof. tauto. Qed.
 
37
 
 
38
Lemma zenon_notimply : forall P Q : Prop,
 
39
  (P -> ~Q -> False) -> (~(P -> Q) -> False).
 
40
Proof. tauto. Qed.
 
41
 
 
42
Lemma zenon_notequiv : forall P Q : Prop,
 
43
  (~P -> Q -> False) -> (P -> ~Q -> False) -> (~(P <-> Q) -> False).
 
44
Proof. tauto. Qed.
 
45
 
 
46
Lemma zenon_ex : forall (T : Type) (P : T -> Prop),
 
47
  (forall z : T, ((P z) -> False)) -> ((exists x : T, (P x)) -> False).
 
48
Proof. firstorder. Qed.
 
49
 
 
50
Lemma zenon_all : forall (T : Type) (P : T -> Prop) (t : T),
 
51
  ((P t) -> False) -> ((forall x : T, (P x)) -> False).
 
52
Proof. firstorder. Qed.
 
53
 
 
54
Lemma zenon_notex : forall (T : Type) (P : T -> Prop) (t : T),
 
55
  (~(P t) -> False) -> (~(exists x : T, (P x)) -> False).
 
56
Proof. firstorder. Qed.
 
57
 
 
58
Lemma zenon_notall : forall (T : Type) (P : T -> Prop),
 
59
  (forall z : T, (~(P z) -> False)) -> (~(forall x : T, (P x)) -> False).
 
60
Proof. intros T P Ha Hb. apply Hb. intro. apply NNPP. exact (Ha x). Qed.
 
61
 
 
62
Lemma zenon_equal_base : forall (T : Type) (f : T), f = f.
 
63
Proof. auto. Qed.
 
64
 
 
65
Lemma zenon_equal_step :
 
66
  forall (S T : Type) (fa fb : S -> T) (a b : S),
 
67
  (fa = fb) -> (a <> b -> False) -> ((fa a) = (fb b)).
 
68
Proof. intros. rewrite (NNPP (a = b)). congruence. auto. Qed.
 
69
 
 
70
Lemma zenon_pnotp : forall P Q : Prop,
 
71
  (P = Q) -> (P -> ~Q -> False).
 
72
Proof. intros P Q Ha. rewrite Ha. auto. Qed.
 
73
 
 
74
Lemma zenon_notequal : forall (T : Type) (a b : T),
 
75
  (a = b) -> (a <> b -> False).
 
76
Proof. auto. Qed.
 
77
 
 
78
Ltac zenon_intro id :=
 
79
  intro id || let nid := fresh in (intro nid; clear nid)
 
80
.
 
81
 
 
82
Definition zenon_and_s := fun P Q a b => zenon_and P Q b a.
 
83
Definition zenon_or_s := fun P Q a b c => zenon_or P Q b c a.
 
84
Definition zenon_imply_s := fun P Q a b c => zenon_imply P Q b c a.
 
85
Definition zenon_equiv_s := fun P Q a b c => zenon_equiv P Q b c a.
 
86
Definition zenon_notand_s := fun P Q a b c => zenon_notand P Q b c a.
 
87
Definition zenon_notor_s := fun P Q a b => zenon_notor P Q b a.
 
88
Definition zenon_notimply_s := fun P Q a b => zenon_notimply P Q b a.
 
89
Definition zenon_notequiv_s := fun P Q a b c => zenon_notequiv P Q b c a.
 
90
Definition zenon_ex_s := fun T P a b => zenon_ex T P b a.
 
91
Definition zenon_notall_s := fun T P a b => zenon_notall T P b a.
 
92
 
 
93
Definition zenon_pnotp_s := fun P Q a b c => zenon_pnotp P Q c a b.
 
94
Definition zenon_notequal_s := fun T a b x y => zenon_notequal T a b y x.