LeanMachineLearning exposition

Learning.isStoppingTime_stepsUntil_filtrationAction๐Ÿ”—

This page has the declaration's own card below, then its dependency graph, then a card for each dependency (type dependencies first, then the rest of the transitive closure). For a theorem, the graph and the dependency cards only follow its statement's dependencies (its proof is replaced by sorry, so what it proves doesn't depend on how); for everything else, both the type and the body/value are followed, since their content is part of what later declarations build on.

Minimal Lean file

isStoppingTime_stepsUntil_filtrationAction๐Ÿ”—

LemmaLearning.isStoppingTime_stepsUntil_filtrationAction

stepsUntil a m is a stopping time with respect to the filtration filtrationAction.

๐Ÿ”—theorem
Learning.isStoppingTime_stepsUntil_filtrationAction.{u_1, u_2, u_3} {๐“ : Type u_1} {R : Type u_2} {ฮฉ : Type u_3} {m๐“ : MeasurableSpace ๐“} {mR : MeasurableSpace R} {mฮฉ : MeasurableSpace ฮฉ} [DecidableEq ๐“] {A : โ„• โ†’ ฮฉ โ†’ ๐“} {R' : โ„• โ†’ ฮฉ โ†’ R} [MeasurableSingletonClass ๐“] (hA : โˆ€ (n : โ„•), Measurable (A n)) (hR' : โˆ€ (n : โ„•), Measurable (R' n)) (a : ๐“) (m : โ„•) : MeasureTheory.IsStoppingTime (IsAlgEnvSeq.filtrationAction hA hR') (stepsUntil A a m)
Learning.isStoppingTime_stepsUntil_filtrationAction.{u_1, u_2, u_3} {๐“ : Type u_1} {R : Type u_2} {ฮฉ : Type u_3} {m๐“ : MeasurableSpace ๐“} {mR : MeasurableSpace R} {mฮฉ : MeasurableSpace ฮฉ} [DecidableEq ๐“] {A : โ„• โ†’ ฮฉ โ†’ ๐“} {R' : โ„• โ†’ ฮฉ โ†’ R} [MeasurableSingletonClass ๐“] (hA : โˆ€ (n : โ„•), Measurable (A n)) (hR' : โˆ€ (n : โ„•), Measurable (R' n)) (a : ๐“) (m : โ„•) : MeasureTheory.IsStoppingTime (IsAlgEnvSeq.filtrationAction hA hR') (stepsUntil A a m)

Code

lemma isStoppingTime_stepsUntil_filtrationAction [MeasurableSingletonClass ๐“]
    (hA : โˆ€ n, Measurable (A n)) (hR' : โˆ€ n, Measurable (R' n)) (a : ๐“) (m : โ„•) :
    IsStoppingTime (IsAlgEnvSeq.filtrationAction hA hR') (stepsUntil A a m)
Type uses (2)
Body uses (4)

Actions: Source ยท Open Issue

Proof
by
  refine isStoppingTime_of_measurableSet_eq fun n โ†ฆ ?_
  by_cases hn : n = 0
  ยท subst hn
    simp only [WithTop.coe_zero]
    exact measurableSet_stepsUntil_eq_zero a m
  ยท rw [IsAlgEnvSeq.filtrationAction_eq_comap _ hn]
    exact measurableSet_stepsUntil_eq hA hR' a m n

Dependency graph

Type dependencies (2)

filtrationAction๐Ÿ”—

DefinitionLearning.IsAlgEnvSeq.filtrationAction

Filtration generated by the history at time n-1 together with the action at time n.

๐Ÿ”—def
Learning.IsAlgEnvSeq.filtrationAction.{u_1, u_2, u_3} {๐“ : Type u_1} {๐“จ : Type u_2} {ฮฉ : Type u_3} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {mฮฉ : MeasurableSpace ฮฉ} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} (hA : โˆ€ (n : โ„•), Measurable (A n)) (hY : โˆ€ (n : โ„•), Measurable (Y n)) : MeasureTheory.Filtration โ„• mฮฉ
Learning.IsAlgEnvSeq.filtrationAction.{u_1, u_2, u_3} {๐“ : Type u_1} {๐“จ : Type u_2} {ฮฉ : Type u_3} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {mฮฉ : MeasurableSpace ฮฉ} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} (hA : โˆ€ (n : โ„•), Measurable (A n)) (hY : โˆ€ (n : โ„•), Measurable (Y n)) : MeasureTheory.Filtration โ„• mฮฉ

Code

def IsAlgEnvSeq.filtrationAction
    (hA : โˆ€ n, Measurable (A n)) (hY : โˆ€ n, Measurable (Y n)) :
    Filtration โ„• mฮฉ where
  seq n := if n = 0 then MeasurableSpace.comap (A 0) inferInstance
    else IsAlgEnvSeq.filtration hA hY (n - 1) โŠ” MeasurableSpace.comap (A n) inferInstance
  mono' n m hnm := by
    simp only
    by_cases hn : n = 0
    ยท by_cases hm : m = 0
      ยท simp [hn, hm]
      ยท simp only [hn, โ†“reduceIte, hm]
        refine le_sup_of_le_left ?_
        rw [โ† measurable_iff_comap_le]
        suffices Measurable[IsAlgEnvSeq.filtration hA hY 0] (A 0) from
          this.mono ((IsAlgEnvSeq.filtration hA hY).mono zero_le) le_rfl
        exact adapted_action hA hY 0
    have hm : m โ‰  0 := by grind
    simp only [hn, hm, โ†“reduceIte]
    have hnm' : n - 1 โ‰ค m - 1 := by grind
    simp only [sup_le_iff]
    constructor
    ยท refine le_sup_of_le_left ?_
      exact (IsAlgEnvSeq.filtration hA hY).mono hnm'
    ยท rcases eq_or_lt_of_le hnm with rfl | hlt
      ยท exact le_sup_of_le_right le_rfl
      refine le_sup_of_le_left ?_
      rw [โ† measurable_iff_comap_le]
      have h_le : n โ‰ค m - 1 := by grind
      suffices Measurable[IsAlgEnvSeq.filtration hA hY n] (A n) from
        this.mono ((IsAlgEnvSeq.filtration hA hY).mono h_le) le_rfl
      exact adapted_action hA hY n
  le' n := by
    by_cases hn : n = 0
    ยท simp only [hn, โ†“reduceIte]
      rw [โ† measurable_iff_comap_le]
      fun_prop
    simp only [hn, โ†“reduceIte, sup_le_iff]
    constructor
    ยท exact (IsAlgEnvSeq.filtration hA hY).le _
    ยท rw [โ† measurable_iff_comap_le]
      fun_prop
Body uses (2)
Used by (3)

Actions: Source ยท Open Issue

stepsUntil๐Ÿ”—

DefinitionLearning.stepsUntil

Number of steps until action a was pulled exactly m times.

๐Ÿ”—def
Learning.stepsUntil.{u_1, u_3} {๐“ : Type u_1} {ฮฉ : Type u_3} [DecidableEq ๐“] (A : โ„• โ†’ ฮฉ โ†’ ๐“) (a : ๐“) (m : โ„•) (ฯ‰ : ฮฉ) : โ„•โˆž
Learning.stepsUntil.{u_1, u_3} {๐“ : Type u_1} {ฮฉ : Type u_3} [DecidableEq ๐“] (A : โ„• โ†’ ฮฉ โ†’ ๐“) (a : ๐“) (m : โ„•) (ฯ‰ : ฮฉ) : โ„•โˆž

Code

noncomputable
def stepsUntil (A : โ„• โ†’ ฮฉ โ†’ ๐“) (a : ๐“) (m : โ„•) (ฯ‰ : ฮฉ) : โ„•โˆž :=
  sInf ((โ†‘) '' {s | pullCount A a (s + 1) ฯ‰ = m})
Body uses (1)
Used by (46)

Actions: Source ยท Open Issue

All dependencies, transitively (6)

history๐Ÿ”—

DefinitionLearning.history

History of the algorithm-environment sequence up to time n.

๐Ÿ”—def
Learning.history.{u_1, u_2, u_3} {๐“ : Type u_1} {๐“จ : Type u_2} {ฮฉ : Type u_3} (A : โ„• โ†’ ฮฉ โ†’ ๐“) (Y : โ„• โ†’ ฮฉ โ†’ ๐“จ) (n : โ„•) (ฯ‰ : ฮฉ) : โ†ฅ(Finset.Iic n) โ†’ ๐“ ร— ๐“จ
Learning.history.{u_1, u_2, u_3} {๐“ : Type u_1} {๐“จ : Type u_2} {ฮฉ : Type u_3} (A : โ„• โ†’ ฮฉ โ†’ ๐“) (Y : โ„• โ†’ ฮฉ โ†’ ๐“จ) (n : โ„•) (ฯ‰ : ฮฉ) : โ†ฅ(Finset.Iic n) โ†’ ๐“ ร— ๐“จ

Code

def history (A : โ„• โ†’ ฮฉ โ†’ ๐“) (Y : โ„• โ†’ ฮฉ โ†’ ๐“จ) (n : โ„•) (ฯ‰ : ฮฉ) : Iic n โ†’ ๐“ ร— ๐“จ :=
  fun i โ†ฆ (A i ฯ‰, Y i ฯ‰)
Used by (72)

Actions: Source ยท Open Issue

measurable_comp_comap๐Ÿ”—

LemmaMeasureTheory.measurable_comp_comap

No docstring.

๐Ÿ”—theorem
MeasureTheory.measurable_comp_comap.{u_1, u_2, u_3} {ฮฑ : Type u_1} {ฮฒ : Type u_2} {ฮณ : Type u_3} {mฮฒ : MeasurableSpace ฮฒ} {mฮณ : MeasurableSpace ฮณ} (f : ฮฑ โ†’ ฮฒ) {g : ฮฒ โ†’ ฮณ} (hg : Measurable g) : Measurable (g โˆ˜ f)
MeasureTheory.measurable_comp_comap.{u_1, u_2, u_3} {ฮฑ : Type u_1} {ฮฒ : Type u_2} {ฮณ : Type u_3} {mฮฒ : MeasurableSpace ฮฒ} {mฮณ : MeasurableSpace ฮณ} (f : ฮฑ โ†’ ฮฒ) {g : ฮฒ โ†’ ฮณ} (hg : Measurable g) : Measurable (g โˆ˜ f)

Code

lemma measurable_comp_comap (f : ฮฑ โ†’ ฮฒ) {g : ฮฒ โ†’ ฮณ} (hg : Measurable g) :
    Measurable[mฮฒ.comap f] (g โˆ˜ f)
Used by (10)

Actions: Source ยท Open Issue

Proof
by
  rw [measurable_iff_comap_le, โ† MeasurableSpace.comap_comp]
  exact MeasurableSpace.comap_mono hg.comap_le

measurable_history๐Ÿ”—

LemmaLearning.measurable_history

No docstring.

๐Ÿ”—theorem
Learning.measurable_history.{u_1, u_2, u_3} {๐“ : Type u_1} {๐“จ : Type u_2} {ฮฉ : Type u_3} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {mฮฉ : MeasurableSpace ฮฉ} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} (hA : โˆ€ (n : โ„•), Measurable (A n)) (hY : โˆ€ (n : โ„•), Measurable (Y n)) (n : โ„•) : Measurable (history A Y n)
Learning.measurable_history.{u_1, u_2, u_3} {๐“ : Type u_1} {๐“จ : Type u_2} {ฮฉ : Type u_3} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {mฮฉ : MeasurableSpace ฮฉ} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} (hA : โˆ€ (n : โ„•), Measurable (A n)) (hY : โˆ€ (n : โ„•), Measurable (Y n)) (n : โ„•) : Measurable (history A Y n)

