// Purpose: check that local variables take priority over global variables in procedures
// Description: A module with a variable x and a procedure. The procedure has a parameter x and it modifies x. The procedure is called in the init block.
// Expectation: UCLID5 should report an error because the procedure modifies the parameter x, not the global variable x.
// Validation: Inserting a bug into how UCLID5 handles local variables could cause this test to fail.

module main {
    var x: integer;

    procedure p(x: integer)
        modifies x;
    {
        x = 0;
    }

    init {
        call p(x);
    }
}
