coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Yves Bertot <Yves.Bertot AT sophia.inria.fr>
- To: Jean.Duprat AT ens-lyon.fr
- Cc: coq-club AT pauillac.inria.fr
- Subject: Re: [Coq-Club]specification and Type
- Date: Thu, 02 Mar 2006 15:00:39 +0100
- List-archive: <http://pauillac.inria.fr/pipermail/coq-club/>
It seems odd that any property would be understood as a line. More
over, what would be the meaning of your axiom when instantiated for
the predicate (fun x => True). Even if you manage to pass through
the problem of having your sigma-types being accepted, this would
tantamount (after decomposition of the axiom) to working in the
following context.
Parameter Point :Set.
Definition Line := Point ->Prop.
Parameter A:Point.
Parameter B:Point.
Parameter C:Point.
Parameter I4: forall D:Line, {~(D A)}+{~(D B)}+{~(D C)}.
But this context implies False: just take the following
proof:
Theorem the_contradiction : False.
Proof.
destruct (my_algo (fun x => True)) as [[H | H]| H]; apply H;exact I.
Qed.
I would rather believe you need to have a predicate on predicates
that distinguishes the lines from other propositions
and you should work in a context of this form:
Parameter Point : Set.
Parameter is_a_line : (Point -> Prop) -> Prop.
Now, to pass through the problem of having your sigma-types accepted,
replace any instance of { x : A & B} with sigT(fun x : A => B).
Here is an example which is accepted in my version of Coq
Axiom I4 :
sigT (fun A:Point =>
sigT (fun B:Point =>
sigT (fun C:Point =>
forall D:Point->Prop, is_a_line D ->
{~(D A)}+{~(D B)}+{~(D B)}))).
I guess you have a clearer idea than me about what should be in the
definition of "is_a_line", to make sure you capture the geometrical
intuition you have in mind.
Yves
- [Coq-Club]specification and Type, Jean.Duprat
- Re: [Coq-Club]specification and Type, Lionel Elie Mamane
- <Possible follow-ups>
- Re: [Coq-Club]specification and Type, Yves Bertot
- Re: [Coq-Club]specification and Type, Julien Narboux
Archive powered by MhonArc 2.6.16.