pub struct StructuralBound {
pub num_vars: usize,
pub whole: DescriptionBound,
pub rep: DescriptionBound,
pub gens: DescriptionBound,
pub group_entropy_bits: f64,
}Expand description
A certified statement that F is described by an orbit-representative set plus automorphism
generators — with all three description lengths, the group-entropy, and a self-contained decode
witness. StructuralBound::verify re-derives F, rep, and the generators from the three
descriptors and confirms the generators are automorphisms and that expanding rep by the group
they generate reproduces F exactly.
Fields§
§num_vars: usizeThe number of Boolean variables F is defined over.
whole: DescriptionBoundK̄(F): the flat description of the whole formula.
rep: DescriptionBoundK̄(rep): the description of one clause per orbit.
gens: DescriptionBoundK̄(gens): the description of the automorphism generators.
group_entropy_bits: f64log₂|Aut(F)| — the bits of symmetry the group compresses out.
Implementations§
Source§impl StructuralBound
impl StructuralBound
Sourcepub fn group_bytes(&self) -> usize
pub fn group_bytes(&self) -> usize
The group description length: K̄(rep) + K̄(gens) + O(1).
Sourcepub fn is_compression(&self) -> bool
pub fn is_compression(&self) -> bool
Whether the group description is strictly shorter than the flat one — a certified compression by symmetry. (When it is not, we honestly report the flat encoding as the better bound.)
Sourcepub fn best_bytes(&self) -> usize
pub fn best_bytes(&self) -> usize
The best certified upper bound on K(F): the smaller of the flat and group descriptions.
Sourcepub fn verify(&self) -> bool
pub fn verify(&self) -> bool
Re-check the whole certificate from scratch, trusting nothing the producer computed:
(1) all three decode witnesses round-trip; (2) every recovered generator is a genuine
automorphism of the recovered F; (3) expanding rep by the group the generators generate
reproduces F exactly (so rep + gens is a complete description).
Trait Implementations§
Source§impl Clone for StructuralBound
impl Clone for StructuralBound
Source§fn clone(&self) -> StructuralBound
fn clone(&self) -> StructuralBound
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more