src/Pure/variable.ML
changeset 70733 ce1afe0f3071
parent 70586 57df8a85317a
child 70843 cc987440d776
equal deleted inserted replaced
70732:53fa2e4e79af 70733:ce1afe0f3071
    56   val add_free_names: Proof.context -> term -> string list -> string list
    56   val add_free_names: Proof.context -> term -> string list -> string list
    57   val add_frees: Proof.context -> term -> (string * typ) list -> (string * typ) list
    57   val add_frees: Proof.context -> term -> (string * typ) list -> (string * typ) list
    58   val add_fixes_binding: binding list -> Proof.context -> string list * Proof.context
    58   val add_fixes_binding: binding list -> Proof.context -> string list * Proof.context
    59   val add_fixes: string list -> Proof.context -> string list * Proof.context
    59   val add_fixes: string list -> Proof.context -> string list * Proof.context
    60   val add_fixes_direct: string list -> Proof.context -> Proof.context
    60   val add_fixes_direct: string list -> Proof.context -> Proof.context
       
    61   val add_fixes_implicit: term -> Proof.context -> Proof.context
    61   val fix_dummy_patterns: term -> Proof.context -> term * Proof.context
    62   val fix_dummy_patterns: term -> Proof.context -> term * Proof.context
    62   val variant_fixes: string list -> Proof.context -> string list * Proof.context
    63   val variant_fixes: string list -> Proof.context -> string list * Proof.context
    63   val gen_all: Proof.context -> thm -> thm
    64   val gen_all: Proof.context -> thm -> thm
    64   val export_terms: Proof.context -> Proof.context -> term list -> term list
    65   val export_terms: Proof.context -> Proof.context -> term list -> term list
    65   val exportT_terms: Proof.context -> Proof.context -> term list -> term list
    66   val exportT_terms: Proof.context -> Proof.context -> term list -> term list
   473 fun add_fixes_direct xs ctxt = ctxt
   474 fun add_fixes_direct xs ctxt = ctxt
   474   |> set_body false
   475   |> set_body false
   475   |> (snd o add_fixes xs)
   476   |> (snd o add_fixes xs)
   476   |> restore_body ctxt;
   477   |> restore_body ctxt;
   477 
   478 
       
   479 fun add_fixes_implicit t ctxt = ctxt
       
   480   |> not (is_body ctxt) ? add_fixes_direct (rev (add_free_names ctxt t []));
       
   481 
   478 
   482 
   479 (* dummy patterns *)
   483 (* dummy patterns *)
   480 
   484 
   481 fun fix_dummy_patterns (Const ("Pure.dummy_pattern", T)) ctxt =
   485 fun fix_dummy_patterns (Const ("Pure.dummy_pattern", T)) ctxt =
   482       let val ([x], ctxt') = ctxt |> set_body true |> add_fixes [Name.uu_] ||> restore_body ctxt
   486       let val ([x], ctxt') = ctxt |> set_body true |> add_fixes [Name.uu_] ||> restore_body ctxt