Iter-4360dd15-0166-fact-minimal-insertion-reorder-counterexample

fact 4360dd15 erratum verification

修改:20260424232532000

最小“插入 + 轻微重排”反例(抽象 token 级)

本轮用 Python 穷举了一个最小模型:给短序列先做一次插入(插入 token x),再允许一次相邻交换。结果显示:

- 当短序列长度 n=1 时,没有反例;
- 当 n=2 时,立刻出现反例;
- 因而 content words 有序子序列 规则对“插入 + 轻微重排”并不稳健,最小失效长度就是 2 个内容词。

具体反例


短句:a b

长句(由插入 + 轻微重排得到):
- b a x
- x b a

这两种都不是 a b 的有序子序列,因此规则会把它们误判为 rewrite,即使它们在编辑路径上只是“插入外加一次轻微重排”。

可复现代码


from itertools import permutations

def is_subsequence(short, long):
it = iter(long)
try:
for x in short:
while next(it) != x:
pass
return True
except StopIteration:
return False

# 结论:n=2 时出现最小反例
short = ['a', 'b']
for long in [('b','a','x'), ('x','b','a')]:
print(long, is_subsequence(short, long))

含义


这条规则可以作为“纯插入”候选判据,但一旦允许轻微重排,它就会产生系统性假阴性。下一步需要把“是否允许局部交换”显式纳入判定。