Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(geometry/euclidean): Euclidean space (#2852)
Define Euclidean affine spaces (not necessarily finite-dimensional), and a corresponding instance for the standard Euclidean space `fin n → ℝ`. This just defines the type class and the instance, with some other basic geometric definitions and results to be added separately once this is in. I haven't attempted to do anything about the `euclidean_space` definition in geometry/manifold/real_instances.lean that comes with a comment that it uses the wrong norm. That might better be refactored by someone familiar with the manifold code. By defining Euclidean spaces such that they are defined to be metric spaces, and providing an instance, this probably implicitly gives item 91 "The Triangle Inequality" from the 100-theorems list, if that's taken to have a geometric interpretation as in the Coq version, but it's not very clear how something implicit like that from various different pieces of the library, and where the item on the list could be interpreted in several different ways anyway, should be entered in 100.yaml. Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>
- Loading branch information
1 parent
74d446d
commit 62cb7f2
Showing
3 changed files
with
117 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
/- | ||
Copyright (c) 2020 Joseph Myers. All rights reserved. | ||
Released under Apache 2.0 license as described in the file LICENSE. | ||
Author: Joseph Myers. | ||
-/ | ||
import analysis.normed_space.real_inner_product | ||
import analysis.normed_space.add_torsor | ||
|
||
noncomputable theory | ||
|
||
/-! | ||
# Euclidean spaces | ||
This file defines Euclidean affine spaces. | ||
## Implementation notes | ||
Rather than requiring Euclidean affine spaces to be finite-dimensional | ||
(as in the definition on Wikipedia), this is specified only for those | ||
theorems that need it. | ||
## References | ||
* https://en.wikipedia.org/wiki/Euclidean_space | ||
-/ | ||
|
||
/-- A `euclidean_affine_space V P` is an affine space with points `P` | ||
over an `inner_product_space V`. -/ | ||
abbreviation euclidean_affine_space (V : Type*) (P : Type*) [inner_product_space V] | ||
[metric_space P] := | ||
normed_add_torsor V P | ||
|
||
example (n : Type*) [fintype n] : euclidean_affine_space (euclidean_space n) (euclidean_space n) := | ||
by apply_instance |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters