Learning.stepsUntil_eq_dite
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.
stepsUntil_eq_dite๐
Learning.stepsUntil_eq_diteNo docstring.
Learning.stepsUntil_eq_dite.{u_1, u_3} {๐ : Type u_1} {ฮฉ : Type u_3} [DecidableEq ๐] {A : โ โ ฮฉ โ ๐} (a : ๐) (m : โ) (ฯ : ฮฉ) [Decidable (โ s, pullCount A a (s + 1) ฯ = m)] : stepsUntil A a m ฯ = if h : โ s, pullCount A a (s + 1) ฯ = m then โ(Nat.find h) else โคLearning.stepsUntil_eq_dite.{u_1, u_3} {๐ : Type u_1} {ฮฉ : Type u_3} [DecidableEq ๐] {A : โ โ ฮฉ โ ๐} (a : ๐) (m : โ) (ฯ : ฮฉ) [Decidable (โ s, pullCount A a (s + 1) ฯ = m)] : stepsUntil A a m ฯ = if h : โ s, pullCount A a (s + 1) ฯ = m then โ(Nat.find h) else โค
Code
lemma stepsUntil_eq_dite (a : ๐) (m : โ) (ฯ : ฮฉ)
[Decidable (โ s, pullCount A a (s + 1) ฯ = m)] :
stepsUntil A a m ฯ =
if h : โ s, pullCount A a (s + 1) ฯ = m then (Nat.find h : โโ) else โคType uses (2)
Used by (7)
Actions: Source ยท Open Issue
Proof
by
unfold stepsUntil
split_ifs with h'
ยท refine le_antisymm ?_ ?_
ยท refine sInf_le ?_
simpa using Nat.find_spec h'
ยท simp only [le_sInf_iff, Set.mem_image, Set.mem_setOf_eq, forall_exists_index, and_imp,
forall_apply_eq_imp_iffโ, Nat.cast_le, Nat.find_le_iff]
exact fun n hn โฆ โจn, le_rfl, hnโฉ
ยท push Not at h'
suffices {s | pullCount A a (s + 1) ฯ = m} = โ
by simp [this]
ext s
simpa using (h' s)Dependency 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