Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define and prove a naive deletion safety for zookeeper controller #177

Merged
merged 4 commits into from
Jul 15, 2023

Conversation

euclidgame
Copy link
Contributor

This is the very beginning of the safety property proof, and there are quite some factors to consider in terms of the specifications of the properties.

  1. Should write the invariant as forall |req_msg| sent_by_controller(req_msg) /\ in_flight(req_msg) => requirement(req_msg) or !exists |req_msg| sent_by_controller(req_msg) /\ in_flight(req_msg) /\ !requirement(req_msg). Of course they are equivalent but are from different views.
  2. Different from the custom resources things, I think it's better to wrap the message inside a tla_forall (but I don't do it) instead of use a forall outside the entails predicate because the message is created during the execution.

@@ -27,7 +27,7 @@ use crate::kubernetes_cluster::{
use crate::temporal_logic::{defs::*, rules::*};
use crate::zookeeper_controller::{
common::*,
proof::{common::*, safety, terminate},
proof::{common::*, liveness::invariants as specific_invariants, liveness::terminate},
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe name invariants.rs to helper_invariants.rs?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Signed-off-by: Wenjie Ma <[email protected]>
Signed-off-by: Wenjie Ma <[email protected]>
@marshtompsxd marshtompsxd merged commit b1931bb into main Jul 15, 2023
1 check passed
@marshtompsxd marshtompsxd deleted the deletion_safety branch August 1, 2023 21:53
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.

2 participants