src/HOL/Nominal/nominal_datatype.ML
changeset 32129 d2aea34845d4
parent 32124 954321008785
child 32134 ee143615019c
equal deleted inserted replaced
32128:59be4804c9ae 32129:d2aea34845d4
    32 val In1_eq = thm "In1_eq";
    32 val In1_eq = thm "In1_eq";
    33 val In0_not_In1 = thm "In0_not_In1";
    33 val In0_not_In1 = thm "In0_not_In1";
    34 val In1_not_In0 = thm "In1_not_In0";
    34 val In1_not_In0 = thm "In1_not_In0";
    35 val Un_assoc = thm "Un_assoc";
    35 val Un_assoc = thm "Un_assoc";
    36 val Collect_disj_eq = thm "Collect_disj_eq";
    36 val Collect_disj_eq = thm "Collect_disj_eq";
    37 val empty_def = thm "empty_def";
    37 val Collect_False_empty = @{thm empty_def [THEN sym, THEN eq_reflection]};
    38 val empty_iff = thm "empty_iff";
    38 val empty_iff = thm "empty_iff";
    39 
    39 
    40 open DatatypeAux;
    40 open DatatypeAux;
    41 open NominalAtoms;
    41 open NominalAtoms;
    42 
    42 
  1015                  if null dts then HOLogic.mk_set atomT []
  1015                  if null dts then HOLogic.mk_set atomT []
  1016                  else foldr1 (HOLogic.mk_binop @{const_name Un}) (map supp args2)))))
  1016                  else foldr1 (HOLogic.mk_binop @{const_name Un}) (map supp args2)))))
  1017             (fn _ =>
  1017             (fn _ =>
  1018               simp_tac (HOL_basic_ss addsimps (supp_def ::
  1018               simp_tac (HOL_basic_ss addsimps (supp_def ::
  1019                  Un_assoc :: de_Morgan_conj :: Collect_disj_eq :: finite_Un ::
  1019                  Un_assoc :: de_Morgan_conj :: Collect_disj_eq :: finite_Un ::
  1020                  symmetric empty_def :: finite_emptyI :: simp_thms @
  1020                  Collect_False_empty :: finite_emptyI :: simp_thms @
  1021                  abs_perm @ abs_fresh @ inject_thms' @ perm_thms')) 1)
  1021                  abs_perm @ abs_fresh @ inject_thms' @ perm_thms')) 1)
  1022         in
  1022         in
  1023           (supp_thm,
  1023           (supp_thm,
  1024            Goal.prove_global thy8 [] [] (augment_sort thy8 pt_cp_sort
  1024            Goal.prove_global thy8 [] [] (augment_sort thy8 pt_cp_sort
  1025              (HOLogic.mk_Trueprop (HOLogic.mk_eq
  1025              (HOLogic.mk_Trueprop (HOLogic.mk_eq