Documentation

LeanPool.MarkovProcess.MarkovProcess.FiniteTime.KernelConcatenation

Concatenating finite-time kernels at an ordered cut #

This file factors an ordered finite-dimensional transition law at a designated observation time. The future factor is the finite-time kernel at the corresponding relative times, started from the terminal coordinate of the past. This is finite-dimensional kernel infrastructure and does not assert a path-space or conditional Markov theorem.

def MarkovProcess.cutIndexOrderIso (m n : ℕ) :
Fin (m + 1 + n) ≃o Fin (n + (m + 1))

Reassociate the cardinality of a split finite path so recursion removes its first point definitionally while the coordinate order remains past-then-future.

Equations
Instances For

    Restrict an ordered family to the coordinates at or before a designated cut.

    Equations
    Instances For

      Times after the cut, measured relative to the time at the cut.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem MarkovProcess.FiniteOrderedTimes.relativeFinalSegment_apply {m n : ℕ} (times : FiniteOrderedTimes (n + (m + 1))) (i : Fin n) :
        times.relativeFinalSegment i = times ((cutIndexOrderIso m n) (Fin.natAdd (m + 1) i)) - times ((cutIndexOrderIso m n) (Fin.castAdd n (Fin.last m)))
        def MarkovProcess.SubMarkovKernelSemigroup.splitFinitePath {alpha : Type u_1} {m n : ℕ} (path : Fin (n + (m + 1)) → alpha) :
        (Fin (m + 1) → alpha) × (Fin n → alpha)

        Separate a finite path into its coordinates at or before the cut and those after the cut.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          Splitting a finite path at a cut is measurable.

          def MarkovProcess.SubMarkovKernelSemigroup.splitPastTerminal {alpha : Type u_1} {m : ℕ} (z : alpha × (Fin (m + 1) → alpha)) :
          alpha

          The terminal state of the first component of a split finite path.

          Equations
          Instances For

            Reading the terminal past coordinate is measurable.

            def MarkovProcess.SubMarkovKernelSemigroup.finConsMeasurableEquiv {alpha : Type u_1} [MeasurableSpace alpha] (n : ℕ) :
            alpha × (Fin n → alpha) ≃ᵐ (Fin (n + 1) → alpha)

            Measurable equivalence between a head/tail pair and a finite successor path.

            Equations
            Instances For
              @[simp]
              theorem MarkovProcess.SubMarkovKernelSemigroup.finConsMeasurableEquiv_apply {alpha : Type u_1} [MeasurableSpace alpha] (n : ℕ) (z : alpha × (Fin n → alpha)) :
              @[simp]
              theorem MarkovProcess.SubMarkovKernelSemigroup.finConsMeasurableEquiv_symm_apply {alpha : Type u_1} [MeasurableSpace alpha] (n : ℕ) (path : Fin (n + 1) → alpha) :
              theorem MarkovProcess.SubMarkovKernelSemigroup.finiteTimeKernel_map_headTail {alpha : Type u_1} [MeasurableSpace alpha] (P : SubMarkovKernelSemigroup alpha) {n : ℕ} (times : FiniteOrderedTimes (n + 1)) :
              ((P.finiteTimeKernel times).map fun (path : Fin (n + 1) → alpha) => (path 0, Fin.tail path)) = (P.kernel (times 0)).compProd (ProbabilityTheory.Kernel.prodMkLeft alpha (P.finiteTimeKernel times.relativeTail))

              Splitting the finite-time kernel after its first observation recovers exactly the recursive transition-kernel product used in its construction.

              Splitting an ordered finite-dimensional law at a cut factors it into its past law and the relative future law started from the terminal state of that past.