src/HOL/BNF/BNF_Wrap.thy
author wenzelm
Tue, 09 Apr 2013 21:39:55 +0200
changeset 51667 354c23ef2784
parent 49633 5b5450bc544c
child 51781 0504e286d66d
permissions -rw-r--r--
merged

(*  Title:      HOL/BNF/BNF_Wrap.thy
    Author:     Jasmin Blanchette, TU Muenchen
    Copyright   2012

Wrapping datatypes.
*)

header {* Wrapping Datatypes *}

theory BNF_Wrap
imports BNF_Util
keywords
  "wrap_data" :: thy_goal and
  "no_dests" and
  "rep_compat"
begin

lemma iffI_np: "\<lbrakk>x \<Longrightarrow> \<not> y; \<not> x \<Longrightarrow> y\<rbrakk> \<Longrightarrow> \<not> x \<longleftrightarrow> y"
by (erule iffI) (erule contrapos_pn)

lemma iff_contradict:
"\<not> P \<Longrightarrow> P \<longleftrightarrow> Q \<Longrightarrow> Q \<Longrightarrow> R"
"\<not> Q \<Longrightarrow> P \<longleftrightarrow> Q \<Longrightarrow> P \<Longrightarrow> R"
by blast+

ML_file "Tools/bnf_wrap_tactics.ML"
ML_file "Tools/bnf_wrap.ML"

end