Presburger definability and semilinear sets #
This file formalizes the classical result that Presburger definable sets are the same as semilinear sets. As an application of this result, we show that the graph of multiplication is not Presburger definable.
Main Results #
presburger.definable_iff_isSemilinearSet: a set is Presburger definable inℕif and only if it is semilinear.presburger.definable₁_iff_ultimately_periodic: in the 1-dimensional case, a set is Presburger arithmetic definable inℕif and only if it is ultimately periodic, i.e. periodic after some numberk.presburger.mul_not_definable: the graph of multiplication is not Presburger definable inℕ.
References #
- Seymour Ginsburg and Edwin H. Spanier, Bounded ALGOL-Like Languages
- [Seymour Ginsburg and Edwin H. Spanier, Semigroups, Presburger Formulas, and Languages][ ginsburg1966]
- Samuel Eilenberg and M. P. Schützenberger, Rational Sets in Commutative Monoids
theorem
IsLinearSet.definable
{α : Type u_1}
{s : Set (α → ℕ)}
{A : Set ℕ}
[Finite α]
(hs : IsLinearSet s)
:
theorem
IsSemilinearSet.definable
{α : Type u_1}
{s : Set (α → ℕ)}
{A : Set ℕ}
[Finite α]
(hs : IsSemilinearSet s)
:
theorem
FirstOrder.Language.presburger.term_realize_eq_add_dotProduct
{α : Type u_1}
{A : Set ℕ}
[Fintype α]
(t : (presburger.withConstants ↑A).Term α)
:
theorem
FirstOrder.Language.presburger.isSemilinearSet_boundedFormula_realize
{α : Type u_1}
{A : Set ℕ}
[Finite α]
{n : ℕ}
(φ : (presburger.withConstants ↑A).BoundedFormula α n)
:
theorem
FirstOrder.Language.presburger.isSemilinearSet_formula_realize_semilinear
{α : Type u_1}
{A : Set ℕ}
[Finite α]
(φ : (presburger.withConstants ↑A).Formula α)
:
In the 1-dimensional case, a set is Presburger arithmetic definable in ℕ if and only if it
is ultimately periodic, i.e. periodic after some number k.