pub struct PlacementCertificate { /* private fields */ }Expand description
A machine-checkable certificate that a placed mapping grid computes its datapath spec for every bounded
assignment. It carries the refuted CNF (¬(grid ≡ datapath)) and the propagation-redundancy + RUP
refutation of it. It is self-contained: recheck needs nothing but the certificate.
Implementations§
Source§impl PlacementCertificate
impl PlacementCertificate
Sourcepub fn recheck(&self) -> bool
pub fn recheck(&self) -> bool
Re-verify the certificate INDEPENDENTLY. Trusts only the small PR/RUP checker — not the prover, placer, or emitter that produced it. This is the audit a third party runs to confirm our place-and-route without re-deriving anything: it replays the refutation against the original CNF and returns whether every step is redundancy-sound and the empty clause is reached.
Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
The number of refutation steps carried — the size of the shipped proof.
pub fn is_empty(&self) -> bool
Sourcepub fn digest(&self) -> u64
pub fn digest(&self) -> u64
A stable 64-bit digest of the whole certificate — the refuted CNF and every refutation step, witnesses included (FNV-1a over the literal codes) — so a summary that travels without the object is bound to it: a dropped step, a changed clause or a different obligation is a different digest.
Sourcepub fn with_last_step_removed(&self) -> Self
pub fn with_last_step_removed(&self) -> Self
A tampered copy: the final refutation step is dropped, so the empty clause is no longer derived. Used to
prove the checker is load-bearing — recheck on the result must return false.
Trait Implementations§
Source§impl Clone for PlacementCertificate
impl Clone for PlacementCertificate
Source§fn clone(&self) -> PlacementCertificate
fn clone(&self) -> PlacementCertificate
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for PlacementCertificate
impl RefUnwindSafe for PlacementCertificate
impl Send for PlacementCertificate
impl Sync for PlacementCertificate
impl Unpin for PlacementCertificate
impl UnsafeUnpin for PlacementCertificate
impl UnwindSafe for PlacementCertificate
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.