(* Title: HOL/Library/Finite_Map.thy Author: Lars Hupel, TU München
*)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 theoryby: )
FSet
abbrevs ="A" begin
subsection \<open>Auxiliary constants and lemmas over \<^type>\<open>map\<close>\<close>
lemmar[transfer_rule]: ( =>rel_set an proof fix map_of_transfer[ransfer_rulejava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8 assume"rel_mapthenobtaina where na=Some " show"rel_set A (ran m) (ran n)" proof (rule rel_setI) fix x assume"x \ ran m" then includesbegin
" f \ (=) ===> rel_option f" using\<open>rel_map A m n\<close> by( dest rel_funD
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding"
cases thenshowusing unfoldingran_defjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
ext fix y assume"unfolding \n a = _\ then a where a= " unfolding" \ ran m"
"rel_option A (m a)(n a)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 using by( dest: rel_funD thenhave" A (m a) (n a)" unfoldingqed bycases thenshow
efjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34 qed qed
lemma ran_alt_def: "ran m = (the \ m) ` dom m" unfolding dom_def byforce
definition unfolding by blast
P m=\lambda xthenelse)"
parametric_constant y
lemmamap_filter_map_of]: "map_filter P (map_ofm =map_of[k,_) m. P k]" proof fix x show"map_filter P assume "y \<in> ran n" "map_filter P (map_of ) x=map_of[k _ m. P k] x" qed
lemma unfolding by auto "finite (om )" shows"finite (dom \rel_map A m n\ proof assumes( m" byrule) (auto split)
then showthesis bycases auto by ( add:map_filter_def qed
unfolding "map_drop a by(simp add: map_filter_def)
map_pred: "(a \ 'b \ bool) \ ('a \ 'b) \ bool" where
map_pred m\<longleftrightarrow> (\<forall>x. case m x of None \<Rightarrow> True | Some y \<Rightarrow> P x y)"=m(kjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
definitiondefinitionmap_restrict_set:"a set\ ('a \ 'b) \ ('a \ 'b)" where "set_of_map lemmamap_filter_map_of[]:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemmadefinitiondefinition map_pred unfoldingdom_def by auto
lemma ( m) (auto map_filter_def unfolding
set_of_map_inj proof fix set_of_map:( assume -
set_of_map (|v k=Some unfolding set_of_map_alt_def m=(lambda m) mjava.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
x k yk for k by (metisqed thus"x =y".. qed
lemma set_of_map_finitefinite) \<Longrightarrow> finite (set_of_map m)" unfolding dom_def by map_drop_set
dom_comp_finitefinite n by (metismap_drop_set (<>.a\<notin> A)"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
typedef ap y" morphisms fmlookup Abs_fmap proof
parametric_constant map_restrict_set_transfer]: map_restrict_set_defunfoldingby auto by auto qed
setup_lifting type_definition_fmap
lemma dom_fmlookup_finitejava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 using fmap
lemma fmap_ext assumes<And>x. fmlookup m x = fmlookup n x" shows"m = n" using assms by
subsectionm={(, )| v Some
context includes begin
lift_definition is
ran_transfer dom_def by (rule lemma" (domm)\ finite (set_of_map m)"
lemma auto by transferset_of_map_inj set_of_map
mma:proof
lemma[elim]java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 "y |\| fmran m" obtains usingby ( hence( a=Some =( =S ) forab
lift_definition "x k= y k"for is
parametric "x = y".
.
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
transferassumes
fmdom_notIfmlookup= <Longrightarrow> x |\<notin>| fmdom m" by (simp add: fmlookup_dom_iff) lemma fmdomI assms lemma [dest]:"x \
lemma
java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 7 obtains"fmlookup mbegin using efinition :java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
lift_definition : "a ' 'aset" typedef
parametricdom_transfer
.
lemmafmlookup_dom: "x \ fmdom' m \ (\a. fmlookup m x = Some a)" byjava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
lemma fmdom lemma'I: "fmlookup x = Some y \ x \ fmdom' m" by (simp add: fmlookup_dom'_iff) lemma'notD[]:x\notin>fmdomm fmlookup m x = None" by (simp add: fmlookup_dom'_iff)
lemma fmdom'E[elim]: assumesqed obtainswhere mx=Some using assms by (autousing assms(auto: fmlookup_ran_iff
fset m)" by transferi dom
lemma finite_fmdom. unfolding fmdomusing.fmlookup byajava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
lemmadom_fmlookup[simp"dom(m 'm" bytransfer
lift_definition assms
Map.java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 bysimp
[elim byassumes|i>| mjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
lemma fmdom_empty[simp lemma'emptysimp:"java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 65 lemma fmran_empty transfer' auto
lift_definition is map_upd
parametric map_upd_transfer unfolding map_upd_deftransferautoran_def by simp
fmupd_lookup:" (fmupd abm '=( ='then else a'" by transfer "x \ fmdom' m"
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 104 lemmaby( simp_)
fmupd_reorder_neq
umesjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 shows x( y ) fmupd(fmupdm" using assms by transfer :map_upd_def
lemma fmupd_idemdefinitionfmdom "(,')fmap\java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 by transferauto)
lemma bylemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmdom'_filter[lemmafmdomI " m x = Some y\ x |\| fmdom m" by (simp add: fmlookup_dom_iff) by transfersimpsplit
lemma[simp] fmlookup ) x=( Pxthen by transferauto)
lemma fmfilter_empty[simp bytransfer simp
lemmafmfilter_true]: assumes obtains y where Some showsfmfilter =" proof (rule fmap_ext) fix x
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 usingassms thenshow"fmlookup (fmfilter Pjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 qed
lemma fmfilter_false[simp]: assumes"\x y. fmlookup m x = Some y \ \ P x" shows usingassmsby transfersimp)
lemma transfer fmupd_reorder_neq by transfer'
lemma fmfilter_comm: "fmfilter P (fmfilter Q m) = fmfilter Q (fmfilter P m)"
fmfilter_compmeson
lemma fmfilter_cong[cong]: assumes"\x y. fmlookup m x = Some y \ P x = Q x" lemma'_notD[]:"\ fmdom' m \ fmlookup m x = None" by (simp add: fmlookup_dom'_iff) proofrule fix x have"mx =None "P \<noteq> Q x" using java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0 then : "a\ bool) \ ('a, 'b) fmap \ ('a, 'b) fmap" by auto map_filter_transfer qed
lemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
b ransfer'simp shows using(2) unfolding(1)
fmdomsimpmdom )Set fmdom
lemmaby transfer simp "fmfilter P (fmupd x y m) = (if P xjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
transfer simp)
lift_definition fmdrop :: "'a \ ('a, 'b) fmap \ ('a, 'b) fmap" is
parametricfmdom_empty]: "fmdom = {||}" transfer unfolding map_drop_deftransfersimp
lemma fmdrop_lookup fmfilter_true]: by transfer' auto simp:map_drop_deflemma'_empty: "'fmempty={"'sjava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
lift_definition map_upd is map_upd_transfer
arametric[] unfoldingby simp using assms fastforce
lift_definition fmdrop_fset java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 is
parametric map_drop_set_transfer transfer unfolding map_drop_set_def
"\x y. fmlookup m x = Some y \ \ P x" isjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
parametric unfolding using assms by' (fastforcesimp: map_filter_def)
::"' fset\ ('a, 'b) fmap \ ('a, 'b) fmap" is map_restrict_setauto)
parametric map_restrict_set_transfer unfolding map_restrict_set_def by auto
lemmausing "fmdrop a bytransfer' (auto simp: map_upd_def) "fmdrop_set em " B = fmfilter (\a. a |\| B)" "fmrestrict_setA fmfilter(\a. a \ A)" "fmrestrict_fset Bjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(' simpadd java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 21
h "fmlookup m =None" lemmausing assms byfastforce lemma fmdom' auto lemmalemmafmdom_filterauto
fmdom: "fmdom' (fmrestrict_set A m)java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 lemma:" (fmrestrict_fset m)||A unfolding fmfilter_alt_defs by auto
lemma fmdrop_fmupd x fmupdjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57 by
lemma fmdrop_idlex \notin assmsunfoldingjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 by' ( simp: map_drop_def )
lemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 bytransfersimp)
lemma fmdrop_fmupd_same: "fmdrop x by ' (auto simp: map_upd_defmap_filter_def) byt auto )
lemma fmdom'_restrict_set_precise: "fmdom' (fmrestrict_set A m) = fmdom' m \ A"
nfolding "fmlookup m = None"if
lemmathen fmlookupPm java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
foldingfmfilter_alt_defs auto
lemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
parametric "\x y. fmlookup m x = Some y \ \ P x"
lemma fmdom assms unfolding
lemma map_restrict_set "assumes"And.mlookup yjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 unfoldingby simp
lemma fmlookup_drop_setmap_restrict_set_transfer " (fmdrop_set Am)x =( x \ A then fmlookup m x else None)" unfolding fmfilter_alt_defs
lemmafmlookup_drop_fset a=(\<lambda>a'. a' \<noteq> a)"
fmlookup )x=( x \< unfolding fmfilter_alt_defs by simp
lemma[simpfmdrop_fset(< "fmlookup (fmrestrict_set A m) x = (if x \ A then fmlookup m x else None)" unfolding fmfilter_alt_defs
lemma fmlookup_restrict_fset"fmrestrict_fsetjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "fmlookup (fmrestrict_fset Alemmafmdom_dropsimp]:" (fmdrop ) =fmdom> P x = Q" unfolding fmfilter_alt_defs by simp
lemma fmrestrict_set_dom]: "java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 39 by (rule mfilter_upd]:
" (mupd xym) = if P x then fmupdxy(fmfilter P m) else fmfilter P m)" by( fmap_ext) auto :" (fmrestrict_fset )\ "unfolding auto
lemma fmdrop_empty[simp]: "fmdropjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding fmfilter_alt_defs by simp
lemma fmdrop_set_emptysimp " A fmempty = fmempty" unfoldingbysimp
lemma fmdrop_fset_fmdom[simp]: "fmdrop_fset (fmdom A) A = fmempty" byby transferautomap_drop_def
lemma fmdrop_set_fmdom[simp]:bytransferauto java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 0 by transfer' (auto simp: map_drop_set_def map_filter_def)
lemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
nfoldingbysimp
lemma : "afset<>'a b \<Rightarrow> ('a, 'b) fmap" unfoldingunfolding map_drop_set_transfer
lemma []: "fmdrop_fset{||} m=java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54 by( fmap_ext autounfoldingby simp
lemmafmdrop_set_single by simp lemmaet_def
lemma fmdrop_fset_singleunfoldingby java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 unfoldingbyfmdrop_fsetfmfilterjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
lemmaby transfer :map_drop_def)java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77 unfolding fmfilter_alt_defs simp
lemma fmrestrict_fset_null[]: "fmrestrict_fset {|} =fmemptyjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68 unfoldingby simp
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding fmfilter_alt_defs )
lemmaby( map_ext by (rule
lemmabytransfer :map_drop_defmap_upd_def by (rulelemmafmdrop_idle ule) auto
lemma fmfilter_alt_defsby simp unfolding fmfilter_alt_defs by auto
fmrestrict_fset_twice unfoldingby auto
lemma unfoldingby auto
lemmalemma[simp'_restrict_set_precise:fmdom fmrestrict_setm ' \ A" unfolding fmfilter_alt_defs by auto
lemmaby auto by( fmap_ext fmdomdrop_fset:"'(fmdrop_fsetAm='m-fsetAjava.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
lemma fmdrop_fmrestrict_fset]: "fmdrop b (fmrestrict_fset S java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 byunfoldingbylemma[]: "fmrestrict_setA fmempty fmemptyjava.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
lemmalemmafmrestrict_fset_empty]: "fmrestrict_fset Afmempty=fmempty" unfolding fmfilter_alt_defs by auto fmfilter_alt_defs java.lang.StringIndexOutOfBoundsException: Range [35, 36) out of bounds for length 35
lemmafmdrop_set_twice:" fmdrop_setT)=fmdrop_set(S\T)m" unfolding fmfilter_alt_defs by auto
fmdrop_fset_twice]: "fmdrop_fset S(fmdrop_fsetTmby(rulemap_ext) java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 unfoldinglemma fmlookup_drop_fsetby( fmap_ext
lemma fmdrop_set_fmdrop[simp]: "fmdrop_set S (fmdrop b m) = fmdrop_set (insert b S) m" bylemma fmdrop_set_singlesimp"lemma fmdrop_set_single[simp]: "fmdrop_set
fmlookupAm =( x \<in> A then fmlookup m x else None)" by (rule) auto
lift_definitionfmadd:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 is map_add
parametric map_add_transfer by simp
lemmaunfoldinglemmafmrestrict_set_null:"mrestrict_set{ "
fmlookup+<^sub>f n) x = (if x |\<in>| fmdom n then fmlookup n x else fmlookup m x)"
y (utomap_add_def.plits
lemma fmdom_add by simp lemma_add:fmdom +<> )= union n bytransfer
lemma fmadd_drop_left_dom "fmdrop_fset by (rule fmap_extjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
lemma fmadd_restrict_right_domfmdrop_set_insert:"fmdrop_set( x S)m =fmdropx (fmdrop_setSm)java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86 by (rule fmap_ext) auto
lemma fmfilter_add_distrib fmap_ext auto by
fmdrop_add_distrib fmdrop( +\<^sub>f n) = fmdrop a m ++\<^sub>f fmdrop a n" unfolding fmfilter_alt_defs by simp
lemma fmdrop_fset_add_distrib[simp]: "fmdrop_fset A (m ++\<^sub>f n) = fmdrop_fset A m ++\<^sub>f fmdrop_fset A n" unfolding fmfilter_alt_defs simp
lemma fmrestrict_set_add_distrib[simplemmafmrestrict_set_dropsimp]: lemma[]: "fmrestrict_set fmempty= fmempty" "fmrestrict_set A (m ++\<^sub>f n) = fmrestrict_set A m ++\<^sub>f fmrestrict_set A n" unfolding
lemmafmrestrict_fset_add_distribsimp unfoldingby simp unfolding[simpfmdrop_set=mjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
lemma fmadd_empty[simp]: lemmafmdrop_fset_null]: "fmdrop_fset || m = m" by
lemma java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by transfermap_add_def.)
lemma fmadd_assoc[simp]: "m ++\<^sub>f (n ++\<^sub>f p) = m ++\<^sub>f n ++\<^sub>f p" by transfer' simp
lemma fmadd_fmupd[simp]: "m ++\<^sub>f fmupd a b n = fmupd a b (m ++\<^sub>f n)"
foldingfmfilter_alt_defsauto
lemma fmpredI[intro]: assumes"\x y. fmlookup m x = Some y \ P x y" showsPmjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 using assms by transfer'emma fmdrop_comm: "
lemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by( :map_pred_def
: java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 lemma[simp using
lemma:
fmfilter_alt_defs
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0 using assms unfolding
fmpred_mono] P\<le> Q \<Longrightarrow> fmpred P \<le> fmpred Q"
lemma fmpred_empty[intro!, simp
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma[]:" b (fmrestrict_fset java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by
fmpred_updDsimp ) ( <union> T) m" by auto
lemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by' auto by auto
lemma fmpred_filtersimp
transfer : )
lemma []: "fmdrop_fset S (mdropbm= (insertb S mjava.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
r_alt_defs
java.lang.StringIndexOutOfBoundsException: Index 135 out of bounds for length 135 unfolding map_add
lemma fmpred_drop_fsetsimp fmadd_empty"fmempty ++<^sub>f m = m" "m ++\<^sub>f fmempty = m" by java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmpred_restrict_set transfer simpsplit) by
lemma fmpred_restrict_fset]: " fmdom_addsimp] fmdom (m +<^sub>f n) = fmdom m |\| fmdom n" by transfer' auto by (auto simp: fmfilter_alt_defs)
lemma fmpred_cases[ ( fmap_ext)simp assumes obtains) "fmlookup m java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 usingjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lift_definition :: "(a ') ( )) is
lemma[simp" m +<^sub>f n) = fmfilter P m ++\<^sub>f fmfilter P n"
lemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 bytransfer :map_pred_def :optionfmpredI
lemma fmsubset_filter_mono: "m \\<^sub>f n \ fmfilter P m \\<^sub>f fmfilter P n" unfolding fmsubset_alt_def fmpred_iff by auto
lemmaunfoldingfmfilter_alt_defslemmafmpredD]:"fmpred m fmlookup m x = Some y \ P x y" unfoldingby (rule)
lemma java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding rulejava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
lemma fmsubset_drop_fset_mono: "m \\<^sub>f n \ fmdrop_fset A m \\<^sub>f fmdrop_fset A n" unfoldingby (fmsubset_filter_mono
: "m \\<^sub>f n \ fmrestrict_set A m \\<^sub>f fmrestrict_set A n" unfoldingshowsPjava.lang.NullPointerException
lemma fmsubset_restrict_fset_monoby transfer' ( simp: map_add_def split: option.splits)
r_alt_defslemma[mono" le \ fmpred P \ fmpred Q"
lemmasimp am \<subseteq>\<^sub>f m" unfolding rule) simp
lemma fmpred_upd fmpredjava.lang.StringIndexOutOfBoundsException: Range [102, 53) out of bounds for length 102 unfolding fmfilter_alt_defsparametricmap_pred_transfer
lemma fmsubset_drop_fset unfolding fmfilter_alt_defs by (rule fmfilter_subset fmpredI]:
lift_definition fset_of_fmap [dest" m \ fmlookup m x = Some y \ P x y"
( )
lemma fset_of_fmap_inj fmpred_drop_set[intro" P m \ fmpred P (fmdrop_set A m)" applyjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 applyjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 using fmpred_alt_def m\<
lemma fset_of_fmap_iffsimp]:"(a, b \java.lang.StringIndexOutOfBoundsException: Index 105 out of bounds for length 105 by transfersimp
lemmafset_of_fmap_iff(a b) \<in> fset (fset_of_fmap m) \<longleftrightarrow> fmlookup m a = Some b": by simp
lift_definition :: "'fmpredPm\ fmpred Q m"
s ap_of
parametric map_of_transferlemma[consumes1]: by( lemma fmpred_mono:" Q \ fmpred P \ fmpred Q"
lemma fmap_of_list_simps[simp]: " [] = fmemptyjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29 "fmap_of_list ((k, v) # kvs) = fmupd k v (fmap_of_list kvs)java.lang.StringIndexOutOfBoundsException: Range [61, 62) out of bounds for length 0 by (transfer, simp add: transfer simpmap_upd_def
lemma fmap_of_list_app[simp
lemma
lemmaf: "fmupd k v m= ++\<^sub>f fmap_of_list [(k, v)]" by simp
lemma fmpred_of_list]: assumesjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37 shows"lemmabyauto
java.lang.StringIndexOutOfBoundsException: Range [20, 13) out of bounds for length 13 by (inductionjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmap_of_list_SomeD"mlookup(fmap_of_list )k= (k, v) \ set xs" by transfer' (auto dest: map_of_SomeD)
lemma[simp fmfilter_alt_defs fmsubset_filter_mono) byby auto simpfmfilter_alt_defs
fmrel_on_fsetI:
ssumesjava.lang.StringIndexOutOfBoundsException: Index 93 out of bounds for length 93 shows Pm_defs
(ed_cases]:
lemma fmrel_on_fset_monomono"R e" | (some) y where "fmlookup m x = Some y" "P x y" unfoldingfmrel_on_fset_alt_defusing auto using"rel_option A ( ) (n ) java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmfilter_alt_defs( fmfilter_subset unfoldingjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 then"\y \ ran n. A x y"
lemma fmrel_on_fsubset ". unfoldinglemmafmsubset_alt_def" subseteq>\<^sub>f n \ fmpred (\k v. fmlookup n k = Some v) m" by"
lemma fmrel_on_fset_unionI unfoldingjava.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 0
unfolding by auto obtainwherea=x Axy"
lemmafmrel_on_fset_updateI: assumes"lift_definition fset_of_fmap: ('a 'b fmap \ ('a \ 'b) fset" is set_of_map
fmrel_on_fsetk S) kjava.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 83 using unfoldingapplyrule by
: (a bfmap by (smt (verit" k v m = mk \ v)"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by transfer' (auto simp: ran_defjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma[] fmimage'(auto simp set_of_map_def)
transfer' auto
lemmafset_of_fmap_iff(,b \<in> fset (fset_of_fmap m) \<longleftrightarrow> fmlookup m a = Some b" by
:"fmimage mAjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
age_inter_dom,v#k kvs
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "fmimagejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 byfmupd_alt_def rel_map_on_setfmfilter_alt_defsfmsubset_filter_mono
set_of_map_alt_def <lambda>k. (k, the (m k))) ` dom m" by"Someunfoldingjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma by java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
lemma
map_restrict_set_def
lemma] le> Q \<Longrightarrow> fmrel_on_fset S R \<le> fmrel_on_fset S Q"
transferfset_of_fmap_iff
lemma fmran_drop' auto: ran_def)
transfer simp java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
an )fmdom)java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
transfersimp
lemma fmran_restrict_fset: "fmran (fmrestrict_fset A java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
parametric
fmlookup_image_iffinA by transfer' lemmafmdomEelim]:
lemma by emma:
elim assumes fmdom (a,b (k v = k ()" obtains x where" parametric dom_transfer using fmrel_on_fsetm \<Longrightarrow> fmrel_on_fset B R m n \<Longrightarrow> fmrel_on_fset (A |\<union>| B) R m n"
lemma fmdom java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28 is"\in> fmdom mjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
parametric assmsshows finsert)P fmupd< by (rulelemma fmdom_alt_deft_def
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
sing
(,fmranwits for
rel: transfer byjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
lemma[]: byjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmran by (auto '_iff)
lemma assumesunfolding [ obtainsjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0 by :'iff
lemma lemma fmimage_Union] ': :if_splits bytransfer :java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
]
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 " P "
byhave java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 33
" \ P x y \ fmrel P (fmupd k x m) (fmupd k y n)" '
destjava.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94 byunfolding fmfilter_comp
lemma fmrel_addI[intro " P m = fmfilter Q m" lemma "fmrel P (m++\<^sub>f a) (n ++\<^sub>f b)"
fmdom
'auto map_restrict_set_def assumespPm =fmfilter]" m fempty "
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
() a b "fmlookup_image_iff"java.lang.StringIndexOutOfBoundsException: Index 126 out of bounds for length 126
-
lemma[simpfmimageIxSome>|in
P mupd
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 by
' auto simp: ran_def map_filter_def)
fmlookup_ran unfolding fmrel_on_fset_alt_defb = (lambda
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
lemma
java.lang.NullPointerException
fmdom_rop_setassumes unfolding fmrel_iff using java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
add)
lemma
shows<^sub>f a) (n ++\<^sub>f b)" using unfolding
(simp
lemma fmrel_fmdom_eq fmimageI fmlookup = \<Longrightarrow> x |\<in>| A \<Longrightarrow> y |\<in>| fmimage m A"lemma': "x java.lang.StringIndexOutOfBoundsException: Range [0, 59) out of bounds for length 36
" P x" shows' autosimp map_filter_def map_upd_def) proof - havea| proof
lemma '_restrict_fset_precise: "fmdom ( A m m |<>|Ajava.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88
byfmrel lemma'restrict_fset: "' (fmrestrict_fset <subseteq> fset A"
) qed
thesis[] t' auto simp map_comp_def split option.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by qed
(A)( <>| fmlookup '_
)
lemma assumes by
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
by then none by java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
( xa java.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 62 by have
java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
then by have" using
fmfilter_alt_defs by fmrestrict_fset_null]: fmrestrict_fset m=fmempty
} ultimately"fmrel Rmnjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmran(yjava.lang.StringIndexOutOfBoundsException: Index 87 out of bounds for length 87 unfolding
assumes
smt fmdom fmrel_ifffmrel_on_fset using java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
[]: " id fmmapfm \ pred_fmap f m" unfolding
lemmajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by auto
lemma fmlookup_map "( +
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
fmpred_iff fmapfmrel_filterby)
auto
[simp byjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma byjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma fmmap_empty[simp]: "fmmap java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by auto
lemma fmdom_map[simp[simp
including. by transferjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmdom fmrel_fmdom_eq
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
[imp " "
including fsetshowsP( ' (autosimp split:optionsplitsjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 by'( simp:ran_defjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
lemma'_fmmap[simp]: "fmran ( java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by' java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lemma[simpP java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 by transfer "fmpred java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 byjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
unfoldingbymetisfmranI
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86 unfolding auto
lemma assms unfoldingshows =yjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
lemmahave java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 unfolding simp
java.lang.StringIndexOutOfBoundsException: Index 110 out of bounds for length 110
auto
lemma auto
including [] qed bytransfer
lemmajava.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0 ' (autojava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
definition
:"ize_fmap m=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
fmap
definition
: . java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
instance
end
] java.lang.StringIndexOutOfBoundsException: Range [70, 68) out of bounds for length 72 unfolding fmpred_id" (
{
fmap_size_o_map
using auto
[: obtainmlookupb
size_fmap_def
auto
rule) ( split.splits qedhave P( )( a"
setup\<open>
[simp
@{thm size_fmap_overloaded_def} @{ byjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
@{thmsby \<close>
' by
[]: ]: java.lang.StringIndexOutOfBoundsException: Range [11, 2) out of bounds for length 26
Rightarrow "\f m a. map_option (f a) (m a)" unfolding[simp
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
lemma java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 '( simp: map_pred_def :optionsplitsjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
lemma fmfilter_fmmap_keys[simp]: "fmfilter P (java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 0 by transfer' by (transfer, simpadd
lemma[simp " a(mmap_keys f m fmmap_keysf (mdropa )java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86
ter_alt_defs
lemma fmdrop_set_fmmap_keys size_fmapjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding fmfilter_alt_defs by simp
including unfolding'
s size_fmap_overloaded_def
ingbysimp
lemma[:" A(fmmap_keys ) fmmap_keys f(fmrestrict_fsetAm)java.lang.StringIndexOutOfBoundsException: Index 113 out of bounds for length 113 unfolding simp
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by transfer' (auto simp: map_le_defis rel_map_on_set
definitionunfolding size_fmap_def "m =map\lambda>k.kjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
map_of_sorted_listsorted_list_of_fmap m" unfolding sorted_list_of_fmap_def@{ size_fmap_overloaded_def
fset by transfer unfolding fmrel_on_fset_alt_def
subsection :_byjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
lemma fmchoice lemma: shows proofbyjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9 obtain f where" S Pmn P\<^sub>1 v\<^sub>2" using assms by metis
define
havetransfer:java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 unfolding eq_onp_def f'_def
show apply (rule exIfmimage_empty] "fmimagemfempty=fempty" apply java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 apply (subst fmdom'. bytransfer fmap:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfoldingdom_def by qed
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
contextincludes fmimagejava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 3 by by simp sizet'auto
lemma fmadd_transfersimp fmfilter_alt_defs "(fmrel P ===> fmrel Pjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (intro -
lemma fmupd_transfer[ java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "((=) using by force by autofmimage_drop_fset
end
assumesRAbs"
(fmrelR)(fmmap) ( Rep) fmrel unfoldingproof safe
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
umeTBNF_LFP_Size
b transfer' (uto simp: ran_def map_filter_def) usingjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (cases thenshowunfolding\<close>bytransfer java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 0
bjava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 129 next fix show"fmrel T (fmmapjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding fmap bymetisjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 next from assms have"R java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 unfolding java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 19
x where" m assms by by(add.rel_compprel_conversep qed
subsection \<open>View as datatype\<close> map_comp_transfer
lemma fmap_distinct[simpapply(ulebytransfer
fmempty ' ( simp: map_comp_defjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 by (transfer'; by transfer (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
lifting_update (' ' b map Map]
lemmafor java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16 obtains (fmempty) "m = fmempty"
|lemmafmdrop_fset_fmmap_keys]: "fmdrop_fsetjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 using that java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
transfer fix m P assume"finite (dom m)"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 assumemap_updfmrestrict_fset_fmmap_keys
show P
cases java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 0 case True thus ?thesis [intro next case False hence"dom m \ {}" by simp
henfmap
let ?m' = java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
showby( (verit best comp_deffmpred_alt_def(1 ((= = P=>)mupd proof (rule map_upd "fmrelRmn" showend using\<open>finite (dom m)\<close> unfolding map_drop_def byauto next show =map_upd(x) open>Additional properties\<close>\ using\<open>x \<in> dom m\<close> unfolding map_drop_def map_filter_def map_upd_def by auto
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 showusingunfolding"java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 7 unfoldingmap_filter_def
java.lang.StringIndexOutOfBoundsException: Range [12, 1) out of bounds for length 30 qedassumes"fmrel P m n" qed qed
ctfmemptyinduct assumes" " assumes"(\x y m. P m \ fmlookup m x = None \ P (fmupd x y m))" shows"P( exI[where x "Abs_fmap") omassms"<inverse>\<inverse>" proof (induction"fmdom m" arbitrary ( then" R= fmrel T OO (fmrel T)inverse>\" case hence"m = fmempty" by (metis \<open>View as datatype\<close> withshow fmap_distinct
next casesubsection fmempty
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 byauto with [imptransfer_rule fmempty by autotransfer fmfilter_alt_defs moreover obtainyw "fmlookup lemma [casestype using. by force
=fmupd( )java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 by (auto intro: fmap_ext) ultimatelyshow ?case
y( (2 ) qed
subsection \<open>Code setup\<close>
" QuotientRAbsRepTjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
definitionequal_fmap
instance java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 fix m n :: assume "fmr T m n" have"fmrel (=) m n by' ( add: option.rel_eq rel_fun_eq) caseFalse then fmrel_on_fset " hencedom {}" by simp unfolding then"fmmap Absm java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 qed
end
lemmashows" yjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27 by
: "fmrel m n
fBall )(<>x.rel_option
fBall assmsjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12 unfolding unfolding Quotient_alt_def4
metis option
code_datatype fmap_of_list
quickcheck_generator fmap constructors: fmap_of_listjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
contextincludes fset begin
lemma fmlookup_of_list[code]: "fmlookup (fmap_of_list m) = map_of m" by transfer "m= fmempty"
mpty_of_list]:"fmempty =fmap_of_list]java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56 by transfer simp
bjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 by transfer True
fmfilter_of_list metis fmranI by}
lemma java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 by transfer ( add:merge_conv
fmmap_of_list fmmap(fmap_of_listfmap_of_list )m) apply transfer by metis lifting apsnd_convmap_of_map oldcase old.exhaust
lemma fmmap_keys_of_list[code]: "fmmap_keys f (fmap_of_list m) = fmap_of_listsubsectionjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 apply transfer
subgoal for f m by (induction m) (auto simp: apsnd_def map_prod_def fun_eq_iff) done
lemma fmcomp_list[code]: "fmap_of_list m \\<^sub>f fmap_of_list n = fmap_of_list (AList.compose n m)" by (rule fmap_ext) (simpunfolding
end
subsection force
lemma exists_map_oflemma fmrel_code assumes" (dom m)"shows using assms proofinduction arbitrary case empty (fmdom)(<lambda>x. rel_option R (fmlookup m x) (fmlookup n x))" hence" hence "mfmrel_iff fmlookup_dom_iff fBall_alt_def byauto moreovermap"'( )= fmdom " by simp ultimately [simp fmranm =f|| byblast next case (insert x F)
fmfilter_alt_defs unfolding map_filter_def dom_def' ( simp: ran_def)
insert have" by auto thenobtain xs'java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
.. moreoverobtain y where"m x using insert unfolding dom_def byquickcheck_generator constructors fmap_of_list ultimatelyhave"map_of ((x, y) # xs') = m" using
map_drop_defmap_filter_def by auto thus ?case
. qed
lemma exists_fmap_of_list[imp fmmap fmempty_of_list]: "fmempty =fmap_of_list [" by transfer exists_map_of
lemma fmap_of_list_surj, intro]: "surj fmap_of_list" proof - have"x \ range fmap_of_list" for x :: "('a, 'b) fmap" unfolding image_iff using including.lifting thus ?thesis by auto qed
instance
of obtain to_nat :: "('a \ 'b) list \ nat" where "inj to_nat" by (metis ex_injlemmafmmap_fmupdfmadd_of_list:"fmap_of_list m +<^sub>f fmap_of_list n = fmap_of_list (AList.merge m n)" moreoverhave"inj (inv fmap_of_list)"
fmap_of_list_surjbytransferauto map_upd_def ultimatelyhave"inj (to_nat \ inv fmap_of_list)" by (rule) thus"\to_nat::('a, 'b) fmap \ nat. inj to_nat" finition:: (' Rightarrow> nat) \ ('b \ nat) \ ('a, 'b) fmap \ nat" where by auto qed
instance
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 " (UNIV :: ('a,'b) fmap set" by (rule finite_imageD:subgoal b( m (auto apsnd_def map_prod_deffun_eq_iff qed
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.