{-# OPTIONS --safe --warning=error --without-K --guardedness #-} open import Agda.Primitive using (Level; lzero; lsuc; _⊔_) open import LogicalFormulae open import Groups.Lemmas open import Groups.Definition open import Setoids.Orders.Partial.Definition open import Setoids.Orders.Total.Definition open import Setoids.Setoids open import Functions.Definition open import Sets.EquivalenceRelations open import Rings.Definition open import Rings.Orders.Total.Definition open import Rings.Orders.Partial.Definition open import Numbers.Naturals.Semiring open import Numbers.Naturals.Order open import Numbers.Modulo.Definition open import Semirings.Definition open import Orders.Total.Definition open import Sequences -- Note: totality is necessary here. The construction of a base-n expansion fundamentally relies on being able to take floors. module Rings.Orders.Total.BaseExpansion {a m p : _} {A : Set a} {S : Setoid {a} {m} A} {_+_ : A → A → A} {_*_ : A → A → A} {R : Ring S _+_ _*_} {_<_ : Rel {_} {p} A} {pOrder : SetoidPartialOrder S _<_} {pOrderRing : PartiallyOrderedRing R pOrder} (order : TotallyOrderedRing pOrderRing) {n : ℕ} (1