Reference · Foundations
rainbow.math.temporal-difference
Bounded temporal-difference (Q-learning) updates over signed rationals. The temporal-difference error `reward + discount * next - current` is a signed quantity that can be negative when the current estimate is too high, and the update nudges the estimate by the rate-scaled error: `current + rate * error`. Signed rationals make the negative correction representable without any kernel primitive subtraction. The update rule is the shared ITERATE skeleton of AHoF D61 Q-learning, D62 Sarsa, and Expected Sarsa (only the target differs).
signed/scale
signed/scale : (x₁ : ℚ≥0) (x₂ : ℚ) → ℚ
ℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational
learning/signed-td-error
learning/signed-td-error : (x₁ : ℚ) (x₂ : ℚ≥0) (x₃ x₄ : ℚ) → ℚ
ℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational
learning/signed-q-update
learning/signed-q-update : (x₁ : ℚ≥0) (x₂ : ℚ) (x₃ : ℚ≥0) (x₄ x₅ : ℚ) → ℚ
ℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational
learning/signed-q-iterate
learning/signed-q-iterate : (x₁ : ℚ≥0) (x₂ : ℚ) (x₃ : ℚ≥0) (x₄ : ℚ) (x₅ : ℕ) (x₆ : ℚ) → ℚ
ℕ = data/Natℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational
learning/signed-td-error-unfold
learning/signed-td-error-unfold : (reward : ℚ) (discount : ℚ≥0) (next current : ℚ) → learning/signed-td-error reward discount next current = reward + signed/scale discount next - current
+ = signed/add- = signed/subtract= = equality/Eqℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational
learning/signed-q-update-unfold
learning/signed-q-update-unfold : (rate : ℚ≥0) (reward : ℚ) (discount : ℚ≥0) (next current : ℚ) → learning/signed-q-update rate reward discount next current = current + signed/scale rate (error) where error := learning/signed-td-error reward discount next current
+ = signed/add= = equality/Eqℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational
learning/signed-q-iterate-zero
learning/signed-q-iterate-zero : (rate : ℚ≥0) (reward : ℚ) (discount : ℚ≥0) (next initial : ℚ) → learning/signed-q-iterate rate reward discount next 0 initial = initial
= = equality/Eqℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational