src/ZF/ex/CoUnit.ML
changeset 477 53fc8ad84b33
parent 445 7b6d8b8d4580
child 515 abcc438e7c27
equal deleted inserted replaced
476:836cad329311 477:53fc8ad84b33
    12   definition is trivial!  The same thing occurs with Aczel's Special Final
    12   definition is trivial!  The same thing occurs with Aczel's Special Final
    13   Coalgebra Theorem
    13   Coalgebra Theorem
    14 *)
    14 *)
    15 structure CoUnit = CoDatatype_Fun
    15 structure CoUnit = CoDatatype_Fun
    16  (val thy = QUniv.thy;
    16  (val thy = QUniv.thy;
       
    17   val thy_name = "CoUnit";
    17   val rec_specs = 
    18   val rec_specs = 
    18       [("counit", "quniv(0)",
    19       [("counit", "quniv(0)",
    19 	  [(["Con"],	"i=>i", NoSyn)])];
    20 	  [(["Con"],	"i=>i", NoSyn)])];
    20   val rec_styp = "i";
    21   val rec_styp = "i";
    21   val sintrs = ["x: counit ==> Con(x) : counit"];
    22   val sintrs = ["x: counit ==> Con(x) : counit"];
    48   The resulting set is a singleton.
    49   The resulting set is a singleton.
    49 *)
    50 *)
    50 
    51 
    51 structure CoUnit2 = CoDatatype_Fun
    52 structure CoUnit2 = CoDatatype_Fun
    52  (val thy = QUniv.thy;
    53  (val thy = QUniv.thy;
       
    54   val thy_name = "CoUnit2";
    53   val rec_specs = 
    55   val rec_specs = 
    54       [("counit2", "quniv(0)",
    56       [("counit2", "quniv(0)",
    55 	  [(["Con2"],	"[i,i]=>i", NoSyn)])];
    57 	  [(["Con2"],	"[i,i]=>i", NoSyn)])];
    56   val rec_styp = "i";
    58   val rec_styp = "i";
    57   val sintrs = ["[| x: counit2;  y: counit2 |] ==> Con2(x,y) : counit2"];
    59   val sintrs = ["[| x: counit2;  y: counit2 |] ==> Con2(x,y) : counit2"];