src/HOL/IMP/Abs_Int0.thy
changeset 51628 0a6d576da295
parent 51625 bd3358aac5d2
child 51694 6ae88642962f
equal deleted inserted replaced
51627:589daaf48dba 51628:0a6d576da295
    23 "None \<le> y = True" |
    23 "None \<le> y = True" |
    24 "Some _ \<le> None = False"
    24 "Some _ \<le> None = False"
    25 
    25 
    26 definition less_option where "x < (y::'a option) = (x \<le> y \<and> \<not> y \<le> x)"
    26 definition less_option where "x < (y::'a option) = (x \<le> y \<and> \<not> y \<le> x)"
    27 
    27 
    28 lemma [simp]: "(x \<le> None) = (x = None)"
    28 lemma le_None[simp]: "(x \<le> None) = (x = None)"
    29 by (cases x) simp_all
    29 by (cases x) simp_all
    30 
    30 
    31 lemma [simp]: "(Some x \<le> u) = (\<exists>y. u = Some y \<and> x \<le> y)"
    31 lemma Some_le[simp]: "(Some x \<le> u) = (\<exists>y. u = Some y \<and> x \<le> y)"
    32 by (cases u) auto
    32 by (cases u) auto
    33 
    33 
    34 instance proof
    34 instance proof
    35   case goal1 show ?case by(rule less_option_def)
    35   case goal1 show ?case by(rule less_option_def)
    36 next
    36 next