2026-10-31 06:50:40 +00:00
2026-10-31 06:50:40 +00:00
2026-10-31 06:50:40 +00:00
2026-10-31 06:50:40 +00:00
2026-10-31 06:50:40 +00:00
2026-10-31 06:50:40 +00:00
2026-10-31 06:50:40 +00:00
2026-10-31 06:50:40 +00:00
2026-10-31 06:50:40 +00:00
2026-10-31 06:50:40 +00:00

Span

Span implements a branch relaxing assembler in Isabelle/HOL, with proofs of termination, minimum layout size and execution correspondence for a bytecode machine with signed 8-bit and 16-bit relative branches

Correctness

An overflowing short branch must be wide in every valid assignment. Relaxation computes the least widening set terminating on the number of remaining short branches. A final range check decides whether any valid layout exists

Encoding proves byte bounds and decoder inversion and Execution correspondence relates source execution S and bytecode execution B through relocation R for every fuel bound (including suspended states)

Minimality assumes fixed instruction order and excludes alignment directives while the machine uses a natural valued accumulator and biased little endian branch payloads. The execution theorem starts from resolved instructions and excludes the SML compiler, runtime and OS I/O

S
Description
Verified branch relaxing assembler in Isabelle/HOL with provably minimal bytecode layouts
https://tangled.org/james.dad.town/span
Readme
1.6 MiB
0 Stars 1 Watchers 0 Forks
Languages
Isabelle 71.2%
Python 19.3%
Standard ML 8%
Makefile 1.1%
Shell 0.4%