src/Pure/Isar/proof.ML
changeset 14508 859b11514537
parent 14404 4952c5a92e04
child 14528 1457584110ac
equal deleted inserted replaced
14507:0af3da3beae8 14508:859b11514537
    63     (xstring * context attribute list) list) list -> state -> state
    63     (xstring * context attribute list) list) list -> state -> state
    64   val with_thmss_i: ((bstring * context attribute list) *
    64   val with_thmss_i: ((bstring * context attribute list) *
    65     (thm list * context attribute list) list) list -> state -> state
    65     (thm list * context attribute list) list) list -> state -> state
    66   val using_thmss: ((xstring * context attribute list) list) list -> state -> state
    66   val using_thmss: ((xstring * context attribute list) list) list -> state -> state
    67   val using_thmss_i: ((thm list * context attribute list) list) list -> state -> state
    67   val using_thmss_i: ((thm list * context attribute list) list) list -> state -> state
       
    68   val instantiate_locale: string * string -> state -> state
    68   val fix: (string list * string option) list -> state -> state
    69   val fix: (string list * string option) list -> state -> state
    69   val fix_i: (string list * typ option) list -> state -> state
    70   val fix_i: (string list * typ option) list -> state -> state
    70   val assm: ProofContext.exporter
    71   val assm: ProofContext.exporter
    71     -> ((string * context attribute list) * (string * (string list * string list)) list) list
    72     -> ((string * context attribute list) * (string * (string list * string list)) list) list
    72     -> state -> state
    73     -> state -> state
   508 val let_bind = gen_bind (ProofContext.match_bind true);
   509 val let_bind = gen_bind (ProofContext.match_bind true);
   509 val let_bind_i = gen_bind (ProofContext.match_bind_i true);
   510 val let_bind_i = gen_bind (ProofContext.match_bind_i true);
   510 
   511 
   511 
   512 
   512 (* have_thmss *)
   513 (* have_thmss *)
       
   514 (* CB: this implements "note" of the Isar/VM *)
   513 
   515 
   514 local
   516 local
   515 
   517 
   516 fun gen_have_thmss f args state =
   518 fun gen_have_thmss f args state =
   517   state
   519   state
   562 val using_thmss = gen_using_thmss ProofContext.have_thmss;
   564 val using_thmss = gen_using_thmss ProofContext.have_thmss;
   563 val using_thmss_i = gen_using_thmss ProofContext.have_thmss_i;
   565 val using_thmss_i = gen_using_thmss ProofContext.have_thmss_i;
   564 
   566 
   565 end;
   567 end;
   566 
   568 
       
   569 
       
   570 (* locale instantiation *)
       
   571 
       
   572 fun instantiate_locale (loc_name, prfx) state = let
       
   573     val ctxt = context_of state;
       
   574     val facts = if is_chain state then get_facts state else None;
       
   575   in
       
   576     state
       
   577     |> assert_forward_or_chain
       
   578     |> enter_forward
       
   579     |> reset_facts
       
   580     |> map_context (Locale.instantiate loc_name prfx facts)
       
   581   end;
   567 
   582 
   568 (* fix *)
   583 (* fix *)
   569 
   584 
   570 fun gen_fix f xs state =
   585 fun gen_fix f xs state =
   571   state
   586   state