Skip to content
Rainbow docs menu

Reference · Natural numbers

rainbow.math.nat.contraction

Natural numberssrc/rainbow/math/nat/contraction.clj0 definitions, 10 theorems

Natural multiplication laws needed by finite metric contraction proofs.

nat/multiply-successor-right

TheoremFor all inputsNo axiomsSource, line 109

nat/multiply-successor-right :
  (value factor : ℕ)
  → nat/multiply value (data/succ factor) = algebra/nat-add value (nat/multiply value factor)

= = equality/Eqℕ = data/Nat

nat/multiply-commutative

TheoremFor all inputsNo axiomsSource, line 160

nat/multiply-commutative :
  (left right : ℕ)
  → nat/multiply left right = nat/multiply right left

= = equality/Eqℕ = data/Nat

nat/distance-multiply-right

TheoremFor all inputsNo axiomsSource, line 207

nat/distance-multiply-right :
  (left right factor : ℕ)
  → nat/distance (nat/multiply left factor) (nat/multiply right factor) = nat/multiply (nat/distance left right) factor

= = equality/Eqℕ = data/Nat

nat/distance-multiply-left

TheoremFor all inputsNo axiomsSource, line 265

nat/distance-multiply-left :
  (factor left right : ℕ)
  → nat/distance (nat/multiply factor left) (nat/multiply factor right) = nat/multiply factor (nat/distance left right)

= = equality/Eqℕ = data/Nat

nat/at-most-rewrite-right

TheoremFor all inputsNo axiomsSource, line 314

nat/at-most-rewrite-right :
  (left right replacement : ℕ)
  (same : right = replacement)
  (ordered : left ≤ right)
  → left ≤ replacement

= = equality/Eqℕ = data/Nat≤ = nat/at-most

list/nat-map-sum-distance-bound

TheoremFor all inputsNo axiomsSource, line 355

list/nat-map-sum-distance-bound.{u} :
  (A : Type u) (left right : A → ℕ) (epsilon : ℕ)
  (pointwise : ∀ (value : A), nat/distance (left value) (right value) ≤ epsilon)
  (source : List A)
  → nat/distance (list/nat-map-sum A left source) (list/nat-map-sum A right source) ≤ nat/multiply (list/length A source) epsilon

List = data/Listℕ = data/Nat≤ = nat/at-most

nat/at-most-rewrite-left

TheoremFor all inputsNo axiomsSource, line 454

nat/at-most-rewrite-left :
  (left replacement right : ℕ)
  (same : left = replacement)
  (ordered : replacement ≤ right)
  → left ≤ right

= = equality/Eqℕ = data/Nat≤ = nat/at-most

list/nat-map-sum-distance-bound-by

TheoremFor all inputsNo axiomsSource, line 502

list/nat-map-sum-distance-bound-by.{u} :
  (A : Type u) (left right bound : A → ℕ)
  (pointwise : ∀ (value : A), nat/distance (left value) (right value) ≤ bound value)
  (source : List A)
  → nat/distance (list/nat-map-sum A left source) (list/nat-map-sum A right source) ≤ list/nat-map-sum A bound source

List = data/Listℕ = data/Nat≤ = nat/at-most

list/nat-map-sum-multiply-right

TheoremFor all inputsNo axiomsSource, line 608

list/nat-map-sum-multiply-right.{u} :
  (A : Type u) (mapping : A → ℕ) (factor : ℕ) (source : List A)
  → list/nat-map-sum A (fun value => nat/multiply (mapping value) factor) source = nat/multiply (list/nat-map-sum A mapping source) factor

= = equality/EqList = data/Listℕ = data/Nat

probability/expectation-distance-bound

TheoremFor all inputsNo axiomsSource, line 676

probability/expectation-distance-bound.{u} :
  (A : Type u) (source : Finset A) (mass left right : A → ℕ) (epsilon : ℕ)
  (pointwise : ∀ (state : A), nat/distance (left state) (right state) ≤ epsilon)
  → nat/distance (numerator₁) (numerator) ≤ nat/multiply (probability/weight-total A source mass) epsilon
  where numerator := probability/expectation-numerator A source mass right
  where numerator₁ := probability/expectation-numerator A source mass left

Finset = finset-data/Finsetℕ = data/Nat≤ = nat/at-most