12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- module Acc where
- data Rel(A : Set) : Set1 where
- rel : (A -> A -> Set) -> Rel A
- _is_than_ : {A : Set} -> A -> Rel A -> A -> Set
- x is rel f than y = f x y
- data Acc {A : Set} (less : Rel A) (x : A) : Set where
- acc : ((y : A) -> x is less than y -> Acc less y) -> Acc less x
- data WO {A : Set} (less : Rel A) : Set where
- wo : ((x : A) -> Acc less x) -> WO less
- data False : Set where
- data True : Set where
- tt : True
- data Nat : Set where
- Z : Nat
- S : Nat -> Nat
- data ∏ {A : Set} (f : A -> Set) : Set where
- ∏I : ((z : A) -> f z) -> ∏ f
- data Ord : Set where
- z : Ord
- lim : (Nat -> Ord) -> Ord
- zp : Ord -> Ord
- zp z = z
- zp (lim f) = lim (\x -> zp (f x))
- _<_ : Ord -> Ord -> Set
- z < _ = True
- lim _ < z = False
- lim f < lim g = ∏ \(n : Nat) -> f n < g n
- ltNat : Nat -> Nat -> Set
- ltNat Z Z = False
- ltNat Z (S n) = True
- ltNat (S m) (S n) = ltNat m n
- ltNat (S m) Z = False
- ltNatRel : Rel Nat
- ltNatRel = rel ltNat
- postulate woltNat : WO ltNatRel
|