src/HOL/Tools/res_axioms.ML
changeset 31794 71af1fd6a5e4
parent 31454 2c0959ab073f
child 32010 cb1a1c94b4cd
equal deleted inserted replaced
31793:7c10b13d49fe 31794:71af1fd6a5e4
   267 
   267 
   268 
   268 
   269 (*Converts an Isabelle theorem (intro, elim or simp format, even higher-order) into NNF.*)
   269 (*Converts an Isabelle theorem (intro, elim or simp format, even higher-order) into NNF.*)
   270 fun to_nnf th ctxt0 =
   270 fun to_nnf th ctxt0 =
   271   let val th1 = th |> transform_elim |> zero_var_indexes
   271   let val th1 = th |> transform_elim |> zero_var_indexes
   272       val ((_,[th2]),ctxt) = Variable.import_thms true [th1] ctxt0
   272       val ((_,[th2]),ctxt) = Variable.import true [th1] ctxt0
   273       val th3 = th2 |> Conv.fconv_rule ObjectLogic.atomize |> Meson.make_nnf |> strip_lambdas ~1
   273       val th3 = th2 |> Conv.fconv_rule ObjectLogic.atomize |> Meson.make_nnf |> strip_lambdas ~1
   274   in  (th3, ctxt)  end;
   274   in  (th3, ctxt)  end;
   275 
   275 
   276 (*Generate Skolem functions for a theorem supplied in nnf*)
   276 (*Generate Skolem functions for a theorem supplied in nnf*)
   277 fun assume_skolem_of_def s th =
   277 fun assume_skolem_of_def s th =