-
Notifications
You must be signed in to change notification settings - Fork 1
Description
The issue on declarations echoed with a more fundamental question that I have, and that is "must values inside the program relates to an input?".
Let me explain: as of now, we are interpreting x = <any value>; as "reset the coefficient for x to 0", because there is now no connection between the inputs and x.
However, I'm not sure that this is permitted, for three reasons:
- There is no rule for that case in the original paper, and as far as I can tell it's not even discussed,
- In On Decidable Growth-Rate Properties of Imperative Programs, Ben-Amram "just" works on adding a "reset" instruction to a similar language and shows that it is not easy to do so,
- When discussing constants, they write:
To deal with constants, just replace the program’s constants by variables and regard the replaced constants as input to these variables.
as if (my reading), values had to be linked to the program's input.
All of that being said, they have an example of re-initialization (Example 3.1)
C′′ ≡ X1 := 1; loop X 2 { X1 := X1 +X1 }
as if it was no big deal.
I may simply be confused. Thoughts?