src/Pure/Isar/locale.ML
changeset 14254 342634f38451
parent 14216 a15951091d5d
child 14291 61df18481f53
equal deleted inserted replaced
14253:91a64a93bdb4 14254:342634f38451
   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;