aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Separated out [carry] from other operations.Gravatar jadep2017-03-02
|
* Modify/add to NewBaseSystem to match with what is needed for proof of ring ↵Gravatar jadep2017-03-01
| | | | isomorphism to F
* Fixed carry bugs (indexes need to be reversed, and we need to convert ↵Gravatar jadep2017-03-01
| | | | to/from Positional every time we carry) and added an [encode] function
* Defined [div] and [mod]; removed liftn_sig lemmas because they were actually ↵Gravatar jadep2017-03-01
| | | | no longer needed
* Adjust implicits of flatten_binding_list_same_in_eqGravatar Jason Gross2017-03-01
|
* Add flatten_binding_list_In_eq_iff, flatten_binding_list_same_in_eqGravatar Jason Gross2017-03-01
|
* Add η principles for sigma typesGravatar Jason Gross2017-03-01
|
* Add dlet_nd notationGravatar Jason Gross2017-03-01
| | | | This is for non-dependent [dlet]s, to help Coq's type inference
* Switch to fully uncurried form for reflectionGravatar Jason Gross2017-03-01
| | | | | | | | | | | This will eventually make a number of proofs easier. Unfortunately, the correctness lemmas for AddCoordinates and LadderStep no longer work (because of different arities), and there's a proof in Experiments/Ed25519 that I've admitted. The correctness lemmas will be easy to re-add when we have a more general version that handle arbitrary type shapes.
* Add interp_flat_type_rel_pointwise_SmartVarfMap, ↵Gravatar Jason Gross2017-02-28
| | | | interp_flat_type_rel_pointwise_Reflexive
* Add SmartVarfMap Proper instanceGravatar Jason Gross2017-02-28
|
* Add strip_eta_tuple lemmasGravatar Jason Gross2017-02-28
|
* Better tuple_eta argumentsGravatar Jason Gross2017-02-28
|
* Add eta_tuple functionsGravatar Jason Gross2017-02-28
| | | | | These are for getting nicely reduced forms of, e.g., Tuple.map, without knowing exactly what the tuple is
* Deduplicate codeGravatar Jason Gross2017-02-28
| | | | There was duplicate code in Reflection.Equality and Reflection.TypeInversion
* Defined zero and one for NewBaseSystemGravatar jadep2017-02-27
|
* Added operation (including creating )Gravatar jadep2017-02-27
|
* Update _CoqProjectGravatar Jason Gross2017-02-27
| | | | | | | | Version-controlled .v files should not be removed from _CoqProject. We can filter them out in the Makefile as necessary so that they don't get built by default, but if we desynchronize _CoqProject, then we can end up with confusing error messages that depend on which .v.d files are left over from previous builds.
* Added subtractionGravatar jadep2017-02-27
|
* added Positional wrappers for Associational operations, added correctness ↵Gravatar jadep2017-02-27
| | | | proof of
* changed names of ops in NewBaseSystem to reflect that they are sig and not sigTGravatar jadep2017-02-27
|
* Modified lemma and created tactic to handle it; added reduce step to ↵Gravatar jadep2017-02-26
| | | | multiplication operation; introduced modular equality to NewBaseSystem
* removed leftover saturated stuff (will probably end up in a separate file ↵Gravatar jadep2017-02-26
| | | | someday)
* speed up NewBaseystem synthesisGravatar Andres Erbsen2017-02-23
| | | | | | Use a vm_compute hack fromhttps://arxiv.org/pdf/1305.6543.pdf section 5.5: pattern terms over what to keep opaque, then reduce the lambda using vm_compute.
* Add BoundsInterpretationsGravatar Jason Gross2017-02-23
|
* Add log and non-log versions of FixedWordSizes lemGravatar Jason Gross2017-02-23
|
* Add invert_Some; add nat_N_Z to push_Zof_NGravatar Jason Gross2017-02-23
|
* Minor change to reflection namingGravatar Jason Gross2017-02-23
|
* added explanation of why CPS is usefulGravatar jadep2017-02-23
|
* Merge rebased branch 'ed25519-fix'Gravatar Andres Erbsen2017-02-22
|\
| * Removed code that will be completely replaced in the future; replaced some ↵Gravatar jadep2017-02-22
| | | | | | | | pointencoding things with axioms pending pointencoding rewrite by Andres
| * move lemmas from Ed25519 to WordUtilGravatar jadep2017-02-22
| |
| * move some lemmas from Ed25519 to ZUtilGravatar jadep2017-02-22
| |
| * moved more stuff to NUtilGravatar jadep2017-02-22
| |
| * Moved N lemmas from Ed25519 and IterAssocOp into new NUtil fileGravatar jadep2017-02-22
| |
| * categorize the rest of the stuff in Ed25519Gravatar jadep2017-02-22
| |
| * categorize some of the stuff in Ed25519Gravatar jadep2017-02-22
|/
* NewBaseSystem: less verboseGravatar Andres Erbsen2017-02-22
|
* Merge new base system (#112)Gravatar jadephilipoom2017-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Added sketch of new low-level base system code * Implemented and proved addition * Implemented carrying, which requires defining over Z rather than arbitrary ring * Proved carry and proved ring-ness of base system ops * Implemented split operation * Started implementing modular reduction * NewBaseSystem: prettify some proofs * andres base * improve andresbase * new base * first draft of goldilocks karatsuba * Factored out goldilocks karatsuba * Implement and prove karatsuba * goldilocks cleanup remodularize * merge karatsuba and goldilocs karatsuba parameter blocks * carry impl and proofs (not yet synthesis-ready) * newbasesystem: use rewrite databases * carry index range fix (TODO: allow for carry-then-reduce) * simpler carry implementation * Added compact operation for saturated base systems (this handles carries after multiplying or adding) * debugging reduction for compact_rows * rewrote compact * Converted saturated section to CPS * some progress on cps conversion for non-saturated stuff * Converted associational non-saturated code to CPS, temporarily commented out examples * pushed cps conversion through Positional * moved list/tuple stuff to top of file * proved lingering lemma * worked on generic-style goal for simplified operations * finished proving the generic-form example goal, revising a couple earlier lemmas * revised previous lemmas * finished revising previous lemmas * removed commented-out code * fixed non-terminating string in comment * fix for 8.5 * removed old file * better automation part 1 * better automation part 2 (goodbye proofs) * better automation part 3/3 * some work on freeze * remove saturated code and clean up exported-operations code * Move helper lemmas for list/tuple CPS stuff to new CPSUtil file * qualified imports * fix runtime notations and module-level Let as per comments * moved push_id to CPSUtil and cancel_pair lemmas to Prod * fixed typo * correctly generalized and moved lift_tuple2 (now called lift2_sig) and converted chained_carries into a fold * moved karatsuba section to new file * rename lemmas and definitions (now cps definitions are consistently <name>_cps and non-cps equivalents have no suffix) * updated timing on mulT * renamed push_eval to push_basesystem_eval
* Add various reflection improvements, boundbycastGravatar Jason Gross2017-02-21
|
* Add interpf_smart_bound without exprfGravatar Jason Gross2017-02-21
|
* Rename Interp lemmasGravatar Jason Gross2017-02-21
| | | | | | ```bash $ git grep --name-only 'Interp_InlineCast\|Interp_InlineConst\|Interp_Linearize' | xargs sed s'/Interp_/Interp/g' -i ```
* Add non-exprf version of interpf_smart_unboundGravatar Jason Gross2017-02-16
|
* Add MapCastInterpGravatar Jason Gross2017-02-16
|
* Add InterpByIsoProofsGravatar Jason Gross2017-02-16
|
* Add more display logsGravatar Jason Gross2017-02-16
|
* Fix typoGravatar Jason Gross2017-02-16
|
* Add InterpByIsoGravatar Jason Gross2017-02-16
| | | | | | It's actually closer to interp_by_retraction... This lets you do [interp] on, e.g., products with fail-values (var * interp_base), as long as [var] is pointed.
* Add more display logsGravatar Jason Gross2017-02-15
|
* make update-_CoqProjectGravatar Jason Gross2017-02-15
|