"Transitive closure" is basically saying which states are reachable from other states in your data model.
For example, if you have a soft-deleted field "is_deleted" in your data model, then the transitive closure from "is_deleted" is the empty set, because nothing can ever change once an object is deleted(unless you support un-delete).
Maybe this is dumb, but when I wrote this I also took it to mean the "transitive closure" of different fields of your data. So if you had a object "a" with fields "b" and "c", you'd consider "a" and "a.b" and "a.c".
There's also an interesting relation here between reaching some state "S" and having some field "s_reached". I haven't been able to fully understand that relationship, though.
For example, if you have a soft-deleted field "is_deleted" in your data model, then the transitive closure from "is_deleted" is the empty set, because nothing can ever change once an object is deleted(unless you support un-delete).