Code

lemma measurable_history (hA : โˆ€ n, Measurable (A n))
    (hY : โˆ€ n, Measurable (Y n)) (n : โ„•) :
    Measurable (history A Y n)
Type uses (1)
Used by (10)

Actions: Source ยท Open Issue

Proof
by
  unfold history
  fun_prop

filtration๐Ÿ”—

DefinitionLearning.IsAlgEnvSeq.filtration

Filtration generated by the history up to time n.

๐Ÿ”—def
Learning.IsAlgEnvSeq.filtration.{u_1, u_2, u_3} {๐“ : Type u_1} {๐“จ : Type u_2} {ฮฉ : Type u_3} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {mฮฉ : MeasurableSpace ฮฉ} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} (hA : โˆ€ (n : โ„•), Measurable (A n)) (hY : โˆ€ (n : โ„•), Measurable (Y n)) : MeasureTheory.Filtration โ„• mฮฉ
Learning.IsAlgEnvSeq.filtration.{u_1, u_2, u_3} {๐“ : Type u_1} {๐“จ : Type u_2} {ฮฉ : Type u_3} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {mฮฉ : MeasurableSpace ฮฉ} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} (hA : โˆ€ (n : โ„•), Measurable (A n)) (hY : โˆ€ (n : โ„•), Measurable (Y n)) : MeasureTheory.Filtration โ„• mฮฉ

