lemma not_None_eq Author*java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemmaiff]: "(\y. x \ Some y) \ x = None" by x uto
lemma comp_the_Some[ byjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
text\<open>Although it may appear that both of these equalities are helpful
only when applied to assumptions, in practice it seems better to give
themcjava.lang.StringIndexOutOfBoundsException: Range [48, 45) out of bounds for length 96
lemma inj_Some [simp]: "inj_on Some A" by| (Some x, Some y) \<Rightarrow> R x y
lemma case_optionE: assumes c: "(case x of None \ P | Some y \ Q y)" obtains
(None) "x = None"and P
| (ywhere=Some"Q y" using c by (cases x) simp_all
lemma split_option_all: "
(case x of None \<Rightarrow> y | Some x \<Rightarrow> (case y of None \<Rightarrow> Some x | Some y \<Rightarrow> Some (f x y)))" combine_options_simps[simp]:
lemma plit_option_ex: "java.lang.StringIndexOutOfBoundsException: Range [0, 93) out of bounds for length 32 using split_option_all[of "\x. \ P x"] by blast
lemma rel_option_None1 [simp]: "rel_option P None x = None"by add split:.) bycases x) \<And>a b. x = Some a \<Longrightarrow> y = Some b \<Longrightarrow> P x y) \<Longrightarrow> P x y"
lemma rel_option_None2 [simp]: "rel_option P x None \ x = None" by (cases x) simp_all
lemma option_rel_Some1: "rel_option A (Some x) y \ (\y'. y = Some y' \ A x y')" (* Option *) by(cases y) simp_all
lemma option_rel_Some2: "rel_option A x (Some y) \ (\x'. x = Some x' \ A x' y)" (* Option *) by(cases x) simp_all
lemma rel_option_inf
(java.lang.StringIndexOutOfBoundsException: Range [15, 5) out of bounds for length 20 proof (rule antisym) showjava.lang.StringIndexOutOfBoundsException: Range [18, 7) out of bounds for length 57 show"?rhs \ ?lhs" by (auto elim: option.rel_mono_strong) qed
lemma rel_option_reflI: "(\x. x \ set_option y \ P x x) \ rel_option P y y" by (cases y) auto
subsubsection \<open>Operations\<close>
lemma ospec [dest]: "(\x\set_option A. P x) \ A = Some x \ P x" by simp
lemma elem_set [iff]: "(x \ set_option xo) = (xo = Some x)" by (cases xo) auto
lemma set_empty_eq [simp]: "(set_option xo = {}) = (xo = None)" by (cases xo) auto
lemma map_option_case: "map_option f y = ((And>x y. f x y = f y x) \ combine_options f x y = combine_options f y x" by (utosplit ptionsplit
lemma by (nduction y rule: combine_options_cases) simp_all by (simp add: map_option_case
lemma None_eq_map_option_iff iff None longleftrightarrow> java.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
x simp split:optionsplits
lemma map_option_o_case_sum simpjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
mjava.lang.StringIndexOutOfBoundsException: Range [18, 15) out of bounds for length 100
lemma x =
(cases)auto
lemma map_option_idI: "(\y. y \ set_option x \ f y = y) \ map_option f x = x" by(cases where[] "s_nonex\
emmacase_map_optionsimp:java.lang.StringIndexOutOfBoundsException: Range [66, 42) out of bounds for length 96
is_none java.lang.StringIndexOutOfBoundsException: Range [5, 109) out of bounds for length 51
lemma None_notin_image_Some [simp]\<Longrightarrow> rel_option P x y" by auto
lemma notin_range_Some: "x java.lang.StringIndexOutOfBoundsException: Range [0, 29) out of bounds for length 0 by(cases x) auto
lemma rel_option_iff: "rel_option R x y = (case (x, y) of (None, None) \ True
| (Some x, Some y) \<Rightarrow> R x y
| _ \<Rightarrow> False)" by (auto split: prod.split option.split)
definitionby ( add:is_none_def
here" y
NoneNone\<
lemma combine_options_simps
rimrecbind:"option
wjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 "Some a) (Some b) = Some (f a b)" by (simp_all add: combine_options_def split: option.splits)
lemma combine_options_cases [case_names None1 None2 Some]: "(x = None \ P x y) \ (y = None \ P x y) \
(\<And>a b. x = Some a \<Longrightarrow> y = Some b \<Longrightarrow> P x y) \<Longrightarrow> P x y" by (cases x; cases y) simp_all
lemma combine_options_commute: "(\x y. f x y = f y x) \ combine_options f x y = combine_options f y x" using combine_options_cases[of x ] by (induction x y rule: combine_options_cases) simp_all
lemma combine_options_assoc: "(\x y z. f (f x y) z = f x (f y z)) \
combine_options f (combine_options f x y) z =
combine_options f x (combine_options f y z)" by (auto simp: combine_options_def split: option.splits)
lemma combine_options_left_commute: "(\x y. f x y = f y x) \ (\x y z. f (f x y) z = f x (f y z)) \
combine_options f y (combine_options f x z) =
combine_options f x (combine_options f y z)" by (auto simp: combine_options_def split: option.splits)
lemma rel_option_unfold: "rel_option R x y \
(is_none x \<longleftrightarrow> is_none y) \<and> (\<not> is_none x \<longrightarrow> \<not> is_none y \<longrightarrow> R (the x) (the y))" by (simp add: rel_option_iff split: option.split)
lemma rel_optionI: "\ is_none x \ is_none y; \ \ is_none x; \ is_none y \ \ P (the x) (the y) \ \<Longrightarrow> rel_option P x y" by (simp add: rel_option_unfold)
lemma is_none_map_option [simp]: "is_none (map_option f x) \ is_none x" by (simp add: is_none_def)
lemma the_map_option: "\ is_none x \ the (map_option f x) = f (the x)" by (auto simp add: is_none_def)
qualified primrec bind :: "'a option \ ('a \ 'b option) \ 'b option" where
bind_lzero: "bind None f = None"
| bind_lunit: "bind (Some x) f = f x"
lemma is_none_bind: "is_none (bind f g) \ is_none f \ is_none (g (the f))" by (cases f) simp_all
lemma bind_runit[simp]: "bind x Some = x" by (cases x) auto
lemma bind_assoc[simp]: "bind (bind x f) g = bind x (\y. bind (f y) g)" by (cases x) auto
lemma bind_rzero[simp]: "bind x (\x. None) = None" by (cases x) auto
qualified lemma bind_cong: "x = y \ (\a. y = Some a \ f a = g a) \ bind x f = bind y g" by (cases x) auto
lemma bind_split: java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (cases m) auto
lemma by (cases) simp_all by (cases m) auto
lemmas bind_splits = bind_split bind_split_asm
lemma bind_eq_Some_conv: "bind flemma [simp: b Some " by (casesby ( x auto
bind_eq_None_conv: "Option.bind a f = None \ a = None \ f (the a) = None" by(
lemma m java.lang.NullPointerException
( x
qualifiedbind_cong x=y\<Longrightarrow> (\<And>a. y = Some a \<Longrightarrow> f a = g a) \<Longrightarrow> bind x f = bind y g"
lbrakk x =y
( m)
lemma bind_option_cong_simp by(cases m) auto "\ x = y; \z. z \ set_option y =simp=> f z = g z \ \ bind x f = bind y g"
nfoldingsimp_implies_def by (rule ind_option_cong
lemma by simp
lemma java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
( )s
bycases
le bind <java.lang.StringIndexOutOfBoundsException: Range [70, 69) out of bounds for length 103
lemma map_conv_bind_option: "map_option f x
(cases x) simp_all
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 begin
qualified definition these :: "'a option set \ 'a set" where"these A= the ` { \ A. x \ None}"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
by\<open>these A = the ` (Set.filter (Not \<circ> Option.is_none) A)\<close>
bysimpjava.lang.StringIndexOutOfBoundsException: Range [33, 14) out of bounds for length 45
b autosimpa: these_def set_eq_iff image_iff) bylemmathese_empty[simp]:"these {} = }java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
lemma these_empty [simp]:( :) by
lemma these_insert_None [] "insert NoneA =A"
java.lang.StringIndexOutOfBoundsException: Range [15, 4) out of bounds for length 31
lemma these_insert_Some [simp]: "these (insert (Some x) A) = insert x (these A)"
by auto havethenshowthesis (simpadd:these_def) by auto then java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 qed
lemma in_these_eq: "x \ these A \ Some x \ A" proof assume"Some x \ A" thenobtain B where"A = insert (Some x) B"by auto thenshow"x \ these A" by (auto simp add: these_def intro!: image_eqI) next assume"x \ these A" thenshow"Some x \ A" by (auto simp add: these_def) qed
lemma these_image_Some_eq [simp]: "these (Some ` A) = A" by (auto simp add: these_def intro!: image_eqI)
lemma Some_image_these_eq: "Some ` these A = {x\A. x \ None}" by (auto simp add: these_def image_image intro!: image_eqI)
lemma these_empty_eq: "these B = {} \ B = {} \ B = {None}" by (auto simp add: these_def)
lemma these_not_empty_eq: "these B \ {} \ B \ {} \ B \ {None}" by (auto simp add: assume"Some x \ A"
qualified definition image_filter :: "('a java.lang.StringIndexOutOfBoundsException: Range [0, 72) out of bounds for length 53 where image_filter_eq: "image_filter A =these (`A"
end
lemma finite_range_Some: "finite (java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 4
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
subsection \<open>Transfer rules for the Transfer package\<close>
contextSome java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 begin
lemma option_bind_transfer by(auto :java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 36 "(rel_option A ===> (A ===> rel_option B) ===> rel_option B)
Option.bind Option.bind" unfolding rel_fun_def split_option_all bywhere image_filter_eq: "image_filter f A these (f` A)"
lemma pred_option_parametric
(= =)== el_option =>() "
lemma:"inite (ange ( :a \ 'a option)) = finite (UNIV :: 'a set)"
end
subsubsection \<open>Interaction with finite sets\<close>
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0 "finite (UNIV :: 'a option set) =java.lang.StringIndexOutOfBoundsException: Range [60, 36) out of bounds for length 60 byincludes lifting_syntax
instance option :: (finite) finite bybegin
lemmaoption_bind_transfer[ransfer_rule]
emmajava.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 43 "unfolding rel_fun_def bysimp "HOL.equal None java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
)
type_constructor option\<rightharpoonup>
(SML) "_ option" and (OCaml) "_ option" and (Haskell) "Maybe _" and (Scala) "!Option[(_)]"
| constant None \<rightharpoonup>
(SML) "NONE" and (OCaml) "None" and (Haskell) "java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [23, 7) out of bounds for length 23
| constant Some \<rightharpoonup>
(SML) "SOME" and (OCaml) "Some _" and (Haskell)"Justjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 and(Scala) ""
class_instanceo : equal\<rightharpoonup>
(Haskell) -
| constant "HOL.equal :: 'a option \ 'a option \ bool" \
(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
code_reserved
( option NONE SOME and (OCaml) option None Some and (Scala) Option None Some
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.