equal
deleted
inserted
replaced
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 |