# The universal multiset ```agda module trees.universal-multiset where ``` <details><summary>Imports</summary> ```agda open import foundation.dependent-pair-types open import foundation.equivalences open import foundation.identity-types open import foundation.raising-universe-levels open import foundation.small-types open import foundation.small-universes open import foundation.transport-along-identifications open import foundation.universe-levels open import trees.functoriality-w-types open import trees.multisets open import trees.small-multisets open import trees.w-types ``` </details> ## Idea The **universal multiset** of universe level `l` is the multiset of level `lsuc l` built out of `𝕍 l` and resizings of the multisets it contains ## Definition ```agda universal-multiset-𝕍 : (l : Level) → 𝕍 (lsuc l) universal-multiset-𝕍 l = tree-𝕎 ( 𝕍 l) ( λ X → resize-𝕍 X (is-small-multiset-𝕍 is-small-lsuc X)) ``` ## Properties ### If `UU l1` is `UU l`-small, then the universal multiset of level `l1` is `UU l`-small ```agda is-small-universal-multiset-𝕍 : (l : Level) {l1 : Level} → is-small-universe l l1 → is-small-𝕍 l (universal-multiset-𝕍 l1) is-small-universal-multiset-𝕍 l {l1} (pair (pair U e) H) = pair ( pair ( 𝕎 U (λ x → pr1 (H (map-inv-equiv e x)))) ( equiv-𝕎 ( λ u → type-is-small (H (map-inv-equiv e u))) ( e) ( λ X → tr ( λ t → X ≃ pr1 (H t)) ( inv (is-retraction-map-inv-equiv e X)) ( pr2 (H X))))) ( f) where f : (X : 𝕍 l1) → is-small-𝕍 l (resize-𝕍 X (is-small-multiset-𝕍 is-small-lsuc X)) f (tree-𝕎 A α) = pair ( pair ( type-is-small (H A)) ( equiv-is-small (H A) ∘e inv-equiv (compute-raise (lsuc l1) A))) ( λ x → f (α (map-inv-raise x))) ```