Frama-C-discuss mailing list archives

This page gathers the archives of the old Frama-C-discuss archives, that was hosted by Inria's gforge before its demise at the end of 2020. To search for mails newer than September 2020, please visit the page of the new mailing list on Renater.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Frama-c-discuss] Named behavior, proof obligations and ACSL annotations: the string comparison example


On Thu, Mar 26, 2009 at 16:59, PAREAUD, Thomas
<Thomas.PAREAUD at> wrote:
> Is the 3) point is equivalent to add the predicate below in the loop invariant declaration?
> loop invariant
> ? ? ?[...]
> ? && \forall integer k ; 0 <= k < (\at(nbBytes, Pre) - nbBytes) ==> (*(\at(pString1, Pre)+k) == *(\at(pString2, Pre)+k));
> This line is equivalent to the following one:
> \forall integer k ; 0 <= k < (\at(nbBytes, Pre) - nbBytes) ==> (*(pString1-k) == *(pString2-k));

Are you able to prove the preservation part of these two loop
invariants? It fails with Alt-Ergo.