coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Castéran Pierre <pierre.casteran AT gmail.com>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] Beginner question: 0 - 1 = 0?
- Date: Sun, 23 Jul 2023 21:11:42 +0200
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=pierre.casteran AT gmail.com; spf=Pass smtp.mailfrom=pierre.casteran AT gmail.com; spf=None smtp.helo=postmaster AT mail-wm1-f50.google.com
- Ironport-data: A9a23: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 TBdeF2oi31XhaI8/QiMtpKV9NwkUOvT8ggV
- Ironport-hdrordr: A9a23:LvSgXK0E2uKoadlM4Cx7bwqjBIUkLtp133Aq2lEZdPU1SL37qy nKpp4mPHDP+VEssR0b6LO90ey7MAvhHOBOkPIs1MaZLWzbUQKTRekIjbcKgQeQfREWntQ96U 4KSdkbNDSfNykCsS842mWF+hQbreVvPJrGuQ6n9QYWceiiUc9d0zs=
- Ironport-phdr: A9a23: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
- Ironport-sdr: 64bd7b71_7+9WFvxKBHa5lrCRanb/zaIinVoGJhhnLSnTUtcOqGREhU4 tdxE7gY6GWNYqRPQ8cnr1+sf1hIYQLWUdO7gi6Q==
Coq just follows the same convention as in some areas of theory of computation : https://proofwiki.org/wiki/Predecessor_Function_is_Primitive_Recursive
Since substraction is an iteration of predecessor, we get a - b = 0 iff a <= b (if a and b are natural numbers).
Best,
Pierre
Le 23 juil. 2023 à 18:03, Ana Borges <ana.agvb AT gmail.com> a écrit :Crucially, and in addition to what others have already said, 0 - 1 is undefined on the natural numbers. You can't get a proof of 0 = -1 out of defining 0 - 1 := 0. If you were expecting 0 - 1 = -1 then you may want to work with the integers and not with the natural numbers.On Sun, 23 Jul 2023 at 16:56, Sylvain Boulmé <Sylvain.Boulme AT univ-grenoble-alpes.fr> wrote:More generally, turning a "usual" partial function into a total function
only allows some "unusual" theorems such that "0 - a = 0", but does not
invalidate any of the partial function (By definition, such a theorem is
valid for any total interpretation of the partial function).
In many cases, these "unsual" theorems simplify the proofs. At least,
because it is simpler to handle total functions than partial ones.
For example, consider the proof of "(c+a) - (c+b) = a - b". With a
partial function, you should prove instead
"b <= a -> (c+a) - (c+b) = a - b"
and thus, in an induction proof, you would have to prove the "b <= a "
hypothesis of the induction hypothesis. This is not necessary on the
total function.
We only should take care when interpreting theorems about the total
function: they may not directly apply to the partial one. If needed, we
may still introduce a definition for representing the "partial function"
(there are various techniques for that, the most general one is probably
to introduce an inductive relation representing the graph of the partial
function) and proves a correspondence theorem between the "partial
function" and the total one (as skteched for minus by Dominique below).
Best,
Sylvain.
Le 23/07/2023 à 17:04, Dominique Larchey-Wendling a écrit :
> This is from the definition of "minus" in Coq with infix notation "x - y".
> "Print minus" will give you the fixpoint definition.
>
> If a <= b then a-b = 0. You can prove this.
>
> You just have to be aware that this is not the usual subtraction
> operation which would be a partial operation on natural numbers
> (positive integers), ie a-b should be undefined when a < b.
>
> a - b has the "usual" meaning if (and only if) a >= b.
>
> This is enough to get (a + b) - b = a for instance
> But (a - b) + b is not equal to a, unless a >= b.
>
> Best,
>
> Dominique
>
> ----- Mail original -----
>> De: "Frank Schwidom" <schwidom AT gmx.net>
>> À: "coq-club" <coq-club AT inria.fr>
>> Envoyé: Dimanche 23 Juillet 2023 16:53:35
>> Objet: [Coq-Club] Beginner question: 0 - 1 = 0?
>
>> Hi,
>>
>> what puzzles me is that I can obviously get a wromg result from the view of the
>> natural understanding:
>>
>> Coq < Compute 0 - 1.
>> = 0
>> : nat
>>
>> How can it be clear that this makes no problems in proofs?
>>
>> Regards,
>> Frank
- [Coq-Club] Beginner question: 0 - 1 = 0?, Frank Schwidom, 07/23/2023
- Re: [Coq-Club] Beginner question: 0 - 1 = 0?, Dominique Larchey-Wendling, 07/23/2023
- Re: [Coq-Club] Beginner question: 0 - 1 = 0?, Sylvain Boulmé, 07/23/2023
- Re: [Coq-Club] Beginner question: 0 - 1 = 0?, Ana Borges, 07/23/2023
- Re: [Coq-Club] Beginner question: 0 - 1 = 0?, Castéran Pierre, 07/23/2023
- Re: [Coq-Club] Beginner question: 0 - 1 = 0?, Qinshi Wang, 07/24/2023
- Re: [Coq-Club] Beginner question: 0 - 1 = 0?, Hugo Herbelin, 07/26/2023
- Re: [Coq-Club] Beginner question: 0 - 1 = 0?, Qinshi Wang, 07/24/2023
- Re: [Coq-Club] Beginner question: 0 - 1 = 0?, Castéran Pierre, 07/23/2023
- Re: [Coq-Club] Beginner question: 0 - 1 = 0?, Tadeusz Litak, 07/24/2023
- Re: [Coq-Club] Beginner question: 0 - 1 = 0?, Ana Borges, 07/23/2023
- Re: [Coq-Club] Beginner question: 0 - 1 = 0?, Sylvain Boulmé, 07/23/2023
- Re: [Coq-Club] Beginner question: 0 - 1 = 0?, Dominique Larchey-Wendling, 07/23/2023
Archive powered by MHonArc 2.6.19+.