author | blanchet |
Sat, 27 Apr 2013 11:37:50 +0200 | |
changeset 51797 | 182454c06a80 |
parent 51781 | src/HOL/BNF/BNF_Wrap.thy@0504e286d66d |
child 52969 | f2df0730f8ac |
permissions | -rw-r--r-- |
51797 | 1 |
(* Title: HOL/BNF/BNF_Ctr_Sugar.thy |
49486 | 2 |
Author: Jasmin Blanchette, TU Muenchen |
49075 | 3 |
Copyright 2012 |
4 |
||
51797 | 5 |
Wrapping existing freely generated type's constructors. |
49075 | 6 |
*) |
7 |
||
51797 | 8 |
header {* Wrapping Existing Freely Generated Type's Constructors *} |
49075 | 9 |
|
51797 | 10 |
theory BNF_Ctr_Sugar |
49283 | 11 |
imports BNF_Util |
49075 | 12 |
keywords |
51781 | 13 |
"wrap_free_constructors" :: thy_goal and |
49633 | 14 |
"no_dests" and |
15 |
"rep_compat" |
|
49075 | 16 |
begin |
17 |
||
49312 | 18 |
lemma iffI_np: "\<lbrakk>x \<Longrightarrow> \<not> y; \<not> x \<Longrightarrow> y\<rbrakk> \<Longrightarrow> \<not> x \<longleftrightarrow> y" |
19 |
by (erule iffI) (erule contrapos_pn) |
|
20 |
||
49486 | 21 |
lemma iff_contradict: |
22 |
"\<not> P \<Longrightarrow> P \<longleftrightarrow> Q \<Longrightarrow> Q \<Longrightarrow> R" |
|
23 |
"\<not> Q \<Longrightarrow> P \<longleftrightarrow> Q \<Longrightarrow> P \<Longrightarrow> R" |
|
24 |
by blast+ |
|
25 |
||
51797 | 26 |
ML_file "Tools/bnf_ctr_sugar_tactics.ML" |
27 |
ML_file "Tools/bnf_ctr_sugar.ML" |
|
49309
f20b24214ac2
split basic BNFs into really basic ones and others, and added Andreas Lochbihler's "option" BNF
blanchet
parents:
49286
diff
changeset
|
28 |
|
49075 | 29 |
end |