coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Vincent Cremet <vincent.cremet AT epfl.ch>
- To: Frederic Peschanski <Frederic.Peschanski AT lip6.fr>
- Cc: coq-club AT pauillac.inria.fr
- Subject: Re: [Coq-Club]PO in coq
- Date: Mon, 7 Aug 2006 16:14:57 +0200 (CEST)
- List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>
On Mon, 7 Aug 2006, Frederic Peschanski wrote:
Dear all,
Hi,
[...]
The second question is more practical, I define bottom and top, e.g.:
Variable A : Type.
Variable R : Relation.
Definition porder_bottom : Prop :=
exists bottom : A, forall x : A, (R bottom x).
Definition porder_top : Prop :=
exists top : A, forall x : A, (R x top).
I can prove easily that (nat,le) as O as bottom, but I cannot prove
that it has no top (i.e ~(porder_top nat le) )
In classical reasoning, I would prove that forall y:nat, exists x:nat, ~(le x y)
and use this to contradict the existence of a top.
But even with Classical imported, I cannot do the proof.
Actually, you can do a constructive proof for proving your second
property. For instance, as follows.
----------------------------------------------------------
Require Import Arith.
Section PO.
Variable A : Type.
Definition Relation := A -> A -> Prop.
Variable R : Relation.
Definition porder_bottom : Prop :=
exists bottom : A, forall x : A, (R bottom x).
Definition porder_top : Prop :=
exists top : A, forall x : A, (R x top).
End PO.
Lemma no_top_in_nat: ~(porder_top nat le).
Proof.
unfold not.
unfold porder_top.
intros.
induction H.
absurd (S x <= x).
apply le_Sn_n. trivial.
Qed.
------------------------------------------------------------
Vincent Cremet.
- [Coq-Club]PO in coq, Frederic Peschanski
- Re: [Coq-Club]PO in coq, Vincent Cremet
- Re: [Coq-Club]PO in coq, David Pichardie
Archive powered by MhonArc 2.6.16.