BanditRLlib
Lean gate passed before this site build; local proof declarations are shown as compiled.Lean-verified build · exact declarations linked.

Lean module · Frontier

BanditRLProof.Algorithms.StochasticGradientBanditTheoremTwoNativeTrajectory

The latent arm-stream coupling samples every reward coordinate before the algorithm runs. The native fixed-IID process samples only the reward selected at each round. Connecting those constructions requires a deferred-decisions argument, not merely equality of one-coordinate marginals.

Module map

Declarations
55
Placeholders
0

Imports

BanditRLProof.Algorithms.StochasticGradientBanditTheoremTwoLatentReward, BanditRLProof.Algorithms.ThompsonRecursiveSampler, BanditRLProof.Algorithms.ThompsonReferencePolicy, BanditRLProof.KernelIndependentExtension, BanditRLProof.KernelTrajectoryPrefix

Imported by

BanditRLProof, BanditRLProof.Algorithms.StochasticGradientBanditTheoremTwoNativePrefix

Declarations

Open an item to read its exact compact statement and source link. Detailed teaching notes are linked when registered.

theorem BanditRLProof.UCB.armStreamMeasure_map_frestrictLe_eq_pi Compiled

Restricting the latent arm stream through time `n` gives the exact finite product of the per-round arm-vector laws.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.UCB.armStreamMeasure_map_frestrictLe_eq_pi

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem armStreamMeasure_map_frestrictLe_eq_pi {K : Nat} (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : Measure.map (Preorder.frestrictLe n) (armStreamMeasure nu) = Measure.pi (fun _ : Finset.Iic n => Measure.infinitePi fun arm : Fin K => nu arm)
def BanditRLProof.UCB.extendArmStreamFinitePrefix Compiled

Extend a finite arm-stream box by zero rows after its endpoint.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.UCB.extendArmStreamFinitePrefix

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

def extendArmStreamFinitePrefix {K : Nat} (n : Nat) (streamBox : (i : Finset.Iic n) -> Fin K -> Real) : ArmRewardStream K
theorem BanditRLProof.UCB.measurable_extendArmStreamFinitePrefix Compiled

No declaration docstring is present; use the chapter context and exact statement below.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.UCB.measurable_extendArmStreamFinitePrefix

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem measurable_extendArmStreamFinitePrefix {K : Nat} (n : Nat) : Measurable (extendArmStreamFinitePrefix (K := K) n)
theorem BanditRLProof.UCB.extendArmStreamFinitePrefix_apply_of_le Compiled

No declaration docstring is present; use the chapter context and exact statement below.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.UCB.extendArmStreamFinitePrefix_apply_of_le

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem extendArmStreamFinitePrefix_apply_of_le {K : Nat} (n t : Nat) (ht : t <= n) (streamBox : (i : Finset.Iic n) -> Fin K -> Real) : extendArmStreamFinitePrefix n streamBox t = streamBox ⟨t, Finset.mem_Iic.mpr ht⟩
theorem BanditRLProof.UCB.armStreamMeasure_map_output_coordinate_compProd_comap_without_eq_prod Compiled

A finite kernel driven only by the complement of one arm-stream coordinate leaves that coordinate's prescribed marginal independent of the kernel output. The output kernel may be sub-Markov, as needed after branch restriction.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.UCB.armStreamMeasure_map_output_coordinate_compProd_comap_without_eq_prod

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem armStreamMeasure_map_output_coordinate_compProd_comap_without_eq_prod {K : Nat} {Output : Type*} [MeasurableSpace Output] (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (target : Nat × Fin K) (kernel : Kernel ({index : Nat × Fin K // index ≠ target} -> Real) Output) [IsFiniteKernel kernel] : Measure.map (fun sample : ArmRewardStream K × Output => (sample.2, armStreamCoordinate target sample.1)) (armStreamMeasure nu ⊗ₘ kernel.comap (armStreamWithoutCoordinate target) (measurable_armStreamWithoutCoordinate target)) = (Measure.map Prod.snd (armStreamMeasure nu ⊗ₘ kernel.comap (armStreamWithoutCoordinate target) (measurable_armStreamWithoutCoordinate target))).prod (nu target.2)
theorem BanditRLProof.Thompson.latentArmStreamTrajectoryKernel_map_prefix_next_eq_compProd Compiled

Fixed-stream finite-prefix/next-pair recursion for the latent arm-stream trajectory. This is the trajectory-level recurrence used by the count-capped locality induction below.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamTrajectoryKernel_map_prefix_next_eq_compProd

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamTrajectoryKernel_map_prefix_next_eq_compProd {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (stream : UCB.ArmRewardStream K) (n : Nat) : (latentArmStreamTrajectoryKernel algorithm env stream).map (fun trajectory => (Preorder.frestrictLe n trajectory, trajectory (n + 1))) = (latentArmStreamTrajectoryKernel algorithm env stream).map (Preorder.frestrictLe n) ⊗ₘ historyStepKernel algorithm ((latentArmStreamMeasurableHistoryEnvironment (Env := Env) (K := K)).at (env, stream)) n
theorem BanditRLProof.Thompson.latentArmStreamFeedback_eq_of_withoutCoordinate_eq_of_selectedCoordinate_ne Compiled

If two latent reward streams agree away from one coordinate, then their feedback laws agree at every history/action pair whose next-unused coordinate is not the omitted one.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamFeedback_eq_of_withoutCoordinate_eq_of_selectedCoordinate_ne

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamFeedback_eq_of_withoutCoordinate_eq_of_selectedCoordinate_ne {Env : Type u} {K : Nat} [MeasurableSpace Env] (env : Env) (target : Nat × Fin K) (stream₁ stream₂ : UCB.ArmRewardStream K) (n : Nat) (history : History.FinitePairHistory (Fin K) Real n) (arm : Fin K) (hwithout : UCB.armStreamWithoutCoordinate target stream₁ = UCB.armStreamWithoutCoordinate target stream₂) (hne : (ETC.realHistoryPullCount n history arm, arm) ≠ target) : ((latentArmStreamMeasurableHistoryEnvironment (Env := Env) (K := K)).at (env, stream₁)).feedback n (history, arm) = ((latentArmStreamMeasurableHistoryEnvironment (Env := Env) (K := K)).at (env, stream₂)).feedback n (history, arm)
theorem BanditRLProof.Thompson.historyStepKernel_apply_eq_of_withoutCoordinate_eq_of_target_count_lt Compiled

Before the target coordinate can be the next coordinate of its arm, the entire next-pair law agrees for streams with the same omitted-coordinate projection.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.historyStepKernel_apply_eq_of_withoutCoordinate_eq_of_target_count_lt

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem historyStepKernel_apply_eq_of_withoutCoordinate_eq_of_target_count_lt {Env : Type u} {K : Nat} [MeasurableSpace Env] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (target : Nat × Fin K) (stream₁ stream₂ : UCB.ArmRewardStream K) (n : Nat) (history : History.FinitePairHistory (Fin K) Real n) (hwithout : UCB.armStreamWithoutCoordinate target stream₁ = UCB.armStreamWithoutCoordinate target stream₂) (hcount : ETC.realHistoryPullCount n history target.2 < target.1) : historyStepKernel algorithm ((latentArmStreamMeasurableHistoryEnvironment (Env := Env) (K := K)).at (env, stream₁)) n history = historyStepKernel algorithm ((latentArmStreamMeasurableHistoryEnvironment (Env := Env) (K := K)).at (env, stream₂)) n history
def BanditRLProof.Thompson.latentArmStreamNextActionNeSet Compiled

Next pairs whose action avoids a designated arm.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamNextActionNeSet

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

def latentArmStreamNextActionNeSet {K : Nat} (arm : Fin K) : Set (Fin K × Real)
def BanditRLProof.Thompson.latentArmStreamInitialSafeArmSet Compiled

Initial actions whose time-zero reward coordinate is not the omitted target.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamInitialSafeArmSet

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

def latentArmStreamInitialSafeArmSet {K : Nat} (target : Nat × Fin K) : Set (Fin K)
theorem BanditRLProof.Thompson.measurableSet_latentArmStreamNextActionNeSet Compiled

No declaration docstring is present; use the chapter context and exact statement below.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.measurableSet_latentArmStreamNextActionNeSet

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem measurableSet_latentArmStreamNextActionNeSet {K : Nat} (arm : Fin K) : MeasurableSet (latentArmStreamNextActionNeSet arm)
theorem BanditRLProof.Thompson.historyStepKernel_apply_restrict_nextActionNe_eq_of_withoutCoordinate_eq Compiled

Even when the target pull index may already be next, the part of the next-pair law selecting another arm remains independent of the target coordinate.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.historyStepKernel_apply_restrict_nextActionNe_eq_of_withoutCoordinate_eq

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem historyStepKernel_apply_restrict_nextActionNe_eq_of_withoutCoordinate_eq {Env : Type u} {K : Nat} [MeasurableSpace Env] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (target : Nat × Fin K) (stream₁ stream₂ : UCB.ArmRewardStream K) (n : Nat) (history : History.FinitePairHistory (Fin K) Real n) (hwithout : UCB.armStreamWithoutCoordinate target stream₁ = UCB.armStreamWithoutCoordinate target stream₂) : (historyStepKernel algorithm ((latentArmStreamMeasurableHistoryEnvironment (Env := Env) (K := K)).at (env, stream₁)) n history).restrict (latentArmStreamNextActionNeSet target.2) = (historyStepKernel algorithm ((latentArmStreamMeasurableHistoryEnvironment (Env := Env) (K := K)).at (env, stream₂)) n history).restrict (latentArmStreamNextActionNeSet target.2)
theorem BanditRLProof.Thompson.latentArmStreamTrajectoryKernel_map_frestrictLe_zero Compiled

The time-zero visible prefix is the initial action/feedback pair pushed through the singleton-history constructor.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamTrajectoryKernel_map_frestrictLe_zero

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamTrajectoryKernel_map_frestrictLe_zero {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (stream : UCB.ArmRewardStream K) : (latentArmStreamTrajectoryKernel algorithm env stream).map (Preorder.frestrictLe 0) = (algorithm.initialAction ⊗ₘ ((latentArmStreamMeasurableHistoryEnvironment (Env := Env) (K := K)).at (env, stream)).initialFeedback).map singletonPairHistory
theorem BanditRLProof.Thompson.latentArmStreamTrajectoryKernel_map_frestrictLe_eq_of_streamPrefix_eq Compiled

Two latent streams agreeing through `n` generate the same visible trajectory law through `n`. Action randomization remains inside the canonical trajectory kernel; the argument changes only deterministic reward fibers.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamTrajectoryKernel_map_frestrictLe_eq_of_streamPrefix_eq

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamTrajectoryKernel_map_frestrictLe_eq_of_streamPrefix_eq {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (stream₁ stream₂ : UCB.ArmRewardStream K) (n : Nat) (hstream : Preorder.frestrictLe n stream₁ = Preorder.frestrictLe n stream₂) : (latentArmStreamTrajectoryKernel algorithm env stream₁).map (Preorder.frestrictLe n) = (latentArmStreamTrajectoryKernel algorithm env stream₂).map (Preorder.frestrictLe n)
def BanditRLProof.Thompson.latentArmStreamVisiblePrefixKernel Compiled

Finite visible-prefix kernel after replacing the infinite reward stream by its zero-extended finite box.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisiblePrefixKernel

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

noncomputable def latentArmStreamVisiblePrefixKernel {Env : Type u} {K : Nat} [MeasurableSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (n : Nat) : Kernel ((i : Finset.Iic n) -> Fin K -> Real) (History.FinitePairHistory (Fin K) Real n)
theorem BanditRLProof.Thompson.latentArmStreamTrajectoryKernel_map_frestrictLe_eq_prefixKernel_comap Compiled

The latent visible-prefix kernel factors exactly through the finite stream box through the same endpoint.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamTrajectoryKernel_map_frestrictLe_eq_prefixKernel_comap

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamTrajectoryKernel_map_frestrictLe_eq_prefixKernel_comap {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (n : Nat) : (latentArmStreamTrajectoryKernel algorithm env).map (Preorder.frestrictLe n) = (latentArmStreamVisiblePrefixKernel algorithm env n).comap (Preorder.frestrictLe n) (Preorder.measurable_frestrictLe n)
def BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextAction Compiled

Visible history through `n` paired with the action selected at `n + 1`.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextAction

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

def latentArmStreamVisiblePrefixNextAction {K : Nat} (n : Nat) : ((t : Nat) -> Fin K × Real) -> History.FinitePairHistory (Fin K) Real n × Fin K
theorem BanditRLProof.Thompson.measurable_latentArmStreamVisiblePrefixNextAction Compiled

No declaration docstring is present; use the chapter context and exact statement below.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.measurable_latentArmStreamVisiblePrefixNextAction

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem measurable_latentArmStreamVisiblePrefixNextAction {K : Nat} (n : Nat) : Measurable (latentArmStreamVisiblePrefixNextAction (K := K) n)
def BanditRLProof.Thompson.latentArmStreamVisibleNextReward Compiled

Reward observed at the shifted successor time `n + 1`.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisibleNextReward

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

def latentArmStreamVisibleNextReward {K : Nat} (n : Nat) : ((t : Nat) -> Fin K × Real) -> Real
theorem BanditRLProof.Thompson.measurable_latentArmStreamVisibleNextReward Compiled

No declaration docstring is present; use the chapter context and exact statement below.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.measurable_latentArmStreamVisibleNextReward

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem measurable_latentArmStreamVisibleNextReward {K : Nat} (n : Nat) : Measurable (latentArmStreamVisibleNextReward (K := K) n)
def BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextActionBranchKernel Compiled

Canonical candidate for the condition kernel on one next-coordinate branch, reconstructed after fixing the omitted coordinate to zero.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextActionBranchKernel

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

noncomputable def latentArmStreamVisiblePrefixNextActionBranchKernel {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (n : Nat) (target : Nat × Fin K) : Kernel ({index : Nat × Fin K // index ≠ target} -> Real) (History.FinitePairHistory (Fin K) Real n × Fin K)
def BanditRLProof.Thompson.latentArmStreamPrefixCountCap Compiled

Histories through `n` that have not consumed the designated latent coordinate. The inclusive history count can equal the coordinate index: that coordinate is used only by the next reward from the same arm.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamPrefixCountCap

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

def latentArmStreamPrefixCountCap {K : Nat} (n : Nat) (target : Nat × Fin K) : Set (History.FinitePairHistory (Fin K) Real n)
theorem BanditRLProof.Thompson.measurableSet_latentArmStreamPrefixCountCap Compiled

No declaration docstring is present; use the chapter context and exact statement below.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.measurableSet_latentArmStreamPrefixCountCap

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem measurableSet_latentArmStreamPrefixCountCap {K : Nat} (n : Nat) (target : Nat × Fin K) : MeasurableSet (latentArmStreamPrefixCountCap n target)
theorem BanditRLProof.Thompson.singletonPairHistory_preimage_latentArmStreamPrefixCountCap_zero Compiled

Pulling the time-zero count cap back through the singleton-history constructor leaves exactly the actions whose initial reward coordinate is not the omitted target.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.singletonPairHistory_preimage_latentArmStreamPrefixCountCap_zero

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem singletonPairHistory_preimage_latentArmStreamPrefixCountCap_zero {K : Nat} (target : Nat × Fin K) : (@singletonPairHistory (Fin K) Real) ⁻¹' latentArmStreamPrefixCountCap 0 target = latentArmStreamInitialSafeArmSet target ×ˢ Set.univ
theorem BanditRLProof.Thompson.latentArmStreamPrefixCountCapLocality_zero Compiled

Count-cap locality at the initial pair.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamPrefixCountCapLocality_zero

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamPrefixCountCapLocality_zero {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (target : Nat × Fin K) (stream₁ stream₂ : UCB.ArmRewardStream K) (hwithout : UCB.armStreamWithoutCoordinate target stream₁ = UCB.armStreamWithoutCoordinate target stream₂) : ((latentArmStreamTrajectoryKernel algorithm env stream₁).map (Preorder.frestrictLe 0)).restrict (latentArmStreamPrefixCountCap 0 target) = ((latentArmStreamTrajectoryKernel algorithm env stream₂).map (Preorder.frestrictLe 0)).restrict (latentArmStreamPrefixCountCap 0 target)
def BanditRLProof.Thompson.latentArmStreamPrefixCountLt Compiled

Strict count region used by the first rectangle in the successor cap decomposition.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamPrefixCountLt

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

def latentArmStreamPrefixCountLt {K : Nat} (n : Nat) (target : Nat × Fin K) : Set (History.FinitePairHistory (Fin K) Real n)
theorem BanditRLProof.Thompson.measurableSet_latentArmStreamPrefixCountLt Compiled

No declaration docstring is present; use the chapter context and exact statement below.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.measurableSet_latentArmStreamPrefixCountLt

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem measurableSet_latentArmStreamPrefixCountLt {K : Nat} (n : Nat) (target : Nat × Fin K) : MeasurableSet (latentArmStreamPrefixCountLt n target)
def BanditRLProof.Thompson.latentArmStreamPrefixCountEq Compiled

Exact count region used by the second rectangle in the successor cap decomposition.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamPrefixCountEq

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

def latentArmStreamPrefixCountEq {K : Nat} (n : Nat) (target : Nat × Fin K) : Set (History.FinitePairHistory (Fin K) Real n)
theorem BanditRLProof.Thompson.measurableSet_latentArmStreamPrefixCountEq Compiled

No declaration docstring is present; use the chapter context and exact statement below.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.measurableSet_latentArmStreamPrefixCountEq

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem measurableSet_latentArmStreamPrefixCountEq {K : Nat} (n : Nat) (target : Nat × Fin K) : MeasurableSet (latentArmStreamPrefixCountEq n target)
theorem BanditRLProof.Thompson.realHistoryPullCount_extendPairHistorySucc Compiled

Extending an inclusive finite pair history increments exactly the count of the arm selected by the appended pair.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.realHistoryPullCount_extendPairHistorySucc

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem realHistoryPullCount_extendPairHistorySucc {K : Nat} (n : Nat) (history : History.FinitePairHistory (Fin K) Real n) (next : Fin K × Real) (arm : Fin K) : ETC.realHistoryPullCount (n + 1) (History.extendPairHistorySucc history next) arm = ETC.realHistoryPullCount n history arm + if next.1 = arm then 1 else 0
theorem BanditRLProof.Thompson.mem_latentArmStreamPrefixCountCap_extendPairHistorySucc_iff Compiled

The successor prefix remains below the target count cap exactly when the old prefix is capped and either has strict slack or avoids the target arm.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.mem_latentArmStreamPrefixCountCap_extendPairHistorySucc_iff

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem mem_latentArmStreamPrefixCountCap_extendPairHistorySucc_iff {K : Nat} (n : Nat) (history : History.FinitePairHistory (Fin K) Real n) (next : Fin K × Real) (target : Nat × Fin K) : History.extendPairHistorySucc history next ∈ latentArmStreamPrefixCountCap (n + 1) target ↔ history ∈ latentArmStreamPrefixCountCap n target ∧ (ETC.realHistoryPullCount n history target.2 < target.1 ∨ next.1 ≠ target.2)
theorem BanditRLProof.Thompson.latentArmStreamPrefixCountCap_of_extendPairHistorySucc_mem Compiled

A capped successor prefix was already capped before appending its last action/reward pair.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamPrefixCountCap_of_extendPairHistorySucc_mem

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamPrefixCountCap_of_extendPairHistorySucc_mem {K : Nat} (n : Nat) (history : History.FinitePairHistory (Fin K) Real n) (next : Fin K × Real) (target : Nat × Fin K) (hcap : History.extendPairHistorySucc history next ∈ latentArmStreamPrefixCountCap (n + 1) target) : history ∈ latentArmStreamPrefixCountCap n target
theorem BanditRLProof.Thompson.selectedCoordinate_ne_of_extendPairHistorySucc_mem_prefixCountCap Compiled

Every appended pair that remains in the successor cap reads a stream coordinate different from the omitted target.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.selectedCoordinate_ne_of_extendPairHistorySucc_mem_prefixCountCap

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem selectedCoordinate_ne_of_extendPairHistorySucc_mem_prefixCountCap {K : Nat} (n : Nat) (history : History.FinitePairHistory (Fin K) Real n) (next : Fin K × Real) (target : Nat × Fin K) (hcap : History.extendPairHistorySucc history next ∈ latentArmStreamPrefixCountCap (n + 1) target) : (ETC.realHistoryPullCount n history next.1, next.1) ≠ target
theorem BanditRLProof.Thompson.latentArmStreamSuccessorCountCap_preimage Compiled

Pulling the successor count cap back through history extension gives two measurable rectangles: below the target count every action is safe, while at the target count only actions avoiding the target arm are safe.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamSuccessorCountCap_preimage

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamSuccessorCountCap_preimage {K : Nat} (n : Nat) (target : Nat × Fin K) : (fun sample : History.FinitePairHistory (Fin K) Real n × (Fin K × Real) => History.extendPairHistorySucc sample.1 sample.2) ⁻¹' latentArmStreamPrefixCountCap (n + 1) target = (latentArmStreamPrefixCountLt n target ×ˢ Set.univ) ∪ (latentArmStreamPrefixCountEq n target ×ˢ latentArmStreamNextActionNeSet target.2)
def BanditRLProof.Thompson.latentArmStreamSuccessorCountCapSection Compiled

Next action/reward pairs that keep a fixed old prefix below the successor count cap.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamSuccessorCountCapSection

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

def latentArmStreamSuccessorCountCapSection {K : Nat} (n : Nat) (target : Nat × Fin K) (history : History.FinitePairHistory (Fin K) Real n) : Set (Fin K × Real)
theorem BanditRLProof.Thompson.measurableSet_latentArmStreamSuccessorCountCapSection Compiled

No declaration docstring is present; use the chapter context and exact statement below.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.measurableSet_latentArmStreamSuccessorCountCapSection

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem measurableSet_latentArmStreamSuccessorCountCapSection {K : Nat} (n : Nat) (target : Nat × Fin K) (history : History.FinitePairHistory (Fin K) Real n) : MeasurableSet (latentArmStreamSuccessorCountCapSection n target history)
theorem BanditRLProof.Thompson.historyStepKernel_apply_restrict_successorCountCap_eq_of_withoutCoordinate_eq Compiled

Over a previously capped prefix, the one-step law restricted to capped successors depends only on the complement of the omitted stream coordinate.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.historyStepKernel_apply_restrict_successorCountCap_eq_of_withoutCoordinate_eq

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem historyStepKernel_apply_restrict_successorCountCap_eq_of_withoutCoordinate_eq {Env : Type u} {K : Nat} [MeasurableSpace Env] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (target : Nat × Fin K) (stream₁ stream₂ : UCB.ArmRewardStream K) (n : Nat) (history : History.FinitePairHistory (Fin K) Real n) (hwithout : UCB.armStreamWithoutCoordinate target stream₁ = UCB.armStreamWithoutCoordinate target stream₂) (hcap : history ∈ latentArmStreamPrefixCountCap n target) : (historyStepKernel algorithm ((latentArmStreamMeasurableHistoryEnvironment (Env := Env) (K := K)).at (env, stream₁)) n history).restrict (latentArmStreamSuccessorCountCapSection n target history) = (historyStepKernel algorithm ((latentArmStreamMeasurableHistoryEnvironment (Env := Env) (K := K)).at (env, stream₂)) n history).restrict (latentArmStreamSuccessorCountCapSection n target history)
theorem BanditRLProof.Thompson.latentArmStreamTrajectoryKernel_map_frestrictLe_restrict_countCap_succ Compiled

Successor step for count-capped locality of the fixed-stream visible trajectory prefix law.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamTrajectoryKernel_map_frestrictLe_restrict_countCap_succ

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamTrajectoryKernel_map_frestrictLe_restrict_countCap_succ {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (target : Nat × Fin K) (stream₁ stream₂ : UCB.ArmRewardStream K) (hwithout : UCB.armStreamWithoutCoordinate target stream₁ = UCB.armStreamWithoutCoordinate target stream₂) (n : Nat) (hprefix : ((latentArmStreamTrajectoryKernel algorithm env stream₁).map (Preorder.frestrictLe n)).restrict (latentArmStreamPrefixCountCap n target) = ((latentArmStreamTrajectoryKernel algorithm env stream₂).map (Preorder.frestrictLe n)).restrict (latentArmStreamPrefixCountCap n target)) : ((latentArmStreamTrajectoryKernel algorithm env stream₁).map (Preorder.frestrictLe (n + 1))).restrict (latentArmStreamPrefixCountCap (n + 1) target) = ((latentArmStreamTrajectoryKernel algorithm env stream₂).map (Preorder.frestrictLe (n + 1))).restrict (latentArmStreamPrefixCountCap (n + 1) target)
theorem BanditRLProof.Thompson.latentArmStreamTrajectoryKernel_map_frestrictLe_restrict_countCap_eq_of_withoutCoordinate_eq Compiled

Count-capped fixed-stream prefix locality under equality of all latent coordinates except the omitted target.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamTrajectoryKernel_map_frestrictLe_restrict_countCap_eq_of_withoutCoordinate_eq

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamTrajectoryKernel_map_frestrictLe_restrict_countCap_eq_of_withoutCoordinate_eq {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (target : Nat × Fin K) (stream₁ stream₂ : UCB.ArmRewardStream K) (hwithout : UCB.armStreamWithoutCoordinate target stream₁ = UCB.armStreamWithoutCoordinate target stream₂) (n : Nat) : ((latentArmStreamTrajectoryKernel algorithm env stream₁).map (Preorder.frestrictLe n)).restrict (latentArmStreamPrefixCountCap n target) = ((latentArmStreamTrajectoryKernel algorithm env stream₂).map (Preorder.frestrictLe n)).restrict (latentArmStreamPrefixCountCap n target)
def BanditRLProof.Thompson.LatentArmStreamVisiblePrefixNextActionBranchLocality Compiled

Exact contract for branchwise prefix/action locality. The count-capped trajectory induction above proves this contract below.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.LatentArmStreamVisiblePrefixNextActionBranchLocality

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

def LatentArmStreamVisiblePrefixNextActionBranchLocality {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (n : Nat) : Prop
theorem BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextActionBranchLocality_of_prefixCountCapLocality Compiled

Count-cap locality of visible prefixes implies the exact history/action branch-locality contract.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextActionBranchLocality_of_prefixCountCapLocality

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamVisiblePrefixNextActionBranchLocality_of_prefixCountCapLocality {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (n : Nat) (hcap : ∀ (target : Nat × Fin K) (stream₁ stream₂ : UCB.ArmRewardStream K), UCB.armStreamWithoutCoordinate target stream₁ = UCB.armStreamWithoutCoordinate target stream₂ → (((latentArmStreamTrajectoryKernel algorithm env stream₁).map (Preorder.frestrictLe n)).restrict (latentArmStreamPrefixCountCap n target)) = (((latentArmStreamTrajectoryKernel algorithm env stream₂).map (Preorder.frestrictLe n)).restrict (latentArmStreamPrefixCountCap n target))) : LatentArmStreamVisiblePrefixNextActionBranchLocality algorithm env n
theorem BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextActionBranchLocality Compiled

Every latent arm-stream trajectory kernel satisfies branch locality: on the exact next-coordinate branch, the visible prefix and next action depend only on the complementary latent coordinates. This does not yet identify the latent visible law with the native fixed-IID process.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextActionBranchLocality

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamVisiblePrefixNextActionBranchLocality {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (n : Nat) : LatentArmStreamVisiblePrefixNextActionBranchLocality algorithm env n
theorem BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextAction_coordinate_branch_eq_prod_of_locality Compiled

Once the branch-locality producer is available, coordinate independence immediately yields the exact branchwise condition/selected-coordinate product law. This consumer is valid for the sub-Markov branch kernel and therefore does not misstate branch restriction as ordinary probability independence.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextAction_coordinate_branch_eq_prod_of_locality

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamVisiblePrefixNextAction_coordinate_branch_eq_prod_of_locality {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) (hlocal : LatentArmStreamVisiblePrefixNextActionBranchLocality algorithm env n) (target : Nat × Fin K) : let branchKernel := ((latentArmStreamTrajectoryKernel algorithm env).map (latentArmStreamVisiblePrefixNextAction n)).restrict (UCB.measurableSet_armStreamHistoryActionCoordinateBranch n target) Measure.map (fun sample : UCB.ArmRewardStream K × (History.FinitePairHistory (Fin K) Real n × Fin K) => (sample.2, UCB.armStreamCoordinate target sample.1)) (UCB.armStreamMeasure nu ⊗ₘ branchKernel) = (Measure.map Prod.snd (UCB.armStreamMeasure nu ⊗ₘ branchKernel)).prod (nu target.2)
theorem BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextAction_coordinate_branch_eq_prod Compiled

Unconditional compiled branchwise product law obtained from the proved count-capped locality producer.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextAction_coordinate_branch_eq_prod

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamVisiblePrefixNextAction_coordinate_branch_eq_prod {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) (target : Nat × Fin K) : let branchKernel := ((latentArmStreamTrajectoryKernel algorithm env).map (latentArmStreamVisiblePrefixNextAction n)).restrict (UCB.measurableSet_armStreamHistoryActionCoordinateBranch n target) Measure.map (fun sample : UCB.ArmRewardStream K × (History.FinitePairHistory (Fin K) Real n × Fin K) => (sample.2, UCB.armStreamCoordinate target sample.1)) (UCB.armStreamMeasure nu ⊗ₘ branchKernel) = (Measure.map Prod.snd (UCB.armStreamMeasure nu ⊗ₘ branchKernel)).prod (nu target.2)
theorem BanditRLProof.Thompson.latentArmStreamTrajectoryMeasure_map_visiblePrefix_nextAction_eq_compProd Compiled

After the latent reward stream is mixed out, the next action still follows the algorithm's history policy. This isolates action randomization from the remaining selected-reward freshness obligation.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamTrajectoryMeasure_map_visiblePrefix_nextAction_eq_compProd

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamTrajectoryMeasure_map_visiblePrefix_nextAction_eq_compProd {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : Measure.map (fun sample : UCB.ArmRewardStream K × ((t : Nat) -> Fin K × Real) => latentArmStreamVisiblePrefixNextAction n sample.2) (latentArmStreamTrajectoryMeasure algorithm env nu) = Measure.map (fun sample : UCB.ArmRewardStream K × ((t : Nat) -> Fin K × Real) => Preorder.frestrictLe n sample.2) (latentArmStreamTrajectoryMeasure algorithm env nu) ⊗ₘ algorithm.policy n
theorem BanditRLProof.Thompson.latentArmStreamVisibleNextReward_eq_selectedCoordinate_ae Compiled

On the coupling, the actual successor reward is the latent coordinate encoded by the visible prefix and the sampled next action. This is pathwise support; conditional freshness still requires the branchwise product proof.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisibleNextReward_eq_selectedCoordinate_ae

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamVisibleNextReward_eq_selectedCoordinate_ae {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : ∀ᵐ sample ∂latentArmStreamTrajectoryMeasure algorithm env nu, latentArmStreamVisibleNextReward n sample.2 = UCB.armStreamCoordinate (UCB.armStreamCoordinateOfHistoryAction n (latentArmStreamVisiblePrefixNextAction n sample.2)) sample.1
theorem BanditRLProof.Thompson.measurable_latentArmStreamSelectedCoordinate Compiled

The reward coordinate selected by a visible history/action condition is a measurable function of the latent stream and that condition.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.measurable_latentArmStreamSelectedCoordinate

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem measurable_latentArmStreamSelectedCoordinate {K : Nat} (n : Nat) : Measurable (fun sample : UCB.ArmRewardStream K × (History.FinitePairHistory (Fin K) Real n × Fin K) => UCB.armStreamCoordinate (UCB.armStreamCoordinateOfHistoryAction n sample.2) sample.1)
theorem BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextAction_selectedCoordinate_branch_eq_prod Compiled

On a fixed pull-count/arm branch, the dynamically selected latent reward coordinate has the restricted condition marginal times the selected arm law.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextAction_selectedCoordinate_branch_eq_prod

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamVisiblePrefixNextAction_selectedCoordinate_branch_eq_prod {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) (target : Nat × Fin K) : let conditionKernel := (latentArmStreamTrajectoryKernel algorithm env).map (latentArmStreamVisiblePrefixNextAction n) let fullMixed := UCB.armStreamMeasure nu ⊗ₘ conditionKernel let branch := UCB.armStreamHistoryActionCoordinateBranch n target let branchKernel := conditionKernel.restrict (UCB.measurableSet_armStreamHistoryActionCoordinateBranch n target) let branchMixed := UCB.armStreamMeasure nu ⊗ₘ branchKernel Measure.map (fun sample : UCB.ArmRewardStream K × (History.FinitePairHistory (Fin K) Real n × Fin K) => (sample.2, UCB.armStreamCoordinate (UCB.armStreamCoordinateOfHistoryAction n sample.2) sample.1)) branchMixed = ((Measure.map Prod.snd fullMixed).restrict branch).prod (nu target.2)
theorem BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextAction_selectedCoordinate_mixed_eq_compProd Compiled

Summing the countable pull-count/arm partition gives the selected-coordinate joint law under the mixed latent-stream/visible-condition measure.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextAction_selectedCoordinate_mixed_eq_compProd

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamVisiblePrefixNextAction_selectedCoordinate_mixed_eq_compProd {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : let conditionKernel := (latentArmStreamTrajectoryKernel algorithm env).map (latentArmStreamVisiblePrefixNextAction n) let fullMixed := UCB.armStreamMeasure nu ⊗ₘ conditionKernel Measure.map (fun sample : UCB.ArmRewardStream K × (History.FinitePairHistory (Fin K) Real n × Fin K) => (sample.2, UCB.armStreamCoordinate (UCB.armStreamCoordinateOfHistoryAction n sample.2) sample.1)) fullMixed = Measure.map Prod.snd fullMixed ⊗ₘ UCB.armStreamSelectedRewardKernel n nu
theorem BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextAction_selectedCoordinate_eq_compProd Compiled

Transport the selected-coordinate product law from the mixed representation back to the original latent-stream trajectory coupling.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisiblePrefixNextAction_selectedCoordinate_eq_compProd

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamVisiblePrefixNextAction_selectedCoordinate_eq_compProd {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : Measure.map (fun sample : UCB.ArmRewardStream K × ((t : Nat) -> Fin K × Real) => (latentArmStreamVisiblePrefixNextAction n sample.2, UCB.armStreamCoordinate (UCB.armStreamCoordinateOfHistoryAction n (latentArmStreamVisiblePrefixNextAction n sample.2)) sample.1)) (latentArmStreamTrajectoryMeasure algorithm env nu) = Measure.map (fun sample : UCB.ArmRewardStream K × ((t : Nat) -> Fin K × Real) => latentArmStreamVisiblePrefixNextAction n sample.2) (latentArmStreamTrajectoryMeasure algorithm env nu) ⊗ₘ UCB.armStreamSelectedRewardKernel n nu
theorem BanditRLProof.Thompson.latentArmStreamVisibleNextReward_joint_eq_compProd Compiled

Given the visible prefix through `n` and the action at `n + 1`, the actual next reward in the latent-stream coupling has exactly the selected arm law.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisibleNextReward_joint_eq_compProd

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamVisibleNextReward_joint_eq_compProd {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : Measure.map (fun sample : UCB.ArmRewardStream K × ((t : Nat) -> Fin K × Real) => (latentArmStreamVisiblePrefixNextAction n sample.2, latentArmStreamVisibleNextReward n sample.2)) (latentArmStreamTrajectoryMeasure algorithm env nu) = Measure.map (fun sample : UCB.ArmRewardStream K × ((t : Nat) -> Fin K × Real) => latentArmStreamVisiblePrefixNextAction n sample.2) (latentArmStreamTrajectoryMeasure algorithm env nu) ⊗ₘ UCB.armStreamSelectedRewardKernel n nu
theorem BanditRLProof.Thompson.latentArmStreamVisibleNextReward_condDistrib_ae_eq_nu Compiled

Conditional-law form of one-step selected-reward freshness on the full latent-stream trajectory coupling.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisibleNextReward_condDistrib_ae_eq_nu

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamVisibleNextReward_condDistrib_ae_eq_nu {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : condDistrib (fun sample : UCB.ArmRewardStream K × ((t : Nat) -> Fin K × Real) => latentArmStreamVisibleNextReward n sample.2) (fun sample : UCB.ArmRewardStream K × ((t : Nat) -> Fin K × Real) => latentArmStreamVisiblePrefixNextAction n sample.2) (latentArmStreamTrajectoryMeasure algorithm env nu) =ᵐ[ (latentArmStreamTrajectoryMeasure algorithm env nu).map (fun sample => latentArmStreamVisiblePrefixNextAction n sample.2)] UCB.armStreamSelectedRewardKernel n nu
theorem BanditRLProof.Thompson.latentArmStreamVisibleTrajectoryMeasure_nextReward_joint_eq_compProd Compiled

Observable-marginal form of the one-step selected-reward joint law. This removes the latent arm stream from the theorem's source space without claiming that the entire visible trajectory already equals the native construction.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisibleTrajectoryMeasure_nextReward_joint_eq_compProd

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamVisibleTrajectoryMeasure_nextReward_joint_eq_compProd {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : let visibleMeasure := (latentArmStreamTrajectoryMeasure algorithm env nu).map Prod.snd Measure.map (fun trajectory : (t : Nat) -> Fin K × Real => (latentArmStreamVisiblePrefixNextAction n trajectory, latentArmStreamVisibleNextReward n trajectory)) visibleMeasure = Measure.map (latentArmStreamVisiblePrefixNextAction n) visibleMeasure ⊗ₘ UCB.armStreamSelectedRewardKernel n nu
theorem BanditRLProof.Thompson.latentArmStreamVisibleTrajectoryMeasure_nextReward_condDistrib_ae_eq_nu Compiled

Conditional-law form of one-step selected-reward freshness on the visible trajectory marginal.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamVisibleTrajectoryMeasure_nextReward_condDistrib_ae_eq_nu

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamVisibleTrajectoryMeasure_nextReward_condDistrib_ae_eq_nu {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : let visibleMeasure := (latentArmStreamTrajectoryMeasure algorithm env nu).map Prod.snd condDistrib (latentArmStreamVisibleNextReward n) (latentArmStreamVisiblePrefixNextAction n) visibleMeasure =ᵐ[ visibleMeasure.map (latentArmStreamVisiblePrefixNextAction n)] UCB.armStreamSelectedRewardKernel n nu
theorem BanditRLProof.Thompson.latentArmStreamTrajectoryMeasure_map_stream_visiblePrefix_eq Compiled

Exact finite mixture law for the latent stream box and the visible SGB trajectory prefix. This is the deferred-decisions representation that the remaining native-prefix comparison must consume.

Used in these reading views: Bandit Book

10. Automation, resources, and open routes

Canonical node identitydeclaration:BanditRLProof.Thompson.latentArmStreamTrajectoryMeasure_map_stream_visiblePrefix_eq

Reading membership is not a proof dependency. Exact assumptions remain in the Lean statement.

theorem latentArmStreamTrajectoryMeasure_map_stream_visiblePrefix_eq {Env : Type u} {K : Nat} [MeasurableSpace Env] [StandardBorelSpace Env] [NeZero K] (algorithm : HistoryAlgorithm (Fin K) Real) (env : Env) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : Measure.map (fun sample : UCB.ArmRewardStream K × ((t : Nat) -> Fin K × Real) => (Preorder.frestrictLe n sample.1, Preorder.frestrictLe n sample.2)) (latentArmStreamTrajectoryMeasure algorithm env nu) = Measure.pi (fun _ : Finset.Iic n => Measure.infinitePi fun arm : Fin K => nu arm) ⊗ₘ latentArmStreamVisiblePrefixKernel algorithm env n