coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Clément Pit-Claudel <cpitclaudel AT gmail.com>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] Red-black tree and remove/add specifications
- Date: Sat, 8 Oct 2022 11:51:38 -0700
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=cpitclaudel AT gmail.com; spf=Pass smtp.mailfrom=cpitclaudel AT gmail.com; spf=None smtp.helo=postmaster AT mail-pj1-f52.google.com
- Ironport-data: A9a23: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 abZiIyErIyGpZbNLPtd
- Ironport-hdrordr: A9a23:RKUDYK0r9EoKK1mIqGjTJwqjBJEkLtp133Aq2lEZdPUnSL3/qy nIpoVm6faUskdtZJhEo7q90ca7MBHhHPJOkPIs1PKZLXPbUQiTXeRfBOnZsl7d8kTFn4Y3tZ uIMZIOcOEYZWIasS+Q2njeLz9P+qj/zEnlv5a7856vd21XgmNbgjuRxjz1LqS+fmd7OaY=
- Ironport-phdr: A9a23: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
- Ironport-sdr: 6341c6be_VRE5uvtGi5mgfMOmg1sBDsS0uAKQuaQVDZu1io06G3Dysp2 9vCdqu7rvW5RRugGtlUO5Ges5rVbVkOO6LioNZQ==
Hi Chris and Suneel,
The original lemma looks correct to me. The standard library contains a
proof of it for lists, in fact:
in_remove:
forall [A] eq_dec (l : list A) (x y : A),
In x (remove eq_dec y l) -> In x l /\ x <> y
What am I missing?
Clément.
On 10/8/22 09:54, Chris Dams wrote:
Hello Suneel,
To me it looks your removal lemma is not correct. "In x (remove y t) -> In x
t"
should not be true if x and y happen to be equal. This needs a precondition
x <> y. And then you also need something for the case where they are equal,
like "~ In x (remove x t)".
Kind Regards,
Chris
Op za 8 okt. 2022 om 09:24 schreef Suneel Sarswat <suneel.sarswat AT gmail.com>:
Dear Friends,
I am working on an application of the red-black tree data structure in
implementing an algorithm. In my setting, I am using remove and add.
Unfortunately, I could not find out a specification lemma for 'remove' which
states the following trivial property.
Lemma remove_spec0 (t:tree)(x y:elt):
In x (remove y t) -> In x t.
Or
Lemma remove_spec0 (t:tree)(x y:elt):
List.In x (elements (remove y t)) -> List.In x (elements t).
The current module has specifications for 'InT', which is a proposition on
the membership of keys whereas I am looking for membership of data. Is there
any way to have an equivalent lemma without unfolding the definition of
remove?
Similarly, for adding specification, the current module has a lemma for 'InT'
but not on membership of the whole element.
Thanks,
Suneel
- [Coq-Club] Red-black tree and remove/add specifications, Suneel Sarswat, 10/08/2022
- Re: [Coq-Club] Red-black tree and remove/add specifications, Chris Dams, 10/08/2022
- Re: [Coq-Club] Red-black tree and remove/add specifications, Suneel Sarswat, 10/08/2022
- Re: [Coq-Club] Red-black tree and remove/add specifications, Chris Dams, 10/08/2022
- Re: [Coq-Club] Red-black tree and remove/add specifications, Suneel Sarswat, 10/08/2022
- Re: [Coq-Club] Red-black tree and remove/add specifications, Chris Dams, 10/08/2022
- Re: [Coq-Club] Red-black tree and remove/add specifications, Clément Pit-Claudel, 10/08/2022
- Re: [Coq-Club] Red-black tree and remove/add specifications, Chris Dams, 10/09/2022
- Re: [Coq-Club] Red-black tree and remove/add specifications, Castéran Pierre, 10/09/2022
- Re: [Coq-Club] Red-black tree and remove/add specifications, Chris Dams, 10/09/2022
- Re: [Coq-Club] Red-black tree and remove/add specifications, Suneel Sarswat, 10/08/2022
- Re: [Coq-Club] Red-black tree and remove/add specifications, Chris Dams, 10/08/2022
Archive powered by MHonArc 2.6.19+.