Skip to content

Chapter4#1

Closed
ghost wants to merge 3 commits intochapter4from
unknown repository
Closed

Chapter4#1
ghost wants to merge 3 commits intochapter4from
unknown repository

Conversation

@ghost
Copy link
Copy Markdown

@ghost ghost commented Nov 3, 2015

I've incorporated your feedback from yesterday.

@ghost
Copy link
Copy Markdown
Author

ghost commented Nov 12, 2015

These commits we haven't reviewed together yet:

  • 456148d 2015-11-12 | TYPOGRAPHY: adjustments (HEAD, chapter4)

    Various little changes.

    • removing unnecessary paragraph indentation
    • some single-sentence paragraphs were merged with the previous paragraphs
  • dc7e0e2 2015-11-10 | PROPOSITION: the side-condition was made more specific.

  • c4af151 2015-11-10 | PROPOSITION: rephrasing of the explanation of the meaning of '[I:A|B]'

  • c26afd8 2015-11-10 | PROPOSITION: Added an explicit definition of the notation for enriching the global environment (we use throughout the document)

  • f4fc000 2015-11-09 | PROPOSITION: Added "if" and "then" words missing in the original sentence.

  • a40b908 2015-11-09 | PROPOSITION: Example was simplified

  • ce6b80d 2015-11-05 | FIX: removing references to Γ which is not defined in a given context

  • 988e217 2015-11-05 | CLEANUP PROPOSITION: superfluous parentheses were removed

  • 42eca93 2015-11-05 | CLEANUP PROPOSITION: s/local context of parameters/context of parameters

  • 0c10882 2015-11-05 | CLEANUP PROPOSITION: removed unnecessary sentence.

  • 80b09a9 2015-11-04 | FIX: removing a reference to \Gamma, because it is undefined

  • a86b67b 2015-11-04 | CLEANUP PROPOSITION: s/Γ_P; Γ_C/Γ_P ∪ Γ_C/

  • b751382 2015-11-04 | ALPHA-CONVERSION: to some simpler names

  • 1140997 2015-11-03 | ENH: examples for 'strict positivity' were expanded

  • c6bd639 2015-11-03 | CLEANUP: s/List_A/List~A/g

  • 6df95ad 2015-11-03 | CLEANUP: the definition of "type of constructor" was rephrased in order to make it more clear

  • 9d035a2 2015-11-02 | ENH: adding a definition of the concept "_ is an arity".

  • 0def0ab 2015-11-02 | CLEANUP: Presentation of examples was changed to make them more comprehensible.

@herbelin
Copy link
Copy Markdown
Owner

Hi, all these extra commits we did not already reviewed look good to me, up to the following exceptions.

  • In a86b67b, it should really be concatenation of lists, hence ";", and not union, as if there were sets. But maybe, what is missing is a sentence somewhere to explain that ";" is concatenation.
  • Also, in b751382, I'm sensitive to your motivation to simplify names, but since "t" is already used for terms, we would have to find another letter than s for sorts. Maybe r, if you insist in preferring r to s', and then we shall say somewhere that both r and s are used to denote sorts.
  • In 6df95ad, I would prefer that we say "that T is", or "that the expression T is", rather than 'that the term T is", because T is a type and it might be confusing to call it a term while it is more precisely a type. Also in the clauses, I would prefer we say "$T$ is $(I~t_1\ldots ~t_n)$ and similarly on the next line, so that there is no confusion with the symbol = which already has a meaning as a Coq term. Otherwise said, "is" is the equal sign of the metalanguage, the same way as "for all" is the ∀ sign of the metalanguage.

I also slightly hesitated about 0c10882, but after all, I agree that this information is more difficult to understand than useful.

@ghost
Copy link
Copy Markdown
Author

ghost commented Nov 18, 2015

Makes sense.

Commit a86b67b was reverted
and commit eed6e8c now replaces it.

Commit b751382 was reverted.

Commit 6df95ad was reverted
and commit a810f3b now replaces it.

Commit 0c10882 was reverted.

@ghost
Copy link
Copy Markdown
Author

ghost commented Nov 23, 2015

As you suggested on Friday evening, commit b0b0da6 changes the way how examples:

  1. of formal representation inductive definitions
  2. of proofs of strictly positive occurrence
    are presented.

These examples are now presented as (framed) figures which interested reader may inspect and uninterested reader can easily skip.

The figures are kept close to the position where their contents is relevant.

@ghost ghost closed this Dec 16, 2015
@ghost ghost deleted the chapter4 branch January 25, 2016 20:49
herbelin added a commit that referenced this pull request Jun 6, 2016
An Ltac trace printing mechanism was introduced in 8.4 which was
inadvertedly modified by a series of commits such as 8e10368,
91f44f1, ...

It was also sometimes buggy, iirc, when entering ML tactics which
themselves were calling ltac code.

It got really bad in 8.5 as in:

Tactic Notation "f" constr(x) := apply x. Ltac g x := f x.
Goal False.
idtac; f I. (* bad location reporting *)
g I.        (* was referring to tactic name "Top.Top#<>#1" *)

which this commit fixes.

I don't have a clear idea of what would be the best ltac tracing
mechanism, but to avoid it to be broken without being noticed, I
started to add some tests.

