--- a/Quot/quotient_typ.ML Thu Dec 31 23:53:10 2009 +0100
+++ b/Quot/quotient_typ.ML Fri Jan 01 01:08:19 2010 +0100
@@ -217,9 +217,15 @@
(* - its mixfix annotation *)
(* - the type to be quotient *)
(* - the relation according to which the type is quotient *)
+(* *)
+(* opens a proof-state in which one has to show that the *)
+(* relation is an equivalence relation *)
fun quotient_type quot_list lthy =
let
+ (* sanity check *)
+ val _ = map sanity_check quot_list
+
fun mk_goal (rty, rel) =
let
val equivp_ty = ([rty, rty] ---> @{typ bool}) --> @{typ bool}
@@ -231,14 +237,11 @@
fun after_qed thms lthy =
fold_map mk_typedef_main (quot_list ~~ thms) lthy |> snd
-
- (* sanity check *)
- val _ = map sanity_check quot_list
in
theorem after_qed goals lthy
end
-fun quotient_type_cmd spec lthy =
+fun quotient_type_cmd specs lthy =
let
fun parse_spec ((((vs, qty_name), mx), rty_str), rel_str) =
let
@@ -248,7 +251,7 @@
((vs, qty_name, mx), (rty, rel))
end
in
- quotient_type (map parse_spec spec) lthy
+ quotient_type (map parse_spec specs) lthy
end
val quotspec_parser =