Skip to content

Commit c8b5c14

Browse files
committed
Merge branch 'master' into linear-maps
2 parents e47786e + 41cf5c1 commit c8b5c14

File tree

47 files changed

+1556
-267
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1556
-267
lines changed

CONTRIBUTORS.toml

+6
Original file line numberDiff line numberDiff line change
@@ -257,3 +257,9 @@ github = "JobPetrovcic"
257257
displayName = "Louis Wasserman"
258258
usernames = [ "Louis Wasserman" ]
259259
github = "lowasser"
260+
261+
[[contributors]]
262+
displayName = "Evan Cavallo"
263+
usernames = [ "Evan Cavallo" ]
264+
github = "ecavallo"
265+
homepage = "https://ecavallo.net/"

src/elementary-number-theory.lagda.md

+4
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ open import elementary-number-theory.group-of-integers public
8686
open import elementary-number-theory.half-integers public
8787
open import elementary-number-theory.hardy-ramanujan-number public
8888
open import elementary-number-theory.inclusion-natural-numbers-conatural-numbers public
89+
open import elementary-number-theory.inequality-arithmetic-geometric-means-integers public
90+
open import elementary-number-theory.inequality-arithmetic-geometric-means-rational-numbers public
8991
open import elementary-number-theory.inequality-conatural-numbers public
9092
open import elementary-number-theory.inequality-integer-fractions public
9193
open import elementary-number-theory.inequality-integers public
@@ -145,6 +147,7 @@ open import elementary-number-theory.peano-arithmetic public
145147
open import elementary-number-theory.pisano-periods public
146148
open import elementary-number-theory.poset-of-natural-numbers-ordered-by-divisibility public
147149
open import elementary-number-theory.positive-and-negative-integers public
150+
open import elementary-number-theory.positive-and-negative-rational-numbers public
148151
open import elementary-number-theory.positive-conatural-numbers public
149152
open import elementary-number-theory.positive-integer-fractions public
150153
open import elementary-number-theory.positive-integers public
@@ -168,6 +171,7 @@ open import elementary-number-theory.square-free-natural-numbers public
168171
open import elementary-number-theory.squares-integers public
169172
open import elementary-number-theory.squares-modular-arithmetic public
170173
open import elementary-number-theory.squares-natural-numbers public
174+
open import elementary-number-theory.squares-rational-numbers public
171175
open import elementary-number-theory.standard-cyclic-groups public
172176
open import elementary-number-theory.standard-cyclic-rings public
173177
open import elementary-number-theory.stirling-numbers-of-the-second-kind public

src/elementary-number-theory/addition-integers.lagda.md

