src/Pure/raw_simplifier.ML
changeset 71177 71467e35fc3c
parent 70586 57df8a85317a
child 71234 f1838cf9f139
equal deleted inserted replaced
71167:b4d409c65a76 71177:71467e35fc3c
  1424 
  1424 
  1425 (* HHF normal form: \<And> before \<Longrightarrow>, outermost \<And> generalized *)
  1425 (* HHF normal form: \<And> before \<Longrightarrow>, outermost \<And> generalized *)
  1426 
  1426 
  1427 local
  1427 local
  1428 
  1428 
  1429 fun gen_norm_hhf ss ctxt =
  1429 fun gen_norm_hhf ss ctxt0 th0 =
  1430   Thm.transfer' ctxt #>
  1430   let
  1431   (fn th =>
  1431     val (ctxt, th) = Thm.join_transfer_context (ctxt0, th0);
  1432     if Drule.is_norm_hhf (Thm.prop_of th) then th
  1432     val th' =
  1433     else
  1433       if Drule.is_norm_hhf (Thm.prop_of th) then th
  1434       Conv.fconv_rule
  1434       else
  1435         (rewrite_cterm (true, false, false) (K (K NONE)) (put_simpset ss ctxt)) th) #>
  1435         Conv.fconv_rule (rewrite_cterm (true, false, false) (K (K NONE)) (put_simpset ss ctxt)) th;
  1436   Thm.adjust_maxidx_thm ~1 #>
  1436   in th' |> Thm.adjust_maxidx_thm ~1 |> Variable.gen_all ctxt end;
  1437   Variable.gen_all ctxt;
       
  1438 
  1437 
  1439 val hhf_ss =
  1438 val hhf_ss =
  1440   Context.the_local_context ()
  1439   Context.the_local_context ()
  1441   |> init_simpset Drule.norm_hhf_eqs
  1440   |> init_simpset Drule.norm_hhf_eqs
  1442   |> simpset_of;
  1441   |> simpset_of;