Skip to content

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

Draft
alexkeizer wants to merge 24 commits into
mainfrom
tree-clocks-with-event-trees
Draft

WIP: feat: mechanization of "Interval Tree Clocks"#17
alexkeizer wants to merge 24 commits into
mainfrom
tree-clocks-with-event-trees

Conversation

@alexkeizer

@alexkeizer alexkeizer commented Mar 10, 2026

Copy link
Copy Markdown
Collaborator

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

We also simplify the model a bit, by removing arbitrary events, and instead saying that a split also counts as an event.
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.

This PR subsumes #13

Currently work-in-progress: the definitions exist, but the relevant properties still have to be proven.

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.
These are not super important; they ought to hold but I don't expect we'll actually have to invoke them, so I'll ignore them for now
The blow up got fixed now that sink_sink is gone
@alexkeizer alexkeizer changed the title WIP: Tree clocks with event trees WIP: feat: mechanization of "Interval Tree Clocks" Mar 12, 2026
@alexkeizer
alexkeizer marked this pull request as draft March 12, 2026 13:13
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