mb hybrid Sections GenAutomata Doc

Def R preserves P == x,y:T. P(x) (x R y) P(y)

is mentioned by

Thm* E:TaggedEventStruct, P:TraceProperty(E). MCS(E)(P) asyncR(E) preserves P delayableR(E) preserves P (P refines (Causal(E) No-dup-deliver(E))) ((switch_inv(E) No-dup-send(E)) fuses P)[switch_inv_theorem]
Thm* E:EventStruct. layerR(E)^-1 preserves No-dup-send(E)[no_duplicate_send_layer]
Thm* E:TaggedEventStruct. safetyR(E) preserves switch_inv(E)[switch_inv_safety]
Thm* E:EventStruct, P:TraceProperty(E). R_permutation(E) preserves P asyncR(E) preserves P[permutable_implies_async]
Thm* E:EventStruct. asyncR(E) preserves No-dup-send(E)[no_duplicate_send_async]
Thm* E:EventStruct, P:TraceProperty(E). R_permutation(E) preserves P delayableR(E) preserves P[permutable_implies_delayable]
Thm* E:EventStruct. delayableR(E) preserves No-dup-send(E)[no_duplicate_send_delayable]
Thm* E:EventStruct. R_permutation(E) preserves No-dup-deliver(E)[P_no_dup_permutable]
Thm* E:TaggedEventStruct, P,I:TraceProperty(E). MCS(E)(P) safetyR(E) preserves I (I refines single-tag-decomposable(E)) (I fuses P)[M_DASH_C_DASH_S_SPACE_induction]
Thm* E:TaggedEventStruct. safetyR(E) preserves AD-normal(E)[switch_normal_safety]
Thm* E:TaggedEventStruct. safetyR(E) preserves Tag-by-msg(E)[P_tag_by_msg_safety]
Thm* E:EventStruct. safetyR(E) preserves No-dup-deliver(E)[P_no_dup_deliver_safety]
Thm* E:TaggedEventStruct, P,I,J,K:TraceProperty(E) , R:(Trace(E)Trace(E)Prop). tag_splitable(E;R) (tr_1,tr_2:Trace(E). (tr_1 R tr_2) (tr_2 R tr_1)) R preserves P R preserves K (tr:Trace(E). (I K)(tr) (tr':Trace(E). I(tr') & J(tr') & (tr R tr'))) (((I J) K) fuses P) ((I K) fuses P)[normal_form_fusion]
Thm* E:EventStruct, P:TraceProperty(E), L,L1:|E| List. memorylessR(E) preserves P P(L) P((L -x =msg=(E) y L1))[memoryless_remove_msgs]
Thm* E:EventStruct, P:TraceProperty(E). R_strong_safety(E) preserves P memorylessR(E) preserves P[strong_safety_implies_memoryless]
Thm* E:EventStruct, P:TraceProperty(E). R_strong_safety(E) preserves P safetyR(E) preserves P[strong_safety_implies_safety]
Thm* E:EventStruct. send-enabledR(E) preserves No-dup-deliver(E)[P_no_dup_send_enabled]
Thm* E:EventStruct. safetyR(E) preserves Causal(E)[P_causal_safety]
Thm* E:EventStruct. safetyR(E) preserves No-dup-send(E)[no_duplicate_send_safety]
Thm* E:EventStruct. R_strong_safety(E) preserves No-dup-deliver(E)[P_no_dup_strong_safety]
Def switchable(E)(P) == safetyR(E) preserves P & memorylessR(E) preserves P & (ternary) composableR(E) preserves P & send-enabledR(E) preserves P & asyncR(E) preserves P & delayableR(E) preserves P & (P refines Causal(E)) & (P refines No-dup-deliver(E))[b_switchable]
Def switchable0(E)(P) == safetyR(E) preserves P & memorylessR(E) preserves P & (ternary) composableR(E) preserves P & send-enabledR(E) preserves P & asyncR(E) preserves P & delayableR(E) preserves P[switchable0]
Def MCS(E)(P) == memorylessR(E) preserves P & (ternary) composableR(E) preserves P & safetyR(E) preserves P[memoryless_composable_safety]

In prior sections: mb nat

Try larger context: GenAutomata

mb hybrid Sections GenAutomata Doc