Skip to content

Is it the case that values *must* relates to an input? #49

@aubertc

Description

@aubertc

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?

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions