-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Delay monad interface and model #147
base: master
Are you sure you want to change the base?
Conversation
fc16594
to
d284233
Compare
It would be nice if you could keep the examples about the delay monad in one file and the models about the delay monad in one file (this is to ease long-term maintenance). |
+ case/boolP: (odd (m'.+1)) => Hm'. | ||
* by rewrite fixpointE Hm' bindretf/= IH//= expnSr (mulnC (k^m') k) mulnA. | ||
* rewrite fixpointE ifN //= bindretf /= IH. | ||
** by rewrite uphalfE mulnn -expnM mul2n (even_halfK Hm'). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use -
instead of **
(this breaks the indentation pattern of two characters otherwise)
Comments will need to be removed when you moved from draft to PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a great addition and I understand that this is still in draft mode.
I wrote a few style-level comments that I think could help clarify the presentation of the code.
Rebase on top of master (that has moved from MathComp 2.2.0 to 2.3.0 is also needed,
we gave up on 2.2.0).
Rebasing on top top of master and using MathComp 2.3.0 should get rid at least of one CI error. |
(* generated by coqgen *) | ||
(******************************************************************************) | ||
Module MLTypes. | ||
Inductive ml_type : Set := |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This code, as well as other code below, is already present in example_typed_store.v
. Could you come up with a way to share this code to avoid copy-pasting? (This is important for maintenance and this can only clarify your work.)
@@ -0,0 +1,511 @@ | |||
Require Import JMeq. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file (other files as well) should come with a (short) comment at the top that explains what this file is about, in this case, answering the question, "what's the relation with typed_store_model.v?".
…metric morphism definition for while
We define the delay monad interface and prove the soundness of it. Additionally, we construct the model of combination with state monad and exception monad.
And we turned the typed store monad into a monad transformer as a composition of state monad transformer and exception monad transformer.