<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coq/test-suite/prerequisite, branch master</title>
<subtitle>The formal proof system</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/'/>
<entry>
<title>Update headers in the whole code base.</title>
<updated>2020-03-18T11:15:43+00:00</updated>
<author>
<name>Théo Zimmermann</name>
</author>
<published>2020-03-18T11:14:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=a99776e10e0b2198d2b811ad82631111fb450f8a'/>
<id>a99776e10e0b2198d2b811ad82631111fb450f8a</id>
<content type='text'>
Add headers to a few files which were missing them.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add headers to a few files which were missing them.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix test-suite fo non maximal implicit arguments</title>
<updated>2020-01-07T09:11:21+00:00</updated>
<author>
<name>SimonBoulier</name>
</author>
<published>2019-12-19T15:51:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=a2802a0b93aa24e4340be6cb3de7fff865028189'/>
<id>a2802a0b93aa24e4340be6cb3de7fff865028189</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove spurious uses of CoInductive in SSR prerequisite.</title>
<updated>2019-10-01T14:04:48+00:00</updated>
<author>
<name>Pierre-Marie Pédrot</name>
</author>
<published>2019-10-01T14:04:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=336466ddd256dea9ef0dd9a009433a35534601a9'/>
<id>336466ddd256dea9ef0dd9a009433a35534601a9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update ml-style headers to new year.</title>
<updated>2019-06-17T16:08:32+00:00</updated>
<author>
<name>Théo Zimmermann</name>
</author>
<published>2019-06-06T09:22:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=42e09b6d888a29cc6273b8e77d5f9a2e5582abc4'/>
<id>42e09b6d888a29cc6273b8e77d5f9a2e5582abc4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix `simpl_rel` and notations, `{pred T}` alias, `nonPropType` interface</title>
<updated>2019-04-30T04:28:26+00:00</updated>
<author>
<name>Georges Gonthier</name>
</author>
<published>2019-04-24T21:02:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=7875955f513f55c1fcef90becdaaa572baa3e5ae'/>
<id>7875955f513f55c1fcef90becdaaa572baa3e5ae</id>
<content type='text'>
** Changed definition of `simpl_rel` to `T -&gt; `simpl_pred T`, so that
`inE` will now expand `a \in r b`, when `r := [rel x y | R]` to `R{b/x,
a/y}`, as the expanding coercion is now only inserted in the _last_
application.
The old definition made it possible to have a `simpl_rel &gt;-&gt; rel`
coercion that does not block expansion, but this can now be achieved
more economically with the `Arguments … /.` annotation.
**  Deleted the `[rel of P]` notation which is no longer needed with
the new `simpl_rel` definition, and was broken anyway.
** Added `relpre f R` definition of functional preimage of a notation.
** `comp` and `idfun` are now proper definitions, using the `Arguments
… /.` annotation to specify simplification on application.
** Added `{pred T}` syntax for the alias of `pred T` in the `pred_sort`
coercion class; deleted the `pred_class` alias: one should either
use `pred_sort` in `Coercion` declarations, or `{pred T}` in type casts.
Used `{pred T}` as appropriate in localised predicate (`{in …, …}`) theory.
Extended and corrected `pred` coercion internal documentation.
** Simplified the `predType` structure by removing the redundant
explicit `mem_pred` subfield, and replacing it with an interlocked
projection; deleted `mkPredType`, now replaced by `PredType`.
** Added (and extensively documented) a `nonPropType` interface
matching types that do _not_ have sort `Prop`, and used it to remove
the non-standard maximal implicits annotation on `Some_inj` introduced
in #6911 by @anton-trumov; included `test-suite` entry for `nonPropType`.
** Documented the design of the four structures used to control the
matching of `inE` and related predicate rewriting lemmas; added `test-suite`
entry covering the `pred` rewriting control idioms.
** Used `only printing` annotations to get rid of token concatenation
hacks.
** Fixed boolean and general `if b return t then …` notation so that
`b` is bound in `t`. This is a minor source of incompatibility for
misuses of this syntax when `b` is _not_ bound in `t`, and `(if b then
…) : t` should have been used instead.
** Reserved all `ssreflect`, `ssrfun` and `ssrbool` notation at the top
of the file, adding some printing boxes, and removing some spurious
`[pred .. =&gt; ..]` reserved notation.
** Fixed parsing precedence and format of `&lt;hidden n&gt;` notation, and
declared and put it in an explicit `ssr_scope`.
** Used module-and-functor idiom to ensure that the `simpl_pred T &gt;-
pred T` _and_ `simpl_pred T &gt;-&gt; {pred T}` coercions are realised by the
_same_ Gallina constant.
** Updated `CREDITS`.
The policy implied by this PR: that `{pred T}` should systematically
be used as the generic collective predicate type, was implemented in MathComp
math-comp/math-comp#237. As a result  `simpl_pred &gt;-&gt; pred_sort` coercions
became more frequent, as it turned out they were not, as incorrectly stated
in `ssrbool` internal comments, impossible: while the `simplPredType`
canonical instance does solve all `simpl_pred T =~= pred_sort ?pT`
instances, it does _not_ solve `simpl_pred T =~= {pred T}`, and so the
coercion will be used in that case. However it appeared that having two
different coercion constants confused the SSReflect keyed matching
heuristic, hence the fix introduced here. This has entailed some
rearrangement of `ssrbool`: the large  `Predicates` section had to be
broken up as the module-functor idiom for aliasing coercions cannot be
used inside a section.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
** Changed definition of `simpl_rel` to `T -&gt; `simpl_pred T`, so that
`inE` will now expand `a \in r b`, when `r := [rel x y | R]` to `R{b/x,
a/y}`, as the expanding coercion is now only inserted in the _last_
application.
The old definition made it possible to have a `simpl_rel &gt;-&gt; rel`
coercion that does not block expansion, but this can now be achieved
more economically with the `Arguments … /.` annotation.
**  Deleted the `[rel of P]` notation which is no longer needed with
the new `simpl_rel` definition, and was broken anyway.
** Added `relpre f R` definition of functional preimage of a notation.
** `comp` and `idfun` are now proper definitions, using the `Arguments
… /.` annotation to specify simplification on application.
** Added `{pred T}` syntax for the alias of `pred T` in the `pred_sort`
coercion class; deleted the `pred_class` alias: one should either
use `pred_sort` in `Coercion` declarations, or `{pred T}` in type casts.
Used `{pred T}` as appropriate in localised predicate (`{in …, …}`) theory.
Extended and corrected `pred` coercion internal documentation.
** Simplified the `predType` structure by removing the redundant
explicit `mem_pred` subfield, and replacing it with an interlocked
projection; deleted `mkPredType`, now replaced by `PredType`.
** Added (and extensively documented) a `nonPropType` interface
matching types that do _not_ have sort `Prop`, and used it to remove
the non-standard maximal implicits annotation on `Some_inj` introduced
in #6911 by @anton-trumov; included `test-suite` entry for `nonPropType`.
** Documented the design of the four structures used to control the
matching of `inE` and related predicate rewriting lemmas; added `test-suite`
entry covering the `pred` rewriting control idioms.
** Used `only printing` annotations to get rid of token concatenation
hacks.
** Fixed boolean and general `if b return t then …` notation so that
`b` is bound in `t`. This is a minor source of incompatibility for
misuses of this syntax when `b` is _not_ bound in `t`, and `(if b then
…) : t` should have been used instead.
** Reserved all `ssreflect`, `ssrfun` and `ssrbool` notation at the top
of the file, adding some printing boxes, and removing some spurious
`[pred .. =&gt; ..]` reserved notation.
** Fixed parsing precedence and format of `&lt;hidden n&gt;` notation, and
declared and put it in an explicit `ssr_scope`.
** Used module-and-functor idiom to ensure that the `simpl_pred T &gt;-
pred T` _and_ `simpl_pred T &gt;-&gt; {pred T}` coercions are realised by the
_same_ Gallina constant.
** Updated `CREDITS`.
The policy implied by this PR: that `{pred T}` should systematically
be used as the generic collective predicate type, was implemented in MathComp
math-comp/math-comp#237. As a result  `simpl_pred &gt;-&gt; pred_sort` coercions
became more frequent, as it turned out they were not, as incorrectly stated
in `ssrbool` internal comments, impossible: while the `simplPredType`
canonical instance does solve all `simpl_pred T =~= pred_sort ?pT`
instances, it does _not_ solve `simpl_pred T =~= {pred T}`, and so the
coercion will be used in that case. However it appeared that having two
different coercion constants confused the SSReflect keyed matching
heuristic, hence the fix introduced here. This has entailed some
rearrangement of `ssrbool`: the large  `Predicates` section had to be
broken up as the module-functor idiom for aliasing coercions cannot be
used inside a section.
</pre>
</div>
</content>
</entry>
<entry>
<title>[ssr] under: rewrite takes an optional bool arg</title>
<updated>2019-04-02T18:25:00+00:00</updated>
<author>
<name>Erik Martin-Dorel</name>
</author>
<published>2018-05-29T21:07:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=bf4fdaa1836a17e4d36d38ba47959d1f50155a7b'/>
<id>bf4fdaa1836a17e4d36d38ba47959d1f50155a7b</id>
<content type='text'>
* If this flag under=true: enable flag with_evars of refine_with
  to create evar(s) if the "under lemma" has non-inferable args.

