packages feed

pisigma-0.1.0.1: examples/Equal.pi

Eq : (a:Type) -> a -> a -> Type;
Eq = \ a x y -> (P : a -> Type) -> P x -> P y;

refl : (a:Type) -> (x:a) -> Eq a x x;
refl = \ a x P px -> px;

A : Type;
a : A;

b : A;
b = a;

t0 : Eq A a b;
t0 = refl A a;

{-
c : A;
t1 : Eq A a c;
t1 = refl A a;
-}

d : ^A;
d = [a];

t2 : Eq (^A) d [a];
t2 = refl (^A) [a];

{-
t3 : Eq (^A) [a] [b];
t3 = refl (^A) [a];
-}

e : A;
e = a;

t4 : Eq (^A) [e] [b];
t4 = refl (^A) [e];

id : A -> A;
id = \ x -> x;

f : A;
f = id a;

t5 : Eq (^A) [f] [b];
t5 = refl (^A) [f];
{-
? f = b
? id a = a [f=b=b]
-}

t6 : Eq A (id a) a;
t6 = refl A a;