@@ -751,8 +751,8 @@ lemma max_mul_mul_le_max_mul_max [PosMulMono α] [MulPosMono α] (b c : α) (ha
751
751
mul_le_mul (le_max_right a c) (le_max_right b d) hd (le_trans ha (le_max_left a c))
752
752
max_le (by simpa [mul_comm, max_comm] using ba) (by simpa [mul_comm, max_comm] using cd)
753
753
754
- /-- Binary **arithmetic mean-geometric mean inequality** (aka AM-GM inequality) for linearly ordered
755
- commutative semirings. -/
754
+ /-- Binary, squared, and division-free **arithmetic mean-geometric mean inequality**
755
+ (aka AM-GM inequality) for linearly ordered commutative semirings. -/
756
756
lemma two_mul_le_add_sq [ExistsAddOfLE α] [MulPosStrictMono α]
757
757
[ContravariantClass α α (· + ·) (· ≤ ·)] [CovariantClass α α (· + ·) (· ≤ ·)]
758
758
(a b : α) : 2 * a * b ≤ a ^ 2 + b ^ 2 := by
@@ -761,6 +761,19 @@ lemma two_mul_le_add_sq [ExistsAddOfLE α] [MulPosStrictMono α]
761
761
762
762
alias two_mul_le_add_pow_two := two_mul_le_add_sq
763
763
764
+ /-- Binary, squared, and division-free **arithmetic mean-geometric mean inequality**
765
+ (aka AM-GM inequality) for linearly ordered commutative semirings. -/
766
+ lemma four_mul_le_sq_add [ExistsAddOfLE α] [MulPosStrictMono α]
767
+ [ContravariantClass α α (· + ·) (· ≤ ·)] [CovariantClass α α (· + ·) (· ≤ ·)]
768
+ (a b : α) : 4 * a * b ≤ (a + b) ^ 2 := by
769
+ calc 4 * a * b
770
+ _ = 2 * a * b + 2 * a * b := by rw [mul_assoc, two_add_two_eq_four.symm, add_mul, mul_assoc]
771
+ _ ≤ a ^ 2 + b ^ 2 + 2 * a * b := by gcongr; exact two_mul_le_add_sq _ _
772
+ _ = a ^ 2 + 2 * a * b + b ^ 2 := by rw [add_right_comm]
773
+ _ = (a + b) ^ 2 := (add_sq a b).symm
774
+
775
+ alias four_mul_le_pow_two_add := four_mul_le_sq_add
776
+
764
777
end LinearOrderedCommSemiring
765
778
766
779
section LinearOrderedRing
0 commit comments