Code

def IsAlgEnvSeq.filtration (hA : โˆ€ n, Measurable (A n)) (hY : โˆ€ n, Measurable (Y n)) :
    Filtration โ„• mฮฉ where
  seq i := MeasurableSpace.comap (history A Y i) inferInstance
  mono' i j hij := by
    simp only
    rw [โ† measurable_iff_comap_le]
    have : history A Y i = (fun h k โ†ฆ h โŸจk.1, by grindโŸฉ) โˆ˜ history A Y j := rfl
    rw [this]
    exact measurable_comp_comap _ (by fun_prop)
  le' i := by
    rw [โ† measurable_iff_comap_le]
    exact Learning.measurable_history hA hY i
Body uses (3)
Used by (18)

Actions: Source ยท Open Issue

adapted_action๐Ÿ”—

LemmaLearning.IsAlgEnvSeq.adapted_action

No docstring.

๐Ÿ”—theorem
Learning.IsAlgEnvSeq.adapted_action.{u_1, u_2, u_3} {๐“ : Type u_1} {๐“จ : Type u_2} {ฮฉ : Type u_3} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {mฮฉ : MeasurableSpace ฮฉ} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} (hA : โˆ€ (n : โ„•), Measurable (A n)) (hY : โˆ€ (n : โ„•), Measurable (Y n)) : MeasureTheory.Adapted (filtration hA hY) A
Learning.IsAlgEnvSeq.adapted_action.{u_1, u_2, u_3} {๐“ : Type u_1} {๐“จ : Type u_2} {ฮฉ : Type u_3} {m๐“ : MeasurableSpace ๐“} {m๐“จ : MeasurableSpace ๐“จ} {mฮฉ : MeasurableSpace ฮฉ} {A : โ„• โ†’ ฮฉ โ†’ ๐“} {Y : โ„• โ†’ ฮฉ โ†’ ๐“จ} (hA : โˆ€ (n : โ„•), Measurable (A n)) (hY : โˆ€ (n : โ„•), Measurable (Y n)) : MeasureTheory.Adapted (filtration hA hY) A

