mirror of
https://github.com/GaloisInc/cryptol.git
synced 2024-12-17 21:11:35 +03:00
22 lines
689 B
Plaintext
22 lines
689 B
Plaintext
/*
|
|
* Copyright (c) 2013-2016 Galois, Inc.
|
|
* Distributed under the terms of the BSD3 license (see LICENSE file)
|
|
*/
|
|
module LittleEndian where
|
|
|
|
|
|
// Takes a finite sequence of bytes, and turns them into a word via
|
|
// a little-endian interpretation
|
|
littleendian : {a}(fin a) => [a][8] -> [a*8]
|
|
littleendian b = join(reverse b)
|
|
|
|
property littleendian_passes_tests =
|
|
(littleendian [ 0, 0, 0, 0] == 0x00000000) &&
|
|
(littleendian [ 86, 75, 30, 9] == 0x091e4b56) &&
|
|
(littleendian [255, 255, 255, 250] == 0xfaffffff)
|
|
|
|
littleendian_inverse : [32] -> [4][8]
|
|
littleendian_inverse b = reverse(split b)
|
|
|
|
property littleendian_is_invertable b = littleendian_inverse(littleendian b) == b
|