<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coq/printing, branch master</title>
<subtitle>The formal proof system</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/'/>
<entry>
<title>Relying on the abstract notion of streams with location for parsing.</title>
<updated>2021-04-23T13:34:29+00:00</updated>
<author>
<name>Hugo Herbelin</name>
</author>
<published>2021-04-05T14:40:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=e07efb3798c7c6ec54aac9093ab50fddfc6c6a5b'/>
<id>e07efb3798c7c6ec54aac9093ab50fddfc6c6a5b</id>
<content type='text'>
We also get rid of ploc.ml, now useless, relying a priori on more
robust code in lStream.ml for location reporting (see
e.g. parse_parsable in grammar.ml).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We also get rid of ploc.ml, now useless, relying a priori on more
robust code in lStream.ml for location reporting (see
e.g. parse_parsable in grammar.ml).
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove the :&gt; type cast</title>
<updated>2021-03-30T16:51:56+00:00</updated>
<author>
<name>Jim Fehrle</name>
</author>
<published>2021-03-07T18:15:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=eeb142f3c69d2467fbadd7dd1470ac1606b2e5bf'/>
<id>eeb142f3c69d2467fbadd7dd1470ac1606b2e5bf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[build] Split stdlib to it's own opam package.</title>
<updated>2021-03-03T15:06:14+00:00</updated>
<author>
<name>Emilio Jesus Gallego Arias</name>
</author>
<published>2020-06-22T15:52:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=ab98d847d237af3cd0e46edef42218be65cfc98f'/>
<id>ab98d847d237af3cd0e46edef42218be65cfc98f</id>
<content type='text'>
We introduce a new package structure for Coq:

- `coq-core`: Coq's OCaml tools code and plugins
- `coq-stdlib`: Coq's stdlib [.vo files]
- `coq`: meta-package that pulls `coq-{core,stdlib}`

This has several advantages, in particular it allows to install Coq
without the stdlib which is useful in several scenarios, it also open
the door towards a versioning of the stdlib at the package level.

The main user-visible change is that Coq's ML development files now
live in `$lib/coq-core`, for compatibility in the regular build we
install a symlink and support both setups for a while.

Note that plugin developers and even `coq_makefile` should actually
rely on `ocamlfind` to locate Coq's OCaml libs as to be more robust.

There is a transient state where we actually look for both
`$coqlib/plugins` and `$coqlib/../coq-core/plugins` as to support
the non-ocamlfind plus custom variables.

This will be much improved once #13617 is merged (which requires this
PR first), then, we will introduce a `coq.boot` library so finally
`coqdep`, `coqchk`, etc... can share the same path setup code.

IMHO the plan should work fine.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We introduce a new package structure for Coq:

- `coq-core`: Coq's OCaml tools code and plugins
- `coq-stdlib`: Coq's stdlib [.vo files]
- `coq`: meta-package that pulls `coq-{core,stdlib}`

This has several advantages, in particular it allows to install Coq
without the stdlib which is useful in several scenarios, it also open
the door towards a versioning of the stdlib at the package level.

The main user-visible change is that Coq's ML development files now
live in `$lib/coq-core`, for compatibility in the regular build we
install a symlink and support both setups for a while.

Note that plugin developers and even `coq_makefile` should actually
rely on `ocamlfind` to locate Coq's OCaml libs as to be more robust.

There is a transient state where we actually look for both
`$coqlib/plugins` and `$coqlib/../coq-core/plugins` as to support
the non-ocamlfind plus custom variables.

This will be much improved once #13617 is merged (which requires this
PR first), then, we will introduce a `coq.boot` library so finally
`coqdep`, `coqchk`, etc... can share the same path setup code.

IMHO the plan should work fine.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid using "subgoals" in the UI, it means the same as "goals"</title>
<updated>2021-01-13T23:24:23+00:00</updated>
<author>
<name>Jim Fehrle</name>
</author>
<published>2020-12-17T23:04:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=3da2dbe9728ae7f5b1860a8e3a6c458e6d976f84'/>
<id>3da2dbe9728ae7f5b1860a8e3a6c458e6d976f84</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move evaluable_global_reference from Names to Tacred.</title>
<updated>2020-12-21T12:55:32+00:00</updated>
<author>
<name>Pierre-Marie Pédrot</name>
</author>
<published>2020-10-29T12:59:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=63332cbd4ac59b39fdce63d9872aa52dd8a2fec6'/>
<id>63332cbd4ac59b39fdce63d9872aa52dd8a2fec6</id>
<content type='text'>
It is the only place where it starts making sense in the whole codebase. It also
fits nicely there since there are other functions manipulating this type in that
module.

In any case this type does not belong to the kernel.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is the only place where it starts making sense in the whole codebase. It also
fits nicely there since there are other functions manipulating this type in that
module.

In any case this type does not belong to the kernel.
</pre>
</div>
</content>
</entry>
<entry>
<title>Separate interning and pretyping of universes</title>
<updated>2020-11-25T12:09:35+00:00</updated>
<author>
<name>Gaëtan Gilbert</name>
</author>
<published>2020-11-18T15:45:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=81063864db93c3d736171147f0973249da85fd27'/>
<id>81063864db93c3d736171147f0973249da85fd27</id>
<content type='text'>
This allows proper treatment in notations, ie fixes #13303

The "glob" representation of universes (what pretyping sees) contains
only fully interpreted (kernel) universes and unbound universe
ids (for non Strict Universe Declaration).

