Documentation

Complexitylib.Metacomplexity.BooleanDependency.Encoding.Internal

Canonical encoding of finite Boolean assignments and tables -- proof internals #

theorem Complexity.BooleanDependency.OrderedAssignment.card_internal {coordinate : Type u_1} [LinearOrder coordinate] (coordinates : Finset coordinate) :
Fintype.card (OrderedAssignment coordinates) = 2 ^ coordinates.card
theorem Complexity.BooleanDependency.length_encodeAssignment_internal {coordinate : Type u_1} [LinearOrder coordinate] (coordinates : Finset coordinate) (assignment : coordinatesBool) :
(encodeAssignment coordinates assignment).length = coordinates.card
theorem Complexity.BooleanDependency.decodeAssignment?_encodeAssignment_internal {coordinate : Type u_1} [LinearOrder coordinate] (coordinates : Finset coordinate) (assignment : coordinatesBool) :
decodeAssignment? coordinates (encodeAssignment coordinates assignment) = some assignment
theorem Complexity.BooleanDependency.encodeAssignment_injective_internal {coordinate : Type u_1} [LinearOrder coordinate] (coordinates : Finset coordinate) :
theorem Complexity.BooleanDependency.decodeAssignment?_eq_none_iff_internal {coordinate : Type u_1} [LinearOrder coordinate] (coordinates : Finset coordinate) (bits : List Bool) :
decodeAssignment? coordinates bits = none bits.length coordinates.card
theorem Complexity.BooleanDependency.length_encodeTable_internal {coordinate : Type u_1} [LinearOrder coordinate] (coordinates : Finset coordinate) (table : (coordinatesBool)Bool) :
(encodeTable coordinates table).length = 2 ^ coordinates.card
theorem Complexity.BooleanDependency.decodeTable?_encodeTable_internal {coordinate : Type u_1} [LinearOrder coordinate] (coordinates : Finset coordinate) (table : (coordinatesBool)Bool) :
decodeTable? coordinates (encodeTable coordinates table) = some table
theorem Complexity.BooleanDependency.encodeTable_injective_internal {coordinate : Type u_1} [LinearOrder coordinate] (coordinates : Finset coordinate) :
theorem Complexity.BooleanDependency.decodeTable?_eq_none_iff_internal {coordinate : Type u_1} [LinearOrder coordinate] (coordinates : Finset coordinate) (bits : List Bool) :
decodeTable? coordinates bits = none bits.length 2 ^ coordinates.card