const APR_MAGIC_V2: [u8; 4] = [0x41, 0x50, 0x52, 0x00];
const APR_MAGIC_V1: [u8; 4] = [0x41, 0x50, 0x52, 0x4E];
#[cfg(kani)]
#[kani::proof]
fn verify_magic_bytes_distinct() {
assert_ne!(APR_MAGIC_V1, APR_MAGIC_V2);
assert_eq!(APR_MAGIC_V1[0], APR_MAGIC_V2[0]); assert_eq!(APR_MAGIC_V1[1], APR_MAGIC_V2[1]); assert_eq!(APR_MAGIC_V1[2], APR_MAGIC_V2[2]); assert_ne!(APR_MAGIC_V1[3], APR_MAGIC_V2[3]); }
#[cfg(kani)]
#[kani::proof]
fn verify_tensor_element_count_no_overflow() {
let rows: u32 = kani::any();
let cols: u32 = kani::any();
kani::assume(rows <= 1_048_576);
kani::assume(cols <= 1_048_576);
let element_count = (rows as u64) * (cols as u64);
assert!(element_count <= u64::MAX);
assert!(element_count <= usize::MAX as u64);
}
#[cfg(kani)]
#[kani::proof]
fn verify_alignment_padding_bounded() {
let offset: u64 = kani::any();
let alignment: u64 = kani::any();
kani::assume(alignment > 0);
kani::assume(alignment.is_power_of_two());
kani::assume(alignment <= 4096);
let padding = (alignment - (offset % alignment)) % alignment;
assert!(padding < alignment);
}
#[cfg(kani)]
#[kani::proof]
fn verify_shape_reversal_involutory() {
let dim0: u32 = kani::any();
let dim1: u32 = kani::any();
kani::assume(dim0 > 0);
kani::assume(dim1 > 0);
let original = [dim0, dim1];
let reversed = [original[1], original[0]];
let double_reversed = [reversed[1], reversed[0]];
assert_eq!(original, double_reversed);
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_magic_bytes_constants() {
assert_eq!(&APR_MAGIC_V2, b"APR\0");
assert_eq!(&APR_MAGIC_V1, b"APRN");
}
#[test]
fn test_alignment_padding() {
let padding = (64 - (0_u64 % 64)) % 64;
assert_eq!(padding, 0);
let padding = (64 - (60_u64 % 64)) % 64;
assert_eq!(padding, 4);
}
}