Skip to content

模型Model

Presburger 算术

Presburger arithmetic · 加法算术 · 线性整数算术

在加法与序的整数约束中,通过系数统一和有限余数检验消去量词,并判定自然数加法算术。

形式陈述 ​

取 N={0,1,2,…}。自然数上的 Presburger 算术研究结构 (N,0,1,+,<) 的一阶真句;其语义理论记为 Th(N,0,1,+,<)。本页将消去算法放在整数结构 (Z,0,1,+,−,<) 中证明,再通过非负约束返回自然数。两处论域不同,量词的取值范围也不同。

整数项只能是常数与变量的整系数线性组合。固定整数 a 的 ax 是重复加法与取负的缩写;两个变量相乘的 xy 不属于语言。为执行量词消去,给整数语言加入每个固定正整数 m 对应的谓词

Dm(t)⟺m∣t.

这是模同余的记号,u≡v(modm) 写成 Dm(u−v)。每个具体公式只使用有限多个这样的谓词,模数是写在公式中的常数。

有效消去定理。 在上述扩充整数语言中,每个公式 φ(y¯) 都能在有限步内变为无量词公式 ψ(y¯),使它们对所有整数参数赋值同真同假。因而整数加法算术与自然数 Presburger 算术都可判定。等价式的全称闭包属于整数结构的完整理论,所以消去也在该理论的全部模型中成立。

这里,写成 Th(M) 的理论本来就决定每个句子的真值;这不是需要算法证明的“完备性定理”。实质结论是这些真值可有效求出,以及通常的 Presburger 公理系统恰好公理化这套真句。该系统可用 0,S,+ 表述:后继单射、Sx≠0、x+0=x、x+S(y)=S(x+y),再加入这个加法语言中每个公式的归纳实例;1=S0,x<y 定义为 ∃zy=x+S(z)。这是一套有效公理化,且一致、完备。它与标准结构真句的吻合是经典的 Presburger 定理,文末原文译本给出这一公理化背景;下面直接证明语义消去与判定程序。

直觉

整数中的空隙不能用稠密性填补:0<x<1 没有整数解。加法约束还会留下奇偶性等周期条件。因此,见证必须同时满足两类要求:落在允许区间里,且落在允许的余数类里。

核心观察是:如果所有周期条件以 M 为共同周期,那么从某个下界开始,只须检查连续 M 个整数。任何更远的见证都可减去若干个 M,退回这段区间;余数条件不变,已有上界也不会被破坏。系数统一先把 2x、3x 之类的约束改写到同一个新变量上,再用额外的整除条件记住这个新变量确实来自原来的整数 x。

例子与边界

一个模六算例 ​

在 Z 中消去

∃x(y≤2x≤y+3 ∧ x≡1(mod3)).

令 z=2x。必须同时保留 2∣z 与 6∣z−2;后者已经蕴含前者,因此约束化为

∃z(y≤z≤y+3 ∧ z≡2(mod6)).

不小于 y 的第一个合格余数代表是 y+δ,其中 δ 是 2−y 模六的最小非负余数。它落在区间中恰好当 δ≤3:

ymod6 最小偏移 δ y+δ≤y+3
0 2 成立
1 1 成立
2 0 成立
3 5 不成立
4 4 不成立
5 3 成立

所以无量词结果为

y≡0(mod6) ∨ y≡1(mod6) ∨ y≡2(mod6) ∨ y≡5(mod6).

例如 y=3 给出区间 [3,6],其中没有模六余二的数;y=5 则可取 z=8,恢复 x=4。当参数 y≥0 时,这个算例的见证也自动非负,因此同一结果适用于自然数版本。

扩充语言与乘法的边界 ​

原来的加法、序语言没有量词消去。公式 ∃x(y=x+x) 定义偶数,而一元无量词线性等式、不等式的有限布尔组合,在足够大的正整数上必定真值恒定:每个线性原子最终恒真或恒假。偶数集合却永远交替。加入固定模数的同余谓词,才使这种投影结果能够无量词地表达。

即使允许所有固定模数,变量乘法仍不可定义。消去后的每个一元公式只含有限多个线性不等式与同余条件;在足够大的数上,不等式真值固定,同余部分以各模数的公倍数为周期。因此每个一元可定义集合最终周期。若乘法可定义,平方数集合也可定义;但给定正周期 p,选足够大的 n 使 n2 越过周期起点且 2n+1>p,则 n2+p 严格介于 n2 与 (n+1)2 之间,违背周期性。这给出了表达力的具体界限。

推论与应用

统一系数并保留参数条件 ​

先把存在量词内的无量词公式写成有限析取范式。整数上的严格不等式可改为非严格界,例如 s<t 等价于 s≤t−1;否定不等式反向并移动一单位;等式拆成两个非严格不等式,不等式 s≠t 拆成 s<t∨t<s。整除原子及其否定可以原样保留。因此,只需处理一支由线性非严格不等式和整除文字组成的合取。不含待消变量 x 的全部条件记为 Γ(y¯),随后始终保留。

