# Decidable.Order

interface Congruence
  congruent : Congruence t f eq => (a : t) -> (b : t) -> eq a b -> eq (f a) (f b)
interface Equivalence
  symmetric : Equivalence t eq => (a : t) -> (b : t) -> eq a b -> eq b a
data FinLTE : Fin k -> Fin k -> Type
  FromNatPrf : LTE (finToNat m) (finToNat n) -> FinLTE m n
interface Ordered
  order : Ordered t to => (a : t) -> (b : t) -> Either (to a b) (to b a)
interface Poset
  antisymmetric : Poset t po => (a : t) -> (b : t) -> po a b -> po b a -> a = b
interface Preorder
  transitive : Preorder t po => (a : t) -> (b : t) -> (c : t) -> po a b -> po b c -> po a c
  reflexive : Preorder t po => (a : t) -> po a a
decideLTE : (n : Nat) -> (m : Nat) -> Dec (LTE n m)
lte : (m : Nat) -> (n : Nat) -> Dec (LTE m n)
maximum : Ordered t to => t -> t -> t
minimum : Ordered t to => t -> t -> t
shift : (m : Nat) -> (n : Nat) -> LTE m n -> LTE (S m) (S n)