Files
Sylpheed/docs/re/data/plateau-choice.txt
sylph-decoder 0d42a1d8d1 re: rest_plateau() picks the wrong plateau -- and it is the whole residual
rest_plateau() selects the LONGEST run of identical adjacent poses, which need
not be the run covering the screen's settle instant. rest_vs_settle left a 21.9 %
disagreement that I recorded as ambiguous by construction. It is not.

  CONTROL  exactly one plateau, covering the settle instant:
           3 072 / 3 072 agree (100.0 %)
  TEST     more than one plateau, at least one covering:
           1 622 elements, agree on 586 (36.1 %)
           of the 1 036 disagreements, rest() landed on a run NOT covering the
           settle instant: 1 036 -- all of them, no exceptions

Both poses are genuinely held in these cases -- they are plateau cases, not
transients -- so this is rest() returning a pose the screen has ALREADY LEFT by
the time it settles.

This corrects my own METHOD entry of two iterations ago, which said a candidate
cannot be adjudicated against the incumbent it replaces. Too strong. The bare
comparison cannot; the comparison plus a structural property that independently
says which side is wrong in each disagreement can. What I lacked was not an
oracle but a discriminator.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
2026-08-30 12:38:18 +00:00

37 lines
1.9 KiB
Plaintext

# Does rest_plateau() pick the WRONG plateau? Yes -- and it accounts for the
# whole residual. 2026-08-30, examples/plateau_choice.rs
#
# rest_plateau() selects the LONGEST run of identical adjacent poses
# ('len >= any_len'), which need not be the run covering the screen's settle
# instant. rest_vs_settle left a 21.9 % disagreement unexplained and I flagged
# it as ambiguous by construction. It is not ambiguous.
#
CONTROL — exactly ONE plateau, and it covers the settle instant:
3072 elements, rest() and pose_at(settle) agree on 3072 (100.0 %)
TEST — MORE THAN ONE plateau, at least one covering the settle instant:
1622 elements, agree on 586 (36.1 %)
of the 1036 disagreements, rest() landed on a run that does NOT cover
the settle instant: 1036
--- END (if this line is missing, the run did not finish) ---
#
# ✅ THE CONTROL IS EXACT. Where an element has exactly ONE plateau and it
# covers the settle instant, rest() and pose_at(settle) agree 3 072 / 3 072.
# The comparison is sound; the disagreements are not noise.
#
# ✅ AND EVERY DISAGREEMENT IS ATTRIBUTABLE. In all 1 036 of them rest()
# returned a pose from a run that does NOT contain the settle instant, while
# pose_at(settle) sat on one that does. Both poses are genuinely HELD -- these
# are plateau cases -- so this is not 'a held pose versus a transient'. It is
# rest() returning a pose the screen has ALREADY LEFT by the time it settles.
#
# 1036 of 1036, no exceptions. The 21.9 % residual is the incumbent's.
#
# 🔴 THIS CORRECTS MY OWN METHOD ENTRY of two iterations ago, which said a
# candidate cannot be adjudicated against the incumbent it replaces. Too
# strong. The bare comparison cannot -- but the comparison PLUS a structural
# property that independently says which side is wrong in each disagreement
# CAN, and 'does the chosen run contain the settle instant' is such a
# property. What I lacked was not an oracle; it was a discriminator.