InformationTheory

InformationTheory.Shannon.Kolmogorov.Omega

source

Chaitin's halting probability #

Cover–Thomas (2nd ed.). The halting probability of the self-delimiting machine is the total weight ∑ 2^{-|p|} of its halting programs. Because the halting set is prefix-free, the Kraft bound applies to every finite subsum, so Ω is a subprobability; the literal echo program halts, so Ω is positive.

The second half of the section is that the prefix world is not computable. The Berry argument of the plain machine transfers: a computable K would let one search for the least string of prefix complexity at least k, and the self-delimiting interpreter describes that string in 2 · natLen k + O(1) bits.

Main definitions #

Main statements #

noncomputable def

InformationTheory.Kolmogorov.chaitinOmega

source

Chaitin's halting probability Ω = ∑_{p halts} 2^{-|p|} in ℝ≥0∞, the weight of the halting programs of the self-delimiting machine. @audit:ok

Equations
Instances For
    Used by
      theorem

      InformationTheory.Kolmogorov.chaitinOmega_le_one

      source

      The halting probability is a subprobability: Ω ≤ 1, because the halting programs form a prefix-free set and every finite subsum is a Kraft sum. The bound is not the degenerate empty-sum reading: the halting set is nonempty (the literal echo program halts), and chaitinOmega_pos pins Ω to (0, 1]. @audit:ok

      Used by
        theorem

        InformationTheory.Kolmogorov.chaitinOmega_pos

        source

        The halting probability is positive: the literal echo program prefixLiteralProg 0 halts, so its weight is a strictly positive term of the sum.

        Used by
          theorem

          InformationTheory.Kolmogorov.chaitinOmega_ne_top

          source
          Used by

            Non-computability of prefix complexity #

            noncomputable def

            InformationTheory.Kolmogorov.shortestPrefixProg

            source
            (x : ) :

            A shortest self-delimiting program for x (attained by prefixComplexity_spec).

            Equations
            Instances For
              Used by
                noncomputable def

                InformationTheory.Kolmogorov.shortestPrefixNat

                source
                (x : ) :

                The natural-number code of x's shortest self-delimiting program.

                Equations
                Instances For
                  Used by
                    theorem

                    InformationTheory.Kolmogorov.shortestPrefixProg_length

                    source
                    Used by
                      theorem

                      InformationTheory.Kolmogorov.shortestPrefixProg_mem

                      source
                      Used by
                        theorem

                        InformationTheory.Kolmogorov.shortestPrefixNat_injective

                        source
                        Used by
                          theorem

                          InformationTheory.Kolmogorov.shortestPrefixNat_lt_of_lt

                          source
                          {x k : } (hx : prefixComplexity x < k) :
                          Used by
                            theorem

                            InformationTheory.Kolmogorov.prefixComplexity_lt_finite

                            source
                            Used by
                              theorem

                              InformationTheory.Kolmogorov.exists_prefixIncompressible

                              source
                              (k : ) :
                              ∃ (x : ), k prefixComplexity x
                              Used by
                                def

                                InformationTheory.Kolmogorov.prefixInterpretProg

                                source
                                (idx : ) (q : List Bool) :

                                The self-delimited interpretation program for code index idx running on the description q: the interpret flag, then idx in unary terminated by false, then q, all wrapped by the self-delimiting length prefix. @audit:ok

                                Equations
                                Instances For
                                  Used by
                                    theorem

                                    InformationTheory.Kolmogorov.prefixInterpretProg_length

                                    source
                                    (idx : ) (q : List Bool) :
                                    (prefixInterpretProg idx q).length = 2 * q.length + (2 * idx + 5)
                                    Used by
                                      theorem

                                      InformationTheory.Kolmogorov.prefixUniversalEval_interpret

                                      source
                                      Used by
                                        theorem

                                        InformationTheory.Kolmogorov.prefix_invariance_code

                                        source
                                        (c : Nat.Partrec.Code) :
                                        ∃ (b : ), ∀ (x : ) (q : List Bool), x c.eval (Nat.pair (Computability.decodeNat q) 0)prefixComplexity x 2 * q.length + b
                                        Used by
                                          theorem

                                          InformationTheory.Kolmogorov.prefix_invariance

                                          source
                                          (A : Part ) (hA : Partrec₂ A) :
                                          ∃ (b : ), ∀ (x : ) (q : List Bool), x A (Computability.decodeNat q) 0prefixComplexity x 2 * q.length + b
                                          Used by
                                            theorem

                                            InformationTheory.Kolmogorov.prefixComplexity_not_computable

                                            source

                                            Prefix Kolmogorov complexity is not computable (Berry's paradox): a computable K would let one search for the least string of prefix complexity at least k, which the self-delimiting interpreter then describes in 2 · natLen k + O(1) bits. @audit:ok

                                            Used by