Code

lemma IsAlgEnvSeq.adapted_action
    (hA : โˆ€ n, Measurable (A n)) (hY : โˆ€ n, Measurable (Y n)) :
    Adapted (filtration hA hY) A
Type uses (1)
Body uses (2)
Used by (3)

Actions: Source ยท Open Issue

Proof
by
  intro n
  have : A n = (fun h โ†ฆ (h โŸจn, by simpโŸฉ).1) โˆ˜ (history A Y n) := by
    ext ฯ‰ : 1
    simp [history]
  rw [this]
  exact measurable_comp_comap _ (by fun_prop)

pullCount๐Ÿ”—

DefinitionLearning.pullCount

Number of times action a was chosen up to time t (excluding t).

๐Ÿ”—def
Learning.pullCount.{u_1, u_3} {๐“ : Type u_1} {ฮฉ : Type u_3} [DecidableEq ๐“] (A : โ„• โ†’ ฮฉ โ†’ ๐“) (a : ๐“) (t : โ„•) (ฯ‰ : ฮฉ) : โ„•
Learning.pullCount.{u_1, u_3} {๐“ : Type u_1} {ฮฉ : Type u_3} [DecidableEq ๐“] (A : โ„• โ†’ ฮฉ โ†’ ๐“) (a : ๐“) (t : โ„•) (ฯ‰ : ฮฉ) : โ„•

Code

noncomputable
def pullCount (A : โ„• โ†’ ฮฉ โ†’ ๐“) (a : ๐“) (t : โ„•) (ฯ‰ : ฮฉ) : โ„• :=
  #(filter (fun s โ†ฆ A s ฯ‰ = a) (range t))
Used by (146)

Actions: Source ยท Open Issue