Skip to content

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

Open
@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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions