BasicSpec.hascasl.output revision a39a820684c1974350f46593025e0bb279f41bc6
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smithtype Unit : TYPE
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smithclasses a, b, c
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smithclasses a, b, c;
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smithprogram tt = \ x : s . ();
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smithfst (x : s, y : t) : s = x;
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smithsnd (x : s, y : t) : t = y;
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smithpred eq : s * s
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smithforall x : t; y : t
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smithtype Data1 ::= a | b | c
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith ::= Cons21 (Data1; Data2) | Cons22 (Data2; Data1) | type Data1
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith ::= Cons31 (sel1 :? Data1; sel2 :? Data2) |
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith Cons32 (sel2 :? Data2; sel1 :? Data1)
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith ::= Cons41 (sel1 :? Data1; sel2 :? Data2)? |
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith Cons42 (sel2 :? Data2; sel1 :? Data1)?
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith%% Classes ---------------------------------------------------------------
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith%% Type Constructors -----------------------------------------------------
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John SmithData1 : Type < Data2 %[type Data1 ::= a | b | c]%
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith %[type Data2 ::=
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith types Data1 | Cons21 (Data1; Data2) | Cons22 (Data2; Data1)]%
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavanis %[type Data3 ::=
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith Cons31 (sel1 :? Data1; sel2 :? Data2) |
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavanis Cons32 (sel2 :? Data2; sel1 :? Data1)]%
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith %[type Data4 ::=
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavanis Cons41 (sel1 :? Data1; sel2 :? Data2)? |
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavanis Cons42 (sel2 :? Data2; sel1 :? Data1)?]%
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith%% Type Variables --------------------------------------------------------
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavanist : Type %(var_1)%
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavanis%% Assumptions -----------------------------------------------------------
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex ValavanisCons21 : Data1 * Data2 -> Data2 %(constructor)%
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex ValavanisCons22 : Data2 * Data1 -> Data2 %(constructor)%
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex ValavanisCons31 : Data1 * Data2 -> Data3 %(constructor)%
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex ValavanisCons32 : Data2 * Data1 -> Data3 %(constructor)%
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex ValavanisCons41 : Data1 * Data2 ->? Data4 %(constructor)%
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John SmithCons42 : Data2 * Data1 ->? Data4 %(constructor)%
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavanisa : Data1 %(constructor)%
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavanisa : ? s %(op)%
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavanisb : Data1 %(constructor)%
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smithc : Data1 %(constructor)%
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavaniseq : s * s ->? Unit %(pred)%
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavanisfst : s * t ->? s %(op)%
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavanissel1 : Data3 ->? Data1
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavanis %(selector of constructor(s)
20e25114cc4b04c88faf68f0f3e19dc13833474aAlex Valavanis (Cons31 : Data1 * Data2 -> Data3,
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith Cons32 : Data2 * Data1 -> Data3))%
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smithsel1 : Data4 ->? Data1
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith %(selector of constructor(s)
6bd7ac3b4704cf1cba90dd21a73bfedd6d640a16John Smith (Cons41 : Data1 * Data2 ->? Data4,