{-# OPTIONS --warning=error --safe --without-K #-} open import LogicalFormulae open import Lists.Lists open import Numbers.Naturals.Order open import Numbers.Naturals.Order.Lemmas open import Numbers.Naturals.Semiring open import Numbers.BinaryNaturals.Definition open import Orders.Total.Definition open import Semirings.Definition module Numbers.BinaryNaturals.Order where data Compare : Set where Equal : Compare FirstLess : Compare FirstGreater : Compare private badCompare : Equal ≡ FirstLess → False badCompare () badCompare' : Equal ≡ FirstGreater → False badCompare' () badCompare'' : FirstLess ≡ FirstGreater → False badCompare'' () _0 rewrite binNatToNZero' b b=0 = naughtE b>0 chopFirstBit : (m n : BinNat) {b : Bit} (s : Compare) → go