input-output-hk / ouroboros-high-assurance

High-assurance implementation of the Ouroboros protocol family
Apache License 2.0
1 stars 1 forks source link

Enforce the ability to send and receive “done” messages #59

Open jeltsch opened 1 year ago

jeltsch commented 1 year ago

Currently, the program type uses a type parameter 'M for the type of messages that can be sent or received. This makes it possible for concrete applications of process to not include a “done” message. However, the rest of the mini-protocol framework requires “done” messages to be permitted. As a result, in all uses of process the type parameter 'M is instantiated with 'm or_done. It would be much more natural to include the application of or_done directly in the definition of process, but this would currently break the use of corec for programs.

That said, there is a fix for this problem, realized in the Isabelle commits e72f8009a4f0 and da437a9f2823, which should go into Isabelle2023. As soon as Isabelle2023 is released, we shall do the following: