Cannizzaro reaction
executable-now: v2 guarded DPO sequence, elementary ownership report, and bounded expansion are implemented.
Interactive Route Player
Use next/prev to step through the route: first the current state is shown without highlight, then the next ownership move is previewed, then the move is executed. If a route snapshot changes several ownership records, the player unfolds them one at a time. Drag a node to fix it; double-click a fixed node to release it.
HEG v2 State Sketches
These panels are rendered from ownership-structured HEG v2 objects. For specified-next examples they are state sketches, not yet products of executable v2 rules.
Cannizzaro G0 HEG
Executable Cannizzaro substrate state.
Cannizzaro G1 HEG
After hydroxide addition.
Cannizzaro G2 HEG
After hydride transfer.
Cannizzaro G3 HEG
After acid-base workup.
DPO-like Step Panels
Each primitive snapshot is shown as L/K/R. Red marks the ownership edge removed from L, orange marks the halfedge whose owner changes, and green marks the ownership edge created in R. K keeps the common atoms, halfedges, pair objects, and unchanged ownership records. For specified-next examples this is an explanatory span derived from route snapshots, not yet a checked executable rule application.
Cannizzaro executable route step 1
Cannizzaro G0 HEG -> Cannizzaro G1 HEG
h3: a1 -> a2; h16: a5 -> a1
L
K
R
Cannizzaro executable route step 2
Cannizzaro G1 HEG -> Cannizzaro G2 HEG
h3: a2 -> a1; h5: a1 -> a7; h23: a7 -> a8
L
K
R
Cannizzaro executable route step 3
Cannizzaro G2 HEG -> Cannizzaro G3 HEG
h14: a6 -> a5; h24: a8 -> a6
L
K
R
Reaction Sketch
Implemented as guarded ownership-structured HEG v2 rules for the formaldehyde case.
Mechanism Flow
Primitive Steps
rho1a carbonyl pi pair becomes alkoxide lone pair
shared pair to lone pair: pi(C_A,O_A) -> LP(O_A)
requires C_A=O_A carbonyl resource
rho1b hydroxide lone pair becomes O_nuc-C_A sigma pair
lone pair to shared pair: LP(O_nuc) -> sigma(O_nuc,C_A)
requires free hydroxide, available lone pair, and no existing O_nuc-C_A shared pair
rho2a alkoxide lone pair reforms donor carbonyl
lone pair to shared pair: LP(O_A) -> pi(C_A,O_A)
requires tetrahedral donor C_A-O_A single resource and O_A lone pair
rho2b hydride sigma pair transfers to acceptor carbonyl carbon
shared pair endpoint transfer: sigma(C_A,H_hyd) -> sigma(C_B,H_hyd)
requires H_hyd bound to donor C_A and no existing C_B-H_hyd shared pair
rho2c acceptor carbonyl pi pair becomes alkoxide lone pair
shared pair to lone pair: pi(C_B,O_B) -> LP(O_B)
requires acceptor C_B=O_B carbonyl resource
side acid O-H sigma pair becomes formate lone pair
shared pair to lone pair: sigma(O_acid,H_p) -> LP(O_acid)
requires acid O-H bond
side alkoxide lone pair becomes alcohol O_B-H_p sigma pair
lone pair to shared pair: LP(O_B) -> sigma(O_B,H_p)
requires alkoxide O_B lone pair and no existing O_B-H_p shared pair
Guards and Alternatives
Guards
- rho1 requires a carbonyl, a free hydroxide oxygen, an attacking lone pair, no pre-existing O_nuc-C_A shared pair, and an admissible product.
- rho2 requires the tetrahedral alkoxide donor, a second aldehyde carbonyl acceptor, a donor C-H hydride resource, no pre-existing C_B-H_hyd shared pair, and an admissible product.
- workup proton transfer requires acid O-H, alkoxide lone pair, no pre-existing O_B-H_p shared pair, and an admissible product.
Route probes
- Current formaldehyde expansion finds route multiplicity from identical aldehyde/H role symmetries, not a genuinely different chemistry route.
- A crossed Cannizzaro substrate with distinguishable aldehydes is the next probe for real alternative hydride donor/acceptor choices.