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