Documentation

Acmoi.Basic

VC-dimensions of nondeterministic finite automata for words of equal length #

Definition 10, Lemma 11, and Lemma 12 from the paper.
(Bonus material for ac-exercises)
theorem rescue_lemma_12 {m : } :
2 * (m + 1) + 1 < 2 ^ Nat.clog 2 (2 * m.succ).succ
def ν₂ (n : ) :

ν₂ is called t in the paper.

Equations
Instances For
    theorem ν₂_odd (n : ) :
    ν₂ (2 * n + 1) = 0
    theorem ν₂_2 (n : ) (h : 0 < n) :
    ν₂ (2 * n) = ν₂ n + 1
    theorem bits_odd {n : } :
    (2 * n + 1).bits = true :: n.bits
    theorem bits_even {n : } (h : n 0) :
    (2 * n).bits = false :: n.bits
    theorem length_map_sum (l : List Bool) :
    (List.map Bool.toNat l).sum l.length
    def hammingBits (n : ) :
    Equations
    Instances For
      theorem hammingBits_odd (n : ) :
      theorem mentioned_in_lemma_12 {n : } {s : } (h : n < 2 ^ s) :
      theorem andhence {m : } :
      hammingBits (2 * m.succ) < Nat.clog 2 (2 * m.succ).succ
      theorem ν₂_hammingBits (n : ) :
      ν₂ (n + 1) + hammingBits (n + 1) = hammingBits n + 1
      def arndt :

      This function is called a at https://oeis.org/A005187 and we name it in honor of Jörg Arndt.

      Equations
      Instances For
        theorem lemma11 (m : ) :
        arndt m + hammingBits (2 * m) = 2 * m

        Jörg Arndt (2019) claimed this without proof as a resolution of a conjecture of Benoit Cloitre (2003). Cloitre is a coauthor of Shallit (2023) and Jean-Paul Allouche.

        theorem lemma12 (n : ) :
        arndt n + Nat.clog 2 n.succ 2 * n