lean2/library/data/nat
Leonardo de Moura 54f2c0f254 feat(library/blast/forward): inst_simp should use the left-hand-side as a pattern (if none is provided by the user)
The motivation is to reduce the number of instances generated by ematching.

For example, given

   inv_inv:  forall a, (a⁻¹)⁻¹ = a

the new heuristic uses ((a⁻¹)⁻¹) as the pattern.
This matches the intuition that inv_inv should be used a simplification
rule.

The default pattern inference procedure would use (a⁻¹). This is bad
because it generates an infinite chain of instances whenever there is a
term (a⁻¹) in the proof state.
By using (a⁻¹), we get
   (a⁻¹)⁻¹ = a
Now that we have (a⁻¹)⁻¹, we can match again and generate
   ((a⁻¹)⁻¹)⁻¹ = a⁻¹
and so on
2015-12-31 20:20:39 -08:00
..
examples refactor(library): remove algebra namespace 2015-12-05 23:50:01 -08:00
basic.lean feat(library/blast/forward): inst_simp should use the left-hand-side as a pattern (if none is provided by the user) 2015-12-31 20:20:39 -08:00
bigops.lean fix(library/data/nat/bigops): delete some blank lines 2015-12-31 15:16:57 -08:00
bquant.lean refactor(library/init/subtype.lean): put subtype notation in the namespace 2015-12-22 16:39:13 -05:00
default.lean fix(library/data): 'choose' -> 'find' renaming problems 2015-07-25 11:25:04 -07:00
div.lean refactor(library): rename strategy "msimp" ==> "inst_simp" 2015-12-31 12:45:48 -08:00
fact.lean refactor(library): remove algebra namespace 2015-12-05 23:50:01 -08:00
find.lean refactor(library): remove algebra namespace 2015-12-05 23:50:01 -08:00
gcd.lean refactor(library): test simp and msimp in the standard library 2015-12-30 11:22:58 -08:00
nat.md fix(library/data/nat/nat.md): add 'find' to markdown file 2015-07-27 07:46:59 -07:00
order.lean feat(hott): port nat and int from the standard library 2015-12-09 12:36:11 -08:00
pairing.lean refactor(library): remove algebra namespace 2015-12-05 23:50:01 -08:00
parity.lean refactor(library): remove algebra namespace 2015-12-05 23:50:01 -08:00
power.lean refactor(library): remove algebra namespace 2015-12-05 23:50:01 -08:00
sqrt.lean refactor(library): remove algebra namespace 2015-12-05 23:50:01 -08:00
sub.lean feat(library/blast/forward): inst_simp should use the left-hand-side as a pattern (if none is provided by the user) 2015-12-31 20:20:39 -08:00