Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Red-black tree and remove/add specifications

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Red-black tree and remove/add specifications


Chronological Thread 
  • From: Chris Dams <chris.dams.nl 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 18:54:50 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=chris.dams.nl AT gmail.com; spf=Pass smtp.mailfrom=chris.dams.nl AT gmail.com; spf=None smtp.helo=postmaster AT mail-vs1-f42.google.com
  • Ironport-data: A9a23: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 YT4eIycfHyGdA==
  • Ironport-hdrordr: A9a23:2dih96PVWEUnXMBcTv6jsMiBIKoaSvp037BN7TEIdfU1SL3gqy nKpp4mPHDP+VMssR0b6LK90ey7MBDhHP1OgLX5X43SODUO0VHAROpfBMnZowEIcBeOkdK1u5 0QFZSWy+edMbG5t6vHCcWDfOrICePozJyV
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: 6341ab67_85tDmn7FxepZjExD0cFNdjQ10VMrshcJx0Hhfzjh+/VK2O9 WArk7gV2r/zOTSAbuohNuDxNl2lIor9un4atcFA==

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
>
>
>



Archive powered by MHonArc 2.6.19+.

Top of Page