BasicSpec.hascasl.parser.output revision 2f2237571ed7885b0f1ccb2c17996e8922f3d12d
649fdc0d0502d62d160c150684356fef2c273484Eugen Kuksaclass Type < Type
649fdc0d0502d62d160c150684356fef2c273484Eugen Kuksavar t : Type
649fdc0d0502d62d160c150684356fef2c273484Eugen Kuksaclass TYPE < Type
649fdc0d0502d62d160c150684356fef2c273484Eugen Kuksatype Pred __ : -Type -> Type;
649fdc0d0502d62d160c150684356fef2c273484Eugen Kuksa Unit : TYPE
649fdc0d0502d62d160c150684356fef2c273484Eugen Kuksaclass a, b, c < Type
649fdc0d0502d62d160c150684356fef2c273484Eugen Kuksaclass a, b, c < d;
649fdc0d0502d62d160c150684356fef2c273484Eugen Kuksa a < b
649fdc0d0502d62d160c150684356fef2c273484Eugen Kuksatype s : c
649fdc0d0502d62d160c150684356fef2c273484Eugen Kuksapred tt : s
var x : s
program tt = \ x : s . ()
program
__ res __ (x : s, y : t) : s = x;
fst (x : s, y : t) : s = x;
snd (x : s, y : t) : t = y
pred eq : s * s
type s < ? s
program all (p : (? s)) : (? Unit) = eq (p, tt)
program And (x, y : (? Unit)) : (? Unit) = t1 () res t2 ()
program __ impl __ (x, y : (? Unit)) = eq (x, x And y)
program
__ or __ (x, y : (? Unit)) : (? Unit) =
all (\ r : (? Unit) . ((x impl r) res (y impl r)) impl r);
ex (p : (? s)) : (? Unit) =
all (\ r : (? Unit) . all (\ x : s . p (x) impl r) impl r);
ff () : (? Unit) = all (\ r : (? Unit) . r ())
forall x : t; y : t
.
%(..)%
x = y
type s
op a : (? s)
type Data1 ::= a |
b |
c
type Data2 ::= Cons21 (Data1; Data2) |
Cons22 (Data2; Data1) |
type Data1
type Data3 ::= Cons31 (sel1 :? Data1; sel2 :? Data2) |
Cons32 (sel2 :? Data2; sel1 :? Data1)
type Data4 ::= Cons41 (sel1 :? Data1; sel2 :? Data2)? |
Cons42 (sel2 :? Data2; sel1 :? Data1)?
. true
forall x : s
. e
forall x : s
. e