Skip to content

Spec claims to check (safety-prop) UnforgLtl but config actually also checks (liveness-props) CorrLtl and RelayLtl #174

@lemmy

Description

@lemmy

(* This formula SpecNoBcast is used to only check Unforgeability.
No fairness is needed, as Unforgeability is a safety property.
*)
SpecNoBcast == InitNoBcast /\ [][Next]_vars

(* If a correct process broadcasts, then every correct process eventually accepts. *)
CorrLtl == (\A i \in Corr: pc[i] = "V1") => <>(\A i \in Corr: pc[i] = "AC")
(* If a correct process accepts, then every correct process accepts. *)
RelayLtl == []((\E i \in Corr: pc[i] = "AC") => <>(\A i \in Corr: pc[i] = "AC"))
(* If no correct process don't broadcast ECHO messages then no correct processes accept. *)
UnforgLtl == (\A i \in Corr: pc[i] = "V0") => [](\A i \in Corr: pc[i] /= "AC")
(* The special case of the unforgeability property. When our algorithms start with InitNoBcast,
we can rewrite UnforgLtl as a first-order formula.
*)
Unforg == (\A i \in Proc: i \in Corr => (pc[i] /= "AC"))

PROPERTIES CorrLtl RelayLtl

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions