According to the document of Dynamic: If the displayed form of Dynamic[expr] is interactively changed or edited, an assignment expr = val is done to give expr the new value val that corresponds to the displayed form. In Details and Options section: Dynamic[expr] is equivalent to Dynamic[expr, (expr = #) &]. But we all know that, we can do something like this: Dynamic[1 + x] x = (* anything *) If Dynamic[1 + x] is equivalent to Dynamic[1 + x, (1 + x = #) &], then the code should cause Set::wri...