src/HOL/Basic_BNF_LFPs.thy
changeset 61169 4de9ff3ea29a
parent 61076 bdc1e2f0a86a
child 62321 1abe81758619
equal deleted inserted replaced
61168:dcdfb6355a05 61169:4de9ff3ea29a
    28   unfolding xtor_def by (rule refl)
    28   unfolding xtor_def by (rule refl)
    29 
    29 
    30 lemmas xtor_inject = xtor_rel[of "op ="]
    30 lemmas xtor_inject = xtor_rel[of "op ="]
    31 
    31 
    32 lemma xtor_rel_induct: "(\<And>x y. vimage2p id_bnf id_bnf R x y \<Longrightarrow> IR (xtor x) (xtor y)) \<Longrightarrow> R \<le> IR"
    32 lemma xtor_rel_induct: "(\<And>x y. vimage2p id_bnf id_bnf R x y \<Longrightarrow> IR (xtor x) (xtor y)) \<Longrightarrow> R \<le> IR"
    33   unfolding xtor_def vimage2p_def id_bnf_def by default
    33   unfolding xtor_def vimage2p_def id_bnf_def ..
    34 
    34 
    35 lemma Inl_def_alt: "Inl \<equiv> (\<lambda>a. xtor (id_bnf (Inl a)))"
    35 lemma Inl_def_alt: "Inl \<equiv> (\<lambda>a. xtor (id_bnf (Inl a)))"
    36   unfolding xtor_def id_bnf_def by (rule reflexive)
    36   unfolding xtor_def id_bnf_def by (rule reflexive)
    37 
    37 
    38 lemma Inr_def_alt: "Inr \<equiv> (\<lambda>a. xtor (id_bnf (Inr a)))"
    38 lemma Inr_def_alt: "Inr \<equiv> (\<lambda>a. xtor (id_bnf (Inr a)))"
    58 
    58 
    59 lemma eq_snd_iff: "b = snd p \<longleftrightarrow> (\<exists>a. p = (a, b))"
    59 lemma eq_snd_iff: "b = snd p \<longleftrightarrow> (\<exists>a. p = (a, b))"
    60   by (cases p) auto
    60   by (cases p) auto
    61 
    61 
    62 lemma ex_neg_all_pos: "((\<exists>x. P x) \<Longrightarrow> Q) \<equiv> (\<And>x. P x \<Longrightarrow> Q)"
    62 lemma ex_neg_all_pos: "((\<exists>x. P x) \<Longrightarrow> Q) \<equiv> (\<And>x. P x \<Longrightarrow> Q)"
    63   by default blast+
    63   by standard blast+
    64 
    64 
    65 lemma hypsubst_in_prems: "(\<And>x. y = x \<Longrightarrow> z = f x \<Longrightarrow> P) \<equiv> (z = f y \<Longrightarrow> P)"
    65 lemma hypsubst_in_prems: "(\<And>x. y = x \<Longrightarrow> z = f x \<Longrightarrow> P) \<equiv> (z = f y \<Longrightarrow> P)"
    66   by default blast+
    66   by standard blast+
    67 
    67 
    68 lemma isl_map_sum:
    68 lemma isl_map_sum:
    69   "isl (map_sum f g s) = isl s"
    69   "isl (map_sum f g s) = isl s"
    70   by (cases s) simp_all
    70   by (cases s) simp_all
    71 
    71