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

Akihisa Yamada akihisa.yamada at uibk.ac.at
Tue Jul 21 15:53:46 CEST 2015


Dear Le Ton Chanh,

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

I think I understand you, but also that the expected results are not
used in the competition (from Johannes's last mail).

Anyway, as Jürgen also agrees, I will correct "z = z++" to "z++" in

> 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

Best regards,
Akihisa

On 2015/07/21 15:12, Ton-Chanh Le wrote:
> 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 <http://comp.nus.edu.sg>
>
> On Tue, Jul 21, 2015 at 9:04 PM, Akihisa Yamada
> <akihisa.yamada at uibk.ac.at <mailto: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>
>         <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>
>         <mailto: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>
>         <mailto: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 <mailto: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/
>
>

-- 
Akihisa Yamada, Ph.D.
Computational Logic Group, Institute of Computer Science,
University of Innsbruck
http://cl-informatik.uibk.ac.at/~ayamada/


More information about the Termtools mailing list