src/Pure/Isar/attrib.ML
changeset 70304 1514efa1e57a
parent 69575 f77cc54f6d47
child 70545 b93ba98e627a
equal deleted inserted replaced
70303:502749883f53 70304:1514efa1e57a
   555     "result put into canonical rule format" #>
   555     "result put into canonical rule format" #>
   556   setup \<^binding>\<open>elim_format\<close>
   556   setup \<^binding>\<open>elim_format\<close>
   557     (Scan.succeed (Thm.rule_attribute [] (K Tactic.make_elim)))
   557     (Scan.succeed (Thm.rule_attribute [] (K Tactic.make_elim)))
   558     "destruct rule turned into elimination rule format" #>
   558     "destruct rule turned into elimination rule format" #>
   559   setup \<^binding>\<open>no_vars\<close>
   559   setup \<^binding>\<open>no_vars\<close>
   560     (Scan.succeed (Thm.rule_attribute [] (fn context => fn th =>
   560     (Scan.succeed (Thm.rule_attribute [] (Variable.import_vars o Context.proof_of)))
   561       let
       
   562         val ctxt = Variable.set_body false (Context.proof_of context);
       
   563         val ((_, [th']), _) = Variable.import true [th] ctxt;
       
   564       in th' end)))
       
   565     "imported schematic variables" #>
   561     "imported schematic variables" #>
   566   setup \<^binding>\<open>atomize\<close>
   562   setup \<^binding>\<open>atomize\<close>
   567     (Scan.succeed Object_Logic.declare_atomize) "declaration of atomize rule" #>
   563     (Scan.succeed Object_Logic.declare_atomize) "declaration of atomize rule" #>
   568   setup \<^binding>\<open>rulify\<close>
   564   setup \<^binding>\<open>rulify\<close>
   569     (Scan.succeed Object_Logic.declare_rulify) "declaration of rulify rule" #>
   565     (Scan.succeed Object_Logic.declare_rulify) "declaration of rulify rule" #>