FormalConjectures/Paper/TuDengConjecture.lean

GitHub source file

Explanation legend Lean4 Domain Explanation Language (L4DEL)

L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.

L4DEL
Lean4 Domain Explanation Language

Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.

Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1

2 declarations, 1 contain sorry, 0 declared as axioms

Tu-Deng Conjecture

References:

For an integer $k \ge 2$, identify the residues modulo $2^k - 1$ with the integers $0, 1, \dots, 2^k - 2$, and let $w(a)$ denote the binary weight of $a$ (the number of ones in its binary expansion). The Tu-Deng conjecture states that for every residue $t \ne 0$,

$$\#\{(a, b) : a + b \equiv t \pmod{2^k - 1},\ w(a) + w(b) \le k - 1\} \le 2^{k-1}.$$

Tu and Deng showed that this combinatorial statement implies that their constructions of Boolean functions (a bent class and a balanced class) achieve optimal algebraic immunity, which is the motivation for the conjecture. They verified the conjecture numerically for $k \le 29$ (Remark 3.1 of the ePrint version).

The conjecture is no longer open: [LLX26] and, independently, [Cu26] give complete proofs. [Lean26] is a Lean 4 development of the same bound, stated for the count of natural-number representatives $x < 2^k - 1$ rather than for the set of residue pairs used below.

Imports (1)
  1. def TuDengConjecture.binaryWeight The binary weight of a natural number: the number of ones in its binary expansion line 56 source

    Source documentation

    The binary weight of a natural number: the number of ones in its binary expansion.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat

    Proof uses: List.sum, Nat.digits, OfNat.ofNat

    4 instances, coercions and auxiliary constants left out.

    def binaryWeight (n : ℕ) : ℕ := (Nat.digits 2 n).sum
    …
  2. theorem TuDengConjecture.tu_deng_conjecture The Tu-Deng conjecture sorry line 66 source

    Source documentation

    The Tu-Deng conjecture. For $k \ge 2$ and a nonzero residue $t$ modulo $2^k - 1$, there are at most $2^{k-1}$ pairs of residues $(a, b)$ with $a + b = t$ whose binary weights (of their representatives in $0, \dots, 2^k - 2$) sum to at most $k - 1$.

    Proved in [LLX26] and independently in [Cu26]; see also the Lean development [Lean26].

    depends on sorry what this means

    Statement uses: Nat, LE.le, OfNat.ofNat, ZMod, HSub.hSub, HPow.hPow, Ne, Set.ncard, Prod, Set.ofPred, And, Eq, HAdd.hAdd, Prod.fst, Prod.snd, TuDengConjecture.binaryWeight, ZMod.val

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    36 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem tu_deng_conjecture (k : ℕ) (hk : 2 ≤ k) (t : ZMod (2 ^ k - 1)) (ht : t ≠ 0) :
        {p : ZMod (2 ^ k - 1) × ZMod (2 ^ k - 1) |
            p.1 + p.2 = t ∧ binaryWeight p.1.val + binaryWeight p.2.val ≤ k - 1}.ncard
          ≤ 2 ^ (k - 1) := by
    …

    Mentions: TuDengConjecture.binaryWeight