885 context fixed_params (raw_import_elemss @ raw_elemss) raw_concl; |
885 context fixed_params (raw_import_elemss @ raw_elemss) raw_concl; |
886 val (ps,qs) = splitAt(length raw_import_elemss, all_elemss) |
886 val (ps,qs) = splitAt(length raw_import_elemss, all_elemss) |
887 val ((import_ctxt, axioms'), (import_elemss, _)) = |
887 val ((import_ctxt, axioms'), (import_elemss, _)) = |
888 activate_facts prep_facts ((context, axioms), ps); |
888 activate_facts prep_facts ((context, axioms), ps); |
889 |
889 |
890 (* CB: testing *) |
|
891 (* |
|
892 val axioms' = if true (* null axioms *) then axioms' else |
|
893 let val {view = (ax3_view, ax3_axioms), ...} = |
|
894 the_locale (ProofContext.theory_of context) "Type.ax3"; |
|
895 val ax_TrueFalse = Thm.assume (read_cterm (sign_of_thm (hd axioms)) |
|
896 ("True <-> False", propT)); |
|
897 val {view = (ax4_view, ax4_axioms), ...} = |
|
898 the_locale (ProofContext.theory_of context) "Type.ax4"; |
|
899 in axioms' @ ax3_axioms @ [ax_TrueFalse] @ (tl ax4_axioms) end; |
|
900 *) |
|
901 val ((ctxt, _), (elemss, _)) = |
890 val ((ctxt, _), (elemss, _)) = |
902 activate_facts prep_facts ((import_ctxt, axioms'), qs); |
891 activate_facts prep_facts ((import_ctxt, axioms'), qs); |
903 in |
892 in |
904 ((((import_ctxt, import_elemss), (ctxt, elemss)), (parms, spec, defs)), concl) |
893 ((((import_ctxt, import_elemss), (ctxt, elemss)), (parms, spec, defs)), concl) |
905 end; |
894 end; |
1124 thy |> def_pred aname parms defs exts exts'; |
1113 thy |> def_pred aname parms defs exts exts'; |
1125 val elemss' = change_elemss axioms elemss @ |
1114 val elemss' = change_elemss axioms elemss @ |
1126 [(("", []), [Assumes [((bname ^ "_" ^ axiomsN, []), [(statement, ([], []))])]])]; |
1115 [(("", []), [Assumes [((bname ^ "_" ^ axiomsN, []), [(statement, ([], []))])]])]; |
1127 in |
1116 in |
1128 def_thy |> have_thmss_qualified "" aname |
1117 def_thy |> have_thmss_qualified "" aname |
1129 [((introN, [ContextRules.intro_query_global None]), [([intro], [])])] |
1118 [((introN, []), [([intro], [])])] |
1130 |> #1 |> rpair (elemss', [statement]) |
1119 |> #1 |> rpair (elemss', [statement]) |
1131 end; |
1120 end; |
1132 val (thy'', view) = |
1121 val (thy'', view) = |
1133 if Library.null ints then (thy', ([], [])) |
1122 if Library.null ints then (thy', ([], [])) |
1134 else |
1123 else |
1136 val (def_thy, (statement, intro, axioms)) = |
1125 val (def_thy, (statement, intro, axioms)) = |
1137 thy' |> def_pred bname parms defs (ints @ more_ts) (ints' @ more_ts); |
1126 thy' |> def_pred bname parms defs (ints @ more_ts) (ints' @ more_ts); |
1138 val cstatement = Thm.cterm_of (Theory.sign_of def_thy) statement; |
1127 val cstatement = Thm.cterm_of (Theory.sign_of def_thy) statement; |
1139 in |
1128 in |
1140 def_thy |> have_thmss_qualified "" bname |
1129 def_thy |> have_thmss_qualified "" bname |
1141 [((introN, [ContextRules.intro_query_global None]), [([intro], [])]), |
1130 [((introN, []), [([intro], [])]), |
1142 ((axiomsN, [ContextRules.elim_query_global None]), [(map Drule.standard axioms, [])])] |
1131 ((axiomsN, []), [(map Drule.standard axioms, [])])] |
1143 |> #1 |> rpair ([cstatement], axioms) |
1132 |> #1 |> rpair ([cstatement], axioms) |
1144 end; |
1133 end; |
1145 in (thy'', (elemss', view)) end; |
1134 in (thy'', (elemss', view)) end; |
1146 |
1135 |
1147 end; |
1136 end; |