File: Mathlib/Geometry/Manifold/DerivationBundle.lean

full_name: smoothFunctionsAlgebra
code: instance smoothFunctionsAlgebra : Algebra 𝕜 C^∞⟮I, M; 𝕜⟯ 
goal: Algebra 𝕜 C^⊤⟮I, M; 𝓘(𝕜, 𝕜), 𝕜⟯

full_name: smooth_functions_tower
code: instance smooth_functions_tower : IsScalarTower 𝕜 C^∞⟮I, M; 𝕜⟯ C^∞⟮I, M; 𝕜⟯ 
goal: IsScalarTower 𝕜 C^⊤⟮I, M; 𝓘(𝕜, 𝕜), 𝕜⟯ C^⊤⟮I, M; 𝓘(𝕜, 𝕜), 𝕜⟯

full_name: PointedSmoothMap
code: /-- Type synonym, introduced to put a different `SMul` action on `C^n⟮I, M; 𝕜⟯`
which is defined as `f • r = f(x) * r`. -/
@[nolint unusedArguments]
def PointedSmoothMap (_ : M) 
goal: M → Type (max 0 u_4 u_1)

full_name: Derivation._aux_Mathlib_Geometry_Manifold_DerivationBundle___unexpand_PointedSmoothMap_1
code: @[inherit_doc]
scoped[Derivation] notation "C^" n "⟮" I ", " M "; " 𝕜 "⟯⟨" x "⟩" => PointedSmoothMap 𝕜 I M n x
goal: Lean.PrettyPrinter.Unexpander

full_name: Derivation.«_aux_Mathlib_Geometry_Manifold_DerivationBundle___macroRules_Derivation_termC^_⟮_,_;_⟯⟨_⟩_1»
code: @[inherit_doc]
scoped[Derivation] notation "C^" n "⟮" I ", " M "; " 𝕜 "⟯⟨" x "⟩" => PointedSmoothMap 𝕜 I M n x
goal: Lean.Macro

full_name: PointedSmoothMap.instFunLike
code: instance instFunLike {x : M} : FunLike C^∞⟮I, M; 𝕜⟯⟨x⟩ M 𝕜 
goal: FunLike C^⊤⟮I, M; 𝕜⟯⟨x⟩ M 𝕜

full_name: PointedSmoothMap.instCommRingTopENat
code: instance {x : M} : CommRing C^∞⟮I, M; 𝕜⟯⟨x⟩ 
goal: CommRing C^⊤⟮I, M; 𝕜⟯⟨x⟩

full_name: PointedSmoothMap.instAlgebraTopENat
code: instance {x : M} : Algebra 𝕜 C^∞⟮I, M; 𝕜⟯⟨x⟩ 
goal: Algebra 𝕜 C^⊤⟮I, M; 𝕜⟯⟨x⟩

full_name: PointedSmoothMap.instInhabitedTopENat
code: instance {x : M} : Inhabited C^∞⟮I, M; 𝕜⟯⟨x⟩ 
goal: Inhabited C^⊤⟮I, M; 𝕜⟯⟨x⟩

full_name: PointedSmoothMap.instAlgebraTopENatContMDiffMapModelWithCornersSelf
code: instance {x : M} : Algebra C^∞⟮I, M; 𝕜⟯⟨x⟩ C^∞⟮I, M; 𝕜⟯ 
goal: Algebra C^⊤⟮I, M; 𝕜⟯⟨x⟩ C^⊤⟮I, M; 𝓘(𝕜, 𝕜), 𝕜⟯

full_name: PointedSmoothMap.instIsScalarTowerTopENatContMDiffMapModelWithCornersSelf
code: instance {x : M} : IsScalarTower 𝕜 C^∞⟮I, M; 𝕜⟯⟨x⟩ C^∞⟮I, M; 𝕜⟯ 
goal: IsScalarTower 𝕜 C^⊤⟮I, M; 𝕜⟯⟨x⟩ C^⊤⟮I, M; 𝓘(𝕜, 𝕜), 𝕜⟯

full_name: PointedSmoothMap.evalAlgebra
code: /-- `SmoothMap.evalRingHom` gives rise to an algebra structure of `C^∞⟮I, M; 𝕜⟯` on `𝕜`. -/
instance evalAlgebra {x : M} : Algebra C^∞⟮I, M; 𝕜⟯⟨x⟩ 𝕜 
goal: Algebra C^⊤⟮I, M; 𝕜⟯⟨x⟩ 𝕜

full_name: PointedSmoothMap.eval
code: /-- With the `evalAlgebra` algebra structure evaluation is actually an algebra morphism. -/
def eval (x : M) : C^∞⟮I, M; 𝕜⟯ →ₐ[C^∞⟮I, M; 𝕜⟯⟨x⟩] 𝕜 
goal: C^⊤⟮I, M; 𝓘(𝕜, 𝕜), 𝕜⟯ →ₐ[C^⊤⟮I, M; 𝕜⟯⟨x⟩] 𝕜

full_name: PointedSmoothMap.smul_def
code: theorem smul_def (x : M) (f : C^∞⟮I, M; 𝕜⟯⟨x⟩) (k : 𝕜) : f • k = f x * k 
goal: f • k = f x * k

