-
Notifications
You must be signed in to change notification settings - Fork 12
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
Putnam 2017 B2 issues #184
Comments
Thanks for pointing this out!
At the time, our understanding was that
I tend to agree that this one does seem to be a bit awkwardly stated. At least for Lean + Isabelle, I think the goals are generally stated in a way that matches the one you've proposed. As we go through the modifications for the Coq problems, we should clear up any of these.
The formalizations are meant to be self-contained inside the theorem statement as is consistent with other competition math benchmarks we've seen. Also, our internal tooling happens to work best in this form, as does most of the other public tooling we are aware of. |
I have included a mathcomp-based formulation of your suggestion in #201. There is also an analogous change for the Lean problem, which was stated in the same way. The original formalization of this problem was probably somewhat awkward because it was among the first problems we started with. As the modifications for Coq continue, any other similar issues should clear up. Thanks again! |
Why is there all this casting between integers and naturals going on? Seems to me that the problem can be entirely stated using natural numbers. The way it is written now makes it seem like there is something special going on. Also, inconsistent usage between |
Also, for the Lean version, why not use |
From experience in proving stuff in Lean, it's easier to reason about sums over integers than nats as one is allowed all the ring operations. As an example, putnam_1988_b1 is much more annoying to prove if the statement is entirely in nats.
The
I agree that the way this is done right now is a bit cumbersome to parse. We will eventually find a better way to state these things, maybe with some new syntactic shortcuts we request of the Lean community, or as you suggest. For now, this is a somewhat lower priority task. |
Another one from the paper:
PutnamBench/coq/src/putnam_2017_b2.v
Lines 3 to 11 in 6ddcaac
Not only is this simpler, but the difference really matters. You can prove the original statement assuming this new statement, but not the other way around...
I'm seeing these kinds of patterns happen in other problems as well. My guess is that this happens because of the desire to inline all 'definitions' into the theorem. Why do this? Is there a problem with separate definitions?
The text was updated successfully, but these errors were encountered: