Zulip Chat Archive
Stream: new members
Topic: IFF Question
Dev-Indra (Mar 19 2020 at 16:07):
Here is the iff
lemma I am trying to prove:
lemma another_helper (u v : ℕ) : v ≤ u ↔ v*v ≤ v*u := begin split, induction v with d hd, rw mul_zero, rw zero_mul, simp, rw succ_eq_add_one, rw mul_add, rw mul_one, rw mul_comm, rw mul_add, rw mul_one, rw add_mul, rw one_mul, end
I am trying to prove the first goal with induction, but I am stuck after the last line. Can anyone help, or suggest a better way to prove this?
Kevin Buzzard (Mar 19 2020 at 16:48):
You should use {}
brackets to ensure that you only have one goal at all times. Your question is hard for me to understand because your code doesn't compile and I'm not entirely sure which rewrites are supposed to apply to which goals.
Shing Tak Lam (Mar 19 2020 at 16:48):
There is a lemma in mathlib
called mul_le_mul_left
, which you can use by importing data.nat.basic
. To solve your inductive case here, you can just use
intro h, apply nat.mul_le_mul_left (succ d) h,
instead of the bunch of rw
s. Which will close the goal.
Also you don't need induction here, since you don't need the induction hypotheses.
As mul_le_mul_left
is already an iff statement, you can pretty much just use it to solve your goal without needing to split
it.
A complete proof just using mul_le_mul_left
as an iff
statement is like this:
lemma another_helper (u v : ℕ) : v ≤ u ↔ v*v ≤ v*u := begin cases v, { split, { intro h, simp, }, intro, exact zero_le u, }, { symmetry, apply mul_le_mul_left, simp, } end
Kevin Buzzard (Mar 19 2020 at 16:49):
@Dev-Indra: note the brackets @Shing Tak Lam used!
Shing Tak Lam (Mar 19 2020 at 16:56):
I've golfed it slightly :) Apparently norm_num
is a lot more powerful than I thought.
lemma another_helper (u v : ℕ) : v ≤ u ↔ v*v ≤ v*u := begin cases v, { norm_num }, norm_num end
Curiously, just norm_num
by itself doesn't work, but using cases
then norm_num
does.
Dev-Indra (Mar 19 2020 at 16:58):
Thanks. @Kevin Buzzard I will take note of the use of {}
Last updated: Dec 20 2023 at 11:08 UTC