This means universes need to be understood at intern time, so intern
now has a new "universe binders" argument. We cannot avoid this due to
the following example:

~~~coq
Module Import M. Universe i. End M.
Definition foo@{i} := Type@{i}.
~~~

When interning `Type@{i}` we need to know that `i` is locally bound to
avoid interning it as `M.i`.

Extern has a symmetrical problem:

~~~coq
Module Import M. Universe i. End M.
Polymorphic Definition foo@{i} := Type@{M.i} -&gt; Type@{i}.
Print foo. (* must not print Type@{i} -&gt; Type@{i} *)
~~~
(Polymorphic as otherwise the local `i` will be called `foo.i`)

Therefore extern also takes a universe binders argument.

Note that the current implementation actually replaces local universes
with names at detype type. (Asymmetrical to pretyping which only gets
names in glob terms for dynamically declared univs, although it's
capable of understanding bound univs too)

As such extern only really needs the domain of the universe
binders (ie the set of bound universe ids), we just arbitrarily pass
the whole universe binders to avoid putting `Id.Map.domain` at every
entry point.

Note that if we want to change so that detyping does not name locally
bound univs we would need to pass the reverse universe binders (map
from levels to ids, contained in the ustate ie in the evar map) to
extern.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows proper treatment in notations, ie fixes #13303

The "glob" representation of universes (what pretyping sees) contains
only fully interpreted (kernel) universes and unbound universe
ids (for non Strict Universe Declaration).

This means universes need to be understood at intern time, so intern
now has a new "universe binders" argument. We cannot avoid this due to
the following example:

~~~coq
Module Import M. Universe i. End M.
Definition foo@{i} := Type@{i}.
~~~

When interning `Type@{i}` we need to know that `i` is locally bound to
avoid interning it as `M.i`.

Extern has a symmetrical problem:

~~~coq
Module Import M. Universe i. End M.
Polymorphic Definition foo@{i} := Type@{M.i} -&gt; Type@{i}.
Print foo. (* must not print Type@{i} -&gt; Type@{i} *)
~~~
(Polymorphic as otherwise the local `i` will be called `foo.i`)

Therefore extern also takes a universe binders argument.

Note that the current implementation actually replaces local universes
with names at detype type. (Asymmetrical to pretyping which only gets
names in glob terms for dynamically declared univs, although it's
capable of understanding bound univs too)

As such extern only really needs the domain of the universe
binders (ie the set of bound universe ids), we just arbitrarily pass
the whole universe binders to avoid putting `Id.Map.domain` at every
entry point.

Note that if we want to change so that detyping does not name locally
bound univs we would need to pass the reverse universe binders (map
from levels to ids, contained in the ustate ie in the evar map) to
extern.
</pre>
</div>
</content>
</entry>
<entry>
<title>A step towards supporting pattern cast deeplier.</title>
<updated>2020-11-20T18:41:20+00:00</updated>
<author>
<name>Hugo Herbelin</name>
</author>
<published>2020-10-24T11:18:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=23924afa0e4d7ed9ca58fbf5f69dc57685d593fa'/>
<id>23924afa0e4d7ed9ca58fbf5f69dc57685d593fa</id>
<content type='text'>
We at least support a cast at the top of patterns in notations.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We at least support a cast at the top of patterns in notations.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add preliminary support for notations with large class (non-recursive) binders.</title>
<updated>2020-11-20T18:41:17+00:00</updated>
<author>
<name>Hugo Herbelin</name>
</author>
<published>2020-10-23T20:58:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=52b93b587b9cb53b0ed11c7d6cf5f328d7ee1479'/>
<id>52b93b587b9cb53b0ed11c7d6cf5f328d7ee1479</id>
<content type='text'>
We introduce a class of open binders which includes "x", "x:t", "'pat"
and a class of closed binders which includes "x", "(x:t)", "'pat".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We introduce a class of open binders which includes "x", "x:t", "'pat"
and a class of closed binders which includes "x", "(x:t)", "'pat".
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge PR #12218: Numeral notations for non inductive types</title>
<updated>2020-11-05T15:32:31+00:00</updated>
<author>
<name>coqbot-app[bot]</name>
</author>
<published>2020-11-05T15:32:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=afc828b3e207dd39c59d1501d570a88b2012fd2c'/>
<id>afc828b3e207dd39c59d1501d570a88b2012fd2c</id>
<content type='text'>
Reviewed-by: herbelin
Reviewed-by: JasonGross
Reviewed-by: jfehrle
Ack-by: Zimmi48
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reviewed-by: herbelin
Reviewed-by: JasonGross
Reviewed-by: jfehrle
Ack-by: Zimmi48
</pre>
</div>
</content>
</entry>
<entry>
<title>Nicer spacing when printing array literals</title>
<updated>2020-11-02T14:03:09+00:00</updated>
<author>
<name>Gaëtan Gilbert</name>
</author>
<published>2020-11-02T14:03:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=225a4ee2871b58661f9689255237a1e189ee6a4c'/>
<id>225a4ee2871b58661f9689255237a1e189ee6a4c</id>
<content type='text'>
From

    [|x; y; z | def : ty |]

to

    [| x; y; z | def : ty |]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
From

    [|x; y; z | def : ty |]

to

    [| x; y; z | def : ty |]
</pre>
</div>
</content>
</entry>
</feed>
