LeanMachineLearning exposition

Learning.pullCount_eq_pullCount'๐Ÿ”—

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

pullCount_eq_pullCount'๐Ÿ”—

LemmaLearning.pullCount_eq_pullCount'

No docstring.

๐Ÿ”—theorem
Learning.pullCount_eq_pullCount'.{u_1, u_2, u_3} {๐“ : Type u_1} {R : Type u_2} {ฮฉ : Type u_3} [DecidableEq ๐“] {A : โ„• โ†’ ฮฉ โ†’ ๐“} {R' : โ„• โ†’ ฮฉ โ†’ R} {a : ๐“} {n : โ„•} {ฯ‰ : ฮฉ} (hn : n โ‰  0) : pullCount A a n ฯ‰ = pullCount' (n - 1) (fun i => (A (โ†‘i) ฯ‰, R' (โ†‘i) ฯ‰)) a
Learning.pullCount_eq_pullCount'.{u_1, u_2, u_3} {๐“ : Type u_1} {R : Type u_2} {ฮฉ : Type u_3} [DecidableEq ๐“] {A : โ„• โ†’ ฮฉ โ†’ ๐“} {R' : โ„• โ†’ ฮฉ โ†’ R} {a : ๐“} {n : โ„•} {ฯ‰ : ฮฉ} (hn : n โ‰  0) : pullCount A a n ฯ‰ = pullCount' (n - 1) (fun i => (A (โ†‘i) ฯ‰, R' (โ†‘i) ฯ‰)) a

Code

lemma pullCount_eq_pullCount' {n : โ„•} {ฯ‰ : ฮฉ} (hn : n โ‰  0) :
    pullCount A a n ฯ‰ = pullCount' (n - 1) (fun i โ†ฆ (A i ฯ‰, R' i ฯ‰)) a
Type uses (2)
Body uses (1)
Used by (4)

Actions: Source ยท Open Issue

Proof
by
  cases n with
  | zero => exact absurd rfl hn
  | succ n => simp [pullCount_add_one_eq_pullCount' (R' := R')]

Dependency graph

Type dependencies (2)

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

pullCount'๐Ÿ”—

DefinitionLearning.pullCount'

Number of pulls of arm a up to (and including) time n. This is the number of entries in h in which the arm is a.

๐Ÿ”—def
Learning.pullCount'.{u_1, u_2} {๐“ : Type u_1} {R : Type u_2} [DecidableEq ๐“] (n : โ„•) (h : โ†ฅ(Finset.Iic n) โ†’ ๐“ ร— R) (a : ๐“) : โ„•
Learning.pullCount'.{u_1, u_2} {๐“ : Type u_1} {R : Type u_2} [DecidableEq ๐“] (n : โ„•) (h : โ†ฅ(Finset.Iic n) โ†’ ๐“ ร— R) (a : ๐“) : โ„•

Code

noncomputable
def pullCount' (n : โ„•) (h : Iic n โ†’ ๐“ ร— R) (a : ๐“) := #{s | (h s).1 = a}
Used by (29)

Actions: Source ยท Open Issue