Free bits of the complete nonadaptive test
Lax323828.LongCodePatterns · concepts/Lax323828/LongCodePatterns.lean · lax-323828
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
For fixed random functions, record an accepting table only at queried coordinates, leaving other coordinates unspecified. There are at most distinct such answer patterns. The same bound holds when all the queries imposed by a side condition are included. Thus the CNA test and its extension both use at most free bits.
Patterns are explicitly enumerated as restrictions of accepting tables. The bound counts distinct patterns, not distinct tables: the unqueried entries of a table can be arbitrary.
Concept map
Evidence
Lean source view on GitHub
| 1 | import Lax323828.LongCode |
| 2 | import Mathlib.Data.Fintype.Option |
| 3 | import Mathlib.Data.Finset.Card |
| 4 | |
| 5 | /-! |
| 6 | --- |
| 7 | title: Free bits of the complete nonadaptive test |
| 8 | type: theorem |
| 9 | --- |
| 10 | For fixed random functions, record an accepting table only at queried |
| 11 | coordinates, leaving other coordinates unspecified. There are at most |
| 12 | distinct such answer patterns. The same bound holds when all the |
| 13 | queries imposed by a side condition are included. Thus the CNA test and |
| 14 | its extension both use at most free bits. |
| 15 | |
| 16 | Patterns are explicitly enumerated as restrictions of accepting tables. |
| 17 | The bound counts distinct patterns, not distinct tables: the unqueried |
| 18 | entries of a table can be arbitrary. |
| 19 | -/ |
| 20 | |
| 21 | namespace Lax323828.LongCodePatterns |
| 22 | |
| 23 | open scoped Classical |
| 24 | |
| 25 | open LongCode |
| 26 | |
| 27 | /-- A partial Boolean answer table; `none` marks an unqueried coordinate. -/ |
| 28 | abbrev Pattern (w : ℕ) := Coordinate w → Option Bool |
| 29 | |
| 30 | /-- Record the table answers on the queried coordinates and leave the others unspecified. -/ |
| 31 | noncomputable def restrict {w : ℕ} (Q : Coordinate w → Prop) (A : Table w) : |
| 32 | Pattern w := |
| 33 | fun g ↦ if Q g then some (A g) else none |
| 34 | |
| 35 | /-- All queried answer patterns arising from accepting tables. -/ |
| 36 | noncomputable def patterns {w s : ℕ} (f : Fin s → Coordinate w) : Finset (Pattern w) := |
| 37 | (Finset.univ.filter (fun A : Table w ↦ Accepts A f)).image (restrict (Queried f)) |
| 38 | |
| 39 | /-- A coordinate queried by the test or forced by agreement on the side condition. -/ |
| 40 | def SideQueried {w s : ℕ} (f : Fin s → Coordinate w) (h g' : Coordinate w) : Prop := |
| 41 | ∃ g, Queried f g ∧ AgreesOn h g g' |
| 42 | |
| 43 | /-- All queried answer patterns arising from tables accepted with the side condition. -/ |
| 44 | noncomputable def sidePatterns {w s : ℕ} (f : Fin s → Coordinate w) |
| 45 | (h : Coordinate w) : Finset (Pattern w) := |
| 46 | (Finset.univ.filter (fun A : Table w ↦ AcceptsWithCondition A f h)).image |
| 47 | (restrict (SideQueried f h)) |
| 48 | |
| 49 | axiom free_bits {w s : ℕ} (f : Fin s → Coordinate w) : |
| 50 | (patterns f).card ≤ 2 ^ s |
| 51 | |
| 52 | axiom side_free_bits {w s : ℕ} (f : Fin s → Coordinate w) (h : Coordinate w) : |
| 53 | (sidePatterns f h).card ≤ 2 ^ s |
| 54 | |
| 55 | end Lax323828.LongCodePatterns |
| 56 |
Builds on
Used by
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments