Zulip Chat Archive

Stream: new members

Topic: if a^7=b^7 then a=b


Lars Ericson (Jan 29 2021 at 18:29):

This one will be a bit challenging to transcribe into Lean:

import tactic
import algebra.ordered_ring
universe u

theorem ex_1_3_5 (α: Type u) [linear_ordered_comm_ring α]
   (a b : α) (h: a^7 = b^7) : a = b :=
begin
  sorry,
end

Note:

a=b iff (a-b)^7 equal 0.

We want to prove that

(a-b)^7 =
= a^7 - 7*a^6*b + 21*a^5*b^2 - 35*a^4*b^3 + 35*a^3*b^4 - 21*a^2*b^5 + 7*a*b^6 - b^7
=0

By assumption a^7-b^7 = 0 so we want to prove that

 7*a^6*b + 21*a^5*b^2 - 35*a^4*b^3 + 35*a^3*b^4 - 21*a^2*b^5 + 7*a*b^6 =0

This factors to

-7*a*b*(a-b)*(a^2-a*b+b^2)^2 = 0

This has solutions when a=b=0 and when a=b. The remaining case is to look at

(a^2-a*b+b^2) = (a-b)^2 + a*b = 0

This has solution when a=b=0. Otherwise we have to have

(a-b)^2 = - a*b

But (a-b)^2 is positive or 0. When it is positive, the only solutions are when a<0, b>0 or a>0,b<0.

By calculus, the expression f = (a-b)^2 + a*b = 0 will only have a 0 when df/da = 0.

But df/da = 2*(a-b) + b which is 0 only when a = b/2. But then sign(a) = sign(b) which contradicts conditions a<0, b>0 or a>0,b<`.

So there are no additional solutions and the only solution is when a=b.

In terms of translation difficulty, I know how to do the expression reductions. I'm not sure how to do the calculus step. That seems bigger than a breadbox. I haven't tried to do anything with calculus yet. I guess the relevant stuff will be in analysis.calculus.fderiv.

`


Kevin Buzzard (Jan 29 2021 at 18:32):

Why not just prove that if a<b then a^7<b^7? More generally why not prove that if a<b then a^{2n+1}<b^{2n+1}? This doesn't look too hard. I definitely wouldn't go through what you're sketching above, it looks like a nightmare. Probably you just do some case split on the signs of a and b and then it's all over.

Mario Carneiro (Jan 29 2021 at 18:48):

theorem ex_1_3_5 {α} [linear_ordered_ring α] (a b : α) (h: a^7 = b^7) : a = b :=
(@strict_mono_pow_bit1 α _ 3).injective h

boom

Mario Carneiro (Jan 29 2021 at 18:49):

a similar proof also works for your earlier question about a^3<b^3

Kevin Buzzard (Jan 29 2021 at 18:51):

and indeed the proof of strict_mono_pow_bit1 is just a case split on the signs of a and b.

Mario Carneiro (Jan 29 2021 at 18:52):

The proof by expansion might conceivably be more general because you don't need a linear order, although I think you still need negation

Kevin Buzzard (Jan 29 2021 at 18:52):

it's not true without some order assumption, e.g. it's not true in the complexes

Mario Carneiro (Jan 29 2021 at 18:53):

well strict_mono itself doesn't typecheck on the complexes

Mario Carneiro (Jan 29 2021 at 18:53):

if you just want injectivity then it's false anyway on the complexes

Kevin Buzzard (Jan 29 2021 at 18:54):

sure -- we're saying the same thing. I just didn't understand your comment about a proof by expansion. There are finite fields where it's false too, you need something.

Mario Carneiro (Jan 29 2021 at 18:54):

but it might be true for an ordered_ring for example (not sure if there is a counterexample on ordered_semiring where it can still be stated)

Kevin Buzzard (Jan 29 2021 at 18:54):

oh I see. Yeah maybe.

Mario Carneiro (Jan 29 2021 at 18:54):

I'm talking about the version with an order, so finite fields are out

Mario Carneiro (Jan 29 2021 at 18:55):

but you just have a partial order

Mario Carneiro (Jan 29 2021 at 18:55):

so the case split proof doesn't work

Kevin Buzzard (Jan 29 2021 at 18:55):

I misinterpreted "you don't need a linear order" as "you don't need an order" :-)

Lars Ericson (Feb 02 2021 at 04:46):

Thank you @Kevin Buzzard and @Mario Carneiro for thinking about this. Regarding "Why not just prove that if a<b then a^7<b^7?", that's not the direction Birkhoff and Mac Lane asked for:

Screenshot-from-2021-02-01-23-43-33.png

I will study Mario's one-line proof. My long-winded sketch was inspired by the Internets.

Mario Carneiro (Feb 02 2021 at 04:53):

@Lars Ericson The question doesn't ask it, but if you can prove a < b -> A^7 < b^7 then a^7 = b^7 -> a = b follows, because if a != b then a < b so a^7 < b^7 and if b < a so b^7 < a^7, so in either case a^7 != b^7 and that's the contrapositive of the claim. This is one of the possible proof strategies to prove a function is injective


Last updated: Dec 20 2023 at 11:08 UTC