Skip to content

Commit

Permalink
feat(algebra/group_power): relate square equality and absolute value …
Browse files Browse the repository at this point in the history
…equality (#11683)
  • Loading branch information
b-mehta committed Feb 1, 2022
1 parent 23e0e29 commit ec61182
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 3 deletions.
26 changes: 24 additions & 2 deletions src/algebra/group_power/order.lean
Expand Up @@ -320,11 +320,11 @@ by simpa only [sq] using abs_mul_abs_self x
theorem abs_sq (x : R) : |x ^ 2| = x ^ 2 :=
by simpa only [sq] using abs_mul_self x

theorem sq_lt_sq (h : |x| < y) : x ^ 2 < y ^ 2 :=
theorem sq_lt_sq (h : |x| < |y|) : x ^ 2 < y ^ 2 :=
by simpa only [sq_abs] using pow_lt_pow_of_lt_left h (abs_nonneg x) (1:ℕ).succ_pos

theorem sq_lt_sq' (h1 : -y < x) (h2 : x < y) : x ^ 2 < y ^ 2 :=
sq_lt_sq (abs_lt.mpr ⟨h1, h2⟩)
sq_lt_sq (lt_of_lt_of_le (abs_lt.2 ⟨h1, h2⟩) (le_abs_self _))

theorem sq_le_sq (h : |x| ≤ |y|) : x ^ 2 ≤ y ^ 2 :=
by simpa only [sq_abs] using pow_le_pow_of_le_left (abs_nonneg x) h 2
Expand Down Expand Up @@ -356,6 +356,28 @@ end
theorem abs_le_of_sq_le_sq' (h : x^2 ≤ y^2) (hy : 0 ≤ y) : -y ≤ x ∧ x ≤ y :=
abs_le.mp $ abs_le_of_sq_le_sq h hy

lemma sq_eq_sq_iff_abs_eq_abs (x y : R) : x^2 = y^2 ↔ |x| = |y| :=
⟨λ h, (abs_le_abs_of_sq_le_sq h.le).antisymm (abs_le_abs_of_sq_le_sq h.ge),
λ h, by rw [←sq_abs, h, sq_abs]⟩

@[simp] lemma sq_eq_one_iff (x : R) : x^2 = 1 ↔ x = 1 ∨ x = -1 :=
by rw [←abs_eq_abs, ←sq_eq_sq_iff_abs_eq_abs, one_pow]

lemma sq_ne_one_iff (x : R) : x^21 ↔ x ≠ 1 ∧ x ≠ -1 :=
(not_iff_not.2 (sq_eq_one_iff _)).trans not_or_distrib

@[simp] lemma sq_le_one_iff_abs_le_one (x : R) : x^21 ↔ |x| ≤ 1 :=
have t : x^21^2 ↔ |x| ≤ |1| := ⟨abs_le_abs_of_sq_le_sq, sq_le_sq⟩, by simpa using t

@[simp] lemma sq_lt_one_iff_abs_lt_one (x : R) : x^2 < 1 ↔ |x| < 1 :=
have t : x^2 < 1^2 ↔ |x| < |1| := ⟨abs_lt_abs_of_sq_lt_sq, sq_lt_sq⟩, by simpa using t

@[simp] lemma one_le_sq_iff_one_le_abs (x : R) : 1 ≤ x^21 ≤ |x| :=
have t : 1^2 ≤ x^2 ↔ |1| ≤ |x| := ⟨abs_le_abs_of_sq_le_sq, sq_le_sq⟩, by simpa using t

@[simp] lemma one_lt_sq_iff_one_lt_abs (x : R) : 1 < x^21 < |x| :=
have t : 1^2 < x^2 ↔ |1| < |x| := ⟨abs_lt_abs_of_sq_lt_sq, sq_lt_sq⟩, by simpa using t

end linear_ordered_ring

section linear_ordered_comm_ring
Expand Down
2 changes: 1 addition & 1 deletion src/analysis/inner_product_space/basic.lean
Expand Up @@ -1865,7 +1865,7 @@ begin
have : ∑ i in s₁ \ s₂, ∥f i∥ ^ 2 + ∑ i in s₂ \ s₁, ∥f i∥ ^ 2 < (sqrt ε) ^ 2,
{ rw ← hV.norm_sq_diff_sum,
apply sq_lt_sq,
rw _root_.abs_of_nonneg (norm_nonneg _),
rw [_root_.abs_of_nonneg (sqrt_nonneg _), _root_.abs_of_nonneg (norm_nonneg _)],
exact H s₁ hs₁ s₂ hs₂ },
have hη := sq_sqrt (le_of_lt hε),
linarith },
Expand Down

0 comments on commit ec61182

Please sign in to comment.