Bundled smooth maps #
Defines the type DSmoothMap X Y of smooth maps between diffeological spaces.
This file contains only very basic API; more advanced constructions are done in
CatDG.Diffeology.Constructions.
Adapted from Mathlib.Topology.ContinuousMap.Def and Mathlib.Topology.ContinuousMap.Basic.
TODO #
- move this into a folder together with
CatDG.Diffeology.Algebra.DSmoothMapand the relevant constructions fromCatDG.Diffeology.Constructions. - maybe introduce a notation like
C∞(X, Y)orX →C∞ YforDSmoothMap X Y?
structure
DSmoothMap
(X : Type u_1)
(Y : Type u_2)
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
:
Type (max u_1 u_2)
The type of bundled smooth maps between diffeological spaces X and Y.
- toFun : X → Y
The map
X → Y. The map
X → Yis smooth.
Instances For
class
DSmoothMapClass
(F : Type u_1)
(X : outParam (Type u_2))
(Y : outParam (Type u_3))
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[FunLike F X Y]
:
DSmoothMapClass F X Y states that F is a type of smooth maps X → Y.
- map_dsmooth (f : F) : DSmooth ⇑f
Smoothness.
Instances
def
DSmoothMapClass.toDSmoothMap
{F : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[FunLike F X Y]
[DSmoothMapClass F X Y]
(f : F)
:
DSmoothMap X Y
Coerce a bundled morphism with a DSmoothMapClass instance to a DSmoothMap.
Instances For
instance
DSmoothMapClass.instCoeTCDSmoothMap
{F : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[FunLike F X Y]
[DSmoothMapClass F X Y]
:
CoeTC F (DSmoothMap X Y)
Equations
instance
DSmoothMap.instFunLike
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
:
FunLike (DSmoothMap X Y) X Y
Equations
- DSmoothMap.instFunLike = { coe := DSmoothMap.toFun, coe_injective' := ⋯ }
instance
DSmoothMap.instDSmoothMapClass
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
:
DSmoothMapClass (DSmoothMap X Y) X Y
@[simp]
theorem
DSmoothMap.toFun_eq_coe
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
{f : DSmoothMap X Y}
:
instance
DSmoothMap.instCanLiftForallCoeDSmooth
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
:
CanLift (X → Y) (DSmoothMap X Y) DFunLike.coe DSmooth
def
DSmoothMap.Simps.apply
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
(f : DSmoothMap X Y)
:
X → Y
See note [custom simps projection].
Equations
- DSmoothMap.Simps.apply f = ⇑f
Instances For
@[simp]
theorem
DSmoothMap.coe_coe
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
{F : Type u_5}
[FunLike F X Y]
[DSmoothMapClass F X Y]
(f : F)
:
theorem
DSmoothMap.coe_apply
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
{F : Type u_5}
[FunLike F X Y]
[DSmoothMapClass F X Y]
(f : F)
(x : X)
:
theorem
DSmoothMap.ext
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
{f g : DSmoothMap X Y}
(h : ∀ (x : X), f x = g x)
:
theorem
DSmoothMap.ext_iff
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
{f g : DSmoothMap X Y}
:
theorem
DSmoothMap.coe_injective
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
:
@[simp]
theorem
DSmoothMap.coe_mk
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
(f : X → Y)
(hf : DSmooth f)
:
@[simp]
@[simp]
def
DSmoothMap.const
(X : Type u_1)
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
(y : Y)
:
DSmoothMap X Y
The constant map as a continuous map.
Equations
- DSmoothMap.const X y = { toFun := fun (x : X) => y, dsmooth := ⋯ }
Instances For
@[simp]
theorem
DSmoothMap.coe_const
(X : Type u_1)
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
{y : Y}
:
@[simp]
theorem
DSmoothMap.const_apply
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
(y : Y)
(x : X)
:
instance
DSmoothMap.instInhabited
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[Inhabited Y]
:
Inhabited (DSmoothMap X Y)
Equations
- DSmoothMap.instInhabited = { default := DSmoothMap.const X default }
instance
DSmoothMap.instUnique
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[Unique Y]
:
Unique (DSmoothMap X Y)
Equations
- DSmoothMap.instUnique = { toInhabited := DSmoothMap.instInhabited, uniq := ⋯ }
instance
DSmoothMap.instNontrivialOfNonempty
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[Nonempty X]
[Nontrivial Y]
:
Nontrivial (DSmoothMap X Y)
def
DSmoothMap.comp
{X : Type u_1}
{Y : Type u_2}
{Z : Type u_3}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[DiffeologicalSpace Z]
(f : DSmoothMap Y Z)
(g : DSmoothMap X Y)
:
DSmoothMap X Z
The composition of continuous maps, as a continuous map.
Instances For
@[simp]
theorem
DSmoothMap.coe_comp
{X : Type u_1}
{Y : Type u_2}
{Z : Type u_3}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[DiffeologicalSpace Z]
(f : DSmoothMap Y Z)
(g : DSmoothMap X Y)
:
@[simp]
theorem
DSmoothMap.comp_apply
{X : Type u_1}
{Y : Type u_2}
{Z : Type u_3}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[DiffeologicalSpace Z]
(f : DSmoothMap Y Z)
(g : DSmoothMap X Y)
(x : X)
:
@[simp]
theorem
DSmoothMap.comp_assoc
{X : Type u_1}
{Y : Type u_2}
{Z : Type u_3}
{W : Type u_4}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[DiffeologicalSpace Z]
[DiffeologicalSpace W]
(f : DSmoothMap Z W)
(g : DSmoothMap Y Z)
(h : DSmoothMap X Y)
:
@[simp]
theorem
DSmoothMap.id_comp
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
(f : DSmoothMap X Y)
:
@[simp]
theorem
DSmoothMap.comp_id
{X : Type u_1}
{Y : Type u_2}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
(f : DSmoothMap X Y)
:
@[simp]
theorem
DSmoothMap.const_comp
{X : Type u_1}
{Y : Type u_2}
{Z : Type u_3}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[DiffeologicalSpace Z]
(z : Z)
(f : DSmoothMap X Y)
:
@[simp]
theorem
DSmoothMap.comp_const
{X : Type u_1}
{Y : Type u_2}
{Z : Type u_3}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[DiffeologicalSpace Z]
(f : DSmoothMap Y Z)
(y : Y)
:
@[simp]
theorem
DSmoothMap.cancel_right
{X : Type u_1}
{Y : Type u_2}
{Z : Type u_3}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[DiffeologicalSpace Z]
{f₁ f₂ : DSmoothMap Y Z}
{g : DSmoothMap X Y}
(hg : Function.Surjective ⇑g)
:
@[simp]
theorem
DSmoothMap.cancel_left
{X : Type u_1}
{Y : Type u_2}
{Z : Type u_3}
[DiffeologicalSpace X]
[DiffeologicalSpace Y]
[DiffeologicalSpace Z]
{f : DSmoothMap Y Z}
{g₁ g₂ : DSmoothMap X Y}
(hf : Function.Injective ⇑f)
: