clean up some old unused stuff
This commit is contained in:
parent
88985405ce
commit
426c138c2b
3 changed files with 5 additions and 93 deletions
57
lib/on-hold/Quox/NatExtra.idr
Normal file
57
lib/on-hold/Quox/NatExtra.idr
Normal file
|
@ -0,0 +1,57 @@
|
|||
module Quox.NatExtra
|
||||
|
||||
import public Data.Nat
|
||||
import Data.Nat.Division
|
||||
import Data.SnocList
|
||||
import Data.Vect
|
||||
|
||||
%default total
|
||||
|
||||
|
||||
public export
|
||||
data LTE' : Nat -> Nat -> Type where
|
||||
LTERefl : LTE' n n
|
||||
LTESuccR : LTE' m n -> LTE' m (S n)
|
||||
%builtin Natural LTE'
|
||||
|
||||
public export %hint
|
||||
lteZero' : {n : Nat} -> LTE' 0 n
|
||||
lteZero' {n = 0} = LTERefl
|
||||
lteZero' {n = S n} = LTESuccR lteZero'
|
||||
|
||||
public export %hint
|
||||
lteSucc' : LTE' m n -> LTE' (S m) (S n)
|
||||
lteSucc' LTERefl = LTERefl
|
||||
lteSucc' (LTESuccR p) = LTESuccR $ lteSucc' p
|
||||
|
||||
public export
|
||||
fromLte : {n : Nat} -> LTE m n -> LTE' m n
|
||||
fromLte LTEZero = lteZero'
|
||||
fromLte (LTESucc p) = lteSucc' $ fromLte p
|
||||
|
||||
public export
|
||||
toLte : {n : Nat} -> m `LTE'` n -> m `LTE` n
|
||||
toLte LTERefl = reflexive
|
||||
toLte (LTESuccR p) = lteSuccRight (toLte p)
|
||||
|
||||
|
||||
private
|
||||
0 baseNZ : n `GTE` 2 => NonZero n
|
||||
baseNZ @{LTESucc _} = SIsNonZero
|
||||
|
||||
parameters {base : Nat} {auto 0 _ : base `GTE` 2} (chars : Vect base Char)
|
||||
private
|
||||
showAtBase' : List Char -> Nat -> List Char
|
||||
showAtBase' acc 0 = acc
|
||||
showAtBase' acc k =
|
||||
let dig = natToFinLT (modNatNZ k base baseNZ) @{boundModNatNZ {}} in
|
||||
showAtBase' (index dig chars :: acc)
|
||||
(assert_smaller k $ divNatNZ k base baseNZ)
|
||||
|
||||
export
|
||||
showAtBase : Nat -> String
|
||||
showAtBase = pack . showAtBase' []
|
||||
|
||||
export
|
||||
showHex : Nat -> String
|
||||
showHex = showAtBase $ fromList $ unpack "0123456789ABCDEF"
|
Loading…
Add table
Add a link
Reference in a new issue