src/Pure/Isar/element.ML
changeset 20068 19c7361db4a3
parent 20058 7d035e26e5f9
child 20150 baa589c574ff
equal deleted inserted replaced
20067:26bac504ef90 20068:19c7361db4a3
    41   val prove_witness: Proof.context -> term -> tactic -> witness
    41   val prove_witness: Proof.context -> term -> tactic -> witness
    42   val conclude_witness: witness -> thm
    42   val conclude_witness: witness -> thm
    43   val mark_witness: term -> term
    43   val mark_witness: term -> term
    44   val make_witness: term -> thm -> witness
    44   val make_witness: term -> thm -> witness
    45   val dest_witness: witness -> term * thm
    45   val dest_witness: witness -> term * thm
       
    46   val transfer_witness: theory -> witness -> witness
    46   val refine_witness: Proof.state -> Proof.state Seq.seq
    47   val refine_witness: Proof.state -> Proof.state Seq.seq
    47   val rename: (string * (string * mixfix option)) list -> string -> string
    48   val rename: (string * (string * mixfix option)) list -> string -> string
    48   val rename_var: (string * (string * mixfix option)) list -> string * mixfix -> string * mixfix
    49   val rename_var: (string * (string * mixfix option)) list -> string * mixfix -> string * mixfix
    49   val rename_term: (string * (string * mixfix option)) list -> term -> term
    50   val rename_term: (string * (string * mixfix option)) list -> term -> term
    50   val rename_thm: (string * (string * mixfix option)) list -> thm -> thm
    51   val rename_thm: (string * (string * mixfix option)) list -> thm -> thm
   284 
   285 
   285 fun make_witness t th = Witness (t, th);
   286 fun make_witness t th = Witness (t, th);
   286 
   287 
   287 fun dest_witness (Witness w) = w;
   288 fun dest_witness (Witness w) = w;
   288 
   289 
       
   290 fun transfer_witness thy (Witness (t, th)) = Witness (t, Thm.transfer thy th);
       
   291 
   289 val refine_witness =
   292 val refine_witness =
   290   Proof.refine (Method.Basic (K (Method.RAW_METHOD
   293   Proof.refine (Method.Basic (K (Method.RAW_METHOD
   291     (K (ALLGOALS
   294     (K (ALLGOALS
   292       (PRECISE_CONJUNCTS ~1 (ALLGOALS
   295       (PRECISE_CONJUNCTS ~1 (ALLGOALS
   293         (PRECISE_CONJUNCTS ~1 (TRYALL (Tactic.rtac Drule.protectI))))))))));
   296         (PRECISE_CONJUNCTS ~1 (TRYALL (Tactic.rtac Drule.protectI))))))))));