aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Fix naming partial.interp -> partial.valueGravatar Jason Gross2018-01-29
|
* [demo] Add a list rec canonicalization passGravatar Jason Gross2018-01-29
|
* Revert "Remove the series of Let statements in favor of a fixpoint"Gravatar Jason Gross2018-01-29
| | | | This reverts commit 0687a75d075d37ab36ef06b5f3228df801bd80e7.
* Shorter return statements by using notationsGravatar Jason Gross2018-01-29
|
* Remove the series of Let statements in favor of a fixpointGravatar Jason Gross2018-01-29
|
* Add a reference to a Coq issueGravatar Jason Gross2018-01-29
|
* Update some names in accordance with review commentsGravatar Jason Gross2018-01-29
|
* Remove dead code in commentsGravatar Jason Gross2018-01-29
|
* Finish first working version of partial reductionGravatar Jason Gross2018-01-29
| | | | | | The names are terrible and the code organization isn't great, and I don't like the long list of [Let] statements which are morally doing very similar things, but, it works.
* Partial work on fixing partial reductionGravatar Jason Gross2018-01-29
| | | | | | | | | | | | | | | | | | | | | | | | | | I've mostly fused partial_reduce' with arguments.expr.interp. This fixes some things, but it doesn't fix everything. In particular, the algorithm is set up incorrectly to run in a single pass. I think the correct fusing treats the [arguments] metadata as something like types-in-bidirectional-typechecking. That is, we need to drive the evalutation by expected [arguments], except at operation nodes, where we feed the expected output [arguments] to the rewriter and it tells us what sort of [arguments] we need to use to drive the partial evaluation of the op-arguments. Arrows are kind-of wonky, though. What's the right argument annotation for something like [@List.map A B]? The simplest thing is [λ '(list b), (A -> b) * list A], i.e., if you want it to produce [list b] for some description [b], you need to give it a function from a generic expression for [A] to a thing with as much info as is in [b], and you need to give it a list of generic [A]s. But that's not accurate, because it actually works fine for any consistent detail on [A]. So we want something like [λ '(list b), ∃ a, (a -> b) * list a], but I don't know how to express that. This is where we do want something like bidirectional typechecking: we drive the evaluation of [List.map f x] by the description [list b] of the output. Then we drive the evaluation of [f] with the description [?a -> b], and we want to get out [?a]. Not sure how this all fits together though....
* Partial work on implementing partial reductionGravatar Jason Gross2018-01-29
|
* Pass -mbmi2 to gccGravatar Jason Gross2018-01-19
| | | | | This will hopefully fix the issue where travis gcc complains about not being able to inline mulx. I hope.
* Add better levels / printing for bind notationsGravatar Jason Gross2018-01-16
|
* Attempt to build travis in stagesGravatar Jason Gross2018-01-16
| | | | | | | | | | | | Hopefully this will lead to overall faster builds Also: - try to allow failures - Version-specific vo caches - Make archives stage-specific This way, if multiple branches are running stages at the same time, they don't have as much a chance of clobbering each others builds.
* Add separate targets to build but not run test/benchGravatar Jason Gross2018-01-16
|
* [travis] 8.7.0 -> 8.7.1Gravatar Jason Gross2018-01-15
|
* Fix liblow.h for cmovznz64Gravatar Jason Gross2018-01-15
|
* Update cmovznz to cmovznz64 in the .c fileGravatar Jason Gross2018-01-15
|
* Add .c and .log filesGravatar Jason Gross2018-01-15
|
* Add x25519 donna versions with the new way of generating C codeGravatar Jason Gross2018-01-15
|
* Combine the zero and non-zero cases together.Gravatar David Benjamin2018-01-15
| | | | | | This required tending to montladder not being proved Feq-preserving (sidestepped by proving for all P = 0), and then some wrestling with scalarmult to show the right-hand side was indeed zero when x is (0, 0).
* Add a comment for why Z.peano_rect_strong exists.Gravatar David Benjamin2018-01-14
|
* Add travis_retry to work around bugs in travisGravatar Jason Gross2018-01-10
| | | | https://github.com/travis-ci/travis-ci/issues/8507
* Add some fecarry .log filesGravatar Jason Gross2018-01-10
|
* Add some fecarry .log and .c filesGravatar Jason Gross2018-01-10
|
* Generate fecarry for solinasGravatar Jason Gross2018-01-10
| | | | | | | This is a one-line change in generate_parameters.py (plus some whitespace trimming), and running `make regenerate-curves` This handles part of #294
* Factor out fsatz lemmasGravatar Jason Gross2018-01-09
| | | | | | | | | After | File Name | Before || Change | % Change ------------------------------------------------------------------------- 1m11.42s | Total | 1m53.75s || -0m42.33s | -37.21% ------------------------------------------------------------------------- 1m06.02s | Curves/Weierstrass/Jacobian | 1m53.76s || -0m47.73s | -41.96% 0m05.40s | Util/FsatzAutoLemmas | N/A || +0m05.40s | ∞
* Replace char_ge_12 with char_ge_3Gravatar Jason Gross2018-01-09
| | | | We no longer seem to need the stronger hypothesis.
* Massively speed up JacobianGravatar Jason Gross2018-01-09
| | | | | | | | After | File Name | Before || Change | % Change --------------------------------------------------------------------------- 1m52.31s | Total | 13m36.75s || -11m44.44s | -86.24% --------------------------------------------------------------------------- 1m52.31s | Curves/Weierstrass/Jacobian | 13m36.75s || -11m44.44s | -86.24%
* Revert "Replace char_ge_12 with char_ge_3"Gravatar Jason Gross2018-01-09
| | | | | | This reverts commit d33d8be154dbce048ac10d82bc0b39468abd5fdb. Hmm, apparently there's an error on Qed... maybe a bug in fsatz?
* Replace char_ge_12 with char_ge_3Gravatar Jason Gross2018-01-09
| | | | We no longer seem to need the stronger hypothesis.
* Jabobian.v: par -> allGravatar Andres Erbsen2018-01-09
|
* src/Curves/Weierstrass/Jacobian.v: specialized destruct_head_*Gravatar Andres Erbsen2018-01-09
|
* Move Curves/Weierstrass/Jacobian to curves-proofsGravatar Jason Gross2018-01-09
| | | | | We have about 15 minutes to spare on the curves-proofs travis job, so we move Jacobian.vo from no-curves-proofs-non-specific to there.
* @davidben merged Jacobian+affine into Jacobian+JacobianGravatar Andres Erbsen2018-01-09
|
* Jacobian coordinatesGravatar Andres Erbsen2018-01-09
|
* make src/Specific/solinas64_2e255m19_5limbs/*.cGravatar David Benjamin2018-01-08
| | | | | Also refresh things after PR#289. This too just updated the comments, as expected.
* Prove montladder correct in the zero case.Gravatar David Benjamin2018-01-08
|
* Add @@ infix notationGravatar Jason Gross2018-01-06
|
* make src/Specific/solinas32_2e255m19_10limbs/*.cGravatar David Benjamin2018-01-05
| | | | | Refresh things after PR#289, though that just updated the comments, as expected.
* Fix incorrect overridding of bool notationsGravatar Jason Gross2018-01-05
| | | | | | | This notation system is fragile and kludgy. This discovered from @davidben's https://github.com/mit-plv/fiat-crypto/pull/289/commits/ff0fb38346dde67abef982d6305595216d18519b#r159793723
* Handle the fact that we haven't forbidden TWord 3Gravatar Jason Gross2018-01-05
| | | | | We do this by adding notations for addcarryx and subborrow for all of the smaller-than-max-bitwidth sizes of arguments.
* Remove TWord 3 based addcarryx, subborrowGravatar Jason Gross2018-01-05
| | | | This handles bullet 3 of #288
* Print bool as uint8_tGravatar Jason Gross2018-01-05
| | | | This handles bullet point 1 of #288
* make selected-specific-display for permit `TWord 0`Gravatar Jason Gross2018-01-05
| | | | This handles bullet 2 of #288
* Permit `TWord 0`Gravatar Jason Gross2018-01-05
| | | | This handles bullet 2 of #288
* Add support for {addcarryx,subborrow}_u{25,26}Gravatar Jason Gross2018-01-02
| | | | | | | | | | | This closes #286 This is actually a +1,-1 diff in the python script generating the notations, plus running it and rebuilding: ```diff -ADD_CARRY_SUB_BORROW_SIZES = (32, 64, 128, 51) +ADD_CARRY_SUB_BORROW_SIZES = (32, 64, 128, 25, 26, 51) ```
* Update CNotationsGravatar Jason Gross2018-01-02
| | | | | | This makes it easier to add support for more kinds of addcarryx, etc, and also add `: expr_scope` to work around changes from https://github.com/coq/coq/pull/873
* Add some reserved notations for cps stuffGravatar Jason Gross2017-12-27
|
* restore fastpath logic in Curves.Montgomery.XZProofsGravatar Andres Erbsen2017-12-22
|