Normalization
Honest by Construction
Closure, keys, BCNF splits, and lossless joins are recomputed before rendering.
Honest by construction
The author supplies schemas, dependencies, starting attribute sets, and optional expected facts. The engine recomputes closure traces, candidate keys, BCNF splits, and lossless-join checks before rendering. An expected fact can reject a mismatch, but it cannot become the displayed answer. Note: the lesson self-test deliberately checks wrong expected facts.
Compiled facts
The closure has size 3, the BCNF decomposition has 2 pieces, and the lossless check uses an intersection of size 1. Note: each number is read from compiled output.
FD closure, candidate keys, BCNF decomposition, and lossless-join checks are exact finite computations on tiny schemas; dependency inference beyond these traces and physical schema design tradeoffs are beyond this book - no product claims.
Wrong result reject
A wrong expected closure or wrong expected decomposition is rejected during the lesson self-test. Note: the rejection happens before any inconsistent diagram can be generated.
Summary
Normalization and BCNF stay honest because each closure, key, violation, split, and lossless verdict is recomputed from pinned dependencies. Note: FD closure, candidate keys, BCNF decomposition, and lossless-join checks are exact finite computations on tiny schemas; dependency inference beyond these traces and physical schema design tradeoffs are beyond this book.