Dependent products of cardinals
Content created by Fredrik Bakke.
Created on 2026-02-16.
Last modified on 2026-02-16.
module set-theory.dependent-products-cardinals where
Imports
open import foundation.action-on-identifications-functions open import foundation.dependent-pair-types open import foundation.function-types open import foundation.functoriality-set-truncation open import foundation.identity-types open import foundation.set-truncations open import foundation.sets open import foundation.transport-along-identifications open import foundation.universe-levels open import foundation-core.propositions open import set-theory.cardinality-projective-sets open import set-theory.cardinality-recursive-sets open import set-theory.cardinals open import set-theory.inhabited-cardinals
Idea
Given a family of cardinals over a cardinality-recursive set , then we may define the dependent product cardinal¶ , as the cardinality of the dependent product of any family of representing sets .
Definitions
module _ {l1 l2 : Level} (X : Set l1) where cardinality-Π : (type-Set X → Set l2) → Cardinal (l1 ⊔ l2) cardinality-Π Y = cardinality (Π-Set X Y)
Dependent products of cardinals over cardinality-recursive sets
module _ {l1 l2 : Level} (X : Cardinality-Recursive-Set l1 l2) (let set-X = set-Cardinality-Recursive-Set X) where Π-Cardinal' : (type-Set set-X → Cardinal l2) → Cardinal (l1 ⊔ l2) Π-Cardinal' Y = map-trunc-Set (Π-Set set-X) (unit-Cardinality-Recursive-Set X Y) compute-Π-Cardinal' : (K : type-Cardinality-Recursive-Set X → Set l2) → Π-Cardinal' (cardinality ∘ K) = cardinality (Π-Set set-X K) compute-Π-Cardinal' K = equational-reasoning map-trunc-Set ( Π-Set set-X) ( unit-Cardinality-Recursive-Set X (cardinality ∘ K)) = map-trunc-Set (Π-Set set-X) (unit-trunc-Set K) by ap ( map-trunc-Set (Π-Set set-X)) ( compute-unit-Cardinality-Recursive-Set X K) = cardinality (Π-Set set-X K) by naturality-unit-trunc-Set (Π-Set set-X) K
Dependent products of cardinals over cardinality-projective sets
module _ {l1 l2 : Level} (X : Cardinality-Projective-Set l1 l2) where Π-Cardinal : (type-Cardinality-Projective-Set X → Cardinal l2) → Cardinal (l1 ⊔ l2) Π-Cardinal = Π-Cardinal' (cardinality-recursive-set-Cardinality-Projective-Set X) compute-Π-Cardinal : (Y : type-Cardinality-Projective-Set X → Set l2) → Π-Cardinal (cardinality ∘ Y) = cardinality (Π-Set (set-Cardinality-Projective-Set X) Y) compute-Π-Cardinal = compute-Π-Cardinal' (cardinality-recursive-set-Cardinality-Projective-Set X)
Properties
Dependent products of inhabited cardinals are inhabited
module _ {l1 l2 : Level} (X : Cardinality-Projective-Set l1 l2) (let type-X = type-Cardinality-Projective-Set X) where is-inhabited-Π-Cardinal : (K : type-X → Cardinal l2) → ((x : type-X) → is-inhabited-Cardinal (K x)) → is-inhabited-Cardinal (Π-Cardinal X K) is-inhabited-Π-Cardinal = ind-Cardinality-Projective-Set X ( λ K → set-Prop ( function-Prop ( (x : type-X) → is-inhabited-Cardinal (K x)) ( is-inhabited-prop-Cardinal (Π-Cardinal X K)))) ( λ Y y → inv-tr ( is-inhabited-Cardinal) ( compute-Π-Cardinal X Y) ( unit-is-inhabited-cardinality ( Π-Set (set-Cardinality-Projective-Set X) Y) ( is-projective-Cardinality-Projective-Set X ( type-Set ∘ Y) ( λ x → inv-unit-is-inhabited-cardinality (Y x) (y x))))) Π-Inhabited-Cardinal : (type-X → Inhabited-Cardinal l2) → Inhabited-Cardinal (l1 ⊔ l2) Π-Inhabited-Cardinal K = ( Π-Cardinal X (pr1 ∘ K) , is-inhabited-Π-Cardinal (pr1 ∘ K) (pr2 ∘ K))
Recent changes
- 2026-02-16. Fredrik Bakke. Dependent sums and products of cardinals (#1604).