Zulip Chat Archive

Stream: new members

Topic: 0.96:ℚ * n < 1.0:ℚ * n - why so difficult? (with MWE)


rzeta0 (Jan 09 2025 at 15:16):

As part of a wider proof, in a calc section I'm trying to show: 0.6:ℚ * n < 1.0:ℚ * n where n:ℕ

_ < ((F (k + 1)):) + 0.96 * ((F k):) := by rel [ih2a, ih1a]
_ < ((F (k + 1)):) + ((F k):) := by norm_num -- < -- problem line

Ive tried to create some MWEs

Without variables, this works:

example : (0.4 : ) < (1:) :=
  calc
    (0.4 : ) < (1 : ) := by norm_num

With a variable however, I can't seem to justify what in my brain feels like a trivial fact:

example :  n:, (0.9: ) * n < (1:) * n := by
  intro n
  calc
    (0.9 : ) * n < (1 : ) * n := by norm_num --< -- fails

Interestingly it says the unsolved goal is 9 / 10 * ↑n < ↑n. I hope I don't need to invoke lemmas like mul_lt_mul_of_pos_right.

I even tried horrible tricks like this which sometimes work:

example :  n:, (0.9: ) * n < (1:) * n := by
  intro n
  calc
    (0.9 : ) * n < (0.9 + 0.1 : ) * n := by norm_num -- < fails --
    _ = (1 : ) * n := by norm_num

I've tried other tactics but none work - note linarith is disabled in MoP.

Etienne Marion (Jan 09 2025 at 15:20):

It does not hold if n=0, because in that case both sides are 0 so the inequality is not strict

rzeta0 (Jan 09 2025 at 15:25):

Thanks Etienne - my brain is not working today. :)

Riccardo Brasca (Jan 09 2025 at 15:25):

Anyway the tactic you want (meaning it finds mul_lt_mul_of_pos_right or something like that) is gcongr


Last updated: May 02 2025 at 03:31 UTC