「否定不是重置键」:预设如何在你否认一句话时,替你重新签下那份合同
【锚点】这一篇只回答一个问题:在自然语言里,「我否认 P」为什么不是「我取消 P 携带的全部承诺」——以及一个把对话当布尔状态机的形式模型,会在这一步静默丢掉什么。
一、【显式】一句话至少背三种「债」,撤销成本不同
Grice (1975) 把说话人意义拆成「所说」与「所隐含」。但真正可操作的三分法,是按撤销行为分的:
- 【蕴含 entailment】逻辑后承。撤销 = 自相矛盾。
- 【预设 presupposition】为使话语可解而必须成立的前提。撤销 = 需要显式修复,且常常「漏」。
- 【会话隐涵 implicature】由合作原则推出的额外承诺。撤销 = 加一句就行,不矛盾。
诊断不靠语感,靠两个可操作测试:否定投影测试(Karttunen 1973)与可取消测试(Sadock 1978)。
二、【显式】两个测试,三个判据
判据 A(否定投影):把整句塞进否定,看推断是否还活着。 判据 B(可取消):加一个「其实/事实上」从句,看是否产生矛盾。
例 1(蕴含):「我叔叔是单身汉」⊨「我叔叔未婚」。 - 否定:「我叔叔不是单身汉。」→ 不再承诺未婚(他可能已婚)。蕴含不投影。 - 取消:「我叔叔是单身汉,其实他已婚」→ 矛盾。蕴含不可取消。
例 2(预设):「我叔叔戒烟了」预设「他以前抽烟」。 - 否定:「我叔叔没戒烟。」→ 仍然预设他以前抽烟。预设投影(Karttunen:否定是预设的「洞」)。 - 取消:「我叔叔戒烟了——其实他从来没抽过。」→ 不是矛盾,是修复:先假装预设成立,再当场拆掉。听者反应是「你早说啊」,不是「你自相矛盾」。
例 3(隐涵):「有些学生通过了」隐涵「并非全部通过」。 - 取消:「有些学生通过了,事实上全部通过了。」→ 完全通顺。隐涵可取消。 - 强化:「有些通过了,但不是全部。」→ 可强化,是可取消的孪生判据。
三、【隐式】「否认」只作用在蕴含层,预设层纹丝不动
形式逻辑里 ¬P 是 P 的补集,一句话的全部内容一起被翻转。自然语言不是。
「我叔叔没戒烟」这句话,说话人以为自己在撤销「他戒烟了」这个断言;实际上他重新确认了「他以前抽烟」这个预设。撤销一个断言的代价,是重签一份前提合同。
四、【细微】元语言否定:布尔模型崩得最彻底的地方
Horn (1985) 的元语言否定:「我叔叔不是戒烟了——他压根没抽过烟。」这里「不是」否定的不是命题内容,而是上一句话的预设/适切性。否定算子作用在言语行为层,而不是命题层。
为什么这是【细微】而不是【显式】:它要求你比对同一个否定词在两种读法下的真值条件——普通否定翻转真值,元语言否定拒绝整个言语行为的适切性。同一个「不」字,两个算子类型。任何把否定编译成单一布尔算子的模型,会在这里静默地给出错误结果,且不报错。
五、【极难发现】预设的「注入」:否认反而扩大了共同 ground
Lewis (1979) 的记分板模型 + Stalnaker (1974) 的语用预设:听者为了让一句话可解,会自动把缺失的预设容纳(accommodate)进共同 ground。于是最反直觉的结论出现了:
- A 说:「现行共识指标已经不再可靠了。」(预设:它曾经可靠)
- B 说:「不对,它没有『不再可靠』。」(B 以为自己在否认 A)
- 但 B 的句子同样预设「它曾经可靠」。B 的否认没有把这条预设移出共同 ground;相反,它以它为适切条件,迫使听者把它容纳进来。
否认一个断言,可能是在给它的预设投票。 这是「通过反驳注入状态」——布尔状态机上不可能发生、自然语言里每时每刻都在发生的操作。
六、【流程节点链路】
诊断链(判据 A→B→结论): 起点【取一句含可疑推断的话语 P】 → 中间节点 1【把 P 嵌入否定 ¬P,检查推断是否存活(投影测试)】 → 中间节点 2【若存活,进入可取消测试:加「其实…」从句看是否矛盾】 → 中间节点 3【若可取消且需修复,判为预设;若可取消且不矛盾,判为隐涵;若不可取消,判为蕴含】 → 终点【得到该推断的承诺类型,从而得到它的撤销成本】。
否认链(为什么否认会重签合同): 起点【A 断言 P,P 携带预设 π】 → 中间节点 1【B 构建 ¬P 作为否认】 → 中间节点 2【¬P 作为句子仍以 π 为适切条件(否定是预设的洞)】 → 中间节点 3【B 的否认要可解,听者必须容纳 π 进共同 ground(Lewis 容纳)】 → 终点【π 被重新确认,而非被撤销;否认在预设层是赞成票】。
七、值得辩论的问题
如果把「承诺类型」当成对话状态的一个维度(而不只是「断言集合」),那么同意和反对就不是两种状态,而是四种:反对断言 + 接受预设(最常见)、反对断言 + 拒绝预设(元语言否定)、接受断言 + 接受预设、接受断言 + 拒绝预设(「对,但你说的前提就不成立」)。
问题:一个形式化的对话模型,应该把预设建模成命题(可被否认),还是建模成适切性条件(只能靠「拒绝该言语行为」来撤销)?前者让否定是一元算子,后者让否定是二元算子(否定内容 vs 否定适切性)——你选哪个,决定了你的系统能不能表达元语言否定。






0 评论