pub struct TailWord {
pub real: u32,
pub mid: Vec<bool>,
pub tail_top: bool,
}Expand description
A finite trace completed with a constant tail, the infinite words Annex F’s
satisfaction relations are defined over (F.5.3.2): w followed by ⊤^ω is
the WEAK verdict word (nothing has failed yet), w followed by ⊥^ω the
STRONG one (everything still owed has failed). A letter ⊤ satisfies every
Boolean expression, a letter ⊥ none – not even 1'b1 (F.5.3).
Ticks 0..real are the trace’s real samples (a leaf is evaluated there);
then come the explicit mid letters (true is ⊤), then tail_top
forever. mid exists because a ⊥-tailed word cut at a later tick and
completed with ⊤ (w^{0,i-1}⊤^ω, accept_on/weak) has a run of ⊥
letters before its ⊤ tail.
Fields§
§real: u32§mid: Vec<bool>§tail_top: boolImplementations§
Source§impl TailWord
impl TailWord
Sourcepub fn extent(&self) -> u32
pub fn extent(&self) -> u32
The first tick whose letter is the constant tail: every later tick looks
the same, so a property cannot tell tick extent() from any tick after.
Sourcepub fn letter(&self, tick: u32) -> Option<bool>
pub fn letter(&self, tick: u32) -> Option<bool>
Some(true) for a ⊤ letter, Some(false) for ⊥, None for a real
sample at tick.
Sourcepub fn flip(&self) -> Self
pub fn flip(&self) -> Self
The dual word w̄ (F.5.3.1: w ⊨ not P iff w̄ ⊭ P): every ⊤ letter
becomes ⊥ and vice versa. The real samples are untouched.
Sourcepub fn cut_then_top(&self, n: u32) -> Self
pub fn cut_then_top(&self, n: u32) -> Self
w^{0,n-1}⊤^ω: the first n letters, then ⊤ forever (the word
weak(R) and accept_on complete a prefix with, F.5.3.1).
Trait Implementations§
impl Eq for TailWord
impl StructuralPartialEq for TailWord
Auto Trait Implementations§
impl Freeze for TailWord
impl RefUnwindSafe for TailWord
impl Send for TailWord
impl Sync for TailWord
impl Unpin for TailWord
impl UnsafeUnpin for TailWord
impl UnwindSafe for TailWord
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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.