File size: 1,116 Bytes
4951e76
 
 
 
 
 
1
2
3
4
5
6
7
{"item_id": "ker-ring_ctr", "crate_dir": "../../bench/kernels/ring_ctr/pre", "lib_name": "k_ring_ctr_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": "increment_by", "args": [["old_value", "u32"], ["increment_by", "u32"]], "pre": "true", "post": "r == (((old_value as u64) + (increment_by as u64)) % (1u64 << 32)) as u32", "ret": "u32", "basis": "increments the 32-bit counter, wrapping modulo 2^32"},
  {"id": "p2", "fn": "increment_by", "args": [["old_value", "u32"], ["increment_by", "u32"]], "pre": "true", "post": "increment_by != 0 || r == old_value", "ret": "u32", "basis": "incrementing by zero leaves the counter unchanged"},
  {"id": "p3", "fn": "increment_by", "args": [["old_value", "u32"], ["increment_by", "u32"]], "pre": "true", "post": "(((old_value as u64) + (increment_by as u64)) >= (1u64 << 32)) == (r < old_value)", "ret": "u32", "basis": "wraps modulo 2^32: result is below old_value exactly when the sum overflowed 32 bits"}
 ]}