src/Pure/drule.ML
changeset 62876 507c90523113
parent 61852 d273c24b5776
child 63068 8b9401bfd9fd
equal deleted inserted replaced
62875:5a0c06491974 62876:507c90523113
   132   | _ => ct);
   132   | _ => ct);
   133 
   133 
   134 (*The premises of a theorem, as a cterm list*)
   134 (*The premises of a theorem, as a cterm list*)
   135 val cprems_of = strip_imp_prems o Thm.cprop_of;
   135 val cprems_of = strip_imp_prems o Thm.cprop_of;
   136 
   136 
   137 fun certify t = Thm.global_cterm_of (Context.the_theory (Context.the_thread_data ())) t;
   137 fun certify t = Thm.global_cterm_of (Context.the_global_context ()) t;
   138 
   138 
   139 val implies = certify Logic.implies;
   139 val implies = certify Logic.implies;
   140 fun mk_implies (A, B) = Thm.apply (Thm.apply implies A) B;
   140 fun mk_implies (A, B) = Thm.apply (Thm.apply implies A) B;
   141 
   141 
   142 (*cterm version of list_implies: [A1,...,An], B  goes to [|A1;==>;An|]==>B *)
   142 (*cterm version of list_implies: [A1,...,An], B  goes to [|A1;==>;An|]==>B *)
   568 
   568 
   569 (** embedded terms and types **)
   569 (** embedded terms and types **)
   570 
   570 
   571 local
   571 local
   572   val A = certify (Free ("A", propT));
   572   val A = certify (Free ("A", propT));
   573   val axiom = Thm.unvarify_axiom (Context.the_theory (Context.the_thread_data ()));
   573   val axiom = Thm.unvarify_axiom (Context.the_global_context ());
   574   val prop_def = axiom "Pure.prop_def";
   574   val prop_def = axiom "Pure.prop_def";
   575   val term_def = axiom "Pure.term_def";
   575   val term_def = axiom "Pure.term_def";
   576   val sort_constraint_def = axiom "Pure.sort_constraint_def";
   576   val sort_constraint_def = axiom "Pure.sort_constraint_def";
   577   val C = Thm.lhs_of sort_constraint_def;
   577   val C = Thm.lhs_of sort_constraint_def;
   578   val T = Thm.dest_arg C;
   578   val T = Thm.dest_arg C;
   643 
   643 
   644 val sort_constraint_eq =
   644 val sort_constraint_eq =
   645   store_standard_thm (Binding.concealed (Binding.make ("sort_constraint_eq", @{here})))
   645   store_standard_thm (Binding.concealed (Binding.make ("sort_constraint_eq", @{here})))
   646     (Thm.equal_intr
   646     (Thm.equal_intr
   647       (Thm.implies_intr CA (Thm.implies_elim (Thm.assume CA)
   647       (Thm.implies_intr CA (Thm.implies_elim (Thm.assume CA)
   648         (Thm.unvarify_global (Context.the_theory (Context.the_thread_data ())) sort_constraintI)))
   648         (Thm.unvarify_global (Context.the_global_context ()) sort_constraintI)))
   649       (implies_intr_list [A, C] (Thm.assume A)));
   649       (implies_intr_list [A, C] (Thm.assume A)));
   650 
   650 
   651 end;
   651 end;
   652 
   652 
   653 
   653