Lock tables, wait-for cycles, version chains, and snapshot reads are recomputed before rendering.

highlighted = computed this step

Honest by construction

The author supplies lock or MVCC traces and optional expected facts. The engine recomputes lock tables, wait-for cycles, version chains, and snapshot reads before rendering. Note: expected facts can reject a mismatch but cannot create the answer.

recompute boundary\text{recompute boundary}

Compiled facts

The lock graph has 2 edges and the MVCC trace has 2 reads. Note: the detailed facts are rendered from recompute.

edges=2,reads=2\text{edges}=2,\quad \text{reads}=2

2PL and MVCC are exact protocol traces on tiny schedules; real lock managers, deadlock avoidance/timeouts, version garbage-collection, and isolation-level tuning are beyond these traces - no product claims.

Honest locksitemmodeholderswaitersAXT1T2:XBXT2T1:X deadlock: yes; cycle: T1,T2T1T2
Honest MVCCitemversionvaluewritercommitTsAv11T110Av22T220 snapshot readsreaderitemstartTsseesvalueR15A15v11R25A25v22

Wrong result reject

A wrong expected deadlock verdict or snapshot read is rejected during the lesson self-test. Note: rejection happens before any inconsistent diagram can publish.

reject mismatch\text{reject mismatch}

Summary

Locks and versions stay honest because every visible lock, edge, cycle, version, and read result is recomputed. Note: 2PL and MVCC are exact protocol traces here; real lock managers, timeouts, garbage collection, and isolation tuning are beyond these traces.

honest concurrency\text{honest concurrency}