Documentation

Atlas.DifferentialGeometry.code.Manifolds

theorem implicit_function_inverse_smooth {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] (ψ : E → ℝ) (y : E) (Φ : OpenPartialHomeomorph E (ℝ × ↥(↑(fderiv ℝ ψ y)).ker)) {V : Set E} (hV : IsOpen V) (hψ_smooth : ContDiffOn ℝ ⊤ ψ V) (hψ_deriv : fderiv ℝ ψ y ≠ 0) (hy_source : y ∈ Φ.source) (h_source_sub : Φ.source ⊆ V) (h_fwd_smooth : ContDiffOn ℝ ⊤ (↑Φ) Φ.source) :
theorem implicit_function_straightening {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {V : Set E} (hV : IsOpen V) (ψ : E → ℝ) (y : E) (hy : y ∈ V) (hψ_smooth : ContDiffOn ℝ ⊤ ψ V) (hψ_zero : ψ y = 0) (hψ_deriv : fderiv ℝ ψ y ≠ 0) :
∃ (Φ : OpenPartialHomeomorph E (ℝ × ↥(↑(fderiv ℝ ψ y)).ker)), y ∈ Φ.source ∧ Φ.source ⊆ V ∧ ↑Φ y = (0, 0) ∧ (∀ x ∈ Φ.source, ψ x = (↑Φ x).1) ∧ ContDiffOn ℝ ⊤ (↑Φ) Φ.source ∧ ContDiffOn ℝ ⊤ (↑Φ.symm) Φ.target
theorem implicit_function_diffeomorphism {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {V : Set E} (hV : IsOpen V) (ψ : E → ℝ) (y : E) (hy : y ∈ V) (hψ_smooth : ContDiffOn ℝ ⊤ ψ V) (hψ_zero : ψ y = 0) (hψ_deriv : fderiv ℝ ψ y ≠ 0) :
∃ (Φ : OpenPartialHomeomorph E (ℝ × ↥(↑(fderiv ℝ ψ y)).ker)), y ∈ Φ.source ∧ Φ.source ⊆ V ∧ ↑Φ y = (0, 0) ∧ (∀ x ∈ Φ.source, ψ x = (↑Φ x).1) ∧ ContDiffOn ℝ ⊤ (↑Φ) Φ.source ∧ ContDiffOn ℝ ⊤ (↑Φ.symm) Φ.target
theorem inverse_function_theorem {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] {F : Type u_2} [NormedAddCommGroup F] [NormedSpace ℝ F] [CompleteSpace F] {φ : E → F} {y : E} (hφ_smooth : ContDiff ℝ ⊤ φ) {f' : E ≃L[ℝ] F} (hf' : HasStrictFDerivAt φ (↑f') y) :
∃ (Φ : OpenPartialHomeomorph E F), (∀ x ∈ Φ.source, ↑Φ x = φ x) ∧ y ∈ Φ.source ∧ IsOpen Φ.source ∧ IsOpen Φ.target ∧ ContDiffOn ℝ ⊤ (↑Φ) Φ.source ∧ ContDiffOn ℝ ⊤ (↑Φ.symm) Φ.target
theorem inverse_function_theorem_local_homeomorph {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] {F : Type u_2} [NormedAddCommGroup F] [NormedSpace ℝ F] (φ : E → F) (y : E) (hφ_smooth : ContDiff ℝ ⊤ φ) (f' : E ≃L[ℝ] F) (hf' : HasStrictFDerivAt φ (↑f') y) :
∃ (Φ : OpenPartialHomeomorph E F), (∀ x ∈ Φ.source, ↑Φ x = φ x) ∧ y ∈ Φ.source ∧ IsOpen Φ.source ∧ IsOpen Φ.target ∧ ContDiffOn ℝ ⊤ (↑Φ) Φ.source
structure IsDiffeomorphism {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {F : Type u_2} [NormedAddCommGroup F] [NormedSpace ℝ F] (φ : E → F) (V : Set E) (U : Set F) :
Instances For
    structure Hypersurface.IsLocalDefiningFunction {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] (ψ : E → ℝ) (M : Set E) (y : E) :
    Instances For
      noncomputable def Hypersurface.tangentSpace {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] (ψ : E → ℝ) (y : E) :
      Instances For
        def Hypersurface.IsRegularPoint {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] (ψ : E → ℝ) (y : E) :
        Instances For
          theorem Hypersurface.mem_tangentSpace_iff {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {ψ : E → ℝ} {y v : E} :
          v ∈ tangentSpace ψ y ↔ (fderiv ℝ ψ y) v = 0
          theorem Hypersurface.IsLocalDefiningFunction.eq_zero_of_mem {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {ψ : E → ℝ} {M : Set E} {y : E} (hψ : IsLocalDefiningFunction ψ M y) (hy : y ∈ M) :
          ψ y = 0
          structure Hypersurface.IsSmoothLocalDefiningFunction {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] (ψ : E → ℝ) (M : Set E) (y : E) :
          Instances For
            theorem Hypersurface.IsSmoothLocalDefiningFunction.eq_zero_of_mem {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {ψ : E → ℝ} {M : Set E} {y : E} (hψ : IsSmoothLocalDefiningFunction ψ M y) (hy : y ∈ M) :
            ψ y = 0
            theorem Hypersurface.smooth_division {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {ψ : E → ℝ} {M : Set E} {y : E} (hψ : IsSmoothLocalDefiningFunction ψ M y) (φ : E → ℝ) (hφ_smooth : ContDiff ℝ ⊤ φ) (hφ_vanish : ∃ (V : Set E), IsOpen V ∧ y ∈ V ∧ ∀ x ∈ V, x ∈ M → φ x = 0) :
            ∃ (W : Set E), IsOpen W ∧ y ∈ W ∧ ∃ (q : E → ℝ), ContDiffOn ℝ ⊤ q W ∧ (∀ x ∈ W, φ x = q x * ψ x) ∧ ∀ (q' : E → ℝ), ContDiffOn ℝ ⊤ q' W → (∀ x ∈ W, φ x = q' x * ψ x) → ∀ x ∈ W, q' x = q x
            structure Hypersurface.IsPartialParametrization {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {F : Type u_2} [NormedAddCommGroup F] [NormedSpace ℝ F] (M : Set E) :
            Type (max u_1 u_2)
            Instances For
              structure Hypersurface.IsGaussMap {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] (ν : E → E) (M : Set E) :
              Instances For
                Instances For
                  noncomputable def Hypersurface.Curvature.gaussCurvatureMatrix {n : ℕ} {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] (ψ : E → ℝ) (y : E) (Y : Fin n → E) (b : OrthonormalBasis (Fin (n + 1)) ℝ E) :
                  Matrix (Fin (n + 1)) (Fin (n + 1)) ℝ
                  Instances For
                    noncomputable def Hypersurface.Curvature.gaussCurvatureLevelSet {n : ℕ} {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] (ψ : E → ℝ) (y : E) (Y : Fin n → E) (b : OrthonormalBasis (Fin (n + 1)) ℝ E) :
                    Instances For
                      noncomputable def Hypersurface.Curvature.shapeOperatorLevelSet {n : ℕ} {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E] (ψ : E → ℝ) (y : E) (Y : Fin n → E) :
                      Matrix (Fin n) (Fin n) ℝ
                      Instances For
                        theorem secondFundamentalForm_eq_hessian_div_gradNorm {n : ℕ} (patch : HypersurfacePatch n) (x : Fin n → ℝ) (hx : x ∈ patch.domain) (ψ : (Fin (n + 1) → ℝ) → ℝ) (hψ_ne_zero : fderiv ℝ ψ (patch.f x) ≠ 0) (hψ_smooth : ContDiffAt ℝ 2 ψ (patch.f x)) (himage : ∀ u ∈ patch.domain, ψ (patch.f u) = 0) :
                        ∃ (s : ℝ) (_ : s = 1 ∨ s = -1), ∀ (i j : Fin n), secondFundamentalForm patch x i j = s * (((fderiv ℝ (fderiv ℝ ψ) (patch.f x)) (patch.partialDeriv x i)) (patch.partialDeriv x j) / ‖fderiv ℝ ψ (patch.f x)‖)
                        theorem trace_firstFundamentalForm_inv_mul_eq_sum_orthonormal {n : ℕ} (patch : HypersurfacePatch n) (x : Fin n → ℝ) (hx : x ∈ patch.domain) (ψ : (Fin (n + 1) → ℝ) → ℝ) (hψ_ne_zero : fderiv ℝ ψ (patch.f x) ≠ 0) (B : (Fin (n + 1) → ℝ) → (Fin (n + 1) → ℝ) → ℝ) (Y : Fin n → Fin (n + 1) → ℝ) (hY_tangent : ∀ (i : Fin n), (fderiv ℝ ψ (patch.f x)) (Y i) = 0) (hY_orthonormal : ∀ (i j : Fin n), ∑ k : Fin (n + 1), Y i k * Y j k = if i = j then 1 else 0) :
                        ((firstFundamentalForm patch x)⁻¹ * Matrix.of fun (i j : Fin n) => B (patch.partialDeriv x i) (patch.partialDeriv x j)).trace = ∑ i : Fin n, B (Y i) (Y i)
                        theorem meanCurvature_parametric_eq_levelSet {n : ℕ} (patch : HypersurfacePatch n) (x : Fin n → ℝ) (hx : x ∈ patch.domain) (ψ : (Fin (n + 1) → ℝ) → ℝ) (hψ_ne_zero : fderiv ℝ ψ (patch.f x) ≠ 0) (hψ_smooth : ContDiffAt ℝ 2 ψ (patch.f x)) (himage : ∀ u ∈ patch.domain, ψ (patch.f u) = 0) (Y : Fin n → Fin (n + 1) → ℝ) (hY_tangent : ∀ (i : Fin n), (fderiv ℝ ψ (patch.f x)) (Y i) = 0) (hY_orthonormal : ∀ (i j : Fin n), ∑ k : Fin (n + 1), Y i k * Y j k = if i = j then 1 else 0) :
                        ∃ (s : ℝ) (_ : s = 1 ∨ s = -1), meanCurvature patch x = s * (1 / ‖fderiv ℝ ψ (patch.f x)‖ * ∑ i : Fin n, ((fderiv ℝ (fderiv ℝ ψ) (patch.f x)) (Y i)) (Y i))
                        structure Hypersurface.IsTangentCurve {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] (c : ℝ → E) (M : Set E) (y v : E) :
                        Instances For
                          theorem Hypersurface.tangent_of_curve {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] {ψ : E → ℝ} {M : Set E} {y v : E} {c : ℝ → E} (hψ : IsLocalDefiningFunction ψ M y) (hc : IsTangentCurve c M y v) :
                          theorem Hypersurface.curve_of_tangent {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [FiniteDimensional ℝ E] {ψ : E → ℝ} {M : Set E} {y v : E} (hψ : IsLocalDefiningFunction ψ M y) (hy : y ∈ M) (hv : v ∈ tangentSpace ψ y) (hstrict : HasStrictFDerivAt ψ (fderiv ℝ ψ y) y) :
                          ∃ (c : ℝ → E), IsTangentCurve c M y v