Threshold and remainder sets are semilinear (CRN-3) #
Helper lemmas for IsSemilinearPred.isSemilinearSet, through Mathlib's semilinear sets: the
solutions of a linear equation A + ∑ⱼ pⱼ zⱼ = B + ∑ⱼ p'ⱼ zⱼ over ℕ form a semilinear set
(isSemilinearSet_setOf_eq), and semilinear sets are closed under projection
(IsSemilinearSet.proj). Write aᵢ = a⁺ᵢ - a⁻ᵢ, c = c⁺ - c⁻ with natural parts; then
∑ aᵢ xᵢ < ciff∃ k, ∑ a⁺ᵢ xᵢ + c⁻ + 1 + k = ∑ a⁻ᵢ xᵢ + c⁺(one slack variable);∑ aᵢ xᵢ ≡ c (mod m)iff∃ k₁ k₂, ∑ a⁺ᵢ xᵢ + c⁻ + m k₁ = ∑ a⁻ᵢ xᵢ + c⁺ + m k₂.