Markovian types

Content created by Fredrik Bakke.

Created on 2025-01-07.
Last modified on 2025-01-07.

module logic.markovian-types where
Imports
open import elementary-number-theory.natural-numbers

open import foundation.booleans
open import foundation.decidable-subtypes
open import foundation.dependent-pair-types
open import foundation.disjunction
open import foundation.existential-quantification
open import foundation.function-types
open import foundation.inhabited-types
open import foundation.negation
open import foundation.universal-quantification
open import foundation.universe-levels

open import foundation-core.identity-types
open import foundation-core.propositions
open import foundation-core.sets

open import univalent-combinatorics.standard-finite-types

Idea

A type A is Markovian if, for every decidable subtype 𝒫 of A, if 𝒫 is not full then there is an element of A that is not in 𝒫.

Definitions

The predicate of being Markovian

We phrase the condition using the type of booleans so that the predicate is small.

is-markovian : {l : Level}  UU l  UU l
is-markovian A =
  (𝒫 : A  bool) 
  ¬ ((x : A)  is-true (𝒫 x)) 
  exists A  x  is-false-Prop (𝒫 x))

is-prop-is-markovian : {l : Level} (A : UU l)  is-prop (is-markovian A)
is-prop-is-markovian A =
  is-prop-Π  𝒫  is-prop-function-type (is-prop-exists A (is-false-Prop  𝒫)))

The predicate of being Markovian at a universe level

module _
  {l1 : Level} (l2 : Level) (A : UU l1)
  where

  is-markovian-prop-Level : Prop (l1  lsuc l2)
  is-markovian-prop-Level =
    Π-Prop
      ( decidable-subtype l2 A)
      ( λ P 
        ¬' (∀' A (subtype-decidable-subtype P)) 
         A (¬'_  subtype-decidable-subtype P))

  is-markovian-Level : UU (l1  lsuc l2)
  is-markovian-Level =
      (P : decidable-subtype l2 A) 
      ¬ ((x : A)  is-in-decidable-subtype P x) 
      exists A (¬'_  subtype-decidable-subtype P)

  is-prop-is-markovian-Level : is-prop is-markovian-Level
  is-prop-is-markovian-Level = is-prop-type-Prop is-markovian-prop-Level

Properties

A type is Markovian if and only if it is Markovian at any universe level

This remains to be formalized.

A type is Markovian if and only if it is Markovian at all universe levels

This remains to be formalized.

See also

Recent changes