CKSBondiPenrose
DefinitionThe block develops geometric data for three-dimensional initial-value problems with boundary and a CKS asymptotic end. Formal metric and tensor jets determine Christoffel symbols, Ricci and scalar curvature, traces, norms, and the constraint quantities ρ=(R+(tr K)²−|K|²)/2 and J=div K−d(tr K); the dominant energy condition is √(g⁻¹(J,J))≤ρ. Actual coordinate derivatives supply these jets, while the manifold version requires local smooth coordinates with bijective derivatives and smooth, symmetric coefficient tensors, with the metric positive definite. Cartesian symbol decay means smoothness sufficiently far out and O(r⁻ᵈ⁻ᵏ) bounds for every derivative of order k; ADM energy and momentum are the coordinate sphere flux integrals with factors r²/(16π) and r²/(8π). For CKS data, g and K are pullbacks of b+A and b+B, respectively, where bₓ(v,w)=⟨v,w⟩−⟨x,v⟩⟨x,w⟩/(1+|x|²). In angular patches, A has radial component mᵣ/r⁵+O(r⁻⁶), mixed components O(r⁻³), and angular components m_g/r+O(r⁻²), with bounds through three derivatives; B has radial component O(r⁻⁵), mixed components O(r⁻³), and angular components m_K/r+O(r⁻²), through two derivatives. These remainder bounds use compositions of r∂ᵣ and angular derivatives and require the corresponding differentiability. The smooth leading coefficients determine the mass aspect M=tr_σ(m_g+2m_K)+2mᵣ, where σ is the round angular metric, and the Bondi charge is (16π)⁻¹∫M(n)(1,n)dω, with ω the sphere measure obtained from Euclidean volume. A coordinate end is a smooth diffeomorphism onto the exterior of a positive-radius ball, with closed outer tails and compact inner complements; CKSData assumes such an end, smooth perturbations, and realizing angular patches covering every sphere direction and representing one smooth global mass aspect. Orientability means tangent orientations are locally constant in bundle coordinates, and completeness refers to the extended distance induced by a continuous Riemannian metric. An outer domain is a smoothly embedded three-manifold with closed, connected image containing the complement of some compact set, carrying its interior into the ambient interior and having compact boundary image. Boundary charts construct smooth surfaces, and pullback along a smooth immersion constructs their induced Riemannian metrics. Volume measures are selected by classical choice using the chart density √det(g); cut area is the induced boundary measure of the whole surface. Minimum enclosing area is defined both as an extended nonnegative infimum and, separately, as the real infimum of individual converted cut areas, where infinite area converts to zero. Integrable constraints require continuous integrable functions μ,j with 0≤j≤μ and, in every representing constraint chart, 8πμ=ρ and 8πj=|J|. For real m, the connected Schwarzschild exterior is [0,∞)×S² with radius r=2m+t. With v(r)=−1+(r+1)s(r−2m−1), where s is the smooth transition function, and L²=1−2m/r+v², the Cartesian metric and second tensor have polar expressions g=L⁻²dr²+r²σ and K=v′L⁻²dr²+vrσ, with r=|x|; their pullbacks by the position map give fields on the exterior. The advanced spacetime metric is −(1−2m/r)du²+2du dr+r²σ; the graph has u(r)=∫₂ₘʳ[L(L−v)]⁻¹ds and prescribed normal ((L−v)⁻¹,v∂ᵣ). HorizonRegularGraph is a proposition assuming ambient smoothness and nondegeneracy away from r=0, graph smoothness and its specified derivative for r>m, global graph injectivity, u(2m)=0 and prescribed slope 1/2 at r=2m, and, for r≥2m, the stated induced metric and second form together with a unit timelike orthogonal normal having positive time component. Covariant-derivative pairings, Christoffel pairings, and Gram–Schmidt tangent-frame formulas support these constructions.
-- Generated from openai/math @ adc7f1241b42e322a6451854ab7e4b4c146bf78a
-- Source: lean/ComparatorChallenges/CKSBondiPenrose.lean; bytes 16..176105
-- Kind: block; original declaration names and bodies preserved.
-- Source groups are independent. Target: Lean 4.33.1; see compilation.json.
import Mathlib
-- Lean 4.33.1 equivalents of the upstream Lean 4.34 theorem names.
private theorem dite_eq_left.{u} {c : Prop} {h : Decidable c} (hc : c) {α : Sort u} {t : c → α} {e : ¬c → α} : (dite c t e) = t hc := @dif_pos c h hc α t e
/-! Area-controlled end replacement and Schwarzschild equality examples. -/
namespace OAI.CKSADM
end OAI.CKSADM
namespace OAI.CKSAngularGeometry
end OAI.CKSAngularGeometry
namespace OAI.CKSAngularSlice
end OAI.CKSAngularSlice
namespace OAI.CKSBoundarySurface
end OAI.CKSBoundarySurface
namespace OAI.CKSCalculus
end OAI.CKSCalculus
namespace OAI.CKSCartesianOuter
end OAI.CKSCartesianOuter
namespace OAI.CKSEmbeddingDerivative
end OAI.CKSEmbeddingDerivative
namespace OAI.CKSFullCutArea
end OAI.CKSFullCutArea
namespace OAI.CKSGeometricCuts
end OAI.CKSGeometricCuts
namespace OAI.CKSInducedArea
end OAI.CKSInducedArea
namespace OAI.CKSInducedSphere
end OAI.CKSInducedSphere
namespace OAI.CKSIntrinsicConstraints
end OAI.CKSIntrinsicConstraints
namespace OAI.CKSIntrinsicGeometry
end OAI.CKSIntrinsicGeometry
namespace OAI.CKSIntrinsicVolume
end OAI.CKSIntrinsicVolume
namespace OAI.CKSLocalBending
end OAI.CKSLocalBending
namespace OAI.CKSLorentz
end OAI.CKSLorentz
namespace OAI.CKSLorentz.SmoothAngularPatch
end OAI.CKSLorentz.SmoothAngularPatch
namespace OAI.CKSMain
end OAI.CKSMain
namespace OAI.CKSMain.InteriorSurface
end OAI.CKSMain.InteriorSurface
namespace OAI.CKSMetricGluing
end OAI.CKSMetricGluing
namespace OAI.CKSMixedGeometry
end OAI.CKSMixedGeometry
namespace OAI.CKSMixedGeometry.FiniteLogDecay
end OAI.CKSMixedGeometry.FiniteLogDecay
namespace OAI.CKSRealizedRound
end OAI.CKSRealizedRound
namespace OAI.CKSReplacementCompleteness
end OAI.CKSReplacementCompleteness
namespace OAI.CKSRound
end OAI.CKSRound
namespace OAI.CKSRound.MetricJet
end OAI.CKSRound.MetricJet
namespace OAI.CKSSchwarzschild
end OAI.CKSSchwarzschild
namespace OAI.CKSSourceExterior
end OAI.CKSSourceExterior
namespace OAI.CKSSpatialManifold
end OAI.CKSSpatialManifold
namespace OAI.CKSSphericalHarmonics
end OAI.CKSSphericalHarmonics
namespace OAI.CKSSurfaceVolume
end OAI.CKSSurfaceVolume
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSpatialManifold
local instance real_id_isometric : RingHomIsometric (RingHom.id ℝ) := inferInstance
end OAI.CKSSpatialManifold
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSMetricGluing
open Bundle Manifold Set Bornology
open scoped Bundle Manifold ContDiff
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type*} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type*} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
local instance real_continuousAdd : ContinuousAdd ℝ := inferInstance
local instance real_continuousConstSMul : ContinuousConstSMul ℝ ℝ := inferInstance
local instance real_smulCommClass :
@SMulCommClass ℝ ℝ ℝ Algebra.toSMul
(@instSMulOfMul ℝ (@Distrib.toMul ℝ
(@instDistribOfSemiring ℝ (@CommSemiring.toSemiring ℝ Real.instCommSemiring)))) :=
inferInstance
end OAI.CKSMetricGluing
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSMetricGluing
open Bundle Manifold Set Bornology
open scoped Bundle Manifold ContDiff
variable {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] real_continuousAdd
abbrev InnerField :=
letI := OAI.CKSMetricGluing.real_smulCommClass
letI := OAI.CKSMetricGluing.real_continuousConstSMul
∀ x : M, TangentSpace I x →L[ℝ] TangentSpace I x →L[ℝ] ℝ
abbrev SmoothMetric := ContMDiffRiemannianMetric I ∞ E (fun x : M => TangentSpace I x)
def innerSection (q : OAI.CKSMetricGluing.InnerField I (M := M)) :
M → TotalSpace (E →L[ℝ] E →L[ℝ] ℝ)
(fun x : M => TangentSpace I x →L[ℝ] TangentSpace I x →L[ℝ] ℝ) :=
fun x => ⟨x,q x⟩
end OAI.CKSMetricGluing
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSAngularGeometry
open Set Filter
open scoped Topology ContDiff NNReal Matrix.Norms.Elementwise
abbrev I := Fin 2
end OAI.CKSAngularGeometry
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSCalculus
open Filter Set
open scoped Topology ContDiff
variable {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E]
def D (e : E) (f : E → ℝ) (x : E) : ℝ := fderiv ℝ f x e
end OAI.CKSCalculus
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSRound
abbrev Idx := Fin 3
abbrev Mat := Matrix OAI.CKSRound.Idx OAI.CKSRound.Idx ℝ
structure MetricJet where
inv : OAI.CKSRound.Mat
d : OAI.CKSRound.Idx → OAI.CKSRound.Mat
dd : OAI.CKSRound.Idx → OAI.CKSRound.Idx → OAI.CKSRound.Mat
end OAI.CKSRound
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSRound.MetricJet
def gamma (j : OAI.CKSRound.MetricJet) (a i k : OAI.CKSRound.Idx) : ℝ :=
(∑ l, j.inv a l * (j.d i k l + j.d k i l - j.d l i k)) / 2
def dInv (j : OAI.CKSRound.MetricJet) (s a b : OAI.CKSRound.Idx) : ℝ :=
- ∑ i, ∑ k, j.inv a i * j.d s i k * j.inv k b
def dGamma (j : OAI.CKSRound.MetricJet) (s a i k : OAI.CKSRound.Idx) : ℝ :=
(∑ l, (j.dInv s a l * (j.d i k l + j.d k i l - j.d l i k) +
j.inv a l * (j.dd s i k l + j.dd s k i l - j.dd s l i k))) / 2
def ricci (j : OAI.CKSRound.MetricJet) (i k : OAI.CKSRound.Idx) : ℝ :=
(∑ a, (j.dGamma a a i k - j.dGamma k a i a)) +
∑ a, ∑ b, (j.gamma a a b * j.gamma b i k - j.gamma a k b * j.gamma b i a)
def scalar (j : OAI.CKSRound.MetricJet) : ℝ := ∑ i, ∑ k, j.inv i k * j.ricci i k
end OAI.CKSRound.MetricJet
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSRound
structure TensorJet where
val : OAI.CKSRound.Mat
d : OAI.CKSRound.Idx → OAI.CKSRound.Mat
end OAI.CKSRound
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSRound.MetricJet
def trace (g : OAI.CKSRound.MetricJet) (k : OAI.CKSRound.TensorJet) : ℝ :=
∑ a, ∑ b, g.inv a b * k.val a b
def normSq (g : OAI.CKSRound.MetricJet) (k : OAI.CKSRound.TensorJet) : ℝ :=
∑ a, ∑ b, ∑ c, ∑ d, g.inv a c * g.inv b d * k.val a b * k.val c d
def dTrace (g : OAI.CKSRound.MetricJet) (k : OAI.CKSRound.TensorJet) (i : OAI.CKSRound.Idx) : ℝ :=
∑ a, ∑ b, (g.dInv i a b * k.val a b + g.inv a b * k.d i a b)
def tensorDivergence (g : OAI.CKSRound.MetricJet) (k : OAI.CKSRound.TensorJet) (i : OAI.CKSRound.Idx) : ℝ :=
∑ a, ∑ b, g.inv a b * (k.d a b i -
(∑ c, g.gamma c a b * k.val c i) - (∑ c, g.gamma c a i * k.val b c))
def energy (g : OAI.CKSRound.MetricJet) (k : OAI.CKSRound.TensorJet) : ℝ :=
(g.scalar + g.trace k ^ 2 - g.normSq k) / 2
def momentum (g : OAI.CKSRound.MetricJet) (k : OAI.CKSRound.TensorJet) (i : OAI.CKSRound.Idx) : ℝ :=
g.tensorDivergence k i - g.dTrace k i
end OAI.CKSRound.MetricJet
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSRealizedRound
open CKSCalculus CKSRound
open scoped Topology ContDiff
abbrev Point := Fin 3 → ℝ
def basis (a : OAI.CKSRound.Idx) : OAI.CKSRealizedRound.Point := Pi.single a 1
end OAI.CKSRealizedRound
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLocalBending
open CKSRound
def momentumSq (j : OAI.CKSRound.MetricJet) (k : OAI.CKSRound.TensorJet) : ℝ :=
∑ i, ∑ l, j.inv i l * j.momentum k i * j.momentum k l
def DEC (j : OAI.CKSRound.MetricJet) (k : OAI.CKSRound.TensorJet) : Prop :=
Real.sqrt (OAI.CKSLocalBending.momentumSq j k) ≤ j.energy k
end OAI.CKSLocalBending
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSAngularGeometry
open CKSCalculus Set Filter
open scoped Topology ContDiff NNReal Matrix.Norms.Elementwise
abbrev Point := OAI.CKSAngularGeometry.I → ℝ
def basis (a : OAI.CKSAngularGeometry.I) : OAI.CKSAngularGeometry.Point := Pi.single a 1
end OAI.CKSAngularGeometry
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSAngularGeometry
open CKSCalculus Set Filter Matrix
open scoped Topology ContDiff NNReal Matrix.Norms.Elementwise
abbrev AmbientMat := Matrix (Fin 3) (Fin 3) ℝ
end OAI.CKSAngularGeometry
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSAngularGeometry
open Matrix CKSCalculus
open scoped BigOperators
abbrev PhysicalPoint := Fin 3 → ℝ
end OAI.CKSAngularGeometry
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSMixedGeometry
open CKSCalculus Set Filter
open scoped Topology ContDiff NNReal Matrix.Norms.Elementwise
abbrev I := Fin 3
abbrev A := Fin 2
abbrev Point := OAI.CKSMixedGeometry.I → ℝ
def basis (a : OAI.CKSMixedGeometry.I) : OAI.CKSMixedGeometry.Point := Pi.single a 1
end OAI.CKSMixedGeometry
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSMixedGeometry
open CKSCalculus Set Filter
open scoped Topology ContDiff NNReal
local instance pointDimension_neZero : NeZero (3 : ℕ) := inferInstance
def radialFactor (a : OAI.CKSMixedGeometry.I) (y : OAI.CKSMixedGeometry.Point) : ℝ :=
letI := OAI.CKSMixedGeometry.pointDimension_neZero
if a = 0 then y 0 else 1
def scaledD (a : OAI.CKSMixedGeometry.I) (f : OAI.CKSMixedGeometry.Point → ℝ) : OAI.CKSMixedGeometry.Point → ℝ :=
fun y => OAI.CKSMixedGeometry.radialFactor a y * OAI.CKSCalculus.D (OAI.CKSMixedGeometry.basis a) f y
def scaledIter : List OAI.CKSMixedGeometry.I → (OAI.CKSMixedGeometry.Point → ℝ) → OAI.CKSMixedGeometry.Point → ℝ
| [], f => f
| a::l,f => OAI.CKSMixedGeometry.scaledD a (scaledIter l f)
end OAI.CKSMixedGeometry
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSMixedGeometry
open CKSCalculus Set Filter
open scoped Topology ContDiff NNReal Matrix.Norms.Elementwise
abbrev Angle := OAI.CKSMixedGeometry.A → ℝ
def angularProjection : OAI.CKSMixedGeometry.Point →L[ℝ] OAI.CKSMixedGeometry.Angle :=
ContinuousLinearMap.pi (fun a => ContinuousLinearMap.proj a.succ)
def ScaledComponentBound (f : OAI.CKSMixedGeometry.Point → ℝ) (j q : ℕ) (B : ℝ) (y : OAI.CKSMixedGeometry.Point) : Prop :=
letI := OAI.CKSMixedGeometry.pointDimension_neZero
∀ l : List OAI.CKSMixedGeometry.I, l.length ≤ j → |scaledIter l f y| ≤ B/(y 0)^q
end OAI.CKSMixedGeometry
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedSphere
open Finset
abbrev Ix := Fin 3
end OAI.CKSInducedSphere
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSphericalHarmonics
open MvPolynomial
abbrev Ambient := EuclideanSpace ℝ (Fin 3)
abbrev Sphere := ↥(Metric.sphere (0 : OAI.CKSSphericalHarmonics.Ambient) 1)
end OAI.CKSSphericalHarmonics
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSphericalHarmonics
open MvPolynomial
open MeasureTheory
abbrev surfaceMeasure : Measure OAI.CKSSphericalHarmonics.Sphere := (volume : Measure OAI.CKSSphericalHarmonics.Ambient).toSphere
end OAI.CKSSphericalHarmonics
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSphericalHarmonics
open MvPolynomial
open MeasureTheory
open scoped Pointwise
open scoped Manifold ContDiff Topology
open Set
def SmoothSphere (f : OAI.CKSSphericalHarmonics.Sphere → ℝ) : Prop := ContMDiff (𝓡 2) 𝓘(ℝ, ℝ) ∞ f
end OAI.CKSSphericalHarmonics
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
local instance two_atLeastTwo : Nat.AtLeastTwo 2 := inferInstance
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedSphere
open Set Filter Finset
open scoped Topology ContDiff
abbrev E := EuclideanSpace ℝ OAI.CKSInducedSphere.Ix
end OAI.CKSInducedSphere
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedSphere
open Set Filter Finset
open scoped Topology ContDiff
attribute [local instance] CKSLorentz.two_atLeastTwo
def e (i : OAI.CKSInducedSphere.Ix) : OAI.CKSInducedSphere.E := WithLp.toLp 2 (Pi.single i 1)
def pd (i : OAI.CKSInducedSphere.Ix) (F : OAI.CKSInducedSphere.E → ℝ) (x : OAI.CKSInducedSphere.E) : ℝ := fderiv ℝ F x (OAI.CKSInducedSphere.e i)
end OAI.CKSInducedSphere
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open scoped InnerProductSpace RealInnerProductSpace ContDiff Manifold Topology
open Set
abbrev E := EuclideanSpace ℝ (Fin 3)
abbrev V := ℝ × OAI.CKSLorentz.E
abbrev Sphere := ↥(Metric.sphere (0 : OAI.CKSLorentz.E) 1)
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularSlice Set
open scoped ContDiff Topology
local instance pointDimension_neZero : NeZero (3 : ℕ) := inferInstance
def ordinaryLeadingComponent (q : ℕ) (M : OAI.CKSMixedGeometry.Angle → ℝ) (y : OAI.CKSMixedGeometry.Point) : ℝ :=
letI := OAI.CKSLorentz.pointDimension_neZero
1/(y 0)^q * M (OAI.CKSMixedGeometry.angularProjection y)
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSMixedGeometry
open Set
open scoped ContDiff
structure SourceRemainderOn (j q : ℕ) (V : Set OAI.CKSMixedGeometry.Point) (f : OAI.CKSMixedGeometry.Point → ℝ) : Prop where
regular : ∀ y ∈ V, ContDiffAt ℝ j f y
bound : ∃ B : ℝ, 0 ≤ B ∧ ∀ y ∈ V, OAI.CKSMixedGeometry.ScaledComponentBound f j q B y
end OAI.CKSMixedGeometry
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularSlice Set
open scoped ContDiff Topology
structure SourceCKSComponents (j qrad : ℕ) (V : Set OAI.CKSMixedGeometry.Point)
(A : OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.Point → ℝ) (mr : OAI.CKSMixedGeometry.Angle → ℝ) (mg : OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.Angle → ℝ) : Prop where
radial : OAI.CKSMixedGeometry.SourceRemainderOn j qrad V (fun y => A 0 0 y-OAI.CKSLorentz.ordinaryLeadingComponent 5 mr y)
mixed : ∀ i k, (i=0 ∧ k≠0) ∨ (i≠0 ∧ k=0) → OAI.CKSMixedGeometry.SourceRemainderOn j 3 V (A i k)
angular : ∀ i k, i≠0 → k≠0 → OAI.CKSMixedGeometry.SourceRemainderOn j 2 V
(fun y => A i k y-OAI.CKSLorentz.ordinaryLeadingComponent 1 (mg i k) y)
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularSlice Set
def angularRadialTail (R : ℝ) (W : Set OAI.CKSMixedGeometry.Angle) : Set OAI.CKSMixedGeometry.Point :=
letI := OAI.CKSLorentz.pointDimension_neZero
{y | R < y 0 ∧ OAI.CKSMixedGeometry.angularProjection y ∈ W}
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularSlice Set
open scoped ContDiff Topology
structure SmoothAngularPatch where
chart : OpenPartialHomeomorph OAI.CKSLorentz.Sphere OAI.CKSMixedGeometry.Angle
param_smooth : ContDiffOn ℝ ∞ (fun θ => (chart.symm θ : OAI.CKSLorentz.E)) chart.target
extension : OAI.CKSLorentz.E → OAI.CKSMixedGeometry.Angle
domain : Set OAI.CKSLorentz.E
isOpen_domain : IsOpen domain
extension_smooth : ContDiffOn ℝ ∞ extension domain
source_domain : ∀ n ∈ chart.source, (n:OAI.CKSLorentz.E) ∈ domain
extension_eq : ∀ n ∈ chart.source, extension n = chart n
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz.SmoothAngularPatch
open CKSMixedGeometry CKSAngularSlice Set
open scoped ContDiff Topology
def param (P : OAI.CKSLorentz.SmoothAngularPatch) (θ : OAI.CKSMixedGeometry.Angle) : OAI.CKSLorentz.E := P.chart.symm θ
def sphereRegion (P : OAI.CKSLorentz.SmoothAngularPatch) (W : Set OAI.CKSMixedGeometry.Angle) : Set OAI.CKSLorentz.Sphere :=
P.chart.source ∩ P.chart ⁻¹' W
end OAI.CKSLorentz.SmoothAngularPatch
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularSlice Set
open scoped ContDiff Topology
structure CKSTensorPatch where
patch : OAI.CKSLorentz.SmoothAngularPatch
region : Set OAI.CKSMixedGeometry.Angle
open_region : IsOpen region
region_target : region ⊆ patch.chart.target
radius : ℝ
metric : OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.Point → ℝ
second : OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.Point → ℝ
mr : OAI.CKSMixedGeometry.Angle → ℝ
mg : OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.Angle → ℝ
mK : OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.Angle → ℝ
mr_smooth : ContDiffOn ℝ ∞ mr region
mg_smooth : ∀ i k, i≠0 → k≠0 → ContDiffOn ℝ ∞ (mg i k) region
mK_smooth : ∀ i k, i≠0 → k≠0 → ContDiffOn ℝ ∞ (mK i k) region
metric_CKS : OAI.CKSLorentz.SourceCKSComponents 3 6 (OAI.CKSLorentz.angularRadialTail radius region) metric mr mg
second_CKS : OAI.CKSLorentz.SourceCKSComponents 2 5 (OAI.CKSLorentz.angularRadialTail radius region) second (fun _ => 0) mK
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularSlice
local instance real_continuousAdd : ContinuousAdd ℝ := inferInstance
local instance real_continuousConstSMul : ContinuousConstSMul ℝ ℝ := inferInstance
local instance real_smulCommClass :
@SMulCommClass ℝ ℝ ℝ Algebra.toSMul
(@instSMulOfMul ℝ (@Distrib.toMul ℝ
(@instDistribOfSemiring ℝ (@CommSemiring.toSemiring ℝ Real.instCommSemiring)))) :=
inferInstance
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularSlice
attribute [local instance] real_continuousAdd
abbrev SpatialBilinear :=
letI := OAI.CKSLorentz.real_smulCommClass
letI := OAI.CKSLorentz.real_continuousConstSMul
OAI.CKSLorentz.E →L[ℝ] OAI.CKSLorentz.E →L[ℝ] ℝ
abbrev SpatialTensor := OAI.CKSLorentz.E → OAI.CKSLorentz.SpatialBilinear
local instance three_neZero : NeZero 3 := inferInstance
def polarParam (P : OAI.CKSLorentz.SmoothAngularPatch) (y : OAI.CKSMixedGeometry.Point) : OAI.CKSLorentz.E :=
letI := OAI.CKSLorentz.three_neZero
y 0 • P.param (OAI.CKSMixedGeometry.angularProjection y)
def polarTensorComponents (P : OAI.CKSLorentz.SmoothAngularPatch) (A : OAI.CKSLorentz.SpatialTensor)
(i k : OAI.CKSMixedGeometry.I) (y : OAI.CKSMixedGeometry.Point) : ℝ :=
A (OAI.CKSLorentz.polarParam P y) (fderiv ℝ (OAI.CKSLorentz.polarParam P) y (OAI.CKSMixedGeometry.basis i))
(fderiv ℝ (OAI.CKSLorentz.polarParam P) y (OAI.CKSMixedGeometry.basis k))
def CKSTensorPatch.Realizes (Q : OAI.CKSLorentz.CKSTensorPatch) (A B : OAI.CKSLorentz.SpatialTensor) : Prop :=
∀ y ∈ OAI.CKSLorentz.angularRadialTail Q.radius Q.region, ∀ i k,
Q.metric i k y = OAI.CKSLorentz.polarTensorComponents Q.patch A i k y ∧
Q.second i k y = OAI.CKSLorentz.polarTensorComponents Q.patch B i k y
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularSlice CKSCalculus
abbrev AngularMatrix := Matrix (Fin 2) (Fin 2) ℝ
def angularMetricTrace (σ A : OAI.CKSLorentz.AngularMatrix) : ℝ := (σ⁻¹ * A).trace
def angularRoundMetric (φ : OAI.CKSMixedGeometry.Angle → OAI.CKSLorentz.E) (θ : OAI.CKSMixedGeometry.Angle) : OAI.CKSLorentz.AngularMatrix :=
letI := OAI.CKSLorentz.two_atLeastTwo
letI : Inner ℝ OAI.CKSLorentz.E :=
@InnerProductSpace.toInner ℝ OAI.CKSLorentz.E _
(PiLp.seminormedAddCommGroup 2 (fun _ : Fin 3 => ℝ))
(PiLp.innerProductSpace (fun _ : Fin 3 => ℝ))
fun a b => inner ℝ (fderiv ℝ φ θ (OAI.CKSAngularGeometry.basis a))
(fderiv ℝ φ θ (OAI.CKSAngularGeometry.basis b))
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open scoped RealInnerProductSpace ContDiff Manifold Topology
open MeasureTheory
open CKSSphericalHarmonics (SmoothSphere surfaceMeasure)
def nullDirection (n : OAI.CKSLorentz.Sphere) : OAI.CKSLorentz.V := (1,(n:OAI.CKSLorentz.E))
def rawCharge (M : OAI.CKSLorentz.Sphere → ℝ) : OAI.CKSLorentz.V := ∫ n : OAI.CKSLorentz.Sphere, M n • OAI.CKSLorentz.nullDirection n ∂OAI.CKSSphericalHarmonics.surfaceMeasure
def bondiCharge (M : OAI.CKSLorentz.Sphere → ℝ) : OAI.CKSLorentz.V := (16*Real.pi)⁻¹ • OAI.CKSLorentz.rawCharge M
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry
local instance real_isTopologicalAddGroup : IsTopologicalAddGroup ℝ := inferInstance
local instance spatialDual_isTopologicalAddGroup : IsTopologicalAddGroup (OAI.CKSLorentz.E →L[ℝ] ℝ) :=
inferInstance
local instance spatialDual_smulCommClass :
letI := OAI.CKSLorentz.real_smulCommClass
SMulCommClass ℝ ℝ (OAI.CKSLorentz.E →L[ℝ] ℝ) :=
inferInstance
local instance spatialDual_continuousConstSMul : ContinuousConstSMul ℝ (OAI.CKSLorentz.E →L[ℝ] ℝ) :=
inferInstance
local instance spatialDual_isScalarTower : IsScalarTower ℝ ℝ (OAI.CKSLorentz.E →L[ℝ] ℝ) := inferInstance
local instance spatialDual_continuousSMul : ContinuousSMul ℝ (OAI.CKSLorentz.E →L[ℝ] ℝ) := inferInstance
def hyperbolicField (x : OAI.CKSLorentz.E) : OAI.CKSLorentz.SpatialBilinear :=
letI := OAI.CKSLorentz.real_continuousAdd
letI := OAI.CKSLorentz.real_continuousConstSMul
letI := OAI.CKSLorentz.real_smulCommClass
letI := OAI.CKSLorentz.real_isTopologicalAddGroup
letI := OAI.CKSLorentz.spatialDual_isTopologicalAddGroup
letI := OAI.CKSLorentz.spatialDual_smulCommClass
letI := OAI.CKSLorentz.spatialDual_continuousConstSMul
letI := OAI.CKSLorentz.spatialDual_isScalarTower
letI := OAI.CKSLorentz.spatialDual_continuousSMul
let f : OAI.CKSLorentz.SpatialBilinear := innerSL ℝ
f - (1/(1+‖x‖^2)) • (f x).smulRight (f x)
def sourceSpatial (A : OAI.CKSLorentz.SpatialTensor) : OAI.CKSLorentz.SpatialTensor := fun x => OAI.CKSLorentz.hyperbolicField x + A x
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open scoped ContDiff
attribute [local instance] CKSSpatialManifold.real_id_isometric real_smulCommClass spatialDual_smulCommClass
local instance hsgNorm : NormedAddCommGroup OAI.CKSLorentz.SpatialBilinear :=
let dualSpace : NormedSpace ℝ (OAI.CKSLorentz.E →L[ℝ] ℝ) :=
@ContinuousLinearMap.toNormedSpace ℝ ℝ OAI.CKSLorentz.E ℝ _ _ _ _ _ _ (RingHom.id ℝ)
OAI.CKSSpatialManifold.real_id_isometric ℝ _ _ OAI.CKSLorentz.real_smulCommClass
@ContinuousLinearMap.toNormedAddCommGroup ℝ ℝ OAI.CKSLorentz.E (OAI.CKSLorentz.E →L[ℝ] ℝ)
_ _ _ _ _ dualSpace (RingHom.id ℝ) OAI.CKSSpatialManifold.real_id_isometric
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open scoped ContDiff
attribute [local instance] CKSSpatialManifold.real_id_isometric real_smulCommClass spatialDual_smulCommClass
attribute [local instance] OAI.CKSLorentz.hsgNorm
local instance hsgSpace : NormedSpace ℝ OAI.CKSLorentz.SpatialBilinear :=
let dualSpace : NormedSpace ℝ (OAI.CKSLorentz.E →L[ℝ] ℝ) :=
@ContinuousLinearMap.toNormedSpace ℝ ℝ OAI.CKSLorentz.E ℝ _ _ _ _ _ _ (RingHom.id ℝ)
OAI.CKSSpatialManifold.real_id_isometric ℝ _ _ OAI.CKSLorentz.real_smulCommClass
@ContinuousLinearMap.toNormedSpace ℝ ℝ OAI.CKSLorentz.E (OAI.CKSLorentz.E →L[ℝ] ℝ)
_ _ _ _ _ dualSpace (RingHom.id ℝ) OAI.CKSSpatialManifold.real_id_isometric
ℝ _ dualSpace OAI.CKSLorentz.spatialDual_smulCommClass
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSADM
open Finset CKSInducedSphere
open scoped RealInnerProductSpace ContDiff
def normal (x : OAI.CKSInducedSphere.E) (i : OAI.CKSInducedSphere.Ix) : ℝ := x i / ‖x‖
end OAI.CKSADM
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSADM
open Set Filter Finset CKSSphericalHarmonics CKSInducedSphere
open scoped Topology ContDiff
def spatialInfinity : Filter OAI.CKSInducedSphere.E := Filter.comap (fun x : OAI.CKSInducedSphere.E => ‖x‖) atTop
def TailRegular (F : OAI.CKSInducedSphere.E → ℝ) : Prop :=
∀ᶠ x in OAI.CKSADM.spatialInfinity, ContDiffAt ℝ ∞ F x
def Decay (d : ℝ) (F : OAI.CKSInducedSphere.E → ℝ) : Prop :=
∃ C : ℝ, 0 ≤ C ∧ ∀ᶠ x in OAI.CKSADM.spatialInfinity, |F x| ≤ C*‖x‖^(-d)
def SymbolN : ℕ → ℝ → (OAI.CKSInducedSphere.E → ℝ) → Prop
| 0, d, F => OAI.CKSADM.Decay d F
| n+1, d, F => OAI.CKSADM.Decay d F ∧ ∀ j : OAI.CKSInducedSphere.Ix, SymbolN n (d+1) (OAI.CKSInducedSphere.pd j F)
def Symbol (d : ℝ) (F : OAI.CKSInducedSphere.E → ℝ) : Prop :=
OAI.CKSADM.TailRegular F ∧ ∀ n : ℕ, OAI.CKSADM.SymbolN n d F
end OAI.CKSADM
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSAngularGeometry
open Matrix CKSCalculus Filter
open scoped BigOperators Topology ContDiff Matrix.Norms.Elementwise
def physicalMetricJet (G : OAI.CKSAngularGeometry.PhysicalPoint → OAI.CKSAngularGeometry.AmbientMat) (x : OAI.CKSAngularGeometry.PhysicalPoint) : OAI.CKSRound.MetricJet where
inv := (G x)⁻¹
d := fun a i j => OAI.CKSCalculus.D (OAI.CKSRealizedRound.basis a) (fun y => G y i j) x
dd := fun a b i j => OAI.CKSCalculus.D (OAI.CKSRealizedRound.basis a) (OAI.CKSCalculus.D (OAI.CKSRealizedRound.basis b) (fun y => G y i j)) x
def physicalTensorJet (K : OAI.CKSAngularGeometry.PhysicalPoint → OAI.CKSAngularGeometry.AmbientMat) (x : OAI.CKSAngularGeometry.PhysicalPoint) : OAI.CKSRound.TensorJet where
val := K x
d := fun a i j => OAI.CKSCalculus.D (OAI.CKSRealizedRound.basis a) (fun y => K y i j) x
end OAI.CKSAngularGeometry
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSCartesianOuter
open Set Filter Matrix CKSADM CKSInducedSphere CKSSphericalHarmonics
open CKSAngularGeometry (PhysicalPoint)
open scoped Topology ContDiff Matrix.Norms.Elementwise
abbrev toPoint : OAI.CKSInducedSphere.E ≃L[ℝ] OAI.CKSAngularGeometry.PhysicalPoint := EuclideanSpace.equiv (Fin 3) ℝ
end OAI.CKSCartesianOuter
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularSlice CKSCalculus
def cksChartMassAspect (φ : OAI.CKSMixedGeometry.Angle → OAI.CKSLorentz.E) (mr : OAI.CKSMixedGeometry.Angle → ℝ)
(mg mK : OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.I → OAI.CKSMixedGeometry.Angle → ℝ) (θ : OAI.CKSMixedGeometry.Angle) : ℝ :=
letI := OAI.CKSLorentz.two_atLeastTwo
OAI.CKSLorentz.angularMetricTrace (OAI.CKSLorentz.angularRoundMetric φ θ)
(fun a b => mg a.succ b.succ θ + 2*mK a.succ b.succ θ) + 2*mr θ
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularGeometry
def spatialCoefficients (A : OAI.CKSLorentz.SpatialTensor) (y : OAI.CKSAngularGeometry.PhysicalPoint) : OAI.CKSAngularGeometry.AmbientMat :=
fun i j => A (OAI.CKSCartesianOuter.toPoint.symm y)
(OAI.CKSCartesianOuter.toPoint.symm (OAI.CKSMixedGeometry.basis i))
(OAI.CKSCartesianOuter.toPoint.symm (OAI.CKSMixedGeometry.basis j))
def spatialDEC (A B : OAI.CKSLorentz.SpatialTensor) (x : OAI.CKSLorentz.E) : Prop :=
OAI.CKSLocalBending.DEC (OAI.CKSAngularGeometry.physicalMetricJet (OAI.CKSLorentz.spatialCoefficients A) (OAI.CKSCartesianOuter.toPoint x))
(OAI.CKSAngularGeometry.physicalTensorJet (OAI.CKSLorentz.spatialCoefficients B) (OAI.CKSCartesianOuter.toPoint x))
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularSlice Set
def CKSTensorPatch.RepresentsMassAspect (Q : OAI.CKSLorentz.CKSTensorPatch) (M : OAI.CKSLorentz.Sphere → ℝ) : Prop :=
∀ n ∈ Q.patch.sphereRegion Q.region,
OAI.CKSLorentz.cksChartMassAspect Q.patch.param Q.mr Q.mg Q.mK (Q.patch.chart n) = M n
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularGeometry CKSInducedSphere CKSSphericalHarmonics MeasureTheory
def spatialCartesian (A : OAI.CKSLorentz.SpatialTensor) (x : OAI.CKSLorentz.E) : OAI.CKSAngularGeometry.AmbientMat :=
OAI.CKSLorentz.spatialCoefficients A (OAI.CKSCartesianOuter.toPoint x)
local instance sixteen_atLeastTwo : Nat.AtLeastTwo 16 := inferInstance
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularGeometry CKSInducedSphere CKSSphericalHarmonics MeasureTheory
attribute [local instance] sixteen_atLeastTwo
def spatialADMEnergy (A : OAI.CKSLorentz.SpatialTensor) (r : ℝ) : ℝ :=
r^2/(16*Real.pi) * ∫ n : OAI.CKSLorentz.Sphere,
∑ i : Fin 3, (∑ j : Fin 3,
(OAI.CKSInducedSphere.pd j (fun y => OAI.CKSLorentz.spatialCartesian A y i j) (r • (n:OAI.CKSLorentz.E)) -
OAI.CKSInducedSphere.pd i (fun y => OAI.CKSLorentz.spatialCartesian A y j j) (r • (n:OAI.CKSLorentz.E)))) *
OAI.CKSADM.normal (r • (n:OAI.CKSLorentz.E)) i ∂OAI.CKSSphericalHarmonics.surfaceMeasure
def spatialADMMomentum (A B : OAI.CKSLorentz.SpatialTensor) (r : ℝ) : Fin 3 → ℝ := fun i =>
r^2/(8*Real.pi) * ∫ n : OAI.CKSLorentz.Sphere,
∑ j : Fin 3, (OAI.CKSLorentz.spatialCartesian B (r • (n:OAI.CKSLorentz.E)) i j -
(∑ a : Fin 3, ∑ b : Fin 3,
(OAI.CKSLorentz.spatialCartesian A (r • (n:OAI.CKSLorentz.E)))⁻¹ a b * OAI.CKSLorentz.spatialCartesian B (r • (n:OAI.CKSLorentz.E)) a b) *
OAI.CKSLorentz.spatialCartesian A (r • (n:OAI.CKSLorentz.E)) i j) * OAI.CKSADM.normal (r • (n:OAI.CKSLorentz.E)) j ∂OAI.CKSSphericalHarmonics.surfaceMeasure
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSLorentz
open CKSMixedGeometry CKSAngularGeometry MeasureTheory
def spatialEnergy (A B : OAI.CKSLorentz.SpatialTensor) (x : OAI.CKSLorentz.E) : ℝ :=
(OAI.CKSAngularGeometry.physicalMetricJet (OAI.CKSLorentz.spatialCoefficients A) (OAI.CKSCartesianOuter.toPoint x)).energy
(OAI.CKSAngularGeometry.physicalTensorJet (OAI.CKSLorentz.spatialCoefficients B) (OAI.CKSCartesianOuter.toPoint x))
end OAI.CKSLorentz
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSReplacementCompleteness
open Bundle Manifold
open scoped Bundle Manifold ENNReal
variable {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type u_2} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type u_3} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M]
abbrev Metric := ContinuousRiemannianMetric E (fun x : M => TangentSpace I x)
local instance metric_isContinuousRiemannianBundle (g : OAI.CKSReplacementCompleteness.Metric I (M := M)) :
letI : RiemannianBundle (fun x : M => TangentSpace I x) := ⟨g.toRiemannianMetric⟩
IsContinuousRiemannianBundle E (fun x : M => TangentSpace I x) := inferInstance
@[instance_reducible] def metricSpace [T3Space M] (g : OAI.CKSReplacementCompleteness.Metric I (M := M)) : EMetricSpace M :=
letI : RiemannianBundle (fun x : M => TangentSpace I x) := ⟨g.toRiemannianMetric⟩
letI := OAI.CKSReplacementCompleteness.metric_isContinuousRiemannianBundle I g
EMetricSpace.ofRiemannianMetric I M
def IsComplete [T3Space M] (g : OAI.CKSReplacementCompleteness.Metric I (M := M)) : Prop :=
@CompleteSpace M (OAI.CKSReplacementCompleteness.metricSpace I g).toUniformSpace
end OAI.CKSReplacementCompleteness
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSGeometricCuts
open Set Manifold MeasureTheory Bundle CKSReplacementCompleteness
open scoped ENNReal Manifold Bundle ContDiff
abbrev E3 := EuclideanSpace ℝ (Fin 3)
local instance halfSpaceDimension_neZero : NeZero (3 : ℕ) := inferInstance
abbrev H3 := @EuclideanHalfSpace 3 OAI.CKSGeometricCuts.halfSpaceDimension_neZero
abbrev I3 := @modelWithCornersEuclideanHalfSpace 3 OAI.CKSGeometricCuts.halfSpaceDimension_neZero
end OAI.CKSGeometricCuts
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSGeometricCuts
open Set Manifold MeasureTheory Bundle CKSReplacementCompleteness
open scoped ENNReal Manifold Bundle ContDiff
variable (M : Type u) [TopologicalSpace M] [ChartedSpace H3 M] [IsManifold I3 1 M]
structure OuterDomain where
Carrier : Type u
topology : TopologicalSpace Carrier
charts : @ChartedSpace OAI.CKSGeometricCuts.H3 _ Carrier topology
smooth : @IsManifold ℝ _ OAI.CKSGeometricCuts.E3 _ _ OAI.CKSGeometricCuts.H3 _ OAI.CKSGeometricCuts.I3 (∞ : ℕ∞ω) Carrier topology charts
inclusion : Carrier → M
embedding : @IsSmoothEmbedding ℝ _ OAI.CKSGeometricCuts.E3 OAI.CKSGeometricCuts.E3 _ _ _ _ OAI.CKSGeometricCuts.H3 OAI.CKSGeometricCuts.H3 _ _ OAI.CKSGeometricCuts.I3 OAI.CKSGeometricCuts.I3
Carrier M topology charts _ _ ∞ inclusion
closed : IsClosed (range inclusion)
connected : IsConnected (range inclusion)
contains_distant_end : ∃ K : Set M, IsCompact K ∧ Kᶜ ⊆ range inclusion
interior_into : inclusion '' (@ModelWithCorners.interior ℝ _ OAI.CKSGeometricCuts.E3 _ _ OAI.CKSGeometricCuts.H3 _ OAI.CKSGeometricCuts.I3
Carrier topology charts) ⊆ OAI.CKSGeometricCuts.I3.interior M
compact_boundary : IsCompact (inclusion '' (@ModelWithCorners.boundary ℝ _ OAI.CKSGeometricCuts.E3 _ _ OAI.CKSGeometricCuts.H3 _ OAI.CKSGeometricCuts.I3
Carrier topology charts))
end OAI.CKSGeometricCuts
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSpatialManifold
open Bundle Manifold Set Bornology Filter CKSLorentz CKSMetricGluing
open scoped Bundle Manifold ContDiff Topology
variable {H : Type*} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type*} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] real_id_isometric CKSMetricGluing.real_continuousAdd CKSMetricGluing.real_continuousConstSMul CKSMetricGluing.real_smulCommClass
local instance real_id_compTriple :
RingHomCompTriple (RingHom.id ℝ) (RingHom.id ℝ) (RingHom.id ℝ) := inferInstance
end OAI.CKSSpatialManifold
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSpatialManifold
open Bundle Manifold Set Bornology Filter CKSLorentz CKSMetricGluing
open scoped Bundle Manifold ContDiff Topology
variable {H : Type u_1} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type u_2} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] real_id_isometric CKSMetricGluing.real_continuousAdd CKSMetricGluing.real_continuousConstSMul CKSMetricGluing.real_smulCommClass
def endInner (f : M → OAI.CKSLorentz.E) (A : OAI.CKSLorentz.SpatialTensor) : OAI.CKSMetricGluing.InnerField I (M := M) := fun x => by
letI := OAI.CKSSpatialManifold.real_id_isometric
letI := OAI.CKSSpatialManifold.real_id_compTriple
letI : NormedAddCommGroup (TangentSpace I x) := by unfold TangentSpace; infer_instance
letI : NormedSpace ℝ (TangentSpace I x) := by unfold TangentSpace; infer_instance
let df : TangentSpace I x →L[ℝ] OAI.CKSLorentz.E :=
(NormedSpace.fromTangentSpace (f x)).toContinuousLinearMap.comp (mfderiv I 𝓘(ℝ,OAI.CKSLorentz.E) f x)
exact (A (f x)).bilinearComp df df
end OAI.CKSSpatialManifold
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSpatialManifold
open Bundle Manifold Set Filter CKSLorentz CKSMetricGluing
open scoped Bundle Manifold ContDiff Topology
variable {H : Type u_1} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type u_2} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] CKSLorentz.hsgNorm CKSLorentz.hsgSpace
def PhysicalDECAt (g : OAI.CKSMetricGluing.InnerField I (M := M)) (K : OAI.CKSMetricGluing.InnerField I (M := M)) (x : M) : Prop :=
∃ (V : Set M) (f : M → OAI.CKSLorentz.E) (A B : OAI.CKSLorentz.SpatialTensor),
IsOpen V ∧ x ∈ V ∧ ContMDiffOn I 𝓘(ℝ,OAI.CKSLorentz.E) ∞ f V ∧
(∀ y ∈ V, Function.Bijective (mfderiv I 𝓘(ℝ,OAI.CKSLorentz.E) f y)) ∧
(∀ y ∈ V, ContDiffAt ℝ ∞ A (f y) ∧ ContDiffAt ℝ ∞ B (f y)) ∧
(∀ y ∈ V, (∀ v w, A (f y) v w = A (f y) w v) ∧
(∀ v : OAI.CKSLorentz.E, v ≠ 0 → 0 < A (f y) v v) ∧
(∀ v w, B (f y) v w = B (f y) w v)) ∧
(∀ y ∈ V, g y = OAI.CKSSpatialManifold.endInner I f A y ∧ K y = OAI.CKSSpatialManifold.endInner I f B y) ∧
OAI.CKSLorentz.spatialDEC A B (f x)
def PhysicalDEC (g : OAI.CKSMetricGluing.InnerField I (M := M)) (K : OAI.CKSMetricGluing.InnerField I (M := M)) : Prop :=
∀ x : M, OAI.CKSSpatialManifold.PhysicalDECAt I g K x
end OAI.CKSSpatialManifold
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSIntrinsicGeometry
open Bundle Bornology Set MeasureTheory Manifold Filter Metric
open scoped ENNReal ContDiff Topology NNReal
local instance halfSpaceDimension_neZero : NeZero (3 : ℕ) := inferInstance
abbrev H3 := @EuclideanHalfSpace 3 OAI.CKSIntrinsicGeometry.halfSpaceDimension_neZero
abbrev I3 := @modelWithCornersEuclideanHalfSpace 3 OAI.CKSIntrinsicGeometry.halfSpaceDimension_neZero
end OAI.CKSIntrinsicGeometry
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSBoundarySurface
open Set Manifold Bundle Filter
open scoped ContDiff Topology
abbrev E2 := EuclideanSpace ℝ (Fin 2)
abbrev E3 := EuclideanSpace ℝ (Fin 3)
local instance halfSpaceDimension_neZero : NeZero (3 : ℕ) := inferInstance
abbrev H3 := @EuclideanHalfSpace 3 OAI.CKSBoundarySurface.halfSpaceDimension_neZero
abbrev I2 := 𝓘(ℝ,OAI.CKSBoundarySurface.E2)
abbrev I3 := @modelWithCornersEuclideanHalfSpace 3 OAI.CKSBoundarySurface.halfSpaceDimension_neZero
local instance two_atLeastTwo : Nat.AtLeastTwo 2 := inferInstance
end OAI.CKSBoundarySurface
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSBoundarySurface
open Set Manifold Bundle Filter
open scoped ContDiff Topology
attribute [local instance] two_atLeastTwo
def insertNormalZero (point : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.E3 := WithLp.toLp 2 (Fin.cons 0 point)
def liftPlane : OAI.CKSBoundarySurface.E2 →L[ℝ] OAI.CKSBoundarySurface.E3 :=
have proof_insertNormalZero_add_0 (first second : OAI.CKSBoundarySurface.E2) :
OAI.CKSBoundarySurface.insertNormalZero (first + second) = OAI.CKSBoundarySurface.insertNormalZero first + OAI.CKSBoundarySurface.insertNormalZero second := by
ext index
cases index using Fin.cases <;> simp [OAI.CKSBoundarySurface.insertNormalZero]
have proof_insertNormalZero_smul_1 (scalar : ℝ) (point : OAI.CKSBoundarySurface.E2) :
OAI.CKSBoundarySurface.insertNormalZero (scalar • point) = scalar • OAI.CKSBoundarySurface.insertNormalZero point := by
ext index
cases index using Fin.cases <;> simp [OAI.CKSBoundarySurface.insertNormalZero]
have proof_insertNormalZero_continuous_2 : Continuous OAI.CKSBoundarySurface.insertNormalZero := by
apply (PiLp.continuous_toLp 2 (fun _ : Fin 3 => ℝ)).comp
apply continuous_pi
intro index
cases index using Fin.cases with
| zero => exact continuous_const
| succ index => exact PiLp.continuous_apply 2 (fun _ : Fin 2 => ℝ) index
{
toFun := OAI.CKSBoundarySurface.insertNormalZero
map_add' := proof_insertNormalZero_add_0
map_smul' := proof_insertNormalZero_smul_1
cont := proof_insertNormalZero_continuous_2
}
def tangentialCoordinates (point : OAI.CKSBoundarySurface.E3) : OAI.CKSBoundarySurface.E2 := WithLp.toLp 2 (fun index => point index.succ)
def dropPlane : OAI.CKSBoundarySurface.E3 →L[ℝ] OAI.CKSBoundarySurface.E2 :=
have proof_tangentialCoordinates_add_3 (first second : OAI.CKSBoundarySurface.E3) :
OAI.CKSBoundarySurface.tangentialCoordinates (first + second) =
OAI.CKSBoundarySurface.tangentialCoordinates first + OAI.CKSBoundarySurface.tangentialCoordinates second := by
ext index
simp [OAI.CKSBoundarySurface.tangentialCoordinates]
have proof_tangentialCoordinates_smul_4 (scalar : ℝ) (point : OAI.CKSBoundarySurface.E3) :
OAI.CKSBoundarySurface.tangentialCoordinates (scalar • point) = scalar • OAI.CKSBoundarySurface.tangentialCoordinates point := by
ext index
simp [OAI.CKSBoundarySurface.tangentialCoordinates]
have proof_tangentialCoordinates_continuous_5 : Continuous OAI.CKSBoundarySurface.tangentialCoordinates := by
apply (PiLp.continuous_toLp 2 (fun _ : Fin 2 => ℝ)).comp
exact continuous_pi fun index => PiLp.continuous_apply 2 (fun _ : Fin 3 => ℝ) index.succ
{
toFun := OAI.CKSBoundarySurface.tangentialCoordinates
map_add' := proof_tangentialCoordinates_add_3
map_smul' := proof_tangentialCoordinates_smul_4
cont := proof_tangentialCoordinates_continuous_5
}
end OAI.CKSBoundarySurface
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSBoundarySurface
open Set Manifold Bundle Filter
open scoped ContDiff Topology
def liftHalf (z : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.H3 :=
have proof_liftPlane_zero_6 (z : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.liftPlane z 0 = 0 := rfl
have proof_liftPlane_succ_7 (z : OAI.CKSBoundarySurface.E2) (i : Fin 2) : OAI.CKSBoundarySurface.liftPlane z i.succ = z i := rfl
⟨OAI.CKSBoundarySurface.liftPlane z, by simp [*]⟩
end OAI.CKSBoundarySurface
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSchwarzschild
open Set Manifold Bundle Filter
open scoped ContDiff Topology
open CKSBoundarySurface
abbrev Radial := {t : ℝ // 0 ≤ t}
abbrev Sphere := Metric.sphere (0 : OAI.CKSBoundarySurface.E3) 1
abbrev Exterior := OAI.CKSSchwarzschild.Radial × OAI.CKSSchwarzschild.Sphere
end OAI.CKSSchwarzschild
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSchwarzschild
open Set Manifold Bundle Filter
open scoped ContDiff Topology
open CKSBoundarySurface
attribute [local instance] Classical.propDecidable
local instance real_id_invPair : RingHomInvPair (RingHom.id ℝ) (RingHom.id ℝ) := inferInstance
def join : (ℝ × OAI.CKSBoundarySurface.E2) →L[ℝ] OAI.CKSBoundarySurface.E3 :=
letI := OAI.CKSSchwarzschild.real_id_invPair
letI := OAI.CKSBoundarySurface.two_atLeastTwo
let continuousLinearMap : ((ℝ × OAI.CKSBoundarySurface.E2) →ₗ[ℝ] OAI.CKSBoundarySurface.E3) ≃ₗ[ℝ] ((ℝ × OAI.CKSBoundarySurface.E2) →L[ℝ] OAI.CKSBoundarySurface.E3) :=
LinearMap.toContinuousLinearMap
continuousLinearMap {
toFun := fun z => WithLp.toLp 2 (Fin.cons z.1 z.2)
map_add' := by intro a b; ext i; cases i using Fin.cases <;> simp
map_smul' := by intro a b; ext i; cases i using Fin.cases <;> simp }
def halfProduct : OAI.CKSSchwarzschild.Radial × OAI.CKSBoundarySurface.E2 ≃ₜ OAI.CKSBoundarySurface.H3 :=
have proof_join_zero_9 (z : ℝ × OAI.CKSBoundarySurface.E2) : OAI.CKSSchwarzschild.join z 0 = z.1 := rfl
have proof_join_succ_10 (z : ℝ × OAI.CKSBoundarySurface.E2) (i : Fin 2) : OAI.CKSSchwarzschild.join z i.succ = z.2 i := rfl
have proof_join_drop_8 (z : OAI.CKSBoundarySurface.E3) : OAI.CKSSchwarzschild.join (z 0,OAI.CKSBoundarySurface.dropPlane z) = z := by
ext i; cases i using Fin.cases <;> rfl
have proof_drop_join_11 (z : ℝ × OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.dropPlane (OAI.CKSSchwarzschild.join z) = z.2 := by ext i; rfl
letI := OAI.CKSBoundarySurface.halfSpaceDimension_neZero
{ toFun z := ⟨OAI.CKSSchwarzschild.join (z.1.val,z.2),z.1.property⟩
invFun z := (⟨z.val 0,z.property⟩,OAI.CKSBoundarySurface.dropPlane z.val)
left_inv z := by cases z; simp [*]
right_inv z := by apply Subtype.ext; exact proof_join_drop_8 _
continuous_toFun := (OAI.CKSSchwarzschild.join.continuous.comp
((continuous_subtype_val.comp continuous_fst).prodMk continuous_snd)).subtype_mk _
continuous_invFun := ((by fun_prop : Continuous (fun z : H3 => z.val 0)).subtype_mk _).prodMk
(OAI.CKSBoundarySurface.dropPlane.continuous.comp continuous_subtype_val) }
def productChart (s : OAI.CKSSchwarzschild.Sphere) : OpenPartialHomeomorph OAI.CKSSchwarzschild.Exterior OAI.CKSBoundarySurface.H3 :=
((OpenPartialHomeomorph.refl OAI.CKSSchwarzschild.Radial).prod (chartAt OAI.CKSBoundarySurface.E2 s)).trans OAI.CKSSchwarzschild.halfProduct.toOpenPartialHomeomorph
instance exteriorChartedSpace : ChartedSpace OAI.CKSBoundarySurface.H3 OAI.CKSSchwarzschild.Exterior :=
have proof_join_zero_9 (z : ℝ × OAI.CKSBoundarySurface.E2) : OAI.CKSSchwarzschild.join z 0 = z.1 := rfl
have proof_join_succ_10 (z : ℝ × OAI.CKSBoundarySurface.E2) (i : Fin 2) : OAI.CKSSchwarzschild.join z i.succ = z.2 i := rfl
have proof_halfProduct_val_12 (z : OAI.CKSSchwarzschild.Radial × OAI.CKSBoundarySurface.E2) : (OAI.CKSSchwarzschild.halfProduct z).val = OAI.CKSSchwarzschild.join (z.1.val,z.2) := rfl
have proof_halfProduct_symm_fst_13 (z : OAI.CKSBoundarySurface.H3) : (OAI.CKSSchwarzschild.halfProduct.symm z).1.val = z.val 0 := rfl
have proof_halfProduct_symm_snd_14 (z : OAI.CKSBoundarySurface.H3) : (OAI.CKSSchwarzschild.halfProduct.symm z).2 = OAI.CKSBoundarySurface.dropPlane z.val := rfl
{
atlas := range OAI.CKSSchwarzschild.productChart
chartAt p := OAI.CKSSchwarzschild.productChart p.2
mem_chart_source p := by simp [*, OAI.CKSSchwarzschild.productChart,mem_chart_source OAI.CKSBoundarySurface.E2 p.2]
chart_mem_atlas p := mem_range_self _
}
end OAI.CKSSchwarzschild
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSchwarzschild
open Set Manifold Bundle Filter
open scoped ContDiff Topology
open CKSBoundarySurface
attribute [local instance] halfSpaceDimension_neZero
instance exteriorIsManifold : IsManifold OAI.CKSBoundarySurface.I3 ∞ OAI.CKSSchwarzschild.Exterior :=
have proof_join_zero_9 (z : ℝ × OAI.CKSBoundarySurface.E2) : OAI.CKSSchwarzschild.join z 0 = z.1 := rfl
have proof_join_succ_10 (z : ℝ × OAI.CKSBoundarySurface.E2) (i : Fin 2) : OAI.CKSSchwarzschild.join z i.succ = z.2 i := rfl
have proof_halfProduct_val_12 (z : OAI.CKSSchwarzschild.Radial × OAI.CKSBoundarySurface.E2) : (OAI.CKSSchwarzschild.halfProduct z).val = OAI.CKSSchwarzschild.join (z.1.val,z.2) := rfl
have proof_halfProduct_symm_fst_13 (z : OAI.CKSBoundarySurface.H3) : (OAI.CKSSchwarzschild.halfProduct.symm z).1.val = z.val 0 := rfl
have proof_halfProduct_symm_snd_14 (z : OAI.CKSBoundarySurface.H3) : (OAI.CKSSchwarzschild.halfProduct.symm z).2 = OAI.CKSBoundarySurface.dropPlane z.val := rfl
have proof_productChart_target_17 (s : OAI.CKSSchwarzschild.Sphere) :
(OAI.CKSSchwarzschild.productChart s).target = (fun z : OAI.CKSBoundarySurface.H3 => OAI.CKSBoundarySurface.dropPlane z.val) ⁻¹' (chartAt OAI.CKSBoundarySurface.E2 s).target := by
ext p; simp [*, OAI.CKSSchwarzschild.productChart]
have proof_productChart_source_18 (s : OAI.CKSSchwarzschild.Sphere) :
(OAI.CKSSchwarzschild.productChart s).source = Prod.snd ⁻¹' (chartAt OAI.CKSBoundarySurface.E2 s).source := by
ext p; simp [*, OAI.CKSSchwarzschild.productChart]
have proof_productChart_symm_19 (s : OAI.CKSSchwarzschild.Sphere) (z : OAI.CKSBoundarySurface.H3) :
(OAI.CKSSchwarzschild.productChart s).symm z = (⟨z.val 0,z.property⟩,(chartAt OAI.CKSBoundarySurface.E2 s).symm (OAI.CKSBoundarySurface.dropPlane z.val)) := rfl
have proof_transition_source_20 (a b : OAI.CKSSchwarzschild.Sphere) :
((OAI.CKSSchwarzschild.productChart a).symm ≫ₕ OAI.CKSSchwarzschild.productChart b).source =
(fun z : OAI.CKSBoundarySurface.H3 => OAI.CKSBoundarySurface.dropPlane z.val) ⁻¹' ((chartAt OAI.CKSBoundarySurface.E2 a).symm ≫ₕ chartAt OAI.CKSBoundarySurface.E2 b).source := by
ext z
simp only [OpenPartialHomeomorph.trans_source,OpenPartialHomeomorph.symm_source,
mem_inter_iff,mem_preimage,proof_productChart_target_17,proof_productChart_source_18,proof_productChart_symm_19]
have proof_transition_maps_15 (a b : OAI.CKSSchwarzschild.Sphere) :
MapsTo OAI.CKSBoundarySurface.dropPlane (OAI.CKSBoundarySurface.I3.symm ⁻¹' ((OAI.CKSSchwarzschild.productChart a).symm ≫ₕ OAI.CKSSchwarzschild.productChart b).source ∩ range OAI.CKSBoundarySurface.I3)
((extChartAt OAI.CKSBoundarySurface.I2 a).symm ≫ extChartAt OAI.CKSBoundarySurface.I2 b).source := by
intro z hz
have he : (OAI.CKSBoundarySurface.I3.symm z).val = z := OAI.CKSBoundarySurface.I3.right_inv hz.2
have h := hz.1
rw [proof_transition_source_20] at h
change OAI.CKSBoundarySurface.dropPlane (OAI.CKSBoundarySurface.I3.symm z).val ∈ ((chartAt OAI.CKSBoundarySurface.E2 a).symm ≫ₕ chartAt OAI.CKSBoundarySurface.E2 b).source at h
rw [he] at h
simpa only [OAI.CKSBoundarySurface.I2,extChartAt_model_space_eq_id,mfld_simps] using h
have proof_transition_formula_16 (a b : OAI.CKSSchwarzschild.Sphere) {z : OAI.CKSBoundarySurface.E3} (hz : z ∈ range OAI.CKSBoundarySurface.I3) :
OAI.CKSBoundarySurface.I3 (((OAI.CKSSchwarzschild.productChart a).symm ≫ₕ OAI.CKSSchwarzschild.productChart b) (OAI.CKSBoundarySurface.I3.symm z)) =
OAI.CKSSchwarzschild.join (z 0,((extChartAt OAI.CKSBoundarySurface.I2 a).symm ≫ extChartAt OAI.CKSBoundarySurface.I2 b) (OAI.CKSBoundarySurface.dropPlane z)) := by
have he : (OAI.CKSBoundarySurface.I3.symm z).val = z := OAI.CKSBoundarySurface.I3.right_inv hz
change OAI.CKSSchwarzschild.join ((OAI.CKSBoundarySurface.I3.symm z).val 0,
chartAt OAI.CKSBoundarySurface.E2 b ((chartAt OAI.CKSBoundarySurface.E2 a).symm (OAI.CKSBoundarySurface.dropPlane (OAI.CKSBoundarySurface.I3.symm z).val))) = _
rw [he]
rfl
by
apply isManifold_of_contDiffOn
rintro e e' ⟨a,rfl⟩ ⟨b,rfl⟩
change ContDiffOn ℝ ∞
(fun z => OAI.CKSBoundarySurface.I3 (((OAI.CKSSchwarzschild.productChart a).symm ≫ₕ OAI.CKSSchwarzschild.productChart b) (OAI.CKSBoundarySurface.I3.symm z)))
(OAI.CKSBoundarySurface.I3.symm ⁻¹' ((OAI.CKSSchwarzschild.productChart a).symm ≫ₕ OAI.CKSSchwarzschild.productChart b).source ∩ range OAI.CKSBoundarySurface.I3)
have hs := (contDiffOn_ext_coord_change (I := OAI.CKSBoundarySurface.I2) (n := ∞) b a).comp
OAI.CKSBoundarySurface.dropPlane.contDiff.contDiffOn (proof_transition_maps_15 a b)
have h0 : ContDiff ℝ ∞ (fun z : OAI.CKSBoundarySurface.E3 => z 0) := by fun_prop
apply (OAI.CKSSchwarzschild.join.contDiff.comp_contDiffOn (h0.contDiffOn.prodMk hs)).congr
intro z hz
exact proof_transition_formula_16 a b hz.2
end OAI.CKSSchwarzschild
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSchwarzschild
open Set Filter Manifold Bundle
open scoped ContDiff Topology
open CKSBoundarySurface
def height (p : OAI.CKSSchwarzschild.Exterior) : ℝ := p.1.val
end OAI.CKSSchwarzschild
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSchwarzschild
open Set Filter Manifold Bundle Function
open scoped ContDiff Topology InnerProductSpace
open CKSBoundarySurface
def radius (m : ℝ) (p : OAI.CKSSchwarzschild.Exterior) : ℝ :=
letI := OAI.CKSLorentz.two_atLeastTwo
2*m+OAI.CKSSchwarzschild.height p
def directionAmbient (p : OAI.CKSSchwarzschild.Exterior) : OAI.CKSBoundarySurface.E3 := p.2.val
def position (m : ℝ) (p : OAI.CKSSchwarzschild.Exterior) : OAI.CKSBoundarySurface.E3 := OAI.CKSSchwarzschild.radius m p • OAI.CKSSchwarzschild.directionAmbient p
end OAI.CKSSchwarzschild
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSchwarzschild
open Set Filter
open scoped ContDiff Topology
def velocity (m r : ℝ) : ℝ :=
letI := OAI.CKSLorentz.two_atLeastTwo;
-1 + (r+1)*Real.smoothTransition (r-2*m-1)
def lapseSquared (m r : ℝ) : ℝ :=
letI := OAI.CKSLorentz.two_atLeastTwo
1-2*m/r+(OAI.CKSSchwarzschild.velocity m r)^2
def lapse (m r : ℝ) : ℝ := Real.sqrt (OAI.CKSSchwarzschild.lapseSquared m r)
end OAI.CKSSchwarzschild
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSchwarzschild
open Manifold Bundle Set Filter CKSLorentz CKSMetricGluing CKSSpatialManifold
open scoped ContDiff Topology InnerProductSpace
open CKSBoundarySurface
def euclideanForm : OAI.CKSLorentz.SpatialBilinear := innerSL ℝ
def radialUnit (x : OAI.CKSBoundarySurface.E3) : OAI.CKSBoundarySurface.E3 := ‖x‖⁻¹ • x
local instance real_isScalarTower : IsScalarTower ℝ ℝ ℝ := inferInstance
def radialForm (x : OAI.CKSBoundarySurface.E3) : OAI.CKSLorentz.SpatialBilinear :=
letI := OAI.CKSSpatialManifold.real_id_compTriple
letI := OAI.CKSSpatialManifold.real_id_isometric
letI := OAI.CKSSchwarzschild.real_isScalarTower
letI := OAI.CKSLorentz.real_smulCommClass
letI := OAI.CKSLorentz.real_isTopologicalAddGroup
letI := OAI.CKSLorentz.real_continuousAdd
letI := OAI.CKSLorentz.real_continuousConstSMul
let innerForm : OAI.CKSLorentz.SpatialBilinear := innerSL ℝ
(ContinuousLinearMap.mul ℝ ℝ).bilinearComp
(innerForm (OAI.CKSSchwarzschild.radialUnit x)) (innerForm (OAI.CKSSchwarzschild.radialUnit x))
local instance spatialDual_continuousAdd : ContinuousAdd (OAI.CKSBoundarySurface.E3 →L[ℝ] ℝ) := inferInstance
def cartMetric (m : ℝ) (x : OAI.CKSBoundarySurface.E3) : OAI.CKSLorentz.SpatialBilinear :=
letI := OAI.CKSLorentz.real_continuousAdd
letI := OAI.CKSLorentz.real_continuousConstSMul
letI := OAI.CKSLorentz.real_smulCommClass
letI := OAI.CKSSchwarzschild.spatialDual_continuousAdd
letI := OAI.CKSLorentz.spatialDual_smulCommClass
letI := OAI.CKSLorentz.spatialDual_continuousConstSMul
OAI.CKSSchwarzschild.euclideanForm + ((OAI.CKSSchwarzschild.lapseSquared m ‖x‖)⁻¹-1) • OAI.CKSSchwarzschild.radialForm x
def cartTensor (m : ℝ) (x : OAI.CKSBoundarySurface.E3) : OAI.CKSLorentz.SpatialBilinear :=
letI := OAI.CKSLorentz.real_continuousAdd
letI := OAI.CKSLorentz.real_continuousConstSMul
letI := OAI.CKSLorentz.real_smulCommClass
letI := OAI.CKSSchwarzschild.spatialDual_continuousAdd
letI := OAI.CKSLorentz.spatialDual_smulCommClass
letI := OAI.CKSLorentz.spatialDual_continuousConstSMul
(OAI.CKSSchwarzschild.velocity m ‖x‖ / ‖x‖) • OAI.CKSSchwarzschild.euclideanForm +
(deriv (OAI.CKSSchwarzschild.velocity m) ‖x‖ / OAI.CKSSchwarzschild.lapseSquared m ‖x‖ - OAI.CKSSchwarzschild.velocity m ‖x‖ / ‖x‖) • OAI.CKSSchwarzschild.radialForm x
def metricInner (m : ℝ) : OAI.CKSMetricGluing.InnerField OAI.CKSBoundarySurface.I3 (M := OAI.CKSSchwarzschild.Exterior) := OAI.CKSSpatialManifold.endInner OAI.CKSBoundarySurface.I3 (OAI.CKSSchwarzschild.position m) (OAI.CKSSchwarzschild.cartMetric m)
def tensorInner (m : ℝ) : OAI.CKSMetricGluing.InnerField OAI.CKSBoundarySurface.I3 (M := OAI.CKSSchwarzschild.Exterior) := OAI.CKSSpatialManifold.endInner OAI.CKSBoundarySurface.I3 (OAI.CKSSchwarzschild.position m) (OAI.CKSSchwarzschild.cartTensor m)
end OAI.CKSSchwarzschild
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSIntrinsicConstraints
open Bundle Manifold Set Filter CKSLorentz CKSMetricGluing
open scoped ContDiff Topology
abbrev E := OAI.CKSLorentz.E
local instance halfSpaceDimension_neZero : NeZero (3 : ℕ) := inferInstance
abbrev H := @EuclideanHalfSpace 3 OAI.CKSIntrinsicConstraints.halfSpaceDimension_neZero
abbrev I := @modelWithCornersEuclideanHalfSpace 3 OAI.CKSIntrinsicConstraints.halfSpaceDimension_neZero
end OAI.CKSIntrinsicConstraints
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSIntrinsicConstraints
open Bundle Manifold Set Filter CKSLorentz CKSMetricGluing
open scoped ContDiff Topology
attribute [local instance] halfSpaceDimension_neZero
attribute [local instance] CKSSpatialManifold.real_id_isometric CKSLorentz.real_smulCommClass CKSLorentz.spatialDual_smulCommClass
variable {M : Type*} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
def coordinateMomentumNorm (A B : OAI.CKSLorentz.SpatialTensor) (x : OAI.CKSIntrinsicConstraints.E) : ℝ :=
Real.sqrt (OAI.CKSLocalBending.momentumSq
(OAI.CKSAngularGeometry.physicalMetricJet (OAI.CKSLorentz.spatialCoefficients A) (OAI.CKSCartesianOuter.toPoint x))
(OAI.CKSAngularGeometry.physicalTensorJet (OAI.CKSLorentz.spatialCoefficients B) (OAI.CKSCartesianOuter.toPoint x)))
end OAI.CKSIntrinsicConstraints
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSIntrinsicConstraints
open Bundle Manifold Set Filter CKSLorentz CKSMetricGluing
open scoped ContDiff Topology
attribute [local instance] halfSpaceDimension_neZero
attribute [local instance] CKSSpatialManifold.real_id_isometric CKSLorentz.real_smulCommClass CKSLorentz.spatialDual_smulCommClass
variable {M : Type u_1} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
structure ConstraintChart (g K : OAI.CKSMetricGluing.InnerField OAI.CKSIntrinsicConstraints.I (M := M)) (x : M) where
domain : Set M
coordinate : M → OAI.CKSIntrinsicConstraints.E
metric : OAI.CKSLorentz.SpatialTensor
tensor : OAI.CKSLorentz.SpatialTensor
isOpen : IsOpen domain
mem : x ∈ domain
smooth : ContMDiffOn OAI.CKSIntrinsicConstraints.I 𝓘(ℝ,OAI.CKSIntrinsicConstraints.E) ∞ coordinate domain
fullRank : ∀ y ∈ domain, Function.Bijective (mfderiv OAI.CKSIntrinsicConstraints.I 𝓘(ℝ,OAI.CKSIntrinsicConstraints.E) coordinate y)
coefficientSmooth :
letI := OAI.CKSLorentz.real_smulCommClass
letI := OAI.CKSLorentz.spatialDual_smulCommClass
∀ y ∈ domain,
ContDiffAt ℝ ∞ metric (coordinate y) ∧ ContDiffAt ℝ ∞ tensor (coordinate y)
positiveSymmetric : ∀ y ∈ domain,
(∀ v w, metric (coordinate y) v w = metric (coordinate y) w v) ∧
(∀ v : OAI.CKSIntrinsicConstraints.E, v ≠ 0 → 0 < metric (coordinate y) v v) ∧
(∀ v w, tensor (coordinate y) v w = tensor (coordinate y) w v)
represents : ∀ y ∈ domain,
g y = OAI.CKSSpatialManifold.endInner OAI.CKSIntrinsicConstraints.I coordinate metric y ∧
K y = OAI.CKSSpatialManifold.endInner OAI.CKSIntrinsicConstraints.I coordinate tensor y
def ConstraintChart.energy {g K : OAI.CKSMetricGluing.InnerField OAI.CKSIntrinsicConstraints.I (M := M)} {x : M}
(c : OAI.CKSIntrinsicConstraints.ConstraintChart g K x) : ℝ := OAI.CKSLorentz.spatialEnergy c.metric c.tensor (c.coordinate x)
def ConstraintChart.momentumNorm {g K : OAI.CKSMetricGluing.InnerField OAI.CKSIntrinsicConstraints.I (M := M)} {x : M}
(c : OAI.CKSIntrinsicConstraints.ConstraintChart g K x) : ℝ := OAI.CKSIntrinsicConstraints.coordinateMomentumNorm c.metric c.tensor (c.coordinate x)
end OAI.CKSIntrinsicConstraints
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSIntrinsicVolume
open Bundle Manifold Set MeasureTheory
open scoped ContDiff ENNReal
attribute [local instance] CKSIntrinsicConstraints.halfSpaceDimension_neZero
abbrev E := EuclideanSpace ℝ (Fin 3)
abbrev H := @EuclideanHalfSpace 3 OAI.CKSIntrinsicConstraints.halfSpaceDimension_neZero
abbrev I := @modelWithCornersEuclideanHalfSpace 3 OAI.CKSIntrinsicConstraints.halfSpaceDimension_neZero
abbrev basis (i : Fin 3) : OAI.CKSIntrinsicVolume.E := EuclideanSpace.single i 1
local instance model_finiteDimensional : FiniteDimensional ℝ OAI.CKSIntrinsicVolume.E := inferInstance
end OAI.CKSIntrinsicVolume
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSIntrinsicVolume
open Bundle Manifold Set MeasureTheory
open scoped ContDiff ENNReal
attribute [local instance] CKSIntrinsicConstraints.halfSpaceDimension_neZero
attribute [local instance] model_finiteDimensional
local instance model_borelSpace : BorelSpace OAI.CKSIntrinsicVolume.E := inferInstance
end OAI.CKSIntrinsicVolume
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSIntrinsicVolume
open Bundle Manifold Set MeasureTheory
open scoped ContDiff ENNReal
attribute [local instance] CKSIntrinsicConstraints.halfSpaceDimension_neZero
variable {M : Type u_1} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M]
abbrev Metric := ContinuousRiemannianMetric OAI.CKSIntrinsicVolume.E (fun x : M => TangentSpace OAI.CKSIntrinsicVolume.I x)
def chartFrame (x : M) (y : OAI.CKSIntrinsicVolume.E) : OAI.CKSIntrinsicVolume.E →L[ℝ] TangentSpace OAI.CKSIntrinsicVolume.I ((extChartAt OAI.CKSIntrinsicVolume.I x).symm y) :=
mfderivWithin 𝓘(ℝ,OAI.CKSIntrinsicVolume.E) OAI.CKSIntrinsicVolume.I (extChartAt OAI.CKSIntrinsicVolume.I x).symm (range OAI.CKSIntrinsicVolume.I) y
def chartMatrix (g : OAI.CKSIntrinsicVolume.Metric (M := M)) (x : M) (y : OAI.CKSIntrinsicVolume.E) : Matrix (Fin 3) (Fin 3) ℝ :=
letI := OAI.CKSMetricGluing.real_continuousAdd
letI := OAI.CKSMetricGluing.real_continuousConstSMul
letI := OAI.CKSMetricGluing.real_smulCommClass
let form : TangentSpace OAI.CKSIntrinsicVolume.I ((extChartAt OAI.CKSIntrinsicVolume.I x).symm y) →L[ℝ]
TangentSpace OAI.CKSIntrinsicVolume.I ((extChartAt OAI.CKSIntrinsicVolume.I x).symm y) →L[ℝ] ℝ :=
g.inner ((extChartAt OAI.CKSIntrinsicVolume.I x).symm y)
fun first second => form (OAI.CKSIntrinsicVolume.chartFrame x y (OAI.CKSIntrinsicVolume.basis first)) (OAI.CKSIntrinsicVolume.chartFrame x y (OAI.CKSIntrinsicVolume.basis second))
def chartDensity (g : OAI.CKSIntrinsicVolume.Metric (M := M)) (x : M) (y : OAI.CKSIntrinsicVolume.E) : ℝ :=
Real.sqrt (OAI.CKSIntrinsicVolume.chartMatrix g x y).det
end OAI.CKSIntrinsicVolume
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSIntrinsicVolume
open Bundle Manifold Set MeasureTheory
open scoped ContDiff ENNReal
variable {M : Type u_1} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M]
attribute [local instance] model_finiteDimensional model_borelSpace
variable [MeasurableSpace M] [BorelSpace M]
def localVolume (g : OAI.CKSIntrinsicVolume.Metric (M := M)) (x : M) : Measure M :=
Measure.map (extChartAt OAI.CKSIntrinsicVolume.I x).symm
((volume.restrict (extChartAt OAI.CKSIntrinsicVolume.I x).target).withDensity
(fun y => ENNReal.ofReal (OAI.CKSIntrinsicVolume.chartDensity g x y)))
def IsVolume (g : OAI.CKSIntrinsicVolume.Metric (M := M)) (ν : Measure M) : Prop :=
∀ x : M, ν.restrict (extChartAt OAI.CKSIntrinsicVolume.I x).source = OAI.CKSIntrinsicVolume.localVolume g x
end OAI.CKSIntrinsicVolume
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSIntrinsicVolume
open Bundle Manifold Set MeasureTheory
open scoped ContDiff ENNReal
attribute [local instance] CKSIntrinsicConstraints.halfSpaceDimension_neZero
variable {M : Type u_1} [TopologicalSpace M] [ChartedSpace H M]
[MeasurableSpace M] [BorelSpace M] [SecondCountableTopology M]
variable [IsManifold I 1 M]
def riemannianVolume (g : OAI.CKSIntrinsicVolume.Metric (M := M)) : Measure M := Classical.epsilon (fun ν => OAI.CKSIntrinsicVolume.IsVolume g ν)
end OAI.CKSIntrinsicVolume
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSBoundarySurface
open Set Manifold Bundle Filter
open scoped ContDiff Topology
attribute [local instance] Classical.propDecidable
variable {M : Type u_2} [TopologicalSpace M] [ChartedSpace H3 M]
[@IsManifold ℝ _ E3 _ _ H3
(@instTopologicalSpaceEuclideanHalfSpace 3 halfSpaceDimension_neZero) I3 ∞ M _ _]
abbrev Boundary (M : Type u_2) [TopologicalSpace M] [ChartedSpace OAI.CKSBoundarySurface.H3 M] :=
@ModelWithCorners.boundary ℝ _ OAI.CKSBoundarySurface.E3 _ _ OAI.CKSBoundarySurface.H3
(@instTopologicalSpaceEuclideanHalfSpace 3 OAI.CKSBoundarySurface.halfSpaceDimension_neZero) OAI.CKSBoundarySurface.I3 M _ _
end OAI.CKSBoundarySurface
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSBoundarySurface
open Set Manifold Bundle Filter
open scoped ContDiff Topology
attribute [local instance] Classical.propDecidable
variable {M : Type u_1} [TopologicalSpace M] [ChartedSpace H3 M]
[@IsManifold ℝ _ E3 _ _ H3
(@instTopologicalSpaceEuclideanHalfSpace 3 halfSpaceDimension_neZero) I3 ∞ M _ _]
def boundaryInverse (x : OAI.CKSBoundarySurface.Boundary M) (z : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.Boundary M :=
have proof_boundary_chart_zero_22 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSIntrinsicGeometry.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSIntrinsicGeometry.I3 1 M] (x y : M) (hy : y ∈ (extChartAt OAI.CKSIntrinsicGeometry.I3 x).source)
(hS : y ∈ OAI.CKSIntrinsicGeometry.I3.boundary M) : (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 = 0 := by
have hychart : y ∈ (chartAt OAI.CKSIntrinsicGeometry.H3 x).source := by simpa using hy
have hyrange : extChartAt OAI.CKSIntrinsicGeometry.I3 x y ∈ range OAI.CKSIntrinsicGeometry.I3 :=
(extChartAt_target_subset_range x) ((extChartAt OAI.CKSIntrinsicGeometry.I3 x).map_source hy)
have hnonneg : 0 ≤ (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 := by
simpa only [OAI.CKSIntrinsicGeometry.I3, range_modelWithCornersEuclideanHalfSpace, mem_ofPred_eq] using hyrange
have hnot : ¬OAI.CKSIntrinsicGeometry.I3.IsInteriorPoint y :=
(OAI.CKSIntrinsicGeometry.I3.isBoundaryPoint_iff_not_isInteriorPoint y).mp hS
have hle : (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 ≤ 0 := by
by_contra h
have hpos : 0 < (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 := lt_of_not_ge h
have hint : extChartAt OAI.CKSIntrinsicGeometry.I3 x y ∈ interior (range OAI.CKSIntrinsicGeometry.I3) := by
simpa only [OAI.CKSIntrinsicGeometry.I3, interior_range_modelWithCornersEuclideanHalfSpace, mem_ofPred_eq] using hpos
apply hnot
apply (OAI.CKSIntrinsicGeometry.I3.isInteriorPoint_iff_of_mem_atlas one_ne_zero (chart_mem_atlas OAI.CKSIntrinsicGeometry.H3 x) hychart).mpr
exact (chartAt OAI.CKSIntrinsicGeometry.H3 x).mem_interior_extend_target ((chartAt OAI.CKSIntrinsicGeometry.H3 x).map_source hychart) hint
exact le_antisymm hle hnonneg
have proof_liftPlane_zero_6 (z : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.liftPlane z 0 = 0 := rfl
have proof_liftPlane_succ_7 (z : OAI.CKSBoundarySurface.E2) (i : Fin 2) : OAI.CKSBoundarySurface.liftPlane z i.succ = z i := rfl
have proof_I3_liftHalf_23 (z : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.I3 (OAI.CKSBoundarySurface.liftHalf z) = OAI.CKSBoundarySurface.liftPlane z := rfl
have proof_boundary_iff_zero_24 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x y : M) (hy : y ∈ (chartAt OAI.CKSBoundarySurface.H3 x).source) :
y ∈ OAI.CKSBoundarySurface.I3.boundary M ↔ (OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 x y)) 0 = 0 := by
constructor
· exact proof_boundary_chart_zero_22 x y (by simp [*])
· intro hz
apply (OAI.CKSBoundarySurface.I3.isBoundaryPoint_iff_not_isInteriorPoint y).mpr
intro hi
have hin := (OAI.CKSBoundarySurface.I3.isInteriorPoint_iff_of_mem_atlas
(by simp [*] : (∞ : ℕ∞ω) ≠ 0) (chart_mem_atlas OAI.CKSBoundarySurface.H3 x) hy).mp hi
have hr := (chartAt OAI.CKSBoundarySurface.H3 x).interior_extend_target_subset_interior_range hin
have hp : 0 < (OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 x y)) 0 := by
simpa only [OAI.CKSBoundarySurface.I3, interior_range_modelWithCornersEuclideanHalfSpace, mem_ofPred_eq,
OpenPartialHomeomorph.extend_coe, Function.comp_apply] using hr
rw [hz] at hp
exact (lt_irrefl 0) hp
have proof_chart_inverse_boundary_25 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : M) {z : OAI.CKSBoundarySurface.E2}
(hz : OAI.CKSBoundarySurface.liftHalf z ∈ (chartAt OAI.CKSBoundarySurface.H3 x).target) :
(chartAt OAI.CKSBoundarySurface.H3 x).symm (OAI.CKSBoundarySurface.liftHalf z) ∈ OAI.CKSBoundarySurface.I3.boundary M := by
apply (proof_boundary_iff_zero_24 x _ ((chartAt OAI.CKSBoundarySurface.H3 x).map_target hz)).mpr
rw [(chartAt OAI.CKSBoundarySurface.H3 x).right_inv hz]
rfl
have proof_boundaryInverse_mem_21 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : OAI.CKSBoundarySurface.Boundary M) {z : OAI.CKSBoundarySurface.E2}
(hz : OAI.CKSBoundarySurface.liftHalf z ∈ (chartAt OAI.CKSBoundarySurface.H3 x.val).target) :
(chartAt OAI.CKSBoundarySurface.H3 x.val).symm (OAI.CKSBoundarySurface.liftHalf z) ∈ OAI.CKSBoundarySurface.Boundary M :=
proof_chart_inverse_boundary_25 x.val hz
if hz : OAI.CKSBoundarySurface.liftHalf z ∈ (chartAt OAI.CKSBoundarySurface.H3 x.val).target then
⟨(chartAt OAI.CKSBoundarySurface.H3 x.val).symm (OAI.CKSBoundarySurface.liftHalf z),proof_boundaryInverse_mem_21 x hz⟩ else x
def boundaryChart (x : OAI.CKSBoundarySurface.Boundary M) : OpenPartialHomeomorph (OAI.CKSBoundarySurface.Boundary M) OAI.CKSBoundarySurface.E2 :=
have proof_lift_drop_30 {z : OAI.CKSBoundarySurface.E3} (hz : z 0 = 0) : OAI.CKSBoundarySurface.liftPlane (OAI.CKSBoundarySurface.dropPlane z) = z := by
ext i
cases i using Fin.cases with
| zero => exact hz.symm
| succ i => rfl
have proof_boundary_chart_zero_22 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSIntrinsicGeometry.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSIntrinsicGeometry.I3 1 M] (x y : M) (hy : y ∈ (extChartAt OAI.CKSIntrinsicGeometry.I3 x).source)
(hS : y ∈ OAI.CKSIntrinsicGeometry.I3.boundary M) : (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 = 0 := by
have hychart : y ∈ (chartAt OAI.CKSIntrinsicGeometry.H3 x).source := by simpa using hy
have hyrange : extChartAt OAI.CKSIntrinsicGeometry.I3 x y ∈ range OAI.CKSIntrinsicGeometry.I3 :=
(extChartAt_target_subset_range x) ((extChartAt OAI.CKSIntrinsicGeometry.I3 x).map_source hy)
have hnonneg : 0 ≤ (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 := by
simpa only [OAI.CKSIntrinsicGeometry.I3, range_modelWithCornersEuclideanHalfSpace, mem_ofPred_eq] using hyrange
have hnot : ¬OAI.CKSIntrinsicGeometry.I3.IsInteriorPoint y :=
(OAI.CKSIntrinsicGeometry.I3.isBoundaryPoint_iff_not_isInteriorPoint y).mp hS
have hle : (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 ≤ 0 := by
by_contra h
have hpos : 0 < (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 := lt_of_not_ge h
have hint : extChartAt OAI.CKSIntrinsicGeometry.I3 x y ∈ interior (range OAI.CKSIntrinsicGeometry.I3) := by
simpa only [OAI.CKSIntrinsicGeometry.I3, interior_range_modelWithCornersEuclideanHalfSpace, mem_ofPred_eq] using hpos
apply hnot
apply (OAI.CKSIntrinsicGeometry.I3.isInteriorPoint_iff_of_mem_atlas one_ne_zero (chart_mem_atlas OAI.CKSIntrinsicGeometry.H3 x) hychart).mpr
exact (chartAt OAI.CKSIntrinsicGeometry.H3 x).mem_interior_extend_target ((chartAt OAI.CKSIntrinsicGeometry.H3 x).map_source hychart) hint
exact le_antisymm hle hnonneg
have proof_liftPlane_zero_6 (z : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.liftPlane z 0 = 0 := rfl
have proof_liftPlane_succ_7 (z : OAI.CKSBoundarySurface.E2) (i : Fin 2) : OAI.CKSBoundarySurface.liftPlane z i.succ = z i := rfl
have proof_I3_liftHalf_23 (z : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.I3 (OAI.CKSBoundarySurface.liftHalf z) = OAI.CKSBoundarySurface.liftPlane z := rfl
have proof_boundary_iff_zero_24 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x y : M) (hy : y ∈ (chartAt OAI.CKSBoundarySurface.H3 x).source) :
y ∈ OAI.CKSBoundarySurface.I3.boundary M ↔ (OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 x y)) 0 = 0 := by
constructor
· exact proof_boundary_chart_zero_22 x y (by simp [*])
· intro hz
apply (OAI.CKSBoundarySurface.I3.isBoundaryPoint_iff_not_isInteriorPoint y).mpr
intro hi
have hin := (OAI.CKSBoundarySurface.I3.isInteriorPoint_iff_of_mem_atlas
(by simp [*] : (∞ : ℕ∞ω) ≠ 0) (chart_mem_atlas OAI.CKSBoundarySurface.H3 x) hy).mp hi
have hr := (chartAt OAI.CKSBoundarySurface.H3 x).interior_extend_target_subset_interior_range hin
have hp : 0 < (OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 x y)) 0 := by
simpa only [OAI.CKSBoundarySurface.I3, interior_range_modelWithCornersEuclideanHalfSpace, mem_ofPred_eq,
OpenPartialHomeomorph.extend_coe, Function.comp_apply] using hr
rw [hz] at hp
exact (lt_irrefl 0) hp
have proof_liftHalf_drop_chart_26 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : M) (y : OAI.CKSBoundarySurface.Boundary M) (hy : y.val ∈ (chartAt OAI.CKSBoundarySurface.H3 x).source) :
OAI.CKSBoundarySurface.liftHalf (OAI.CKSBoundarySurface.dropPlane (OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 x y.val))) = chartAt OAI.CKSBoundarySurface.H3 x y.val := by
apply Subtype.ext
exact proof_lift_drop_30 ((proof_boundary_iff_zero_24 x y.val hy).mp y.property)
have proof_chart_inverse_boundary_25 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : M) {z : OAI.CKSBoundarySurface.E2}
(hz : OAI.CKSBoundarySurface.liftHalf z ∈ (chartAt OAI.CKSBoundarySurface.H3 x).target) :
(chartAt OAI.CKSBoundarySurface.H3 x).symm (OAI.CKSBoundarySurface.liftHalf z) ∈ OAI.CKSBoundarySurface.I3.boundary M := by
apply (proof_boundary_iff_zero_24 x _ ((chartAt OAI.CKSBoundarySurface.H3 x).map_target hz)).mpr
rw [(chartAt OAI.CKSBoundarySurface.H3 x).right_inv hz]
rfl
have proof_boundaryInverse_mem_21 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : OAI.CKSBoundarySurface.Boundary M) {z : OAI.CKSBoundarySurface.E2}
(hz : OAI.CKSBoundarySurface.liftHalf z ∈ (chartAt OAI.CKSBoundarySurface.H3 x.val).target) :
(chartAt OAI.CKSBoundarySurface.H3 x.val).symm (OAI.CKSBoundarySurface.liftHalf z) ∈ OAI.CKSBoundarySurface.Boundary M :=
proof_chart_inverse_boundary_25 x.val hz
have proof_boundaryInverse_val_27 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : OAI.CKSBoundarySurface.Boundary M) {z : OAI.CKSBoundarySurface.E2}
(hz : OAI.CKSBoundarySurface.liftHalf z ∈ (chartAt OAI.CKSBoundarySurface.H3 x.val).target) :
(OAI.CKSBoundarySurface.boundaryInverse x z).val = (chartAt OAI.CKSBoundarySurface.H3 x.val).symm (OAI.CKSBoundarySurface.liftHalf z) := by
simp only [OAI.CKSBoundarySurface.boundaryInverse,dite_eq_left hz]
have proof_dropPlane_apply_31 (z : OAI.CKSBoundarySurface.E3) (i : Fin 2) : OAI.CKSBoundarySurface.dropPlane z i = z i.succ := rfl
have proof_drop_lift_28 (z : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.dropPlane (OAI.CKSBoundarySurface.liftPlane z) = z := by ext i; rfl
have proof_liftHalf_continuous_29 : Continuous OAI.CKSBoundarySurface.liftHalf :=
OAI.CKSBoundarySurface.liftPlane.continuous.subtype_mk (fun _ => by simp [*])
{
toFun y := OAI.CKSBoundarySurface.dropPlane (OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 x.val y.val))
invFun := OAI.CKSBoundarySurface.boundaryInverse x
source := Subtype.val ⁻¹' (chartAt OAI.CKSBoundarySurface.H3 x.val).source
target := OAI.CKSBoundarySurface.liftHalf ⁻¹' (chartAt OAI.CKSBoundarySurface.H3 x.val).target
map_source' := by
intro y hy
change OAI.CKSBoundarySurface.liftHalf (OAI.CKSBoundarySurface.dropPlane (OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 x.val y.val))) ∈ (chartAt OAI.CKSBoundarySurface.H3 x.val).target
rw [proof_liftHalf_drop_chart_26 x.val y hy]
exact (chartAt OAI.CKSBoundarySurface.H3 x.val).map_source hy
map_target' := by
intro z hz
change (OAI.CKSBoundarySurface.boundaryInverse x z).val ∈ (chartAt OAI.CKSBoundarySurface.H3 x.val).source
rw [proof_boundaryInverse_val_27 x hz]
exact (chartAt OAI.CKSBoundarySurface.H3 x.val).map_target hz
left_inv' := by
intro y hy
have h := proof_liftHalf_drop_chart_26 x.val y hy
apply Subtype.ext
rw [proof_boundaryInverse_val_27 x (by rw [h]; exact (chartAt OAI.CKSBoundarySurface.H3 x.val).map_source hy),h]
exact (chartAt OAI.CKSBoundarySurface.H3 x.val).left_inv hy
right_inv' := by
intro z hz
rw [proof_boundaryInverse_val_27 x hz,(chartAt OAI.CKSBoundarySurface.H3 x.val).right_inv hz,proof_I3_liftHalf_23,proof_drop_lift_28]
open_source := (chartAt OAI.CKSBoundarySurface.H3 x.val).open_source.preimage continuous_subtype_val
open_target := (chartAt OAI.CKSBoundarySurface.H3 x.val).open_target.preimage proof_liftHalf_continuous_29
continuousOn_toFun := OAI.CKSBoundarySurface.dropPlane.continuous.comp_continuousOn
(OAI.CKSBoundarySurface.I3.continuous.comp_continuousOn ((chartAt OAI.CKSBoundarySurface.H3 x.val).continuousOn.comp
continuous_subtype_val.continuousOn (fun _ h => h)))
continuousOn_invFun := by
apply Topology.IsInducing.subtypeVal.continuousOn_iff.mpr
apply ((chartAt OAI.CKSBoundarySurface.H3 x.val).continuousOn_symm.comp
proof_liftHalf_continuous_29.continuousOn (fun _ h => h)).congr
intro z hz
exact proof_boundaryInverse_val_27 x hz
}
instance boundaryChartedSpace : ChartedSpace OAI.CKSBoundarySurface.E2 (OAI.CKSBoundarySurface.Boundary M) where
atlas := range OAI.CKSBoundarySurface.boundaryChart
chartAt := OAI.CKSBoundarySurface.boundaryChart
mem_chart_source x := mem_chart_source OAI.CKSBoundarySurface.H3 x.val
chart_mem_atlas x := mem_range_self x
end OAI.CKSBoundarySurface
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSBoundarySurface
open Set Manifold Bundle Filter Function
open scoped ContDiff Topology
variable {M : Type u_1} [TopologicalSpace M] [ChartedSpace H3 M] [IsManifold I3 ∞ M]
instance boundaryIsManifold : IsManifold OAI.CKSBoundarySurface.I2 ∞ (OAI.CKSBoundarySurface.Boundary M) :=
have proof_lift_mem_ext_target_34 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] [IsManifold OAI.CKSBoundarySurface.I3 ∞ M] (x : M) {z : OAI.CKSBoundarySurface.E2}
(hz : OAI.CKSBoundarySurface.liftHalf z ∈ (chartAt OAI.CKSBoundarySurface.H3 x).target) :
OAI.CKSBoundarySurface.liftPlane z ∈ (extChartAt OAI.CKSBoundarySurface.I3 x).target := by
change OAI.CKSBoundarySurface.liftPlane z ∈ ((chartAt OAI.CKSBoundarySurface.H3 x).extend OAI.CKSBoundarySurface.I3).target
rw [OpenPartialHomeomorph.extend_target']
exact ⟨OAI.CKSBoundarySurface.liftHalf z,hz,rfl⟩
have proof_ext_symm_lift_35 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] [IsManifold OAI.CKSBoundarySurface.I3 ∞ M] (x : M) (z : OAI.CKSBoundarySurface.E2) :
(extChartAt OAI.CKSBoundarySurface.I3 x).symm (OAI.CKSBoundarySurface.liftPlane z) = (chartAt OAI.CKSBoundarySurface.H3 x).symm (OAI.CKSBoundarySurface.liftHalf z) := by
change (chartAt OAI.CKSBoundarySurface.H3 x).symm (OAI.CKSBoundarySurface.I3.symm (OAI.CKSBoundarySurface.I3 (OAI.CKSBoundarySurface.liftHalf z))) = _
rw [OAI.CKSBoundarySurface.I3.left_inv]
have proof_boundary_chart_zero_22 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSIntrinsicGeometry.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSIntrinsicGeometry.I3 1 M] (x y : M) (hy : y ∈ (extChartAt OAI.CKSIntrinsicGeometry.I3 x).source)
(hS : y ∈ OAI.CKSIntrinsicGeometry.I3.boundary M) : (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 = 0 := by
have hychart : y ∈ (chartAt OAI.CKSIntrinsicGeometry.H3 x).source := by simpa using hy
have hyrange : extChartAt OAI.CKSIntrinsicGeometry.I3 x y ∈ range OAI.CKSIntrinsicGeometry.I3 :=
(extChartAt_target_subset_range x) ((extChartAt OAI.CKSIntrinsicGeometry.I3 x).map_source hy)
have hnonneg : 0 ≤ (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 := by
simpa only [OAI.CKSIntrinsicGeometry.I3, range_modelWithCornersEuclideanHalfSpace, mem_ofPred_eq] using hyrange
have hnot : ¬OAI.CKSIntrinsicGeometry.I3.IsInteriorPoint y :=
(OAI.CKSIntrinsicGeometry.I3.isBoundaryPoint_iff_not_isInteriorPoint y).mp hS
have hle : (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 ≤ 0 := by
by_contra h
have hpos : 0 < (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 := lt_of_not_ge h
have hint : extChartAt OAI.CKSIntrinsicGeometry.I3 x y ∈ interior (range OAI.CKSIntrinsicGeometry.I3) := by
simpa only [OAI.CKSIntrinsicGeometry.I3, interior_range_modelWithCornersEuclideanHalfSpace, mem_ofPred_eq] using hpos
apply hnot
apply (OAI.CKSIntrinsicGeometry.I3.isInteriorPoint_iff_of_mem_atlas one_ne_zero (chart_mem_atlas OAI.CKSIntrinsicGeometry.H3 x) hychart).mpr
exact (chartAt OAI.CKSIntrinsicGeometry.H3 x).mem_interior_extend_target ((chartAt OAI.CKSIntrinsicGeometry.H3 x).map_source hychart) hint
exact le_antisymm hle hnonneg
have proof_liftPlane_zero_6 (z : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.liftPlane z 0 = 0 := rfl
have proof_liftPlane_succ_7 (z : OAI.CKSBoundarySurface.E2) (i : Fin 2) : OAI.CKSBoundarySurface.liftPlane z i.succ = z i := rfl
have proof_I3_liftHalf_23 (z : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.I3 (OAI.CKSBoundarySurface.liftHalf z) = OAI.CKSBoundarySurface.liftPlane z := rfl
have proof_boundary_iff_zero_24 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x y : M) (hy : y ∈ (chartAt OAI.CKSBoundarySurface.H3 x).source) :
y ∈ OAI.CKSBoundarySurface.I3.boundary M ↔ (OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 x y)) 0 = 0 := by
constructor
· exact proof_boundary_chart_zero_22 x y (by simp [*])
· intro hz
apply (OAI.CKSBoundarySurface.I3.isBoundaryPoint_iff_not_isInteriorPoint y).mpr
intro hi
have hin := (OAI.CKSBoundarySurface.I3.isInteriorPoint_iff_of_mem_atlas
(by simp [*] : (∞ : ℕ∞ω) ≠ 0) (chart_mem_atlas OAI.CKSBoundarySurface.H3 x) hy).mp hi
have hr := (chartAt OAI.CKSBoundarySurface.H3 x).interior_extend_target_subset_interior_range hin
have hp : 0 < (OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 x y)) 0 := by
simpa only [OAI.CKSBoundarySurface.I3, interior_range_modelWithCornersEuclideanHalfSpace, mem_ofPred_eq,
OpenPartialHomeomorph.extend_coe, Function.comp_apply] using hr
rw [hz] at hp
exact (lt_irrefl 0) hp
have proof_chart_inverse_boundary_25 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : M) {z : OAI.CKSBoundarySurface.E2}
(hz : OAI.CKSBoundarySurface.liftHalf z ∈ (chartAt OAI.CKSBoundarySurface.H3 x).target) :
(chartAt OAI.CKSBoundarySurface.H3 x).symm (OAI.CKSBoundarySurface.liftHalf z) ∈ OAI.CKSBoundarySurface.I3.boundary M := by
apply (proof_boundary_iff_zero_24 x _ ((chartAt OAI.CKSBoundarySurface.H3 x).map_target hz)).mpr
rw [(chartAt OAI.CKSBoundarySurface.H3 x).right_inv hz]
rfl
have proof_boundaryInverse_mem_21 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : OAI.CKSBoundarySurface.Boundary M) {z : OAI.CKSBoundarySurface.E2}
(hz : OAI.CKSBoundarySurface.liftHalf z ∈ (chartAt OAI.CKSBoundarySurface.H3 x.val).target) :
(chartAt OAI.CKSBoundarySurface.H3 x.val).symm (OAI.CKSBoundarySurface.liftHalf z) ∈ OAI.CKSBoundarySurface.Boundary M :=
proof_chart_inverse_boundary_25 x.val hz
have proof_boundaryInverse_val_27 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : OAI.CKSBoundarySurface.Boundary M) {z : OAI.CKSBoundarySurface.E2}
(hz : OAI.CKSBoundarySurface.liftHalf z ∈ (chartAt OAI.CKSBoundarySurface.H3 x.val).target) :
(OAI.CKSBoundarySurface.boundaryInverse x z).val = (chartAt OAI.CKSBoundarySurface.H3 x.val).symm (OAI.CKSBoundarySurface.liftHalf z) := by
simp only [OAI.CKSBoundarySurface.boundaryInverse,dite_eq_left hz]
have proof_boundaryChart_symm_val_36 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : OAI.CKSBoundarySurface.Boundary M) {z : OAI.CKSBoundarySurface.E2} (hz : z ∈ (OAI.CKSBoundarySurface.boundaryChart x).target) :
((OAI.CKSBoundarySurface.boundaryChart x).symm z).val = (chartAt OAI.CKSBoundarySurface.H3 x.val).symm (OAI.CKSBoundarySurface.liftHalf z) :=
proof_boundaryInverse_val_27 x hz
have proof_transition_lift_maps_32 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x y : OAI.CKSBoundarySurface.Boundary M) :
MapsTo OAI.CKSBoundarySurface.liftPlane ((OAI.CKSBoundarySurface.boundaryChart x).symm ≫ₕ OAI.CKSBoundarySurface.boundaryChart y).source
((extChartAt OAI.CKSBoundarySurface.I3 x.val).symm ≫ extChartAt OAI.CKSBoundarySurface.I3 y.val).source := by
intro z hz
change z ∈ (OAI.CKSBoundarySurface.boundaryChart x).target ∧ (OAI.CKSBoundarySurface.boundaryChart x).symm z ∈ (OAI.CKSBoundarySurface.boundaryChart y).source at hz
refine ⟨proof_lift_mem_ext_target_34 x.val hz.1, ?_⟩
change (extChartAt OAI.CKSBoundarySurface.I3 x.val).symm (OAI.CKSBoundarySurface.liftPlane z) ∈ (extChartAt OAI.CKSBoundarySurface.I3 y.val).source
rw [proof_ext_symm_lift_35]
have h := hz.2
change ((OAI.CKSBoundarySurface.boundaryChart x).symm z).val ∈ (chartAt OAI.CKSBoundarySurface.H3 y.val).source at h
rw [proof_boundaryChart_symm_val_36 x hz.1] at h
simpa only [extChartAt_source] using h
have proof_transition_formula_33 {M : Type u_1} [instLocal1 : TopologicalSpace.{u_1} M] [instLocal2 : ChartedSpace.{0, u_1} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u_1} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x y : OAI.CKSBoundarySurface.Boundary M) {z : OAI.CKSBoundarySurface.E2}
(hz : z ∈ ((OAI.CKSBoundarySurface.boundaryChart x).symm ≫ₕ OAI.CKSBoundarySurface.boundaryChart y).source) :
((OAI.CKSBoundarySurface.boundaryChart x).symm ≫ₕ OAI.CKSBoundarySurface.boundaryChart y) z =
OAI.CKSBoundarySurface.dropPlane (((extChartAt OAI.CKSBoundarySurface.I3 x.val).symm ≫ extChartAt OAI.CKSBoundarySurface.I3 y.val) (OAI.CKSBoundarySurface.liftPlane z)) := by
change OAI.CKSBoundarySurface.dropPlane (OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 y.val ((OAI.CKSBoundarySurface.boundaryChart x).symm z).val)) = _
rw [proof_boundaryChart_symm_val_36 x hz.1]
change _ = OAI.CKSBoundarySurface.dropPlane (OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 y.val ((extChartAt OAI.CKSBoundarySurface.I3 x.val).symm (OAI.CKSBoundarySurface.liftPlane z))))
rw [proof_ext_symm_lift_35]
by
apply isManifold_of_contDiffOn
rintro e e' ⟨x,rfl⟩ ⟨y,rfl⟩
change ContDiffOn ℝ ∞ (fun z => ((OAI.CKSBoundarySurface.boundaryChart x).symm ≫ₕ OAI.CKSBoundarySurface.boundaryChart y) z)
(id ⁻¹' ((OAI.CKSBoundarySurface.boundaryChart x).symm ≫ₕ OAI.CKSBoundarySurface.boundaryChart y).source ∩ range id)
rw [preimage_id,range_id,inter_univ]
apply (OAI.CKSBoundarySurface.dropPlane.contDiff.comp_contDiffOn ((contDiffOn_ext_coord_change (I := OAI.CKSBoundarySurface.I3) y.val x.val).comp
OAI.CKSBoundarySurface.liftPlane.contDiff.contDiffOn (proof_transition_lift_maps_32 x y))).congr
intro z hz
exact proof_transition_formula_33 x y hz
end OAI.CKSBoundarySurface
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSurfaceVolume
open Bundle Manifold Set MeasureTheory
open scoped ContDiff ENNReal
abbrev E := EuclideanSpace ℝ (Fin 2)
abbrev H := OAI.CKSSurfaceVolume.E
abbrev I := 𝓘(ℝ,OAI.CKSSurfaceVolume.E)
abbrev basis (i : Fin 2) : OAI.CKSSurfaceVolume.E := EuclideanSpace.single i 1
end OAI.CKSSurfaceVolume
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSurfaceVolume
open Bundle Manifold Set MeasureTheory
open scoped ContDiff ENNReal
variable {M : Type u_1} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M]
abbrev Metric := ContinuousRiemannianMetric OAI.CKSSurfaceVolume.E (fun x : M => TangentSpace OAI.CKSSurfaceVolume.I x)
end OAI.CKSSurfaceVolume
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSurfaceVolume
open Bundle Manifold Set MeasureTheory
open scoped ContDiff ENNReal
variable {M : Type*} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M]
local instance real_continuousAdd : ContinuousAdd ℝ := inferInstance
local instance real_continuousConstSMul : ContinuousConstSMul ℝ ℝ := inferInstance
local instance real_smulCommClass :
@SMulCommClass ℝ ℝ ℝ Algebra.toSMul
(@instSMulOfMul ℝ (@Distrib.toMul ℝ
(@instDistribOfSemiring ℝ (@CommSemiring.toSemiring ℝ Real.instCommSemiring)))) :=
inferInstance
end OAI.CKSSurfaceVolume
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSurfaceVolume
open Bundle Manifold Set MeasureTheory
open scoped ContDiff ENNReal
variable {M : Type u_1} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M]
def chartFrame (x : M) (y : OAI.CKSSurfaceVolume.E) : OAI.CKSSurfaceVolume.E →L[ℝ] TangentSpace OAI.CKSSurfaceVolume.I ((extChartAt OAI.CKSSurfaceVolume.I x).symm y) :=
mfderivWithin 𝓘(ℝ,OAI.CKSSurfaceVolume.E) OAI.CKSSurfaceVolume.I (extChartAt OAI.CKSSurfaceVolume.I x).symm (range OAI.CKSSurfaceVolume.I) y
def chartMatrix (g : OAI.CKSSurfaceVolume.Metric (M := M)) (x : M) (y : OAI.CKSSurfaceVolume.E) : Matrix (Fin 2) (Fin 2) ℝ :=
letI := OAI.CKSSurfaceVolume.real_continuousAdd
letI := OAI.CKSSurfaceVolume.real_continuousConstSMul
letI := OAI.CKSSurfaceVolume.real_smulCommClass
let inner : TangentSpace OAI.CKSSurfaceVolume.I ((extChartAt OAI.CKSSurfaceVolume.I x).symm y) →L[ℝ]
TangentSpace OAI.CKSSurfaceVolume.I ((extChartAt OAI.CKSSurfaceVolume.I x).symm y) →L[ℝ] ℝ :=
g.inner ((extChartAt OAI.CKSSurfaceVolume.I x).symm y)
fun i j => inner (OAI.CKSSurfaceVolume.chartFrame x y (OAI.CKSSurfaceVolume.basis i))
(OAI.CKSSurfaceVolume.chartFrame x y (OAI.CKSSurfaceVolume.basis j))
def chartDensity (g : OAI.CKSSurfaceVolume.Metric (M := M)) (x : M) (y : OAI.CKSSurfaceVolume.E) : ℝ :=
Real.sqrt (OAI.CKSSurfaceVolume.chartMatrix g x y).det
end OAI.CKSSurfaceVolume
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSurfaceVolume
open Bundle Manifold Set MeasureTheory
open scoped ContDiff ENNReal
variable {M : Type u_1} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I 1 M]
variable [MeasurableSpace M] [BorelSpace M]
def localVolume (g : OAI.CKSSurfaceVolume.Metric (M := M)) (x : M) : Measure M :=
Measure.map (extChartAt OAI.CKSSurfaceVolume.I x).symm
((volume.restrict (extChartAt OAI.CKSSurfaceVolume.I x).target).withDensity
(fun y => ENNReal.ofReal (OAI.CKSSurfaceVolume.chartDensity g x y)))
def IsVolume (g : OAI.CKSSurfaceVolume.Metric (M := M)) (ν : Measure M) : Prop :=
∀ x : M, ν.restrict (extChartAt OAI.CKSSurfaceVolume.I x).source = OAI.CKSSurfaceVolume.localVolume g x
end OAI.CKSSurfaceVolume
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSurfaceVolume
open Bundle Manifold Set MeasureTheory
open scoped ContDiff ENNReal
def riemannianVolume {M : Type u_1} [TopologicalSpace M] [ChartedSpace OAI.CKSSurfaceVolume.H M]
[IsManifold OAI.CKSSurfaceVolume.I 1 M] [MeasurableSpace M] [BorelSpace M] [SecondCountableTopology M]
(g : OAI.CKSSurfaceVolume.Metric (M := M)) : Measure M :=
Classical.epsilon (fun ν => OAI.CKSSurfaceVolume.IsVolume g ν)
end OAI.CKSSurfaceVolume
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
abbrev E2 := EuclideanSpace ℝ (Fin 2)
abbrev I2 := 𝓘(ℝ,OAI.CKSInducedArea.E2)
abbrev E3 := EuclideanSpace ℝ (Fin 3)
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
local instance real_continuousAdd : ContinuousAdd ℝ := inferInstance
local instance real_continuousConstSMul : ContinuousConstSMul ℝ ℝ := inferInstance
local instance real_id_isometric : RingHomIsometric (RingHom.id ℝ) := inferInstance
local instance real_id_compTriple :
RingHomCompTriple (RingHom.id ℝ) (RingHom.id ℝ) (RingHom.id ℝ) := inferInstance
local instance real_smulCommClass :
@SMulCommClass ℝ ℝ ℝ Algebra.toSMul
(@instSMulOfMul ℝ (@Distrib.toMul ℝ
(@instDistribOfSemiring ℝ (@CommSemiring.toSemiring ℝ Real.instCommSemiring)))) :=
inferInstance
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type u_3} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
abbrev Inner2 :=
letI := OAI.CKSInducedArea.real_smulCommClass
∀ x : S, TangentSpace OAI.CKSInducedArea.I2 x →L[ℝ] TangentSpace OAI.CKSInducedArea.I2 x →L[ℝ] ℝ
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type u_1} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type u_2} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
abbrev Smooth3 := ContMDiffRiemannianMetric I3 ∞ OAI.CKSInducedArea.E3 (fun x : N => TangentSpace I3 x)
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
abbrev Bil2 :=
letI := OAI.CKSInducedArea.real_smulCommClass
OAI.CKSInducedArea.E2 →L[ℝ] OAI.CKSInducedArea.E2 →L[ℝ] ℝ
abbrev Bil3 :=
letI := OAI.CKSInducedArea.real_smulCommClass
OAI.CKSInducedArea.E3 →L[ℝ] OAI.CKSInducedArea.E3 →L[ℝ] ℝ
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type u_1} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type u_2} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type u_3} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
def inducedInner (g : OAI.CKSInducedArea.Smooth3 (I3 := I3) (N := N)) (φ : S → N) : OAI.CKSInducedArea.Inner2 (S := S) :=
letI := OAI.CKSInducedArea.real_id_isometric
letI := OAI.CKSInducedArea.real_id_compTriple
fun x => by
let : NormedAddCommGroup (TangentSpace OAI.CKSInducedArea.I2 x) := by unfold TangentSpace; infer_instance
let : NormedSpace ℝ (TangentSpace OAI.CKSInducedArea.I2 x) := by unfold TangentSpace; infer_instance
let : NormedAddCommGroup (TangentSpace I3 (φ x)) := by unfold TangentSpace; infer_instance
let : NormedSpace ℝ (TangentSpace I3 (φ x)) := by unfold TangentSpace; infer_instance
exact (g.inner (φ x)).bilinearComp (mfderiv OAI.CKSInducedArea.I2 I3 φ x) (mfderiv OAI.CKSInducedArea.I2 I3 φ x)
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
variable {E : Type u_4} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type u_5} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
local instance tangent_manifold_one : IsManifold I 1 M := inferInstance
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
variable {E : Type u_4} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type u_5} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] tangent_manifold_one
local instance tangent_vectorBundle : VectorBundle ℝ E (fun x : M => TangentSpace I x) :=
inferInstance
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type*} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type*} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] tangent_manifold_one
attribute [local instance] tangent_vectorBundle
local instance scalar_smulCommClass : SMulCommClass ℝ ℝ ℝ := inferInstance
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type*} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] tangent_manifold_one
attribute [local instance] tangent_vectorBundle
attribute [local instance] scalar_smulCommClass
local instance scalar_vectorBundle : VectorBundle ℝ ℝ (Bundle.Trivial M ℝ) := inferInstance
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type*} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type*} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] tangent_manifold_one
attribute [local instance] tangent_vectorBundle
attribute [local instance] scalar_smulCommClass
attribute [local instance] scalar_vectorBundle
local instance scalar_continuousSMul : ContinuousSMul ℝ ℝ := inferInstance
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
variable {E : Type u_4} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type u_5} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] tangent_manifold_one
attribute [local instance] tangent_vectorBundle
attribute [local instance] scalar_smulCommClass
attribute [local instance] scalar_vectorBundle
attribute [local instance] scalar_continuousSMul
local instance covector_vectorBundle :
VectorBundle ℝ (E →L[ℝ] ℝ) (fun x : M => TangentSpace I x →L[ℝ] ℝ) :=
inferInstance
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
variable {E : Type u_4} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type u_5} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] tangent_manifold_one
attribute [local instance] tangent_vectorBundle
attribute [local instance] scalar_smulCommClass
attribute [local instance] scalar_vectorBundle
attribute [local instance] scalar_continuousSMul
attribute [local instance] covector_vectorBundle
local instance covector_topologicalAddGroup (x : M) :
IsTopologicalAddGroup (TangentSpace I x →L[ℝ] ℝ) := inferInstance
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
variable {E : Type u_4} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type u_5} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] tangent_manifold_one
attribute [local instance] tangent_vectorBundle
attribute [local instance] scalar_smulCommClass
attribute [local instance] scalar_vectorBundle
attribute [local instance] scalar_continuousSMul
attribute [local instance] covector_vectorBundle
attribute [local instance] covector_topologicalAddGroup
local instance covector_continuousSMul (x : M) :
ContinuousSMul ℝ (TangentSpace I x →L[ℝ] ℝ) := inferInstance
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type*} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] tangent_manifold_one
attribute [local instance] tangent_vectorBundle
attribute [local instance] scalar_smulCommClass
attribute [local instance] scalar_vectorBundle
attribute [local instance] scalar_continuousSMul
attribute [local instance] covector_vectorBundle
attribute [local instance] covector_topologicalAddGroup
attribute [local instance] covector_continuousSMul
local instance scalarAtlas : MemTrivializationAtlas (Bundle.Trivial.trivialization M ℝ) := ⟨rfl⟩
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
variable {E : Type u_4} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type u_5} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] tangent_manifold_one
attribute [local instance] tangent_vectorBundle
attribute [local instance] scalar_smulCommClass
attribute [local instance] scalar_vectorBundle
attribute [local instance] scalar_continuousSMul
attribute [local instance] covector_vectorBundle
attribute [local instance] covector_topologicalAddGroup
attribute [local instance] covector_continuousSMul
attribute [local instance] OAI.CKSInducedArea.scalarAtlas
local instance covector_atlas (e : Trivialization E (π E (fun x : M => TangentSpace I x)))
[MemTrivializationAtlas e] :
MemTrivializationAtlas
(e.continuousLinearMap (RingHom.id ℝ) (Bundle.Trivial.trivialization M ℝ)) :=
inferInstance
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
variable {E : Type u_4} [NormedAddCommGroup E] [NormedSpace ℝ E]
{H : Type u_5} [TopologicalSpace H] (I : ModelWithCorners ℝ E H)
{M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
attribute [local instance] tangent_manifold_one
attribute [local instance] tangent_vectorBundle
attribute [local instance] scalar_smulCommClass
attribute [local instance] scalar_vectorBundle
attribute [local instance] scalar_continuousSMul
attribute [local instance] covector_vectorBundle
attribute [local instance] covector_topologicalAddGroup
attribute [local instance] covector_continuousSMul
attribute [local instance] OAI.CKSInducedArea.scalarAtlas
attribute [local instance] covector_atlas
def bilinearTriv (e : Trivialization E (π E (fun x : M => TangentSpace I x)))
[MemTrivializationAtlas e] :
Trivialization (E →L[ℝ] E →L[ℝ] ℝ) (π (E →L[ℝ] E →L[ℝ] ℝ) (fun x : M =>
TangentSpace I x →L[ℝ] TangentSpace I x →L[ℝ] ℝ)) :=
letI := OAI.CKSInducedArea.real_smulCommClass
e.continuousLinearMap (RingHom.id ℝ)
(e.continuousLinearMap (RingHom.id ℝ) (Bundle.Trivial.trivialization M ℝ))
instance bilinearTriv_atlas (e : Trivialization E (π E (fun x : M => TangentSpace I x)))
[MemTrivializationAtlas e] : MemTrivializationAtlas (OAI.CKSInducedArea.bilinearTriv I e) := by
unfold OAI.CKSInducedArea.bilinearTriv
infer_instance
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
local instance covector_smulCommClass {Space : Type u_4} [NormedAddCommGroup Space]
[NormedSpace ℝ Space] :
letI := OAI.CKSInducedArea.real_smulCommClass
SMulCommClass ℝ ℝ (Space →L[ℝ] ℝ) := by
infer_instance
local instance bilNorm2 : NormedAddCommGroup OAI.CKSInducedArea.Bil2 :=
letI := OAI.CKSInducedArea.real_smulCommClass
ContinuousLinearMap.toNormedAddCommGroup (E := OAI.CKSInducedArea.E2) (F := OAI.CKSInducedArea.E2 →L[ℝ] ℝ) (σ₁₂ := RingHom.id ℝ)
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
attribute [local instance] OAI.CKSInducedArea.bilNorm2
local instance bilSpace2 : NormedSpace ℝ OAI.CKSInducedArea.Bil2 :=
letI := OAI.CKSInducedArea.real_smulCommClass
letI := OAI.CKSInducedArea.covector_smulCommClass (Space := OAI.CKSInducedArea.E2)
ContinuousLinearMap.toNormedSpace
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
attribute [local instance] OAI.CKSInducedArea.bilNorm2
attribute [local instance] OAI.CKSInducedArea.bilSpace2
local instance bilNorm3 : NormedAddCommGroup OAI.CKSInducedArea.Bil3 :=
letI := OAI.CKSInducedArea.real_smulCommClass
ContinuousLinearMap.toNormedAddCommGroup (E := OAI.CKSInducedArea.E3) (F := OAI.CKSInducedArea.E3 →L[ℝ] ℝ) (σ₁₂ := RingHom.id ℝ)
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
attribute [local instance] OAI.CKSInducedArea.bilNorm2
attribute [local instance] OAI.CKSInducedArea.bilSpace2
attribute [local instance] OAI.CKSInducedArea.bilNorm3
local instance bilSpace3 : NormedSpace ℝ OAI.CKSInducedArea.Bil3 :=
letI := OAI.CKSInducedArea.real_smulCommClass
letI := OAI.CKSInducedArea.covector_smulCommClass (Space := OAI.CKSInducedArea.E3)
ContinuousLinearMap.toNormedSpace
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
attribute [local instance] OAI.CKSInducedArea.bilNorm2
attribute [local instance] OAI.CKSInducedArea.bilSpace2
attribute [local instance] OAI.CKSInducedArea.bilNorm3
attribute [local instance] OAI.CKSInducedArea.bilSpace3
local instance mixNorm23 : NormedAddCommGroup (OAI.CKSInducedArea.E2 →L[ℝ] OAI.CKSInducedArea.E3 →L[ℝ] ℝ) :=
letI := OAI.CKSInducedArea.real_smulCommClass
ContinuousLinearMap.toNormedAddCommGroup (E := OAI.CKSInducedArea.E2) (F := OAI.CKSInducedArea.E3 →L[ℝ] ℝ) (σ₁₂ := RingHom.id ℝ)
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
attribute [local instance] OAI.CKSInducedArea.bilNorm2
attribute [local instance] OAI.CKSInducedArea.bilSpace2
attribute [local instance] OAI.CKSInducedArea.bilNorm3
attribute [local instance] OAI.CKSInducedArea.bilSpace3
attribute [local instance] OAI.CKSInducedArea.mixNorm23
local instance mixSpace23 : NormedSpace ℝ (OAI.CKSInducedArea.E2 →L[ℝ] OAI.CKSInducedArea.E3 →L[ℝ] ℝ) :=
letI := OAI.CKSInducedArea.real_smulCommClass
letI := OAI.CKSInducedArea.covector_smulCommClass (Space := OAI.CKSInducedArea.E3)
ContinuousLinearMap.toNormedSpace
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
attribute [local instance] OAI.CKSInducedArea.bilNorm2
attribute [local instance] OAI.CKSInducedArea.bilSpace2
attribute [local instance] OAI.CKSInducedArea.bilNorm3
attribute [local instance] OAI.CKSInducedArea.bilSpace3
attribute [local instance] OAI.CKSInducedArea.mixNorm23
attribute [local instance] OAI.CKSInducedArea.mixSpace23
local instance mixNorm32 : NormedAddCommGroup (OAI.CKSInducedArea.E3 →L[ℝ] OAI.CKSInducedArea.E2 →L[ℝ] ℝ) :=
letI := OAI.CKSInducedArea.real_smulCommClass
ContinuousLinearMap.toNormedAddCommGroup (E := OAI.CKSInducedArea.E3) (F := OAI.CKSInducedArea.E2 →L[ℝ] ℝ) (σ₁₂ := RingHom.id ℝ)
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type*} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type*} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type*} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
attribute [local instance] OAI.CKSInducedArea.bilNorm2
attribute [local instance] OAI.CKSInducedArea.bilSpace2
attribute [local instance] OAI.CKSInducedArea.bilNorm3
attribute [local instance] OAI.CKSInducedArea.bilSpace3
attribute [local instance] OAI.CKSInducedArea.mixNorm23
attribute [local instance] OAI.CKSInducedArea.mixSpace23
attribute [local instance] OAI.CKSInducedArea.mixNorm32
local instance mixSpace32 : NormedSpace ℝ (OAI.CKSInducedArea.E3 →L[ℝ] OAI.CKSInducedArea.E2 →L[ℝ] ℝ) :=
letI := OAI.CKSInducedArea.real_smulCommClass
letI := OAI.CKSInducedArea.covector_smulCommClass (Space := OAI.CKSInducedArea.E2)
ContinuousLinearMap.toNormedSpace
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSInducedArea
open Bundle Manifold Set Bornology Filter
open scoped Bundle Manifold ContDiff Topology
variable {H3 : Type u_1} [TopologicalSpace H3] {I3 : ModelWithCorners ℝ E3 H3}
{N : Type u_2} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
{S : Type u_3} [TopologicalSpace S] [ChartedSpace E2 S] [IsManifold I2 ∞ S]
attribute [local instance] real_continuousAdd real_continuousConstSMul real_smulCommClass real_id_isometric
attribute [local instance] OAI.CKSInducedArea.bilNorm2
attribute [local instance] OAI.CKSInducedArea.bilSpace2
attribute [local instance] OAI.CKSInducedArea.bilNorm3
attribute [local instance] OAI.CKSInducedArea.bilSpace3
attribute [local instance] OAI.CKSInducedArea.mixNorm23
attribute [local instance] OAI.CKSInducedArea.mixSpace23
attribute [local instance] OAI.CKSInducedArea.mixNorm32
attribute [local instance] OAI.CKSInducedArea.mixSpace32
def inducedMetric (g : OAI.CKSInducedArea.Smooth3 (I3 := I3) (N := N)) (φ : S → N)
(hφ : ContMDiff OAI.CKSInducedArea.I2 I3 ∞ φ)
(hinj : ∀ x, Function.Injective (mfderiv OAI.CKSInducedArea.I2 I3 φ x)) :
ContMDiffRiemannianMetric OAI.CKSInducedArea.I2 ∞ OAI.CKSInducedArea.E2 (fun x : S => TangentSpace OAI.CKSInducedArea.I2 x) :=
have proof_inducedInner_symm_37 {H3 : Type u_1} [instLocal1 : TopologicalSpace.{u_1} H3] {I3 : ModelWithCorners.{0, 0, u_1} ℝ OAI.CKSInducedArea.E3 H3} {N : Type u_2} [instLocal4 : TopologicalSpace.{u_2} N] [instLocal5 : ChartedSpace.{u_1, u_2} H3 N] [instLocal6 : IsManifold.{0, 0, u_1, u_2} I3 (∞ : ℕ∞ω) N] {S : Type u_3} [instLocal8 : TopologicalSpace.{u_3} S] [instLocal9 : ChartedSpace.{0, u_3} OAI.CKSInducedArea.E2 S] (metric : OAI.CKSInducedArea.Smooth3 (I3 := I3) (N := N)) (immersion : S → N)
(point : S) (left right : TangentSpace OAI.CKSInducedArea.I2 point) :
OAI.CKSInducedArea.inducedInner metric immersion point left right = OAI.CKSInducedArea.inducedInner metric immersion point right left :=
metric.symm (immersion point) _ _
have proof_inducedInner_pos_38 {H3 : Type u_1} [instLocal1 : TopologicalSpace.{u_1} H3] {I3 : ModelWithCorners.{0, 0, u_1} ℝ OAI.CKSInducedArea.E3 H3} {N : Type u_2} [instLocal4 : TopologicalSpace.{u_2} N] [instLocal5 : ChartedSpace.{u_1, u_2} H3 N] [instLocal6 : IsManifold.{0, 0, u_1, u_2} I3 (∞ : ℕ∞ω) N] {S : Type u_3} [instLocal8 : TopologicalSpace.{u_3} S] [instLocal9 : ChartedSpace.{0, u_3} OAI.CKSInducedArea.E2 S] (metric : OAI.CKSInducedArea.Smooth3 (I3 := I3) (N := N)) (immersion : S → N)
(injective : ∀ point, Function.Injective (mfderiv OAI.CKSInducedArea.I2 I3 immersion point))
(point : S) (vector : TangentSpace OAI.CKSInducedArea.I2 point) (nonzero : vector ≠ 0) :
0 < OAI.CKSInducedArea.inducedInner metric immersion point vector vector :=
metric.pos (immersion point) _
(fun zero => nonzero (injective point (zero.trans (map_zero _).symm)))
have proof_positive_bilinear_bounded_41 (B : OAI.CKSInducedArea.Bil2) (hB : ∀ v : OAI.CKSInducedArea.E2, v ≠ 0 → 0 < B v v) :
IsVonNBounded ℝ {v : OAI.CKSInducedArea.E2 | B v v < 1} := by
have hc : Continuous (fun v : OAI.CKSInducedArea.E2 => B v v) := B.continuous.clm_apply continuous_id
obtain ⟨a,ha,hm⟩ := (isCompact_sphere (0 : OAI.CKSInducedArea.E2) 1).exists_isMinOn
(NormedSpace.sphere_nonempty.mpr (by norm_num : (0 : ℝ) ≤ 1)) hc.continuousOn
have haNorm : ‖a‖ = 1 := by simpa [Metric.mem_sphere] using ha
have ha0 : a ≠ 0 := by intro h; simp [h] at haNorm
have hp : 0 < B a a := hB a ha0
have hlow : ∀ v : OAI.CKSInducedArea.E2, B a a * ‖v‖ ^ 2 ≤ B v v := by
intro v
by_cases hv : v = 0
· simp [hv]
have hn : 0 < ‖v‖ := norm_pos_iff.mpr hv
have hy : ‖(‖v‖⁻¹ : ℝ) • v‖ = 1 := by
rw [norm_smul, Real.norm_eq_abs, abs_of_pos (inv_pos.mpr hn), inv_mul_cancel₀ hn.ne']
have h := hm (show (‖v‖⁻¹ : ℝ) • v ∈ Metric.sphere (0 : OAI.CKSInducedArea.E2) 1 by
simpa [Metric.mem_sphere] using hy)
have he : B ((‖v‖⁻¹ : ℝ) • v) ((‖v‖⁻¹ : ℝ) • v) = B v v / ‖v‖^2 := by
simp only [map_smul, smul_apply, smul_eq_mul]
field_simp
change B a a ≤ B ((‖v‖⁻¹ : ℝ) • v) ((‖v‖⁻¹ : ℝ) • v) at h
rw [he] at h
exact (le_div_iff₀ (sq_pos_of_pos hn)).mp h
apply (NormedSpace.isVonNBounded_iff ℝ).mpr
apply (Metric.isBounded_iff_subset_ball (0 : OAI.CKSInducedArea.E2)).mpr
refine ⟨1 + (B a a)⁻¹, ?_⟩
intro v hv
change dist v 0 < 1 + (B a a)⁻¹
rw [dist_zero_right]
have hbv : B v v < 1 := hv
have hl := hlow v
have hinv : 0 < (B a a)⁻¹ := inv_pos.mpr hp
have he : B a a * (B a a)⁻¹ = 1 := mul_inv_cancel₀ hp.ne'
by_contra hh
have hn : 1 + (B a a)⁻¹ ≤ ‖v‖ := le_of_not_gt hh
have hn1 : 1 ≤ ‖v‖ := by linarith
have hn2 : ‖v‖ ≤ ‖v‖^2 := by nlinarith
have hmul := mul_le_mul_of_nonneg_left hn hp.le
have hmul2 := mul_le_mul_of_nonneg_left hn2 hp.le
nlinarith
have proof_inducedInner_bounded_39 {H3 : Type u_1} [instLocal1 : TopologicalSpace.{u_1} H3] {I3 : ModelWithCorners.{0, 0, u_1} ℝ OAI.CKSInducedArea.E3 H3} {N : Type u_2} [instLocal4 : TopologicalSpace.{u_2} N] [instLocal5 : ChartedSpace.{u_1, u_2} H3 N] [instLocal6 : IsManifold.{0, 0, u_1, u_2} I3 (∞ : ℕ∞ω) N] {S : Type u_3} [instLocal8 : TopologicalSpace.{u_3} S] [instLocal9 : ChartedSpace.{0, u_3} OAI.CKSInducedArea.E2 S] (metric : OAI.CKSInducedArea.Smooth3 (I3 := I3) (N := N)) (immersion : S → N)
(injective : ∀ point, Function.Injective (mfderiv OAI.CKSInducedArea.I2 I3 immersion point)) (point : S) :
IsVonNBounded ℝ {vector : TangentSpace OAI.CKSInducedArea.I2 point |
inducedInner metric immersion point vector vector < 1} :=
proof_positive_bilinear_bounded_41 (OAI.CKSInducedArea.inducedInner metric immersion point)
(proof_inducedInner_pos_38 metric immersion injective point)
have proof_bilinearComp_smoothAt_42 {S : Type u_3} [instLocal1 : TopologicalSpace.{u_3} S] [instLocal2 : ChartedSpace.{0, u_3} OAI.CKSInducedArea.E2 S] [instLocal3 : IsManifold.{0, 0, 0, u_3} OAI.CKSInducedArea.I2 (∞ : ℕ∞ω) S] [IsManifold OAI.CKSInducedArea.I2 ∞ S]
{B : S → OAI.CKSInducedArea.Bil3} {A : S → OAI.CKSInducedArea.E2 →L[ℝ] OAI.CKSInducedArea.E3} {x : S}
(hB : ContMDiffAt OAI.CKSInducedArea.I2 𝓘(ℝ,OAI.CKSInducedArea.Bil3) ∞ B x)
(hA : ContMDiffAt OAI.CKSInducedArea.I2 𝓘(ℝ,OAI.CKSInducedArea.E2 →L[ℝ] OAI.CKSInducedArea.E3) ∞ A x) :
ContMDiffAt OAI.CKSInducedArea.I2 𝓘(ℝ,OAI.CKSInducedArea.Bil2) ∞ (fun y => (B y).bilinearComp (A y) (A y)) x := by
have flip1 : ContDiff ℝ ∞ (fun B : OAI.CKSInducedArea.E2 →L[ℝ] OAI.CKSInducedArea.E3 →L[ℝ] ℝ => B.flip) :=
by
let L : (OAI.CKSInducedArea.E2 →L[ℝ] OAI.CKSInducedArea.E3 →L[ℝ] ℝ) →L[ℝ] (OAI.CKSInducedArea.E3 →L[ℝ] OAI.CKSInducedArea.E2 →L[ℝ] ℝ) :=
(ContinuousLinearMap.flipₗᵢ ℝ OAI.CKSInducedArea.E2 OAI.CKSInducedArea.E3 ℝ).toContinuousLinearEquiv.toContinuousLinearMap
exact L.contDiff
have flip2 : ContDiff ℝ ∞ (fun B : OAI.CKSInducedArea.Bil2 => B.flip) :=
by
let L : OAI.CKSInducedArea.Bil2 →L[ℝ] OAI.CKSInducedArea.Bil2 :=
(ContinuousLinearMap.flipₗᵢ ℝ OAI.CKSInducedArea.E2 OAI.CKSInducedArea.E2 ℝ).toContinuousLinearEquiv.toContinuousLinearMap
exact L.contDiff
exact flip2.comp_contMDiffAt ((flip1.comp_contMDiffAt (hB.clm_comp hA)).clm_comp hA)
have proof_bilinearTriv_pair_43 {E : Type 0} [instLocal1 : NormedAddCommGroup.{0} E] [instLocal2 : NormedSpace.{0, 0} ℝ E] {H : Type 0} [instLocal4 : TopologicalSpace.{0} H] (I : ModelWithCorners.{0, 0, 0} ℝ E H) {M : Type u_3} [instLocal7 : TopologicalSpace.{u_3} M] [instLocal8 : ChartedSpace.{0, u_3} H M] [instLocal9 : IsManifold.{0, 0, 0, u_3} I (∞ : ℕ∞ω) M] (e : Trivialization E (π E (fun x : M => TangentSpace I x)))
[MemTrivializationAtlas e] {x : M} (hx : x ∈ e.baseSet)
(B : TangentSpace I x →L[ℝ] TangentSpace I x →L[ℝ] ℝ) (v w : E) :
((OAI.CKSInducedArea.bilinearTriv I e) ⟨x,B⟩).2 v w = B (e.symmL ℝ x v) (e.symmL ℝ x w) := by
let := OAI.CKSInducedArea.scalarAtlas (M := M)
unfold OAI.CKSInducedArea.bilinearTriv
rw [Trivialization.continuousLinearMap_apply]
dsimp only [ContinuousLinearMap.comp_apply]
rw [Trivialization.continuousLinearMapAt_apply_of_mem (R := ℝ)
(e.continuousLinearMap (RingHom.id ℝ) (Trivial.trivialization M ℝ))
(show x ∈ (e.continuousLinearMap (RingHom.id ℝ) (Trivial.trivialization M ℝ)).baseSet by simpa using hx)]
rw [Trivialization.continuousLinearMap_apply]
dsimp only [ContinuousLinearMap.comp_apply]
rw [Trivialization.continuousLinearMapAt_apply_of_mem (R := ℝ)
(Trivial.trivialization M ℝ) (show x ∈ (Trivial.trivialization M ℝ).baseSet from mem_univ x)]
rfl
have proof_bilinearTriv_pair_44 {E : Type 0} [instLocal1 : NormedAddCommGroup.{0} E] [instLocal2 : NormedSpace.{0, 0} ℝ E] {H : Type u_1} [instLocal4 : TopologicalSpace.{u_1} H] (I : ModelWithCorners.{0, 0, u_1} ℝ E H) {M : Type u_2} [instLocal7 : TopologicalSpace.{u_2} M] [instLocal8 : ChartedSpace.{u_1, u_2} H M] [instLocal9 : IsManifold.{0, 0, u_1, u_2} I (∞ : ℕ∞ω) M] (e : Trivialization E (π E (fun x : M => TangentSpace I x)))
[MemTrivializationAtlas e] {x : M} (hx : x ∈ e.baseSet)
(B : TangentSpace I x →L[ℝ] TangentSpace I x →L[ℝ] ℝ) (v w : E) :
((OAI.CKSInducedArea.bilinearTriv I e) ⟨x,B⟩).2 v w = B (e.symmL ℝ x v) (e.symmL ℝ x w) := by
let := OAI.CKSInducedArea.scalarAtlas (M := M)
unfold OAI.CKSInducedArea.bilinearTriv
rw [Trivialization.continuousLinearMap_apply]
dsimp only [ContinuousLinearMap.comp_apply]
rw [Trivialization.continuousLinearMapAt_apply_of_mem (R := ℝ)
(e.continuousLinearMap (RingHom.id ℝ) (Trivial.trivialization M ℝ))
(show x ∈ (e.continuousLinearMap (RingHom.id ℝ) (Trivial.trivialization M ℝ)).baseSet by simpa using hx)]
rw [Trivialization.continuousLinearMap_apply]
dsimp only [ContinuousLinearMap.comp_apply]
rw [Trivialization.continuousLinearMapAt_apply_of_mem (R := ℝ)
(Trivial.trivialization M ℝ) (show x ∈ (Trivial.trivialization M ℝ).baseSet from mem_univ x)]
rfl
have proof_inducedInner_smooth_40 {H3 : Type u_1} [instLocal1 : TopologicalSpace.{u_1} H3] {I3 : ModelWithCorners.{0, 0, u_1} ℝ OAI.CKSInducedArea.E3 H3} {N : Type u_2} [instLocal4 : TopologicalSpace.{u_2} N] [instLocal5 : ChartedSpace.{u_1, u_2} H3 N] [instLocal6 : IsManifold.{0, 0, u_1, u_2} I3 (∞ : ℕ∞ω) N] {S : Type u_3} [instLocal8 : TopologicalSpace.{u_3} S] [instLocal9 : ChartedSpace.{0, u_3} OAI.CKSInducedArea.E2 S] [instLocal10 : IsManifold.{0, 0, 0, u_3} OAI.CKSInducedArea.I2 (∞ : ℕ∞ω) S] (g : OAI.CKSInducedArea.Smooth3 (I3 := I3) (N := N)) {φ : S → N}
(hφ : ContMDiff OAI.CKSInducedArea.I2 I3 ∞ φ) :
ContMDiff OAI.CKSInducedArea.I2 (OAI.CKSInducedArea.I2.prod 𝓘(ℝ,OAI.CKSInducedArea.Bil2)) ∞
(fun x => TotalSpace.mk' OAI.CKSInducedArea.Bil2 x (OAI.CKSInducedArea.inducedInner g φ x)) := by
let := OAI.CKSInducedArea.real_id_isometric
let := OAI.CKSInducedArea.real_smulCommClass
intro x
let e := trivializationAt OAI.CKSInducedArea.E2 (TangentSpace OAI.CKSInducedArea.I2) x
let e' := trivializationAt OAI.CKSInducedArea.E3 (TangentSpace I3) (φ x)
have hx : x ∈ e.baseSet := mem_baseSet_trivializationAt OAI.CKSInducedArea.E2 (TangentSpace OAI.CKSInducedArea.I2) x
have hx' : φ x ∈ e'.baseSet := mem_baseSet_trivializationAt OAI.CKSInducedArea.E3 (TangentSpace I3) (φ x)
apply (contMDiffAt_section (𝕜 := ℝ) (B := S)
(E := fun z : S => TangentSpace OAI.CKSInducedArea.I2 z →L[ℝ] TangentSpace OAI.CKSInducedArea.I2 z →L[ℝ] ℝ)
(IB := OAI.CKSInducedArea.I2) (n := ∞) (F := OAI.CKSInducedArea.Bil2)
(s := OAI.CKSInducedArea.inducedInner g φ) x).mpr
change ContMDiffAt OAI.CKSInducedArea.I2 𝓘(ℝ,OAI.CKSInducedArea.Bil2) ∞
(fun y : S => ((OAI.CKSInducedArea.bilinearTriv OAI.CKSInducedArea.I2 e)
⟨y, OAI.CKSInducedArea.inducedInner g φ y⟩).2) x
have hB := (contMDiffAt_section (𝕜 := ℝ) (B := N)
(E := fun z : N => TangentSpace I3 z →L[ℝ] TangentSpace I3 z →L[ℝ] ℝ)
(IB := I3) (n := ∞) (F := OAI.CKSInducedArea.Bil3) (s := g.inner) (φ x)).mp (g.contMDiff (φ x))
change ContMDiffAt I3 𝓘(ℝ,OAI.CKSInducedArea.Bil3) ∞
(fun y : N => ((OAI.CKSInducedArea.bilinearTriv I3 e') ⟨y, g.inner y⟩).2) (φ x) at hB
have hD := (hφ x).mfderiv_const (show (∞ : ℕ∞ω) + 1 ≤ ∞ by simp [*])
apply (proof_bilinearComp_smoothAt_42 (hB.comp x (hφ x)) hD).congr_of_eventuallyEq
filter_upwards [e.open_baseSet.mem_nhds hx,
hφ.continuous.continuousAt.preimage_mem_nhds (e'.open_baseSet.mem_nhds hx')] with y hy hy'
ext v w
rw [proof_bilinearTriv_pair_43 OAI.CKSInducedArea.I2 e hy]
rw [ContinuousLinearMap.bilinearComp_apply]
dsimp only [Function.comp_apply]
rw [proof_bilinearTriv_pair_44 I3 e' hy']
dsimp [OAI.CKSInducedArea.inducedInner,inTangentCoordinates,ContinuousLinearMap.inCoordinates]
rw [e'.symmL_continuousLinearMapAt hy', e'.symmL_continuousLinearMapAt hy']
rfl
{
inner := OAI.CKSInducedArea.inducedInner g φ
symm := proof_inducedInner_symm_37 g φ
pos := proof_inducedInner_pos_38 g φ hinj
isVonNBounded := proof_inducedInner_bounded_39 g φ hinj
contMDiff := proof_inducedInner_smooth_40 g hφ
}
end OAI.CKSInducedArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSEmbeddingDerivative
open Set Manifold Bundle Filter Function
open scoped ContDiff Topology
abbrev E := EuclideanSpace ℝ (Fin 3)
local instance halfSpaceDimension_neZero : NeZero (3 : ℕ) := inferInstance
abbrev H := @EuclideanHalfSpace 3 OAI.CKSEmbeddingDerivative.halfSpaceDimension_neZero
abbrev I := @modelWithCornersEuclideanHalfSpace 3 OAI.CKSEmbeddingDerivative.halfSpaceDimension_neZero
end OAI.CKSEmbeddingDerivative
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSFullCutArea
open Set Manifold Bundle Function
open scoped ContDiff Topology
open CKSGeometricCuts (OuterDomain)
open CKSBoundarySurface
variable {N : Type u} [TopologicalSpace N] [ChartedSpace H3 N]
instance domainTopology (D : OAI.CKSGeometricCuts.OuterDomain N) : TopologicalSpace D.Carrier := D.topology
instance domainCharts (D : OAI.CKSGeometricCuts.OuterDomain N) : ChartedSpace OAI.CKSBoundarySurface.H3 D.Carrier := D.charts
instance domainSmooth (D : OAI.CKSGeometricCuts.OuterDomain N) : IsManifold OAI.CKSBoundarySurface.I3 ∞ D.Carrier := D.smooth
abbrev Surface (D : OAI.CKSGeometricCuts.OuterDomain N) := OAI.CKSBoundarySurface.Boundary D.Carrier
def cutInclusion (D : OAI.CKSGeometricCuts.OuterDomain N) : OAI.CKSFullCutArea.Surface D → N := D.inclusion ∘ Subtype.val
end OAI.CKSFullCutArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSFullCutArea
open Set Manifold Bundle Function
open scoped ContDiff Topology
open CKSGeometricCuts (OuterDomain)
open CKSBoundarySurface
variable {N : Type u} [TopologicalSpace N] [ChartedSpace H3 N]
variable [@IsManifold ℝ _ E3 _ _ H3
(@instTopologicalSpaceEuclideanHalfSpace 3 CKSBoundarySurface.halfSpaceDimension_neZero) I3 ∞ N _ _]
instance domainSecondCountable [SecondCountableTopology N] (D : OAI.CKSGeometricCuts.OuterDomain N) :
SecondCountableTopology D.Carrier := D.embedding.isEmbedding.secondCountableTopology
abbrev SmoothMetric :=
letI := OAI.CKSBoundarySurface.halfSpaceDimension_neZero
letI := OAI.CKSInducedArea.tangent_vectorBundle OAI.CKSBoundarySurface.I3 (M := N)
ContMDiffRiemannianMetric OAI.CKSBoundarySurface.I3 ∞ OAI.CKSBoundarySurface.E3 (fun x : N => TangentSpace OAI.CKSBoundarySurface.I3 x)
def cutMetric (g : OAI.CKSFullCutArea.SmoothMetric (N := N)) (D : OAI.CKSGeometricCuts.OuterDomain N) :
ContMDiffRiemannianMetric OAI.CKSBoundarySurface.I2 ∞ OAI.CKSBoundarySurface.E2 (fun x : OAI.CKSFullCutArea.Surface D => TangentSpace OAI.CKSBoundarySurface.I2 x) :=
have proof_boundary_chart_zero_49 {M : Type u} [instLocal1 : TopologicalSpace.{u} M] [instLocal2 : ChartedSpace.{0, u} OAI.CKSIntrinsicGeometry.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSIntrinsicGeometry.I3 1 M] (x y : M) (hy : y ∈ (extChartAt OAI.CKSIntrinsicGeometry.I3 x).source)
(hS : y ∈ OAI.CKSIntrinsicGeometry.I3.boundary M) : (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 = 0 := by
have hychart : y ∈ (chartAt OAI.CKSIntrinsicGeometry.H3 x).source := by simpa using hy
have hyrange : extChartAt OAI.CKSIntrinsicGeometry.I3 x y ∈ range OAI.CKSIntrinsicGeometry.I3 :=
(extChartAt_target_subset_range x) ((extChartAt OAI.CKSIntrinsicGeometry.I3 x).map_source hy)
have hnonneg : 0 ≤ (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 := by
simpa only [OAI.CKSIntrinsicGeometry.I3, range_modelWithCornersEuclideanHalfSpace, mem_ofPred_eq] using hyrange
have hnot : ¬OAI.CKSIntrinsicGeometry.I3.IsInteriorPoint y :=
(OAI.CKSIntrinsicGeometry.I3.isBoundaryPoint_iff_not_isInteriorPoint y).mp hS
have hle : (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 ≤ 0 := by
by_contra h
have hpos : 0 < (extChartAt OAI.CKSIntrinsicGeometry.I3 x y) 0 := lt_of_not_ge h
have hint : extChartAt OAI.CKSIntrinsicGeometry.I3 x y ∈ interior (range OAI.CKSIntrinsicGeometry.I3) := by
simpa only [OAI.CKSIntrinsicGeometry.I3, interior_range_modelWithCornersEuclideanHalfSpace, mem_ofPred_eq] using hpos
apply hnot
apply (OAI.CKSIntrinsicGeometry.I3.isInteriorPoint_iff_of_mem_atlas one_ne_zero (chart_mem_atlas OAI.CKSIntrinsicGeometry.H3 x) hychart).mpr
exact (chartAt OAI.CKSIntrinsicGeometry.H3 x).mem_interior_extend_target ((chartAt OAI.CKSIntrinsicGeometry.H3 x).map_source hychart) hint
exact le_antisymm hle hnonneg
have proof_liftPlane_zero_6 (z : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.liftPlane z 0 = 0 := rfl
have proof_liftPlane_succ_7 (z : OAI.CKSBoundarySurface.E2) (i : Fin 2) : OAI.CKSBoundarySurface.liftPlane z i.succ = z i := rfl
have proof_I3_liftHalf_23 (z : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.I3 (OAI.CKSBoundarySurface.liftHalf z) = OAI.CKSBoundarySurface.liftPlane z := rfl
have proof_boundary_iff_zero_50 {M : Type u} [instLocal1 : TopologicalSpace.{u} M] [instLocal2 : ChartedSpace.{0, u} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x y : M) (hy : y ∈ (chartAt OAI.CKSBoundarySurface.H3 x).source) :
y ∈ OAI.CKSBoundarySurface.I3.boundary M ↔ (OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 x y)) 0 = 0 := by
constructor
· exact proof_boundary_chart_zero_49 x y (by simp [*])
· intro hz
apply (OAI.CKSBoundarySurface.I3.isBoundaryPoint_iff_not_isInteriorPoint y).mpr
intro hi
have hin := (OAI.CKSBoundarySurface.I3.isInteriorPoint_iff_of_mem_atlas
(by simp [*] : (∞ : ℕ∞ω) ≠ 0) (chart_mem_atlas OAI.CKSBoundarySurface.H3 x) hy).mp hi
have hr := (chartAt OAI.CKSBoundarySurface.H3 x).interior_extend_target_subset_interior_range hin
have hp : 0 < (OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 x y)) 0 := by
simpa only [OAI.CKSBoundarySurface.I3, interior_range_modelWithCornersEuclideanHalfSpace, mem_ofPred_eq,
OpenPartialHomeomorph.extend_coe, Function.comp_apply] using hr
rw [hz] at hp
exact (lt_irrefl 0) hp
have proof_chart_inverse_boundary_51 {M : Type u} [instLocal1 : TopologicalSpace.{u} M] [instLocal2 : ChartedSpace.{0, u} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : M) {z : OAI.CKSBoundarySurface.E2}
(hz : OAI.CKSBoundarySurface.liftHalf z ∈ (chartAt OAI.CKSBoundarySurface.H3 x).target) :
(chartAt OAI.CKSBoundarySurface.H3 x).symm (OAI.CKSBoundarySurface.liftHalf z) ∈ OAI.CKSBoundarySurface.I3.boundary M := by
apply (proof_boundary_iff_zero_50 x _ ((chartAt OAI.CKSBoundarySurface.H3 x).map_target hz)).mpr
rw [(chartAt OAI.CKSBoundarySurface.H3 x).right_inv hz]
rfl
have proof_boundaryInverse_mem_52 {M : Type u} [instLocal1 : TopologicalSpace.{u} M] [instLocal2 : ChartedSpace.{0, u} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : OAI.CKSBoundarySurface.Boundary M) {z : OAI.CKSBoundarySurface.E2}
(hz : OAI.CKSBoundarySurface.liftHalf z ∈ (chartAt OAI.CKSBoundarySurface.H3 x.val).target) :
(chartAt OAI.CKSBoundarySurface.H3 x.val).symm (OAI.CKSBoundarySurface.liftHalf z) ∈ OAI.CKSBoundarySurface.Boundary M :=
proof_chart_inverse_boundary_51 x.val hz
have proof_boundaryInverse_val_53 {M : Type u} [instLocal1 : TopologicalSpace.{u} M] [instLocal2 : ChartedSpace.{0, u} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : OAI.CKSBoundarySurface.Boundary M) {z : OAI.CKSBoundarySurface.E2}
(hz : OAI.CKSBoundarySurface.liftHalf z ∈ (chartAt OAI.CKSBoundarySurface.H3 x.val).target) :
(OAI.CKSBoundarySurface.boundaryInverse x z).val = (chartAt OAI.CKSBoundarySurface.H3 x.val).symm (OAI.CKSBoundarySurface.liftHalf z) := by
simp only [OAI.CKSBoundarySurface.boundaryInverse,dite_eq_left hz]
have proof_boundaryChart_symm_val_54 {M : Type u} [instLocal1 : TopologicalSpace.{u} M] [instLocal2 : ChartedSpace.{0, u} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : OAI.CKSBoundarySurface.Boundary M) {z : OAI.CKSBoundarySurface.E2} (hz : z ∈ (OAI.CKSBoundarySurface.boundaryChart x).target) :
((OAI.CKSBoundarySurface.boundaryChart x).symm z).val = (chartAt OAI.CKSBoundarySurface.H3 x.val).symm (OAI.CKSBoundarySurface.liftHalf z) :=
proof_boundaryInverse_val_53 x hz
have proof_inclusion_chart_formula_55 {M : Type u} [instLocal1 : TopologicalSpace.{u} M] [instLocal2 : ChartedSpace.{0, u} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : OAI.CKSBoundarySurface.Boundary M) {z : OAI.CKSBoundarySurface.E2}
(hz : z ∈ (OAI.CKSBoundarySurface.boundaryChart x).target) :
writtenInExtChartAt OAI.CKSBoundarySurface.I2 OAI.CKSBoundarySurface.I3 x (Subtype.val : OAI.CKSBoundarySurface.Boundary M → M) z = OAI.CKSBoundarySurface.liftPlane z := by
change OAI.CKSBoundarySurface.I3 (chartAt OAI.CKSBoundarySurface.H3 x.val (((OAI.CKSBoundarySurface.boundaryChart x).symm z).val)) = _
rw [proof_boundaryChart_symm_val_54 x hz, (chartAt OAI.CKSBoundarySurface.H3 x.val).right_inv hz]
rfl
have proof_inclusion_chart_eventually_56 {M : Type u} [instLocal1 : TopologicalSpace.{u} M] [instLocal2 : ChartedSpace.{0, u} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : OAI.CKSBoundarySurface.Boundary M) :
writtenInExtChartAt OAI.CKSBoundarySurface.I2 OAI.CKSBoundarySurface.I3 x (Subtype.val : OAI.CKSBoundarySurface.Boundary M → M) =ᶠ[𝓝 (extChartAt OAI.CKSBoundarySurface.I2 x x)] OAI.CKSBoundarySurface.liftPlane := by
have ht : (OAI.CKSBoundarySurface.boundaryChart x).target ∈ 𝓝 (extChartAt OAI.CKSBoundarySurface.I2 x x) :=
(OAI.CKSBoundarySurface.boundaryChart x).open_target.mem_nhds ((OAI.CKSBoundarySurface.boundaryChart x).map_source (mem_chart_source OAI.CKSBoundarySurface.E2 x))
filter_upwards [ht] with z hz
exact proof_inclusion_chart_formula_55 x hz
have proof_inclusion_smooth_57 {M : Type u} [instLocal1 : TopologicalSpace.{u} M] [instLocal2 : ChartedSpace.{0, u} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] : ContMDiff OAI.CKSBoundarySurface.I2 OAI.CKSBoundarySurface.I3 ∞ (Subtype.val : OAI.CKSBoundarySurface.Boundary M → M) := by
intro x
apply contMDiffAt_iff.mpr
refine ⟨continuous_subtype_val.continuousAt, ?_⟩
exact ((OAI.CKSBoundarySurface.liftPlane.contDiff.contDiffAt).congr_of_eventuallyEq (proof_inclusion_chart_eventually_56 x)).contDiffWithinAt
have proof_cutInclusion_smooth_47 {N : Type u} [instLocal1 : TopologicalSpace.{u} N] [instLocal2 : ChartedSpace.{0, u} OAI.CKSBoundarySurface.H3 N] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) N] [IsManifold OAI.CKSBoundarySurface.I3 ∞ N] (D : OAI.CKSGeometricCuts.OuterDomain N) :
ContMDiff OAI.CKSBoundarySurface.I2 OAI.CKSBoundarySurface.I3 ∞ (OAI.CKSFullCutArea.cutInclusion D) :=
D.embedding.isImmersion.contMDiff.comp proof_inclusion_smooth_57
have proof_extended_chart_derivative_injective_58 {M : Type u} [instLocal1 : TopologicalSpace.{u} M] [instLocal2 : ChartedSpace.{0, u} OAI.CKSEmbeddingDerivative.H M] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSEmbeddingDerivative.I (∞ : ℕ∞ω) M] [IsManifold OAI.CKSEmbeddingDerivative.I ∞ M] (e : OpenPartialHomeomorph M OAI.CKSEmbeddingDerivative.H)
(he : e ∈ IsManifold.maximalAtlas OAI.CKSEmbeddingDerivative.I ∞ M) {x : M} (hx : x ∈ e.source) :
Injective (mfderiv OAI.CKSEmbeddingDerivative.I 𝓘(ℝ,OAI.CKSEmbeddingDerivative.E) (e.extend OAI.CKSEmbeddingDerivative.I) x) := by
have hed : e.MDifferentiable OAI.CKSEmbeddingDerivative.I OAI.CKSEmbeddingDerivative.I := ⟨
(contMDiffOn_of_mem_maximalAtlas he).mdifferentiableOn (by simp),
(contMDiffOn_symm_of_mem_maximalAtlas he).mdifferentiableOn (by simp)⟩
have hcomp := mfderiv_comp x OAI.CKSEmbeddingDerivative.I.mdifferentiableAt ((hed.1 x hx).mdifferentiableAt (e.open_source.mem_nhds hx))
change mfderiv OAI.CKSEmbeddingDerivative.I 𝓘(ℝ,OAI.CKSEmbeddingDerivative.E) (e.extend OAI.CKSEmbeddingDerivative.I) x = _ at hcomp
rw [OAI.CKSEmbeddingDerivative.I.hasMFDerivAt.mfderiv] at hcomp
change mfderiv OAI.CKSEmbeddingDerivative.I 𝓘(ℝ,OAI.CKSEmbeddingDerivative.E) (e.extend OAI.CKSEmbeddingDerivative.I) x = mfderiv OAI.CKSEmbeddingDerivative.I OAI.CKSEmbeddingDerivative.I e x at hcomp
rw [hcomp]
exact hed.mfderiv_injective hx
have proof_immersion_derivative_injective_59 {M : Type u} {N : Type u} [instLocal2 : TopologicalSpace.{u} M] [instLocal3 : ChartedSpace.{0, u} OAI.CKSEmbeddingDerivative.H M] [instLocal4 : IsManifold.{0, 0, 0, u} OAI.CKSEmbeddingDerivative.I (∞ : ℕ∞ω) M] [instLocal5 : TopologicalSpace.{u} N] [instLocal6 : ChartedSpace.{0, u} OAI.CKSEmbeddingDerivative.H N] [instLocal7 : IsManifold.{0, 0, 0, u} OAI.CKSEmbeddingDerivative.I (∞ : ℕ∞ω) N] [IsManifold OAI.CKSEmbeddingDerivative.I ∞ N] {f : M → N} {x : M}
(h : IsImmersionAt OAI.CKSEmbeddingDerivative.I OAI.CKSEmbeddingDerivative.I ∞ f x) : Injective (mfderiv OAI.CKSEmbeddingDerivative.I OAI.CKSEmbeddingDerivative.I f x) := by
let A : OAI.CKSEmbeddingDerivative.E →L[ℝ] OAI.CKSEmbeddingDerivative.E := (ContinuousLinearMap.fst ℝ OAI.CKSEmbeddingDerivative.E h.complement).comp
h.equiv.symm.toContinuousLinearMap
let L : N → OAI.CKSEmbeddingDerivative.E := A ∘ (h.codChart.extend OAI.CKSEmbeddingDerivative.I)
have hL : ContMDiffAt OAI.CKSEmbeddingDerivative.I 𝓘(ℝ,OAI.CKSEmbeddingDerivative.E) ∞ L (f x) :=
A.contMDiff.contMDiffAt.comp _
(h.codChart.contMDiffAt_extend h.codChart_mem_maximalAtlas h.mem_codChart_source)
have heq : (L ∘ f) =ᶠ[𝓝 x] h.domChart.extend OAI.CKSEmbeddingDerivative.I := by
filter_upwards [h.domChart.open_source.mem_nhds h.mem_domChart_source] with y hy
have hy' : y ∈ (h.domChart.extend OAI.CKSEmbeddingDerivative.I).source := by simpa only [OpenPartialHomeomorph.extend_source] using hy
have hw := h.writtenInCharts ((h.domChart.extend OAI.CKSEmbeddingDerivative.I).map_source hy')
dsimp only [Function.comp_apply] at hw
rw [(h.domChart.extend OAI.CKSEmbeddingDerivative.I).left_inv hy'] at hw
change A ((h.codChart.extend OAI.CKSEmbeddingDerivative.I) (f y)) = _
rw [hw]
simp only [A,ContinuousLinearMap.comp_apply,ContinuousLinearEquiv.coe_coe,
ContinuousLinearEquiv.symm_apply_apply ]
rfl
have hdL := hL.mdifferentiableAt (by simp)
have hdf := h.contMDiffAt.mdifferentiableAt (by simp)
have hder := heq.mfderiv_eq (I := OAI.CKSEmbeddingDerivative.I) (I' := 𝓘(ℝ,OAI.CKSEmbeddingDerivative.E))
rw [mfderiv_comp x hdL hdf] at hder
change _ = mfderiv OAI.CKSEmbeddingDerivative.I 𝓘(ℝ,OAI.CKSEmbeddingDerivative.E) (h.domChart.extend OAI.CKSEmbeddingDerivative.I) x at hder
have hinj := proof_extended_chart_derivative_injective_58 h.domChart h.domChart_mem_maximalAtlas
h.mem_domChart_source
rw [← hder] at hinj
have hi' : Injective ((mfderiv OAI.CKSEmbeddingDerivative.I 𝓘(ℝ,OAI.CKSEmbeddingDerivative.E) L (f x)) ∘ (mfderiv OAI.CKSEmbeddingDerivative.I OAI.CKSEmbeddingDerivative.I f x)) := hinj
exact hi'.of_comp
have proof_smooth_embedding_derivative_injective_60 {M : Type u} {N : Type u} [instLocal2 : TopologicalSpace.{u} M] [instLocal3 : ChartedSpace.{0, u} OAI.CKSEmbeddingDerivative.H M] [instLocal4 : IsManifold.{0, 0, 0, u} OAI.CKSEmbeddingDerivative.I (∞ : ℕ∞ω) M] [instLocal5 : TopologicalSpace.{u} N] [instLocal6 : ChartedSpace.{0, u} OAI.CKSEmbeddingDerivative.H N] [instLocal7 : IsManifold.{0, 0, 0, u} OAI.CKSEmbeddingDerivative.I (∞ : ℕ∞ω) N] {f : M → N} (h : IsSmoothEmbedding OAI.CKSEmbeddingDerivative.I OAI.CKSEmbeddingDerivative.I ∞ f) :
∀ x, Injective (mfderiv OAI.CKSEmbeddingDerivative.I OAI.CKSEmbeddingDerivative.I f x) := fun x =>
proof_immersion_derivative_injective_59 (h.isImmersion.isImmersionAt x)
have proof_inclusion_hasMFDeriv_61 {M : Type u} [instLocal1 : TopologicalSpace.{u} M] [instLocal2 : ChartedSpace.{0, u} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : OAI.CKSBoundarySurface.Boundary M) :
HasMFDerivAt OAI.CKSBoundarySurface.I2 OAI.CKSBoundarySurface.I3 (Subtype.val : OAI.CKSBoundarySurface.Boundary M → M) x OAI.CKSBoundarySurface.liftPlane := by
refine ⟨continuous_subtype_val.continuousAt, ?_⟩
exact (OAI.CKSBoundarySurface.liftPlane.hasFDerivAt.congr_of_eventuallyEq (proof_inclusion_chart_eventually_56 x)).hasFDerivWithinAt
have proof_dropPlane_apply_31 (z : OAI.CKSBoundarySurface.E3) (i : Fin 2) : OAI.CKSBoundarySurface.dropPlane z i = z i.succ := rfl
have proof_drop_lift_28 (z : OAI.CKSBoundarySurface.E2) : OAI.CKSBoundarySurface.dropPlane (OAI.CKSBoundarySurface.liftPlane z) = z := by ext i; rfl
have proof_inclusion_mfderiv_injective_62 {M : Type u} [instLocal1 : TopologicalSpace.{u} M] [instLocal2 : ChartedSpace.{0, u} OAI.CKSBoundarySurface.H3 M] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) M] (x : OAI.CKSBoundarySurface.Boundary M) :
Injective (mfderiv OAI.CKSBoundarySurface.I2 OAI.CKSBoundarySurface.I3 (Subtype.val : OAI.CKSBoundarySurface.Boundary M → M) x) := by
rw [(proof_inclusion_hasMFDeriv_61 x).mfderiv]
intro a b h
change OAI.CKSBoundarySurface.liftPlane a = OAI.CKSBoundarySurface.liftPlane b at h
have hh : OAI.CKSBoundarySurface.dropPlane (OAI.CKSBoundarySurface.liftPlane a) = OAI.CKSBoundarySurface.dropPlane (OAI.CKSBoundarySurface.liftPlane b) := congrArg OAI.CKSBoundarySurface.dropPlane h
change (a : OAI.CKSBoundarySurface.E2) = (b : OAI.CKSBoundarySurface.E2)
exact (proof_drop_lift_28 a).symm.trans (hh.trans (proof_drop_lift_28 b))
have proof_cutInclusion_derivative_injective_48 {N : Type u} [instLocal1 : TopologicalSpace.{u} N] [instLocal2 : ChartedSpace.{0, u} OAI.CKSBoundarySurface.H3 N] [instLocal3 : IsManifold.{0, 0, 0, u} OAI.CKSBoundarySurface.I3 (∞ : ℕ∞ω) N] [IsManifold OAI.CKSBoundarySurface.I3 ∞ N] (D : OAI.CKSGeometricCuts.OuterDomain N) (x : OAI.CKSFullCutArea.Surface D) :
Injective (mfderiv OAI.CKSBoundarySurface.I2 OAI.CKSBoundarySurface.I3 (OAI.CKSFullCutArea.cutInclusion D) x) := by
unfold OAI.CKSFullCutArea.cutInclusion
rw [mfderiv_comp x ((D.embedding.isImmersion.contMDiff x.val).mdifferentiableAt (by simp [*]))
((proof_inclusion_smooth_57 x).mdifferentiableAt (by simp [*]))]
· change Injective ((mfderiv OAI.CKSBoundarySurface.I3 OAI.CKSBoundarySurface.I3 D.inclusion x.val) ∘
(mfderiv OAI.CKSBoundarySurface.I2 OAI.CKSBoundarySurface.I3 (Subtype.val : OAI.CKSFullCutArea.Surface D → D.Carrier) x))
exact (proof_smooth_embedding_derivative_injective_60 D.embedding x.val).comp
(proof_inclusion_mfderiv_injective_62 x)
@OAI.CKSInducedArea.inducedMetric OAI.CKSBoundarySurface.H3
(@instTopologicalSpaceEuclideanHalfSpace 3 OAI.CKSBoundarySurface.halfSpaceDimension_neZero)
OAI.CKSBoundarySurface.I3 N _ _ _ (OAI.CKSFullCutArea.Surface D) _ _ _ g (OAI.CKSFullCutArea.cutInclusion D) (proof_cutInclusion_smooth_47 D)
(proof_cutInclusion_derivative_injective_48 D)
end OAI.CKSFullCutArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSFullCutArea
open Set Manifold Bundle MeasureTheory
open scoped ContDiff Topology ENNReal
open CKSGeometricCuts (OuterDomain)
open CKSBoundarySurface
variable {N : Type u} [TopologicalSpace N] [ChartedSpace H3 N]
[@IsManifold ℝ _ E3 _ _ H3
(@instTopologicalSpaceEuclideanHalfSpace 3 CKSBoundarySurface.halfSpaceDimension_neZero) I3 ∞ N _ _]
[SecondCountableTopology N]
def area (g : OAI.CKSFullCutArea.SmoothMetric (N := N)) (D : OAI.CKSGeometricCuts.OuterDomain N) : ℝ≥0∞ :=
letI : MeasurableSpace (OAI.CKSFullCutArea.Surface D) := borel (OAI.CKSFullCutArea.Surface D)
letI : BorelSpace (OAI.CKSFullCutArea.Surface D) := ⟨rfl⟩
OAI.CKSSurfaceVolume.riemannianVolume (OAI.CKSFullCutArea.cutMetric g D).toContinuousRiemannianMetric univ
def minEnclosingArea (g : OAI.CKSFullCutArea.SmoothMetric (N := N)) : ℝ≥0∞ :=
⨅ D : OAI.CKSGeometricCuts.OuterDomain N, OAI.CKSFullCutArea.area g D
end OAI.CKSFullCutArea
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSIntrinsicConstraints
open Set Manifold Bundle MeasureTheory CKSLorentz CKSMetricGluing
open scoped ContDiff Topology ENNReal
variable {M : Type*} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
[MeasurableSpace M] [BorelSpace M] [SecondCountableTopology M]
local instance eight_atLeastTwo : Nat.AtLeastTwo 8 := inferInstance
end OAI.CKSIntrinsicConstraints
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSIntrinsicConstraints
open Set Manifold Bundle MeasureTheory CKSLorentz CKSMetricGluing
open scoped ContDiff Topology ENNReal
variable {M : Type u_1} [TopologicalSpace M] [ChartedSpace H M] [IsManifold I ∞ M]
[MeasurableSpace M] [BorelSpace M] [SecondCountableTopology M]
attribute [local instance] eight_atLeastTwo
def IntegrableConstraints (g : OAI.CKSMetricGluing.SmoothMetric OAI.CKSIntrinsicConstraints.I (M := M)) (K : OAI.CKSMetricGluing.InnerField OAI.CKSIntrinsicConstraints.I (M := M)) : Prop :=
∃ μ j : M → ℝ, Continuous μ ∧ Continuous j ∧
Integrable μ (OAI.CKSIntrinsicVolume.riemannianVolume g.toContinuousRiemannianMetric) ∧
Integrable j (OAI.CKSIntrinsicVolume.riemannianVolume g.toContinuousRiemannianMetric) ∧
(∀ x, 0 ≤ j x ∧ j x ≤ μ x) ∧
∀ x (c : OAI.CKSIntrinsicConstraints.ConstraintChart g.inner K x),
8 * Real.pi * μ x = c.energy ∧ 8 * Real.pi * j x = c.momentumNorm
end OAI.CKSIntrinsicConstraints
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSourceExterior
open Set Manifold Bundle CKSLorentz CKSMetricGluing CKSSpatialManifold CKSGeometricCuts CKSSphericalHarmonics
open scoped ContDiff Topology
variable {N : Type u} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
local instance id_invPair (Scalar : Type u_1) [Semiring Scalar] :
RingHomInvPair (RingHom.id Scalar) (RingHom.id Scalar) := inferInstance
local instance source_manifold_one : IsManifold OAI.CKSGeometricCuts.I3 1 N := inferInstance
end OAI.CKSSourceExterior
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSourceExterior
open Set Manifold Bundle CKSLorentz CKSMetricGluing CKSSpatialManifold CKSGeometricCuts CKSSphericalHarmonics
open scoped ContDiff Topology
variable {N : Type u} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
attribute [local instance] CKSGeometricCuts.halfSpaceDimension_neZero id_invPair source_manifold_one
local instance source_trivialization_isLinear (point : N) :
(trivializationAt OAI.CKSLorentz.E (TangentSpace OAI.CKSGeometricCuts.I3) point).IsLinear ℝ := inferInstance
end OAI.CKSSourceExterior
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSourceExterior
open Set Manifold Bundle CKSLorentz CKSMetricGluing CKSSpatialManifold CKSGeometricCuts CKSSphericalHarmonics
open scoped ContDiff Topology
variable {N : Type u} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
attribute [local instance] CKSGeometricCuts.halfSpaceDimension_neZero id_invPair source_manifold_one
attribute [local instance] source_trivialization_isLinear
def Orientable : Prop :=
∃ o : ∀ x : N, Orientation ℝ (TangentSpace OAI.CKSGeometricCuts.I3 x) (Fin 3), ∀ x : N,
let e := trivializationAt OAI.CKSLorentz.E (TangentSpace OAI.CKSGeometricCuts.I3) x
∃ V : Set N, IsOpen V ∧ ∃ hx : x ∈ V, ∃ hV : V ⊆ e.baseSet,
∀ y (hy : y ∈ V),
let atPoint : TangentSpace OAI.CKSGeometricCuts.I3 y ≃L[ℝ] OAI.CKSLorentz.E := e.continuousLinearEquivAt ℝ y (hV hy)
let atBase : TangentSpace OAI.CKSGeometricCuts.I3 x ≃L[ℝ] OAI.CKSLorentz.E := e.continuousLinearEquivAt ℝ x (hV hx)
Orientation.map (Fin 3) atPoint.toLinearEquiv (o y) =
Orientation.map (Fin 3) atBase.toLinearEquiv (o x)
structure CoordinateEnd where
radius : ℝ
radius_pos : 0 < radius
domain : Set N
isOpen : IsOpen domain
coordinate : N → OAI.CKSLorentz.E
inverse : OAI.CKSLorentz.E → N
smooth : ContMDiffOn OAI.CKSGeometricCuts.I3 𝓘(ℝ,OAI.CKSLorentz.E) ∞ coordinate domain
inverse_smooth : ContMDiffOn 𝓘(ℝ,OAI.CKSLorentz.E) OAI.CKSGeometricCuts.I3 ∞ inverse {y | radius < ‖y‖}
mapsTo : ∀ x ∈ domain, radius < ‖coordinate x‖
left_inverse : ∀ x ∈ domain, inverse (coordinate x) = x
right_inverse : ∀ y, radius < ‖y‖ → inverse y ∈ domain ∧ coordinate (inverse y) = y
closed_far_side : ∀ r, radius < r → IsClosed {x : N | x ∈ domain ∧ r ≤ ‖coordinate x‖}
compact_inner_side : ∀ r, radius < r → IsCompact {x : N | x ∉ domain ∨ ‖coordinate x‖ ≤ r}
structure CKSData (g : OAI.CKSMetricGluing.SmoothMetric OAI.CKSGeometricCuts.I3 (M := N)) (K : OAI.CKSMetricGluing.InnerField OAI.CKSGeometricCuts.I3 (M := N)) where
chart : OAI.CKSSourceExterior.CoordinateEnd (N := N)
metricPerturbation : OAI.CKSLorentz.SpatialTensor
tensorPerturbation : OAI.CKSLorentz.SpatialTensor
metric_smooth : ∀ y, chart.radius < ‖y‖ → ContDiffAt ℝ ∞ metricPerturbation y
tensor_smooth : ∀ y, chart.radius < ‖y‖ → ContDiffAt ℝ ∞ tensorPerturbation y
represents : ∀ x ∈ chart.domain,
g.inner x = OAI.CKSSpatialManifold.endInner OAI.CKSGeometricCuts.I3 chart.coordinate (OAI.CKSLorentz.sourceSpatial metricPerturbation) x ∧
K x = OAI.CKSSpatialManifold.endInner OAI.CKSGeometricCuts.I3 chart.coordinate (OAI.CKSLorentz.sourceSpatial tensorPerturbation) x
massAspect : OAI.CKSLorentz.Sphere → ℝ
aspect_smooth : OAI.CKSSphericalHarmonics.SmoothSphere massAspect
patches : OAI.CKSLorentz.Sphere → OAI.CKSLorentz.CKSTensorPatch
covers : ∀ n, n ∈ (patches n).patch.sphereRegion (patches n).region
realizes : ∀ n, (patches n).Realizes metricPerturbation tensorPerturbation
aspect_eq : ∀ n, (patches n).RepresentsMassAspect massAspect
end OAI.CKSSourceExterior
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSchwarzschild
open Set Filter Manifold Bundle MeasureTheory
open scoped ContDiff Topology InnerProductSpace ENNReal
open CKSBoundarySurface CKSFullCutArea CKSSurfaceVolume
instance exteriorConnected : ConnectedSpace OAI.CKSSchwarzschild.Exterior := by
have : ConnectedSpace OAI.CKSSchwarzschild.Radial := isConnected_iff_connectedSpace.mp isConnected_Ici
have : ConnectedSpace OAI.CKSSchwarzschild.Sphere := isConnected_iff_connectedSpace.mp
(isConnected_sphere (by rw [← Module.finrank_eq_rank]; norm_num : 1 < Module.rank ℝ E3) (0 : OAI.CKSBoundarySurface.E3) (by norm_num : (0 : ℝ) ≤ 1))
infer_instance
end OAI.CKSSchwarzschild
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSourceExterior
open Set Manifold Bundle MeasureTheory CKSGeometricCuts CKSMetricGluing
open scoped ContDiff
variable {N : Type u_1} [TopologicalSpace N] [ChartedSpace H3 N]
[@IsManifold ℝ _ E3 _ _ H3
(@instTopologicalSpaceEuclideanHalfSpace 3 CKSGeometricCuts.halfSpaceDimension_neZero) I3 ∞ N _ _]
[SecondCountableTopology N]
def cutArea (g : @OAI.CKSMetricGluing.SmoothMetric OAI.CKSGeometricCuts.E3 _ _ OAI.CKSGeometricCuts.H3
(@instTopologicalSpaceEuclideanHalfSpace 3 OAI.CKSGeometricCuts.halfSpaceDimension_neZero)
OAI.CKSGeometricCuts.I3 N _ _ _) (D : OAI.CKSGeometricCuts.OuterDomain N) : ℝ :=
(OAI.CKSFullCutArea.area g D).toReal
def minimumEnclosingArea (g : @OAI.CKSMetricGluing.SmoothMetric OAI.CKSGeometricCuts.E3 _ _ OAI.CKSGeometricCuts.H3
(@instTopologicalSpaceEuclideanHalfSpace 3 OAI.CKSGeometricCuts.halfSpaceDimension_neZero)
OAI.CKSGeometricCuts.I3 N _ _ _) : ℝ :=
⨅ D : OAI.CKSGeometricCuts.OuterDomain N, OAI.CKSSourceExterior.cutArea g D
def constraintsIntegrable (g : OAI.CKSMetricGluing.SmoothMetric OAI.CKSGeometricCuts.I3 (M := N)) (K : OAI.CKSMetricGluing.InnerField OAI.CKSGeometricCuts.I3 (M := N)) : Prop :=
letI : MeasurableSpace N := borel N
letI : BorelSpace N := ⟨rfl⟩
OAI.CKSIntrinsicConstraints.IntegrableConstraints g K
end OAI.CKSSourceExterior
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSchwarzschild
open Manifold Bundle Set Filter
open scoped ContDiff Topology InnerProductSpace
open CKSBoundarySurface
variable {V : Type u_1} [NormedAddCommGroup V] [NormedSpace ℝ V]
def covariantPair (g :
letI := OAI.CKSLorentz.real_continuousAdd
letI := OAI.CKSLorentz.real_continuousConstSMul
letI := OAI.CKSLorentz.real_smulCommClass
V → V →L[ℝ] V →L[ℝ] ℝ) (N : V → V)
(x a b : V) : ℝ :=
letI := OAI.CKSLorentz.two_atLeastTwo
g x (fderiv ℝ N x a) b + 1/2 *
(fderiv ℝ (fun y => g y (N x) b) x a +
fderiv ℝ (fun y => g y a b) x (N x) -
fderiv ℝ (fun y => g y a (N x)) x b)
end OAI.CKSSchwarzschild
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSchwarzschild
open Set Filter Manifold Bundle
open scoped ContDiff Topology InnerProductSpace
open CKSBoundarySurface
abbrev Spacetime := ℝ × OAI.CKSBoundarySurface.E3
abbrev SpacetimeBilinear :=
letI := OAI.CKSLorentz.real_continuousAdd
letI := OAI.CKSLorentz.real_smulCommClass
letI := OAI.CKSLorentz.real_continuousConstSMul
OAI.CKSSchwarzschild.Spacetime →L[ℝ] OAI.CKSSchwarzschild.Spacetime →L[ℝ] ℝ
def timeForm : OAI.CKSSchwarzschild.Spacetime →L[ℝ] ℝ := ContinuousLinearMap.fst ℝ ℝ OAI.CKSBoundarySurface.E3
def spacePart : OAI.CKSSchwarzschild.Spacetime →L[ℝ] OAI.CKSBoundarySurface.E3 := ContinuousLinearMap.snd ℝ ℝ OAI.CKSBoundarySurface.E3
def radiusForm (x : OAI.CKSBoundarySurface.E3) : OAI.CKSSchwarzschild.Spacetime →L[ℝ] ℝ := (OAI.CKSSchwarzschild.euclideanForm (OAI.CKSSchwarzschild.radialUnit x)).comp OAI.CKSSchwarzschild.spacePart
def schwarzschildH (m r : ℝ) : ℝ :=
letI := OAI.CKSLorentz.two_atLeastTwo
1-2*m/r
local instance spacetimeDual_continuousAdd : ContinuousAdd (OAI.CKSSchwarzschild.Spacetime →L[ℝ] ℝ) := inferInstance
local instance spacetimeDual_isTopologicalAddGroup : IsTopologicalAddGroup (OAI.CKSSchwarzschild.Spacetime →L[ℝ] ℝ) :=
inferInstance
local instance spacetimeDual_smulCommClass : SMulCommClass ℝ ℝ (OAI.CKSSchwarzschild.Spacetime →L[ℝ] ℝ) := inferInstance
local instance spacetimeDual_continuousConstSMul : ContinuousConstSMul ℝ (OAI.CKSSchwarzschild.Spacetime →L[ℝ] ℝ) :=
inferInstance
local instance spacetimeDual_isScalarTower : IsScalarTower ℝ ℝ (OAI.CKSSchwarzschild.Spacetime →L[ℝ] ℝ) := inferInstance
local instance spacetimeDual_continuousSMul : ContinuousSMul ℝ (OAI.CKSSchwarzschild.Spacetime →L[ℝ] ℝ) := inferInstance
def advancedMetric (m : ℝ) (z : OAI.CKSSchwarzschild.Spacetime) : OAI.CKSSchwarzschild.SpacetimeBilinear :=
letI := OAI.CKSLorentz.real_continuousAdd
letI := OAI.CKSLorentz.real_continuousConstSMul
letI := OAI.CKSLorentz.real_smulCommClass
letI := OAI.CKSLorentz.real_isTopologicalAddGroup
letI := OAI.CKSSchwarzschild.spacetimeDual_continuousAdd
letI := OAI.CKSSchwarzschild.spacetimeDual_isTopologicalAddGroup
letI := OAI.CKSSchwarzschild.spacetimeDual_smulCommClass
letI := OAI.CKSSchwarzschild.spacetimeDual_continuousConstSMul
letI := OAI.CKSSchwarzschild.spacetimeDual_isScalarTower
letI := OAI.CKSSchwarzschild.spacetimeDual_continuousSMul
letI := OAI.CKSSpatialManifold.real_id_compTriple
letI := OAI.CKSSpatialManifold.real_id_isometric
let spatialMetric : OAI.CKSSchwarzschild.SpacetimeBilinear := OAI.CKSSchwarzschild.euclideanForm.bilinearComp OAI.CKSSchwarzschild.spacePart OAI.CKSSchwarzschild.spacePart
(-OAI.CKSSchwarzschild.schwarzschildH m ‖z.2‖) • OAI.CKSSchwarzschild.timeForm.smulRight OAI.CKSSchwarzschild.timeForm +
OAI.CKSSchwarzschild.timeForm.smulRight (OAI.CKSSchwarzschild.radiusForm z.2) + (OAI.CKSSchwarzschild.radiusForm z.2).smulRight OAI.CKSSchwarzschild.timeForm +
spatialMetric -
(OAI.CKSSchwarzschild.radiusForm z.2).smulRight (OAI.CKSSchwarzschild.radiusForm z.2)
def advancedSlope (m r : ℝ) : ℝ := (OAI.CKSSchwarzschild.lapse m r*(OAI.CKSSchwarzschild.lapse m r-OAI.CKSSchwarzschild.velocity m r))⁻¹
def advancedTime (m r : ℝ) : ℝ :=
letI := OAI.CKSLorentz.two_atLeastTwo
∫ s in (2*m)..r, OAI.CKSSchwarzschild.advancedSlope m s
def advancedGraph (m : ℝ) (x : OAI.CKSBoundarySurface.E3) : OAI.CKSSchwarzschild.Spacetime := (OAI.CKSSchwarzschild.advancedTime m ‖x‖,x)
def futureNormal (m : ℝ) (z : OAI.CKSSchwarzschild.Spacetime) : OAI.CKSSchwarzschild.Spacetime :=
((OAI.CKSSchwarzschild.lapse m ‖z.2‖-OAI.CKSSchwarzschild.velocity m ‖z.2‖)⁻¹,OAI.CKSSchwarzschild.velocity m ‖z.2‖ • OAI.CKSSchwarzschild.radialUnit z.2)
def graphTangent (m : ℝ) (x a : OAI.CKSBoundarySurface.E3) : OAI.CKSSchwarzschild.Spacetime :=
letI := OAI.CKSLorentz.two_atLeastTwo
letI : Inner ℝ OAI.CKSBoundarySurface.E3 :=
@InnerProductSpace.toInner ℝ OAI.CKSBoundarySurface.E3 _
(PiLp.seminormedAddCommGroup 2 (fun _ : Fin 3 => ℝ))
(PiLp.innerProductSpace (fun _ : Fin 3 => ℝ))
(OAI.CKSSchwarzschild.advancedSlope m ‖x‖ * ⟪OAI.CKSSchwarzschild.radialUnit x,a⟫_ℝ,a)
end OAI.CKSSchwarzschild
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSchwarzschild
open Set Filter Manifold Bundle CKSSpatialManifold CKSMetricGluing CKSLorentz
open scoped ContDiff Topology InnerProductSpace
open CKSBoundarySurface
structure HorizonRegularGraph (m : ℝ) : Prop where
ambient_smooth : ∀ z : OAI.CKSSchwarzschild.Spacetime, z.2 ≠ 0 → ContDiffAt ℝ ∞ (OAI.CKSSchwarzschild.advancedMetric m) z
ambient_symmetric : ∀ z a b, OAI.CKSSchwarzschild.advancedMetric m z a b = OAI.CKSSchwarzschild.advancedMetric m z b a
ambient_nondegenerate : ∀ z : OAI.CKSSchwarzschild.Spacetime, z.2 ≠ 0 → ∀ a : OAI.CKSSchwarzschild.Spacetime,
(∀ b, OAI.CKSSchwarzschild.advancedMetric m z a b = 0) → a = 0
graph_smooth_across : ∀ x : OAI.CKSBoundarySurface.E3, m < ‖x‖ → ContDiffAt ℝ ∞ (OAI.CKSSchwarzschild.advancedGraph m) x
graph_injective : Function.Injective (OAI.CKSSchwarzschild.advancedGraph m)
graph_derivative : ∀ x : OAI.CKSBoundarySurface.E3, m < ‖x‖ → ∀ a,
fderiv ℝ (OAI.CKSSchwarzschild.advancedGraph m) x a = OAI.CKSSchwarzschild.graphTangent m x a
horizon_time : OAI.CKSSchwarzschild.advancedTime m (2*m) = 0
horizon_slope : OAI.CKSSchwarzschild.advancedSlope m (2*m) = 1/2
induced_metric : ∀ x : OAI.CKSBoundarySurface.E3, 2*m ≤ ‖x‖ → ∀ a b,
OAI.CKSSchwarzschild.advancedMetric m (OAI.CKSSchwarzschild.advancedGraph m x) (OAI.CKSSchwarzschild.graphTangent m x a) (OAI.CKSSchwarzschild.graphTangent m x b) = OAI.CKSSchwarzschild.cartMetric m x a b
normal_unit : ∀ x : OAI.CKSBoundarySurface.E3, 2*m ≤ ‖x‖ →
OAI.CKSSchwarzschild.advancedMetric m (OAI.CKSSchwarzschild.advancedGraph m x) (OAI.CKSSchwarzschild.futureNormal m (OAI.CKSSchwarzschild.advancedGraph m x))
(OAI.CKSSchwarzschild.futureNormal m (OAI.CKSSchwarzschild.advancedGraph m x)) = -1
normal_orthogonal : ∀ x : OAI.CKSBoundarySurface.E3, 2*m ≤ ‖x‖ → ∀ a,
OAI.CKSSchwarzschild.advancedMetric m (OAI.CKSSchwarzschild.advancedGraph m x) (OAI.CKSSchwarzschild.futureNormal m (OAI.CKSSchwarzschild.advancedGraph m x)) (OAI.CKSSchwarzschild.graphTangent m x a) = 0
future_facing : ∀ x : OAI.CKSBoundarySurface.E3, 2*m ≤ ‖x‖ → 0 < (OAI.CKSSchwarzschild.futureNormal m (OAI.CKSSchwarzschild.advancedGraph m x)).1
induced_second_form : ∀ x : OAI.CKSBoundarySurface.E3, 2*m ≤ ‖x‖ → ∀ a b,
OAI.CKSSchwarzschild.covariantPair (OAI.CKSSchwarzschild.advancedMetric m) (OAI.CKSSchwarzschild.futureNormal m) (OAI.CKSSchwarzschild.advancedGraph m x)
(OAI.CKSSchwarzschild.graphTangent m x a) (OAI.CKSSchwarzschild.graphTangent m x b) = OAI.CKSSchwarzschild.cartTensor m x a b
end OAI.CKSSchwarzschild
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSchwarzschild
open Set Filter Manifold Bundle
open scoped ContDiff Topology InnerProductSpace
open CKSBoundarySurface
attribute [local instance] CKSInducedArea.real_continuousAdd CKSInducedArea.real_smulCommClass CKSInducedArea.real_continuousConstSMul CKSBoundarySurface.two_atLeastTwo
local instance frameCovectorModule : Module ℝ (OAI.CKSBoundarySurface.E3 →L[ℝ] ℝ) :=
@ContinuousLinearMap.module ℝ ℝ ℝ _ _ _ OAI.CKSBoundarySurface.E3 _ _ _ ℝ _ _ _ _
OAI.CKSInducedArea.real_smulCommClass OAI.CKSInducedArea.real_continuousConstSMul
(RingHom.id ℝ) OAI.CKSInducedArea.real_continuousAdd
end OAI.CKSSchwarzschild
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSchwarzschild
open Set Filter Manifold Bundle
open scoped ContDiff Topology InnerProductSpace
open CKSBoundarySurface
attribute [local instance] CKSInducedArea.real_continuousAdd CKSInducedArea.real_smulCommClass CKSInducedArea.real_continuousConstSMul CKSBoundarySurface.two_atLeastTwo
attribute [local instance] OAI.CKSSchwarzschild.frameCovectorModule
def christoffelPair (g : OAI.CKSBoundarySurface.E3 → OAI.CKSBoundarySurface.E3 →L[ℝ] OAI.CKSBoundarySurface.E3 →L[ℝ] ℝ) (x a b c : OAI.CKSBoundarySurface.E3) : ℝ :=
1/2 * (fderiv ℝ (fun z => g z b c) x a +
fderiv ℝ (fun z => g z a c) x b - fderiv ℝ (fun z => g z a b) x c)
def firstFrame (g : OAI.CKSBoundarySurface.E3 →L[ℝ] OAI.CKSBoundarySurface.E3 →L[ℝ] ℝ) (T : OAI.CKSBoundarySurface.E2 →L[ℝ] OAI.CKSBoundarySurface.E3) : OAI.CKSBoundarySurface.E2 :=
(Real.sqrt (g (T (EuclideanSpace.single 0 1)) (T (EuclideanSpace.single 0 1))))⁻¹ •
EuclideanSpace.single 0 1
def secondResidual (g : OAI.CKSBoundarySurface.E3 →L[ℝ] OAI.CKSBoundarySurface.E3 →L[ℝ] ℝ) (T : OAI.CKSBoundarySurface.E2 →L[ℝ] OAI.CKSBoundarySurface.E3) : OAI.CKSBoundarySurface.E2 :=
EuclideanSpace.single 1 1 -
(g (T (EuclideanSpace.single 0 1)) (T (EuclideanSpace.single 1 1)) /
g (T (EuclideanSpace.single 0 1)) (T (EuclideanSpace.single 0 1))) • EuclideanSpace.single 0 1
def secondFrame (g : OAI.CKSBoundarySurface.E3 →L[ℝ] OAI.CKSBoundarySurface.E3 →L[ℝ] ℝ) (T : OAI.CKSBoundarySurface.E2 →L[ℝ] OAI.CKSBoundarySurface.E3) : OAI.CKSBoundarySurface.E2 :=
(Real.sqrt (g (T (OAI.CKSSchwarzschild.secondResidual g T)) (T (OAI.CKSSchwarzschild.secondResidual g T))))⁻¹ • OAI.CKSSchwarzschild.secondResidual g T
end OAI.CKSSchwarzschild
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSourceExterior
open Manifold CKSGeometricCuts
open scoped ContDiff
variable {N : Type*} [TopologicalSpace N] [ChartedSpace H3 N]
local instance halfSpace_locallyCompact : LocallyCompactSpace OAI.CKSGeometricCuts.H3 := by
change LocallyCompactSpace {x : EuclideanSpace ℝ (Fin 3) // 0 ≤ x 0}
have hc : IsClosed {x : EuclideanSpace ℝ (Fin 3) | 0 ≤ x 0} :=
isClosed_le continuous_const (by fun_prop)
exact hc.locallyCompactSpace
end OAI.CKSSourceExterior
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSourceExterior
open Manifold CKSGeometricCuts
open scoped ContDiff
variable {N : Type u_1} [TopologicalSpace N] [ChartedSpace H3 N]
local instance manifold_regular [IsManifold OAI.CKSGeometricCuts.I3 ∞ N] [T2Space N] : T3Space N := by
let := OAI.CKSSourceExterior.halfSpace_locallyCompact
let : LocallyCompactSpace N := ChartedSpace.locallyCompactSpace OAI.CKSGeometricCuts.H3 N
infer_instance
end OAI.CKSSourceExterior
end
noncomputable section
universe u v w u_1 u_2 u_3 u_4 u_5 u_6
namespace OAI.CKSSourceExterior
open Set Manifold Bundle Filter CKSLorentz CKSMetricGluing CKSSpatialManifold CKSGeometricCuts
open CKSADM (Symbol)
open scoped ContDiff Topology
variable {N : Type u_1} [TopologicalSpace N] [ChartedSpace H3 N] [IsManifold I3 ∞ N]
[T2Space N] [SecondCountableTopology N] [ConnectedSpace N]
attribute [local instance] manifold_regular
end OAI.CKSSourceExterior
end
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.