diff --git a/theories/tree_borrows/README.md b/theories/tree_borrows/README.md index 9ea165f65a91412ac5327d15aecf34d69ee4a42f..331e216cdfddf3a3e86ff8820c9d6ff1e0a92299 100644 --- a/theories/tree_borrows/README.md +++ b/theories/tree_borrows/README.md @@ -82,12 +82,12 @@ A retag is the core operation creating a new reference, which is parameterized b Further it defines whether there are to be protectors. The function `create_child` is the main function used during a retag. -Finally, the protector end semantics are defined starting at lien 841, with the function `tree_get_all_protected_tags_initialized_locs` and `tree_access_all_protected_initialized`. +Finally, the protector end semantics are defined starting at line 841, with the functions `tree_get_all_protected_tags_initialized_locs` and `tree_access_all_protected_initialized`. To put all the definitions together, the inductive `bor_step` is defined. It is coupled to the main operational semantics by a series of "events". For example, a read (called "copy" here) causes a `CopyEvt`, which is picked up by the `CopyIS` rule. -This will ensure the tag exists, and then cause a read event. +This will ensure the tag exists, and then traverse the tree, advancing the state machine appropiately and triggering UB if necessary. Also of interests to reviewers are lines 1000-1038. This defines a "unit test" for the `rel_dec` and `create_child` functions. Since `rel_dec` is not commutative, it can be difficult to remember which node is which and whether an output of e.g. "Child" means that the first node is a child of the second or the other way around.