Description
(* 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
Reactions are currently unavailable
You can’t perform that action at this time.
Examples/specifications/bcastByz/bcastByz.tla
Lines 173 to 176 in c993823
Examples/specifications/bcastByz/bcastByz.tla
Lines 210 to 222 in c993823
Examples/specifications/bcastByz/bcastByzNoBcast.cfg
Line 6 in c993823