Reference · The Applied Higher-Order Functions catalogue
rainbow.algorithms.proofs.ahof.value-iteration
AHoF D22 worked finite exact-rational value-iteration instance.
ahof-d22/state-space
ahof-d22/state-space : → Finset ℕ
Finset = finset-data/Finsetℕ = data/Nat
ahof-d22/action-space
ahof-d22/action-space : → Finset ℕ
Finset = finset-data/Finsetℕ = data/Nat
ahof-d22/fallback-action
ahof-d22/fallback-action : (x₁ : ℕ) → ℕ
ℕ = data/Nat
ahof-d22/transition
ahof-d22/transition : (x₁ x₂ x₃ : ℕ) → ℚ≥0
ℕ = data/Natℚ≥0 = nnrat/NonnegativeRational
ahof-d22/reward
ahof-d22/reward : (x₁ x₂ : ℕ) → ℚ≥0
ℕ = data/Natℚ≥0 = nnrat/NonnegativeRational
ahof-d22/initial-value
ahof-d22/initial-value : (x₁ : ℕ) → ℚ≥0
ℕ = data/Natℚ≥0 = nnrat/NonnegativeRational
ahof-d22/action-backup
ahof-d22/action-backup : (x₁ : ℕ → ℚ≥0) (x₂ x₃ : ℕ) → ℚ≥0
ℕ = data/Natℚ≥0 = nnrat/NonnegativeRational
ahof-d22/optimality-step
ahof-d22/optimality-step : (x₁ : ℕ → ℚ≥0) (x₂ : ℕ) → ℚ≥0
ℕ = data/Natℚ≥0 = nnrat/NonnegativeRational
ahof-d22/value-sequence
ahof-d22/value-sequence : (x₁ x₂ : ℕ) → ℚ≥0
ℕ = data/Natℚ≥0 = nnrat/NonnegativeRational
ahof-d22/one-step-value
ahof-d22/one-step-value : (x₁ : ℕ) → ℚ≥0
ℕ = data/Natℚ≥0 = nnrat/NonnegativeRational
ahof-d22/two-step-value-function
ahof-d22/two-step-value-function : (x₁ : ℕ) → ℚ≥0
ℕ = data/Natℚ≥0 = nnrat/NonnegativeRational
ahof-d22/fallback-action-admissible
ahof-d22/fallback-action-admissible : (state : ℕ) → ahof-d21/current-policy state ∈ ahof-d22/action-space
ℕ = data/Nat∈ = finset-data/to-set: membership in a finite set
ahof-d22/action-backup-correspondence
ahof-d22/action-backup-correspondence : (value : ℕ → ℚ≥0) (state action : ℕ) → bellman/nnrat-action-backup ℕ ℕ ahof-d2/grid ahof-d22/transition ahof-d22/reward 0 value state action = ahof-d22/action-backup value state action
0 = nnrat/zero= = nnrat/equivalent: equality of rational valuesℕ = data/Natℚ≥0 = nnrat/NonnegativeRational
ahof-d22/normalized-transition-rows
ahof-d22/normalized-transition-rows : (state : ℕ) → proposition/conjunction (sum = 1) (sum₁ = 1) where sum := list/nnrat-map-sum ℕ (ahof-d22/transition state 0) (finset-data/enumeration ℕ ahof-d2/grid) where sum₁ := list/nnrat-map-sum ℕ (ahof-d22/transition state 1) (finset-data/enumeration ℕ ahof-d2/grid)
1 = nnrat/one= = nnrat/equivalent: equality of rational valuesℕ = data/Nat
ahof-d22/finite-horizon-recurrence
ahof-d22/finite-horizon-recurrence : → proposition/conjunction (∀ (state : ℕ), iterate state = ahof-d22/initial-value state) (∀ (steps : ℕ), value/nnrat-iterate ℕ ℕ ahof-d22/action-space ahof-d21/current-policy ahof-d22/action-backup (data/succ steps) ahof-d22/initial-value = (fun x₂ => fun previous => fun state => step previous state) steps (value/nnrat-iterate ℕ ℕ ahof-d22/action-space ahof-d21/current-policy ahof-d22/action-backup steps ahof-d22/initial-value)) where iterate := value/nnrat-iterate ℕ ℕ ahof-d22/action-space ahof-d21/current-policy ahof-d22/action-backup 0 ahof-d22/initial-value where step := value/nnrat-optimality-step ℕ ℕ ahof-d22/action-space ahof-d21/current-policy ahof-d22/action-backup
= = equality/Eqℕ = data/Nat
ahof-d22/greedy-actions
ahof-d22/greedy-actions : → proposition/conjunction (∀ (state : ℕ), action state ∈ ahof-d22/action-space) (∀ (state : ℕ), ∀ (candidate : ℕ), ∀ (candidate-member : candidate ∈ ahof-d22/action-space), ahof-d22/action-backup ahof-d22/one-step-value state candidate ≤ step state) where action := value/nnrat-greedy-action ℕ ℕ ahof-d22/action-space ahof-d21/current-policy ahof-d22/action-backup ahof-d22/one-step-value where step := value/nnrat-optimality-step ℕ ℕ ahof-d22/action-space ahof-d21/current-policy ahof-d22/action-backup ahof-d22/one-step-value
ℕ = data/Nat∈ = finset-data/to-set: membership in a finite set≤ = nnrat/at-most
ahof-d22/two-step-value
ahof-d22/two-step-value : → proposition/conjunction (ahof-d22/two-step-value-function 0 = 0) (ahof-d22/two-step-value-function 1 = 0)
0 = nnrat/zero= = nnrat/equivalent: equality of rational values
ahof-d22/value-iteration
ahof-d22/value-iteration : → proposition/conjunction (∀ (state : ℕ), proposition/conjunction (list/nnrat-map-sum ℕ (ahof-d22/transition state 0) (finset-data/enumeration ℕ ahof-d2/grid) = 1) (list/nnrat-map-sum ℕ (ahof-d22/transition state 1) (finset-data/enumeration ℕ ahof-d2/grid) = 1)) (proposition/conjunction (proposition/conjunction (∀ (state : ℕ), iterate state = ahof-d22/initial-value state) (∀ (steps : ℕ), value/nnrat-iterate ℕ ℕ ahof-d22/action-space ahof-d21/current-policy ahof-d22/action-backup (data/succ steps) ahof-d22/initial-value = (fun x₈ => fun previous => fun state => value/nnrat-optimality-step ℕ ℕ ahof-d22/action-space ahof-d21/current-policy ahof-d22/action-backup previous state) steps (value/nnrat-iterate ℕ ℕ ahof-d22/action-space ahof-d21/current-policy ahof-d22/action-backup steps ahof-d22/initial-value))) (conjunction)) where conjunction := proposition/conjunction (proposition/conjunction (∀ (state : ℕ), value/nnrat-greedy-action ℕ ℕ ahof-d22/action-space ahof-d21/current-policy ahof-d22/action-backup ahof-d22/one-step-value state ∈ ahof-d22/action-space) (∀ (state : ℕ), ∀ (candidate : ℕ), ∀ (candidate-member : candidate ∈ ahof-d22/action-space), ahof-d22/action-backup ahof-d22/one-step-value state candidate ≤ value/nnrat-optimality-step ℕ ℕ ahof-d22/action-space ahof-d21/current-policy ahof-d22/action-backup ahof-d22/one-step-value state)) (proposition/conjunction (ahof-d22/two-step-value-function 0 = 0) (ahof-d22/two-step-value-function 1 = 0)) where iterate := value/nnrat-iterate ℕ ℕ ahof-d22/action-space ahof-d21/current-policy ahof-d22/action-backup 0 ahof-d22/initial-value
0 = nnrat/zero1 = nnrat/one= = nnrat/equivalent: equality of rational valuesℕ = data/Nat∈ = finset-data/to-set: membership in a finite set≤ = nnrat/at-most