extern_spec_i16_overflowing_sub

Function extern_spec_i16_overflowing_sub 

Source
pub fn extern_spec_i16_overflowing_sub(self_: i16, rhs: i16) -> (i16, bool)
Expand description

extern spec for i16::overflowing_sub

This is not a real function: its only use is for documentation.

terminates

ghost

ensures

(self@ $op rhs@) >= $type::MIN@ && (self@ $op rhs@) <= $type::MAX@
                    ==> result.0@ == (self@ $op rhs@)

ensures

exists<k: Int> result.0@ == (self@ $op rhs@) + k * ($type::MAX@ - $type::MIN@ + 1)

ensures

result.1 == ((self@ $op rhs@) < $type::MIN@ || (self@ $op rhs@) > $type::MAX@)