Lean module · UCB
BanditRLProof.Algorithms.UCBRealStationaryExplicitPolicy
# Explicit policy semantics for the canonical-kernel stationary UCB trajectory This module identifies the canonical arm-stream successor action kernel with the deterministic `realHistoryNextArm` kernel. It then transports the complete explicit-policy graph to the independently generated canonical pair trajectory and pairs that graph with the existing expected-average consistency theorem.
Module map
Imports
BanditRLProof.Algorithms.UCBRealStationaryCanonicalKernelTrajectory
Imported by
BanditRLProof, BanditRLProof.Algorithms.UCBArmStreamConditionalReward
Declarations
Open an item to read its exact compact statement and source link. Detailed teaching notes are linked when registered.
def
BanditRLProof.UCB.canonicalRealUCBHistorySelector
Compiled
The explicit finite-history selector encoded by the canonical arm-stream policy.
noncomputable def canonicalRealUCBHistorySelector {K : Nat} (hK : 0 < K) (c : Real) (sigma2 : NNReal) (n : Nat) : History.FinitePairHistory (Fin K) Real n -> Fin K
def
BanditRLProof.UCB.canonicalRealUCBPolicyKernel
Compiled
The explicit deterministic successor-action kernel for stationary Real UCB.
noncomputable def canonicalRealUCBPolicyKernel {K : Nat} (hK : 0 < K) (c : Real) (sigma2 : NNReal) (n : Nat) : Kernel (History.FinitePairHistory (Fin K) Real n) (Fin K)
theorem
BanditRLProof.UCB.measurable_canonicalRealUCBHistorySelector
Compiled
The explicit canonical selector is measurable on every finite history.
theorem measurable_canonicalRealUCBHistorySelector {K : Nat} (hK : 0 < K) (c : Real) (sigma2 : NNReal) (n : Nat) : Measurable (canonicalRealUCBHistorySelector hK c sigma2 n)
theorem
BanditRLProof.UCB.canonicalRealUCBPolicyKernel_apply
Compiled
Every explicit policy-kernel section is the corresponding Dirac law.
theorem canonicalRealUCBPolicyKernel_apply {K : Nat} (hK : 0 < K) (c : Real) (sigma2 : NNReal) (n : Nat) (history : History.FinitePairHistory (Fin K) Real n) : canonicalRealUCBPolicyKernel hK c sigma2 n history = Measure.dirac (canonicalRealUCBHistorySelector hK c sigma2 n history)
theorem
BanditRLProof.UCB.canonicalArmStreamHistoryAlgorithm_initialAction_eq_dirac
Compiled
The canonical arm-stream initial-action package is the fixed initial arm.
theorem canonicalArmStreamHistoryAlgorithm_initialAction_eq_dirac {K : Nat} [NeZero K] (hK : 0 < K) (c : Real) (sigma2 : NNReal) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] : (canonicalArmStreamHistoryAlgorithm hK c sigma2 nu).initialAction = Measure.dirac (initializationArm hK 0)
theorem
BanditRLProof.UCB.canonicalArmStreamHistoryAlgorithm_policy_ae_eq_explicitPolicyKernel
Compiled
The canonical arm-stream successor action conditional law is the explicit deterministic UCB policy kernel on its finite-history marginal.
theorem canonicalArmStreamHistoryAlgorithm_policy_ae_eq_explicitPolicyKernel {K : Nat} [NeZero K] (hK : 0 < K) (c : Real) (sigma2 : NNReal) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : Filter.EventuallyEq (ae ((armStreamMeasure nu).map (fun stream : ArmRewardStream K => History.finitePairHistoryOfTrace (armStreamAction hK (c * (sigma2 : Real)) stream) (armStreamReward hK (c * (sigma2 : Real)) stream) n))) ((canonicalArmStreamHistoryAlgorithm hK c sigma2 nu).policy n) (canonicalRealUCBPolicyKernel hK c sigma2 n)
theorem
BanditRLProof.UCB.canonicalKernelTrajectory_finitePairHistory_map_eq_armStream
Compiled
Every generated finite-pair-history marginal agrees with the corresponding canonical arm-stream history marginal.
theorem canonicalKernelTrajectory_finitePairHistory_map_eq_armStream {K : Nat} [NeZero K] (hK : 0 < K) (c : Real) (sigma2 : NNReal) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : Measure.map (fun trajectory => History.finitePairHistoryOfTrace (canonicalKernelTrajectoryAction trajectory) (canonicalKernelTrajectoryReward trajectory) n) (canonicalKernelTrajectoryMeasure hK c sigma2 nu) = Measure.map (fun stream : ArmRewardStream K => History.finitePairHistoryOfTrace (armStreamAction hK (c * (sigma2 : Real)) stream) (armStreamReward hK (c * (sigma2 : Real)) stream) n) (armStreamMeasure nu)
theorem
BanditRLProof.UCB.canonicalKernelTrajectoryAction_condDistrib_ae_eq_explicitPolicyKernel
Compiled
The generated successor action conditional law is the explicit deterministic UCB policy kernel on the generated finite-history marginal.
theorem canonicalKernelTrajectoryAction_condDistrib_ae_eq_explicitPolicyKernel {K : Nat} [NeZero K] (hK : 0 < K) (c : Real) (sigma2 : NNReal) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : condDistrib (fun trajectory => canonicalKernelTrajectoryAction trajectory (n + 1)) (fun trajectory => History.finitePairHistoryOfTrace (canonicalKernelTrajectoryAction trajectory) (canonicalKernelTrajectoryReward trajectory) n) (canonicalKernelTrajectoryMeasure hK c sigma2 nu) =ᵐ[ (canonicalKernelTrajectoryMeasure hK c sigma2 nu).map (fun trajectory => History.finitePairHistoryOfTrace (canonicalKernelTrajectoryAction trajectory) (canonicalKernelTrajectoryReward trajectory) n)] canonicalRealUCBPolicyKernel hK c sigma2 n
theorem
BanditRLProof.UCB.canonicalKernelTrajectoryAction_zero_ae_eq_initializationArm
Compiled
The generated initial action is almost surely the canonical initial arm.
theorem canonicalKernelTrajectoryAction_zero_ae_eq_initializationArm {K : Nat} [NeZero K] (hK : 0 < K) (c : Real) (sigma2 : NNReal) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] : Filter.EventuallyEq (ae (canonicalKernelTrajectoryMeasure hK c sigma2 nu)) (fun trajectory => canonicalKernelTrajectoryAction trajectory 0) (fun _trajectory => initializationArm hK 0)
theorem
BanditRLProof.UCB.canonicalKernelTrajectoryAction_succ_ae_eq_realHistoryNextArm
Compiled
Every generated successor action follows the explicit UCB selector a.s.
theorem canonicalKernelTrajectoryAction_succ_ae_eq_realHistoryNextArm {K : Nat} [NeZero K] (hK : 0 < K) (c : Real) (sigma2 : NNReal) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] (n : Nat) : Filter.Eventually (fun trajectory => canonicalKernelTrajectoryAction trajectory (n + 1) = canonicalRealUCBHistorySelector hK c sigma2 n (History.finitePairHistoryOfTrace (canonicalKernelTrajectoryAction trajectory) (canonicalKernelTrajectoryReward trajectory) n)) (ae (canonicalKernelTrajectoryMeasure hK c sigma2 nu))
theorem
BanditRLProof.UCB.canonicalKernelTrajectoryAction_succ_ae_eq_realHistoryNextArm_all
Compiled
One full-measure event carries every successor explicit-policy equality.
theorem canonicalKernelTrajectoryAction_succ_ae_eq_realHistoryNextArm_all {K : Nat} [NeZero K] (hK : 0 < K) (c : Real) (sigma2 : NNReal) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] : Filter.Eventually (fun trajectory => forall n : Nat, canonicalKernelTrajectoryAction trajectory (n + 1) = canonicalRealUCBHistorySelector hK c sigma2 n (History.finitePairHistoryOfTrace (canonicalKernelTrajectoryAction trajectory) (canonicalKernelTrajectoryReward trajectory) n)) (ae (canonicalKernelTrajectoryMeasure hK c sigma2 nu))
theorem
BanditRLProof.UCB.canonicalKernelTrajectoryAction_follows_realHistoryNextArm_ae
Compiled
The complete generated action trace follows the explicit UCB policy a.s.
theorem canonicalKernelTrajectoryAction_follows_realHistoryNextArm_ae {K : Nat} [NeZero K] (hK : 0 < K) (c : Real) (sigma2 : NNReal) (nu : Kernel (Fin K) Real) [IsMarkovKernel nu] : Filter.Eventually (fun trajectory => canonicalKernelTrajectoryAction trajectory 0 = initializationArm hK 0 /\ forall n : Nat, canonicalKernelTrajectoryAction trajectory (n + 1) = canonicalRealUCBHistorySelector hK c sigma2 n (History.finitePairHistoryOfTrace (canonicalKernelTrajectoryAction trajectory) (canonicalKernelTrajectoryReward trajectory) n)) (ae (canonicalKernelTrajectoryMeasure hK c sigma2 nu))
theorem
BanditRLProof.UCB.canonicalKernelTrajectoryArmwiseBoundedFiniteArmExpectedAverageRegret_tendsto_zero_and_explicitPolicy
Compiled
Armwise-bounded finite-arm laws give one fixed generated process whose actions follow explicit Real UCB almost surely and whose expected average pseudo-regret tends to zero.
theorem canonicalKernelTrajectoryArmwiseBoundedFiniteArmExpectedAverageRegret_tendsto_zero_and_explicitPolicy {K : Nat} [NeZero K] (hK : 0 < K) (armLaw : Fin K -> Measure Real) (hprob : forall arm, IsProbabilityMeasure (armLaw arm)) (lo hi : Fin K -> Real) (hbound : forall arm, Filter.Eventually (fun x : Real => Set.Icc (lo arm) (hi arm) x) (ae (armLaw arm))) : let sigma2 := Concentration.finiteArmPositiveVarianceProxy (fun arm => Concentration.intervalVarianceProxy (lo arm) (hi arm)) Tendsto (realStationaryArmwiseBoundedFiniteArmExpectedAverageRegret (finiteArmCanonicalKernelTrajectoryMeasure hK 4 sigma2 armLaw hprob) armLaw canonicalKernelTrajectoryAction) atTop (nhds 0) /\ Filter.Eventually (fun trajectory => canonicalKernelTrajectoryAction trajectory 0 = initializationArm hK 0 /\ forall n : Nat, canonicalKernelTrajectoryAction trajectory (n + 1) = realHistoryNextArm hK (4 * (sigma2 : Real)) n (History.finitePairHistoryOfTrace (canonicalKernelTrajectoryAction trajectory) (canonicalKernelTrajectoryReward trajectory) n)) (ae (finiteArmCanonicalKernelTrajectoryMeasure hK 4 sigma2 armLaw hprob))