symphonytool / symphony

The Symphony IDE
5 stars 4 forks source link

Incorrect POGging of atomic assignments #252

Closed ldcouto closed 10 years ago

ldcouto commented 10 years ago

For the POG, given a state invariant and atomic assignment, the assignments show up in the antecedent of the PO predicate. For example:

process Test = begin
state
x :int 
y :int
inv
x = y

operations
op : () ==> ()
op()== atomic(x:=1; y:=1)

@Skip
end

Will yield 1=1 => 1 =1. The cause is that the list of assignments in the atomic is being traversed and context information is collected for all of them. This must be changed and the POG must process the entire atomic in one go.

ldcouto commented 10 years ago

This has been fixed in overturetool/overture@ec61964f2920b63527fc7e38294de586016ab9df