Lune of Hippocrates
AbbreviationCoordinate plane for Hippocrates' lunes#✓fully proved
The coordinate plane is the set \(\mathbb{R} \times \mathbb{R}\) of ordered pairs \((x, y)\) of real numbers.
abbrev Plane := ℝ × ℝ
Used by 13
DefinitionPlanar determinant for Hippocrates' lunes#✓fully proved
For vectors \(u = (u_1, u_2)\) and \(v = (v_1, v_2)\) of the coordinate plane, \(\det(u, v) = u_1 v_2 - u_2 v_1\), the signed area of the parallelogram spanned by \(u\) and \(v\).
def det2 (u v : Plane) : ℝ := u.1 * v.2 - u.2 * v.1
abbrev Plane := ℝ × ℝ
WantedExt/Geometry/HippocratesLunesWanted.lean:60
Uses 1 · Used by 1
DefinitionMidpoint of two points in the plane#✓fully proved
For points \(p = (p_1, p_2)\) and \(q = (q_1, q_2)\) of the coordinate plane, their midpoint is \(\left(\frac{p_1 + q_1}{2}, \frac{p_2 + q_2}{2}\right)\).
noncomputable def midpoint (p q : Plane) : Plane := ((p.1 + q.1) / 2, (p.2 + q.2) / 2)
abbrev Plane := ℝ × ℝ
WantedExt/Geometry/HippocratesLunesWanted.lean:60
Uses 1 · Used by 1
DefinitionDisplacement vector between two points of the plane#✓fully proved
For points \(p = (p_1, p_2)\) and \(q = (q_1, q_2)\) of \(\mathbb{R}^2\), the displacement vector from \(p\) to \(q\) is \((q_1 - p_1, q_2 - p_2)\).
def vec (p q : Plane) : Plane := (q.1 - p.1, q.2 - p.2)
abbrev Plane := ℝ × ℝ
WantedExt/Geometry/HippocratesLunesWanted.lean:60
Uses 1 · Used by 1
DefinitionSquared Euclidean distance in the plane#✓fully proved
For points \(p = (p_1, p_2)\) and \(q = (q_1, q_2)\) of the coordinate plane, the squared Euclidean distance between them is \((p_1 - q_1)^2 + (p_2 - q_2)^2\).
This uses the Euclidean distance, not the sup metric of the product \(\mathbb{R} \times \mathbb{R}\).
def euclideanDistSq (p q : Plane) : ℝ := (p.1 - q.1) ^ 2 + (p.2 - q.2) ^ 2
abbrev Plane := ℝ × ℝ
WantedExt/Geometry/HippocratesLunesWanted.lean:60
Uses 1 · Used by 1
DefinitionClosed half-disk on a diameter#✓fully proved
Given points \(p\) and \(q\) of the coordinate plane and a property \(S\) of real numbers, this is the set of points \(x\) such that the squared Euclidean distance from \(x\) to the midpoint of \(p\) and \(q\) is at most one quarter of the squared Euclidean distance from \(p\) to \(q\) (so \(x\) lies in the closed disk with diameter \(pq\)), and \(S\) holds of the planar determinant \(\det(q - p, x - p)\). For \(p \ne q\), taking \(S(t)\) to be \(t \ge 0\) (respectively \(t \le 0\)) selects the closed half of that disk to the left (respectively right) of the directed line from \(p\) to \(q\).
def closedHalfDisk (p q : Plane) (side : ℝ → Prop) : Set Plane :=
{x | euclideanDistSq x (midpoint p q) ≤ euclideanDistSq p q / 4 ∧
side (det2 (vec p q) (vec p x))}
abbrev Plane := ℝ × ℝ
WantedExt/Geometry/HippocratesLunesWanted.lean:60
def euclideanDistSq (p q : Plane) : ℝ := (p.1 - q.1) ^ 2 + (p.2 - q.2) ^ 2
WantedExt/Geometry/HippocratesLunesWanted.lean:72
noncomputable def midpoint (p q : Plane) : Plane := ((p.1 + q.1) / 2, (p.2 + q.2) / 2)
WantedExt/Geometry/HippocratesLunesWanted.lean:66
def det2 (u v : Plane) : ℝ := u.1 * v.2 - u.2 * v.1
WantedExt/Geometry/HippocratesLunesWanted.lean:63
def vec (p q : Plane) : Plane := (q.1 - p.1, q.2 - p.2)
WantedExt/Geometry/HippocratesLunesWanted.lean:69
DefinitionRight-angle vertex of the lune triangle#✓fully proved
The point \(A = (0, 0)\), the origin of the coordinate plane; it is the right-angle vertex of the triangle in Hippocrates' theorem on lunes.
def A : Plane := (0, 0)
abbrev Plane := ℝ × ℝ
WantedExt/Geometry/HippocratesLunesWanted.lean:60
Uses 1 · Used by 3
DefinitionHorizontal leg endpoint of the lune triangle#✓fully proved
For a real number \(a\), the point \(B = (a, 0)\) on the \(x\)-axis of the coordinate plane; it is the endpoint of the horizontal leg of the right triangle in Hippocrates' theorem on lunes.
def B (a : ℝ) : Plane := (a, 0)
abbrev Plane := ℝ × ℝ
WantedExt/Geometry/HippocratesLunesWanted.lean:60
Uses 1 · Used by 3
DefinitionVertical leg endpoint of the lune triangle#✓fully proved
For a real number \(b\), the point \(C = (0, b)\) on the \(y\)-axis of the coordinate plane; it is the endpoint of the vertical leg of the right triangle in Hippocrates' theorem on lunes.
def C (b : ℝ) : Plane := (0, b)
abbrev Plane := ℝ × ℝ
WantedExt/Geometry/HippocratesLunesWanted.lean:60
Uses 1 · Used by 3
DefinitionHalf-disk on the hypotenuse#✓fully proved
For real numbers \(a\) and \(b\), let \(B = (a, 0)\) and \(C = (0, b)\). The half-disk on the hypotenuse is the set of points \(x = (x_1, x_2)\) of the closed disk with diameter \(BC\) satisfying \(\det(C - B, x - B) \ge 0\), that is, \(b x_1 + a x_2 \le ab\). For \(a, b > 0\) this is the half of the disk on the side of the line \(BC\) containing the right-angle vertex \((0, 0)\).
def hypotenuseSemidisk (a b : ℝ) : Set Plane :=
closedHalfDisk (B a) (C b) (fun t => 0 ≤ t)
abbrev Plane := ℝ × ℝ
WantedExt/Geometry/HippocratesLunesWanted.lean:60
def closedHalfDisk (p q : Plane) (side : ℝ → Prop) : Set Plane :=
{x | euclideanDistSq x (midpoint p q) ≤ euclideanDistSq p q / 4 ∧
side (det2 (vec p q) (vec p x))}
WantedExt/Geometry/HippocratesLunesWanted.lean:75
def B (a : ℝ) : Plane := (a, 0)
WantedExt/Geometry/HippocratesLunesWanted.lean:82
def C (b : ℝ) : Plane := (0, b)
WantedExt/Geometry/HippocratesLunesWanted.lean:84
DefinitionLune on the horizontal leg#✓fully proved
For real numbers \(a\) and \(b\), let \(A = (0, 0)\), \(B = (a, 0)\) and \(C = (0, b)\). The lune on the horizontal leg is the set of points \(x = (x_1, x_2)\) of the closed disk with diameter \(AB\) satisfying \(a x_2 \le 0\) that do not lie in the half-disk on the hypotenuse, the set of points of the closed disk with diameter \(BC\) satisfying \(b x_1 + a x_2 \le ab\). For \(a, b > 0\) this is the set of points of the closed lower half-disk on the leg \(AB\) that lie outside the closed disk with diameter \(BC\).
def horizontalLune (a b : ℝ) : Set Plane :=
closedHalfDisk A (B a) (fun t => t ≤ 0) \ hypotenuseSemidisk a b
abbrev Plane := ℝ × ℝ
WantedExt/Geometry/HippocratesLunesWanted.lean:60
def closedHalfDisk (p q : Plane) (side : ℝ → Prop) : Set Plane :=
{x | euclideanDistSq x (midpoint p q) ≤ euclideanDistSq p q / 4 ∧
side (det2 (vec p q) (vec p x))}
WantedExt/Geometry/HippocratesLunesWanted.lean:75
def A : Plane := (0, 0)
WantedExt/Geometry/HippocratesLunesWanted.lean:80
def B (a : ℝ) : Plane := (a, 0)
WantedExt/Geometry/HippocratesLunesWanted.lean:82
def hypotenuseSemidisk (a b : ℝ) : Set Plane :=
closedHalfDisk (B a) (C b) (fun t => 0 ≤ t)
WantedExt/Geometry/HippocratesLunesWanted.lean:87
Uses 5 · Used by 1
DefinitionHippocrates lune on the vertical leg#✓fully proved
For real numbers \(a\) and \(b\), the vertical lune is the set of points \((x, y) \in \mathbb{R}^2\) with \(x^2 + (y - b/2)^2 \le b^2/4\) and \(bx \le 0\) that do not satisfy both \((x - a/2)^2 + (y - b/2)^2 \le (a^2 + b^2)/4\) and \(bx + ay \le ab\).
For \(a, b > 0\) this is the closed half-disk on the segment from \((0, 0)\) to \((0, b)\), on the side away from \((a, 0)\), minus the closed half-disk on the hypotenuse from \((a, 0)\) to \((0, b)\), on the side of the origin.
def verticalLune (a b : ℝ) : Set Plane :=
closedHalfDisk A (C b) (fun t => 0 ≤ t) \ hypotenuseSemidisk a b
abbrev Plane := ℝ × ℝ
WantedExt/Geometry/HippocratesLunesWanted.lean:60
def closedHalfDisk (p q : Plane) (side : ℝ → Prop) : Set Plane :=
{x | euclideanDistSq x (midpoint p q) ≤ euclideanDistSq p q / 4 ∧
side (det2 (vec p q) (vec p x))}
WantedExt/Geometry/HippocratesLunesWanted.lean:75
def A : Plane := (0, 0)
WantedExt/Geometry/HippocratesLunesWanted.lean:80
def C (b : ℝ) : Plane := (0, b)
WantedExt/Geometry/HippocratesLunesWanted.lean:84
def hypotenuseSemidisk (a b : ℝ) : Set Plane :=
closedHalfDisk (B a) (C b) (fun t => 0 ≤ t)
WantedExt/Geometry/HippocratesLunesWanted.lean:87
Uses 5 · Used by 1
DefinitionRight triangle with legs on the axes#✓fully proved
For real numbers \(a\) and \(b\), the right triangle \(T(a, b)\) is the convex hull in the plane \(\mathbb{R}^2\) of the three points \((0, 0)\), \((a, 0)\) and \((0, b)\).
def rightTriangle (a b : ℝ) : Set Plane :=
convexHull ℝ ({A, B a, C b} : Set Plane)
abbrev Plane := ℝ × ℝ
WantedExt/Geometry/HippocratesLunesWanted.lean:60
def A : Plane := (0, 0)
WantedExt/Geometry/HippocratesLunesWanted.lean:80
def B (a : ℝ) : Plane := (a, 0)
WantedExt/Geometry/HippocratesLunesWanted.lean:82
def C (b : ℝ) : Plane := (0, b)
WantedExt/Geometry/HippocratesLunesWanted.lean:84
Uses 4 · Used by 1
TheoremHippocrates' theorem on lunes#●ready to prove
Let \(a, b > 0\) and consider the right triangle with vertices \(A = (0, 0)\), \(B = (a, 0)\) and \(C = (0, b)\). The Lebesgue measure of the lune on the horizontal leg plus the Lebesgue measure of the lune on the vertical leg equals the Lebesgue measure of the triangle, that is, of the convex hull of \(A\), \(B\) and \(C\).
public theorem_wanted hippocrates_lunes (a b : ℝ) (ha : 0 < a) (hb : 0 < b) :
volume (horizontalLune a b) + volume (verticalLune a b) =
volume (rightTriangle a b)
def horizontalLune (a b : ℝ) : Set Plane :=
closedHalfDisk A (B a) (fun t => t ≤ 0) \ hypotenuseSemidisk a b
WantedExt/Geometry/HippocratesLunesWanted.lean:91
def verticalLune (a b : ℝ) : Set Plane :=
closedHalfDisk A (C b) (fun t => 0 ≤ t) \ hypotenuseSemidisk a b
WantedExt/Geometry/HippocratesLunesWanted.lean:95
def rightTriangle (a b : ℝ) : Set Plane :=
convexHull ℝ ({A, B a, C b} : Set Plane)
WantedExt/Geometry/HippocratesLunesWanted.lean:99
Sources
- Hippocrates of Chios (c. 440 BC). Knill, §166. Problem
hippocrates_lunesof the lean-eval benchmark.
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.