src/ZF/Tools/inductive_package.ML
changeset 43324 2b47822868e4
parent 42361 23f352990944
child 43333 2bdec7f430d3
equal deleted inserted replaced
43323:28e71a685c84 43324:2b47822868e4
    94   val dummy = assert_all is_Free rec_params
    94   val dummy = assert_all is_Free rec_params
    95       (fn t => "Param in recursion term not a free variable: " ^
    95       (fn t => "Param in recursion term not a free variable: " ^
    96                Syntax.string_of_term ctxt t);
    96                Syntax.string_of_term ctxt t);
    97 
    97 
    98   (*** Construct the fixedpoint definition ***)
    98   (*** Construct the fixedpoint definition ***)
    99   val mk_variant = Name.variant (List.foldr OldTerm.add_term_names [] intr_tms);
    99   val mk_variant = singleton (Name.variant_list (List.foldr OldTerm.add_term_names [] intr_tms));
   100 
   100 
   101   val z' = mk_variant"z" and X' = mk_variant"X" and w' = mk_variant"w";
   101   val z' = mk_variant"z" and X' = mk_variant"X" and w' = mk_variant"w";
   102 
   102 
   103   fun dest_tprop (Const(@{const_name Trueprop},_) $ P) = P
   103   fun dest_tprop (Const(@{const_name Trueprop},_) $ P) = P
   104     | dest_tprop Q = error ("Ill-formed premise of introduction rule: " ^
   104     | dest_tprop Q = error ("Ill-formed premise of introduction rule: " ^