Commit 2020-06-24 10:22 dd9b5c68
View on Github →refactor(tactic/linarith): big refactor and docs (#3113) This PR:
- Splits linarithinto multiple files for organizational purposes
- Uses the general zifyandcancel_denomtactics instead of weaker custom versions
- Refactors many components of linarith, in particular,
- Modularizes linarithpreprocessing, so that users can insert custom steps
- Implements nlinarithpreprocessing as such a custom step, so it happens at the correct point of the preprocessing stage
- Better encapsulates the FM elimination module, to make it easier to plug in alternate oracles if/when they exist
- Docs, docs, docs
The change to zification means that some goals which involved multiplication of natural numbers will no longer be solved. However, others are now in scope. nlinarithis a possible drop-in replacement; otherwise, generalize the product of naturals to a single natural, andlinarithshould still succeed.