coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Nicolas Magaud <magaud AT unistra.fr>
- To: coq-club AT inria.fr
- Subject: [Coq-Club] parallel proofs of some subgoals
- Date: Wed, 17 Nov 2021 11:41:02 +0100
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=magaud AT unistra.fr; spf=Pass smtp.mailfrom=magaud AT unistra.fr; spf=None smtp.helo=postmaster AT smtpout02-ext4.partage.renater.fr
- Dkim-filter: OpenDKIM Filter v2.10.3 zmtaauth02.partage.renater.fr 1E43BA0B9A
- Ironport-data: A9a23:kQ4v56IwDvMdhGY9FE+R1ZQlxSXFcZb7ZxGrkP8bfHC90W8ggT1RzjYYXGvUOPfbYDH8KdEnaY7i8U0H7ZXXzYNqS1BcGVNFHysb85KdbTi6Bh6tZH3KdpWroHqKXqzyU/GYRCwPZiKa9kjF3oTJ9yEmjPjRH+WkUoYoBwgqLeNaYHd54f5cs7Vh6mJYqYDR7zKl4bsekeWHULOW82Ic3lYv1k62gEgHUMIeF98vlgdWifhj5DcynpSOZX4VDfnZw3DQGuG4EgMmLtsvwo1V/kuBl/ssIsigjq78b1FSGPvfLRTSzGJfQbSrjRUEvCE027o2LrwScy+7iR3Qzow3kogR88bsEEFyZ8Ugm8xFO/VcOyR3MqRb9JfaJ3mkrdaaiUPcG5fp66k2XRlqY9VwFuFfWD0fpKNId1jhdCurjOWvhbm/V+NEndUmNMCtPYUFu3gmwyuxMBqMaYSbFv+MtcsBiW923tQUSK6YPZtDMC40OUyGPgkQb34JLrk7usuoolj2VQFCjEbM/f9vpzDHpOBq+KPoLMLSZ8DSH4BYjlrE4HrP5XjwDRxcLtGZwCaI6DSinIfycerAcNp6PNWFGjRC2zV/B1D/CSH6kXOgpOWhjVOiA4gaJlwIpmw2pLIu/UOmCMPwWRSkrWTCsAR0tx94ewElwFnl90YWy1/x6qs4ovppddonr9MsTHokzDdlWvv3UCd3vuT9pW21r9+pQPDbBcTRBXIEZDQYVwJD7cOLTEQb5v7QZo4LLZNZReEZ1d09L/5mYcT+a3guYRY36piG
- Ironport-hdrordr: A9a23:g3u43a9SW/c8sYF41bJuk+AUI+orL9Y04lQ7vn2ZKCYlEPBx9aiV8MjzsCWatN9/YgBFpTntAtjifZqjz+8S3WBhB8bGYOCOggLBR+sOjOvfKlbbakrDH4BmpN5dmtBFeaXNJGk/tsr86BS1CJIY3deKtJqwjePlxXF3QWhRGttdxjY8MQqdGlB7X01+GJQ0UKCE7s58ujK8dR0sH7+G76Y+MdT+mw==
Dear Club,
I sometimes use the goal selector “par:" to take advantage of task
parallelism in proving the subgoals at stake.
Upon completion of the proof, I want to write a Ltac tactic to prove the
whole goal in one go. In this case, I can not use the “par:” construction
anymore.
Attached is a small example (example.v) where I would like to do :
“intros p q; destruct p; destruct q; par:solve [left;reflexivity |
right;discriminate]” to take advantage of parallel computations. Here the
data-type has 20 constructors, but in the real world, I face goals where the
inductive type has around 50/100 constructors and more than 3 variables are
involved in the statement, which is not a decidability property any more.
Of course, I can decompose in 2 steps :
intros p q; destruct p; destruct q.
par:solve [left;reflexivity | right;discriminate].
but what I would like to do is to have a Ltac definition for this sequence of
tactics :
Ltac mysolve := let p := fresh in let q:= fresh in intros p q; destruct p;
destruct q; par:solve [left;reflexivity | right;discriminate].
Such a definition is rejected because of the par: construct occurrence. If I
remove “par:”, it works fine but subgoals are not proved in parallel anymore.
Is there a way to use the par goal selector inside a sequence of tactics in
order to take advantage of the available parallelism ?
Thanks in advance,
Nicolas Magaud
Attachment:
example_par.v
Description: Binary data
- [Coq-Club] parallel proofs of some subgoals, Nicolas Magaud, 11/17/2021
Archive powered by MHonArc 2.6.19+.