Learning.pullCount_lt_of_le_stepsUntil
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.
pullCount_lt_of_le_stepsUntil๐
Learning.pullCount_lt_of_le_stepsUntilNo docstring.
Learning.pullCount_lt_of_le_stepsUntil.{u_1, u_3} {๐ : Type u_1} {ฮฉ : Type u_3} [DecidableEq ๐] {A : โ โ ฮฉ โ ๐} (a : ๐) {n m : โ} (ฯ : ฮฉ) (h_exists : โ s, pullCount A a (s + 1) ฯ = m) (hn : โn < stepsUntil A a m ฯ) : pullCount A a (n + 1) ฯ < mLearning.pullCount_lt_of_le_stepsUntil.{u_1, u_3} {๐ : Type u_1} {ฮฉ : Type u_3} [DecidableEq ๐] {A : โ โ ฮฉ โ ๐} (a : ๐) {n m : โ} (ฯ : ฮฉ) (h_exists : โ s, pullCount A a (s + 1) ฯ = m) (hn : โn < stepsUntil A a m ฯ) : pullCount A a (n + 1) ฯ < m
Code
lemma pullCount_lt_of_le_stepsUntil (a : ๐) {n m : โ} (ฯ : ฮฉ)
(h_exists : โ s, pullCount A a (s + 1) ฯ = m) (hn : n < stepsUntil A a m ฯ) :
pullCount A a (n + 1) ฯ < mType uses (2)
Used by (1)
Actions: Source ยท Open Issue
Proof
by
classical
have h_eq := stepsUntil_eq_dite (A := A) a m ฯ
simp only [h_exists, โreduceDIte] at h_eq
rw [โ ENat.coe_toNat (stepsUntil_ne_top h_exists)] at hn
refine lt_of_le_of_ne ?_ ?_
ยท calc pullCount A a (n + 1) ฯ
_ โค pullCount A a (stepsUntil A a m ฯ + 1).toNat ฯ := by
refine monotone_pullCount a ฯ ?_
rw [ENat.toNat_add (stepsUntil_ne_top h_exists) (by simp)]
simp only [ENat.toNat_one, add_le_add_iff_right]
exact mod_cast hn.le
_ = m := pullCount_stepsUntil_add_one h_exists
ยท refine Nat.find_min h_exists (m := n) ?_
suffices n < (stepsUntil A a m ฯ).toNat by
rwa [h_eq, ENat.toNat_coe] at this
exact mod_cast hnDependency graph
Type dependencies (2)
pullCount๐
Learning.pullCount
Number of times action a was chosen up to time t (excluding t).
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))
Actions: Source ยท Open Issue
stepsUntil๐
Learning.stepsUntil
Number of steps until action a was pulled exactly m times.
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