-
Notifications
You must be signed in to change notification settings - Fork 169
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
Monoidal structure on cartesian categories #1031
base: master
Are you sure you want to change the base?
Conversation
lgtm. Wait for #1030 and it will be an easy corollary that categories with coproducts have a monoidal structure. |
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.
Absence of automation is one of the characteristic features of UniMath, and it would be good to keep it that way.
The use of rewrite
by itself is quite bad already, since no information on where this rewrite is being done is retained in the proof script (imagine lhs of your rewrite lemma occurs more than once in the goal). Automated rewrite does not even retain the information which lemma should be rewritten with.
Please change those proofs.
Definition binprod_assoc_r {x y z} : C⟦x ⊗ (y ⊗ z), (x ⊗ y) ⊗ z⟧. | ||
Proof. | ||
eauto with binprod. |
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.
Can you please replace this automated tactic by an explicit constructon?
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.
The construction found by eauto
here turns out to be this one:
Proof.
apply BinProductArrow.
- apply BinProductArrow.
+ apply BinProductPr1.
+ exact (BinProductPr2 _ _ · BinProductPr1 _ _).
- exact (BinProductPr2 _ _ · BinProductPr2 _ _).
Defined.
Definition binprod_assoc_l {x y z} : C⟦(x ⊗ y) ⊗ z, x ⊗ (y ⊗ z)⟧. | ||
Proof. | ||
eauto with binprod. |
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.
Can you please replace this automated tactic by an explicit constructon?
While I certainly understand the concerns about automation in Unimath, there are certain proofs I'd rather not write out in full. Perhaps I'll put these in a separate repository. Feel free to cherry-pick the less problematic commits from the PR (e.g. uniqueness of products), or to close this. |
I don't know a definition of "automation" in proof scripts, Benedikt. |
On 29/10/2018 06:58, Daniel R. Grayson wrote:
I don't know a definition of "automation" in proof scripts, Benedikt.
Surely, using a tactic called `auto` or `eauto` or `autorewrite` counts
as such?
|
It seems particularly worrying that the automation is being used to define a structure ( |
I've never used any of those, nor do I use eapply, but let me take a look at this pull request and see whether there is something problematic about such proofs. We currently have no appeals to |
Is there anywhere the reasoning behind the portability arguments is set forth? I don't see how UniMath could realistically transition to another proof assistant without effectively reproving everything, as the tactic language (even without automation) seems heavily specific to Coq — but perhaps such methods have been discussed in the past? |
I'm fine rewriting the eauto proofs, that would be easy. Note that |
Well, yes, it's probably a vain hope, and no, there is no "argument" set forth, especially since now we have 960274 lines of proofs. |
With certain properties of products, some of which were necessary for the proofs.