[Termtools] C category: x = x++ statements

Ton-Chanh Le chanhle at comp.nus.edu.sg
Tue Jul 21 15:12:12 CEST 2015


Dear Yamada,

If we consider "z = z++" as a typo, but we do not change
neither this typo or the expected result, then we might report
a correct answer as an unsound result.

For example, our tool reports those two examples as non-terminating
(NO) but the current expected results for them are YES.

For those examples, to make them terminating, we have to fix
the typo "z = z++;" to "z++;" or  "z = z + 1;"

Best Regards,

Le Ton Chanh
Email: chanhle at comp.nus.edu.sg

On Tue, Jul 21, 2015 at 9:04 PM, Akihisa Yamada <akihisa.yamada at uibk.ac.at>
wrote:

> Dear Ton-Chanh,
>
>  According to this, I think we need to change
>> the expected results
>>
>
> is this a request for the coming competition?
>
> To me, it feels strange to change "Comment: terminating" line, which
> seems to reflect the author's intention, rather than the apparent
> typo "z = z++;".
>
> May I leave them unchanged this time, since your request should not
> affect the competition result?
>
> Best regards,
> Akihisa
>
> On 2015/07/21 9:21, Ton-Chanh Le wrote:
>
>> Dear Andreas Gebhardt,
>>
>> Thank you very much for your clarification.
>>
>> Your interpretation of x = x++
>>
>>     x_ = x;
>>     x = x+1;
>>     x = x_;
>>
>> is exactly the thing we received from cil.
>>
>> According to this, I think we need to change
>> the expected results of
>>
>>
>> TPDB/C/SV-COMP_Termination_Category/ChenFlurMukhopadhyay-SAS2012-Ex3.08_true-termination.c
>> (non-terminating when x>y & y>x+z)
>>
>>
>> TPDB/C/SV-COMP_Termination_Category/ChenFlurMukhopadhyay-SAS2012-Ex4.01_true-termination.c
>> (non-terminating when x+y=0 & x+z=0 & x<=n)
>>
>>
>>
>> Best Regards,
>>
>> Le Ton Chanh
>> Email: chanhle at comp.nus.edu.sg <http://comp.nus.edu.sg>
>>
>> On Tue, Jul 21, 2015 at 2:14 PM, Andreas Gebhardt
>> <andreasgebhardt at web.de <mailto:andreasgebhardt at web.de>> wrote:
>>
>>     Dear Ton-Chanh Le,
>>
>>         We have a problem with the x = x++ statements,
>>         which appear in the examples
>>
>>
>> TPDB/C/SV-COMP_Termination_Category/ChenFlurMukhopadhyay-SAS2012-Ex3.08_true-termination.c
>>
>>
>>
>> TPDB/C/SV-COMP_Termination_Category/ChenFlurMukhopadhyay-SAS2012-Ex4.01_true-termination.c
>>
>>     >
>>
>>         [...]
>>
>>     >
>>
>>         Could we use x++ instead of x = x++ in those examples?
>>
>>
>>     these two statements (together with a ';') are not interchangeable
>>     by default, the first statement
>>
>>              x++;
>>
>>     increments the value of `x` and returns the value of `x` before it
>>     was incremented. The value which the statement returns is not used.
>>        But the second one uses the return value of `x++`
>>
>>              x = x++;
>>
>>     which is the value of `x` before it was incremented. So the value of
>>     `x` right before and right after the statement `x = x++;` does not
>>     change.
>>
>>     Without using the postincrement operator (`x_` a fresh variable of
>>     same type as `x`)
>>
>>         x_ = x;
>>         x = x+1;
>>         x = x_;
>>
>>
>>     Best Regards,
>>     Andreas
>>
>>     _______________________________________________
>>     Termtools mailing list
>>     Termtools at lists.lri.fr <mailto:Termtools at lists.lri.fr>
>>     http://lists.lri.fr/cgi-bin/mailman/listinfo/termtools
>>
>>
>>
>>
>> _______________________________________________
>> Termtools mailing list
>> Termtools at lists.lri.fr
>> http://lists.lri.fr/cgi-bin/mailman/listinfo/termtools
>>
>>
> --
> Akihisa Yamada, Ph.D.
> Computational Logic Group, Institute of Computer Science,
> University of Innsbruck
> http://cl-informatik.uibk.ac.at/~ayamada/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lri.fr/pipermail/termtools/attachments/20150721/32244fa5/attachment.html>


More information about the Termtools mailing list