Fairness ==
/\ WF_vars(TMRcv2PC)
/\ SF_vars(TMDecideToAbort)
/\ SF_vars(TMDecideToCommit)
/\ \A rm \in RM:
SF_vars(TMRcvPreparedOK(rm))
/\ \A rm \in RM:
SF_vars(TMRcvPreparedNO(rm))
/\ \A rm \in RM:
SF_vars(TMRcvCommitted(rm))
/\ \A rm \in RM:
SF_vars(TMRcvAborted(rm))
/\ \A rm \in RM:
SF_vars(RMRcvPrepareOK(rm))
/\ \A rm \in RM:
SF_vars(RMRcvPrepareNO(rm))
/\ \A rm \in RM:
SF_vars(RMRcvCommit(rm))
/\ \A rm \in RM:
SF_vars(RMRcvAbort(rm))
/\ \A rm \in RM:
SF_vars(OrphanRMRcvMsg(rm))
/\ \A rm \in RM:
SF_vars(RMForgetCtx(rm))
/\ SF_vars(TMForgetCtx)
================== end ====================
While the model check reports "Temporal formula is a tautology (its negation is unsatisfiable).". Can any tell me why my fairness check reports the errors.
Attachment:
TradTwoPhase.tla
Description: Binary data