Consider that we have unconstrained input variables x1,...,xn, and derived variables y1,...,ym which are a function of the xi and satisfy a relatively complicated constraint.
y1 = f1(x1,...,xn) y2 = f2(x1,...,xn) ... ym = fm(x1,...,xn)
Writers that update the unconstrained input variables are able to easily drive the output variables through a complicated space.
Consider this simple example where some sliders are used to specify a point inside a circle of radius R. Even though there are weak constraints on the slider positions, the point is constrained to be inside the circle. i.e. (x,y) satisfies x2 + y2 < R2.
This is achieved using a polar coordinate representation (r,θ) for the base variables, and x,y are read-only derived variables. The set of valid values of (r,θ) can be written as a Cartesian product [0,R) × [0,2π). This means that the base variables can be updated independently, without a risk of breaking the integrity constraint.