Martin Escardo 7th November 2018.
Remark. Another equivalent way to define the multiplication, which has
a different universe level:
\begin{code}
{-# OPTIONS --safe --without-K #-}
open import MLTT.Spartan
module Lifting.MonadVariation where
open import UF.Subsingletons
open import UF.Embeddings
open import UF.FunExt
open import Lifting.Construction
open import Lifting.EmbeddingDirectly
𝓛* : {X : 𝓤 ̇ } {Y : 𝓥 ̇ } (f : X → Y) → is-embedding f → 𝓛 𝓣 Y → 𝓛 (𝓤 ⊔ 𝓥 ⊔ 𝓣) X
𝓛* f e (Q , ψ , j) = (Σ q ꞉ Q , fiber f (ψ q)) ,
(λ p → pr₁ (pr₂ p)) ,
Σ-is-prop j (e ∘ ψ)
μ* : (𝓣 𝓣' : Universe) {X : 𝓤 ̇ }
→ funext 𝓣 𝓣
→ funext 𝓣' 𝓣'
→ funext 𝓣' 𝓤
→ funext 𝓤 (𝓤 ⊔ (𝓣' ⁺))
→ propext 𝓣'
→ 𝓛 𝓣 (𝓛 𝓣' X) → 𝓛 (𝓤 ⊔ 𝓣 ⊔ (𝓣' ⁺)) X
μ* {𝓤} 𝓣 𝓣' {X} fe fe' fe'' fe''' pe = 𝓛* (η 𝓣') (η-is-embedding 𝓣' pe fe' fe'' fe''')
\end{code}