LeanMachineLearning exposition

Learning.sumRewards_add_one_eq_sumRewards'๐Ÿ”—

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

sumRewards_add_one_eq_sumRewards'๐Ÿ”—

LemmaLearning.sumRewards_add_one_eq_sumRewards'

No docstring.

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

Code

lemma sumRewards_add_one_eq_sumRewards' {R' : โ„• โ†’ ฮฉ โ†’ โ„} {n : โ„•} {ฯ‰ : ฮฉ} :
    sumRewards A R' a (n + 1) ฯ‰ = sumRewards' n (fun i โ†ฆ (A i ฯ‰, R' i ฯ‰)) a
Type uses (2)
Used by (2)

Actions: Source ยท Open Issue

Proof
by
  unfold sumRewards sumRewards'
  rw [Finset.sum_coe_sort (f := fun s โ†ฆ if A s ฯ‰ = a then R' s ฯ‰ else 0) (Iic n)]
  congr with m
  simp only [mem_range, mem_Iic]
  grind

Dependency graph

Type dependencies (2)

sumRewards๐Ÿ”—

DefinitionLearning.sumRewards

Sum of rewards obtained when pulling action a up to time t (exclusive).

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

Code

def sumRewards (A : โ„• โ†’ ฮฉ โ†’ ๐“) (R' : โ„• โ†’ ฮฉ โ†’ โ„) (a : ๐“) (t : โ„•) (ฯ‰ : ฮฉ) : โ„ :=
  โˆ‘ s โˆˆ range t, if A s ฯ‰ = a then R' s ฯ‰ else 0
Used by (44)

Actions: Source ยท Open Issue

sumRewards'๐Ÿ”—

DefinitionLearning.sumRewards'

Sum of rewards of arm a up to (and including) time n.

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

Code

noncomputable
def sumRewards' (n : โ„•) (h : Iic n โ†’ ๐“ ร— โ„) (a : ๐“) :=
  โˆ‘ s, if (h s).1 = a then (h s).2 else 0
Used by (9)

Actions: Source ยท Open Issue