Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Add another reserved notation for App_fst | Jason Gross | 2018-03-21 |
| | |||
* | s/partial reduction/partial evaluation/ | Jason Gross | 2018-03-21 |
| | |||
* | Don't inline var nodes on the first pass through partial evaluation | Jason Gross | 2018-03-21 |
| | |||
* | Let-bind place | Jason Gross | 2018-03-21 |
| | | | | | This allows vm_compute to run in 300 seconds on the from_associational pipeline. | ||
* | [experiments] Thunk the eliminator cases | Jason Gross | 2018-03-20 |
| | | | | | This allows us to remove the special case for `bool_rect`, and is a step towards targeting `vm_compute` rather than `lazy`. | ||
* | Remove some dead code | Jason Gross | 2018-03-19 |
| | |||
* | Fix for Coq <= 8.7 | Jason Gross | 2018-03-19 |
| | |||
* | Add support for Z*Z casts, get montred working | Jason Gross | 2018-03-19 |
| | |||
* | Split up the two calls to `lazy` | Jason Gross | 2018-03-19 |
| | | | | It was too slow to do `lazy -[Let_In]` in montgomery reduction. | ||
* | Fix some bugs in caching | Jason Gross | 2018-03-19 |
| | | | | Also adapt to the lack of `'` notation in master for `Z.pos`. | ||
* | Add comments explaining the various [interp] functions | Jason Gross | 2018-03-19 |
| | |||
* | Add commented out example of using the full end-to-end lemma inline | Jason Gross | 2018-03-19 |
| | |||
* | Add end-to-end correctness lemma | Jason Gross | 2018-03-19 |
| | |||
* | Unify cache and nocache | Jason Gross | 2018-03-19 |
| | |||
* | Add alternate tactics for handling the all-in-one-derive case | Jason Gross | 2018-03-19 |
| | |||
* | Clean and simplify some code | Jason Gross | 2018-03-19 |
| | |||
* | WIP with Andres on cleaning boilerplate | Jason Gross | 2018-03-19 |
| | |||
* | Partial fix for montred | Jason Gross | 2018-03-19 |
| | | | | Still need to insert casts for operations returning two values | ||
* | Speed up the final pipeline by about 2x | Jason Gross | 2018-03-19 |
| | | | | | | | | | | | | | | | | | As the comment says, doing `lazy` is twice as slow as doing `lazy -[Let_In]; lazy`. This is because the bounds pipeline does `dlet E : Expr := (reduced thing) in let b := extract_bounds E in ...`. If we allow `lazy` to unfold `Let_In` before it fully reduces the function (function, because `Expr := forall var, @expr var`), then there is no sharing between the partial reduction in bounds extraction and the partial reduction in the return value. So we force `lazy` to fully reduce the argument first, and only then permit `lazy` to inline it. This is slightly slower than doing bounds analysis in a non-PHOAS representation; we spend about 3%-5% of the overall time doing bounds extraction, and fully reducing the bounds extraction expression before plugging in arguments costs a bit more. However, it's still reasonably fast, and the code is much simpler when `Interp` always succeeds rather than returning `option`. | ||
* | Insert missing comment | Jason Gross | 2018-03-19 |
| | |||
* | Remove dead bounds analysis code | Jason Gross | 2018-03-19 |
| | |||
* | Move the ring goal up | Jason Gross | 2018-03-19 |
| | |||
* | Add shiftl notation | Jason Gross | 2018-03-19 |
| | |||
* | Update printing | Jason Gross | 2018-03-19 |
| | |||
* | Move relax_zrange to a separate phase | Jason Gross | 2018-03-19 |
| | |||
* | WIP cast | Jason Gross | 2018-03-19 |
| | |||
* | Update montred to newish pipeline, revive DCE | Jason Gross | 2018-03-19 |
| | | | | | | | | | - Update the style of montred snythesis to match the changes in the pipeline - Bring back non-quadratic dead code elimination and make use of it for montgomery reduction - Update partial reduction to inline "var-like" things (fst, snd, pair applied to var) | ||
* | Add a ring goal | Jason Gross | 2018-03-19 |
| | | | | Unfortunately, the ring proofs are a bit messy. | ||
* | subsetoid_ring: don't ask for false things | Jason Gross | 2018-03-12 |
| | | | | | We can't actually prove the previous okness lemmas in SimplyTypedArithmetic, so we instead ask for exactly what we need. | ||
* | Add Algebra.SubsetoidRing | Jason Gross | 2018-03-12 |
| | |||
* | Review comments. | David Benjamin | 2018-03-09 |
| | | | | | | | Major change is porting everything to Z and using Z.div_mod_to_quot_rem which is a handy sledgehammer. Z is also a nice simplification. Dealing with subtraction is tidier, though I do have 0 <= x goals everywhere as a result. | ||
* | easy bits | David Benjamin | 2018-03-09 |
| | |||
* | Prove another Barrett reduction variant. | David Benjamin | 2018-03-09 |
| | | | | | | | | | | This variant comes from http://www.ridiculousfish.com/blog/posts/labor-of-division-episode-i.html. It was useful for https://boringssl-review.googlesource.com/#/c/boringssl/+/25887. TODO - Talk to Andres to figure out all the ways this could be done more cleanly. It was originally a standalone file. | ||
* | Don't use deprecated compat notations in ZUtil | Jason Gross | 2018-03-07 |
| | |||
* | Add comments about [refresh] failing | Jason Gross | 2018-03-07 |
| | |||
* | actually reprint montgomery and uncomment a couple notations -- should have ↵ | Jade Philipoom | 2018-03-07 |
| | | | | been in last commit | ||
* | fix a typo, some comments, and notations | Jade Philipoom | 2018-03-07 |
| | |||
* | make Montgomery do associational carries in a generalized way | Jade Philipoom | 2018-03-07 |
| | |||
* | remove special-case convert-mul-convert implementation and use generalized ↵ | Jade Philipoom | 2018-03-07 |
| | | | | one in Montgomery example | ||
* | remove unneeded, commented-out code | Jade Philipoom | 2018-03-07 |
| | |||
* | Add a dummy length argument to make partial evaluation work (see #321) and ↵ | Jade Philipoom | 2018-03-07 |
| | | | | fixed up Montgomery notations | ||
* | factor out convert-mul-convert and prove correctness | Jade Philipoom | 2018-03-07 |
| | |||
* | git submodule update --remote --recursive | Andres Erbsen | 2018-02-24 |
| | |||
* | coqprime in COQPATH (closes #269) | Andres Erbsen | 2018-02-24 |
| | |||
* | Add ZRange.intersection | Jason Gross | 2018-02-23 |
| | |||
* | Fix a typo | Jason Gross | 2018-02-23 |
| | |||
* | Add some bounds operations to ZRange | Jason Gross | 2018-02-23 |
| | |||
* | Add ZRange.opp | Jason Gross | 2018-02-23 |
| | |||
* | Make the Montgomery reduction test case use 128-bit multiplications and | Jade Philipoom | 2018-02-23 |
| | | | | | | | | Columns arithmetic. This includes: - writing flatten_column in terms of list_rect instead of matches, so it can be reified - adding list_rect, shiftl, and List.length to various IRs - dead code elimination | ||
* | fix leftover %RT | Jade Philipoom | 2018-02-23 |
| |