- numPolygons : ℕ
- polygon : Fin self.numPolygons → Set (Fin 3 → ℝ)
- polygon_convex (i : Fin self.numPolygons) : Convex ℝ (self.polygon i)
- Vertex : Type
- Edge : Type
- decEdge : DecidableEq self.Edge
- edgesOf : Fin self.numPolygons → Finset self.Edge
Instances For
noncomputable def
CombinatorialGaussBonnet.CompactCombinatorialSurface.numVertices
(S : CompactCombinatorialSurface)
:
Instances For
noncomputable def
CombinatorialGaussBonnet.CompactCombinatorialSurface.numEdges
(S : CompactCombinatorialSurface)
:
Instances For
noncomputable def
CombinatorialGaussBonnet.CompactCombinatorialSurface.eulerCharacteristic
(S : CompactCombinatorialSurface)
:
Instances For
- V : Type
- E : Type
- F : Type
- decV : DecidableEq self.V
- decF : DecidableEq self.F
Instances For
noncomputable def
CombinatorialGaussBonnet.SurfaceTriangulation.numVertices
(T : SurfaceTriangulation)
:
Instances For
noncomputable def
CombinatorialGaussBonnet.SurfaceTriangulation.numEdges
(T : SurfaceTriangulation)
:
Instances For
noncomputable def
CombinatorialGaussBonnet.SurfaceTriangulation.numFaces
(T : SurfaceTriangulation)
:
Instances For
noncomputable def
CombinatorialGaussBonnet.SurfaceTriangulation.eulerCharacteristic
(T : SurfaceTriangulation)
:
Instances For
noncomputable def
CombinatorialGaussBonnet.SurfaceTriangulation.gaussCurvatureComb
(T : SurfaceTriangulation)
(v : T.V)
:
Instances For
- Vertex : Type
- decVertex : DecidableEq self.Vertex
- Edge : Type
- decEdge : DecidableEq self.Edge
- Face : Type
- decFace : DecidableEq self.Face
- faceVertices_injective (f : self.Face) : Function.Injective (self.faceVertices f)
- edgeEndpoints_injective (e : self.Edge) : Function.Injective (self.edgeEndpoints e)
Instances For
noncomputable def
SmoothGaussBonnet.Triangulation.numVertices
{M : Set (Fin 3 → ℝ)}
(τ : Triangulation M)
:
Instances For
noncomputable def
SmoothGaussBonnet.Triangulation.numEdges
{M : Set (Fin 3 → ℝ)}
(τ : Triangulation M)
:
Instances For
noncomputable def
SmoothGaussBonnet.Triangulation.numFaces
{M : Set (Fin 3 → ℝ)}
(τ : Triangulation M)
:
Instances For
noncomputable def
SmoothGaussBonnet.Triangulation.eulerCharacteristic
{M : Set (Fin 3 → ℝ)}
(τ : Triangulation M)
:
Instances For
- singularPoints : Finset (EuclideanSpace ℝ (Fin 3))
- sing_in_M (p : EuclideanSpace ℝ (Fin 3)) : p ∈ self.singularPoints → p ∈ M
- frame₁ : ↑(M \ ↑self.singularPoints) → EuclideanSpace ℝ (Fin 3)
- frame₂ : ↑(M \ ↑self.singularPoints) → EuclideanSpace ℝ (Fin 3)
- surfaceNormal : ↑(M \ ↑self.singularPoints) → EuclideanSpace ℝ (Fin 3)
- frame₁_tangent (y : ↑(M \ ↑self.singularPoints)) : inner ℝ (self.frame₁ y) (self.surfaceNormal y) = 0
- frame₂_tangent (y : ↑(M \ ↑self.singularPoints)) : inner ℝ (self.frame₂ y) (self.surfaceNormal y) = 0
- multiplicity : ↥self.singularPoints → ℤ
Instances For
- carrier_smooth : GaussMapDegree.IsSmHypersurface 2 self.carrier
- gaussianCurvature_eq (p : Fin 3 → ℝ) : p ∈ self.carrier → self.gaussianCurvature p = GaussMapDegree.jacobianDetAtPoint self.gaussMap self.localParam (self.localParamInv p) (self.gaussMap p)
- gaussMapDegree : ℤ
- gaussMapDegree_eq : ∫ (p : Fin 3 → ℝ) in self.carrier, self.gaussianCurvature p ∂MeasureTheory.Measure.hausdorffMeasure 2 = ↑self.gaussMapDegree * (4 * Real.pi)
- triangulation : CombinatorialGaussBonnet.SurfaceTriangulation
- vertexPos : self.triangulation.V → Fin 3 → ℝ
Instances For
Instances For
Instances For
theorem
SmoothGaussBonnet.totalGaussianCurvature_eq_degree_general
{n : ℕ}
(f : GaussMapDegree.SmoothMapToSphere n)
:
(-1) ^ n * ∫ (p : Fin (n + 1) → ℝ) in f.M, f.tangentMapDet p ∂MeasureTheory.Measure.hausdorffMeasure ↑n = (-1) ^ n * GaussMapDegree.sphereVolume n * ↑(GaussMapDegree.degreeOfMap f)
- M_connected : IsConnected self.M
- gaussMap_smooth : ContDiffOn ℝ ⊤ self.gaussMap self.M
- gaussianCurvature_eq (p : Fin 3 → ℝ) : p ∈ self.M → self.gaussianCurvature p = GaussMapDegree.jacobianDetAtPoint self.gaussMap self.localParam (self.localParamInv p) (self.gaussMap p)
- gaussMapDegree : ℤ
Instances For
Instances For
- region_connected : IsPathConnected self.region
- numCorners : ℕ
- patch : HypersurfacePatch 2
- curvature_consistent (x : Fin 2 → ℝ) : x ∈ self.paramDomain → self.gaussianCurvature (self.patch.f x) = gaussCurvature self.patch x
- totalGaussianCurvature : ℝ
- totalCurvature_eq : self.totalGaussianCurvature = ∫ (x : Fin 2 → ℝ) in self.paramDomain, gaussCurvature self.patch x * √(firstFundamentalForm self.patch x).det
- totalGeodesicCurvature : ℝ
- exteriorAngles : Fin self.numCorners → ℝ
Instances For
Instances For
- numCorners : ℕ
- gaussianCurvature : (Fin 3 → ℝ) → ℝ
- paramDomain : Set (Fin 2 → ℝ)
- curvature_consistent (x : Fin 2 → ℝ) : x ∈ self.paramDomain → self.gaussianCurvature (self.patch.f x) = gaussCurvature self.patch x
- totalCurvature_eq : self.totalGaussianCurvature = ∫ (x : Fin 2 → ℝ) in self.paramDomain, gaussCurvature self.patch x * √(firstFundamentalForm self.patch x).det
- exteriorAngles : Fin self.numCorners → ℝ
- angle₁ : ℝ
- angle₂ : ℝ
- angle₃ : ℝ