Correct reasoning, but not quite the right notion of do(). “do(no press)” would mean that the button just acts like a completely normal button governed by completely normal physics, right up until the official time at which the button state is to be recorded for the official button-press random variable. And at that exact moment, the button magically jumps into one particular state (either pressed or not-pressed), in a way which is not-at-all downstream of any usual physics (i.e. doesn’t involve any balancing of previously-present forces or anything like that).
One way to see that the do() operator has to do something-like-this is that, if there’s a variable in a causal model which has been do()-operated to disconnect all parents (but still has some entropy), then the only way to gain evidence about the state of that variable is to look at things causally downstream of it, not things upstream of it.
I think we’re not disagreeing on the meaning of do (just slightly different state of explanation), I just hadn’t realized the extent to which you intended to rely on there being “Two timesteps”.
(I just meant the forces as a way of describing the jump to a specific position. That is, “mysterious forces” in contrast to a perfectly ordinary explanation for why it went to a position, such as “a guard stabs anybody who tries to press the button”, rather than in contrast to “the button just magically stays place”.)
I now think the biggest flaw in your idea is that it literally cannot generalize to anything that doesn’t involve two timesteps.
Correct reasoning, but not quite the right notion of do(). “do(no press)” would mean that the button just acts like a completely normal button governed by completely normal physics, right up until the official time at which the button state is to be recorded for the official button-press random variable. And at that exact moment, the button magically jumps into one particular state (either pressed or not-pressed), in a way which is not-at-all downstream of any usual physics (i.e. doesn’t involve any balancing of previously-present forces or anything like that).
One way to see that the do() operator has to do something-like-this is that, if there’s a variable in a causal model which has been do()-operated to disconnect all parents (but still has some entropy), then the only way to gain evidence about the state of that variable is to look at things causally downstream of it, not things upstream of it.
I think we’re not disagreeing on the meaning of do (just slightly different state of explanation), I just hadn’t realized the extent to which you intended to rely on there being “Two timesteps”.
(I just meant the forces as a way of describing the jump to a specific position. That is, “mysterious forces” in contrast to a perfectly ordinary explanation for why it went to a position, such as “a guard stabs anybody who tries to press the button”, rather than in contrast to “the button just magically stays place”.)
I now think the biggest flaw in your idea is that it literally cannot generalize to anything that doesn’t involve two timesteps.