aboutsummaryrefslogtreecommitdiffhomepage
path: root/coq/ex/KnasterTarski.v
diff options
context:
space:
mode:
authorGravatar David Aspinall <da@inf.ed.ac.uk>2010-08-13 10:26:17 +0000
committerGravatar David Aspinall <da@inf.ed.ac.uk>2010-08-13 10:26:17 +0000
commita6ea9f91f82c216b9ce756b7323c456eeb80658c (patch)
treec5a3fa6bde88ac23ad42d65aa4c5aa8112e8c319 /coq/ex/KnasterTarski.v
parent31393e51a20c76084b587e2348d3ba5a8d7c60b2 (diff)
Renamed file
Diffstat (limited to 'coq/ex/KnasterTarski.v')
-rw-r--r--coq/ex/KnasterTarski.v34
1 files changed, 34 insertions, 0 deletions
diff --git a/coq/ex/KnasterTarski.v b/coq/ex/KnasterTarski.v
new file mode 100644
index 00000000..5ca030c5
--- /dev/null
+++ b/coq/ex/KnasterTarski.v
@@ -0,0 +1,34 @@
+(* A sample tarski theorem proof, for f: A -> A.
+ Syntax is for coq v8. *)
+
+Parameter A : Set.
+Variable R : A -> A -> Prop.
+Variable Eq : A -> A -> Prop.
+
+Axiom Assym : forall x y : A, R x y -> R y x -> Eq x y.
+Axiom Trans : forall x y z : A, R x y -> R y z -> R x z.
+
+Variable f : A -> A.
+Axiom Incr : forall x y : A, R x y -> R (f x) (f y).
+
+Variable M : A.
+Hypothesis Up : forall x : A, R x (f x) -> R x M.
+Hypothesis Least : forall x : A, (forall y : A, R y (f y) -> R y x) -> R M x.
+
+Hint Resolve Up Assym Incr Least Incr Up Trans : db.
+
+Theorem Tarski_lemma : Eq M (f M).
+(* We can prove the theorem in one line: *)
+(* eauto 15 with db. *)
+(* But we rather use basic tactics in this sample file: *)
+ cut (R M (f M)).
+ intro.
+ apply Assym; trivial.
+ apply Up.
+ apply Incr; trivial.
+ apply Least.
+ intros.
+ apply Trans with (f y); trivial.
+ apply Incr.
+ apply Up; trivial.
+Qed.