Commit 2019-12-09 20:49 5c093726
View on Github →A ring_exp tactic for dealing with exponents in rings (#1715)
- Test for ring_exp
- Implement -a/b * -a/b = a/b * a/b
- Hide extra information in the
extype inex_info - Some attempts to make the proof returned by ring_exp shorter
- Fix that ring_exp wouldn't handle pow that isn't monomial.has_pow
- Some optimizations in ring_exp
- Make all proofs explicit, halving execution time more or less
- Cache
has_addandhas_mulinstances for another 2x speedup - ring_exp can replace ring to compile mathlib
- Revert
ringto non-test version - Code cleanup and documentation
- Revert the test changes to
linarith - Undo the test changes to
ring2 - Whitespace cleanup
- Fix overzealous error handling
Instead of catching any
failin eval, we just catch the operations that can safelyfail(i.e.invertandnegate). This should make internal errors visible again. - Fix the TODO's
- Example use of ring_exp in data.polynomial
- Check that
ring_expdeals well with natural number subtraction - Fix incorrect docstring
- Improve documentation
- Small stylistic fixes
- Fix slow behaviour on large exponents
- Add
ring_expto the default tactics - Use applicative notation where appropriate
- The
ring_exptactic also does normalization Co-Authored-By: Rob Lewis Rob.y.lewis@gmail.com - Move
normalizefromtactic.interactivetoring_expnamespace - Fix name collision between
equivin data.equiv.basic andequivintest/tactics.leanI just renamed the definition intest/tactics.leantomy_equivand the operator tomy≅. - Fixes for the linter
- Fix the usage of type classes for
sub_pfanddiv_pf - Fix an additional linting error
- Optimization: we don't need norm_num to determine
x * 1 = x - Improve documentation of
test/ring_exp.lean - Rename
resolve_atomstoresolve_atom_auxfor clarity - Small stylistic fixes
- Remove unneccessary hidden fields to
ex - Control how much unfolding
ring_expdoes by putting a!after it - Reword comment for
ex_type - Use
ring_exp!to deal with(n : ℕ) + 1 - 1 = n - Document the
!flag forring,ring_expandring_exp_eq - Get rid of searching for another cached instance
- Fix
ring_expfailing on terms on the form0^succ (succ ...)