Zulip Chat Archive

Stream: new members

Topic: Exercise in 2.01


Kaixin Wang (Sep 16 2024 at 21:52):

I'm trying to do this exercise

example (a b : ) : (a + b) * (a - b) = a ^ 2 - b ^ 2 := by
  rw[add_mul] --LHS = a*(a-b) + b*(a-b)
  rw[mul_sub, mul_sub] --LHS = (a*a - a*b) + (b*a - b*b)
  rw[mul_comm b a] --(a*a - a*b) + (a*b - b*b)
  rw[pow_two a, pow_two b] --RHS = a*a - b*b
  rw[add_sub] --LHS = a*a - a*b + a*b - b*b



#check pow_two a
#check mul_sub a b c
#check add_mul a b c
#check add_sub a b c
#check sub_sub a b c
#check add_zero a

I now need to show a * a - a * b + a * b - b * b = a * a - b * b, but I'm stuck because I can't use add-com and I don't know how to rewrite this to something like a * a + (-a * b) + a * b - b * b. Any advice?

Etienne Marion (Sep 16 2024 at 22:17):

You can use docs#sub_add_cancel

Jose A. Alonso (Sep 17 2024 at 10:15):

Kaixin Wang ha dicho:

I'm trying to do this exercise

example (a b : ) : (a + b) * (a - b) = a ^ 2 - b ^ 2 := by
  rw[add_mul] --LHS = a*(a-b) + b*(a-b)
  rw[mul_sub, mul_sub] --LHS = (a*a - a*b) + (b*a - b*b)
  rw[mul_comm b a] --(a*a - a*b) + (a*b - b*b)
  rw[pow_two a, pow_two b] --RHS = a*a - b*b
  rw[add_sub] --LHS = a*a - a*b + a*b - b*b



#check pow_two a
#check mul_sub a b c
#check add_mul a b c
#check add_sub a b c
#check sub_sub a b c
#check add_zero a

I now need to show a * a - a * b + a * b - b * b = a * a - b * b, but I'm stuck because I can't use add-com and I don't know how to rewrite this to something like a * a + (-a * b) + a * b - b * b. Any advice?

You can see different proofs here


Last updated: May 02 2025 at 03:31 UTC