* Backward compatibility of ssr rewrite is kept.

* Fix test-suite/ssr/dependent_type_err.v
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* If this flag under=true: enable flag with_evars of refine_with
  to create evar(s) if the "under lemma" has non-inferable args.

* Backward compatibility of ssr rewrite is kept.

* Fix test-suite/ssr/dependent_type_err.v
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixing #8416 (Print Assumptions missing module information from compiled files).</title>
<updated>2018-09-05T20:26:59+00:00</updated>
<author>
<name>Hugo Herbelin</name>
</author>
<published>2018-09-05T19:56:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=899f3eb1f65ad2e6a3fababa0213ac63e2501bbe'/>
<id>899f3eb1f65ad2e6a3fababa0213ac63e2501bbe</id>
<content type='text'>
This fixes the fix 1522b989 to #7192.

The remaining Not_found after 1522b989 should have rung a bell that
something was still strange.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes the fix 1522b989 to #7192.

The remaining Not_found after 1522b989 should have rung a bell that
something was still strange.
</pre>
</div>
</content>
</entry>
<entry>
<title>[ssr] import ssreflect test suite from math-comp</title>
<updated>2018-05-15T07:58:47+00:00</updated>
<author>
<name>Enrico Tassi</name>
</author>
<published>2018-04-12T08:08:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=15059d887c3059e6d925310be860dd2a3cf97796'/>
<id>15059d887c3059e6d925310be860dd2a3cf97796</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Change Implicit Arguments to Arguments in test-suite</title>
<updated>2018-03-31T00:48:17+00:00</updated>
<author>
<name>Jasper Hugunin</name>
</author>
<published>2018-02-23T04:06:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=0fa8b8cb53050d48187fd2577f2fef0f1a45d024'/>
<id>0fa8b8cb53050d48187fd2577f2fef0f1a45d024</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup API for registering universe binders.</title>
<updated>2017-12-01T09:16:49+00:00</updated>
<author>
<name>Matthieu Sozeau</name>
</author>
<published>2017-11-22T17:39:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=4fcf1fa32ff395d6bd5f6ce4803eee18173c4d36'/>
<id>4fcf1fa32ff395d6bd5f6ce4803eee18173c4d36</id>
<content type='text'>
- Regularly declared for for polymorphic constants
- Declared globally for monomorphic constants.

  E.g mono@{i} := Type@{i} is printed as
  mono@{mono.i} := Type@{mono.i}.

  There can be a name clash if there's a module and a constant of the
  same name. It is detected and is an error if the constant is first
  but is not detected and the name for the constant not
  registered (??) if the constant comes second.

