OAI/Combinatorics/ContingencyTables/Machines/IntegerMatrixProgram.lean
29 declarations, 0 contain sorry, 0 declared as axioms
Binary integer matrix propagation for exact law tabulation
- def
OAI.ContingencyTables.IntegerMatrixPrograms.dotline 13Source documentation
Missing coordinates are zero. The loop runs over the vector's length.
def dot (z : List ℕ×List ℕ) : ℕ := …
- def
OAI.ContingencyTables.IntegerMatrixPrograms.entryRealizerline 16 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.polynomial_entryline 22 - def
OAI.ContingencyTables.IntegerMatrixPrograms.dotRealizerline 31 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.polynomial_dotline 38 - def
OAI.ContingencyTables.IntegerMatrixPrograms.propagateline 48Source documentation
A matrix is stored by columns, so each new coordinate is one dot product.
def propagate (z : List (List ℕ)×List ℕ) : List ℕ := …
- def
OAI.ContingencyTables.IntegerMatrixPrograms.propagateRealizerline 51 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.polynomial_propagateline 54 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.range_sumline 58 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.dot_ofFnline 66 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.propagate_ofFnline 74 - def
OAI.ContingencyTables.IntegerMatrixPrograms.stepline 80Source documentation
One iteration retains the transition table unchanged.
def step (z : ℕ×(List (List ℕ)×List ℕ)) : List (List ℕ)×List ℕ := …
- def
OAI.ContingencyTables.IntegerMatrixPrograms.stepRealizerline 83 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.polynomial_stepline 86 - def
OAI.ContingencyTables.IntegerMatrixPrograms.iterateline 90 - def
OAI.ContingencyTables.IntegerMatrixPrograms.iterateRealizerline 93 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.countDown_tableline 96 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.iterate_succline 102 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.iterate_ofFnline 105 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.dot_nilline 129 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.dot_consline 131 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.dot_leline 142 - def
OAI.ContingencyTables.IntegerMatrixPrograms.matrixTotalline 154 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.propagate_sum_leline 156 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.sum_size_le_weightline 165 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.matrixTotal_size_le_weightline 175 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.pow_size_leline 187 - lemma
OAI.ContingencyTables.IntegerMatrixPrograms.weight_of_entry_boundline 195 - theorem
OAI.ContingencyTables.IntegerMatrixPrograms.work_iterateline 206Source documentation
The iteration bound uses the number of steps and the binary input size. The numerical values of the matrix entries never control a loop.
theorem work_iterate : WorkBound iterateRealizer (fun z => z.1+weight z.2) := by …Mentions: OAI.ContingencyTables.IntegerMatrixPrograms.iterateRealizer