Skip to content

WIP: feat: mechanization of "Interval Tree Clocks" - #13

Closed
alexkeizer wants to merge 7 commits into
mainfrom
tree-clocks
Closed

WIP: feat: mechanization of "Interval Tree Clocks"#13
alexkeizer wants to merge 7 commits into
mainfrom
tree-clocks

Conversation

@alexkeizer

Copy link
Copy Markdown
Collaborator

This PR introduces a simplified version of "Interval Tree Clocks", described by Almeida et al. in their similarly named paper.

Note: we just introduce the tree-based definitions, and prove they have the desired properties directly, without defining the denotation of such trees into actual intervals/sets.

We also simplify the model a lot, by removing arbitrary events, and instead saying that a merge also counts as an event. By doing so, we can replace the event-tree by a single natural number, making it much simpler to reason about. We do use the id-tree exactly as defined in the paper, but since we eliminated the tree structure from the event component, we had to come up with a novel definition of the happens-before relation.

This gives us a clock with a fork and join operations. This PR also proves that the arguments to these operations always happen before their results. Desired properties around independence are stated, but not yet proven.

WIP because I had to last-minute tweak the happens-before relation, and should still check that the new definition (a) actually is the correct one, and (b) is consistent with the documentation.

This PR introduces a simplified version of "Interval Tree Clocks",
described by Almeida et al. in their similarly named paper.

Note: we just introduce the tree-based definitions, and prove they have
the desired properties directly, without defining the denotation of such
trees into actual intervals/sets.

We also simplify the model a lot, by removing arbitrary events, and
instead saying that a merge also counts as an event. By doing so, we can
replace the event-tree by a single natural number, making it much
simpler to reason about. We do use the id-tree exactly as defined in the
paper, but since we eliminated the tree structure from the event
component, we had to come up with a novel definition of the
happens-before relation.

This gives us a clock with a fork and join operations. This PR also
proves that the arguments to these operations always happen before
their results. Desired properties around independence are stated, but
not yet proven.

WIP because I had to last-minute tweak the happens-before relation,
and should still check that the new definition (a) actually is the
correct one, and (b) is consistent with the documentation.
@alexkeizer

Copy link
Copy Markdown
Collaborator Author

Unfortunately, the simplifications made the happens-before relation non-transitive, which disqualifies it.
Closing this in favour of #17

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant