Skip to main content

rev_postcondition

Function rev_postcondition 

Source
pub broadcast proof fn rev_postcondition<I: DoubleEndedIteratorSpec>(i: I)
Expand description
requires
i.obeys_prophetic_iter_laws(),
i.initial_value_relation(&i),
rev_post(i, into_rev_spec(i)),
ensures
{
    let r = #[trigger] into_rev_spec(i);
    &&& IteratorSpec::remaining(&r) == IteratorSpec::remaining(&i).reverse()
    &&& IteratorSpec::will_return_none(&r) == i.will_return_none()
    &&& IteratorSpec::decrease(&r) is Some == i.decrease() is Some
    &&& IteratorSpec::initial_value_relation(&r, &r)

},