<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coq/theories/QArith, branch master</title>
<subtitle>The formal proof system</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/'/>
<entry>
<title>Support locality attributes for Hint Rewrite (including export)</title>
<updated>2021-01-18T12:08:17+00:00</updated>
<author>
<name>Gaëtan Gilbert</name>
</author>
<published>2021-01-07T12:55:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=4419a101a4f5a108be90cf4e420f0b6961e6caac'/>
<id>4419a101a4f5a108be90cf4e420f0b6961e6caac</id>
<content type='text'>
We deprecate unspecified locality as was done for Hint.

Close #13724
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We deprecate unspecified locality as was done for Hint.

Close #13724
</pre>
</div>
</content>
</entry>
<entry>
<title>Modify QArith/Qreduction.v to compile with -mangle-names</title>
<updated>2020-12-16T03:02:03+00:00</updated>
<author>
<name>Jasper Hugunin</name>
</author>
<published>2020-12-16T03:02:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=b987bced399decd3b4247e2b4bb716d36846ee68'/>
<id>b987bced399decd3b4247e2b4bb716d36846ee68</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Modify QArith/QArith_base.v to compile with -mangle-names</title>
<updated>2020-12-16T01:56:25+00:00</updated>
<author>
<name>Jasper Hugunin</name>
</author>
<published>2020-12-16T01:56:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=063aa71ee8ab179699254c4e74855e7ab1f94086'/>
<id>063aa71ee8ab179699254c4e74855e7ab1f94086</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Explicitly annotate all hint declarations of the standard library.</title>
<updated>2020-11-16T11:28:27+00:00</updated>
<author>
<name>Pierre-Marie Pédrot</name>
</author>
<published>2020-11-14T16:55:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=68cd077344ce37db1a601079dbc4fdcae6c8d41f'/>
<id>68cd077344ce37db1a601079dbc4fdcae6c8d41f</id>
<content type='text'>
By default Coq stdlib warnings raise an error, so this is really required.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By default Coq stdlib warnings raise an error, so this is really required.
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename Dec and HexDec to Decimal and Hexadecimal</title>
<updated>2020-11-04T23:20:53+00:00</updated>
<author>
<name>Pierre Roux</name>
</author>
<published>2020-10-28T09:32:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=36ac26532028bfc6f84e4dfc849b51f42a3d8286'/>
<id>36ac26532028bfc6f84e4dfc849b51f42a3d8286</id>
<content type='text'>
As noted by Hugo Herbelin, Dec is rather used for "decidable".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As noted by Hugo Herbelin, Dec is rather used for "decidable".
</pre>
</div>
</content>
</entry>
<entry>
<title>[numeral notation] R</title>
<updated>2020-11-04T23:20:19+00:00</updated>
<author>
<name>Pierre Roux</name>
</author>
<published>2020-09-03T11:19:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=b6c13afd432ce1957315e94c1ce8c06aa848fe5a'/>
<id>b6c13afd432ce1957315e94c1ce8c06aa848fe5a</id>
<content type='text'>
Previously real constants were parsed by an unproved OCaml code. The
parser and printer are now implemented in Coq, which will enable a
proof and hopefully make it easier to maintain / make evolve.

Previously reals were all parsed as an integer, an integer multiplied
by a power of ten or an integer divided by a power of ten. This means
1.02 and 102e-2 were both parsed as 102 / 100 and could not be tell
apart when printing. So the printer had to choose between two
representations : without exponent or without decimal dot. The choice
was made heuristically toward a most compact representation.

Now, decimal dot is parsed as a rational and exponents are parsed as a
product or division by a power of ten. For instance, 1.02 is parsed as
Q2R (102 # 100) whereas 102e-2 is parsed as IZR 102 / IZR (Z.pow_pos
10 2).

