Skip to content
Rainbow docs menu

Reference · Logic

rainbow.math.logic.strict-contraction-stabilization

Logicsrc/rainbow/math/logic/strict_contraction_stabilization.clj1 definitions, 9 theorems

Constructive bounded stabilization of strict contractions in a finite Nat sup metric.

function/nat-iterate

DefinitionSource, line 119

function/nat-iterate.{u} :
  (C : Type u) (transform : C → C) (x₁ : ℕ) (x₂ : C)
  → C

ℕ = data/Nat

nat/at-most-successor-cancel

TheoremFor all inputsNo axiomsSource, line 66

nat/at-most-successor-cancel :
  (left right : ℕ)
  (ordered : data/succ left ≤ data/succ right)
  → left ≤ right

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

nat/strict-below-of-strict-below-at-most-successor

TheoremFor all inputsNo axiomsSource, line 98

nat/strict-below-of-strict-below-at-most-successor :
  (left middle bound : ℕ) (strict : nat/strict-below left middle)
  (bounded : middle ≤ data/succ bound)
  → left ≤ bound

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

nat/equal-zero-or-positive

TheoremFor all inputsNo axiomsSource, line 195

nat/equal-zero-or-positive :
  (value : ℕ)
  → proposition/disjunction (value = 0) (nat/strict-below 0 value)

= = equality/Eqℕ = data/Nat

function/nat-iterate-zero

TheoremHolds by unfolding a definitionNo axiomsSource, line 141

function/nat-iterate-zero.{u} :
  (C : Type u) (transform : C → C) (initial : C)
  → function/nat-iterate C transform 0 initial = initial

= = equality/Eq

function/nat-iterate-successor

TheoremHolds by unfolding a definitionNo axiomsSource, line 155

function/nat-iterate-successor.{u} :
  (C : Type u) (transform : C → C) (steps : ℕ) (initial : C)
  → function/nat-iterate C transform (data/succ steps) initial = transform (function/nat-iterate C transform steps initial)

= = equality/Eqℕ = data/Nat

nat/strictly-descending-sequence-reaches-zero-within-bound

TheoremFor all inputsNo axiomsSource, line 244

nat/strictly-descending-sequence-reaches-zero-within-bound :
  (bound : ℕ) (sequence : ℕ → ℕ)
  (initial-bounded : sequence 0 ≤ bound)
  (descending : ∀ (steps : ℕ), ∀ (positive : nat/strict-below 0 (sequence steps)), nat/strict-below (sequence (data/succ steps)) (sequence steps))
  → proposition/existence ℕ (fun steps => proposition/conjunction (steps ≤ bound) (sequence steps = 0))

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

metric/strict-contraction-consecutive-iterate-distance-decreases

TheoremFor all inputsNo axiomsSource, line 426

metric/strict-contraction-consecutive-iterate-distance-decreases.{u} :
  (A : Type u) (source : Finset A) (transform : (A → ℕ) → A → ℕ) (initial : A → ℕ)
  (strictly-contracts : ∀ (left : A → ℕ), ∀ (right : A → ℕ), ∀ (positive : nat/strict-below 0 (metric/finite-sup-distance A source left right)), nat/strict-below (metric/finite-sup-distance A source (transform left) (transform right)) (metric/finite-sup-distance A source left right))
  (steps : ℕ) (positive : nat/strict-below 0 (distance₁))
  → nat/strict-below (distance) (distance₁)
  where distance := metric/finite-sup-distance A source (function/nat-iterate (A → ℕ) transform (data/succ steps) initial) (function/nat-iterate (A → ℕ) transform (data/succ (data/succ steps)) initial)
  where distance₁ := metric/finite-sup-distance A source (function/nat-iterate (A → ℕ) transform steps initial) (function/nat-iterate (A → ℕ) transform (data/succ steps) initial)

Finset = finset-data/Finsetℕ = data/Nat

metric/strict-contraction-iterate-stabilizes-within-initial-distance

TheoremFor all inputsNo axiomsSource, line 450

metric/strict-contraction-iterate-stabilizes-within-initial-distance.{u} :
  (A : Type u) (source : Finset A) (transform : (A → ℕ) → A → ℕ) (initial : A → ℕ)
  (strictly-contracts : ∀ (left : A → ℕ), ∀ (right : A → ℕ), ∀ (positive : nat/strict-below 0 (metric/finite-sup-distance A source left right)), nat/strict-below (metric/finite-sup-distance A source (transform left) (transform right)) (metric/finite-sup-distance A source left right))
  → proposition/existence ℕ (fun steps => proposition/conjunction (steps ≤ distance) ((fun steps₁ => metric/finite-sup-distance A source (function/nat-iterate (A → ℕ) transform steps₁ initial) (function/nat-iterate (A → ℕ) transform (data/succ steps₁) initial)) steps = 0))
  where distance := metric/finite-sup-distance A source (function/nat-iterate (A → ℕ) transform 0 initial) (function/nat-iterate (A → ℕ) transform 1 initial)

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

metric/strict-contraction-has-bounded-support-fixed-point

TheoremFor all inputsNo axiomsSource, line 492

metric/strict-contraction-has-bounded-support-fixed-point.{u} :
  (A : Type u) (source : Finset A) (transform : (A → ℕ) → A → ℕ) (initial : A → ℕ)
  (strictly-contracts : ∀ (left : A → ℕ), ∀ (right : A → ℕ), ∀ (positive : nat/strict-below 0 (metric/finite-sup-distance A source left right)), nat/strict-below (metric/finite-sup-distance A source (transform left) (transform right)) (metric/finite-sup-distance A source left right))
  → proposition/existence ℕ (fun steps => proposition/conjunction (steps ≤ distance) (∀ (state : A), ∀ (member : state ∈ source), transform (function/nat-iterate (A → ℕ) transform steps initial) state = function/nat-iterate (A → ℕ) transform steps initial state))
  where distance := metric/finite-sup-distance A source (function/nat-iterate (A → ℕ) transform 0 initial) (function/nat-iterate (A → ℕ) transform 1 initial)

= = equality/EqFinset = finset-data/Finsetℕ = data/Nat∈ = finset-data/to-set: membership in a finite set≤ = nat/at-most