Learning.IT.condDistrib_feedback
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.
condDistrib_feedback🔗
Learning.IT.condDistrib_feedbackNo docstring.
Learning.IT.condDistrib_feedback.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} [StandardBorelSpace 𝓨] [Nonempty 𝓨] (alg : Algorithm 𝓐 𝓨) (env : Environment 𝓐 𝓨) (n : ℕ) : ⇑𝓛[feedback (n + 1) | fun ω => (hist n ω, action (n + 1) ω); trajMeasure alg env] =ᵐ[MeasureTheory.Measure.map (fun ω => (hist n ω, action (n + 1) ω)) (trajMeasure alg env)] ⇑(Environment.feedback env n)Learning.IT.condDistrib_feedback.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} [StandardBorelSpace 𝓨] [Nonempty 𝓨] (alg : Algorithm 𝓐 𝓨) (env : Environment 𝓐 𝓨) (n : ℕ) : ⇑𝓛[feedback (n + 1) | fun ω => (hist n ω, action (n + 1) ω); trajMeasure alg env] =ᵐ[MeasureTheory.Measure.map (fun ω => (hist n ω, action (n + 1) ω)) (trajMeasure alg env)] ⇑(Environment.feedback env n)
Code
lemma condDistrib_feedback [StandardBorelSpace 𝓨] [Nonempty 𝓨]
(alg : Algorithm 𝓐 𝓨) (env : Environment 𝓐 𝓨) (n : ℕ) :
condDistrib (feedback (n + 1)) (fun ω ↦ (hist n ω, action (n + 1) ω)) (trajMeasure alg env)
=ᵐ[(trajMeasure alg env).map (fun ω ↦ (hist n ω, action (n + 1) ω))] env.feedback nType uses (7)
Body uses (3)
Actions: Source · Open Issue
Proof
(hasCondDistrib_feedback alg env n).condDistrib_eq
Dependency graph
Type dependencies (7)
Algorithm🔗
Learning.AlgorithmA stochastic, sequential algorithm.
Learning.Algorithm.{u_4, u_5} (𝓐 : Type u_4) (𝓨 : Type u_5) [MeasurableSpace 𝓐] [MeasurableSpace 𝓨] : Type (max u_4 u_5)Learning.Algorithm.{u_4, u_5} (𝓐 : Type u_4) (𝓨 : Type u_5) [MeasurableSpace 𝓐] [MeasurableSpace 𝓨] : Type (max u_4 u_5)
Code
structure Algorithm (𝓐 𝓨 : Type*) [MeasurableSpace 𝓐] [MeasurableSpace 𝓨] where /-- Policy or sampling rule: distribution of the next action. -/ policy : (n : ℕ) → Kernel (Iic n → 𝓐 × 𝓨) 𝓐 /-- The policy is a Markov kernel. -/ [h_policy : ∀ n, IsMarkovKernel (policy n)] /-- Distribution of the first action. -/ p0 : Measure 𝓐 /-- The first action distribution is a probability measure. -/ [hp0 : IsProbabilityMeasure p0]
Used by (216)
Actions: Source · Open Issue
Environment🔗
Learning.EnvironmentA stochastic environment.
Learning.Environment.{u_4, u_5} (𝓐 : Type u_4) (𝓨 : Type u_5) [MeasurableSpace 𝓐] [MeasurableSpace 𝓨] : Type (max u_4 u_5)Learning.Environment.{u_4, u_5} (𝓐 : Type u_4) (𝓨 : Type u_5) [MeasurableSpace 𝓐] [MeasurableSpace 𝓨] : Type (max u_4 u_5)
Code
structure Environment (𝓐 𝓨 : Type*) [MeasurableSpace 𝓐] [MeasurableSpace 𝓨] where /-- Distribution of the next observation as function of the past history. -/ feedback : (n : ℕ) → Kernel ((Iic n → 𝓐 × 𝓨) × 𝓐) 𝓨 /-- The feedback kernels are Markov kernels. -/ [h_feedback : ∀ n, IsMarkovKernel (feedback n)] /-- Distribution of the first observation given the first action. -/ ν0 : Kernel 𝓐 𝓨 /-- The initial observation kernel is a Markov kernel. -/ [hp0 : IsMarkovKernel ν0]
Actions: Source · Open Issue
hist🔗
Learning.IT.hist
hist n is the history up to time n. This is a random variable on the measurable space
ℕ → 𝓐 × 𝓨.
Learning.IT.hist.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} (n : ℕ) (h : ℕ → 𝓐 × 𝓨) : ↥(Finset.Iic n) → 𝓐 × 𝓨Learning.IT.hist.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} (n : ℕ) (h : ℕ → 𝓐 × 𝓨) : ↥(Finset.Iic n) → 𝓐 × 𝓨
Code
def hist (n : ℕ) (h : ℕ → 𝓐 × 𝓨) : Iic n → 𝓐 × 𝓨 := fun i ↦ h i
Used by (23)
Actions: Source · Open Issue
action🔗
Learning.IT.action
action n is the action pulled at time n. This is a random variable on the measurable space
ℕ → 𝓐 × 𝓨.
Learning.IT.action.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} (n : ℕ) (h : ℕ → 𝓐 × 𝓨) : 𝓐Learning.IT.action.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} (n : ℕ) (h : ℕ → 𝓐 × 𝓨) : 𝓐
Code
def action (n : ℕ) (h : ℕ → 𝓐 × 𝓨) : 𝓐 := (h n).1
Actions: Source · Open Issue
trajMeasure🔗
Learning.trajMeasureMeasure on the sequence of actions and observations generated by the algorithm/environment.
Learning.trajMeasure.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (alg : Algorithm 𝓐 𝓨) (env : Environment 𝓐 𝓨) : MeasureTheory.Measure (ℕ → 𝓐 × 𝓨)Learning.trajMeasure.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (alg : Algorithm 𝓐 𝓨) (env : Environment 𝓐 𝓨) : MeasureTheory.Measure (ℕ → 𝓐 × 𝓨)
Code
noncomputable
def trajMeasure (alg : Algorithm 𝓐 𝓨) (env : Environment 𝓐 𝓨) :
Measure (ℕ → 𝓐 × 𝓨) :=
Kernel.trajMeasure (alg.p0 ⊗ₘ env.ν0) (stepKernel alg env)
deriving IsProbabilityMeasureType uses (2)
Used by (19)
Actions: Source · Open Issue
feedback🔗
Learning.IT.feedback
feedback n is the feedback at time n. This is a random variable on the measurable space
ℕ → 𝓐 × 𝓨.
Learning.IT.feedback.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} (n : ℕ) (h : ℕ → 𝓐 × 𝓨) : 𝓨Learning.IT.feedback.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} (n : ℕ) (h : ℕ → 𝓐 × 𝓨) : 𝓨
Code
def feedback (n : ℕ) (h : ℕ → 𝓐 × 𝓨) : 𝓨 := (h n).2
Used by (16)
Actions: Source · Open Issue
instIsProbabilityMeasureForallNatProdTrajMeasure🔗
Learning.instIsProbabilityMeasureForallNatProdTrajMeasureNo docstring.
Learning.instIsProbabilityMeasureForallNatProdTrajMeasure.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (alg : Algorithm 𝓐 𝓨) (env : Environment 𝓐 𝓨) : MeasureTheory.IsProbabilityMeasure (trajMeasure alg env)Learning.instIsProbabilityMeasureForallNatProdTrajMeasure.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (alg : Algorithm 𝓐 𝓨) (env : Environment 𝓐 𝓨) : MeasureTheory.IsProbabilityMeasure (trajMeasure alg env)
Code
deriving IsProbabilityMeasure
Type uses (3)
Body uses (4)
Used by (8)
Actions: Source · Open Issue
Proof
deriving IsProbabilityMeasure
All dependencies, transitively (6)
stepKernel🔗
Learning.stepKernel
Kernel describing the distribution of the next action-feedback pair given the history
up to n.
Learning.stepKernel.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (alg : Algorithm 𝓐 𝓨) (env : Environment 𝓐 𝓨) (n : ℕ) : ProbabilityTheory.Kernel (↥(Finset.Iic n) → 𝓐 × 𝓨) (𝓐 × 𝓨)Learning.stepKernel.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (alg : Algorithm 𝓐 𝓨) (env : Environment 𝓐 𝓨) (n : ℕ) : ProbabilityTheory.Kernel (↥(Finset.Iic n) → 𝓐 × 𝓨) (𝓐 × 𝓨)
Code
noncomputable
def stepKernel (alg : Algorithm 𝓐 𝓨) (env : Environment 𝓐 𝓨) (n : ℕ) :
Kernel (Iic n → 𝓐 × 𝓨) (𝓐 × 𝓨) :=
alg.policy n ⊗ₖ env.feedback n
deriving IsMarkovKernelType uses (2)
Actions: Source · Open Issue
instIsMarkovKernelForallSubtypeNatMemFinsetIicProdPolicy🔗
Learning.instIsMarkovKernelForallSubtypeNatMemFinsetIicProdPolicyNo docstring.
Learning.instIsMarkovKernelForallSubtypeNatMemFinsetIicProdPolicy.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (alg : Algorithm 𝓐 𝓨) (n : ℕ) : ProbabilityTheory.IsMarkovKernel (Algorithm.policy alg n)Learning.instIsMarkovKernelForallSubtypeNatMemFinsetIicProdPolicy.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (alg : Algorithm 𝓐 𝓨) (n : ℕ) : ProbabilityTheory.IsMarkovKernel (Algorithm.policy alg n)
Code
instance (alg : Algorithm 𝓐 𝓨) (n : ℕ) : IsMarkovKernel (alg.policy n)
Type uses (1)
Actions: Source · Open Issue
Proof
alg.h_policy n
instIsMarkovKernelProdForallSubtypeNatMemFinsetIicFeedback🔗
Learning.instIsMarkovKernelProdForallSubtypeNatMemFinsetIicFeedbackNo docstring.
Learning.instIsMarkovKernelProdForallSubtypeNatMemFinsetIicFeedback.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (env : Environment 𝓐 𝓨) (n : ℕ) : ProbabilityTheory.IsMarkovKernel (Environment.feedback env n)Learning.instIsMarkovKernelProdForallSubtypeNatMemFinsetIicFeedback.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (env : Environment 𝓐 𝓨) (n : ℕ) : ProbabilityTheory.IsMarkovKernel (Environment.feedback env n)
Code
instance (env : Environment 𝓐 𝓨) (n : ℕ) : IsMarkovKernel (env.feedback n)
Type uses (1)
Used by (5)
Actions: Source · Open Issue
Proof
env.h_feedback n
instIsMarkovKernelForallSubtypeNatMemFinsetIicProdStepKernel🔗
Learning.instIsMarkovKernelForallSubtypeNatMemFinsetIicProdStepKernelNo docstring.
Learning.instIsMarkovKernelForallSubtypeNatMemFinsetIicProdStepKernel.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (alg : Algorithm 𝓐 𝓨) (env : Environment 𝓐 𝓨) (n : ℕ) : ProbabilityTheory.IsMarkovKernel (stepKernel alg env n)Learning.instIsMarkovKernelForallSubtypeNatMemFinsetIicProdStepKernel.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (alg : Algorithm 𝓐 𝓨) (env : Environment 𝓐 𝓨) (n : ℕ) : ProbabilityTheory.IsMarkovKernel (stepKernel alg env n)
Code
deriving IsMarkovKernel
Type uses (3)
Body uses (2)
Used by (10)
Actions: Source · Open Issue
Proof
deriving IsMarkovKernel
instIsProbabilityMeasureP0🔗
Learning.instIsProbabilityMeasureP0No docstring.
Learning.instIsProbabilityMeasureP0.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (alg : Algorithm 𝓐 𝓨) : MeasureTheory.IsProbabilityMeasure (Algorithm.p0 alg)Learning.instIsProbabilityMeasureP0.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (alg : Algorithm 𝓐 𝓨) : MeasureTheory.IsProbabilityMeasure (Algorithm.p0 alg)
Code
instance (alg : Algorithm 𝓐 𝓨) : IsProbabilityMeasure alg.p0
Type uses (1)
Used by (13)
Actions: Source · Open Issue
Proof
alg.hp0
instIsMarkovKernelν0🔗
Learning.instIsMarkovKernelν0No docstring.
Learning.instIsMarkovKernelν0.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (env : Environment 𝓐 𝓨) : ProbabilityTheory.IsMarkovKernel (Environment.ν0 env)Learning.instIsMarkovKernelν0.{u_1, u_2} {𝓐 : Type u_1} {𝓨 : Type u_2} {m𝓐 : MeasurableSpace 𝓐} {m𝓨 : MeasurableSpace 𝓨} (env : Environment 𝓐 𝓨) : ProbabilityTheory.IsMarkovKernel (Environment.ν0 env)
Code
instance (env : Environment 𝓐 𝓨) : IsMarkovKernel env.ν0
Type uses (1)
Used by (8)
Actions: Source · Open Issue
Proof
env.hp0