pub struct WcetRecursionCert {
pub self_label: String,
pub max_depth: u64,
pub hint: u64,
}Expand description
(#778 phase 4 / #49) A proven SELF-recursion certificate: the function is a
single-self-call chain whose controlling value is entry-independently bounded
(a masked-slot counter decreasing by a const step toward a base guard on the
SAME masked quantity), so its maximum recursion DEPTH is DERIVED (not
hint-supplied) as an entry-independent ceiling. The composer folds the self-edge
as frame_count × frame_cost (frame_count = max_depth + 1, counting the base
frame) instead of declining Recursion.
A certificate is attached ONLY after the depth was cross-checked against a
--wcet-hints recursion_depth entry (the untrusted oracle asserts intent;
synth’s derived ceiling is what is emitted). Without a hint the recursion still
declines (a bound this consequential is opt-in, mirroring the equality-exit
loop-hint gate). self_label is the function’s own func_<idx> self-call label
so the composer can identify and special-case exactly that edge.
Fields§
§self_label: StringThe self-call BL label (func_<idx>) this certificate authorizes.
max_depth: u64The DERIVED maximum recursion depth (entry-independent ceiling). The base
frame is NOT included here — the composer uses max_depth + 1 frames.
hint: u64The hint value that gated this certificate (recorded for the sidecar; the
emitted depth is always the derived max_depth, never the raw hint).
Trait Implementations§
Source§impl Clone for WcetRecursionCert
impl Clone for WcetRecursionCert
Source§fn clone(&self) -> WcetRecursionCert
fn clone(&self) -> WcetRecursionCert
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for WcetRecursionCert
impl Debug for WcetRecursionCert
impl Eq for WcetRecursionCert
Source§impl PartialEq for WcetRecursionCert
impl PartialEq for WcetRecursionCert
impl StructuralPartialEq for WcetRecursionCert
Auto Trait Implementations§
impl Freeze for WcetRecursionCert
impl RefUnwindSafe for WcetRecursionCert
impl Send for WcetRecursionCert
impl Sync for WcetRecursionCert
impl Unpin for WcetRecursionCert
impl UnsafeUnpin for WcetRecursionCert
impl UnwindSafe for WcetRecursionCert
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.