<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coq/engine, branch master</title>
<subtitle>The formal proof system</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/'/>
<entry>
<title>More efficient variable membership check for Logic.move.</title>
<updated>2021-04-20T08:54:34+00:00</updated>
<author>
<name>Pierre-Marie Pédrot</name>
</author>
<published>2020-12-24T19:27:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=9caadc38de0e1c7b3362081da9482fc4455220a7'/>
<id>9caadc38de0e1c7b3362081da9482fc4455220a7</id>
<content type='text'>
Instead of repeatedly crawling the same hypothesis again and again we
only iter the term once.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of repeatedly crawling the same hypothesis again and again we
only iter the term once.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove remote counter system</title>
<updated>2021-04-14T10:54:38+00:00</updated>
<author>
<name>Gaëtan Gilbert</name>
</author>
<published>2021-03-26T14:34:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=3efee577b4c92b38a987b40e555fae2c0a2023c4'/>
<id>3efee577b4c92b38a987b40e555fae2c0a2023c4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Put async worker id in universe names</title>
<updated>2021-04-14T10:54:05+00:00</updated>
<author>
<name>Gaëtan Gilbert</name>
</author>
<published>2021-04-01T17:35:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=004bf5770bdcdd1b35dd27f683c733505823e741'/>
<id>004bf5770bdcdd1b35dd27f683c733505823e741</id>
<content type='text'>
This removes the need for the remote counter.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This removes the need for the remote counter.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove unused UnivProblem.Set.subst_univs</title>
<updated>2021-04-06T11:30:13+00:00</updated>
<author>
<name>Gaëtan Gilbert</name>
</author>
<published>2021-04-06T11:30:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=e7c29762b995827288f09f7ad736185fb090d39c'/>
<id>e7c29762b995827288f09f7ad736185fb090d39c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a bug in UnivProblem</title>
<updated>2021-03-31T23:33:33+00:00</updated>
<author>
<name>Matthieu Sozeau</name>
</author>
<published>2021-03-31T23:33:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=65f0b34c9740788270b48700a7ce2b5338ba1f64'/>
<id>65f0b34c9740788270b48700a7ce2b5338ba1f64</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[flags] [profile] Remove bit-rotten CProfile code.</title>
<updated>2021-03-30T13:37:00+00:00</updated>
<author>
<name>Emilio Jesus Gallego Arias</name>
</author>
<published>2020-03-10T05:06:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=5d3c0a0326af68e85f1f1cfc6bfa2214b0052de8'/>
<id>5d3c0a0326af68e85f1f1cfc6bfa2214b0052de8</id>
<content type='text'>
As of today Coq has the `CProfile` infrastructure disabled by default,
untested, and not easily accessible.

It was decided that `CProfile` should remain not user-accessible, and
only available thus by manual editing of Coq code to switch the flag
and manually instrument functions.

We thus remove all bitrotten dead code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As of today Coq has the `CProfile` infrastructure disabled by default,
untested, and not easily accessible.

It was decided that `CProfile` should remain not user-accessible, and
only available thus by manual editing of Coq code to switch the flag
and manually instrument functions.

We thus remove all bitrotten dead code.
</pre>
</div>
</content>
</entry>
<entry>
<title>Further simplification of the term replacing code.</title>
<updated>2021-03-12T12:39:03+00:00</updated>
<author>
<name>Pierre-Marie Pédrot</name>
</author>
<published>2021-03-06T22:32:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=285419e99996354ad2056bc38725c7a592124e7c'/>
<id>285419e99996354ad2056bc38725c7a592124e7c</id>
<content type='text'>
We factorize the code for replace and subst, since it seems there is no
reason to keep them separate, not even performance. Some static invariants are
made explicit in the API.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We factorize the code for replace and subst, since it seems there is no
reason to keep them separate, not even performance. Some static invariants are
made explicit in the API.
</pre>
</div>
</content>
</entry>
<entry>
<title>Algorithmically faster algorithm for term replacing.</title>
<updated>2021-03-12T12:37:37+00:00</updated>
<author>
<name>Pierre-Marie Pédrot</name>
</author>
<published>2021-03-06T21:54:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=93ea9206cbf29617feb23646f95e794b11e87793'/>
<id>93ea9206cbf29617feb23646f95e794b11e87793</id>
<content type='text'>
Instead of recomputing the n-th lifts of terms for every subterm under a context,
we introduce a table storing the value of this lift across contexts. While not
the most efficient algorithmically, it is still much more efficient in practice and
does not exhibit the exponential behaviour of replacing under different subcontexts.

In an ideal world we would have an equality function on terms that allows to compute
equality up to lifts, which would prevent having to even compute the lift at all, but
the current fix has the advantage to be self-contained and not require dangerous
tweaking of an equality function which is already complex enough as it is.

Fixes #13896: cbn very slow.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of recomputing the n-th lifts of terms for every subterm under a context,
we introduce a table storing the value of this lift across contexts. While not
the most efficient algorithmically, it is still much more efficient in practice and
does not exhibit the exponential behaviour of replacing under different subcontexts.

In an ideal world we would have an equality function on terms that allows to compute
equality up to lifts, which would prevent having to even compute the lift at all, but
the current fix has the advantage to be self-contained and not require dangerous
tweaking of an equality function which is already complex enough as it is.

Fixes #13896: cbn very slow.
</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>Use make_case_or_project in auto_ind_decl</title>
<updated>2021-02-17T12:56:27+00:00</updated>
<author>
<name>Gaëtan Gilbert</name>
</author>
<published>2021-02-17T12:56:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=441bace297a4c31e5003cec93e46e6a47fa684d3'/>
<id>441bace297a4c31e5003cec93e46e6a47fa684d3</id>
<content type='text'>
Towards #5154 (but insufficient)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Towards #5154 (but insufficient)
</pre>
</div>
</content>
</entry>
</feed>
