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: Jean-Christophe Léchenet <jean-christophe.lechenet AT irisa.fr>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] "Sequence is associative." (?)
  • Date: Wed, 23 Jan 2019 13:32:38 +0100

For the following kind of tactic _expression_, the associativity is not so clear:

Goal (True /\ (False \/ True))
  /\ (True /\ (False \/ True)).
Proof.
  Fail split; split; [|right].
  (* The command has indeed failed with message:
     Tactic failure: Incorrect number of goals (expected 4 tactics). *)
  split; (split; [|right]).

I understand that the manual treats ";" and "; [ ]" as two separate notations, in which case my example is not a contradiction to the associativity of ";".
However, it also notes that "; [ ]" binds more closely than ";", which does not seem to be the case in my example.

Jean-Christophe

Le 23/01/2019 à 11:18, Théo Zimmermann a écrit :


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