Data.Type.Natural

Re-exported modules.

Natural Numbers

data Nat

data SSym0 l

type SSym1 t

type ZSym0

type SNat

data family Sing a

Smart constructors

sZ

sS

Arithmetic functions and their singletons.

min

type family Min arg0 arg1 :: a0

sMin

max

type family Max arg0 arg1 :: a0

sMax

data MinSym0 l0

data MinSym1 l0 l1

type MinSym2 t0 t1

data MaxSym0 l0

data MaxSym1 l0 l1

type MaxSym2 t0 t1

type n :+: m

type family arg0 :+ arg1 :: a0

data (:+$) l0

data l0 :+$$ l1

type t0 :+$$$ t1

(%+)

(%:+)

type family arg0 :* arg1 :: a0

type n :*: m

data (:*$) l0

data l0 :*$$ l1

type t0 :*$$$ t1

(%:*)

(%*)

type n :-: m

type family arg0 :- arg1 :: a0

type n :**: m

type family a :** a :: Nat

(%:**)

(%**)

data (:-$) l0

data l0 :-$$ l1

type t0 :-$$$ t1

(%:-)

(%-)

Type-level predicate & judgements

data Leq n m

class n :<= m

type family a :<<= a :: Bool

data (:<<=$) l

data l :<<=$$ l

type t :<<=$$$ t

(%:<<=)

type LeqInstance n m

boolToPropLeq

boolToClassLeq

propToClassLeq

type LeqTrueInstance a b

propToBoolLeq

Conversion functions

natToInt

intToNat

sNatToInt

Quasi quotes for natural numbers

nat

snat

Properties of natural numbers

succCongEq

plusCongR

plusCongL

succPlusL

succPlusR

plusZR

plusZL

eqPreservesS

plusAssociative

multAssociative

multComm

multZL

multZR

multOneL

multOneR

snEqZAbsurd

succInjective

plusInjectiveL

plusInjectiveR

plusMultDistr

multPlusDistr

multCongL

multCongR

sAndPlusOne

plusCommutative

minusCongEq

minusNilpotent

eqSuccMinus

plusMinusEqL

plusMinusEqR

zAbsorbsMinR

zAbsorbsMinL

plusSR

plusNeutralR

plusNeutralL

leqRhs

leqLhs

minComm

maxZL

maxComm

maxZR

Properties of ordering Leq

leqRefl

leqSucc

leqTrans

plusMonotone

plusLeqL

plusLeqR

minLeqL

minLeqR

leqAnitsymmetric

maxLeqL

maxLeqR

leqSnZAbsurd

leqnZElim

leqSnLeq

leqPred

leqSnnAbsurd

Useful type synonyms and constructors

zero

one

two

three

four

five

six

seven

eight

nine

ten

eleven

twelve

thirteen

fourteen

fifteen

sixteen

seventeen

eighteen

nineteen

twenty

type family Zero :: Nat

type family One :: Nat

type family Two :: Nat

type family Three :: Nat

type family Four :: Nat

type family Five :: Nat

type family Six :: Nat

type family Seven :: Nat

type family Eight :: Nat

type family Nine :: Nat

type family Ten :: Nat

type family Eleven :: Nat

type family Twelve :: Nat

type family Thirteen :: Nat

type family Fourteen :: Nat

type family Fifteen :: Nat

type family Sixteen :: Nat

type family Seventeen :: Nat

type family Eighteen :: Nat

type family Nineteen :: Nat

type family Twenty :: Nat

type ZeroSym0

type OneSym0

type TwoSym0

type ThreeSym0

type FourSym0

type FiveSym0

type SixSym0

type SevenSym0

type EightSym0

type NineSym0

type TenSym0

type ElevenSym0

type TwelveSym0

type ThirteenSym0

type FourteenSym0

type FifteenSym0

type SixteenSym0

type SeventeenSym0

type EighteenSym0

type NineteenSym0

type TwentySym0

sZero

sOne

sTwo

sThree

sFour

sFive

sSix

sSeven

sEight

sNine

sTen

sEleven

sTwelve

sThirteen

sFourteen

sFifteen

sSixteen

sSeventeen

sEighteen

sNineteen

sTwenty

n0

n1

n2

n3

n4

n5

n6

n7

n8

n9

n10

n11

n12

n13

n14

n15

n16

n17

n18

n19

n20

type family N0 :: Nat

type family N1 :: Nat

type family N2 :: Nat

type family N3 :: Nat

type family N4 :: Nat

type family N5 :: Nat

type family N6 :: Nat

type family N7 :: Nat

type family N8 :: Nat

type family N9 :: Nat

type family N10 :: Nat

type family N11 :: Nat

type family N12 :: Nat

type family N13 :: Nat

type family N14 :: Nat

type family N15 :: Nat

type family N16 :: Nat

type family N17 :: Nat

type family N18 :: Nat

type family N19 :: Nat

type family N20 :: Nat

type N0Sym0

type N1Sym0

type N2Sym0

type N3Sym0

type N4Sym0

type N5Sym0

type N6Sym0

type N7Sym0

type N8Sym0

type N9Sym0

type N10Sym0

type N11Sym0

type N12Sym0

type N13Sym0

type N14Sym0

type N15Sym0

type N16Sym0

type N17Sym0

type N18Sym0

type N19Sym0

type N20Sym0

sN0

sN1

sN2

sN3

sN4

sN5

sN6

sN7

sN8

sN9

sN10

sN11

sN12

sN13

sN14

sN15

sN16

sN17

sN18

sN19

sN20