Andrew Sneap, 17 February 2022 \begin{code} {-# OPTIONS --safe --without-K #-} open import MLTT.Spartan renaming (_+_ to _∔_) open import Naturals.Exponentiation open import Dyadics.Type open import Integers.Type open import Integers.Exponentiation open import Integers.Multiplication open import Integers.Order open import Notation.Order open import UF.Base module Dyadics.Order where _<ℤ[1/2]_ _≤ℤ[1/2]_ : ℤ[1/2] → ℤ[1/2] → 𝓤₀ ̇ ((x , m) , _) <ℤ[1/2] ((y , n) , _) = x * pos (2^ n) < y * pos (2^ m) ((x , m) , _) ≤ℤ[1/2] ((y , n) , _) = x * pos (2^ n) ≤ y * pos (2^ m) instance Order-ℤ[1/2]-ℤ[1/2] : Order ℤ[1/2] ℤ[1/2] _≤_ {{Order-ℤ[1/2]-ℤ[1/2]}} = _≤ℤ[1/2]_ Strict-Order-ℤ[1/2]-ℤ[1/2] : Strict-Order ℤ[1/2] ℤ[1/2] _<_ {{Strict-Order-ℤ[1/2]-ℤ[1/2]}} = _<ℤ[1/2]_ \end{code} Transivity of order proof: Since (x , a) ≤ (y , b) ≤ (z , c), we have that 1) x * pos (2^ b) < y * pos (2^ a) 2) y * pos (2^ c) < z * pos (2^ b) Multiplication of 1) by pos (2^ c) 2) by pos (2^ a) gives that x * pos (2^ b) * pos (2^ c) ≤ y * pos (2^ a) * pos (2^ c) ≤ z * pos (2^ b) * pos (2^ a). It follows by transitivity of integer order and multiplicative cancellation that x * pos (2^ c) ≤ z * pos (2^ a). \begin{code} ℤ[1/2]<-trans : (x y z : ℤ[1/2]) → x < y → y < z → x < z ℤ[1/2]<-trans ((x , a) , _) ((y , b) , _) ((z , c) , _) l₁ l₂ = γ where I : x * pos (2^ b) * pos (2^ c) < y * pos (2^ a) * pos (2^ c) I = positive-multiplication-preserves-order (x * pos (2^ b)) (y * pos (2^ a)) (pos (2^ c)) (exponents-of-two-positive c) l₁ II : y * pos (2^ c) * pos (2^ a) < z * pos (2^ b) * pos (2^ a) II = positive-multiplication-preserves-order (y * pos (2^ c)) (z * pos (2^ b)) (pos (2^ a)) (exponents-of-two-positive a) l₂ III : x * pos (2^ b) * pos (2^ c) = x * pos (2^ c) * pos (2^ b) III = ℤ-mult-rearrangement x (pos (2^ b)) (pos (2^ c)) IV : z * pos (2^ b) * pos (2^ a) = z * pos (2^ a) * pos (2^ b) IV = ℤ-mult-rearrangement z (pos (2^ b)) (pos (2^ a)) V : y * pos (2^ a) * pos (2^ c) = y * pos (2^ c) * pos (2^ a) V = ℤ-mult-rearrangement y (pos (2^ a)) (pos (2^ c)) VI : y * pos (2^ a) * pos (2^ c) < z * pos (2^ a) * pos (2^ b) VI = transport₂ _<_ (V ⁻¹) IV II VII : x * pos (2^ c) * pos (2^ b) < y * pos (2^ a) * pos (2^ c) VII = transport (_< y * pos (2^ a) * pos (2^ c)) III I VIII : x * pos (2^ c) * pos (2^ b) < z * pos (2^ a) * pos (2^ b) VIII = ℤ<-trans (x * pos (2^ c) * pos (2^ b)) (y * pos (2^ a) * pos (2^ c)) (z * pos (2^ a) * pos (2^ b)) VII VI γ : x * pos (2^ c) < z * pos (2^ a) γ = ordering-right-cancellable (x * pos (2^ c)) (z * pos (2^ a)) (pos (2^ b)) (exponents-of-two-positive b) VIII ℤ[1/2]≤-trans : (x y z : ℤ[1/2]) → x ≤ y → y ≤ z → x ≤ z ℤ[1/2]≤-trans ((x , a) , _) ((y , b) , _) ((z , c) , _) l₁ l₂ = γ where I : x * pos (2^ b) * pos (2^ c) ≤ y * pos (2^ a) * pos (2^ c) I = positive-multiplication-preserves-order' (x * pos (2^ b)) (y * pos (2^ a)) (pos (2^ c)) (exponents-of-two-positive c) l₁ II : y * pos (2^ c) * pos (2^ a) ≤ z * pos (2^ b) * pos (2^ a) II = positive-multiplication-preserves-order' (y * pos (2^ c)) (z * pos (2^ b)) (pos (2^ a)) (exponents-of-two-positive a) l₂ III : x * pos (2^ b) * pos (2^ c) = x * pos (2^ c) * pos (2^ b) III = ℤ-mult-rearrangement x (pos (2^ b)) (pos (2^ c)) IV : z * pos (2^ b) * pos (2^ a) = z * pos (2^ a) * pos (2^ b) IV = ℤ-mult-rearrangement z (pos (2^ b)) (pos (2^ a)) V : y * pos (2^ a) * pos (2^ c) = y * pos (2^ c) * pos (2^ a) V = ℤ-mult-rearrangement y (pos (2^ a)) (pos (2^ c)) VI : y * pos (2^ a) * pos (2^ c) ≤ z * pos (2^ a) * pos (2^ b) VI = transport₂ _≤_ (V ⁻¹) IV II VII : x * pos (2^ c) * pos (2^ b) ≤ y * pos (2^ a) * pos (2^ c) VII = transport (_≤ y * pos (2^ a) * pos (2^ c)) III I VIII : x * pos (2^ c) * pos (2^ b) ≤ z * pos (2^ a) * pos (2^ b) VIII = ℤ≤-trans (x * pos (2^ c) * pos (2^ b)) (y * pos (2^ a) * pos (2^ c)) (z * pos (2^ a) * pos (2^ b)) VII VI γ : x * pos (2^ c) ≤ z * pos (2^ a) γ = ℤ≤-ordering-right-cancellable (x * pos (2^ c)) (z * pos (2^ a)) (pos (2^ b)) (exponents-of-two-positive b) VIII ℤ[1/2]≤-refl : (p : ℤ[1/2]) → p ≤ p ℤ[1/2]≤-refl ((z , a) , α) = ℤ≤-refl (z * pos (2^ a)) \end{code}