1.02 and 102e-2 remain equal (proved by reflexivity) but 1.02e1 = Q2R
(102 # 100) * 10 and 10.2 = Q2R (102 # 10) no longer are.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously real constants were parsed by an unproved OCaml code. The
parser and printer are now implemented in Coq, which will enable a
proof and hopefully make it easier to maintain / make evolve.

Previously reals were all parsed as an integer, an integer multiplied
by a power of ten or an integer divided by a power of ten. This means
1.02 and 102e-2 were both parsed as 102 / 100 and could not be tell
apart when printing. So the printer had to choose between two
representations : without exponent or without decimal dot. The choice
was made heuristically toward a most compact representation.

Now, decimal dot is parsed as a rational and exponents are parsed as a
product or division by a power of ten. For instance, 1.02 is parsed as
Q2R (102 # 100) whereas 102e-2 is parsed as IZR 102 / IZR (Z.pow_pos
10 2).

1.02 and 102e-2 remain equal (proved by reflexivity) but 1.02e1 = Q2R
(102 # 100) * 10 and 10.2 = Q2R (102 # 10) no longer are.
</pre>
</div>
</content>
</entry>
<entry>
<title>[numeral notation] Q</title>
<updated>2020-11-04T23:20:19+00:00</updated>
<author>
<name>Pierre Roux</name>
</author>
<published>2020-09-03T11:16:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=ec24b26be7795af27256d39431e1c4e3d42fe3b7'/>
<id>ec24b26be7795af27256d39431e1c4e3d42fe3b7</id>
<content type='text'>
Previously rationals were all parsed as a pair numerator, denominator.
This means 1.02 and 102e-2 were both parsed as 102 # 100 and could not
be tell apart when printing. So the printer had to choose between two
representations : without exponent or without decimal dot. The choice
was made heuristically toward a most compact representation.

Now, decimal dot is still parsed as a power of ten denominator but
exponents are parsed as a product or division by Z.pow_pos. For
instance, 1.02 is parsed as 102 # 100 whereas 102e-2 is parsed as
(102 # 1) / (Z.pow_pos 10 2 # 1).

1.02 and 102e-2 remain equal (proved by reflexivity) but 1.02e1
= (102 # 100) * (10 # 1) = 1020 # 100 and 10.2 = 102 # 10 no longer are.

A nice side effect is that exponents can no longer blow up during
parsing. Previously 1e1_000_000 literally produced a numerator with a
million digits, now it just yields (1 # 1) * (Z.pow_pos 10 1_000_000 # 1).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously rationals were all parsed as a pair numerator, denominator.
This means 1.02 and 102e-2 were both parsed as 102 # 100 and could not
be tell apart when printing. So the printer had to choose between two
representations : without exponent or without decimal dot. The choice
was made heuristically toward a most compact representation.

Now, decimal dot is still parsed as a power of ten denominator but
exponents are parsed as a product or division by Z.pow_pos. For
instance, 1.02 is parsed as 102 # 100 whereas 102e-2 is parsed as
(102 # 1) / (Z.pow_pos 10 2 # 1).

1.02 and 102e-2 remain equal (proved by reflexivity) but 1.02e1
= (102 # 100) * (10 # 1) = 1020 # 100 and 10.2 = 102 # 10 no longer are.

A nice side effect is that exponents can no longer blow up during
parsing. Previously 1e1_000_000 literally produced a numerator with a
million digits, now it just yields (1 # 1) * (Z.pow_pos 10 1_000_000 # 1).
</pre>
</div>
</content>
</entry>
<entry>
<title>Renaming Numeral.v into Number.v</title>
<updated>2020-10-30T13:11:19+00:00</updated>
<author>
<name>Pierre Roux</name>
</author>
<published>2020-09-12T07:10:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=2d44c8246eccba7c1c452cbfbc6751cd222d0a6a'/>
<id>2d44c8246eccba7c1c452cbfbc6751cd222d0a6a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename Numeral Notation command to Number Notation</title>
<updated>2020-09-11T20:23:24+00:00</updated>
<author>
<name>Pierre Roux</name>
</author>
<published>2020-09-09T21:33:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=6551f14196784e323688e682877229bc7f901659'/>
<id>6551f14196784e323688e682877229bc7f901659</id>
<content type='text'>
Keep Numeral Notation wit a deprecation warning.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Keep Numeral Notation wit a deprecation warning.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add hexadecimal numerals</title>
<updated>2020-05-09T15:59:00+00:00</updated>
<author>
<name>Pierre Roux</name>
</author>
<published>2020-03-26T07:20:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=692c642672f863546b423d72c714c1417164e506'/>
<id>692c642672f863546b423d72c714c1417164e506</id>
<content type='text'>
We add hexadecimal numerals according to the following regexp
0[xX][0-9a-fA-F][0-9a-fA-F_]*(\.[0-9a-fA-F_]+)?([pP][+-]?[0-9][0-9_]*)?

This is unfortunately a rather large commit. I suggest reading it in
the following order:

* test-suite/output/ZSyntax.{v,out}       new test
* test-suite/output/Int63Syntax.{v,out}   ''
* test-suite/output/QArithSyntax.{v,out}  ''
* test-suite/output/RealSyntax.{v,out}    ''
* test-suite/output/FloatSyntax.{v,out}   ''

* interp/numTok.ml{i,}  extending numeral tokens

* theories/Init/Hexadecimal.v  adaptation of Decimal.v
                               for the new hexadecimal Numeral Notation
* theories/Init/Numeral.v  new interface for Numeral Notation (basically,
                           a numeral is either a decimal or an hexadecimal)

* theories/Init/Nat.v            add hexadecimal numeral notation to nat
* theories/PArith/BinPosDef.v    ''                                  positive
* theories/ZArith/BinIntDef.v    ''                                  Z
* theories/NArith/BinNatDef.v    ''                                  N
* theories/QArith/QArith_base.v  ''                                  Q

* interp/notation.ml{i,}     adapting implementation of numeral notations
* plugins/syntax/numeral.ml  ''

* plugins/syntax/r_syntax.ml  adapt parser for real numbers

* plugins/syntax/float_syntax.ml  adapt parser for primitive floats

* theories/Init/Prelude.v  register parser for nat
* adapting the test-suite (test-suite/output/NumeralNotations.{v,out}
  and test-suite/output/SearchPattern.out)
* remaining ml files (interp/constrex{tern,pr_ops}.ml where two open
  had to be permuted)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We add hexadecimal numerals according to the following regexp
0[xX][0-9a-fA-F][0-9a-fA-F_]*(\.[0-9a-fA-F_]+)?([pP][+-]?[0-9][0-9_]*)?

This is unfortunately a rather large commit. I suggest reading it in
the following order:

* test-suite/output/ZSyntax.{v,out}       new test
* test-suite/output/Int63Syntax.{v,out}   ''
* test-suite/output/QArithSyntax.{v,out}  ''
* test-suite/output/RealSyntax.{v,out}    ''
* test-suite/output/FloatSyntax.{v,out}   ''

* interp/numTok.ml{i,}  extending numeral tokens

* theories/Init/Hexadecimal.v  adaptation of Decimal.v
                               for the new hexadecimal Numeral Notation
* theories/Init/Numeral.v  new interface for Numeral Notation (basically,
                           a numeral is either a decimal or an hexadecimal)

* theories/Init/Nat.v            add hexadecimal numeral notation to nat
* theories/PArith/BinPosDef.v    ''                                  positive
* theories/ZArith/BinIntDef.v    ''                                  Z
* theories/NArith/BinNatDef.v    ''                                  N
* theories/QArith/QArith_base.v  ''                                  Q

* interp/notation.ml{i,}     adapting implementation of numeral notations
* plugins/syntax/numeral.ml  ''

* plugins/syntax/r_syntax.ml  adapt parser for real numbers

* plugins/syntax/float_syntax.ml  adapt parser for primitive floats

* theories/Init/Prelude.v  register parser for nat
* adapting the test-suite (test-suite/output/NumeralNotations.{v,out}
  and test-suite/output/SearchPattern.out)
* remaining ml files (interp/constrex{tern,pr_ops}.ml where two open
  had to be permuted)
</pre>
</div>
</content>
</entry>
</feed>
