OAI/Combinatorics/ContingencyTables/Sampling/GreedyPublicProgram.lean
17 declarations, 0 contain sorry, 0 declared as axioms
Parsing the public margins and printing the greedy matrix
All operations are existing binary list programs. The bounded take and drop operations also terminate polynomially on malformed headers.
- def
OAI.ContingencyTables.GreedyFeasibleTable.marginListsline 19Source documentation
The first two natural numbers give the lengths of the two margins.
def marginLists (ns : List ℕ) : List ℕ × List ℕ := …
- def
OAI.ContingencyTables.GreedyFeasibleTable.marginListsRealizerline 25 - lemma
OAI.ContingencyTables.GreedyFeasibleTable.polynomial_marginListsline 32 - def
OAI.ContingencyTables.GreedyFeasibleTable.printMatrixline 45 - def
OAI.ContingencyTables.GreedyFeasibleTable.printMatrixRealizerline 48 - lemma
OAI.ContingencyTables.GreedyFeasibleTable.polynomial_printMatrixline 51 - def
OAI.ContingencyTables.GreedyFeasibleTable.publicGreedyline 54 - def
OAI.ContingencyTables.GreedyFeasibleTable.publicGreedyRealizerline 58 - theorem
OAI.ContingencyTables.GreedyFeasibleTable.polynomial_publicGreedyline 64Source documentation
One fixed program parses dimensions, computes all greedy cells and prints the public binary matrix representation in polynomial bit time.
theorem polynomial_publicGreedy : PolynomialTime publicGreedyRealizer := …
Mentions: OAI.ContingencyTables.GreedyFeasibleTable.publicGreedyRealizer
- lemma
OAI.ContingencyTables.GreedyFeasibleTable.natWords_foldline 69 - lemma
OAI.ContingencyTables.GreedyFeasibleTable.parse_natWordsline 76 - lemma
OAI.ContingencyTables.GreedyFeasibleTable.encodeMargins_natWordsline 79 - lemma
OAI.ContingencyTables.GreedyFeasibleTable.marginLists_specline 85 - lemma
OAI.ContingencyTables.GreedyFeasibleTable.printMatrix_ofFnline 92 - theorem
OAI.ContingencyTables.GreedyFeasibleTable.publicGreedy_specline 99Source documentation
The actual parser/program/printer computes the mathematically proved initializer on the exact public input encoding.
theorem publicGreedy_spec {m n : ℕ} (r : Fin m → ℕ) (c : Fin n → ℕ) : publicGreedy (Algorithms.encodeMargins r c)=Algorithms.encodeMatrix (matrix r c) := by …Mentions: OAI.ContingencyTables.GreedyFeasibleTable.publicGreedy, OAI.ContingencyTables.Algorithms.encodeMargins, OAI.ContingencyTables.Algorithms.encodeMatrix, OAI.ContingencyTables.GreedyFeasibleTable.matrix
- lemma
OAI.ContingencyTables.GreedyFeasibleTable.publicGreedy_suffixline 111Source documentation
Extra encoded parameters after the margins do not change initialization.
lemma publicGreedy_suffix {m n : ℕ} (r : Fin m → ℕ) (c : Fin n → ℕ) (ns : List ℕ) : publicGreedy (Algorithms.encodeMargins r c++ns.flatMap encodeNat)= Algorithms.encodeMatrix (matrix r c) := by …Mentions: OAI.ContingencyTables.GreedyFeasibleTable.publicGreedy, OAI.ContingencyTables.Algorithms.encodeMargins, OAI.ContingencyTables.Algorithms.encodeMatrix, OAI.ContingencyTables.GreedyFeasibleTable.matrix
- lemma
OAI.ContingencyTables.GreedyFeasibleTable.publicGreedy_samplingline 124