Documentation

LeanMachineLearning.SequentialLearning.Deterministic

Deterministic algorithms and environments #

A deterministic algorithm chooses its action in a deterministic way. That is, that action is given by a measurable function of the history and of the current observation instead of a general Markov kernel. Similarly, a deterministic environment gives feedback in a deterministic way.

Main definitions #

We introduce two typeclasses IsDeterministicAlg and IsDeterministicEnv to express that an algorithm or an environment is deterministic. We also give definitions for the initial action and the next action of a deterministic algorithm, and for the feedback functions of a deterministic environment. Finally, we give a construction of a deterministic algorithm and environment from measurable functions.

class Learning.IsDeterministicAlg {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (alg : Algorithm ๐“ž ๐“ ๐“จ) :

An algorithm is deterministic if its actions are determined by measurable functions of the history and of the current observation (and not possibly random kernels).

Instances
    noncomputable def Learning.nextAction {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (alg : Algorithm ๐“ž ๐“ ๐“จ) [h_det : IsDeterministicAlg alg] (n : โ„•) :
    Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“

    The action of a deterministic algorithm at step n, as a function of the history before n and of the observation at step n.

    Equations
    Instances For
      noncomputable def Learning.actionZero {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (alg : Algorithm ๐“ž ๐“ ๐“จ) [IsDeterministicAlg alg] :
      ๐“ž โ†’ ๐“

      The initial action of a deterministic algorithm, as a function of the first observation.

      Equations
      Instances For
        theorem Learning.measurable_nextAction {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (alg : Algorithm ๐“ž ๐“ ๐“จ) [IsDeterministicAlg alg] (n : โ„•) :
        theorem Learning.measurable_actionZero {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (alg : Algorithm ๐“ž ๐“ ๐“จ) [IsDeterministicAlg alg] :
        theorem Learning.policy_eq_deterministic {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (alg : Algorithm ๐“ž ๐“ ๐“จ) [h_det : IsDeterministicAlg alg] (n : โ„•) :
        theorem Learning.nextAction_zero {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (alg : Algorithm ๐“ž ๐“ ๐“จ) [IsDeterministicAlg alg] (h : Hist ๐“ž ๐“ ๐“จ 0) (o : ๐“ž) :
        nextAction alg 0 (h, o) = actionZero alg o
        theorem Learning.p0_eq_deterministic {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (alg : Algorithm ๐“ž ๐“ ๐“จ) [IsDeterministicAlg alg] :
        theorem Learning.IsDeterministicAlg.action_ae_eq_of_IsAlgEnvSeqUntil {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {alg : Algorithm ๐“ž ๐“ ๐“จ} {env : Environment ๐“ž ๐“ ๐“จ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsFiniteMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} {n N : โ„•} [MeasurableEq ๐“] [h_det : IsDeterministicAlg alg] (h : IsAlgEnvSeqUntil O A Y alg env P N) (hn : n < N) :
        A n =แต[P] fun (ฯ‰ : ฮฉ) => nextAction alg n (history O A Y n ฯ‰, O n ฯ‰)
        theorem Learning.IsDeterministicAlg.action_zero_of_IsAlgEnvSeqUntil {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {alg : Algorithm ๐“ž ๐“ ๐“จ} {env : Environment ๐“ž ๐“ ๐“จ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsFiniteMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} {N : โ„•} [MeasurableEq ๐“] [h_det : IsDeterministicAlg alg] (h : IsAlgEnvSeqUntil O A Y alg env P N) (hN : 0 < N) :
        A 0 =แต[P] fun (ฯ‰ : ฮฉ) => actionZero alg (O 0 ฯ‰)
        theorem Learning.IsDeterministicAlg.hasCondDistrib_action_zero_of_IsAlgEnvSeqUntil {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {alg : Algorithm ๐“ž ๐“ ๐“จ} {env : Environment ๐“ž ๐“ ๐“จ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsFiniteMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} {N : โ„•} [h_det : IsDeterministicAlg alg] (h : IsAlgEnvSeqUntil O A Y alg env P N) (hN : 0 < N) :
        theorem Learning.IsDeterministicAlg.hasCondDistrib_action_zero {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {alg : Algorithm ๐“ž ๐“ ๐“จ} {env : Environment ๐“ž ๐“ ๐“จ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsFiniteMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} [h_det : IsDeterministicAlg alg] (h : IsAlgEnvSeq O A Y alg env P) :
        theorem Learning.IsDeterministicAlg.action_ae_eq {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {alg : Algorithm ๐“ž ๐“ ๐“จ} {env : Environment ๐“ž ๐“ ๐“จ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsFiniteMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} [MeasurableEq ๐“] [h_det : IsDeterministicAlg alg] (h : IsAlgEnvSeq O A Y alg env P) (n : โ„•) :
        A n =แต[P] fun (ฯ‰ : ฮฉ) => nextAction alg n (history O A Y n ฯ‰, O n ฯ‰)
        theorem Learning.IsDeterministicAlg.action_zero_ae_eq {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {alg : Algorithm ๐“ž ๐“ ๐“จ} {env : Environment ๐“ž ๐“ ๐“จ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsFiniteMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} [MeasurableEq ๐“] [h_det : IsDeterministicAlg alg] (h : IsAlgEnvSeq O A Y alg env P) :
        A 0 =แต[P] fun (ฯ‰ : ฮฉ) => actionZero alg (O 0 ฯ‰)
        theorem Learning.IsDeterministicAlg.action_ae_all_eq {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {alg : Algorithm ๐“ž ๐“ ๐“จ} {env : Environment ๐“ž ๐“ ๐“จ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsFiniteMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} [MeasurableEq ๐“] [h_det : IsDeterministicAlg alg] (h : IsAlgEnvSeq O A Y alg env P) :
        โˆ€แต (ฯ‰ : ฮฉ) โˆ‚P, โˆ€ (n : โ„•), A n ฯ‰ = nextAction alg n (history O A Y n ฯ‰, O n ฯ‰)
        class Learning.IsDeterministicEnv {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (env : Environment ๐“ž ๐“ ๐“จ) :

        An environment is deterministic if its feedbacks are determined by measurable functions of the history, the observation and the action (and not possibly random kernels).

        Instances
          noncomputable def Learning.feedbackFun {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (env : Environment ๐“ž ๐“ ๐“จ) [h_det : IsDeterministicEnv env] (n : โ„•) :
          (Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž) ร— ๐“ โ†’ ๐“จ

          The feedback function of a deterministic environment at step n.

          Equations
          Instances For
            theorem Learning.measurable_feedbackFun {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (env : Environment ๐“ž ๐“ ๐“จ) [IsDeterministicEnv env] (n : โ„•) :
            theorem Learning.feedback_eq_deterministic {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (env : Environment ๐“ž ๐“ ๐“จ) [IsDeterministicEnv env] (n : โ„•) :
            noncomputable def Learning.feedbackFunZero {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (env : Environment ๐“ž ๐“ ๐“จ) [IsDeterministicEnv env] :
            ๐“ž ร— ๐“ โ†’ ๐“จ

            The initial feedback function of a deterministic environment, as a function of the first observation and the first action.

            Equations
            Instances For
              theorem Learning.measurable_feedbackFunZero {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (env : Environment ๐“ž ๐“ ๐“จ) [IsDeterministicEnv env] :
              theorem Learning.feedbackFun_zero {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (env : Environment ๐“ž ๐“ ๐“จ) [IsDeterministicEnv env] (h : Hist ๐“ž ๐“ ๐“จ 0) (o : ๐“ž) (a : ๐“) :
              theorem Learning.ฮฝ0_eq_deterministic {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (env : Environment ๐“ž ๐“ ๐“จ) [IsDeterministicEnv env] :
              theorem Learning.IsDeterministicEnv.hasCondDistrib_feedback {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {alg : Algorithm ๐“ž ๐“ ๐“จ} {env : Environment ๐“ž ๐“ ๐“จ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsFiniteMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} [h_det : IsDeterministicEnv env] (h : IsAlgEnvSeq O A Y alg env P) (n : โ„•) :
              ProbabilityTheory.HasCondDistrib (Y n) (fun (ฯ‰ : ฮฉ) => ((history O A Y n ฯ‰, O n ฯ‰), A n ฯ‰)) (ProbabilityTheory.Kernel.deterministic (feedbackFun env n) โ‹ฏ) P
              theorem Learning.IsDeterministicEnv.hasCondDistrib_feedback_zero {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {alg : Algorithm ๐“ž ๐“ ๐“จ} {env : Environment ๐“ž ๐“ ๐“จ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsFiniteMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} [h_det : IsDeterministicEnv env] (h : IsAlgEnvSeq O A Y alg env P) :
              ProbabilityTheory.HasCondDistrib (Y 0) (fun (ฯ‰ : ฮฉ) => (O 0 ฯ‰, A 0 ฯ‰)) (ProbabilityTheory.Kernel.deterministic (feedbackFunZero env) โ‹ฏ) P
              theorem Learning.IsDeterministicEnv.feedback_ae_eq {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {alg : Algorithm ๐“ž ๐“ ๐“จ} {env : Environment ๐“ž ๐“ ๐“จ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsFiniteMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} [MeasurableEq ๐“จ] [h_det : IsDeterministicEnv env] (h : IsAlgEnvSeq O A Y alg env P) (n : โ„•) :
              Y n =แต[P] fun (ฯ‰ : ฮฉ) => feedbackFun env n ((history O A Y n ฯ‰, O n ฯ‰), A n ฯ‰)
              noncomputable def Learning.detAlgorithm {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (nextA : (n : โ„•) โ†’ Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“) (h_next : โˆ€ (n : โ„•), Measurable (nextA n)) :
              Algorithm ๐“ž ๐“ ๐“จ

              A deterministic algorithm, which chooses the action given by the function nextA. The initial action is fun o โ†ฆ nextA 0 (default, o).

              Equations
              Instances For
                @[simp]
                theorem Learning.detAlgorithm_policy {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (nextA : (n : โ„•) โ†’ Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“) (h_next : โˆ€ (n : โ„•), Measurable (nextA n)) (n : โ„•) :
                (detAlgorithm nextA h_next).policy n = ProbabilityTheory.Kernel.deterministic (nextA n) โ‹ฏ
                instance Learning.instIsDeterministicAlgDetAlgorithm {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {nextA : (n : โ„•) โ†’ Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“} {h_next : โˆ€ (n : โ„•), Measurable (nextA n)} :
                @[simp]
                theorem Learning.p0_detAlgorithm {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {nextA : (n : โ„•) โ†’ Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“} {h_next : โˆ€ (n : โ„•), Measurable (nextA n)} :
                (detAlgorithm nextA h_next).p0 = ProbabilityTheory.Kernel.deterministic (fun (o : ๐“ž) => nextA 0 (default, o)) โ‹ฏ
                @[simp]
                theorem Learning.nextAction_detAlgorithm {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {nextA : (n : โ„•) โ†’ Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“} {h_next : โˆ€ (n : โ„•), Measurable (nextA n)} [MeasurableSpace.SeparatesPoints ๐“] (n : โ„•) :
                nextAction (detAlgorithm nextA h_next) n = nextA n
                @[simp]
                theorem Learning.actionZero_detAlgorithm {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {nextA : (n : โ„•) โ†’ Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“} {h_next : โˆ€ (n : โ„•), Measurable (nextA n)} [MeasurableSpace.SeparatesPoints ๐“] :
                actionZero (detAlgorithm nextA h_next) = fun (o : ๐“ž) => nextA 0 (default, o)
                noncomputable def Learning.detEnvironment {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} (obs : (n : โ„•) โ†’ ProbabilityTheory.Kernel (Hist ๐“ž ๐“ ๐“จ n) ๐“ž) [โˆ€ (n : โ„•), ProbabilityTheory.IsMarkovKernel (obs n)] (f : (n : โ„•) โ†’ (Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž) ร— ๐“ โ†’ ๐“จ) (hf : โˆ€ (n : โ„•), Measurable (f n)) :
                Environment ๐“ž ๐“ ๐“จ

                A deterministic environment, where the feedback is given by evaluating fixed measurable functions.

                Equations
                Instances For
                  @[simp]
                  theorem Learning.obs_detEnvironment {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {obs : (n : โ„•) โ†’ ProbabilityTheory.Kernel (Hist ๐“ž ๐“ ๐“จ n) ๐“ž} [โˆ€ (n : โ„•), ProbabilityTheory.IsMarkovKernel (obs n)] {f : (n : โ„•) โ†’ (Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž) ร— ๐“ โ†’ ๐“จ} {hf : โˆ€ (n : โ„•), Measurable (f n)} (n : โ„•) :
                  (detEnvironment obs f hf).obs n = obs n
                  @[simp]
                  theorem Learning.feedback_detEnvironment {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {obs : (n : โ„•) โ†’ ProbabilityTheory.Kernel (Hist ๐“ž ๐“ ๐“จ n) ๐“ž} [โˆ€ (n : โ„•), ProbabilityTheory.IsMarkovKernel (obs n)] {f : (n : โ„•) โ†’ (Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž) ร— ๐“ โ†’ ๐“จ} {hf : โˆ€ (n : โ„•), Measurable (f n)} (n : โ„•) :
                  instance Learning.instIsDeterministicEnvDetEnvironment {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {obs : (n : โ„•) โ†’ ProbabilityTheory.Kernel (Hist ๐“ž ๐“ ๐“จ n) ๐“ž} [โˆ€ (n : โ„•), ProbabilityTheory.IsMarkovKernel (obs n)] {f : (n : โ„•) โ†’ (Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž) ร— ๐“ โ†’ ๐“จ} {hf : โˆ€ (n : โ„•), Measurable (f n)} :
                  @[simp]
                  theorem Learning.feedbackFun_detEnvironment {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {obs : (n : โ„•) โ†’ ProbabilityTheory.Kernel (Hist ๐“ž ๐“ ๐“จ n) ๐“ž} [โˆ€ (n : โ„•), ProbabilityTheory.IsMarkovKernel (obs n)] {f : (n : โ„•) โ†’ (Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž) ร— ๐“ โ†’ ๐“จ} {hf : โˆ€ (n : โ„•), Measurable (f n)} [MeasurableSpace.SeparatesPoints ๐“จ] (n : โ„•) :
                  feedbackFun (detEnvironment obs f hf) n = f n
                  @[simp]
                  theorem Learning.feedbackFunZero_detEnvironment {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {obs : (n : โ„•) โ†’ ProbabilityTheory.Kernel (Hist ๐“ž ๐“ ๐“จ n) ๐“ž} [โˆ€ (n : โ„•), ProbabilityTheory.IsMarkovKernel (obs n)] {f : (n : โ„•) โ†’ (Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž) ร— ๐“ โ†’ ๐“จ} {hf : โˆ€ (n : โ„•), Measurable (f n)} [MeasurableSpace.SeparatesPoints ๐“จ] :
                  feedbackFunZero (detEnvironment obs f hf) = fun (p : ๐“ž ร— ๐“) => f 0 ((default, p.1), p.2)
                  theorem Learning.IsAlgEnvSeq.hasCondDistrib_action_zero_detAlgorithm {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {nextA : (n : โ„•) โ†’ Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“} {h_next : โˆ€ (n : โ„•), Measurable (nextA n)} {env : Environment ๐“ž ๐“ ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsProbabilityMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} (h : IsAlgEnvSeq O A Y (detAlgorithm nextA h_next) env P) :
                  ProbabilityTheory.HasCondDistrib (A 0) (O 0) (ProbabilityTheory.Kernel.deterministic (fun (o : ๐“ž) => nextA 0 (default, o)) โ‹ฏ) P
                  theorem Learning.IsAlgEnvSeq.action_detAlgorithm_ae_eq {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {nextA : (n : โ„•) โ†’ Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“} {h_next : โˆ€ (n : โ„•), Measurable (nextA n)} {env : Environment ๐“ž ๐“ ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsProbabilityMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} [MeasurableEq ๐“] (h : IsAlgEnvSeq O A Y (detAlgorithm nextA h_next) env P) (n : โ„•) :
                  A n =แต[P] fun (ฯ‰ : ฮฉ) => nextA n (history O A Y n ฯ‰, O n ฯ‰)
                  theorem Learning.IsAlgEnvSeq.action_zero_detAlgorithm {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {nextA : (n : โ„•) โ†’ Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“} {h_next : โˆ€ (n : โ„•), Measurable (nextA n)} {env : Environment ๐“ž ๐“ ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsProbabilityMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} [MeasurableEq ๐“] (h : IsAlgEnvSeq O A Y (detAlgorithm nextA h_next) env P) :
                  A 0 =แต[P] fun (ฯ‰ : ฮฉ) => nextA 0 (default, O 0 ฯ‰)
                  theorem Learning.IsAlgEnvSeq.action_detAlgorithm_ae_all_eq {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {nextA : (n : โ„•) โ†’ Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“} {h_next : โˆ€ (n : โ„•), Measurable (nextA n)} {env : Environment ๐“ž ๐“ ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsProbabilityMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} [MeasurableEq ๐“] (h : IsAlgEnvSeq O A Y (detAlgorithm nextA h_next) env P) :
                  โˆ€แต (ฯ‰ : ฮฉ) โˆ‚P, โˆ€ (n : โ„•), A n ฯ‰ = nextA n (history O A Y n ฯ‰, O n ฯ‰)
                  theorem Learning.IsAlgEnvSeqUntil.hasCondDistrib_action_zero_detAlgorithm {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {nextA : (n : โ„•) โ†’ Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“} {h_next : โˆ€ (n : โ„•), Measurable (nextA n)} {env : Environment ๐“ž ๐“ ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsProbabilityMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} {N : โ„•} (h : IsAlgEnvSeqUntil O A Y (detAlgorithm nextA h_next) env P N) (hN : 0 < N) :
                  ProbabilityTheory.HasCondDistrib (A 0) (O 0) (ProbabilityTheory.Kernel.deterministic (fun (o : ๐“ž) => nextA 0 (default, o)) โ‹ฏ) P
                  theorem Learning.IsAlgEnvSeqUntil.action_detAlgorithm_ae_eq {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {nextA : (n : โ„•) โ†’ Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“} {h_next : โˆ€ (n : โ„•), Measurable (nextA n)} {env : Environment ๐“ž ๐“ ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsProbabilityMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} {N n : โ„•} [MeasurableEq ๐“] (h : IsAlgEnvSeqUntil O A Y (detAlgorithm nextA h_next) env P N) (hn : n < N) :
                  A n =แต[P] fun (ฯ‰ : ฮฉ) => nextA n (history O A Y n ฯ‰, O n ฯ‰)
                  theorem Learning.IsAlgEnvSeqUntil.action_zero_detAlgorithm {๐“ž : Type u_1} {๐“ : Type u_2} {๐“จ : Type u_3} {m๐“ž : MeasurableSpace ๐“ž} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {nextA : (n : โ„•) โ†’ Hist ๐“ž ๐“ ๐“จ n ร— ๐“ž โ†’ ๐“} {h_next : โˆ€ (n : โ„•), Measurable (nextA n)} {env : Environment ๐“ž ๐“ ๐“จ} {ฮฉ : Type u_4} {mฮฉ : MeasurableSpace ฮฉ} {P : MeasureTheory.Measure ฮฉ} [MeasureTheory.IsProbabilityMeasure P] {O : โ„• โ†’ ฮฉ โ†’ ๐“ž} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} {N : โ„•} [MeasurableEq ๐“] (h : IsAlgEnvSeqUntil O A Y (detAlgorithm nextA h_next) env P N) (hN : 0 < N) :
                  A 0 =แต[P] fun (ฯ‰ : ฮฉ) => nextA 0 (default, O 0 ฯ‰)