-
Notifications
You must be signed in to change notification settings - Fork 11
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
Tutorial, Equations: Basics #1
Conversation
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.
Thanks for the review request @thomas-lamiaux .
Speaking from the position of someone who is familiar with Coq but has never used Equations before, I'm probably quite close to the intended audience for this tutorial.
I don't have the knowledge to evaluate the completeness of this tutorial, but at least it seems pedagogically sound.
Co-authored-by: Neven Villani <[email protected]>
…ocs into tuto-Equations-basics
While writing this tutorial and reviewing with the developers, we have identified a behavior of By default, It is like that for
Moreover, the cost to change it is low as While changing the behavior, it was further realized that |
I suggest a different approach: merge now with a note about the issue and the workaround in the tutorial, and let users know that this workaround is not needed anymore after version X. When version X has been released and available to the users (as part of a Coq Platform release) for a while, then it will be time to obliterate the mention of this issue (and instead specify that this is the minimum version required to follow this tutorial). BTW, thank you Neven for the review. I was also planning to do one (from the same point of view of a non-Equation user), but it's difficult for me to find the time. It's good that this tutorial has been reviewed. Merging it now doesn't prevent improving it even more later... |
@Zimmi48 That is a reasonable position, and I guess it should be the default one once the documentation will be actually indexed on the version of the Coq platform. |
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.
A few cursory observations. I looked here while reading coq/rfcs#91.
I think hyperlinking will be essential to make the tutorial accessible to the entire community.
In its simplest form, [Equations] provides a practical interface to | ||
define functions on inductive types by pattern matching and recursion | ||
rather than using Fixpoint and match. |
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.
Why would someone prefer to use Equations instead of Fixpoint? Would be nice to show a comparative example first using Fixpoint, then using Equations.
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.
We thought about that but we already wanted to have a clear tutorial which was not the case before. Maybe be having a how-to "when to use Equations" could be useful ?
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.
IMO the first paragraph in any tutorial should state the benefit of reading the tutorial and of using the described feature. Stating the motivation (or goal) makes it much easier to follow/absorb the contents.
Indeed, this is a good idea for all documentation.
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.
It sounds like a good idea, but some packages like Equations will more than one tutorial. In this case, I think it could be interesting to have a first page like that https://coq.inria.fr/doc/V8.19.0/refman/language/core/index.html
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.
Sure. That first page should also state the benefit/purpose of the feature. It doesn't need to be an exhaustive statement.
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.
Also a good reason to use a first page, is that Equations is to particularly good to well-founded recursion or dependent functional programming, and it can hardly be explained in 5 minutes in the basic tutorials.
As you mentioned, in the intro it currently sounds weird.
A tutorial introducing the basics of the package Equations