Skip to content
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

Draft
wants to merge 26 commits into
base: master
Choose a base branch
from

Conversation

Ryuji-Kawakami
Copy link

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.

@Ryuji-Kawakami Ryuji-Kawakami marked this pull request as draft December 3, 2024 02:14
@affeldt-aist
Copy link
Owner

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).
It would also be nice if you could restore blank lines between Qed. and Lemma .../Definition .... (it is easier to read and is less likely to cause errors when processing with documentation tools.)

+ 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').
Copy link
Owner

@affeldt-aist affeldt-aist Dec 23, 2024

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)

@affeldt-aist
Copy link
Owner

Comments will need to be removed when you moved from draft to PR.
Also, files deserve some documentation (look at other files for examples).

@affeldt-aist affeldt-aist self-requested a review December 23, 2024 01:10
Copy link
Owner

@affeldt-aist affeldt-aist left a 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).

@affeldt-aist
Copy link
Owner

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 :=
Copy link
Owner

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.
Copy link
Owner

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?".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants