Skip to Content.
Sympa Menu

coq-club - [Coq-Club] ring_simplify blowup

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] ring_simplify blowup


Chronological Thread 
  • From: Abhishek Anand <abhishek.anand.iitg AT gmail.com>
  • To: coq-club <coq-club AT inria.fr>
  • Subject: [Coq-Club] ring_simplify blowup
  • Date: Thu, 31 Dec 2015 19:39:37 -0500
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=abhishek.anand.iitg AT gmail.com; spf=Pass smtp.mailfrom=abhishek.anand.iitg AT gmail.com; spf=None smtp.helo=postmaster AT mail-yk0-f179.google.com
  • Ironport-phdr: 9a23:sewdExU0mRKRkUP5rQgHOEyjONXV8LGtZVwlr6E/grcLSJyIuqrYZhGPt8tkgFKBZ4jH8fUM07OQ6PC+HzJbqsra+Fk5M7VyFDY9wf0MmAIhBMPXQWbaF9XNKxIAIcJZSVV+9Gu6O0UGUOz3ZlnVv2HgpWVKQka3CwN5K6zPF5LIiIzvjqbpq8OVPV4D2GH1SIgxBSv1hD2ZjtMRj4pmJ/R54TryiVwMRd5rw3h1L0mYhRf265T41pdi9yNNp6BprJYYAu2pN5g/GLdfFXEtN30/rJngsgCGRg+S7FMdVH8Xm1xGGV6Wwgv9W8LYuCv7repw22GzO8TwQfhgUD6i7rxrRRyugSEOMTJ/8WDLheR/iatapFSqoBkpkN2cW52cKPcrJvCVRtgdX2cUBss=

Recently, I have often encountered situations where ring_simplify would never return and take up all the memory (~16GB).
In these cases, the involved ring (say Rslow) is a computational one, i.e. the ring operations have concrete implementations in Coq, and are not axiomatic.

When ask ring_simplify to simplify the exact same formula in a different ring, e.g. Z, or a totally abstract one, ring_simplify immediately returns with the  correct answer (normal form).
Once I obtain the normal form, I can go back to the original ring Rslow, and quickly
prove the correctness of the normal form using the ring tactic. 

Is there a way to debug such problems with ring_simplify on Rslow. I tried making all the ring operations of Rslow opaque, but that did not help -- maybe I missed something.
Is there a way to find the cause of the blowup?

Here is one problematic formula :

((X * (c * c) + xy * s * c + Y * (s * s)) * (X1 * X1) +
(Y * (c * c) - xy * s * c + X * (s * s)) * (Y1 * Y1) +
((X0 * c + Y0 * s) * X1 + (Y0 * c + - X0 * s) * Y1 +
 (xy * (1 - 2 * (s * s)) + (Y - X) * (2 * s * c)) * X1 *
 Y1 + cc))


Thanks,



Archive powered by MHonArc 2.6.18.

Top of Page