aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Add string conversionsGravatar Jason Gross2018-02-11
|
* [Work in Progress] Experiment with Bounds Analysis based on lists (#305)Gravatar Jason Gross2018-02-11
| | | | | | | | | | | | | | * Initial work * Respond to code review comments * Add x25519_32, commented out for speed * Remove outdated comment * Add another unfolding thing to make 2^127-1 with (_ + 1/3)%Q work * Use vm_compute in one place where it's faster
* Add notation for option_bindGravatar Jason Gross2018-02-10
|
* Split off ZRange lemmasGravatar Jason Gross2018-02-10
|
* Add some ZRange operationsGravatar Jason Gross2018-02-10
|
* minor updates needed to make it compile with bbvGravatar Samuel Gruetter2018-02-05
| | | | removing lemma wordToNat_wzero is ok because it's already in bbv
* Add dead code elimination via inliningGravatar Jason Gross2018-01-29
|
* Have reification run delta on unknown identsGravatar Jason Gross2018-01-29
| | | | This allows us to remove some manual unfolding
* Remove useless dletGravatar Jason Gross2018-01-29
|
* Change reduction behavior of let-bound listsGravatar Jason Gross2018-01-29
| | | | | | | | Rather than always inline, we now introduce one let-bound node per non-var list element. Not sure this is the right thing to do, so maybe we should revert this commit.
* Use Derive plugin, do two passes of partial reductionGravatar Jason Gross2018-01-29
|
* rerunGravatar Andres Erbsen2018-01-29
|
* fix carry chain in exampleGravatar Andres Erbsen2018-01-29
|
* Respond to some CR commentsGravatar Jason Gross2018-01-29
|
* Don't reify [let ... in ...], only [dlet ... in ...]Gravatar Jason Gross2018-01-29
|
* Write ltamer-based CPS transformGravatar Jason Gross2018-01-29
|
* Fix weight to use 51-bit limbsGravatar Jason Gross2018-01-29
|
* Remove use of beta in reification of Let_InGravatar Jason Gross2018-01-29
|
* Rename type.opaque to type.primitiveGravatar Jason Gross2018-01-29
|
* remove outdated commentGravatar Jason Gross2018-01-29
|
* Get cps for carry workingGravatar Jason Gross2018-01-29
|
* Support Let_in with not-fully-reduced second arg in reificationGravatar Jason Gross2018-01-29
| | | | Needed for carry
* More types in type_opaque; restore nth_default notationGravatar Jason Gross2018-01-29
|
* Remove dead codeGravatar Jason Gross2018-01-29
|
* Add a CPS conversion passGravatar Jason Gross2018-01-29
|
* make SimplyTypedArithmetic less "Smart" by giving every expression a normal formGravatar Andres Erbsen2018-01-29
|
* 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
|
* 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 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?