Skip to content

proc change produces ill-formed goals when introducing new local variables (memory type) #1026

@fdupress

Description

@fdupress

The following creates an ill-formed goal: the second subgoal of proc change displays a program that uses a local variable b in a memory that does not mention b.

Conversely (and less problematically), the first subgoal makes b appear in the memory type despite the fact that it should only appear in the right memory type.

require import AllCore.

module Toto = {
  proc titi() = {
    var boo: int;

    boo <- boo + 1;
    return boo;
  }
}.

equiv oops:
  Toto.titi ~ Toto.titi: true ==> ={res}.
proof.
proc.
proc change {1} 1: [ b: bool ] { b <- true; boo <- boo + 1; }.
(* left memory has useless b variable *)
+ by auto.
(* left memory has no b variable *)

Metadata

Metadata

Assignees

Labels

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions