align / code /bugfind /baselines /bank /evm_memset.json
viai957's picture
Add files using upload-large-folder tool
4951e76 verified
Raw History Blame Contribute Delete
2.12 kB
{"item_id": "ker-evm_memset", "crate_dir": "../../bench/kernels/evm_memset/pre", "lib_name": "k_evm_memset_pre", "provenance": {"author": "claude-sonnet subagent, blind", "written_from": "signature + doc string only", "saw_source": false, "saw_diff": false, "saw_advisory": false},
"properties": [
{"id": "p1", "fn": "memory_set_len", "args": [["cur_len", "usize"], ["offset", "usize"], ["value_len", "usize"], ["target_size", "opt_usize"], ["limit", "usize"]], "pre": "true", "post": "{ let size = target_size.unwrap_or(value_len); !((offset as u128) + (size as u128) > limit as u128) || r.is_err() }", "ret": "Result<usize, u8>", "basis": "Err if offset+target_size exceeds limit (target_size defaults to value_len), in exact arithmetic"},
{"id": "p2", "fn": "memory_set_len", "args": [["cur_len", "usize"], ["offset", "usize"], ["value_len", "usize"], ["target_size", "opt_usize"], ["limit", "usize"]], "pre": "true", "post": "!(value_len == 0 && target_size.is_none() && offset <= limit) || r == Ok(cur_len)", "ret": "Result<usize, u8>", "basis": "Writing an empty value must not grow memory"},
{"id": "p3", "fn": "memory_set_len", "args": [["cur_len", "usize"], ["offset", "usize"], ["value_len", "usize"], ["target_size", "opt_usize"], ["limit", "usize"]], "pre": "true", "post": "{ let size = target_size.unwrap_or(value_len); match &r { Ok(n) => *n >= cur_len && (size == 0 || (*n as u128) >= (offset as u128) + (size as u128)) && (offset as u128) + (size as u128) <= limit as u128, Err(_) => true } }", "ret": "Result<usize, u8>", "basis": "New length after writing size bytes at offset covers the written range, never shrinks, and Ok implies within limit"},
{"id": "p4", "fn": "memory_set_len", "args": [["cur_len", "usize"], ["offset", "usize"], ["value_len", "usize"], ["target_size", "opt_usize"], ["limit", "usize"]], "pre": "true", "post": "{ let size = target_size.unwrap_or(value_len); !(size > 0 && (offset as u128) + (size as u128) <= limit as u128) || r.is_ok() }", "ret": "Result<usize, u8>", "basis": "a non-empty write that fits within limit succeeds (Err only when exceeding limit)"}
]}