src/Pure/drule.ML
changeset 10515 8430c8fa8a9f
parent 10441 d727c39c4a4b
child 10667 75a1c9575edb
     1.1 --- a/src/Pure/drule.ML	Thu Nov 23 21:29:35 2000 +0100
     1.2 +++ b/src/Pure/drule.ML	Thu Nov 23 21:29:50 2000 +0100
     1.3 @@ -90,6 +90,7 @@
     1.4    val tag_assumption    : 'a attribute
     1.5    val tag_internal      : 'a attribute
     1.6    val has_internal	: tag list -> bool
     1.7 +  val close_derivation  : thm -> thm
     1.8    val compose_single    : thm * int * thm -> thm
     1.9    val add_rules		: thm list -> thm list -> thm list
    1.10    val del_rules		: thm list -> thm list -> thm list
    1.11 @@ -322,13 +323,18 @@
    1.12  
    1.13  (*Standard form of object-rule: no hypotheses, Frees, or outer quantifiers;
    1.14      all generality expressed by Vars having index 0.*)
    1.15 +
    1.16 +fun close_derivation thm =
    1.17 +  if Thm.get_name_tags thm = ("", []) then Thm.name_thm ("", thm)
    1.18 +  else thm;
    1.19 +
    1.20  fun standard th =
    1.21 -  let val {maxidx,...} = rep_thm th
    1.22 -  in
    1.23 -    th |> implies_intr_hyps
    1.24 -       |> forall_intr_frees |> forall_elim_vars (maxidx + 1)
    1.25 -       |> strip_shyps_warning
    1.26 -       |> zero_var_indexes |> Thm.varifyT |> Thm.compress
    1.27 +  let val {maxidx,...} = rep_thm th in
    1.28 +    th
    1.29 +    |> implies_intr_hyps
    1.30 +    |> forall_intr_frees |> forall_elim_vars (maxidx + 1)
    1.31 +    |> strip_shyps_warning
    1.32 +    |> zero_var_indexes |> Thm.varifyT |> Thm.compress |> close_derivation
    1.33    end;
    1.34  
    1.35