src/HOL/Nominal/nominal_atoms.ML
changeset 24569 c80e1871098b
parent 24527 888d56a8d9d3
child 24677 c6295d2dce48
equal deleted inserted replaced
24568:9a4cce088aec 24569:c80e1871098b
    18 structure NominalAtoms : NOMINAL_ATOMS =
    18 structure NominalAtoms : NOMINAL_ATOMS =
    19 struct
    19 struct
    20 
    20 
    21 val finite_emptyI = @{thm "finite.emptyI"};
    21 val finite_emptyI = @{thm "finite.emptyI"};
    22 val Collect_const = @{thm "Collect_const"};
    22 val Collect_const = @{thm "Collect_const"};
       
    23 
       
    24 val inductive_forall_def = @{thm "induct_forall_def"};
    23 
    25 
    24 
    26 
    25 (* theory data *)
    27 (* theory data *)
    26 
    28 
    27 type atom_info =
    29 type atom_info =
   801             ||>> PureThy.add_thmss [(("perm_compose'",inst_pt_at [pt_perm_compose']),[])] 
   803             ||>> PureThy.add_thmss [(("perm_compose'",inst_pt_at [pt_perm_compose']),[])] 
   802             ||>> PureThy.add_thmss [(("perm_app", inst_pt_at [perm_app]),[])]
   804             ||>> PureThy.add_thmss [(("perm_app", inst_pt_at [perm_app]),[])]
   803             ||>> PureThy.add_thmss [(("supp_atm", (inst_at [at_supp]) @ (inst_dj [dj_supp])),[])]
   805             ||>> PureThy.add_thmss [(("supp_atm", (inst_at [at_supp]) @ (inst_dj [dj_supp])),[])]
   804             ||>> PureThy.add_thmss [(("exists_fresh", inst_at [at_exists_fresh]),[])]
   806             ||>> PureThy.add_thmss [(("exists_fresh", inst_at [at_exists_fresh]),[])]
   805             ||>> PureThy.add_thmss [(("exists_fresh'", inst_at [at_exists_fresh']),[])]
   807             ||>> PureThy.add_thmss [(("exists_fresh'", inst_at [at_exists_fresh']),[])]
   806             ||>> PureThy.add_thmss [(("all_eqvt", inst_pt_at [all_eqvt]),[NominalThmDecls.eqvt_force_add])] 
   808             ||>> PureThy.add_thmss
       
   809               let
       
   810                 val thms1 = inst_pt_at [all_eqvt];
       
   811                 val thms2 = map (fold_rule [inductive_forall_def]) thms1
       
   812               in
       
   813                 [(("all_eqvt", thms1 @ thms2), [NominalThmDecls.eqvt_force_add])]
       
   814               end
   807             ||>> PureThy.add_thmss [(("ex_eqvt", inst_pt_at [ex_eqvt]),[NominalThmDecls.eqvt_force_add])]
   815             ||>> PureThy.add_thmss [(("ex_eqvt", inst_pt_at [ex_eqvt]),[NominalThmDecls.eqvt_force_add])]
   808             ||>> PureThy.add_thmss 
   816             ||>> PureThy.add_thmss 
   809 	      let val thms1 = inst_at [at_fresh]
   817 	      let val thms1 = inst_at [at_fresh]
   810 		  val thms2 = inst_dj [at_fresh_ineq]
   818 		  val thms2 = inst_dj [at_fresh_ineq]
   811 	      in [(("fresh_atm", thms1 @ thms2),[])] end
   819 	      in [(("fresh_atm", thms1 @ thms2),[])] end