设这一支中 x 的非零系数绝对值的最小公倍数为 L;若没有非零系数,取 L=1。对每个系数 a≠0,令正整数 d=L/|a|。不等式两边同乘 d 不改变真值。整除文字则使用

Dm(ax+t) ⟷ Dmd(d(ax+t)),

其否定也同样等价。这里模数和整个表达式必须同时乘 d;只缩放其中一方会改变解集。

现在置 z=Lx,并加入 DL(z),才能保证每个候选 z 可恢复为整数 x=z/L。即使原公式只有不等式,这一项也不能漏掉。缩放后 z 的系数只有 1 或 −1,所以不等式可整理成下界 ai(y¯)≤z 或上界 z≤bj(y¯)。把全部整除文字连同 DL(z) 合为 R(z,y¯),得到

∃z(Γ∧⋀i=1kai≤z∧⋀j=1hz≤bj∧R(z,y¯)).

ai,bj 都是整数线性参数项;这里没有引入取整函数。若 M 是 R 中各正模数的最小公倍数,包括 L,则

R(z+M,y¯) ⟷ R(z,y¯).

正整除文字和否定整除文字都具有这个周期。M 由公式的常数系数决定,不依赖参数赋值。

有下界时只查一个周期 ​

先假设已有一个最大的下界 a。对固定参数,

∃z(a≤z∧⋀j=1hz≤bj∧R(z,y¯))⟷⋁r=0M−1(⋀j=1ha+r≤bj∧R(a+r,y¯)).

右向左直接取 z=a+r。左向右,给定见证 z,对非负整数 z−a 作带余除法:z−a=qM+r,其中 q≥0、0≤r<M。于是 a≤a+r≤z,故新候选仍满足所有上界;又因它与原见证相差 qM,周期条件也保持。即使没有上界,这个证明仍然成立。

算法事先不知道哪个参数项最大,因此要枚举下界的索引。k>0 时,整支准确化为

Γ ∧ ⋁i=1k[(⋀ℓ=1kaℓ≤ai)∧⋁r=0M−1(⋀j=1hai+r≤bj∧R(ai+r,y¯))].

每个分支内的全部比较 aℓ≤ai 确保被选项确为最大下界。若多个项并列最大,可以有多支成立;析取不要求分支互斥。

无下界时向负方向选见证 ​

k=0 时,整支的结果是

Γ∧⋁r=0M−1R(r,y¯).

必要性来自对任一整数见证取模 M 的余数。反过来,若 R(r,y¯) 成立,选足够大的非负整数 q,让 z=r−qM 同时不超过有限多个上界 bj;周期性保持 R。没有上界时可直接取 q=0。这一分支依赖整数向负方向无界,不能照搬到自然数论域。

从单步消去到判定与自然数版本 ​

对有限析取范式的每支应用上述规则,再取析取,就消去一个存在量词。所有索引与余数枚举都有限;输出仍由线性不等式、固定模数整除条件及布尔联结词组成。于是可以沿公式语法树由内向外继续,遇到全称量词用 ∀xθ≡¬∃x¬θ。每步消去一个量词,整个过程终止;闭公式最终只剩可直接计算的整数比较与整除检验。这证明可判定性,没有给出多项式时间保证,析取范式展开本身就可能很大。

自然数公式先翻译到整数中:将 ∃xθ 改成 ∃x(0≤x∧θ),将 ∀xθ 改成 ∀x(0≤x→θ),递归处理每个量词,且只考察非负的自由参数赋值。新增的下界阻止算法用负数充当自然数见证。消去后,把含负系数的项移到等号或不等号另一侧,把 Dm(u−v) 写成二元同余 u≡v(modm),便回到扩充同余谓词的自然数语言。

这使含量词的线性整数可满足性、计数下标边界以及固定步长约束成为可计算的问题。它也说明Peano 算术与加法算术之间的差别不能仅用“都有归纳”概括:前者有变量乘法,归纳实例也允许使用乘法公式。Presburger 算术不具备第一不完备定理所要求的算术表达能力,因而其有效公理化与完备性并不冲突。完备、可判定仍不意味着模型唯一;一阶紧致性照样允许非标准模型。

参考资料
  • Cesare Tinelli,Quantifier Elimination — Presburger Arithmetic,讲义页脚 Spring 04,slides 11–26:扩充整数语言、系数统一与有限候选消去。本文使用便于逐支证明的有限析取范式版本,并自行展开模六算例。
  • Mojżesz Presburger,On the Completeness of a Certain System of Arithmetic of Whole Numbers in Which Addition Occurs as the Only Operation,Ryan Stansifer 英译与导言,TR 84-639,1984,PDF pp.8–16,尤其末尾关于有序扩展的补注:加法算术的公理化、同余与消去。这里区分自然数公理系统与用于算法的整数结构。
关系图谱7 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系

使用的工具