src/HOL/BNF/Ctr_Sugar.thy
author hoelzl
Tue Nov 05 09:44:57 2013 +0100 (2013-11-05)
changeset 54257 5c7a3b6b05a9
parent 54008 b15cfc2864de
permissions -rw-r--r--
generalize SUP and INF to the syntactic type classes Sup and Inf
blanchet@54006
     1
(*  Title:      HOL/BNF/Ctr_Sugar.thy
blanchet@49486
     2
    Author:     Jasmin Blanchette, TU Muenchen
blanchet@49075
     3
    Copyright   2012
blanchet@49075
     4
blanchet@51797
     5
Wrapping existing freely generated type's constructors.
blanchet@49075
     6
*)
blanchet@49075
     7
blanchet@51797
     8
header {* Wrapping Existing Freely Generated Type's Constructors *}
blanchet@49075
     9
blanchet@54006
    10
theory Ctr_Sugar
blanchet@54008
    11
imports Main
blanchet@49075
    12
keywords
blanchet@51781
    13
  "wrap_free_constructors" :: thy_goal and
blanchet@52969
    14
  "no_discs_sels" and
blanchet@49633
    15
  "rep_compat"
blanchet@49075
    16
begin
blanchet@49075
    17
blanchet@49312
    18
lemma iffI_np: "\<lbrakk>x \<Longrightarrow> \<not> y; \<not> x \<Longrightarrow> y\<rbrakk> \<Longrightarrow> \<not> x \<longleftrightarrow> y"
blanchet@49312
    19
by (erule iffI) (erule contrapos_pn)
blanchet@49312
    20
blanchet@49486
    21
lemma iff_contradict:
blanchet@49486
    22
"\<not> P \<Longrightarrow> P \<longleftrightarrow> Q \<Longrightarrow> Q \<Longrightarrow> R"
blanchet@49486
    23
"\<not> Q \<Longrightarrow> P \<longleftrightarrow> Q \<Longrightarrow> P \<Longrightarrow> R"
blanchet@49486
    24
by blast+
blanchet@49486
    25
blanchet@54008
    26
ML_file "Tools/ctr_sugar_util.ML"
blanchet@54007
    27
ML_file "Tools/ctr_sugar_tactics.ML"
blanchet@54007
    28
ML_file "Tools/ctr_sugar.ML"
blanchet@49309
    29
blanchet@49075
    30
end