interface Irreflexive : (a : Type) -> (a -> a -> Type) -> Typeirrefl : r x x -> VoidIrreflexive Nat LTirrefl : Irreflexive a r => r x x -> Voidirrefl' : Irreflexive a r => r x y -> x = y -> VoidAlternative version of irreflexivity
natIrrefl : LT x x -> Voiddata Trichotomy : (0 _ : (a -> a -> Type)) -> a -> a -> TypeLT : r x y -> Trichotomy r x yEQ : x = y -> Trichotomy r x yGT : r y x -> Trichotomy r x yinterface Trichotomous : (a : Type) -> (a -> a -> Type) -> Typetrichotomy : (x : a) -> (y : a) -> Trichotomy r x yTrichotomous Nat LTtrichotomy : Trichotomous a r => (x : a) -> (y : a) -> Trichotomy r x ytrichotomySucc : Trichotomy LT m n -> Trichotomy LT (S m) (S n)succLTE : LTE x y -> LTE x (S y)precLTE : LTE (S x) y -> LTE x yinterface TotalOrder : (a : Type) -> (a -> a -> Type) -> TypeVery similar to LinearOrder (in Control.TotalOrder) but based off LT rather than LTE
TotalOrder Nat LT