Mathlib v3 is deprecated. Go to Mathlib v4

Commit 2020-06-24 10:22 dd9b5c68

View on Github →

refactor(tactic/linarith): big refactor and docs (#3113) This PR:

  • Splits linarith into multiple files for organizational purposes
  • Uses the general zify and cancel_denom tactics instead of weaker custom versions
  • Refactors many components of linarith, in particular,
  • Modularizes linarith preprocessing, so that users can insert custom steps
  • Implements nlinarith preprocessing 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. nlinarith is a possible drop-in replacement; otherwise, generalize the product of naturals to a single natural, and linarith should still succeed.

Estimated changes

deleted theorem linarith.add_subst
deleted def linarith.comp.vars
deleted structure linarith.comp
deleted inductive linarith.comp_source
deleted theorem linarith.div_subst
deleted theorem linarith.eq_of_eq_of_eq
deleted def linarith.ineq.cmp
deleted def linarith.ineq.max
deleted inductive linarith.ineq
deleted theorem linarith.int.coe_nat_bit0
deleted theorem linarith.int.coe_nat_bit1
deleted theorem linarith.le_of_eq_of_le
deleted theorem linarith.le_of_le_of_eq
deleted def linarith.linexp.cmp
deleted def linarith.linexp.get
deleted def linarith.linexp
deleted theorem linarith.lt_of_eq_of_lt
deleted theorem linarith.lt_of_lt_of_eq
deleted theorem linarith.mul_eq
deleted theorem linarith.mul_neg
deleted theorem linarith.mul_nonpos
deleted theorem linarith.mul_subst
deleted theorem linarith.mul_zero_eq
deleted theorem linarith.nat_eq_subst
deleted theorem linarith.nat_le_subst
deleted theorem linarith.nat_lt_subst
deleted theorem linarith.neg_subst
deleted theorem linarith.sub_into_lt
deleted theorem linarith.sub_subst
deleted theorem linarith.zero_mul_eq