theory Flash_abstr_defs

use import bool.Bool
use import int.Int

type cache_state = CACHE_I | CACHE_S | CACHE_E
type node_cmd = NODE_None | NODE_Get | NODE_GetX
type uni_cmd = UNI_None | UNI_Get | UNI_GetX | UNI_Put | UNI_PutX | UNI_Nak
type inv_cmd = INV_None | INV_Inv | INV_InvAck
type rp_cmd = RP_None | RP_Replace
type wb_cmd = WB_None | WB_Wb
type shwb_cmd = SHWB_None | SHWB_ShWb | SHWB_FAck
type nakc_cmd = NAKC_None | NAKC_Nakc
type data

function home : int
function procCmd_home : node_cmd
function invMarked_home : bool
function cacheState_home : cache_state
function cacheData_home : data
function uniMsg_Cmd_home : uni_cmd
function uniMsg_Proc_home : int
function uniMsg_Data_home : data
function invMsg_Cmd_home : inv_cmd
function rpMsg_Cmd_home : rp_cmd
function dir_Pending : bool
function dir_Local : bool
function dir_Dirty : bool
function dir_HeadVld : bool
function dir_HeadPtr : int
function dir_ShrVld : bool
function dir_ShrSet_home : bool
function dir_InvSet_home : bool
function memData : data
function wbMsg_Cmd : wb_cmd
function wbMsg_Proc : int
function wbMsg_Data : data
function shWbMsg_Cmd : shwb_cmd
function shWbMsg_Proc : int
function shWbMsg_Data : data
function nakcMsg_Cmd : nakc_cmd
function currData : data
function prevData : data
function tempData : data
function collecting : bool
function home' : int
function procCmd_home' : node_cmd
function invMarked_home' : bool
function cacheState_home' : cache_state
function cacheData_home' : data
function uniMsg_Cmd_home' : uni_cmd
function uniMsg_Proc_home' : int
function uniMsg_Data_home' : data
function invMsg_Cmd_home' : inv_cmd
function rpMsg_Cmd_home' : rp_cmd
function dir_Pending' : bool
function dir_Local' : bool
function dir_Dirty' : bool
function dir_HeadVld' : bool
function dir_HeadPtr' : int
function dir_ShrVld' : bool
function dir_ShrSet_home' : bool
function dir_InvSet_home' : bool
function memData' : data
function wbMsg_Cmd' : wb_cmd
function wbMsg_Proc' : int
function wbMsg_Data' : data
function shWbMsg_Cmd' : shwb_cmd
function shWbMsg_Proc' : int
function shWbMsg_Data' : data
function nakcMsg_Cmd' : nakc_cmd
function currData' : data
function prevData' : data
function tempData' : data
function collecting' : bool
function procCmd int : node_cmd
function invMarked int : bool
function cacheState int : cache_state
function cacheData int : data
function dir_ShrSet int : bool
function dir_InvSet int : bool
function uniMsg_Cmd int : uni_cmd
function uniMsg_Proc int : int
function uniMsg_Data int : data
function invMsg_Cmd int : inv_cmd
function rpMsg_Cmd int : rp_cmd
function procCmd' int : node_cmd
function invMarked' int : bool
function cacheState' int : cache_state
function cacheData' int : data
function dir_ShrSet' int : bool
function dir_InvSet' int : bool
function uniMsg_Cmd' int : uni_cmd
function uniMsg_Proc' int : int
function uniMsg_Data' int : data
function invMsg_Cmd' int : inv_cmd
function rpMsg_Cmd' int : rp_cmd

end


theory Flash_abstr_invpreds

use import bool.Bool
use import int.Int
use import Flash_abstr_defs

predicate invariant1 =
not (exists z1:int. cacheState_home = CACHE_E /\
(cacheState z1) = CACHE_E)

predicate invariant1' =
not (exists z1:int. cacheState_home' = CACHE_E /\
(cacheState' z1) = CACHE_E)

predicate invariant18433 =
not (dir_ShrVld = True /\
wbMsg_Cmd = WB_Wb)

predicate invariant18433' =
not (dir_ShrVld' = True /\
wbMsg_Cmd' = WB_Wb)

predicate invariant2 =
not (exists z1 z2:int. z1 <> z2 /\ (cacheState z1) = CACHE_E /\
(cacheState z2) = CACHE_E)

predicate invariant2' =
not (exists z1 z2:int. z1 <> z2 /\ (cacheState' z1) = CACHE_E /\
(cacheState' z2) = CACHE_E)

predicate invariant3 =
not (dir_Dirty = False /\
memData <> currData)

predicate invariant3' =
not (dir_Dirty' = False /\
memData' <> currData')

predicate invariant4 =
not (cacheState_home = CACHE_E /\
cacheData_home <> currData)

predicate invariant4' =
not (cacheState_home' = CACHE_E /\
cacheData_home' <> currData')

predicate invariant5 =
not (exists z1:int. (cacheState z1) = CACHE_E /\
(cacheData z1) <> currData)

predicate invariant5' =
not (exists z1:int. (cacheState' z1) = CACHE_E /\
(cacheData' z1) <> currData')

predicate invariantX1019 =
not (uniMsg_Cmd_home = UNI_GetX /\
collecting = True)

predicate invariantX1019' =
not (uniMsg_Cmd_home' = UNI_GetX /\
collecting' = True)

predicate invariant7 =
not (exists z1:int. collecting = True /\
(cacheState z1) = CACHE_S /\
(cacheData z1) <> prevData)

predicate invariant7' =
not (exists z1:int. collecting' = True /\
(cacheState' z1) = CACHE_S /\
(cacheData' z1) <> prevData')

predicate invariant8 =
not (cacheState_home = CACHE_S /\
cacheData_home <> currData /\
collecting = False)

predicate invariant8' =
not (cacheState_home' = CACHE_S /\
cacheData_home' <> currData' /\
collecting' = False)

predicate invariant59401 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant59401' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant9 =
not (exists z1:int. collecting = False /\
(cacheState z1) = CACHE_S /\
(cacheData z1) <> currData)

predicate invariant9' =
not (exists z1:int. collecting' = False /\
(cacheState' z1) = CACHE_S /\
(cacheData' z1) <> currData')

predicate invariant2059 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant2059' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant2060 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant2060' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant1036 =
not (nakcMsg_Cmd = NAKC_Nakc /\
collecting = True)

predicate invariant1036' =
not (nakcMsg_Cmd' = NAKC_Nakc /\
collecting' = True)

predicate invariant27667 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant27667' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant38933 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = True /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant38933' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariantX2026 =
not (cacheState_home = CACHE_S /\
dir_Local = False)

predicate invariantX2026' =
not (cacheState_home' = CACHE_S /\
dir_Local' = False)

predicate invariant40984 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant40984' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant53273 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Cmd z4) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(uniMsg_Proc z4) = z3)

predicate invariant53273' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Cmd' z4) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(uniMsg_Proc' z4) = z3)

predicate invariant19482 =
not (exists z1:int. home <> z1 /\
invMarked_home = False /\
uniMsg_Cmd_home = UNI_Get /\
uniMsg_Proc_home = z1 /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(procCmd z1) = NODE_GetX /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_PutX)

predicate invariant19482' =
not (exists z1:int. home' <> z1 /\
invMarked_home' = False /\
uniMsg_Cmd_home' = UNI_Get /\
uniMsg_Proc_home' = z1 /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(procCmd' z1) = NODE_GetX /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_PutX)

predicate invariant27678 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I)

predicate invariant27678' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I)

predicate invariant2079 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant2079' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant37920 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant37920' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant69666 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant69666' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariant5156 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant5156' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant26661 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1 /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant26661' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1 /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant3109 =
not (exists z1:int. home <> z1 /\
uniMsg_Cmd_home = UNI_PutX /\
(uniMsg_Cmd z1) = UNI_PutX)

predicate invariant3109' =
not (exists z1:int. home' <> z1 /\
uniMsg_Cmd_home' = UNI_PutX /\
(uniMsg_Cmd' z1) = UNI_PutX)

predicate invariant37 =
not (invMarked_home = False /\
uniMsg_Cmd_home = UNI_Put /\
currData <> uniMsg_Data_home)

predicate invariant37' =
not (invMarked_home' = False /\
uniMsg_Cmd_home' = UNI_Put /\
currData' <> uniMsg_Data_home')

predicate invariantX6107 =
not (cacheState_home = CACHE_E /\
shWbMsg_Cmd = SHWB_FAck)

predicate invariantX6107' =
not (cacheState_home' = CACHE_E /\
shWbMsg_Cmd' = SHWB_FAck)

predicate invariant69670 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant69670' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariant5158 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z2 /\
home <> z3 /\
(cacheState z3) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z3 /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant5158' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
home' <> z3 /\
(cacheState' z3) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z3 /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant1062 =
not (uniMsg_Cmd_home = UNI_PutX /\
collecting = True)

predicate invariant1062' =
not (uniMsg_Cmd_home' = UNI_PutX /\
collecting' = True)

predicate invariant43051 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant43051' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariantX5076 =
not (exists z1:int. cacheState_home = CACHE_E /\
(cacheState z1) = CACHE_S /\
(dir_InvSet z1) = False)

predicate invariantX5076' =
not (exists z1:int. cacheState_home' = CACHE_E /\
(cacheState' z1) = CACHE_S /\
(dir_InvSet' z1) = False)

predicate invariant37934 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant37934' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant15406 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Pending = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant15406' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Pending' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant37935 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant37935' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant11312 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_GetX /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant11312' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_GetX /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant48 =
not (wbMsg_Cmd = WB_Wb /\
currData <> wbMsg_Data)

predicate invariant48' =
not (wbMsg_Cmd' = WB_Wb /\
currData' <> wbMsg_Data')

predicate invariant55347 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z3) = INV_InvAck /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant55347' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z3) = INV_InvAck /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariant37939 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant37939' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant24627 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
cacheState_home <> CACHE_E /\
uniMsg_Cmd_home = UNI_Nak /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(procCmd z1) = NODE_GetX /\
(uniMsg_Cmd z1) = UNI_PutX /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1 /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant24627' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
cacheState_home' <> CACHE_E /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(procCmd' z1) = NODE_GetX /\
(uniMsg_Cmd' z1) = UNI_PutX /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1 /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant51 =
not (shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
currData <> shWbMsg_Data)

predicate invariant51' =
not (shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
currData' <> shWbMsg_Data')

predicate invariant55350 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_InvAck /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant55350' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_InvAck /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariant66615 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Cmd z4) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z4) = z3)

predicate invariant66615' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Cmd' z4) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z4) = z3)

predicate invariant30778 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant30778' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant8250 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant8250' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant32831 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant32831' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant10305 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
shWbMsg_Cmd = SHWB_FAck /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant10305' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
shWbMsg_Cmd' = SHWB_FAck /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant9283 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
(procCmd z1) = NODE_Get /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z1 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant9283' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
(procCmd' z1) = NODE_Get /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z1 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariantX1981 =
not (exists z1:int. home <> z1 /\
(procCmd z1) <> NODE_Get /\
(uniMsg_Cmd z1) = UNI_Get)

predicate invariantX1981' =
not (exists z1:int. home' <> z1 /\
(procCmd' z1) <> NODE_Get /\
(uniMsg_Cmd' z1) = UNI_Get)

predicate invariant8261 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant8261' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant9286 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
(procCmd z1) <> NODE_Get /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z1 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant9286' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
(procCmd' z1) <> NODE_Get /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z1 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant70728 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_Inv /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant70728' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_Inv /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant28744 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant28744' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant1096 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
collecting = True /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant1096' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
collecting' = True /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant48202 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_HeadPtr <> z3 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant48202' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_HeadPtr' <> z3 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant70732 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_Inv /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant70732' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_Inv /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant33868 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = True /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant33868' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant32845 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_S /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant32845' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_S /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant32848 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z2) = UNI_Nak /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant32848' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z2) = UNI_Nak /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant30801 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant30801' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant38994 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant38994' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariantX941 =
not (uniMsg_Cmd_home = UNI_GetX /\
shWbMsg_Cmd = SHWB_ShWb)

predicate invariantX941' =
not (uniMsg_Cmd_home' = UNI_GetX /\
shWbMsg_Cmd' = SHWB_ShWb)

predicate invariant52308 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_InvAck)

predicate invariant52308' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_InvAck)

predicate invariant86 =
not (uniMsg_Cmd_home = UNI_PutX /\
currData <> uniMsg_Data_home)

predicate invariant86' =
not (uniMsg_Cmd_home' = UNI_PutX /\
currData' <> uniMsg_Data_home')

predicate invariant52311 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_InvAck)

predicate invariant52311' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_InvAck)

predicate invariant36952 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant36952' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant24666 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False)

predicate invariant24666' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False)

predicate invariant1115 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
collecting = True /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant1115' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
collecting' = True /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariantX933 =
not (uniMsg_Cmd_home = UNI_GetX /\
shWbMsg_Cmd = SHWB_FAck)

predicate invariantX933' =
not (uniMsg_Cmd_home' = UNI_GetX /\
shWbMsg_Cmd' = SHWB_FAck)

predicate invariant52316 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2)

predicate invariant52316' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2)

predicate invariantX6051 =
not (dir_Dirty = False /\
dir_HeadVld = True /\
shWbMsg_Cmd = SHWB_FAck)

predicate invariantX6051' =
not (dir_Dirty' = False /\
dir_HeadVld' = True /\
shWbMsg_Cmd' = SHWB_FAck)

predicate invariant25695 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant25695' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant27744 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant27744' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariant41060 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant41060' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant6244 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant6244' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant2149 =
not (exists z1:int. uniMsg_Cmd_home = UNI_PutX /\
(cacheState z1) = CACHE_E)

predicate invariant2149' =
not (exists z1:int. uniMsg_Cmd_home' = UNI_PutX /\
(cacheState' z1) = CACHE_E)

predicate invariant6246 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z2 /\
home <> z3 /\
(cacheState z3) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z3 /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant6246' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
home' <> z3 /\
(cacheState' z3) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z3 /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariantX30614 =
not (exists z1:int. dir_ShrVld = False /\
(dir_ShrSet z1) = True)

predicate invariantX30614' =
not (exists z1:int. dir_ShrVld' = False /\
(dir_ShrSet' z1) = True)

predicate invariantX918 =
not (uniMsg_Cmd_home = UNI_GetX /\
dir_Pending = False)

predicate invariantX918' =
not (uniMsg_Cmd_home' = UNI_GetX /\
dir_Pending' = False)

predicate invariant34924 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant34924' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant23661 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant23661' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant31854 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_E /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant31854' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_E /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant33904 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant33904' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariantX909 =
not (dir_Pending = False /\
shWbMsg_Cmd = SHWB_ShWb)

predicate invariantX909' =
not (dir_Pending' = False /\
shWbMsg_Cmd' = SHWB_ShWb)

predicate invariant4212 =
not (uniMsg_Cmd_home = UNI_Get /\
nakcMsg_Cmd = NAKC_Nakc)

predicate invariant4212' =
not (uniMsg_Cmd_home' = UNI_Get /\
nakcMsg_Cmd' = NAKC_Nakc)

predicate invariant40057 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant40057' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariantX25478 =
not (exists z1:int. nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z1) = CACHE_S)

predicate invariantX25478' =
not (exists z1:int. nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z1) = CACHE_S)

predicate invariant26747 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1 /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant26747' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1 /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant40066 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant40066' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant27781 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant27781' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant40070 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant40070' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant30854 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant30854' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant27783 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant27783' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant23691 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant23691' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant23693 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_GetX /\
uniMsg_Proc_home = z3 /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant23693' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_GetX /\
uniMsg_Proc_home' = z3 /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant25742 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant25742' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant32911 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant32911' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant35984 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant35984' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant25744 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant25744' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant24722 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant24722' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant42131 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant42131' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant24724 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant24724' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant5268 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant5268' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant5270 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z2 /\
home <> z3 /\
(cacheState z3) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z3 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant5270' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
home' <> z3 /\
(cacheState' z3) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z3 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariantX874 =
not (uniMsg_Cmd_home = UNI_Get /\
shWbMsg_Cmd = SHWB_ShWb)

predicate invariantX874' =
not (uniMsg_Cmd_home' = UNI_Get /\
shWbMsg_Cmd' = SHWB_ShWb)

predicate invariant22679 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(procCmd z2) = NODE_GetX /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant22679' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(procCmd' z2) = NODE_GetX /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant22680 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z2) = NODE_GetX /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant22680' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z2) = NODE_GetX /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant30872 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant30872' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant10393 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
(cacheState z2) <> CACHE_E /\
(cacheState z3) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z2) = z3)

predicate invariant10393' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z3) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z2) = z3)

predicate invariant10394 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z2)

predicate invariant10394' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z2)

predicate invariant10396 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
(cacheState z2) <> CACHE_E /\
(cacheState z4) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant10396' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z4) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant30876 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant30876' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariantX866 =
not (uniMsg_Cmd_home = UNI_Get /\
shWbMsg_Cmd = SHWB_FAck)

predicate invariantX866' =
not (uniMsg_Cmd_home' = UNI_Get /\
shWbMsg_Cmd' = SHWB_FAck)

predicate invariantX1889 =
not (exists z1:int. home <> z1 /\
(procCmd z1) <> NODE_Get /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariantX1889' =
not (exists z1:int. home' <> z1 /\
(procCmd' z1) <> NODE_Get /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant46244 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z3 /\
(procCmd z3) = NODE_None /\
(cacheState z3) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z3 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant46244' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z3 /\
(procCmd' z3) = NODE_None /\
(cacheState' z3) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z3 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant22695 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(procCmd z2) = NODE_GetX /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant22695' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(procCmd' z2) = NODE_GetX /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant22696 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z2) = NODE_GetX /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant22696' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z2) = NODE_GetX /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant8365 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant8365' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant4270 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_Get /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant4270' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_Get /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant69807 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_None /\
(procCmd z4) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant69807' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_None /\
(procCmd' z4) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariant69810 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_None /\
(procCmd z4) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant69810' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_None /\
(procCmd' z4) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariantX5964 =
not (uniMsg_Cmd_home = UNI_GetX /\
dir_Dirty = False /\
dir_HeadVld = True)

predicate invariantX5964' =
not (uniMsg_Cmd_home' = UNI_GetX /\
dir_Dirty' = False /\
dir_HeadVld' = True)

predicate invariantX841 =
not (uniMsg_Cmd_home = UNI_Get /\
dir_Pending = False)

predicate invariantX841' =
not (uniMsg_Cmd_home' = UNI_Get /\
dir_Pending' = False)

predicate invariant38072 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant38072' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant8376 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant8376' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant38073 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant38073' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant30911 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant30911' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant11455 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant11455' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant19647 =
not (exists z1:int. home <> z1 /\
invMarked_home = False /\
uniMsg_Cmd_home = UNI_Get /\
uniMsg_Proc_home = z1 /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_ShrVld = False /\
(procCmd z1) = NODE_GetX /\
(uniMsg_Cmd z1) = UNI_PutX)

predicate invariant19647' =
not (exists z1:int. home' <> z1 /\
invMarked_home' = False /\
uniMsg_Cmd_home' = UNI_Get /\
uniMsg_Proc_home' = z1 /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_ShrVld' = False /\
(procCmd' z1) = NODE_GetX /\
(uniMsg_Cmd' z1) = UNI_PutX)

predicate invariantX5953 =
not (cacheState_home = CACHE_E /\
uniMsg_Cmd_home = UNI_GetX)

predicate invariantX5953' =
not (cacheState_home' = CACHE_E /\
uniMsg_Cmd_home' = UNI_GetX)

predicate invariant41152 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant41152' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant4289 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_Get /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant4289' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_Get /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant7365 =
not (exists z1:int. home <> z1 /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant7365' =
not (exists z1:int. home' <> z1 /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariantX5939 =
not (cacheState_home = CACHE_E /\
nakcMsg_Cmd = NAKC_Nakc)

predicate invariantX5939' =
not (cacheState_home' = CACHE_E /\
nakcMsg_Cmd' = NAKC_Nakc)

predicate invariant38094 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant38094' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant30927 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant30927' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariantX1839 =
not (exists z1:int. home <> z1 /\
(cacheState z1) = CACHE_S /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariantX1839' =
not (exists z1:int. home' <> z1 /\
(cacheState' z1) = CACHE_S /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant42195 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant42195' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant5331 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant5331' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant10452 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
shWbMsg_Cmd = SHWB_FAck /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant10452' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
shWbMsg_Cmd' = SHWB_FAck /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant5332 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
(cacheState z1) <> CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1 /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant5332' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
(cacheState' z1) <> CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1 /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant5333 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z3 /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z3 /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant5333' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z3 /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z3 /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant2261 =
not (exists z1:int. home <> z1 /\
(procCmd z1) = NODE_GetX /\
(uniMsg_Cmd z1) = UNI_PutX /\
(uniMsg_Data z1) <> currData)

predicate invariant2261' =
not (exists z1:int. home' <> z1 /\
(procCmd' z1) = NODE_GetX /\
(uniMsg_Cmd' z1) = UNI_PutX /\
(uniMsg_Data' z1) <> currData')

predicate invariant1239 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
collecting = True /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant1239' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
collecting' = True /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant56536 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z2 /\
home <> z3 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
(procCmd z2) = NODE_Get /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant56536' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
home' <> z3 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
(procCmd' z2) = NODE_Get /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariantX4903 =
not (cacheState_home = CACHE_E /\
dir_Local = False)

predicate invariantX4903' =
not (cacheState_home' = CACHE_E /\
dir_Local' = False)

predicate invariant11482 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(cacheState z1) <> CACHE_E /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z2) = z1)

predicate invariant11482' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(cacheState' z1) <> CACHE_E /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z2) = z1)

predicate invariant11483 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
(cacheState z2) <> CACHE_E /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z2) = z3)

predicate invariant11483' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z2) = z3)

predicate invariant28891 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z1)

predicate invariant28891' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z1)

predicate invariant11484 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z2)

predicate invariant11484' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z2)

predicate invariant31964 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(procCmd z1) = NODE_GetX /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_PutX /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant31964' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(procCmd' z1) = NODE_GetX /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_PutX /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant30940 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False)

predicate invariant30940' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False)

predicate invariant11486 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
(cacheState z2) <> CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant11486' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant66784 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Cmd z4) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z4) = z3)

predicate invariant66784' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Cmd' z4) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z4) = z3)

predicate invariant43235 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant43235' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant56549 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_Get /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant56549' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_Get /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant54503 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant54503' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant43239 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant43239' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariantX14103 =
not (exists z1:int. home <> z1 /\
(cacheState z1) = CACHE_E /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariantX14103' =
not (exists z1:int. home' <> z1 /\
(cacheState' z1) = CACHE_E /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariantX790 =
not (uniMsg_Cmd_home = UNI_Get /\
collecting = True)

predicate invariantX790' =
not (uniMsg_Cmd_home' = UNI_Get /\
collecting' = True)

predicate invariantX20245 =
not (rpMsg_Cmd_home = RP_Replace)

predicate invariantX20245' =
not (rpMsg_Cmd_home' = RP_Replace)

predicate invariant19694 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(cacheState z1) = CACHE_E /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant19694' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' = NODE_None /\
cacheState_home' <> CACHE_E /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(cacheState' z1) = CACHE_E /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant34033 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_E /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant34033' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_E /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant27889 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_ShrVld = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant27889' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_ShrVld' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant5361 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant5361' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant5362 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
(cacheState z1) <> CACHE_E /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z1 /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant5362' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
(cacheState' z1) <> CACHE_E /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z1 /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant53491 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2)

predicate invariant53491' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2)

predicate invariant5363 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z3 /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z3 /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant5363' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z3 /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z3 /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant29942 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_ShrVld = False /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant29942' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_ShrVld' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariantX778 =
not (exists z1:int. home <> z1 /\
(cacheState z1) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_PutX)

predicate invariantX778' =
not (exists z1:int. home' <> z1 /\
(cacheState' z1) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_PutX)

predicate invariant22779 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Pending = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant22779' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Pending' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant22780 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant22780' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant33021 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant33021' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant1278 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
collecting = True /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant1278' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
collecting' = True /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant4352 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
uniMsg_Cmd_home = UNI_Get /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant4352' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
uniMsg_Cmd_home' = UNI_Get /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariantX5884 =
not (dir_Dirty = False /\
dir_HeadVld = True /\
nakcMsg_Cmd = NAKC_Nakc)

predicate invariantX5884' =
not (dir_Dirty' = False /\
dir_HeadVld' = True /\
nakcMsg_Cmd' = NAKC_Nakc)

predicate invariant11535 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(cacheState z1) <> CACHE_E /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z2) = z1)

predicate invariant11535' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(cacheState' z1) <> CACHE_E /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z2) = z1)

predicate invariant19727 =
not (exists z1:int. home <> z1 /\
procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant19727' =
not (exists z1:int. home' <> z1 /\
procCmd_home' = NODE_None /\
cacheState_home' <> CACHE_E /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariantX1777 =
not (cacheState_home = CACHE_I /\
dir_Local = True /\
dir_Dirty = True)

predicate invariantX1777' =
not (cacheState_home' = CACHE_I /\
dir_Local' = True /\
dir_Dirty' = True)

predicate invariant11536 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
(cacheState z2) <> CACHE_E /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z2) = z3)

predicate invariant11536' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z2) = z3)

predicate invariant32016 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant32016' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant18704 =
not (exists z1:int. home <> z1 /\
procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant18704' =
not (exists z1:int. home' <> z1 /\
procCmd_home' = NODE_None /\
cacheState_home' <> CACHE_E /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant11537 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z2)

predicate invariant11537' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z2)

predicate invariant18705 =
not (exists z1:int. home <> z1 /\
procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_ShrVld = False /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant18705' =
not (exists z1:int. home' <> z1 /\
procCmd_home' = NODE_None /\
cacheState_home' <> CACHE_E /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_ShrVld' = False /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant11538 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(cacheState z1) <> CACHE_E /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z1)

predicate invariant11538' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(cacheState' z1) <> CACHE_E /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z1)

predicate invariant40210 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant40210' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant30994 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(procCmd z2) = NODE_GetX /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant30994' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(procCmd' z2) = NODE_GetX /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant11539 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
(cacheState z2) <> CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant11539' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant30996 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_GetX /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant30996' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_GetX /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariantX747 =
not (exists z1:int. home <> z1 /\
cacheState_home = CACHE_S /\
(uniMsg_Cmd z1) = UNI_PutX)

predicate invariantX747' =
not (exists z1:int. home' <> z1 /\
cacheState_home' = CACHE_S /\
(uniMsg_Cmd' z1) = UNI_PutX)

predicate invariant34074 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant34074' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant54556 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z3) = INV_InvAck /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant54556' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z3) = INV_InvAck /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant54559 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_InvAck /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant54559' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_InvAck /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant21792 =
not (exists z1:int. home <> z1 /\
dir_HeadVld = False /\
(invMarked z1) = False /\
(dir_InvSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant21792' =
not (exists z1:int. home' <> z1 /\
dir_HeadVld' = False /\
(invMarked' z1) = False /\
(dir_InvSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant31010 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_S /\
(dir_ShrSet z1) = False)

predicate invariant31010' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_S /\
(dir_ShrSet' z1) = False)

predicate invariantX734 =
not (exists z1:int. home <> z1 /\
shWbMsg_Cmd = SHWB_ShWb /\
(uniMsg_Cmd z1) = UNI_PutX)

predicate invariantX734' =
not (exists z1:int. home' <> z1 /\
shWbMsg_Cmd' = SHWB_ShWb /\
(uniMsg_Cmd' z1) = UNI_PutX)

predicate invariant54564 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant54564' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant31013 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant31013' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariant52518 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant52518' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant52519 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Cmd z4) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z4) = z3)

predicate invariant52519' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Cmd' z4) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z4) = z3)

predicate invariant4392 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
uniMsg_Cmd_home = UNI_Get /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant4392' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
uniMsg_Cmd_home' = UNI_Get /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant53545 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_InvAck)

predicate invariant53545' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_InvAck)

predicate invariant27945 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant27945' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant54570 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant54570' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariant27946 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z3 /\
(cacheState z1) = CACHE_S /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z3)

predicate invariant27946' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z3 /\
(cacheState' z1) = CACHE_S /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z3)

predicate invariant24874 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_S /\
(dir_ShrSet z1) = False)

predicate invariant24874' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_S /\
(dir_ShrSet' z1) = False)

predicate invariant22827 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Pending = True /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_InvAck)

predicate invariant22827' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_InvAck)

predicate invariant53548 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_InvAck)

predicate invariant53548' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_InvAck)

predicate invariant10540 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
(cacheState z2) <> CACHE_E /\
(cacheState z3) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z2) = z3)

predicate invariant10540' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z3) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z2) = z3)

predicate invariant22828 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant22828' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant10541 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z2)

predicate invariant10541' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z2)

predicate invariant24877 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant24877' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariant10543 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
(cacheState z2) <> CACHE_E /\
(cacheState z4) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant10543' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z4) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariantX721 =
not (exists z1:int. home <> z1 /\
uniMsg_Cmd_home = UNI_Put /\
(uniMsg_Cmd z1) = UNI_PutX)

predicate invariantX721' =
not (exists z1:int. home' <> z1 /\
uniMsg_Cmd_home' = UNI_Put /\
(uniMsg_Cmd' z1) = UNI_PutX)

predicate invariant21808 =
not (exists z1:int. wbMsg_Cmd = WB_Wb /\
(cacheState z1) = CACHE_S /\
(dir_InvSet z1) = False)

predicate invariant21808' =
not (exists z1:int. wbMsg_Cmd' = WB_Wb /\
(cacheState' z1) = CACHE_S /\
(dir_InvSet' z1) = False)

predicate invariant53553 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2)

predicate invariant53553' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2)

predicate invariant6453 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant6453' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant3382 =
not (exists z1:int. home <> z1 /\
cacheState_home = CACHE_E /\
collecting = False /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant3382' =
not (exists z1:int. home' <> z1 /\
cacheState_home' = CACHE_E /\
collecting' = False /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant6455 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z2 /\
home <> z3 /\
(cacheState z3) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z3 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant6455' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
home' <> z3 /\
(cacheState' z3) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z3 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant69947 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_None /\
(procCmd z4) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant69947' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_None /\
(procCmd' z4) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariant23869 =
not (exists z1:int. home <> z1 /\
dir_Pending = True /\
dir_Dirty = False /\
(invMarked z1) = False /\
(dir_InvSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant23869' =
not (exists z1:int. home' <> z1 /\
dir_Pending' = True /\
dir_Dirty' = False /\
(invMarked' z1) = False /\
(dir_InvSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant69950 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_None /\
(procCmd z4) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant69950' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_None /\
(procCmd' z4) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariant33087 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = True /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant33087' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant5439 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant5439' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant5440 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
(cacheState z1) <> CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant5440' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
(cacheState' z1) <> CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant5441 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z3 /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z3 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant5441' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z3 /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z3 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant22849 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Pending = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant22849' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Pending' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant35138 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant35138' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant22850 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant22850' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariantX702 =
not (exists z1:int. home <> z1 /\
dir_Dirty = False /\
(uniMsg_Cmd z1) = UNI_PutX)

predicate invariantX702' =
not (exists z1:int. home' <> z1 /\
dir_Dirty' = False /\
(uniMsg_Cmd' z1) = UNI_PutX)

predicate invariant1346 =
not (uniMsg_Cmd_home = UNI_Put /\
wbMsg_Cmd = WB_Wb)

predicate invariant1346' =
not (uniMsg_Cmd_home' = UNI_Put /\
wbMsg_Cmd' = WB_Wb)

predicate invariantX25276 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_ShrVld = False /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_S)

predicate invariantX25276' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_ShrVld' = False /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_S)

predicate invariant35141 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant35141' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariant8518 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_Get /\
uniMsg_Proc_home = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant8518' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_Get /\
uniMsg_Proc_home' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant21830 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False)

predicate invariant21830' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False)

predicate invariant52554 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant52554' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant52555 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Cmd z4) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z4) = z3)

predicate invariant52555' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Cmd' z4) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z4) = z3)

predicate invariant31052 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant31052' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant42318 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant42318' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant31054 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant31054' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant32083 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant32083' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant19795 =
not (exists z1:int. procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
(cacheState z1) = CACHE_S /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant19795' =
not (exists z1:int. procCmd_home' = NODE_None /\
cacheState_home' <> CACHE_E /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
(cacheState' z1) = CACHE_S /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariantX685 =
not (exists z1:int. uniMsg_Cmd_home = UNI_PutX /\
(cacheState z1) = CACHE_S)

predicate invariantX685' =
not (exists z1:int. uniMsg_Cmd_home' = UNI_PutX /\
(cacheState' z1) = CACHE_S)

predicate invariant24916 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant24916' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant27989 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z1)

predicate invariant27989' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z1)

predicate invariant27990 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z3 /\
(cacheState z1) = CACHE_S /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z3)

predicate invariant27990' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z3 /\
(cacheState' z1) = CACHE_S /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z3)

predicate invariant53593 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z4) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z4) = z3)

predicate invariant53593' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z4) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z4) = z3)

predicate invariant11610 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant11610' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant31068 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False)

predicate invariant31068' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False)

predicate invariant36189 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant36189' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant31070 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant31070' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant4446 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant4446' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant27999 =
not (exists z1:int. home <> z1 /\
nakcMsg_Cmd = NAKC_Nakc /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant27999' =
not (exists z1:int. home' <> z1 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant30048 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = True /\
dir_Dirty = True /\
dir_InvSet_home = False /\
(procCmd z2) = NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = True /\
(invMsg_Cmd z2) = INV_Inv)

predicate invariant30048' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_InvSet_home' = False /\
(procCmd' z2) = NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = True /\
(invMsg_Cmd' z2) = INV_Inv)

predicate invariant18784 =
not (exists z1:int. cacheState_home <> CACHE_E /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False)

predicate invariant18784' =
not (exists z1:int. cacheState_home' <> CACHE_E /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False)

predicate invariant352 =
not (uniMsg_Cmd_home = UNI_PutX /\
dir_Dirty = False)

predicate invariant352' =
not (uniMsg_Cmd_home' = UNI_PutX /\
dir_Dirty' = False)

predicate invariant40290 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant40290' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant30050 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = True /\
dir_Dirty = True /\
dir_InvSet_home = False /\
(procCmd z2) <> NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = True /\
(invMsg_Cmd z2) = INV_Inv)

predicate invariant30050' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_InvSet_home' = False /\
(procCmd' z2) <> NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = True /\
(invMsg_Cmd' z2) = INV_Inv)

predicate invariant19810 =
not (exists z1:int. cacheState_home <> CACHE_E /\
uniMsg_Cmd_home = UNI_Nak /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
(cacheState z1) = CACHE_S /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant19810' =
not (exists z1:int. cacheState_home' <> CACHE_E /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
(cacheState' z1) = CACHE_S /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant24932 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
collecting = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False)

predicate invariant24932' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False)

predicate invariant24934 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant24934' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant5479 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant5479' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant5480 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
(cacheState z1) <> CACHE_E /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z1 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant5480' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
(cacheState' z1) <> CACHE_E /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z1 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariantX664 =
not (exists z1:int. cacheState_home = CACHE_E /\
collecting = False /\
(cacheState z1) = CACHE_S)

predicate invariantX664' =
not (exists z1:int. cacheState_home' = CACHE_E /\
collecting' = False /\
(cacheState' z1) = CACHE_S)

predicate invariant360 =
not (cacheState_home = CACHE_E /\
wbMsg_Cmd = WB_Wb)

predicate invariant360' =
not (cacheState_home' = CACHE_E /\
wbMsg_Cmd' = WB_Wb)

predicate invariant5481 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z3 /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z3 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant5481' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z3 /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z3 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant35179 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant35179' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant41324 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant41324' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant19823 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(cacheState z1) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1 /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant19823' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' = NODE_None /\
cacheState_home' <> CACHE_E /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(cacheState' z1) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1 /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant22897 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Pending = True /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_InvAck)

predicate invariant22897' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_InvAck)

predicate invariant40305 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant40305' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant51570 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant51570' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant22898 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant22898' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant12660 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant12660' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant57717 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Pending = True /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant57717' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant18806 =
not (exists z1:int. invMarked_home = False /\
uniMsg_Cmd_home = UNI_Put /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False)

predicate invariant18806' =
not (exists z1:int. invMarked_home' = False /\
uniMsg_Cmd_home' = UNI_Put /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False)

predicate invariant57720 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Pending = True /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant57720' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant73081 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_InvSet_home = False /\
(procCmd z4) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_Inv /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant73081' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_InvSet_home' = False /\
(procCmd' z4) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_Inv /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariantX1670 =
not (procCmd_home = NODE_Get /\
dir_Local = True)

predicate invariantX1670' =
not (procCmd_home' = NODE_Get /\
dir_Local' = True)

predicate invariant73085 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_InvSet_home = False /\
(procCmd z4) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_Inv /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant73085' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_InvSet_home' = False /\
(procCmd' z4) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_Inv /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariant51582 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home)

predicate invariant51582' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home')

predicate invariant46464 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z3 /\
(procCmd z3) = NODE_None /\
(cacheState z3) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z3 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant46464' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z3 /\
(procCmd' z3) = NODE_None /\
(cacheState' z3) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z3 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant53633 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z4) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z4) = z3)

predicate invariant53633' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z4) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z4) = z3)

predicate invariantX639 =
not (exists z1:int. home <> z1 /\
cacheState_home = CACHE_E /\
(uniMsg_Cmd z1) = UNI_PutX)

predicate invariantX639' =
not (exists z1:int. home' <> z1 /\
cacheState_home' = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_PutX)

predicate invariant32130 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant32130' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant18819 =
not (exists z1:int. procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False)

predicate invariant18819' =
not (exists z1:int. procCmd_home' = NODE_None /\
cacheState_home' <> CACHE_E /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False)

predicate invariant34180 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z1) = NODE_GetX /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_PutX /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant34180' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z1) = NODE_GetX /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_PutX /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant18820 =
not (exists z1:int. procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_ShrVld = True /\
(cacheState z1) = CACHE_S /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant18820' =
not (exists z1:int. procCmd_home' = NODE_None /\
cacheState_home' <> CACHE_E /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_ShrVld' = True /\
(cacheState' z1) = CACHE_S /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant35205 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I)

predicate invariant35205' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I)

predicate invariant22919 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant22919' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant38280 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant38280' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant4488 =
not (uniMsg_Cmd_home = UNI_GetX /\
nakcMsg_Cmd = NAKC_Nakc)

predicate invariant4488' =
not (uniMsg_Cmd_home' = UNI_GetX /\
nakcMsg_Cmd' = NAKC_Nakc)

predicate invariant38281 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant38281' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariantX625 =
not (exists z1:int. cacheState_home = CACHE_S /\
(cacheState z1) = CACHE_E)

predicate invariantX625' =
not (exists z1:int. cacheState_home' = CACHE_S /\
(cacheState' z1) = CACHE_E)

predicate invariant400 =
not (uniMsg_Cmd_home = UNI_PutX /\
wbMsg_Cmd = WB_Wb)

predicate invariant400' =
not (uniMsg_Cmd_home' = UNI_PutX /\
wbMsg_Cmd' = WB_Wb)

predicate invariant49554 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_HeadPtr <> z3 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home)

predicate invariant49554' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_HeadPtr' <> z3 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home')

predicate invariant53651 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2)

predicate invariant53651' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2)

predicate invariant31125 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant31125' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant31126 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant31126' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariantX1642 =
not (exists z1:int. home <> z1 /\
dir_HeadVld = False /\
(uniMsg_Cmd z1) = UNI_PutX)

predicate invariantX1642' =
not (exists z1:int. home' <> z1 /\
dir_HeadVld' = False /\
(uniMsg_Cmd' z1) = UNI_PutX)

predicate invariant21913 =
not (exists z1:int. home <> z1 /\
wbMsg_Cmd = WB_Wb /\
(invMarked z1) = False /\
(dir_InvSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant21913' =
not (exists z1:int. home' <> z1 /\
wbMsg_Cmd' = WB_Wb /\
(invMarked' z1) = False /\
(dir_InvSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariantX610 =
not (exists z1:int. shWbMsg_Cmd = SHWB_ShWb /\
(cacheState z1) = CACHE_E)

predicate invariantX610' =
not (exists z1:int. shWbMsg_Cmd' = SHWB_ShWb /\
(cacheState' z1) = CACHE_E)

predicate invariant33184 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1 /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant33184' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1 /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant3489 =
not (exists z1:int. home <> z1 /\
uniMsg_Cmd_home = UNI_PutX /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant3489' =
not (exists z1:int. home' <> z1 /\
uniMsg_Cmd_home' = UNI_PutX /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant40354 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant40354' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant56739 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z2) = True /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant56739' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z2) = True /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant31139 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_S /\
(dir_ShrSet z1) = False)

predicate invariant31139' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_S /\
(dir_ShrSet' z1) = False)

predicate invariantX1628 =
not (exists z1:int. home <> z1 /\
dir_HeadVld = False /\
(cacheState z1) = CACHE_E)

predicate invariantX1628' =
not (exists z1:int. home' <> z1 /\
dir_HeadVld' = False /\
(cacheState' z1) = CACHE_E)

predicate invariant31141 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_S /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant31141' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_S /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant54695 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant54695' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariant18856 =
not (exists z1:int. home <> z1 /\
invMarked_home = False /\
uniMsg_Cmd_home = UNI_Get /\
uniMsg_Proc_home = z1 /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(cacheState z1) = CACHE_E /\
(dir_ShrSet z1) = False)

predicate invariant18856' =
not (exists z1:int. home' <> z1 /\
invMarked_home' = False /\
uniMsg_Cmd_home' = UNI_Get /\
uniMsg_Proc_home' = z1 /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(cacheState' z1) = CACHE_E /\
(dir_ShrSet' z1) = False)

predicate invariant2473 =
not (exists z1:int. home <> z1 /\
collecting = True /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Data z1) <> prevData)

predicate invariant2473' =
not (exists z1:int. home' <> z1 /\
collecting' = True /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Data' z1) <> prevData')

predicate invariantX599 =
not (exists z1:int. uniMsg_Cmd_home = UNI_Put /\
(cacheState z1) = CACHE_E)

predicate invariantX599' =
not (exists z1:int. uniMsg_Cmd_home' = UNI_Put /\
(cacheState' z1) = CACHE_E)

predicate invariant27050 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_S /\
(dir_ShrSet z1) = False)

predicate invariant27050' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_S /\
(dir_ShrSet' z1) = False)

predicate invariant11690 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(cacheState z1) <> CACHE_E /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z2) = z1)

predicate invariant11690' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(cacheState' z1) <> CACHE_E /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z2) = z1)

predicate invariant11691 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
(cacheState z2) <> CACHE_E /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z2) = z3)

predicate invariant11691' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z2) = z3)

predicate invariant11692 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z2)

predicate invariant11692' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z2)

predicate invariant27052 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant27052' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariant11694 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
(cacheState z2) <> CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant11694' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant51635 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z3) = INV_InvAck)

predicate invariant51635' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z3) = INV_InvAck)

predicate invariant22964 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Pending = True /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_InvAck)

predicate invariant22964' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_InvAck)

predicate invariant22965 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant22965' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant51638 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_InvAck)

predicate invariant51638' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_InvAck)

predicate invariant10679 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_GetX /\
uniMsg_Proc_home = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant10679' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_GetX /\
uniMsg_Proc_home' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant34232 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant34232' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant32185 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant32185' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant51643 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home)

predicate invariant51643' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home')

predicate invariant19900 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
cacheState_home <> CACHE_E /\
uniMsg_Cmd_home = UNI_Nak /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(cacheState z1) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1 /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant19900' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
cacheState_home' <> CACHE_E /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(cacheState' z1) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1 /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariantX580 =
not (exists z1:int. dir_Dirty = False /\
(cacheState z1) = CACHE_E)

predicate invariantX580' =
not (exists z1:int. dir_Dirty' = False /\
(cacheState' z1) = CACHE_E)

predicate invariant70077 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant70077' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariant36287 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant36287' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant70081 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant70081' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariant41410 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant41410' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant35266 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant35266' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariant4546 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_GetX /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant4546' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_GetX /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant41414 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant41414' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant32199 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant32199' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant26060 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False)

predicate invariant26060' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False)

predicate invariantX11823 =
not (dir_Dirty = True /\
dir_ShrVld = True)

predicate invariantX11823' =
not (dir_Dirty' = True /\
dir_ShrVld' = True)

predicate invariant51667 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2)

predicate invariant51667' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2)

predicate invariant43475 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant43475' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant22997 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant22997' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant8661 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_Get /\
uniMsg_Proc_home = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant8661' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_Get /\
uniMsg_Proc_home' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant4565 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_GetX /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant4565' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_GetX /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant27094 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant27094' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant51671 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant51671' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant43479 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant43479' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant57817 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Pending = True /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant57817' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant31193 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant31193' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariant57820 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Pending = True /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant57820' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariantX2594 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(uniMsg_Cmd z1) = UNI_PutX /\
(uniMsg_Cmd z2) = UNI_PutX)

predicate invariantX2594' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(uniMsg_Cmd' z1) = UNI_PutX /\
(uniMsg_Cmd' z2) = UNI_PutX)

predicate invariantX13854 =
not (uniMsg_Cmd_home = UNI_PutX /\
dir_Pending = False)

predicate invariantX13854' =
not (uniMsg_Cmd_home' = UNI_PutX /\
dir_Pending' = False)

predicate invariant27107 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant27107' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant1511 =
not (wbMsg_Cmd = WB_Wb /\
shWbMsg_Cmd = SHWB_ShWb)

predicate invariant1511' =
not (wbMsg_Cmd' = WB_Wb /\
shWbMsg_Cmd' = SHWB_ShWb)

predicate invariant31208 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant31208' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariantX535 =
not (shWbMsg_Cmd = SHWB_ShWb /\
nakcMsg_Cmd = NAKC_Nakc)

predicate invariantX535' =
not (shWbMsg_Cmd' = SHWB_ShWb /\
nakcMsg_Cmd' = NAKC_Nakc)

predicate invariant31210 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z2) = UNI_Nak /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant31210' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z2) = UNI_Nak /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant35306 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant35306' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant35308 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant35308' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant40429 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant40429' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariantX528 =
not (uniMsg_Cmd_home = UNI_Put /\
nakcMsg_Cmd = NAKC_Nakc)

predicate invariantX528' =
not (uniMsg_Cmd_home' = UNI_Put /\
nakcMsg_Cmd' = NAKC_Nakc)

predicate invariant23026 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant23026' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant73204 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_InvSet_home = False /\
(procCmd z4) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_Inv /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant73204' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_InvSet_home' = False /\
(procCmd' z4) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_Inv /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariant3572 =
not (exists z1:int. home <> z1 /\
wbMsg_Cmd = WB_Wb /\
(uniMsg_Cmd z1) = UNI_PutX)

predicate invariant3572' =
not (exists z1:int. home' <> z1 /\
wbMsg_Cmd' = WB_Wb /\
(uniMsg_Cmd' z1) = UNI_PutX)

predicate invariant56821 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z2 /\
home <> z3 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
(procCmd z2) <> NODE_Get /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant56821' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
home' <> z3 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
(procCmd' z2) <> NODE_Get /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant73208 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_InvSet_home = False /\
(procCmd z4) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_Inv /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant73208' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_InvSet_home' = False /\
(procCmd' z4) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_Inv /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariant16889 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant16889' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant31232 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant31232' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant29184 =
not (exists z1:int. home <> z1 /\
uniMsg_Cmd_home = UNI_GetX /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant29184' =
not (exists z1:int. home' <> z1 /\
uniMsg_Cmd_home' = UNI_GetX /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant26113 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant26113' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant30211 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
(procCmd z2) = NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant30211' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
(procCmd' z2) = NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant56835 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
(procCmd z2) <> NODE_Get /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant56835' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
(procCmd' z2) <> NODE_Get /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant28164 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z3 /\
(invMarked z1) = False /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z3)

predicate invariant28164' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z3 /\
(invMarked' z1) = False /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z3)

predicate invariant30213 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(dir_ShrSet z2) = True /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant30213' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(dir_ShrSet' z2) = True /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariantX507 =
not (dir_Pending = False /\
nakcMsg_Cmd = NAKC_Nakc)

predicate invariantX507' =
not (dir_Pending' = False /\
nakcMsg_Cmd' = NAKC_Nakc)

predicate invariantX2554 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_PutX)

predicate invariantX2554' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_PutX)

predicate invariantX11770 =
not (dir_Pending = True /\
dir_ShrVld = True)

predicate invariantX11770' =
not (dir_Pending' = True /\
dir_ShrVld' = True)

predicate invariant51719 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2)

predicate invariant51719' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2)

predicate invariant33288 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1 /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant33288' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1 /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant19976 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
cacheState_home <> CACHE_E /\
uniMsg_Cmd_home = UNI_Nak /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(cacheState z1) = CACHE_E /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant19976' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
cacheState_home' <> CACHE_E /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(cacheState' z1) = CACHE_E /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant2568 =
not (exists z1:int. home <> z1 /\
collecting = False /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Data z1) <> currData)

predicate invariant2568' =
not (exists z1:int. home' <> z1 /\
collecting' = False /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Data' z1) <> currData')

predicate invariant53769 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_InvAck)

predicate invariant53769' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_InvAck)

predicate invariant32265 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant32265' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariant22027 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant22027' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant53772 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_InvAck)

predicate invariant53772' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_InvAck)

predicate invariant30222 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
(procCmd z2) = NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant30222' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
(procCmd' z2) = NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant30224 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(dir_ShrSet z2) = True /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant30224' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(dir_ShrSet' z2) = True /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant51729 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_InvAck)

predicate invariant51729' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_InvAck)

predicate invariant53777 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2)

predicate invariant53777' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2)

predicate invariant51732 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_InvAck)

predicate invariant51732' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_InvAck)

predicate invariant4628 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
uniMsg_Cmd_home = UNI_GetX /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant4628' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
uniMsg_Cmd_home' = UNI_GetX /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant2582 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = True /\
dir_Local = False /\
dir_InvSet_home = False /\
(cacheState z1) = CACHE_S /\
(cacheData z1) <> currData /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = True /\
(invMsg_Cmd z2) = INV_InvAck)

predicate invariant2582' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_InvSet_home' = False /\
(cacheState' z1) = CACHE_S /\
(cacheData' z1) <> currData' /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = True /\
(invMsg_Cmd' z2) = INV_InvAck)

predicate invariant18968 =
not (exists z1:int. cacheState_home <> CACHE_E /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_ShrVld = False /\
(cacheState z1) = CACHE_S)

predicate invariant18968' =
not (exists z1:int. cacheState_home' <> CACHE_E /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_ShrVld' = False /\
(cacheState' z1) = CACHE_S)

predicate invariant51737 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant51737' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant28190 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z3 /\
(invMarked z1) = False /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z3)

predicate invariant28190' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z3 /\
(invMarked' z1) = False /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z3)

predicate invariant31265 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant31265' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariantX1503 =
not (exists z1:int. dir_HeadVld = False /\
collecting = False /\
(cacheState z1) = CACHE_S)

predicate invariantX1503' =
not (exists z1:int. dir_HeadVld' = False /\
collecting' = False /\
(cacheState' z1) = CACHE_S)

predicate invariant32291 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant32291' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant24100 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = True /\
dir_Local = False /\
dir_InvSet_home = False /\
(procCmd z2) = NODE_Get /\
(invMarked z1) = False /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = True /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Data z1) <> currData /\
(invMsg_Cmd z2) = INV_Inv)

predicate invariant24100' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_InvSet_home' = False /\
(procCmd' z2) = NODE_Get /\
(invMarked' z1) = False /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = True /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Data' z1) <> currData' /\
(invMsg_Cmd' z2) = INV_Inv)

predicate invariant35366 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant35366' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariant20006 =
not (exists z1:int. home <> z1 /\
cacheState_home <> CACHE_E /\
uniMsg_Cmd_home = UNI_Nak /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant20006' =
not (exists z1:int. home' <> z1 /\
cacheState_home' <> CACHE_E /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant58921 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant58921' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant30249 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = True /\
dir_Dirty = True /\
dir_InvSet_home = False /\
(procCmd z2) = NODE_Get /\
(invMarked z1) = False /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = True /\
(uniMsg_Cmd z1) = UNI_Put /\
(invMsg_Cmd z2) = INV_Inv)

predicate invariant30249' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_InvSet_home' = False /\
(procCmd' z2) = NODE_Get /\
(invMarked' z1) = False /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = True /\
(uniMsg_Cmd' z1) = UNI_Put /\
(invMsg_Cmd' z2) = INV_Inv)

predicate invariant16939 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant16939' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant18989 =
not (exists z1:int. invMarked_home = False /\
uniMsg_Cmd_home = UNI_Put /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_ShrVld = False /\
(cacheState z1) = CACHE_S)

predicate invariant18989' =
not (exists z1:int. invMarked_home' = False /\
uniMsg_Cmd_home' = UNI_Put /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_ShrVld' = False /\
(cacheState' z1) = CACHE_S)

predicate invariant31280 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant31280' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant54834 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_ShrVld = False /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant54834' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_ShrVld' = False /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariant31282 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant31282' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant25142 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant25142' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant36407 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(procCmd z2) = NODE_GetX /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant36407' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(procCmd' z2) = NODE_GetX /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant1594 =
not (shWbMsg_Cmd = SHWB_FAck /\
nakcMsg_Cmd = NAKC_Nakc)

predicate invariant1594' =
not (shWbMsg_Cmd' = SHWB_FAck /\
nakcMsg_Cmd' = NAKC_Nakc)

predicate invariant4668 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
uniMsg_Cmd_home = UNI_GetX /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant4668' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
uniMsg_Cmd_home' = UNI_GetX /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariantX452 =
not (dir_Dirty = False /\
wbMsg_Cmd = WB_Wb)

predicate invariantX452' =
not (dir_Dirty' = False /\
wbMsg_Cmd' = WB_Wb)

predicate invariant51775 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Cmd z4) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(uniMsg_Proc z4) = z3)

predicate invariant51775' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Cmd' z4) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(uniMsg_Proc' z4) = z3)

predicate invariant70208 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) = NODE_Get /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant70208' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) = NODE_Get /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariant49729 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_HeadPtr <> z3 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home)

predicate invariant49729' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_HeadPtr' <> z3 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home')

predicate invariant9794 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant9794' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant70212 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) <> NODE_Get /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant70212' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) <> NODE_Get /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariant25156 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
collecting = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_S /\
(dir_ShrSet z1) = False)

predicate invariant25156' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_S /\
(dir_ShrSet' z1) = False)

predicate invariant9797 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant9797' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant25158 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_S /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant25158' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_S /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant57927 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z2) = True /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant57927' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z2) = True /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant10823 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_GetX /\
uniMsg_Proc_home = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant10823' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_GetX /\
uniMsg_Proc_home' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant54856 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant54856' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant31304 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant31304' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant58955 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant58955' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant1614 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant1614' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant32335 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant32335' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariantX5551 =
not (uniMsg_Cmd_home = UNI_Put /\
dir_ShrVld = True)

predicate invariantX5551' =
not (uniMsg_Cmd_home' = UNI_Put /\
dir_ShrVld' = True)

predicate invariant1619 =
not (uniMsg_Cmd_home = UNI_PutX /\
shWbMsg_Cmd = SHWB_FAck)

predicate invariant1619' =
not (uniMsg_Cmd_home' = UNI_PutX /\
shWbMsg_Cmd' = SHWB_FAck)

predicate invariant19033 =
not (exists z1:int. home <> z1 /\
invMarked_home = False /\
uniMsg_Cmd_home = UNI_Get /\
uniMsg_Proc_home = z1 /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_ShrVld = False /\
(cacheState z1) = CACHE_E)

predicate invariant19033' =
not (exists z1:int. home' <> z1 /\
invMarked_home' = False /\
uniMsg_Cmd_home' = UNI_Get /\
uniMsg_Proc_home' = z1 /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_ShrVld' = False /\
(cacheState' z1) = CACHE_E)

predicate invariant2651 =
not (exists z1:int. wbMsg_Cmd = WB_Wb /\
(cacheState z1) = CACHE_E)

predicate invariant2651' =
not (exists z1:int. wbMsg_Cmd' = WB_Wb /\
(cacheState' z1) = CACHE_E)

predicate invariant9821 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
collecting = False /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_PutX)

predicate invariant9821' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
collecting' = False /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_PutX)

predicate invariant34399 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_E /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant34399' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_E /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant35427 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant35427' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant51812 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Cmd z4) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(uniMsg_Proc z4) = z3)

predicate invariant51812' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Cmd' z4) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(uniMsg_Proc' z4) = z3)

predicate invariant8805 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
(cacheState z2) <> CACHE_E /\
(cacheState z3) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z2) = z3)

predicate invariant8805' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z3) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z2) = z3)

predicate invariant8806 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z2)

predicate invariant8806' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z2)

predicate invariant8808 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
(cacheState z2) <> CACHE_E /\
(cacheState z4) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant8808' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z4) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant31337 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant31337' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant39535 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant39535' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant35445 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False)

predicate invariant35445' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False)

predicate invariantX395 =
not (uniMsg_Cmd_home = UNI_Put /\
shWbMsg_Cmd = SHWB_FAck)

predicate invariantX395' =
not (uniMsg_Cmd_home' = UNI_Put /\
shWbMsg_Cmd' = SHWB_FAck)

predicate invariant32374 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_E /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant32374' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_E /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant31351 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant31351' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant1655 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
shWbMsg_Cmd = SHWB_FAck /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant1655' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
shWbMsg_Cmd' = SHWB_FAck /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant30328 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
(procCmd z2) <> NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant30328' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
(procCmd' z2) <> NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant6776 =
not (exists z1:int. home <> z1 /\
dir_HeadVld = False /\
collecting = False /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant6776' =
not (exists z1:int. home' <> z1 /\
dir_HeadVld' = False /\
collecting' = False /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant39545 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant39545' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant31353 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant31353' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant30330 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
dir_ShrVld = True /\
(procCmd z2) <> NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(dir_ShrSet z2) = True /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant30330' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
dir_ShrVld' = True /\
(procCmd' z2) <> NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(dir_ShrSet' z2) = True /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant54909 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z3) = INV_InvAck /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant54909' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z3) = INV_InvAck /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant39549 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant39549' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant55935 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
(procCmd z2) = NODE_Get /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant55935' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
(procCmd' z2) = NODE_Get /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant54912 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_InvAck /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant54912' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_InvAck /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant30339 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
(procCmd z2) <> NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant30339' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
(procCmd' z2) <> NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant30341 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
dir_ShrVld = True /\
(procCmd z2) <> NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(dir_ShrSet z2) = True /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant30341' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
dir_ShrVld' = True /\
(procCmd' z2) <> NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(dir_ShrSet' z2) = True /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant54917 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant54917' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant17030 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant17030' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant43654 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant43654' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant10886 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_Get /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant10886' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_Get /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant34440 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant34440' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant25224 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant25224' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariant18056 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = True /\
dir_Local = False /\
dir_InvSet_home = False /\
(procCmd z2) = NODE_Get /\
(cacheState z1) = CACHE_S /\
(cacheData z1) <> currData /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = True /\
(invMsg_Cmd z2) = INV_Inv)

predicate invariant18056' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_InvSet_home' = False /\
(procCmd' z2) = NODE_Get /\
(cacheState' z1) = CACHE_S /\
(cacheData' z1) <> currData' /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = True /\
(invMsg_Cmd' z2) = INV_Inv)

predicate invariant6793 =
not (exists z1:int. wbMsg_Cmd = WB_Wb /\
collecting = False /\
(cacheState z1) = CACHE_S)

predicate invariant6793' =
not (exists z1:int. wbMsg_Cmd' = WB_Wb /\
collecting' = False /\
(cacheState' z1) = CACHE_S)

predicate invariant25226 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z2) = UNI_Nak /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant25226' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z2) = UNI_Nak /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant18058 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = True /\
dir_Local = False /\
dir_InvSet_home = False /\
(procCmd z2) <> NODE_Get /\
(cacheState z1) = CACHE_S /\
(cacheData z1) <> currData /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = True /\
(invMsg_Cmd z2) = INV_Inv)

predicate invariant18058' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_InvSet_home' = False /\
(procCmd' z2) <> NODE_Get /\
(cacheState' z1) = CACHE_S /\
(cacheData' z1) <> currData' /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = True /\
(invMsg_Cmd' z2) = INV_Inv)

predicate invariant1674 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
shWbMsg_Cmd = SHWB_FAck /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant1674' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
shWbMsg_Cmd' = SHWB_FAck /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant54923 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant54923' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariantX8564 =
not (exists z1:int. home <> z1 /\
(uniMsg_Cmd z1) = UNI_Put /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariantX8564' =
not (exists z1:int. home' <> z1 /\
(uniMsg_Cmd' z1) = UNI_Put /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariantX1396 =
not (exists z1:int. home <> z1 /\
uniMsg_Cmd_home = UNI_Get /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariantX1396' =
not (exists z1:int. home' <> z1 /\
uniMsg_Cmd_home' = UNI_Get /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant1677 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant1677' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariantX369 =
not (dir_Pending = False /\
shWbMsg_Cmd = SHWB_FAck)

predicate invariantX369' =
not (dir_Pending' = False /\
shWbMsg_Cmd' = SHWB_FAck)

predicate invariant59025 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant59025' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant36498 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
(procCmd z2) = NODE_GetX /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant36498' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
(procCmd' z2) = NODE_GetX /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant59027 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(invMarked z3) = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant59027' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(invMarked' z3) = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant23187 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant23187' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant55956 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_Get /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant55956' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_Get /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant24212 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = True /\
dir_Local = False /\
dir_InvSet_home = False /\
(procCmd z2) <> NODE_Get /\
(invMarked z1) = False /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = True /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Data z1) <> currData /\
(invMsg_Cmd z2) = INV_Inv)

predicate invariant24212' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_InvSet_home' = False /\
(procCmd' z2) <> NODE_Get /\
(invMarked' z1) = False /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = True /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Data' z1) <> currData' /\
(invMsg_Cmd' z2) = INV_Inv)

predicate invariant38549 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant38549' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant38553 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant38553' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant26265 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant26265' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariantX1380 =
not (exists z1:int. home <> z1 /\
uniMsg_Cmd_home = UNI_Get /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariantX1380' =
not (exists z1:int. home' <> z1 /\
uniMsg_Cmd_home' = UNI_Get /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant40605 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant40605' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariantX11617 =
not (exists z1:int. dir_Pending = True /\
dir_Dirty = False /\
(cacheState z1) = CACHE_S /\
(dir_InvSet z1) = False)

predicate invariantX11617' =
not (exists z1:int. dir_Pending' = True /\
dir_Dirty' = False /\
(cacheState' z1) = CACHE_S /\
(dir_InvSet' z1) = False)

predicate invariant5791 =
not (exists z1:int. home <> z1 /\
uniMsg_Cmd_home = UNI_PutX /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant5791' =
not (exists z1:int. home' <> z1 /\
uniMsg_Cmd_home' = UNI_PutX /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant25248 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant25248' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant30368 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = True /\
dir_Dirty = True /\
dir_InvSet_home = False /\
(procCmd z2) <> NODE_Get /\
(invMarked z1) = False /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = True /\
(uniMsg_Cmd z1) = UNI_Put /\
(invMsg_Cmd z2) = INV_Inv)

predicate invariant30368' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_InvSet_home' = False /\
(procCmd' z2) <> NODE_Get /\
(invMarked' z1) = False /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = True /\
(uniMsg_Cmd' z1) = UNI_Put /\
(invMsg_Cmd' z2) = INV_Inv)

predicate invariant26274 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
collecting = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant26274' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant29347 =
not (exists z1:int. home <> z1 /\
dir_Pending = False /\
dir_Dirty = True /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant29347' =
not (exists z1:int. home' <> z1 /\
dir_Pending' = False /\
dir_Dirty' = True /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant19111 =
not (exists z1:int. home <> z1 /\
cacheState_home <> CACHE_E /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant19111' =
not (exists z1:int. home' <> z1 /\
cacheState_home' <> CACHE_E /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant35496 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_GetX /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant35496' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_GetX /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant58025 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
dir_ShrVld = True /\
(procCmd z2) <> NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z2) = True /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant58025' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
dir_ShrVld' = True /\
(procCmd' z2) <> NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z2) = True /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariantX1365 =
not (exists z1:int. home <> z1 /\
shWbMsg_Cmd = SHWB_ShWb /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariantX1365' =
not (exists z1:int. home' <> z1 /\
shWbMsg_Cmd' = SHWB_ShWb /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant29356 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = True /\
dir_Dirty = True /\
dir_InvSet_home = False /\
(cacheState z1) = CACHE_S /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = True /\
(invMsg_Cmd z2) = INV_InvAck)

predicate invariant29356' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_InvSet_home' = False /\
(cacheState' z1) = CACHE_S /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = True /\
(invMsg_Cmd' z2) = INV_InvAck)

predicate invariantX9553 =
not (exists z1:int. dir_HeadVld = False /\
(cacheState z1) = CACHE_S /\
(dir_InvSet z1) = False)

predicate invariantX9553' =
not (exists z1:int. dir_HeadVld' = False /\
(cacheState' z1) = CACHE_S /\
(dir_InvSet' z1) = False)

predicate invariant19122 =
not (exists z1:int. cacheState_home <> CACHE_E /\
uniMsg_Cmd_home = UNI_Nak /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False)

predicate invariant19122' =
not (exists z1:int. cacheState_home' <> CACHE_E /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False)

predicate invariant19123 =
not (exists z1:int. cacheState_home <> CACHE_E /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_ShrVld = True /\
(cacheState z1) = CACHE_S /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant19123' =
not (exists z1:int. cacheState_home' <> CACHE_E /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_ShrVld' = True /\
(cacheState' z1) = CACHE_S /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant35511 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_S /\
(dir_ShrSet z1) = False)

predicate invariant35511' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_S /\
(dir_ShrSet' z1) = False)

predicate invariant17081 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant17081' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant35513 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant35513' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariant41658 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant41658' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariantX1349 =
not (exists z1:int. home <> z1 /\
uniMsg_Cmd_home = UNI_Put /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariantX1349' =
not (exists z1:int. home' <> z1 /\
uniMsg_Cmd_home' = UNI_Put /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant59070 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z3) = INV_Inv /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant59070' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z3) = INV_Inv /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant41662 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant41662' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant23232 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Pending = True /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_InvAck)

predicate invariant23232' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_InvAck)

predicate invariant23233 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant23233' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant21186 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(procCmd z2) = NODE_GetX /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z2) = UNI_PutX /\
(uniMsg_Proc z1) = z2 /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant21186' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(procCmd' z2) = NODE_GetX /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z2) = UNI_PutX /\
(uniMsg_Proc' z1) = z2 /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant70339 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant70339' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariant70343 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant70343' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariantX1335 =
not (exists z1:int. home <> z1 /\
shWbMsg_Cmd = SHWB_ShWb /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariantX1335' =
not (exists z1:int. home' <> z1 /\
shWbMsg_Cmd' = SHWB_ShWb /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant19146 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Dirty = False /\
dir_HeadVld = True /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant19146' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariantX309 =
not (dir_Dirty = False /\
shWbMsg_Cmd = SHWB_ShWb)

predicate invariantX309' =
not (dir_Dirty' = False /\
shWbMsg_Cmd' = SHWB_ShWb)

predicate invariant57037 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
dir_ShrVld = True /\
(procCmd z2) <> NODE_Get /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z2) = True /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant57037' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
dir_ShrVld' = True /\
(procCmd' z2) <> NODE_Get /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z2) = True /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant19150 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Dirty = False /\
dir_HeadVld = True /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant19150' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant25296 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant25296' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant25298 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant25298' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant59093 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant59093' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant37593 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant37593' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant53978 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant53978' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant53979 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Cmd z4) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z4) = z3)

predicate invariant53979' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Cmd' z4) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z4) = z3)

predicate invariant6877 =
not (exists z1:int. home <> z1 /\
wbMsg_Cmd = WB_Wb /\
collecting = False /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant6877' =
not (exists z1:int. home' <> z1 /\
wbMsg_Cmd' = WB_Wb /\
collecting' = False /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariantX1313 =
not (exists z1:int. home <> z1 /\
dir_Pending = False /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariantX1313' =
not (exists z1:int. home' <> z1 /\
dir_Pending' = False /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant23264 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant23264' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant32483 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(procCmd z1) = NODE_GetX /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_PutX /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant32483' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(procCmd' z1) = NODE_GetX /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_PutX /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant35555 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant35555' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant66277 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Cmd z4) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z4) = z3)

predicate invariant66277' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Cmd' z4) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z4) = z3)

predicate invariant35557 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant35557' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant37608 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant37608' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant37609 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant37609' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariantX1302 =
not (exists z1:int. home <> z1 /\
uniMsg_Cmd_home = UNI_Put /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariantX1302' =
not (exists z1:int. home' <> z1 /\
uniMsg_Cmd_home' = UNI_Put /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant40684 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant40684' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant37613 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant37613' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant35567 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant35567' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant34545 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z1) = NODE_GetX /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_PutX /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant34545' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z1) = NODE_GetX /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_PutX /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant24306 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(procCmd z1) = NODE_GetX /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_PutX /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant24306' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' = NODE_None /\
cacheState_home' <> CACHE_E /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(procCmd' z1) = NODE_GetX /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_PutX /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant22258 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
(procCmd z2) = NODE_GetX /\
(cacheState z1) = CACHE_S /\
(dir_InvSet z1) = False /\
(uniMsg_Cmd z2) = UNI_PutX)

predicate invariant22258' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
(procCmd' z2) = NODE_GetX /\
(cacheState' z1) = CACHE_S /\
(dir_InvSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_PutX)

predicate invariant19187 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
cacheState_home = CACHE_E /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant19187' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
cacheState_home' = CACHE_E /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant8951 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
(cacheState z2) <> CACHE_E /\
(cacheState z3) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z2) = z3)

predicate invariant8951' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z3) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z2) = z3)

predicate invariantX30985 =
not (dir_ShrSet_home = True)

predicate invariantX30985' =
not (dir_ShrSet_home' = True)

predicate invariant8952 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z2)

predicate invariant8952' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z2)

predicate invariant8954 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
(cacheState z2) <> CACHE_E /\
(cacheState z4) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant8954' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
(cacheState' z2) <> CACHE_E /\
(cacheState' z4) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant40698 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant40698' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant26362 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
collecting = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_S /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant26362' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_S /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant41723 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant41723' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant19196 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
cacheState_home = CACHE_E /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant19196' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
cacheState_home' = CACHE_E /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant26365 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z2) = UNI_Nak /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant26365' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z2) = UNI_Nak /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant4861 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = True /\
dir_Local = False /\
dir_InvSet_home = False /\
(invMarked z1) = False /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = True /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Data z1) <> currData /\
(invMsg_Cmd z2) = INV_InvAck)

predicate invariant4861' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_InvSet_home' = False /\
(invMarked' z1) = False /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = True /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Data' z1) <> currData' /\
(invMsg_Cmd' z2) = INV_InvAck)

predicate invariant23294 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant23294' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant54015 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant54015' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant41727 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant41727' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant54016 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Cmd z4) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z4) = z3)

predicate invariant54016' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Cmd' z4) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z4) = z3)

predicate invariantX15612 =
not (exists z1:int. home <> z1 /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z1) = UNI_Nak)

predicate invariantX15612' =
not (exists z1:int. home' <> z1 /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z1) = UNI_Nak)

predicate invariant55048 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant55048' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariantX248 =
not (uniMsg_Cmd_home = UNI_Put /\
shWbMsg_Cmd = SHWB_ShWb)

predicate invariantX248' =
not (uniMsg_Cmd_home' = UNI_Put /\
shWbMsg_Cmd' = SHWB_ShWb)

predicate invariant36617 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant36617' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant29449 =
not (exists z1:int. home <> z1 /\
shWbMsg_Cmd = SHWB_FAck /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant29449' =
not (exists z1:int. home' <> z1 /\
shWbMsg_Cmd' = SHWB_FAck /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariantX1271 =
not (exists z1:int. home <> z1 /\
dir_Pending = False /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariantX1271' =
not (exists z1:int. home' <> z1 /\
dir_Pending' = False /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant11028 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_Get /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant11028' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_Get /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant32534 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant32534' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariantX229 =
not (uniMsg_Cmd_home = UNI_Put /\
dir_Dirty = False)

predicate invariantX229' =
not (uniMsg_Cmd_home' = UNI_Put /\
dir_Dirty' = False)

predicate invariant45854 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z3 /\
(procCmd z3) = NODE_None /\
(cacheState z3) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z3 /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant45854' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z3 /\
(procCmd' z3) = NODE_None /\
(cacheState' z3) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z3 /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariantX2269 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
(cacheState z1) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_PutX)

predicate invariantX2269' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
(cacheState' z1) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_PutX)

predicate invariant34596 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant34596' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant57126 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Pending = True /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant57126' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant53031 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant53031' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant10023 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
collecting = True /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant10023' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
collecting' = True /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant57129 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Pending = True /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant57129' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant35625 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant35625' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant35626 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant35626' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant40747 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant40747' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant18220 =
not (exists z1:int. procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False)

predicate invariant18220' =
not (exists z1:int. procCmd_home' = NODE_None /\
cacheState_home' <> CACHE_E /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False)

predicate invariant18221 =
not (exists z1:int. procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_ShrVld = False /\
(cacheState z1) = CACHE_S)

predicate invariant18221' =
not (exists z1:int. procCmd_home' = NODE_None /\
cacheState_home' <> CACHE_E /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_ShrVld' = False /\
(cacheState' z1) = CACHE_S)

predicate invariant26416 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant26416' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariantX9424 =
not (exists z1:int. home <> z1 /\
dir_ShrVld = True /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariantX9424' =
not (exists z1:int. home' <> z1 /\
dir_ShrVld' = True /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariantX1231 =
not (exists z1:int. home <> z1 /\
uniMsg_Cmd_home = UNI_GetX /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariantX1231' =
not (exists z1:int. home' <> z1 /\
uniMsg_Cmd_home' = UNI_GetX /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant53043 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home)

predicate invariant53043' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home')

predicate invariant35635 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_S /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant35635' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_S /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant42804 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant42804' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant43831 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant43831' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant41786 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant41786' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariantX25798 =
not (exists z1:int. shWbMsg_Cmd = SHWB_FAck /\
(cacheState z1) = CACHE_S)

predicate invariantX25798' =
not (exists z1:int. shWbMsg_Cmd' = SHWB_FAck /\
(cacheState' z1) = CACHE_S)

predicate invariant30526 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z2 /\
home <> z3 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_Get /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(dir_ShrSet z2) = True /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant30526' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
home' <> z3 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_Get /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(dir_ShrSet' z2) = True /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant52030 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2)

predicate invariant52030' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2)

predicate invariantX1218 =
not (exists z1:int. home <> z1 /\
uniMsg_Cmd_home = UNI_GetX /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariantX1218' =
not (exists z1:int. home' <> z1 /\
uniMsg_Cmd_home' = UNI_GetX /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariantX4289 =
not (exists z1:int. home <> z1 /\
(cacheState z1) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get)

predicate invariantX4289' =
not (exists z1:int. home' <> z1 /\
(cacheState' z1) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get)

predicate invariantX2238 =
not (exists z1 z2:int. z1 <> z2 /\ collecting = False /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_E)

predicate invariantX2238' =
not (exists z1 z2:int. z1 <> z2 /\ collecting' = False /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_E)

predicate invariantX9405 =
not (exists z1:int. home <> z1 /\
dir_ShrVld = True /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariantX9405' =
not (exists z1:int. home' <> z1 /\
dir_ShrVld' = True /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant30532 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
dir_ShrVld = True /\
(procCmd z2) = NODE_Get /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(dir_ShrSet z2) = True /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant30532' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
dir_ShrVld' = True /\
(procCmd' z2) = NODE_Get /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(dir_ShrSet' z2) = True /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant70470 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) = NODE_Get /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant70470' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) = NODE_Get /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariant56134 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
(procCmd z2) <> NODE_Get /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant56134' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
(procCmd' z2) <> NODE_Get /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant70474 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) <> NODE_Get /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant70474' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) <> NODE_Get /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariantX1201 =
not (exists z1:int. home <> z1 /\
nakcMsg_Cmd = NAKC_Nakc /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariantX1201' =
not (exists z1:int. home' <> z1 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariantX3248 =
not (exists z1:int. home <> z1 /\
(uniMsg_Cmd z1) = UNI_PutX /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariantX3248' =
not (exists z1:int. home' <> z1 /\
(uniMsg_Cmd' z1) = UNI_PutX /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariantX2224 =
not (cacheState_home = CACHE_S /\
dir_Dirty = True)

predicate invariantX2224' =
not (cacheState_home' = CACHE_S /\
dir_Dirty' = True)

predicate invariantX175 =
not (shWbMsg_Cmd = SHWB_ShWb /\
collecting = True)

predicate invariantX175' =
not (shWbMsg_Cmd' = SHWB_ShWb /\
collecting' = True)

predicate invariant38738 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant38738' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariantX9390 =
not (exists z1:int. home <> z1 /\
(dir_InvSet z1) = False /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariantX9390' =
not (exists z1:int. home' <> z1 /\
(dir_InvSet' z1) = False /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariantX5294 =
not (exists z1:int. home <> z1 /\
dir_ShrVld = True /\
(uniMsg_Cmd z1) = UNI_PutX)

predicate invariantX5294' =
not (exists z1:int. home' <> z1 /\
dir_ShrVld' = True /\
(uniMsg_Cmd' z1) = UNI_PutX)

predicate invariant1875 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant1875' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant38742 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant38742' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariantX168 =
not (shWbMsg_Cmd = SHWB_FAck /\
collecting = True)

predicate invariantX168' =
not (shWbMsg_Cmd' = SHWB_FAck /\
collecting' = True)

predicate invariant32602 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant32602' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariantX25766 =
not (exists z1:int. dir_Pending = False /\
dir_Dirty = True /\
(cacheState z1) = CACHE_S)

predicate invariantX25766' =
not (exists z1:int. dir_Pending' = False /\
dir_Dirty' = True /\
(cacheState' z1) = CACHE_S)

predicate invariant56156 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
(procCmd z2) <> NODE_Get /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant56156' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
(procCmd' z2) <> NODE_Get /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariantX1188 =
not (exists z1:int. home <> z1 /\
nakcMsg_Cmd = NAKC_Nakc /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariantX1188' =
not (exists z1:int. home' <> z1 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant22365 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(procCmd z2) = NODE_GetX /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant22365' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(procCmd' z2) = NODE_GetX /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant861 =
not (uniMsg_Cmd_home = UNI_PutX /\
shWbMsg_Cmd = SHWB_ShWb)

predicate invariant861' =
not (uniMsg_Cmd_home' = UNI_PutX /\
shWbMsg_Cmd' = SHWB_ShWb)

predicate invariant59230 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant59230' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant22366 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z2) = NODE_GetX /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant22366' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z2) = NODE_GetX /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant1887 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant1887' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant18271 =
not (exists z1:int. home <> z1 /\
cacheState_home = CACHE_E /\
(invMarked z1) = False /\
(dir_InvSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant18271' =
not (exists z1:int. home' <> z1 /\
cacheState_home' = CACHE_E /\
(invMarked' z1) = False /\
(dir_InvSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariantX5281 =
not (exists z1:int. home <> z1 /\
dir_ShrVld = True /\
(cacheState z1) = CACHE_E)

predicate invariantX5281' =
not (exists z1:int. home' <> z1 /\
dir_ShrVld' = True /\
(cacheState' z1) = CACHE_E)

predicate invariantX3233 =
not (exists z1:int. home <> z1 /\
(uniMsg_Cmd z1) = UNI_PutX /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariantX3233' =
not (exists z1:int. home' <> z1 /\
(uniMsg_Cmd' z1) = UNI_PutX /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant24416 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(procCmd z1) = NODE_GetX /\
(uniMsg_Cmd z1) = UNI_PutX /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1 /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant24416' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' = NODE_None /\
cacheState_home' <> CACHE_E /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(procCmd' z1) = NODE_GetX /\
(uniMsg_Cmd' z1) = UNI_PutX /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1 /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariantX4256 =
not (exists z1:int. home <> z1 /\
(cacheState z1) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX)

predicate invariantX4256' =
not (exists z1:int. home' <> z1 /\
(cacheState' z1) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX)

predicate invariant61282 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z3) = INV_Inv /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant61282' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z3) = INV_Inv /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariantX6302 =
not (exists z1:int. home <> z1 /\
uniMsg_Cmd_home = UNI_Put /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariantX6302' =
not (exists z1:int. home' <> z1 /\
uniMsg_Cmd_home' = UNI_Put /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant39782 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = True /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant39782' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant1895 =
not (uniMsg_Cmd_home = UNI_PutX /\
nakcMsg_Cmd = NAKC_Nakc)

predicate invariant1895' =
not (uniMsg_Cmd_home' = UNI_PutX /\
nakcMsg_Cmd' = NAKC_Nakc)

predicate invariant53096 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z3) = INV_InvAck)

predicate invariant53096' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z3) = INV_InvAck)

predicate invariantX5271 =
not (dir_HeadVld = False /\
shWbMsg_Cmd = SHWB_ShWb)

predicate invariantX5271' =
not (dir_HeadVld' = False /\
shWbMsg_Cmd' = SHWB_ShWb)

predicate invariant35690 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant35690' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariant53099 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_InvAck)

predicate invariant53099' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_InvAck)

predicate invariant8043 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
collecting = False /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant8043' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
collecting' = False /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariantX149 =
not (dir_Pending = False /\
collecting = True)

predicate invariantX149' =
not (dir_Pending' = False /\
collecting' = True)

predicate invariantX9361 =
not (exists z1:int. home <> z1 /\
(dir_InvSet z1) = False /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariantX9361' =
not (exists z1:int. home' <> z1 /\
(dir_InvSet' z1) = False /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant53104 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home)

predicate invariant53104' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home')

predicate invariant13168 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant13168' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant42865 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant42865' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant22385 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(procCmd z2) = NODE_GetX /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant22385' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(procCmd' z2) = NODE_GetX /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant22386 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(procCmd z2) = NODE_GetX /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant22386' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(procCmd' z2) = NODE_GetX /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariantX3213 =
not (exists z1:int. home <> z1 /\
(cacheState z1) = CACHE_E /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariantX3213' =
not (exists z1:int. home' <> z1 /\
(cacheState' z1) = CACHE_E /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariantX5261 =
not (dir_HeadVld = False /\
dir_ShrVld = True)

predicate invariantX5261' =
not (dir_HeadVld' = False /\
dir_ShrVld' = True)

predicate invariant52084 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_InvAck)

predicate invariant52084' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_InvAck)

predicate invariant35701 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z2) = UNI_Nak /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant35701' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z2) = UNI_Nak /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant52087 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_InvAck)

predicate invariant52087' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_InvAck)

predicate invariant40824 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant40824' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariantX4231 =
not (exists z1:int. home <> z1 /\
(cacheState z1) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Nak)

predicate invariantX4231' =
not (exists z1:int. home' <> z1 /\
(cacheState' z1) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Nak)

predicate invariant41851 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant41851' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant52092 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2)

predicate invariant52092' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2)

predicate invariant59264 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant59264' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant27521 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant27521' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant32645 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant32645' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant53128 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Nak /\
(uniMsg_Proc z1) = z2)

predicate invariant53128' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Nak /\
(uniMsg_Proc' z1) = z2)

predicate invariant35723 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant35723' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant53132 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant53132' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant27532 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(procCmd z2) = NODE_None /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_S /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant27532' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(procCmd' z2) = NODE_None /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_S /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant1932 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_PutX /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant1932' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_PutX /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant66446 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Cmd z4) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z4) = z3)

predicate invariant66446' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Cmd' z4) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z4) = z3)

predicate invariantX25712 =
not (exists z1:int. uniMsg_Cmd_home = UNI_GetX /\
(cacheState z1) = CACHE_S)

predicate invariantX25712' =
not (exists z1:int. uniMsg_Cmd_home' = UNI_GetX /\
(cacheState' z1) = CACHE_S)

predicate invariant57233 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Pending = True /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant57233' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant55187 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_ShrVld = False /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant55187' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_ShrVld' = False /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariant26515 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
collecting = False /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant26515' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant57236 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Pending = True /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant57236' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant38805 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant38805' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant18325 =
not (uniMsg_Cmd_home = UNI_PutX /\
dir_ShrVld = True)

predicate invariant18325' =
not (uniMsg_Cmd_home' = UNI_PutX /\
dir_ShrVld' = True)

predicate invariant29591 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant29591' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant29592 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = home)

predicate invariant29592' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = home')

predicate invariant48026 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_HeadPtr <> z3 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant48026' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_HeadPtr' <> z3 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant22426 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(procCmd z2) = NODE_GetX /\
(invMarked z1) = False /\
(dir_InvSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_PutX)

predicate invariant22426' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(procCmd' z2) = NODE_GetX /\
(invMarked' z1) = False /\
(dir_InvSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_PutX)

predicate invariantX1122 =
not (exists z1:int. home <> z1 /\
shWbMsg_Cmd = SHWB_FAck /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariantX1122' =
not (exists z1:int. home' <> z1 /\
shWbMsg_Cmd' = SHWB_FAck /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariantX25698 =
not (exists z1:int. (cacheState z1) = CACHE_S /\
(uniMsg_Cmd z1) = UNI_GetX)

predicate invariantX25698' =
not (exists z1:int. (cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z1) = UNI_GetX)

predicate invariant1951 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_PutX /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant1951' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_PutX /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant69536 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant69536' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariant30624 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z2 /\
home <> z3 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
dir_ShrVld = True /\
(procCmd z2) <> NODE_Get /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(dir_ShrSet z2) = True /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant30624' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
home' <> z3 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
dir_ShrVld' = True /\
(procCmd' z2) <> NODE_Get /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(dir_ShrSet' z2) = True /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant11170 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_GetX /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant11170' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_GetX /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant69540 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_Inv)

predicate invariant69540' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_Inv)

predicate invariantX92 =
not (cacheState_home = CACHE_E /\
uniMsg_Cmd_home = UNI_Put)

predicate invariantX92' =
not (cacheState_home' = CACHE_E /\
uniMsg_Cmd_home' = UNI_Put)

predicate invariant52133 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z4) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z4) = z3)

predicate invariant52133' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z4) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z4) = z3)

predicate invariant30630 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z3 /\
dir_ShrVld = True /\
(procCmd z2) <> NODE_Get /\
(invMarked z1) = False /\
(dir_ShrSet z1) = False /\
(dir_ShrSet z2) = True /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z3) = home)

predicate invariant30630' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z3 /\
dir_ShrVld' = True /\
(procCmd' z2) <> NODE_Get /\
(invMarked' z1) = False /\
(dir_ShrSet' z1) = False /\
(dir_ShrSet' z2) = True /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z3) = home')

predicate invariant23465 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant23465' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant15274 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Pending = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant15274' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_I /\
dir_Pending' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariantX1109 =
not (exists z1:int. home <> z1 /\
shWbMsg_Cmd = SHWB_FAck /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariantX1109' =
not (exists z1:int. home' <> z1 /\
shWbMsg_Cmd' = SHWB_FAck /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant29612 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = True /\
dir_Dirty = True /\
dir_InvSet_home = False /\
(invMarked z1) = False /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = True /\
(uniMsg_Cmd z1) = UNI_Put /\
(invMsg_Cmd z2) = INV_InvAck)

predicate invariant29612' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = True /\
dir_Dirty' = True /\
dir_InvSet_home' = False /\
(invMarked' z1) = False /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = True /\
(uniMsg_Cmd' z1) = UNI_Put /\
(invMsg_Cmd' z2) = INV_InvAck)

predicate invariantX25683 =
not (exists z1:int. (cacheState z1) = CACHE_S /\
(uniMsg_Cmd z1) = UNI_Get)

predicate invariantX25683' =
not (exists z1:int. (cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z1) = UNI_Get)

predicate invariantX82 =
not (cacheState_home = CACHE_E /\
uniMsg_Cmd_home = UNI_PutX)

predicate invariantX82' =
not (cacheState_home' = CACHE_E /\
uniMsg_Cmd_home' = UNI_PutX)

predicate invariant35759 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z1) = False /\
(invMarked z2) = True /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant35759' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z1) = False /\
(invMarked' z2) = True /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariant36787 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = True /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant36787' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant10163 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
collecting = True /\
(procCmd z2) = NODE_None /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant10163' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
collecting' = True /\
(procCmd' z2) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant35770 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant35770' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant53180 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2)

predicate invariant53180' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2)

predicate invariantX68 =
not (cacheState_home = CACHE_E /\
shWbMsg_Cmd = SHWB_ShWb)

predicate invariantX68' =
not (cacheState_home' = CACHE_E /\
shWbMsg_Cmd' = SHWB_ShWb)

predicate invariantX5187 =
not (cacheState_home = CACHE_E /\
dir_ShrVld = True)

predicate invariantX5187' =
not (cacheState_home' = CACHE_E /\
dir_ShrVld' = True)

predicate invariant6078 =
not (exists z1:int. home <> z1 /\
uniMsg_Cmd_home = UNI_PutX /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant6078' =
not (exists z1:int. home' <> z1 /\
uniMsg_Cmd_home' = UNI_PutX /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant9152 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
(procCmd z1) = NODE_Get /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant9152' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
(procCmd' z1) = NODE_Get /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariantX2112 =
not (cacheState_home = CACHE_S /\
dir_Pending = True)

predicate invariantX2112' =
not (cacheState_home' = CACHE_S /\
dir_Pending' = True)

predicate invariant37826 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant37826' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariantX62 =
not (uniMsg_Cmd_home = UNI_Put /\
collecting = True)

predicate invariantX62' =
not (uniMsg_Cmd_home' = UNI_Put /\
collecting' = True)

predicate invariant61379 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z3) = INV_Inv /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant61379' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z3) = INV_Inv /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariant9155 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
(procCmd z1) <> NODE_Get /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1 /\
(invMsg_Cmd z1) = INV_Inv)

predicate invariant9155' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
(procCmd' z1) <> NODE_Get /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1 /\
(invMsg_Cmd' z1) = INV_Inv)

predicate invariant26564 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = True /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z1) = RP_Replace /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant26564' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z1) = RP_Replace /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant23494 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z4 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z4) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = z4)

predicate invariant23494' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z4 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z4) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = z4)

predicate invariant59334 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant59334' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant53190 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_InvAck)

predicate invariant53190' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_InvAck)

predicate invariant33734 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant33734' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariantX13370 =
not (uniMsg_Cmd_home = UNI_Put /\
dir_Pending = False)

predicate invariantX13370' =
not (uniMsg_Cmd_home' = UNI_Put /\
dir_Pending' = False)

predicate invariant70599 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) = NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_Inv /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant70599' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) = NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_Inv /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant59336 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(invMarked z3) = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z3) = INV_Inv)

predicate invariant59336' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(invMarked' z3) = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z3) = INV_Inv)

predicate invariant23496 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_GetX /\
uniMsg_Proc_home = z3 /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant23496' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
cacheState_home' = CACHE_I /\
uniMsg_Cmd_home' = UNI_GetX /\
uniMsg_Proc_home' = z3 /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant53193 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(invMsg_Cmd z4) = INV_InvAck)

predicate invariant53193' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(invMsg_Cmd' z4) = INV_InvAck)

predicate invariant31689 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
dir_Pending = True /\
dir_Local = False /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant31689' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariant24522 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
cacheState_home <> CACHE_E /\
uniMsg_Cmd_home = UNI_Nak /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
(procCmd z1) = NODE_GetX /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_PutX /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = z1)

predicate invariant24522' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
cacheState_home' <> CACHE_E /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
(procCmd' z1) = NODE_GetX /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_PutX /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = z1)

predicate invariant1994 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_Put /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2)

predicate invariant1994' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_Put /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2)

predicate invariant70603 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(procCmd z4) <> NODE_Get /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_Inv /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant70603' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(procCmd' z4) <> NODE_Get /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_Inv /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant52172 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z4) = UNI_GetX /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z4) = z3)

predicate invariant52172' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z4) = UNI_GetX /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z4) = z3)

predicate invariant27597 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
collecting = False /\
(cacheState z1) = CACHE_S /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z2) = UNI_Nak /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant27597' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
collecting' = False /\
(cacheState' z1) = CACHE_S /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z2) = UNI_Nak /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant53198 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck /\
shWbMsg_Proc = z2 /\
(procCmd z3) = NODE_None /\
(cacheState z2) = CACHE_E /\
(cacheState z3) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant53198' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = z2 /\
(procCmd' z3) = NODE_None /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant35792 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant35792' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariantX48 =
not (shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc = home)

predicate invariantX48' =
not (shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' = home')

predicate invariant20433 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant20433' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(rpMsg_Cmd' z1) = RP_Replace)

predicate invariant19414 =
not (exists z1:int. home <> z1 /\
cacheState_home <> CACHE_E /\
uniMsg_Cmd_home = UNI_Nak /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_ShrVld = False /\
(invMarked z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant19414' =
not (exists z1:int. home' <> z1 /\
cacheState_home' <> CACHE_E /\
uniMsg_Cmd_home' = UNI_Nak /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_ShrVld' = False /\
(invMarked' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariantX38 =
not (invMarked_home = True)

predicate invariantX38' =
not (invMarked_home' = True)

predicate invariant32733 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Local = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> z1 /\
shWbMsg_Proc <> home /\
(procCmd z2) = NODE_None /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariant32733' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Local' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' <> z1 /\
shWbMsg_Proc' <> home' /\
(procCmd' z2) = NODE_None /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant52190 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
nakcMsg_Cmd = NAKC_Nakc /\
(invMarked z3) = True /\
(cacheState z2) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Put /\
(uniMsg_Proc z1) = z2)

predicate invariant52190' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
nakcMsg_Cmd' = NAKC_Nakc /\
(invMarked' z3) = True /\
(cacheState' z2) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Put /\
(uniMsg_Proc' z1) = z2)

predicate invariant2014 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
uniMsg_Cmd_home = UNI_Put /\
(cacheState z2) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Proc z1) = z2)

predicate invariant2014' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
uniMsg_Cmd_home' = UNI_Put /\
(cacheState' z2) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Proc' z1) = z2)

predicate invariant55263 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z3) = INV_InvAck /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant55263' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z3) = INV_InvAck /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariant46048 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z1 /\
home <> z3 /\
(procCmd z3) = NODE_None /\
(cacheState z3) = CACHE_E /\
(uniMsg_Cmd z2) = UNI_GetX /\
(uniMsg_Proc z2) = z3 /\
(invMsg_Cmd z1) = INV_InvAck)

predicate invariant46048' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z1 /\
home' <> z3 /\
(procCmd' z3) = NODE_None /\
(cacheState' z3) = CACHE_E /\
(uniMsg_Cmd' z2) = UNI_GetX /\
(uniMsg_Proc' z2) = z3 /\
(invMsg_Cmd' z1) = INV_InvAck)

predicate invariant55266 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
home <> z4 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = False /\
(dir_InvSet z4) = True /\
(uniMsg_Cmd z1) = UNI_Get /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z4) = INV_InvAck /\
(rpMsg_Cmd z3) = RP_Replace)

predicate invariant55266' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
home' <> z4 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = False /\
(dir_InvSet' z4) = True /\
(uniMsg_Cmd' z1) = UNI_Get /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z4) = INV_InvAck /\
(rpMsg_Cmd' z3) = RP_Replace)

predicate invariant27619 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrSet_home = False /\
collecting = False /\
(invMarked z2) = True /\
(cacheState z1) = CACHE_S /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) <> RP_Replace)

predicate invariant27619' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrSet_home' = False /\
collecting' = False /\
(invMarked' z2) = True /\
(cacheState' z1) = CACHE_S /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) <> RP_Replace)

predicate invariantX21 =
not (cacheState_home = CACHE_E /\
dir_Dirty = False)

predicate invariantX21' =
not (cacheState_home' = CACHE_E /\
dir_Dirty' = False)

predicate invariant42991 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant42991' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariantX1039 =
not (exists z1:int. home <> z1 /\
(cacheState z1) = CACHE_E /\
(uniMsg_Cmd z1) = UNI_Put)

predicate invariantX1039' =
not (exists z1:int. home' <> z1 /\
(cacheState' z1) = CACHE_E /\
(uniMsg_Cmd' z1) = UNI_Put)

predicate invariant53235 =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
(cacheState z2) = CACHE_E /\
(cacheState z3) <> CACHE_E /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_GetX /\
(uniMsg_Cmd z4) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(uniMsg_Proc z4) = z3)

predicate invariant53235' =
not (exists z1 z2 z3 z4:int. z3 <> z4 /\ z2 <> z4 /\ z2 <> z3 /\ z1 <> z4 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
(cacheState' z2) = CACHE_E /\
(cacheState' z3) <> CACHE_E /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_GetX /\
(uniMsg_Cmd' z4) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(uniMsg_Proc' z4) = z3)

predicate invariant59379 =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home <> z2 /\
home <> z3 /\
dir_Pending = True /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = z2 /\
dir_InvSet_home = False /\
(cacheState z2) = CACHE_E /\
(dir_InvSet z1) = False /\
(dir_InvSet z2) = False /\
(dir_InvSet z3) = True /\
(uniMsg_Cmd z1) = UNI_GetX /\
(uniMsg_Cmd z3) = UNI_Get /\
(uniMsg_Proc z1) = z2 /\
(uniMsg_Proc z3) = home /\
(invMsg_Cmd z3) = INV_Inv /\
(rpMsg_Cmd z3) <> RP_Replace)

predicate invariant59379' =
not (exists z1 z2 z3:int. z2 <> z3 /\ z1 <> z3 /\ z1 <> z2 /\ home' <> z2 /\
home' <> z3 /\
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadPtr' = z2 /\
dir_InvSet_home' = False /\
(cacheState' z2) = CACHE_E /\
(dir_InvSet' z1) = False /\
(dir_InvSet' z2) = False /\
(dir_InvSet' z3) = True /\
(uniMsg_Cmd' z1) = UNI_GetX /\
(uniMsg_Cmd' z3) = UNI_Get /\
(uniMsg_Proc' z1) = z2 /\
(uniMsg_Proc' z3) = home' /\
(invMsg_Cmd' z3) = INV_Inv /\
(rpMsg_Cmd' z3) <> RP_Replace)

predicate invariant41972 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = True /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant41972' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = True /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant35828 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Put)

predicate invariant35828' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Put)

predicate invariantX10 =
not (cacheState_home = CACHE_S /\
collecting = True)

predicate invariantX10' =
not (cacheState_home' = CACHE_S /\
collecting' = True)

predicate invariant41976 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = z2 /\
dir_ShrVld = False /\
dir_ShrSet_home = False /\
(invMarked z1) = False /\
(invMarked z2) = False /\
(dir_ShrSet z1) = False /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Get /\
(uniMsg_Proc z2) = home /\
(rpMsg_Cmd z2) = RP_Replace)

predicate invariant41976' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = z2 /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
(invMarked' z1) = False /\
(invMarked' z2) = False /\
(dir_ShrSet' z1) = False /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Get /\
(uniMsg_Proc' z2) = home' /\
(rpMsg_Cmd' z2) = RP_Replace)

predicate invariant30714 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z1 /\
home <> z2 /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = False /\
(invMarked z1) = False /\
(cacheState z2) = CACHE_I /\
(uniMsg_Cmd z1) = UNI_Put /\
(uniMsg_Cmd z2) = UNI_Nak)

predicate invariant30714' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z1 /\
home' <> z2 /\
dir_Pending' = False /\
dir_Local' = False /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = False /\
(invMarked' z1) = False /\
(cacheState' z2) = CACHE_I /\
(uniMsg_Cmd' z1) = UNI_Put /\
(uniMsg_Cmd' z2) = UNI_Nak)

predicate invariant35838 =
not (exists z1 z2:int. z1 <> z2 /\ home <> z2 /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> z1 /\
dir_HeadPtr <> z2 /\
dir_ShrVld = True /\
(invMarked z2) = False /\
(cacheState z1) = CACHE_S /\
(uniMsg_Cmd z2) = UNI_Put /\
(rpMsg_Cmd z1) = RP_Replace)

predicate invariant35838' =
not (exists z1 z2:int. z1 <> z2 /\ home' <> z2 /\
procCmd_home' <> NODE_Get /\
dir_Pending' = False /\
dir_Local' = True /\
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' <> z1 /\
dir_HeadPtr' <> z2 /\
dir_ShrVld' = True /\
(invMarked' z2) = False /\
(cacheState' z1) = CACHE_S /\
(uniMsg_Cmd' z2) = UNI_Put /\
(rpMsg_Cmd' z1) = RP_Replace)


end


theory Flash_abstr_trdefs

use import bool.Bool
use import int.Int
use import Flash_abstr_defs

predicate transition__ni_Inv_get =
(* transition ni_Inv_get *)
(exists dst:int. 
( (* requires *)
home <> dst /\
(procCmd dst) = NODE_Get /\
(invMsg_Cmd dst) = INV_Inv) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j106:int.
if _j106 = dst then
 invMsg_Cmd' _j106 = INV_InvAck
else invMsg_Cmd' _j106 = (invMsg_Cmd _j106)) /\
(forall _j107:int.
if _j107 = dst then
 cacheState' _j107 = CACHE_I
else cacheState' _j107 = (cacheState _j107)) /\
(forall _j108:int.
if _j108 = dst then
 invMarked' _j108 = True
else invMarked' _j108 = (invMarked _j108)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Remote_Put_inv =
(* transition ni_Remote_Put_inv *)
(exists dst:int. 
( (* requires *)
home <> dst /\
(invMarked dst) = True /\
(uniMsg_Cmd dst) = UNI_Put) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j93:int.
if _j93 = dst then
 uniMsg_Cmd' _j93 = UNI_None
else uniMsg_Cmd' _j93 = (uniMsg_Cmd _j93)) /\
(forall _j94:int.
if _j94 = dst then
 procCmd' _j94 = NODE_None
else procCmd' _j94 = (procCmd _j94)) /\
(forall _j95:int.
if _j95 = dst then
 invMarked' _j95 = False
else invMarked' _j95 = (invMarked _j95)) /\
(forall _j96:int.
if _j96 = dst then
 cacheState' _j96 = CACHE_I
else cacheState' _j96 = (cacheState _j96)) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__pi_Local_Get_Get_Head =
(* transition pi_Local_Get_Get_Head *)
(( (* requires *)
procCmd_home = NODE_None /\
cacheState_home = CACHE_I /\
dir_Pending = False /\
dir_Dirty = True) /\
( (* actions *)
procCmd_home' = NODE_Get /\
dir_Pending' = True /\
uniMsg_Cmd_home' = UNI_Get /\
uniMsg_Proc_home' = dir_HeadPtr /\
collecting' = False /\
home' = home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_GetX =
(* transition ni_Local_GetX_GetX *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr <> src /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
dir_Pending' = True /\
collecting' = False /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
(forall _j45:int.
if _j45 = src then
 uniMsg_Cmd' _j45 = UNI_GetX
else uniMsg_Cmd' _j45 = (uniMsg_Cmd _j45)) /\
(forall _j46:int.
if _j46 = src then
 uniMsg_Proc' _j46 = dir_HeadPtr
else uniMsg_Proc' _j46 = (uniMsg_Proc _j46)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_PutX_10 =
(* transition ni_Local_GetX_PutX_10 *)
(exists src pp:int. src <> pp /\ 
( (* requires *)
home <> src /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = src /\
(dir_ShrSet pp) = True /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
invMsg_Cmd_home' = INV_None /\
collecting' = True /\
prevData' = currData /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
tempData' = tempData /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
if p = src then
 dir_InvSet' p = False
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 dir_InvSet' p = True
else if dir_HeadVld = True /\
dir_HeadPtr = p then
 dir_InvSet' p = True
else dir_InvSet' p = False) /\
(forall p:int.
if p = src then
 invMsg_Cmd' p = INV_None
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 invMsg_Cmd' p = INV_Inv
else if dir_HeadVld = True /\
dir_HeadPtr = p then
 invMsg_Cmd' p = INV_Inv
else invMsg_Cmd' p = INV_None) /\
(forall _j77:int.
if _j77 = src then
 uniMsg_Cmd' _j77 = UNI_PutX
else uniMsg_Cmd' _j77 = (uniMsg_Cmd _j77)) /\
(forall _j78:int.
if _j78 = src then
 uniMsg_Proc' _j78 = home
else uniMsg_Proc' _j78 = (uniMsg_Proc _j78)) /\
(forall _j79:int.
if _j79 = src then
 uniMsg_Data' _j79 = memData
else uniMsg_Data' _j79 = (uniMsg_Data _j79)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__store_home_0 =
(* transition store_home_0 *)
(( (* requires *)
cacheState_home = CACHE_E) /\
( (* actions *)
cacheData_home' = tempData /\
currData' = tempData /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_PutX_5 =
(* transition ni_Local_GetX_PutX_5 *)
(exists src:int. 
( (* requires *)
home <> src /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = src /\
dir_ShrSet_home = False /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home
/\ (forall p:int.src = p \/ 
((dir_ShrSet p) = False))
) /\
( (* actions *)
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
cacheState_home' = CACHE_I /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
dir_InvSet' p = False) /\
(forall _j59:int.
if _j59 = src then
 uniMsg_Cmd' _j59 = UNI_PutX
else uniMsg_Cmd' _j59 = (uniMsg_Cmd _j59)) /\
(forall _j60:int.
if _j60 = src then
 uniMsg_Proc' _j60 = home
else uniMsg_Proc' _j60 = (uniMsg_Proc _j60)) /\
(forall _j61:int.
if _j61 = src then
 uniMsg_Data' _j61 = memData
else uniMsg_Data' _j61 = (uniMsg_Data _j61)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Replace_home =
(* transition ni_Replace_home *)
(( (* requires *)
rpMsg_Cmd_home = RP_Replace /\
dir_ShrVld = False) /\
( (* actions *)
rpMsg_Cmd_home' = RP_None /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_Get_Put1 =
(* transition ni_Local_Get_Put1 *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = False /\
(uniMsg_Cmd src) = UNI_Get /\
(uniMsg_Proc src) = home /\
(rpMsg_Cmd src) <> RP_Replace) /\
( (* actions *)
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j26:int.
if _j26 = src then
 uniMsg_Cmd' _j26 = UNI_Put
else uniMsg_Cmd' _j26 = (uniMsg_Cmd _j26)) /\
(forall _j27:int.
if _j27 = src then
 uniMsg_Proc' _j27 = home
else uniMsg_Proc' _j27 = (uniMsg_Proc _j27)) /\
(forall _j28:int.
if _j28 = src then
 uniMsg_Data' _j28 = memData
else uniMsg_Data' _j28 = (uniMsg_Data _j28)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Replace_shrvld_home =
(* transition ni_Replace_shrvld_home *)
(( (* requires *)
rpMsg_Cmd_home = RP_Replace /\
dir_ShrVld = True) /\
( (* actions *)
rpMsg_Cmd_home' = RP_None /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_Put_inv =
(* transition ni_Local_Put_inv *)
(( (* requires *)
invMarked_home = True /\
uniMsg_Cmd_home = UNI_Put) /\
( (* actions *)
uniMsg_Cmd_home' = UNI_None /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_Local' = True /\
memData' = uniMsg_Data_home /\
procCmd_home' = NODE_None /\
invMarked_home' = False /\
cacheState_home' = CACHE_I /\
home' = home /\
cacheData_home' = cacheData_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__pi_Local_GetX_GetX =
(* transition pi_Local_GetX_GetX *)
(( (* requires *)
procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_Pending = False /\
dir_Dirty = True) /\
( (* actions *)
procCmd_home' = NODE_GetX /\
dir_Pending' = True /\
uniMsg_Cmd_home' = UNI_GetX /\
uniMsg_Proc_home' = dir_HeadPtr /\
collecting' = False /\
home' = home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_PutXAcksDone =
(* transition ni_Local_PutXAcksDone *)
(( (* requires *)
uniMsg_Cmd_home = UNI_PutX) /\
( (* actions *)
uniMsg_Cmd_home' = UNI_None /\
dir_Pending' = False /\
dir_Local' = True /\
dir_HeadVld' = False /\
procCmd_home' = NODE_None /\
invMarked_home' = False /\
cacheState_home' = CACHE_E /\
cacheData_home' = uniMsg_Data_home /\
home' = home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Dirty' = dir_Dirty /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Remote_PutX =
(* transition ni_Remote_PutX *)
(exists dst:int. 
( (* requires *)
home <> dst /\
(procCmd dst) = NODE_GetX /\
(uniMsg_Cmd dst) = UNI_PutX) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j101:int.
if _j101 = dst then
 uniMsg_Cmd' _j101 = UNI_None
else uniMsg_Cmd' _j101 = (uniMsg_Cmd _j101)) /\
(forall _j102:int.
if _j102 = dst then
 procCmd' _j102 = NODE_None
else procCmd' _j102 = (procCmd _j102)) /\
(forall _j103:int.
if _j103 = dst then
 invMarked' _j103 = False
else invMarked' _j103 = (invMarked _j103)) /\
(forall _j104:int.
if _j104 = dst then
 cacheState' _j104 = CACHE_E
else cacheState' _j104 = (cacheState _j104)) /\
(forall _j105:int.
if _j105 = dst then
 cacheData' _j105 = (uniMsg_Data dst)
else cacheData' _j105 = (cacheData _j105)) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_PutX_3 =
(* transition ni_Local_GetX_PutX_3 *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = False /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
cacheState_home' = CACHE_I /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
dir_InvSet' p = False) /\
(forall _j53:int.
if _j53 = src then
 uniMsg_Cmd' _j53 = UNI_PutX
else uniMsg_Cmd' _j53 = (uniMsg_Cmd _j53)) /\
(forall _j54:int.
if _j54 = src then
 uniMsg_Proc' _j54 = home
else uniMsg_Proc' _j54 = (uniMsg_Proc _j54)) /\
(forall _j55:int.
if _j55 = src then
 uniMsg_Data' _j55 = memData
else uniMsg_Data' _j55 = (uniMsg_Data _j55)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_Nak_ =
(* transition ni_Local_GetX_Nak *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = src /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j43:int.
if _j43 = src then
 uniMsg_Cmd' _j43 = UNI_Nak
else uniMsg_Cmd' _j43 = (uniMsg_Cmd _j43)) /\
(forall _j44:int.
if _j44 = src then
 uniMsg_Proc' _j44 = home
else uniMsg_Proc' _j44 = (uniMsg_Proc _j44)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Replace_shrvld =
(* transition ni_Replace_shrvld *)
(exists src:int. 
( (* requires *)
dir_ShrVld = True /\
(rpMsg_Cmd src) = RP_Replace) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j121:int.
if _j121 = src then
 rpMsg_Cmd' _j121 = RP_None
else rpMsg_Cmd' _j121 = (rpMsg_Cmd _j121)) /\
(forall _j122:int.
if _j122 = src then
 dir_ShrSet' _j122 = False
else dir_ShrSet' _j122 = (dir_ShrSet _j122)) /\
(forall _j123:int.
if _j123 = src then
 dir_InvSet' _j123 = False
else dir_InvSet' _j123 = (dir_InvSet _j123)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_PutX_1 =
(* transition ni_Local_GetX_PutX_1 *)
(exists src:int. 
( (* requires *)
home <> src /\
procCmd_home = NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = False /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
cacheState_home' = CACHE_I /\
invMarked_home' = True /\
home' = home /\
procCmd_home' = procCmd_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
dir_InvSet' p = False) /\
(forall _j47:int.
if _j47 = src then
 uniMsg_Cmd' _j47 = UNI_PutX
else uniMsg_Cmd' _j47 = (uniMsg_Cmd _j47)) /\
(forall _j48:int.
if _j48 = src then
 uniMsg_Proc' _j48 = home
else uniMsg_Proc' _j48 = (uniMsg_Proc _j48)) /\
(forall _j49:int.
if _j49 = src then
 uniMsg_Data' _j49 = memData
else uniMsg_Data' _j49 = (uniMsg_Data _j49)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_Get_Put2_dirty =
(* transition ni_Local_Get_Put2_dirty *)
(exists src:int. 
( (* requires *)
home <> src /\
cacheState_home = CACHE_E /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = True /\
(uniMsg_Cmd src) = UNI_Get /\
(uniMsg_Proc src) = home /\
(rpMsg_Cmd src) <> RP_Replace) /\
( (* actions *)
dir_Dirty' = False /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
memData' = cacheData_home /\
cacheState_home' = CACHE_S /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j29:int.
if _j29 = src then
 uniMsg_Cmd' _j29 = UNI_Put
else uniMsg_Cmd' _j29 = (uniMsg_Cmd _j29)) /\
(forall _j30:int.
if _j30 = src then
 uniMsg_Proc' _j30 = home
else uniMsg_Proc' _j30 = (uniMsg_Proc _j30)) /\
(forall _j31:int.
if _j31 = src then
 uniMsg_Data' _j31 = cacheData_home
else uniMsg_Data' _j31 = (uniMsg_Data _j31)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_PutX_8_home =
(* transition ni_Local_GetX_PutX_8_home *)
(exists src:int. 
( (* requires *)
home <> src /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = src /\
dir_ShrSet_home = True /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
invMsg_Cmd_home' = INV_None /\
cacheState_home' = CACHE_I /\
collecting' = True /\
prevData' = currData /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
tempData' = tempData /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
if p = src then
 dir_InvSet' p = False
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 dir_InvSet' p = True
else if dir_HeadVld = True /\
dir_HeadPtr = p then
 dir_InvSet' p = True
else dir_InvSet' p = False) /\
(forall p:int.
if p = src then
 invMsg_Cmd' p = INV_None
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 invMsg_Cmd' p = INV_Inv
else if dir_HeadVld = True /\
dir_HeadPtr = p then
 invMsg_Cmd' p = INV_Inv
else invMsg_Cmd' p = INV_None) /\
(forall _j71:int.
if _j71 = src then
 uniMsg_Cmd' _j71 = UNI_PutX
else uniMsg_Cmd' _j71 = (uniMsg_Cmd _j71)) /\
(forall _j72:int.
if _j72 = src then
 uniMsg_Proc' _j72 = home
else uniMsg_Proc' _j72 = (uniMsg_Proc _j72)) /\
(forall _j73:int.
if _j73 = src then
 uniMsg_Data' _j73 = memData
else uniMsg_Data' _j73 = (uniMsg_Data _j73)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_FAck_dirty =
(* transition ni_FAck_dirty *)
(( (* requires *)
dir_Dirty = True /\
shWbMsg_Cmd = SHWB_FAck) /\
( (* actions *)
shWbMsg_Cmd' = SHWB_None /\
dir_Pending' = False /\
dir_HeadPtr' = shWbMsg_Proc /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_InvAck_done_1 =
(* transition ni_InvAck_done_1 *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = True /\
dir_Local = True /\
dir_Dirty = False /\
dir_InvSet_home = False /\
(dir_InvSet src) = True /\
(invMsg_Cmd src) = INV_InvAck
/\ (forall p:int.src = p \/ 
((dir_InvSet p) = False))
) /\
( (* actions *)
dir_Pending' = False /\
dir_Local' = False /\
collecting' = False /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
(forall _j115:int.
if _j115 = src then
 invMsg_Cmd' _j115 = INV_None
else invMsg_Cmd' _j115 = (invMsg_Cmd _j115)) /\
(forall _j116:int.
if _j116 = src then
 dir_InvSet' _j116 = False
else dir_InvSet' _j116 = (dir_InvSet _j116)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Inv =
(* transition ni_Inv *)
(exists dst:int. 
( (* requires *)
home <> dst /\
(procCmd dst) <> NODE_Get /\
(invMsg_Cmd dst) = INV_Inv) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j109:int.
if _j109 = dst then
 invMsg_Cmd' _j109 = INV_InvAck
else invMsg_Cmd' _j109 = (invMsg_Cmd _j109)) /\
(forall _j110:int.
if _j110 = dst then
 cacheState' _j110 = CACHE_I
else cacheState' _j110 = (cacheState _j110)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Remote_GetX_Nak =
(* transition ni_Remote_GetX_Nak *)
(exists src dst:int. src <> dst /\ 
( (* requires *)
home <> dst /\
(cacheState dst) <> CACHE_E /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = dst) /\
( (* actions *)
nakcMsg_Cmd' = NAKC_Nakc /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j86:int.
if _j86 = src then
 uniMsg_Cmd' _j86 = UNI_Nak
else uniMsg_Cmd' _j86 = (uniMsg_Cmd _j86)) /\
(forall _j87:int.
if _j87 = src then
 uniMsg_Proc' _j87 = dst
else uniMsg_Proc' _j87 = (uniMsg_Proc _j87)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_Get_Nak_ =
(* transition ni_Local_Get_Nak *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr = src /\
(uniMsg_Cmd src) = UNI_Get /\
(uniMsg_Proc src) = home /\
(rpMsg_Cmd src) <> RP_Replace) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j18:int.
if _j18 = src then
 uniMsg_Cmd' _j18 = UNI_Nak
else uniMsg_Cmd' _j18 = (uniMsg_Cmd _j18)) /\
(forall _j19:int.
if _j19 = src then
 uniMsg_Proc' _j19 = home
else uniMsg_Proc' _j19 = (uniMsg_Proc _j19)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_Get_Nak =
(* transition ni_Local_Get_Nak *)
(exists src:int. 
( (* requires *)
home <> src /\
cacheState_home <> CACHE_E /\
dir_Local = True /\
dir_Dirty = True /\
(uniMsg_Cmd src) = UNI_Get /\
(uniMsg_Proc src) = home /\
(rpMsg_Cmd src) <> RP_Replace) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j16:int.
if _j16 = src then
 uniMsg_Cmd' _j16 = UNI_Nak
else uniMsg_Cmd' _j16 = (uniMsg_Cmd _j16)) /\
(forall _j17:int.
if _j17 = src then
 uniMsg_Proc' _j17 = home
else uniMsg_Proc' _j17 = (uniMsg_Proc _j17)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Remote_Get_Put_home =
(* transition ni_Remote_Get_Put_home *)
(exists dst:int. 
( (* requires *)
home <> dst /\
uniMsg_Cmd_home = UNI_Get /\
uniMsg_Proc_home = dst /\
(cacheState dst) = CACHE_E) /\
( (* actions *)
uniMsg_Cmd_home' = UNI_Put /\
uniMsg_Proc_home' = dst /\
uniMsg_Data_home' = (cacheData dst) /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j38:int.
if _j38 = dst then
 cacheState' _j38 = CACHE_S
else cacheState' _j38 = (cacheState _j38)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Remote_Get_Put =
(* transition ni_Remote_Get_Put *)
(exists src dst:int. src <> dst /\ 
( (* requires *)
home <> src /\
home <> dst /\
(cacheState dst) = CACHE_E /\
(uniMsg_Cmd src) = UNI_Get /\
(uniMsg_Proc src) = dst) /\
( (* actions *)
shWbMsg_Cmd' = SHWB_ShWb /\
shWbMsg_Proc' = src /\
shWbMsg_Data' = (cacheData dst) /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j34:int.
if _j34 = dst then
 cacheState' _j34 = CACHE_S
else cacheState' _j34 = (cacheState _j34)) /\
(forall _j35:int.
if _j35 = src then
 uniMsg_Cmd' _j35 = UNI_Put
else uniMsg_Cmd' _j35 = (uniMsg_Cmd _j35)) /\
(forall _j36:int.
if _j36 = src then
 uniMsg_Proc' _j36 = dst
else uniMsg_Proc' _j36 = (uniMsg_Proc _j36)) /\
(forall _j37:int.
if _j37 = src then
 uniMsg_Data' _j37 = (cacheData dst)
else uniMsg_Data' _j37 = (uniMsg_Data _j37)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__pi_Remote_Get =
(* transition pi_Remote_Get *)
(exists src:int. 
( (* requires *)
home <> src /\
(procCmd src) = NODE_None /\
(cacheState src) = CACHE_I) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j2:int.
if _j2 = src then
 procCmd' _j2 = NODE_Get
else procCmd' _j2 = (procCmd _j2)) /\
(forall _j3:int.
if _j3 = src then
 uniMsg_Cmd' _j3 = UNI_Get
else uniMsg_Cmd' _j3 = (uniMsg_Cmd _j3)) /\
(forall _j4:int.
if _j4 = src then
 uniMsg_Proc' _j4 = home
else uniMsg_Proc' _j4 = (uniMsg_Proc _j4)) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_PutX_4 =
(* transition ni_Local_GetX_PutX_4 *)
(exists src:int. 
( (* requires *)
home <> src /\
procCmd_home = NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadPtr = src /\
dir_ShrSet_home = False /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home
/\ (forall p:int.src = p \/ 
((dir_ShrSet p) = False))
) /\
( (* actions *)
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
cacheState_home' = CACHE_I /\
invMarked_home' = True /\
home' = home /\
procCmd_home' = procCmd_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
dir_InvSet' p = False) /\
(forall _j56:int.
if _j56 = src then
 uniMsg_Cmd' _j56 = UNI_PutX
else uniMsg_Cmd' _j56 = (uniMsg_Cmd _j56)) /\
(forall _j57:int.
if _j57 = src then
 uniMsg_Proc' _j57 = home
else uniMsg_Proc' _j57 = (uniMsg_Proc _j57)) /\
(forall _j58:int.
if _j58 = src then
 uniMsg_Data' _j58 = memData
else uniMsg_Data' _j58 = (uniMsg_Data _j58)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__pi_Local_GetX_PutX =
(* transition pi_Local_GetX_PutX *)
(( (* requires *)
procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = False) /\
( (* actions *)
dir_Local' = True /\
dir_Dirty' = True /\
procCmd_home' = NODE_None /\
invMarked_home' = False /\
cacheState_home' = CACHE_E /\
cacheData_home' = memData /\
home' = home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__pi_Local_Replace =
(* transition pi_Local_Replace *)
(( (* requires *)
procCmd_home = NODE_None /\
cacheState_home = CACHE_S) /\
( (* actions *)
dir_Local' = False /\
cacheState_home' = CACHE_I /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_ShWb =
(* transition ni_ShWb *)
(( (* requires *)
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc <> home) /\
( (* actions *)
shWbMsg_Cmd' = SHWB_None /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_ShrVld' = True /\
dir_InvSet_home' = dir_ShrSet_home /\
memData' = shWbMsg_Data /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Local' = dir_Local /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrSet_home' = dir_ShrSet_home /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall p:int.
if p = shWbMsg_Proc then
 dir_ShrSet' p = True
else dir_ShrSet' p = (dir_ShrSet p)) /\
(forall p:int.
if p = shWbMsg_Proc then
 dir_InvSet' p = True
else dir_InvSet' p = (dir_ShrSet p)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_Get_Get =
(* transition ni_Local_Get_Get *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = True /\
dir_HeadPtr <> src /\
(uniMsg_Cmd src) = UNI_Get /\
(uniMsg_Proc src) = home /\
(rpMsg_Cmd src) <> RP_Replace) /\
( (* actions *)
dir_Pending' = True /\
collecting' = False /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
(forall _j20:int.
if _j20 = src then
 uniMsg_Cmd' _j20 = UNI_Get
else uniMsg_Cmd' _j20 = (uniMsg_Cmd _j20)) /\
(forall _j21:int.
if _j21 = src then
 uniMsg_Proc' _j21 = dir_HeadPtr
else uniMsg_Proc' _j21 = (uniMsg_Proc _j21)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_InvAck_exists_home =
(* transition ni_InvAck_exists_home *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = True /\
dir_InvSet_home = True /\
(dir_InvSet src) = True /\
(invMsg_Cmd src) = INV_InvAck) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j113:int.
if _j113 = src then
 invMsg_Cmd' _j113 = INV_None
else invMsg_Cmd' _j113 = (invMsg_Cmd _j113)) /\
(forall _j114:int.
if _j114 = src then
 dir_InvSet' _j114 = False
else dir_InvSet' _j114 = (dir_InvSet _j114)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Replace =
(* transition ni_Replace *)
(exists src:int. 
( (* requires *)
dir_ShrVld = False /\
(rpMsg_Cmd src) = RP_Replace) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j124:int.
if _j124 = src then
 rpMsg_Cmd' _j124 = RP_None
else rpMsg_Cmd' _j124 = (rpMsg_Cmd _j124)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) ))


predicate transition__ni_FAck =
(* transition ni_FAck *)
(( (* requires *)
dir_Dirty = False /\
shWbMsg_Cmd = SHWB_FAck) /\
( (* actions *)
shWbMsg_Cmd' = SHWB_None /\
dir_Pending' = False /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_Nak =
(* transition ni_Local_GetX_Nak *)
(exists src:int. 
( (* requires *)
home <> src /\
cacheState_home <> CACHE_E /\
dir_Local = True /\
dir_Dirty = True /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j41:int.
if _j41 = src then
 uniMsg_Cmd' _j41 = UNI_Nak
else uniMsg_Cmd' _j41 = (uniMsg_Cmd _j41)) /\
(forall _j42:int.
if _j42 = src then
 uniMsg_Proc' _j42 = home
else uniMsg_Proc' _j42 = (uniMsg_Proc _j42)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_InvAck_exists =
(* transition ni_InvAck_exists *)
(exists src pp:int. src <> pp /\ 
( (* requires *)
home <> src /\
dir_Pending = True /\
(dir_InvSet src) = True /\
(dir_InvSet pp) = True /\
(invMsg_Cmd src) = INV_InvAck) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j111:int.
if _j111 = src then
 invMsg_Cmd' _j111 = INV_None
else invMsg_Cmd' _j111 = (invMsg_Cmd _j111)) /\
(forall _j112:int.
if _j112 = src then
 dir_InvSet' _j112 = False
else dir_InvSet' _j112 = (dir_InvSet _j112)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_PutX_9 =
(* transition ni_Local_GetX_PutX_9 *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> src /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
invMsg_Cmd_home' = INV_None /\
collecting' = True /\
prevData' = currData /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
tempData' = tempData /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
if p = src then
 dir_InvSet' p = False
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 dir_InvSet' p = True
else if dir_HeadVld = True /\
dir_HeadPtr = p then
 dir_InvSet' p = True
else dir_InvSet' p = False) /\
(forall p:int.
if p = src then
 invMsg_Cmd' p = INV_None
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 invMsg_Cmd' p = INV_Inv
else if dir_HeadVld = True /\
dir_HeadPtr = p then
 invMsg_Cmd' p = INV_Inv
else invMsg_Cmd' p = INV_None) /\
(forall _j74:int.
if _j74 = src then
 uniMsg_Cmd' _j74 = UNI_PutX
else uniMsg_Cmd' _j74 = (uniMsg_Cmd _j74)) /\
(forall _j75:int.
if _j75 = src then
 uniMsg_Proc' _j75 = home
else uniMsg_Proc' _j75 = (uniMsg_Proc _j75)) /\
(forall _j76:int.
if _j76 = src then
 uniMsg_Data' _j76 = memData
else uniMsg_Data' _j76 = (uniMsg_Data _j76)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__pi_Local_PutX =
(* transition pi_Local_PutX *)
(( (* requires *)
procCmd_home = NODE_None /\
cacheState_home = CACHE_E /\
dir_Pending = False) /\
( (* actions *)
cacheState_home' = CACHE_I /\
dir_Local' = False /\
dir_Dirty' = False /\
memData' = cacheData_home /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_PutX_10_home =
(* transition ni_Local_GetX_PutX_10_home *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = src /\
dir_ShrSet_home = True /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
invMsg_Cmd_home' = INV_None /\
collecting' = True /\
prevData' = currData /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
tempData' = tempData /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
if p = src then
 dir_InvSet' p = False
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 dir_InvSet' p = True
else if dir_HeadVld = True /\
dir_HeadPtr = p then
 dir_InvSet' p = True
else dir_InvSet' p = False) /\
(forall p:int.
if p = src then
 invMsg_Cmd' p = INV_None
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 invMsg_Cmd' p = INV_Inv
else if dir_HeadVld = True /\
dir_HeadPtr = p then
 invMsg_Cmd' p = INV_Inv
else invMsg_Cmd' p = INV_None) /\
(forall _j80:int.
if _j80 = src then
 uniMsg_Cmd' _j80 = UNI_PutX
else uniMsg_Cmd' _j80 = (uniMsg_Cmd _j80)) /\
(forall _j81:int.
if _j81 = src then
 uniMsg_Proc' _j81 = home
else uniMsg_Proc' _j81 = (uniMsg_Proc _j81)) /\
(forall _j82:int.
if _j82 = src then
 uniMsg_Data' _j82 = memData
else uniMsg_Data' _j82 = (uniMsg_Data _j82)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Remote_Get_Nak =
(* transition ni_Remote_Get_Nak *)
(exists src dst:int. src <> dst /\ 
( (* requires *)
home <> dst /\
(cacheState dst) <> CACHE_E /\
(uniMsg_Cmd src) = UNI_Get /\
(uniMsg_Proc src) = dst) /\
( (* actions *)
nakcMsg_Cmd' = NAKC_Nakc /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j32:int.
if _j32 = src then
 uniMsg_Cmd' _j32 = UNI_Nak
else uniMsg_Cmd' _j32 = (uniMsg_Cmd _j32)) /\
(forall _j33:int.
if _j33 = src then
 uniMsg_Proc' _j33 = dst
else uniMsg_Proc' _j33 = (uniMsg_Proc _j33)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_Get_Put1_Head =
(* transition ni_Local_Get_Put1_Head *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = True /\
(uniMsg_Cmd src) = UNI_Get /\
(uniMsg_Proc src) = home /\
(rpMsg_Cmd src) <> RP_Replace) /\
( (* actions *)
dir_ShrVld' = True /\
dir_InvSet_home' = dir_ShrSet_home /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrSet_home' = dir_ShrSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j22:int.
if _j22 = src then
 dir_ShrSet' _j22 = True
else dir_ShrSet' _j22 = (dir_ShrSet _j22)) /\
(forall p:int.
if p = src then
 dir_InvSet' p = True
else dir_InvSet' p = (dir_ShrSet p)) /\
(forall _j23:int.
if _j23 = src then
 uniMsg_Cmd' _j23 = UNI_Put
else uniMsg_Cmd' _j23 = (uniMsg_Cmd _j23)) /\
(forall _j24:int.
if _j24 = src then
 uniMsg_Proc' _j24 = home
else uniMsg_Proc' _j24 = (uniMsg_Proc _j24)) /\
(forall _j25:int.
if _j25 = src then
 uniMsg_Data' _j25 = memData
else uniMsg_Data' _j25 = (uniMsg_Data _j25)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_ShWb_home =
(* transition ni_ShWb_home *)
(( (* requires *)
shWbMsg_Cmd = SHWB_ShWb /\
shWbMsg_Proc = home) /\
( (* actions *)
shWbMsg_Cmd' = SHWB_None /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_ShrVld' = True /\
dir_ShrSet_home' = True /\
dir_InvSet_home' = True /\
memData' = shWbMsg_Data /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Local' = dir_Local /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall p:int.
dir_InvSet' p = (dir_ShrSet p)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Nak_home =
(* transition ni_Nak_home *)
(( (* requires *)
uniMsg_Cmd_home = UNI_Nak) /\
( (* actions *)
uniMsg_Cmd_home' = UNI_None /\
procCmd_home' = NODE_None /\
invMarked_home' = False /\
home' = home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_InvAck_done_2 =
(* transition ni_InvAck_done_2 *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = True /\
dir_Local = False /\
dir_InvSet_home = False /\
(dir_InvSet src) = True /\
(invMsg_Cmd src) = INV_InvAck
/\ (forall p:int.src = p \/ 
((dir_InvSet p) = False))
) /\
( (* actions *)
dir_Pending' = False /\
collecting' = False /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
(forall _j117:int.
if _j117 = src then
 invMsg_Cmd' _j117 = INV_None
else invMsg_Cmd' _j117 = (invMsg_Cmd _j117)) /\
(forall _j118:int.
if _j118 = src then
 dir_InvSet' _j118 = False
else dir_InvSet' _j118 = (dir_InvSet _j118)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_PutX_11 =
(* transition ni_Local_GetX_PutX_11 *)
(exists src:int. 
( (* requires *)
home <> src /\
cacheState_home = CACHE_E /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = True /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
cacheState_home' = CACHE_I /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
dir_InvSet' p = False) /\
(forall _j83:int.
if _j83 = src then
 uniMsg_Cmd' _j83 = UNI_PutX
else uniMsg_Cmd' _j83 = (uniMsg_Cmd _j83)) /\
(forall _j84:int.
if _j84 = src then
 uniMsg_Proc' _j84 = home
else uniMsg_Proc' _j84 = (uniMsg_Proc _j84)) /\
(forall _j85:int.
if _j85 = src then
 uniMsg_Data' _j85 = cacheData_home
else uniMsg_Data' _j85 = (uniMsg_Data _j85)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__pi_Local_PutX_pending =
(* transition pi_Local_PutX_pending *)
(( (* requires *)
procCmd_home = NODE_None /\
cacheState_home = CACHE_E /\
dir_Pending = True) /\
( (* actions *)
cacheState_home' = CACHE_I /\
dir_Dirty' = False /\
memData' = cacheData_home /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__pi_Local_Get_Put_InvM =
(* transition pi_Local_Get_Put_InvM *)
(( (* requires *)
procCmd_home = NODE_None /\
invMarked_home = True /\
cacheState_home = CACHE_I /\
dir_Pending = False /\
dir_Dirty = False) /\
( (* actions *)
dir_Local' = True /\
procCmd_home' = NODE_None /\
invMarked_home' = False /\
cacheState_home' = CACHE_I /\
home' = home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Nak =
(* transition ni_Nak *)
(exists dst:int. 
( (* requires *)
(uniMsg_Cmd dst) = UNI_Nak) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j11:int.
if _j11 = dst then
 uniMsg_Cmd' _j11 = UNI_None
else uniMsg_Cmd' _j11 = (uniMsg_Cmd _j11)) /\
(forall _j12:int.
if _j12 = dst then
 procCmd' _j12 = NODE_None
else procCmd' _j12 = (procCmd _j12)) /\
(forall _j13:int.
if _j13 = dst then
 invMarked' _j13 = False
else invMarked' _j13 = (invMarked _j13)) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_PutX_6 =
(* transition ni_Local_GetX_PutX_6 *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadPtr = src /\
dir_ShrSet_home = False /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home
/\ (forall p:int.src = p \/ 
((dir_ShrSet p) = False))
) /\
( (* actions *)
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
cacheState_home' = CACHE_I /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
dir_InvSet' p = False) /\
(forall _j62:int.
if _j62 = src then
 uniMsg_Cmd' _j62 = UNI_PutX
else uniMsg_Cmd' _j62 = (uniMsg_Cmd _j62)) /\
(forall _j63:int.
if _j63 = src then
 uniMsg_Proc' _j63 = home
else uniMsg_Proc' _j63 = (uniMsg_Proc _j63)) /\
(forall _j64:int.
if _j64 = src then
 uniMsg_Data' _j64 = memData
else uniMsg_Data' _j64 = (uniMsg_Data _j64)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Remote_Put =
(* transition ni_Remote_Put *)
(exists dst:int. 
( (* requires *)
home <> dst /\
(invMarked dst) = False /\
(uniMsg_Cmd dst) = UNI_Put) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j97:int.
if _j97 = dst then
 uniMsg_Cmd' _j97 = UNI_None
else uniMsg_Cmd' _j97 = (uniMsg_Cmd _j97)) /\
(forall _j98:int.
if _j98 = dst then
 procCmd' _j98 = NODE_None
else procCmd' _j98 = (procCmd _j98)) /\
(forall _j99:int.
if _j99 = dst then
 cacheState' _j99 = CACHE_S
else cacheState' _j99 = (cacheState _j99)) /\
(forall _j100:int.
if _j100 = dst then
 cacheData' _j100 = (uniMsg_Data dst)
else cacheData' _j100 = (cacheData _j100)) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Nak_Clear =
(* transition ni_Nak_Clear *)
(( (* requires *)
nakcMsg_Cmd = NAKC_Nakc) /\
( (* actions *)
nakcMsg_Cmd' = NAKC_None /\
dir_Pending' = False /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Wb =
(* transition ni_Wb *)
(( (* requires *)
wbMsg_Cmd = WB_Wb) /\
( (* actions *)
wbMsg_Cmd' = WB_None /\
dir_Dirty' = False /\
dir_HeadVld' = False /\
memData' = wbMsg_Data /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Remote_GetX_PutX_home =
(* transition ni_Remote_GetX_PutX_home *)
(exists dst:int. 
( (* requires *)
home <> dst /\
uniMsg_Cmd_home = UNI_GetX /\
uniMsg_Proc_home = dst /\
(cacheState dst) = CACHE_E) /\
( (* actions *)
uniMsg_Cmd_home' = UNI_PutX /\
uniMsg_Proc_home' = dst /\
uniMsg_Data_home' = (cacheData dst) /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j88:int.
if _j88 = dst then
 cacheState' _j88 = CACHE_I
else cacheState' _j88 = (cacheState _j88)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_PutX_2 =
(* transition ni_Local_GetX_PutX_2 *)
(exists src:int. 
( (* requires *)
home <> src /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = False /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
cacheState_home' = CACHE_I /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
dir_InvSet' p = False) /\
(forall _j50:int.
if _j50 = src then
 uniMsg_Cmd' _j50 = UNI_PutX
else uniMsg_Cmd' _j50 = (uniMsg_Cmd _j50)) /\
(forall _j51:int.
if _j51 = src then
 uniMsg_Proc' _j51 = home
else uniMsg_Proc' _j51 = (uniMsg_Proc _j51)) /\
(forall _j52:int.
if _j52 = src then
 uniMsg_Data' _j52 = memData
else uniMsg_Data' _j52 = (uniMsg_Data _j52)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__store_0 =
(* transition store_0 *)
(exists src:int. 
( (* requires *)
(cacheState src) = CACHE_E) /\
( (* actions *)
currData' = tempData /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j1:int.
if _j1 = src then
 cacheData' _j1 = tempData
else cacheData' _j1 = (cacheData _j1)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Remote_GetX_Nak_home =
(* transition ni_Remote_GetX_Nak_home *)
(exists dst:int. 
( (* requires *)
home <> dst /\
uniMsg_Cmd_home = UNI_GetX /\
uniMsg_Proc_home = dst /\
(cacheState dst) <> CACHE_E) /\
( (* actions *)
uniMsg_Cmd_home' = UNI_Nak /\
uniMsg_Proc_home' = dst /\
nakcMsg_Cmd' = NAKC_Nakc /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__pi_Local_GetX_PutX_HeadVld =
(* transition pi_Local_GetX_PutX_HeadVld *)
(( (* requires *)
procCmd_home = NODE_None /\
cacheState_home <> CACHE_E /\
dir_Pending = False /\
dir_Dirty = False /\
dir_HeadVld = True) /\
( (* actions *)
dir_Local' = True /\
dir_Dirty' = True /\
dir_Pending' = True /\
dir_HeadVld' = False /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
invMsg_Cmd_home' = INV_None /\
collecting' = True /\
prevData' = currData /\
procCmd_home' = NODE_None /\
invMarked_home' = False /\
cacheState_home' = CACHE_E /\
cacheData_home' = memData /\
home' = home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_HeadPtr' = dir_HeadPtr /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
tempData' = tempData /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
if dir_HeadPtr = p then
 dir_InvSet' p = True
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 dir_InvSet' p = True
else dir_InvSet' p = False) /\
(forall p:int.
if dir_HeadPtr = p then
 invMsg_Cmd' p = INV_Inv
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 invMsg_Cmd' p = INV_Inv
else invMsg_Cmd' p = INV_None) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Remote_GetX_PutX =
(* transition ni_Remote_GetX_PutX *)
(exists src dst:int. src <> dst /\ 
( (* requires *)
home <> src /\
home <> dst /\
(cacheState dst) = CACHE_E /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = dst) /\
( (* actions *)
shWbMsg_Cmd' = SHWB_FAck /\
shWbMsg_Proc' = src /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j89:int.
if _j89 = dst then
 cacheState' _j89 = CACHE_I
else cacheState' _j89 = (cacheState _j89)) /\
(forall _j90:int.
if _j90 = src then
 uniMsg_Cmd' _j90 = UNI_PutX
else uniMsg_Cmd' _j90 = (uniMsg_Cmd _j90)) /\
(forall _j91:int.
if _j91 = src then
 uniMsg_Proc' _j91 = dst
else uniMsg_Proc' _j91 = (uniMsg_Proc _j91)) /\
(forall _j92:int.
if _j92 = src then
 uniMsg_Data' _j92 = (cacheData dst)
else uniMsg_Data' _j92 = (uniMsg_Data _j92)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_PutX_7 =
(* transition ni_Local_GetX_PutX_7 *)
(exists src:int. 
( (* requires *)
home <> src /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr <> src /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
invMsg_Cmd_home' = INV_None /\
cacheState_home' = CACHE_I /\
collecting' = True /\
prevData' = currData /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
tempData' = tempData /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
if p = src then
 dir_InvSet' p = False
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 dir_InvSet' p = True
else if dir_HeadVld = True /\
dir_HeadPtr = p then
 dir_InvSet' p = True
else dir_InvSet' p = False) /\
(forall p:int.
if p = src then
 invMsg_Cmd' p = INV_None
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 invMsg_Cmd' p = INV_Inv
else if dir_HeadVld = True /\
dir_HeadPtr = p then
 invMsg_Cmd' p = INV_Inv
else invMsg_Cmd' p = INV_None) /\
(forall _j65:int.
if _j65 = src then
 uniMsg_Cmd' _j65 = UNI_PutX
else uniMsg_Cmd' _j65 = (uniMsg_Cmd _j65)) /\
(forall _j66:int.
if _j66 = src then
 uniMsg_Proc' _j66 = home
else uniMsg_Proc' _j66 = (uniMsg_Proc _j66)) /\
(forall _j67:int.
if _j67 = src then
 uniMsg_Data' _j67 = memData
else uniMsg_Data' _j67 = (uniMsg_Data _j67)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_InvAck_done_3 =
(* transition ni_InvAck_done_3 *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = True /\
dir_Dirty = True /\
dir_InvSet_home = False /\
(dir_InvSet src) = True /\
(invMsg_Cmd src) = INV_InvAck
/\ (forall p:int.src = p \/ 
((dir_InvSet p) = False))
) /\
( (* actions *)
dir_Pending' = False /\
collecting' = False /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
(forall _j119:int.
if _j119 = src then
 invMsg_Cmd' _j119 = INV_None
else invMsg_Cmd' _j119 = (invMsg_Cmd _j119)) /\
(forall _j120:int.
if _j120 = src then
 dir_InvSet' _j120 = False
else dir_InvSet' _j120 = (dir_InvSet _j120)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_Nak1 =
(* transition ni_Local_GetX_Nak1 *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = True /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j39:int.
if _j39 = src then
 uniMsg_Cmd' _j39 = UNI_Nak
else uniMsg_Cmd' _j39 = (uniMsg_Cmd _j39)) /\
(forall _j40:int.
if _j40 = src then
 uniMsg_Proc' _j40 = home
else uniMsg_Proc' _j40 = (uniMsg_Proc _j40)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_Get_Nak1 =
(* transition ni_Local_Get_Nak1 *)
(exists src:int. 
( (* requires *)
home <> src /\
dir_Pending = True /\
(uniMsg_Cmd src) = UNI_Get /\
(uniMsg_Proc src) = home /\
(rpMsg_Cmd src) <> RP_Replace) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j14:int.
if _j14 = src then
 uniMsg_Cmd' _j14 = UNI_Nak
else uniMsg_Cmd' _j14 = (uniMsg_Cmd _j14)) /\
(forall _j15:int.
if _j15 = src then
 uniMsg_Proc' _j15 = home
else uniMsg_Proc' _j15 = (uniMsg_Proc _j15)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__pi_Remote_Replace =
(* transition pi_Remote_Replace *)
(exists src:int. 
( (* requires *)
home <> src /\
(procCmd src) = NODE_None /\
(cacheState src) = CACHE_S) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j9:int.
if _j9 = src then
 cacheState' _j9 = CACHE_I
else cacheState' _j9 = (cacheState _j9)) /\
(forall _j10:int.
if _j10 = src then
 rpMsg_Cmd' _j10 = RP_Replace
else rpMsg_Cmd' _j10 = (rpMsg_Cmd _j10)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) ))


predicate transition__pi_Remote_PutX =
(* transition pi_Remote_PutX *)
(exists dst:int. 
( (* requires *)
home <> dst /\
(procCmd dst) = NODE_None /\
(cacheState dst) = CACHE_E) /\
( (* actions *)
wbMsg_Cmd' = WB_Wb /\
wbMsg_Proc' = dst /\
wbMsg_Data' = (cacheData dst) /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j8:int.
if _j8 = dst then
 cacheState' _j8 = CACHE_I
else cacheState' _j8 = (cacheState _j8)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_GetX_PutX_8 =
(* transition ni_Local_GetX_PutX_8 *)
(exists src pp:int. src <> pp /\ 
( (* requires *)
home <> src /\
procCmd_home <> NODE_Get /\
dir_Pending = False /\
dir_Local = True /\
dir_Dirty = False /\
dir_HeadVld = True /\
dir_HeadPtr = src /\
(dir_ShrSet pp) = True /\
(uniMsg_Cmd src) = UNI_GetX /\
(uniMsg_Proc src) = home) /\
( (* actions *)
dir_Pending' = True /\
dir_Local' = False /\
dir_Dirty' = True /\
dir_HeadVld' = True /\
dir_HeadPtr' = src /\
dir_ShrVld' = False /\
dir_ShrSet_home' = False /\
dir_InvSet_home' = False /\
invMsg_Cmd_home' = INV_None /\
cacheState_home' = CACHE_I /\
collecting' = True /\
prevData' = currData /\
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
tempData' = tempData /\
(forall p:int.
dir_ShrSet' p = False) /\
(forall p:int.
if p = src then
 dir_InvSet' p = False
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 dir_InvSet' p = True
else if dir_HeadVld = True /\
dir_HeadPtr = p then
 dir_InvSet' p = True
else dir_InvSet' p = False) /\
(forall p:int.
if p = src then
 invMsg_Cmd' p = INV_None
else if dir_ShrVld = True /\
(dir_ShrSet p) = True then
 invMsg_Cmd' p = INV_Inv
else if dir_HeadVld = True /\
dir_HeadPtr = p then
 invMsg_Cmd' p = INV_Inv
else invMsg_Cmd' p = INV_None) /\
(forall _j68:int.
if _j68 = src then
 uniMsg_Cmd' _j68 = UNI_PutX
else uniMsg_Cmd' _j68 = (uniMsg_Cmd _j68)) /\
(forall _j69:int.
if _j69 = src then
 uniMsg_Proc' _j69 = home
else uniMsg_Proc' _j69 = (uniMsg_Proc _j69)) /\
(forall _j70:int.
if _j70 = src then
 uniMsg_Data' _j70 = memData
else uniMsg_Data' _j70 = (uniMsg_Data _j70)) /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__ni_Local_Put =
(* transition ni_Local_Put *)
(( (* requires *)
invMarked_home = False /\
uniMsg_Cmd_home = UNI_Put) /\
( (* actions *)
uniMsg_Cmd_home' = UNI_None /\
dir_Pending' = False /\
dir_Dirty' = False /\
dir_Local' = True /\
memData' = uniMsg_Data_home /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_S /\
cacheData_home' = uniMsg_Data_home /\
home' = home /\
invMarked_home' = invMarked_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__pi_Local_Get_Put =
(* transition pi_Local_Get_Put *)
(( (* requires *)
procCmd_home = NODE_None /\
invMarked_home = False /\
cacheState_home = CACHE_I /\
dir_Pending = False /\
dir_Dirty = False) /\
( (* actions *)
dir_Local' = True /\
procCmd_home' = NODE_None /\
cacheState_home' = CACHE_S /\
cacheData_home' = memData /\
home' = home /\
invMarked_home' = invMarked_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall z1:int. procCmd' z1 = procCmd z1) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Cmd' z1 = uniMsg_Cmd z1) /\
(forall z1:int. uniMsg_Proc' z1 = uniMsg_Proc z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate transition__pi_Remote_GetX =
(* transition pi_Remote_GetX *)
(exists src:int. 
( (* requires *)
home <> src /\
(procCmd src) = NODE_None /\
(cacheState src) = CACHE_I) /\
( (* actions *)
home' = home /\
procCmd_home' = procCmd_home /\
invMarked_home' = invMarked_home /\
cacheState_home' = cacheState_home /\
cacheData_home' = cacheData_home /\
uniMsg_Cmd_home' = uniMsg_Cmd_home /\
uniMsg_Proc_home' = uniMsg_Proc_home /\
uniMsg_Data_home' = uniMsg_Data_home /\
invMsg_Cmd_home' = invMsg_Cmd_home /\
rpMsg_Cmd_home' = rpMsg_Cmd_home /\
dir_Pending' = dir_Pending /\
dir_Local' = dir_Local /\
dir_Dirty' = dir_Dirty /\
dir_HeadVld' = dir_HeadVld /\
dir_HeadPtr' = dir_HeadPtr /\
dir_ShrVld' = dir_ShrVld /\
dir_ShrSet_home' = dir_ShrSet_home /\
dir_InvSet_home' = dir_InvSet_home /\
memData' = memData /\
wbMsg_Cmd' = wbMsg_Cmd /\
wbMsg_Proc' = wbMsg_Proc /\
wbMsg_Data' = wbMsg_Data /\
shWbMsg_Cmd' = shWbMsg_Cmd /\
shWbMsg_Proc' = shWbMsg_Proc /\
shWbMsg_Data' = shWbMsg_Data /\
nakcMsg_Cmd' = nakcMsg_Cmd /\
currData' = currData /\
prevData' = prevData /\
tempData' = tempData /\
collecting' = collecting /\
(forall _j5:int.
if _j5 = src then
 procCmd' _j5 = NODE_GetX
else procCmd' _j5 = (procCmd _j5)) /\
(forall _j6:int.
if _j6 = src then
 uniMsg_Cmd' _j6 = UNI_GetX
else uniMsg_Cmd' _j6 = (uniMsg_Cmd _j6)) /\
(forall _j7:int.
if _j7 = src then
 uniMsg_Proc' _j7 = home
else uniMsg_Proc' _j7 = (uniMsg_Proc _j7)) /\
(forall z1:int. invMarked' z1 = invMarked z1) /\
(forall z1:int. cacheState' z1 = cacheState z1) /\
(forall z1:int. cacheData' z1 = cacheData z1) /\
(forall z1:int. dir_ShrSet' z1 = dir_ShrSet z1) /\
(forall z1:int. dir_InvSet' z1 = dir_InvSet z1) /\
(forall z1:int. uniMsg_Data' z1 = uniMsg_Data z1) /\
(forall z1:int. invMsg_Cmd' z1 = invMsg_Cmd z1) /\
(forall z1:int. rpMsg_Cmd' z1 = rpMsg_Cmd z1) ))


predicate tau =
(transition__pi_Remote_GetX \/ transition__pi_Local_Get_Put \/ transition__ni_Local_Put \/ transition__ni_Local_GetX_PutX_8 \/ transition__pi_Remote_PutX \/ transition__pi_Remote_Replace \/ transition__ni_Local_Get_Nak1 \/ transition__ni_Local_GetX_Nak1 \/ transition__ni_InvAck_done_3 \/ transition__ni_Local_GetX_PutX_7 \/ transition__ni_Remote_GetX_PutX \/ transition__pi_Local_GetX_PutX_HeadVld \/ transition__ni_Remote_GetX_Nak_home \/ transition__store_0 \/ transition__ni_Local_GetX_PutX_2 \/ transition__ni_Remote_GetX_PutX_home \/ transition__ni_Wb \/ transition__ni_Nak_Clear \/ transition__ni_Remote_Put \/ transition__ni_Local_GetX_PutX_6 \/ transition__ni_Nak \/ transition__pi_Local_Get_Put_InvM \/ transition__pi_Local_PutX_pending \/ transition__ni_Local_GetX_PutX_11 \/ transition__ni_InvAck_done_2 \/ transition__ni_Nak_home \/ transition__ni_ShWb_home \/ transition__ni_Local_Get_Put1_Head \/ transition__ni_Remote_Get_Nak \/ transition__ni_Local_GetX_PutX_10_home \/ transition__pi_Local_PutX \/ transition__ni_Local_GetX_PutX_9 \/ transition__ni_InvAck_exists \/ transition__ni_Local_GetX_Nak \/ transition__ni_FAck \/ transition__ni_Replace \/ transition__ni_InvAck_exists_home \/ transition__ni_Local_Get_Get \/ transition__ni_ShWb \/ transition__pi_Local_Replace \/ transition__pi_Local_GetX_PutX \/ transition__ni_Local_GetX_PutX_4 \/ transition__pi_Remote_Get \/ transition__ni_Remote_Get_Put \/ transition__ni_Remote_Get_Put_home \/ transition__ni_Local_Get_Nak \/ transition__ni_Local_Get_Nak_ \/ transition__ni_Remote_GetX_Nak \/ transition__ni_Inv \/ transition__ni_InvAck_done_1 \/ transition__ni_FAck_dirty \/ transition__ni_Local_GetX_PutX_8_home \/ transition__ni_Local_Get_Put2_dirty \/ transition__ni_Local_GetX_PutX_1 \/ transition__ni_Replace_shrvld \/ transition__ni_Local_GetX_Nak_ \/ transition__ni_Local_GetX_PutX_3 \/ transition__ni_Remote_PutX \/ transition__ni_Local_PutXAcksDone \/ transition__pi_Local_GetX_GetX \/ transition__ni_Local_Put_inv \/ transition__ni_Replace_shrvld_home \/ transition__ni_Local_Get_Put1 \/ transition__ni_Replace_home \/ transition__ni_Local_GetX_PutX_5 \/ transition__store_home_0 \/ transition__ni_Local_GetX_PutX_10 \/ transition__ni_Local_GetX_GetX \/ transition__pi_Local_Get_Get_Head \/ transition__ni_Remote_Put_inv \/ transition__ni_Inv_get)


end


theory Flash_abstr_initialisation

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds

predicate init =
    forall p:int. (home <> p /\
procCmd_home = NODE_None /\
invMarked_home = False /\
cacheState_home = CACHE_I /\
uniMsg_Cmd_home = UNI_None /\
invMsg_Cmd_home = INV_None /\
rpMsg_Cmd_home = RP_None /\
dir_Pending = False /\
dir_Local = False /\
dir_Dirty = False /\
dir_HeadVld = False /\
dir_ShrVld = False /\
dir_ShrSet_home = False /\
dir_InvSet_home = False /\
wbMsg_Cmd = WB_None /\
shWbMsg_Cmd = SHWB_None /\
nakcMsg_Cmd = NAKC_None /\
currData = memData /\
prevData = memData /\
collecting = False /\
(procCmd p) = NODE_None /\
(invMarked p) = False /\
(cacheState p) = CACHE_I /\
(dir_ShrSet p) = False /\
(dir_InvSet p) = False /\
(uniMsg_Cmd p) = UNI_None /\
(invMsg_Cmd p) = INV_None /\
(rpMsg_Cmd p) = RP_None)

goal initialisation:
    init -> (invariant35838 /\ invariant30714 /\ invariant41976 /\ invariantX10 /\ invariant35828 /\ invariant41972 /\ invariant59379 /\ invariant53235 /\ invariantX1039 /\ invariant42991 /\ invariantX21 /\ invariant27619 /\ invariant55266 /\ invariant46048 /\ invariant55263 /\ invariant2014 /\ invariant52190 /\ invariant32733 /\ invariantX38 /\ invariant19414 /\ invariant20433 /\ invariantX48 /\ invariant35792 /\ invariant53198 /\ invariant27597 /\ invariant52172 /\ invariant70603 /\ invariant1994 /\ invariant24522 /\ invariant31689 /\ invariant53193 /\ invariant23496 /\ invariant59336 /\ invariant70599 /\ invariantX13370 /\ invariant33734 /\ invariant53190 /\ invariant59334 /\ invariant23494 /\ invariant26564 /\ invariant9155 /\ invariant61379 /\ invariantX62 /\ invariant37826 /\ invariantX2112 /\ invariant9152 /\ invariant6078 /\ invariantX5187 /\ invariantX68 /\ invariant53180 /\ invariant35770 /\ invariant10163 /\ invariant36787 /\ invariant35759 /\ invariantX82 /\ invariantX25683 /\ invariant29612 /\ invariantX1109 /\ invariant15274 /\ invariant23465 /\ invariant30630 /\ invariant52133 /\ invariantX92 /\ invariant69540 /\ invariant11170 /\ invariant30624 /\ invariant69536 /\ invariant1951 /\ invariantX25698 /\ invariantX1122 /\ invariant22426 /\ invariant48026 /\ invariant29592 /\ invariant29591 /\ invariant18325 /\ invariant38805 /\ invariant57236 /\ invariant26515 /\ invariant55187 /\ invariant57233 /\ invariantX25712 /\ invariant66446 /\ invariant1932 /\ invariant27532 /\ invariant53132 /\ invariant35723 /\ invariant53128 /\ invariant32645 /\ invariant27521 /\ invariant59264 /\ invariant52092 /\ invariant41851 /\ invariantX4231 /\ invariant40824 /\ invariant52087 /\ invariant35701 /\ invariant52084 /\ invariantX5261 /\ invariantX3213 /\ invariant22386 /\ invariant22385 /\ invariant42865 /\ invariant13168 /\ invariant53104 /\ invariantX9361 /\ invariantX149 /\ invariant8043 /\ invariant53099 /\ invariant35690 /\ invariantX5271 /\ invariant53096 /\ invariant1895 /\ invariant39782 /\ invariantX6302 /\ invariant61282 /\ invariantX4256 /\ invariant24416 /\ invariantX3233 /\ invariantX5281 /\ invariant18271 /\ invariant1887 /\ invariant22366 /\ invariant59230 /\ invariant861 /\ invariant22365 /\ invariantX1188 /\ invariant56156 /\ invariantX25766 /\ invariant32602 /\ invariantX168 /\ invariant38742 /\ invariant1875 /\ invariantX5294 /\ invariantX9390 /\ invariant38738 /\ invariantX175 /\ invariantX2224 /\ invariantX3248 /\ invariantX1201 /\ invariant70474 /\ invariant56134 /\ invariant70470 /\ invariant30532 /\ invariantX9405 /\ invariantX2238 /\ invariantX4289 /\ invariantX1218 /\ invariant52030 /\ invariant30526 /\ invariantX25798 /\ invariant41786 /\ invariant43831 /\ invariant42804 /\ invariant35635 /\ invariant53043 /\ invariantX1231 /\ invariantX9424 /\ invariant26416 /\ invariant18221 /\ invariant18220 /\ invariant40747 /\ invariant35626 /\ invariant35625 /\ invariant57129 /\ invariant10023 /\ invariant53031 /\ invariant57126 /\ invariant34596 /\ invariantX2269 /\ invariant45854 /\ invariantX229 /\ invariant32534 /\ invariant11028 /\ invariantX1271 /\ invariant29449 /\ invariant36617 /\ invariantX248 /\ invariant55048 /\ invariantX15612 /\ invariant54016 /\ invariant41727 /\ invariant54015 /\ invariant23294 /\ invariant4861 /\ invariant26365 /\ invariant19196 /\ invariant41723 /\ invariant26362 /\ invariant40698 /\ invariant8954 /\ invariant8952 /\ invariantX30985 /\ invariant8951 /\ invariant19187 /\ invariant22258 /\ invariant24306 /\ invariant34545 /\ invariant35567 /\ invariant37613 /\ invariant40684 /\ invariantX1302 /\ invariant37609 /\ invariant37608 /\ invariant35557 /\ invariant66277 /\ invariant35555 /\ invariant32483 /\ invariant23264 /\ invariantX1313 /\ invariant6877 /\ invariant53979 /\ invariant53978 /\ invariant37593 /\ invariant59093 /\ invariant25298 /\ invariant25296 /\ invariant19150 /\ invariant57037 /\ invariantX309 /\ invariant19146 /\ invariantX1335 /\ invariant70343 /\ invariant70339 /\ invariant21186 /\ invariant23233 /\ invariant23232 /\ invariant41662 /\ invariant59070 /\ invariantX1349 /\ invariant41658 /\ invariant35513 /\ invariant17081 /\ invariant35511 /\ invariant19123 /\ invariant19122 /\ invariantX9553 /\ invariant29356 /\ invariantX1365 /\ invariant58025 /\ invariant35496 /\ invariant19111 /\ invariant29347 /\ invariant26274 /\ invariant30368 /\ invariant25248 /\ invariant5791 /\ invariantX11617 /\ invariant40605 /\ invariantX1380 /\ invariant26265 /\ invariant38553 /\ invariant38549 /\ invariant24212 /\ invariant55956 /\ invariant23187 /\ invariant59027 /\ invariant36498 /\ invariant59025 /\ invariantX369 /\ invariant1677 /\ invariantX1396 /\ invariantX8564 /\ invariant54923 /\ invariant1674 /\ invariant18058 /\ invariant25226 /\ invariant6793 /\ invariant18056 /\ invariant25224 /\ invariant34440 /\ invariant10886 /\ invariant43654 /\ invariant17030 /\ invariant54917 /\ invariant30341 /\ invariant30339 /\ invariant54912 /\ invariant55935 /\ invariant39549 /\ invariant54909 /\ invariant30330 /\ invariant31353 /\ invariant39545 /\ invariant6776 /\ invariant30328 /\ invariant1655 /\ invariant31351 /\ invariant32374 /\ invariantX395 /\ invariant35445 /\ invariant39535 /\ invariant31337 /\ invariant8808 /\ invariant8806 /\ invariant8805 /\ invariant51812 /\ invariant35427 /\ invariant34399 /\ invariant9821 /\ invariant2651 /\ invariant19033 /\ invariant1619 /\ invariantX5551 /\ invariant32335 /\ invariant1614 /\ invariant58955 /\ invariant31304 /\ invariant54856 /\ invariant10823 /\ invariant57927 /\ invariant25158 /\ invariant9797 /\ invariant25156 /\ invariant70212 /\ invariant9794 /\ invariant49729 /\ invariant70208 /\ invariant51775 /\ invariantX452 /\ invariant4668 /\ invariant1594 /\ invariant36407 /\ invariant25142 /\ invariant31282 /\ invariant54834 /\ invariant31280 /\ invariant18989 /\ invariant16939 /\ invariant30249 /\ invariant58921 /\ invariant20006 /\ invariant35366 /\ invariant24100 /\ invariant32291 /\ invariantX1503 /\ invariant31265 /\ invariant28190 /\ invariant51737 /\ invariant18968 /\ invariant2582 /\ invariant4628 /\ invariant51732 /\ invariant53777 /\ invariant51729 /\ invariant30224 /\ invariant30222 /\ invariant53772 /\ invariant22027 /\ invariant32265 /\ invariant53769 /\ invariant2568 /\ invariant19976 /\ invariant33288 /\ invariant51719 /\ invariantX11770 /\ invariantX2554 /\ invariantX507 /\ invariant30213 /\ invariant28164 /\ invariant56835 /\ invariant30211 /\ invariant26113 /\ invariant29184 /\ invariant31232 /\ invariant16889 /\ invariant73208 /\ invariant56821 /\ invariant3572 /\ invariant73204 /\ invariant23026 /\ invariantX528 /\ invariant40429 /\ invariant35308 /\ invariant35306 /\ invariant31210 /\ invariantX535 /\ invariant31208 /\ invariant1511 /\ invariant27107 /\ invariantX13854 /\ invariantX2594 /\ invariant57820 /\ invariant31193 /\ invariant57817 /\ invariant43479 /\ invariant51671 /\ invariant27094 /\ invariant4565 /\ invariant8661 /\ invariant22997 /\ invariant43475 /\ invariant51667 /\ invariantX11823 /\ invariant26060 /\ invariant32199 /\ invariant41414 /\ invariant4546 /\ invariant35266 /\ invariant41410 /\ invariant70081 /\ invariant36287 /\ invariant70077 /\ invariantX580 /\ invariant19900 /\ invariant51643 /\ invariant32185 /\ invariant34232 /\ invariant10679 /\ invariant51638 /\ invariant22965 /\ invariant22964 /\ invariant51635 /\ invariant11694 /\ invariant27052 /\ invariant11692 /\ invariant11691 /\ invariant11690 /\ invariant27050 /\ invariantX599 /\ invariant2473 /\ invariant18856 /\ invariant54695 /\ invariant31141 /\ invariantX1628 /\ invariant31139 /\ invariant56739 /\ invariant40354 /\ invariant3489 /\ invariant33184 /\ invariantX610 /\ invariant21913 /\ invariantX1642 /\ invariant31126 /\ invariant31125 /\ invariant53651 /\ invariant49554 /\ invariant400 /\ invariantX625 /\ invariant38281 /\ invariant4488 /\ invariant38280 /\ invariant22919 /\ invariant35205 /\ invariant18820 /\ invariant34180 /\ invariant18819 /\ invariant32130 /\ invariantX639 /\ invariant53633 /\ invariant46464 /\ invariant51582 /\ invariant73085 /\ invariantX1670 /\ invariant73081 /\ invariant57720 /\ invariant18806 /\ invariant57717 /\ invariant12660 /\ invariant22898 /\ invariant51570 /\ invariant40305 /\ invariant22897 /\ invariant19823 /\ invariant41324 /\ invariant35179 /\ invariant5481 /\ invariant360 /\ invariantX664 /\ invariant5480 /\ invariant5479 /\ invariant24934 /\ invariant24932 /\ invariant19810 /\ invariant30050 /\ invariant40290 /\ invariant352 /\ invariant18784 /\ invariant30048 /\ invariant27999 /\ invariant4446 /\ invariant31070 /\ invariant36189 /\ invariant31068 /\ invariant11610 /\ invariant53593 /\ invariant27990 /\ invariant27989 /\ invariant24916 /\ invariantX685 /\ invariant19795 /\ invariant32083 /\ invariant31054 /\ invariant42318 /\ invariant31052 /\ invariant52555 /\ invariant52554 /\ invariant21830 /\ invariant8518 /\ invariant35141 /\ invariantX25276 /\ invariant1346 /\ invariantX702 /\ invariant22850 /\ invariant35138 /\ invariant22849 /\ invariant5441 /\ invariant5440 /\ invariant5439 /\ invariant33087 /\ invariant69950 /\ invariant23869 /\ invariant69947 /\ invariant6455 /\ invariant3382 /\ invariant6453 /\ invariant53553 /\ invariant21808 /\ invariantX721 /\ invariant10543 /\ invariant24877 /\ invariant10541 /\ invariant22828 /\ invariant10540 /\ invariant53548 /\ invariant22827 /\ invariant24874 /\ invariant27946 /\ invariant54570 /\ invariant27945 /\ invariant53545 /\ invariant4392 /\ invariant52519 /\ invariant52518 /\ invariant31013 /\ invariant54564 /\ invariantX734 /\ invariant31010 /\ invariant21792 /\ invariant54559 /\ invariant54556 /\ invariant34074 /\ invariantX747 /\ invariant30996 /\ invariant11539 /\ invariant30994 /\ invariant40210 /\ invariant11538 /\ invariant18705 /\ invariant11537 /\ invariant18704 /\ invariant32016 /\ invariant11536 /\ invariantX1777 /\ invariant19727 /\ invariant11535 /\ invariantX5884 /\ invariant4352 /\ invariant1278 /\ invariant33021 /\ invariant22780 /\ invariant22779 /\ invariantX778 /\ invariant29942 /\ invariant5363 /\ invariant53491 /\ invariant5362 /\ invariant5361 /\ invariant27889 /\ invariant34033 /\ invariant19694 /\ invariantX20245 /\ invariantX790 /\ invariantX14103 /\ invariant43239 /\ invariant54503 /\ invariant56549 /\ invariant43235 /\ invariant66784 /\ invariant11486 /\ invariant30940 /\ invariant31964 /\ invariant11484 /\ invariant28891 /\ invariant11483 /\ invariant11482 /\ invariantX4903 /\ invariant56536 /\ invariant1239 /\ invariant2261 /\ invariant5333 /\ invariant5332 /\ invariant10452 /\ invariant5331 /\ invariant42195 /\ invariantX1839 /\ invariant30927 /\ invariant38094 /\ invariantX5939 /\ invariant7365 /\ invariant4289 /\ invariant41152 /\ invariantX5953 /\ invariant19647 /\ invariant11455 /\ invariant30911 /\ invariant38073 /\ invariant8376 /\ invariant38072 /\ invariantX841 /\ invariantX5964 /\ invariant69810 /\ invariant69807 /\ invariant4270 /\ invariant8365 /\ invariant22696 /\ invariant22695 /\ invariant46244 /\ invariantX1889 /\ invariantX866 /\ invariant30876 /\ invariant10396 /\ invariant10394 /\ invariant10393 /\ invariant30872 /\ invariant22680 /\ invariant22679 /\ invariantX874 /\ invariant5270 /\ invariant5268 /\ invariant24724 /\ invariant42131 /\ invariant24722 /\ invariant25744 /\ invariant35984 /\ invariant32911 /\ invariant25742 /\ invariant23693 /\ invariant23691 /\ invariant27783 /\ invariant30854 /\ invariant40070 /\ invariant27781 /\ invariant40066 /\ invariant26747 /\ invariantX25478 /\ invariant40057 /\ invariant4212 /\ invariantX909 /\ invariant33904 /\ invariant31854 /\ invariant23661 /\ invariant34924 /\ invariantX918 /\ invariantX30614 /\ invariant6246 /\ invariant2149 /\ invariant6244 /\ invariant41060 /\ invariant27744 /\ invariant25695 /\ invariantX6051 /\ invariant52316 /\ invariantX933 /\ invariant1115 /\ invariant24666 /\ invariant36952 /\ invariant52311 /\ invariant86 /\ invariant52308 /\ invariantX941 /\ invariant38994 /\ invariant30801 /\ invariant32848 /\ invariant32845 /\ invariant33868 /\ invariant70732 /\ invariant48202 /\ invariant1096 /\ invariant28744 /\ invariant70728 /\ invariant9286 /\ invariant8261 /\ invariantX1981 /\ invariant9283 /\ invariant10305 /\ invariant32831 /\ invariant8250 /\ invariant30778 /\ invariant66615 /\ invariant55350 /\ invariant51 /\ invariant24627 /\ invariant37939 /\ invariant55347 /\ invariant48 /\ invariant11312 /\ invariant37935 /\ invariant15406 /\ invariant37934 /\ invariantX5076 /\ invariant43051 /\ invariant1062 /\ invariant5158 /\ invariant69670 /\ invariantX6107 /\ invariant37 /\ invariant3109 /\ invariant26661 /\ invariant5156 /\ invariant69666 /\ invariant37920 /\ invariant2079 /\ invariant27678 /\ invariant19482 /\ invariant53273 /\ invariant40984 /\ invariantX2026 /\ invariant38933 /\ invariant27667 /\ invariant1036 /\ invariant2060 /\ invariant2059 /\ invariant9 /\ invariant59401 /\ invariant8 /\ invariant7 /\ invariantX1019 /\ invariant5 /\ invariant4 /\ invariant3 /\ invariant2 /\ invariant18433 /\ invariant1)


end


theory Flash_abstr_property

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds

goal property:
    (invariant35838 /\ invariant30714 /\ invariant41976 /\ invariantX10 /\ invariant35828 /\ invariant41972 /\ invariant59379 /\ invariant53235 /\ invariantX1039 /\ invariant42991 /\ invariantX21 /\ invariant27619 /\ invariant55266 /\ invariant46048 /\ invariant55263 /\ invariant2014 /\ invariant52190 /\ invariant32733 /\ invariantX38 /\ invariant19414 /\ invariant20433 /\ invariantX48 /\ invariant35792 /\ invariant53198 /\ invariant27597 /\ invariant52172 /\ invariant70603 /\ invariant1994 /\ invariant24522 /\ invariant31689 /\ invariant53193 /\ invariant23496 /\ invariant59336 /\ invariant70599 /\ invariantX13370 /\ invariant33734 /\ invariant53190 /\ invariant59334 /\ invariant23494 /\ invariant26564 /\ invariant9155 /\ invariant61379 /\ invariantX62 /\ invariant37826 /\ invariantX2112 /\ invariant9152 /\ invariant6078 /\ invariantX5187 /\ invariantX68 /\ invariant53180 /\ invariant35770 /\ invariant10163 /\ invariant36787 /\ invariant35759 /\ invariantX82 /\ invariantX25683 /\ invariant29612 /\ invariantX1109 /\ invariant15274 /\ invariant23465 /\ invariant30630 /\ invariant52133 /\ invariantX92 /\ invariant69540 /\ invariant11170 /\ invariant30624 /\ invariant69536 /\ invariant1951 /\ invariantX25698 /\ invariantX1122 /\ invariant22426 /\ invariant48026 /\ invariant29592 /\ invariant29591 /\ invariant18325 /\ invariant38805 /\ invariant57236 /\ invariant26515 /\ invariant55187 /\ invariant57233 /\ invariantX25712 /\ invariant66446 /\ invariant1932 /\ invariant27532 /\ invariant53132 /\ invariant35723 /\ invariant53128 /\ invariant32645 /\ invariant27521 /\ invariant59264 /\ invariant52092 /\ invariant41851 /\ invariantX4231 /\ invariant40824 /\ invariant52087 /\ invariant35701 /\ invariant52084 /\ invariantX5261 /\ invariantX3213 /\ invariant22386 /\ invariant22385 /\ invariant42865 /\ invariant13168 /\ invariant53104 /\ invariantX9361 /\ invariantX149 /\ invariant8043 /\ invariant53099 /\ invariant35690 /\ invariantX5271 /\ invariant53096 /\ invariant1895 /\ invariant39782 /\ invariantX6302 /\ invariant61282 /\ invariantX4256 /\ invariant24416 /\ invariantX3233 /\ invariantX5281 /\ invariant18271 /\ invariant1887 /\ invariant22366 /\ invariant59230 /\ invariant861 /\ invariant22365 /\ invariantX1188 /\ invariant56156 /\ invariantX25766 /\ invariant32602 /\ invariantX168 /\ invariant38742 /\ invariant1875 /\ invariantX5294 /\ invariantX9390 /\ invariant38738 /\ invariantX175 /\ invariantX2224 /\ invariantX3248 /\ invariantX1201 /\ invariant70474 /\ invariant56134 /\ invariant70470 /\ invariant30532 /\ invariantX9405 /\ invariantX2238 /\ invariantX4289 /\ invariantX1218 /\ invariant52030 /\ invariant30526 /\ invariantX25798 /\ invariant41786 /\ invariant43831 /\ invariant42804 /\ invariant35635 /\ invariant53043 /\ invariantX1231 /\ invariantX9424 /\ invariant26416 /\ invariant18221 /\ invariant18220 /\ invariant40747 /\ invariant35626 /\ invariant35625 /\ invariant57129 /\ invariant10023 /\ invariant53031 /\ invariant57126 /\ invariant34596 /\ invariantX2269 /\ invariant45854 /\ invariantX229 /\ invariant32534 /\ invariant11028 /\ invariantX1271 /\ invariant29449 /\ invariant36617 /\ invariantX248 /\ invariant55048 /\ invariantX15612 /\ invariant54016 /\ invariant41727 /\ invariant54015 /\ invariant23294 /\ invariant4861 /\ invariant26365 /\ invariant19196 /\ invariant41723 /\ invariant26362 /\ invariant40698 /\ invariant8954 /\ invariant8952 /\ invariantX30985 /\ invariant8951 /\ invariant19187 /\ invariant22258 /\ invariant24306 /\ invariant34545 /\ invariant35567 /\ invariant37613 /\ invariant40684 /\ invariantX1302 /\ invariant37609 /\ invariant37608 /\ invariant35557 /\ invariant66277 /\ invariant35555 /\ invariant32483 /\ invariant23264 /\ invariantX1313 /\ invariant6877 /\ invariant53979 /\ invariant53978 /\ invariant37593 /\ invariant59093 /\ invariant25298 /\ invariant25296 /\ invariant19150 /\ invariant57037 /\ invariantX309 /\ invariant19146 /\ invariantX1335 /\ invariant70343 /\ invariant70339 /\ invariant21186 /\ invariant23233 /\ invariant23232 /\ invariant41662 /\ invariant59070 /\ invariantX1349 /\ invariant41658 /\ invariant35513 /\ invariant17081 /\ invariant35511 /\ invariant19123 /\ invariant19122 /\ invariantX9553 /\ invariant29356 /\ invariantX1365 /\ invariant58025 /\ invariant35496 /\ invariant19111 /\ invariant29347 /\ invariant26274 /\ invariant30368 /\ invariant25248 /\ invariant5791 /\ invariantX11617 /\ invariant40605 /\ invariantX1380 /\ invariant26265 /\ invariant38553 /\ invariant38549 /\ invariant24212 /\ invariant55956 /\ invariant23187 /\ invariant59027 /\ invariant36498 /\ invariant59025 /\ invariantX369 /\ invariant1677 /\ invariantX1396 /\ invariantX8564 /\ invariant54923 /\ invariant1674 /\ invariant18058 /\ invariant25226 /\ invariant6793 /\ invariant18056 /\ invariant25224 /\ invariant34440 /\ invariant10886 /\ invariant43654 /\ invariant17030 /\ invariant54917 /\ invariant30341 /\ invariant30339 /\ invariant54912 /\ invariant55935 /\ invariant39549 /\ invariant54909 /\ invariant30330 /\ invariant31353 /\ invariant39545 /\ invariant6776 /\ invariant30328 /\ invariant1655 /\ invariant31351 /\ invariant32374 /\ invariantX395 /\ invariant35445 /\ invariant39535 /\ invariant31337 /\ invariant8808 /\ invariant8806 /\ invariant8805 /\ invariant51812 /\ invariant35427 /\ invariant34399 /\ invariant9821 /\ invariant2651 /\ invariant19033 /\ invariant1619 /\ invariantX5551 /\ invariant32335 /\ invariant1614 /\ invariant58955 /\ invariant31304 /\ invariant54856 /\ invariant10823 /\ invariant57927 /\ invariant25158 /\ invariant9797 /\ invariant25156 /\ invariant70212 /\ invariant9794 /\ invariant49729 /\ invariant70208 /\ invariant51775 /\ invariantX452 /\ invariant4668 /\ invariant1594 /\ invariant36407 /\ invariant25142 /\ invariant31282 /\ invariant54834 /\ invariant31280 /\ invariant18989 /\ invariant16939 /\ invariant30249 /\ invariant58921 /\ invariant20006 /\ invariant35366 /\ invariant24100 /\ invariant32291 /\ invariantX1503 /\ invariant31265 /\ invariant28190 /\ invariant51737 /\ invariant18968 /\ invariant2582 /\ invariant4628 /\ invariant51732 /\ invariant53777 /\ invariant51729 /\ invariant30224 /\ invariant30222 /\ invariant53772 /\ invariant22027 /\ invariant32265 /\ invariant53769 /\ invariant2568 /\ invariant19976 /\ invariant33288 /\ invariant51719 /\ invariantX11770 /\ invariantX2554 /\ invariantX507 /\ invariant30213 /\ invariant28164 /\ invariant56835 /\ invariant30211 /\ invariant26113 /\ invariant29184 /\ invariant31232 /\ invariant16889 /\ invariant73208 /\ invariant56821 /\ invariant3572 /\ invariant73204 /\ invariant23026 /\ invariantX528 /\ invariant40429 /\ invariant35308 /\ invariant35306 /\ invariant31210 /\ invariantX535 /\ invariant31208 /\ invariant1511 /\ invariant27107 /\ invariantX13854 /\ invariantX2594 /\ invariant57820 /\ invariant31193 /\ invariant57817 /\ invariant43479 /\ invariant51671 /\ invariant27094 /\ invariant4565 /\ invariant8661 /\ invariant22997 /\ invariant43475 /\ invariant51667 /\ invariantX11823 /\ invariant26060 /\ invariant32199 /\ invariant41414 /\ invariant4546 /\ invariant35266 /\ invariant41410 /\ invariant70081 /\ invariant36287 /\ invariant70077 /\ invariantX580 /\ invariant19900 /\ invariant51643 /\ invariant32185 /\ invariant34232 /\ invariant10679 /\ invariant51638 /\ invariant22965 /\ invariant22964 /\ invariant51635 /\ invariant11694 /\ invariant27052 /\ invariant11692 /\ invariant11691 /\ invariant11690 /\ invariant27050 /\ invariantX599 /\ invariant2473 /\ invariant18856 /\ invariant54695 /\ invariant31141 /\ invariantX1628 /\ invariant31139 /\ invariant56739 /\ invariant40354 /\ invariant3489 /\ invariant33184 /\ invariantX610 /\ invariant21913 /\ invariantX1642 /\ invariant31126 /\ invariant31125 /\ invariant53651 /\ invariant49554 /\ invariant400 /\ invariantX625 /\ invariant38281 /\ invariant4488 /\ invariant38280 /\ invariant22919 /\ invariant35205 /\ invariant18820 /\ invariant34180 /\ invariant18819 /\ invariant32130 /\ invariantX639 /\ invariant53633 /\ invariant46464 /\ invariant51582 /\ invariant73085 /\ invariantX1670 /\ invariant73081 /\ invariant57720 /\ invariant18806 /\ invariant57717 /\ invariant12660 /\ invariant22898 /\ invariant51570 /\ invariant40305 /\ invariant22897 /\ invariant19823 /\ invariant41324 /\ invariant35179 /\ invariant5481 /\ invariant360 /\ invariantX664 /\ invariant5480 /\ invariant5479 /\ invariant24934 /\ invariant24932 /\ invariant19810 /\ invariant30050 /\ invariant40290 /\ invariant352 /\ invariant18784 /\ invariant30048 /\ invariant27999 /\ invariant4446 /\ invariant31070 /\ invariant36189 /\ invariant31068 /\ invariant11610 /\ invariant53593 /\ invariant27990 /\ invariant27989 /\ invariant24916 /\ invariantX685 /\ invariant19795 /\ invariant32083 /\ invariant31054 /\ invariant42318 /\ invariant31052 /\ invariant52555 /\ invariant52554 /\ invariant21830 /\ invariant8518 /\ invariant35141 /\ invariantX25276 /\ invariant1346 /\ invariantX702 /\ invariant22850 /\ invariant35138 /\ invariant22849 /\ invariant5441 /\ invariant5440 /\ invariant5439 /\ invariant33087 /\ invariant69950 /\ invariant23869 /\ invariant69947 /\ invariant6455 /\ invariant3382 /\ invariant6453 /\ invariant53553 /\ invariant21808 /\ invariantX721 /\ invariant10543 /\ invariant24877 /\ invariant10541 /\ invariant22828 /\ invariant10540 /\ invariant53548 /\ invariant22827 /\ invariant24874 /\ invariant27946 /\ invariant54570 /\ invariant27945 /\ invariant53545 /\ invariant4392 /\ invariant52519 /\ invariant52518 /\ invariant31013 /\ invariant54564 /\ invariantX734 /\ invariant31010 /\ invariant21792 /\ invariant54559 /\ invariant54556 /\ invariant34074 /\ invariantX747 /\ invariant30996 /\ invariant11539 /\ invariant30994 /\ invariant40210 /\ invariant11538 /\ invariant18705 /\ invariant11537 /\ invariant18704 /\ invariant32016 /\ invariant11536 /\ invariantX1777 /\ invariant19727 /\ invariant11535 /\ invariantX5884 /\ invariant4352 /\ invariant1278 /\ invariant33021 /\ invariant22780 /\ invariant22779 /\ invariantX778 /\ invariant29942 /\ invariant5363 /\ invariant53491 /\ invariant5362 /\ invariant5361 /\ invariant27889 /\ invariant34033 /\ invariant19694 /\ invariantX20245 /\ invariantX790 /\ invariantX14103 /\ invariant43239 /\ invariant54503 /\ invariant56549 /\ invariant43235 /\ invariant66784 /\ invariant11486 /\ invariant30940 /\ invariant31964 /\ invariant11484 /\ invariant28891 /\ invariant11483 /\ invariant11482 /\ invariantX4903 /\ invariant56536 /\ invariant1239 /\ invariant2261 /\ invariant5333 /\ invariant5332 /\ invariant10452 /\ invariant5331 /\ invariant42195 /\ invariantX1839 /\ invariant30927 /\ invariant38094 /\ invariantX5939 /\ invariant7365 /\ invariant4289 /\ invariant41152 /\ invariantX5953 /\ invariant19647 /\ invariant11455 /\ invariant30911 /\ invariant38073 /\ invariant8376 /\ invariant38072 /\ invariantX841 /\ invariantX5964 /\ invariant69810 /\ invariant69807 /\ invariant4270 /\ invariant8365 /\ invariant22696 /\ invariant22695 /\ invariant46244 /\ invariantX1889 /\ invariantX866 /\ invariant30876 /\ invariant10396 /\ invariant10394 /\ invariant10393 /\ invariant30872 /\ invariant22680 /\ invariant22679 /\ invariantX874 /\ invariant5270 /\ invariant5268 /\ invariant24724 /\ invariant42131 /\ invariant24722 /\ invariant25744 /\ invariant35984 /\ invariant32911 /\ invariant25742 /\ invariant23693 /\ invariant23691 /\ invariant27783 /\ invariant30854 /\ invariant40070 /\ invariant27781 /\ invariant40066 /\ invariant26747 /\ invariantX25478 /\ invariant40057 /\ invariant4212 /\ invariantX909 /\ invariant33904 /\ invariant31854 /\ invariant23661 /\ invariant34924 /\ invariantX918 /\ invariantX30614 /\ invariant6246 /\ invariant2149 /\ invariant6244 /\ invariant41060 /\ invariant27744 /\ invariant25695 /\ invariantX6051 /\ invariant52316 /\ invariantX933 /\ invariant1115 /\ invariant24666 /\ invariant36952 /\ invariant52311 /\ invariant86 /\ invariant52308 /\ invariantX941 /\ invariant38994 /\ invariant30801 /\ invariant32848 /\ invariant32845 /\ invariant33868 /\ invariant70732 /\ invariant48202 /\ invariant1096 /\ invariant28744 /\ invariant70728 /\ invariant9286 /\ invariant8261 /\ invariantX1981 /\ invariant9283 /\ invariant10305 /\ invariant32831 /\ invariant8250 /\ invariant30778 /\ invariant66615 /\ invariant55350 /\ invariant51 /\ invariant24627 /\ invariant37939 /\ invariant55347 /\ invariant48 /\ invariant11312 /\ invariant37935 /\ invariant15406 /\ invariant37934 /\ invariantX5076 /\ invariant43051 /\ invariant1062 /\ invariant5158 /\ invariant69670 /\ invariantX6107 /\ invariant37 /\ invariant3109 /\ invariant26661 /\ invariant5156 /\ invariant69666 /\ invariant37920 /\ invariant2079 /\ invariant27678 /\ invariant19482 /\ invariant53273 /\ invariant40984 /\ invariantX2026 /\ invariant38933 /\ invariant27667 /\ invariant1036 /\ invariant2060 /\ invariant2059 /\ invariant9 /\ invariant59401 /\ invariant8 /\ invariant7 /\ invariantX1019 /\ invariant5 /\ invariant4 /\ invariant3 /\ invariant2 /\ invariant18433 /\ invariant1) -> (not (exists z1:int. cacheState_home = CACHE_E /\
(cacheState z1) = CACHE_E) /\
not (exists z1 z2:int. z1 <> z2 /\ (cacheState z1) = CACHE_E /\
(cacheState z2) = CACHE_E) /\
not (dir_Dirty = False /\
memData <> currData) /\
not (cacheState_home = CACHE_E /\
cacheData_home <> currData) /\
not (exists z1:int. (cacheState z1) = CACHE_E /\
(cacheData z1) <> currData) /\
not (cacheState_home = CACHE_S /\
cacheData_home <> prevData /\
collecting = True) /\
not (exists z1:int. collecting = True /\
(cacheState z1) = CACHE_S /\
(cacheData z1) <> prevData) /\
not (cacheState_home = CACHE_S /\
cacheData_home <> currData /\
collecting = False) /\
not (exists z1:int. collecting = False /\
(cacheState z1) = CACHE_S /\
(cacheData z1) <> currData))


end


theory Flash_abstr_hint_1

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_1:
    (invariantX30985 /\ invariantX20245 /\ invariantX48 /\ invariantX38 /\  tau)
    -> invariantX30985'



end


theory Flash_abstr_hint_2

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_2:
    (invariantX30614 /\ invariantX20245 /\ invariantX38 /\  tau)
    -> invariantX30614'



end


theory Flash_abstr_hint_3

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_3:
    (invariantX30985 /\ invariantX25798 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX6107 /\ invariantX2238 /\ invariantX933 /\ invariantX866 /\ invariantX395 /\ invariantX369 /\ invariantX38 /\ invariant1239 /\ invariant1594 /\ invariant1619 /\ invariant29449 /\  tau)
    -> invariantX25798'



end


theory Flash_abstr_hint_4

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_4:
    (invariantX25798 /\ invariantX25766 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX11823 /\ invariantX2224 /\ invariantX1839 /\ invariantX1670 /\ invariantX1503 /\ invariantX918 /\ invariantX841 /\ invariantX685 /\ invariantX149 /\ invariant4446 /\ invariant9794 /\ invariant9797 /\ invariant29347 /\ invariant29356 /\  tau)
    -> invariantX25766'



end


theory Flash_abstr_hint_5

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_5:
    (invariantX30985 /\ invariantX25766 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX5953 /\ invariantX941 /\ invariantX933 /\ invariantX918 /\ invariantX48 /\ invariantX38 /\ invariant4488 /\ invariant4668 /\ invariant29184 /\  tau)
    -> invariantX25712'



end


theory Flash_abstr_hint_6

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_6:
    (invariantX30985 /\ invariantX25698 /\ invariantX25478 /\ invariantX20245 /\ invariantX4256 /\ invariantX1670 /\ invariantX685 /\ invariantX48 /\ invariantX38 /\  tau)
    -> invariantX25698'



end


theory Flash_abstr_hint_7

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_7:
    (invariantX30985 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX4289 /\ invariantX1670 /\ invariantX685 /\ invariantX48 /\ invariantX38 /\  tau)
    -> invariantX25683'



end


theory Flash_abstr_hint_8

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_8:
    (invariantX30985 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX5939 /\ invariantX535 /\ invariantX528 /\ invariantX507 /\ invariantX48 /\ invariantX38 /\ invariant1594 /\ invariant1895 /\ invariant2060 /\ invariant4212 /\ invariant4488 /\ invariant27945 /\ invariant27946 /\ invariant27989 /\ invariant27990 /\ invariant27999 /\  tau)
    -> invariantX25478'



end


theory Flash_abstr_hint_9

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_9:
    (invariantX25798 /\ invariantX25766 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX25276 /\ invariantX20245 /\ invariantX11617 /\ invariantX1839 /\ invariantX1670 /\ invariantX1503 /\ invariantX918 /\ invariantX841 /\ invariantX685 /\ invariantX580 /\ invariantX149 /\ invariantX62 /\ invariantX38 /\ invariant9794 /\ invariant9797 /\ invariant18989 /\ invariant27889 /\ invariant27945 /\ invariant27989 /\ invariant29356 /\  tau)
    -> invariantX25276'



end


theory Flash_abstr_hint_10

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_10:
    (invariantX20245 /\ invariantX38 /\  tau)
    -> invariantX20245'



end


theory Flash_abstr_hint_11

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_11:
    (invariantX30985 /\ invariantX25798 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX15612 /\ invariantX4231 /\ invariantX1839 /\ invariantX1670 /\ invariantX685 /\ invariantX48 /\ invariantX38 /\  tau)
    -> invariantX15612'



end


theory Flash_abstr_hint_12

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_12:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX9390 /\ invariantX5281 /\ invariantX4289 /\ invariantX4256 /\ invariantX4231 /\ invariantX3248 /\ invariantX1670 /\ invariantX1396 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX625 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2149 /\ invariant2651 /\  tau)
    -> invariantX14103'



end


theory Flash_abstr_hint_13

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_13:
    (invariantX20245 /\ invariantX13854 /\ invariantX1670 /\ invariantX918 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariant352 /\ invariant861 /\ invariant1619 /\ invariant1895 /\ invariant5791 /\  tau)
    -> invariantX13854'



end


theory Flash_abstr_hint_14

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_14:
    (invariantX20245 /\ invariantX13370 /\ invariantX5551 /\ invariantX1302 /\ invariantX841 /\ invariantX528 /\ invariantX395 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\  tau)
    -> invariantX13370'



end


theory Flash_abstr_hint_15

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_15:
    (invariantX20245 /\ invariantX11823 /\ invariantX11770 /\ invariantX5261 /\ invariantX5187 /\ invariantX2224 /\  tau)
    -> invariantX11823'



end


theory Flash_abstr_hint_16

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_16:
    (invariantX20245 /\ invariantX11823 /\ invariantX11770 /\ invariantX5187 /\ invariantX2112 /\  tau)
    -> invariantX11770'



end


theory Flash_abstr_hint_17

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_17:
    (invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX11770 /\ invariantX11617 /\ invariantX5076 /\ invariantX2112 /\ invariantX1839 /\ invariantX580 /\ invariantX21 /\ invariant21808 /\ invariant23869 /\  tau)
    -> invariantX11617'



end


theory Flash_abstr_hint_18

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_18:
    (invariantX25798 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX9553 /\ invariantX5271 /\ invariantX5261 /\ invariantX5076 /\ invariantX1839 /\ invariantX1628 /\ invariantX685 /\ invariantX48 /\ invariantX38 /\ invariant18220 /\ invariant18221 /\ invariant21792 /\ invariant21808 /\  tau)
    -> invariantX9553'



end


theory Flash_abstr_hint_19

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_19:
    (invariantX20245 /\ invariantX11823 /\ invariantX11770 /\ invariantX9424 /\ invariantX5551 /\ invariantX5281 /\ invariantX5261 /\ invariantX5187 /\ invariantX3248 /\ invariantX1396 /\ invariantX1365 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX48 /\ invariantX38 /\ invariant18325 /\ invariant18433 /\  tau)
    -> invariantX9424'



end


theory Flash_abstr_hint_20

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_20:
    (invariantX20245 /\ invariantX11823 /\ invariantX11770 /\ invariantX9424 /\ invariantX9405 /\ invariantX5551 /\ invariantX5261 /\ invariantX5187 /\ invariantX3233 /\ invariantX3213 /\ invariantX1839 /\ invariantX1380 /\ invariantX1335 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX48 /\ invariantX38 /\ invariant18325 /\ invariant18433 /\  tau)
    -> invariantX9405'



end


theory Flash_abstr_hint_21

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_21:
    (invariantX20245 /\ invariantX9424 /\ invariantX9390 /\ invariantX3248 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX48 /\ invariantX38 /\  tau)
    -> invariantX9390'



end


theory Flash_abstr_hint_22

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_22:
    (invariantX20245 /\ invariantX9405 /\ invariantX9390 /\ invariantX9361 /\ invariantX3233 /\ invariantX3213 /\ invariantX1839 /\ invariantX1670 /\ invariantX1380 /\ invariantX1335 /\ invariantX1302 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX48 /\ invariantX38 /\  tau)
    -> invariantX9361'



end


theory Flash_abstr_hint_23

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_23:
    (invariantX30985 /\ invariantX20245 /\ invariantX8564 /\ invariantX1889 /\ invariantX1670 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant20433 /\  tau)
    -> invariantX8564'



end


theory Flash_abstr_hint_24

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_24:
    (invariantX30985 /\ invariantX20245 /\ invariantX13370 /\ invariantX8564 /\ invariantX6302 /\ invariantX5551 /\ invariantX1889 /\ invariantX1349 /\ invariantX1302 /\ invariantX1039 /\ invariantX790 /\ invariantX599 /\ invariantX528 /\ invariantX395 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\ invariant1346 /\ invariant8043 /\  tau)
    -> invariantX6302'



end


theory Flash_abstr_hint_25

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_25:
    (invariantX30985 /\ invariantX20245 /\ invariantX6107 /\ invariantX5939 /\ invariantX5187 /\ invariantX4903 /\ invariantX933 /\ invariantX866 /\ invariantX369 /\ invariantX21 /\ invariant1 /\ invariant1619 /\  tau)
    -> invariantX6107'



end


theory Flash_abstr_hint_26

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_26:
    (invariantX20245 /\ invariantX6107 /\ invariantX6051 /\ invariantX933 /\ invariantX866 /\ invariantX580 /\ invariantX395 /\ invariantX369 /\ invariantX38 /\ invariantX21 /\ invariant1594 /\  tau)
    -> invariantX6051'



end


theory Flash_abstr_hint_27

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_27:
    (invariantX20245 /\ invariantX5964 /\ invariantX5953 /\ invariantX941 /\ invariantX933 /\ invariantX918 /\ invariantX48 /\ invariantX38 /\ invariantX21 /\ invariant4488 /\  tau)
    -> invariantX5964'



end


theory Flash_abstr_hint_28

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_28:
    (invariantX30985 /\ invariantX20245 /\ invariantX5953 /\ invariantX5939 /\ invariantX5187 /\ invariantX4903 /\ invariantX933 /\ invariantX918 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\  tau)
    -> invariantX5953'



end


theory Flash_abstr_hint_29

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_29:
    (invariantX30985 /\ invariantX20245 /\ invariantX5953 /\ invariantX5939 /\ invariantX5187 /\ invariantX4903 /\ invariantX507 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant1895 /\ invariant19187 /\ invariant19196 /\  tau)
    -> invariantX5939'



end


theory Flash_abstr_hint_30

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_30:
    (invariantX20245 /\ invariantX5964 /\ invariantX5939 /\ invariantX5884 /\ invariantX535 /\ invariantX528 /\ invariantX507 /\ invariantX48 /\ invariantX38 /\ invariantX21 /\ invariant1594 /\ invariant4212 /\ invariant4488 /\ invariant19146 /\ invariant19150 /\  tau)
    -> invariantX5884'



end


theory Flash_abstr_hint_31

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_31:
    (invariantX20245 /\ invariantX5551 /\ invariantX5281 /\ invariantX528 /\ invariantX395 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\  tau)
    -> invariantX5551'



end


theory Flash_abstr_hint_32

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_32:
    (invariantX20245 /\ invariantX11823 /\ invariantX11770 /\ invariantX5551 /\ invariantX5294 /\ invariantX5261 /\ invariantX5187 /\ invariantX3248 /\ invariantX778 /\ invariantX747 /\ invariantX734 /\ invariantX702 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant18325 /\ invariant18433 /\  tau)
    -> invariantX5294'



end


theory Flash_abstr_hint_33

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_33:
    (invariantX20245 /\ invariantX11823 /\ invariantX11770 /\ invariantX5551 /\ invariantX5294 /\ invariantX5281 /\ invariantX5261 /\ invariantX5187 /\ invariantX4289 /\ invariantX4256 /\ invariantX4231 /\ invariantX625 /\ invariantX610 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant18325 /\ invariant18433 /\  tau)
    -> invariantX5281'



end


theory Flash_abstr_hint_34

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_34:
    (invariantX20245 /\ invariantX5271 /\ invariantX5261 /\ invariantX1628 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX535 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant861 /\ invariant1511 /\  tau)
    -> invariantX5271'



end


theory Flash_abstr_hint_35

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_35:
    (invariantX20245 /\ invariantX5271 /\ invariantX5261 /\ invariantX5187 /\ invariantX48 /\ invariantX38 /\ invariant18325 /\ invariant18433 /\  tau)
    -> invariantX5261'



end


theory Flash_abstr_hint_36

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_36:
    (invariantX20245 /\ invariantX5261 /\ invariantX5187 /\ invariantX4903 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant18325 /\  tau)
    -> invariantX5187'



end


theory Flash_abstr_hint_37

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_37:
    (invariantX30985 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX9553 /\ invariantX6107 /\ invariantX5953 /\ invariantX5939 /\ invariantX5187 /\ invariantX5076 /\ invariantX4903 /\ invariantX1839 /\ invariantX685 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant1 /\ invariant360 /\ invariant18220 /\ invariant18221 /\ invariant18271 /\  tau)
    -> invariantX5076'



end


theory Flash_abstr_hint_38

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_38:
    (invariantX30985 /\ invariantX20245 /\ invariantX4903 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\  tau)
    -> invariantX4903'



end


theory Flash_abstr_hint_39

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_39:
    (invariantX30985 /\ invariantX20245 /\ invariantX4289 /\ invariantX3213 /\ invariantX1670 /\ invariantX625 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2149 /\ invariant2651 /\  tau)
    -> invariantX4289'



end


theory Flash_abstr_hint_40

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_40:
    (invariantX30985 /\ invariantX20245 /\ invariantX4256 /\ invariantX3213 /\ invariantX1670 /\ invariantX625 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2149 /\ invariant2651 /\  tau)
    -> invariantX4256'



end


theory Flash_abstr_hint_41

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_41:
    (invariantX30985 /\ invariantX20245 /\ invariantX4289 /\ invariantX4256 /\ invariantX4231 /\ invariantX3213 /\ invariantX1670 /\ invariantX625 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2149 /\ invariant2651 /\  tau)
    -> invariantX4231'



end


theory Flash_abstr_hint_42

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_42:
    (invariantX30985 /\ invariantX20245 /\ invariantX3248 /\ invariantX1670 /\ invariantX1396 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX778 /\ invariantX747 /\ invariantX734 /\ invariantX721 /\ invariantX702 /\ invariantX639 /\ invariantX48 /\ invariantX38 /\ invariant5268 /\  tau)
    -> invariantX3248'



end


theory Flash_abstr_hint_43

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_43:
    (invariantX20245 /\ invariantX3248 /\ invariantX3233 /\ invariantX1839 /\ invariantX1670 /\ invariantX1380 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX778 /\ invariantX747 /\ invariantX734 /\ invariantX721 /\ invariantX702 /\ invariantX639 /\ invariantX48 /\ invariantX38 /\ invariant5156 /\  tau)
    -> invariantX3233'



end


theory Flash_abstr_hint_44

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_44:
    (invariantX20245 /\ invariantX3233 /\ invariantX3213 /\ invariantX1670 /\ invariantX1380 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX625 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2149 /\ invariant2651 /\  tau)
    -> invariantX3213'



end


theory Flash_abstr_hint_45

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_45:
    (invariantX30985 /\ invariantX20245 /\ invariantX5294 /\ invariantX3248 /\ invariantX3233 /\ invariantX2594 /\ invariantX2269 /\ invariantX1670 /\ invariantX778 /\ invariantX747 /\ invariantX734 /\ invariantX721 /\ invariantX702 /\ invariantX639 /\ invariantX48 /\ invariantX38 /\ invariant3109 /\ invariant3572 /\  tau)
    -> invariantX2594'



end


theory Flash_abstr_hint_46

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_46:
    (invariantX25798 /\ invariantX25766 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX11617 /\ invariantX3233 /\ invariantX2554 /\ invariantX2269 /\ invariantX2238 /\ invariantX1839 /\ invariantX1670 /\ invariantX1503 /\ invariantX702 /\ invariantX685 /\ invariantX664 /\ invariantX48 /\ invariantX38 /\ invariant6793 /\ invariant9794 /\ invariant9797 /\ invariant9821 /\ invariant29356 /\  tau)
    -> invariantX2554'



end


theory Flash_abstr_hint_47

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_47:
    (invariantX30985 /\ invariantX20245 /\ invariantX4289 /\ invariantX4256 /\ invariantX3213 /\ invariantX2594 /\ invariantX2269 /\ invariantX1670 /\ invariantX625 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2 /\ invariant2149 /\ invariant2651 /\  tau)
    -> invariantX2269'



end


theory Flash_abstr_hint_48

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_48:
    (invariantX25798 /\ invariantX25766 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX11617 /\ invariantX3213 /\ invariantX2554 /\ invariantX2238 /\ invariantX1839 /\ invariantX1670 /\ invariantX1503 /\ invariantX685 /\ invariantX664 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant6793 /\ invariant8043 /\ invariant29356 /\  tau)
    -> invariantX2238'



end


theory Flash_abstr_hint_49

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_49:
    (invariantX30985 /\ invariantX20245 /\ invariantX2224 /\ invariantX2112 /\ invariantX2026 /\  tau)
    -> invariantX2224'



end


theory Flash_abstr_hint_50

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_50:
    (invariantX30985 /\ invariantX20245 /\ invariantX2224 /\ invariantX2112 /\ invariantX2026 /\  tau)
    -> invariantX2112'



end


theory Flash_abstr_hint_51

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_51:
    (invariantX30985 /\ invariantX20245 /\ invariantX2112 /\ invariantX2026 /\ invariantX48 /\  tau)
    -> invariantX2026'



end


theory Flash_abstr_hint_52

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_52:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX1981 /\ invariantX1670 /\ invariantX48 /\ invariantX38 /\  tau)
    -> invariantX1981'



end


theory Flash_abstr_hint_53

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_53:
    (invariantX30985 /\ invariantX20245 /\ invariantX1981 /\ invariantX1889 /\ invariantX1670 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\  tau)
    -> invariantX1889'



end


theory Flash_abstr_hint_54

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_54:
    (invariantX25798 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX3213 /\ invariantX1839 /\ invariantX1670 /\ invariantX1380 /\ invariantX1335 /\ invariantX1302 /\ invariantX1271 /\ invariantX685 /\ invariantX48 /\ invariantX38 /\ invariant7365 /\  tau)
    -> invariantX1839'



end


theory Flash_abstr_hint_55

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_55:
    (invariantX20245 /\ invariantX11823 /\ invariantX1777 /\  tau)
    -> invariantX1777'



end


theory Flash_abstr_hint_56

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_56:
    (invariantX20245 /\ invariantX1777 /\ invariantX1670 /\ invariantX48 /\  tau)
    -> invariantX1670'



end


theory Flash_abstr_hint_57

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_57:
    (invariantX20245 /\ invariantX5271 /\ invariantX5261 /\ invariantX1642 /\ invariantX1628 /\ invariantX778 /\ invariantX747 /\ invariantX721 /\ invariantX702 /\ invariantX639 /\ invariantX48 /\ invariantX38 /\ invariant3109 /\ invariant3572 /\  tau)
    -> invariantX1642'



end


theory Flash_abstr_hint_58

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_58:
    (invariantX20245 /\ invariantX5271 /\ invariantX5261 /\ invariantX1642 /\ invariantX1628 /\ invariantX625 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2149 /\ invariant2651 /\  tau)
    -> invariantX1628'



end


theory Flash_abstr_hint_59

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_59:
    (invariantX25798 /\ invariantX25766 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX9553 /\ invariantX5271 /\ invariantX5261 /\ invariantX1839 /\ invariantX1628 /\ invariantX1503 /\ invariantX685 /\ invariantX664 /\ invariantX48 /\ invariantX38 /\ invariant6776 /\ invariant6793 /\  tau)
    -> invariantX1503'



end


theory Flash_abstr_hint_60

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_60:
    (invariantX30985 /\ invariantX20245 /\ invariantX1396 /\ invariantX1313 /\ invariantX874 /\ invariantX866 /\ invariantX841 /\ invariantX48 /\ invariantX38 /\ invariant4212 /\  tau)
    -> invariantX1396'



end


theory Flash_abstr_hint_61

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_61:
    (invariantX20245 /\ invariantX1396 /\ invariantX1380 /\ invariantX1271 /\ invariantX874 /\ invariantX866 /\ invariantX841 /\ invariantX48 /\ invariantX38 /\ invariant4212 /\  tau)
    -> invariantX1380'



end


theory Flash_abstr_hint_62

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_62:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX1365 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX734 /\ invariantX610 /\ invariantX535 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant861 /\ invariant1511 /\ invariant6453 /\ invariant6455 /\  tau)
    -> invariantX1365'



end


theory Flash_abstr_hint_63

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_63:
    (invariantX30985 /\ invariantX20245 /\ invariantX13370 /\ invariantX5551 /\ invariantX1396 /\ invariantX1349 /\ invariantX721 /\ invariantX599 /\ invariantX528 /\ invariantX395 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\ invariant1346 /\  tau)
    -> invariantX1349'



end


theory Flash_abstr_hint_64

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_64:
    (invariantX20245 /\ invariantX3213 /\ invariantX1365 /\ invariantX1335 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX734 /\ invariantX610 /\ invariantX535 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant861 /\ invariant1511 /\ invariant6244 /\ invariant6246 /\  tau)
    -> invariantX1335'



end


theory Flash_abstr_hint_65

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_65:
    (invariantX20245 /\ invariantX9390 /\ invariantX1670 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1201 /\ invariantX1122 /\ invariantX918 /\ invariantX841 /\ invariantX48 /\ invariantX38 /\ invariant6078 /\  tau)
    -> invariantX1313'



end


theory Flash_abstr_hint_66

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_66:
    (invariantX20245 /\ invariantX13370 /\ invariantX5551 /\ invariantX1380 /\ invariantX1349 /\ invariantX1302 /\ invariantX721 /\ invariantX599 /\ invariantX528 /\ invariantX395 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\ invariant1346 /\  tau)
    -> invariantX1302'



end


theory Flash_abstr_hint_67

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_67:
    (invariantX20245 /\ invariantX9361 /\ invariantX1670 /\ invariantX1335 /\ invariantX1313 /\ invariantX1302 /\ invariantX1271 /\ invariantX1188 /\ invariantX1109 /\ invariantX918 /\ invariantX841 /\ invariantX48 /\ invariantX38 /\ invariant5791 /\  tau)
    -> invariantX1271'



end


theory Flash_abstr_hint_68

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_68:
    (invariantX30985 /\ invariantX25712 /\ invariantX20245 /\ invariantX5953 /\ invariantX1313 /\ invariantX1231 /\ invariantX941 /\ invariantX933 /\ invariantX918 /\ invariantX48 /\ invariantX38 /\ invariant4488 /\  tau)
    -> invariantX1231'



end


theory Flash_abstr_hint_69

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_69:
    (invariantX25712 /\ invariantX20245 /\ invariantX5953 /\ invariantX1271 /\ invariantX1231 /\ invariantX1218 /\ invariantX941 /\ invariantX933 /\ invariantX918 /\ invariantX48 /\ invariantX38 /\ invariant4488 /\  tau)
    -> invariantX1218'



end


theory Flash_abstr_hint_70

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_70:
    (invariantX30985 /\ invariantX25478 /\ invariantX20245 /\ invariantX5939 /\ invariantX1231 /\ invariantX1201 /\ invariantX535 /\ invariantX528 /\ invariantX507 /\ invariantX48 /\ invariantX38 /\ invariant1594 /\ invariant1895 /\ invariant4212 /\ invariant4488 /\ invariant5439 /\ invariant5440 /\ invariant5441 /\ invariant5479 /\ invariant5480 /\ invariant5481 /\  tau)
    -> invariantX1201'



end


theory Flash_abstr_hint_71

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_71:
    (invariantX25478 /\ invariantX20245 /\ invariantX5939 /\ invariantX1218 /\ invariantX1201 /\ invariantX1188 /\ invariantX535 /\ invariantX528 /\ invariantX507 /\ invariantX48 /\ invariantX38 /\ invariant1594 /\ invariant1895 /\ invariant4212 /\ invariant4488 /\ invariant5331 /\ invariant5332 /\ invariant5333 /\ invariant5361 /\ invariant5362 /\ invariant5363 /\  tau)
    -> invariantX1188'



end


theory Flash_abstr_hint_72

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_72:
    (invariantX30985 /\ invariantX25798 /\ invariantX20245 /\ invariantX14103 /\ invariantX6107 /\ invariantX1122 /\ invariantX933 /\ invariantX866 /\ invariantX395 /\ invariantX369 /\ invariantX38 /\ invariant1594 /\ invariant1619 /\ invariant5268 /\ invariant5270 /\  tau)
    -> invariantX1122'



end


theory Flash_abstr_hint_73

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_73:
    (invariantX25798 /\ invariantX20245 /\ invariantX6107 /\ invariantX3213 /\ invariantX1122 /\ invariantX1109 /\ invariantX933 /\ invariantX866 /\ invariantX395 /\ invariantX369 /\ invariantX38 /\ invariant1594 /\ invariant1619 /\ invariant5156 /\ invariant5158 /\  tau)
    -> invariantX1109'



end


theory Flash_abstr_hint_74

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_74:
    (invariantX30985 /\ invariantX20245 /\ invariantX4289 /\ invariantX1670 /\ invariantX1039 /\ invariantX625 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2149 /\ invariant2651 /\  tau)
    -> invariantX1039'



end


theory Flash_abstr_hint_75

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_75:
    (invariantX30985 /\ invariantX20245 /\ invariantX1019 /\ invariantX918 /\ invariantX175 /\ invariantX168 /\ invariantX149 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\  tau)
    -> invariantX1019'



end


theory Flash_abstr_hint_76

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_76:
    (invariantX30985 /\ invariantX20245 /\ invariantX941 /\ invariantX909 /\ invariantX535 /\ invariantX309 /\ invariantX68 /\ invariantX38 /\ invariant4668 /\  tau)
    -> invariantX941'



end


theory Flash_abstr_hint_77

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_77:
    (invariantX30985 /\ invariantX20245 /\ invariantX933 /\ invariantX369 /\ invariantX38 /\ invariant4628 /\  tau)
    -> invariantX933'



end


theory Flash_abstr_hint_78

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_78:
    (invariantX20245 /\ invariantX1218 /\ invariantX941 /\ invariantX933 /\ invariantX918 /\ invariantX48 /\ invariantX38 /\ invariant4488 /\  tau)
    -> invariantX918'



end


theory Flash_abstr_hint_79

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_79:
    (invariantX20245 /\ invariantX1335 /\ invariantX909 /\ invariantX841 /\ invariantX535 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant861 /\ invariant4446 /\  tau)
    -> invariantX909'



end


theory Flash_abstr_hint_80

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_80:
    (invariantX30985 /\ invariantX20245 /\ invariantX909 /\ invariantX874 /\ invariantX841 /\ invariantX535 /\ invariantX309 /\ invariantX68 /\ invariantX38 /\ invariant4392 /\  tau)
    -> invariantX874'



end


theory Flash_abstr_hint_81

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_81:
    (invariantX30985 /\ invariantX20245 /\ invariantX866 /\ invariantX369 /\ invariantX38 /\ invariant4352 /\  tau)
    -> invariantX866'



end


theory Flash_abstr_hint_82

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_82:
    (invariantX20245 /\ invariantX1380 /\ invariantX874 /\ invariantX866 /\ invariantX841 /\ invariantX48 /\ invariantX38 /\ invariant4212 /\  tau)
    -> invariantX841'



end


theory Flash_abstr_hint_83

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_83:
    (invariantX30985 /\ invariantX20245 /\ invariantX841 /\ invariantX790 /\ invariantX175 /\ invariantX168 /\ invariantX149 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\  tau)
    -> invariantX790'



end


theory Flash_abstr_hint_84

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_84:
    (invariantX30985 /\ invariantX20245 /\ invariantX4256 /\ invariantX1670 /\ invariantX778 /\ invariantX625 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2149 /\ invariant2651 /\  tau)
    -> invariantX778'



end


theory Flash_abstr_hint_85

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_85:
    (invariantX30985 /\ invariantX20245 /\ invariantX2224 /\ invariantX2112 /\ invariantX2026 /\ invariantX747 /\ invariantX734 /\ invariantX721 /\ invariantX702 /\ invariantX639 /\ invariantX625 /\ invariantX580 /\ invariantX48 /\  tau)
    -> invariantX747'



end


theory Flash_abstr_hint_86

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_86:
    (invariantX30985 /\ invariantX20245 /\ invariantX2269 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX778 /\ invariantX734 /\ invariantX610 /\ invariantX535 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant861 /\ invariant1511 /\  tau)
    -> invariantX734'



end


theory Flash_abstr_hint_87

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_87:
    (invariantX30985 /\ invariantX20245 /\ invariantX13370 /\ invariantX5551 /\ invariantX2269 /\ invariantX778 /\ invariantX721 /\ invariantX599 /\ invariantX528 /\ invariantX395 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\ invariant1346 /\  tau)
    -> invariantX721'



end


theory Flash_abstr_hint_88

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_88:
    (invariantX20245 /\ invariantX734 /\ invariantX721 /\ invariantX702 /\ invariantX639 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariantX21 /\ invariant352 /\ invariant3572 /\  tau)
    -> invariantX702'



end


theory Flash_abstr_hint_89

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_89:
    (invariantX30985 /\ invariantX25712 /\ invariantX20245 /\ invariantX13854 /\ invariantX1670 /\ invariantX685 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariant352 /\ invariant400 /\ invariant861 /\ invariant1619 /\ invariant1895 /\ invariant2149 /\ invariant3489 /\ invariant18325 /\  tau)
    -> invariantX685'



end


theory Flash_abstr_hint_90

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_90:
    (invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX6107 /\ invariantX5953 /\ invariantX5939 /\ invariantX5187 /\ invariantX5076 /\ invariantX4903 /\ invariantX1839 /\ invariantX1503 /\ invariantX685 /\ invariantX664 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant1 /\ invariant360 /\ invariant3382 /\  tau)
    -> invariantX664'



end


theory Flash_abstr_hint_91

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_91:
    (invariantX30985 /\ invariantX20245 /\ invariantX6107 /\ invariantX5953 /\ invariantX5939 /\ invariantX5187 /\ invariantX4903 /\ invariantX702 /\ invariantX639 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant1 /\ invariant360 /\ invariant3109 /\  tau)
    -> invariantX639'



end


theory Flash_abstr_hint_92

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_92:
    (invariantX30985 /\ invariantX20245 /\ invariantX2224 /\ invariantX2112 /\ invariantX2026 /\ invariantX747 /\ invariantX625 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariant1 /\  tau)
    -> invariantX625'



end


theory Flash_abstr_hint_93

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_93:
    (invariantX30985 /\ invariantX20245 /\ invariantX4289 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX734 /\ invariantX610 /\ invariantX535 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant2 /\ invariant861 /\ invariant1511 /\  tau)
    -> invariantX610'



end


theory Flash_abstr_hint_94

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_94:
    (invariantX30985 /\ invariantX20245 /\ invariantX13370 /\ invariantX5551 /\ invariantX721 /\ invariantX599 /\ invariantX528 /\ invariantX395 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1346 /\  tau)
    -> invariantX599'



end


theory Flash_abstr_hint_95

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_95:
    (invariantX20245 /\ invariantX702 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariantX21 /\ invariant1 /\ invariant352 /\ invariant2651 /\  tau)
    -> invariantX580'



end


theory Flash_abstr_hint_96

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_96:
    (invariantX30985 /\ invariantX20245 /\ invariantX941 /\ invariantX535 /\ invariantX507 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant2059 /\ invariant2060 /\ invariant2079 /\  tau)
    -> invariantX535'



end


theory Flash_abstr_hint_97

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_97:
    (invariantX30985 /\ invariantX20245 /\ invariantX528 /\ invariantX507 /\ invariantX395 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\ invariant1994 /\ invariant2014 /\ invariant4212 /\  tau)
    -> invariantX528'



end


theory Flash_abstr_hint_98

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_98:
    (invariantX20245 /\ invariantX1188 /\ invariantX918 /\ invariantX535 /\ invariantX528 /\ invariantX507 /\ invariantX48 /\ invariantX38 /\ invariant1594 /\ invariant1875 /\ invariant1887 /\ invariant1895 /\  tau)
    -> invariantX507'



end


theory Flash_abstr_hint_99

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_99:
    (invariantX20245 /\ invariantX580 /\ invariantX452 /\ invariantX48 /\ invariantX38 /\ invariantX21 /\ invariant360 /\ invariant1346 /\ invariant1511 /\  tau)
    -> invariantX452'



end


theory Flash_abstr_hint_100

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_100:
    (invariantX30985 /\ invariantX20245 /\ invariantX866 /\ invariantX599 /\ invariantX395 /\ invariantX369 /\ invariantX229 /\ invariantX92 /\ invariantX38 /\  tau)
    -> invariantX395'



end


theory Flash_abstr_hint_101

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_101:
    (invariantX20245 /\ invariantX1109 /\ invariantX395 /\ invariantX369 /\ invariantX38 /\ invariant1594 /\ invariant1614 /\ invariant1619 /\  tau)
    -> invariantX369'



end


theory Flash_abstr_hint_102

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_102:
    (invariantX20245 /\ invariantX580 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariantX21 /\ invariant1511 /\  tau)
    -> invariantX309'



end


theory Flash_abstr_hint_103

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_103:
    (invariantX30985 /\ invariantX20245 /\ invariantX874 /\ invariantX599 /\ invariantX248 /\ invariantX229 /\ invariantX68 /\ invariantX38 /\  tau)
    -> invariantX248'



end


theory Flash_abstr_hint_104

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_104:
    (invariantX20245 /\ invariantX580 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\ invariantX21 /\ invariant1346 /\  tau)
    -> invariantX229'



end


theory Flash_abstr_hint_105

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_105:
    (invariantX30985 /\ invariantX20245 /\ invariantX309 /\ invariantX175 /\ invariantX149 /\ invariantX68 /\ invariantX62 /\ invariantX38 /\ invariantX10 /\ invariant1278 /\  tau)
    -> invariantX175'



end


theory Flash_abstr_hint_106

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_106:
    (invariantX30985 /\ invariantX20245 /\ invariantX369 /\ invariantX168 /\ invariantX149 /\ invariantX62 /\ invariantX38 /\ invariantX10 /\ invariant1239 /\  tau)
    -> invariantX168'



end


theory Flash_abstr_hint_107

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_107:
    (invariantX20245 /\ invariantX175 /\ invariantX168 /\ invariantX149 /\ invariantX62 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\ invariant1036 /\ invariant1062 /\  tau)
    -> invariantX149'



end


theory Flash_abstr_hint_108

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_108:
    (invariantX30985 /\ invariantX20245 /\ invariantX229 /\ invariantX92 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant1 /\  tau)
    -> invariantX92'



end


theory Flash_abstr_hint_109

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_109:
    (invariantX30985 /\ invariantX20245 /\ invariantX13854 /\ invariantX5953 /\ invariantX82 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\  tau)
    -> invariantX82'



end


theory Flash_abstr_hint_110

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_110:
    (invariantX30985 /\ invariantX20245 /\ invariantX309 /\ invariantX68 /\ invariantX21 /\ invariant1 /\ invariant861 /\  tau)
    -> invariantX68'



end


theory Flash_abstr_hint_111

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_111:
    (invariantX30985 /\ invariantX20245 /\ invariantX790 /\ invariantX229 /\ invariantX62 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\  tau)
    -> invariantX62'



end


theory Flash_abstr_hint_112

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_112:
    (invariantX30985 /\ invariantX20245 /\ invariantX48 /\ invariantX38 /\  tau)
    -> invariantX48'



end


theory Flash_abstr_hint_113

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_113:
    (invariantX1670 /\ invariantX38 /\  tau)
    -> invariantX38'



end


theory Flash_abstr_hint_114

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_114:
    (invariantX20245 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant352 /\ invariant360 /\  tau)
    -> invariantX21'



end


theory Flash_abstr_hint_115

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_115:
    (invariantX30985 /\ invariantX20245 /\ invariantX2026 /\ invariantX149 /\ invariantX62 /\ invariantX10 /\  tau)
    -> invariantX10'



end


theory Flash_abstr_hint_116

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_116:
    (invariantX30985 /\ invariantX20245 /\ invariantX6107 /\ invariantX5953 /\ invariantX5939 /\ invariantX5187 /\ invariantX4903 /\ invariantX639 /\ invariantX580 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant1 /\ invariant360 /\ invariant2149 /\  tau)
    -> invariant1'



end


theory Flash_abstr_hint_117

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_117:
    (invariantX30985 /\ invariantX20245 /\ invariantX4289 /\ invariantX4256 /\ invariantX3213 /\ invariantX2269 /\ invariantX1670 /\ invariantX625 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2 /\ invariant2149 /\ invariant2651 /\  tau)
    -> invariant2'



end


theory Flash_abstr_hint_118

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_118:
    (invariantX20245 /\ invariantX702 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariantX21 /\ invariant3 /\ invariant4 /\ invariant37 /\ invariant48 /\ invariant51 /\ invariant352 /\  tau)
    -> invariant3'



end


theory Flash_abstr_hint_119

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_119:
    (invariantX30985 /\ invariantX20245 /\ invariantX6107 /\ invariantX5953 /\ invariantX5939 /\ invariantX5187 /\ invariantX4903 /\ invariantX639 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant1 /\ invariant3 /\ invariant4 /\ invariant86 /\ invariant360 /\ invariant19187 /\ invariant19196 /\  tau)
    -> invariant4'



end


theory Flash_abstr_hint_120

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_120:
    (invariantX30985 /\ invariantX20245 /\ invariantX1670 /\ invariantX625 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2 /\ invariant5 /\ invariant2261 /\  tau)
    -> invariant5'



end


theory Flash_abstr_hint_121

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_121:
    (invariantX30985 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX1839 /\ invariantX1019 /\ invariantX790 /\ invariantX175 /\ invariantX168 /\ invariantX149 /\ invariantX62 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\ invariant7 /\ invariant9 /\ invariant1036 /\ invariant1062 /\ invariant1278 /\ invariant2473 /\  tau)
    -> invariant7'



end


theory Flash_abstr_hint_122

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_122:
    (invariantX20245 /\ invariantX2224 /\ invariantX2112 /\ invariantX2026 /\ invariantX918 /\ invariantX909 /\ invariantX747 /\ invariantX625 /\ invariantX507 /\ invariantX452 /\ invariantX369 /\ invariantX48 /\ invariant3 /\ invariant4 /\ invariant8 /\ invariant37 /\  tau)
    -> invariant8'



end


theory Flash_abstr_hint_123

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_123:
    (invariantX25798 /\ invariantX25766 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX11617 /\ invariantX2238 /\ invariantX1839 /\ invariantX1670 /\ invariantX1503 /\ invariantX685 /\ invariantX664 /\ invariantX48 /\ invariantX38 /\ invariant5 /\ invariant9 /\ invariant2568 /\ invariant2582 /\ invariant29356 /\  tau)
    -> invariant9'



end


theory Flash_abstr_hint_124

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_124:
    (invariantX30985 /\ invariantX20245 /\ invariantX13370 /\ invariantX5551 /\ invariantX599 /\ invariantX528 /\ invariantX395 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\ invariant5 /\ invariant37 /\ invariant1346 /\  tau)
    -> invariant37'



end


theory Flash_abstr_hint_125

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_125:
    (invariantX30985 /\ invariantX20245 /\ invariantX452 /\ invariantX48 /\ invariantX38 /\ invariant5 /\ invariant48 /\ invariant360 /\ invariant2651 /\  tau)
    -> invariant48'



end


theory Flash_abstr_hint_126

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_126:
    (invariantX30985 /\ invariantX20245 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX610 /\ invariantX535 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant5 /\ invariant51 /\ invariant861 /\ invariant1511 /\  tau)
    -> invariant51'



end


theory Flash_abstr_hint_127

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_127:
    (invariantX30985 /\ invariantX20245 /\ invariantX13854 /\ invariantX1670 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariant5 /\ invariant86 /\ invariant2149 /\  tau)
    -> invariant86'



end


theory Flash_abstr_hint_128

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_128:
    (invariantX20245 /\ invariantX13854 /\ invariantX580 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariantX21 /\ invariant352 /\ invariant400 /\ invariant861 /\  tau)
    -> invariant352'



end


theory Flash_abstr_hint_129

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_129:
    (invariantX30985 /\ invariantX20245 /\ invariantX6107 /\ invariantX5953 /\ invariantX5939 /\ invariantX5187 /\ invariantX4903 /\ invariantX452 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant1 /\ invariant360 /\ invariant400 /\  tau)
    -> invariant360'



end


theory Flash_abstr_hint_130

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_130:
    (invariantX30985 /\ invariantX20245 /\ invariantX13854 /\ invariantX452 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariant400 /\ invariant861 /\ invariant1619 /\ invariant1895 /\ invariant2149 /\ invariant2651 /\ invariant18325 /\  tau)
    -> invariant400'



end


theory Flash_abstr_hint_131

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_131:
    (invariantX30985 /\ invariantX20245 /\ invariantX941 /\ invariantX909 /\ invariantX535 /\ invariantX309 /\ invariantX68 /\ invariantX38 /\ invariant861 /\ invariant2149 /\  tau)
    -> invariant861'



end


theory Flash_abstr_hint_132

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_132:
    (invariantX30985 /\ invariantX20245 /\ invariantX5939 /\ invariantX1019 /\ invariantX790 /\ invariantX507 /\ invariantX175 /\ invariantX168 /\ invariantX149 /\ invariantX62 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\ invariant1036 /\ invariant1096 /\ invariant1115 /\  tau)
    -> invariant1036'



end


theory Flash_abstr_hint_133

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_133:
    (invariantX30985 /\ invariantX20245 /\ invariantX13854 /\ invariantX1019 /\ invariantX175 /\ invariantX168 /\ invariantX149 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\ invariant1036 /\ invariant1062 /\  tau)
    -> invariant1062'



end


theory Flash_abstr_hint_134

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_134:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX1981 /\ invariantX1039 /\ invariantX1019 /\ invariantX790 /\ invariantX175 /\ invariantX168 /\ invariantX149 /\ invariantX62 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\ invariant1036 /\ invariant1062 /\ invariant1096 /\ invariant1875 /\ invariant5440 /\ invariant8806 /\ invariant10023 /\ invariant10394 /\ invariant19187 /\  tau)
    -> invariant1096'



end


theory Flash_abstr_hint_135

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_135:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX4256 /\ invariantX1039 /\ invariantX1019 /\ invariantX790 /\ invariantX175 /\ invariantX168 /\ invariantX149 /\ invariantX62 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\ invariant1036 /\ invariant1062 /\ invariant1115 /\ invariant1887 /\ invariant5480 /\ invariant8952 /\ invariant10163 /\ invariant10541 /\ invariant19196 /\  tau)
    -> invariant1115'



end


theory Flash_abstr_hint_136

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_136:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX1019 /\ invariantX790 /\ invariantX778 /\ invariantX175 /\ invariantX168 /\ invariantX149 /\ invariantX62 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\ invariant1036 /\ invariant1062 /\ invariant1115 /\ invariant1239 /\ invariant1614 /\  tau)
    -> invariant1239'



end


theory Flash_abstr_hint_137

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_137:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX1981 /\ invariantX1019 /\ invariantX790 /\ invariantX778 /\ invariantX175 /\ invariantX168 /\ invariantX149 /\ invariantX62 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\ invariant1036 /\ invariant1062 /\ invariant1096 /\ invariant1278 /\ invariant4446 /\  tau)
    -> invariant1278'



end


theory Flash_abstr_hint_138

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_138:
    (invariantX30985 /\ invariantX20245 /\ invariantX13370 /\ invariantX5551 /\ invariantX599 /\ invariantX528 /\ invariantX395 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\ invariant1346 /\ invariant2651 /\  tau)
    -> invariant1346'



end


theory Flash_abstr_hint_139

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_139:
    (invariantX30985 /\ invariantX20245 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX610 /\ invariantX535 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant861 /\ invariant1511 /\ invariant2651 /\  tau)
    -> invariant1511'



end


theory Flash_abstr_hint_140

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_140:
    (invariantX30985 /\ invariantX20245 /\ invariantX5939 /\ invariantX933 /\ invariantX866 /\ invariantX395 /\ invariantX369 /\ invariantX38 /\ invariant1594 /\ invariant1655 /\ invariant1674 /\ invariant1677 /\  tau)
    -> invariant1594'



end


theory Flash_abstr_hint_141

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_141:
    (invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX3213 /\ invariantX1670 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX778 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1614 /\ invariant1677 /\ invariant1887 /\ invariant2149 /\ invariant5156 /\ invariant5158 /\ invariant12660 /\  tau)
    -> invariant1614'



end


theory Flash_abstr_hint_142

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_142:
    (invariantX30985 /\ invariantX20245 /\ invariantX933 /\ invariantX369 /\ invariantX82 /\ invariantX38 /\ invariant352 /\ invariant1594 /\ invariant1619 /\ invariant2149 /\  tau)
    -> invariant1619'



end


theory Flash_abstr_hint_143

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_143:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX6107 /\ invariantX4289 /\ invariantX1981 /\ invariantX1122 /\ invariantX1109 /\ invariantX1039 /\ invariantX933 /\ invariantX866 /\ invariantX395 /\ invariantX369 /\ invariantX38 /\ invariant1594 /\ invariant1619 /\ invariant1655 /\ invariant10305 /\ invariant10393 /\ invariant10394 /\ invariant10396 /\ invariant29449 /\  tau)
    -> invariant1655'



end


theory Flash_abstr_hint_144

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_144:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX6107 /\ invariantX4256 /\ invariantX1122 /\ invariantX1109 /\ invariantX1039 /\ invariantX933 /\ invariantX866 /\ invariantX395 /\ invariantX369 /\ invariantX38 /\ invariant1594 /\ invariant1619 /\ invariant1674 /\ invariant10452 /\ invariant10540 /\ invariant10541 /\ invariant10543 /\ invariant29449 /\  tau)
    -> invariant1674'



end


theory Flash_abstr_hint_145

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_145:
    (invariantX30985 /\ invariantX25478 /\ invariantX20245 /\ invariantX5939 /\ invariantX4289 /\ invariantX4256 /\ invariantX1201 /\ invariantX1188 /\ invariantX778 /\ invariantX535 /\ invariantX528 /\ invariantX507 /\ invariantX48 /\ invariantX38 /\ invariant1594 /\ invariant1677 /\ invariant1895 /\ invariant4212 /\ invariant4488 /\ invariant4628 /\ invariant8376 /\ invariant10393 /\ invariant10396 /\ invariant10540 /\ invariant10543 /\  tau)
    -> invariant1677'



end


theory Flash_abstr_hint_146

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_146:
    (invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX1313 /\ invariantX1039 /\ invariantX918 /\ invariantX841 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant1875 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant5331 /\ invariant5332 /\ invariant5333 /\ invariant8250 /\ invariant8261 /\ invariant8806 /\ invariant10394 /\  tau)
    -> invariant1875'



end


theory Flash_abstr_hint_147

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_147:
    (invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX1670 /\ invariantX1313 /\ invariantX1039 /\ invariantX918 /\ invariantX841 /\ invariantX48 /\ invariantX38 /\ invariant1674 /\ invariant1887 /\ invariant1951 /\ invariant2014 /\ invariant2079 /\ invariant5361 /\ invariant5362 /\ invariant5363 /\ invariant8365 /\ invariant8376 /\ invariant8952 /\ invariant10541 /\  tau)
    -> invariant1887'



end


theory Flash_abstr_hint_148

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_148:
    (invariantX30985 /\ invariantX20245 /\ invariantX535 /\ invariantX507 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariant352 /\ invariant1594 /\ invariant1895 /\ invariant1932 /\ invariant1951 /\ invariant4488 /\  tau)
    -> invariant1895'



end


theory Flash_abstr_hint_149

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_149:
    (invariantX30985 /\ invariantX20245 /\ invariantX13854 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX685 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariant352 /\ invariant400 /\ invariant861 /\ invariant1619 /\ invariant1895 /\ invariant1932 /\ invariant2149 /\ invariant3489 /\ invariant4546 /\ invariant5791 /\ invariant6078 /\ invariant8806 /\ invariant10394 /\ invariant10679 /\ invariant18325 /\  tau)
    -> invariant1932'



end


theory Flash_abstr_hint_150

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_150:
    (invariantX30985 /\ invariantX20245 /\ invariantX13854 /\ invariantX4256 /\ invariantX1670 /\ invariantX685 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariant352 /\ invariant400 /\ invariant861 /\ invariant1619 /\ invariant1895 /\ invariant1951 /\ invariant2149 /\ invariant3489 /\ invariant4565 /\ invariant5791 /\ invariant6078 /\ invariant8952 /\ invariant10541 /\ invariant10823 /\ invariant18325 /\  tau)
    -> invariant1951'



end


theory Flash_abstr_hint_151

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_151:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX13370 /\ invariantX6302 /\ invariantX5551 /\ invariantX4289 /\ invariantX1349 /\ invariantX1302 /\ invariantX599 /\ invariantX528 /\ invariantX395 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\ invariant1346 /\ invariant1994 /\ invariant4270 /\ invariant8518 /\ invariant8806 /\ invariant10394 /\  tau)
    -> invariant1994'



end


theory Flash_abstr_hint_152

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_152:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX13370 /\ invariantX6302 /\ invariantX5551 /\ invariantX4256 /\ invariantX1349 /\ invariantX1302 /\ invariantX599 /\ invariantX528 /\ invariantX395 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\ invariant1346 /\ invariant2014 /\ invariant4289 /\ invariant8661 /\ invariant8952 /\ invariant10541 /\  tau)
    -> invariant2014'



end


theory Flash_abstr_hint_153

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_153:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX1365 /\ invariantX1335 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX610 /\ invariantX535 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant861 /\ invariant1511 /\ invariant2059 /\ invariant8805 /\ invariant8806 /\ invariant8808 /\  tau)
    -> invariant2059'



end


theory Flash_abstr_hint_154

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_154:
    (invariantX30985 /\ invariantX25478 /\ invariantX20245 /\ invariantX5939 /\ invariantX4289 /\ invariantX4256 /\ invariantX1981 /\ invariantX1201 /\ invariantX1188 /\ invariantX778 /\ invariantX535 /\ invariantX528 /\ invariantX507 /\ invariantX48 /\ invariantX38 /\ invariant1594 /\ invariant1895 /\ invariant2060 /\ invariant4212 /\ invariant4488 /\ invariant4668 /\ invariant8261 /\ invariant8805 /\ invariant8808 /\ invariant8951 /\ invariant8954 /\  tau)
    -> invariant2060'



end


theory Flash_abstr_hint_155

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_155:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX1365 /\ invariantX1335 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX610 /\ invariantX535 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant861 /\ invariant1511 /\ invariant2079 /\ invariant8951 /\ invariant8952 /\ invariant8954 /\  tau)
    -> invariant2079'



end


theory Flash_abstr_hint_156

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_156:
    (invariantX30985 /\ invariantX20245 /\ invariantX13854 /\ invariantX1670 /\ invariantX625 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant352 /\ invariant400 /\ invariant861 /\ invariant1619 /\ invariant1895 /\ invariant2149 /\ invariant3109 /\ invariant18325 /\  tau)
    -> invariant2149'



end


theory Flash_abstr_hint_157

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_157:
    (invariantX30985 /\ invariantX20245 /\ invariantX5294 /\ invariantX3248 /\ invariantX3233 /\ invariantX2269 /\ invariantX1670 /\ invariantX778 /\ invariantX747 /\ invariantX734 /\ invariantX721 /\ invariantX702 /\ invariantX639 /\ invariantX48 /\ invariantX38 /\ invariant3 /\ invariant4 /\ invariant5 /\ invariant2261 /\ invariant3109 /\ invariant3572 /\  tau)
    -> invariant2261'



end


theory Flash_abstr_hint_158

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_158:
    (invariantX30985 /\ invariantX20245 /\ invariantX8564 /\ invariantX1889 /\ invariantX1039 /\ invariantX1019 /\ invariantX790 /\ invariantX175 /\ invariantX168 /\ invariantX149 /\ invariantX62 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\ invariant1036 /\ invariant1062 /\ invariant1278 /\ invariant2473 /\ invariant2568 /\ invariant7365 /\  tau)
    -> invariant2473'



end


theory Flash_abstr_hint_159

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_159:
    (invariantX20245 /\ invariantX8564 /\ invariantX6302 /\ invariantX1889 /\ invariantX1670 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant3 /\ invariant4 /\ invariant5 /\ invariant2568 /\ invariant3382 /\ invariant3489 /\ invariant4861 /\ invariant7365 /\ invariant8043 /\ invariant23869 /\ invariant27999 /\ invariant29184 /\ invariant29347 /\ invariant29449 /\ invariant29612 /\  tau)
    -> invariant2568'



end


theory Flash_abstr_hint_160

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_160:
    (invariantX25766 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX11770 /\ invariantX4903 /\ invariantX3213 /\ invariantX2112 /\ invariantX1839 /\ invariantX580 /\ invariant5 /\ invariant2582 /\ invariant4861 /\ invariant18056 /\ invariant18058 /\ invariant21808 /\ invariant21830 /\ invariant22258 /\ invariant27945 /\ invariant27989 /\ invariant29356 /\  tau)
    -> invariant2582'



end


theory Flash_abstr_hint_161

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_161:
    (invariantX30985 /\ invariantX20245 /\ invariantX625 /\ invariantX452 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant360 /\ invariant400 /\ invariant1346 /\ invariant1511 /\ invariant2651 /\ invariant3572 /\ invariant18433 /\  tau)
    -> invariant2651'



end


theory Flash_abstr_hint_162

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_162:
    (invariantX30985 /\ invariantX20245 /\ invariantX13854 /\ invariantX3248 /\ invariantX3233 /\ invariantX2269 /\ invariantX1670 /\ invariantX778 /\ invariantX747 /\ invariantX685 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariant352 /\ invariant400 /\ invariant861 /\ invariant1619 /\ invariant1895 /\ invariant2149 /\ invariant3109 /\ invariant18325 /\  tau)
    -> invariant3109'



end


theory Flash_abstr_hint_163

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_163:
    (invariantX20245 /\ invariantX8564 /\ invariantX6107 /\ invariantX5953 /\ invariantX5939 /\ invariantX5187 /\ invariantX4903 /\ invariantX1889 /\ invariantX664 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant1 /\ invariant360 /\ invariant3382 /\ invariant3489 /\ invariant6776 /\ invariant7365 /\ invariant18271 /\  tau)
    -> invariant3382'



end


theory Flash_abstr_hint_164

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_164:
    (invariantX30985 /\ invariantX20245 /\ invariantX13854 /\ invariantX8564 /\ invariantX1889 /\ invariantX1670 /\ invariantX1039 /\ invariantX685 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariant352 /\ invariant400 /\ invariant861 /\ invariant1619 /\ invariant1895 /\ invariant2149 /\ invariant3489 /\ invariant5791 /\ invariant18325 /\ invariant29184 /\  tau)
    -> invariant3489'



end


theory Flash_abstr_hint_165

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_165:
    (invariantX30985 /\ invariantX20245 /\ invariantX3248 /\ invariantX3233 /\ invariantX2269 /\ invariantX778 /\ invariantX747 /\ invariantX452 /\ invariantX48 /\ invariantX38 /\ invariant360 /\ invariant400 /\ invariant1346 /\ invariant1511 /\ invariant2651 /\ invariant3572 /\ invariant18433 /\  tau)
    -> invariant3572'



end


theory Flash_abstr_hint_166

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_166:
    (invariantX30985 /\ invariantX20245 /\ invariantX5939 /\ invariantX866 /\ invariantX535 /\ invariantX507 /\ invariantX48 /\ invariantX38 /\ invariant4212 /\ invariant4270 /\ invariant4289 /\  tau)
    -> invariant4212'



end


theory Flash_abstr_hint_167

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_167:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX1981 /\ invariantX1396 /\ invariantX1380 /\ invariantX1039 /\ invariantX874 /\ invariantX866 /\ invariantX841 /\ invariantX48 /\ invariantX38 /\ invariant1875 /\ invariant4212 /\ invariant4270 /\ invariant8806 /\ invariant10394 /\ invariant10886 /\ invariant19187 /\  tau)
    -> invariant4270'



end


theory Flash_abstr_hint_168

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_168:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX1396 /\ invariantX1380 /\ invariantX1039 /\ invariantX874 /\ invariantX866 /\ invariantX841 /\ invariantX48 /\ invariantX38 /\ invariant1887 /\ invariant4212 /\ invariant4289 /\ invariant8952 /\ invariant10541 /\ invariant11028 /\ invariant19196 /\  tau)
    -> invariant4289'



end


theory Flash_abstr_hint_169

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_169:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX1396 /\ invariantX1380 /\ invariantX874 /\ invariantX866 /\ invariantX841 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant1614 /\ invariant4212 /\ invariant4289 /\ invariant4352 /\  tau)
    -> invariant4352'



end


theory Flash_abstr_hint_170

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_170:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX1981 /\ invariantX1396 /\ invariantX1380 /\ invariantX874 /\ invariantX866 /\ invariantX841 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant4212 /\ invariant4270 /\ invariant4392 /\ invariant4446 /\  tau)
    -> invariant4392'



end


theory Flash_abstr_hint_171

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_171:
    (invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX3213 /\ invariantX1981 /\ invariantX1670 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX778 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1875 /\ invariant2060 /\ invariant2149 /\ invariant4446 /\ invariant6244 /\ invariant6246 /\ invariant13168 /\  tau)
    -> invariant4446'



end


theory Flash_abstr_hint_172

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_172:
    (invariantX30985 /\ invariantX20245 /\ invariantX5939 /\ invariantX933 /\ invariantX535 /\ invariantX507 /\ invariantX48 /\ invariantX38 /\ invariant4488 /\ invariant4546 /\ invariant4565 /\  tau)
    -> invariant4488'



end


theory Flash_abstr_hint_173

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_173:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX5953 /\ invariantX4289 /\ invariantX1981 /\ invariantX1231 /\ invariantX1218 /\ invariantX1039 /\ invariantX941 /\ invariantX933 /\ invariantX918 /\ invariantX48 /\ invariantX38 /\ invariant1875 /\ invariant4488 /\ invariant4546 /\ invariant8806 /\ invariant10394 /\ invariant11170 /\ invariant29184 /\  tau)
    -> invariant4546'



end


theory Flash_abstr_hint_174

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_174:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX5953 /\ invariantX4256 /\ invariantX1231 /\ invariantX1218 /\ invariantX1039 /\ invariantX941 /\ invariantX933 /\ invariantX918 /\ invariantX48 /\ invariantX38 /\ invariant1887 /\ invariant4488 /\ invariant4565 /\ invariant8952 /\ invariant10541 /\ invariant11312 /\ invariant29184 /\  tau)
    -> invariant4565'



end


theory Flash_abstr_hint_175

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_175:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX5953 /\ invariantX4256 /\ invariantX1231 /\ invariantX1218 /\ invariantX941 /\ invariantX933 /\ invariantX918 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant1614 /\ invariant4488 /\ invariant4565 /\ invariant4628 /\  tau)
    -> invariant4628'



end


theory Flash_abstr_hint_176

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_176:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX5953 /\ invariantX4289 /\ invariantX1981 /\ invariantX1231 /\ invariantX1218 /\ invariantX941 /\ invariantX933 /\ invariantX918 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant4446 /\ invariant4488 /\ invariant4546 /\ invariant4668 /\  tau)
    -> invariant4668'



end


theory Flash_abstr_hint_177

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_177:
    (invariantX20245 /\ invariantX11770 /\ invariantX8564 /\ invariantX4903 /\ invariantX3213 /\ invariantX2112 /\ invariantX1889 /\ invariantX1039 /\ invariantX580 /\ invariant5 /\ invariant4861 /\ invariant7365 /\ invariant21913 /\ invariant22027 /\ invariant22426 /\ invariant24100 /\ invariant24212 /\ invariant28744 /\ invariant28891 /\ invariant29184 /\ invariant29347 /\ invariant29612 /\  tau)
    -> invariant4861'



end


theory Flash_abstr_hint_178

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_178:
    (invariantX25698 /\ invariantX20245 /\ invariantX9405 /\ invariantX9361 /\ invariantX3213 /\ invariantX1670 /\ invariantX1380 /\ invariantX1335 /\ invariantX1302 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant5156 /\ invariant5268 /\ invariant5332 /\ invariant5361 /\ invariant5362 /\ invariant5791 /\  tau)
    -> invariant5156'



end


theory Flash_abstr_hint_179

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_179:
    (invariantX20245 /\ invariantX9405 /\ invariantX9361 /\ invariantX3233 /\ invariantX3213 /\ invariantX1839 /\ invariantX1670 /\ invariantX1380 /\ invariantX1335 /\ invariantX1302 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant5156 /\ invariant5158 /\ invariant5270 /\ invariant5331 /\ invariant5361 /\ invariant5363 /\ invariant5791 /\ invariant6244 /\ invariant7365 /\  tau)
    -> invariant5158'



end


theory Flash_abstr_hint_180

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_180:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX9424 /\ invariantX9390 /\ invariantX4256 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant1614 /\ invariant5268 /\ invariant5440 /\ invariant5479 /\ invariant5480 /\ invariant6078 /\  tau)
    -> invariant5268'



end


theory Flash_abstr_hint_181

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_181:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX9424 /\ invariantX9390 /\ invariantX3248 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX778 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant5268 /\ invariant5270 /\ invariant5439 /\ invariant5479 /\ invariant5481 /\ invariant6078 /\ invariant6453 /\  tau)
    -> invariant5270'



end


theory Flash_abstr_hint_182

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_182:
    (invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX9405 /\ invariantX9361 /\ invariantX3213 /\ invariantX1981 /\ invariantX1670 /\ invariantX1380 /\ invariantX1335 /\ invariantX1302 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant5331 /\ invariant5332 /\ invariant5362 /\ invariant5439 /\ invariant5440 /\ invariant5791 /\ invariant6244 /\ invariant19187 /\ invariant28744 /\  tau)
    -> invariant5331'



end


theory Flash_abstr_hint_183

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_183:
    (invariantX20245 /\ invariantX9405 /\ invariantX9361 /\ invariantX3213 /\ invariantX1839 /\ invariantX1670 /\ invariantX1380 /\ invariantX1335 /\ invariantX1302 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant5332 /\ invariant5791 /\ invariant7365 /\ invariant9152 /\ invariant9155 /\  tau)
    -> invariant5332'



end


theory Flash_abstr_hint_184

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_184:
    (invariantX20245 /\ invariantX14103 /\ invariantX9405 /\ invariantX9361 /\ invariantX3233 /\ invariantX3213 /\ invariantX1839 /\ invariantX1670 /\ invariantX1380 /\ invariantX1335 /\ invariantX1302 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant5156 /\ invariant5158 /\ invariant5331 /\ invariant5333 /\ invariant5361 /\ invariant5440 /\ invariant5441 /\ invariant5791 /\ invariant6244 /\ invariant6246 /\ invariant7365 /\ invariant28744 /\ invariant45854 /\  tau)
    -> invariant5333'



end


theory Flash_abstr_hint_185

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_185:
    (invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX9405 /\ invariantX9361 /\ invariantX3213 /\ invariantX1670 /\ invariantX1380 /\ invariantX1335 /\ invariantX1302 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant5156 /\ invariant5332 /\ invariant5361 /\ invariant5362 /\ invariant5479 /\ invariant5480 /\ invariant5791 /\ invariant19196 /\ invariant28891 /\  tau)
    -> invariant5361'



end


theory Flash_abstr_hint_186

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_186:
    (invariantX20245 /\ invariantX9405 /\ invariantX9361 /\ invariantX3213 /\ invariantX1839 /\ invariantX1670 /\ invariantX1380 /\ invariantX1335 /\ invariantX1302 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant5362 /\ invariant5791 /\ invariant7365 /\ invariant9283 /\ invariant9286 /\  tau)
    -> invariant5362'



end


theory Flash_abstr_hint_187

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_187:
    (invariantX20245 /\ invariantX14103 /\ invariantX9405 /\ invariantX9361 /\ invariantX3233 /\ invariantX3213 /\ invariantX1839 /\ invariantX1670 /\ invariantX1380 /\ invariantX1335 /\ invariantX1302 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant5156 /\ invariant5158 /\ invariant5331 /\ invariant5361 /\ invariant5363 /\ invariant5480 /\ invariant5481 /\ invariant5791 /\ invariant6244 /\ invariant6246 /\ invariant7365 /\ invariant28891 /\ invariant46048 /\  tau)
    -> invariant5363'



end


theory Flash_abstr_hint_188

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_188:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX9424 /\ invariantX9390 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1875 /\ invariant5439 /\ invariant5440 /\ invariant5480 /\ invariant6078 /\ invariant6453 /\ invariant19187 /\ invariant28744 /\  tau)
    -> invariant5439'



end


theory Flash_abstr_hint_189

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_189:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX9424 /\ invariantX9390 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1875 /\ invariant5440 /\ invariant6078 /\ invariant27945 /\ invariant28744 /\  tau)
    -> invariant5440'



end


theory Flash_abstr_hint_190

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_190:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX9424 /\ invariantX9390 /\ invariantX3248 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1875 /\ invariant5268 /\ invariant5270 /\ invariant5439 /\ invariant5440 /\ invariant5441 /\ invariant5479 /\ invariant6078 /\ invariant6453 /\ invariant6455 /\ invariant27946 /\ invariant28744 /\ invariant46244 /\  tau)
    -> invariant5441'



end


theory Flash_abstr_hint_191

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_191:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX9424 /\ invariantX9390 /\ invariantX4256 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1887 /\ invariant5268 /\ invariant5440 /\ invariant5479 /\ invariant5480 /\ invariant6078 /\ invariant19196 /\ invariant28891 /\  tau)
    -> invariant5479'



end


theory Flash_abstr_hint_192

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_192:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX9424 /\ invariantX9390 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1887 /\ invariant5480 /\ invariant6078 /\ invariant27989 /\ invariant28891 /\  tau)
    -> invariant5480'



end


theory Flash_abstr_hint_193

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_193:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX9424 /\ invariantX9390 /\ invariantX3248 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1887 /\ invariant5268 /\ invariant5270 /\ invariant5439 /\ invariant5479 /\ invariant5480 /\ invariant5481 /\ invariant6078 /\ invariant6453 /\ invariant6455 /\ invariant27990 /\ invariant28891 /\ invariant46464 /\  tau)
    -> invariant5481'



end


theory Flash_abstr_hint_194

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_194:
    (invariantX20245 /\ invariantX13854 /\ invariantX9361 /\ invariantX3233 /\ invariantX1670 /\ invariantX1218 /\ invariantX685 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariant352 /\ invariant400 /\ invariant861 /\ invariant1619 /\ invariant1895 /\ invariant2149 /\ invariant5791 /\ invariant6078 /\ invariant18325 /\  tau)
    -> invariant5791'



end


theory Flash_abstr_hint_195

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_195:
    (invariantX30985 /\ invariantX20245 /\ invariantX13854 /\ invariantX9390 /\ invariantX3248 /\ invariantX1670 /\ invariantX1231 /\ invariantX685 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariant352 /\ invariant400 /\ invariant861 /\ invariant1619 /\ invariant1895 /\ invariant2149 /\ invariant6078 /\ invariant18325 /\  tau)
    -> invariant6078'



end


theory Flash_abstr_hint_196

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_196:
    (invariantX25683 /\ invariantX20245 /\ invariantX9405 /\ invariantX9361 /\ invariantX3213 /\ invariantX1981 /\ invariantX1670 /\ invariantX1380 /\ invariantX1335 /\ invariantX1302 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant5331 /\ invariant5332 /\ invariant5362 /\ invariant5791 /\ invariant6244 /\ invariant6453 /\  tau)
    -> invariant6244'



end


theory Flash_abstr_hint_197

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_197:
    (invariantX20245 /\ invariantX9405 /\ invariantX9361 /\ invariantX3233 /\ invariantX3213 /\ invariantX1839 /\ invariantX1670 /\ invariantX1380 /\ invariantX1335 /\ invariantX1302 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant5156 /\ invariant5331 /\ invariant5333 /\ invariant5361 /\ invariant5791 /\ invariant6244 /\ invariant6246 /\ invariant6455 /\ invariant7365 /\  tau)
    -> invariant6246'



end


theory Flash_abstr_hint_198

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_198:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX9424 /\ invariantX9390 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant4446 /\ invariant5439 /\ invariant5440 /\ invariant5480 /\ invariant6078 /\ invariant6453 /\  tau)
    -> invariant6453'



end


theory Flash_abstr_hint_199

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_199:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX9424 /\ invariantX9390 /\ invariantX3248 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX778 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant5268 /\ invariant5439 /\ invariant5441 /\ invariant5479 /\ invariant6078 /\ invariant6453 /\ invariant6455 /\  tau)
    -> invariant6455'



end


theory Flash_abstr_hint_200

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_200:
    (invariantX20245 /\ invariantX8564 /\ invariantX6302 /\ invariantX5271 /\ invariantX5261 /\ invariantX1889 /\ invariantX1628 /\ invariantX1503 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant3382 /\ invariant3489 /\ invariant6776 /\ invariant6877 /\ invariant7365 /\ invariant21792 /\ invariant27999 /\ invariant29184 /\ invariant29347 /\ invariant29449 /\  tau)
    -> invariant6776'



end


theory Flash_abstr_hint_201

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_201:
    (invariantX25798 /\ invariantX25766 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX2238 /\ invariantX1839 /\ invariantX452 /\ invariantX48 /\ invariantX38 /\ invariant360 /\ invariant400 /\ invariant1346 /\ invariant1511 /\ invariant2651 /\ invariant6793 /\ invariant6877 /\ invariant18433 /\ invariant21808 /\  tau)
    -> invariant6793'



end


theory Flash_abstr_hint_202

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_202:
    (invariantX20245 /\ invariantX8564 /\ invariantX1889 /\ invariantX1039 /\ invariantX452 /\ invariantX48 /\ invariantX38 /\ invariant360 /\ invariant400 /\ invariant1346 /\ invariant1511 /\ invariant2651 /\ invariant6877 /\ invariant7365 /\ invariant8043 /\ invariant18433 /\ invariant21913 /\ invariant27999 /\ invariant29184 /\ invariant29347 /\ invariant29449 /\  tau)
    -> invariant6877'



end


theory Flash_abstr_hint_203

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_203:
    (invariantX20245 /\ invariantX9405 /\ invariantX9361 /\ invariantX8564 /\ invariantX1889 /\ invariantX1839 /\ invariantX1670 /\ invariantX1380 /\ invariantX1335 /\ invariantX1302 /\ invariantX1271 /\ invariantX1218 /\ invariantX1188 /\ invariantX1109 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant5791 /\ invariant6244 /\ invariant7365 /\  tau)
    -> invariant7365'



end


theory Flash_abstr_hint_204

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_204:
    (invariantX20245 /\ invariantX8564 /\ invariantX6302 /\ invariantX3213 /\ invariantX1889 /\ invariantX1670 /\ invariantX1039 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2 /\ invariant3382 /\ invariant3489 /\ invariant6776 /\ invariant6877 /\ invariant7365 /\ invariant8043 /\ invariant9821 /\ invariant23869 /\ invariant27999 /\ invariant29184 /\ invariant29347 /\ invariant29449 /\ invariant29612 /\  tau)
    -> invariant8043'



end


theory Flash_abstr_hint_205

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_205:
    (invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX4231 /\ invariantX3213 /\ invariantX1981 /\ invariantX1670 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX778 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1875 /\ invariant2149 /\ invariant4446 /\ invariant6244 /\ invariant8250 /\ invariant10305 /\ invariant11455 /\ invariant45854 /\  tau)
    -> invariant8250'



end


theory Flash_abstr_hint_206

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_206:
    (invariantX30985 /\ invariantX25478 /\ invariantX20245 /\ invariantX5939 /\ invariantX4289 /\ invariantX1981 /\ invariantX1201 /\ invariantX1188 /\ invariantX1039 /\ invariantX535 /\ invariantX528 /\ invariantX507 /\ invariantX48 /\ invariantX38 /\ invariant1594 /\ invariant1895 /\ invariant4212 /\ invariant4488 /\ invariant4546 /\ invariant8261 /\ invariant8806 /\ invariant10394 /\ invariant11455 /\ invariant11482 /\ invariant11483 /\ invariant11484 /\ invariant11486 /\ invariant11535 /\ invariant11536 /\ invariant11537 /\ invariant11538 /\ invariant11539 /\ invariant27999 /\  tau)
    -> invariant8261'



end


theory Flash_abstr_hint_207

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_207:
    (invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX4231 /\ invariantX3213 /\ invariantX1670 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX778 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1614 /\ invariant1887 /\ invariant2149 /\ invariant5156 /\ invariant8365 /\ invariant10452 /\ invariant11610 /\ invariant46048 /\  tau)
    -> invariant8365'



end


theory Flash_abstr_hint_208

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_208:
    (invariantX30985 /\ invariantX25478 /\ invariantX20245 /\ invariantX5939 /\ invariantX4256 /\ invariantX1201 /\ invariantX1188 /\ invariantX1039 /\ invariantX535 /\ invariantX528 /\ invariantX507 /\ invariantX48 /\ invariantX38 /\ invariant1594 /\ invariant1895 /\ invariant4212 /\ invariant4488 /\ invariant4565 /\ invariant8376 /\ invariant8952 /\ invariant10541 /\ invariant11535 /\ invariant11536 /\ invariant11537 /\ invariant11538 /\ invariant11539 /\ invariant11610 /\ invariant11690 /\ invariant11691 /\ invariant11692 /\ invariant11694 /\ invariant27999 /\  tau)
    -> invariant8376'



end


theory Flash_abstr_hint_209

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_209:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX1981 /\ invariantX1396 /\ invariantX1380 /\ invariantX874 /\ invariantX866 /\ invariantX841 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant4212 /\ invariant4270 /\ invariant4392 /\ invariant8518 /\ invariant15274 /\  tau)
    -> invariant8518'



end


theory Flash_abstr_hint_210

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_210:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX1396 /\ invariantX1380 /\ invariantX874 /\ invariantX866 /\ invariantX841 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant4212 /\ invariant4289 /\ invariant4352 /\ invariant8661 /\ invariant15406 /\  tau)
    -> invariant8661'



end


theory Flash_abstr_hint_211

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_211:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant1875 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant4446 /\ invariant4546 /\ invariant5331 /\ invariant5439 /\ invariant5440 /\ invariant8261 /\ invariant8518 /\ invariant8805 /\ invariant8806 /\ invariant10394 /\ invariant10679 /\ invariant11483 /\ invariant11484 /\ invariant11537 /\ invariant19187 /\  tau)
    -> invariant8805'



end


theory Flash_abstr_hint_212

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_212:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant4446 /\ invariant4668 /\ invariant6244 /\ invariant6453 /\ invariant8806 /\ invariant11484 /\ invariant48026 /\  tau)
    -> invariant8806'



end


theory Flash_abstr_hint_213

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_213:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX4256 /\ invariantX1981 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1655 /\ invariant1875 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant4446 /\ invariant4546 /\ invariant5331 /\ invariant5439 /\ invariant5440 /\ invariant8261 /\ invariant8518 /\ invariant8805 /\ invariant8808 /\ invariant10393 /\ invariant10679 /\ invariant11482 /\ invariant11483 /\ invariant11486 /\ invariant11535 /\ invariant11536 /\ invariant19187 /\ invariant28744 /\  tau)
    -> invariant8808'



end


theory Flash_abstr_hint_214

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_214:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX4289 /\ invariantX4256 /\ invariantX1981 /\ invariantX1670 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant1674 /\ invariant1887 /\ invariant1951 /\ invariant2014 /\ invariant2079 /\ invariant4289 /\ invariant4446 /\ invariant4565 /\ invariant5361 /\ invariant5479 /\ invariant5480 /\ invariant8376 /\ invariant8661 /\ invariant8951 /\ invariant8952 /\ invariant10541 /\ invariant10823 /\ invariant11538 /\ invariant11692 /\ invariant19196 /\  tau)
    -> invariant8951'



end


theory Flash_abstr_hint_215

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_215:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX1670 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant4446 /\ invariant4628 /\ invariant5156 /\ invariant5268 /\ invariant8952 /\ invariant11537 /\ invariant48202 /\  tau)
    -> invariant8952'



end


theory Flash_abstr_hint_216

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_216:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX4256 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1674 /\ invariant1887 /\ invariant1951 /\ invariant2014 /\ invariant2079 /\ invariant4289 /\ invariant4446 /\ invariant4565 /\ invariant5361 /\ invariant5479 /\ invariant5480 /\ invariant8376 /\ invariant8661 /\ invariant8951 /\ invariant8954 /\ invariant10540 /\ invariant10823 /\ invariant11539 /\ invariant11690 /\ invariant11691 /\ invariant19196 /\ invariant28891 /\  tau)
    -> invariant8954'



end


theory Flash_abstr_hint_217

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_217:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX9424 /\ invariantX9390 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1875 /\ invariant5440 /\ invariant6078 /\ invariant9152 /\  tau)
    -> invariant9152'



end


theory Flash_abstr_hint_218

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_218:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX9424 /\ invariantX9390 /\ invariantX4231 /\ invariantX3248 /\ invariantX1981 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX1039 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1875 /\ invariant5440 /\ invariant6078 /\ invariant9155 /\ invariant27945 /\ invariant28744 /\  tau)
    -> invariant9155'



end


theory Flash_abstr_hint_219

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_219:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX9424 /\ invariantX9390 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1887 /\ invariant5480 /\ invariant6078 /\ invariant9283 /\  tau)
    -> invariant9283'



end


theory Flash_abstr_hint_220

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_220:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX9424 /\ invariantX9390 /\ invariantX4231 /\ invariantX3248 /\ invariantX1981 /\ invariantX1670 /\ invariantX1396 /\ invariantX1365 /\ invariantX1349 /\ invariantX1313 /\ invariantX1231 /\ invariantX1201 /\ invariantX1122 /\ invariantX1039 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1887 /\ invariant5480 /\ invariant6078 /\ invariant9286 /\ invariant27989 /\ invariant28891 /\  tau)
    -> invariant9286'



end


theory Flash_abstr_hint_221

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_221:
    (invariantX25798 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX2238 /\ invariantX2224 /\ invariantX1777 /\ invariantX1670 /\ invariantX1503 /\ invariantX918 /\ invariantX841 /\ invariantX580 /\ invariantX309 /\ invariantX68 /\ invariantX38 /\ invariantX21 /\ invariant352 /\ invariant6793 /\ invariant9794 /\ invariant9797 /\ invariant18806 /\ invariant26060 /\ invariant26113 /\ invariant29591 /\  tau)
    -> invariant9794'



end


theory Flash_abstr_hint_222

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_222:
    (invariantX25798 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX11617 /\ invariantX2238 /\ invariantX2026 /\ invariantX1839 /\ invariantX918 /\ invariantX841 /\ invariantX664 /\ invariantX580 /\ invariantX21 /\ invariant6793 /\ invariant9794 /\ invariant9797 /\ invariant24666 /\ invariant24722 /\ invariant24724 /\ invariant29592 /\  tau)
    -> invariant9797'



end


theory Flash_abstr_hint_223

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_223:
    (invariantX20245 /\ invariantX8564 /\ invariantX6302 /\ invariantX3233 /\ invariantX2269 /\ invariantX1889 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX702 /\ invariantX639 /\ invariantX48 /\ invariantX38 /\ invariant3382 /\ invariant3489 /\ invariant6776 /\ invariant6877 /\ invariant7365 /\ invariant8043 /\ invariant9821 /\ invariant23869 /\ invariant27999 /\ invariant29184 /\ invariant29347 /\ invariant29449 /\ invariant29591 /\ invariant29592 /\ invariant29612 /\  tau)
    -> invariant9821'



end


theory Flash_abstr_hint_224

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_224:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX4231 /\ invariantX1981 /\ invariantX1019 /\ invariantX790 /\ invariantX778 /\ invariantX175 /\ invariantX168 /\ invariantX149 /\ invariantX62 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\ invariant2 /\ invariant1036 /\ invariant1062 /\ invariant1096 /\ invariant1278 /\ invariant8250 /\ invariant10023 /\  tau)
    -> invariant10023'



end


theory Flash_abstr_hint_225

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_225:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX4231 /\ invariantX1019 /\ invariantX790 /\ invariantX778 /\ invariantX175 /\ invariantX168 /\ invariantX149 /\ invariantX62 /\ invariantX48 /\ invariantX38 /\ invariantX10 /\ invariant2 /\ invariant1036 /\ invariant1062 /\ invariant1115 /\ invariant1239 /\ invariant8365 /\ invariant10163 /\  tau)
    -> invariant10163'



end


theory Flash_abstr_hint_226

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_226:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX6107 /\ invariantX4289 /\ invariantX4256 /\ invariantX4231 /\ invariantX1981 /\ invariantX1122 /\ invariantX1109 /\ invariantX933 /\ invariantX866 /\ invariantX778 /\ invariantX395 /\ invariantX369 /\ invariantX38 /\ invariant2 /\ invariant1594 /\ invariant1619 /\ invariant1655 /\ invariant10305 /\  tau)
    -> invariant10305'



end


theory Flash_abstr_hint_227

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_227:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX4256 /\ invariantX1981 /\ invariantX1670 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant1614 /\ invariant1655 /\ invariant1875 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant4546 /\ invariant5331 /\ invariant5439 /\ invariant5440 /\ invariant8261 /\ invariant8518 /\ invariant8806 /\ invariant10393 /\ invariant10394 /\ invariant10679 /\ invariant11484 /\ invariant11536 /\ invariant11537 /\ invariant19187 /\  tau)
    -> invariant10393'



end


theory Flash_abstr_hint_228

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_228:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1614 /\ invariant4668 /\ invariant6244 /\ invariant6453 /\ invariant10394 /\ invariant11537 /\ invariant49554 /\  tau)
    -> invariant10394'



end


theory Flash_abstr_hint_229

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_229:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX4256 /\ invariantX1981 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1614 /\ invariant1655 /\ invariant1875 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant4546 /\ invariant5331 /\ invariant5439 /\ invariant5440 /\ invariant8261 /\ invariant8518 /\ invariant8805 /\ invariant10393 /\ invariant10396 /\ invariant10679 /\ invariant11482 /\ invariant11483 /\ invariant11535 /\ invariant11536 /\ invariant11539 /\ invariant19187 /\ invariant28744 /\  tau)
    -> invariant10396'



end


theory Flash_abstr_hint_230

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_230:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX6107 /\ invariantX4256 /\ invariantX4231 /\ invariantX1122 /\ invariantX1109 /\ invariantX933 /\ invariantX866 /\ invariantX778 /\ invariantX395 /\ invariantX369 /\ invariantX38 /\ invariant2 /\ invariant1594 /\ invariant1619 /\ invariant1674 /\ invariant10452 /\  tau)
    -> invariant10452'



end


theory Flash_abstr_hint_231

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_231:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX1670 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant1614 /\ invariant1674 /\ invariant1887 /\ invariant1951 /\ invariant2014 /\ invariant2079 /\ invariant4289 /\ invariant4565 /\ invariant5361 /\ invariant5479 /\ invariant5480 /\ invariant8376 /\ invariant8661 /\ invariant8952 /\ invariant10540 /\ invariant10541 /\ invariant10823 /\ invariant11691 /\ invariant11692 /\ invariant19196 /\  tau)
    -> invariant10540'



end


theory Flash_abstr_hint_232

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_232:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX1670 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1614 /\ invariant4628 /\ invariant5156 /\ invariant5268 /\ invariant10541 /\ invariant11692 /\ invariant49729 /\  tau)
    -> invariant10541'



end


theory Flash_abstr_hint_233

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_233:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX4256 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1614 /\ invariant1674 /\ invariant1887 /\ invariant1951 /\ invariant2014 /\ invariant2079 /\ invariant4289 /\ invariant4565 /\ invariant5361 /\ invariant5479 /\ invariant5480 /\ invariant8376 /\ invariant8661 /\ invariant8951 /\ invariant10540 /\ invariant10543 /\ invariant10823 /\ invariant11690 /\ invariant11691 /\ invariant11694 /\ invariant19196 /\ invariant28891 /\  tau)
    -> invariant10543'



end


theory Flash_abstr_hint_234

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_234:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX5953 /\ invariantX4289 /\ invariantX2224 /\ invariantX1981 /\ invariantX1231 /\ invariantX1218 /\ invariantX941 /\ invariantX933 /\ invariantX918 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant4488 /\ invariant4546 /\ invariant4668 /\ invariant10679 /\ invariant15274 /\  tau)
    -> invariant10679'



end


theory Flash_abstr_hint_235

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_235:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX5953 /\ invariantX4256 /\ invariantX2224 /\ invariantX1231 /\ invariantX1218 /\ invariantX941 /\ invariantX933 /\ invariantX918 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant4488 /\ invariant4565 /\ invariant4628 /\ invariant10823 /\ invariant15406 /\  tau)
    -> invariant10823'



end


theory Flash_abstr_hint_236

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_236:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX4231 /\ invariantX1981 /\ invariantX1396 /\ invariantX1380 /\ invariantX874 /\ invariantX866 /\ invariantX841 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant4212 /\ invariant4270 /\ invariant4392 /\ invariant8250 /\ invariant10886 /\  tau)
    -> invariant10886'



end


theory Flash_abstr_hint_237

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_237:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX4231 /\ invariantX1396 /\ invariantX1380 /\ invariantX874 /\ invariantX866 /\ invariantX841 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant4212 /\ invariant4289 /\ invariant4352 /\ invariant8365 /\ invariant11028 /\  tau)
    -> invariant11028'



end


theory Flash_abstr_hint_238

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_238:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX5953 /\ invariantX4289 /\ invariantX4231 /\ invariantX1981 /\ invariantX1231 /\ invariantX1218 /\ invariantX941 /\ invariantX933 /\ invariantX918 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant4488 /\ invariant4546 /\ invariant4668 /\ invariant8250 /\ invariant11170 /\  tau)
    -> invariant11170'



end


theory Flash_abstr_hint_239

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_239:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX5953 /\ invariantX4256 /\ invariantX4231 /\ invariantX1231 /\ invariantX1218 /\ invariantX941 /\ invariantX933 /\ invariantX918 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant4488 /\ invariant4565 /\ invariant4628 /\ invariant8365 /\ invariant11312 /\  tau)
    -> invariant11312'



end


theory Flash_abstr_hint_240

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_240:
    (invariantX30985 /\ invariantX25478 /\ invariantX20245 /\ invariantX5939 /\ invariantX4289 /\ invariantX4256 /\ invariantX4231 /\ invariantX1981 /\ invariantX1201 /\ invariantX1188 /\ invariantX778 /\ invariantX535 /\ invariantX528 /\ invariantX507 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1594 /\ invariant1895 /\ invariant4212 /\ invariant4488 /\ invariant4668 /\ invariant8261 /\ invariant8805 /\ invariant8951 /\ invariant11170 /\ invariant11455 /\ invariant16889 /\ invariant16939 /\  tau)
    -> invariant11455'



end


theory Flash_abstr_hint_241

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_241:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant1875 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant4392 /\ invariant4546 /\ invariant4668 /\ invariant5332 /\ invariant5440 /\ invariant8261 /\ invariant8806 /\ invariant9152 /\ invariant10394 /\ invariant11482 /\ invariant19187 /\  tau)
    -> invariant11482'



end


theory Flash_abstr_hint_242

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_242:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant1875 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant4546 /\ invariant5331 /\ invariant5439 /\ invariant5440 /\ invariant8261 /\ invariant8518 /\ invariant8805 /\ invariant8806 /\ invariant10394 /\ invariant10679 /\ invariant11483 /\ invariant11484 /\ invariant11537 /\ invariant19187 /\ invariant28744 /\  tau)
    -> invariant11483'



end


theory Flash_abstr_hint_243

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_243:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant1875 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant4546 /\ invariant5331 /\ invariant5439 /\ invariant5440 /\ invariant8261 /\ invariant8518 /\ invariant8806 /\ invariant10679 /\ invariant11482 /\ invariant11484 /\ invariant11535 /\ invariant19187 /\ invariant28744 /\  tau)
    -> invariant11484'



end


theory Flash_abstr_hint_244

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_244:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant1875 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant4546 /\ invariant5331 /\ invariant5439 /\ invariant5440 /\ invariant8261 /\ invariant8518 /\ invariant8805 /\ invariant8806 /\ invariant10393 /\ invariant10394 /\ invariant10679 /\ invariant11482 /\ invariant11483 /\ invariant11486 /\ invariant11535 /\ invariant11536 /\ invariant16889 /\ invariant19187 /\ invariant28744 /\  tau)
    -> invariant11486'



end


theory Flash_abstr_hint_245

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_245:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX4256 /\ invariantX1981 /\ invariantX1670 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant1875 /\ invariant1887 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant4392 /\ invariant4546 /\ invariant4668 /\ invariant5362 /\ invariant5440 /\ invariant8261 /\ invariant8806 /\ invariant9283 /\ invariant10394 /\ invariant11535 /\ invariant19187 /\  tau)
    -> invariant11535'



end


theory Flash_abstr_hint_246

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_246:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX4256 /\ invariantX1981 /\ invariantX1670 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant1875 /\ invariant1887 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant4546 /\ invariant5331 /\ invariant5439 /\ invariant5440 /\ invariant5480 /\ invariant8261 /\ invariant8518 /\ invariant8806 /\ invariant10393 /\ invariant10394 /\ invariant10679 /\ invariant11484 /\ invariant11536 /\ invariant11537 /\ invariant19187 /\ invariant28891 /\  tau)
    -> invariant11536'



end


theory Flash_abstr_hint_247

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_247:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant1875 /\ invariant1887 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant4546 /\ invariant5331 /\ invariant5439 /\ invariant5440 /\ invariant8261 /\ invariant8518 /\ invariant8806 /\ invariant8952 /\ invariant10394 /\ invariant10679 /\ invariant11482 /\ invariant11535 /\ invariant11537 /\ invariant19187 /\ invariant28744 /\  tau)
    -> invariant11537'



end


theory Flash_abstr_hint_248

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_248:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant1875 /\ invariant1887 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant4392 /\ invariant4546 /\ invariant4668 /\ invariant5331 /\ invariant5439 /\ invariant5440 /\ invariant8261 /\ invariant8805 /\ invariant8806 /\ invariant8951 /\ invariant8952 /\ invariant10393 /\ invariant11482 /\ invariant11483 /\ invariant11535 /\ invariant11536 /\ invariant11538 /\ invariant19187 /\ invariant28744 /\  tau)
    -> invariant11538'



end


theory Flash_abstr_hint_249

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_249:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant1875 /\ invariant1887 /\ invariant1932 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant4546 /\ invariant5331 /\ invariant5439 /\ invariant5440 /\ invariant5480 /\ invariant8261 /\ invariant8518 /\ invariant8805 /\ invariant8806 /\ invariant8952 /\ invariant10393 /\ invariant10394 /\ invariant10541 /\ invariant10679 /\ invariant11482 /\ invariant11483 /\ invariant11535 /\ invariant11536 /\ invariant11539 /\ invariant16939 /\ invariant17030 /\ invariant19187 /\ invariant28744 /\ invariant28891 /\  tau)
    -> invariant11539'



end


theory Flash_abstr_hint_250

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_250:
    (invariantX30985 /\ invariantX25478 /\ invariantX20245 /\ invariantX5939 /\ invariantX4256 /\ invariantX4231 /\ invariantX1981 /\ invariantX1201 /\ invariantX1188 /\ invariantX778 /\ invariantX535 /\ invariantX528 /\ invariantX507 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1594 /\ invariant1895 /\ invariant4212 /\ invariant4488 /\ invariant4628 /\ invariant8376 /\ invariant10393 /\ invariant10540 /\ invariant11312 /\ invariant11610 /\ invariant17030 /\ invariant17081 /\  tau)
    -> invariant11610'



end


theory Flash_abstr_hint_251

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_251:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX4256 /\ invariantX1670 /\ invariantX48 /\ invariantX38 /\ invariant1674 /\ invariant1887 /\ invariant1951 /\ invariant2014 /\ invariant2079 /\ invariant4289 /\ invariant4352 /\ invariant4565 /\ invariant4628 /\ invariant5362 /\ invariant5480 /\ invariant8376 /\ invariant8952 /\ invariant9283 /\ invariant9286 /\ invariant10541 /\ invariant11690 /\ invariant19196 /\  tau)
    -> invariant11690'



end


theory Flash_abstr_hint_252

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_252:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX4256 /\ invariantX1670 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1674 /\ invariant1887 /\ invariant1951 /\ invariant2014 /\ invariant2079 /\ invariant4289 /\ invariant4565 /\ invariant5361 /\ invariant5479 /\ invariant5480 /\ invariant8376 /\ invariant8661 /\ invariant8952 /\ invariant10540 /\ invariant10541 /\ invariant10823 /\ invariant11691 /\ invariant11692 /\ invariant19196 /\ invariant28891 /\  tau)
    -> invariant11691'



end


theory Flash_abstr_hint_253

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_253:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX4256 /\ invariantX1670 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1674 /\ invariant1887 /\ invariant1951 /\ invariant2014 /\ invariant2079 /\ invariant4289 /\ invariant4565 /\ invariant5361 /\ invariant5479 /\ invariant5480 /\ invariant8376 /\ invariant8661 /\ invariant8952 /\ invariant10541 /\ invariant10823 /\ invariant11690 /\ invariant11692 /\ invariant19196 /\ invariant28891 /\  tau)
    -> invariant11692'



end


theory Flash_abstr_hint_254

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_254:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX4256 /\ invariantX1670 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant1674 /\ invariant1887 /\ invariant1951 /\ invariant2014 /\ invariant2079 /\ invariant4289 /\ invariant4565 /\ invariant5361 /\ invariant5479 /\ invariant5480 /\ invariant8376 /\ invariant8661 /\ invariant8951 /\ invariant8952 /\ invariant10540 /\ invariant10541 /\ invariant10823 /\ invariant11690 /\ invariant11691 /\ invariant11694 /\ invariant17081 /\ invariant19196 /\ invariant28891 /\  tau)
    -> invariant11694'



end


theory Flash_abstr_hint_255

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_255:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX11823 /\ invariantX6107 /\ invariantX4256 /\ invariantX2224 /\ invariantX1122 /\ invariantX1109 /\ invariantX933 /\ invariantX866 /\ invariantX778 /\ invariantX369 /\ invariant2 /\ invariant1594 /\ invariant1619 /\ invariant1674 /\ invariant12660 /\  tau)
    -> invariant12660'



end


theory Flash_abstr_hint_256

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_256:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX11823 /\ invariantX6107 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1981 /\ invariantX1122 /\ invariantX1109 /\ invariantX933 /\ invariantX866 /\ invariantX778 /\ invariantX369 /\ invariant2 /\ invariant1594 /\ invariant1619 /\ invariant1655 /\ invariant13168 /\ invariant20433 /\  tau)
    -> invariant13168'



end


theory Flash_abstr_hint_257

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_257:
    (invariantX25683 /\ invariantX20245 /\ invariantX11823 /\ invariantX4289 /\ invariantX3213 /\ invariantX2224 /\ invariantX1981 /\ invariantX1777 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX778 /\ invariantX580 /\ invariant1 /\ invariant2 /\ invariant1875 /\ invariant4446 /\ invariant6244 /\ invariant15274 /\ invariant22779 /\ invariant22780 /\ invariant22827 /\ invariant22828 /\  tau)
    -> invariant15274'



end


theory Flash_abstr_hint_258

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_258:
    (invariantX25698 /\ invariantX20245 /\ invariantX11823 /\ invariantX4256 /\ invariantX3213 /\ invariantX2224 /\ invariantX1777 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX778 /\ invariantX580 /\ invariant1 /\ invariant2 /\ invariant1614 /\ invariant1887 /\ invariant5156 /\ invariant15406 /\ invariant22849 /\ invariant22850 /\ invariant22897 /\ invariant22898 /\  tau)
    -> invariant15406'



end


theory Flash_abstr_hint_259

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_259:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX4256 /\ invariantX4231 /\ invariantX1981 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1875 /\ invariant4668 /\ invariant5440 /\ invariant6244 /\ invariant6453 /\ invariant8250 /\ invariant10305 /\ invariant10886 /\ invariant11170 /\ invariant11455 /\ invariant11486 /\ invariant16889 /\ invariant28744 /\  tau)
    -> invariant16889'



end


theory Flash_abstr_hint_260

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_260:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX4289 /\ invariantX4256 /\ invariantX4231 /\ invariantX1981 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1887 /\ invariant4668 /\ invariant5480 /\ invariant6244 /\ invariant6453 /\ invariant8250 /\ invariant10305 /\ invariant10886 /\ invariant11170 /\ invariant11455 /\ invariant11539 /\ invariant16939 /\ invariant28891 /\  tau)
    -> invariant16939'



end


theory Flash_abstr_hint_261

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_261:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX4256 /\ invariantX4231 /\ invariantX1981 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1875 /\ invariant4628 /\ invariant5156 /\ invariant5268 /\ invariant5440 /\ invariant8365 /\ invariant10452 /\ invariant11028 /\ invariant11312 /\ invariant11539 /\ invariant11610 /\ invariant17030 /\ invariant28744 /\  tau)
    -> invariant17030'



end


theory Flash_abstr_hint_262

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_262:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX4256 /\ invariantX4231 /\ invariantX1981 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant1887 /\ invariant4628 /\ invariant5156 /\ invariant5268 /\ invariant5480 /\ invariant8365 /\ invariant10452 /\ invariant11028 /\ invariant11312 /\ invariant11610 /\ invariant11694 /\ invariant17081 /\ invariant28891 /\  tau)
    -> invariant17081'



end


theory Flash_abstr_hint_263

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_263:
    (invariantX30985 /\ invariantX25766 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX11770 /\ invariantX4903 /\ invariantX2112 /\ invariantX1839 /\ invariantX580 /\ invariantX149 /\ invariant5 /\ invariant9 /\ invariant18056 /\ invariant18058 /\ invariant21808 /\ invariant24100 /\ invariant27945 /\ invariant27989 /\ invariant30048 /\ invariant30211 /\ invariant30213 /\ invariant30222 /\ invariant30224 /\  tau)
    -> invariant18056'



end


theory Flash_abstr_hint_264

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_264:
    (invariantX30985 /\ invariantX25766 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX11770 /\ invariantX4903 /\ invariantX2112 /\ invariantX1889 /\ invariantX1839 /\ invariantX580 /\ invariantX149 /\ invariant5 /\ invariant9 /\ invariant18056 /\ invariant18058 /\ invariant21808 /\ invariant21830 /\ invariant22258 /\ invariant24212 /\ invariant27945 /\ invariant27989 /\ invariant30050 /\ invariant30328 /\ invariant30330 /\ invariant30339 /\ invariant30341 /\  tau)
    -> invariant18058'



end


theory Flash_abstr_hint_265

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_265:
    (invariantX25766 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX11617 /\ invariantX6051 /\ invariantX5884 /\ invariantX1839 /\ invariantX1503 /\ invariantX918 /\ invariantX841 /\ invariantX664 /\ invariantX580 /\ invariantX149 /\ invariantX48 /\ invariantX38 /\ invariant18220 /\ invariant18704 /\ invariant18784 /\ invariant18806 /\ invariant18819 /\ invariant18820 /\  tau)
    -> invariant18220'



end


theory Flash_abstr_hint_266

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_266:
    (invariantX25766 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX11617 /\ invariantX6051 /\ invariantX5884 /\ invariantX1839 /\ invariantX1503 /\ invariantX918 /\ invariantX841 /\ invariantX664 /\ invariantX580 /\ invariantX149 /\ invariantX38 /\ invariant18221 /\ invariant18705 /\ invariant18968 /\ invariant18989 /\  tau)
    -> invariant18221'



end


theory Flash_abstr_hint_267

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_267:
    (invariantX30985 /\ invariantX20245 /\ invariantX8564 /\ invariantX6107 /\ invariantX5953 /\ invariantX5939 /\ invariantX5187 /\ invariantX4903 /\ invariantX1889 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant1 /\ invariant360 /\ invariant3489 /\ invariant7365 /\ invariant18271 /\ invariant18704 /\ invariant18705 /\ invariant21792 /\  tau)
    -> invariant18271'



end


theory Flash_abstr_hint_268

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_268:
    (invariantX20245 /\ invariantX13854 /\ invariantX11823 /\ invariantX11770 /\ invariantX5281 /\ invariantX5261 /\ invariantX82 /\ invariantX48 /\ invariantX38 /\ invariant352 /\ invariant861 /\ invariant1895 /\ invariant18325 /\  tau)
    -> invariant18325'



end


theory Flash_abstr_hint_269

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_269:
    (invariantX20245 /\ invariantX11823 /\ invariantX11770 /\ invariantX5551 /\ invariantX5281 /\ invariantX5187 /\ invariantX452 /\ invariantX48 /\ invariantX38 /\ invariant1511 /\ invariant18325 /\ invariant18433 /\  tau)
    -> invariant18433'



end


theory Flash_abstr_hint_270

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_270:
    (invariantX20245 /\ invariantX8564 /\ invariantX6302 /\ invariantX6051 /\ invariantX5884 /\ invariantX1889 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX580 /\ invariantX149 /\ invariantX48 /\ invariantX38 /\ invariant3382 /\ invariant4446 /\ invariant6776 /\ invariant7365 /\ invariant18704 /\ invariant19111 /\ invariant19727 /\ invariant23869 /\ invariant29347 /\  tau)
    -> invariant18704'



end


theory Flash_abstr_hint_271

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_271:
    (invariantX20245 /\ invariantX8564 /\ invariantX6302 /\ invariantX6051 /\ invariantX5884 /\ invariantX1889 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX580 /\ invariantX149 /\ invariantX38 /\ invariant3382 /\ invariant4446 /\ invariant6776 /\ invariant7365 /\ invariant18705 /\ invariant19414 /\ invariant23869 /\ invariant29347 /\  tau)
    -> invariant18705'



end


theory Flash_abstr_hint_272

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_272:
    (invariantX25766 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX11617 /\ invariantX6051 /\ invariantX5884 /\ invariantX1839 /\ invariantX1503 /\ invariantX918 /\ invariantX664 /\ invariantX580 /\ invariantX149 /\ invariantX48 /\ invariantX38 /\ invariant18220 /\ invariant18784 /\ invariant19111 /\ invariant19122 /\ invariant19123 /\  tau)
    -> invariant18784'



end


theory Flash_abstr_hint_273

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_273:
    (invariantX30985 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX13370 /\ invariantX6302 /\ invariantX5551 /\ invariantX2238 /\ invariantX1302 /\ invariantX790 /\ invariantX599 /\ invariantX528 /\ invariantX395 /\ invariantX248 /\ invariantX229 /\ invariantX92 /\ invariantX48 /\ invariantX38 /\ invariant18806 /\ invariant18856 /\  tau)
    -> invariant18806'



end


theory Flash_abstr_hint_274

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_274:
    (invariantX30985 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX2238 /\ invariantX1335 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX535 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant1278 /\ invariant18819 /\ invariant19122 /\ invariant19694 /\ invariant19727 /\ invariant19795 /\  tau)
    -> invariant18819'



end


theory Flash_abstr_hint_275

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_275:
    (invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX11770 /\ invariantX8564 /\ invariantX6051 /\ invariantX5884 /\ invariantX5551 /\ invariantX5261 /\ invariantX5187 /\ invariantX918 /\ invariantX841 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant18221 /\ invariant18820 /\ invariant19123 /\ invariant19795 /\  tau)
    -> invariant18820'



end


theory Flash_abstr_hint_276

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_276:
    (invariantX30985 /\ invariantX20245 /\ invariantX5281 /\ invariantX4289 /\ invariantX4256 /\ invariantX4231 /\ invariantX1380 /\ invariantX874 /\ invariantX866 /\ invariantX841 /\ invariantX625 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant4212 /\ invariant18856 /\ invariant19482 /\  tau)
    -> invariant18856'



end


theory Flash_abstr_hint_277

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_277:
    (invariantX25766 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX11617 /\ invariantX6051 /\ invariantX5884 /\ invariantX1839 /\ invariantX1503 /\ invariantX918 /\ invariantX664 /\ invariantX580 /\ invariantX149 /\ invariantX38 /\ invariant18221 /\ invariant18968 /\ invariant19414 /\  tau)
    -> invariant18968'



end


theory Flash_abstr_hint_278

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_278:
    (invariantX30985 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX13370 /\ invariantX6302 /\ invariantX2238 /\ invariantX1302 /\ invariantX790 /\ invariantX599 /\ invariantX528 /\ invariantX395 /\ invariantX229 /\ invariantX92 /\ invariantX38 /\ invariant18989 /\ invariant19033 /\  tau)
    -> invariant18989'



end


theory Flash_abstr_hint_279

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_279:
    (invariantX30985 /\ invariantX20245 /\ invariantX4289 /\ invariantX4256 /\ invariantX4231 /\ invariantX1380 /\ invariantX866 /\ invariantX841 /\ invariantX625 /\ invariantX580 /\ invariantX38 /\ invariant1 /\ invariant4212 /\ invariant19033 /\ invariant19647 /\  tau)
    -> invariant19033'



end


theory Flash_abstr_hint_280

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_280:
    (invariantX20245 /\ invariantX8564 /\ invariantX6051 /\ invariantX5884 /\ invariantX1889 /\ invariantX1313 /\ invariantX918 /\ invariantX580 /\ invariantX149 /\ invariantX48 /\ invariantX38 /\ invariant3382 /\ invariant4446 /\ invariant6776 /\ invariant7365 /\ invariant18704 /\ invariant19111 /\ invariant20006 /\ invariant23869 /\ invariant29347 /\  tau)
    -> invariant19111'



end


theory Flash_abstr_hint_281

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_281:
    (invariantX30985 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX2238 /\ invariantX1335 /\ invariantX941 /\ invariantX909 /\ invariantX535 /\ invariantX309 /\ invariantX68 /\ invariantX38 /\ invariant1278 /\ invariant18819 /\ invariant19122 /\ invariant19810 /\ invariant19976 /\ invariant20006 /\  tau)
    -> invariant19122'



end


theory Flash_abstr_hint_282

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_282:
    (invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX11770 /\ invariantX8564 /\ invariantX6051 /\ invariantX5884 /\ invariantX5261 /\ invariantX5187 /\ invariantX918 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant18820 /\ invariant18968 /\ invariant19123 /\ invariant19810 /\  tau)
    -> invariant19123'



end


theory Flash_abstr_hint_283

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_283:
    (invariantX25683 /\ invariantX20245 /\ invariantX6051 /\ invariantX5964 /\ invariantX5884 /\ invariantX1981 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariantX21 /\ invariant1875 /\ invariant1994 /\ invariant2059 /\ invariant4270 /\ invariant5331 /\ invariant5439 /\ invariant5440 /\ invariant8518 /\ invariant8806 /\ invariant10394 /\ invariant19146 /\ invariant19187 /\ invariant28744 /\  tau)
    -> invariant19146'



end


theory Flash_abstr_hint_284

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_284:
    (invariantX25698 /\ invariantX20245 /\ invariantX6051 /\ invariantX5964 /\ invariantX5884 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariantX21 /\ invariant1887 /\ invariant2014 /\ invariant2079 /\ invariant4289 /\ invariant5361 /\ invariant5479 /\ invariant5480 /\ invariant8661 /\ invariant8952 /\ invariant10541 /\ invariant19150 /\ invariant19196 /\ invariant28891 /\  tau)
    -> invariant19150'



end


theory Flash_abstr_hint_285

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_285:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX6107 /\ invariantX5953 /\ invariantX5939 /\ invariantX5187 /\ invariantX4903 /\ invariantX1981 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant1 /\ invariant360 /\ invariant1875 /\ invariant1932 /\ invariant5440 /\ invariant8518 /\ invariant8806 /\ invariant10394 /\ invariant19187 /\  tau)
    -> invariant19187'



end


theory Flash_abstr_hint_286

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_286:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX6107 /\ invariantX5953 /\ invariantX5939 /\ invariantX5187 /\ invariantX4903 /\ invariantX68 /\ invariantX48 /\ invariantX21 /\ invariant1 /\ invariant360 /\ invariant1887 /\ invariant1951 /\ invariant5480 /\ invariant8661 /\ invariant8952 /\ invariant10541 /\ invariant19196 /\  tau)
    -> invariant19196'



end


theory Flash_abstr_hint_287

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_287:
    (invariantX20245 /\ invariantX8564 /\ invariantX6051 /\ invariantX5884 /\ invariantX1889 /\ invariantX1313 /\ invariantX918 /\ invariantX580 /\ invariantX149 /\ invariantX38 /\ invariant3382 /\ invariant4446 /\ invariant6776 /\ invariant7365 /\ invariant18705 /\ invariant19414 /\ invariant23869 /\ invariant29347 /\  tau)
    -> invariant19414'



end


theory Flash_abstr_hint_288

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_288:
    (invariantX30985 /\ invariantX20245 /\ invariantX5294 /\ invariantX1396 /\ invariantX1380 /\ invariantX874 /\ invariantX866 /\ invariantX841 /\ invariantX778 /\ invariantX747 /\ invariantX702 /\ invariantX639 /\ invariantX48 /\ invariantX38 /\ invariant4212 /\ invariant4352 /\ invariant19482 /\  tau)
    -> invariant19482'



end


theory Flash_abstr_hint_289

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_289:
    (invariantX30985 /\ invariantX20245 /\ invariantX1396 /\ invariantX1380 /\ invariantX866 /\ invariantX841 /\ invariantX778 /\ invariantX747 /\ invariantX702 /\ invariantX639 /\ invariantX38 /\ invariant4212 /\ invariant4352 /\ invariant19647 /\  tau)
    -> invariant19647'



end


theory Flash_abstr_hint_290

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_290:
    (invariantX30985 /\ invariantX20245 /\ invariantX6051 /\ invariantX5281 /\ invariantX4289 /\ invariantX4256 /\ invariantX4231 /\ invariantX3213 /\ invariantX625 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2 /\ invariant13168 /\ invariant19694 /\ invariant19976 /\ invariant24306 /\  tau)
    -> invariant19694'



end


theory Flash_abstr_hint_291

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_291:
    (invariantX30985 /\ invariantX20245 /\ invariantX8564 /\ invariantX1889 /\ invariantX1365 /\ invariantX1335 /\ invariantX1039 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX610 /\ invariantX535 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant1278 /\ invariant8043 /\ invariant19727 /\ invariant20006 /\  tau)
    -> invariant19727'



end


theory Flash_abstr_hint_292

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_292:
    (invariantX30985 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX8564 /\ invariantX2238 /\ invariantX1335 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX535 /\ invariantX309 /\ invariantX248 /\ invariantX68 /\ invariantX38 /\ invariant1278 /\ invariant19795 /\ invariant19810 /\ invariant19823 /\  tau)
    -> invariant19795'



end


theory Flash_abstr_hint_293

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_293:
    (invariantX30985 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX8564 /\ invariantX2238 /\ invariantX1335 /\ invariantX941 /\ invariantX909 /\ invariantX535 /\ invariantX309 /\ invariantX68 /\ invariantX38 /\ invariant1278 /\ invariant19795 /\ invariant19810 /\ invariant19900 /\  tau)
    -> invariant19810'



end


theory Flash_abstr_hint_294

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_294:
    (invariantX30985 /\ invariantX20245 /\ invariantX6051 /\ invariantX5281 /\ invariantX4289 /\ invariantX4256 /\ invariantX4231 /\ invariantX3213 /\ invariantX625 /\ invariantX610 /\ invariantX599 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2 /\ invariant13168 /\ invariant19823 /\ invariant19900 /\ invariant24416 /\  tau)
    -> invariant19823'



end


theory Flash_abstr_hint_295

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_295:
    (invariantX30985 /\ invariantX20245 /\ invariantX6051 /\ invariantX5281 /\ invariantX4289 /\ invariantX4256 /\ invariantX4231 /\ invariantX3213 /\ invariantX1670 /\ invariantX625 /\ invariantX610 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2 /\ invariant4668 /\ invariant13168 /\ invariant19900 /\ invariant24627 /\  tau)
    -> invariant19900'



end


theory Flash_abstr_hint_296

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_296:
    (invariantX30985 /\ invariantX20245 /\ invariantX6051 /\ invariantX5281 /\ invariantX4289 /\ invariantX4256 /\ invariantX4231 /\ invariantX3213 /\ invariantX1670 /\ invariantX625 /\ invariantX610 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2 /\ invariant4668 /\ invariant13168 /\ invariant19976 /\ invariant24522 /\  tau)
    -> invariant19976'



end


theory Flash_abstr_hint_297

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_297:
    (invariantX30985 /\ invariantX20245 /\ invariantX8564 /\ invariantX1889 /\ invariantX1365 /\ invariantX1335 /\ invariantX1039 /\ invariantX941 /\ invariantX909 /\ invariantX610 /\ invariantX535 /\ invariantX309 /\ invariantX68 /\ invariantX38 /\ invariant1278 /\ invariant8043 /\ invariant19727 /\ invariant20006 /\  tau)
    -> invariant20006'



end


theory Flash_abstr_hint_298

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_298:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX1981 /\ invariantX1670 /\ invariantX48 /\ invariantX38 /\ invariant2060 /\ invariant4392 /\ invariant4446 /\ invariant4668 /\ invariant6244 /\ invariant6453 /\ invariant20433 /\ invariant21186 /\  tau)
    -> invariant20433'



end


theory Flash_abstr_hint_299

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_299:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX4289 /\ invariantX4256 /\ invariantX1981 /\ invariantX1670 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant1875 /\ invariant4392 /\ invariant4546 /\ invariant4668 /\ invariant10393 /\ invariant20433 /\ invariant21186 /\  tau)
    -> invariant21186'



end


theory Flash_abstr_hint_300

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_300:
    (invariantX20245 /\ invariantX8564 /\ invariantX6302 /\ invariantX5271 /\ invariantX5261 /\ invariantX1889 /\ invariantX1628 /\ invariantX1039 /\ invariantX48 /\ invariantX38 /\ invariant3489 /\ invariant7365 /\ invariant18271 /\ invariant18704 /\ invariant18705 /\ invariant21792 /\ invariant21913 /\ invariant27999 /\ invariant29184 /\ invariant29449 /\  tau)
    -> invariant21792'



end


theory Flash_abstr_hint_301

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_301:
    (invariantX30985 /\ invariantX25798 /\ invariantX25766 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX1839 /\ invariantX452 /\ invariantX48 /\ invariantX38 /\ invariant360 /\ invariant400 /\ invariant1346 /\ invariant1511 /\ invariant2651 /\ invariant18433 /\ invariant21808 /\ invariant21830 /\ invariant21913 /\  tau)
    -> invariant21808'



end


theory Flash_abstr_hint_302

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_302:
    (invariantX30985 /\ invariantX30614 /\ invariantX25798 /\ invariantX25766 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX11823 /\ invariantX11617 /\ invariantX9553 /\ invariantX5076 /\ invariantX4231 /\ invariantX1839 /\ invariantX1670 /\ invariantX685 /\ invariantX610 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant2 /\ invariant18220 /\ invariant18221 /\ invariant21808 /\ invariant21830 /\ invariant22027 /\ invariant22258 /\ invariant27945 /\ invariant27989 /\  tau)
    -> invariant21830'



end


theory Flash_abstr_hint_303

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_303:
    (invariantX30985 /\ invariantX20245 /\ invariantX8564 /\ invariantX1889 /\ invariantX1039 /\ invariantX452 /\ invariantX48 /\ invariantX38 /\ invariant360 /\ invariant400 /\ invariant1346 /\ invariant1511 /\ invariant2651 /\ invariant7365 /\ invariant18433 /\ invariant21913 /\ invariant22027 /\ invariant27999 /\ invariant29184 /\ invariant29347 /\ invariant29449 /\  tau)
    -> invariant21913'



end


theory Flash_abstr_hint_304

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_304:
    (invariantX30985 /\ invariantX30614 /\ invariantX20245 /\ invariantX8564 /\ invariantX6302 /\ invariantX4231 /\ invariantX1889 /\ invariantX1670 /\ invariantX1039 /\ invariantX610 /\ invariantX580 /\ invariantX48 /\ invariantX38 /\ invariant1 /\ invariant2 /\ invariant3489 /\ invariant7365 /\ invariant18271 /\ invariant18704 /\ invariant18705 /\ invariant21792 /\ invariant21913 /\ invariant22027 /\ invariant22426 /\ invariant23869 /\ invariant27999 /\ invariant28744 /\ invariant28891 /\ invariant29184 /\ invariant29347 /\ invariant29449 /\ invariant29591 /\ invariant29592 /\  tau)
    -> invariant22027'



end


theory Flash_abstr_hint_305

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_305:
    (invariantX30985 /\ invariantX30614 /\ invariantX25798 /\ invariantX25766 /\ invariantX25712 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX11823 /\ invariantX11617 /\ invariantX9553 /\ invariantX5076 /\ invariantX2269 /\ invariantX2238 /\ invariantX1839 /\ invariantX1670 /\ invariantX1503 /\ invariantX734 /\ invariantX702 /\ invariantX685 /\ invariantX149 /\ invariantX48 /\ invariantX38 /\ invariant1239 /\ invariant9794 /\ invariant9797 /\ invariant18220 /\ invariant18221 /\ invariant21808 /\ invariant22258 /\ invariant22365 /\ invariant22366 /\ invariant22385 /\ invariant22386 /\ invariant22426 /\  tau)
    -> invariant22258'



end


theory Flash_abstr_hint_306

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_306:
    (invariantX25766 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX6051 /\ invariantX5884 /\ invariantX1503 /\ invariantX918 /\ invariantX841 /\ invariantX580 /\ invariantX149 /\ invariantX38 /\ invariantX21 /\ invariant18221 /\ invariant18968 /\ invariant18989 /\ invariant22365 /\ invariant22679 /\ invariant35205 /\  tau)
    -> invariant22365'



end


theory Flash_abstr_hint_307

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_307:
    (invariantX25766 /\ invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX6051 /\ invariantX5884 /\ invariantX2224 /\ invariantX1777 /\ invariantX1503 /\ invariantX918 /\ invariantX841 /\ invariantX580 /\ invariantX309 /\ invariantX149 /\ invariantX68 /\ invariantX48 /\ invariantX38 /\ invariantX21 /\ invariant18220 /\ invariant18784 /\ invariant18806 /\ invariant22365 /\ invariant22366 /\ invariant22680 /\ invariant35445 /\ invariant35496 /\  tau)
    -> invariant22366'



end


theory Flash_abstr_hint_308

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_308:
    (invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX11617 /\ invariantX6051 /\ invariantX5884 /\ invariantX1839 /\ invariantX1503 /\ invariantX918 /\ invariantX841 /\ invariantX664 /\ invariantX580 /\ invariantX149 /\ invariantX21 /\ invariant18221 /\ invariant22385 /\ invariant22695 /\ invariant27678 /\  tau)
    -> invariant22385'



end


theory Flash_abstr_hint_309

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_309:
    (invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX11617 /\ invariantX6051 /\ invariantX5884 /\ invariantX1839 /\ invariantX1503 /\ invariantX918 /\ invariantX841 /\ invariantX664 /\ invariantX580 /\ invariantX149 /\ invariantX48 /\ invariantX21 /\ invariant18220 /\ invariant22385 /\ invariant22386 /\ invariant22696 /\ invariant30940 /\ invariant30994 /\ invariant30996 /\  tau)
    -> invariant22386'



end


theory Flash_abstr_hint_310

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_310:
    (invariantX30985 /\ invariantX30614 /\ invariantX20245 /\ invariantX8564 /\ invariantX6302 /\ invariantX2269 /\ invariantX1889 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX734 /\ invariantX702 /\ invariantX639 /\ invariantX149 /\ invariantX48 /\ invariantX38 /\ invariant1239 /\ invariant3489 /\ invariant6776 /\ invariant7365 /\ invariant8043 /\ invariant18271 /\ invariant18704 /\ invariant18705 /\ invariant21792 /\ invariant21913 /\ invariant22426 /\ invariant22679 /\ invariant22680 /\ invariant22695 /\ invariant22696 /\ invariant23869 /\ invariant27999 /\ invariant29184 /\ invariant29347 /\ invariant29449 /\ invariant29591 /\ invariant29592 /\  tau)
    -> invariant22426'



end


theory Flash_abstr_hint_311

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_311:
    (invariantX20245 /\ invariantX8564 /\ invariantX6302 /\ invariantX6051 /\ invariantX5884 /\ invariantX1889 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX580 /\ invariantX149 /\ invariantX38 /\ invariantX21 /\ invariant4446 /\ invariant6776 /\ invariant18705 /\ invariant19414 /\ invariant22679 /\ invariant29347 /\ invariant35308 /\  tau)
    -> invariant22679'



end


theory Flash_abstr_hint_312

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_312:
    (invariantX20245 /\ invariantX8564 /\ invariantX6302 /\ invariantX6051 /\ invariantX5884 /\ invariantX2224 /\ invariantX1889 /\ invariantX1777 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX580 /\ invariantX309 /\ invariantX149 /\ invariantX68 /\ invariantX48 /\ invariantX38 /\ invariantX21 /\ invariant4446 /\ invariant6776 /\ invariant18704 /\ invariant19111 /\ invariant22679 /\ invariant22680 /\ invariant29347 /\ invariant35557 /\  tau)
    -> invariant22680'



end


theory Flash_abstr_hint_313

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_313:
    (invariantX20245 /\ invariantX8564 /\ invariantX6051 /\ invariantX5884 /\ invariantX1889 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX580 /\ invariantX149 /\ invariantX21 /\ invariant3382 /\ invariant4446 /\ invariant6776 /\ invariant7365 /\ invariant18705 /\ invariant22695 /\ invariant23869 /\ invariant27783 /\  tau)
    -> invariant22695'



end


theory Flash_abstr_hint_314

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_314:
    (invariantX20245 /\ invariantX8564 /\ invariantX6051 /\ invariantX5884 /\ invariantX1889 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX580 /\ invariantX149 /\ invariantX48 /\ invariantX21 /\ invariant3382 /\ invariant4446 /\ invariant6776 /\ invariant7365 /\ invariant18704 /\ invariant22695 /\ invariant22696 /\ invariant23869 /\ invariant31054 /\ invariant36407 /\  tau)
    -> invariant22696'



end


theory Flash_abstr_hint_315

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_315:
    (invariantX25683 /\ invariantX20245 /\ invariantX11823 /\ invariantX4289 /\ invariantX3213 /\ invariantX2224 /\ invariantX1981 /\ invariantX1777 /\ invariantX1670 /\ invariantX1313 /\ invariantX918 /\ invariantX778 /\ invariantX580 /\ invariant1 /\ invariant2 /\ invariant1875 /\ invariant4446 /\ invariant6244 /\ invariant22779 /\ invariant22919 /\ invariant22964 /\ invariant22965 /\  tau)
    -> invariant22779'



end


theory Flash_abstr_hint_316

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_316:
    (invariantX30985 /\ invariantX25478 /\ invariantX20245 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1981 /\ invariantX1777 /\ invariantX1201 /\ invariantX1188 /\ invariantX778 /\ invariantX507 /\ invariant2 /\ invariant1594 /\ invariant4212 /\ invariant4488 /\ invariant4668 /\ invariant8261 /\ invariant8805 /\ invariant8951 /\ invariant22780 /\ invariant22919 /\ invariant22997 /\ invariant23026 /\ invariant23496 /\  tau)
    -> invariant22780'



end


theory Flash_abstr_hint_317

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_317:
    (invariantX25683 /\ invariantX20245 /\ invariantX11770 /\ invariantX9390 /\ invariantX4289 /\ invariantX3213 /\ invariantX2112 /\ invariantX1981 /\ invariantX1777 /\ invariantX1271 /\ invariantX778 /\ invariant2 /\ invariant4668 /\ invariant5333 /\ invariant6244 /\ invariant15274 /\ invariant22827 /\ invariant22964 /\ invariant23496 /\ invariant57126 /\ invariant57129 /\  tau)
    -> invariant22827'



end


theory Flash_abstr_hint_318

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_318:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1981 /\ invariantX1777 /\ invariantX1122 /\ invariantX1109 /\ invariantX933 /\ invariantX866 /\ invariantX778 /\ invariantX369 /\ invariant2 /\ invariant1594 /\ invariant1655 /\ invariant13168 /\ invariant22828 /\ invariant22965 /\  tau)
    -> invariant22828'



end


theory Flash_abstr_hint_319

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_319:
    (invariantX25698 /\ invariantX20245 /\ invariantX11823 /\ invariantX4256 /\ invariantX3213 /\ invariantX2224 /\ invariantX1777 /\ invariantX1670 /\ invariantX1313 /\ invariantX918 /\ invariantX778 /\ invariantX580 /\ invariant1 /\ invariant2 /\ invariant1614 /\ invariant1887 /\ invariant5156 /\ invariant22849 /\ invariant23187 /\ invariant23232 /\ invariant23233 /\  tau)
    -> invariant22849'



end


theory Flash_abstr_hint_320

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_320:
    (invariantX30985 /\ invariantX25478 /\ invariantX20245 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1777 /\ invariantX1201 /\ invariantX1188 /\ invariantX778 /\ invariantX507 /\ invariant2 /\ invariant1594 /\ invariant4212 /\ invariant4488 /\ invariant4628 /\ invariant8376 /\ invariant10393 /\ invariant10540 /\ invariant22850 /\ invariant23187 /\ invariant23264 /\ invariant23294 /\ invariant23693 /\  tau)
    -> invariant22850'



end


theory Flash_abstr_hint_321

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_321:
    (invariantX25698 /\ invariantX20245 /\ invariantX11770 /\ invariantX9390 /\ invariantX4256 /\ invariantX3213 /\ invariantX2112 /\ invariantX1777 /\ invariantX1271 /\ invariantX778 /\ invariant2 /\ invariant4628 /\ invariant5156 /\ invariant5363 /\ invariant15406 /\ invariant22897 /\ invariant23232 /\ invariant23693 /\ invariant57233 /\ invariant57236 /\  tau)
    -> invariant22897'



end


theory Flash_abstr_hint_322

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_322:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX11823 /\ invariantX4256 /\ invariantX2224 /\ invariantX1777 /\ invariantX1122 /\ invariantX1109 /\ invariantX933 /\ invariantX866 /\ invariantX778 /\ invariantX369 /\ invariant2 /\ invariant1594 /\ invariant1674 /\ invariant12660 /\ invariant22898 /\ invariant23233 /\  tau)
    -> invariant22898'



end


theory Flash_abstr_hint_323

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_323:
    (invariantX30985 /\ invariantX25478 /\ invariantX20245 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1981 /\ invariantX1777 /\ invariantX1201 /\ invariantX1188 /\ invariantX778 /\ invariantX507 /\ invariant2 /\ invariant1594 /\ invariant4668 /\ invariant8261 /\ invariant8805 /\ invariant8951 /\ invariant22919 /\ invariant23465 /\ invariant23494 /\ invariant23496 /\  tau)
    -> invariant22919'



end


theory Flash_abstr_hint_324

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_324:
    (invariantX25683 /\ invariantX20245 /\ invariantX11770 /\ invariantX9390 /\ invariantX4289 /\ invariantX3213 /\ invariantX2112 /\ invariantX1981 /\ invariantX1777 /\ invariantX1271 /\ invariantX1218 /\ invariantX778 /\ invariant2 /\ invariant4668 /\ invariant5333 /\ invariant6244 /\ invariant22779 /\ invariant22964 /\ invariant23496 /\ invariant57717 /\ invariant57720 /\  tau)
    -> invariant22964'



end


theory Flash_abstr_hint_325

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_325:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1981 /\ invariantX1777 /\ invariantX1122 /\ invariantX1109 /\ invariantX933 /\ invariantX778 /\ invariantX369 /\ invariant2 /\ invariant1594 /\ invariant1655 /\ invariant13168 /\ invariant22965 /\  tau)
    -> invariant22965'



end


theory Flash_abstr_hint_326

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_326:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1981 /\ invariantX1777 /\ invariantX1039 /\ invariantX778 /\ invariantX580 /\ invariant1 /\ invariant2 /\ invariant1875 /\ invariant4668 /\ invariant5440 /\ invariant6244 /\ invariant6453 /\ invariant11486 /\ invariant15274 /\ invariant22780 /\ invariant22827 /\ invariant22828 /\ invariant22997 /\ invariant23465 /\ invariant23496 /\ invariant28744 /\  tau)
    -> invariant22997'



end


theory Flash_abstr_hint_327

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_327:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1981 /\ invariantX1777 /\ invariantX1039 /\ invariantX778 /\ invariantX580 /\ invariant1 /\ invariant2 /\ invariant1887 /\ invariant4668 /\ invariant5480 /\ invariant6244 /\ invariant6453 /\ invariant11539 /\ invariant15274 /\ invariant22780 /\ invariant22827 /\ invariant22828 /\ invariant23026 /\ invariant23494 /\ invariant23496 /\ invariant28891 /\  tau)
    -> invariant23026'



end


theory Flash_abstr_hint_328

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_328:
    (invariantX30985 /\ invariantX25478 /\ invariantX20245 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1777 /\ invariantX1201 /\ invariantX1188 /\ invariantX778 /\ invariantX507 /\ invariant2 /\ invariant1594 /\ invariant4628 /\ invariant8376 /\ invariant10393 /\ invariant10540 /\ invariant23187 /\ invariant23661 /\ invariant23691 /\ invariant23693 /\  tau)
    -> invariant23187'



end


theory Flash_abstr_hint_329

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_329:
    (invariantX25698 /\ invariantX20245 /\ invariantX11770 /\ invariantX9390 /\ invariantX4256 /\ invariantX3213 /\ invariantX2112 /\ invariantX1777 /\ invariantX1271 /\ invariantX1218 /\ invariantX778 /\ invariant2 /\ invariant4628 /\ invariant5156 /\ invariant5363 /\ invariant22849 /\ invariant23232 /\ invariant23693 /\ invariant57817 /\ invariant57820 /\  tau)
    -> invariant23232'



end


theory Flash_abstr_hint_330

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_330:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX11823 /\ invariantX4256 /\ invariantX2224 /\ invariantX1777 /\ invariantX1122 /\ invariantX1109 /\ invariantX933 /\ invariantX778 /\ invariantX369 /\ invariant2 /\ invariant1594 /\ invariant1674 /\ invariant12660 /\ invariant23233 /\  tau)
    -> invariant23233'



end


theory Flash_abstr_hint_331

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_331:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1777 /\ invariantX1039 /\ invariantX778 /\ invariantX580 /\ invariant1 /\ invariant2 /\ invariant1875 /\ invariant4628 /\ invariant5156 /\ invariant5268 /\ invariant5440 /\ invariant11539 /\ invariant15406 /\ invariant22850 /\ invariant22897 /\ invariant22898 /\ invariant23264 /\ invariant23661 /\ invariant23693 /\ invariant28744 /\  tau)
    -> invariant23264'



end


theory Flash_abstr_hint_332

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_332:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1777 /\ invariantX1039 /\ invariantX778 /\ invariantX580 /\ invariant1 /\ invariant2 /\ invariant1887 /\ invariant4628 /\ invariant5156 /\ invariant5268 /\ invariant5480 /\ invariant11694 /\ invariant15406 /\ invariant22850 /\ invariant22897 /\ invariant22898 /\ invariant23294 /\ invariant23691 /\ invariant23693 /\ invariant28891 /\  tau)
    -> invariant23294'



end


theory Flash_abstr_hint_333

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_333:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1981 /\ invariantX1777 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX580 /\ invariant1 /\ invariant2 /\ invariant1875 /\ invariant4546 /\ invariant4668 /\ invariant5440 /\ invariant6244 /\ invariant6453 /\ invariant11486 /\ invariant22779 /\ invariant22919 /\ invariant22964 /\ invariant22965 /\ invariant23465 /\ invariant23496 /\ invariant28744 /\  tau)
    -> invariant23465'



end


theory Flash_abstr_hint_334

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_334:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX14103 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1981 /\ invariantX1777 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX580 /\ invariant1 /\ invariant2 /\ invariant1887 /\ invariant4565 /\ invariant4668 /\ invariant5480 /\ invariant6244 /\ invariant6453 /\ invariant11539 /\ invariant22779 /\ invariant22919 /\ invariant22964 /\ invariant22965 /\ invariant23494 /\ invariant23496 /\ invariant28891 /\  tau)
    -> invariant23494'



end


theory Flash_abstr_hint_335

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_335:
    (invariantX30985 /\ invariantX25683 /\ invariantX20245 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1981 /\ invariantX1777 /\ invariantX1231 /\ invariantX1218 /\ invariantX1039 /\ invariantX933 /\ invariantX918 /\ invariantX778 /\ invariant2 /\ invariant4488 /\ invariant4546 /\ invariant4668 /\ invariant23496 /\ invariant29184 /\  tau)
    -> invariant23496'



end


theory Flash_abstr_hint_336

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_336:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1777 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX580 /\ invariant1 /\ invariant2 /\ invariant1875 /\ invariant4546 /\ invariant4628 /\ invariant5156 /\ invariant5268 /\ invariant5440 /\ invariant11539 /\ invariant22849 /\ invariant23187 /\ invariant23232 /\ invariant23233 /\ invariant23661 /\ invariant23693 /\ invariant28744 /\  tau)
    -> invariant23661'



end


theory Flash_abstr_hint_337

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_337:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX14103 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1777 /\ invariantX1670 /\ invariantX1039 /\ invariantX778 /\ invariantX580 /\ invariant1 /\ invariant2 /\ invariant1887 /\ invariant4565 /\ invariant4628 /\ invariant5156 /\ invariant5268 /\ invariant5480 /\ invariant11694 /\ invariant22849 /\ invariant23187 /\ invariant23232 /\ invariant23233 /\ invariant23691 /\ invariant23693 /\ invariant28891 /\  tau)
    -> invariant23691'



end


theory Flash_abstr_hint_338

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_338:
    (invariantX30985 /\ invariantX25698 /\ invariantX20245 /\ invariantX11823 /\ invariantX4289 /\ invariantX4256 /\ invariantX2224 /\ invariantX1777 /\ invariantX1231 /\ invariantX1218 /\ invariantX1039 /\ invariantX933 /\ invariantX918 /\ invariantX778 /\ invariant2 /\ invariant4488 /\ invariant4565 /\ invariant4628 /\ invariant23693 /\ invariant29184 /\  tau)
    -> invariant23693'



end


theory Flash_abstr_hint_339

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_339:
    (invariantX20245 /\ invariantX11770 /\ invariantX8564 /\ invariantX2112 /\ invariantX1889 /\ invariantX580 /\ invariantX21 /\ invariant7365 /\ invariant18271 /\ invariant21913 /\ invariant23869 /\ invariant29184 /\  tau)
    -> invariant23869'



end


theory Flash_abstr_hint_340

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_340:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX11770 /\ invariantX8564 /\ invariantX4903 /\ invariantX2112 /\ invariantX1889 /\ invariantX1039 /\ invariantX580 /\ invariantX149 /\ invariant5 /\ invariant2568 /\ invariant7365 /\ invariant21913 /\ invariant24100 /\ invariant24212 /\ invariant28744 /\ invariant28891 /\ invariant29184 /\ invariant29347 /\ invariant30249 /\ invariant30526 /\ invariant30532 /\ invariant55935 /\ invariant56536 /\  tau)
    -> invariant24100'



end


theory Flash_abstr_hint_341

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_341:
    (invariantX30985 /\ invariantX20245 /\ invariantX14103 /\ invariantX11770 /\ invariantX8564 /\ invariantX4903 /\ invariantX2112 /\ invariantX1889 /\ invariantX1039 /\ invariantX580 /\ invariantX149 /\ invariant5 /\ invariant2568 /\ invariant7365 /\ invariant21913 /\ invariant22027 /\ invariant22426 /\ invariant24100 /\ invariant24212 /\ invariant28744 /\ invariant28891 /\ invariant29184 /\ invariant29347 /\ invariant30368 /\ invariant30624 /\ invariant30630 /\ invariant56134 /\ invariant56821 /\  tau)
    -> invariant24212'



end


theory Flash_abstr_hint_342

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_342:
    (invariantX30985 /\ invariantX20245 /\ invariantX6051 /\ invariantX5294 /\ invariantX4289 /\ invariantX4256 /\ invariantX3248 /\ invariantX3233 /\ invariantX778 /\ invariantX747 /\ invariantX734 /\ invariantX721 /\ invariantX702 /\ invariantX639 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant10393 /\ invariant24306 /\ invariant24522 /\  tau)
    -> invariant24306'



end


theory Flash_abstr_hint_343

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_343:
    (invariantX30985 /\ invariantX20245 /\ invariantX6051 /\ invariantX5294 /\ invariantX4289 /\ invariantX4256 /\ invariantX3248 /\ invariantX3233 /\ invariantX778 /\ invariantX747 /\ invariantX734 /\ invariantX721 /\ invariantX702 /\ invariantX639 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant10393 /\ invariant24416 /\ invariant24627 /\  tau)
    -> invariant24416'



end


theory Flash_abstr_hint_344

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_344:
    (invariantX30985 /\ invariantX20245 /\ invariantX6051 /\ invariantX5294 /\ invariantX4289 /\ invariantX4256 /\ invariantX3248 /\ invariantX3233 /\ invariantX1670 /\ invariantX778 /\ invariantX747 /\ invariantX734 /\ invariantX702 /\ invariantX639 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant4546 /\ invariant10393 /\ invariant24522 /\  tau)
    -> invariant24522'



end


theory Flash_abstr_hint_345

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_345:
    (invariantX30985 /\ invariantX20245 /\ invariantX6051 /\ invariantX5294 /\ invariantX4289 /\ invariantX4256 /\ invariantX3248 /\ invariantX3233 /\ invariantX1670 /\ invariantX778 /\ invariantX747 /\ invariantX734 /\ invariantX702 /\ invariantX639 /\ invariantX48 /\ invariantX38 /\ invariant1655 /\ invariant4546 /\ invariant10393 /\ invariant24627 /\  tau)
    -> invariant24627'



end


theory Flash_abstr_hint_346

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_346:
    (invariantX25798 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX11617 /\ invariantX2238 /\ invariantX2026 /\ invariantX1839 /\ invariantX1503 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX664 /\ invariantX580 /\ invariantX21 /\ invariant6793 /\ invariant24666 /\ invariant24874 /\ invariant24877 /\ invariant24916 /\ invariant24932 /\ invariant24934 /\ invariant26060 /\ invariant27945 /\ invariant27989 /\ invariant30801 /\  tau)
    -> invariant24666'



end


theory Flash_abstr_hint_347

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_347:
    (invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX2238 /\ invariantX2112 /\ invariantX1628 /\ invariantX1335 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX535 /\ invariantX309 /\ invariantX68 /\ invariant1511 /\ invariant24722 /\ invariant24932 /\ invariant26265 /\ invariant29356 /\ invariant30854 /\ invariant34033 /\ invariant34399 /\  tau)
    -> invariant24722'



end


theory Flash_abstr_hint_348

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_348:
    (invariantX25798 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX11770 /\ invariantX8564 /\ invariantX5187 /\ invariantX2238 /\ invariantX2026 /\ invariantX918 /\ invariantX841 /\ invariantX580 /\ invariantX21 /\ invariant18433 /\ invariant24724 /\ invariant24934 /\ invariant26113 /\ invariant26265 /\ invariant34232 /\ invariant34596 /\  tau)
    -> invariant24724'



end


theory Flash_abstr_hint_349

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_349:
    (invariantX25798 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX25276 /\ invariantX20245 /\ invariantX15612 /\ invariantX11617 /\ invariantX2238 /\ invariantX2026 /\ invariantX1839 /\ invariantX1503 /\ invariantX918 /\ invariantX841 /\ invariantX664 /\ invariantX580 /\ invariantX21 /\ invariant6793 /\ invariant24874 /\ invariant25142 /\ invariant25156 /\ invariant25158 /\ invariant27050 /\ invariant27945 /\ invariant27989 /\ invariant30872 /\  tau)
    -> invariant24874'



end


theory Flash_abstr_hint_350

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_350:
    (invariantX25798 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX11617 /\ invariantX2238 /\ invariantX2026 /\ invariantX1839 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX664 /\ invariantX580 /\ invariantX21 /\ invariant6793 /\ invariant24874 /\ invariant24877 /\ invariant25224 /\ invariant25226 /\ invariant27052 /\ invariant27945 /\ invariant27946 /\ invariant27989 /\ invariant27990 /\ invariant30876 /\  tau)
    -> invariant24877'



end


theory Flash_abstr_hint_351

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_351:
    (invariantX25798 /\ invariantX25698 /\ invariantX25683 /\ invariantX25478 /\ invariantX20245 /\ invariantX11617 /\ invariantX2238 /\ invariantX2026 /\ invariantX1839 /\ invariantX1503 /\ invariantX1313 /\ invariantX918 /\ invariantX841 /\ invariantX664 /\ invariantX580 /\ invariantX21 /\ invariant6793 /\ invariant24874 /\ invariant24916 /\ invariant25248 /\ invariant25296 /\ invariant25298 /\ invariant27094 /\ invariant30911 /\  tau)
    -> invariant24916'



end


theory Flash_abstr_hint_352

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use import Flash_abstr_invpreds
use import Flash_abstr_trdefs

lemma hint_352:
    (invariantX25698 /\ invariantX25683 /\ invariantX20245 /\ invariantX2238 /\ invariantX2112 /\ invariantX1981 /\ invariantX1628 /\ invariantX1365 /\ invariantX1335 /\ invariantX941 /\ invariantX909 /\ invariantX874 /\ invariantX535 /\ invariantX309 /\ invariantX68 /\ invariant1511 /\ invariant24722 /\ invariant24932 /\ invariant25156 /\ invariant25224 /\ invariant25296 /\ invariant26274 /\ invariant27945 /\ invariant27989 /\ invariant29356 /\ invariant30927 /\ invariant34033 /\ invariant34399 /\  tau)
    -> invariant24932'



end


theory Flash_abstr_hint_353

use import bool.Bool
use import int.Int
use import Flash_abstr_defs
use