liquidhaskell-0.8.0.2: include/Data/ByteString/Short.spec
module spec Data.ByteString.Short where
import Data.String
measure sbslen :: Data.ByteString.Short.ShortByteString -> { n : Int | 0 <= n }
invariant { bs : Data.ByteString.Short.ShortByteString | 0 <= sbslen bs }
invariant { bs : Data.ByteString.Short.ShortByteString | sbslen bs == stringlen bs }
assume toShort
:: i : Data.ByteString.ByteString
-> { o : Data.ByteString.Short.ShortByteString | sbslen o == bslen i }
assume fromShort
:: o : Data.ByteString.Short.ShortByteString
-> { i : Data.ByteString.ByteString | bslen i == sbslen o }
assume pack
:: w8s : [Data.Word.Word8]
-> { bs : Data.ByteString.Short.ShortByteString | sbslen bs == len w8s }
assume unpack
:: bs : Data.ByteString.Short.ShortByteString
-> { w8s : [Data.Word.Word8] | len w8s == sbslen bs }
assume empty :: { bs : Data.ByteString.Short.ShortByteString | sbslen bs == 0 }
assume null
:: bs : Data.ByteString.Short.ShortByteString
-> { b : Bool | b <=> sbslen bs == 0 }
assume length
:: bs : Data.ByteString.Short.ShortByteString -> { n : Int | sbslen bs == n }
index
:: bs : Data.ByteString.Short.ShortByteString
-> { n : Int | 0 <= n && n < sbslen bs }
-> Data.Word.Word8