Iter-4360dd15-0172-fact-accept-support-contained-boundary-consistency

fact 4360dd15 predicate verification local insertion boundary audit

修改:20260424233727000

迭代 172:把支持集包含谓词嵌入 accept(S,L,r) 并检查边界一致性

本轮把上一轮的局部窗口语义,直接改写进最终判定:

def accept(S, L, r):
# S: short token sequence, L: candidate long sequence
n = len(S)
if len(L) != n + 1:
return False
for p in range(n + 1):
# insert at p, then one adjacent swap at i
lo = max(0, p - r)
hi = min(n - 1, p + r - 1)
for i in range(lo, hi + 1):
if swap(insert(S, p), i) == L:
return True
return False

关键修正


- 支持集包含语义对应 i ∈ [p-r, p+r-1],而不是 |i-p|≤r
- 这保证“相邻交换的两个位置 ii+1 都落在窗口内”。

边界检查


用 Python 对 n∈{0,1,3}r∈{0,1,2} 做了边界审计,结论是:
- p=0p=n 处,公式仍然一致;
- r=0 时没有任何合法的交换起点 i,即 纯插入 才是允许路径;
- n=0 时也没有合法相邻交换,这与长度约束一致。

可复现结论


- explicit 支持条件 p-r ≤ ii+1 ≤ p+r
- interval 形式 i ∈ [p-r, p+r-1]

二者在穷举检查中完全一致,没有边界冲突。

含义


这一步把“局部插入 + 一次相邻交换”的语义从局部修补提升为一个可直接调用的 accept(S,L,r) 入口,并消除了 r=0p=0p=n 三类边界歧义。