Accept VarRef when registering universe binders

Fix two problems found by Gaëtan where binders were not registered properly

Simplify API substantially by not passing around a substructure of an
already carrier-around structure in interpretation/declaration code of
constants and proofs

Fix an issue of the stronger restrict universe context + no evd leak

This is uncovered by not having an evd leak in interp_definition, and
the stronger restrict_universe_context. This patch could be backported
to 8.7, it could also be triggered by the previous restrict_context I
think.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Regularly declared for for polymorphic constants
- Declared globally for monomorphic constants.

  E.g mono@{i} := Type@{i} is printed as
  mono@{mono.i} := Type@{mono.i}.

  There can be a name clash if there's a module and a constant of the
  same name. It is detected and is an error if the constant is first
  but is not detected and the name for the constant not
  registered (??) if the constant comes second.

Accept VarRef when registering universe binders

Fix two problems found by Gaëtan where binders were not registered properly

Simplify API substantially by not passing around a substructure of an
already carrier-around structure in interpretation/declaration code of
constants and proofs

Fix an issue of the stronger restrict universe context + no evd leak

This is uncovered by not having an evd leak in interp_definition, and
the stronger restrict_universe_context. This patch could be backported
to 8.7, it could also be triggered by the previous restrict_context I
think.
</pre>
</div>
</content>
</entry>
</feed>