+13
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,19 @@ abstract
568568
is-zero-left-add-ℤ y x (commutative-add-ℤ y x ∙ H)
569569
```
570570

571+
### Swapping laws
572+
573+
```agda
574+
abstract
575+
right-swap-add-ℤ : (x y z : ℤ) → (x +ℤ y) +ℤ z = (x +ℤ z) +ℤ y
576+
right-swap-add-ℤ x y z =
577+
equational-reasoning
578+
(x +ℤ y) +ℤ z
579+
= x +ℤ (y +ℤ z) by associative-add-ℤ x y z
580+
= x +ℤ (z +ℤ y) by ap (x +ℤ_) (commutative-add-ℤ y z)
581+
= (x +ℤ z) +ℤ y by inv (associative-add-ℤ x z y)
582+
```
583+
571584
## See also
572585

573586
- Properties of addition with respect to positivity, nonnegativity, negativity

src/elementary-number-theory/additive-group-of-rational-numbers.lagda.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ open import group-theory.semigroups
3232
The type of [rational numbers](elementary-number-theory.rational-numbers.md)
3333
equipped with [addition](elementary-number-theory.addition-rational-numbers.md)
3434
is a [commutative group](group-theory.abelian-groups.md) with unit `zero-ℚ` and
35-
inverse given by`neg-ℚ`.
35+
inverse given by `neg-ℚ`.
3636

3737
## Definitions
3838

src/elementary-number-theory/closed-intervals-rational-numbers.lagda.md

+6-8
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ open import elementary-number-theory.maximum-rational-numbers
1515
open import elementary-number-theory.minimum-rational-numbers
1616
open import elementary-number-theory.multiplication-rational-numbers
1717
open import elementary-number-theory.negative-rational-numbers
18+
open import elementary-number-theory.positive-and-negative-rational-numbers
1819
open import elementary-number-theory.positive-rational-numbers
1920
open import elementary-number-theory.rational-numbers
2021
open import elementary-number-theory.strict-inequality-rational-numbers
@@ -134,16 +135,14 @@ abstract
134135
let
135136
p≤q = transitive-leq-ℚ p r q r≤q p≤r
136137
in
137-
trichotomy-le-ℚ
138+
trichotomy-sign-ℚ
138139
( s)
139-
( zero-ℚ)
140-
( λ s<0 →
140+
( λ neg-s →
141141
is-in-reversed-unordered-closed-interval-is-in-closed-interval-ℚ
142142
(q *ℚ s)
143143
(p *ℚ s)
144144
(r *ℚ s)
145-
( left-mul-negative-closed-interval-ℚ p q r s H
146-
( is-negative-le-zero-ℚ s s<0)))
145+
( left-mul-negative-closed-interval-ℚ p q r s H neg-s))
147146
( λ s=0 →
148147
let
149148
ps=0 = ap (p *ℚ_) s=0 ∙ right-zero-law-mul-ℚ p
@@ -160,13 +159,12 @@ abstract
160159
( _)
161160
( rs=0 ∙
162161
inv (ap-binary max-ℚ ps=0 qs=0 ∙ idempotent-max-ℚ zero-ℚ)))
163-
( λ 0<s →
162+
( λ pos-s →
164163
is-in-unordered-closed-interval-is-in-closed-interval-ℚ
165164
( p *ℚ s)
166165
( q *ℚ s)
167166
( r *ℚ s)
168-
( left-mul-positive-closed-interval-ℚ p q r s H
169-
( is-positive-le-zero-ℚ s 0<s)))
167+
( left-mul-positive-closed-interval-ℚ p q r s H pos-s))
170168
171169
abstract
172170
right-mul-closed-interval-ℚ :

src/elementary-number-theory/difference-rational-numbers.lagda.md

+33
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ module elementary-number-theory.difference-rational-numbers where
1010

1111
```agda
1212
open import elementary-number-theory.addition-rational-numbers
13+
open import elementary-number-theory.difference-integers
14+
open import elementary-number-theory.integers
1315
open import elementary-number-theory.rational-numbers
1416
1517
open import foundation.action-on-identifications-binary-functions
@@ -86,6 +88,22 @@ abstract
8688
left-zero-law-diff-ℚ x = left-unit-law-add-ℚ (neg-ℚ x)
8789
```
8890

91+
### If the difference of two rational numbers is zero, they are equal
92+
93+
```agda
94+
abstract
95+
eq-is-zero-diff-ℚ : (x y : ℚ) → x -ℚ y = zero-ℚ → x = y
96+
eq-is-zero-diff-ℚ x y x-y=0 =
97+
inv
98+
( equational-reasoning
99+
y
100+
= zero-ℚ +ℚ y by inv (left-unit-law-add-ℚ y)
101+
= (x -ℚ y) +ℚ y by ap (_+ℚ y) (inv x-y=0)
102+
= x +ℚ (neg-ℚ y +ℚ y) by associative-add-ℚ _ _ _
103+
= x +ℚ zero-ℚ by ap (x +ℚ_) (left-inverse-law-add-ℚ y)
104+
= x by right-unit-law-add-ℚ x)
105+
```
106+
89107
### Triangular identity for addition and difference of rational numbers
90108

91109
```agda
@@ -152,3 +170,18 @@ abstract
152170
( ap-diff-ℚ (commutative-add-ℚ x z) (commutative-add-ℚ y z)) ∙
153171
( left-translation-diff-ℚ x y z)
154172
```
173+
174+
### The inclusion of integers preserves differences
175+
176+
```agda
177+
abstract
178+
diff-rational-ℤ :
179+
(x y : ℤ) → rational-ℤ x -ℚ rational-ℤ y = rational-ℤ (x -ℤ y)
180+
diff-rational-ℤ x y =
181+
equational-reasoning
182+
rational-ℤ x -ℚ rational-ℤ y
183+
= rational-ℤ x +ℚ rational-ℤ (neg-ℤ y)
184+
by ap (rational-ℤ x +ℚ_) (inv (preserves-neg-rational-ℤ y))
185+
= rational-ℤ (x -ℤ y)
186+
by add-rational-ℤ x (neg-ℤ y)
187+
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# Inequality of arithmetic and geometric means on the integers
2+
3+
```agda
4+
{-# OPTIONS --lossy-unification #-}
5+
6+
module elementary-number-theory.inequality-arithmetic-geometric-means-integers where
7+
```
8+
9+
<details><summary>Imports</summary>
10+
11+
```agda
12+
open import elementary-number-theory.addition-integers
13+
open import elementary-number-theory.difference-integers
14+
open import elementary-number-theory.inequality-integers
15+
open import elementary-number-theory.integers
16+
open import elementary-number-theory.multiplication-integers
17+
open import elementary-number-theory.nonnegative-integers
18+
open import elementary-number-theory.squares-integers
19+
20+
open import foundation.action-on-identifications-functions
21+
open import foundation.identity-types
22+
open import foundation.transport-along-identifications
23+
```
24+
25+
</details>
26+
27+
## Idea
28+
29+
The
30+
{{#concept "arithmetic mean-geometric mean inequality" Disambiguation="on integers" WD="AM-GM inequality" WDID=Q841170 Agda=leq-arithmetic-mean-geometric-mean-ℤ}}
31+
states that $\sqrt{xy} \leq \frac{x + y}{2}$. We cannot take arbitrary square
32+
roots in integers, but we can prove the equivalent inequality that
33+
$4xy \leq (x + y)^2$.
34+
35+
## Proof
36+
37+
```agda
38+
abstract
39+
leq-arithmetic-mean-geometric-mean-ℤ :
40+
(x y : ℤ) →
41+
leq-ℤ (int-ℕ 4 *ℤ (x *ℤ y)) (square-ℤ (x +ℤ y))
42+
leq-arithmetic-mean-geometric-mean-ℤ x y =
43+
inv-tr
44+
( is-nonnegative-ℤ)
45+
( equational-reasoning
46+
square-ℤ (x +ℤ y) -ℤ (int-ℕ 4 *ℤ (x *ℤ y))
47+
48+
(square-ℤ x +ℤ (int-ℕ 2 *ℤ (x *ℤ y)) +ℤ square-ℤ y) -ℤ
49+
(int-ℕ 4 *ℤ (x *ℤ y))
50+
by ap (_-ℤ int-ℕ 4 *ℤ (x *ℤ y)) (square-add-ℤ x y)
51+
52+
(square-ℤ x +ℤ square-ℤ y +ℤ (int-ℕ 2 *ℤ (x *ℤ y))) +ℤ
53+
(neg-ℤ (int-ℕ 4) *ℤ (x *ℤ y))
54+
by
55+
ap-add-ℤ
56+
( right-swap-add-ℤ
57+
( square-ℤ x)
58+
( int-ℕ 2 *ℤ (x *ℤ y))
59+
( square-ℤ y))
60+
( inv (left-negative-law-mul-ℤ _ _))
61+
62+
(square-ℤ x +ℤ square-ℤ y) +ℤ
63+
(int-ℕ 2 *ℤ (x *ℤ y) +ℤ neg-ℤ (int-ℕ 4) *ℤ (x *ℤ y))
64+
by associative-add-ℤ _ _ _
65+
66+
(square-ℤ x +ℤ square-ℤ y) +ℤ
67+
(neg-ℤ (int-ℕ 2) *ℤ (x *ℤ y))
68+
by
69+
ap
70+
( square-ℤ x +ℤ square-ℤ y +ℤ_)
71+
( inv
72+
( right-distributive-mul-add-ℤ
73+
( int-ℕ 2)
74+
( neg-ℤ (int-ℕ 4))
75+
( x *ℤ y)))
76+
= (square-ℤ x +ℤ square-ℤ y) -ℤ (int-ℕ 2 *ℤ (x *ℤ y))
77+
by
78+
ap
79+
( square-ℤ x +ℤ square-ℤ y +ℤ_)
80+
( left-negative-law-mul-ℤ _ (x *ℤ y))
81+
= square-ℤ x -ℤ int-ℕ 2 *ℤ (x *ℤ y) +ℤ square-ℤ y
82+
by right-swap-add-ℤ _ _ _
83+
= square-ℤ (x -ℤ y) by inv (square-diff-ℤ x y))
84+
( is-nonnegative-square-ℤ (x -ℤ y))
85+
```

0 commit comments

Comments
 (0)