lean2/library
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
..
algebra 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
data 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
examples chore(examples/ex): move example to library 2015-05-13 17:07:10 -07:00
init feat(library/blast/strategies/portfolio): add 'rec_simp' 2015-12-31 15:00:38 -08:00
logic feat(hott): port nat and int from the standard library 2015-12-09 12:36:11 -08:00
theories refactor(library/data/finset/basic,library/*): get rid of finset singleton 2015-12-31 15:16:57 -08:00
tools feat(frontends/lean): add simp tactic frontend stub 2015-07-14 09:54:53 -04:00
.gitignore chore(library/.gitignore): update 2014-08-29 10:31:16 -07:00
.project chore(library): add .project file 2014-08-29 10:31:16 -07:00
library.md feat(library.md): update reference to classical axiom 2015-09-01 15:17:46 -07:00
standard.lean refactor(library/*): remove 'Module:' lines 2015-05-23 20:52:23 +10:00