Skip to content

Commit e72c2bb

Browse files
committed
Add response_message_properties_send_event' (event or message is publishable)
1 parent cd6fc16 commit e72c2bb

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

src/lib/communication/DY.Lib.Communication.RequestResponse.Properties.fst

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,26 @@ val response_message_properties_send_event:
354354
let response_message_properties_send_event #invs #a #config #crpreds tr client response req_meta_data =
355355
response_message_properties #invs #a #config #crpreds tr client response req_meta_data
356356

357+
val response_message_properties_send_event':
358+
{|protocol_invariants|} ->
359+
#a:Type -> {|comm_layer_reqres_config a|} ->
360+
{|crpreds:comm_reqres_preds a|} ->
361+
tr:trace ->
362+
client:principal -> response:a -> req_meta_data:comm_meta_data a ->
363+
Lemma
364+
(requires
365+
trace_invariant tr /\
366+
has_communication_layer_reqres_predicates a /\
367+
event_triggered tr client (CommClientSendRequest client req_meta_data.server req_meta_data.request req_meta_data.key <: communication_reqres_event a) /\
368+
event_triggered tr client (CommClientReceiveResponse client req_meta_data.server req_meta_data.request response req_meta_data.key <: communication_reqres_event a)
369+
)
370+
(ensures
371+
event_triggered tr req_meta_data.server (CommServerSendResponse req_meta_data.server req_meta_data.request response req_meta_data.key <: communication_reqres_event a) \/
372+
(is_publishable tr req_meta_data.key /\ is_well_formed a (is_publishable tr) response)
373+
)
374+
let response_message_properties_send_event' #invs #a #config #crpreds tr client response req_meta_data =
375+
response_message_properties #invs #a #config #crpreds tr client response req_meta_data
376+
357377
val response_message_properties_send_request:
358378
{|protocol_invariants|} ->
359379
#a:Type -> {|comm_layer_reqres_config a|} ->

0 commit comments

Comments
 (0)