Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] "Sequence is associative." (?)

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] "Sequence is associative." (?)


Chronological Thread 
  • From: Cao Qinxiang <caoqinxiang AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] "Sequence is associative." (?)
  • Date: Wed, 23 Jan 2019 18:48:11 +0800
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=caoqinxiang AT gmail.com; spf=Pass smtp.mailfrom=caoqinxiang AT gmail.com; spf=None smtp.helo=postmaster AT mail-oi1-f171.google.com
  • Ironport-phdr: 9a23:LygbDRCWA+59WPSIddu6UyQJP3N1i/DPJgcQr6AfoPdwSPv4r8bcNUDSrc9gkEXOFd2Cra4c26yO6+jJYi8p2d65qncMcZhBBVcuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6JvjvGo7Vks+7y/2+94fcbglUhzexe69+IAmrpgjNq8cahpdvJLwswRXTuHtIfOpWxWJsJV2Nmhv3+9m98p1+/SlOovwt78FPX7n0cKQ+VrxYES8pM3sp683xtBnMVhWA630BWWgLiBVIAgzF7BbnXpfttybxq+Rw1DWGMcDwULs5Xymp4aV2Rx/ykCoIODA5/2PXhMJ+j6xVvQyvqABkzoHOfI2YLuBzcr/Bcd4YQ2dKQ8ZfVzZGAoO5d4YCEfAOPeFFpIfmplsOqxS/BQi2C+PpxT9Dm3j70rEg3OQmCAHG3QogHt0PsHvOqtX1O7wfUe+wzKbSzDXDa+la1iv66IjNax0sp+yHU7x3ccrU00YvFgXFg02RqYzjJTOV1/4Cv3KV7+p6U++klm0pqxlprzSx2sshjpPFi4EVx1ze6Cl0wYQ4KcelREN5fNKpFoZbuTuAOItsWMwiRnlluCYkxb0Cvp62ZC0Kx44mxx7bcvCHdImI7g/6WOafPDt1hm9pdKiwhxa19kigxen8Wdeu3FlWqSpFl8HAtnEL1xPN9siKUuVx8lul1DqV1A3e6vtILV01mKfZMZIt37w9mocLvUTGBCD2mUH2jKGMdkUj/+il8/joba/hpp+FNo90jA7/MqU0lcy5DuQ1KQcOX22B9uS90L3v51H2QLJPjvEuiKnWrIjaJdgHpq6+GwJazoEj6w+mAzi61NQYgGIIIUleeBOHiojpI0vBLOr5Dfe5mVSskS1ky+rIPr37Ud3xKS3Il66kdrJg4WZdzhAyxJZR/cF6ELYEddn6XQfItdrIDxY/PETgyO/gEdR7xoIXX22nDaqQMaeUuliNsLF8a9KQbZMY7W6uY8Mu4OTj2CdgyA0tOJKx1J5SU0iWW/FvIkGXe33p245THmIDvw54R+vv2gTbDWxjIk2qVqd53QkVTZq8BN6aFI+oib2Fmiy8G88OPz0UOhW3CX7tMr68dbIMZSaVeJEzlzUFUf2mStZk20jx7Un1zL1oKueS8Sod58ru

This is an interesting question. I try the following script.

Variable a: nat.
Variable b: nat.

Ltac foo1 := try reflexivity; try split.
Ltac foo2 := try reflexivity.

Goal exists c, (c = a /\ c = a + b) /\ c = b.
eexists.
split; (foo1; foo2).
Abort.

Goal exists c, (c = a /\ c = a + b) /\ c = b.
eexists.
(split; foo1); foo2.
Abort.

I thought the outcome should be different. But it turns out to be the same. Anyone can explain that?

Best,
Qinxiang Cao
Shanghai Jiao Tong University, John Hopcroft Center
Room 1110-2, SJTUSE Building
800 Dongchuan Road, Shanghai, China, 200240



On Wed, Jan 23, 2019 at 6:19 PM Théo Zimmermann <theo.zimmi AT gmail.com> wrote:


Le mer. 23 janv. 2019 à 10:33, Jeremy Dawson <Jeremy.Dawson AT anu.edu.au> a écrit :

Hi,

thanks for all the answers to my previous questions, some of which I'm
still working through.

In https://coq.inria.fr/refman/proof-engine/ltac.html
under Semantics then under Sequence it says
Sequence is associative.

I would take that to mean that
(tac1 ; tac2) ; tac3
is the same as
tac1 ; (tac2 ; tac3)

But is this so?  What if the tactics do some instantiating of
existential variables, then the order of attacking subgoals would matter?

The order would be the same in both cases.


Also, for the same reason, it would be useful to know, for
tac1 ; tac2
which order tac2 is applied to the subgoals resulting from tac1

This can depend on tactic, but in practice it would be in the listed order of the goals for virtually all tactics.


Cheers,

Jeremy



Archive powered by MHonArc 2.6.18.

Top of Page