full_name: PointedSmoothMap.instIsScalarTowerTopENat
code: instance (x : M) : IsScalarTower 𝕜 C^∞⟮I, M; 𝕜⟯⟨x⟩ 𝕜 
goal: IsScalarTower 𝕜 C^⊤⟮I, M; 𝕜⟯⟨x⟩ 𝕜

full_name: PointDerivation
code: /-- The derivations at a point of a manifold. Some regard this as a possible definition of the
tangent space -/
abbrev PointDerivation (x : M) 
goal: Type (max (max u_4 u_1) u_1)

full_name: SmoothFunction.evalAt
code: /-- Evaluation at a point gives rise to a `C^∞⟮I, M; 𝕜⟯`-linear map between `C^∞⟮I, M; 𝕜⟯` and `𝕜`.
 -/
def SmoothFunction.evalAt (x : M) : C^∞⟮I, M; 𝕜⟯ →ₗ[C^∞⟮I, M; 𝕜⟯⟨x⟩] 𝕜 
goal: C^⊤⟮I, M; 𝓘(𝕜, 𝕜), 𝕜⟯ →ₗ[C^⊤⟮I, M; 𝕜⟯⟨x⟩] 𝕜

full_name: Derivation.evalAt
code: /-- The evaluation at a point as a linear map. -/
def evalAt (x : M) : Derivation 𝕜 C^∞⟮I, M; 𝕜⟯ C^∞⟮I, M; 𝕜⟯ →ₗ[𝕜] PointDerivation I x 
goal: Derivation 𝕜 C^⊤⟮I, M; 𝓘(𝕜, 𝕜), 𝕜⟯ C^⊤⟮I, M; 𝓘(𝕜, 𝕜), 𝕜⟯ →ₗ[𝕜] PointDerivation I x

full_name: Derivation.evalAt_apply
code: theorem evalAt_apply (x : M) : evalAt x X f = (X f) x 
goal: ((Derivation.evalAt x) X) f = (X f) x

full_name: hfdifferential
code: /-- The heterogeneous differential as a linear map. Instead of taking a function as an argument this
differential takes `h : f x = y`. It is particularly handy to deal with situations where the points
on where it has to be evaluated are equal but not definitionally equal. -/
def hfdifferential {f : C^∞⟮I, M; I', M'⟯} {x : M} {y : M'} (h : f x = y) :
    PointDerivation I x →ₗ[𝕜] PointDerivation I' y 
goal: PointDerivation I x →ₗ[𝕜] PointDerivation I' y

full_name: fdifferential
code: /-- The homogeneous differential as a linear map. -/
def fdifferential (f : C^∞⟮I, M; I', M'⟯) (x : M) :
    PointDerivation I x →ₗ[𝕜] PointDerivation I' (f x) 
goal: PointDerivation I x →ₗ[𝕜] PointDerivation I' (f x)

full_name: Manifold.«_aux_Mathlib_Geometry_Manifold_DerivationBundle___macroRules_Manifold_term𝒅_1»
code: scoped[Manifold] notation "𝒅" => fdifferential
goal: Lean.Macro

full_name: Manifold._aux_Mathlib_Geometry_Manifold_DerivationBundle___unexpand_fdifferential_1
code: scoped[Manifold] notation "𝒅" => fdifferential
goal: Lean.PrettyPrinter.Unexpander

full_name: Manifold.«_aux_Mathlib_Geometry_Manifold_DerivationBundle___macroRules_Manifold_term𝒅ₕ_1»
code: scoped[Manifold] notation "𝒅ₕ" => hfdifferential
goal: Lean.Macro

full_name: Manifold._aux_Mathlib_Geometry_Manifold_DerivationBundle___unexpand_hfdifferential_1
code: scoped[Manifold] notation "𝒅ₕ" => hfdifferential
goal: Lean.PrettyPrinter.Unexpander

full_name: apply_fdifferential
code: @[simp]
theorem apply_fdifferential (f : C^∞⟮I, M; I', M'⟯) {x : M} (v : PointDerivation I x)
    (g : C^∞⟮I', M'; 𝕜⟯) : 𝒅 f x v g = v (g.comp f) 
goal: ((𝒅 f x) v) g = v (g.comp f)

full_name: apply_hfdifferential
code: @[simp]
theorem apply_hfdifferential {f : C^∞⟮I, M; I', M'⟯} {x : M} {y : M'} (h : f x = y)
    (v : PointDerivation I x) (g : C^∞⟮I', M'; 𝕜⟯) : 𝒅ₕ h v g = 𝒅 f x v g 
goal: ((𝒅ₕ h) v) g = ((𝒅 f x) v) g

full_name: fdifferential_comp
code: @[simp]
theorem fdifferential_comp (g : C^∞⟮I', M'; I'', M''⟯) (f : C^∞⟮I, M; I', M'⟯) (x : M) :
    𝒅 (g.comp f) x = (𝒅 g (f x)).comp (𝒅 f x) 
goal: 𝒅 (g.comp f) x = 𝒅 g (f x) ∘ₗ 𝒅 f x