Eventually, it might be worth that an Ltac expert brainstrom on it!
herbelin added a commit that referenced this pull request Jun 12, 2016
Tactic Notation "f" constr(x) := apply x. Ltac g x := f x.
Goal False.
g I. (* Was printing Top.Top#<>#1 *)
idtac; f I. (* Was not properly locating error *)

This is a "a minima" fix.

This a different fix than in trunk, so the merge will have to take the
trunk version.
herbelin pushed a commit that referenced this pull request Jan 22, 2019
add some more material (preliminary provided in "tuto2" directory)
herbelin pushed a commit that referenced this pull request Aug 25, 2020
herbelin pushed a commit that referenced this pull request Nov 17, 2021
The conclusion of WF-MOD2 was WF(E; Mod(X:S1[:=S2]))[].

But S2 should not be optional.

In the case that S2 is not given here,
WF-MOD2 is same as WF-MOD1 with meaningless premises for S2.

rocq-prover@81f1219
changes the macro \Mod as:

-\newcommand{\Mod}[3]{{\sf Mod}({#1}:{#2}:={#3})}
+\newcommand{\Mod}[3]{{\sf Mod}({#1}:{#2}\,\zeroone{:={#3}})}

So, "[" and "]" added in WF-MOD2 seems accidental.
jfehrle added a commit that referenced this pull request Feb 9, 2022
ppedrot pushed a commit that referenced this pull request Apr 9, 2022
\Indp and \Indpstr contains "(#1)"
but all uses of \Indp and \Indpstr has empty first argument:
\Indp{}... and \Indpstr{}...

When the macros are introduced, \Ind also had "(#1)".
rocq-prover@384d390
rocq-prover@81f1219

Later, \Ind removes "(#1)".
rocq-prover@b94bdd3

"(#1)" was used to represent the local context of inductive definitions.

So, we can remove "(#1)" from \Indp and \Indpstr.
herbelin added a commit that referenced this pull request Dec 23, 2023
For efficiency, Rtree.inter tries to preserve as much of the common
structure of the two trees to intersect, so expansions are done
lazily.

Rtree.inter uses an history and I understand that this history is used
to ensure that only a finite number of expansions is needed to manage
overlapping expansions.

My understanding is that the effective expansion of variables is
missing when using this history: this is a reason for an
incompletenesses of Rtree.inter, which sometimes falls and fails in an
unsupported Rec/Var case.

The commit is fixing this, by instantiating the variables before using
the history.

A typical example of incompleteness before the fix is when comparing
the following equivalent trees:

  Rec{Mrec[Wrapper, 0],
      [(Rec{Nested[Unwrapper, 0], [(), (#1:0)]})]}

and

  Rec{Nested[Wrapper, 0],
      [(Rec{Mrec[Unwrapper, 0], [(), (Rec{Nested[Wrapper, 0], [(#1:0)]})]})]}

(example from success/fix.v)
herbelin added a commit that referenced this pull request Dec 23, 2023
For efficiency, Rtree.inter tries to preserve as much of the common
structure of the two trees to intersect, so expansions are done
lazily.

Rtree.inter uses an history and I understand that this history is used
to ensure that only a finite number of expansions is needed to manage
overlapping expansions.

My understanding is that the effective expansion of variables is
missing when using this history: this is a reason for an
incompletenesses of Rtree.inter, which sometimes falls and fails in an
unsupported Rec/Var case.

The commit is fixing this, by instantiating the variables before using
the history.

A typical example of incompleteness before the fix is when comparing
the following equivalent trees:

  Rec{Mrec[Wrapper, 0],
      [(Rec{Nested[Unwrapper, 0], [(), (#1:0)]})]}

and

  Rec{Nested[Wrapper, 0],
      [(Rec{Mrec[Unwrapper, 0], [(), (Rec{Nested[Wrapper, 0], [(#1:0)]})]})]}

(example from success/fix.v)
herbelin added a commit that referenced this pull request Dec 23, 2023
For efficiency, Rtree.inter tries to preserve as much of the common
structure of the two trees to intersect, so expansions are done
lazily.

Rtree.inter uses an history and I understand that this history is used
to ensure that only a finite number of expansions is needed to manage
overlapping expansions.

My understanding is that the effective expansion of variables is
missing when using this history: this is a reason for an
incompletenesses of Rtree.inter, which sometimes falls and fails in an
unsupported Rec/Var case.

The commit is fixing this, by instantiating the variables before using
the history.

A typical example of incompleteness before the fix is when comparing
the following equivalent trees:

  Rec{Mrec[Wrapper, 0],
      [(Rec{Nested[Unwrapper, 0], [(), (#1:0)]})]}

and

  Rec{Nested[Wrapper, 0],
      [(Rec{Mrec[Unwrapper, 0], [(), (Rec{Nested[Wrapper, 0], [(#1:0)]})]})]}

(example from success/fix.v)
herbelin pushed a commit that referenced this pull request Jun 5, 2024
For instance

Reserved Notation "#0 #1" (at level 30).
Reserved Notation "#0 #1 #2" (at level 40).
(* Warning: Notations "#0 #1" defined at level 30 and "#0 #1 #2" defined
at level 40 have incompatible prefixes.
[prefix-incompatible-level,parsing,default] *)

Reserved Notation "rocq-prover#20 rocq-prover#21 x #3 y" (x at level 30, at level 50).
Reserved Notation "rocq-prover#20 rocq-prover#21 x rocq-prover#34" (x at level 40, at level 50).
(* Warning: Notations "rocq-prover#20 rocq-prover#21 _ #3 _" defined at level 50 with
arguments constr at level 30 and "rocq-prover#20 rocq-prover#21 _ rocq-prover#34" defined at level 50
with arguments constr at level 40 have incompatible
prefixes. [prefix-incompatible-level,parsing,default] *)
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants