Re: Windows' "split status"

From:

martin rudalics

Subject:

Re: Windows' "split status"

Date:

Wed, 23 Nov 2011 15:15:19 +0100

User-agent:

Thunderbird 2.0.0.21 (Windows/20090302)

>> If this variable is always non-`nil', a frame's window
>> tree is a binary tree so every window but the frame's root window
>> has exactly one sibling.
>
> As a native English speaker, I'm afraid that this reads like a
> non-native-English-speaker's attempt to render
>
>> If this variable is always non-`nil', a frame's window tree is always
>> a binary tree so every window but the frame's root window has exactly
>> one sibling.
Because of the missing "always"? Then your formulation is missing yet
another "always" immediately before "exactly".
> which unfortunately has a quite different meaning.
Mixing temporal operators and quantification in prose is problematic.
But what precisely constitutes the "different meaning" here in your
opinion?
> While your
> formulation is grammatically correct, I don't think it's very meaningful
> to talk about a variable's value "always" being something.
The term "always" has very contrived semantics but it's informally often
used to say something like: If this variable is non-nil when Emacs
starts and is non-nil whenever Emacs performs an action, then for any of
Emacs' frames, that frame's window tree is a binary tree when Emacs
starts and after any action performed by Emacs. Or, if this variable is
always non-nil, then any frame's window tree is always a binary tree.
Obviously I'd prefer to say something more useful like "for all frames
invariantly holds that if this variable is non-nil when that frame is
created or a window on that frame is created or deleted, that frame's
window tree is a binary tree" but I don't like talking in terms of pre-
and post-conditions and don't know anyway how to provide the necessary
atomicity of Emacs' actions wrt to "this variable's value".
> Perhaps framing this in terms of a guarantee is clearer?
>
>> If this variable's value remains non-`nil' throughout the lifetime of
>> a frame, the frame's window tree is guaranteed to be a binary tree;
>> every window nested below the root window will have exactly one
>> sibling.
I wouldn't mind. After all, this sentence was meant as an additional
hint only, without the slightest claim for formal correctness.
martin