diff --git a/src/structured-types.lagda.md b/src/structured-types.lagda.md
index dc561cf951..4dbc5333e7 100644
--- a/src/structured-types.lagda.md
+++ b/src/structured-types.lagda.md
@@ -18,6 +18,7 @@ open import structured-types.conjugation-pointed-types public
open import structured-types.constant-pointed-maps public
open import structured-types.contractible-pointed-types public
open import structured-types.cyclic-types public
+open import structured-types.dependent-extension-h-spaces public
open import structured-types.dependent-products-h-spaces public
open import structured-types.dependent-products-pointed-types public
open import structured-types.dependent-products-wild-monoids public
@@ -27,6 +28,7 @@ open import structured-types.equivalences-pointed-arrows public
open import structured-types.equivalences-retractive-types public
open import structured-types.equivalences-types-equipped-with-automorphisms public
open import structured-types.equivalences-types-equipped-with-endomorphisms public
+open import structured-types.extension-h-spaces public
open import structured-types.faithful-pointed-maps public
open import structured-types.fibers-of-pointed-maps public
open import structured-types.finite-multiplication-magmas public
@@ -54,10 +56,12 @@ open import structured-types.noncoherent-h-spaces public
open import structured-types.opposite-pointed-spans public
open import structured-types.pointed-2-homotopies public
open import structured-types.pointed-cartesian-product-types public
+open import structured-types.pointed-dependent-function-h-spaces public
open import structured-types.pointed-dependent-functions public
open import structured-types.pointed-dependent-pair-types public
open import structured-types.pointed-equivalences public
open import structured-types.pointed-families-of-types public
+open import structured-types.pointed-function-h-spaces public
open import structured-types.pointed-homotopies public
open import structured-types.pointed-isomorphisms public
open import structured-types.pointed-maps public
diff --git a/src/structured-types/central-h-spaces.lagda.md b/src/structured-types/central-h-spaces.lagda.md
index 02606c1864..f51a364c7a 100644
--- a/src/structured-types/central-h-spaces.lagda.md
+++ b/src/structured-types/central-h-spaces.lagda.md
@@ -26,7 +26,7 @@ pointed evaluation map `(A → A) →∗ A`. If the type `A` is
[connected component](foundation.connected-components.md) of `(A ≃ A)` at the
identity [equivalence](foundation-core.equivalences.md). An
{{#concept "evaluative H-space" Agda=is-central-h-space}} is a pointed type such
-that the map `ev_pt : (A ≃ A)_{(id)} → A` is an equivalence.
+that the map `ev_pt : (A ≃ A)_(id) → A` is an equivalence.
## Definition
diff --git a/src/structured-types/dependent-extension-h-spaces.lagda.md b/src/structured-types/dependent-extension-h-spaces.lagda.md
new file mode 100644
index 0000000000..5bb0f3b4ac
--- /dev/null
+++ b/src/structured-types/dependent-extension-h-spaces.lagda.md
@@ -0,0 +1,177 @@
+# Dependent extension H-spaces
+
+```agda
+module structured-types.dependent-extension-h-spaces where
+```
+
+Imports
+
+```agda
+open import foundation.action-on-identifications-binary-functions
+open import foundation.action-on-identifications-functions
+open import foundation.dependent-pair-types
+open import foundation.function-types
+open import foundation.homotopies
+open import foundation.identity-types
+open import foundation.unital-binary-operations
+open import foundation.universe-levels
+
+open import orthogonal-factorization-systems.equality-extensions-dependent-maps
+open import orthogonal-factorization-systems.extensions-dependent-maps
+
+open import structured-types.h-spaces
+open import structured-types.magmas
+open import structured-types.noncoherent-h-spaces
+open import structured-types.pointed-dependent-functions
+open import structured-types.pointed-homotopies
+open import structured-types.pointed-types
+```
+
+
+
+## Idea
+
+Given a map `h : A → B` and a family of [H-spaces](structured-types.h-spaces.md)
+`M i` indexed by `B`, the
+{{#concept "dependent extension H-space" Agda=extension-Π-H-Space}}
+`extension-Π h M` is an H-space consisting of
+[dependent extensions](orthogonal-factorization-systems.extensions-dependent-maps.md)
+of the family of units `η : (i : A) → M (h i)` in `M` along `h`. I.e., maps
+`f : (i : B) → M i` [equipped](foundation.structure.md) with a
+[homotopy](foundation-core.homotopies.md) `f ∘ h ~ η`. The multiplication is
+given pointwise, and on the homotopy by the
+[binary action on identifications](foundation.action-on-identifications-binary-functions.md)
+of the pointwise multiplication operation of `M`.
+
+## Definition
+
+```agda
+module _
+ {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (h : A → B)
+ (M : B → H-Space l3)
+ where
+
+ type-extension-Π-H-Space : UU (l1 ⊔ l2 ⊔ l3)
+ type-extension-Π-H-Space =
+ extension-dependent-map' h (type-H-Space ∘ M) (unit-H-Space ∘ M ∘ h)
+
+ unit-extension-Π-H-Space : type-extension-Π-H-Space
+ unit-extension-Π-H-Space = (unit-H-Space ∘ M , refl-htpy)
+
+ pointed-type-extension-Π-H-Space : Pointed-Type (l1 ⊔ l2 ⊔ l3)
+ pointed-type-extension-Π-H-Space =
+ ( type-extension-Π-H-Space , unit-extension-Π-H-Space)
+
+ mul-extension-Π-H-Space :
+ type-extension-Π-H-Space →
+ type-extension-Π-H-Space →
+ type-extension-Π-H-Space
+ pr1 (mul-extension-Π-H-Space (f , f∗) (g , g∗)) i =
+ mul-H-Space (M i) (f i) (g i)
+ pr2 (mul-extension-Π-H-Space (f , f∗) (g , g∗)) i =
+ ( ap-binary (mul-H-Space (M (h i))) (f∗ i) (g∗ i)) ∙
+ ( left-unit-law-mul-H-Space (M (h i)) (unit-H-Space (M (h i))))
+
+ htpy-left-unit-law-mul-extension-Π-H-Space :
+ (f : type-extension-Π-H-Space) →
+ htpy-extension-dependent-map'
+ ( h)
+ ( unit-H-Space ∘ M ∘ h)
+ ( mul-extension-Π-H-Space unit-extension-Π-H-Space f)
+ ( f)
+ pr1 (htpy-left-unit-law-mul-extension-Π-H-Space (f , f∗)) i =
+ left-unit-law-mul-H-Space (M i) (f i)
+ pr2 (htpy-left-unit-law-mul-extension-Π-H-Space (f , f∗)) i =
+ inv-nat-htpy-id (left-unit-law-mul-H-Space (M (h i))) (f∗ i)
+
+ left-unit-law-mul-extension-Π-H-Space :
+ (f : type-extension-Π-H-Space) →
+ mul-extension-Π-H-Space unit-extension-Π-H-Space f = f
+ left-unit-law-mul-extension-Π-H-Space f =
+ eq-htpy-extension-dependent-map'
+ ( h)
+ ( unit-H-Space ∘ M ∘ h)
+ ( mul-extension-Π-H-Space unit-extension-Π-H-Space f)
+ ( f)
+ ( htpy-left-unit-law-mul-extension-Π-H-Space f)
+
+ htpy-right-unit-law-mul-extension-Π-H-Space' :
+ (f : type-extension-Π-H-Space) →
+ htpy-extension-dependent-map'
+ ( h)
+ ( unit-H-Space ∘ M ∘ h)
+ ( mul-extension-Π-H-Space f unit-extension-Π-H-Space)
+ ( f)
+ pr1 (htpy-right-unit-law-mul-extension-Π-H-Space' (f , f∗)) i =
+ right-unit-law-mul-H-Space (M i) (f i)
+ pr2 (htpy-right-unit-law-mul-extension-Π-H-Space' (f , f∗)) i =
+ equational-reasoning
+ ( ( ap (λ f → mul-H-Space (M (h i)) f (unit-H-Space (M (h i)))) (f∗ i)) ∙
+ ( refl)) ∙
+ ( left-unit-law-mul-H-Space (M (h i)) (unit-H-Space (M (h i))))
+ =
+ ( ap (λ f → mul-H-Space (M (h i)) f (unit-H-Space (M (h i)))) (f∗ i)) ∙
+ ( right-unit-law-mul-H-Space (M (h i)) (unit-H-Space (M (h i))))
+ by ap-binary (_∙_) right-unit (coh-unit-laws-mul-H-Space (M (h i)))
+ =
+ ( right-unit-law-mul-H-Space (M (h i)) (f (h i)) ∙ f∗ i)
+ by inv-nat-htpy-id (right-unit-law-mul-H-Space (M (h i))) (f∗ i)
+
+ right-unit-law-mul-extension-Π-H-Space' :
+ (f : type-extension-Π-H-Space) →
+ mul-extension-Π-H-Space f unit-extension-Π-H-Space = f
+ right-unit-law-mul-extension-Π-H-Space' f =
+ eq-htpy-extension-dependent-map'
+ ( h)
+ ( unit-H-Space ∘ M ∘ h)
+ ( mul-extension-Π-H-Space f unit-extension-Π-H-Space)
+ ( f)
+ ( htpy-right-unit-law-mul-extension-Π-H-Space' f)
+
+ noncoherent-h-space-extension-Π-H-Space : Noncoherent-H-Space (l1 ⊔ l2 ⊔ l3)
+ noncoherent-h-space-extension-Π-H-Space =
+ ( pointed-type-extension-Π-H-Space ,
+ mul-extension-Π-H-Space ,
+ left-unit-law-mul-extension-Π-H-Space ,
+ right-unit-law-mul-extension-Π-H-Space')
+
+ extension-Π-H-Space : H-Space (l1 ⊔ l2 ⊔ l3)
+ extension-Π-H-Space =
+ h-space-Noncoherent-H-Space noncoherent-h-space-extension-Π-H-Space
+
+ right-unit-law-mul-extension-Π-H-Space :
+ (f : type-extension-Π-H-Space) →
+ mul-extension-Π-H-Space f unit-extension-Π-H-Space = f
+ right-unit-law-mul-extension-Π-H-Space =
+ right-unit-law-mul-H-Space extension-Π-H-Space
+
+ is-unital-mul-extension-Π-H-Space : is-unital mul-extension-Π-H-Space
+ is-unital-mul-extension-Π-H-Space = is-unital-mul-H-Space extension-Π-H-Space
+
+ coh-unit-laws-mul-extension-Π-H-Space :
+ coh-unit-laws
+ ( mul-extension-Π-H-Space)
+ ( unit-extension-Π-H-Space)
+ ( left-unit-law-mul-extension-Π-H-Space)
+ ( right-unit-law-mul-extension-Π-H-Space)
+ coh-unit-laws-mul-extension-Π-H-Space =
+ coh-unit-laws-mul-H-Space extension-Π-H-Space
+
+ coherent-unit-laws-mul-extension-Π-H-Space :
+ coherent-unit-laws mul-extension-Π-H-Space unit-extension-Π-H-Space
+ coherent-unit-laws-mul-extension-Π-H-Space =
+ coherent-unit-laws-mul-H-Space extension-Π-H-Space
+
+ is-coherently-unital-mul-extension-Π-H-Space :
+ is-coherently-unital mul-extension-Π-H-Space
+ is-coherently-unital-mul-extension-Π-H-Space =
+ is-coherently-unital-mul-H-Space extension-Π-H-Space
+
+ coherent-unital-mul-extension-Π-H-Space :
+ coherent-unital-mul-Pointed-Type pointed-type-extension-Π-H-Space
+ coherent-unital-mul-extension-Π-H-Space =
+ coherent-unital-mul-H-Space extension-Π-H-Space
+
+ magma-extension-Π-H-Space : Magma (l1 ⊔ l2 ⊔ l3)
+ magma-extension-Π-H-Space = magma-H-Space extension-Π-H-Space
+```
diff --git a/src/structured-types/extension-h-spaces.lagda.md b/src/structured-types/extension-h-spaces.lagda.md
new file mode 100644
index 0000000000..8212add74e
--- /dev/null
+++ b/src/structured-types/extension-h-spaces.lagda.md
@@ -0,0 +1,106 @@
+# Extension H-spaces
+
+```agda
+module structured-types.extension-h-spaces where
+```
+
+Imports
+
+```agda
+open import foundation.identity-types
+open import foundation.unital-binary-operations
+open import foundation.universe-levels
+
+open import structured-types.dependent-extension-h-spaces
+open import structured-types.h-spaces
+open import structured-types.magmas
+open import structured-types.pointed-types
+```
+
+
+
+## Idea
+
+Given a map `h : A → B` and an [H-space](structured-types.h-spaces.md) `M`, the
+{{#concept "extension H-space" Agda=extension-H-Space}} `extension h M` is an
+H-space consisting of
+[extensions](orthogonal-factorization-systems.extensions-maps.md) of the
+constant family of units `η : A → M` in `M` along `h`. I.e., maps `f : B → M`
+[equipped](foundation.structure.md) with a
+[homotopy](foundation-core.homotopies.md) `f ∘ h ~ η`. The multiplication is
+given pointwise, and on the homotopy by the
+[binary action on identifications](foundation.action-on-identifications-binary-functions.md)
+of the multiplication operation of `M`.
+
+## Definition
+
+```agda
+module _
+ {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (h : A → B) (M : H-Space l3)
+ where
+
+ extension-H-Space : H-Space (l1 ⊔ l2 ⊔ l3)
+ extension-H-Space = extension-Π-H-Space h (λ _ → M)
+
+ pointed-type-extension-H-Space : Pointed-Type (l1 ⊔ l2 ⊔ l3)
+ pointed-type-extension-H-Space =
+ pointed-type-H-Space extension-H-Space
+
+ type-extension-H-Space : UU (l1 ⊔ l2 ⊔ l3)
+ type-extension-H-Space =
+ type-H-Space extension-H-Space
+
+ unit-extension-H-Space : type-extension-H-Space
+ unit-extension-H-Space =
+ unit-H-Space extension-H-Space
+
+ mul-extension-H-Space :
+ type-extension-H-Space →
+ type-extension-H-Space →
+ type-extension-H-Space
+ mul-extension-H-Space = mul-H-Space extension-H-Space
+
+ left-unit-law-mul-extension-H-Space :
+ (f : type-extension-H-Space) →
+ mul-extension-H-Space unit-extension-H-Space f = f
+ left-unit-law-mul-extension-H-Space =
+ left-unit-law-mul-H-Space extension-H-Space
+
+ right-unit-law-mul-extension-H-Space :
+ (f : type-extension-H-Space) →
+ mul-extension-H-Space f unit-extension-H-Space = f
+ right-unit-law-mul-extension-H-Space =
+ right-unit-law-mul-H-Space extension-H-Space
+
+ is-unital-mul-extension-H-Space :
+ is-unital mul-extension-H-Space
+ is-unital-mul-extension-H-Space =
+ is-unital-mul-H-Space extension-H-Space
+
+ coh-unit-laws-mul-extension-H-Space :
+ coh-unit-laws
+ ( mul-extension-H-Space)
+ ( unit-extension-H-Space)
+ ( left-unit-law-mul-extension-H-Space)
+ ( right-unit-law-mul-extension-H-Space)
+ coh-unit-laws-mul-extension-H-Space =
+ coh-unit-laws-mul-H-Space extension-H-Space
+
+ coherent-unit-laws-mul-extension-H-Space :
+ coherent-unit-laws mul-extension-H-Space unit-extension-H-Space
+ coherent-unit-laws-mul-extension-H-Space =
+ coherent-unit-laws-mul-H-Space extension-H-Space
+
+ is-coherently-unital-mul-extension-H-Space :
+ is-coherently-unital mul-extension-H-Space
+ is-coherently-unital-mul-extension-H-Space =
+ is-coherently-unital-mul-H-Space extension-H-Space
+
+ coherent-unital-mul-extension-H-Space :
+ coherent-unital-mul-Pointed-Type pointed-type-extension-H-Space
+ coherent-unital-mul-extension-H-Space =
+ coherent-unital-mul-H-Space extension-H-Space
+
+ magma-extension-H-Space : Magma (l1 ⊔ l2 ⊔ l3)
+ magma-extension-H-Space = magma-H-Space extension-H-Space
+```
diff --git a/src/structured-types/pointed-dependent-function-h-spaces.lagda.md b/src/structured-types/pointed-dependent-function-h-spaces.lagda.md
new file mode 100644
index 0000000000..11c05345aa
--- /dev/null
+++ b/src/structured-types/pointed-dependent-function-h-spaces.lagda.md
@@ -0,0 +1,162 @@
+# Pointed dependent function H-spaces
+
+```agda
+module structured-types.pointed-dependent-function-h-spaces where
+```
+
+Imports
+
+```agda
+open import foundation.action-on-identifications-binary-functions
+open import foundation.action-on-identifications-functions
+open import foundation.dependent-pair-types
+open import foundation.function-types
+open import foundation.homotopies
+open import foundation.identity-types
+open import foundation.unital-binary-operations
+open import foundation.universe-levels
+
+open import structured-types.h-spaces
+open import structured-types.magmas
+open import structured-types.noncoherent-h-spaces
+open import structured-types.pointed-dependent-functions
+open import structured-types.pointed-homotopies
+open import structured-types.pointed-types
+```
+
+
+
+## Idea
+
+Given a family of [H-spaces](structured-types.h-spaces.md) `M i` indexed by a
+[pointed type](structured-types.pointed-types.md) `i∗ : I`, the
+{{#concept "pointed dependent functions" Disambiguation="H-space" Agda=pointed-Π-H-Space}}
+`Π∗(i : I), M i` is an H-space consisting of
+[pointed dependent functions](structured-types.pointed-dependent-functions.md)
+taking `i : I` to an element of the underlying type of `M i`, and taking `i∗` to
+the unit of `M i∗`. The multiplication is given pointwise, and at the base point
+by the
+[binary action on identifications](foundation.action-on-identifications-binary-functions.md)
+of the multiplication operation of `M i∗`.
+
+## Definition
+
+```agda
+module _
+ {l1 l2 : Level} (I∗ : Pointed-Type l1)
+ (let I = type-Pointed-Type I∗)
+ (let i∗ = point-Pointed-Type I∗)
+ (M : I → H-Space l2)
+ where
+
+ type-pointed-Π-H-Space : UU (l1 ⊔ l2)
+ type-pointed-Π-H-Space = Π∗ I∗ (type-H-Space ∘ M , unit-H-Space (M i∗))
+
+ unit-pointed-Π-H-Space : type-pointed-Π-H-Space
+ unit-pointed-Π-H-Space = (unit-H-Space ∘ M , refl)
+
+ pointed-type-pointed-Π-H-Space : Pointed-Type (l1 ⊔ l2)
+ pointed-type-pointed-Π-H-Space =
+ ( type-pointed-Π-H-Space , unit-pointed-Π-H-Space)
+
+ mul-pointed-Π-H-Space :
+ type-pointed-Π-H-Space → type-pointed-Π-H-Space → type-pointed-Π-H-Space
+ pr1 (mul-pointed-Π-H-Space (f , f∗) (g , g∗)) i =
+ mul-H-Space (M i) (f i) (g i)
+ pr2 (mul-pointed-Π-H-Space (f , f∗) (g , g∗)) =
+ ( ap-binary (mul-H-Space (M i∗)) f∗ g∗) ∙
+ ( left-unit-law-mul-H-Space (M i∗) (unit-H-Space (M i∗)))
+
+ pointed-htpy-left-unit-law-mul-pointed-Π-H-Space :
+ (f : type-pointed-Π-H-Space) →
+ mul-pointed-Π-H-Space unit-pointed-Π-H-Space f ~∗ f
+ pr1 (pointed-htpy-left-unit-law-mul-pointed-Π-H-Space (f , f∗)) i =
+ left-unit-law-mul-H-Space (M i) (f i)
+ pr2 (pointed-htpy-left-unit-law-mul-pointed-Π-H-Space (f , f∗)) =
+ inv-nat-htpy-id (left-unit-law-mul-H-Space (M i∗)) f∗
+
+ left-unit-law-mul-pointed-Π-H-Space :
+ (f : type-pointed-Π-H-Space) →
+ mul-pointed-Π-H-Space unit-pointed-Π-H-Space f = f
+ left-unit-law-mul-pointed-Π-H-Space f =
+ eq-pointed-htpy
+ ( mul-pointed-Π-H-Space unit-pointed-Π-H-Space f)
+ ( f)
+ ( pointed-htpy-left-unit-law-mul-pointed-Π-H-Space f)
+
+ pointed-htpy-right-unit-law-mul-pointed-Π-H-Space' :
+ (f : type-pointed-Π-H-Space) →
+ mul-pointed-Π-H-Space f unit-pointed-Π-H-Space ~∗ f
+ pr1 (pointed-htpy-right-unit-law-mul-pointed-Π-H-Space' (f , f∗)) i =
+ right-unit-law-mul-H-Space (M i) (f i)
+ pr2 (pointed-htpy-right-unit-law-mul-pointed-Π-H-Space' (f , f∗)) =
+ equational-reasoning
+ (ap (λ f → mul-H-Space (M i∗) f (unit-H-Space (M i∗))) f∗ ∙ refl) ∙
+ left-unit-law-mul-H-Space (M i∗) (unit-H-Space (M i∗))
+ = ap (λ f → mul-H-Space (M i∗) f (unit-H-Space (M i∗))) f∗ ∙
+ right-unit-law-mul-H-Space (M i∗) (unit-H-Space (M i∗))
+ by ap-binary (_∙_) right-unit (coh-unit-laws-mul-H-Space (M i∗))
+ = right-unit-law-mul-H-Space (M i∗) (f i∗) ∙ f∗
+ by inv-nat-htpy-id (right-unit-law-mul-H-Space (M i∗)) f∗
+
+ right-unit-law-mul-pointed-Π-H-Space' :
+ (f : type-pointed-Π-H-Space) →
+ mul-pointed-Π-H-Space f unit-pointed-Π-H-Space = f
+ right-unit-law-mul-pointed-Π-H-Space' f =
+ eq-pointed-htpy
+ ( mul-pointed-Π-H-Space f unit-pointed-Π-H-Space)
+ ( f)
+ ( pointed-htpy-right-unit-law-mul-pointed-Π-H-Space' f)
+
+ noncoherent-h-space-pointed-Π-H-Space : Noncoherent-H-Space (l1 ⊔ l2)
+ noncoherent-h-space-pointed-Π-H-Space =
+ ( pointed-type-pointed-Π-H-Space ,
+ mul-pointed-Π-H-Space ,
+ left-unit-law-mul-pointed-Π-H-Space ,
+ right-unit-law-mul-pointed-Π-H-Space')
+
+ pointed-Π-H-Space : H-Space (l1 ⊔ l2)
+ pointed-Π-H-Space =
+ h-space-Noncoherent-H-Space noncoherent-h-space-pointed-Π-H-Space
+
+ right-unit-law-mul-pointed-Π-H-Space :
+ (f : type-pointed-Π-H-Space) →
+ mul-pointed-Π-H-Space f unit-pointed-Π-H-Space = f
+ right-unit-law-mul-pointed-Π-H-Space =
+ right-unit-law-mul-H-Space pointed-Π-H-Space
+
+ is-unital-mul-pointed-Π-H-Space : is-unital mul-pointed-Π-H-Space
+ is-unital-mul-pointed-Π-H-Space = is-unital-mul-H-Space pointed-Π-H-Space
+
+ coh-unit-laws-mul-pointed-Π-H-Space :
+ coh-unit-laws
+ ( mul-pointed-Π-H-Space)
+ ( unit-pointed-Π-H-Space)
+ ( left-unit-law-mul-pointed-Π-H-Space)
+ ( right-unit-law-mul-pointed-Π-H-Space)
+ coh-unit-laws-mul-pointed-Π-H-Space =
+ coh-unit-laws-mul-H-Space pointed-Π-H-Space
+
+ coherent-unit-laws-mul-pointed-Π-H-Space :
+ coherent-unit-laws mul-pointed-Π-H-Space unit-pointed-Π-H-Space
+ coherent-unit-laws-mul-pointed-Π-H-Space =
+ coherent-unit-laws-mul-H-Space pointed-Π-H-Space
+
+ is-coherently-unital-mul-pointed-Π-H-Space :
+ is-coherently-unital mul-pointed-Π-H-Space
+ is-coherently-unital-mul-pointed-Π-H-Space =
+ is-coherently-unital-mul-H-Space pointed-Π-H-Space
+
+ coherent-unital-mul-pointed-Π-H-Space :
+ coherent-unital-mul-Pointed-Type pointed-type-pointed-Π-H-Space
+ coherent-unital-mul-pointed-Π-H-Space =
+ coherent-unital-mul-H-Space pointed-Π-H-Space
+
+ magma-pointed-Π-H-Space : Magma (l1 ⊔ l2)
+ magma-pointed-Π-H-Space = magma-H-Space pointed-Π-H-Space
+```
+
+## See also
+
+- Pointed dependent function H-spaces are a special case of
+ [dependent extension H-spaces](structured-types.dependent-extension-h-spaces.md)
diff --git a/src/structured-types/pointed-dependent-functions.lagda.md b/src/structured-types/pointed-dependent-functions.lagda.md
index b9ebc6b54f..72126019ed 100644
--- a/src/structured-types/pointed-dependent-functions.lagda.md
+++ b/src/structured-types/pointed-dependent-functions.lagda.md
@@ -38,6 +38,7 @@ module _
( ev-point (point-Pointed-Type A) {fam-Pointed-Fam A B})
( point-Pointed-Fam A B)
+ Π∗ : UU (l1 ⊔ l2)
Π∗ = pointed-Π
```
diff --git a/src/structured-types/pointed-function-h-spaces.lagda.md b/src/structured-types/pointed-function-h-spaces.lagda.md
new file mode 100644
index 0000000000..8e6f0b76bb
--- /dev/null
+++ b/src/structured-types/pointed-function-h-spaces.lagda.md
@@ -0,0 +1,111 @@
+# Pointed function H-spaces
+
+```agda
+module structured-types.pointed-function-h-spaces where
+```
+
+Imports
+
+```agda
+open import foundation.identity-types
+open import foundation.unital-binary-operations
+open import foundation.universe-levels
+
+open import structured-types.h-spaces
+open import structured-types.magmas
+open import structured-types.pointed-dependent-function-h-spaces
+open import structured-types.pointed-types
+```
+
+
+
+## Idea
+
+Given a [H-space](structured-types.h-spaces.md) `M` and a
+[pointed type](structured-types.pointed-types.md) `I`, the
+{{#concept "pointed function H-space" Agda=pointed-function-H-Space}} `I →∗ M`
+consists of [pointed functions](structured-types.pointed-maps.md) from `I` to
+the underlying pointed type of `M`. The multiplication is given pointwise, and
+at the base point by the
+[binary action on identifications](foundation.action-on-identifications-binary-functions.md)
+of the multiplication operation of `M`.
+
+## Definition
+
+```agda
+module _
+ {l1 l2 : Level} (I∗ : Pointed-Type l1) (M : H-Space l2)
+ where
+
+ pointed-function-H-Space : H-Space (l1 ⊔ l2)
+ pointed-function-H-Space = pointed-Π-H-Space I∗ (λ _ → M)
+
+ pointed-type-pointed-function-H-Space : Pointed-Type (l1 ⊔ l2)
+ pointed-type-pointed-function-H-Space =
+ pointed-type-H-Space pointed-function-H-Space
+
+ type-pointed-function-H-Space : UU (l1 ⊔ l2)
+ type-pointed-function-H-Space =
+ type-H-Space pointed-function-H-Space
+
+ unit-pointed-function-H-Space : type-pointed-function-H-Space
+ unit-pointed-function-H-Space =
+ unit-H-Space pointed-function-H-Space
+
+ mul-pointed-function-H-Space :
+ type-pointed-function-H-Space →
+ type-pointed-function-H-Space →
+ type-pointed-function-H-Space
+ mul-pointed-function-H-Space = mul-H-Space pointed-function-H-Space
+
+ left-unit-law-mul-pointed-function-H-Space :
+ (f : type-pointed-function-H-Space) →
+ mul-pointed-function-H-Space unit-pointed-function-H-Space f = f
+ left-unit-law-mul-pointed-function-H-Space =
+ left-unit-law-mul-H-Space pointed-function-H-Space
+
+ right-unit-law-mul-pointed-function-H-Space :
+ (f : type-pointed-function-H-Space) →
+ mul-pointed-function-H-Space f unit-pointed-function-H-Space = f
+ right-unit-law-mul-pointed-function-H-Space =
+ right-unit-law-mul-H-Space pointed-function-H-Space
+
+ is-unital-mul-pointed-function-H-Space :
+ is-unital mul-pointed-function-H-Space
+ is-unital-mul-pointed-function-H-Space =
+ is-unital-mul-H-Space pointed-function-H-Space
+
+ coh-unit-laws-mul-pointed-function-H-Space :
+ coh-unit-laws
+ ( mul-pointed-function-H-Space)
+ ( unit-pointed-function-H-Space)
+ ( left-unit-law-mul-pointed-function-H-Space)
+ ( right-unit-law-mul-pointed-function-H-Space)
+ coh-unit-laws-mul-pointed-function-H-Space =
+ coh-unit-laws-mul-H-Space pointed-function-H-Space
+
+ coherent-unit-laws-mul-pointed-function-H-Space :
+ coherent-unit-laws
+ ( mul-pointed-function-H-Space)
+ ( unit-pointed-function-H-Space)
+ coherent-unit-laws-mul-pointed-function-H-Space =
+ coherent-unit-laws-mul-H-Space pointed-function-H-Space
+
+ is-coherently-unital-mul-pointed-function-H-Space :
+ is-coherently-unital mul-pointed-function-H-Space
+ is-coherently-unital-mul-pointed-function-H-Space =
+ is-coherently-unital-mul-H-Space pointed-function-H-Space
+
+ coherent-unital-mul-pointed-function-H-Space :
+ coherent-unital-mul-Pointed-Type pointed-type-pointed-function-H-Space
+ coherent-unital-mul-pointed-function-H-Space =
+ coherent-unital-mul-H-Space pointed-function-H-Space
+
+ magma-pointed-function-H-Space : Magma (l1 ⊔ l2)
+ magma-pointed-function-H-Space = magma-H-Space pointed-function-H-Space
+```
+
+## See also
+
+- Pointed function H-spaces are a special case of
+ [extension H-spaces](structured-types.extension-h-spaces.md)