Related answer here, which says such mutability is not possible.
In ASP truth values do not change over time, either atoms are
trueorfalsefor a specific answer set, they can not be overwritten.
So here's the solution I went with, using a #max directive:
roomCost(0).
finalroomCost(W) :- roomCost(0), #max {X, 1 : roomCost(X)} = W.