Zulip Chat Archive
Stream: new members
Topic: simple
edklencl (Oct 21 2024 at 08:38):
import Mathlib.Tactic
import Mathlib.Data.Real.Sqrt
example (m n k : ℕ) (h : m ≤ n) : n^2 - m^2 = (n-m)*(n+m):=
by
have hk : ∃ k, n = m + k
· use n-m
obtain ⟨k,hk⟩:=hk
have : (m+k)^2 = m^2 + (2*m*k + k^2)
· sorry
sorry
edklencl (Oct 21 2024 at 08:38):
why does ring cant help
Riccardo Brasca (Oct 21 2024 at 09:03):
ring
can prove you first sorry. It is not designed to work with natural subtraction, so it is no surprisingly it cannot finish the proof of hk
. You can use omega
or zify [h]; ring
for that.
BANGJI HU (Oct 21 2024 at 09:43):
can you be more specific
BANGJI HU (Oct 21 2024 at 10:24):
import Mathlib.Tactic
import Mathlib.Data.Real.Sqrt
example (m n : ℕ) (h : m ≤ n) : n^2 - m^2 = (n-m)*(n+m):=
by
have hk : ∃ k, n = m + k
use n-m
have : (m+k)^2 = m^2 + (2*m*k + k^2)
ring
zify [h]
ring
rw [Nat.pow_two_sub_pow_two]
rw [Nat.mul_comm]
BANGJI HU (Oct 21 2024 at 10:24):
thanks
Riccardo Brasca (Oct 21 2024 at 11:06):
You can also do
import Mathlib
example (m n : ℕ) (h : m ≤ n) : n^2 - m^2 = (n-m)*(n+m):= by
have h' : m^2 ≤ n^2 := Nat.pow_le_pow_of_le_left h 2 --find by exact?
zify [h, h']
ring
BANGJI HU (Oct 21 2024 at 11:16):
what does zify stand for
Yaël Dillies (Oct 21 2024 at 11:17):
It means "ℤ
-ify", as in "turn into ℤ
"
BANGJI HU (Oct 21 2024 at 11:39):
(deleted)
Last updated: May 02 2025 at 03:31 UTC