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.succ).succ < 2 ^ Nat.clog 2 (2 * m.succ).succ
def ν₂ (n : ) :

ν₂ is called t in the paper.

Equations
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
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
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