implicits working, but _slow_
This commit is contained in:
@@ -5,3 +5,52 @@ id = \ A x => x
|
||||
|
||||
List : U -> U
|
||||
List = \ A => (L : _) -> (A -> L -> L) -> L -> L
|
||||
|
||||
nil : (A : _) -> List A
|
||||
nil = \ A L cons nil => nil
|
||||
|
||||
cons : (A : _) -> A -> List A -> List A
|
||||
cons = \A x xs L cons nil => cons x (xs _ cons nil)
|
||||
|
||||
Bool : U
|
||||
Bool = (B : _) -> B -> B -> B
|
||||
|
||||
true : Bool
|
||||
true = \ B t f => t
|
||||
|
||||
false : Bool
|
||||
false = \ B t f => f
|
||||
|
||||
not : Bool -> Bool
|
||||
not = \ b B t f => b B f t
|
||||
|
||||
Eq : (A : _) -> A -> A -> U
|
||||
Eq = \A x y => (P : A -> U) -> P x -> P y
|
||||
|
||||
refl : (A : _) (x : A) -> Eq A x x
|
||||
refl = \ A x p px => px
|
||||
|
||||
list1 : List Bool
|
||||
list1 = cons _ true (cons _ false (nil _))
|
||||
|
||||
-- 9 sec
|
||||
|
||||
|
||||
Nat : U
|
||||
Nat = (N : U) -> (N -> N) -> N -> N
|
||||
|
||||
-- 30 sec
|
||||
|
||||
-- five : Nat
|
||||
-- five = \ N s z => s (s (s (s (s z))))
|
||||
|
||||
-- add : Nat -> Nat -> Nat
|
||||
-- add = \ a b N s z => a N s (b N s z)
|
||||
|
||||
-- Add the rest
|
||||
|
||||
|
||||
-- unify (%pi _ E (%var 3 []) (%cl [(%var 6 []), (%var 3 []), (%var 0 []), (%var 2 []), (%var 1 []), (%var 0 [])] (Bnd 2))) with
|
||||
-- (%pi _ E (%var 2 []) (%cl [(%var 6 []), (%var 2 []), (%var 0 []), (%var 1 []), (%var 0 [])] (Bnd 2)))
|
||||
-- -> (%pi _ E (%var 3 []) (%cl [(%var 6 []), (%var 3 []), (%var 0 []), (%var 2 []), (%var 1 []), (%var 0 [])] (Bnd 2))) with
|
||||
-- (%pi _ E (%var 2 []) (%cl [(%var 6 []), (%var 2 []), (%var 0 []), (%var 1 []), (%var 0 [])] (Bnd 2)))
|
||||
|
||||
Reference in New Issue
Block a user