- σ_smooth : ContDiffOn ℝ ⊤ self.σ self.domainU
- τ_smooth : ContDiffOn ℝ ⊤ self.τ self.domainV
- h_smooth : ContDiffOn ℝ ⊤ self.h self.domainU
- chain_rule (u : Fin n → ℝ) : u ∈ self.domainU → ((Matrix.of fun (i : Fin (n + 1)) (j : Fin n) => (fderiv ℝ self.σ u) (Function.update 0 j 1) i) * Matrix.of fun (i j : Fin n) => (fderiv ℝ self.h u) (Function.update 0 j 1) i) = Matrix.of fun (i : Fin (n + 1)) (j : Fin n) => (fderiv ℝ (self.τ ∘ self.h) u) (Function.update 0 j 1) i
Instances For
noncomputable def
GaussMapDegree.SmoothHypersurfaceMap.jacobianMatrix
{n : ℕ}
(Φ : SmoothHypersurfaceMap n)
(u : Fin n → ℝ)
:
Instances For
noncomputable def
GaussMapDegree.SmoothHypersurfaceMap.jacobianDet
{n : ℕ}
(Φ : SmoothHypersurfaceMap n)
(u : Fin n → ℝ)
:
Instances For
theorem
GaussMapDegree.SmoothHypersurfaceMap.chain_rule_matrices
{n : ℕ}
(Φ : SmoothHypersurfaceMap n)
(u : Fin n → ℝ)
(hu : u ∈ Φ.domainU)
:
theorem
GaussMapDegree.det_jacobian_formula_geometric
{n : ℕ}
(Φ : SmoothHypersurfaceMap n)
(u : Fin n → ℝ)
(ν_tilde : Fin (n + 1) → ℝ)
(horth : ∀ (j : Fin n), ∑ i : Fin (n + 1), Φ.sourceJacobian u i j * ν_tilde i = 0)
(hnorm : ∑ i : Fin (n + 1), ν_tilde i ^ 2 = 1)
(hpos : 0 < (augmentedMatrix (Φ.sourceJacobian u) ν_tilde).det)
(hchain : Φ.sourceJacobian u * Φ.jacobianMatrix u = Φ.composedJacobian u)
:
theorem
GaussMapDegree.det_jacobian_formula_geometric_target
{n : ℕ}
(Φ : SmoothHypersurfaceMap n)
(u : Fin n → ℝ)
(htarget_orth_source : ∀ (j : Fin n), ∑ i : Fin (n + 1), Φ.sourceJacobian u i j * Φ.ν_tilde (Φ.h u) i = 0)
(hpos : 0 < (augmentedMatrix (Φ.sourceJacobian u) (Φ.ν_tilde (Φ.h u))).det)
(hu : u ∈ Φ.domainU)
:
Φ.jacobianDet u = (augmentedMatrix (Φ.composedJacobian u) (Φ.ν_tilde (Φ.h u))).det / √(gramMatrix n Φ.σ u).det
- M_hypersurface : IsSmHypersurface n self.M
- M_tilde_connected : IsConnected self.M_tilde
- M_tilde_hypersurface : IsSmHypersurface n self.M_tilde
Instances For
- M_hypersurface : IsSmHypersurface n self.M
Instances For
noncomputable def
GaussMapDegree.SmoothMapBetweenHypersurfaces.tangentMapDet
{n : ℕ}
(f : SmoothMapBetweenHypersurfaces n)
(p : Fin (n + 1) → ℝ)
:
Instances For
noncomputable def
GaussMapDegree.degreeOfMapBetweenHypersurfacesReal
{n : ℕ}
(f : SmoothMapBetweenHypersurfaces n)
:
Instances For
noncomputable def
GaussMapDegree.degreeOfMapBetweenHypersurfaces
{n : ℕ}
(f : SmoothMapBetweenHypersurfaces n)
:
Instances For
def
GaussMapDegree.SmoothMapToSphere.toSmoothMapBetweenHypersurfaces
{n : ℕ}
(f : SmoothMapToSphere n)
(sphere_hypersurface : IsSmHypersurface n {x : Fin (n + 1) → ℝ | ‖x‖ = 1})
(sphere_connected : IsConnected {x : Fin (n + 1) → ℝ | ‖x‖ = 1})
(sphere_compact : IsCompact {x : Fin (n + 1) → ℝ | ‖x‖ = 1})
(sphere_oriented :
∃ (ν : (Fin (n + 1) → ℝ) → Fin (n + 1) → ℝ), Continuous ν ∧ ∀ p ∈ {x : Fin (n + 1) → ℝ | ‖x‖ = 1}, ‖ν p‖ = 1)
:
Instances For
noncomputable def
GaussMapDegree.SmoothMapToSphere.tangentMapDet
{n : ℕ}
(f : SmoothMapToSphere n)
(p : Fin (n + 1) → ℝ)
:
Instances For
Instances For
Instances For
theorem
GaussMapDegree.surjective_of_degree_ne_zero
{n : ℕ}
(f : SmoothMapToSphere n)
(hdeg : degreeOfMap f ≠ 0)
(q : Fin (n + 1) → ℝ)
:
theorem
GaussMapDegree.area_formula_bijective_pos_det
{n : ℕ}
(f : SmoothMapBetweenHypersurfaces n)
(hbij : Function.Bijective fun (p : ↑f.M) => f.φ ↑p)
(hdet_pos : ∀ p ∈ f.M, 0 < f.tangentMapDet p)
:
∫ (p : Fin (n + 1) → ℝ) in f.M, f.tangentMapDet p ∂MeasureTheory.Measure.hausdorffMeasure ↑n = hypersurfaceVolume n f.M_tilde
theorem
GaussMapDegree.degree_of_bijective_pos_det
{n : ℕ}
(f : SmoothMapBetweenHypersurfaces n)
(hbij : Function.Bijective fun (p : ↑f.M) => f.φ ↑p)
(hdet_pos : ∀ p ∈ f.M, 0 < f.tangentMapDet p)
(hvol_pos : 0 < hypersurfaceVolume n f.M_tilde)
: