Skip to Content.
Sympa Menu

ssreflect - RE: [ssreflect] ssreflect and omega

Subject: Ssreflect Users Discussion List

List archive

RE: [ssreflect] ssreflect and omega


Chronological Thread 
  • From: Georges Gonthier <>
  • To: Assia Mahboubi <>, "" <>
  • Subject: RE: [ssreflect] ssreflect and omega
  • Date: Mon, 22 Feb 2016 11:20:56 +0000
  • Accept-language: en-GB, en-US
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None ; spf=Pass ; spf=Pass
  • Ironport-phdr: 9a23:A2gJcxc+94rFSMhVVYsE3CE4lGMj4u6mDksu8pMizoh2WeGdxc+/ZB7h7PlgxGXEQZ/co6odzbGG7Oa9BSdav96oizMrTt9lb1c9k8IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUiv2OQc9HOnpAIma153xjLDtvcCPKF8WzBOGIppMbzyO5T3LsccXhYYwYo0Q8TDu5kVyRuJN2GlzLkiSlRuvru25/Zpk7jgC86l5r50IeezAcq85Vb1VCig9eyBwvZWz9EqLcQzaz2AHU2xetxNICQ/Y5hCyCr7qqSrz8M902COdIMf3ZbEyQzWrqalxHlugwjwcLTM39GzcluR1l7geoRS7phU5wojOYYjTOuA0NvfGZskXS25MVdp5UjdbR4K6dYoGSesHJ+dR6Yfn8Qggtxy7UCahA/ngxyQAqXjwwa073v5pRQ7B2hAgHt8UmHHVp8/yL6AcTaa+y6yenmaLVO9fxTqosNuASRsmu/zZGOsoKcc=
  • Spamdiagnosticmetadata: NSPM
  • Spamdiagnosticoutput: 1:23

I'm afraid this is not correct: a multirule rewrites the first subterm to
which one of the rules applies in a left-to-right traversal of the goal
(caveat: literal matches have priority), with the first rule from the
multirule tree in left-to-right order. For repeated rewrites the selection
process is repeated anew. You can see this in test6 by doing rewrite
2!multi4, which uses eq_adda_b then eq0 on the left-hand side only).
The grouping of pairs does not affect the selection strategy, but it does
make it easier include one rule set in another, revrse the direction of a
rule subset, or (universally) quantify over parameters of a subset of rules
(there is special code that will omit unnecessary quantifiers for rules that
can be syntactically extracted).
Best,
Georges

-----Original Message-----
From:


[mailto:]
On Behalf Of Assia Mahboubi
Sent: 22 February 2016 10:46
To:

Subject: Re: [ssreflect] ssreflect and omega

Hi François,

thank you for spotting this problem in the manual. In the attached file, I
have tried to clarify the description of the semantic of rewrite with
multi-rules and to illustrate its behaviour.

Now a multi-rule nested in another multi-rule is treated just like an atomic
rule. Hence

`rewrite !(eq1, (eq2, eq3))`.

behaves as:

repeat (
repeat rewrite eq1;
repeat (
repeat rewrite eq2;
repeat rewrite eq3
)
).

Hence nested parentheses can be used to implement a normalization procedure
which has to complete a certain sub-normalisation before switching to its
next step.

assia

Le 22/02/2016 08:54, François Pottier a écrit :
>
> Hi Assia,
>
> Thanks for lia4mathcomp, this should be very useful.
>
>> The "Multi-rule rewriting" paragraph, p. 41, includes an example of
>> multi-rule implementing the translation of a signature on nat into
>> another one, which illustrates the possibilities of control (by
>> nested parentheses) mentioned by Georges.
>
> I must say that I find this part of the manual very mysterious. The
> manual says "Note that the inner parentheses of trecE guide the
> rewrite strategy operated by this tactic." OK, so the parentheses
> serve *some* purpose... But what is their exact semantics?
>



Archive powered by MHonArc 2.6.18.

Top of Page